• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

"Rainbow" light spell

Sportacus

Intermediate OT User
Joined
Aug 3, 2008
Messages
718
Reaction score
104
Well, the point of the script is to pick a random light colour when the person casts utevo lux. I made the script, but it doesn't work completely..

When you cast it, does pick a random colour, but, it stays till either the time duration runs out, or you log out.

I want it to change colours everytime you cast it.

Also, I don't know if it is properly picking a random number... heres my script if you wish to help.


LUA:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)

local condition = createConditionObject(CONDITION_LIGHT)
setConditionParam(condition, CONDITION_PARAM_LIGHT_LEVEL, 7)
setConditionParam(condition, CONDITION_PARAM_LIGHT_COLOR,  math.random(1,255))
setConditionParam(condition, CONDITION_PARAM_TICKS, (11 * 60 + 35) * 1000)
setCombatCondition(combat, condition)

function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end
 
LUA:
-- Coded by Znote
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
 
local condition = createConditionObject(CONDITION_LIGHT)
setConditionParam(condition, CONDITION_PARAM_LIGHT_LEVEL, 7)
setConditionParam(condition, CONDITION_PARAM_LIGHT_COLOR, math.random(1,255))
setConditionParam(condition, CONDITION_PARAM_TICKS, (11 * 60 + 35) * 1000)
setCombatCondition(combat, condition)
 
function onCastSpell(cid, var)
	local change = 500 -- Change color every 0.5 seconds. (500 milliseconds). 
	local duration = 300 -- 5 minutes duration
	
	doCreatureSetStorage(cid, 13371, (os.time()+duration))
	addEvent(color,change, {cid=cid})
end

function color(cid)
	local cid = cid.cid
	local change = 500
	if isPlayer(cid) then
		if getCreatureStorage(cid, 13371) > os.time() then
			return doCombat(cid, combat, var)
			addEvent(color,change, {cid=cid})
		end
	else
		return true
	end
end
 
LUA:
-- Coded by Znote
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
 
local condition = createConditionObject(CONDITION_LIGHT)
setConditionParam(condition, CONDITION_PARAM_LIGHT_LEVEL, 7)
setConditionParam(condition, CONDITION_PARAM_LIGHT_COLOR, math.random(1,255))
setConditionParam(condition, CONDITION_PARAM_TICKS, (11 * 60 + 35) * 1000)
setCombatCondition(combat, condition)
 
function onCastSpell(cid, var)
    local change = 500 -- Change color every 0.5 seconds. (500 milliseconds). 
    local duration = 300 -- 5 minutes duration
    
    doCreatureSetStorage(cid, 13371, (os.time()+duration))
    addEvent(color,change, {cid=cid})
end

function color(cid)
    local cid = cid.cid
    local change = 500
    if isPlayer(cid) then
        if getCreatureStorage(cid, 13371) > os.time() then
            return doCombat(cid, combat, var)
            addEvent(color,change, {cid=cid})
        end
    else
        return true
    end
end


!!!!!!!!!!!!!!

Thank you!

Going to test at once. :)

No, doesn't work right, instead of it changing colour every 0.5 seconds, it just does the const_me_magic_blue effect every 0.5 seconds.
 
Last edited by a moderator:
Got frustrated it and just set each individual light.. only did 20 of them out of the 255..

Not perfect but it is working now, I am sure it could be made better.

:Edit: totally meant to log in as sportacus to post this x.x



LUA:
-- Coded by Znote
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
 
local black = createConditionObject(CONDITION_LIGHT)
setConditionParam(black, CONDITION_PARAM_LIGHT_LEVEL, 7)
setConditionParam(black, CONDITION_PARAM_LIGHT_COLOR, COLOR_BLACK)
setConditionParam(black, CONDITION_PARAM_TICKS, 20000)

local blue = createConditionObject(CONDITION_LIGHT)
setConditionParam(blue, CONDITION_PARAM_LIGHT_LEVEL, 7)
setConditionParam(blue, CONDITION_PARAM_LIGHT_COLOR, COLOR_BLUE)
setConditionParam(blue, CONDITION_PARAM_TICKS, 20000)

local green = createConditionObject(CONDITION_LIGHT)
setConditionParam(green, CONDITION_PARAM_LIGHT_LEVEL, 7)
setConditionParam(green, CONDITION_PARAM_LIGHT_COLOR, COLOR_GREEN)
setConditionParam(green, CONDITION_PARAM_TICKS, 20000)

local lightgreen = createConditionObject(CONDITION_LIGHT)
setConditionParam(lightgreen, CONDITION_PARAM_LIGHT_LEVEL, 7)
setConditionParam(lightgreen, CONDITION_PARAM_LIGHT_COLOR, COLOR_LIGHTGREEN)
setConditionParam(lightgreen, CONDITION_PARAM_TICKS, 20000)

local darkbrown = createConditionObject(CONDITION_LIGHT)
setConditionParam(darkbrown, CONDITION_PARAM_LIGHT_LEVEL, 7)
setConditionParam(darkbrown, CONDITION_PARAM_LIGHT_COLOR, COLOR_DARKBROWN)
setConditionParam(darkbrown, CONDITION_PARAM_TICKS, 20000)

local lightblue = createConditionObject(CONDITION_LIGHT)
setConditionParam(lightblue, CONDITION_PARAM_LIGHT_LEVEL, 7)
setConditionParam(lightblue, CONDITION_PARAM_LIGHT_COLOR, COLOR_LIGHTBLUE)
setConditionParam(lightblue, CONDITION_PARAM_TICKS, 20000)

local mayablue = createConditionObject(CONDITION_LIGHT)
setConditionParam(mayablue, CONDITION_PARAM_LIGHT_LEVEL, 7)
setConditionParam(mayablue, CONDITION_PARAM_LIGHT_COLOR, COLOR_MAYABLUE)
setConditionParam(mayablue, CONDITION_PARAM_TICKS, 20000)

local darkred = createConditionObject(CONDITION_LIGHT)
setConditionParam(darkred, CONDITION_PARAM_LIGHT_LEVEL, 7)
setConditionParam(darkred, CONDITION_PARAM_LIGHT_COLOR, COLOR_DARKRED)
setConditionParam(darkred, CONDITION_PARAM_TICKS, 20000)

local brown = createConditionObject(CONDITION_LIGHT)
setConditionParam(brown, CONDITION_PARAM_LIGHT_LEVEL, 7)
setConditionParam(brown, CONDITION_PARAM_LIGHT_COLOR, COLOR_BROWN)
setConditionParam(brown, CONDITION_PARAM_TICKS, 20000)

local grey = createConditionObject(CONDITION_LIGHT)
setConditionParam(grey, CONDITION_PARAM_LIGHT_LEVEL, 7)
setConditionParam(grey, CONDITION_PARAM_LIGHT_COLOR, COLOR_GREY)
setConditionParam(grey, CONDITION_PARAM_TICKS, 20000)

local teal = createConditionObject(CONDITION_LIGHT)
setConditionParam(teal, CONDITION_PARAM_LIGHT_LEVEL, 7)
setConditionParam(teal, CONDITION_PARAM_LIGHT_COLOR, COLOR_TEAL)
setConditionParam(teal, CONDITION_PARAM_TICKS, 20000)

local darkpink = createConditionObject(CONDITION_LIGHT)
setConditionParam(darkpink, CONDITION_PARAM_LIGHT_LEVEL, 7)
setConditionParam(darkpink, CONDITION_PARAM_LIGHT_COLOR, COLOR_DARKPINK)
setConditionParam(darkpink, CONDITION_PARAM_TICKS, 20000)

local purple = createConditionObject(CONDITION_LIGHT)
setConditionParam(purple, CONDITION_PARAM_LIGHT_LEVEL, 7)
setConditionParam(purple, CONDITION_PARAM_LIGHT_COLOR, COLOR_PURPLE)
setConditionParam(purple, CONDITION_PARAM_TICKS, 20000)

local darkorange = createConditionObject(CONDITION_LIGHT)
setConditionParam(darkorange, CONDITION_PARAM_LIGHT_LEVEL, 7)
setConditionParam(darkorange, CONDITION_PARAM_LIGHT_COLOR, COLOR_DARKORANGE)
setConditionParam(darkorange, CONDITION_PARAM_TICKS, 20000)

local red = createConditionObject(CONDITION_LIGHT)
setConditionParam(red, CONDITION_PARAM_LIGHT_LEVEL, 7)
setConditionParam(red, CONDITION_PARAM_LIGHT_COLOR, COLOR_RED)
setConditionParam(red, CONDITION_PARAM_TICKS, 20000)

local pink = createConditionObject(CONDITION_LIGHT)
setConditionParam(pink, CONDITION_PARAM_LIGHT_LEVEL, 7)
setConditionParam(pink, CONDITION_PARAM_LIGHT_COLOR, COLOR_PINK)
setConditionParam(pink, CONDITION_PARAM_TICKS, 20000)

local orange = createConditionObject(CONDITION_LIGHT)
setConditionParam(orange, CONDITION_PARAM_LIGHT_LEVEL, 7)
setConditionParam(orange, CONDITION_PARAM_LIGHT_COLOR, COLOR_ORANGE)
setConditionParam(orange, CONDITION_PARAM_TICKS, 20000)

local darkyellow = createConditionObject(CONDITION_LIGHT)
setConditionParam(darkyellow, CONDITION_PARAM_LIGHT_LEVEL, 7)
setConditionParam(darkyellow, CONDITION_PARAM_LIGHT_COLOR, COLOR_DARKYELLOW)
setConditionParam(darkyellow, CONDITION_PARAM_TICKS, 20000)

local yellow = createConditionObject(CONDITION_LIGHT)
setConditionParam(yellow, CONDITION_PARAM_LIGHT_LEVEL, 7)
setConditionParam(yellow, CONDITION_PARAM_LIGHT_COLOR, COLOR_YELLOW)
setConditionParam(yellow, CONDITION_PARAM_TICKS, 20000)

local white = createConditionObject(CONDITION_LIGHT)
setConditionParam(white, CONDITION_PARAM_LIGHT_LEVEL, 7)
setConditionParam(white, CONDITION_PARAM_LIGHT_COLOR, COLOR_WHITE)
setConditionParam(white, CONDITION_PARAM_TICKS, 20000)


function onCastSpell(cid, var)
	local change = 2000 -- Change color every 0.5 seconds. (500 milliseconds). 
	local duration = 300 -- 5 minutes duration
 
	doCreatureSetStorage(cid, 13371, (os.time()+duration))
	addEvent(color, change, cid, var)
	doCombat(cid, combat, var)
	return true
end
 
function color(cid, var)
	local change = 2000
	if isPlayer(cid) then
		if getPlayerStorageValue(cid, 13371) > os.time() then
			local newcolor = white
			local chance = math.random(1, 20)
			if chance == 1 then
				newcolor = yellow
			elseif chance == 2 then
				newcolor = darkyellow
			elseif chance == 3 then
				newcolor = orange
			elseif chance == 4 then
				newcolor = pink
			elseif chance == 5 then
				newcolor = red
			elseif chance == 6 then
				newcolor = darkorange
			elseif chance == 7 then
				newcolor = darkpink
			elseif chance == 8 then
				newcolor = teal
			elseif chance == 9 then
				newcolor = grey
			elseif chance == 10 then
				newcolor = brown
			elseif chance == 11 then
				newcolor = darkred
			elseif chance == 12 then
				newcolor = mayablue
			elseif chance == 13 then
				newcolor = lightblue
			elseif chance == 14 then
				newcolor = darkbrown
			elseif chance == 15 then
				newcolor = lightgreen
			elseif chance == 16 then
				newcolor = green
			elseif chance == 17 then
				newcolor = blue
			elseif chance == 18 then
				newcolor = black
			end
			addEvent(color, change, cid, var)
			doAddCondition(cid, newcolor)
		end
	else
		return true
	end
end
 
Back
Top