Postado Junho 14, 2022 3 anos Fala, Pessoal! Beleza? Então, eu tenho uma magia no meu servidor que se chama "Stop Time" basicamente é quando um player usa ela, o player adversário não consegue usar nada por uma certa quantidade de tempo, ele fica "silenciado". Ela funciona perfeitamente se o player nao morrer com o efeito dessa magia, se ele não morrer "silenciado", porém, caso o player morra ainda com o efeito, ele volta pro templo silenciado infinitamente, passa o tempo e ele continua sem conseguir usar magia, UH e etc... Gostaria de saber se algum de voces saberia o que tem de errado nessa magia. Spoiler local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, 19) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, true) setCombatParam(combat, COMBAT_PARAM_TARGETPLAYERSORSUMMONS, true) local area = createCombatArea(AREA_CIRCLE3X3) setCombatArea(combat, area) local condition = createConditionObject(CONDITION_DRUNK) setConditionParam(condition, CONDITION_PARAM_TICKS, 15000) setCombatCondition(combat, condition) local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 20000) setConditionParam(condition, CONDITION_PARAM_SPEED, -300) setCombatCondition(combat, condition) local cooldown = 10 function mastime(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "CD: Exevo Gran Mas Time.") end function onCastSpell(cid, var) local function spell(cid) addEvent(spell, 1 * 750, cid) return doCombat(cid, combat, var) end if getPlayerStorageValue(cid, 10569) == 1 then doSendAnimatedText((getCreaturePosition(cid)), "Socorro!", 255) doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED) return false end local mags = {} local pos = getCreaturePosition(cid) local pos5 = getSpectators(pos, 1, 1) pos.x = pos.x - 2 local pos1 = getSpectators(pos, 1, 1) pos.x = pos.x + 4 local pos2 = getSpectators(pos, 1, 1) pos.x = pos.x - 2 pos.y = pos.y - 2 local pos3 = getSpectators(pos, 1, 1) pos.y = pos.y + 4 local pos4 = getSpectators(pos, 1, 1) pos.y = pos.y - 3 pos.x = pos.x - 1 local pos6 = getSpectators(pos, 1, 1) pos.x = pos.x + 2 local pos7 = getSpectators(pos, 1, 1) pos.y = pos.y + 2 local pos8 = getSpectators(pos, 1, 1) pos.x = pos.x - 2 local pos9 = getSpectators(pos, 1, 1) if pos1 ~= nil then for r=1, #pos1 do table.insert(mags, pos1[r]) end end if pos2 ~= nil then for r=1, #pos2 do table.insert(mags, pos2[r]) end end if pos3 ~= nil then for r=1, #pos3 do table.insert(mags, pos3[r]) end end if pos4 ~= nil then for r=1, #pos4 do table.insert(mags, pos4[r]) end end if pos5 ~= nil then for r=1, #pos5 do table.insert(mags, pos5[r]) end end if pos6 ~= nil then for r=1, #pos6 do table.insert(mags, pos6[r]) end end if pos7 ~= nil then for r=1, #pos7 do table.insert(mags, pos7[r]) end end if pos8 ~= nil then for r=1, #pos8 do table.insert(mags, pos8[r]) end end if pos9 ~= nil then for r=1, #pos9 do table.insert(mags, pos9[r]) end end for i,v in ipairs(mags) do if v == cid then table.remove(mags, i) end if getTilePzInfo(getCreaturePosition(v)) then table.remove(mags, i) end end for t=1, #mags do if mags[t] ~= cid and doCombat(cid, combat, var) then doSendMagicEffect((getCreaturePosition(mags[t])), 19) doSendAnimatedText((getCreaturePosition(mags[t])), "Socorro!", 255) doPlayerSetStorageValue(mags[t], 10569, 1) local zxzx = mags[t] function back(zxzx) doPlayerSetStorageValue(zxzx, 10569, -1) end addEvent(back, 5000, zxzx) end end if exhaustion.check(cid, 23006) == false then exhaustion.set(cid, 23006, cooldown) addEvent(mastime, cooldown*1000, cid) return doCombat(cid, combat, var) else doSendMagicEffect(getCreaturePosition(cid), 2) doPlayerSendCancel(cid, "Golpe em cooldown por " ..exhaustion.get(cid, 23006).." segundos") return false end return doCombat(cid, combat, var) end Desde já agradeço a ajuda de voces.
Postado Junho 14, 2022 3 anos 1 hora atrás, boxxer321 disse: Fala, Pessoal! Beleza? Então, eu tenho uma magia no meu servidor que se chama "Stop Time" basicamente é quando um player usa ela, o player adversário não consegue usar nada por uma certa quantidade de tempo, ele fica "silenciado". Ela funciona perfeitamente se o player nao morrer com o efeito dessa magia, se ele não morrer "silenciado", porém, caso o player morra ainda com o efeito, ele volta pro templo silenciado infinitamente, passa o tempo e ele continua sem conseguir usar magia, UH e etc... Gostaria de saber se algum de voces saberia o que tem de errado nessa magia. Ocultar conteúdo local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, 19) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, true) setCombatParam(combat, COMBAT_PARAM_TARGETPLAYERSORSUMMONS, true) local area = createCombatArea(AREA_CIRCLE3X3) setCombatArea(combat, area) local condition = createConditionObject(CONDITION_DRUNK) setConditionParam(condition, CONDITION_PARAM_TICKS, 15000) setCombatCondition(combat, condition) local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 20000) setConditionParam(condition, CONDITION_PARAM_SPEED, -300) setCombatCondition(combat, condition) local cooldown = 10 function mastime(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "CD: Exevo Gran Mas Time.") end function onCastSpell(cid, var) local function spell(cid) addEvent(spell, 1 * 750, cid) return doCombat(cid, combat, var) end if getPlayerStorageValue(cid, 10569) == 1 then doSendAnimatedText((getCreaturePosition(cid)), "Socorro!", 255) doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED) return false end local mags = {} local pos = getCreaturePosition(cid) local pos5 = getSpectators(pos, 1, 1) pos.x = pos.x - 2 local pos1 = getSpectators(pos, 1, 1) pos.x = pos.x + 4 local pos2 = getSpectators(pos, 1, 1) pos.x = pos.x - 2 pos.y = pos.y - 2 local pos3 = getSpectators(pos, 1, 1) pos.y = pos.y + 4 local pos4 = getSpectators(pos, 1, 1) pos.y = pos.y - 3 pos.x = pos.x - 1 local pos6 = getSpectators(pos, 1, 1) pos.x = pos.x + 2 local pos7 = getSpectators(pos, 1, 1) pos.y = pos.y + 2 local pos8 = getSpectators(pos, 1, 1) pos.x = pos.x - 2 local pos9 = getSpectators(pos, 1, 1) if pos1 ~= nil then for r=1, #pos1 do table.insert(mags, pos1[r]) end end if pos2 ~= nil then for r=1, #pos2 do table.insert(mags, pos2[r]) end end if pos3 ~= nil then for r=1, #pos3 do table.insert(mags, pos3[r]) end end if pos4 ~= nil then for r=1, #pos4 do table.insert(mags, pos4[r]) end end if pos5 ~= nil then for r=1, #pos5 do table.insert(mags, pos5[r]) end end if pos6 ~= nil then for r=1, #pos6 do table.insert(mags, pos6[r]) end end if pos7 ~= nil then for r=1, #pos7 do table.insert(mags, pos7[r]) end end if pos8 ~= nil then for r=1, #pos8 do table.insert(mags, pos8[r]) end end if pos9 ~= nil then for r=1, #pos9 do table.insert(mags, pos9[r]) end end for i,v in ipairs(mags) do if v == cid then table.remove(mags, i) end if getTilePzInfo(getCreaturePosition(v)) then table.remove(mags, i) end end for t=1, #mags do if mags[t] ~= cid and doCombat(cid, combat, var) then doSendMagicEffect((getCreaturePosition(mags[t])), 19) doSendAnimatedText((getCreaturePosition(mags[t])), "Socorro!", 255) doPlayerSetStorageValue(mags[t], 10569, 1) local zxzx = mags[t] function back(zxzx) doPlayerSetStorageValue(zxzx, 10569, -1) end addEvent(back, 5000, zxzx) end end if exhaustion.check(cid, 23006) == false then exhaustion.set(cid, 23006, cooldown) addEvent(mastime, cooldown*1000, cid) return doCombat(cid, combat, var) else doSendMagicEffect(getCreaturePosition(cid), 2) doPlayerSendCancel(cid, "Golpe em cooldown por " ..exhaustion.get(cid, 23006).." segundos") return false end return doCombat(cid, combat, var) end Desde já agradeço a ajuda de voces. Vou improvisar: Em data/creaturescripts/scripts/login.lua Coloque isso em qualquer lugar. setPlayerStorageValue(cid, 10569, -1)
Postado Junho 14, 2022 3 anos Autor 2 minutos atrás, Fabi Marzan disse: Vou improvisar: Em data/creaturescripts/scripts/login.lua Coloque isso em qualquer lugar. setPlayerStorageValue(cid, 10569, -1) if getPlayerStorageValue(cid, 10569) ~= 0 then setPlayerStorageValue(cid, 10569, -1) end nao seria algo assim? não sei, só peguei como exemplo um que já tinha no login.lua
Postado Junho 14, 2022 3 anos 59 minutos atrás, boxxer321 disse: if getPlayerStorageValue(cid, 10569) ~= 0 then setPlayerStorageValue(cid, 10569, -1) end nao seria algo assim? não sei, só peguei como exemplo um que já tinha no login.lua Pode funcionar para você.
Postado Junho 14, 2022 3 anos Autor 19 minutos atrás, Fabi Marzan disse: Pode funcionar para você. Funcionou! Mas eu notei outro erro... Ele tem um Cooldown para usar porém, se tiver npc, players, monstros ao redor, ele consegue soltar a magia antes do cooldown terminar. Mas se não tiver nada em volta, o cooldown funciona... teria como ajudar? Edit -- Consegui consertar! Obrigado! REP+ Editado Junho 14, 2022 3 anos por boxxer321 (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.