Ir para conteúdo
  • 0

Talk Action


jhowxd

Pergunta

Boa noite meus queridos, mais um pedido para vc's. Gostaria de duas talkaction acho que é simples ou não rsrsrsr

 

Gostaria da Talk action:

 

!afk / !noafk ( o player da !afk e fica subindo aquela mensagem em amarelo nele falando AFK sabe? E se ele da um !noafk saia o comando )

 

Uma outra assim quando o player morrer, aparecer no lugar onde ele morreu mensagem Morreu! sabe só uma vez em sima do corpo do player em vermelho.

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0

O comando de AFK:

 

Coloque isso no talkactions.xml:

<talkaction words="!afk" event="script" value="afk.lua"/>

 

E crie um arquivo afk.lua na pasta scripts e coloque isso dentro:

 

--[[

Talking Tp/signs/tiles for TFS 0.2+

70%shawak,30%Damadgerz

Idea by Damadgerz

]]--

local time = 1 -- 1 = 1 sec, 2 = 2 sec, ...

 

local say_events = {}

local function SayText(cid)

if isPlayer(cid) == TRUE then

if say_events[getPlayerGUID(cid)] ~= nil then

if isPlayer(cid) == TRUE then

doSendAnimatedText(getPlayerPosition(cid),"Ocupado!", math.random(01,255))

end

say_events[getPlayerGUID(cid)] = addEvent(SayText, time * 100, cid)

end

end

return TRUE

end

function onSay(cid, words, param, channel)

if(param == '') then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.")

return true

end

if param == "on" then

if isPlayer(cid) == TRUE then

doSendAnimatedText(getPlayerPosition(cid),"Ocupado!", math.random(01,255))

end

say_events[getPlayerGUID(cid)] = addEvent(SayText, time * 1000, cid)

doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,"Now, your status is afk.")

elseif param == "off" then

stopEvent(say_events[getPlayerGUID(cid)])

say_events[getPlayerGUID(cid)] = nil

doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,"Now, your status is online.")

end

return TRUE

end

 

 

 

PS: O comando é assim = !afk on/off

 

Script da msg "Morreu!"

 

Em creaturescripts.xml:

<event type="death" name="MsgMorte" script="morreu.lua"/>

 

Crie um arquivo morreu.lua na pasta scripts e coloque isso dentro:

 

function onPrepareDeath(cid, lastHitKiller, mostDamageKiller)

doSendAnimatedText(getCreaturePosition(cid), "Morreu!", 144)

return TRUE

end

 

 

 

PS: Não testei, se der deu, se não der avisa.

Editado por LuckOake
Link para o comentário
Compartilhar em outros sites

  • 0

Rapidim, só corrigir uma coisa no script de afk. Coloquei sem querer um negócio que não era pra estar lá. Substitui seu script por esse:

 

 

--[[

Talking Tp/signs/tiles for TFS 0.2+

70%shawak,30%Damadgerz

Idea by Damadgerz

]]--

local time = 1 -- 1 = 1 sec, 2 = 2 sec, ...

 

local say_events = {}

local function SayText(cid)

if isPlayer(cid) == TRUE then

if say_events[getPlayerGUID(cid)] ~= nil then

if isPlayer(cid) == TRUE then

doSendAnimatedText(getPlayerPosition(cid),"Ocupado!", math.random(01,255))

end

say_events[getPlayerGUID(cid)] = addEvent(SayText, time * 100, cid)

end

end

return TRUE

end

function onSay(cid, words, param, channel)

if(param == '') then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.")

return true

end

if param == "on" then

if isPlayer(cid) == TRUE then

doSendAnimatedText(getPlayerPosition(cid),"Ocupado!", math.random(01,255))

end

say_events[getPlayerGUID(cid)] = addEvent(SayText, time * 1000, cid)

doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,"Now, your status is afk.")

elseif param == "off" then

stopEvent(say_events[getPlayerGUID(cid)])

say_events[getPlayerGUID(cid)] = nil

doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,"Now, your status is online.")

end

return TRUE

end

 

 

 

E quanto à sua dúvida, só modificar nessa linha aqui:

say_events[getPlayerGUID(cid)] = addEvent(SayText, time * 100, cid)

Modifique o 100. Exemplos: 100 = AFK a cada 100 milésimos, 1000 = AFK a cada 1 segundo, 2000 = AFK a cada 2 segundos.

 

OBS: O script da msg "Morreu!" tá funfando certim? To com uma sensação de que cometi um erro nele.

Editado por LuckOake
Link para o comentário
Compartilhar em outros sites

  • 0

É, percebi. Xo arrumar.

 

@jhowxd

 

Substitui o script morreu.lua e coloca isso dentro:

 

 

function onPrepareDeath(cid, lastHitKiller, mostDamageKiller)

doSendAnimatedText(getCreaturePosition(cid), "Morreu!", 144)

return TRUE

end

 

Editado por LuckOake
Link para o comentário
Compartilhar em outros sites

  • 0

Kra o afk ta sussa mas o MOrreu não ta indo não

 

Ops não atualizei a pagina não vi rsrsr mas vou testar

Editado por jhowxd
Link para o comentário
Compartilhar em outros sites

  • 0

Acho que sei porquê tá bugando. É o seguinte, eu atualizei a função do script mas esqueci de atualizar a tag.

 

Substitua isso:

 

<event type="death" name="MsgMorte" script="morreu.lua"/>

 

Por isso:

 

<event type="preparedeath" name="MsgMorte" script="morreu.lua"/>

 

OBS: Se seu server for da versão 9.0 pra cima, não vai funcionar mesmo. A função doSendAnimatedText não existe mais dessa versão em diante.

 

Caso seu server for 9.0 pra cima, substitui seu script por esse:

 

function onPrepareDeath(cid, lastHitKiller, mostDamageKiller)
doCreatureSay(cid, "Morreu!", TALKTYPE_MONSTER)
return true
end

Editado por LuckOake
Link para o comentário
Compartilhar em outros sites

  • 0

Luck era isso mesmo manolo obrigado pela ajuda problema resolvido alterei a tag

 

<event type="preparedeath" name="MsgMorte" script="morreu.lua"/>

 

 

E fico tudo certo podem fechar o tópico!

Vai um RESP+ para vc!!!

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...