Quem nunca assistiu Alibaba e os 40 ladrões ??
Bom, eu nunca assisti hehe, mas sei que é mais ou menos assim:
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