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:
A parte que nos interessa agora é essa destacada.<?xml version="1.0"?><talkactions>
<talkaction words="open sesame" script="example.lua" />
</talkactions>
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:
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.luafunction onSay(cid, words, param) pos = { x=1000, y=1000, z=7, stackpos=1 } pedra = getThingfromPos(pos) doRemoveItem(pedra.uid,1) return 1 endtalkactions.xml
<talkaction words="open" script="RemPedra.lua" />Palavra Mágica: open
Exemplo 02 .: Criar uma palavra mágica que mostre o Ml de um player
Exemplo 03 .: Remover uma parede com limite de distânciaShowMl.luafunction 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 endtalkactions.xml
<talkaction words="getml" script="ShowML.lua" />Palavra Mágica: getml "player
Bom, termina aqui o tutorial... Espero que vocês tenham gostado e... sejam bem vindos à nova geração de OtServers =)RemParDis.luafunction 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 endtalkactions.xml
<talkaction words="abrate cesamo" script="RemParDis.lua" />Palavra Mágica: abrate cesamo
FlW
CyA!