Ir para conteúdo
  • Cadastre-se

(Resolvido)AJUDA NPC


Ir para solução Resolvido por Summ,

Posts Recomendados

Irei testar, jaja edito

 

Ediit: ele ainda continua levando players free pras cidades vips ;x

 

Ediit2: eu falo com o npc, hi, yalahar, yes, (yalahar eh free), eele vai pra yalahar normal,

ai eu falo hi, alfon, yes (alfon eh vip), ai ele vai pra yalahar :S

trokei certinho as posx yalahar eh a 1 e alfon eh a 8

 

 

   local position = {

    pos1 = {x=1555, y=2576, z=6},  -- 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=114, y=282, z=6},
    pos9 = {x = 160, y = 54, z = 7},
    pos10 = {x = 160, y = 54, z = 7},
Editado por subhe (veja o histórico de edições)

n35408.gif

Link para o post
Compartilhar em outros sites

Vou reler tudo aqui, devo ter me passado em algo...
Vou instalar o sistema de VIP assim, posso usar em futuros scripts também.

Breve edito aqui com o resultado.

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

Arrumeei o script do Fywell, está funcionando perfeitamente :D

 

@Fywell Reputado  :accept:

 

@Joadson obrigado por tentar ajudar  Reputado  :accept:

 

 

segue o script arrumado

 

local free = {

 
        ["yalahar"] = {x=1555, y=2576, z=6},
["edron"] = {x=1555, y=2576, z=6},
["goroma"] = {x=0, y=0, z=0},
["smallville"] = {x=0, y=0, z=0},
["top"] = {x=0, y=0, z=0},
["lv"] = {x=0, y=0, z=0},
["go"] = {x=0, y=0, z=0}
}
local vip = {
     
        ["alfon"] = {x=114 ,y=282 ,z=6},
      ["everwood"] = {x=0 ,y=0 ,z=0},
      ["nunca"] = {x=0 ,y=0 ,z=0}
}
local cost = 100
 
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(getPlayerVipDays(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())

 

Só fiz mudar isso

 

 

["town1"] = {x= ,y= ,z= },

 

por isso

 

 

["town1"] = {x=y=z= },

 

e isso

 

 

if getPlayerPremiumDays(cid) > 0 then

 

por isso

 

 

if(getPlayerVipDays(cid) > 0) then
Editado por subhe (veja o histórico de edições)

n35408.gif

Link para o post
Compartilhar em outros sites

No script dele é só trocar isso if getPlayerPremiumDays(cid) > 0 then por isso if getPlayerVipDays(cid) > 0 then

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

e as virgulas no começo estavam errado, por isso estava ocorrendo o erro 

mais está funcionando agora

 

os 2 foram Reputados :)

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

n35408.gif

Link para o post
Compartilhar em outros sites

Para fechar o tópico é só selecionar alguma resposta como "melhor resposta", fechará automaticamente.

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

aff kk 

achei um bug no script

 

eu são 7 city free e 3 vips

 

falo com o npc, ir pra pra tal city free, e só vai pra goroma, todas que eu falo, só vai pra goroma

e as vips a mesma coisa, falo com qualquer uma das 3, e só vai pra 1

 

alguem pode me ajudar nisso ??

 

 

local free = {

 
        ["yalahar"] = {x=1555, y=2576, z=6},
["anknor"] = {x=487, y=261, z=6},
["goroma"] = {x=1367, y=195, z=6},
["smallville"] = {x=1995, y=2394, z=6},
["venonh"] = {x=238, y=370, z=6},
["alfon"] = {x=114, y=282, z=6},
["dorion"] = {x=31, y=79, z=6}
}
local vip = {
     
        ["everwood"] = {x=10386, y=10311, z=6},
      ["falelfia"] = {x=1348, y=1155, z=6},
      ["nunca"] = {x=114 ,y=282 ,z=6}
}
local cost = 100
 
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('você tem certeza que quer viajar por 100 gold coin ?', 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('Desculpe, você não tem dinheiro suficiente', cid)
                  npcHandler.topic[cid] = 0
              end
           end
       end
       
       
       for citys, tps in pairs(vip) do
           if msgcontains(msg, citys) then
              npcHandler:say('você tem certeza que quer viajar por 100 gold coin ?', cid)
              npcHandler.topic[cid] = 2
           elseif msgcontains(msg, 'yes') and npcHandler.topic[cid] == 2 then
              if(getPlayerVipDays(cid) > 0) then
                 if doPlayerRemoveMoney(cid, cost) then
                    doTeleportThing(cid, tps)
                    npcHandler:say('Let\'s GO', cid)
                    npcHandler.topic[cid] = 0 
                 else
                    npcHandler:say('Desculpe, você não tem dinheiro suficiente', 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('Tchau! Volte Logo', cid)
          npcHandler.topic[cid] = 0
       end
                       
return true
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

n35408.gif

Link para o post
Compartilhar em outros sites

Tenta assim :

local free = {
	-- ["nome da city"] = {posx, posy, posz}
	
	["yalahar"] = {1555, 2576, 6},
	["anknor"] = {487, 261, 6},
	["goroma"] = {1367, 195, 6},
	["smallville"] = {1995, 2394, 6},
	["venonh"] = {238, 370, 6},
	["alfon"] = {114, 282, 6},
	["dorion"] = {31, 79, 6}
}
local vip = {
     
      ["everwood"] = {1086, 10311, 6},
      ["falelfia"] = {1348, 1155, 6},
      ["nunca"] = {114, 282, 6}
}
local cost = 100
 
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('você tem certeza que quer viajar por 100 gold coin ?', cid)
              npcHandler.topic[cid] = 1
           elseif msgcontains(msg, 'yes') and npcHandler.topic[cid] == 1 then
              if doPlayerRemoveMoney(cid, cost) then
                 doTeleportThing(cid, {x=tp[1], y=tp[2], z=tp[3]})
                 npcHandler:say('Let\'s GO', cid)
                 npcHandler.topic[cid] = 0
              else
                  npcHandler:say('Desculpe, você não tem dinheiro suficiente', cid)
                  npcHandler.topic[cid] = 0
              end
           end
       end
       
       
       for citys, tps in pairs(vip) do
           if msgcontains(msg, citys) then
              npcHandler:say('você tem certeza que quer viajar por 100 gold coin ?', cid)
              npcHandler.topic[cid] = 2
           elseif msgcontains(msg, 'yes') and npcHandler.topic[cid] == 2 then
              if(getPlayerVipDays(cid) > 0) then
                 if doPlayerRemoveMoney(cid, cost) then
                    doTeleportThing(cid, {x=tps[1], y=tps[2], z=tps[3]})
                    npcHandler:say('Let\'s GO', cid)
                    npcHandler.topic[cid] = 0 
                 else
                    npcHandler:say('Desculpe, você não tem dinheiro suficiente', 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('Tchau! Volte Logo', cid)
          npcHandler.topic[cid] = 0
       end
                       
return true
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

EQD4Qy4.gif

Link para o post
Compartilhar em outros sites

 

Tenta assim :

local free = {
	-- ["nome da city"] = {posx, posy, posz}
	
	["yalahar"] = {1555, 2576, 6},
	["anknor"] = {487, 261, 6},
	["goroma"] = {1367, 195, 6},
	["smallville"] = {1995, 2394, 6},
	["venonh"] = {238, 370, 6},
	["alfon"] = {114, 282, 6},
	["dorion"] = {31, 79, 6}
}
local vip = {
     
      ["everwood"] = {1086, 10311, 6},
      ["falelfia"] = {1348, 1155, 6},
      ["nunca"] = {114, 282, 6}
}
local cost = 100
 
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('você tem certeza que quer viajar por 100 gold coin ?', cid)
              npcHandler.topic[cid] = 1
           elseif msgcontains(msg, 'yes') and npcHandler.topic[cid] == 1 then
              if doPlayerRemoveMoney(cid, cost) then
                 doTeleportThing(cid, {x=tp[1], y=tp[2], z=tp[3]})
                 npcHandler:say('Let\'s GO', cid)
                 npcHandler.topic[cid] = 0
              else
                  npcHandler:say('Desculpe, você não tem dinheiro suficiente', cid)
                  npcHandler.topic[cid] = 0
              end
           end
       end
       
       
       for citys, tps in pairs(vip) do
           if msgcontains(msg, citys) then
              npcHandler:say('você tem certeza que quer viajar por 100 gold coin ?', cid)
              npcHandler.topic[cid] = 2
           elseif msgcontains(msg, 'yes') and npcHandler.topic[cid] == 2 then
              if(getPlayerVipDays(cid) > 0) then
                 if doPlayerRemoveMoney(cid, cost) then
                    doTeleportThing(cid, {x=tps[1], y=tps[2], z=tps[3]})
                    npcHandler:say('Let\'s GO', cid)
                    npcHandler.topic[cid] = 0 
                 else
                    npcHandler:say('Desculpe, você não tem dinheiro suficiente', 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('Tchau! Volte Logo', cid)
          npcHandler.topic[cid] = 0
       end
                       
return true
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

da o mesmo bug, todas as citys free vai pra goroma, e as premy, só vai pra falelfia ;x

up

n35408.gif

Link para o post
Compartilhar em outros sites

Não sei o porque de não funcionar com o for sendo que o valor retorna normal aqui no meu scite, então fiz o npc sem o uso do for (do jeito que eu não queria) ... mas pelo menos  vai funcionar 100%.

 

Coloquei o código no pastebin por motivos de organização.

 

http://pastebin.com/rGZ6qPnD

 

é o mesmo código só que no hastebin.

 

http://hastebin.com/gademoyuka.vhd

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

EQD4Qy4.gif

Link para o post
Compartilhar em outros sites

da esse erro 

 

[12/02/2015 12:38:34] [Error - LuaScriptInterface::loadFile] data/npc/scripts/travel_boat.lua:133: unexpected symbol near 'then'

[12/02/2015 12:38:34] [Warning - NpcScript::NpcScript] Cannot load script: data/npc/scripts/travel_boat.lua
[12/02/2015 12:38:34] data/npc/scripts/travel_boat.lua:133: unexpected symbol near 'then'

n35408.gif

Link para o post
Compartilhar em outros sites

está funcionando, mais tem um problema, tem 2 cidades que nao da pra viajar

 

olha o que acontece

 

13:15 Cpt Sparrow: Sejá Bem-Vindo ao Barco, Arieswar.Eu posso te levar para cidades free dorion, yalahar, alfon, venonh, anknor, smallville, goroma e também posso te levar para cidades vips everwood, falelfia.. Onde Deseja Ir ?

13:15 Arieswar [293]: venonh
13:15 Cpt Sparrow: você tem certeza que quer viajar por 100 gold coin ?
13:15 Cpt Sparrow: Tchau! Volte Logo
13:15 Arieswar [293]: anknor
13:15 Cpt Sparrow: você tem certeza que quer viajar por 100 gold coin ?
13:15 Cpt Sparrow: Tchau! Volte Logo

 

essas duas cidades nao da pra viajar

eu falo yes, mais nao acontece nada, as outras cidades viaja normal

 

 

13:17 Cpt Sparrow: Sejá Bem-Vindo ao Barco, Arieswar.Eu posso te levar para cidades free dorion, yalahar, alfon, venonh, anknor, smallville, goroma e também posso te levar para cidades vips everwood, falelfia.. Onde Deseja Ir ?

13:17 Arieswar [293]: yalahar
13:17 Cpt Sparrow: você tem certeza que quer viajar por 100 gold coin ?
13:17 Arieswar [293]: yes
13:17 Cpt Sparrow: Let's GO
13:17 Cpt Sparrow: How rude!

n35408.gif

Link para o post
Compartilhar em outros sites
  • Solução

arrumado :

 

http://pastebin.com/rGZ6qPnD

 

se funcionar marque como melhor resposta pro tópico ficar como resolvido.

EQD4Qy4.gif

Link para o post
Compartilhar em outros sites

irei testar, jaja edito

 

cara funcionou, muito obrigado

 

Reputado  :accept:

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

n35408.gif

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