Aqui é sessão de pedidos parece que seu script quebro loyout ;z
6
2.6k
info
Grupo: Campones
Registrado: 17/06/10
Posts: 53
Reputação: +1
Char no Tibia: Lord'paulistinha
12 de julho de 2010 às 14:58
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

12 de julho de 2010 às 16:14
tenta ai
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
if msgcontains(msg, 'ajuda') then
if (getPlayerStorageValue(cid,8002) == -1) then
selfSay('Eu preciso de 30 worms para ir pescar hoje com um grande amigo. Você poderia me ajudar?', cid)
talkState[talkUser] = 1
elseif (getPlayerStorageValue(cid,8002) == 1) then
selfSay('Ja trouxe minhas worms?', cid)
talkState[talkUser] = 2
else
selfSay('Por enquanto não preciso mais de sua ajuda..', cid)
talkState[talkUser] = 0
end
elseif talkState[talkUser] == 1 then
if msgcontains(msg, 'yes') then
selfSay('Obrigado! Estarei te esperando aqui!', cid)
setPlayerStorageValue(cid, 8002, 1)
talkState[talkUser] = 0
else
selfSay('Ei! Você não esta com elas ai.. rapido porfavor.', cid)
talkState[talkUser] = 0
end
elseif talkState[talkUser] == 2 then
if msgcontains(msg, 'yes') then
selfSay('Hmm, bom bom, aqui esta sua recompença!', cid)
if (doPlayerRemoveItem(cid, 3976, 30) == TRUE) then
doPlayerAddExp(cid,1500)
doPlayerAddMoney(cid, 500)
setPlayerStorageValue(cid, 8002, 2)
talkState[talkUser] = 0
else
selfSay('Ei! Você não esta com elas ai.. rapido porfavor.', cid)
talkState[talkUser] = 0
end
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
talkState[talkUser] = 0
selfSay('Então va pega-las.', cid)
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Editado Julho 12 por Vodkart
info
Grupo: Campones
Registrado: 26/06/10
Posts: 16
Reputação: 0

12 de julho de 2010 às 17:15
Aew, obrigado Vodkart!!
Me ajudou muito, agoro acho que consigo criar mais npcs sem erros,
e novamente obrigado!
12 de julho de 2010 às 17:18
Dúvida sanada? Se sim reporte o tópico para que seja fechado e movido.





info
Grupo: Campones
Registrado: 26/06/10
Posts: 16
Reputação: 0
Tipo do script: NPC
Protocolo (versão do Tibia): 8.57
Nível de experiência: Pouca..
Adicionais/Informações:
Primeiro quero pedir desculpas se postei no lugar errado, podem mover ou deletar o tópico se for preciso, sou novo por aqui!
Eu fiz um script de npc de quest, mais esta dando um erro na hora de "invocar" o npc, ja que sou novo na área de scripts sei pouca coisa, será que alguem poderia achar e concertar os erros fazendo o favor? Fico muito agradecido.
Ah idéia do meu NPC de Quest é:
Você fala hi, ele fala que esta precisando de ajuda, você fala que quer ajuda-lo, ele te pede para ir buscar 30 worms, depois você entrega as worms pra ele e ele te da exp e gps, e a quest so pode ser feita uma vez.
Script do NPC no LUA:
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 if msgcontains(msg, 'ajuda') then if (getPlayerStorageValue(cid,8002) == -1) then selfSay('Eu preciso de 30 worms para ir pescar hoje com um grande amigo. Você poderia me ajudar?', cid) talkState[talkUser] = 1 elseif (getPlayerStorageValue(cid,8002) == 1) then selfSay('Ja trouxe minhas worms?', cid) talkState[talkUser] = 2 else selfSay('Por enquanto não preciso mais de sua ajuda..', cid) talkState[talkUser] = 0 end if (msgcontains(msg, 'yes') and talkState[talkUser] = 1) then selfSay('Obrigado! Estarei te esperando aqui!', cid) setPlayerStorageValue(cid, 8002, 1) talkState[talkUser] = 0 elseif (msgcontains(msg, 'no') and talkState[talkUser] = 1) then selfSay('Ok, volte quando mudar de idéia!', cid) talkState[talkUser] = 0 else selfSay('Ei! Você não esta com elas ai.. rapido porfavor.', cid) talkState[talkUser] = 0 end if (msgcontains(msg, 'yes') and talkState[talkUser] = 2) then selfSay('Hmm, bom bom, aqui esta sua recompença!', cid) doPlayerRemoveItem(cid, 3976, 30) == TRUE doPlayerAddExp(cid,1500) doPlayerAddMoney(cid, 500) setPlayerStorageValue(cid, 8002, 2) talkState[talkUser] = 0 elseif (msgcontains(msg, 'no') and talkState[talkUser] = 2) then selfSay('Então va pega-las!', cid) talkState[talkUser] = 0 else selfSay('Ei! Você não esta com elas ai.. rapido porfavor.', cid) talkState[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())Script do NPC:
<?xml version="1.0"?> <npc name="Alfredo" script="data/npc/scripts/quests/alfredo.lua" walkinterval="5000" floorchange="0"> <health now="100" max="100"/> <look type="130" head="114" body="10" legs="10" feet="10" addons="0"/> <parameters> <parameter key="message_farewell" value="Tchau!"/> <parameter key="message_idletimeout" value="Ei, voce ta ai?"/> <parameter key="message_walkaway" value="Tchau..."/> </parameters> </npc>Obrigado! Se precisarem de mais informações é so falarem...