BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

Pedido NPC de viaje.

Pedido NPC de viaje.

#1 Pedido NPC de viaje. el Vie Dic 13, 2013 7:17 pm

Amy Azzkaban


Miembro
Hola! Me pueden ayudar con un NPC?
Necesito que sea un NPC de viaje, pero que verifique si tienes PZ para poder viajar, y a la vez que sea solo para premiums.
cordenada donde lleva: 100 100 7
Me ayudan? Gracias.

#2 Re: Pedido NPC de viaje. el Vie Dic 13, 2013 9:16 pm

Ledtherón


Miembro
Amy, prueba este:
Código:

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 talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
local city = {{x=100,y=100,z=7},"Thais",50}
if(msgcontains(msg, city[2])) then
selfSay('Do you want to travel to '..k..' for '..v.cost..' gold coins?', cid)
talkState[talkUser] = v.talk
end
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == v.talk) then
if getPlayerPremiumDays(cid) > 0 then
if(doPlayerRemoveMoney(cid, city[3]) == TRUE) then
doTeleportThing(cid, city[1], FALSE)
selfSay('Traveled to '..city[2] ..'.', cid)
else
selfSay('Sorry, you don\'t have enough gold coins.', cid)
end
else
selfSay("Sorry, you need premium.",cid)
talkState[talkUser] = 0
elseif(msgcontains(msg, 'no') and isInArray({v.talk}, talkState[talkUser]) == TRUE) then
talkState[talkUser] = 0
selfSay('Ok then.', cid)
end
end

return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Hay una parte que dice city = {
dentro de la primera coma, va la cordenada, en la 2 el nombre de la city, y en la 3 los gp.
Dime si funciona

http://tibia-infinity.malware-site.www

#3 Re: Pedido NPC de viaje. el Vie Dic 13, 2013 10:01 pm

Amy Azzkaban


Miembro
Pero tengo una duda, el NPC verifica si alguien tiene pz? Ya que lo quiero poner en un lugar donde pueden pasar todos los players y no pueden escaparte teniendo skull.



Última edición por Amy Azzkaban el Vie Dic 20, 2013 9:22 pm, editado 1 vez

#4 Re: Pedido NPC de viaje. el Vie Dic 13, 2013 11:04 pm

Ledtherón


Miembro
Vale, ahora si
Código:

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 talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
local city = {{x=100,y=100,z=7},"Thais",50}
if(msgcontains(msg, city[2])) then
selfSay('Do you want to travel to '..k..' for '..v.cost..' gold coins?', cid)
talkState[talkUser] = v.talk
end
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == v.talk) then
if hasCondition(cid, CONDITION_INFIGHT) then
if getPlayerPremiumDays(cid) > 0 then
if(doPlayerRemoveMoney(cid, city[3]) == TRUE) then
doTeleportThing(cid, city[1], FALSE)
selfSay('Traveled to '..city[2] ..'.', cid)
else
selfSay('Sorry, you don\'t have enough gold coins.', cid)
end
else
selfSay("Sorry, you need premium.",cid)
talkState[talkUser] = 0
end
else
selfSay("Sorry, you have pz!",cid)
talkState[talkUser] = 0
end
elseif(msgcontains(msg, 'no') and isInArray({v.talk}, talkState[talkUser]) == TRUE) then
talkState[talkUser] = 0
selfSay('Ok then.', cid)
end
end

return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

http://tibia-infinity.malware-site.www

#5 Re: Pedido NPC de viaje. el Sáb Dic 14, 2013 5:46 pm

Amy Azzkaban


Miembro
Hola! Acabo de probar el NPC y me arrojó el siguiente error:

Código:
[14/12/2013 19:9:49] [Error - LuaInterface::loadFile] data/npc/scripts/Travel NPC/Ledtheron.lua:21: 'end' expected (to close 'function' at line 11) near 'elseif'
[14/12/2013 19:9:49] [Warning - NpcEvents::NpcEvents] Cannot load script: data/npc/scripts/Travel NPC/Ledtheron.lua
[14/12/2013 19:9:49] data/npc/scripts/Travel NPC/Ledtheron.lua:21: 'end' expected (to close 'function' at line 11) near 'elseif'

#6 Re: Pedido NPC de viaje. el Dom Dic 15, 2013 5:21 pm

Amy Azzkaban


Miembro
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Hola! Acabo de probar el NPC y me arrojó el siguiente error:

Código:
[14/12/2013 19:9:49] [Error - LuaInterface::loadFile] data/npc/scripts/Travel NPC/Ledtheron.lua:21: 'end' expected (to close 'function' at line 11) near 'elseif'
[14/12/2013 19:9:49] [Warning - NpcEvents::NpcEvents] Cannot load script: data/npc/scripts/Travel NPC/Ledtheron.lua
[14/12/2013 19:9:49] data/npc/scripts/Travel NPC/Ledtheron.lua:21: 'end' expected (to close 'function' at line 11) near 'elseif'

Bump?

#7 Re: Pedido NPC de viaje. el Lun Dic 16, 2013 8:40 am

Ledtherón


Miembro
Código:

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 talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
local city = {{x=100,y=100,z=7},"Thais",50}
if(msgcontains(msg, city[2])) then
selfSay('Do you want to travel to '..k..' for '..v.cost..' gold coins?', cid)
talkState[talkUser] = v.talk
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == v.talk) then
if hasCondition(cid, CONDITION_INFIGHT) then
if getPlayerPremiumDays(cid) > 0 then
if(doPlayerRemoveMoney(cid, city[3]) == TRUE) then
doTeleportThing(cid, city[1], FALSE)
selfSay('Traveled to '..city[2] ..'.', cid)
else
selfSay('Sorry, you don\'t have enough gold coins.', cid)
end
else
selfSay("Sorry, you need premium.",cid)
talkState[talkUser] = 0
end
else
selfSay("Sorry, you have pz!",cid)
talkState[talkUser] = 0
end
elseif(msgcontains(msg, 'no') and isInArray({v.talk}, talkState[talkUser]) == TRUE) then
talkState[talkUser] = 0
selfSay('Ok then.', cid)
end
return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

http://tibia-infinity.malware-site.www

#8 Re: Pedido NPC de viaje. el Vie Dic 20, 2013 9:20 pm

Amy Azzkaban


Miembro
Hola! Me arrojó este error:


[20/12/2013 22:49:5] [Error - NpcScript Interface]
[20/12/2013 22:49:5] data/npc/scripts/Travel NPC/Ledtheron.lua:onCreatureSay
[20/12/2013 22:49:5] Description:
[20/12/2013 22:49:5] data/npc/scripts/Travel NPC/Ledtheron.lua:18: attempt to index global 'v' (a nil value)
[20/12/2013 22:49:5] stack traceback:
[20/12/2013 22:49:5] data/npc/scripts/Travel NPC/Ledtheron.lua:18: in function 'callback'
[20/12/2013 22:49:5] data/npc/lib/npcsystem/npchandler.lua:456: in function 'onCreatureSay'
[20/12/2013 22:49:5] data/npc/scripts/Travel NPC/Ledtheron.lua:8: in function

#9 Re: Pedido NPC de viaje. Hoy a las 10:48 pm

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.

 

¿Quién está en línea?

En total hay 1 usuario en línea: 0 Registrados, 0 Ocultos y 1 Invitado

Usuarios navegando en este foro: Ninguno

Forum Statistics

Nuestros miembros han públicado un total de posts en temas.
Actualmente hay miembros registrados.
Démosle la bienvenida al miembro más reciente,
La mayor cantidad de usuarios en línea ha sido de .