Ir para conteúdo

luanluciano93

Héroi
  • Registro em

  • Última visita

Tudo que luanluciano93 postou

  1. luanluciano93 postou uma resposta no tópico em Suporte & Pedidos
    Bem legal a suas ideias. Há um tempo criei um evento que vi em um servidor de war, acho que ficaria ótimo no seu servidor:
  2. @Npc Bugado o script que você postou não faz nada do que ele esta pedindo no tópico.
  3. Aqui você acha todas as funções do TFS atual: https://github.com/otland/forgottenserver/wiki/Script-Interface Se clica em players nesse link irá ter as funções usadas nos players: https://github.com/otland/forgottenserver/wiki/Metatable%3APlayer Se estudar um pouco de lógica de programação e algoritmos irá perceber que no TFS (e na maioria das coisas na programação) as funções são basicamente escritas em inglês, e no TFS você verifica no início delas o que ela faz: GET (puxa um valor da database), SET (muda algo na database), ADD (adiciona algo na database) e etc. No link que te passei se você procurar por storage vai achar a função que puxa o valor database e a que muda o valor na database ... A tabela da storage na database é formada basicamente pelo chave da storage e pelo valor dela, tudo indicando para determinado player, POR EXEMPLO: O player de ID 1 fez uma quest, você programou para quando ele clicar na quest mudar o valor da chave 2000 para 1, então a chave 2000 terá valor 1 para o PLAYER de ID 1. Se você entender a lógica vai ver que dá para fazer milhares de coisas ... getStorageValue(key) setStorageValue(key, value)
  4. Tente trocar: if #doorCreatures > 0 then para: if doorCreatures and #doorCreatures > 0 then
  5. Primeiro aprenda o que é storage o
  6. Cara, inicialmente você precisa montar um script de movements, que seria os dois teleportes (ida e volta). Segundo você grava a experiencia que adicionar para o novo level em uma storage quando ele entrar no primeiro teleporte. Terceiro, a volta do teleporte, você retira a experiencia que adicionou (o valor salvo na storage). Funções que você pode usar: local function getExpForLevel(level) level = level - 1 return ((50 * level * level * level) - (150 * level * level) + (400 * level)) / 3 end player:getExperience() player:addExperience() player:getLevel()
  7. Você deve criar uma talkaction com o GOD acionando um valor x para uma global storage, e em events/scripts/player.lua use a global storage para controlar o xp na função onGainExeperience. Boa sorte.
  8. Edite-a então no lugar do emotion no script que mandei.
  9. sim, você edita isso pelo RME
  10. A melhor e mais atualizada: https://github.com/otland/forgottenserver
  11. Olá, em data/events/scripts/creature.lua (implemente o código substituindo a função onChangeOufit, e verifique se ela esta definida como 1 em events.xml) function createBonusCondition(id, params) local condition = Condition(CONDITION_ATTRIBUTES, CONDITIONID_DEFAULT) condition:setParameter(CONDITION_PARAM_TICKS, -1) condition:setParameter(CONDITION_PARAM_SUBID, id) for i = 1, #params do local param = params[i].param local value = params[i].value condition:setParameter(param, value) end return condition end outfitBonus = { -- [{male outfit id, female outfit id}] = createBonusCondition(ID, parameters & values) [{128, 136}] = createBonusCondition(1, { {param = CONDITION_PARAM_STAT_MAGICPOINTS, value = 10}, {param = CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT, value = 110} } ), [{129, 137}] = createBonusCondition(2, { {param = CONDITION_PARAM_STAT_MAXMANAPOINTSPERCENT, value = 200} } ) } function getBonusCondition(outfit) for outfits, bonus in pairs(outfitBonus) do if table.contains(outfits, outfit) then return bonus end end return nil end function Creature:onChangeOutfit(outfit) if not self:isPlayer() then return true end local previousBonusCondition = getBonusCondition(self:getOutfit().lookType) local newBonusCondition = getBonusCondition(outfit.lookType) if previousBonusCondition then self:removeCondition(CONDITION_ATTRIBUTES, CONDITIONID_DEFAULT, previousBonusCondition:getSubId()) end if newBonusCondition then self:addCondition(newBonusCondition) end return true end Em data/creaturescript/scripts/login.lua (dentro da função onLogin implemente o código a seguir) -- Outfit bonus local bonusCondition = getBonusCondition(player:getOutfit().lookType) if bonusCondition then player:addCondition(bonusCondition) end Para configurar usa o exemplo a seguir: outfitBonuses = { [{male outfit id, female outfit id}] = createBonusCondition(ID, parameters & values) } O ID deve ser diferente para cada bônus, de modo que o script pode identificar entre as condições. Os parâmetros devem estar dentro de uma tabela: {param = alguma_condição_parâmetro, value = valor_para_mudar} Aqui estão os parâmetro disponíveis no TFS 1.3: CONDITION_PARAM_OWNER CONDITION_PARAM_TICKS CONDITION_PARAM_HEALTHGAIN CONDITION_PARAM_HEALTHTICKS CONDITION_PARAM_MANAGAIN CONDITION_PARAM_MANATICKS CONDITION_PARAM_DELAYED CONDITION_PARAM_SPEED CONDITION_PARAM_LIGHT_LEVEL CONDITION_PARAM_LIGHT_COLOR CONDITION_PARAM_SOULGAIN CONDITION_PARAM_SOULTICKS CONDITION_PARAM_MINVALUE CONDITION_PARAM_MAXVALUE CONDITION_PARAM_STARTVALUE CONDITION_PARAM_TICKINTERVAL CONDITION_PARAM_FORCEUPDATE CONDITION_PARAM_SKILL_MELEE CONDITION_PARAM_SKILL_FIST CONDITION_PARAM_SKILL_CLUB CONDITION_PARAM_SKILL_SWORD CONDITION_PARAM_SKILL_AXE CONDITION_PARAM_SKILL_DISTANCE CONDITION_PARAM_SKILL_SHIELD CONDITION_PARAM_SKILL_FISHING CONDITION_PARAM_STAT_MAXHITPOINTS CONDITION_PARAM_STAT_MAXMANAPOINTS CONDITION_PARAM_STAT_SOULPOINTS CONDITION_PARAM_STAT_MAGICPOINTS CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT CONDITION_PARAM_STAT_MAXMANAPOINTSPERCENT CONDITION_PARAM_STAT_SOULPOINTSPERCENT CONDITION_PARAM_STAT_MAGICPOINTSPERCENT CONDITION_PARAM_PERIODICDAMAGE CONDITION_PARAM_SKILL_MELEEPERCENT CONDITION_PARAM_SKILL_FISTPERCENT CONDITION_PARAM_SKILL_CLUBPERCENT CONDITION_PARAM_SKILL_SWORDPERCENT CONDITION_PARAM_SKILL_AXEPERCENT CONDITION_PARAM_SKILL_DISTANCEPERCENT CONDITION_PARAM_SKILL_SHIELDPERCENT CONDITION_PARAM_SKILL_FISHINGPERCENT CONDITION_PARAM_BUFF_SPELL CONDITION_PARAM_SUBID CONDITION_PARAM_FIELD CONDITION_PARAM_DISABLE_DEFENSE CONDITION_PARAM_SPECIALSKILL_CRITICALHITCHANCE CONDITION_PARAM_SPECIALSKILL_CRITICALHITAMOUNT CONDITION_PARAM_SPECIALSKILL_LIFELEECHCHANCE CONDITION_PARAM_SPECIALSKILL_LIFELEECHAMOUNT CONDITION_PARAM_SPECIALSKILL_MANALEECHCHANCE CONDITION_PARAM_SPECIALSKILL_MANALEECHAMOUNT CONDITION_PARAM_AGGRESSIVE Créditos: INFERNUM (OTLAND)
  12. Na linha 119, como você não postou em código, apareceu um emotion, por isso esta dando erro. Olha o anterior e tentar ver o que tinha no lugar.
  13. Boa noite @Arkapho. Então, já atualizei um otx3 para 8.60, ele é muito bom, porém existe um downgrade do TFS para versão 8.60 feita pelo nekiro, mas ele deu uma abandonada no projeto com alguns bug e prometeu que em breve, quando o TFS atualizar para a versão 1.4 ele irá refazer um downgrade para a versão 8.60. Creio que daqui uns 2 meses no máximo isso irá acontecer e quando acontecer vou divulgar ele aqui e apoiar os projetos atualizados (já passou da época de usar coisas desatualizadas). Enfim, minha dica é: e o seu otx não for o otx3 atualize-o (https://github.com/mattyx14/otxserver/tree/otxserv3) e aguarde o downgrade do TFS 1.4 do nekiro (https://github.com/nekiro/TFS-1.4-Downgrades), sei que é trabalhoso, mas vale a pena. Creio que a questão da PT e da TELA você resolve com esse exemplo: https://github.com/mattyx14/otxserver/blob/631b224319c827c6984a637952ae99e045656e27/data/spells/scripts/party/heal.lua#L15-L44 Verifica a city do depot se esta correta, e o id do depot esta correto. Estranho que nas outras esta correto e em uma cidade especifica esta errado.
  14. Esta usando TFS 1.3 de onde? Verifiquei o repositório do TFS e do OTSERVBR e não achei essa resposta.
  15. Isso que você mandou não interfere nele e não tem lógico ele sumir apena pelo que eu mudei, você deve ter feito algo errado. Aparece algum erro na inicialização do servidor?
  16. os valores são contados em segundos, caso queira setar 2 horas = 2 * 60 * 60 ou 7200 segundos, basta setar o os.time + 7200. Faz uma print para verificar o valor restante: variavel = os.time() - storage se variavel > 0 então print("faltam: "+ variavel + " segundos.") fim
  17. ótimo, o os.time eta funcionando corretamente, qual a sua dúvida?
  18. luanluciano93 postou uma resposta no tópico em Suporte Tibia OTServer
    Troque o executável por um da mesma versão do seu e teste para ver se o problema é lá, existe vários códigos fontes da versão 0.4 já compilados aqui no fórum. Boa sorte.
  19. Creio que seja bug nas sources, troque a source e faça o teste.
  20. Faça um script teste e coloque os comandos print(os.time) e print(os.time + 30) para ver se ele esta funcionando corretamente,
  21. Para isso você deve criar condições no script da morte do jogador, como por exemplo, colocar na entrega ou saída da cave storages, e colocar essa storage como condição: caso tenha ela não executa a verificação de aol ou bless e etc. Ou então por verificação de espaço/cave (um pouco mais complicado). Dá uma olhada no comando de GODS de /ghost por exemplo, siga a metodologia e crie uma magia. Mesma resposta da pergunta acima. Use como exemplo as magias de aumento e diminuição de skills já existentes. Não vou te dar nada de mão beijada e creio que ninguém do fórum vai ... caso queira fazer você mesmo e ter algum progresso usando o que te falei, coloque aqui e posso te ajudar com algumas dúvidas sobre funções e etc. Abraço. Outra coisa interessante seria você citar qual código fonte esta usando (TFS ou OTX) e a versão dela.
  22. Atualmente, existe um repositório no github do projeto FORFGOTTENSERVER, vulgo TFS ... ele está na versão 1.3 e tem atualizações quase que diárias .. e quiser acompanhar: https://github.com/otland/forgottenserver Aqui segue o wiki deles com as funções atuais do projeto: https://github.com/otland/forgottenserver/wiki/Script-Interface
  23. 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 function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local player = Player(cid) if(msgcontains(msg, "mission")) then if(os.date("%A") == "Monday") then if(player:getStorageValue(Storage.TravellingTrader.Mission01) < 1) then npcHandler:say("Well, you could attempt the mission to become a recognised trader, but it requires a lot of travelling. Are you willing to try?", cid) npcHandler.topic[cid] = 1 elseif(player:getStorageValue(Storage.TravellingTrader.Mission01) == 1) then npcHandler:say("Have you managed to obtain a rare deer trophy for my customer?", cid) npcHandler.topic[cid] = 3 end elseif(os.date("%A") == "Tuesday") then if(player:getStorageValue(Storage.TravellingTrader.Mission01) == 2 and player:getStorageValue(Storage.TravellingTrader.Mission02) < 1 ) then npcHandler:say("So, my friend, are you willing to proceed to the next mission to become a recognised trader?", cid) npcHandler.topic[cid] = 4 elseif(player:getStorageValue(Storage.TravellingTrader.Mission02) == 4) then npcHandler:say("Did you bring me the package?", cid) npcHandler.topic[cid] = 6 end elseif(os.date("%A") == "Wednesday") then if(player:getStorageValue(Storage.TravellingTrader.Mission02) == 5 and player:getStorageValue(Storage.TravellingTrader.Mission03) < 1 ) then npcHandler:say("So, my friend, are you willing to proceed to the next mission to become a recognised trader?", cid) npcHandler.topic[cid] = 7 elseif(player:getStorageValue(Storage.TravellingTrader.Mission03) == 2) then npcHandler:say("Have you brought the cheese?", cid) npcHandler.topic[cid] = 9 end elseif(os.date("%A") == "Thursday") then if(player:getStorageValue(Storage.TravellingTrader.Mission03) == 3 and player:getStorageValue(Storage.TravellingTrader.Mission04) < 1) then npcHandler:say("So, my friend, are you willing to proceed to the next mission to become a recognised trader?", cid) npcHandler.topic[cid] = 10 elseif(player:getStorageValue(Storage.TravellingTrader.Mission04) == 2) then npcHandler:say("Have you brought the vase?", cid) npcHandler.topic[cid] = 12 end elseif(os.date("%A") == "Friday") then if(player:getStorageValue(Storage.TravellingTrader.Mission04) == 3 and player:getStorageValue(Storage.TravellingTrader.Mission05) < 1) then npcHandler:say("So, my friend, are you willing to proceed to the next mission to become a recognised trader?", cid) npcHandler.topic[cid] = 13 elseif(player:getStorageValue(Storage.TravellingTrader.Mission05) == 2) then npcHandler:say("Have you brought a cheap but good crimson sword?", cid) npcHandler.topic[cid] = 15 end elseif(os.date("%A") == "Saturday") then if(player:getStorageValue(Storage.TravellingTrader.Mission05) == 3 and player:getStorageValue(Storage.TravellingTrader.Mission06) < 1) then npcHandler:say("So, my friend, are you willing to proceed to the next mission to become a recognised trader?", cid) npcHandler.topic[cid] = 16 elseif(player:getStorageValue(Storage.TravellingTrader.Mission06) == 1) then npcHandler:say("Have you brought me a gold fish??", cid) npcHandler.topic[cid] = 18 end elseif(os.date("%A") == "Sunday") then if(player:getStorageValue(Storage.TravellingTrader.Mission06) == 2 and player:getStorageValue(Storage.TravellingTrader.Mission07) ~= 1) then npcHandler:say("Ah, right. <ahem> I hereby declare you - one of my recognised traders! Feel free to offer me your wares!", cid) player:setStorageValue(Storage.TravellingTrader.Mission07, 1) player:addAchievement('Recognised Trader') npcHandler.topic[cid] = 0 end end elseif(msgcontains(msg, "yes")) then if(npcHandler.topic[cid] == 1) then npcHandler:say({ "Very good! I need talented people who are able to handle my wares with care, find good offers and the like, so I'm going to test you. ...", "First, I'd like to see if you can dig up rare wares. Something like a ... mastermind shield! ...", "Haha, just kidding, fooled you there, didn't I? Always control your nerves, that's quite important during bargaining. ...", "Okay, all I want from you is one of these rare deer trophies. I have a customer here in Svargrond who ordered one, so I'd like you to deliver it tome while I'm in Svargrond. ...", "Everything clear and understood?" }, cid) npcHandler.topic[cid] = 2 elseif(npcHandler.topic[cid] == 2) then npcHandler:say("Fine. Then get a hold of that deer trophy and bring it to me while I'm in Svargrond. Just ask me about your mission.", cid) player:setStorageValue(Storage.TravellingTrader.Mission01, 1) npcHandler.topic[cid] = 0 elseif(npcHandler.topic[cid] == 3) then if player:removeItem(7397, 1) then npcHandler:say("Well done! I'll take that from you. <snags it> Come see me another day, I'll be busy for a while now. ", cid) player:setStorageValue(Storage.TravellingTrader.Mission01, 2) npcHandler.topic[cid] = 0 end elseif(npcHandler.topic[cid] == 4) then npcHandler:say({ "Alright, that's good to hear. From you as my trader and deliveryman, I expect more than finding rare items. ...", "You also need to be able to transport heavy wares, weaklings won't get far here. I have ordered a special package from Edron. ...", "Pick it up from Willard and bring it back to me while I'm in Liberty Bay. Everything clear and understood?" }, cid) npcHandler.topic[cid] = 5 elseif(npcHandler.topic[cid] == 5) then npcHandler:say("Fine. Then off you go, just ask Willard about the 'package for Rashid'.", cid) player:setStorageValue(Storage.TravellingTrader.Mission02, 1) npcHandler.topic[cid] = 0 elseif(npcHandler.topic[cid] == 6) then if player:removeItem(7503, 1) then npcHandler:say("Great. Just place it over there - yes, thanks, that's it. Come see me another day, I'll be busy for a while now. ", cid) player:setStorageValue(Storage.TravellingTrader.Mission02, 5) npcHandler.topic[cid] = 0 end elseif(npcHandler.topic[cid] == 7) then npcHandler:say({ "Well, that's good to hear. From you as my trader and deliveryman, I expect more than carrying heavy packages. ...", "You also need to be fast and deliver wares in time. I have ordered a very special cheese wheel made from Darashian milk. ...", "Unfortunately, the high temperature in the desert makes it rot really fast, so it must not stay in the sun for too long. ...", "I'm also afraid that you might not be able to use ships because of the smell of the cheese. ...", "Please get the cheese from Miraia and bring it to me while I'm in Port Hope. Everything clear and understood?" }, cid) npcHandler.topic[cid] = 8 elseif(npcHandler.topic[cid] == ? then npcHandler:say("Okay, then please find Miraia in Darashia and ask her about the {'scarab cheese'}.", cid) player:setStorageValue(Storage.TravellingTrader.Mission03, 1) npcHandler.topic[cid] = 0 elseif(npcHandler.topic[cid] == 9) then if player:removeItem(8112, 1) then npcHandler:say("Mmmhh, the lovely odeur of scarab cheese! I really can't understand why most people can't stand it. Thanks, well done! ", cid) player:setStorageValue(Storage.TravellingTrader.Mission03, 3) npcHandler.topic[cid] = 0 end elseif(npcHandler.topic[cid] == 10) then npcHandler:say({ "Well, that's good to hear. From you as my trader and deliveryman, I expect more than bringing stinky cheese. ...", "I wonder if you are able to deliver goods so fragile they almost break when looked at. ...", "I have ordered a special elven vase from Briasol in Ab'Dendriel. Get it from him and don't even touch it, just bring it to me while I'm in Ankrahmun. Everything clear and understood?" }, cid) npcHandler.topic[cid] = 11 elseif(npcHandler.topic[cid] == 11) then npcHandler:say("Okay, then please find {Briasol} in {Ab'Dendriel} and ask for a {'fine vase'}.", cid) player:setStorageValue(Storage.TravellingTrader.Mission04, 1) player:addMoney(1000) npcHandler.topic[cid] = 0 elseif(npcHandler.topic[cid] == 12) then if player:removeItem(7582, 1) then npcHandler:say("I'm surprised that you managed to bring this vase without a single crack. That was what I needed to know, thank you. ", cid) player:setStorageValue(Storage.TravellingTrader.Mission04, 3) npcHandler.topic[cid] = 0 end elseif(npcHandler.topic[cid] == 13) then npcHandler:say({ "Fine! There's one more skill that I need to test and which is cruicial for a successful trader. ...", "Of course you must be able to haggle, else you won't survive long in this business. To make things as hard as possible for you, I have the perfect trade partner for you. ...", "Dwarves are said to be the most stubborn of all traders. Travel to {Kazordoon} and try to get the smith {Uzgod} to sell a {crimson sword} to you. ...", "Of course, it has to be cheap. Don't come back with anything more expensive than 400 gold. ...", "And the quality must not suffer, of course! Everything clear and understood?", "Dwarves are said to be the most stubborn of all traders. Travel to Kazordoon and try to get the smith Uzgod to sell a crimson sword to you. ..." }, cid) npcHandler.topic[cid] = 14 elseif(npcHandler.topic[cid] == 14) then npcHandler:say("Okay, I'm curious how you will do with {Uzgod}. Good luck!", cid) player:setStorageValue(Storage.TravellingTrader.Mission05, 1) npcHandler.topic[cid] = 0 elseif(npcHandler.topic[cid] == 15) then if player:removeItem(7385, 1) then npcHandler:say("Ha! You are clever indeed, well done! I'll take this from you. Come see me tomorrow, I think we two might get into business after all.", cid) player:setStorageValue(Storage.TravellingTrader.Mission05, 3) npcHandler.topic[cid] = 0 end elseif(npcHandler.topic[cid] == 16) then npcHandler:say({ "My friend, it seems you have already learnt a lot about the art of trading. I think you are more than worthy to become a recognised trader. ...", "There is just one little favour that I would ask from you... something personal, actually, forgive my boldness. ...", "I have always dreamed to have a small pet, one that I could take with me and which wouldn't cause problems. ...", "Could you - just maybe - bring me a small goldfish in a bowl? I know that you would be able to get one, wouldn't you?" }, cid) npcHandler.topic[cid] = 17 elseif(npcHandler.topic[cid] == 17) then npcHandler:say("Thanks so much! I'll be waiting eagerly for your return then.", cid) player:setStorageValue(Storage.TravellingTrader.Mission06, 1) npcHandler.topic[cid] = 0 elseif(npcHandler.topic[cid] == 18) then if player:removeItem(5929, 1) then npcHandler:say("Thank you!! Ah, this makes my day! I'll take the rest of the day off to get to know this little guy. Come see me tomorrow, if you like.", cid) player:setStorageValue(Storage.TravellingTrader.Mission06, 2) npcHandler.topic[cid] = 0 end end end return true end keywordHandler:addKeyword({"job"}, StdModule.say, {npcHandler = npcHandler, text = "I am a travelling trader. I don't buy everything, though. And not from everyone, for that matter."}) keywordHandler:addKeyword({"name"}, StdModule.say, {npcHandler = npcHandler, text = "I am Rashid, son of the desert."}) keywordHandler:addKeyword({"offers"}, StdModule.say, {npcHandler = npcHandler, text = "Of course, old friend. You can also browse only armor, legs, shields, helmets, boots, weapons, enchanted weapons, jewelry or miscellaneous stuff."}) keywordHandler:addKeyword({"ab'dendriel"}, StdModule.say, {npcHandler = npcHandler, text = "Elves... I don't really trust them. All this talk about nature and flowers and treehugging... I'm sure there's some wicked scheme behind all this."}) keywordHandler:addKeyword({"desert"}, StdModule.say, {npcHandler = npcHandler, text = "My beloved hometown! Ah, the sweet scent of the desert sands, the perfect shape of the pyramids... stunningly beautiful."}) keywordHandler:addKeyword({"carlin"}, StdModule.say, {npcHandler = npcHandler, text = "I have to go to Carlin once in a while, since the queen wishes to see my exclusive wares in regular intervals."}) keywordHandler:addKeyword({"cormaya"}, StdModule.say, {npcHandler = npcHandler, text = "Cormaya? Not a good place to make business, it's way too far and small."}) keywordHandler:addKeyword({"darashia"}, StdModule.say, {npcHandler = npcHandler, text = "It's not the real thing, but almost as good. The merchants there claim ridiculous prices, which is fine for my own business."}) keywordHandler:addKeyword({"edron"}, StdModule.say, {npcHandler = npcHandler, text = "Ah yes, Edron! Such a lovely and quiet island! I usually make some nice business there."}) keywordHandler:addKeyword({"fibula"}, StdModule.say, {npcHandler = npcHandler, text = "Too few customers there, it's not worth the trip."}) keywordHandler:addKeyword({"greenshore"}, StdModule.say, {npcHandler = npcHandler, text = "Um... I don't think so."}) keywordHandler:addKeyword({"kazordoon"}, StdModule.say, {npcHandler = npcHandler, text = "I don't like being underground much. I also tend to get lost in these labyrinthine dwarven tunnels, so I rather avoid them."}) keywordHandler:addKeyword({"liberty bay"}, StdModule.say, {npcHandler = npcHandler, text = "When you avoid the slums, it's a really pretty city. Almost as pretty as the governor's daughter."}) keywordHandler:addKeyword({"northport"}, StdModule.say, {npcHandler = npcHandler, text = "Um... I don't think so."}) keywordHandler:addKeyword({"port hope"}, StdModule.say, {npcHandler = npcHandler, text = "I like the settlement itself, but I don't set my foot into the jungle. Have you seen the size of these centipedes??"}) keywordHandler:addKeyword({"senja"}, StdModule.say, {npcHandler = npcHandler, text = "Um... I don't think so."}) keywordHandler:addKeyword({"svargrond"}, StdModule.say, {npcHandler = npcHandler, text = "I wish it was a little bit warmer there, but with a good mug of barbarian mead in your tummy everything gets a lot cosier."}) keywordHandler:addKeyword({"thais"}, StdModule.say, {npcHandler = npcHandler, text = "I feel uncomfortable and rather unsafe in Thais, so I don't really travel there."}) keywordHandler:addKeyword({"vega"}, StdModule.say, {npcHandler = npcHandler, text = "Um... I don't think so."}) keywordHandler:addKeyword({"venore"}, StdModule.say, {npcHandler = npcHandler, text = "Although it's the flourishing trade centre of Tibia, I don't like going there. Too much competition for my taste."}) keywordHandler:addKeyword({"time"}, StdModule.say, {npcHandler = npcHandler, text = "It's almost time to journey on."}) keywordHandler:addKeyword({"king"}, StdModule.say, {npcHandler = npcHandler, text = "Kings, queens, emperors and kaliphs... everyone claims to be different and unique, but actually it's the same thing everywhere."}) npcHandler:setMessage(MESSAGE_GREET, "Ah, a customer! Be greeted, |PLAYERNAME|!") npcHandler:setMessage(MESSAGE_FAREWELL, "Farewell, |PLAYERNAME|, may the winds guide your way.") npcHandler:setMessage(MESSAGE_WALKAWAY, "Come back soon!") npcHandler:setMessage(MESSAGE_SENDTRADE, "Take all the time you need to decide what you want!") local function onTradeRequest(cid) if Player(cid):getStorageValue(Storage.TravellingTrader.Mission07) ~= 5 then npcHandler:say('Sorry, but you do not belong to my exclusive customers. I have to make sure that I can trust in the quality of your wares.', cid) return false end return true end npcHandler:setCallback(CALLBACK_ONTRADEREQUEST, onTradeRequest) npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  24. Todos somem ou apenas o último?

Informação Importante

Confirmação de Termo