Postado Março 5, 2018 7 anos Galera, então, a meu cooldown está funcionando. Porém, a mana ainda é gasta qnd tenta usar a magia! O cooldown demora 14 segundos, e voce nao consegue usar a magia realmente, porém se apertar a hotkey, voce perde a mana que usaria na magia. já tentei de tudo aqui Spoiler local combatDist = createCombatObject() setCombatParam(combatDist, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combatDist, COMBAT_PARAM_EFFECT, 75) setCombatParam(combatDist, COMBAT_PARAM_DISTANCEEFFECT, 31) setCombatFormula(combatDist, COMBAT_FORMULA_LEVELMAGIC, -13.7, 0, -19.9, 0) local condition = createConditionObject(CONDITION_FIRE) addDamageCondition(condition, 1, 1000, -5) addDamageCondition(condition, 1, 1000, -5) addDamageCondition(condition, 1, 1000, -4) addDamageCondition(condition, 1, 1000, -3) addDamageCondition(condition, 1, 1000, -2) addDamageCondition(condition, 1, 1000, -1) addDamageCondition(condition, 1, 1000, -25000) setCombatCondition(combatDist, condition) local function Cooldown(cid) if isPlayer(cid) == TRUE then doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,'CD: Adori Gran Dark') end end local combat= createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) local exhausted_seconds = 45 -- Segundos que o Player Poderá castar a spell novamente local exhausted_storagevalue = 9389 -- Storage Value do Cool Down function onCastSpell(cid, var) if(os.time() < getPlayerStorageValue(cid, exhausted_storagevalue)) then doPlayerSendCancel(cid,'O Cooldown não está pronto.') return TRUE end if(target == 1) then doPlayerSendCancel(cid,'Select your target.') doSendMagicEffect(getCreaturePosition(cid), 2) return TRUE end local target = getCreatureTarget(cid) if(target ~= 0 and isPlayer(target) == 1) then local congelado = { lookType = getCreatureOutfit(target).lookType,lookHead = 9, lookBody = 9, lookLegs = 9, lookFeet = 9, lookAddons = getCreatureOutfit(target).lookAddons} doSetCreatureOutfit(target, congelado, 3000) setPlayerStorageValue(target, exhausted_storagevalue, os.time() + exhausted_seconds) doTargetCombatCondition(0, target, condition, CONST_ME_NONE) doPlayerSendTextMessage(target,20,'Voce está condenado.') doTargetCombatCondition(0, target, condition, CONST_ME_NONE) doCombat(cid, combatDist, numberToVariant(target)) else local monstro = { lookType = getCreatureOutfit(target).lookType,lookHead = getCreatureOutfit(target).lookHead, lookBody = getCreatureOutfit(target).lookBody, lookLegs = getCreatureOutfit(target).lookLegs, lookFeet = getCreatureOutfit(target).lookFeet, lookAddons = getCreatureOutfit(target).lookAddons} doSetCreatureOutfit(target, monstro, 3000) doTargetCombatCondition(0, target, condition, CONST_ME_NONE) doCombat(cid, combatDist, numberToVariant(target)) end rand = math.random(1,2) if rand == 1 and isPlayer(cid) == 1 then doPlayerSay(cid,"Adori Gran Dark",16) addEvent(Cooldown, 1*45000,cid) setPlayerStorageValue(cid, exhausted_storagevalue, os.time() + exhausted_seconds) return doCombat(cid, combat, var) elseif rand == 2 and isPlayer(cid) == 1 then doPlayerSay(cid,"Adori Gran Dark",16) addEvent(Cooldown, 1*45000,cid) setPlayerStorageValue(cid, exhausted_storagevalue, os.time() + exhausted_seconds) return doCombat(cid, combat, var) else addEvent(Cooldown, 1*45000,cid) setPlayerStorageValue(cid, exhausted_storagevalue, os.time() + exhausted_seconds) return doCombat(cid, combat, var) end end E se conseguirem consertar, por favor, ensinem, tenho outras magias 3 magias que estão assim tambem!
Postado Março 5, 2018 7 anos Se fizer alterando em exhaustion.check Não Seria melhor ? exemplo if exhaustion.check(cid, 13103) == TRUE then - exhaustion.set(cid, 13103, 45.0) Editado Março 5, 2018 7 anos por Dragon Ball Hiper (veja o histórico de edições)
Postado Março 5, 2018 7 anos Solução Tenta esse aqui local combatDist = createCombatObject() setCombatParam(combatDist, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combatDist, COMBAT_PARAM_EFFECT, 75) setCombatParam(combatDist, COMBAT_PARAM_DISTANCEEFFECT, 31) setCombatFormula(combatDist, COMBAT_FORMULA_LEVELMAGIC, -13.7, 0, -19.9, 0) local condition = createConditionObject(CONDITION_FIRE) addDamageCondition(condition, 1, 1000, -5) addDamageCondition(condition, 1, 1000, -5) addDamageCondition(condition, 1, 1000, -4) addDamageCondition(condition, 1, 1000, -3) addDamageCondition(condition, 1, 1000, -2) addDamageCondition(condition, 1, 1000, -1) addDamageCondition(condition, 1, 1000, -25000) setCombatCondition(combatDist, condition) local function Cooldown(cid) if isPlayer(cid) == TRUE then doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,'CD: Adori Gran Dark') end end local combat= createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) local exhausted_seconds = 45 -- Segundos que o Player Poderá castar a spell novamente local exhausted_storagevalue = 9389 -- Storage Value do Cool Down function onCastSpell(cid, var) if(os.time() < getPlayerStorageValue(cid, exhausted_storagevalue)) then doPlayerSendCancel(cid,'O Cooldown não está pronto.') return false end if(target == 1) then doPlayerSendCancel(cid,'Select your target.') doSendMagicEffect(getCreaturePosition(cid), 2) return false end local target = getCreatureTarget(cid) if(target ~= 0 and isPlayer(target) == 1) then local congelado = { lookType = getCreatureOutfit(target).lookType,lookHead = 9, lookBody = 9, lookLegs = 9, lookFeet = 9, lookAddons = getCreatureOutfit(target).lookAddons} doSetCreatureOutfit(target, congelado, 3000) setPlayerStorageValue(target, exhausted_storagevalue, os.time() + exhausted_seconds) doTargetCombatCondition(0, target, condition, CONST_ME_NONE) doPlayerSendTextMessage(target,20,'Voce está condenado.') doTargetCombatCondition(0, target, condition, CONST_ME_NONE) doCombat(cid, combatDist, numberToVariant(target)) else local monstro = { lookType = getCreatureOutfit(target).lookType,lookHead = getCreatureOutfit(target).lookHead, lookBody = getCreatureOutfit(target).lookBody, lookLegs = getCreatureOutfit(target).lookLegs, lookFeet = getCreatureOutfit(target).lookFeet, lookAddons = getCreatureOutfit(target).lookAddons} doSetCreatureOutfit(target, monstro, 3000) doTargetCombatCondition(0, target, condition, CONST_ME_NONE) doCombat(cid, combatDist, numberToVariant(target)) end rand = math.random(1,2) if rand == 1 and isPlayer(cid) == 1 then doPlayerSay(cid,"Adori Gran Dark",16) addEvent(Cooldown, 1*45000,cid) setPlayerStorageValue(cid, exhausted_storagevalue, os.time() + exhausted_seconds) return doCombat(cid, combat, var) elseif rand == 2 and isPlayer(cid) == 1 then doPlayerSay(cid,"Adori Gran Dark",16) addEvent(Cooldown, 1*45000,cid) setPlayerStorageValue(cid, exhausted_storagevalue, os.time() + exhausted_seconds) return doCombat(cid, combat, var) else addEvent(Cooldown, 1*45000,cid) setPlayerStorageValue(cid, exhausted_storagevalue, os.time() + exhausted_seconds) return doCombat(cid, combat, var) end end Em versões novas de TFS dê preferência ao return de true/false, pois TRUE/FALSE são constantes 0 e 1, não o tipo bool
Postado Março 5, 2018 7 anos Autor 24 minutos atrás, marcot disse: Tenta esse aqui local combatDist = createCombatObject() setCombatParam(combatDist, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combatDist, COMBAT_PARAM_EFFECT, 75) setCombatParam(combatDist, COMBAT_PARAM_DISTANCEEFFECT, 31) setCombatFormula(combatDist, COMBAT_FORMULA_LEVELMAGIC, -13.7, 0, -19.9, 0) local condition = createConditionObject(CONDITION_FIRE) addDamageCondition(condition, 1, 1000, -5) addDamageCondition(condition, 1, 1000, -5) addDamageCondition(condition, 1, 1000, -4) addDamageCondition(condition, 1, 1000, -3) addDamageCondition(condition, 1, 1000, -2) addDamageCondition(condition, 1, 1000, -1) addDamageCondition(condition, 1, 1000, -25000) setCombatCondition(combatDist, condition) local function Cooldown(cid) if isPlayer(cid) == TRUE then doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,'CD: Adori Gran Dark') end end local combat= createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) local exhausted_seconds = 45 -- Segundos que o Player Poderá castar a spell novamente local exhausted_storagevalue = 9389 -- Storage Value do Cool Down function onCastSpell(cid, var) if(os.time() < getPlayerStorageValue(cid, exhausted_storagevalue)) then doPlayerSendCancel(cid,'O Cooldown não está pronto.') return false end if(target == 1) then doPlayerSendCancel(cid,'Select your target.') doSendMagicEffect(getCreaturePosition(cid), 2) return false end local target = getCreatureTarget(cid) if(target ~= 0 and isPlayer(target) == 1) then local congelado = { lookType = getCreatureOutfit(target).lookType,lookHead = 9, lookBody = 9, lookLegs = 9, lookFeet = 9, lookAddons = getCreatureOutfit(target).lookAddons} doSetCreatureOutfit(target, congelado, 3000) setPlayerStorageValue(target, exhausted_storagevalue, os.time() + exhausted_seconds) doTargetCombatCondition(0, target, condition, CONST_ME_NONE) doPlayerSendTextMessage(target,20,'Voce está condenado.') doTargetCombatCondition(0, target, condition, CONST_ME_NONE) doCombat(cid, combatDist, numberToVariant(target)) else local monstro = { lookType = getCreatureOutfit(target).lookType,lookHead = getCreatureOutfit(target).lookHead, lookBody = getCreatureOutfit(target).lookBody, lookLegs = getCreatureOutfit(target).lookLegs, lookFeet = getCreatureOutfit(target).lookFeet, lookAddons = getCreatureOutfit(target).lookAddons} doSetCreatureOutfit(target, monstro, 3000) doTargetCombatCondition(0, target, condition, CONST_ME_NONE) doCombat(cid, combatDist, numberToVariant(target)) end rand = math.random(1,2) if rand == 1 and isPlayer(cid) == 1 then doPlayerSay(cid,"Adori Gran Dark",16) addEvent(Cooldown, 1*45000,cid) setPlayerStorageValue(cid, exhausted_storagevalue, os.time() + exhausted_seconds) return doCombat(cid, combat, var) elseif rand == 2 and isPlayer(cid) == 1 then doPlayerSay(cid,"Adori Gran Dark",16) addEvent(Cooldown, 1*45000,cid) setPlayerStorageValue(cid, exhausted_storagevalue, os.time() + exhausted_seconds) return doCombat(cid, combat, var) else addEvent(Cooldown, 1*45000,cid) setPlayerStorageValue(cid, exhausted_storagevalue, os.time() + exhausted_seconds) return doCombat(cid, combat, var) end end Em versões novas de TFS dê preferência ao return de true/false, pois TRUE/FALSE são constantes 0 e 1, não o tipo bool Deu certinho, amigo! Obrigado! Editado Março 5, 2018 7 anos por Yamborghini (veja o histórico de edições)
Postado Março 5, 2018 7 anos Quando você dá return false numa skill é como se você tivesse cancelado a execução dela, então ele desconsidera que a skill foi usada, sem gastar mana. Editado Março 5, 2018 7 anos por marcot (veja o histórico de edições)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.