Nottinghster 16 Postado Maio 31, 2010 Share Postado Maio 31, 2010 Fala ae galera XTibiana! Alguns de vocês devem saber que eu sou o criador do Tibia World RPG OldSchool Server e como eu ando fazendo MUITOS NPCs para o meu Servidor, resolvi liberar alguns dos meus NPCs e finalmente resolvi liberar a The Queen of The Banshee NPC Só para lembrar que todos os meus NPCs são baseados nos arquivos originais de NPC da Cipsoft! Vamos parar de conversa e vamos aos Scripts: Arquivo em que o NPC foi baseado (arquivo original da CipSoft): # GIMUD - Graphical Interface Multi User Dungeon # bansheequeen.npc: Datenbank für die Bansheequeen Name = "The Queen of the Banshee" Sex = female Race = 1 Outfit = (78,0-0-0-0) Home = [32260,31863,14] Radius = 6 GoStrength = 25 Behaviour = { ADDRESS,"hello$",! -> "Be greeted, dear visitor. Come and stay ... a while." ADDRESS,"hi$",! -> * ADDRESS,! -> Idle BUSY,"hello$",! -> "Wait as patiently as death is waiting for you!" BUSY,"hi$",! -> * BUSY,! -> NOP VANISH,! -> "Yes, flee from death. But know it shall be always one step behind you." "bye" -> "We will meet again.", Idle "farewell" -> * "name" -> "It hurts me to even think about my mortal past. Its long lost and forgotten. So don't ask me about it!" "job" -> "It is my curse to be the eternal guardian of this ancient place." "place" -> "It served as a temple, a source of power and ... as a sender for an ancient race in time long gone by and forgotten." "race" -> "The race that built this edifice came to this place from the stars. They ran from an enemy even more horrible than even themselves. But they carried the seed of their own destruction in them." "seed" -> "This ancient race was annihilated by its own doings, that's all I know. Aeons have passed since then, but the sheer presence of this complex is still defiling and desecrating this area." "destruction" -> * "complex" -> "Its constructors were too strange for you or even me to understand. We cannot know what this ... thing they have built was supposed to be good for. All I can feel is a constant twisting and binding of souls, though that is probably only a side-effect." "ghostlands" -> "The place you know as the Ghostlands had a different name once ... and many names thereafter. Too many for me to remember them all." "banshee" -> "They are my maidens. They give me comfort in my eternal vigil over the last seal." "seal" -> "I am the guardian of the SEVENTH and final seal. The seal to open the last door before ... but perhaps it is better you see it with your own eyes." "guardian" -> * "seventh",level<60,! -> "You are not experienced enough to master the challenges ahead or to receive knowledge about the seventh seal. Go and learn more before asking me again." "seventh",level>59,! -> "If you have passed the first six seals and entered the blue fires that lead to the chamber of the seal you might receive my kiss ... It will open the last seal. Do you think you are ready?", topic=2 "last" -> * "kiss",PZBlock,! -> "You have spilled too much blood recently and the dead are hungry for your soul. Perhaps return when you regained you inner balance." "kiss",topic=8 , QuestValue(11) < 1 -> "Are you prepared to receive my kiss, even though this will mean that your death as well as a part of your soul will forever belong to me, my dear?", Topic=1 "kiss", QuestValue(11) > 0 -> "You have already received my kiss. You should know better then to ask for it." "kiss" -> "To receive my kiss you have to pass all other seals first." "yes",topic=1 -> "So be it! Hmmmmmm...",SetQuestValue(11,1),SetQuestValue(12,QuestValue(12)+1),Teleport(32202,31812,8), EffectOpp(14) "no",topic=1 -> "Perhaps it is the better choice for you, my dear." "yes",topic=2,QuestValue(4)=1 -> "Yessss, I can sense you have passed the seal of sacrifice. Have you passed any other seal yet?", topic=3 "yes",topic=2,QuestValue(4)<1 -> "You have not passed the seal of sacrifice yet. Return to me when you are better prepared." "no",topic=2 -> "Then try to be better prepared next time we meet." "yes",topic=3,QuestValue(5)=1 -> "I sense you have passed the hidden seal as well. Have you passed any other seal yet?", topic=4 "yes",topic=3,QuestValue(5)<1 -> "You have not found the hidden seal yet. Return when you are better prepared." "no",topic=3 -> "Then try to be better prepared next time we meet." "yes",topic=4,QuestValue(6)=1 -> "Oh yes, you have braved the plagueseal. Have you passed any other seal yet?", topic=5 "yes",topic=4,QuestValue(6)<1 -> "You have not faced the plagueseal yet. Return to me when you are better prepared." "no",topic=4 -> "Then try to be better prepared next time we meet." "yes",topic=5,QuestValue(7)=1 -> "Ah, I can sense the power of the seal of demonrage burning in your heart. Have you passed any other seal yet?", topic=6 "yes",topic=5,QuestValue(7)<1 -> "You are not filled with the fury of the imprisoned demon. Return when you are better prepared." "no",topic=5 -> "Then try to be better prepared next time we meet." "yes",topic=6,QuestValue(9)=1 -> "So, you have managed to pass the seal of the true path. Have you passed any other seal yet?", topic=7 "yes",topic=6,QuestValue(9)<1 -> "You have not found your true path yet. Return when you are better prepared." "no",topic=6 -> "Then try to be better prepared next time we meet." "yes",topic=7,QuestValue(10)=1 -> "I see! You have mastered the seal of logic. You have made the sacrifice, you have seen the unseen, you possess fortitude, you have filled yourself with power and found your path. You may ask me for my kiss now.", topic=8 "yes",topic=7,QuestValue(10)<1 -> "You have not found your true path yet. Return to meh when you are better prepared." "no",topic=7 -> "Then try to be better prepared next time we meet." "spectral","dress" -> "Your wish for a spectral dress is silly. Allthough I will grant you the permission to take one. My maidens left one in a box in a room, directly south of here.",SetQuestValue(327,1) } Agora vamos a minha parte The Queen of The Banshee.xml <?xml version="1.0" encoding="UTF-8"?> <npc name="The Queen of the Banshee" script="banshee_queen.lua" walkinterval="1000" access="3" floorchange="0"> <health now="100" max="100"/> <look type="78" head="0" body="0" legs="0" feet="0" addons="0"/> <parameters> <parameter key="message_greet" value="Be greeted, dear visitor. Come and stay ... a while."/> <parameter key="message_farewell" value="We will meet again."/> <parameter key="message_placedinqueue" value="Wait as patiently as death is waiting for you!"/> <parameter key="message_walkaway" value="Yes, flee from death. But know it shall be always one step behind you."/> <parameter key="module_keywords" value="1" /> <parameter key="keywords" value="name;job;place;race;seed;destruction;complex;ghostlands;banshee;seal;guardian;" /> <parameter key="keyword_reply1" value="It hurts me to even think about my mortal past. Its long lost and forgotten. So don't ask me about it!" /> <parameter key="keyword_reply2" value="It is my curse to be the eternal guardian of this ancient place." /> <parameter key="keyword_reply3" value="It served as a temple, a source of power and ... as a sender for an ancient race in time long gone by and forgotten." /> <parameter key="keyword_reply4" value="The race that built this edifice came to this place from the stars. They ran from an enemy even more horrible than even themselves. But they carried the seed of their own destruction in them." /> <parameter key="keyword_reply5" value="This ancient race was annihilated by its own doings, that's all I know. Aeons have passed since then, but the sheer presence of this complex is still defiling and desecrating this area." /> <parameter key="keyword_reply6" value="This ancient race was annihilated by its own doings, that's all I know. Aeons have passed since then, but the sheer presence of this complex is still defiling and desecrating this area." /> <parameter key="keyword_reply7" value="Its constructors were too strange for you or even me to understand. We cannot know what this ... thing they have built was supposed to be good for. All I can feel is a constant twisting and binding of souls, though that is probably only a side-effect." /> <parameter key="keyword_reply8" value="The place you know as the Ghostlands had a different name once ... and many names thereafter. Too many for me to remember them all." /> <parameter key="keyword_reply9" value="They are my maidens. They give me comfort in my eternal vigil over the last seal." /> <parameter key="keyword_reply10" value="I am the guardian of the SEVENTH and final seal. The seal to open the last door before ... but perhaps it is better you see it with your own eyes." /> <parameter key="keyword_reply11" value="I am the guardian of the SEVENTH and final seal. The seal to open the last door before ... but perhaps it is better you see it with your own eyes." /> </parameters> </npc> banshee_queen.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) if(npcHandler.focus ~= cid) then return false end -- NPC The Queen of the Banshees feito por Rodrigo (Nottinghster) -- Inicio The Queen of the Banshees NPC local primeiro_selo = getPlayerStorageValue(cid, 20001) local segundo_selo = getPlayerStorageValue(cid, 20002) local terceiro_selo = getPlayerStorageValue(cid, 20003) local quarto_selo = getPlayerStorageValue(cid, 20004) local quinto_selo = getPlayerStorageValue(cid, 20005) local sexto_selo = getPlayerStorageValue(cid, 20006) local setimo_selo = getPlayerStorageValue(cid, 20007) local teletransporte = {x=32202, y=31812, z=8, stackpos =0} if msgcontains(msg, 'seventh') or msgcontains(msg, 'last') and getPlayerLevel(cid) < 60 then selfSay('You are not experienced enough to master the challenges ahead or to receive knowledge about the seventh seal. Go and learn more before asking me again.') elseif msgcontains(msg, 'seventh') or msgcontains(msg, 'last') and getPlayerLevel(cid) > 59 then selfSay('If you have passed the first six seals and entered the blue fires that lead to the chamber of the seal you might receive my kiss ... It will open the last seal. Do you think you are ready?') talk_state = 2 elseif msgcontains(msg, 'kiss') and setimo_selo == -1 and talk_state == 8 then selfSay('Are you prepared to receive my kiss, even though this will mean that your death as well as a part of your soul will forever belong to me, my dear?') talk_state = 1 elseif msgcontains(msg, 'kiss') and setimo_selo == -1 then selfSay('To receive my kiss you have to pass all other seals first.') talk_state = 0 elseif msgcontains(msg, 'kiss') and setimo_selo == 1 then selfSay('You have already received my kiss. You should know better then to ask for it.') talk_state = 0 elseif msgcontains(msg, 'yes') and talk_state == 1 then selfSay('So be it! Hmmmmmm...') doTeleportThing(cid, teletransporte) setPlayerStorageValue(cid, 20007, 1) elseif msgcontains(msg, 'no') and talk_state == 1 then selfSay('Perhaps it is the better choice for you, my dear.') talk_state = 0 elseif msgcontains(msg, 'yes') and talk_state == 2 and quarto_selo == 1 then selfSay('Yessss, I can sense you have passed the seal of sacrifice. Have you passed any other seal yet?') talk_state = 3 elseif msgcontains(msg, 'yes') and talk_state == 2 and quarto_selo == -1 then selfSay('You have not passed the seal of sacrifice yet. Return to me when you are better prepared.') talk_state = 0 elseif msgcontains(msg, 'no') and talk_state == 2 then selfSay('Then try to be better prepared next time we meet.') talk_state = 0 elseif msgcontains(msg, 'yes') and talk_state == 3 and primeiro_selo == 1 then selfSay('I sense you have passed the hidden seal as well. Have you passed any other seal yet?') talk_state = 4 elseif msgcontains(msg, 'yes') and talk_state == 3 and primeiro_selo == -1 then selfSay('You have not found the hidden seal yet. Return when you are better prepared.') talk_state = 0 elseif msgcontains(msg, 'no') and talk_state == 3 then selfSay('Then try to be better prepared next time we meet.') talk_state = 0 elseif msgcontains(msg, 'yes') and talk_state == 4 and segundo_selo == 1 then selfSay('Oh yes, you have braved the plagueseal. Have you passed any other seal yet?') talk_state = 5 elseif msgcontains(msg, 'yes') and talk_state == 4 and segundo_selo == -1 then selfSay('You have not faced the plagueseal yet. Return to me when you are better prepared.') talk_state = 0 elseif msgcontains(msg, 'no') and talk_state == 4 then selfSay('Then try to be better prepared next time we meet.') talk_state = 0 elseif msgcontains(msg, 'yes') and talk_state == 5 and terceiro_selo == 1 then selfSay('Ah, I can sense the power of the seal of demonrage burning in your heart. Have you passed any other seal yet?') talk_state = 6 elseif msgcontains(msg, 'yes') and talk_state == 5 and terceiro_selo == -1 then selfSay('You are not filled with the fury of the imprisoned demon. Return when you are better prepared.') talk_state = 0 elseif msgcontains(msg, 'no') and talk_state == 5 then selfSay('Then try to be better prepared next time we meet.') talk_state = 0 elseif msgcontains(msg, 'yes') and talk_state == 6 and quinto_selo == 1 then selfSay('So, you have managed to pass the seal of the 1 path. Have you passed any other seal yet?') talk_state = 7 elseif msgcontains(msg, 'yes') and talk_state == 6 and quinto_selo == -1 then selfSay('You have not found your 1 path yet. Return when you are better prepared.') talk_state = 0 elseif msgcontains(msg, 'no') and talk_state == 6 then selfSay('Then try to be better prepared next time we meet.') talk_state = 0 elseif msgcontains(msg, 'yes') and talk_state == 7 and sexto_selo == 1 then selfSay('I see! You have mastered the seal of logic. You have made the sacrifice, you have seen the unseen, you possess fortitude, you have filled yourself with power and found your path. You may ask me for my kiss now.') talk_state = 8 elseif msgcontains(msg, 'yes') and talk_state == 7 and sexto_selo == -1 then selfSay('You have not found your 1 path yet. Return to meh when you are better prepared.') talk_state = 0 elseif msgcontains(msg, 'no') and talk_state == 7 then selfSay('Then try to be better prepared next time we meet.') talk_state = 0 elseif msgcontains(msg, 'spectral dress') then selfSay('Your wish for a spectral dress is silly. Allthough I will grant you the permission to take one. My maidens left one in a box in a room, directly south of here.') setPlayerStorageValue(cid, 327, 1) doPlayerAddItem(cid, 2657, 1) elseif msgcontains(msg, 'bye') and (talk_state >= 1 and talk_state <= 8) then selfSay('We will meet again.') talk_state = 0 end -- Final The Queen of the Banshees NPC -- NPC The Queen of the Banshees feito por Rodrigo (Nottinghster) return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) É isso ai galera, bom proveito! Link para o comentário https://xtibia.com/forum/topic/134064-npc-the-queen-of-the-banshee-npc/ Compartilhar em outros sites More sharing options...
TheGODMaX 24 Postado Junho 8, 2010 Share Postado Junho 8, 2010 Putz, só pelo que li do script ja deu pra ve que ficou ótimo, bem parecido com o do tibia global!! è bem complexo hein, pqp õ_O' Duvido MUITO que as pessoas vão saber usa-lo ueahueah' pra faze a banshee quest no serv n usa só o script do npc, então acho que ele é 'inutil' para a maioria... mesmo assim, ótimo trabalho!! ^^' Agora gogogo fazer o npc 'n sei das quantas soul' lá da dreamers challenge quest!! xDD Cya! Link para o comentário https://xtibia.com/forum/topic/134064-npc-the-queen-of-the-banshee-npc/#findComment-886976 Compartilhar em outros sites More sharing options...
Nottinghster 16 Postado Junho 13, 2010 Autor Share Postado Junho 13, 2010 É fácil de usar o NPC, só trocar o numero das Storages Values de acordo com as suas configurações, mas eu só aconselho usar o NPC pra quem tiver a Banshee Quest 100% igual ao Tibia Global! Eu ja fiz a minha Link para o comentário https://xtibia.com/forum/topic/134064-npc-the-queen-of-the-banshee-npc/#findComment-889798 Compartilhar em outros sites More sharing options...
zimbituba 17 Postado Junho 17, 2010 Share Postado Junho 17, 2010 uahauhaa liberou ele foi Not S[ó não libera os fodas né uahuaa Link para o comentário https://xtibia.com/forum/topic/134064-npc-the-queen-of-the-banshee-npc/#findComment-891885 Compartilhar em outros sites More sharing options...
Doidin 275 Postado Junho 17, 2010 Share Postado Junho 17, 2010 Shynzo por aqui... =) (OOH MILAGRE) WOW. Nott, parabéns pelo NPC está bem semelhante ao Global.. ;] Link para o comentário https://xtibia.com/forum/topic/134064-npc-the-queen-of-the-banshee-npc/#findComment-891893 Compartilhar em outros sites More sharing options...
Nottinghster 16 Postado Junho 23, 2010 Autor Share Postado Junho 23, 2010 @Shynzo Resolvi dar o "release" nele, é simples mas chatin de fazer... pode deixar que não liberar os mais fodas não hehe @DoidinMapper Valeu brother Link para o comentário https://xtibia.com/forum/topic/134064-npc-the-queen-of-the-banshee-npc/#findComment-894674 Compartilhar em outros sites More sharing options...
Tryller 193 Postado Janeiro 19, 2011 Share Postado Janeiro 19, 2011 Impressionante a falta de comentário em um npc tão imprtante Link para o comentário https://xtibia.com/forum/topic/134064-npc-the-queen-of-the-banshee-npc/#findComment-989991 Compartilhar em outros sites More sharing options...
SoulProst 1 Postado Março 8, 2011 Share Postado Março 8, 2011 Cara... Nao consigo falar com Esse NPC ai pra começar a Quest... Ele so fala responde as que estao no XML , mas que estao no LUA nao! PQ isso? Essas sao as perguntas que ele responde: name;job;place;race;seed;destruction;complex;ghostlands;banshee;seal;guardian ---- Estou perguntando isso, pq desse npc , eu tirei outro... quiz fazer o meu proprio, apenas para teste . olha so: XML: <?xml version="1.0" encoding="UTF-8"?><npc name="Tia" script="tia.lua" walkinterval="1000" access="3" floorchange="1"> <health now="100" max="100"/> <look type="78" head="0" body="0" legs="0" feet="0" addons="0"/> <parameters> <parameter key="message_greet" value="Ola, posso ajudar?."/> <parameter key="message_farewell" value="Ate mais."/> <parameter key="message_placedinqueue" value="Ja falo com voce!"/> <parameter key="message_walkaway" value="Tchau!!!."/> <parameter key="module_keywords" value="2" /> <parameter key="keywords" value="name;quest" /> <parameter key="keyword_reply1" value="Me chamo Tiazinha delicia " /> <parameter key="keyword_reply2" value="Por favor,preciso que entregue essas moedas para o Tio, pode fazer para mim?. {sim}" /> </parameters> </npc> e no 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) if(npcHandler.focus ~= cid) then return false end -- NPC The Queen of the Banshees feito por Rodrigo (Nottinghster) -- Inicio The Queen of the Banshees NPC local quest_moeda = getPlayerStorageValue(cid, 7500) local teletransporte = {x=32202, y=31812, z=8, stackpos =0} if msgcontains(msg, 'sim') and getPlayerLevel(cid) < 60 then selfSay('You are not experienced enough.') elseif msgcontains(msg, 'sim') and quest_moeda == -1 then selfSay('Pode fazer para mim?') talk_state = 2 elseif msgcontains(msg, 'yes') and talk_state == 2 and quest_moeda == -1 then selfSay('Tome essas 50 moedas de ouro e entregue para o Tio') doPlayerAddItem(cid, 2148,50) setPlayerStorageValue(cid,7500,1) talk_state = 0 elseif msgcontains(msg, 'yes') and talk_state == 1 and quest_moeda == 1 then selfSay('Voce ja fez esse serviço para mim.') elseif msgcontains('no') and talk_state == 1 and quest_moeda == -1 then selfSay('Ok , voce e quem sabe...') talk_state = 0 elseif msgcontains('ja entreguei') and talk_state == 0 and quest_moeda == 2 then selfSay('Muito obrigada, fico muito grata por isso. Vou lhe dar 100 moedas de ouro.') doPlayerAddItem(cid, 2148,100) doPlayerAddExp(cid,200) doPlayerSendTextMessage(cid,22,'voce ganhou 200 de experiencia e 100 moedas de ouro.') setPlayerStorageValue(cid,7500,2) talk_state = 2 elseif msgcontains(msg, 'ja entreguei') and talk_state == 1 and quest_moeda == -1 then selfSay('Voce ainda nao entregou nao!') talk_state = 0 elseif msgcontains(msg, 'bye') and (talk_state >= 1 and talk_state <= 8) then selfSay('Muito Obrigada pelo serviço.') talk_state = 0 end -- Final The Queen of the Banshees NPC -- NPC The Queen of the Banshees feito por Rodrigo (Nottinghster) return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) ESSE MEU NPC QUE FIZ, ELE NAO ENTRA EM NENHUMA CONVERSAçÂO DO LUA , APENAS NO XML!!! ME AJUDEM POR FAVOR! Link para o comentário https://xtibia.com/forum/topic/134064-npc-the-queen-of-the-banshee-npc/#findComment-1010040 Compartilhar em outros sites More sharing options...
Posts Recomendados