• 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!

need help with talkaction

foxkbt

Member
Joined
Sep 29, 2009
Messages
290
Reaction score
7
Location
Salvador
hello guys!
I got a spell that lasts 30 seconds
PHP:
local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_SOUND_PURPLE)

local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_SOUND_RED)

local drunk = createConditionObject(CONDITION_DRUNK)
setConditionParam(drunk, CONDITION_PARAM_TICKS, 10000)
setCombatCondition(combat1, drunk)
setCombatCondition(combat2, drunk)

local paralyze = createConditionObject(CONDITION_PARALYZE)
setConditionParam(paralyze, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(paralyze, -0.9, 0, -0.9, 0)
setCombatCondition(combat1, paralyze)
setCombatCondition(combat2, paralyze)

local death = createConditionObject(CONDITION_CURSED)
setConditionParam(death, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(death, 10, 1000, -10)
setCombatCondition(combat1, death)
setCombatCondition(combat2, death)

local fire = createConditionObject(CONDITION_FIRE)
setConditionParam(fire, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(fire, 10, 1000, -10)
setCombatCondition(combat1, fire)
setCombatCondition(combat2, fire)

local energy = createConditionObject(CONDITION_ENERGY)
setConditionParam(energy, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(energy, 10, 1000, -10)
setCombatCondition(combat1, energy)
setCombatCondition(combat2, energy)

local poison = createConditionObject(CONDITION_POISON)
setConditionParam(poison, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(poison, 10, 1000, -10)
setCombatCondition(combat1, poison)
setCombatCondition(combat2, poison)


local arr1 = {
	{0, 0, 1, 1, 1, 0, 0},
	{0, 1, 1, 0, 1, 1, 0},
	{1, 1, 1, 0, 1, 1, 1},
	{1, 0, 0, 2, 0, 0, 1},
	{1, 1, 1, 0, 1, 1, 1},
	{0, 1, 1, 0, 1, 1, 0},
	{0, 0, 1, 1, 1, 0, 0}
}

local arr2 = {
	{0, 0, 0, 0, 0, 0, 0},
	{0, 0, 0, 1, 0, 0, 0},
	{0, 0, 0, 1, 0, 0, 0},
	{0, 1, 1, 2, 1, 1, 0},
	{0, 0, 0, 1, 0, 0, 0},
	{0, 0, 0, 1, 0, 0, 0},
	{0, 0, 0, 0, 0, 0, 0}
}

setCombatArea(combat1, createCombatArea(arr1))
setCombatArea(combat2, createCombatArea(arr2))

local function onCastSpell1(parameters)
	return isPlayer(parameters.cid) == TRUE and doCombat(parameters.cid, parameters.combat1, parameters.var) and doCreatureSetNoMove(parameters.cid, true)
end

local function onFinishSpell1(parameters)
	return isPlayer(parameters.cid) == TRUE and doCreatureSetNoMove(parameters.cid, false)
end

local function onCastSpell2(parameters)
	return isPlayer(parameters.cid) == TRUE and doCombat(parameters.cid, parameters.combat2, parameters.var)
end

local inst = {3957, 3952, 2070, 2071, 2072}

function onCastSpell(cid, var)
local dir = getPlayerSlotItem(cid, CONST_SLOT_RIGHT)
local esq = getPlayerSlotItem(cid, CONST_SLOT_LEFT)
if getPlayerStorageValue(cid, 89456) == 1 then
		doPlayerSendCancel(cid, "voce esta impossibilitado de gastar mana.")
else
	local parameters = {cid = cid, var = var, combat1 = combat1, combat2 = combat2, death = death, fire = fire, energy = energy, paralyze = paralyze, drunk = drunk, poison = poison}
	if isInArray(inst, dir.itemid) == true or isInArray(inst, esq.itemid) == true then
	for i = 1, 61 do
		    addEvent(onCastSpell1, i == 1 and 100 or i * 500 - 500, parameters)
		    addEvent(onCastSpell2, i == 1 and 100 or i * 500 - 500, parameters)
  	    end
	    addEvent(onFinishSpell1, 31000, parameters)
    else
	    doPlayerSendCancel(cid, "voce precisa esta equipado com um instrumento musical para tocar essa musica")
	    doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
	    return FALSE
    end
return true
end
end

I need a talkaction to make it stop, make character move again and make stop the exausted.

i'm sorry but I have no idea how to do
 
Back
Top