Efeito

Skymagnum
em Actions e Talkactions

Skymagnum

Hamburguer
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 02/08/12Posts: 1025Char no Tibia: Maurolkit

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.

jeoz.png

Demonbholder

avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 13/10/08Posts: 1551Char no Tibia: Demonbholder

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!

Oie :D

xxxcrimsxxx

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 19/09/08Posts: 39Char no Tibia: nohave

Mt bom, talvez vo usar `-`

brun123

vash
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 24/09/06Posts: 512

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

5303fg1.png

Skymagnum

Hamburguer
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 02/08/12Posts: 1025Char no Tibia: Maurolkit

@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

jeoz.png

Demonbholder

avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 13/10/08Posts: 1551Char no Tibia: Demonbholder

Mas como a talkaction é restrita para senior tutores, acho que isso não ia acontecer.

Oie :D