Postado Janeiro 16, 2018 7 anos existe alguma possibilidade de quando puxar uma alavanca esse globalevent seja ativado? help plos (esse globalevent ativa um efeito em todos os jogadores online, que fica aparecendo "2x EXP" a cada 7 seg) Citar function onThink(interval, lastExecution) for _, name in ipairs(getOnlinePlayers()) do local cid = getPlayerByName(name) if getPlayerGroupId(cid) < 4 then doSendAnimatedText(getPlayerPosition(cid), "2x EXP", 251) doSendMagicEffect(getPlayerPosition(cid), 27) doSendMagicEffect(getPlayerPosition(cid), 30) local spot = getThingPosition(cid) doSendDistanceShoot({x = spot.x + 1, y = spot.y + 1, z = spot.z}, spot, 34) doSendDistanceShoot({x = spot.x - 1, y = spot.y - 1, z = spot.z}, spot, 34) doSendDistanceShoot({x = spot.x + 1, y = spot.y - 1, z = spot.z}, spot, 34) doSendDistanceShoot({x = spot.x - 1, y = spot.y + 1, z = spot.z}, spot, 34) doSendDistanceShoot({x = spot.x + 1, y = spot.y + 0, z = spot.z}, spot, 34) doSendDistanceShoot({x = spot.x + 0, y = spot.y + 1, z = spot.z}, spot, 34) doSendDistanceShoot({x = spot.x - 1, y = spot.y + 0, z = spot.z}, spot, 34) doSendDistanceShoot({x = spot.x + 0, y = spot.y - 1, z = spot.z}, spot, 34) end end return true end Editado Janeiro 16, 2018 7 anos por poko360 (veja o histórico de edições)
Postado Janeiro 20, 2018 7 anos Tente isso: function onUse(player, item, fromPosition, target, toPosition) for _, name in ipairs(getOnlinePlayers()) do local cid = getPlayerByName(name) if getPlayerGroupId(cid) < 4 then doSendAnimatedText(getPlayerPosition(cid), "2x EXP", 251) doSendMagicEffect(getPlayerPosition(cid), 27) doSendMagicEffect(getPlayerPosition(cid), 30) local spot = getThingPosition(cid) doSendDistanceShoot({x = spot.x + 1, y = spot.y + 1, z = spot.z}, spot, 34) doSendDistanceShoot({x = spot.x - 1, y = spot.y - 1, z = spot.z}, spot, 34) doSendDistanceShoot({x = spot.x + 1, y = spot.y - 1, z = spot.z}, spot, 34) doSendDistanceShoot({x = spot.x - 1, y = spot.y + 1, z = spot.z}, spot, 34) doSendDistanceShoot({x = spot.x + 1, y = spot.y + 0, z = spot.z}, spot, 34) doSendDistanceShoot({x = spot.x + 0, y = spot.y + 1, z = spot.z}, spot, 34) doSendDistanceShoot({x = spot.x - 1, y = spot.y + 0, z = spot.z}, spot, 34) doSendDistanceShoot({x = spot.x + 0, y = spot.y - 1, z = spot.z}, spot, 34) end end return true end Adiciona uma tag de use no actions.xml e coloca o action na alavanca pelo map editor. Programador PHP, Lua, Java, database administrator. "Nada é verdade, tudo é permitido." Requiescat in pace.
Postado Janeiro 20, 2018 7 anos 11 minutos atrás, Nazo disse: Tente isso: function onUse(player, item, fromPosition, target, toPosition) for _, name in ipairs(getOnlinePlayers()) do local cid = getPlayerByName(name) if getPlayerGroupId(cid) < 4 then doSendAnimatedText(getPlayerPosition(cid), "2x EXP", 251) doSendMagicEffect(getPlayerPosition(cid), 27) doSendMagicEffect(getPlayerPosition(cid), 30) local spot = getThingPosition(cid) doSendDistanceShoot({x = spot.x + 1, y = spot.y + 1, z = spot.z}, spot, 34) doSendDistanceShoot({x = spot.x - 1, y = spot.y - 1, z = spot.z}, spot, 34) doSendDistanceShoot({x = spot.x + 1, y = spot.y - 1, z = spot.z}, spot, 34) doSendDistanceShoot({x = spot.x - 1, y = spot.y + 1, z = spot.z}, spot, 34) doSendDistanceShoot({x = spot.x + 1, y = spot.y + 0, z = spot.z}, spot, 34) doSendDistanceShoot({x = spot.x + 0, y = spot.y + 1, z = spot.z}, spot, 34) doSendDistanceShoot({x = spot.x - 1, y = spot.y + 0, z = spot.z}, spot, 34) doSendDistanceShoot({x = spot.x + 0, y = spot.y - 1, z = spot.z}, spot, 34) end end return true end Adiciona uma tag de use no actions.xml e coloca o action na alavanca pelo map editor. Não vai enviar a cada 7 segundos, mais fácil a alavanca adicionar um storage em todos players do jogo, e verificar esse storage na execução do onThink.
Postado Janeiro 20, 2018 7 anos 2 minutos atrás, Mono Singed disse: Não vai enviar a cada 7 segundos, mais fácil a alavanca adicionar um storage em todos players do jogo, e verificar esse storage na execução do onThink. Nem li o código, segundo ele já funciona, ué, só passei pra alavanca. Programador PHP, Lua, Java, database administrator. "Nada é verdade, tudo é permitido." Requiescat in pace.
Postado Janeiro 20, 2018 7 anos 18 minutos atrás, Nazo disse: Nem li o código, segundo ele já funciona, ué, só passei pra alavanca. A intenção é justamente o globalevent só ser executado quando os players tiverem a storage (na verdade o autor do post deixou ambíguo, mas se ele quiser o efeito a cada 7s, só do jeito que eu fiz, mesmo), o script da alavanca vai ficar algo do tipo: --O problema aqui é que vai precisar de outro script para retirar a storage, por isso acho melhor fazer ele por talkaction do que por action function onUse(player, item, fromPosition, target, toPosition) local strg = 50030 for _, name in ipairs(getOnlinePlayers()) do local cid = getPlayerByName(name) if getPlayerGroupId(cid) < 4 and getCreatureStorage(cid, strg) < 1 then doCreatureSetStorage(cid, strg, 1) end end return true end e o do globalevent: function onThink(interval, lastExecution) local strg = 50030 for _, name in ipairs(getOnlinePlayers()) do local cid = getPlayerByName(name) if getPlayerGroupId(cid) < 4 and getCreatureStorage(cid, strg) == 1 then doSendAnimatedText(getPlayerPosition(cid), "2x EXP", 251) doSendMagicEffect(getPlayerPosition(cid), 27) doSendMagicEffect(getPlayerPosition(cid), 30) local spot = getThingPosition(cid) doSendDistanceShoot({x = spot.x + 1, y = spot.y + 1, z = spot.z}, spot, 34) doSendDistanceShoot({x = spot.x - 1, y = spot.y - 1, z = spot.z}, spot, 34) doSendDistanceShoot({x = spot.x + 1, y = spot.y - 1, z = spot.z}, spot, 34) doSendDistanceShoot({x = spot.x - 1, y = spot.y + 1, z = spot.z}, spot, 34) doSendDistanceShoot({x = spot.x + 1, y = spot.y + 0, z = spot.z}, spot, 34) doSendDistanceShoot({x = spot.x + 0, y = spot.y + 1, z = spot.z}, spot, 34) doSendDistanceShoot({x = spot.x - 1, y = spot.y + 0, z = spot.z}, spot, 34) doSendDistanceShoot({x = spot.x + 0, y = spot.y - 1, z = spot.z}, spot, 34) end end return true end Editado Janeiro 20, 2018 7 anos por Mono Singed (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.