Ir para conteúdo

Npc Quest


Klauguns

Posts Recomendados

Pesso um script de Npc Quest como se fosse um baú

só que ele vende o item uma vez só

e se for comprar outra vez ele teleporta o player para o templo..

ou quer dizer pra sala anterior

se puderem me ajudar dou Rep+

Link para o comentário
Compartilhar em outros sites

Bom vamos lá : crie um npc.xml e nele coloque :

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Quest Man" script="data/npc/scripts/quest.lua" walkinterval="2000" floorchange="0">
<health now="100" max="100"/>
<look type="132" head="20" body="39" legs="45" feet="7" addons="3"/>
<parameters>
<parameter key="message_greet" value="Hello, |PLAYERNAME|."/>
</parameters>
</npc> 

 

Depois crie um script chamado : quest

nele coloque o seguinte script

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
local pos = {x=?,y=?,z=?}

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

npcHandler:setMessage(MESSAGE_GREET, "Oi, eu posso lhe dar um {item}.")

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, 'item') and talkState[talkUser] == 1  and  getPlayerStorageValue(cid,7878)<=0 ) then
selfSay('Você ganhou um item.', cid)
doPlayerAddItem(cid, ITEM,1)
setPlayerStorageValue(cid,7878,1)
talkState[talkUser] = 0   
else
if getPlayerStorageValue(cid,7878)>=1 then
selfSay('Você já fez esta quest.', cid)
doTeleportThing(cid,pos,FALSE)
end
end
return TRUE
end

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

 

PS: EDITE ONDE TÁ : local pos = {x=?,y=?,z=?}

?= POSCIÇÃO QUE VOCÊR QUER , E TBM EDITE ONDE TÁ : doPlayerAddItem(cid, ITEM,1)

 

ONDE TÁ ITEM VOCÊ COLOCA O ITEM QUE VAI GANHAR ...Ajudei?? rep+ please

Link para o comentário
Compartilhar em outros sites

Bom vamos lá : crie um npc.xml e nele coloque :

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Quest Man" script="data/npc/scripts/quest.lua" walkinterval="2000" floorchange="0">
<health now="100" max="100"/>
<look type="132" head="20" body="39" legs="45" feet="7" addons="3"/>
<parameters>
<parameter key="message_greet" value="Hello, |PLAYERNAME|."/>
</parameters>
</npc> 

 

Depois crie um script chamado : quest

nele coloque o seguinte script

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
local pos = {x=?,y=?,z=?}

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

npcHandler:setMessage(MESSAGE_GREET, "Oi, eu posso lhe dar um {item}.")

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, 'item') and talkState[talkUser] == 1  and  getPlayerStorageValue(cid,7878)<=0 ) then
selfSay('Você ganhou um item.', cid)
doPlayerAddItem(cid, ITEM,1)
setPlayerStorageValue(cid,7878,1)
talkState[talkUser] = 0   
else
if getPlayerStorageValue(cid,7878)>=1 then
selfSay('Você já fez esta quest.', cid)
doTeleportThing(cid,pos,FALSE)
end
end
return TRUE
end

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

 

PS: EDITE ONDE TÁ : local pos = {x=?,y=?,z=?}

?= POSCIÇÃO QUE VOCÊR QUER , E TBM EDITE ONDE TÁ : doPlayerAddItem(cid, ITEM,1)

 

ONDE TÁ ITEM VOCÊ COLOCA O ITEM QUE VAI GANHAR ...Ajudei?? rep+ please

 

 

 

Man darei rep+ pela sua boa vontade de me ajudar

mas eu fiz como tu me explicou ele aparece normal

na hora de eu colocar ele pelo rme mas quando eu abro o ot

ele some tu sabe me explicar onde eu to errando ou tem alguma solução ?

 

Foi erro meu no arquivo lua -.-

mas o que eu falo com o npc pra que ele possa dar o item ?

eu digo hi ele diz que pode dar 1 item mas depois fico sem saber o que fazer

ajuda ai vlw...

Editado por klauguns
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...