Ir para conteúdo

Poccnn

Herói
  • Total de itens

    1418
  • Registro em

  • Última visita

  • Dias Ganhos

    48

Tudo que Poccnn postou

  1. ot de war tem um monte. alias, tu criou um topico na seção de download de otservers.
  2. teleports = { --[lvl] = {{pos1},{pos2},{pos3}...} [1] = {{x=0000,y=0000,z=00},{x=0000,y=0000,z=00}}, [20] = {{x=0000,y=0000,z=00},{x=0000,y=0000,z=00}}, [50] = {{x=0000,y=0000,z=00},{x=0000,y=0000,z=00}}, [100] = {{x=0000,y=0000,z=00},{x=0000,y=0000,z=00}}, [200] = {{x=0000,y=0000,z=00},{x=0000,y=0000,z=00}}, [800] = {{x=0000,y=0000,z=00},{x=0000,y=0000,z=00}}, } function onStepIn(cid, item, pos, fPos) return true,doTeleportThing(cid,teleports[getPlayerLevel(cid)][math.random(1,#teleports[getPlayerLevel(cid)])]) end
  3. diversificar elementos para encher o mapa com coisas não é bom. por exemplo aquela areia de praia ou deserto que não combina com os "local" onde se encontra. tem também aquelas partes de montanha em barro que não combinam. por uma questão de coerência, nunca coloque uma construção dentro de um lugar onde ela não possa ir. Na minha opinião, um mapa tem que ser coerente com a relaidade.
  4. ao invés de usar como spell, usa como talkaction.
  5. isso é basicamente um script de annihi. local function getCreaturesInRange(position, radiusx, radiusy, showMonsters, showPlayers) local creaturesList,radiusx,radiusy = {},radiusx or 0,radiusy or 0 for x = -radiusx, radiusx do for y = -radiusy, radiusy do local creature = getTopCreature({x = position.x+x, y = position.y+y, z = position.z, stackpos = STACKPOS_TOP_CREATURE}) if (creature.type == 1 and showPlayers == true) or (creature.type == 2 and showMonsters == true) then table.insert(creaturesList, creature.uid) end end end return creaturesList end local keyStore,needLevel = 0000,000 -- key para impedir do player fazer a sala no mesmo dia, level requerido local position = {x=0000, y=0000, z=00} -- posição central da sala onde está o boss local radiusx = 10 -- tamanho da sala do boss no plano X contado aparti do centro da sala local radiusy = 10 -- tamanho da sala do boss no plano Y contado aparti do centro da sala local bossName = "nome do boss" -- só pode existir um monstro com esse nome no servidor function onUse(cid, item, fPos, itemEx, toPosition) if(item.itemid == 1945)then -- requerimentos for var=1,5 do local player = getThingFromPos({x=fPos.x-var,y=fPos.y,z=fPos.z,stackpos=255}) if(getPlayerLevel(player.uid) < needLevel)then return true,doPlayerSendCancel(cid,"Todos necessitam ter level "..needLevel.." ou mais.") elseif(getPlayerStorageValue(player.uid,keyStore) == tonumber(os.date("%d")))then return true,doPlayerSendCancel(cid,"Alguem ja fez esse sala hoje.") end end elseif(item.itemid == 1946)then local get = getCreaturesInRange(position, radiusx, radiusy, false, true) if(get and #get > 0)then return true,doPlayerSendCancel(cid,"Espere o time acabar de fazer a annihilator quest.") else local boss = getCreatureByName(bossName) if(boss and boss > 0)then doRemoveCreature(boss) end doSummonCreature(bossName) end end end agora tu vai precisar por em algum lugar ao final quando o boss for eliminado essa instrução para confirmar que ele concluiu aquela sala. doPlayerSetStorageValue(player.uid,keyStore,tonumber(os.date("%d")))
  6. verifica se no seu servidor tem a função: doPlayerSave()
  7. substitua essa parte: por esta: getPlayerLookPos(cid)
  8. uma forma fácil de fazer isso seria randomizando a tabela contendo os ids do item na disposição correta. -- dreamsTab seria a tabela contendo os valores na disposição correta. -- randomTab seria uma outra tabela limpa para inserir os valores randomizados. local lenDreamsTab = #dreamsTab -- usei variavel devido a possiveis incremento ou decremento de conteudo. while #dreamsTab > 0 do local random = math.random(1,lenDreamsTab) -- você pode deixar de usar a variavel e por no local o valor de conteudos da tabela dreamsTab table.insert(randomTab,dreamsTab[random]) table.remove(dreamsTab,random) end ai é só tu percorrer a tabela colocando os items nas posições randomizadas.
  9. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED) function onCastSpell(cid, var) local getPos = getPlayerLookDir(cid) -- pega a posição onde o player está focado. getPos.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE local corpse = getTileItemById(getPos,3104) -- id do corpo if(corpse and corpse.uid > 0 and getCreatureSkullType(cid) ~= SKULL_BLACK) then local teibou = {[1] = 31, [2] = 10} doRemoveItem(corpse.uid) doConvinceCreature(cid, doCreateMonster("Undead Dragon", getPos)) -- não fiz mudança nessa parte devido a não saber se está ou não correto. for i = 1, 40 do addEvent(doSendDistanceShoot, i*15, {x = getCreaturePosition(cid).x + math.random(-5, 5), y = getCreaturePosition(cid).y + math.random(-4, 4), z = getCreaturePosition(cid).z}, getCreaturePosition(cid), teibou[math.random(1,2)]) end else return false end return doCombat(cid, combat, var) end acho que seja isso.
  10. quiça amanhã eu faça o algoritmo para embaralhar as cores.
  11. quem puder me passar o mapa contendo somente a orc fortress de rookgaard eu agradeceria.
  12. function onTargetTile(cid, pos) local getPos = pos getPos.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE local corpse,corpoid = getThingFromPos(getPos),0000 -- id do corpo if(corpse.uid > 0 and corpse.itemid == corpoid and getCreatureSkullType(cid) ~= SKULL_BLACK) then doRemoveItem(corpse.uid) doConvinceCreature(cid, doCreateMonster("Skeleton", pos)) doSendMagicEffect(pos, CONST_ME_MAGIC_BLUE) return true end return false end local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile") function onCastSpell(cid, var) return doCombat(cid, combat, var) end
  13. Eu fiz esse script para meu servidor, mas como foi especifico para mim ele não tem o algorítimo para embaralhar as almofadas. esse código é referente somente ao jogo das cores. PS. lembre-se de fazer as devidas alterações no script para suas exigências. function onStepIn(cid, item, pos, fPos) local tabela = {} if(item.actionid == 6301)then -- tiles do oeste -- carrega os dados do jogo pos.x = pos.x+1 for x = 1,6 do local piece = getThingFromPos({x=pos.x+x,y=pos.y,z=pos.z,stackpos=1}) if(piece and piece.uid > 0)then tabela[x] = piece.itemid doRemoveItem(piece.uid,1) end end -- modifica as posições local piece = tabela[6] table.remove(tabela,6) table.insert(tabela,1,piece) -- atualiza in-game os dados for _,piece in ipairs(tabela) do pos.x = pos.x+1 doCreateItem(piece, 1, pos) end elseif(item.actionid == 6302)then -- tiles do norte -- carrega os dados do jogo pos.y = pos.y+1 for y = 1,6 do local piece = getThingFromPos({x=pos.x,y=pos.y+y,z=pos.z,stackpos=1}) if(piece and piece.uid > 0)then tabela[y] = piece.itemid doRemoveItem(piece.uid,1) end end -- modifica as posições local piece = tabela[6] table.remove(tabela,6) table.insert(tabela,1,piece) -- atualiza in-game os dados for _,piece in ipairs(tabela) do pos.y = pos.y+1 doCreateItem(piece, 1, pos) end end return false end Esse código se refere ao porta, mas ele não tem o algoritmo para embaralhar as cores. PS. não adicione ao teleporte pelo mapa editor uma posição para teleportar o player, o script faz isso. Lembre-se de fazer as devidas alterações no script para suas exigências. local items,pass = {1686,1687,1688,1689},true for X = 1,6 do for Y = 1,6 do local item = 0 if(X < 4 and Y < 4)then item = items[1] elseif(X < 4 and Y > 3)then item = items[2] elseif(X > 3 and Y < 4)then item = items[3] elseif(X > 3 and Y > 3)then item = items[4] end local piece = getTileItemById({x=32817+X,y=32333+Y,z=9},item) if not(piece.itemid == 0)then pass = false end end end if(pass)then doTeleportThing(cid,{x=32750,y=32345,z=14}) end
  14. é só tu mudar tua versão para a mais atualizada ou criar um cliente proprio com as sprites atualizadas.
  15. o ot parece ser bom. vou continuar jogando. isso aqui não deveria ser enviado para a aba de server log?
  16. você precisa de um sistema que limpe a area de bichos antes de enviar novos jogadores.
  17. o problema não está no scripts table e sim no script coragem.lua ele está passando um dado que não é uma tabela.
  18. Dermot.xml <?xml version="1.0" encoding="UTF-8"?> <npc name="Dermot" script="data/npc/scripts/Fibula/Dermot.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="129" head="57" body="68" legs="38" feet="114" addons="0"/> <parameters> <parameter key="message_greet" value="Hello, traveller |PLAYERNAME|. How can I help you?"/> <parameter key="message_farewell" value="See you again."/> <parameter key="message_needmoremoney" value="You need more money."/> <parameter key="message_sendtrade" value="...."/> <parameter key="message_onbuy" value="thank you."/> <parameter key="message_decline" value="No problem..."/> <parameter key="message_walkaway" value="Yeah, get lost." /> <parameter key="message_onsendtrade" value="Yeah, buy something." /> <parameter key="module_keywords" value="1" /> <parameter key="keywords" value="job;magistrate;name;time;fibula;dungeon;monsters;" /> <parameter key="keyword_reply1" value="I am the magistrate of this isle." /> <parameter key="keyword_reply2" value="Thats me." /> <parameter key="keyword_reply3" value="I am Dermot, the magistrate of this isle." /> <parameter key="keyword_reply4" value="Time is not important on Fibula." /> <parameter key="keyword_reply5" value="You are at Fibula. This isle is not very dangerous. Just the wolves bother outside the village." /> <parameter key="keyword_reply6" value="Oh, my god. In the dungeon of Fibula are a lot of monsters. That's why we have sealed it with a solid door." /> <parameter key="keyword_reply7" value="Oh, my god. In the dungeon of Fibula are a lot of monsters. That's why we have sealed it with a solid door." /> <parameter key="keyword_reply8" value="" /> </parameters> </npc> Dermot.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 local talkState,talkUser = {}, 0 function creatureSayCallback(cid, type, msg) if not(npcHandler:isFocused(cid)) then return false end local msg = string.lower(msg) talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if(msgcontains(msg, 'door') or msgcontains(msg, 'key'))then npcHandler:say("Do you want to buy the dungeon key for 2000 gold?", cid) talkState[talkUser] = 1 elseif(talkState[talkUser] == 1)then if(msgcontains(msg, 'yes'))then if(getPlayerMoney(cid) >= 2000)then local key = doCreateItemEx(2087) doItemSetAttribute(key, "aid", 3940) doPlayerAddItemEx(cid, key) doPlayerRemoveMoney(cid, 2000) npcHandler:say("Now you own the hot key.",cid) else npcHandler:say("Hmm, I need 2000 gold piece.",cid) end else npcHandler:say("Hmm, maybe next time.",cid) end talkState[talkUser] = 0 else npcHandler:say('...?',cid) talkState[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  19. Simon the Beggar.xml <?xml version="1.0"?> <npc name="Simon the Beggar" script="data/npc/scripts/Fibula/beggar.lua" walkinterval="2000"> <health now="200" max="200" /> <look type="153" head="116" body="123" legs="123" feet="40" addons="3"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|. I am a poor man. Please {help} me." /> <parameter key="message_farewell" value="Have a nice day." /> <parameter key="module_keywords" value="1" /> <parameter key="keywords" value="job;beggar;gold;name;Simon;Tibia;dermot;village;Fibula;Dungeon;Timur;jetty;ship;monster;giant spider;" /> <parameter key="keyword_reply1" value="I have no job. I am a {beggar}." /> <parameter key="keyword_reply2" value="I have no {gold} and no {job}, so I am a beggar." /> <parameter key="keyword_reply3" value="I need gold. I love gold. I need {help}!" /> <parameter key="keyword_reply4" value="My name is {Simon}. I am a very poor man." /> <parameter key="keyword_reply5" value="I am Simon. The poorest human all over the continent." /> <parameter key="keyword_reply6" value="Hehe, do you have a shovel? I can sell you a shovel if you want to return to Tibia." /> <parameter key="keyword_reply7" value="The magistrate of the village. I heard he is selling something for the Fibula {Dungeon}." /> <parameter key="keyword_reply8" value="To the north is the village {Fibula}. A very small village." /> <parameter key="keyword_reply9" value="I hate Fibula. Too many wolves are here." /> <parameter key="keyword_reply10" value="I heard a lot about the Fibula Dungeon. But I never was there." /> <parameter key="keyword_reply11" value="I hate Timur. He is too expensive. But sometimes I find maces and hatchets. Timur is buying these items." /> <parameter key="keyword_reply12" value="I hate this jetty. I have never seen a ship here." /> <parameter key="keyword_reply13" value="There is a large sea-monster outside. I think there is no gritty captain to sail in this quarter." /> <parameter key="keyword_reply14" value="The strongest monster I know is the giant spider." /> <parameter key="keyword_reply15" value="I know that terrible monster. It killed the fishers on the isle on north." /> <parameter key="module_shop" value="1"/> <parameter key="shop_buyable" value="shovel,2554,50;" /> </parameters> </npc> Beggar.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 local talkState,talkUser = {}, 0 local function say(npc,text,cid,talk) if not(npcHandler:isFocused(cid)) then return false end if talk and not(talkState[talkUser] == talk) then return false end doCreatureSay(npc,text,TALKTYPE_PRIVATE_NP,cid) end local function changeTalk(talk) talkState[talkUser] = talk end function creatureSayCallback(cid, type, msg) if not(npcHandler:isFocused(cid)) then return false end local msg = string.lower(msg) talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if(msgcontains(msg, 'help'))then npcHandler:say("I need gold. Can you spend me 100 gold pieces?", cid) talkState[talkUser] = 1 elseif(talkState[talkUser] == 1)then if(msgcontains(msg, 'yes'))then if(getPlayerMoney(cid) >= 100)then doPlayerRemoveMoney(cid, 100) npcHandler:say("Thank you very much. Can you spare 500 more gold pieces for me? I will give you a nice hint.",cid) talkState[talkUser] = 11 else npcHandler:say("Hmm, I need 100 gold piece.",cid) talkState[talkUser] = 0 end else npcHandler:say("Hmm, maybe next time.",cid) talkState[talkUser] = 0 end elseif(talkState[talkUser] == 11)then if(msgcontains(msg, 'yes'))then if(getPlayerMoney(cid) >= 500)then doPlayerRemoveMoney(cid, 500) npcHandler:say("That's great! I have stolen something from Dermot. You can buy it for 200 gold. Do you want to buy it?",cid) talkState[talkUser] = 12 else npcHandler:say("Hmm, I need 500 gold piece.",cid) talkState[talkUser] = 0 end else npcHandler:say("Hmm, maybe next time.",cid) talkState[talkUser] = 0 end elseif(talkState[talkUser] == 12)then if(msgcontains(msg, 'yes'))then if(getPlayerMoney(cid) >= 200)then local key = doCreateItemEx(2087) doItemSetAttribute(key, "aid", 3940) doPlayerAddItemEx(cid, key) doPlayerRemoveMoney(cid, 200) npcHandler:say("Now you own the hot key.",cid) else npcHandler:say("Hmm, I need 200 gold piece.",cid) end else npcHandler:say("Hmm, maybe next time.",cid) end talkState[talkUser] = 0 elseif(msgcontains(msg, 'outfit') or msgcontains(msg, 'beard'))then npcHandler:say("Haha, that beard is - well, not fake, but there's a trick behind it. I noticed people tend to be more generous towards a poor gramps. Want to know my trick?", cid) talkState[talkUser] = 2 elseif(talkState[talkUser] == 2 and msgcontains(msg, 'yes'))then if(getPlayerSex(cid) == PLAYERSEX_MALE)then npcHandler:say("I can mix a secret potion which will increase your facial hair growth enormeously. I call it 'Instabeard'. However, it requires certain ingredients. ...",cid) addEvent(say,8000,getNpcCid(),"... For the small fee of 20000 gold pieces I will help you mix this potion. Just bring me 100 pieces of ape fur, which are necessary to create this potion. ...",cid,2) addEvent(say,14000,getNpcCid(),"... Do we have a deal?",cid,2) addEvent(changeTalk,14000,21) else npcHandler:say("I can mix a secret potion which increases facial hair growth enormeously. I call it 'Instabeard'. However, I fear it works only for men. ...",cid) addEvent(say,8000,getNpcCid(),"... Even if it worked on girls, I'd rather not be responsible for you ruining your pretty face. I have an idea though. If you help me brew one of these potions, I sell something nice to you. ...",cid,2) addEvent(say,14000,getNpcCid(),"... I still have a pretty gipsy dress and a pearl necklace somewhere, which you could wear instead of this ragged skirt. For the small fee of 20000 gold pieces, it'd be yours. ...",cid,2) addEvent(say,20000,getNpcCid(),"... You only have to bring me {100 pieces of ape fur}, so I can brew the potion. Do we have a deal?",cid,2) addEvent(changeTalk,20000,21) end elseif(talkState[talkUser] == 21 and msgcontains(msg, 'yes'))then npcHandler:say("Great! Come back to me once you have the {100 pieces of ape fur} and I'll do my part of the deal.",cid) talkState[talkUser] = 0 elseif(msgcontains(msg, "100 pieces of ape fur") or msgcontains(msg, "100 ape fur"))then if(getPlayerItemCount(cid,5883) >= 100)then npcHandler:say("Have you brought me the 100 pieces of ape fur and 20.000 gold pieces?",cid) talkState[talkUser] = 22 else npcHandler:say("Ah! you dont have all items.", cid) talkState[talkUser] = 0 end elseif(talkState[talkUser] == 22 and msgcontains(msg, 'yes'))then if(getPlayerItemCount(cid,5883) >= 100 and getPlayerMoney(cid) >= 20000)then doPlayerRemoveItem(cid,2743,30, true) doPlayerRemoveMoney(cid, 20000) if(getPlayerSex(cid) == PLAYERSEX_MALE)then doPlayerAddOutfit(cid,153,1) npcHandler:say("Ahh! Very good. I will start mixing the potion immediately.", cid) addEvent(say,10000,getNpcCid(),"... Hmm, I'm not done yet with your potion. But here, let me sprinkle a few drops of my own potion on your face... there you go. Now you just have to wait.",cid) else doPlayerAddOutfit(cid,157,2) npcHandler:say(" Ahh! Very good. I will start mixing the potion immediately and sell it to some poor foo- eh, man. Goodbye", cid) end talkState[talkUser] = 23 else npcHandler:say("Ah! you dont have all items or all money.", cid) talkState[talkUser] = 0 end elseif(talkState[talkUser] == 23)then if(msgcontains(msg, 'beard') or msgcontains(msg, 'addon') and getPlayerSex(cid) == PLAYERSEX_MALE)then npcHandler:say("Aha! I can see it! Now that you've waited patiently without shaving, your beard is perfect! All thanks to my, err, potion. Yes. Goodbye!", cid) elseif(msgcontains(msg, 'Gypsy Dress') and getPlayerSex(cid) == PLAYERSEX_FEMALE)then npcHandler:say("Oh, I'm sorry... I almost forgot! Okay, okay... here is your promised dress. I'm sure it will look so much better on you than on me- I mean, my, err, sister.", cid) end talkState[talkUser] = 0 elseif(msgcontains(msg, 'staff'))then if(getPlayerItemCount(cid,6107) < 1)then doPlayerSetStorageValue(cid,1052,1) --1052 npcHandler:say("I can give you the staff in case you find it and bring me my lost staff.", cid) else doPlayerRemoveItem(cid,6107,1, true) if(getPlayerSex(cid) == PLAYERSEX_MALE)then doPlayerAddOutfit(cid,153,2) else doPlayerAddOutfit(cid,157,1) end npcHandler:say("Thank you for recovering my lost staff. take yours as a reward.", cid) end else npcHandler:say('...?',cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  20. Poccnn

    Thais - Lubo

    Lubo.xml <?xml version="1.0" encoding="UTF-8"?> <npc name="Lubo" script="data/npc/scripts/Thais/Lubo.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="128" head="57" body="122" legs="126" feet="94" addons="3"/> <parameters> <parameter key="module_shop" value="1"/> <parameter key="shop_buyable" value="basket,1989,6;bottle,4839,3;bucket,2005,4,0;candelabrum,2041,8;closed trap,2578,280;crowbar,2416,260;cup,2013,3,0;fishing rod,2580,150;machete,2420,35;pick,2553,50;present,1990,10;backpack,1988,25;rope,2120,50;scyhe,2550,50;shovel,2554,50;torch,2050,2;worm,3976,1;" /> <parameter key="shop_sellable" value="crowbar,2416,75;closed trap,2578,50;fishing rod,2580,40;machete,2420,6;pick,2553,15;rope,2120,15;scythe,2550,10;shovel,2554,8;wooden hammer,2556,15;" /> <parameter key="message_greet" value="Welcome to my adventurer shop, |PLAYERNAME|! What do you need?"/> <parameter key="message_farewell" value="Come back soon!"/> <parameter key="module_keywords" value="1" /> <parameter key="keywords" value="job;equipment;maps;magic;name;weapon;mountain;magician;crunor;flower guys;accident;stable;buy;sell;wares;dog;inn;pet;finger;cottage;" /> <parameter key="keyword_reply1" value="I am selling equipment for adventurers. Do you need anything?" /> <parameter key="keyword_reply2" value="I sell torches, fishing rods, ropes, water hoses, backpacks, apples, and maps." /> <parameter key="keyword_reply3" value="Oh! I'm sorry, I sold the last one just five minutes ago." /> <parameter key="keyword_reply4" value="There's a lot of magic flowing in the mountain to the north." /> <parameter key="keyword_reply5" value="I am Lubo, the owner of this shop." /> <parameter key="keyword_reply6" value="If you want to buy weapons, you'll have to go to a town or city." /> <parameter key="keyword_reply7" value="It is said that once there lived a great magician on the top of this mountain." /> <parameter key="keyword_reply8" value="I don't remember his name, but it's said that his banner was the black eye." /> <parameter key="keyword_reply9" value="Ah yes, I remember my grandfather talking about that name. This house used to be an inn a long time ago. My family bought it from some of these flower guys." /> <parameter key="keyword_reply10" value="Oh, I mean druids of course. They sold the cottage to my family after some of them died in an accident or something like that." /> <parameter key="keyword_reply11" value="As far as I can remember the story, a pet escaped its stable behind the inn. It got somehow involved with powerful magic at a ritual and was transformed in some way." /> <parameter key="keyword_reply12" value="My grandpa told me, in the old days there were some behind this cottage. Nothing big though, just small ones, for chicken or rabbits." /> <parameter key="keyword_reply13" value="I sell torches, fishing rods, worms, ropes, water hoses, backpacks, apples, and maps." /> <parameter key="keyword_reply14" value="I sell torches, fishing rods, worms, ropes, water hoses, backpacks, apples, and maps." /> <parameter key="keyword_reply15" value="I sell torches, fishing rods, worms, ropes, water hoses, backpacks, apples, and maps." /> <parameter key="keyword_reply17" value="This is Ruffy my dog, please don't do him any harm." /> <parameter key="keyword_reply18" value="Frodo runs a nice inn in the near town Thais." /> <parameter key="keyword_reply19" value="There are some strange stories about a magicians pet names. Ask Hoggle about it." /> <parameter key="keyword_reply20" value="Oh, you sure mean this old story about the mage Dago, who lost two fingers when he conjured a dragon." /> <parameter key="keyword_reply21" value="Ah yes, I remember my grandfather talking about that name. This house used to be an inn a long time ago. My family bought it from some of these flower guys." /> </parameters> </npc> Lubo.lua local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} 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 say(npc,text, cid) doCreatureSay(npc,text,TALKTYPE_PRIVATE_NP,cid) end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local msg = string.lower(msg) if(msgcontains(msg, 'time'))then npcHandler:say("It is exactly "..getTibianTime()..".", cid) elseif(msgcontains(msg, 'outfit') or msgcontains(msg, 'addon'))then npcHandler:say("Sorry, the backpack I wear is not for sale. It's handmade from rare {minotaur leather}.", cid) talkState[talkUser] = 1 elseif(talkState[talkUser] == 1 and msgcontains(msg, 'minotaur leather'))then npcHandler:say("Well, if you really like this backpack, I could make one for you, but minotaur leather is hard to come by these days. Are you willing to put some work into this?",cid) talkState[talkUser] = 11 elseif(talkState[talkUser] == 11 and msgcontains(msg, 'yes'))then npcHandler:say("Alright then, if you bring me 100 pieces of fine minotaur leather I will see what I can do for you. You probably have to kill really many minotaurs though... so good luck!",cid) talkState[talkUser] = 0 elseif(msgcontains(msg, 'backpack'))then npcHandler:say("Ah, right, almost forgot about the backpack! Have you brought me 100 pieces of minotaur leather as requested?", cid) talkState[talkUser] = 2 elseif(talkState[talkUser] == 2 and msgcontains(msg, 'yes'))then if(getPlayerItemCount(cid,5878) >= 100)then npcHandler:say("Great! Alright, I need a while to finish this backpack for you. Please, wait a minute...",cid) addEvent(say,6000,getNpcCid(),"... a little more... I'm almost finishing...",cid) addEvent(say,20000,getNpcCid(),"... Your backpack is finished. Here you go, I hope you like it.",cid) doPlayerRemoveItem(cid,5878,100, true) if(getPlayerSex(cid) == PLAYERSEX_FEMALE)then doPlayerAddOutfit(cid,136,1) else doPlayerAddOutfit(cid,128,1) end else npcHandler:say("Sorry, you dont have all items.",cid) end talkState[talkUser] = 0 else npcHandler:say('...?',cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  21. Poccnn

    Thais - Hanna

    Hanna.xml <?xml version="1.0" encoding="UTF-8"?> <npc name="Hanna" script="data/npc/scripts/Thais/Hanna.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="136" head="115" body="103" legs="0" feet="115" addons="2"/> <parameters> <parameter key="message_greet" value="Welcome, welcome! Have a seat! just ask me for a trade!"/> <parameter key="message_farewell" value="Come back soon!"/> <parameter key="module_keywords" value="1" /> <parameter key="keywords" value="name;Tibia;monster;" /> <parameter key="keyword_reply1" value="Well, my name is Hanna." /> <parameter key="keyword_reply2" value="This is the world we live in, oh-oh-oh, and these are the hands we're given, oh-oh... oh, I'm sorry, I got carried away!" /> <parameter key="keyword_reply3" value="Ah, the monsters are far away. Let's party now!" /> <parameter key="module_shop" value="1"/> <parameter key="shop_buyable" value="black pearl,2144,560;bronze goblet,5807,2000;golden amulet,2130,6600;golden goblet,5805,5000;ruby necklace,2133,3560;silver goblet,5806,3000;small amethyst,2150,400;small diamond,2145,600;small emerald,2149,500;small ruby,2147,500;small sapphire,2146,500;wedding ring,2121,990;white pearl,2143,320;" /> <parameter key="shop_sellable" value="black pearl,2144,280;small amethyst,2150,200;small diamond,2145,300;small emerald,2149,250;small enchanted amethyst,7762,200;small enchanted emerald,7761,250;small enchanted ruby,7760,250;small enchanted sapphire,7759,250;small ruby,2147,250;small sapphire2146,250;wedding ring,2121,100;white pearl,2143,160;" /> </parameters> </npc> Hanna.lua local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} 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 shopModule = ShopModule:new() npcHandler:addModule(shopModule) function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local msg = msg:lower() if(msgcontains(msg, 'time'))then npcHandler:say("It is exactly "..getTibianTime()..".", cid) elseif(msgcontains(msg, 'outfit') or msgcontains(msg, 'addon'))then npcHandler:say("Pretty, isn't it? My friend Amber taught me how to make it, but I could help you with one if you like. What do you say?.", cid) talkState[talkUser] = 1 elseif(talkState[talkUser] == 1 and msgcontains(msg, 'yes'))then npcHandler:say("Okay, here we go, listen closely! I need a few things... a basic hat of course, maybe a legion helmet would do. Then about 100 chicken feathers... and 50 honeycombs as glue. That's it, come back to me once you gathered it!",cid) talkState[talkUser] = 0 elseif(msgcontains(msg, 'hat'))then npcHandler:say("Oh, you're back already? Did you bring a legion helmet, 100 chicken feathers and 50 honeycombs?", cid) talkState[talkUser] = 2 elseif(talkState[talkUser] == 2 and msgcontains(msg, 'yes'))then if(getPlayerItemCount(cid,5890) >= 100 and getPlayerItemCount(cid,5902) >= 50 and getPlayerItemCount(cid,2480) >= 1)then npcHandler:say("Great job! That must have taken a lot of work. Okay, you put it like this... then glue like this... here!",cid) doPlayerRemoveItem(cid,5890,100, true) doPlayerRemoveItem(cid,5902,50, true) doPlayerRemoveItem(cid,2480,1, true) if(getPlayerSex(cid) == PLAYERSEX_FEMALE)then doPlayerAddOutfit(cid,136,2) else doPlayerAddOutfit(cid,128,2) end else npcHandler:say("Sorry, you dont have all items.",cid) end talkState[talkUser] = 0 else npcHandler:say('...?',cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  22. Poccnn

    Thais - Elane

    Elane.xml <?xml version="1.0"?> <npc name="Elane" script="data/npc/scripts/Thais/Elane.lua" walkinterval="2000"> <health now="200" max="200" /> <look type="137" head="113" body="100" legs="119" feet="119" addons="3"/> <parameters> <parameter key="message_greet" value="Welcome to the paladins' guild, |PLAYERNAME|! How can I {help} you?" /> <parameter key="module_shop" value="1"/> <parameter key="shop_buyable" value="" /> <parameter key="shop_sellable" value="sniper gloves,5875,2000" /> <parameter key="module_keywords" value="1" /> <parameter key="keywords" value="name;help;job;Paladins;warriors;magicians;missile;news;members;advantages;spells;general;army;excalibug;Ferumbras;time;crossbow;Baxter;Bozo;McRonalds;Eclesius;Elane;Frodo;Galuna;Gorn;Gregor;Harkath Bloodblade;king tibianus;Lugri;Lynda;Marvik;Muriel;Oswald;Quentin;Sam;" /> <parameter key="keyword_reply1" value="My name is Elane. I am the famous leader of the {Paladins}." /> <parameter key="keyword_reply2" value="I am the leader of the {Paladins}. I help our members." /> <parameter key="keyword_reply3" value="I am the leader of the {Paladins}. I help our members." /> <parameter key="keyword_reply4" value="Paladins are great {warriors} and {magicians}. Besides that we are excellent missile fighters. Many people in Tibia want to join us." /> <parameter key="keyword_reply5" value="Of course, we aren't as strong as {knights}, but no {druid} or {sorcerer} will ever defeat a paladin with a sword." /> <parameter key="keyword_reply6" value="There are many magic spells and runes paladins can use." /> <parameter key="keyword_reply7" value="Paladins are the best missile fighters in Tibia!" /> <parameter key="keyword_reply8" value="I am a paladin, not a storyteller." /> <parameter key="keyword_reply9" value="Every paladin profits from his vocation. It has many advantages to be a paladin." /> <parameter key="keyword_reply10" value="We will help you to improve your skills. Besides I offer spells for paladins." /> <parameter key="keyword_reply11" value="Sorry, I don't teach spells." /> <parameter key="keyword_reply12" value="Harkath Bloodblade is the royal general." /> <parameter key="keyword_reply13" value="Some paladins serve in the kings army." /> <parameter key="keyword_reply14" value="A weapon of myth. I don't believe that this weapon exists." /> <parameter key="keyword_reply15" value="Someday I will slay that bastard!" /> <parameter key="keyword_reply16" value="Oops. I have forgotten my watch." /> <parameter key="keyword_reply17" value="I really wonder what was on this fool's mind when he stole my crossbow. What a huge disappointment." /> <parameter key="keyword_reply18" value="He has some potential." /> <parameter key="keyword_reply19" value="How spineless do you have to be to become a jester?" /> <parameter key="keyword_reply20" value="The McRonalds are simple farmers." /> <parameter key="keyword_reply21" value="He must have been skilled before he became the way he is now. Such a pity." /> <parameter key="keyword_reply22" value="yes?" /> <parameter key="keyword_reply23" value="The alcohol he sells shrouds the mind and the eye." /> <parameter key="keyword_reply24" value="One of the most important members of our guild. She makes all the bows and arrows we need." /> <parameter key="keyword_reply25" value="He sells a lot of useful equipment." /> <parameter key="keyword_reply26" value="He and his guildfellows lack the grace of a true warrior." /> <parameter key="keyword_reply27" value="A fine warrior and a skilled general." /> <parameter key="keyword_reply28" value="King Tibianus is a wise ruler." /> <parameter key="keyword_reply29" value="A follower of evil that will get what he deserves one day." /> <parameter key="keyword_reply30" value="Mhm, a little too nice for my taste. Still, it's amazing how she endures all those men stalking her, especially this creepy Oswald." /> <parameter key="keyword_reply31" value="A skilled healer, that's for sure." /> <parameter key="keyword_reply32" value="Just another arrogant sorcerer." /> <parameter key="keyword_reply33" value="If there wouldn't be higher powers to protect him..." /> <parameter key="keyword_reply34" value="A humble monk and a wise man." /> <parameter key="keyword_reply35" value="Strong man. But a little shy." /> </parameters> </npc> Elane.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 local talkState,talkUser = {}, 0 local function say(npc,text,cid,talk) if not(npcHandler:isFocused(cid)) then return false end if talk and not(talkState[talkUser] == talk) then return false end doCreatureSay(npc,text,TALKTYPE_PRIVATE_NP,cid) end local function changeTalk(talk) talkState[talkUser] = talk end function creatureSayCallback(cid, type, msg) if not(npcHandler:isFocused(cid)) then return false end local msg = string.lower(msg) talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if(msgcontains(msg, 'outfit'))then npcHandler:say("Oh, my winged tiara? Those are traditionally awarded after having completed a difficult task for our guild, only to female aspirants though. Male warriors will receive a hooded cloak.", cid) talkState[talkUser] = 1 elseif(talkState[talkUser] == 1 and msgcontains(msg, 'task'))then npcHandler:say("So you are saying that you would like to prove that you deserve to wear such a hooded cloak?",cid) talkState[talkUser] = 11 elseif(talkState[talkUser] == 11)then if(msgcontains(msg, 'yes'))then doPlayerSetStorageValue(cid,1835,1) --1835 npcHandler:say("Alright, I will give you a chance. Pay close attention to what I'm going to tell you now. ...",cid) addEvent(say,6000,getNpcCid(),"... Recently, one of our members moved to Liberty Bay out of nowhere, talking about some strange cult. That is not the problem, but he took my favourite crossbow with him. ...",cid,11) addEvent(say,14000,getNpcCid(),"... Please find my crossbow. It has my name engraved on it and is very special to me. ...",cid,11) addEvent(say,18000,getNpcCid(),"... Secondly, we need a lot of leather for new quivers. 100 pieces of lizard leather and 100 pieces of red dragon leather should suffice. ...",cid,11) addEvent(say,24000,getNpcCid(),"... Third, since we are giving out tiaras, we are always in need of enchanted chicken wings. Please bring me 5, that would help us tremendously. ...",cid,11) addEvent(say,30000,getNpcCid(),"... Lastly, for our arrow heads we need a lot of steel. Best would be one piece of royal steel, one piece of draconian steel and one piece of hell steel. ...",cid,11) addEvent(say,40000,getNpcCid(),"... Did you understand everything I told you and are willing to handle this task?",cid,11) addEvent(changeTalk,40000,12) else npcHandler:say("ok.",cid) talkState[talkUser] = 0 end elseif(talkState[talkUser] == 12)then if(msgcontains(msg, 'yes'))then npcHandler:say("That's the spirit! I hope you will find my crossbow, "..getCreatureName(cid)..".",cid) else npcHandler:say("Hmm, maybe next time.",cid) end talkState[talkUser] = 0 elseif(msgcontains(msg, 'crossbow'))then npcHandler:say("I'm so excited! Have you really found my crossbow?", cid) talkState[talkUser] = 2 elseif(talkState[talkUser] == 2 and msgcontains(msg, 'yes'))then if(getPlayerItemCount(cid,5947) >= 1)then npcHandler:say("Yeah! I could kiss you right here and there! Besides, you're a handsome one. Please bring me 100 pieces of lizard {leather} and 100 pieces of red dragon {leather} now!",cid) talkState[talkUser] = 21 else npcHandler:say("That's the spirit! I hope you will find my crossbow, "..getCreatureName(cid)..".",cid) talkState[talkUser] = 0 end elseif(talkState[talkUser] == 21 and msgcontains(msg, 'leather'))then npcHandler:say("Did you bring me 100 pieces of lizard leather and 100 pieces of red dragon leather?",cid) talkState[talkUser] = 22 elseif(talkState[talkUser] == 22 and msgcontains(msg, 'yes'))then if(getPlayerItemCount(cid,5876) >= 100 and getPlayerItemCount(cid,5948) >= 100)then npcHandler:say("Good work, "..getCreatureName(cid).."! That is enough leather for a lot of sturdy quivers. Now, please bring me 5 enchanted {chicken wings}.",cid) talkState[talkUser] = 23 else npcHandler:say("Ah! you dont have all items.", cid) talkState[talkUser] = 0 end elseif(talkState[talkUser] == 23 and msgcontains(msg, 'chicken wings'))then npcHandler:say("Were you able to get hold of 5 enchanted chicken wings?",cid) talkState[talkUser] = 24 elseif(talkState[talkUser] == 24 and msgcontains(msg, 'yes'))then if(getPlayerItemCount(cid,5891) >= 5)then npcHandler:say("Great! Now we can create a few more Tiaras. If only they weren't that expensive... Well anyway, please obtain one piece of royal steel, draconian steel and hell steel each.",cid) talkState[talkUser] = 25 else npcHandler:say("Ah! you dont have all items.", cid) talkState[talkUser] = 0 end elseif(talkState[talkUser] == 25 and msgcontains(msg, 'steel'))then npcHandler:say("Ah, have you brought one piece of royal steel, draconian steel and hell steel each?",cid) talkState[talkUser] = 26 elseif(talkState[talkUser] == 26 and msgcontains(msg, 'yes'))then if(getPlayerItemCount(cid,5887) >= 1 and getPlayerItemCount(cid,5888) >= 1 and getPlayerItemCount(cid,5889) >= 1 and getPlayerItemCount(cid,5891) >= 5 and getPlayerItemCount(cid,5876) >= 100 and getPlayerItemCount(cid,5948) >= 100 and getPlayerItemCount(cid,5947) >= 1)then doPlayerRemoveItem(cid,5887,1, true) doPlayerRemoveItem(cid,5888,1, true) doPlayerRemoveItem(cid,5889,1, true) doPlayerRemoveItem(cid,5891,5, true) doPlayerRemoveItem(cid,5876,100, true) doPlayerRemoveItem(cid,5948,100, true) doPlayerRemoveItem(cid,5947,1, true) if(getPlayerSex(cid) == PLAYERSEX_MALE)then doPlayerAddOutfit(cid,129,1) else doPlayerAddOutfit(cid,137,1) end npcHandler:say("Wow, I'm impressed, "..getCreatureName(cid)..". Your really are a valuable member of our paladin guild. I shall grant you your reward now. Wear it proudly!",cid) else npcHandler:say("Ah! you dont have all items.", cid) end talkState[talkUser] = 0 elseif(msgcontains(msg, 'sniper gloves'))then if(isPremium(Cid))then npcHandler:say("You found sniper gloves?! Incredible! Listen, if you give them to me, I will grant you the right to wear the sniper gloves accessory. How about it?", cid) else npcHandler:say("You found sniper gloves?! Incredible! I would love to grant you the sniper gloves accessory, but I can only do that for premium warriors. However, I would pay you 2000 gold pieces for them. How about it?", cid) end talkState[talkUser] = 3 elseif(talkState[talkUser] == 3 and msgcontains(msg, 'yes'))then if(getPlayerItemCount(cid,5875) >= 1)then doPlayerRemoveItem(cid,5875,1, true) if(isPremium(cid))then npcHandler:say("Great! I hereby grant you the right to wear the sniper gloves as accessory. Congratulations!",cid) if(getPlayerSex(cid) == PLAYERSEX_MALE)then doPlayerAddOutfit(cid,129,2) else doPlayerAddOutfit(cid,137,2) end else doPlayerAddMoney(cid, 2000) npcHandler:say("Congratulations!",cid) end else npcHandler:say("sorry, you dont have a sniper gloves.", cid) end talkState[talkUser] = 0 else npcHandler:say('...?',cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  23. Seymour.xml <?xml version="1.0" encoding="UTF-8"?> <npc name="Seymour" script="data/npc/scripts/default.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="128" head="116" body="69" legs="87" feet="20" addons="0"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|. Welcome to the Academy of Rookgaard. May I sign you up as a {student}?" /> <parameter key="message_farewell" value="Good bye, |PLAYERNAME|! And remember: No running up and down in the academy!" /> <parameter key="message_walkaway" value="Good bye, |PLAYERNAME|! And remember: No running up and down in the academy!" /> <parameter key="message_idletimeout" value="Good bye, |PLAYERNAME|! And remember: No running up and down in the academy!" /> <parameter key="module_keywords" value="1" /> <parameter key="keywords" value="Billy;Norma;Willie;job;name;Sir;information;lesson;this;Rookgaard;village;island;Thais;Tibia;temple;shop;farm;dungeon;Main;fight;skill;level;equip;premium;potion;antidote;food;weapon;armor;shield;rope;shovel;torch;legs;helmet;shoe;trade;citizen;merchant;king;monster;rat;sewer;troll;money;loot;corpse;Obi;Dixi;Amber;Norma;Willie;Billy;Lily;Lee'Delle;Hyacinth;Tom;academy;train;library;bank;deposit;The Oracle;oracle;vocation;knight;paladin;druid;sorcerer;" /> <parameter key="keyword_reply1" value="Billy is {Willie}\'s cousin, but he has his farm on the {premium} side of the village." /> <parameter key="keyword_reply2" value="Norma has recently opened a bar here meaning she sells drinks and snacks. Nothing of importance to you, young student." /> <parameter key="keyword_reply3" value="Willie is a fine farmer, although he is short-tempered. He sells and buys {food}." /> <parameter key="keyword_reply4" value="I'm the master of this fine {academy}, giving {lessons} to my students." /> <parameter key="keyword_reply5" value="My name is Seymour, but for you I am 'Sir' Seymour." /> <parameter key="keyword_reply6" value="At least you know how to address a man of my importance." /> <parameter key="keyword_reply7" value="Well, I could give you valuable {lessons} or some general {hints} about the game, or a small {quest} if you're interested." /> <parameter key="keyword_reply8" value="Oh, which lesson did you want to attend again? Was it {Rookgaard}, {fighting}, {equipment}, {citizens}, the {academy} or the {oracle}?" /> <parameter key="keyword_reply9" value="Yes, you got it. Ask me for a {lesson} anytime.?" /> <parameter key="keyword_reply10" value="Rookgaard is the name of this {village} as well as of the whole {island}. It belongs to the kingdom of {Thais}, in our world which is called {Tibia}." /> <parameter key="keyword_reply11" value="The most important places in this village are the {temple}, the different {shops}, the {academy} and the {bridges}." /> <parameter key="keyword_reply12" value="The island is separated into a {premium} side and a non-premium side. On both sides you will find {dungeons}, but the premium side tends to be a little less crowded with other players." /> <parameter key="keyword_reply13" value="The city of Thais is reigned by King Tibianus. Of course, there are many other cities but you will learn about them later." /> <parameter key="keyword_reply14" value="The world of Tibia is very large with tons of places to explore. Vast deserts, Caribbean islands, deep jungles, green meadows and jagged mountains await you!" /> <parameter key="keyword_reply15" value="The temple is the place to go when you are very low on {health} or poisoned. Ask {Cipfried} for a heal - he usually notices emergencies by himself." /> <parameter key="keyword_reply16" value="We have a {weapon} and an {armor} shop south of the academy. {Equipment} such as {ropes} are sold to the north-west. {Potions} can be bought to the south. And then there are the {farms}." /> <parameter key="keyword_reply17" value="The farms are west of here. You can buy and sell {food} there which you need to regain {health}." /> <parameter key="keyword_reply18" value="You should not descend into dungeons without proper {equipment}. Once you are all prepared, ask the bridge {guards} for suitable {monsters}." /> <parameter key="keyword_reply19" value="You can leave for mainland once you are level 8. To do so talk to the {oracle}." /> <parameter key="keyword_reply20" value="You have to fight {monsters} to train your {skills} and {level}. If you lose {health}, eat {food} to regain it or use a {potion}." /> <parameter key="keyword_reply21" value="The more you fight with a weapon, the better will be your skill handling this weapon. Don't worry about that right now though, this will become important once you have a {vocation}." /> <parameter key="keyword_reply22" value="Once you gained enough experience for a level, you will advance. This means - among other things - more {health} points, a faster walking speed and more strength to carry things." /> <parameter key="keyword_reply23" value="Don't go hunting without proper equipment. You need at least a suitable {weapon}, {armor}, {shield}, {rope} and {shovel}. A {torch} is also good as well as {legs}, a {helmet} and {shoes}." /> <parameter key="keyword_reply24" value="Paying for your Tibia account will turn it into a premium account. This means access to more areas and functions of the game as well as other neat features." /> <parameter key="keyword_reply25" value="Use a small health potion in case of emergencies to fill up around 75 health points. You can buy them at {Lily}'s shop. She also has {antidote} potions." /> <parameter key="keyword_reply26" value="Some monsters poison you. To heal poison, use an antidote potion on yourself. Buy them at {Lily}'s store." /> <parameter key="keyword_reply27" value="Many monsters, such as rabbits or deer, are excellent food providers. You can also buy food from {Willie} or {Billy}, the farmers." /> <parameter key="keyword_reply28" value="The starter weapon, a club, won't get you far. You should earn some {money} and buy a better weapon such as a sabre from {Obi}'s or {Lee'Delle}'s shop. Simply ask for a {trade}." /> <parameter key="keyword_reply29" value="The starter armor, a coat, does not protect you well. First of all, earn some money and try to get a sturdy leather armor from {Dixi}'s or {Lee'Delle}'s shop. Simply ask for a {trade}." /> <parameter key="keyword_reply30" value="I fear you have to buy your first shield by yourself. A wooden shield from {Dixi} or {Lee'Delle} is a good choice." /> <parameter key="keyword_reply31" value="You definitely need a rope to progress in dungeons, else you might end up stuck. Buy one from {Al Dee} or {Lee'Delle}." /> <parameter key="keyword_reply32" value="A shovel is needed to dig some {dungeon} entrances open. 'Use' it on a loose stone pile to make a hole large enough to enter." /> <parameter key="keyword_reply33" value="A torch will provide you with light in dark {dungeons}. 'Use' it to light it. You can buy them from {Al Dee} or {Lee'Delle}." /> <parameter key="keyword_reply34" value="Leather legs might be a good basic protection. You can buy them from {Dixi} or {Lee'Delle}. Or, once you are strong enough, hunt {trolls}. They sometimes carry them in their {loot}." /> <parameter key="keyword_reply35" value="A sturdy leather helmet is a good choice for a beginner. You can either buy it from {Dixi} and {Lee'Delle}, or, once you are strong enough, {loot} them from {trolls}." /> <parameter key="keyword_reply36" value="Leather boots are basic shoes which will protect you well. You can either buy them from {Dixi} and {Lee'Delle}, or, once you are strong enough, {loot} them from {trolls}." /> <parameter key="keyword_reply37" value="I personally don't have anything to trade, but you can ask {merchants} for a trade. That will open a window where you can see their offers and the things they buy from you." /> <parameter key="keyword_reply38" value="Most of the citizens here are {merchants}. You can give me the name of any non-player character and I will tell you something about him or her." /> <parameter key="keyword_reply39" value="Merchants buy and sell goods. Just ask them for a {trade} to see what they offer or buy from you." /> <parameter key="keyword_reply40" value="Hail to King Tibianus! Long live our king! Not that he cares for an old veteran who is stuck on this godforsaken island..." /> <parameter key="keyword_reply41" value="Good monsters to start hunting are {rats}. They live in the {sewers} below the village." /> <parameter key="keyword_reply42" value="To attack a rat, simply click on it in your battle list. Make sure that you have proper {equipment}, though! Also, I give you 2 gold coins for each {dead rat}." /> <parameter key="keyword_reply43" value="One entrance to the sewers is south of this {academy}. Look for a sewer grate, then use it to climb down." /> <parameter key="keyword_reply44" value="Trolls are quite nasty monsters which you shouldn't face before level 3 or 4 depending on your {equipment}. Ask the bridge {guards} for their locations!" /> <parameter key="keyword_reply45" value="Make money by killing {monsters} and picking up their {loot}. You can sell many of the things they carry." /> <parameter key="keyword_reply46" value="Once a monster is dead, you can select 'Open' on the {corpse} to check what's inside. Sometimes they carry {money} or other items which you can sell to {merchants}." /> <parameter key="keyword_reply47" value="You can even sell some corpses! For example, you can sell fresh dead rats to {Tom} the tanner or me. He also buys other dead creatures, just ask him for a {trade}." /> <parameter key="keyword_reply48" value="Obi sells and buys {weapons}. You can find his shop south of the academy." /> <parameter key="keyword_reply49" value="Dixi sells and buys {armors}, {shields}, {helmets} and {legs}. You can find her shop south of the academy, just go up the stairs in {Obi}'s shop." /> <parameter key="keyword_reply50" value="A traveller from the {main} continent. I wonder what brought her here. No one comes here of his own free will." /> <parameter key="keyword_reply51" value="Norma has recently opened a bar here meaning she sells drinks and snacks. Nothing of importance to you, young student." /> <parameter key="keyword_reply52" value="Willie is a fine farmer, although he is short-tempered. He sells and buys {food}." /> <parameter key="keyword_reply53" value="Billy is {Willie}'s cousin, but he has his farm on the {premium} side of the village." /> <parameter key="keyword_reply54" value="In the southern part of town, Lily sells {potions} which might come in handy once you are deep in a dungeon and need {health}." /> <parameter key="keyword_reply55" value="Lee'Delle's shop is in the western part of town, on the {premium} side. She sells everything cheaper." /> <parameter key="keyword_reply56" value="A mysterious druid who lives somewhere in the wilderness. He sells small health {potions} just like {Lily}." /> <parameter key="keyword_reply57" value="Tom the tanner buys fresh {corpses}, minotaur leather and paws. Always good to make some {money} if you can carry the corpses there fast enough." /> <parameter key="keyword_reply58" value="The academy is the building you are standing in. We have a {library}, a {training} centre, a {bank} and the room of the {oracle}." /> <parameter key="keyword_reply59" value="When you have the time, please visit our training centre downstairs. 'Look' at the blackboards to read some important advice. Oh, you need a {key} for that!" /> <parameter key="keyword_reply60" value="There are many books in the bookcases around you, unless some naughty kids stole them again. Read them for more and detailed information." /> <parameter key="keyword_reply61" value="In a bank you can deposit your earned gold coins safely. Just go downstairs to {Paulie} and ask him to {deposit} your money." /> <parameter key="keyword_reply62" value="Yes, depositing your money will keep it safe, so it is a good idea to store it in the bank. Of course, you can always withdraw it again." /> <parameter key="keyword_reply63" value="The oracle is a mysterious being just upstairs. It will bring you to the {Island of Destiny} to choose your {vocation} once you are level 8." /> <parameter key="keyword_reply64" value="The oracle is a mysterious being just upstairs. It will bring you to the {Island of Destiny} to choose your {vocation} once you are level 8." /> <parameter key="keyword_reply65" value="There are four vocations: {knights}, {paladins}, {sorcerers} and {druids}. You can choose your vocation once you are level 8 and have talked to the {oracle}." /> <parameter key="keyword_reply66" value="Knights are strong melee fighters. You will learn all about them once you are level 8 and reached the Island of {Destiny}." /> <parameter key="keyword_reply67" value="Paladins are swift distance fighters. You will learn all about them once you are level 8 and reached the Island of {Destiny}." /> <parameter key="keyword_reply68" value="Druids are nature magic users and great healers. You will learn all about them once you are level 8 and reached the Island of {Destiny}." /> <parameter key="keyword_reply69" value="Sorcerers are talented elemental magicians. You will learn all about them once you are level 8 and reached the Island of {Destiny}." /> </parameters> </npc> Seymour.lua local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local Topic = {} local count = {} local destiny = {"Hmmm, let me look at you. You got that intelligent sparkle in your eyes and you'd love to handle great power - that must be a future sorcerer!","Hmmm, let me look at you. You have an aura of great wisdom and may have healing hands as well as a sense for the powers of nature - I think you're a natural born druid!","Hmmm, let me look at you. Such a lean and swift fighter you are - I can imagine you really well with a bow - I think you'd make a tremendous paladin!","Hmmm, let me look at you. Strong and sturdy, with a determined look in your eyes - no doubt the knight profession would be suited for you!"} 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 greetCallback(cid) local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid Topic[talkUser] = 1 count[talkUser] = 0 return true end function thinkCallback(cid) local rand = math.random(250) if rand == 1 then selfSay("Get some training in the academy!") elseif rand == 2 then selfSay("Feeling lost? Ask me for help!") elseif rand == 3 then selfSay("Newcomers - visit me! I'll answer your questions!") end return true end 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, "how") and msgcontains(msg, "are") and msgcontains(msg, "you") then npcHandler:say("Well, the {king} doesn't send troops anymore, the {academy} is dreadfully low on money, and the end of the world is pretty nigh. Apart from that I'm reasonably fine, I suppose.", cid) Topic[talkUser] = 0 elseif msgcontains(msg, "fuck") then npcHandler:say("For this remark I will wash your mouth with soap, young " .. (getPlayerSex(cid) == 0 and "lady!" or "man!"), cid) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_YELLOW_RINGS) Topic[talkUser] = 0 elseif (msgcontains(msg, "yes") or msgcontains(msg, "student")) and Topic[talkUser] == 1 then npcHandler:say("Brilliant! We need fine adventurers like you! If you are ready to learn, just ask me for a {lesson}. You can always ask for the differently coloured words - such as {this} one - to continue the lesson.", cid) Topic[talkUser] = 0 elseif msgcontains(msg, "al") and msgcontains(msg, "dee") then npcHandler:say("Al Dee has a general {equipment} store in the north-western part of the village. He sells useful stuff such as {ropes}.", cid) Topic[talkUser] = 0 elseif msgcontains(msg, "island") and msgcontains(msg, "destiny") then npcHandler:say("This is an island with {vocation} teachers. You can learn all about the different vocations there once you are level 8.", cid) Topic[talkUser] = 0 elseif msgcontains(msg, "hint") then if getPlayerStorageValue(cid, 6079) == -1 then setPlayerStorageValue(cid, 6079, 1) end local str = getPlayerStorageValue(cid, 6079) npcHandler:say(hints[str], cid) setPlayerStorageValue(cid, 6079, str == 28 and 0 or str + 1) Topic[talkUser] = 0 elseif msgcontains(msg, "mission") or msgcontains(msg, "quest") then npcHandler:say(getPlayerLevel(cid) < 4 and "You are pretty inexperienced. I think killing rats is a suitable challenge for you. For each fresh {dead rat} I will give you two shiny coins of gold." or "Well I would like to send our king a little present, but I do not have a suitable box. If you find a nice box, please bring it to me.", cid) Topic[talkUser] = 0 elseif msgcontains(msg, "destiny") then if getPlayerStorageValue(cid, 6080) <= 0 then npcHandler:say("Shall I try and take a guess at your destiny?", cid) Topic[talkUser] = 5 else local destiny = {[1] = "Well, like I told you before, I really think you got that spirit of a sorcerer in you. But of course it's completely up to you!", [2] = "Well, like I told you before, I really think you got that spirit of a druid in you. But of course it's completely up to you!", [3] = "Well, like I told you before, I really think you got that spirit of a paladin in you. But of course it's completely up to you!", [4] = "Well, like I told you before, I really think you got that spirit of a knight in you. But of course it's completely up to you!"} npcHandler:say("" .. destiny[getPlayerStorageValue(cid,6080)] .. "", cid) end elseif msgcontains(msg, "dead") and msgcontains(msg, "rat") then if getCount(msg) ~= -1 and 1 < getCount(msg) then count[cid] = getCount(msg) npcHandler:say("Have you brought " .. count[cid] .. " dead rats to me to pick up your reward?", cid) else count[cid] = 1 npcHandler:say("Have you brought a dead rat to me to pick up your reward?", cid) end Topic[talkUser] = 2 elseif msgcontains(msg, "yes") and Topic[talkUser] == 5 then local rand = math.random(4) npcHandler:say(destiny[rand], cid) setPlayerStorageValue(cid, 6080, rand) Topic[talkUser] = 0 elseif Topic[talkUser] == 2 and msgcontains(msg, "yes") then if getPlayerItemCount(cid, 2813) >= count[cid] then npcHandler:say("Thank you! Here is your reward.", cid) doPlayerRemoveItem(cid, 2813, count[cid]) doPlayerAddMoney(cid, count[cid] * 2) else npcHandler:say(count[cid] > 1 and "HEY! You do not have so many!" or "HEY! You don't have one! Stop playing tricks on fooling me or I will give you some extra work!", cid) end Topic[talkUser] = 0 elseif Topic[talkUser] == 2 then npcHandler:say("Go and find some rats to kill!", cid) Topic[talkUser] = 0 elseif msgcontains(msg, "time") then npcHandler:say("It's "..getTibianTime()..", so you are late. Hurry!", cid) Topic[talkUser] = 0 elseif Topic[talkUser] == 1 then npcHandler:say("Only nonsense on your mind, eh?", cid) Topic[talkUser] = 0 elseif msgcontains(msg, "key") then npcHandler:say("Do you want to buy the Key to Adventure for 5 gold coins?", cid) Topic[talkUser] = 4 elseif Topic[talkUser] == 4 then if msgcontains(msg, "yes") then if getPlayerMoney(cid) >= 5 then npcHandler:say("Here you are.", cid) doPlayerRemoveMoney(cid, 5) local key = doCreateItemEx(2088, 1) doSetItemActionId(key, 4600) doPlayerAddItemEx(cid, key, 1) else npcHandler:say("You don't have enough money.", cid) end elseif msgcontains(msg, "no") then npcHandler:say("As you wish.", cid) else npcHandler:say("Only nonsense on your mind, eh?", cid) end Topic[talkUser] = 0 elseif msgcontains(msg, "present box") then npcHandler:say("Do you have a suitable present box for me?", cid) Topic[talkUser] = 3 elseif Topic[talkUser] == 3 then if msgcontains(msg, "yes") then if getPlayerItemCount(cid, 1990) >= 1 then npcHandler:say("THANK YOU! Here is a helmet that will serve you well.", cid) doPlayerRemoveItem(cid, 1990, 1) doPlayerAddItem(cid, 2480, 1) else npcHandler:say("HEY! You don't have one! Stop playing tricks on me or I'll give you some extra work!", cid) end else npcHandler:say("HEY! You don't have one! Stop playing tricks on me or I will give some extra work!", cid) end Topic[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  24. Tom.xml <?xml version="1.0" encoding="UTF-8"?> <npc name="Tom" script="data/npc/scripts/Rookgaard/Tom.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="144" head="113" body="115" legs="115" feet="115" addons="0"/> <parameters> <parameter key="message_greet" value="Hey there, |PLAYERNAME|. I'm Tom the tanner. If you have fresh corpses, leather or paws, trade with me."/> <parameter key="message_farewell" value="Good bye."/> <parameter key="message_walkaway" value="D'oh?"/> <parameter key="message_idletimeout" value="D'oh?"/> <parameter key="message_sendtrade" value="Sure, check what I buy."/> <parameter key="module_shop" value="1"/> <parameter key="shop_sellable" value="bear paw,5896,10;dead rabbit,3119,2;dead rat,2813,2;dead wolf,2826,5;minotaur leather,5878,12;dead spider,2848,3;wolf paw,5897,7;"/> <parameter key="module_keywords" value="1" /> <parameter key="keywords" value="Oracle;Seymour;Cipfried;Tom;tanner;corpse;monster;sewer;troll;orc;Amber;Rookgaard;main;mainland;Obi;Dixi;Lily;Al Dee;wares;job;merchants;Lee'Delle;weapon;shield;Willie;Billy;Norma;" /> <parameter key="keyword_reply1" value="It's in the academy, just above {Seymour}. Go there once you are level 8 to leave this place." /> <parameter key="keyword_reply2" value="He sticks his nose too much in books." /> <parameter key="keyword_reply3" value="I'm not what you'd call a 'believer'." /> <parameter key="keyword_reply4" value="Yep." /> <parameter key="keyword_reply5" value="That's my job. It can be dirty at times but it provides enough income for my living." /> <parameter key="keyword_reply6" value="I'm buying fresh {corpses} of rats, rabbits and wolves. I don't buy half-decayed ones. If you have any for sale, {trade} with me." /> <parameter key="keyword_reply7" value="Good monsters to start with are rats. They live in the {sewers} under the village of {Rookgaard}." /> <parameter key="keyword_reply8" value="The nearest sewer entrance is just to the right of this building." /> <parameter key="keyword_reply9" value="Troll leather stinks. Can't use it." /> <parameter key="keyword_reply10" value="I don't buy orcs. Their skin is too scratchy." /> <parameter key="keyword_reply11" value="Now that's an interesting woman." /> <parameter key="keyword_reply12" value="This island has its own problems, but all in all it's a decent place to live." /> <parameter key="keyword_reply13" value="You can go there once you are level 8 and have talked to the {oracle}." /> <parameter key="keyword_reply14" value="You can go there once you are level 8 and have talked to the {oracle}." /> <parameter key="keyword_reply15" value="He is such a hypocrite." /> <parameter key="keyword_reply16" value="She buys my fine leather clothes." /> <parameter key="keyword_reply17" value="She always comes and preaches about how one should not wear animal skin." /> <parameter key="keyword_reply18" value="He's an apple polisher." /> <parameter key="keyword_reply19" value="I'm buying fresh {corpses} of rats, rabbits and wolves. I don't buy half-decayed ones. If you have any for sale, {trade} with me." /> <parameter key="keyword_reply20" value="I'm the local {tanner}. I buy fresh animal {corpses}, tan them, and convert them into fine leather clothes which I then sell to {merchants}." /> <parameter key="keyword_reply21" value="{Dixi} and {Lee'Delle} sell my leather clothes in their shops." /> <parameter key="keyword_reply22" value="Her nose is a little high in the air, I think. She never shakes my hand." /> <parameter key="keyword_reply23" value="Nope, sorry, don't sell that. Ask {Obi} or {Lee'Delle}." /> <parameter key="keyword_reply24" value="Nope, sorry, don't sell that. Ask {Dixi} or {Lee'Delle}." /> <parameter key="keyword_reply25" value="I kinda like him. At least he says what he thinks." /> <parameter key="keyword_reply26" value="He's a better cook than his cousin {Willie}, actually." /> <parameter key="keyword_reply27" value="I like her beer." /> </parameters> </npc> Tom.lua local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState,price = {},0 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 shopModule = ShopModule:new() npcHandler:addModule(shopModule) 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,'human') then selfSay('Are you crazy?!', cid) npcHandler:releaseFocus(cid) end return true end function thinkCallback() talk = math.random(1,200) if talk == 1 then doCreatureSay(getNpcCid(), "Oh yeah, I'm also interested in wolf paws and bear paws.", TALKTYPE_YELL) elseif talk == 2 then doCreatureSay(getNpcCid(), "Also buying minotaur leather.", TALKTYPE_YELL) elseif talk == 3 then doCreatureSay(getNpcCid(), "Buying fresh corpses of rats, rabbits and wolves.", TALKTYPE_YELL) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...