Skymagnum 234 Postado Outubro 21, 2012 Share Postado Outubro 21, 2012 (editado) Tipo: Talkaction e Função. Testada: Não. @Oque Ela Faz?. Bem ela solta efeitos e palavras de acordo com oque foi digitado no comando por tantas vezes e por um intervalo também estipulados no comando. @Como Usar?. Oscript explica somente você ler ele bêm. @Instalando.... Primeiro abra a pasta do seu servidor vá em DATA e depois em LIB e entre em 050 - FUNCTION e adicione o seguinte conteúdo lá: function doSendEffectAndWords(cid, type, words, rounds, interval) if isCreature(cid) then doSendMagicEffect(getThingPos(cid), type) doSendAnimatedText(getThingPos(cid), words, math.random(1, 255)) if rounds ~= 1 then addEvent(doSendEffectAndWords, interval * 1000, getThingPos(cid), type, words, rounds - 1) end end end agora vá em talkactions entre na pasta scripts duplique algum arquivo e adicione o seguinte conteúdo nele: function onSay(cid, words, param) if getPlayerStorageValue(cid, 38263) > 0 then return doPlayerSendCancel(cid, "Você já esta sob efeito da talkaction.") end local t = string.explode(param, ",") if not tonumber(t[1]) or not tostring(t[2]) or not tonumber(t[3]) or not tonumber(t[4]) then return doPlayerSendCancel(cid, "Algum parâmetro está incorreto. !comando efeito, palavras, quantas vezes irá repetir, intervalo entre os efeitos e palavras(em segundos).") end doSendEffectAndWords(cid, t[1], t[2], t[3], t[4]) return true end agora em talkactions.xml adicione a seguinte tag: <talkaction log="yes" words="!efeito" access="3" event="script" value="nome_do_script.lua"/> reparam como o ACESS é 3 então só cargos acima de senior tutores poderão usa-lo. É isso aí espero que gostem. Editado Outubro 21, 2012 por Skymagnum Link para o comentário https://xtibia.com/forum/topic/197109-efeito/ Compartilhar em outros sites More sharing options...
Demonbholder 420 Postado Outubro 22, 2012 Share Postado Outubro 22, 2012 (editado) Muito interessante a função, acho que poderia ainda deixar escolher a cor do texto em um dos parâmetros da função. No mais, ta ótimo! Editado Outubro 22, 2012 por Demonbholder Link para o comentário https://xtibia.com/forum/topic/197109-efeito/#findComment-1369369 Compartilhar em outros sites More sharing options...
xxxcrimsxxx 0 Postado Outubro 22, 2012 Share Postado Outubro 22, 2012 Mt bom, talvez vo usar `-` Link para o comentário https://xtibia.com/forum/topic/197109-efeito/#findComment-1369668 Compartilhar em outros sites More sharing options...
Spectrusz 3 Postado Outubro 22, 2012 Share Postado Outubro 22, 2012 Todo mundo diz isso, mas é verdade, eu estou procurando saber isso direito a algumas semanas, obrigado por compartilhar! Ótimo tutorial! Link para o comentário https://xtibia.com/forum/topic/197109-efeito/#findComment-1369677 Compartilhar em outros sites More sharing options...
brun123 369 Postado Outubro 23, 2012 Share Postado Outubro 23, 2012 (editado) sua função está ok, mas a talkaction tem um problema, está faltando limitar alguns parâmetros... se o player fizer algo do tipo "!comando 10, Olá, 100000000000, 0", o server vai ser obrigado a executar a função 100000000000 vezes no mesmo instante (já que o addEvent vai ter delay sempre 0), sem falar que o player pode aumentar ainda mais esse nº e ficar usando a talkaction diversas vezes, causando um provável freeze no server, e talvez (não sei), mandar muitos effects e animated texts assim pode causar debug Editado Outubro 23, 2012 por brun123 Link para o comentário https://xtibia.com/forum/topic/197109-efeito/#findComment-1370137 Compartilhar em outros sites More sharing options...
Skymagnum 234 Postado Outubro 23, 2012 Autor Share Postado Outubro 23, 2012 (editado) @UP Mais creio que só um idiota faria isso. function onSay(cid, words, param) if getPlayerStorageValue(cid, 38263) > 0 then return doPlayerSendCancel(cid, "Você já esta sob efeito da talkaction.") end local t = string.explode(param, ",") if tonumber(t[3]) > 100 then return doPlayerSendCancel(cid, "Você não pode soltar o efeito por mais de 100 vezes") end if tonumber(t[4]) < 1 or tonumber(t[4]) > 10 then return doPlayerSendCancel(cid, "O delay minimo é 1 e o máximo 10.") end if not tonumber(t[1]) or not tostring(t[2]) or not tonumber(t[3]) or not tonumber(t[4]) then return doPlayerSendCancel(cid, "Algum parâmetro está incorreto. !comando efeito, palavras, quantas vezes irá repetir, intervalo entre os efeitos e palavras(em segundos).") end doSendEffectAndWords(cid, t[1], t[2], t[3], t[4]) return true end Editado Outubro 23, 2012 por Skymagnum Link para o comentário https://xtibia.com/forum/topic/197109-efeito/#findComment-1370299 Compartilhar em outros sites More sharing options...
Demonbholder 420 Postado Outubro 23, 2012 Share Postado Outubro 23, 2012 Mas como a talkaction é restrita para senior tutores, acho que isso não ia acontecer. Link para o comentário https://xtibia.com/forum/topic/197109-efeito/#findComment-1370446 Compartilhar em outros sites More sharing options...
Posts Recomendados