Ir para conteúdo
Entre para seguir isso  
frerety

TalkActions - 7.9+

Recommended Posts

frerety    0
frerety

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

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)

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

end
talkactions.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

end
talkactions.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
frerety

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

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)

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

end
talkactions.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

end
talkactions.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
FireHell

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
FireHell

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   
Convidado MattBewolf

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
Jackson Zani

bom tuto

muito útil

valeu! abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites
bruxo    0
bruxo

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
rivcdrigo

boa cara otimo tuto...

continue assim =D

t+

 

100 posts =D

Compartilhar este post


Link para o post
Compartilhar em outros sites
jonatas    0
jonatas

CARA MUITO BOM,CONTINUE ASSIM wink.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites
ogrim_dooh    0
ogrim_dooh

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
!Jã!

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
bananinhao

eh,

 

daohra, eu nun tinha entendido mas agora entendi

 

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites
raphal    0
raphal

Muito bom e bem explicao ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites
Vampoxy    0
Vampoxy

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
higor_gremista

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
Kaotar

Muito bom o tuto kara, continue assim, happy.gif

vc tem futuro

flw Xd

Compartilhar este post


Link para o post
Compartilhar em outros sites
Loopback    0
Loopback

Bouaaa xDD Parabens isso é rox pra caraiii

Compartilhar este post


Link para o post
Compartilhar em outros sites
Loopback    0
Loopback

Bouaaa xDD Parabens isso é rox pra caraiii

Compartilhar este post


Link para o post
Compartilhar em outros sites
Loopback    0
Loopback

Bouaaa xDD Parabens isso é rox pra caraiii

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×