DE

Abre-te Sésamo

Por Dekooo, 26 de ago. de 2007 em Actions e Talkactions

script
5.0 (1)
36
7.3k
DekoooD
26 de agosto de 2007 às 12:02

Quem nunca assistiu Alibaba e os 40 ladrões ??

Bom, eu nunca assisti hehe, mas sei que é mais ou menos assim:

 

alibaba1nz4.jpg

 

alibaba2vh6.jpg

 

alibaba3hj7.jpg

 

alibaba4cw7.jpg

 

Legal uma action ativada por alguma coisa que o player fala não é??

Bom, é isso que faz a função OnSay, ela ativa a action atravéz de uma frase/palavra definida por você.

Vou usar essa action das ScreenShots acima como exemplo, então no caso são 2 script, um para abrir a porta e otro pra fexar.

 

1º Passo:

- Crie 2 arquivos .lua, um com o nome de Alibaba e o outro Alibaba2 na pasta data/talkactions.

No Alibaba.lua coloque:

 

No Alibaba.lua coloque:

 

function onSay(cid, text, type)

 

pedrapos = {x=195, y=147, z=7, stackpos=1}

pedra = getThingfromPos(pedrapos)

TruePos = {x=195, y=148, z=7, stackpos=253}

PlayerPos = getPlayerPosition(cid)

 

if type == 1 and PlayerPos.x == TruePos.x and PlayerPos.y == TruePos.y and PlayerPos.z = TruePos.z then

if pedra.itemid == 1304 then

doRemoveItem(pedra.uid,1)

doSendMagicEffect(pedrapos,2)

else

doPlayerSendCancel(cid,"Ja esta aberta.")

end

end

end

 

No Alibaba2.lua coloque:

 

function onSay(cid, text, type)

 

pedrapos = {x=195, y=147, z=7, stackpos=1}

pedra = getThingfromPos(pedrapos)

TruePos = {x=195, y=148, z=7, stackpos=253}

PlayerPos = getPlayerPosition(cid)

 

 

if type == 1 and PlayerPos.x == TruePos.x and PlayerPos.y == TruePos.y and PlayerPos.z = TruePos.z then

if pedra.itemid == 0 then

doCreateItem(1304,1,pedrapos)

doSendMagicEffect(pedrapos,2)

else

doPlayerSendCancel(cid,"Tem algo empedindo a pedra.")

end

end

end

 

Explicando:

pedrapos = Posição da pedra que será removida

PlayerPos = Posição onde o player deve ficar para abrir a porta

1304 = ID da pedra que será removida

 

2º Passo:

 

- Abra talkactions.xml (data/talkactions) e adicione as tags:

<talkaction words="abre-te sesamo" script="alibaba.lua" />

<talkaction words="fexa-te sesamo" script="alibaba2.lua" />

 

Explicando:

abre-te sesamo = É o que o player precisa falar para acionar a quest

alibaba.lua = É o script que será acionado

 

Bom é isso,

Da pra fazer várias coisas interessantes com OnSay

No meu server eu criei uma quest na minha Goblins Mountain, nessa montanha tem uma estátua de goblin, onde se o jogador dizer "Hail goblins" proximo a ela ele ganha 50gp.

Então é só usar a creatividade, e deixar seu server com um toque diferente. ;D

 

Espero que gostem do tutorial

Abraços,

 

Creditos: Vufusuf

 

#Edit

 

O Conde Sapo falo que ta errado, se der erro ae tenta colocar isso..:

 

if type == 1 and PlayerPos.x = TruePos.x and PlayerPos.y = TruePos.y and PlayerPos.z = TruePos.z then

 

 

no lugar de "=" o correto é "=="

 

if type == 1 and PlayerPos.x == TruePos.x and PlayerPos.y == TruePos.y and PlayerPos.z = TruePos.z then

Editado Setembro 7 por Dekoo Sorcerer xD

Maum MigoM
26 de agosto de 2007 às 12:32

Já tinha visto esse :D

Mas é sempre bom estar postando coisas novas...

Acho que muita gente ainda não entende bem sobre talkactions (eu sou uma dessas pessoas ;) )

Muito bom!

Até mais

DerickpgD
26 de agosto de 2007 às 13:19

Kra Mtu roXX Isso vo fala com meu amigo q hostea nosso ot pr a coloka Vlwss!!!flwsss

salvatoreS
26 de agosto de 2007 às 13:24

Esse foi roxxx..

 

Pra mim merece ser enviado para seção Tutoriais

 

Muito bom mesmo!! Continue trazendo esses tutos pro fórum!

 

//Abraços

DekoooD
26 de agosto de 2007 às 13:27

Com certeza eu vou =P

26 de agosto de 2007 às 18:16

Otimo!!!

 

So que eu ajo Q ja Vi Ese Tutorial

 

Nao Sei Aonde

De Qualquer Forma Parabens

 

Abraços

ArchbladeA
26 de agosto de 2007 às 19:18

aehuiaehiuaehiuaehiu :D

que maneiro

muito bom \o

hukzukiH
26 de agosto de 2007 às 23:19

Parabens, como sempre trazendo só coisas boas siahsuihaisuas XD valeu otra vez ;)

DekoooD
27 de agosto de 2007 às 00:08

De nada...

espero sempre estar ajudando :)~

TiubiaT
27 de agosto de 2007 às 03:43

Nussa!!

TÃO DELE ME PERGUNTA OND EU FIZ ISSO NO MEU OT

To falando q é ake ^^

DekoooD
27 de agosto de 2007 às 09:52

#Rafael5000

Nuss, não entendi nada manow :blink:

 

ta confuso seu post :S

lykanL
29 de agosto de 2007 às 19:25

Perfeito Isso!

 

So q qdo faço no meu ot...

Da tudo certim..

 

So q eu falo

a palavra com a pedra i ela nem some nem nda...

 

Como posso arruma isso?

 

meu ot eh Yourots 0.3 8.0

 

Ajuda plx!

DekoooD
29 de agosto de 2007 às 20:21

Você fez tudo de acordo com o tutorial? o.O

 

refaz e testa..

Conde SapoC
30 de agosto de 2007 às 01:24

@Dekoo Sorcerer xD

Parabéns pelo tuto.

mas até os erros de portuquês você copiou...

deveria ter acertado isso antes de postar.

 

você pediu autorização pro Vufusuf pra postar o tuto dele aqui ???

 

aproveita e acerta esse erro... tá errado lá também

if type == 1 and PlayerPos.x = TruePos.x and PlayerPos.y = TruePos.y and PlayerPos.z = TruePos.z then

 

no lugar de "=" o correto é "=="

if type == 1 and PlayerPos.x == TruePos.x and PlayerPos.y == TruePos.y and PlayerPos.z == TruePos.z then

Editado Setembro 9 por Conde Sapo

DekoooD
30 de agosto de 2007 às 09:27

la no tutorial dele num estava escrito " não autorizo copia "

 

quando tem isso eu nem posto