Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Just like Kirby and PointySonic, this lua determines the secondary colors.
- // Lua originally done by Tripel for kcl_kirby-v2.wad
- freeslot("MT_MOVERRALLS", "S_MOVERRALLS","SPR_FOT1","SPR_FOT5", "SPR_JKVT")
- local function secondcolor(player, arg1)
- if arg1 == "white"
- player.extracolor = 1
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "silver"
- player.extracolor = 2
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "grey" or "gray"
- player.extracolor = 3
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "nickel"
- player.extracolor = 4
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "black"
- player.extracolor = 5
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "fairy"
- player.extracolor = 6
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "popcorn"
- player.extracolor = 7
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "sepia"
- player.extracolor = 8
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "beige"
- player.extracolor = 9
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "brown"
- player.extracolor = 10
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "leather"
- player.extracolor = 11
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "salmon"
- player.extracolor = 12
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "pink"
- player.extracolor = 13
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "rose"
- player.extracolor = 14
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "brick"
- player.extracolor = 15
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "ruby"
- player.extracolor = 16
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "raspberry"
- player.extracolor = 17
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "cherry"
- player.extracolor = 18
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "red"
- player.extracolor = 19
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "crimson"
- player.extracolor = 20
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "maroon"
- player.extracolor = 21
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "flame"
- player.extracolor = 22
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "scarlet"
- player.extracolor = 23
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "ketchup"
- player.extracolor = 24
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "dawn"
- player.extracolor = 25
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "sunset"
- player.extracolor = 26
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "creamsicle"
- player.extracolor = 27
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "orange"
- player.extracolor = 28
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "pumpkin"
- player.extracolor = 29
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "rosewood"
- player.extracolor = 30
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "burgundy"
- player.extracolor = 31
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "tangerine"
- player.extracolor = 32
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "peach"
- player.extracolor = 33
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "caramel"
- player.extracolor = 34
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "cream"
- player.extracolor = 35
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "gold"
- player.extracolor = 36
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "royal"
- player.extracolor = 37
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "bronze"
- player.extracolor = 38
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "copper"
- player.extracolor = 39
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "yellow"
- player.extracolor = 40
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "mustard"
- player.extracolor = 41
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "olive"
- player.extracolor = 42
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "vomit"
- player.extracolor = 43
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "garden"
- player.extracolor = 44
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "lime"
- player.extracolor = 45
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "handheld"
- player.extracolor = 46
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "tea"
- player.extracolor = 47
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "pistachio"
- player.extracolor = 48
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "moss"
- player.extracolor = 49
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "camouflauge"
- player.extracolor = 50
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "robo-hood" or "robohood" or "robo_hood"
- player.extracolor = 51
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "mint"
- player.extracolor = 52
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "green"
- player.extracolor = 53
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "pinetree"
- player.extracolor = 54
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "emerald"
- player.extracolor = 55
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "swamp"
- player.extracolor = 56
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "dream"
- player.extracolor = 57
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "plague"
- player.extracolor = 58
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "algae"
- player.extracolor = 59
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "caribbean"
- player.extracolor = 60
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "aqua"
- player.extracolor = 61
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "teal"
- player.extracolor = 62
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "cyan"
- player.extracolor = 63
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "jawz"
- player.extracolor = 64
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "cerulean"
- player.extracolor = 65
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "navy"
- player.extracolor = 66
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "platinum"
- player.extracolor = 67
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "slate"
- player.extracolor = 68
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "steel"
- player.extracolor = 69
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "rust"
- player.extracolor = 70
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "jet"
- player.extracolor = 71
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "sapphire"
- player.extracolor = 72
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "periwinkle"
- player.extracolor = 73
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "blue"
- player.extracolor = 74
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "blueberry"
- player.extracolor = 75
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "nova"
- player.extracolor = 76
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "pastel"
- player.extracolor = 77
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "moonslam"
- player.extracolor = 78
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "ultraviolet"
- player.extracolor = 79
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "dusk"
- player.extracolor = 80
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "bubblegum"
- player.extracolor = 81
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "purple"
- player.extracolor = 82
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "fuchsia"
- player.extracolor = 83
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "toxic"
- player.extracolor = 84
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "mauve"
- player.extracolor = 85
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "lavender"
- player.extracolor = 86
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "byzantium"
- player.extracolor = 87
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "pomegranate"
- player.extracolor = 88
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "lilac"
- player.extracolor = 89
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif arg1 == "opposite"
- player.extracolor = ColorOpposite(player.mo.color)
- player.manualcolor = false
- player.autooppositecolor = true
- player.autodefaultcolor = false
- elseif arg1 == "default"
- player.extracolor = overlaydefaultcolor(player.mo)
- player.manualcolor = false
- player.autooppositecolor = false
- player.autodefaultcolor = true
- elseif arg1 == nil
- CONS_Printf(player, "secondcolor/colorb [colorname or number]")
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- elseif tonumber(arg1) != nil
- arg1 = tonumber(arg1)
- if arg1 > 0 and arg1 < 89
- player.extracolor = arg1
- player.manualcolor = true
- player.autooppositecolor = false
- player.autodefaultcolor = false
- end
- else CONS_Printf(player, "Invalid Color")
- end
- end
- local function overlayskin(player)
- for player in players.iterate
- local oversprite = SPR_NULL
- if player.mo.skin == "sonic"
- oversprite = SPR_FOT1
- // elseif player.mo.skin == "tails"
- // oversprite = SPR_FOT2
- // elseif player.mo.skin == "knuckles"
- // oversprite = SPR_FOT3
- // elseif player.mo.skin == "metalsonic"
- // oversprite = SPR_FOT4
- elseif player.mo.skin == "eggman"
- oversprite = SPR_FOT5
- elseif player.mo.skin == "joker"
- oversprite = SPR_JKVT
- else
- oversprite = SPR_NULL
- end
- return oversprite
- end
- end
- local function validoverlayskin(mo)
- if mo.skin == "sonic"
- // or mo.skin == "tails"
- // or mo.skin == "knuckles"
- // or mo.skin == "metalsonic"
- or mo.skin == "eggman"
- or mo.skin == "joker"
- return true
- else
- return false
- end
- end
- local function overlaydefaultcolor(mo)
- local defcolor = 53
- if mo.skin == "sonic"
- defcolor = 53
- // elseif mo.skin == "tails"
- // defcolor = 19
- // elseif mo.skin == "knuckles"
- // defcolor = 19
- // elseif mo.skin == "metalsonic"
- // defcolor = 19
- elseif mo.skin == "eggman"
- defcolor = 19
- elseif mo.skin == "joker"
- defcolor = 5
- else
- defcolor = 53
- end
- return defcolor
- end
- function A_SignPlayer(actor, var1, var2)
- super(actor, var1, var2)
- if actor.target and actor.target.valid
- if actor.target.player and actor.target.player.valid
- actor.cusval = actor.target.player.extracolor
- end
- end
- end
- COM_AddCommand("secondcolor", secondcolor)
- COM_AddCommand("colorb", secondcolor)
- COM_AddCommand("secondcolor2", secondcolor, 2)
- COM_AddCommand("colorb2", secondcolor, 2)
- COM_AddCommand("secondcolor3", secondcolor, 3)
- COM_AddCommand("colorb3", secondcolor, 3)
- COM_AddCommand("secondcolor4", secondcolor, 4)
- COM_AddCommand("colorb4", secondcolor, 4)
- addHook("ThinkFrame", function()
- for player in players.iterate
- // **** Put your own character's name (not true name!) here! **** DFSASD
- if(player.mo and player.mo.valid and validoverlayskin(player.mo))
- // Create the second object
- if not(player.moveralls and player.moveralls.valid)
- // **** Change the xxxx here! This is the same as the MT you put in earlier! **** DFSASD
- player.moveralls = P_SpawnMobj(player.mo.x, player.mo.y, player.mo.z, MT_MOVERRALLS)
- end
- // Set the second object's frame to your character's frame! (and tics)
- player.moveralls.state = player.mo.state
- player.moveralls.frame = player.mo.frame
- player.moveralls.tics = player.mo.tics
- // Match the colors!
- if player.extracolor == nil
- player.extracolor = overlaydefaultcolor(player.mo)
- player.manualcolor = false
- player.autooppositecolor = false
- player.autodefaultcolor = true
- else
- player.moveralls.color = player.extracolor
- end
- if player.lastcolor == nil
- player.lastcolor = player.mo.color
- end
- if player.lastskin == nil
- player.lastskin = player.mo.skin
- end
- //print(player.extracolor)
- print(player.manualcolor)
- print(player.autooppositecolor)
- print(player.autodefaultcolor)
- print(player.moveralls.color)
- //print(player.lastskin)
- //print(player.lastcolor)
- //print(player.moveralls.sprite)
- //print(overlayskin(player))
- if player.autooppositecolor == true
- if player.lastcolor != player.mo.color
- player.lastcolor = player.mo.color
- player.extracolor = ColorOpposite(player.mo.color)
- player.moveralls.color = player.extracolor
- print(player.extracolor)
- end
- end
- if player.autodefaultcolor == true
- if player.lastskin != player.mo.skin
- player.lastskin = player.mo.skin
- player.extracolor = overlaydefaultcolor(player.mo)
- player.moveralls.color = player.extracolor
- print(player.extracolor)
- end
- end
- // Move the second object and face to your character!
- P_TeleportMove(player.moveralls, player.mo.x, player.mo.y, player.mo.z)
- // Make the second object and face's angles the same as the player's!
- player.moveralls.angle = player.frameangle
- // Scale them the same too!
- player.moveralls.scale = player.mo.scale
- // Also height
- player.moveralls.height = player.mo.height
- // Set the second object's sprite to the second object's... sprite... yeah could've put that better but whatever
- // **** Change this to your SPR you put earlier! **** DFSASD
- player.moveralls.sprite = overlayskin(player)
- // REVERSE GRAVITY WOAAAAAH
- if(player.mo.eflags & MFE_VERTICALFLIP)
- player.moveralls.eflags = $1|MFE_VERTICALFLIP
- else
- player.moveralls.eflags = $1 & ~MFE_VERTICALFLIP
- end
- // MF2_DONTDRAW WOAAAAAH
- if(player.mo.flags2 & MF2_DONTDRAW)
- or not(player.mo.sprite == SPR_PLAY)
- player.moveralls.flags2 = $1|MF2_DONTDRAW
- else
- player.moveralls.flags2 = $1 & ~MF2_DONTDRAW
- end
- // Keep the sobj and face in the world!
- player.moveralls.timer = 1
- else
- if(player.moveralls and player.moveralls.valid)
- P_RemoveMobj(player.moveralls)
- end
- end
- end
- end)
- addHook("MobjThinker", function(overlay)
- // ***** Put your own character's name (not true name!) here! ***** DFSASD
- if validoverlayskin(overlay)
- and(overlay.target and overlay.target.valid)
- // Create the second object
- // **** Change the xxxx here! This is the same as the MT you put in earlier! **** DFSASD
- overlay.moveralls = P_SpawnMobj(overlay.target.x, overlay.target.y, overlay.target.z, MT_MOVERRALLS)
- // Set the second object's frame to your character's frame! (and tics)
- local height = states[overlay.state].var2*FRACUNIT
- // Wiki's down, so replace 117 and 922 with the proper object type and state constant when its back up
- if not(overlay.target.type == MT_SIGN)
- overlay.moveralls.state = overlay.state
- overlay.moveralls.frame = overlay.frame
- overlay.moveralls.tics = overlay.tics
- elseif(overlay.target.type == MT_SIGN)
- overlay.moveralls.color = overlay.target.cusval
- overlay.moveralls.frame = S
- end
- // Move the second object and face to your character!
- P_TeleportMove(overlay.moveralls, overlay.x, overlay.y, overlay.target.z+height)
- // Make the second object and face's angles the same as the player's!
- overlay.moveralls.angle = overlay.angle
- // Scale them the same too!
- overlay.moveralls.scale = overlay.scale
- // Also height
- overlay.moveralls.height = overlay.height
- // Set the second object's sprite to the second object's... sprite... yeah could've put that better but whatever
- // **** Change this to your SPR you put earlier! **** DFSASD
- overlay.moveralls.sprite = overlayskin(overlay.target.player)
- // REVERSE GRAVITY WOAAAAAH
- if(overlay.eflags & MFE_VERTICALFLIP)
- overlay.moveralls.eflags = $1|MFE_VERTICALFLIP
- else
- overlay.moveralls.eflags = $1 & ~MFE_VERTICALFLIP
- end
- // MF2_DONTDRAW WOAAAAAH
- if(overlay.flags2 & MF2_DONTDRAW)
- or(overlay.target.sprite == SPR_PINV)
- overlay.moveralls.flags2 = $1|MF2_DONTDRAW
- else
- overlay.moveralls.flags2 = $1 & ~MF2_DONTDRAW
- end
- overlay.moveralls.flags = $1|MF_NOGRAVITY
- overlay.momz = 0
- // **** Change this to your SPR you put earlier! **** DFSASD
- overlay.moveralls.sprite = overlayskin(overlay.target.player)
- overlay.moveralls.timer = 1
- end
- end, MT_OVERLAY)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement