Ir para conteúdo
  • Cadastre-se

(Resolvido)AJUDA NPC


Ir para solução Resolvido por Summ,

Posts Recomendados

Boa noite pessoal, eu queria um npc igual ao do global, o do barco

 

exemplo: posso viajar pra 7 cidades free, e 3 pra vip

alguem poderia me ajudar nisso ?

 

uso o sistema vip 

The best VIP system ever

 

OBS: Meu Ot eh Alissow 8.60

 

Darei rep+ pra quem me ajudar

Editado por subhe (veja o histórico de edições)

n35408.gif

Link para o post
Compartilhar em outros sites

Vou te ajudar, estou desenvolvendo o script. 
 
Aguarde um minutinho.
 
--------------------------
 
Bom, não deve ser igual o do global, porque fiz umas modificações em cima de um que já tinha... 
Ai os oufits e parte visual você edita depois no arquivo do NPC, e não no script.
Nesse script você deverá trocar os nomes das Cidades, e a posição de cada uma. Por favor não altere o nome das variáveis, apenas a palavra que o player deverá dizer para ir aquela cidade, por exemplo:
 

elseif msgcontains(msg, 'town 1') then

Você deverá mudar apenas o 'Town 1' entre aspas simples, e só.
 
Segue arquivo .lua que deverá estar dentro da pasta NPC\Scripts

---- NPC DE BARCO, FEITO POR XBLACKWOLF P\ TIBIAKING.

---- EDITAR APENAS AS POSIÇÕES E AS PALAVRAS MÁGICAS: if msgcontains(msg, 'town 1 free') then

---- NO CASO 'TOWN 1 FREE'





town1free = {x=759, y=678, z=7}

town2free = {x=430, y=420, z=6}

town3free = {x=400, y=482, z=6}

town4free = {x=518, y=439, z=6}

town5free = {x=568, y=465, z=7}

town6free = {x=434, y=618, z=7}

town7free = {x=573, y=694, z=7}



town1 = {x=237, y=928, z=7}

town2 = {x=600, y=1052, z=7}

town3 = {x=423, y=1010, z=7}





local focus = 0

local talk_start = 0

local target = 0

local following = false

local attacking = false



function onThingMove(creature, thing, oldpos, oldstackpos, cid, item, frompos, item2, topos)



end





function onCreatureAppear(creature)



end





function onCreatureDisappear(cid, pos)

if focus == cid then

selfSay('Good bye then.')

focus = 0

talk_start = 0

end

end





function onCreatureTurn(creature)



end





function msgcontains(txt, str)

return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))

end





function onCreatureSay(cid, type, msg)

msg = string.lower(msg)

if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then

selfSay('Hiho ' .. getCreatureName(cid) .. '! Anda logo, me diga a onde deseja ir')

focus = cid

talk_start = os.clock()



elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then

selfSay('espera, ' .. getCreatureName(cid) .. '!porra.')



elseif focus == cid then

talk_start = os.clock()



if msgcontains(msg, 'town 1 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town1free)

doSendMagicEffect(town1free,10)

selfSay("Vai")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 2 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town2free)

doSendMagicEffect(town2free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 3 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town3free)

doSendMagicEffect(town3free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 4 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town4free)

doSendMagicEffect(town4free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 5 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town5free)

doSendMagicEffect(town5free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 6 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town6free)

doSendMagicEffect(town6free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 7 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town7free)

doSendMagicEffect(town7free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end





------------------------------------------ VIP Travel -----------------------------------



elseif msgcontains(msg, 'town 1') then

if(getPlayerVipDays(cid) > 0) then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town1)

doSendMagicEffect(town1,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money or VIP Time.")

end

end



elseif msgcontains(msg, 'town 2') then

if(getPlayerVipDays(cid) > 0) then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town2)

doSendMagicEffect(town2,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money or VIP Time.")

end

end



elseif msgcontains(msg, 'town 3') then

if(getPlayerVipDays(cid) > 0) then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town3)

doSendMagicEffect(town3,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money or VIP Time.")

end

end



elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then

selfSay('Bye ' .. creatureGetName(cid) .. ', go back.')

focus = 0

talk_start = 0



elseif msg ~= "" then

selfSay('how? I do not understand!')

talk_state = 0

end

end

end



function onCreatureChangeOutfit(creature)

end



function onThink()

doNpcSetCreatureFocus(focus)

if (os.clock() - talk_start) > 30 then

if focus > 0 then

selfSay('Next please!!...')

end

focus = 0

talk_start = 0

end

if focus ~= 0 then

if getDistanceToCreature(focus) > 5 then

selfSay('Good Bye')

focus = 0

talk_start = 0

end

end

end

 

Agora, em NPC copie um arquivo qualquer de NPC, e substitua:

<npc name="Cpt Sparrow" script="data/npc/scripts/travel_boat.lua" walkinterval="2000" floorchange="0">
	<health now="150" max="150"/>
	<look type="75" head="114" body="0" legs="114" feet="0" addons="2"/>
</npc>

Nesse, você deverá mudar o nome do arquivo, dependendo de como você salvá-lo.

 

Depois no RME adicione o NPC no seu server e teste!

Encontrei um sistema Vip que vc mencionou, se a parte de viajar vip não funcionar me avisa.

 

Abrs,

Editado por xBlackWolf (veja o histórico de edições)

xBlackWolf

THX @Storm Night

Best Avatar Ever

 

9p0FoTd.png

Link para o post
Compartilhar em outros sites

irei testar agora jaja

edito pra dizer se funcionou

 

Ediit: deu um erro aqui 

 

 

Erro no Console

 

[07/02/2015 02:28:22] [Error - Npc interface] 

[07/02/2015 02:28:22] data/npc/scripts/travel_boat.lua:onCreatureSay
[07/02/2015 02:28:22] Description: 
[07/02/2015 02:28:22] data/npc/scripts/travel_boat.lua:373: attempt to call global 'creatureGetName' (a nil value)
[07/02/2015 02:28:22] stack traceback:
[07/02/2015 02:28:22] data/npc/scripts/travel_boat.lua:373: in function <data/npc/scripts/travel_boat.lua:107>
 
[07/02/2015 02:28:24] [Error - Npc interface] 
[07/02/2015 02:28:24] data/npc/scripts/travel_boat.lua:onThink
[07/02/2015 02:28:24] Description: 
[07/02/2015 02:28:24] data/npc/scripts/travel_boat.lua:421: attempt to compare number with nil
[07/02/2015 02:28:24] stack traceback:
[07/02/2015 02:28:24] data/npc/scripts/travel_boat.lua:421: in function <data/npc/scripts/travel_boat.lua:401>

 

quando falo hi, ele fala no Default e não no chat do npc

 e olha o que ele fala.

 

02:35 Arieswar [293]: hi

02:35 Cpt Sparrow: Hiho Arieswar! Anda logo, me diga a onde deseja ir
02:35 Arieswar [293]: yalahar
02:35 Cpt Sparrow: how? I do not understand!
02:35 Arieswar [293]: yes
02:35 Cpt Sparrow: how? I do not understand!

 

 

Fiz o test com o jogador free, e vip, ele fala a mesma coisa

Editado por subhe (veja o histórico de edições)

n35408.gif

Link para o post
Compartilhar em outros sites

O primeiro erro eu arrumei... já o segundo, não tenho idéia, porque no meu ot 10.35 funciona normal e é script de 8.60... tenta agora e ve se da erro.

 

---- NPC DE BARCO, FEITO POR XBLACKWOLF P\ TIBIAKING.

---- EDITAR APENAS AS POSIÇÕES E AS PALAVRAS MÁGICAS: if msgcontains(msg, 'town 1 free') then

---- NO CASO 'TOWN 1 FREE'





town1free = {x=759, y=678, z=7}

town2free = {x=430, y=420, z=6}

town3free = {x=400, y=482, z=6}

town4free = {x=518, y=439, z=6}

town5free = {x=568, y=465, z=7}

town6free = {x=434, y=618, z=7}

town7free = {x=573, y=694, z=7}



town1 = {x=237, y=928, z=7}

town2 = {x=600, y=1052, z=7}

town3 = {x=423, y=1010, z=7}





local focus = 0

local talk_start = 0

local target = 0

local following = false

local attacking = false



function onThingMove(creature, thing, oldpos, oldstackpos, cid, item, frompos, item2, topos)



end





function onCreatureAppear(creature)



end





function onCreatureDisappear(cid, pos)

if focus == cid then

selfSay('Good bye then.')

focus = 0

talk_start = 0

end

end





function onCreatureTurn(creature)



end





function msgcontains(txt, str)

return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))

end





function onCreatureSay(cid, type, msg)

msg = string.lower(msg)

if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then

selfSay('Hiho ' .. getCreatureName(cid) .. '! Anda logo, me diga a onde deseja ir')

focus = cid

talk_start = os.clock()



elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then

selfSay('espera, ' .. getCreatureName(cid) .. '!porra.')



elseif focus == cid then

talk_start = os.clock()



if msgcontains(msg, 'town 1 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town1free)

doSendMagicEffect(town1free,10)

selfSay("Vai")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 2 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town2free)

doSendMagicEffect(town2free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 3 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town3free)

doSendMagicEffect(town3free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 4 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town4free)

doSendMagicEffect(town4free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 5 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town5free)

doSendMagicEffect(town5free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 6 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town6free)

doSendMagicEffect(town6free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 7 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town7free)

doSendMagicEffect(town7free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end





------------------------------------------ VIP Travel -----------------------------------



elseif msgcontains(msg, 'town 1') then

if(getPlayerVipDays(cid) > 0) then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town1)

doSendMagicEffect(town1,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money or VIP Time.")

end

end



elseif msgcontains(msg, 'town 2') then

if(getPlayerVipDays(cid) > 0) then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town2)

doSendMagicEffect(town2,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money or VIP Time.")

end

end



elseif msgcontains(msg, 'town 3') then

if(getPlayerVipDays(cid) > 0) then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town3)

doSendMagicEffect(town3,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money or VIP Time.")

end

end



elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then

selfSay('Bye ' .. getCreatureName(cid) .. ', go back.')

focus = 0

talk_start = 0

elseif msg ~= "" then

selfSay('how? I do not understand!')

talk_state = 0

end

end

end



function onCreatureChangeOutfit(creature)

end



function onThink()

doNpcSetCreatureFocus(focus)

if (os.clock() - talk_start) > 30 then

if focus > 0 then

selfSay('Next please!!...')

end

focus = 0

talk_start = 0

end

if focus ~= 0 then

if getDistanceToCreature(focus) > 5 then

selfSay('Good Bye')

focus = 0

talk_start = 0

end

end

end

Editado por xBlackWolf (veja o histórico de edições)

xBlackWolf

THX @Storm Night

Best Avatar Ever

 

9p0FoTd.png

Link para o post
Compartilhar em outros sites

O primeiro erro eu arrumei... já o segundo, não tenho idéia, porque no meu ot 10.35 funciona normal e é script de 8.60... tenta agora e ve se da erro.

 

---- NPC DE BARCO, FEITO POR XBLACKWOLF P\ TIBIAKING.

---- EDITAR APENAS AS POSIÇÕES E AS PALAVRAS MÁGICAS: if msgcontains(msg, 'town 1 free') then

---- NO CASO 'TOWN 1 FREE'





town1free = {x=759, y=678, z=7}

town2free = {x=430, y=420, z=6}

town3free = {x=400, y=482, z=6}

town4free = {x=518, y=439, z=6}

town5free = {x=568, y=465, z=7}

town6free = {x=434, y=618, z=7}

town7free = {x=573, y=694, z=7}



town1 = {x=237, y=928, z=7}

town2 = {x=600, y=1052, z=7}

town3 = {x=423, y=1010, z=7}





local focus = 0

local talk_start = 0

local target = 0

local following = false

local attacking = false



function onThingMove(creature, thing, oldpos, oldstackpos, cid, item, frompos, item2, topos)



end





function onCreatureAppear(creature)



end





function onCreatureDisappear(cid, pos)

if focus == cid then

selfSay('Good bye then.')

focus = 0

talk_start = 0

end

end





function onCreatureTurn(creature)



end





function msgcontains(txt, str)

return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))

end





function onCreatureSay(cid, type, msg)

msg = string.lower(msg)

if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then

selfSay('Hiho ' .. getCreatureName(cid) .. '! Anda logo, me diga a onde deseja ir')

focus = cid

talk_start = os.clock()



elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then

selfSay('espera, ' .. getCreatureName(cid) .. '!porra.')



elseif focus == cid then

talk_start = os.clock()



if msgcontains(msg, 'town 1 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town1free)

doSendMagicEffect(town1free,10)

selfSay("Vai")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 2 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town2free)

doSendMagicEffect(town2free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 3 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town3free)

doSendMagicEffect(town3free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 4 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town4free)

doSendMagicEffect(town4free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 5 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town5free)

doSendMagicEffect(town5free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 6 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town6free)

doSendMagicEffect(town6free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 7 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town7free)

doSendMagicEffect(town7free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end





------------------------------------------ VIP Travel -----------------------------------



elseif msgcontains(msg, 'town 1') then

if(getPlayerVipDays(cid) > 0) then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town1)

doSendMagicEffect(town1,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money or VIP Time.")

end

end



elseif msgcontains(msg, 'town 2') then

if(getPlayerVipDays(cid) > 0) then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town2)

doSendMagicEffect(town2,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money or VIP Time.")

end

end



elseif msgcontains(msg, 'town 3') then

if(getPlayerVipDays(cid) > 0) then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town3)

doSendMagicEffect(town3,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money or VIP Time.")

end

end



elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then

selfSay('Bye ' .. getCreatureName(cid) .. ', go back.')

focus = 0

talk_start = 0

elseif msg ~= "" then

selfSay('how? I do not understand!')

talk_state = 0

end

end

end



function onCreatureChangeOutfit(creature)

end



function onThink()

doNpcSetCreatureFocus(focus)

if (os.clock() - talk_start) > 30 then

if focus > 0 then

selfSay('Next please!!...')

end

focus = 0

talk_start = 0

end

if focus ~= 0 then

if getDistanceToCreature(focus) > 5 then

selfSay('Good Bye')

focus = 0

talk_start = 0

end

end

end

 

 

vlw parceiro, está funcionando agora

 

só tem um problema, ele fala no Default, nao fala no chat npc, teria como ver isso pra mim ?  

 

OBS: outra coisa que acabei de ver, quando um jogador free fala que quer ir pra cidade vip, ele não responde, poderia botar ele pra falar que não é possivel por qe ele não eh vip ?

poderia botar tbm pra confimar a viagem ?

exp: hi, yalahar, yes

 

ele tah teleportando só em falar o nome da cidade

 

Darei REP+ ><"

Editado por subhe (veja o histórico de edições)

n35408.gif

Link para o post
Compartilhar em outros sites

É só o meu NPC que está falando no default? 

 

Segue com mensagem para free: 

---- NPC DE BARCO, FEITO POR XBLACKWOLF P\ TIBIAKING.

---- EDITAR APENAS AS POSIÇÕES E AS PALAVRAS MÁGICAS: if msgcontains(msg, 'town 1 free') then

---- NO CASO 'TOWN 1 FREE'





town1free = {x=759, y=678, z=7}

town2free = {x=430, y=420, z=6}

town3free = {x=400, y=482, z=6}

town4free = {x=518, y=439, z=6}

town5free = {x=568, y=465, z=7}

town6free = {x=434, y=618, z=7}

town7free = {x=573, y=694, z=7}



town1 = {x=237, y=928, z=7}

town2 = {x=600, y=1052, z=7}

town3 = {x=423, y=1010, z=7}





local focus = 0

local talk_start = 0

local target = 0

local following = false

local attacking = false



function onThingMove(creature, thing, oldpos, oldstackpos, cid, item, frompos, item2, topos)



end





function onCreatureAppear(creature)



end





function onCreatureDisappear(cid, pos)

if focus == cid then

selfSay('Good bye then.')

focus = 0

talk_start = 0

end

end





function onCreatureTurn(creature)



end





function msgcontains(txt, str)

return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))

end





function onCreatureSay(cid, type, msg)

msg = string.lower(msg)

if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then

selfSay('Hiho ' .. getCreatureName(cid) .. '! Anda logo, me diga a onde deseja ir')

focus = cid

talk_start = os.clock()



elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then

selfSay('espera, ' .. getCreatureName(cid) .. '!porra.')



elseif focus == cid then

talk_start = os.clock()



if msgcontains(msg, 'town 1 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town1free)

doSendMagicEffect(town1free,10)

selfSay("Vai")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 2 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town2free)

doSendMagicEffect(town2free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 3 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town3free)

doSendMagicEffect(town3free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 4 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town4free)

doSendMagicEffect(town4free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 5 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town5free)

doSendMagicEffect(town5free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 6 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town6free)

doSendMagicEffect(town6free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 7 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town7free)

doSendMagicEffect(town7free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end





------------------------------------------ VIP Travel -----------------------------------



elseif msgcontains(msg, 'town 1') then

if(getPlayerVipDays(cid) > 0) then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town1)

doSendMagicEffect(town1,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money or VIP Time.")

end
selfSay("Você não tem VIP!")
end



elseif msgcontains(msg, 'town 2') then

if(getPlayerVipDays(cid) > 0) then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town2)

doSendMagicEffect(town2,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money or VIP Time.")

end
selfSay("Você não tem VIP!")
end



elseif msgcontains(msg, 'town 3') then

if(getPlayerVipDays(cid) > 0) then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town3)

doSendMagicEffect(town3,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money or VIP Time.")

end
selfSay("Você não tem VIP!")
end



elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then

selfSay('Bye ' .. getCreatureName(cid) .. ', go back.')

focus = 0

talk_start = 0

elseif msg ~= "" then

selfSay('how? I do not understand!')

talk_state = 0

end

end

end



function onCreatureChangeOutfit(creature)

end



function onThink()

doNpcSetCreatureFocus(focus)

if (os.clock() - talk_start) > 30 then

if focus > 0 then

selfSay('Next please!!...')

end

focus = 0

talk_start = 0

end

if focus ~= 0 then

if getDistanceToCreature(focus) > 5 then

selfSay('Good Bye')

focus = 0

talk_start = 0

end

end

end

xBlackWolf

THX @Storm Night

Best Avatar Ever

 

9p0FoTd.png

Link para o post
Compartilhar em outros sites

 

É só o meu NPC que está falando no default? 

 

Segue com mensagem para free: 

---- NPC DE BARCO, FEITO POR XBLACKWOLF P\ TIBIAKING.

---- EDITAR APENAS AS POSIÇÕES E AS PALAVRAS MÁGICAS: if msgcontains(msg, 'town 1 free') then

---- NO CASO 'TOWN 1 FREE'





town1free = {x=759, y=678, z=7}

town2free = {x=430, y=420, z=6}

town3free = {x=400, y=482, z=6}

town4free = {x=518, y=439, z=6}

town5free = {x=568, y=465, z=7}

town6free = {x=434, y=618, z=7}

town7free = {x=573, y=694, z=7}



town1 = {x=237, y=928, z=7}

town2 = {x=600, y=1052, z=7}

town3 = {x=423, y=1010, z=7}





local focus = 0

local talk_start = 0

local target = 0

local following = false

local attacking = false



function onThingMove(creature, thing, oldpos, oldstackpos, cid, item, frompos, item2, topos)



end





function onCreatureAppear(creature)



end





function onCreatureDisappear(cid, pos)

if focus == cid then

selfSay('Good bye then.')

focus = 0

talk_start = 0

end

end





function onCreatureTurn(creature)



end





function msgcontains(txt, str)

return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))

end





function onCreatureSay(cid, type, msg)

msg = string.lower(msg)

if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then

selfSay('Hiho ' .. getCreatureName(cid) .. '! Anda logo, me diga a onde deseja ir')

focus = cid

talk_start = os.clock()



elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then

selfSay('espera, ' .. getCreatureName(cid) .. '!porra.')



elseif focus == cid then

talk_start = os.clock()



if msgcontains(msg, 'town 1 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town1free)

doSendMagicEffect(town1free,10)

selfSay("Vai")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 2 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town2free)

doSendMagicEffect(town2free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 3 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town3free)

doSendMagicEffect(town3free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 4 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town4free)

doSendMagicEffect(town4free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 5 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town5free)

doSendMagicEffect(town5free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 6 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town6free)

doSendMagicEffect(town6free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end



elseif msgcontains(msg, 'town 7 free') then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town7free)

doSendMagicEffect(town7free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end





------------------------------------------ VIP Travel -----------------------------------



elseif msgcontains(msg, 'town 1') then

if(getPlayerVipDays(cid) > 0) then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town1)

doSendMagicEffect(town1,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money or VIP Time.")

end
selfSay("Você não tem VIP!")
end



elseif msgcontains(msg, 'town 2') then

if(getPlayerVipDays(cid) > 0) then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town2)

doSendMagicEffect(town2,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money or VIP Time.")

end
selfSay("Você não tem VIP!")
end



elseif msgcontains(msg, 'town 3') then

if(getPlayerVipDays(cid) > 0) then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town3)

doSendMagicEffect(town3,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money or VIP Time.")

end
selfSay("Você não tem VIP!")
end



elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then

selfSay('Bye ' .. getCreatureName(cid) .. ', go back.')

focus = 0

talk_start = 0

elseif msg ~= "" then

selfSay('how? I do not understand!')

talk_state = 0

end

end

end



function onCreatureChangeOutfit(creature)

end



function onThink()

doNpcSetCreatureFocus(focus)

if (os.clock() - talk_start) > 30 then

if focus > 0 then

selfSay('Next please!!...')

end

focus = 0

talk_start = 0

end

if focus ~= 0 then

if getDistanceToCreature(focus) > 5 then

selfSay('Good Bye')

focus = 0

talk_start = 0

end

end

end

 

 

sim, somente o seu npc que fala no Default

 

irei test aqui jaja edito

 

Ediit: não funcionou, ficou do mesmo jeito

 

Jogador Free (cidade vip)

 

13:24 Master Of Puppets [12]: hi

13:24 Sparrow: Hiho Master Of Puppets! Anda logo, me diga a onde deseja ir
13:24 Master Of Puppets [12]: alfon

ele não responde nada depois disso

 

Jogador vip, a mesma fala, só que ele é teleportado

 

 

Arrumei essa parte do npc responder o player free, quando tenta ir pra cidade vip

 

só falta 2 coisinhas

 

o npc continua falando no default, e queria tbm que botasse uma confimação na hora que for viajar

 

Voce quer viajar para x cidade por x gold coins?

 

 

OBS: percebi uma coisa agora, o npc fala no default, mais se eu abrir manualmente o chat do npc, ele fala tbm, mais não no chat, no default

 

exemplo: eu falo no chat npc, ele responde no default

e não no chat npc ;x

 

OBS: acho que esse erro do npc nao falar pelo default, é por que o seu ot eh versão 10.x

e o meu eh 8.6, muda algumas funcões

poderia adaptar pra 8.6 ?

Editado por subhe (veja o histórico de edições)

n35408.gif

Link para o post
Compartilhar em outros sites

Desculpe, mas enfrento o mesmo problema no meu OT, estou pesquisando e tentando aprender a adaptar para utilizar o NPC Chat. Vou ficar te devendo.

 

Não sei como ficou seu script dps que vc arrumou, mas segue agora com confirmação:

---- NPC DE BARCO, FEITO POR XBLACKWOLF P\ TIBIAKING.

---- EDITAR APENAS AS POSIÇÕES E AS PALAVRAS MÁGICAS: if msgcontains(msg, 'town 1 free') then

---- NO CASO 'TOWN 1 FREE'





town1free = {x=759, y=678, z=7}

town2free = {x=430, y=420, z=6}

town3free = {x=400, y=482, z=6}

town4free = {x=518, y=439, z=6}

town5free = {x=568, y=465, z=7}

town6free = {x=434, y=618, z=7}

town7free = {x=573, y=694, z=7}



town1 = {x=237, y=928, z=7}

town2 = {x=600, y=1052, z=7}

town3 = {x=423, y=1010, z=7}





local focus = 0

local talk_start = 0

local target = 0

local following = false

local attacking = false



function onThingMove(creature, thing, oldpos, oldstackpos, cid, item, frompos, item2, topos)



end





function onCreatureAppear(creature)



end





function onCreatureDisappear(cid, pos)

if focus == cid then

selfSay('Good bye then.')

focus = 0

talk_start = 0

end

end





function onCreatureTurn(creature)



end





function msgcontains(txt, str)

return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))

end





function onCreatureSay(cid, type, msg)

msg = string.lower(msg)

if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then

selfSay('Hiho ' .. getCreatureName(cid) .. '! Anda logo, me diga a onde deseja ir')

focus = cid

talk_start = os.clock()



elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then

selfSay('espera, ' .. getCreatureName(cid) .. '!porra.')



elseif focus == cid then

talk_start = os.clock()



if msgcontains(msg, 'town 1 free') then
msg = string.lower(msg)
selfSay('Tem certeza que deseja ir a town 1 ?')
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim') and (focus == 0)) and getDistanceToCreature(cid) < 4 then
if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town1free)

doSendMagicEffect(town1free,10)

selfSay("Vai")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end
end



elseif msgcontains(msg, 'town 2 free') then
msg = string.lower(msg)
selfSay('Tem certeza que deseja ir a town 1 ?')
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim') and (focus == 0)) and getDistanceToCreature(cid) < 4 then
if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town2free)

doSendMagicEffect(town2free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end
end



elseif msgcontains(msg, 'town 3 free') then
msg = string.lower(msg)
selfSay('Tem certeza que deseja ir a town 1 ?')
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim') and (focus == 0)) and getDistanceToCreature(cid) < 4 then
if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town3free)

doSendMagicEffect(town3free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end
end


elseif msgcontains(msg, 'town 4 free') then
msg = string.lower(msg)
selfSay('Tem certeza que deseja ir a town 1 ?')
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim') and (focus == 0)) and getDistanceToCreature(cid) < 4 then
if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town4free)

doSendMagicEffect(town4free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end
end


elseif msgcontains(msg, 'town 5 free') then
msg = string.lower(msg)
selfSay('Tem certeza que deseja ir a town 1 ?')
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim') and (focus == 0)) and getDistanceToCreature(cid) < 4 then
if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town5free)

doSendMagicEffect(town5free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end
end


elseif msgcontains(msg, 'town 6 free') then
msg = string.lower(msg)
selfSay('Tem certeza que deseja ir a town 1 ?')
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim') and (focus == 0)) and getDistanceToCreature(cid) < 4 then
if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town6free)

doSendMagicEffect(town6free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end
end


elseif msgcontains(msg, 'town 7 free') then
msg = string.lower(msg)
selfSay('Tem certeza que deseja ir a town 1 ?')
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim') and (focus == 0)) and getDistanceToCreature(cid) < 4 then
if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town7free)

doSendMagicEffect(town7free,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money.")

end
end




------------------------------------------ VIP Travel -----------------------------------



elseif msgcontains(msg, 'town 1') then
msg = string.lower(msg)
selfSay('Tem certeza que deseja ir a town 1 ?')
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim') and (focus == 0)) and getDistanceToCreature(cid) < 4 then
if(getPlayerVipDays(cid) > 0) then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town1)

doSendMagicEffect(town1,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money or VIP Time.")

end
selfSay("Você não tem VIP!")
end
end


elseif msgcontains(msg, 'town 2') then
msg = string.lower(msg)
selfSay('Tem certeza que deseja ir a town 1 ?')
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim') and (focus == 0)) and getDistanceToCreature(cid) < 4 then
if(getPlayerVipDays(cid) > 0) then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town2)

doSendMagicEffect(town2,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money or VIP Time.")

end
selfSay("Você não tem VIP!")
end
end


elseif msgcontains(msg, 'town 3') then
msg = string.lower(msg)
selfSay('Tem certeza que deseja ir a town 1 ?')
if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim') and (focus == 0)) and getDistanceToCreature(cid) < 4 then
if(getPlayerVipDays(cid) > 0) then

if(doPlayerRemoveMoney(cid, 50) == TRUE) then

doTeleportThing(cid,town3)

doSendMagicEffect(town3,10)

selfSay("Let's GO")

focus = 0

talk_start = 0

else

selfSay("Sorry, you don\'t have enough money or VIP Time.")

end
selfSay("Você não tem VIP!")
end
end


elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then

selfSay('Bye ' .. getCreatureName(cid) .. ', go back.')

focus = 0

talk_start = 0

elseif msg ~= "" then

selfSay('how? I do not understand!')

talk_state = 0

end

end

end



function onCreatureChangeOutfit(creature)

end



function onThink()

doNpcSetCreatureFocus(focus)

if (os.clock() - talk_start) > 30 then

if focus > 0 then

selfSay('Next please!!...')

end

focus = 0

talk_start = 0

end

if focus ~= 0 then

if getDistanceToCreature(focus) > 5 then

selfSay('Good Bye')

focus = 0

talk_start = 0

end

end

end

 

Faça suas modificações, e me fala se está funcionando. Não testei. E também se não soube modificar posta seu script que eu ponho a confirmação.

 

Abrs,

xBlackWolf

THX @Storm Night

Best Avatar Ever

 

9p0FoTd.png

Link para o post
Compartilhar em outros sites

testei o seu script, ele nao funcionou, está dando aquele mesmo erro do incio, quando vc fala o nome da cidade, ele fala 

 

 

'how? I do not understand!

 

e não responde mais nada

irei postar o meu script aqui, pq nao consegui fazer as alterações

 

 

---- NPC DE BARCO, FEITO POR XBLACKWOLF P\ TIBIAKING.

 
---- EDITAR APENAS AS POSIÇÕES E AS PALAVRAS MÁGICAS: if msgcontains(msg, 'town 1 free') then
 
---- NO CASO 'TOWN 1 FREE'
 
 
 
 
 
town1free = {x=1555, y=2576, z=6}
 
town2free = {x=430, y=420, z=6}
 
town3free = {x=400, y=482, z=6}
 
town4free = {x=518, y=439, z=6}
 
town5free = {x=568, y=465, z=7}
 
town6free = {x=434, y=618, z=7}
 
town7free = {x=573, y=694, z=7}
 
 
 
town1 = {x=114, y=282, z=6}
 
town2 = {x=600, y=1052, z=7}
 
town3 = {x=423, y=1010, z=7}
 
 
 
 
 
local focus = 0
 
local talk_start = 0
 
local target = 0
 
local following = false
 
local attacking = false
 
 
 
function onThingMove(creature, thing, oldpos, oldstackpos, cid, item, frompos, item2, topos)
 
 
 
end
 
 
 
 
 
function onCreatureAppear(creature)
 
 
 
end
 
 
 
 
 
function onCreatureDisappear(cid, pos)
 
if focus == cid then
 
selfSay('Good bye then.')
 
focus = 0
 
talk_start = 0
 
end
 
end
 
 
 
 
 
function onCreatureTurn(creature)
 
 
 
end
 
 
 
 
 
function msgcontains(txt, str)
 
return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))
 
end
 
 
 
 
 
function onCreatureSay(cid, type, msg)
 
msg = string.lower(msg)
 
if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then
 
selfSay('Olá ' .. getCreatureName(cid) .. '! Anda logo, me diga a onde deseja ir')
 
focus = cid
 
talk_start = os.clock()
 
 
 
elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
 
selfSay('espera, ' .. getCreatureName(cid) .. '!porra.')
 
 
 
elseif focus == cid then
 
talk_start = os.clock()
 
 
 
if msgcontains(msg, 'yalahar') then
 
if(doPlayerRemoveMoney(cid, 50) == TRUE) then
 
doTeleportThing(cid,town1free)
 
doSendMagicEffect(town1free,10)
 
selfSay("Vai")
 
focus = 0
 
talk_start = 0
 
else
 
selfSay("Sorry, you don\'t have enough money.")
 
end
 
 
 
elseif msgcontains(msg, 'town 2 free') then
 
if(doPlayerRemoveMoney(cid, 50) == TRUE) then
 
doTeleportThing(cid,town2free)
 
doSendMagicEffect(town2free,10)
 
selfSay("Let's GO")
 
focus = 0
 
talk_start = 0
 
else
 
selfSay("Sorry, you don\'t have enough money.")
 
end
 
 
 
elseif msgcontains(msg, 'town 3 free') then
 
if(doPlayerRemoveMoney(cid, 50) == TRUE) then
 
doTeleportThing(cid,town3free)
 
doSendMagicEffect(town3free,10)
 
selfSay("Let's GO")
 
focus = 0
 
talk_start = 0
 
else
 
selfSay("Sorry, you don\'t have enough money.")
 
end
 
 
 
elseif msgcontains(msg, 'town 4 free') then
 
if(doPlayerRemoveMoney(cid, 50) == TRUE) then
 
doTeleportThing(cid,town4free)
 
doSendMagicEffect(town4free,10)
 
selfSay("Let's GO")
 
focus = 0
 
talk_start = 0
 
else
 
selfSay("Sorry, you don\'t have enough money.")
 
end
 
 
 
elseif msgcontains(msg, 'town 5 free') then
 
if(doPlayerRemoveMoney(cid, 50) == TRUE) then
 
doTeleportThing(cid,town5free)
 
doSendMagicEffect(town5free,10)
 
selfSay("Let's GO")
 
focus = 0
 
talk_start = 0
 
else
 
selfSay("Sorry, you don\'t have enough money.")
 
end
 
 
 
elseif msgcontains(msg, 'town 6 free') then
 
if(doPlayerRemoveMoney(cid, 50) == TRUE) then
 
doTeleportThing(cid,town6free)
 
doSendMagicEffect(town6free,10)
 
selfSay("Let's GO")
 
focus = 0
 
talk_start = 0
 
else
 
selfSay("Sorry, you don\'t have enough money.")
 
end
 
 
 
elseif msgcontains(msg, 'town 7 free') then
 
if(doPlayerRemoveMoney(cid, 50) == TRUE) then
 
doTeleportThing(cid,town7free)
 
doSendMagicEffect(town7free,10)
 
selfSay("Let's GO")
 
focus = 0
 
talk_start = 0
 
else
 
selfSay("Sorry, you don\'t have enough money.")
 
end
 
 
 
 
 
------------------------------------------ VIP Travel -----------------------------------
 
 
 
elseif msgcontains(msg, 'alfon') then
 
if(getPlayerVipDays(cid) > 0) then
 
if(doPlayerRemoveMoney(cid, 50) == TRUE) then
 
doTeleportThing(cid,town1)
 
doSendMagicEffect(town1,10)
 
selfSay("Let's GO")
 
focus = 0
 
talk_start = 0
 
else
 
selfSay("Sorry, you don\'t have enough money or VIP Time.")
end
 
else
 
selfSay("Você não tem VIP!")
 
end
 
 
 
elseif msgcontains(msg, 'town 2') then
 
if(getPlayerVipDays(cid) > 0) then
 
if(doPlayerRemoveMoney(cid, 50) == TRUE) then
 
doTeleportThing(cid,town2)
 
doSendMagicEffect(town2,10)
 
selfSay("Let's GO")
 
focus = 0
 
talk_start = 0
 
else
 
selfSay("Sorry, you don\'t have enough money or VIP Time.")
end
 
else
 
selfSay("Você não tem VIP!")
 
end
 
 
 
elseif msgcontains(msg, 'town 3') then
 
if(getPlayerVipDays(cid) > 0) then
 
if(doPlayerRemoveMoney(cid, 50) == TRUE) then
 
doTeleportThing(cid,town3)
 
doSendMagicEffect(town3,10)
 
selfSay("Let's GO")
 
focus = 0
 
talk_start = 0
 
else
 
selfSay("Sorry, you don\'t have enough money or VIP Time.")
end
 
else
 
selfSay("Você não tem VIP!")
 
end
 
 
 
elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then
 
selfSay('Bye ' .. getCreatureName(cid) .. ', go back.')
 
focus = 0
 
talk_start = 0
 
elseif msg ~= "" then
 
selfSay('how? I do not understand!')
 
talk_state = 0
 
end
 
end
 
end
 
 
 
function onCreatureChangeOutfit(creature)
 
end
 
 
 
function onThink()
 
doNpcSetCreatureFocus(focus)
 
if (os.clock() - talk_start) > 30 then
 
if focus > 0 then
 
selfSay('Next please!!...')
 
end
 
focus = 0
 
talk_start = 0
 
end
 
if focus ~= 0 then
 
if getDistanceToCreature(focus) > 5 then
 
selfSay('Good Bye')
 
focus = 0
 
talk_start = 0
 
end
 
end
 
end

 

por favor, me ajuda nessa parte da confirmação, irei dar mts rep+ pra vc, por ter me ajudado mt ><'

n35408.gif

Link para o post
Compartilhar em outros sites
--[[
  
      Basta editar os ["town1"], colocando o nome da cidade e a pos dela logo a frente...
      abrçs

]]--

local free = {
		
        ["town1"] = {x= ,y= ,z= },
	["town2"] = {x= ,y= ,z= },
	["town3"] = {x= ,y= ,z= },
	["town4"] = {x= ,y= ,z= },
	["town5"] = {x= ,y= ,z= },
	["town6"] = {x= ,y= ,z= },
	["town7"] = {x= ,y= ,z= }
}
local vip = {
     	
        ["town1"] = {x= ,y= ,z= },
     	["town2"] = {x= ,y= ,z= },
     	["town3"] = {x= ,y= ,z= }
}
local cost = 300

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
npcHandler.topic = {}

function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid)	end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
 
 
function creatureSayCallback(cid, type, msg)
	
	if not npcHandler:isFocused(cid) then
		return false
	end
	
       for city, tp in pairs(free) do
           if msgcontains(msg, city) then
              npcHandler:say('you are sure?', cid)
              npcHandler.topic[cid] = 1
           elseif msgcontains(msg, 'yes') and npcHandler.topic[cid] == 1 then
              if doPlayerRemoveMoney(cid, cost) then
                 doTeleportThing(cid, tp)
                 npcHandler:say('Let\'s GO', cid)
                 npcHandler.topic[cid] = 0
              else
                  npcHandler:say('Sorry, you don\'t have enough money', cid)
                  npcHandler.topic[cid] = 0
              end
           end
       end
       
       
       for citys, tps in pairs(vip) do
           if msgcontains(msg, citys) then
              npcHandler:say('you are sure?', cid)
              npcHandler.topic[cid] = 2
           elseif msgcontains(msg, 'yes') and npcHandler.topic[cid] == 2 then
              if getPlayerPremiumDays(cid) > 0 then
                 if doPlayerRemoveMoney(cid, cost) then
                    doTeleportThing(cid, tps)
                    npcHandler:say('Let\'s GO', cid)
                    npcHandler.topic[cid] = 0 
                 else
                    npcHandler:say('Sorry, you don\'t have enough money', cid)
                    npcHandler.topic[cid] = 0   
                 end
              else
                  npcHandler:say('Você não tem VIP!', cid)
                  npcHandler.topic[cid] = 0
              end
           end
       end
       
       if msgcontains(msg, 'no') then
          npcHandler:say('Bye!', cid)
          npcHandler.topic[cid] = 0
       end
                       
	return true
end
					
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())	
<?xml version="1.0" encoding="UTF-8"?>
<npc name="EDITEAQUI" script="NOMEDOARQUIVO.lua" walkinterval="2000" floorchange="0">
	<health now="100" max="100"/>
	<look type="152" head="95" body="95" legs="29" feet="56" addons="2" corpse="6080"/>
	<parameters>
	<parameter key="message_greet" value="Sejá Bem-Vindo ao Barco, |PLAYERNAME|.Quer viajar para {town1}, {town2}, {town3}, {town4}, {town5}, {town6} dps edita aqui..." /> 
	</parameters>
</npc>
Link para o post
Compartilhar em outros sites

Tem esse meu também, é de fácil configuração.

local keywordHandler = KeywordHandler:new()


local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)

    if not npcHandler:isFocused(cid) then
        return false
    end
    
    local costfree = 100  -- preço do teleport free
    local costvip = 50     -- preço do teleport vip
    
    local position = {
    pos1 = {x = 160, y = 54, z = 7},  -- posição da 1° cidade e assim sucessivamente....
    pos2 = {x = 160, y = 54, z = 7},
    pos3 = {x = 160, y = 54, z = 7},
    pos4 = {x = 160, y = 54, z = 7},
    pos5 = {x = 160, y = 54, z = 7},
    pos6 = {x = 160, y = 54, z = 7},
    pos7 = {x = 160, y = 54, z = 7},
    pos8 = {x = 160, y = 54, z = 7},
    pos9 = {x = 160, y = 54, z = 7},
    pos10 = {x = 160, y = 54, z = 7},
    }
    
    local cidades = {    
    cidade1 = "demon",  -- nomes das cidades.
    cidade2 = "hydra", -- OBS:  onde tiver elseif msgcontains(msg, 'demon') , mude o demon para o mesmo nome da cidade, caso contrario o player ficará perdido
    cidade3 = "drag",
    cidade4 = "bug",
    cidade5 = "wasp",
    cidade6 = "ferumbras",
    cidade7 = "dragon lord",
    cidade8 = "morgaroth",
    cidade9 = "rot",
    cidade10 = "tibia"
    }
     
    if msgcontains(msg, 'travel') or msgcontains(msg, 'TRAVEL') then
    npcHandler:say('Eu posso te levar para '.. cidades.cidade1 .. ' , '.. cidades.cidade2 .. ' , '.. cidades.cidade3 .. ' , '.. cidades.cidade4 .. ' ,'.. cidades.cidade5 .. ' , '.. cidades.cidade6 .. ' , '.. cidades.cidade7 .. ' , '.. cidades.cidade8 .. ' , '.. cidades.cidade9 .. ' , e '.. cidades.cidade10 .. ' por um pequeno custo.', cid)
    elseif msgcontains(msg, 'demon') then
    npcHandler:say('Eu posso te levar para '.. cidades.cidade1 .. ', por uma quantia de '.. costfree .. ' golds.', cid)
    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then
    if doPlayerRemoveMoney(cid, costfree) == TRUE then
    doPlayerRemoveMoney(cid, costfree)
    doTeleportThing(cid, position.pos1)
    else
    npcHandler:say('Desculpe, você não tem o dinheiro para viajar.', cid)
    end
        
    elseif msgcontains(msg, 'hydra') then
    npcHandler:say('Eu posso te levar para '.. cidades.cidade2 .. ', por uma quantia de '.. costfree .. ' golds.', cid)
    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then
    if doPlayerRemoveMoney(cid, costfree) == TRUE then
    doPlayerRemoveMoney(cid, costfree)
    doTeleportThing(cid, position.pos2)
    else
    npcHandler:say('Desculpe, você não tem o dinheiro para viajar.', cid)
    end
    
    
    elseif msgcontains(msg, 'drag') then
    npcHandler:say('Eu posso te levar para '.. cidades.cidade3 .. ', por uma quantia de '.. costfree .. ' golds.', cid)
    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then
    if doPlayerRemoveMoney(cid, costfree) == TRUE then
    doPlayerRemoveMoney(cid, costfree)
    doTeleportThing(cid, position.pos3)
    else
    npcHandler:say('Desculpe, você não tem o dinheiro para viajar.', cid)
    end
    
    elseif msgcontains(msg, 'bug') then
    npcHandler:say('Eu posso te levar para '.. cidades.cidade4 .. ', por uma quantia de '.. costfree .. ' golds.', cid)
    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then
    if doPlayerRemoveMoney(cid, costfree) == TRUE then
    doPlayerRemoveMoney(cid, costfree)
    doTeleportThing(cid, position.pos4)
    else
    npcHandler:say('Desculpe, você não tem o dinheiro para viajar.', cid)
    end
    
    elseif msgcontains(msg, 'wasp') then
    npcHandler:say('Eu posso te levar para '.. cidades.cidade5 .. ', por uma quantia de '.. costfree .. ' golds.', cid)
    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then
    if doPlayerRemoveMoney(cid, costfree) == TRUE then
    doPlayerRemoveMoney(cid, costfree)
    doTeleportThing(cid, position.pos5)
    else
    npcHandler:say('Desculpe, você não tem o dinheiro para viajar.', cid)
    end
    
    elseif msgcontains(msg, 'ferumbras') then
    npcHandler:say('Eu posso te levar para '.. cidades.cidade6 .. ', por uma quantia de '.. costfree .. ' golds.', cid)
    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then
    if doPlayerRemoveMoney(cid, costfree) == TRUE then
    doPlayerRemoveMoney(cid, costfree)
    doTeleportThing(cid, position.pos6)
    else
    npcHandler:say('Desculpe, você não tem o dinheiro para viajar.', cid)
    end
    
    elseif msgcontains(msg, 'dragon lord') then
    npcHandler:say('Eu posso te levar para '.. cidades.cidade7 .. ', por uma quantia de '.. costfree .. ' golds.', cid)
    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then
    if doPlayerRemoveMoney(cid, costfree) == TRUE then
    doPlayerRemoveMoney(cid, costfree)
    doTeleportThing(cid, position.pos7)
    else
    npcHandler:say('Desculpe, você não tem o dinheiro para viajar.', cid)
    end
    
    elseif msgcontains(msg, 'morgaroth') then
    npcHandler:say('Eu posso te levar para '.. cidades.cidade8 .. ', por uma quantia de '.. costvip .. ' golds.', cid)
    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then
    if doPlayerRemoveMoney(cid, costvip) == TRUE then
    doPlayerRemoveMoney(cid, costvip)
    doTeleportThing(cid, position.pos8)
    else
    npcHandler:say('Desculpe, você não tem o dinheiro para viajar.', cid)
    end
    
    elseif msgcontains(msg, 'rot') then
    npcHandler:say('Eu posso te levar para '.. cidades.cidade9 .. ', por uma quantia de '.. costvip .. ' golds.', cid)
    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then
    if doPlayerRemoveMoney(cid, costvip) == TRUE then
    doPlayerRemoveMoney(cid, costvip)
    doTeleportThing(cid, position.pos9)
    else
    npcHandler:say('Desculpe, você não tem o dinheiro para viajar.', cid)
    end
    
    elseif msgcontains(msg, 'tibia') then
    npcHandler:say('Eu posso te levar para '.. cidades.cidade10 .. ', por uma quantia de '.. costvip .. ' golds.', cid)
    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then
    if doPlayerRemoveMoney(cid, costvip) == TRUE then
    doPlayerRemoveMoney(cid, costvip)
    doTeleportThing(cid, position.pos10)
    else
    npcHandler:say('Desculpe, você não tem o dinheiro para viajar.', cid)
    end
    
    return true
        end
        end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Testado em um servidor 8.60 e funcionou perfeitamente.

Te ajudei?
Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta"

 

Skype: JoadsonAion

Link para o post
Compartilhar em outros sites

No caso do NPC Chat, o probema é simples:

Pegue por exemplo essa fala de seu NPC:

selfSay("Sorry, you don\'t have enough money.")

Agora pegue como exemplo essa outra mensagem:

selfSay('Sorry, you don\'t have enough money.', cid)

Percebeu alguma diferença?

O cid no final faz com que o NPC fale as falas dele no NPC Chat, se não tiver o cid, ele fala no default.

cms1-pr%C3%AAmio.png

Link para o post
Compartilhar em outros sites

 

 

function onLove()

    if getPlayerTrueLove(cid, girlfriend) then

        doPlayerBeHappy(cid, true)

        if not getPlayerNerdStyle(cid) then

            doRemoveVirginity(cid, girlfriend)

            doAddSkillTry(cid, SKILL_FUCK, 1)

        else

            doSendCancel(cid,"you need to change your outfit, nerds don't fuck!")

        end

    else

        doSendCancel(cid,"you do not know how good it feels to be loved")

    end

end

 

 

essa parte eu coloco ond ?

n35408.gif

Link para o post
Compartilhar em outros sites

Tem esse meu também, é de fácil configuração.

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)

NpcSystem.parseParameters(npcHandler)

local talkState = {}

function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end

function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end

function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end

function onThink() npcHandler:onThink() end

function creatureSayCallback(cid, type, msg)

    if not npcHandler:isFocused(cid) then

        return false

    end

    

    local costfree = 100  -- preço do teleport free

    local costvip = 50     -- preço do teleport vip

    

    local position = {

    pos1 = {x = 160, y = 54, z = 7},  -- posição da 1° cidade e assim sucessivamente....

    pos2 = {x = 160, y = 54, z = 7},

    pos3 = {x = 160, y = 54, z = 7},

    pos4 = {x = 160, y = 54, z = 7},

    pos5 = {x = 160, y = 54, z = 7},

    pos6 = {x = 160, y = 54, z = 7},

    pos7 = {x = 160, y = 54, z = 7},

    pos8 = {x = 160, y = 54, z = 7},

    pos9 = {x = 160, y = 54, z = 7},

    pos10 = {x = 160, y = 54, z = 7},

    }

    

    local cidades = {    

    cidade1 = "demon",  -- nomes das cidades.

    cidade2 = "hydra", -- OBS:  onde tiver elseif msgcontains(msg, 'demon') , mude o demon para o mesmo nome da cidade, caso contrario o player ficará perdido

    cidade3 = "drag",

    cidade4 = "bug",

    cidade5 = "wasp",

    cidade6 = "ferumbras",

    cidade7 = "dragon lord",

    cidade8 = "morgaroth",

    cidade9 = "rot",

    cidade10 = "tibia"

    }

     

    if msgcontains(msg, 'travel') or msgcontains(msg, 'TRAVEL') then

    npcHandler:say('Eu posso te levar para '.. cidades.cidade1 .. ' , '.. cidades.cidade2 .. ' , '.. cidades.cidade3 .. ' , '.. cidades.cidade4 .. ' ,'.. cidades.cidade5 .. ' , '.. cidades.cidade6 .. ' , '.. cidades.cidade7 .. ' , '.. cidades.cidade8 .. ' , '.. cidades.cidade9 .. ' , e '.. cidades.cidade10 .. ' por um pequeno custo.', cid)

    elseif msgcontains(msg, 'demon') then

    npcHandler:say('Eu posso te levar para '.. cidades.cidade1 .. ', por uma quantia de '.. costfree .. ' golds.', cid)

    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then

    if doPlayerRemoveMoney(cid, costfree) == TRUE then

    doPlayerRemoveMoney(cid, costfree)

    doTeleportThing(cid, position.pos1)

    else

    npcHandler:say('Desculpe, você não tem o dinheiro para viajar.', cid)

    end

        

    elseif msgcontains(msg, 'hydra') then

    npcHandler:say('Eu posso te levar para '.. cidades.cidade2 .. ', por uma quantia de '.. costfree .. ' golds.', cid)

    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then

    if doPlayerRemoveMoney(cid, costfree) == TRUE then

    doPlayerRemoveMoney(cid, costfree)

    doTeleportThing(cid, position.pos2)

    else

    npcHandler:say('Desculpe, você não tem o dinheiro para viajar.', cid)

    end

    

    

    elseif msgcontains(msg, 'drag') then

    npcHandler:say('Eu posso te levar para '.. cidades.cidade3 .. ', por uma quantia de '.. costfree .. ' golds.', cid)

    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then

    if doPlayerRemoveMoney(cid, costfree) == TRUE then

    doPlayerRemoveMoney(cid, costfree)

    doTeleportThing(cid, position.pos3)

    else

    npcHandler:say('Desculpe, você não tem o dinheiro para viajar.', cid)

    end

    

    elseif msgcontains(msg, 'bug') then

    npcHandler:say('Eu posso te levar para '.. cidades.cidade4 .. ', por uma quantia de '.. costfree .. ' golds.', cid)

    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then

    if doPlayerRemoveMoney(cid, costfree) == TRUE then

    doPlayerRemoveMoney(cid, costfree)

    doTeleportThing(cid, position.pos4)

    else

    npcHandler:say('Desculpe, você não tem o dinheiro para viajar.', cid)

    end

    

    elseif msgcontains(msg, 'wasp') then

    npcHandler:say('Eu posso te levar para '.. cidades.cidade5 .. ', por uma quantia de '.. costfree .. ' golds.', cid)

    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then

    if doPlayerRemoveMoney(cid, costfree) == TRUE then

    doPlayerRemoveMoney(cid, costfree)

    doTeleportThing(cid, position.pos5)

    else

    npcHandler:say('Desculpe, você não tem o dinheiro para viajar.', cid)

    end

    

    elseif msgcontains(msg, 'ferumbras') then

    npcHandler:say('Eu posso te levar para '.. cidades.cidade6 .. ', por uma quantia de '.. costfree .. ' golds.', cid)

    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then

    if doPlayerRemoveMoney(cid, costfree) == TRUE then

    doPlayerRemoveMoney(cid, costfree)

    doTeleportThing(cid, position.pos6)

    else

    npcHandler:say('Desculpe, você não tem o dinheiro para viajar.', cid)

    end

    

    elseif msgcontains(msg, 'dragon lord') then

    npcHandler:say('Eu posso te levar para '.. cidades.cidade7 .. ', por uma quantia de '.. costfree .. ' golds.', cid)

    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then

    if doPlayerRemoveMoney(cid, costfree) == TRUE then

    doPlayerRemoveMoney(cid, costfree)

    doTeleportThing(cid, position.pos7)

    else

    npcHandler:say('Desculpe, você não tem o dinheiro para viajar.', cid)

    end

    

    elseif msgcontains(msg, 'morgaroth') then

    npcHandler:say('Eu posso te levar para '.. cidades.cidade8 .. ', por uma quantia de '.. costvip .. ' golds.', cid)

    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then

    if doPlayerRemoveMoney(cid, costvip) == TRUE then

    doPlayerRemoveMoney(cid, costvip)

    doTeleportThing(cid, position.pos8)

    else

    npcHandler:say('Desculpe, você não tem o dinheiro para viajar.', cid)

    end

    

    elseif msgcontains(msg, 'rot') then

    npcHandler:say('Eu posso te levar para '.. cidades.cidade9 .. ', por uma quantia de '.. costvip .. ' golds.', cid)

    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then

    if doPlayerRemoveMoney(cid, costvip) == TRUE then

    doPlayerRemoveMoney(cid, costvip)

    doTeleportThing(cid, position.pos9)

    else

    npcHandler:say('Desculpe, você não tem o dinheiro para viajar.', cid)

    end

    

    elseif msgcontains(msg, 'tibia') then

    npcHandler:say('Eu posso te levar para '.. cidades.cidade10 .. ', por uma quantia de '.. costvip .. ' golds.', cid)

    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then

    if doPlayerRemoveMoney(cid, costvip) == TRUE then

    doPlayerRemoveMoney(cid, costvip)

    doTeleportThing(cid, position.pos10)

    else

    npcHandler:say('Desculpe, você não tem o dinheiro para viajar.', cid)

    end

    

    return true

        end

        end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

Testado em um servidor 8.60 e funcionou perfeitamente.

 

@Joadson esse seu script funciona, mais todos os jogadores free podem ir para as cidades vips

@Fywell  kkkkkkk tinha percebido não ASuHAHus

 

então parceiro, o seu script da um erro aqui, teria como me ajudar ?

 

Erro apresentado

 

[10/02/2015 13:31:32] [Error - LuaScriptInterface::loadFile] data/npc/scripts/travel_boat.lua:11: unexpected symbol near ','

[10/02/2015 13:31:32] [Warning - NpcScript::NpcScript] Cannot load script: data/npc/scripts/travel_boat.lua
[10/02/2015 13:31:32] data/npc/scripts/travel_boat.lua:11: unexpected symbol near ','

n35408.gif

Link para o post
Compartilhar em outros sites

Tô modifcando aqui, jaja edito e posto com o sistema de vip

Editado por joadson (veja o histórico de edições)

Te ajudei?
Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta"

 

Skype: JoadsonAion

Link para o post
Compartilhar em outros sites

vou modificar, qual é a storage de VIP no seu server?

ou é premium account normal?

eh vip, não sei como ver storage ;x

seria isso ? 11223

qualquer coisa dê uma olhada no meu system vip

The best VIP system ever! 

peguei no otland

n35408.gif

Link para o post
Compartilhar em outros sites

Aqui, modifiquei, mas não pude testar...
Deu preguiça de instalar o sistema de VIP kk

local keywordHandler = KeywordHandler:new()


local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)

    if not npcHandler:isFocused(cid) then
        return false
    end
    
    local costfree = 100  -- preço do teleport free
    local costvip = 50     -- preço do teleport vip
    
    local position = {
    pos1 = {x = 160, y = 54, z = 7},  -- posição da 1° cidade e assim sucessivamente....
    pos2 = {x = 160, y = 54, z = 7},
    pos3 = {x = 160, y = 54, z = 7},
    pos4 = {x = 160, y = 54, z = 7},
    pos5 = {x = 160, y = 54, z = 7},
    pos6 = {x = 160, y = 54, z = 7},
    pos7 = {x = 160, y = 54, z = 7},
    pos8 = {x = 160, y = 54, z = 7},
    pos9 = {x = 160, y = 54, z = 7},
    pos10 = {x = 160, y = 54, z = 7},
    }
    
    local cidades = {    
    cidade1 = "demon",  -- nomes das cidades.
    cidade2 = "hydra", -- OBS:  onde tiver elseif msgcontains(msg, 'demon') , mude o demon para o mesmo nome da cidade, caso contrario o player ficará perdido
    cidade3 = "drag",
    cidade4 = "bug",
    cidade5 = "wasp",
    cidade6 = "ferumbras",
    cidade7 = "dragon lord",
    cidade8 = "morgaroth",
    cidade9 = "rot",
    cidade10 = "tibia"
    }
     
    if msgcontains(msg, 'travel') or msgcontains(msg, 'TRAVEL') then
    npcHandler:say('Eu posso te levar para '.. cidades.cidade1 .. ' , '.. cidades.cidade2 .. ' , '.. cidades.cidade3 .. ' , '.. cidades.cidade4 .. ' ,'.. cidades.cidade5 .. ' , '.. cidades.cidade6 .. ' , '.. cidades.cidade7 .. ' , '.. cidades.cidade8 .. ' , '.. cidades.cidade9 .. ' , e '.. cidades.cidade10 .. ' por um pequeno custo.', cid)
    elseif msgcontains(msg, 'demon') then
    npcHandler:say('Eu posso te levar para '.. cidades.cidade1 .. ', por uma quantia de '.. costfree .. ' golds.', cid)
    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then
    if doPlayerRemoveMoney(cid, costfree) == TRUE then
    doPlayerRemoveMoney(cid, costfree)
    doTeleportThing(cid, position.pos1)
    else
    npcHandler:say('Desculpe, você não tem o dinheiro para viajar.', cid)
    end
        
    elseif msgcontains(msg, 'hydra') then
    npcHandler:say('Eu posso te levar para '.. cidades.cidade2 .. ', por uma quantia de '.. costfree .. ' golds.', cid)
    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then
    if doPlayerRemoveMoney(cid, costfree) == TRUE then
    doPlayerRemoveMoney(cid, costfree)
    doTeleportThing(cid, position.pos2)
    else
    npcHandler:say('Desculpe, você não tem o dinheiro para viajar.', cid)
    end
    
    
    elseif msgcontains(msg, 'drag') then
    npcHandler:say('Eu posso te levar para '.. cidades.cidade3 .. ', por uma quantia de '.. costfree .. ' golds.', cid)
    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then
    if doPlayerRemoveMoney(cid, costfree) == TRUE then
    doPlayerRemoveMoney(cid, costfree)
    doTeleportThing(cid, position.pos3)
    else
    npcHandler:say('Desculpe, você não tem o dinheiro para viajar.', cid)
    end
    
    elseif msgcontains(msg, 'bug') then
    npcHandler:say('Eu posso te levar para '.. cidades.cidade4 .. ', por uma quantia de '.. costfree .. ' golds.', cid)
    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then
    if doPlayerRemoveMoney(cid, costfree) == TRUE then
    doPlayerRemoveMoney(cid, costfree)
    doTeleportThing(cid, position.pos4)
    else
    npcHandler:say('Desculpe, você não tem o dinheiro para viajar.', cid)
    end
    
    elseif msgcontains(msg, 'wasp') then
    npcHandler:say('Eu posso te levar para '.. cidades.cidade5 .. ', por uma quantia de '.. costfree .. ' golds.', cid)
    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then
    if doPlayerRemoveMoney(cid, costfree) == TRUE then
    doPlayerRemoveMoney(cid, costfree)
    doTeleportThing(cid, position.pos5)
    else
    npcHandler:say('Desculpe, você não tem o dinheiro para viajar.', cid)
    end
    
    elseif msgcontains(msg, 'ferumbras') then
    npcHandler:say('Eu posso te levar para '.. cidades.cidade6 .. ', por uma quantia de '.. costfree .. ' golds.', cid)
    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then
    if doPlayerRemoveMoney(cid, costfree) == TRUE then
    doPlayerRemoveMoney(cid, costfree)
    doTeleportThing(cid, position.pos6)
    else
    npcHandler:say('Desculpe, você não tem o dinheiro para viajar.', cid)
    end
    
    elseif msgcontains(msg, 'dragon lord') then
    npcHandler:say('Eu posso te levar para '.. cidades.cidade7 .. ', por uma quantia de '.. costfree .. ' golds.', cid)
    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then
    if doPlayerRemoveMoney(cid, costfree) == TRUE then
    doPlayerRemoveMoney(cid, costfree)
    doTeleportThing(cid, position.pos7)
    else
    npcHandler:say('Desculpe, você não tem o dinheiro para viajar.', cid)
    end
    
    elseif msgcontains(msg, 'morgaroth') then
    npcHandler:say('Eu posso te levar para '.. cidades.cidade8 .. ', basta você ser VIP', cid)
    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then
    if getPlayerVipDays(cid) >= 1 then
    doTeleportThing(cid, position.pos8)
    else
    npcHandler:say('Desculpe, você precisa ser VIP.', cid)
    end
    
    elseif msgcontains(msg, 'rot') then
    npcHandler:say('Eu posso te levar para '.. cidades.cidade9 .. ', basta você ser VIP', cid)
    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then
    if getPlayerVipDays(cid) >= 1 then
    doTeleportThing(cid, position.pos9)
    else
    npcHandler:say('Desculpe, você precisa ser VIP.', cid)
    end
    
    elseif msgcontains(msg, 'tibia') then
    npcHandler:say('Eu posso te levar para '.. cidades.cidade10 .. ', basta você ser VIP', cid)
    elseif msgcontains(msg, 'yes') or msgcontains(msg, 'yes') then
    if getPlayerVipDays(cid) >= 1 then
    doTeleportThing(cid, position.pos10)
    else
    npcHandler:say('Desculpe, você precisa ser VIP.', cid)
    end
    
    return true
        end
        end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Te ajudei?
Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta"

 

Skype: JoadsonAion

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo