Postado Maio 13, 2019 6 anos Tentei pegar dois Script diferentes de alguns Npc e configurar os dois para rodar em um Script, mas não deu muito certo. Eu estava tentando fazer com que o Npc verifique se o Player tem a Storage e Teleportasse ele, e se não tiver, ele manda uma mensagem que para ter acesso a área, é preciso de x item. E assim que ele voltar com o x item para o Npc, ele já é Teleportado direto, o item é removido, e ele ganha a storage. Rep+ para quem ajudar, obrigado desde já. Script Spoiler xml Spoiler <?xml version="1.0" encoding="UTF-8"?> <npc name="Old Kaio" script="data/npc/scripts/old kaio.lua" walkinterval="0" floorchange="0"> <health now="100" max="100"/> <look type="224"/> <parameters> <parameter key="module_shop" value="1" /> <parameter key="message_greet" value="Quer ir para sacred heaven?." /> </parameters> </npc> local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) 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 local talkState = {} local items = { item1 = {13215}, } local counts = { count1 = {1}, } local DESTINO = {x=604, y=398, z=9} 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, "yes") then elseif getPlayerStorageValue(cid,4150) == 1 then if getPlayerItemCount(cid, items.item1[1]) >= counts.count1[1] then doPlayerRemoveItem(cid, items.item1[1], counts.count1[1]) setPlayerStorageValue(cid, 4150, 1) doSendMagicEffect(getThingPos(cid), 10) npcHandler:releaseFocus(cid) doTeleportThing(cid, DESTINO) doSendMagicEffect(DESTINO, 10) elseif getPlayerStorageValue(cid,4150) ~= 1 then else selfSay("Voce ainda nao possui o acesso a Poeira Sagrada, traga-a ate mim para poder passar.", cid) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) O Npc me respondia da seguinte forma. 19:43 R3NN4N [600]: hi 19:43 Old Kaio: Quer ir para sacred heaven?. 19:43 R3NN4N [600]: yes Após a fala dele, ele não fazia mais nada. Sem erro na distro, nem nada, ele apenas não Teleportava e nem falava se precisava do x item
Postado Maio 15, 2019 6 anos Solução @Phineasz Spoiler local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) 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 local talkState = {} local t = { item = 13215, -- itemID amount = 1, -- Quantidade storage = 4150, -- Storage pos = {x = 604, y = 398, z = 9} -- Nova posição } 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, "yes") and getPlayerStorageValue(cid, t.storage) == 1 then if getPlayerItemCount(cid, t.item) >= t.amount then doPlayerRemoveItem(cid, t.item, t.amount) setPlayerStorageValue(cid, t.storage, 1) doSendMagicEffect(getThingPos(cid), 10) doTeleportThing(cid, t.pos) doSendMagicEffect(t.pos, 10) npcHandler:releaseFocus(cid) else selfSay("Mensagem caso o player nao possua o item.", cid) end else selfSay("Mensagem caso o player nao tenha a storage == 1.", cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
Postado Fevereiro 17, 2020 5 anos Autor @JoviM Pode rever o script pra mim de novo pfv? Antes estava funcionando normal, agora tudo que eu falo ele fala que eu não tenho o item, nem a storage, mas eu configurei pra ele pegar o Gold, com ID 2160 só pra testes, mas ele só fica falando isso Eu deixei o script assim Spoiler <?xml version="1.0" encoding="UTF-8"?> <npc name="Old Supremo Kaio" script="old kaio.lua" floorchange="0"> <health now="100" max="100"/> <look type="457"/> <parameters> <parameter key="message_greet" value="Quer ir para Sacred Heaven?"/> </parameters> </npc> Spoiler local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) 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 local talkState = {} local t = { item = 2160, amount = 1, storage = 4150, pos = {x = 368, y = 797, z = 14} } 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, "yes") and getPlayerStorageValue(cid, t.storage) == 1 then if getPlayerItemCount(cid, t.item) >= t.amount then doPlayerRemoveItem(cid, t.item, t.amount) setPlayerStorageValue(cid, t.storage, 1) doSendMagicEffect(getThingPos(cid), 10) doTeleportThing(cid, t.pos) doSendMagicEffect(t.pos, 10) npcHandler:releaseFocus(cid) else selfSay("Sinto muito mais voce nao tem a Poeira Sagrada... Dizem que ela pode ser encontada na quest Reborn...", cid) end else selfSay("Sinto muito mais voce nao tem a Poeira Sagrada... Dizem que ela pode ser encontada na quest Reborn...", cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.