(resolvido) Script de Quest

Oween
Por Oween
em Resolvidos

Oween

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 13/07/15Posts: 77

Olá boa noite estou criando um script de quest porem estou com um problema quando o player pega a quest ele nao retira o item ex: se o player esta com o item para ser retira ele retira e entrega nessa função

 

doPlayerRemoveItem(cid,OLD,DQUANT)doPlayerAddItem(cid,EGG,UNIT)

 

queria saber como faço para colocar uma verificação no doPlayerRemoveItem(cid,OLD,DQUANT) para quando o player falar com o npc ele dizer que não tem o item (x)  e assim só adicionar o outro item (y)  para o player se ele tiver o item (x)

 

id item x = 12581

 

id do item y = 17121

 

Espero que algum me ajude :/

STORAGE = 10018 -- Não MechaOLD = 12581 -- Item a ser removido para completar a questDQUANT = 1 -- Quantidade de items a ser removidoEGG = 17121 -- Item a ser adicionado para completar a questUNIT = 1 -- Quantidade de items a ser adicionadolocal keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)NpcSystem.parseParameters(npcHandler)function onCreatureAppear(cid)	npcHandler:onCreatureAppear(cid)	endfunction onCreatureDisappear(cid)	npcHandler:onCreatureDisappear(cid)	endfunction onCreatureSay(cid, type, msg)	npcHandler:onCreatureSay(cid, type, msg)	endfunction onThink()	npcHandler:onThink()	endfunction santaNPC(cid, message, keywords, parameters, node)if(not npcHandler:isFocused(cid)) thenreturn falseendif (parameters.present == true) thenif (getPlayerStorageValue(cid, STORAGE) < 1) thengetPlayerItemCount(cid,EGG,STORAGE)doPlayerRemoveItem(cid,OLD,DQUANT)doPlayerAddItem(cid,EGG,UNIT)setPlayerStorageValue(cid, STORAGE, 1)npcHandler:say('Pronto agora va falar com o Prof. Marlon e entregar o Aerodactyl Egg', cid)elsenpcHandler:say('Voce ja completou a quest Aerodactyl Egg.', cid)endendnpcHandler:resetNpc()return trueendnpcHandler:setMessage(MESSAGE_GREET, "Olá |PLAYERNAME|. Existe um pokemon muito raro chamado Aerodactyl esse pokemon apos sua morte ele se cristaliza em um fossil chamado Old Amber essa pedra refinada se transforma em um Egg Aerodactyl se voce tem esse fossil diga {quest} para voce.")local noNode = KeywordNode:new({'no'}, santaNPC, {present = false})local yesNode = KeywordNode:new({'yes'}, santaNPC, {present = true})local node = keywordHandler:addKeyword({'quest'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Preciso da Old Amber para ti entregar o Aerodactyl Egg, voce a trouxe ? se sim Diga {yes}'})node:addChildKeywordNode(yesNode)node:addChildKeywordNode(noNode)npcHandler:addModule(FocusModule:new())

 

Drakopoulos

Pra mim, tudo é um desafio que pode ser descoberto.
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 20/03/14Posts: 367Gênero: Masculino

Refiz o script pois estava mt bagunçado..
XML

Spoiler
<?xml version="1.0" encoding="UTF-8"?><npc name="NPC_NAME" script="LUA_NAME" walkinterval="350000" floorchange="0" speed="0" lookdir="2">	<health now="150" max="150"/>	<look type="640" head="91" body="114" legs="86" feet="0"/>	<parameters>	<parameter key="message_greet" value="Olá |PLAYERNAME|. Existe um pokemon muito raro chamado Aerodactyl esse pokemon apos sua morte ele se cristaliza em um fossil chamado Old Amber essa pedra refinada se transforma em um Egg Aerodactyl se voce tem esse fossil diga {quest}"/>	</parameters></npc>

 

 

LUA

Spoiler
local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)NpcSystem.parseParameters(npcHandler)local talkState = {}function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) endfunction onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) endfunction onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) endfunction onThink() npcHandler:onThink() endSTORAGE = 10018 -- Não MechaOLD = 12581 -- Item a ser removido para completar a questDQUANT = 1 -- Quantidade de items a ser removidoEGG = 17121 -- Item a ser adicionado para completar a questUNIT = 1 -- Quantidade de items a ser adicionadofunction creatureSayCallback(cid, type, msg)if(not npcHandler:isFocused(cid)) thenreturn falseendlocal talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid    if msgcontains(string.lower(msg), 'quest') then        selfSay("Preciso da Old Amber para ti entregar o Aerodactyl Egg, voce a trouxe ? se sim Diga {yes}...", cid)        talkState[talkUser] = 1    elseif (msgcontains(string.lower(msg), 'yes') or msgcontains(string.lower(msg), 'sim')) and talkState[talkUser] == 1 then         if (getPlayerStorageValue(cid, STORAGE) < 1 and getPlayerItemCount(cid, OLD) >= 1) then             doPlayerRemoveItem(cid,OLD,DQUANT)            doPlayerAddItem(cid,EGG,UNIT)            setPlayerStorageValue(cid, STORAGE, 1)            selfSay("Pronto agora va falar com o Prof. Marlon e entregar o Aerodactyl Egg...", cid)            talkState[talkUser] = 0        elseif (getPlayerStorageValue(cid, STORAGE) < 1 and getPlayerItemCount(cid, OLD) < 1) then            selfSay("Voce nao possui Old Amber...", cid)        return true        else            selfSay("Voce ja completou a quest Aerodactyl Egg...", cid)        return true        end    endreturn trueendnpcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)npcHandler:addModule(FocusModule:new())

 

Não esqueça de mudar o look type e talz...

Oween

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 13/07/15Posts: 77
10 minutos atrás, Drakopoulos disse:

Refiz o script pois estava mt bagunçado..

XML

  Mostrar conteúdo oculto
<?xml version="1.0" encoding="UTF-8"?><npc name="NPC_NAME" script="LUA_NAME" walkinterval="350000" floorchange="0" speed="0" lookdir="2">	<health now="150" max="150"/>	<look type="640" head="91" body="114" legs="86" feet="0"/>	<parameters>	<parameter key="message_greet" value="Olá |PLAYERNAME|. Existe um pokemon muito raro chamado Aerodactyl esse pokemon apos sua morte ele se cristaliza em um fossil chamado Old Amber essa pedra refinada se transforma em um Egg Aerodactyl se voce tem esse fossil diga {quest}"/>	</parameters></npc>

 

 

LUA

  Ocultar conteúdo
local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)NpcSystem.parseParameters(npcHandler)local talkState = {}function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) endfunction onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) endfunction onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) endfunction onThink() npcHandler:onThink() endSTORAGE = 10018 -- Não MechaOLD = 12581 -- Item a ser removido para completar a questDQUANT = 1 -- Quantidade de items a ser removidoEGG = 17121 -- Item a ser adicionado para completar a questUNIT = 1 -- Quantidade de items a ser adicionadofunction creatureSayCallback(cid, type, msg)if(not npcHandler:isFocused(cid)) thenreturn falseendlocal talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid    if msgcontains(string.lower(msg), 'quest') then        selfSay("Preciso da Old Amber para ti entregar o Aerodactyl Egg, voce a trouxe ? se sim Diga {yes}...", cid)        talkState[talkUser] = 1    elseif (msgcontains(string.lower(msg), 'yes') or msgcontains(string.lower(msg), 'sim')) and talkState[talkUser] == 1 then         if (getPlayerStorageValue(cid, STORAGE) < 1 and getPlayerItemCount(cid, OLD) >= 1) then             doPlayerRemoveItem(cid,OLD,DQUANT)            doPlayerAddItem(cid,EGG,UNIT)            setPlayerStorageValue(cid, STORAGE, 1)            selfSay("Pronto agora va falar com o Prof. Marlon e entregar o Aerodactyl Egg...", cid)            talkState[talkUser] = 0        elseif (getPlayerStorageValue(cid, STORAGE) < 1 and getPlayerItemCount(cid, OLD) < 1) then            selfSay("Voce nao possui Old Amber...", cid)        return true        else            selfSay("Voce ja completou a quest Aerodactyl Egg...", cid)        return true        end    endreturn trueendnpcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)npcHandler:addModule(FocusModule:new())

 

Não esqueça de mudar o look type e talz...

Testado e aprovado obrigado pela ajuda.

Poccnn

Enquanto houver armas no mundo, haverá guerra!
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 07/03/16Posts: 1418Gênero: Masculino

Caro membro, seu tópico foi movido de Otserv > Suporte Otserv para Suporte Otserv > Otserv > Pedidos e Dúvidas Resolvidos.

 

Procure ler a descrição das seções antes de criar um tópico, pois criando um tópico na área errada, além de receber um alerta chatinho como este, você pode não obter respostas por causa da incoerência do tópico com a seção em que este foi publicado.

 

Se tiver dúvidas a respeito de postagens, mande uma mensagem pra mim que eu irei orientá-lo.

Atenciosamente, Xtibia.com.

"Deus é amor, mas matou 99,99999% de todos os seres viventes do mundo com o diluvio.

Deus é misericórdia, mas condena as pessoas ao tormento eterno do inferno.

Deus é pai, mas abandonou seus filhos a servidão.

Deus é vida, mas condenou a humanidade a morte.

Deus é o senhor. Senhor das guerras, da morte, do ódio.

 

Ninguém que ame a humanidade, mataria 99,99999% da população, não só de humanos, bem como dos demais animais, por amor. Isso não é amor, é doença, psicose de um sádico que gosta de ver sua 'criação' sofrer e ainda quer 'pagar' de misericordioso, de deus amor.

 

Não quero seu amor; não quero sua misericórdia, não quero ser seu filho, não quero sua vida, não quero que seja meu senhor.

Tu és um psicótico, doente, hipócrita, assassino; não me venha querer se passar por bondoso, amoroso, misericordioso."