-- Colorshield by Sirexer -- Paint your shield in different colors! -- Version 1.1 local shield = { MT_ELEMENTAL_ORB, MT_ATTRACT_ORB, MT_FORCE_ORB, MT_ARMAGEDDON_ORB, MT_WHIRLWIND_ORB, MT_PITY_ORB, MT_FLAMEAURA_ORB, MT_BUBBLEWRAP_ORB, MT_THUNDERCOIN_ORB } //local particles = {[0] = 1} COM_AddCommand("colorshield", function(player, arg1, arg2) if arg1 if string.lower(arg1) == "toggle" if player.colorshield == true then player.colorshield = false CONS_Printf(player, "Shield color disabled") else if player.colorshield_color == nil player.colorshield_color = 0 player.colorshieldparts = true player.colorshieldparts_color = 0 end player.colorshield = true CONS_Printf(player, "Shield color enabled") end elseif string.lower(arg1) == "color" if arg2 local args = arg2:lower() local argn = tonumber(arg2) if string.lower(args) == "player" or tonumber(args) == 0 player.colorshield_color = 0 return end if argn if (argn > 0 and argn < #skincolors) or argn == -1 player.colorshield_color = argn else CONS_Printf(player, "Color "..tostring(argn).." invalid") end return end if R_GetColorByName(args) player.colorshield_color = R_GetColorByName(args) else CONS_Printf(player, "Color "..tostring(args).." invalid") end else CONS_Printf(player, "\x82".."colorshield color\x80 to change color") end end else CONS_Printf(player, "Colorshield: Paint your shield in different colors!") if player.colorshield == true if player.colorshield_color == 0 CONS_Printf(player, "Colorshield is on, color depends on color of player") else CONS_Printf(player, "Colorshield is on, color is "..R_GetNameByColor(player.colorshield_color)) end else CONS_Printf(player, "Colorshield is off") end CONS_Printf(player, "\x82".."colorshield toggle\x80 to enabled/disabled") CONS_Printf(player, "\x82".."colorshield color\x80 to change color") end end) COM_AddCommand("colorshieldparts", function(player, arg1, arg2) if arg1 if string.lower(arg1) == "toggle" if player.colorshieldparts == true then player.colorshieldparts = false CONS_Printf(player, "Parts of shield color disabled") else if player.colorshield_color == nil then player.colorshieldparts_color = 0 end player.colorshieldparts = true CONS_Printf(player, "Parts of shield color enabled") end elseif string.lower(arg1) == "color" if arg2 local args = arg2:lower() local argn = tonumber(arg2) if string.lower(args) == "player" or tonumber(args) == 0 player.colorshieldparts_color = 0 return end if argn if (argn > 0 and argn < #skincolors) or argn == -1 player.colorshieldparts_color = argn else CONS_Printf(player, "Color "..tostring(argn).." invalid") end return end if R_GetColorByName(args) player.colorshieldparts_color = R_GetColorByName(args) else CONS_Printf(player, "Color "..tostring(args).." invalid") end else CONS_Printf(player, "\x82".."colorshieldparts color\x80 to change color") end end else if player.colorshieldparts == true if player.colorshieldparts_color == 0 CONS_Printf(player, "Colorshieldparts is on, color depends on color of player") else CONS_Printf(player, "Colorshieldparts is on, color is "..R_GetNameByColor(player.colorshieldparts_color)) end else CONS_Printf(player, "Colorshieldparts is off") end CONS_Printf(player, "\x82".."colorshieldparts toggle\x80 to enabled/disabled") CONS_Printf(player, "\x82".."colorshieldparts color\x80 to change color") end end) addHook("MobjThinker", function(mo) if mo.state <= 1650 or mo.state >= 1720 then return end if mo.target and mo.target.valid if mo.target.target.player.colorshieldparts != true if mo.colorized == true then mo.colorized = false end return end mo.colorized = true if mo.target.target.player.colorshieldparts_color == 0 mo.color = mo.target.color else mo.color = mo.target.target.player.colorshieldparts_color end end end, 616) addHook("MobjThinker", function(mo) if mo and mo.valid if mo.colorized == true then return end if mo.target and mo.target.valid if mo.target.player.colorshieldparts != true if mo.colorized == true then mo.colorized = false end return end mo.colorized = true if mo.target.player.colorshieldparts_color == 0 mo.color = mo.target.color else mo.color = mo.target.player.colorshieldparts_color end end end end, MT_SPINFIRE) addHook("MobjThinker", function(mo) if mo and mo.valid if mo.colorized == true then return end if mo.target and mo.target.valid if mo.sprite != SPR_FPRT then return end if mo.target.player.colorshieldparts != true if mo.colorized == true then mo.colorized = false end return end mo.colorized = true if mo.target.player.colorshieldparts_color == 0 mo.color = mo.target.color else mo.color = mo.target.player.colorshieldparts_color end end end end, MT_SPINDUST) /* addHook("MobjSpawn", function(mo) if mo and mo.valid print(leveltime) table.insert(particles, mo) end end, MT_SPINFIRE) addHook("MobjSpawn", function(mo) if mo and mo.valid table.insert(particles, mo) end end, MT_SPINDUST) */ for c, v in ipairs(shield) addHook("MobjThinker", function(mo) if mo and mo.valid if mo.target and mo.target.valid if mo.target.player.colorshield != true if mo.colorized == true then mo.colorized = false end return end mo.colorized = true if mo.target.player.colorshield_color == 0 mo.color = mo.target.color else mo.color = mo.target.player.colorshield_color end if mo.tracer and mo.tracer.valid if mo.target.player.colorshieldparts != true then return end mo.tracer.colorized = true if mo.target.player.colorshieldparts_color == 0 mo.tracer.color = mo.target.color else mo.tracer.color = mo.target.player.colorshieldparts_color end end end end end, v) end /* addHook("PostThinkFrame", do if particles[1] for i = 1, #particles do local mo = particles[i] table.remove(particles, i) if mo and mo.valid if mo.target and mo.target.valid if mo.sprite != SPR_FPRT and mo.sprite != 90 then return end if mo.target.player.colorshieldparts != true then return end mo.colorized = true if mo.target.player.colorshieldparts_color == 0 mo.color = mo.target.color else mo.color = mo.target.player.colorshieldparts_color end end end end end end) */