Ir para conteúdo
  • 0

Npc De Quest Alfredo


Renatogold7

Pergunta

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...

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

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 por Vodkart
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...