Brasilians OTServ
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Tutorial TalkActions

Ir para baixo

Tutorial TalkActions Empty Tutorial TalkActions

Mensagem por Shynzo Sáb Jun 14, 2008 4:49 pm

HiHo!

Se você não souber programar em lua ou não conhecer direito as funções do SVN(ainda conhecida por muitos como CVS) dê uma olhadinha no tutorial de actions do colex primeiro

PS .: Faço apenas um pedido, se você for postar esse tutorial em outro lugar me mande uma pm me contando onde plz que eu mando o tópico até com o BBC pra não precisar reformatar tudo =)

Pergunta ~> Tá... Vou ler um tutorial de talkactions, mais o que isso faz?!?
Resposta ~> Simples =) Quando o player falar as palavras mágicas vai acontecer alguma coisa.

Começaremos analizando o talkactions.xml (data/talkactions/)
Abra e vai ter alguma coisa parecida com isso:

<?xml version="1.0"?>
<talkactions>
<talkaction words="open sesame" script="example.lua" />
</talkactions>
A parte que nos interessa agora é essa destacada.
Vamos analizá-la:
<talkaction words="open sesame" script="example.lua" />
words(vermelho) .: O que o player deve falar para acontecer alguma coisa
script(verde) .: o arquivo.lua das coisas que irão acontecer qndo o player falar as palavras

Até aqui não temos dúvidas... vamos agora aprender a programar uma talkaction...
Abra a pasta data/talkactions/scripts e crie lá dentro um arquivo chamado base_talkactions.lua...
Cole isso:

Código:
function onSay(cid, words, param)

return 1
end

Essa é a base de toda talkaction, tudo o que você precisar fazer terá que ter isso =)
Vamos "dissecar" essa função onSay...
function onSay(cid, words, param)
cid(vermelho) .: o famoso cid das actions... é o "UID" do player que disse a palavra mágica, para você usar nas funções
words(verde) .: A palavra mágica =)
param(azul) .: é tudo o que vem depois de "...
Exemplo:
exiva "frerety
Nesse caso exiva é a words e frerety é param =) Simples assim =)

TalkActions, assim como actions, podem ser recarregadas (qndo vc altera actions vc não precisa resetar o server para a alteração ter efeito, apenas recarregue elas) com o comando /reload... Apenas use /reload talk e não precisaremos ficar resetando o server toda hora =)

Muito fácil, não? Agora só para vocês irem se acostumando, aqui vai alguns exemplos de como usar:

Exemplo 01 .: Criar uma palavra mágica que remova uma pedra


RemPedra.lua

Código:

function onSay(cid, words, param)

pos = { x=1000, y=1000, z=7, stackpos=1 }
pedra = getThingfromPos(pos)
doRemoveItem(pedra.uid,1)

return 1
end
talkactions.xml


Código:
<talkaction words="open" script="RemPedra.lua" />

Palavra Mágica: open
Exemplo 02 .: Criar uma palavra mágica que mostre o Ml de um player


ShowMl.lua

Código:
function onSay(cid, words, param)

    player = getPlayerByName(param)

    if player > 0 then
 ml = getPlayerMagLevel(player)
 doPlayerSendCancel(cid,param .. "'s ML: " .. ml)
    else
 doPlayerSendCancel(cid,"Please, type a valid player name.")
    end

    return 1
end

talkactions.xml

Código:
<talkaction words="getml" script="ShowML.lua" />

Palavra Mágica: getml "player
Exemplo 03 .: Remover uma parede com limite de distância

RemParDis.lua

function onSay(cid, words, param)

paredepos = { x=1000, y=1000, z=7, stackpos=1 } -- pos da parede
maxdist = 3 -- qntos SQM de distância o player tem que ficar lonje da parede
playerpos = getPlayerPosition(cid)
if math.max(math.abs(playerpos.x-paredepos.x), math.abs(playerpos.y-paredepos.y)) < maxdist then
parede = getThingfromPos(paredepos)
doRemoveItem(parede.uid,1)
doSendAnimatedText(playerpos, "OPEN!", 120)
return 0
else
doPlayerSendCancel(cid,"Fique mais perto")
end
return 1
end

talkactions.xml

Código:

<talkaction words="abrate cesamo" script="RemParDis.lua" />

Palavra Mágica: abrate cesamo
Bom, termina aqui o tutorial... Espero que vocês tenham gostado e... sejam bem vindos à nova geração de OtServers =)

FlW
CyA!
Créditos by Frerety
Shynzo
Shynzo
Knight
Knight

Masculino Número de Mensagens : 144
Idade : 38
Localização : Imbituba/SC
Emprego/lazer : OTServ
Data de inscrição : 19/03/2008

https://brasiliansot.umforum.net

Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste sub-fórum
Não podes responder a tópicos