Sofft 5 Postado Agosto 20, 2012 Share Postado Agosto 20, 2012 (editado) Fala Xtibianos, a algum tempo venho fazendo um Global, realmente completo, não esses que estão em todos os tópicos. Já está boa parte completo, porem uma das coisas que mais levam tempo são os NPCs, e de vez em quando irei postar um NPC completo aqui para vocês. Dessa vez o NPC é o: , parte da Meriana Quest, vou postar ele por ser um NPC facil de se fazer. Vulturenose.xml <?xml version="1.0" encoding="UTF-8"?> <npc name="Vulturenose" script="data/npc/scripts/Vulturenose.lua" walkinterval="0" floorchange="0"> <health now="100" max="100"/> <look type="96" head="0" body="0" legs="0" feet="0" addons="0"/> <parameters> <parameter key="message_greet" value="Hrrrrm."/> <parameter key="message_farewell" value="Get lost."/> <parameter key="module_keywords" value="1" /> <parameter key="keywords" value="pirate;mission;klaus" /> <parameter key="keyword_reply1" value="We are marauders of the seas surrounding the Shattered Isles. Our only motive is greed and wealth primary purpose is to win in any way possible!" /> <parameter key="keyword_reply2" value="I've heard that {Klaus} wants someone to do a task for him." /> <parameter key="keyword_reply3" value="Klaus is the owner of this tavern" /> </parameters> </npc> Vulturenose.lua 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 function creatureSayCallback(cid, type, msg) -- NPC Vulturenose feito por Getulio Paixão (Off) -- Inicio NPC Vulturenose local meriana = 123477 -- Storage Meriana Quest local door = 15056 -- Storage da porta local hat = 6096 local armor = 6095 local legs = 5918 local boots = 5462 local on_hat = (getPlayerSlotItem(cid, 1).itemid == hat) local on_armor = (getPlayerSlotItem(cid, 4).itemid == armor) local on_legs = (getPlayerSlotItem(cid, 7).itemid == legs) local on_boots = (getPlayerSlotItem(cid, 8).itemid == boots) -----------------------------------------MERIANA QUEST------------------------------------------- -- Confirindo Pirate Set e entrando na porta if (getPlayerStorageValue(cid, meriana) == 13) then if (msgcontains(msg, 'enter') and getPlayerStorageValue(cid, door) <= 0) then if ((on_hat == TRUE) and (on_armor == TRUE) and (on_legs == TRUE) and(on_boots == TRUE)) then npcHandler:say("Hey, I rarely see a dashing pirate like you! Get in, matey!", cid) setPlayerStorageValue(cid,door,1) doPlayerSendTextMessage(cid, 22, "Your questlog has been updated.") talk_state = 0 else npcHandler:say("You're trying to trick me? intruder!, you're not dressed as a pirate!", cid) talk_state = 0 end elseif (msgcontains(msg, 'enter') and getPlayerStorageValue(cid, door) >= 1) then npcHandler:say("Of course you can enter.", cid) talk_state = 0 end end -----------------------------------------FIM------------------------------------------- if(npcHandler.focus ~= cid) then return false end -- Final NPC Vulturenose -- NPC Vulturenose feito por Getulio Paixão (Off) return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Desculpem a indentação, mas o fórum que está bagunçando. E pra quem quizer usar a função getPlayerSlotItem(cid, slot) em outro script: getPlayerSlotItem(cid, slot) - Checa que item tem no slot do player (1-cabeca, 2- amuleto, 3- backpack, 4-armadura, 5-mao direita, 6-mao esquerda, 7-pernas, 8- botas, 9-anel, 10 slot da torcha). Editado Agosto 20, 2012 por Sofft Link para o comentário https://xtibia.com/forum/topic/192338-vulturenose-parte-da-meriana-quest/ Compartilhar em outros sites More sharing options...
Deadpool 862 Postado Agosto 28, 2012 Share Postado Agosto 28, 2012 iii fez tudo certinho, mas ano disse como funciona ou eu sou burro e nao sei Link para o comentário https://xtibia.com/forum/topic/192338-vulturenose-parte-da-meriana-quest/#findComment-1326624 Compartilhar em outros sites More sharing options...
Skymagnum 234 Postado Agosto 28, 2012 Share Postado Agosto 28, 2012 Bem legal, mais poderia ter usado local items = {6096, 6095, 5918, 5462} local slotPos = {1, 2, 3, 4, 5, 6, 7, 8} for i = 1, #slotPos do if isInArray(items, getPlayerSlotItem(cid, slotPos[i]).itemid) then Link para o comentário https://xtibia.com/forum/topic/192338-vulturenose-parte-da-meriana-quest/#findComment-1326647 Compartilhar em outros sites More sharing options...
Sofft 5 Postado Agosto 28, 2012 Autor Share Postado Agosto 28, 2012 (editado) @Overllord, esse NPC verifica os items que o player ta usando, no caso ele vê se o player está usando pirateSet, e se estiver deixa ele entrar na porta, para instalar esse NPC no seu servidor vai em data/npc e copia um arquivo xml la e renomeia para vulturenose.xml e ai só seguir la em cima /\. Depois no mapEditor importa o NPC e poe ele no mapa. @Skymagnum, sim! não sou bom com arrays, mais estou aprendendo.=/ Editado Agosto 28, 2012 por Sofft Link para o comentário https://xtibia.com/forum/topic/192338-vulturenose-parte-da-meriana-quest/#findComment-1326651 Compartilhar em outros sites More sharing options...
Deadpool 862 Postado Agosto 28, 2012 Share Postado Agosto 28, 2012 muito bom, ow como faço aquele negocio de questlogs, que qunado completo uma quest, atualiza ? Link para o comentário https://xtibia.com/forum/topic/192338-vulturenose-parte-da-meriana-quest/#findComment-1326657 Compartilhar em outros sites More sharing options...
Posts Recomendados