Ir para conteúdo

Posts Recomendados

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 por Dekoo Sorcerer xD
Link para o comentário
https://xtibia.com/forum/topic/60630-abre-te-s%C3%A9samo/
Compartilhar em outros sites

  • Respostas 35
  • Created
  • Última resposta

Top Posters In This Topic

@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 por Conde Sapo
Link para o comentário
https://xtibia.com/forum/topic/60630-abre-te-s%C3%A9samo/#findComment-373294
Compartilhar em outros sites


×
×
  • Criar Novo...