frerety 0 #1 Postado 10 Fevereiro, 2007 HiHo! 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 que você definir num arquivo .lua 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" /> 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 endEssa é a base de toda talkaction, tudo o que você precisar fazer terá que ter isso =)Vamos "dissecar" essa função onSay... function onSay(cid) 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 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 function 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 ShowMl.lua 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 endtalkactions.xml <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 <talkaction words="abrate cesamo" script="RemParDis.lua" /> Palavra Mágica: abrate cesamo Bom, termina aqui o tutorial... Bem simples, não? Mas... o que você está esperando? Vá logo começar a criar suas talkactions FlW CyA! Compartilhar este post Link para o post Compartilhar em outros sites
frerety 0 #2 Postado 10 Fevereiro, 2007 HiHo! 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 que você definir num arquivo .lua 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" /> 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 endEssa é a base de toda talkaction, tudo o que você precisar fazer terá que ter isso =)Vamos "dissecar" essa função onSay... function onSay(cid) 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 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 function 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 ShowMl.lua 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 endtalkactions.xml <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 <talkaction words="abrate cesamo" script="RemParDis.lua" /> Palavra Mágica: abrate cesamo Bom, termina aqui o tutorial... Bem simples, não? Mas... o que você está esperando? Vá logo começar a criar suas talkactions FlW CyA! Compartilhar este post Link para o post Compartilhar em outros sites
FireHell 0 #3 Postado 10 Fevereiro, 2007 Já temos um tutorial para isso... http://forum.otserv.com.br/viewtopic.php?t=6623 ;~ ____ Hmm, entendi. Aquele era seu tuto mesmo, só que pela metade certo? Portanto aprovado ;P Desculpe o transtorno. Compartilhar este post Link para o post Compartilhar em outros sites
FireHell 0 #4 Postado 10 Fevereiro, 2007 Já temos um tutorial para isso... http://forum.otserv.com.br/viewtopic.php?t=6623 ;~ ____ Hmm, entendi. Aquele era seu tuto mesmo, só que pela metade certo? Portanto aprovado ;P Desculpe o transtorno. Compartilhar este post Link para o post Compartilhar em outros sites
Convidado MattBewolf #5 Postado 26 Fevereiro, 2007 Poderia me ajudar a fazer outra coisa? Queria fazer APARECER algo no lugar em vez de sumir, teria como? Tipo falar algo e aparecer um teleporte. Compartilhar este post Link para o post Compartilhar em outros sites
Jackson Zani 1 #6 Postado 26 Fevereiro, 2007 bom tuto muito útil valeu! abraços! Compartilhar este post Link para o post Compartilhar em outros sites
bruxo 0 #7 Postado 7 Março, 2007 Tem algum limite de caracteres? Tipo, eu coloquei pro player falar um poema inteiro... ainda não testei se vai funcionar, mas eu espero que sim ^^. Ps.: Frerety vc por aqui? o.O Espero que continue por aqui ^^. Compartilhar este post Link para o post Compartilhar em outros sites
rivcdrigo 0 #8 Postado 22 Maio, 2007 boa cara otimo tuto... continue assim =D t+ 100 posts =D Compartilhar este post Link para o post Compartilhar em outros sites
jonatas 0 #9 Postado 22 Maio, 2007 CARA MUITO BOM,CONTINUE ASSIM Compartilhar este post Link para o post Compartilhar em outros sites
ogrim_dooh 0 #10 Postado 23 Maio, 2007 Bouaaa XD Cara eu naum sabia mecher com essas paradas, vlw mesmo... Da para fazer altas coisas com isso XD Flws Compartilhar este post Link para o post Compartilhar em outros sites
!Jã! 0 #11 Postado 23 Maio, 2007 Hmm... Interessante... (ar intelectual) aEhEAUIOaHEuAEIhaeuih Nah velho, tah muito bom, bem explicado, só que vc c perdeu um pouco no BBCODE aih.. Dah uma arrumada q fika lgl xD Vai ser bem útil, não to muito acostumado com as "novas actions" do 7.9x... Ow velho, c tu puder fazer um tuto de actions "movements" tb vai ser bem útil cara.. Aquilo vive dando conflito pqp, uma [Palavrão Censurado] ¬¬" mas vlw aih o tuto ;D fuiz Compartilhar este post Link para o post Compartilhar em outros sites
bananinhao 0 #12 Postado 24 Junho, 2007 eh, daohra, eu nun tinha entendido mas agora entendi vlw Compartilhar este post Link para o post Compartilhar em outros sites
raphal 0 #13 Postado 25 Junho, 2007 Muito bom e bem explicao ^^ Compartilhar este post Link para o post Compartilhar em outros sites
Vampoxy 0 #14 Postado 18 Julho, 2007 eu to aprendendo ainda e keria saber se tem algum full talkactions tuto? Oq representa o: "stackpos=1" ? e da pra eu fazer sumir + de 1 item por vez? to usando o seu exemplo 03 vlw Compartilhar este post Link para o post Compartilhar em outros sites
higor_gremista 0 #15 Postado 20 Julho, 2007 Bom tópco pergunta meio ignorante mais... funfa pra 8.0? fLws Compartilhar este post Link para o post Compartilhar em outros sites
Kaotar 5 #16 Postado 21 Julho, 2007 Muito bom o tuto kara, continue assim, vc tem futuro flw Xd Compartilhar este post Link para o post Compartilhar em outros sites
Loopback 0 #17 Postado 30 Julho, 2007 Bouaaa xDD Parabens isso é rox pra caraiii Compartilhar este post Link para o post Compartilhar em outros sites
Loopback 0 #18 Postado 30 Julho, 2007 Bouaaa xDD Parabens isso é rox pra caraiii Compartilhar este post Link para o post Compartilhar em outros sites
Loopback 0 #19 Postado 30 Julho, 2007 Bouaaa xDD Parabens isso é rox pra caraiii Compartilhar este post Link para o post Compartilhar em outros sites