First commit

This commit is contained in:
2025-02-26 13:42:34 +01:00
commit f465c9072c
2467 changed files with 426214 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<commands>
<command cmd="/reload" group="2" acctype="5" log="yes" />
<command cmd="/raid" group="2" acctype="4" log="yes" />
<command cmd="!sellhouse" group="1" acctype="1" log="no" />
</commands>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<groups>
<group id="1" name="player" flags="0" maxdepotitems="0" maxvipentries="0" access="0" />
<group id="2" name="gamemaster" flags="412316860415" maxdeoptitems="0" maxvipentries="0" access="1" />
<group id="3" name="god" flags="547608305658" maxdepotitems="0" maxvipentries="0" access="1" />
</groups>

View File

@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<outfits>
<!-- Female outfits -->
<outfit type="0" looktype="136" name="Citizen" premium="no" unlocked="yes" enabled="yes" />
<outfit type="0" looktype="137" name="Hunter" premium="no" unlocked="yes" enabled="yes" />
<outfit type="0" looktype="138" name="Mage" premium="no" unlocked="yes" enabled="yes" />
<outfit type="0" looktype="139" name="Knight" premium="no" unlocked="yes" enabled="yes" />
<outfit type="0" looktype="140" name="Noblewoman" premium="no" unlocked="yes" enabled="yes" />
<outfit type="0" looktype="141" name="Summoner" premium="no" unlocked="yes" enabled="yes" />
<outfit type="0" looktype="142" name="Warrior" premium="no" unlocked="yes" enabled="yes" />
<outfit type="0" looktype="147" name="Barbarian" premium="no" unlocked="yes" enabled="yes" />
<outfit type="0" looktype="148" name="Druid" premium="no" unlocked="yes" enabled="yes" />
<outfit type="0" looktype="149" name="Wizard" premium="no" unlocked="yes" enabled="yes" />
<outfit type="0" looktype="150" name="Oriental" premium="no" unlocked="yes" enabled="yes" />
<outfit type="0" looktype="155" name="Pirate" premium="no" unlocked="no" enabled="yes" />
<outfit type="0" looktype="156" name="Assassin" premium="no" unlocked="no" enabled="yes" />
<outfit type="0" looktype="157" name="Beggar" premium="no" unlocked="no" enabled="yes" />
<outfit type="0" looktype="158" name="Shaman" premium="no" unlocked="no" enabled="yes" />
<outfit type="0" looktype="161" name="Witch" premium="yes" unlocked="yes" enabled="yes" />
<!-- Male outfits -->
<outfit type="1" looktype="128" name="Citizen" premium="no" unlocked="yes" enabled="yes" />
<outfit type="1" looktype="129" name="Hunter" premium="no" unlocked="yes" enabled="yes" />
<outfit type="1" looktype="130" name="Mage" premium="no" unlocked="yes" enabled="yes" />
<outfit type="1" looktype="131" name="Knight" premium="no" unlocked="yes" enabled="yes" />
<outfit type="1" looktype="132" name="Nobleman" premium="no" unlocked="yes" enabled="yes" />
<outfit type="1" looktype="133" name="Summoner" premium="no" unlocked="yes" enabled="yes" />
<outfit type="1" looktype="134" name="Warrior" premium="no" unlocked="yes" enabled="yes" />
<outfit type="1" looktype="143" name="Barbarian" premium="no" unlocked="yes" enabled="yes" />
<outfit type="1" looktype="144" name="Druid" premium="no" unlocked="yes" enabled="yes" />
<outfit type="1" looktype="145" name="Wizard" premium="no" unlocked="yes" enabled="yes" />
<outfit type="1" looktype="146" name="Oriental" premium="no" unlocked="yes" enabled="yes" />
<outfit type="1" looktype="151" name="Pirate" premium="no" unlocked="no" enabled="yes" />
<outfit type="1" looktype="152" name="Assassin" premium="no" unlocked="no" enabled="yes" />
<outfit type="1" looktype="153" name="Beggar" premium="no" unlocked="no" enabled="yes" />
<outfit type="1" looktype="154" name="Shaman" premium="no" unlocked="no" enabled="yes" />
<outfit type="1" looktype="162" name="Monk" premium="yes" unlocked="yes" enabled="yes" />
</outfits>

View File

@@ -0,0 +1,542 @@
<?xml version="1.0" encoding="UTF-8"?>
<quests>
<quest name="Factions" startstorageid="278" startstoragevalue="1">
<mission name="The Marid and the Efreet - Djinn Greeting" storageid="278" startvalue="1" endvalue="1" ignoreendvalue="true">
<missionstate id="1" description="Melchior told you the word &quot;Djanni'hah&quot; which can be used to talk to Djinns. Be aware that once you become an ally of one Djinn race, you cannot switch sides anymore." />
</mission>
<mission name="The Marid and the Efreet - Marid Faction" storageid="278" startvalue="2" endvalue="2">
<missionstate id="2" description="You have joined the Marid. These friendly, blue Djinns are honest and fair allies. You have pledged eternal loyalty to King Gabel and may enter Asha'daramai freely. Djanni'hah!" />
</mission>
<mission name="The Marid and the Efreet - Efreet Faction" storageid="278" startvalue="3" endvalue="3">
<missionstate id="3" description="You have joined the Efreet. These evil, green Djinns are always up to mischievous pranks. You have pledged eternal loyalty to King Malor and may enter Mal'ouquah freely. Djanni'hah!" />
</mission>
</quest>
<quest name="Friends and Traders" startstorageid="17595" startstoragevalue="1">
<mission name="The Sweaty Cyclops" storageid="17500" startvalue="1" endvalue="2">
<missionstate id="1" description="Big Ben, the cyclops in Ab'Dendriel sends you to bring him 3 bast skirts for his woman. After this he will help you to forge different steel." />
<missionstate id="2" description="Big Ben, the cyclops in Ab'Dendriel will help you to forge different steel now. Just ask him if you need something." />
</mission>
<mission name="The Mermaid Marina" storageid="17504" startvalue="1" endvalue="2">
<missionstate id="1" description="Marina, the mermaid north of Sabrehaven sends you to bring her 50 honeycombs. After this she will help you create spool of yarn." />
<missionstate id="2" description="Marina, the mermaid north of Sabrehaven will help you to create a spool of yarn from 10 pieces of spider silk. Just ask her if you need something." />
</mission>
<mission name="The Blessed Stake" storageid="17576" startvalue="1" endvalue="12">
<missionstate id="1" description="Quentin told you about an old prayer which can bind holy energy to an object. Each of its ten lines has to be recited by a different priest though. Bring Quentin a wooden stake from Gamon to start." />
<missionstate id="2" description="You received Quentin's prayer: &quot;Light shall be near - and darkness afar&quot;. Now, bring your stake to Tibra in the Carlin church for the next line of the prayer." />
<missionstate id="3" description="You received Tibra's prayer: &quot;Hope may fill your heart - doubt shall be banned&quot;. Now, bring your stake to Maealil in the Elven settlement for the next line of the prayer." />
<missionstate id="4" description="You received Maealil's prayer: &quot;Peace may fill your soul - evil shall be cleansed&quot;. Now, bring your stake to Yberius in the Venore temple for the next line of the prayer." />
<missionstate id="5" description="You received Yberius' prayer: &quot;Protection will be granted - from dangers at hand&quot;. Now, bring your stake to Isimov in the dwarven settlement for the next line of the prayer." />
<missionstate id="6" description="You received Isimov's prayer: &quot;Unclean spirits shall be repelled&quot;. Now, bring your stake to Amanda in Edron for the next line of the prayer." />
<missionstate id="7" description="You received Amanda's prayer: &quot;Wicked curses shall be broken&quot;. Now, bring your stake to Kasmir in Darashia for the next line of the prayer." />
<missionstate id="8" description="You received Kasmir's prayer: &quot;Let there be honour and humility&quot;. Now, bring your stake to Rahkem in Ankrahmun for the next line of the prayer." />
<missionstate id="9" description="You received Rahkem's prayer: &quot;Let there be power and compassion&quot;. Now, bring your stake to Brewster in Port Hope for the next line of the prayer." />
<missionstate id="10" description="You received Brewster's prayer: &quot;Your hand shall be guided - your feet shall walk in harmony&quot;. Now, bring your stake to Tyrias in Liberty Bay for the next line of the prayer." />
<missionstate id="11" description="You received Tyrias' prayer: &quot;Your mind shall be a vessel for joy, light and wisdom&quot;. He wasn't exactly happy though and said that if you need some mumbo jumbo again, you should rather go to Chondur." />
<missionstate id="12" description="Chondur was surprised to hear that you had to travel through all of Tibia to have your wooden stake blessed. He offered you help with the blessing if you should need one again in the future." />
</mission>
</quest>
<quest name="Outfit and Addon Quests" startstorageid="17594" startstoragevalue="1">
<mission name="Assassin Addon: The Red Death" storageid="17562" startvalue="18" endvalue="19" ignoreendvalue="true">
<missionstate id="18" description="Atrad wants only two items from you for his old katana: a behemoth claw and a nose ring, both at the same time. He also told you about a &quot;horned fox&quot; who wears such as nose ring" />
<missionstate id="19" description="You have received the second assassin addon." />
</mission>
<mission name="Citizen Addon: Backpack" storageid="18502" startvalue="1" endvalue="3">
<missionstate id="1" description="Collect 100 pieces of minotaur leather and bring it to either Amber or Lubo to have them make a backpack addon for you." />
<missionstate id="2" description="You delivered 100 pieces of minotaur leather. Some time is needed to make the backpack for you though. You should check back later and ask either Amber or Lubo for your backpack." />
<missionstate id="3" description="You got the outfit!" />
</mission>
<mission name="Citizen Addon: Feather Hat" storageid="18501" startvalue="1" endvalue="2">
<missionstate id="1" description="Collect a legion helmet, 100 chicken feathers and 50 honeycombs and bring them to either Hanna or Norma to have them make a feather hat addon for you." />
<missionstate id="2" description="You got the outfit!" />
</mission>
<mission name="Barbarian Outfit Quest" storageid="17532" startvalue="1" endvalue="17">
<missionstate id="1" description="Bron told you that his brother Ajax in Northport needs to learn that violence is not always the answer. He told you to make his brother angry, then show him that all he needed to do was say 'please' to fix the situation." />
<missionstate id="2" description="You will need to leave Ajax alone for an hour, then return to him." />
<missionstate id="3" description="Ajax told you that he has thought about it, and that violence is not always good. Return to Bron now, and tell him that Ajax said fist not always good" />
<missionstate id="4" description="Bron mentioned that he has someone in his house that he doesn't like, and he wants you to get advice from Ajax about how to handle the situation. Go back to Ajax and ask him about Gelagos" />
<missionstate id="5" description="Ajax told you his brother needs Fighting Spirit, and that you should get some from a Djinn and give it to him." />
<missionstate id="6" description="You brought Bron the Fighting Spirit. He acted a little strange." />
<missionstate id="7" description="In order to make a shirt as a present for Ajax, Bron wants you to bring him 50 Pieces of Red Cloth and 50 Pieces of Green Cloth." />
<missionstate id="8" description="Bron wants you to bring him 10 Spider Silk Yarn." />
<missionstate id="9" description="Bron wants you to bring him the Warrior's Sweat." />
<missionstate id="10" description="You brought him all required items! accept it!" />
<missionstate id="11" description="You got the Barbarian Wig Addon! Bring now the present from Bron to Ajax!" />
<missionstate id="12" description="Bring Ajax in Northport 100 Iron Ore." />
<missionstate id="13" description="Bring Ajax 1 Huge Chunk of Crude Iron." />
<missionstate id="14" description="Bring Ajax 50 Perfect Behemoth Fang" />
<missionstate id="15" description="Bring Ajax 50 Lizard Leather" />
<missionstate id="16" description="Come later in 2 hours and ask Ajax for the axe." />
<missionstate id="17" description="You got the Axe Addon!" />
</mission>
<mission name="Beggar Outfit: The Newest Fashion" storageid="17563" startvalue="1" endvalue="6">
<missionstate id="1" description="Your current task is to bring Hugo 20 pieces of brown cloth, like the worn and ragged ghoul clothing." />
<missionstate id="2" description="Your current task is to bring 50 pieces of minotaur leather to Hugo. If you don't know how to get leather, you should ask Kalvin." />
<missionstate id="3" description="Your current task is to bring 10 bat wings to Hugo." />
<missionstate id="4" description="Your current task is to bring 30 heaven blossoms to Hugo. Elves are said to cultivate these flowers." />
<missionstate id="5" description="You brought all items required for the &quot;poor man's look&quot; to Hugo. He told you to come back to him after a whole day has passed, then the outfit should be finished." />
<missionstate id="6" description="You got the outfit!" />
</mission>
<mission name="Druid Outfit Quest" storageid="17535" startvalue="1" endvalue="10">
<missionstate id="1" description="Ceiron sends you to collect a sample of the blooming Griffinclaw." />
<missionstate id="2" description="Ask Ceiron for task." />
<missionstate id="3" description="Take Ceirons waterskin and try to fill it with water from this special trickle. In the mountains between Ankrahmun and Tiquanda are two hydra lairs." />
<missionstate id="4" description="Ask Ceiron for task." />
<missionstate id="5" description="Bring Ceiron 100 ounces of demon dust." />
<missionstate id="6" description="Ask Ceiron for task." />
<missionstate id="7" description="The last mission is to find and retrieve Ceiron's Wolf Tooth Chain lost inside the Orc Fortress." />
<missionstate id="8" description="Ask Ceiron for Faolan." />
<missionstate id="9" description="Head over to Cormaya, find A Majestic Warwolf's Cave and ask her about an addon." />
<missionstate id="10" description="You got the Outfit!" />
</mission>
<mission name="Hunter Outfit Quest" storageid="17539" startvalue="1" endvalue="5">
<missionstate id="1" description="Elane sends you to Liberty Bay to bring her the Crossbow from the Cult." />
<missionstate id="2" description="Bring Elane 100 pieces of lizard leather and 100 pieces of red dragon leather." />
<missionstate id="3" description="Bring Elane 5 enchanted chicken wings." />
<missionstate id="4" description="Bring Elane one piece of royal steel, draconian steel and hell steel each." />
<missionstate id="5" description="You got the Outfit!" />
</mission>
<mission name="Knight Addon: Helmet" storageid="17542" startvalue="1" endvalue="6">
<missionstate id="1" description="Your current task is to bring 100 perfect behemoth fangs to Gregor in Thais." />
<missionstate id="2" description="Your current task is to retrieve the helmet of Ramsay the Reckless from Banuta. These pesky apes steal everything they can get their dirty hands on." />
<missionstate id="3" description="Your current task is to obtain a flask of warrior's sweat, which can be magicially extracted from headgear worn by a true warrior, but only in small amounts. Djinns are said to be good at this." />
<missionstate id="4" description="Your current task is to bring royal steel to Gregor in Thais. Royal steel can only be refined by very skilled smiths." />
<missionstate id="5" description="You have delivered all items required for the helmet addon. Go talk to Sam and tell him Gregor sent you. He will be glad to refine your helmet." />
<missionstate id="6" description="You got the Outfit!" />
</mission>
<mission name="Mage &amp; Summoner Addon: Wand" storageid="17549" startvalue="1" endvalue="7">
<missionstate id="1" description="You found Angelina in a Prison. She told you a secret: Lynda in Thais can create a blessed wand. Greet her from Angelina, maybe she will aid you." />
<missionstate id="2" description="Lynda send you to bring her a sample of all five wands and five rods (Snakebite, Moonlight, Volcanic, Quagmire, Tempest, Vortex, Dragonbreath, Plague, Cosmic Energy and Inferno)" />
<missionstate id="3" description="Bring Lynda 10 ounces of magic sulphur" />
<missionstate id="4" description="Bring Lynda the Necromancer's soul stone" />
<missionstate id="5" description="Bring Lynda 20 ankhs now to complete the ritual." />
<missionstate id="6" description="Lynda is currently preparing a ritual for you. Be patient and don't forget to check on it later!" />
<missionstate id="7" description="You got the Outfit!" />
</mission>
<mission name="Mage &amp; Summoner Addon: Fluid Belt" storageid="17546" startvalue="1" endvalue="1">
<missionstate id="1" description="You got the Outfit!" />
</mission>
<mission name="Mage Tiara and Summoner Cloak" storageid="17547" startvalue="1" endvalue="12">
<missionstate id="1" description="Your current task is to bring 70 bat wings to Myra in Port Hope." />
<missionstate id="2" description="Your current task is to bring 20 pieces of red cloth to Myra in Port Hope. These are said to make an excellent material for a cape." />
<missionstate id="3" description="Your current task is to bring 40 pieces of ape fur to Myra in Port Hope." />
<missionstate id="4" description="Your current task is to bring 35 holy orchids to Myra in Port Hope. Elves are said to cultivate these." />
<missionstate id="5" description="Your current task is to bring 10 spools of spider silk yarn to Myra in Port Hope. Only very large spiders produce silk which is strong enough to be yarned by mermaids." />
<missionstate id="6" description="Your current task is to bring 60 lizard scales to Myra in Port Hope. Lizard scales are great for all sort of magical potions." />
<missionstate id="7" description="Your current task is to bring 40 red dragon scales to Myra in Port Hope." />
<missionstate id="8" description="Your current task is to bring 15 ounces of magic sulphur to Myra in Port Hope. Djinns are said to be good at extracting magic sulphur." />
<missionstate id="9" description="Your current task is to bring 30 ounces of vampire dusts to Myra in Port Hope. You might need to ask a priest for a special blessed stake to turn vampires into dust." />
<missionstate id="10" description="You finally collected all of the items which Myra asked for. You should ask about reward from her." />
<missionstate id="11" description="Go talk to Zoltan in Edron and tell him that Myra nominated you for an award." />
<missionstate id="12" description="You got the Outfit!" />
</mission>
<mission name="Warrior Addon: Shoulder Spike" storageid="17558" startvalue="1" endvalue="7">
<missionstate id="1" description="Your current task is to bring 100 hardened bones to Trisha in Carlin. They can sometimes be extracted from creatures that consist only of - you guessed it, bones. You need an obsidian knife though." />
<missionstate id="2" description="Your current task is to bring 100 turtle shells to Trisha in Carlin. Turtles can be found on some idyllic islands which have recently been discovered." />
<missionstate id="3" description="Your current task is to show that you have fighting spirit. Maybe someone grants you a wish...?" />
<missionstate id="4" description="Your current task is to obtain a dragon claw. You cannot get this special claw from any common dragons in Tibia. It requires a special one, a lord among the lords." />
<missionstate id="5" description="You have delivered all items requried for the shoulder spike addon. Go talk to Cornelia and tell her Trisha sent you. She will be glad to create the should spikes." />
<missionstate id="6" description="Cornelia is currently creating the should spikes for you. Be patient and don't forget to check on it later!" />
<missionstate id="7" description="You have obtained the shoulder spike addon." />
</mission>
<mission name="Wizard Outfits Quest" storageid="17561" startvalue="1" endvalue="7">
<missionstate id="1" description="Bring Lugri the Medusa shield!" />
<missionstate id="2" description="Bring Lugri the Dragon Scale Mail!" />
<missionstate id="3" description="Bring Lugri the Crown Legs!" />
<missionstate id="4" description="Bring Lugri the Ring of the Sky!" />
<missionstate id="5" description="You got the first Outfit Addon!" />
<missionstate id="6" description="Bring The Queen Of The Banshees 50 Holy Orchids and she will reward you with the second addon." />
<missionstate id="7" description="You got the second Outfit Addon!" />
</mission>
<mission name="Pirate Outfit Quest (Sabre)" storageid="17567" startvalue="1" endvalue="5">
<missionstate id="1" description="Bring Duncan 100 Eye Patches from pirates!" />
<missionstate id="2" description="Bring Duncan 100 peg legs from pirates!" />
<missionstate id="3" description="Bring Duncan 100 pirate hooks from pirates!" />
<missionstate id="4" description="Go to Morgan and tell him this codeword: 'firebird' to get the outfit addon!" />
<missionstate id="5" description="You got the Outfit Addon!" />
</mission>
<mission name="Oriental Addon: Hipwear" storageid="17555" startvalue="1" endvalue="2">
<missionstate id="1" description="Your current task is to find a mermaid's comb. If you have ever encountered a mermaid, you should ask her. Bring the comb to Habdel if you are male or to Ishina if you are female." />
<missionstate id="2" description="You have received the first oriental addon." />
</mission>
<mission name="Oriental Addon: Headgear" storageid="17557" startvalue="1" endvalue="5">
<missionstate id="1" description="Your current task is to bring 100 pieces of ape fur to Razan if you are male, or to Miraia if you are female." />
<missionstate id="2" description="Your current task is to bring 100 fish fins to Razan if you are male, or to Miraia if you are female." />
<missionstate id="3" description="Your current task is to bring 2 enchanted chicken wings to Razan if you are male, or to Miraia if you are female." />
<missionstate id="4" description="Your current task is to bring 100 pieces of blue cloth to Razan if you are male, or to Miraia if you are female." />
<missionstate id="5" description="You have received the second oriental addon." />
</mission>
<mission name="Shaman Addon: Staff" storageid="17570" startvalue="2" endvalue="3" ignoreendvalue="true">
<missionstate id="2" description="Try to find a monster which sometimes lurks in the Tiquandian jungle as the revenge of the jungle against mankind. Bring the rare root it carries to Chondur as well as 5 voodoo dolls." />
<missionstate id="3" description="You have received the first shaman addon." />
</mission>
<mission name="Shaman Addon: Mask" storageid="17570" startvalue="4" endvalue="5" ignoreendvalue="true">
<missionstate id="4" description="Your current task is to collect 5 tribal masks from the dworcs and 5 banana staves from the apes. Bring them to Chondur to earn your shamanic mask." />
<missionstate id="5" description="You have received the second shaman addon." />
</mission>
</quest>
<quest name="Sam's Old Backpack" startstorageid="289" startstoragevalue="1">
<mission name="Old And Used Backpack Quest" storageid="289" startvalue="1" endvalue="2">
<missionstate id="1" description="Sam sends you to see Kroox in Kazordoon to get a special dwarven armor. Just tell him, his old buddy Sam is sending you." />
<missionstate id="2" description="You have the permission to retrive a dwarven armor from the mines. The problem is, some giant spiders made the tunnels where the storage is their new home." />
</mission>
<mission name="Dwarven Armor Quest" storageid="290" startvalue="1" endvalue="1" description="You have completed Dwarven Armor Quest!" />
</quest>
<quest name="The Ancient Tombs" startstorageid="267" startstoragevalue="1">
<mission name="Omruc's Treasure" storageid="267" startvalue="1" endvalue="1" description="You defeated Omruc and received a helmet adornment" />
<mission name="Thalas' Treasure" storageid="262" startvalue="1" endvalue="1" description="You defeated Thalas and received a Gem Holder" />
<mission name="Diphtrah's Treasure" storageid="265" startvalue="1" endvalue="1" description="You defeated Dipthrah and received a Damaged Helmet" />
<mission name="Mahrdis' Treasure" storageid="261" startvalue="1" endvalue="1" description="You defeated Mahrdis and received a Helmet Ornament" />
<mission name="Vashresamun's Treasure" storageid="264" startvalue="1" endvalue="1" description="You solved the musical riddles of Vashresamun's Tomb and received a left horn." />
<mission name="Morguthis' Treasure" storageid="263" startvalue="1" endvalue="1" description="You defeated Morguthis and received a Right Horn" />
<mission name="Rahemos' Treasure" storageid="266" startvalue="1" endvalue="1" description="You defeated Rahemos and received a Helmet Piece" />
</quest>
<quest name="The Ape City" startstorageid="293" startstoragevalue="1">
<mission name="Hairycles' Missions" storageid="293" startvalue="1" endvalue="18">
<missionstate id="1" description="Find whisper moss in the dworc settlement south of Port Hope and bring it back to Hairycles." />
<missionstate id="2" description="You have completed the first mission. Hairycles was happy about the whisper moss you gave to him. He might have another mission for you." />
<missionstate id="3" description="Hairycles asked you to bring him cough syrup from a human settlement. A healer might know more about this medicine." />
<missionstate id="4" description="You have completed the second mission. Hairycles was happy about the cough syrup you gave to him. He might have another mission for you." />
<missionstate id="5" description="Hairycles asked you to bring him a magical scroll from the lizard settlement Chor." />
<missionstate id="6" description="You have completed the third mission. Hairycles appreciated that you brought the scroll to him and will try to read it. Maybe he has another mission for you later." />
<missionstate id="7" description="Since Hairycles was not able to read the scroll you brought him, he asked you dig for a tomb in the desert to the east. Proceed in this tomb until you find an obelisk between red stones and read it." />
<missionstate id="8" description="You have completed the fourth mission. Hairycles read your mind and can now translate the lizard scroll. He might have another mission for you." />
<missionstate id="9" description="Hairycles wants to create a life charm for the ape people. He needs a hydra egg since it has strong regenerating powers." />
<missionstate id="10" description="You have completed the fifth mission. Hairycles attempts to create a might charm for the protection of the ape people. He might have another mission for you later." />
<missionstate id="11" description="Hairycles need a witches' cap mushroom which is supposed to be hidden in a dungeon deep under Fibula." />
<missionstate id="12" description="You have completed the sixth mission. You brought the witches' cap mushroom back to Hairycles. He might have another mission for you." />
<missionstate id="13" description="Hairycles is worried about an ape cult which drinks some strange fluid that the lizards left behind. Go to the old lizard temple under Banuta and destroy three of the casks there with a crowbar." />
<missionstate id="14" description="You have completed the seventh mission. You found the old lizard ruins under Banuta and destroyed three of the casks with snake blood. Hairycles might have another mission for you." />
<missionstate id="15" description="The apes now need a symbol of their faith. Speak with the blind prophet in a cave to the northeast and go to the Forbidden Land. Find a hair of the giant, holy ape Bong and bring it back." />
<missionstate id="16" description="You completed the eighth mission. Hairycles gladly accepted the hair of the ape god which you brought him. He told you to have one final mission for you." />
<missionstate id="17" description="Go into the deepest catacombs under Banuta and destroy the monument of the snake god with the hammer that Hairycles gave to you." />
<missionstate id="18" description="You successfully destroyed the monument of the snake god. As reward, you can buy sacred statues from Hairycles. If you haven't done so yet, you should also ask him for a shaman outfit." />
</mission>
</quest>
<quest name="The Djinn War - Efreet Faction" startstorageid="286" startstoragevalue="1">
<mission name="Efreet Mission 1: The Supply Thief" storageid="286" startvalue="1" endvalue="3">
<missionstate id="1" description="Travel to Thais and keep your eyes open for something that might give you a clue on the supply thief." />
<missionstate id="2" description="You have found the potential supply thief - Partos in Thais seemed very suspicious. Baa'leal might be interested in this matter." />
<missionstate id="3" description="You have reported the case to Baa'leal. He seemed very satisfied and told you that Alesar might have another mission for you." />
</mission>
<mission name="Efreet Mission 2: The Tear of Daraman" storageid="287" startvalue="1" endvalue="3">
<missionstate id="1" description="Sneak into Ashta'daramai and steal a &quot;Tear of Daraman&quot;. For more information about these gems visit the Efreet library." />
<missionstate id="2" description="You have successfully managed to steal a Tear of Daraman from Ashta'daramai. Bring it to Alesar." />
<missionstate id="3" description="You have delivered Daraman's Tear. Alesar seemed very satisfied and told you that Malor himself might have another mission for you." />
</mission>
<mission name="Efreet Mission 3: The Sleeping Lamp" storageid="288" startvalue="1" endvalue="3">
<missionstate id="1" description="Malor asked you to find Fa'hradin's sleeping lamp in the orc fortress at Ulderek's Rock. Then, sneak into Ashta'daramai and exchange Gabel's sleeping lamp with Fa'hradin's lamp." />
<missionstate id="2" description="You successfully exchanged the lamps. Malor will be happy to hear about this." />
<missionstate id="3" description="The Efreet are very satisfied with your help. King Malor allowed you to trade with Yaman and Alesar." />
</mission>
</quest>
<quest name="The Djinn War - Marid Faction" startstorageid="280" startstoragevalue="1">
<mission name="Marid Mission 1: The Dwarven Kitchen" storageid="280" startvalue="1" endvalue="2">
<missionstate id="1" description="Bring a cookbook of the dwarven kitchen to Bo'ques." />
<missionstate id="2" description="You have delivered the cookbook. Bo'ques seemed very satisfied and told you that Fa'hradin might have another mission for you." />
</mission>
<mission name="Marid Mission 2: The Spyreport" storageid="281" startvalue="1" endvalue="2">
<missionstate id="1" description="Fa'hradin asked you to sneak into the Efreet fortress Mal'ouqhah and find their undercover spy. The codeword is PIEDPIPER." />
<missionstate id="2" description="You have delivered the spyreport. Fa'hradin seemed impressed and told you that Gabel himself might have another mission for you." />
</mission>
<mission name="Rata'Mari and the Cheese" storageid="282" startvalue="1" endvalue="2">
<missionstate id="1" description="You have promised Rata'Mari cheese. Once you deliver some to him, he will hand over his spyreport." />
<missionstate id="2" description="You got Rata'Mari's spyreport. He seems to be quite happy with the cheese you brought him." />
</mission>
<mission name="Marid Mission 3: The Sleeping Lamp" storageid="283" startvalue="1" endvalue="3">
<missionstate id="1" description="Gabel asked you to find Fa'hradin's sleeping lamp in the orc fortress at Ulderek's Rock. Then, sneak into Mal'ouqhah and exchange Malor's sleeping lamp with Fa'hradin's lamp." />
<missionstate id="2" description="You successfully exchanged the lamps. Gabel will be happy to hear about this." />
<missionstate id="3" description="The Marid deeply appreciate your help. King Gabel allowed you to trade with Haroun and Nah'bob." />
</mission>
</quest>
<quest name="The Postman Missions" startstorageid="227" startstoragevalue="1">
<mission name="Mission 1 - Check Postal Routes" storageid="227" startvalue="1" endvalue="6">
<missionstate id="1" description="Kevin wants you to travel with Captain Bluebear to Carlin." />
<missionstate id="2" description="Kevin wants you to travel with Uzon in Femor Hills to Edron." />
<missionstate id="3" description="Kevin wants you to travel with Captain Seahorse to Venore." />
<missionstate id="4" description="Kevin wants you to travel with Brodrosch to Cormaya" />
<missionstate id="5" description="You have checked the Postal Routes, report back to Kevin!" />
<missionstate id="6" description="You have reported back that you have completed the mission." />
</mission>
<mission name="Mission 2 - Fix Mailbox" storageid="228" startvalue="1" endvalue="3">
<missionstate id="1" description="Kevin wants you to fix one of their Mailboxes located on Folda with a crowbar." />
<missionstate id="2" description="You have fixed the mailbox, report back to Kevin!" />
<missionstate id="3" description="You have reported back that you have completed the mission." />
</mission>
<mission name="Mission 3 - Bill Delivery" storageid="229" startvalue="1" endvalue="4">
<missionstate id="1" description="Kevin wants you to deliver a bill to the stage magician David Brassacres. He's hiding from his creditors somewhere in Venore." />
<missionstate id="2" description="You have found the David Brassacres, deliver him the bill!" />
<missionstate id="3" description="You have delivered the bill to the stage magician David Brassacres, report back to Kevin!" />
<missionstate id="4" description="You have reported back that you have completed the mission." />
</mission>
<mission name="Mission 4 - Aggressive Dogs" storageid="230" startvalue="1" endvalue="21">
<missionstate id="1" description="Kevin has asked you to deliver 20 Bones to him." />
<missionstate id="2" description="Kevin has asked you to deliver 20 Bones to him." />
<missionstate id="3" description="Kevin has asked you to deliver 20 Bones to him." />
<missionstate id="4" description="Kevin has asked you to deliver 20 Bones to him." />
<missionstate id="5" description="Kevin has asked you to deliver 20 Bones to him." />
<missionstate id="6" description="Kevin has asked you to deliver 20 Bones to him." />
<missionstate id="7" description="Kevin has asked you to deliver 20 Bones to him." />
<missionstate id="8" description="Kevin has asked you to deliver 20 Bones to him." />
<missionstate id="9" description="Kevin has asked you to deliver 20 Bones to him." />
<missionstate id="10" description="Kevin has asked you to deliver 20 Bones to him." />
<missionstate id="11" description="Kevin has asked you to deliver 20 Bones to him." />
<missionstate id="12" description="Kevin has asked you to deliver 20 Bones to him." />
<missionstate id="13" description="Kevin has asked you to deliver 20 Bones to him." />
<missionstate id="14" description="Kevin has asked you to deliver 20 Bones to him." />
<missionstate id="15" description="Kevin has asked you to deliver 20 Bones to him." />
<missionstate id="16" description="Kevin has asked you to deliver 20 Bones to him." />
<missionstate id="17" description="Kevin has asked you to deliver 20 Bones to him." />
<missionstate id="18" description="Kevin has asked you to deliver 20 Bones to him." />
<missionstate id="19" description="Kevin has asked you to deliver 20 Bones to him." />
<missionstate id="20" description="Kevin has asked you to deliver 20 Bones to him." />
<missionstate id="21" description="You have delivered 20 Bones to Kevin." />
</mission>
<mission name="Mission 5 - Present Delivery" storageid="231" startvalue="1" endvalue="3">
<missionstate id="1" description="Kevin has asked you to retrieve the present behind the door on the lower right side of his room and deliver it to Dermot in Fibula." />
<missionstate id="2" description="You have delivered the present to Dermot, report back to Kevin!" />
<missionstate id="3" description="You have reported back that you have completed the mission." />
</mission>
<mission name="Mission 6 - New Uniforms" storageid="233" startvalue="1" endvalue="11">
<missionstate id="1" description="Kevin has asked you to travel to Venore and negotiate with Hugo for new uniforms." />
<missionstate id="2" description="Hugo said that his dog ate the last dress pattern they used and he has no clue where Kevin Postner got it from, go ask Kevin." />
<missionstate id="3" description="Kevin wants you to ask the great Technomancer Talphion in Kazordoon for the technical details." />
<missionstate id="4" description="Talphion will send a copy to Kevin, report back to Kevin." />
<missionstate id="5" description="Kevin wants you tk ask Queen Eloise of Carlin for the perfect colours." />
<missionstate id="6" description="Queen Eloise said she will send some color samples via mail to Kevin, report back to Kevin." />
<missionstate id="7" description="Kevin has asked you to go to Noodles and find out what he dislikes the most: mouldy cheese, a piece of fur or a banana skin." />
<missionstate id="8" description="You have found out what Noodles dislike! Report back to Kevin." />
<missionstate id="9" description="Kevin wants you to tell Hugo that they order those uniforms." />
<missionstate id="10" description="Hugo has agreed to make the uniforms, report back to Kevin!" />
<missionstate id="11" description="You have reported back that you have completed the mission." />
</mission>
<mission name="Mission 7 - Measurements" storageid="234" startvalue="1" endvalue="8">
<missionstate id="1" description="Kevin wants you to bring him the measurements of Ben, Lokur, Dove, Liane, Chrystal and Olrik." />
<missionstate id="2" description="You have received the measurements from 1 of 6 postofficers." />
<missionstate id="3" description="You have received the measurements from 2 of 6 postofficers." />
<missionstate id="4" description="You have received the measurements from 3 of 6 postofficers." />
<missionstate id="5" description="You have received the measurements from 4 of 6 postofficers." />
<missionstate id="6" description="You have received the measurements from 5 of 6 postofficers." />
<missionstate id="7" description="You have received all measurements, report back to Kevin!" />
<missionstate id="8" description="You have reported back that you have completed the mission." />
</mission>
<mission name="Mission 8 - Missing Courier" storageid="242" startvalue="1" endvalue="2">
<missionstate id="1" description="Kevin wants you to find the missing courier Waldo or at least his posthorn." />
<missionstate id="2" description="You have reported back that you have completed the mission." />
</mission>
<mission name="Mission 9 - Dear Santa" storageid="244" startvalue="1" endvalue="3">
<missionstate id="1" description="Kevin wants you to deliver som letters to Santa Claus on Vega." />
<missionstate id="2" description="You have delivered the letters to Santa Claus on Vega." />
<missionstate id="3" description="You have reported back that you have completed the mission." />
</mission>
<mission name="Mission 10 - Mintwallin" storageid="245" startvalue="1" endvalue="3">
<missionstate id="1" description="Kevin wants you to deliver a letter to Markwin, king of Mintwallin from his mother." />
<missionstate id="2" description="You have delivered the letter to Markwin." />
<missionstate id="3" description="You have reported back that you have completed the mission." />
</mission>
<mission name="Postman Rank" storageid="250" startvalue="1" endvalue="5">
<missionstate id="1" description="Assistant Postman" />
<missionstate id="2" description="Postman" />
<missionstate id="3" description="Grand Postman" />
<missionstate id="4" description="Grand Postman for Special Operations" />
<missionstate id="5" description="Arch Postman" />
</mission>
</quest>
<quest name="The Shattered Isles" startstorageid="17593" startstoragevalue="1">
<mission name="A Djinn in Love" storageid="17502" startvalue="9" endvalue="13" ignoreendvalue="true">
<missionstate id="9" description="You need to return to Marina and ask her for a date with Ocelus." />
<missionstate id="10" description="You need to return to Ocelus with the bad news." />
<missionstate id="11" description="Ocelus told you to get a poem for him, if you didn't buy one already, head to Ab'Dendriel and buy a Love Poem from Elvith." />
<missionstate id="12" description="You need to go recite the poem to Marina and impress her with the Djinn's romantic and poetic abilities." />
<missionstate id="13" description="After reciting the poem to Marina, she decided to date Ocelus and release Ray Striker from her spell." />
</mission>
<mission name="A Poem for the Mermaid" storageid="17502" startvalue="7" endvalue="9" ignoreendvalue="true">
<missionstate id="7" description="You need to find the man-stealing mermaid and try to break her spell over poor Raymond, the mermaid Marina is near the northern coast of the island." />
<missionstate id="8" description="You discovered that she does in fact have a spell on him, and will not release him unless someone better comes along." />
<missionstate id="9" description="You are a true master in reciting love poems now. No mermaid will be able to resist if you ask for a date!" />
</mission>
<mission name="Access to Goroma" storageid="17501" startvalue="2" endvalue="2" description="After helping Jack Fate to collect the 30 woodpieces, Jack Fate in Liberty Bay will bring you to Goroma." />
<mission name="Access to Laguna Island" storageid="17502" startvalue="13" endvalue="13" ignoreendvalue="true" description="After arranging a date for Marina and Ocelus, you are allowed to use Marina's sea turtles. They will bring you to the idyllic Laguna Islands." />
<mission name="Access to Meriana" storageid="17502" startvalue="6" endvalue="6" ignoreendvalue="true" description="After earning the trust of the governor's daughter Eleonore, Captain Waverider in Liberty Bay will bring you to Meriana if you tell him the secret codeword 'peg leg'." />
<mission name="The Counterspell" storageid="17509" startvalue="2" endvalue="5">
<missionstate id="2" description="You have begun Chondur's ritual. Bring him a fresh dead chicken so that he can begin to create a counterspell which will allow you to pass the magical barrier on Goroma." />
<missionstate id="3" description="You have begun Chondur's ritual. Bring him a fresh dead rat so that he can continue creating a counterspell which will allow you to pass the magical barrier on Goroma." />
<missionstate id="4" description="You have begun Chondur's ritual. Bring him a fresh dead black sheep so that he can complete his counterspell which will allow you to pass the magical barrier on Goroma." />
<missionstate id="5" description="You may pass the energy barrier on Goroma. The counterspell Chondur created for you with his ritual will allow you to withstand the evil magic of the cultist." />
</mission>
<mission name="The Errand" storageid="17502" startvalue="3" endvalue="4" ignoreendvalue="true">
<missionstate id="3" description="You told Eleonore to run a small errand. Deliver the 200 gold pieces she gave to the herbalist Charlotta in the south-western part of Liberty Bay." />
<missionstate id="4" description="You delivered the gold to Charlotta. Return to Eleonore and tell her the secret password: peg leg" />
</mission>
<mission name="The Governor's Daughter" storageid="17502" startvalue="1" endvalue="2" ignoreendvalue="true">
<missionstate id="1" description="You promised to find Eleonore's lost ring. She told you that a parrot stole it from her dressing table and flew to the nearby mountains. You might need a rake to retrieve the ring." />
<missionstate id="2" description="You returned the ring to Eleonore." />
</mission>
</quest>
<quest name="The Queen of the Banshees" startstorageid="5" startstoragevalue="1">
<mission name="The Hidden Seal" storageid="5" startvalue="1" endvalue="1" description="You broke the first seal." />
<mission name="The Seal of Logic" storageid="10" startvalue="1" endvalue="1" description="You broke the sixth seal." />
<mission name="The Seal of True Path" storageid="9" startvalue="1" endvalue="1" description="You broke the fifth seal." />
<mission name="The Seal of Sacrifice" storageid="4" startvalue="1" endvalue="1" description="You broke the fourth seal." />
<mission name="The Seal of Demonrage" storageid="7" startvalue="1" endvalue="1" description="You broke the third seal." />
<mission name="The Plague Seal" storageid="6" startvalue="1" endvalue="1" description="You broke the second seal." />
<mission name="All Seals" storageid="11" startvalue="1" endvalue="1" description="You broke all the seals." />
</quest>
<quest name="The White Raven Monastery" startstorageid="62" startstoragevalue="2">
<mission name="Access to the Isle of Kings" storageid="62" endvalue="2">
<missionstate id="2" description="You are a friend of Dalbrect. Since you returned his family brooch he will sail you to the Isle of Kings unless you do something stupid." />
</mission>
<mission name="The Investigation" storageid="17584" startvalue="1" endvalue="2">
<missionstate id="1" description="Investigate the catacombs. Abbot Costello should be interested in information about brother Fugio." />
<missionstate id="2" description="You returned Fugio's Diary. Costello was very thankful about your help and gave you a blessed ankh as reward." />
</mission>
</quest>
<quest name="The Serpentine Tower" startstorageid="17596" startstoragevalue="1">
<mission name="The Academy of Magic Arts Disaster" storageid="17596" endvalue="2">
<missionstate id="1" description="The evil ancient gods teleported you to the Serpentine Tower. You must survive the disaster!" />
<missionstate id="2" description="The earthquake destroyed the Serpentine Tower. There must be a way to get in the undergrounds." />
</mission>
<mission name="The Reward of The Serpentine Tower" storageid="17604" endvalue="1">
<missionstate id="1" description="You have solved The Serpentine Tower live event quest!" />
</mission>
</quest>
<quest name="Killing in the Name of..." startstorageid="17607" startstoragevalue="1">
<!-- Daniel Steelsoul: level 6 to 49 -->
<mission name="Daniel Steelsoul: Trolls" storageid="17633" startvalue="0" endvalue="100" description="You already hunted |STATE|/100 trolls." />
<mission name="Daniel Steelsoul: Trolls" storageid="17633" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Daniel Steelsoul: Goblins" storageid="17634" startvalue="0" endvalue="150" description="You already hunted |STATE|/150 goblins." />
<mission name="Daniel Steelsoul: Goblins" storageid="17634" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Daniel Steelsoul: Rotworms" storageid="17635" startvalue="0" endvalue="150" description="You already hunted |STATE|/150 rotworms." />
<mission name="Daniel Steelsoul: Rotworms" storageid="17635" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Daniel Steelsoul: Cyclopes" storageid="17636" startvalue="0" endvalue="150" description="You already hunted |STATE|/150 cyclopes." />
<mission name="Daniel Steelsoul: Cyclopes" storageid="17636" startvalue="99999" endvalue="99999" description="You have finished the task." />
<!-- killing in the name of rank -->
<mission name="Paw and Fur: Member" storageid="17615" startvalue="0" endvalue="10" description="You are member of the Paw and Fur hunting elite. You currently have |STATE| Paw &amp; Fur points." />
<mission name="Paw and Fur: Ranger" storageid="17615" startvalue="11" endvalue="20" description="You are Ranger of the Paw and Fur hunting elite. You currently have |STATE| Paw &amp; Fur points." />
<mission name="Paw and Fur: Big Game Hunter" storageid="17615" startvalue="21" endvalue="40" description="You are Big Game Hunter in the Paw and Fur hunting elite. You currently have |STATE| Paw &amp; Fur points." />
<mission name="Paw and Fur: Trophy Hunter" storageid="17615" startvalue="41" endvalue="70" description="You are Trophy Hunter in the Paw and Fur hunting elite. You currently have |STATE| Paw &amp; Fur points. Ask Grizzly Adams for 'special task' he might have something for you." />
<mission name="Paw and Fur: Elite Hunter" storageid="17615" startvalue="71" endvalue="100" description="You have obtained the highest possible rank in the Paw and Fur hunting elite, you are Elite Hunter. You currently have |STATE| Paw &amp; Fur points. Ask Grizzly Adams for 'special task' he might have something for you." />
<!-- Grizzly Adams: level 6 to 49 -->
<mission name="Paw and Fur: Crocodiles" storageid="17609" startvalue="0" endvalue="100" description="You already hunted |STATE|/100 crocodiles." />
<mission name="Paw and Fur: Crocodiles" storageid="17609" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Tarantulas" storageid="17610" startvalue="0" endvalue="100" description="You already hunted |STATE|/100 tarantulas." />
<mission name="Paw and Fur: Tarantulas" storageid="17610" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Carniphilas" storageid="17611" startvalue="0" endvalue="50" description="You already hunted |STATE|/50 carniphilas." />
<mission name="Paw and Fur: Carniphilas" storageid="17611" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Apes" storageid="17612" startvalue="0" endvalue="100" description="You already hunted |STATE|/100 apes." />
<mission name="Paw and Fur: Apes" storageid="17612" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Thornback Tortoises" storageid="17613" startvalue="0" endvalue="100" description="You already hunted |STATE|/100 thornback tortoises." />
<mission name="Paw and Fur: Thornback Tortoises" storageid="17613" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Gargoyles" storageid="17614" startvalue="0" endvalue="65" description="You already hunted |STATE|/65 gargoyles." />
<mission name="Paw and Fur: Gargoyles" storageid="17614" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Frost Trolls" storageid="17697" startvalue="0" endvalue="100" description="You already hunted |STATE|/100 frost trolls." />
<mission name="Paw and Fur: Frost Trolls" storageid="17697" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Swamp Trolls" storageid="17698" startvalue="0" endvalue="100" description="You already hunted |STATE|/100 swamp trolls." />
<mission name="Paw and Fur: Swamp Trolls" storageid="17698" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Rats" storageid="17699" startvalue="0" endvalue="25" description="You already hunted |STATE|/25 rats." />
<mission name="Paw and Fur: Rats" storageid="17699" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Wolves" storageid="17700" startvalue="0" endvalue="100" description="You already hunted |STATE|/100 wolves." />
<mission name="Paw and Fur: Wolves" storageid="17700" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Wasps" storageid="17701" startvalue="0" endvalue="100" description="You already hunted |STATE|/100 wasps." />
<mission name="Paw and Fur: Wasps" storageid="17701" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Larvas" storageid="17702" startvalue="0" endvalue="100" description="You already hunted |STATE|/100 larvas." />
<mission name="Paw and Fur: Larvas" storageid="17702" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Dwarfs" storageid="17703" startvalue="0" endvalue="100" description="You already hunted |STATE|/100 dwarfs." />
<mission name="Paw and Fur: Dwarfs" storageid="17703" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Low Undeads" storageid="17704" startvalue="0" endvalue="100" description="You already hunted |STATE|/100 undeads." />
<mission name="Paw and Fur: Low Undeads" storageid="17704" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Elves" storageid="17729" startvalue="0" endvalue="200" description="You already hunted |STATE|/200 elves." />
<mission name="Paw and Fur: Elves" storageid="17729" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Bugs" storageid="17730" startvalue="0" endvalue="40" description="You already hunted |STATE|/40 bugs." />
<mission name="Paw and Fur: Bugs" storageid="17730" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Outlaws" storageid="17731" startvalue="0" endvalue="250" description="You already hunted |STATE|/250 outlaws." />
<mission name="Paw and Fur: Outlaws" storageid="17731" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Hyaenas" storageid="17732" startvalue="0" endvalue="30" description="You already hunted |STATE|/30 hyaenas." />
<mission name="Paw and Fur: Hyaenas" storageid="17732" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Lions" storageid="17733" startvalue="0" endvalue="20" description="You already hunted |STATE|/20 lions." />
<mission name="Paw and Fur: Lions" storageid="17733" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Bears" storageid="17734" startvalue="0" endvalue="35" description="You already hunted |STATE|/35 bears." />
<mission name="Paw and Fur: Bears" storageid="17734" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Slimes" storageid="17735" startvalue="0" endvalue="100" description="You already hunted |STATE|/100 slimes." />
<mission name="Paw and Fur: Slimes" storageid="17735" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Beholders" storageid="17736" startvalue="0" endvalue="250" description="You already hunted |STATE|/250 beholders." />
<mission name="Paw and Fur: Beholders" storageid="17736" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Djinns" storageid="17737" startvalue="0" endvalue="500" description="You already hunted |STATE|/500 djinns." />
<mission name="Paw and Fur: Djinns" storageid="17737" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Pirates" storageid="17738" startvalue="0" endvalue="600" description="You already hunted |STATE|/600 pirates." />
<mission name="Paw and Fur: Pirates" storageid="17738" startvalue="99999" endvalue="99999" description="You have finished the task." />
<!--Grizzly Adams: level 50 to 79 -->
<mission name="Paw and Fur: Quara Scouts" storageid="17616" startvalue="0" endvalue="200" description="You already hunted |STATE|/200 quara scouts." />
<mission name="Paw and Fur: Quara Scouts" storageid="17616" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Ancient Scarabs" storageid="17617" startvalue="0" endvalue="125" description="You already hunted |STATE|/125 ancient scarabs." />
<mission name="Paw and Fur: Ancient Scarabs" storageid="17617" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Wyverns" storageid="17618" startvalue="0" endvalue="100" description="You already hunted |STATE|/100 wyverns." />
<mission name="Paw and Fur: Wyverns" storageid="17618" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Bonebeasts" storageid="17619" startvalue="0" endvalue="100" description="You already hunted |STATE|/100 bonebeasts." />
<mission name="Paw and Fur: Bonebeasts" storageid="17619" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Dragons" storageid="17620" startvalue="0" endvalue="200" description="You already hunted |STATE|/200 dragons." />
<mission name="Paw and Fur: Dragons" storageid="17620" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Medium Class Orcs" storageid="17712" startvalue="0" endvalue="300" description="You already hunted |STATE|/300 orcs." />
<mission name="Paw and Fur: Medium Class Orcs" storageid="17712" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: High Class Minotaurs" storageid="17713" startvalue="0" endvalue="300" description="You already hunted |STATE|/300 minotaurs." />
<mission name="Paw and Fur: High Class Minotaurs" storageid="17713" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Lizards" storageid="17714" startvalue="0" endvalue="300" description="You already hunted |STATE|/300 lizards." />
<mission name="Paw and Fur: Lizards" storageid="17714" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: High Class Dwarfs" storageid="17715" startvalue="0" endvalue="300" description="You already hunted |STATE|/300 dwarfs." />
<mission name="Paw and Fur: High Class Dwarfs" storageid="17715" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Medium Undeads" storageid="17716" startvalue="0" endvalue="200" description="You already hunted |STATE|/200 undeads." />
<mission name="Paw and Fur: Medium Undeads" storageid="17716" startvalue="99999" endvalue="99999" description="You have finished the task." />
<!--Grizzly Adams: level 80 to 129 -->
<mission name="Paw and Fur: Quara" storageid="17621" startvalue="0" endvalue="600" description="You already hunted |STATE|/600 quara." />
<mission name="Paw and Fur: Quara" storageid="17621" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Giant Spiders" storageid="17622" startvalue="0" endvalue="500" description="You already hunted |STATE|/500 giant spiders." />
<mission name="Paw and Fur: Giant Spiders" storageid="17622" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Banshees" storageid="17623" startvalue="0" endvalue="300" description="You already hunted |STATE|/300 banshees." />
<mission name="Paw and Fur: Banshees" storageid="17623" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Lichs" storageid="17624" startvalue="0" endvalue="500" description="You already hunted |STATE|/500 lichs." />
<mission name="Paw and Fur: Lichs" storageid="17624" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Cults" storageid="17625" startvalue="0" endvalue="500" description="You already hunted |STATE|/500 cults." />
<mission name="Paw and Fur: Cults" storageid="17625" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: High Class Orcs" storageid="17717" startvalue="0" endvalue="125" description="You already hunted |STATE|/125 orcs." />
<mission name="Paw and Fur: High Class Orcs" storageid="17717" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Heros" storageid="17718" startvalue="0" endvalue="150" description="You already hunted |STATE|/150 heros." />
<mission name="Paw and Fur: Heros" storageid="17718" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Necromancers" storageid="17719" startvalue="0" endvalue="300" description="You already hunted |STATE|/300 necromancers." />
<mission name="Paw and Fur: Necromancers" storageid="17719" startvalue="99999" endvalue="99999" description="You have finished the task." />
<!--Grizzly Adams: level 130+ -->
<mission name="Paw and Fur: Hydras" storageid="17626" startvalue="0" endvalue="650" description="You already hunted |STATE|/650 hydras." />
<mission name="Paw and Fur: Hydras" storageid="17626" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Serpent Spawns" storageid="17627" startvalue="0" endvalue="800" description="You already hunted |STATE|/800 serpent spawns." />
<mission name="Paw and Fur: Serpent Spawns" storageid="17627" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Behemoths" storageid="17628" startvalue="0" endvalue="700" description="You already hunted |STATE|/700 behemoths." />
<mission name="Paw and Fur: Behemoths" storageid="17628" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Dragon Lords" storageid="17629" startvalue="0" endvalue="600" description="You already hunted |STATE|/600 dragon lords." />
<mission name="Paw and Fur: Dragon Lords" storageid="17629" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Hand of Cursed Fates" storageid="17630" startvalue="0" endvalue="200" description="You already hunted |STATE|/200 hand of cursed fates." />
<mission name="Paw and Fur: Hand of Cursed Fates" storageid="17630" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Juggernauts" storageid="17631" startvalue="0" endvalue="200" description="You already hunted |STATE|/200 juggernauts." />
<mission name="Paw and Fur: Juggernauts" storageid="17631" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Nightmares" storageid="17720" startvalue="0" endvalue="150" description="You already hunted |STATE|/150 nightmares." />
<mission name="Paw and Fur: Nightmares" storageid="17720" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Warlocks" storageid="17721" startvalue="0" endvalue="300" description="You already hunted |STATE|/300 warlocks." />
<mission name="Paw and Fur: Warlocks" storageid="17721" startvalue="99999" endvalue="99999" description="You have finished the task." />
<mission name="Paw and Fur: Demons" storageid="17722" startvalue="0" endvalue="6666" description="You already hunted |STATE|/6666 demons." />
<mission name="Paw and Fur: Demons" storageid="17722" startvalue="99999" endvalue="99999" description="You have finished the task." />
</quest>
<quest name="Young Mage Tasks" startstorageid="17646" startstoragevalue="1">
<mission name="Proof of the trustworthy" storageid="17645" startvalue="0" endvalue="50" description="You already hunted |STATE|/50 amazons." />
<mission name="Reward of the trustworthy" storageid="17646" startvalue="2" endvalue="2" description="You have proved your trustworthy and claimed the reward." />
</quest>
<quest name="Young Paladin Tasks" startstorageid="17647" startstoragevalue="1">
<mission name="Proof of the trustworthy" storageid="17648" startvalue="0" endvalue="50" description="You already hunted |STATE|/50 minotaurs." />
<mission name="Reward of the trustworthy" storageid="17647" startvalue="2" endvalue="2" description="You have proved your trustworthy and claimed the reward." />
</quest>
<quest name="Young Knight Tasks" startstorageid="17650" startstoragevalue="1">
<mission name="Proof of the trustworthy" storageid="17651" startvalue="0" endvalue="50" description="You already hunted |STATE|/50 orcs." />
<mission name="Reward of the trustworthy" storageid="17650" startvalue="2" endvalue="2" description="You have proved your trustworthy and claimed the reward." />
</quest>
</quests>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<stages>
<config enabled="1"/>
<stage minlevel="1" maxlevel="10" multiplier="10" />
<stage minlevel="11" maxlevel="20" multiplier="9" />
<stage minlevel="21" maxlevel="30" multiplier="8" />
<stage minlevel="31" maxlevel="40" multiplier="7" />
<stage minlevel="41" maxlevel="50" multiplier="6" />
<stage minlevel="51" maxlevel="60" multiplier="5" />
<stage minlevel="61" maxlevel="70" multiplier="4" />
<stage minlevel="71" maxlevel="80" multiplier="3" />
<stage minlevel="81" multiplier="2" />
</stages>

View File

@@ -0,0 +1,84 @@
<?xml version="1.0" encoding="UTF-8"?>
<vocations>
<vocation id="0" flagid="0" name="None" description="none" gaincap="10" gainhp="5" gainmana="5" gainhpticks="6" gainhpamount="1" gainmanaticks="6" gainmanaamount="1" manamultiplier="4.0" attackspeed="2000" basespeed="70" soulmax="100" gainsoulticks="120" fromvoc="0">
<skill id="0" multiplier="1.5"/>
<skill id="1" multiplier="2.0"/>
<skill id="2" multiplier="2.0"/>
<skill id="3" multiplier="2.0"/>
<skill id="4" multiplier="2.0"/>
<skill id="5" multiplier="1.5"/>
<skill id="6" multiplier="1.1"/>
</vocation>
<vocation id="1" flagid="1" name="Sorcerer" description="a sorcerer" gaincap="10" gainhp="5" gainmana="30" gainhpticks="12" gainhpamount="1" gainmanaticks="3" gainmanaamount="2" manamultiplier="1.1" attackspeed="2000" basespeed="70" soulmax="100" gainsoulticks="120" fromvoc="1">
<skill id="0" multiplier="1.5"/>
<skill id="1" multiplier="2.0"/>
<skill id="2" multiplier="2.0"/>
<skill id="3" multiplier="2.0"/>
<skill id="4" multiplier="2.0"/>
<skill id="5" multiplier="1.5"/>
<skill id="6" multiplier="1.1"/>
</vocation>
<vocation id="2" flagid="2" name="Druid" description="a druid" gaincap="10" gainhp="5" gainmana="30" gainhpticks="12" gainhpamount="1" gainmanaticks="3" gainmanaamount="2" manamultiplier="1.1" attackspeed="2000" basespeed="70" soulmax="100" gainsoulticks="120" fromvoc="2">
<skill id="0" multiplier="1.5"/>
<skill id="1" multiplier="1.8"/>
<skill id="2" multiplier="1.8"/>
<skill id="3" multiplier="1.8"/>
<skill id="4" multiplier="1.8"/>
<skill id="5" multiplier="1.5"/>
<skill id="6" multiplier="1.1"/>
</vocation>
<vocation id="3" flagid="4" name="Paladin" description="a paladin" gaincap="20" gainhp="10" gainmana="15" gainhpticks="8" gainhpamount="1" gainmanaticks="4" gainmanaamount="2" manamultiplier="1.4" attackspeed="2000" basespeed="70" soulmax="100" gainsoulticks="120" fromvoc="3">
<skill id="0" multiplier="1.2"/>
<skill id="1" multiplier="1.2"/>
<skill id="2" multiplier="1.2"/>
<skill id="3" multiplier="1.2"/>
<skill id="4" multiplier="1.1"/>
<skill id="5" multiplier="1.1"/>
<skill id="6" multiplier="1.1"/>
</vocation>
<vocation id="4" flagid="8" name="Knight" description="a knight" gaincap="25" gainhp="15" gainmana="5" gainhpticks="6" gainhpamount="1" gainmanaticks="6" gainmanaamount="2" manamultiplier="3.0" attackspeed="2000" basespeed="70" soulmax="100" gainsoulticks="120" fromvoc="4">
<skill id="0" multiplier="1.1"/>
<skill id="1" multiplier="1.1"/>
<skill id="2" multiplier="1.1"/>
<skill id="3" multiplier="1.1"/>
<skill id="4" multiplier="1.4"/>
<skill id="5" multiplier="1.1"/>
<skill id="6" multiplier="1.1"/>
</vocation>
<vocation id="5" flagid="1" name="Master Sorcerer" description="a master sorcerer" gaincap="10" gainhp="5" gainmana="30" gainhpticks="12" gainhpamount="1" gainmanaticks="2" gainmanaamount="2" manamultiplier="1.1" attackspeed="2000" basespeed="70" soulmax="200" gainsoulticks="15" fromvoc="1">
<skill id="0" multiplier="1.5"/>
<skill id="1" multiplier="2.0"/>
<skill id="2" multiplier="2.0"/>
<skill id="3" multiplier="2.0"/>
<skill id="4" multiplier="2.0"/>
<skill id="5" multiplier="1.5"/>
<skill id="6" multiplier="1.1"/>
</vocation>
<vocation id="6" flagid="2" name="Elder Druid" description="an elder druid" gaincap="10" gainhp="5" gainmana="30" gainhpticks="12" gainhpamount="1" gainmanaticks="2" gainmanaamount="2" manamultiplier="1.1" attackspeed="2000" basespeed="70" soulmax="200" gainsoulticks="15" fromvoc="2">
<skill id="0" multiplier="1.5"/>
<skill id="1" multiplier="1.8"/>
<skill id="2" multiplier="1.8"/>
<skill id="3" multiplier="1.8"/>
<skill id="4" multiplier="1.8"/>
<skill id="5" multiplier="1.5"/>
<skill id="6" multiplier="1.1"/>
</vocation>
<vocation id="7" flagid="4" name="Royal Paladin" description="a royal paladin" gaincap="20" gainhp="10" gainmana="15" gainhpticks="6" gainhpamount="1" gainmanaticks="3" gainmanaamount="2" manamultiplier="1.4" attackspeed="2000" basespeed="70" soulmax="200" gainsoulticks="15" fromvoc="3">
<skill id="0" multiplier="1.2"/>
<skill id="1" multiplier="1.2"/>
<skill id="2" multiplier="1.2"/>
<skill id="3" multiplier="1.2"/>
<skill id="4" multiplier="1.1"/>
<skill id="5" multiplier="1.1"/>
<skill id="6" multiplier="1.1"/>
</vocation>
<vocation id="8" flagid="8" name="Elite Knight" description="an elite knight" gaincap="25" gainhp="15" gainmana="5" gainhpticks="4" gainhpamount="1" gainmanaticks="6" gainmanaamount="2" manamultiplier="3.0" attackspeed="2000" basespeed="70" soulmax="200" gainsoulticks="15" fromvoc="4">
<skill id="0" multiplier="1.1"/>
<skill id="1" multiplier="1.1"/>
<skill id="2" multiplier="1.1"/>
<skill id="3" multiplier="1.1"/>
<skill id="4" multiplier="1.4"/>
<skill id="5" multiplier="1.1"/>
<skill id="6" multiplier="1.1"/>
</vocation>
</vocations>

View File

@@ -0,0 +1,571 @@
<?xml version="1.0" encoding="UTF-8"?>
<actions>
<!-- Nostalrius Tibia Map Related Actions -->
<action actionid="1" script="nostalrius/1.lua" />
<action actionid="2" script="nostalrius/2.lua" />
<action actionid="3" script="nostalrius/3.lua" />
<action actionid="4" script="nostalrius/4.lua" />
<action actionid="5" script="nostalrius/5.lua" />
<action actionid="6" script="nostalrius/6.lua" />
<action actionid="7" script="nostalrius/7.lua" />
<action actionid="8" script="nostalrius/8.lua" />
<action actionid="9" script="nostalrius/9.lua" />
<action actionid="10" script="nostalrius/10.lua" />
<action actionid="11" script="nostalrius/11.lua" />
<action actionid="12" script="nostalrius/12.lua" />
<action actionid="13" script="nostalrius/13.lua" />
<action actionid="14" script="nostalrius/14.lua" />
<action actionid="15" script="nostalrius/15.lua" />
<action actionid="16" script="nostalrius/16.lua" />
<action actionid="17" script="nostalrius/17.lua" />
<action actionid="18" script="nostalrius/18.lua" />
<action actionid="19" script="nostalrius/19.lua" />
<action actionid="20" script="nostalrius/20.lua" />
<action actionid="21" script="nostalrius/21.lua" />
<action actionid="22" script="nostalrius/22.lua" />
<action actionid="23" script="nostalrius/23.lua" />
<action actionid="24" script="nostalrius/24.lua" />
<action actionid="25" script="nostalrius/25.lua" />
<action actionid="26" script="nostalrius/26.lua" />
<action actionid="27" script="nostalrius/27.lua" />
<action actionid="28" script="nostalrius/28.lua" />
<action actionid="29" script="nostalrius/29.lua" />
<action actionid="30" script="nostalrius/30.lua" />
<action actionid="31" script="nostalrius/31.lua" />
<action actionid="32" script="nostalrius/32.lua" />
<action actionid="33" script="nostalrius/33.lua" />
<action actionid="34" script="nostalrius/34.lua" />
<action actionid="35" script="nostalrius/35.lua" />
<action actionid="36" script="nostalrius/36.lua" />
<action actionid="37" script="nostalrius/37.lua" />
<action actionid="38" script="nostalrius/38.lua" />
<action actionid="39" script="nostalrius/39.lua" />
<action actionid="40" script="nostalrius/40.lua" />
<action actionid="41" script="nostalrius/41.lua" />
<action actionid="42" script="nostalrius/42.lua" />
<action actionid="43" script="nostalrius/43.lua" />
<action actionid="44" script="nostalrius/44.lua" />
<action actionid="45" script="nostalrius/45.lua" />
<action actionid="46" script="nostalrius/46.lua" />
<action actionid="47" script="nostalrius/47.lua" />
<action actionid="48" script="nostalrius/48.lua" />
<action actionid="49" script="nostalrius/49.lua" />
<action actionid="50" script="nostalrius/50.lua" />
<action actionid="51" script="nostalrius/51.lua" />
<action actionid="52" script="nostalrius/52.lua" />
<action actionid="53" script="nostalrius/53.lua" />
<action actionid="54" script="nostalrius/54.lua" />
<action actionid="55" script="nostalrius/55.lua" />
<action actionid="56" script="nostalrius/56.lua" />
<action actionid="57" script="nostalrius/57.lua" />
<action actionid="58" script="nostalrius/58.lua" />
<action actionid="59" script="nostalrius/59.lua" />
<action actionid="60" script="nostalrius/60.lua" />
<action actionid="61" script="nostalrius/61.lua" />
<action actionid="62" script="nostalrius/62.lua" />
<action actionid="63" script="nostalrius/63.lua" />
<action actionid="64" script="nostalrius/64.lua" />
<action actionid="65" script="nostalrius/65.lua" />
<action actionid="66" script="nostalrius/66.lua" />
<action actionid="67" script="nostalrius/67.lua" />
<action actionid="68" script="nostalrius/68.lua" />
<action actionid="69" script="nostalrius/69.lua" />
<action actionid="70" script="nostalrius/70.lua" />
<action actionid="71" script="nostalrius/71.lua" />
<action actionid="72" script="nostalrius/72.lua" />
<action actionid="73" script="nostalrius/73.lua" />
<action actionid="74" script="nostalrius/74.lua" />
<action actionid="75" script="nostalrius/75.lua" />
<action actionid="76" script="nostalrius/76.lua" />
<action actionid="77" script="nostalrius/77.lua" />
<action actionid="78" script="nostalrius/78.lua" />
<action actionid="79" script="nostalrius/79.lua" />
<action actionid="80" script="nostalrius/80.lua" />
<action actionid="81" script="nostalrius/81.lua" />
<action actionid="82" script="nostalrius/82.lua" />
<action actionid="83" script="nostalrius/83.lua" />
<!-- Pits of Inferno -->
<action actionid="17642" script="pits_of_inferno/oil.lua" />
<action fromaid="17653" toaid="17656" script="pits_of_inferno/hall_of_the_four_ways.lua" />
<action fromaid="2050" toaid="2065" script="pits_of_inferno/levers.lua" />
<action fromaid="3301" toaid="3302" script="pits_of_inferno/ladderLevers.lua" />
<action actionid="50160" script="pits_of_inferno/mazeStone.lua" />
<action actionid="3300" script="pits_of_inferno/stoneLever.lua" />
<action actionid="3304" script="pits_of_inferno/trapLever.lua" />
<action actionid="50106" script="pits_of_inferno/fireThroneLever.lua" />
<action fromaid="50095" toaid="50104" script="pits_of_inferno/bazirWrongLevers.lua" />
<action actionid="50105" script="pits_of_inferno/bazirMazeLever.lua" />
<action fromaid="39511" toaid="39512" script="pits_of_inferno/bazirMirror.lua" />
<!-- Serpentine Tower -->
<action actionid="17597" script="serpentine_tower/release_fire_elemental.lua" />
<action actionid="17598" script="serpentine_tower/release_vampire.lua" />
<action actionid="17599" script="serpentine_tower/release_behemoth.lua" />
<action actionid="17600" script="serpentine_tower/behemoth_lever.lua" />
<action actionid="17601" script="serpentine_tower/vampire_lever.lua" />
<!-- Meriana Quest -->
<action actionid="17525" script="meriana_quest/tortoise_egg.lua" />
<action fromaid="17528" toaid="17530" script="meriana_quest/pirate_map.lua" />
<!-- Liberty Bay -->
<action fromid="6087" toid="6090" script="liberty_bay/cult_hymn.lua"/>
<action actionid="33216" script="liberty_bay/cult_piano_teleport.lua"/>
<!-- Sabrehaven Default Actions -->
<!-- Furniture Parcels -->
<action fromid="2775" toid="2812" script="misc/furniture_parcels.lua" />
<action fromid="5086" toid="5088" script="misc/furniture_parcels.lua" />
<action fromid="6114" toid="6115" script="misc/furniture_parcels.lua" />
<action fromid="6371" toid="6372" script="misc/furniture_parcels.lua" />
<!-- Instruments -->
<action fromid="2948" toid="2950" script="misc/instruments.lua" />
<action fromid="2952" toid="2965" script="misc/instruments.lua" />
<action itemid="3219" script="misc/instruments.lua" />
<action itemid="5786" script="misc/instruments.lua" />
<action itemid="6572" script="misc/instruments.lua" />
<!-- Strange Levers -->
<action fromid="2566" toid="2567" script="misc/strange_lever.lua" />
<action fromid="2569" toid="2570" script="misc/strange_lever.lua" />
<!-- Teleporters -->
<action itemid="435" script="misc/teleporters.lua" />
<action itemid="1948" script="misc/teleporters.lua" />
<action itemid="1968" script="misc/teleporters.lua" />
<action itemid="5542" script="misc/teleporters.lua" />
<!-- Special Right -->
<action itemid="372" script="misc/special_rights.lua" />
<action itemid="386" script="misc/special_rights.lua" />
<action itemid="421" script="misc/special_rights.lua" />
<action itemid="593" script="misc/special_rights.lua" />
<action itemid="606" script="misc/special_rights.lua" />
<action itemid="608" script="misc/special_rights.lua" />
<action itemid="614" script="misc/special_rights.lua" />
<action itemid="3653" script="misc/special_rights.lua" />
<action itemid="3696" script="misc/special_rights.lua" />
<action itemid="3702" script="misc/special_rights.lua" />
<!-- Fun -->
<action actionid="17572" script="misc/rookgard_skip.lua" />
<action itemid="611" script="misc/snowheap.lua" />
<action itemid="2974" script="misc/water_pipe.lua" />
<action itemid="2976" script="misc/birdcage.lua" />
<action itemid="3103" script="misc/cornucopia.lua" />
<action itemid="3699" script="misc/blueberry_bush.lua" />
<action itemid="3481" script="misc/closed_trap.lua" />
<action itemid="3482" script="misc/open_trap.lua" />
<action itemid="3218" script="misc/present.lua" />
<action itemid="2977" script="misc/pumpkin_head.lua" />
<action itemid="2916" script="misc/used_lamp.lua" />
<action itemid="3229" script="misc/helmet_of_the_ancients.lua" />
<action itemid="4835" script="misc/snake_destroyer.lua" />
<action itemid="4840" script="misc/spectral_stone.lua" />
<action itemid="4842" script="misc/sheet_of_tracing_paper.lua" />
<action itemid="4852" script="misc/ectoplasm_container.lua" />
<action itemid="3217" script="misc/letter_bag.lua" />
<action fromid="3603" toid="3605" script="misc/baking.lua" />
<action itemid="6276" script="misc/baking.lua" />
<action itemid="5466" script="misc/distilling_rum.lua" />
<action fromid="3264" toid="3276" script="misc/weapons.lua" />
<action fromid="3278" toid="3286" script="misc/weapons.lua" />
<action fromid="3288" toid="3297" script="misc/weapons.lua" />
<action fromid="3299" toid="3303" script="misc/weapons.lua" />
<action fromid="3305" toid="3307" script="misc/weapons.lua" />
<action fromid="3309" toid="3329" script="misc/weapons.lua" />
<action fromid="3331" toid="3348" script="misc/weapons.lua" />
<action itemid="3208" script="misc/weapons.lua" />
<action itemid="6101" script="misc/weapons.lua" />
<action itemid="6527" script="misc/weapons.lua" />
<action itemid="6553" script="misc/weapons.lua" />
<action itemid="3059" script="misc/spellbook.lua" />
<action fromid="5792" toid="5797" script="misc/dice.lua" />
<action itemid="3114" script="misc/skull_candle.lua" />
<action itemid="5957" script="misc/lottery_ticket.lua" />
<action itemid="5776" script="misc/sabrehaven_talon.lua" />
<action itemid="5928" script="misc/catch_fish.lua" />
<action itemid="6279" script="misc/party_cake.lua" />
<action itemid="6387" script="misc/christmas_card.lua" />
<action itemid="6558" script="misc/concentrated_demonic_blood.lua" />
<action itemid="6561" script="misc/ceremonial_ankh.lua" />
<action itemid="6576" script="misc/fireworks_rocket.lua" />
<action itemid="6578" script="misc/party_hat.lua" />
<action itemid="6549" script="misc/djinn_quest_pass.lua" />
<action itemid="6551" script="misc/djinn_quest_pass.lua" />
<action itemid="3252" script="misc/postman_quest_pass.lua" />
<action itemid="6554" script="misc/shop_points_scroll.lua" />
<action itemid="6555" script="misc/shop_points_scroll.lua" />
<!-- Dolls -->
<action itemid="5080" script="misc/dolls.lua" />
<action itemid="5668" script="misc/dolls.lua" />
<action itemid="5791" script="misc/dolls.lua" />
<action itemid="6511" script="misc/dolls.lua" />
<!-- Keys -->
<action fromid="2967" toid="2973" script="misc/key.lua" />
<!-- Time -->
<action fromid="2445" toid="2448" script="misc/time.lua" />
<action fromid="2660" toid="2664" script="misc/time.lua" />
<action itemid="2668" script="misc/time.lua" />
<action itemid="2771" script="misc/time.lua" />
<action itemid="2906" script="misc/time.lua" />
<action itemid="6092" script="misc/time.lua" />
<!-- Tools -->
<action itemid="3003" script="misc/rope.lua" />
<action itemid="3304" script="misc/crowbar.lua" />
<action itemid="3469" script="misc/knife.lua" />
<action itemid="3308" script="misc/machete.lua" />
<action itemid="3330" script="misc/machete.lua" />
<action itemid="3453" script="misc/scythe.lua" />
<action itemid="4872" script="misc/ice_pick.lua" />
<action itemid="3456" script="misc/pick.lua" />
<action itemid="3457" script="misc/shovel.lua" />
<action itemid="3452" script="misc/rake.lua" />
<action itemid="5710" script="misc/shovel.lua" />
<action itemid="3483" allowfaruse="1" script="misc/fishing_rod.lua" />
<action itemid="5865" script="misc/juice_squeezer.lua" />
<action itemid="5908" script="misc/skinning_dusting.lua"/>
<action itemid="5942" script="misc/skinning_dusting.lua"/>
<!-- Miscellaneous -->
<action itemid="4867" script="misc/botanist_container.lua" />
<action itemid="4863" script="misc/butterfly_conservation_kit.lua" />
<action itemid="5467" script="misc/fire_bug.lua" />
<action itemid="5938" script="misc/ceirons_waterskin.lua" />
<action itemid="3031" script="misc/changegold.lua" />
<action itemid="3035" script="misc/changegold.lua" />
<action itemid="3043" script="misc/changegold.lua" />
<action fromaid="17724" toaid="17728" script="misc/skill_trainer.lua" />
<action fromid="6506" toid="6508" script="misc/christmas_bundle.lua" />
<!-- Chests -->
<action itemid="2479" script="misc/chests.lua" />
<action itemid="2543" script="misc/chests.lua" />
<action itemid="2544" script="misc/chests.lua" />
<action itemid="2545" script="misc/chests.lua" />
<action itemid="2546" script="misc/chests.lua" />
<action itemid="2547" script="misc/chests.lua" />
<action itemid="2548" script="misc/chests.lua" />
<action itemid="2549" script="misc/chests.lua" />
<action itemid="2550" script="misc/chests.lua" />
<action itemid="2551" script="misc/chests.lua" />
<action itemid="2552" script="misc/chests.lua" />
<action itemid="2553" script="misc/chests.lua" />
<action itemid="2554" script="misc/chests.lua" />
<action itemid="2555" script="misc/chests.lua" />
<action itemid="2556" script="misc/chests.lua" />
<action itemid="2557" script="misc/chests.lua" />
<action itemid="2558" script="misc/chests.lua" />
<action itemid="2559" script="misc/chests.lua" />
<action itemid="2560" script="misc/chests.lua" />
<action itemid="2561" script="misc/chests.lua" />
<action itemid="2562" script="misc/chests.lua" />
<action itemid="2564" script="misc/chests.lua" />
<action itemid="2565" script="misc/chests.lua" />
<action itemid="4830" script="misc/chests.lua" />
<action itemid="4833" script="misc/chests.lua" />
<action itemid="4873" script="misc/chests.lua" />
<action itemid="5730" script="misc/chests.lua" />
<action itemid="5742" script="misc/chests.lua" />
<action itemid="5775" script="misc/chests.lua" />
<!-- Fluids -->
<action itemid="2524" script="misc/fluids.lua" />
<action itemid="2873" script="misc/fluids.lua" />
<action itemid="2874" script="misc/fluids.lua" />
<action itemid="2875" script="misc/fluids.lua" />
<action itemid="2876" script="misc/fluids.lua" />
<action itemid="2877" script="misc/fluids.lua" />
<action itemid="2879" script="misc/fluids.lua" />
<action itemid="2880" script="misc/fluids.lua" />
<action itemid="2881" script="misc/fluids.lua" />
<action itemid="2882" script="misc/fluids.lua" />
<action itemid="2883" script="misc/fluids.lua" />
<action itemid="2884" script="misc/fluids.lua" />
<action itemid="2885" script="misc/fluids.lua" />
<action itemid="2893" script="misc/fluids.lua" />
<action itemid="2901" script="misc/fluids.lua" />
<action itemid="2902" script="misc/fluids.lua" />
<action itemid="2903" script="misc/fluids.lua" />
<action itemid="2904" script="misc/fluids.lua" />
<action itemid="3465" script="misc/fluids.lua" />
<action itemid="3477" script="misc/fluids.lua" />
<action itemid="3478" script="misc/fluids.lua" />
<action itemid="3479" script="misc/fluids.lua" />
<action itemid="3480" script="misc/fluids.lua" />
<action itemid="5552" script="misc/fluids.lua" />
<!-- Food -->
<action itemid="3250" script="misc/food.lua" />
<action itemid="3577" script="misc/food.lua" />
<action itemid="3578" script="misc/food.lua" />
<action itemid="3579" script="misc/food.lua" />
<action itemid="3580" script="misc/food.lua" />
<action itemid="3581" script="misc/food.lua" />
<action itemid="3582" script="misc/food.lua" />
<action itemid="3583" script="misc/food.lua" />
<action itemid="3584" script="misc/food.lua" />
<action itemid="3585" script="misc/food.lua" />
<action itemid="3586" script="misc/food.lua" />
<action itemid="3587" script="misc/food.lua" />
<action itemid="3588" script="misc/food.lua" />
<action itemid="3589" script="misc/food.lua" />
<action itemid="3590" script="misc/food.lua" />
<action itemid="3591" script="misc/food.lua" />
<action itemid="3592" script="misc/food.lua" />
<action itemid="3593" script="misc/food.lua" />
<action itemid="3594" script="misc/food.lua" />
<action itemid="3595" script="misc/food.lua" />
<action itemid="3596" script="misc/food.lua" />
<action itemid="3597" script="misc/food.lua" />
<action itemid="3598" script="misc/food.lua" />
<action itemid="3599" script="misc/food.lua" />
<action itemid="3600" script="misc/food.lua" />
<action itemid="3601" script="misc/food.lua" />
<action itemid="3602" script="misc/food.lua" />
<action itemid="3606" script="misc/food.lua" />
<action itemid="3607" script="misc/food.lua" />
<action itemid="3723" script="misc/food.lua" />
<action itemid="3724" script="misc/food.lua" />
<action itemid="3725" script="misc/food.lua" />
<action itemid="3726" script="misc/food.lua" />
<action itemid="3727" script="misc/food.lua" />
<action itemid="3728" script="misc/food.lua" />
<action itemid="3729" script="misc/food.lua" />
<action itemid="3730" script="misc/food.lua" />
<action itemid="3731" script="misc/food.lua" />
<action itemid="3732" script="misc/food.lua" />
<action itemid="5096" script="misc/food.lua" />
<action itemid="5678" script="misc/food.lua" />
<action itemid="6125" script="misc/food.lua" />
<action itemid="6277" script="misc/food.lua" />
<action itemid="6278" script="misc/food.lua" />
<action itemid="6392" script="misc/food.lua" />
<action itemid="6393" script="misc/food.lua" />
<action itemid="6500" script="misc/food.lua" />
<action itemid="6541" script="misc/food.lua" />
<action itemid="6542" script="misc/food.lua" />
<action itemid="6543" script="misc/food.lua" />
<action itemid="6544" script="misc/food.lua" />
<action itemid="6545" script="misc/food.lua" />
<action itemid="6569" script="misc/food.lua" />
<action itemid="6574" script="misc/food.lua" />
<!-- Passthrough -->
<action fromid="2334" toid="2341" script="misc/doors.lua" />
<!-- Locked Doors -->
<action itemid="1628" script="misc/doors.lua" />
<action itemid="1631" script="misc/doors.lua" />
<action itemid="1650" script="misc/doors.lua" />
<action itemid="1653" script="misc/doors.lua" />
<action itemid="1668" script="misc/doors.lua" />
<action itemid="1671" script="misc/doors.lua" />
<action itemid="1682" script="misc/doors.lua" />
<action itemid="1691" script="misc/doors.lua" />
<action itemid="5006" script="misc/doors.lua" />
<action itemid="5007" script="misc/doors.lua" />
<action itemid="5097" script="misc/doors.lua" />
<action itemid="5106" script="misc/doors.lua" />
<action itemid="5115" script="misc/doors.lua" />
<action itemid="5124" script="misc/doors.lua" />
<action itemid="5133" script="misc/doors.lua" />
<action itemid="5136" script="misc/doors.lua" />
<action itemid="5139" script="misc/doors.lua" />
<action itemid="5142" script="misc/doors.lua" />
<action itemid="5277" script="misc/doors.lua" />
<action itemid="5280" script="misc/doors.lua" />
<action itemid="5732" script="misc/doors.lua" />
<action itemid="5735" script="misc/doors.lua" />
<action itemid="6191" script="misc/doors.lua" />
<action itemid="6194" script="misc/doors.lua" />
<action itemid="6248" script="misc/doors.lua" />
<action itemid="6251" script="misc/doors.lua" />
<!-- Level Doors -->
<action itemid="1646" script="misc/doors.lua" />
<action itemid="1648" script="misc/doors.lua" />
<action itemid="1664" script="misc/doors.lua" />
<action itemid="1666" script="misc/doors.lua" />
<action itemid="1678" script="misc/doors.lua" />
<action itemid="1680" script="misc/doors.lua" />
<action itemid="1687" script="misc/doors.lua" />
<action itemid="1696" script="misc/doors.lua" />
<action itemid="5102" script="misc/doors.lua" />
<action itemid="5111" script="misc/doors.lua" />
<action itemid="5120" script="misc/doors.lua" />
<action itemid="5129" script="misc/doors.lua" />
<action itemid="5291" script="misc/doors.lua" />
<action itemid="5293" script="misc/doors.lua" />
<action itemid="6205" script="misc/doors.lua" />
<action itemid="6207" script="misc/doors.lua" />
<action itemid="6262" script="misc/doors.lua" />
<action itemid="6264" script="misc/doors.lua" />
<!-- Quest Doors -->
<action itemid="1642" script="misc/doors.lua" />
<action itemid="1644" script="misc/doors.lua" />
<action itemid="1660" script="misc/doors.lua" />
<action itemid="1662" script="misc/doors.lua" />
<action itemid="1674" script="misc/doors.lua" />
<action itemid="1676" script="misc/doors.lua" />
<action itemid="1689" script="misc/doors.lua" />
<action itemid="1698" script="misc/doors.lua" />
<action itemid="5104" script="misc/doors.lua" />
<action itemid="5113" script="misc/doors.lua" />
<action itemid="5122" script="misc/doors.lua" />
<action itemid="5131" script="misc/doors.lua" />
<action itemid="5287" script="misc/doors.lua" />
<action itemid="5289" script="misc/doors.lua" />
<action itemid="5745" script="misc/doors.lua" />
<action itemid="5749" script="misc/doors.lua" />
<action itemid="6201" script="misc/doors.lua" />
<action itemid="6203" script="misc/doors.lua" />
<action itemid="6258" script="misc/doors.lua" />
<action itemid="6260" script="misc/doors.lua" />
<!-- Closed Normal Doors -->
<action itemid="2177" script="misc/doors.lua" />
<action itemid="2179" script="misc/doors.lua" />
<action itemid="1629" script="misc/doors.lua" />
<action itemid="1632" script="misc/doors.lua" />
<action itemid="1638" script="misc/doors.lua" />
<action itemid="1640" script="misc/doors.lua" />
<action itemid="1651" script="misc/doors.lua" />
<action itemid="1654" script="misc/doors.lua" />
<action itemid="1656" script="misc/doors.lua" />
<action itemid="1658" script="misc/doors.lua" />
<action itemid="1669" script="misc/doors.lua" />
<action itemid="1672" script="misc/doors.lua" />
<action itemid="1683" script="misc/doors.lua" />
<action itemid="1685" script="misc/doors.lua" />
<action itemid="1692" script="misc/doors.lua" />
<action itemid="1694" script="misc/doors.lua" />
<action itemid="4912" script="misc/doors.lua" />
<action itemid="4913" script="misc/doors.lua" />
<action itemid="5082" script="misc/doors.lua" />
<action itemid="5098" script="misc/doors.lua" />
<action itemid="5100" script="misc/doors.lua" />
<action itemid="5107" script="misc/doors.lua" />
<action itemid="5109" script="misc/doors.lua" />
<action itemid="5116" script="misc/doors.lua" />
<action itemid="5118" script="misc/doors.lua" />
<action itemid="5125" script="misc/doors.lua" />
<action itemid="5127" script="misc/doors.lua" />
<action itemid="5134" script="misc/doors.lua" />
<action itemid="5137" script="misc/doors.lua" />
<action itemid="5140" script="misc/doors.lua" />
<action itemid="5143" script="misc/doors.lua" />
<action itemid="5278" script="misc/doors.lua" />
<action itemid="5281" script="misc/doors.lua" />
<action itemid="5283" script="misc/doors.lua" />
<action itemid="5285" script="misc/doors.lua" />
<action itemid="5514" script="misc/doors.lua" />
<action itemid="5516" script="misc/doors.lua" />
<action itemid="5733" script="misc/doors.lua" />
<action itemid="5736" script="misc/doors.lua" />
<action itemid="6192" script="misc/doors.lua" />
<action itemid="6195" script="misc/doors.lua" />
<action itemid="6197" script="misc/doors.lua" />
<action itemid="6199" script="misc/doors.lua" />
<action itemid="6249" script="misc/doors.lua" />
<action itemid="6252" script="misc/doors.lua" />
<action itemid="6254" script="misc/doors.lua" />
<action itemid="6256" script="misc/doors.lua" />
<!-- Open Vertical Doors -->
<action itemid="1630" script="misc/doors.lua" />
<action itemid="1639" script="misc/doors.lua" />
<action itemid="1643" script="misc/doors.lua" />
<action itemid="1647" script="misc/doors.lua" />
<action itemid="1652" script="misc/doors.lua" />
<action itemid="1657" script="misc/doors.lua" />
<action itemid="1661" script="misc/doors.lua" />
<action itemid="1665" script="misc/doors.lua" />
<action itemid="1670" script="misc/doors.lua" />
<action itemid="1675" script="misc/doors.lua" />
<action itemid="1679" script="misc/doors.lua" />
<action itemid="1693" script="misc/doors.lua" />
<action itemid="1695" script="misc/doors.lua" />
<action itemid="1697" script="misc/doors.lua" />
<action itemid="1699" script="misc/doors.lua" />
<action itemid="4914" script="misc/doors.lua" />
<action itemid="5083" script="misc/doors.lua" />
<action itemid="2178" script="misc/doors.lua" />
<action itemid="5108" script="misc/doors.lua" />
<action itemid="5110" script="misc/doors.lua" />
<action itemid="5112" script="misc/doors.lua" />
<action itemid="5114" script="misc/doors.lua" />
<action itemid="5126" script="misc/doors.lua" />
<action itemid="5128" script="misc/doors.lua" />
<action itemid="5130" script="misc/doors.lua" />
<action itemid="5132" script="misc/doors.lua" />
<action itemid="5141" script="misc/doors.lua" />
<action itemid="5144" script="misc/doors.lua" />
<action itemid="5282" script="misc/doors.lua" />
<action itemid="5284" script="misc/doors.lua" />
<action itemid="5288" script="misc/doors.lua" />
<action itemid="5292" script="misc/doors.lua" />
<action itemid="5515" script="misc/doors.lua" />
<action itemid="5737" script="misc/doors.lua" />
<action itemid="5748" script="misc/doors.lua" />
<action itemid="6193" script="misc/doors.lua" />
<action itemid="6198" script="misc/doors.lua" />
<action itemid="6202" script="misc/doors.lua" />
<action itemid="6206" script="misc/doors.lua" />
<action itemid="6250" script="misc/doors.lua" />
<action itemid="6255" script="misc/doors.lua" />
<action itemid="6259" script="misc/doors.lua" />
<action itemid="6263" script="misc/doors.lua" />
<!-- Open Horizontal Doors -->
<action itemid="1633" script="misc/doors.lua" />
<action itemid="1641" script="misc/doors.lua" />
<action itemid="1645" script="misc/doors.lua" />
<action itemid="1649" script="misc/doors.lua" />
<action itemid="1655" script="misc/doors.lua" />
<action itemid="1659" script="misc/doors.lua" />
<action itemid="1663" script="misc/doors.lua" />
<action itemid="1667" script="misc/doors.lua" />
<action itemid="1673" script="misc/doors.lua" />
<action itemid="1677" script="misc/doors.lua" />
<action itemid="1681" script="misc/doors.lua" />
<action itemid="1684" script="misc/doors.lua" />
<action itemid="1686" script="misc/doors.lua" />
<action itemid="1688" script="misc/doors.lua" />
<action itemid="1690" script="misc/doors.lua" />
<action itemid="4911" script="misc/doors.lua" />
<action itemid="5085" script="misc/doors.lua" />
<action itemid="2180" script="misc/doors.lua" />
<action itemid="5099" script="misc/doors.lua" />
<action itemid="5101" script="misc/doors.lua" />
<action itemid="5103" script="misc/doors.lua" />
<action itemid="5105" script="misc/doors.lua" />
<action itemid="5117" script="misc/doors.lua" />
<action itemid="5119" script="misc/doors.lua" />
<action itemid="5121" script="misc/doors.lua" />
<action itemid="5123" script="misc/doors.lua" />
<action itemid="5135" script="misc/doors.lua" />
<action itemid="5138" script="misc/doors.lua" />
<action itemid="5279" script="misc/doors.lua" />
<action itemid="5286" script="misc/doors.lua" />
<action itemid="5290" script="misc/doors.lua" />
<action itemid="5294" script="misc/doors.lua" />
<action itemid="5517" script="misc/doors.lua" />
<action itemid="5734" script="misc/doors.lua" />
<action itemid="5746" script="misc/doors.lua" />
<action itemid="6196" script="misc/doors.lua" />
<action itemid="6200" script="misc/doors.lua" />
<action itemid="6204" script="misc/doors.lua" />
<action itemid="6208" script="misc/doors.lua" />
<action itemid="6253" script="misc/doors.lua" />
<action itemid="6257" script="misc/doors.lua" />
<action itemid="6261" script="misc/doors.lua" />
<action itemid="6265" script="misc/doors.lua" />
</actions>

View File

@@ -0,0 +1,20 @@
function doDestroyItem(target)
if not target:isItem() then
return false
end
local itemType = ItemType(target:getId())
if not itemType:isDestroyable() then
return false
end
if math.random(1,10) <= 3 then
target:transform(itemType:getDestroyTarget())
target:decay()
target:getPosition():sendMagicEffect(CONST_ME_BLOCKHIT)
else
target:getPosition():sendMagicEffect(CONST_ME_POFF)
end
return true
end

View File

@@ -0,0 +1,21 @@
local config = {
[6087] = {storage = 1053, text = 'first', effect = CONST_ME_SOUND_GREEN},
[6088] = {storage = 1054, text = 'second', effect = CONST_ME_SOUND_RED},
[6089] = {storage = 1055, text = 'third', effect = CONST_ME_SOUND_YELLOW},
[6090] = {storage = 1056, text = 'fourth', effect = CONST_ME_SOUND_BLUE}
}
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
local playerPosition = player:getPosition()
local useItem = config[item.itemid]
if player:getStorageValue(useItem.storage) ~= 1 then
player:setStorageValue(useItem.storage, 1)
player:say("You have learned the ".. useItem.text .." part of a hymn.", TALKTYPE_MONSTER_SAY, false, 0, playerPosition)
playerPosition:sendMagicEffect(useItem.effect)
item:remove(1)
else
player:say("You already know the ".. useItem.text .." verse of the hymn.", TALKTYPE_MONSTER_SAY, false, 0, playerPosition)
end
return true
end

View File

@@ -0,0 +1,18 @@
local storages = {1053, 1054, 1055, 1056}
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
local playerPosition = player:getPosition()
for i = 1, #storages do
if player:getStorageValue(storages[i]) ~= 1 then
player:say("You have not learned all the verses of the hymn.", TALKTYPE_MONSTER_SAY, false, 0, toPosition)
playerPosition:sendMagicEffect(CONST_ME_POFF)
return true
end
end
player:teleportTo(Position(32402, 32794, 9))
player:say("You have sucessfully played the secret hymn of the cult.", TALKTYPE_MONSTER_SAY)
Game.sendMagicEffect({x = 32402, y = 32794, z = 9}, CONST_ME_SOUND_PURPLE)
return true
end

View File

@@ -0,0 +1,28 @@
local maps = {
[17528] = "You have successfully read plan A.",
[17529] = "You have successfully read plan B.",
[17530] = "You have successfully read plan C."
}
function onUse(player, item, fromPosition, target, toPosition)
local mapActionId = item:getActionId()
local map = maps[mapActionId]
if not map then
return false
end
local playerPosition = player:getPosition()
if player:getStorageValue(17520) < 8 then
player:say("You shouldn't touch these maps because someone might see you.", TALKTYPE_MONSTER_SAY, false, 0, playerPosition)
return true
end
if player:getStorageValue(mapActionId) ~= 1 then
player:say(map, TALKTYPE_MONSTER_SAY, false, 0, playerPosition)
player:setStorageValue(mapActionId, 1)
else
player:say("You have already read this map.", TALKTYPE_MONSTER_SAY, false, 0, playerPosition)
end
return true
end

View File

@@ -0,0 +1,10 @@
function onUse(player, item, fromPosition, target, toPosition)
if player:getStorageValue(17526) < os.time() then
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You have found a tortoise egg from Nargor.")
player:setStorageValue(17526, os.time() + 24 * 60 * 60) -- 24 hour
player:addItem(6125,1)
else
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You shoud not take any more today.")
end
return true
end

View File

@@ -0,0 +1,51 @@
local ovens = {
2535, 2537, 2539, 2541, 3510, 6355, 6357, 6359, 6361
}
local milestone = {
1943, 1944, 1945, 1946
}
function onUse(player, item, fromPosition, target, toPosition)
if not target:isItem() then
return false
end
if item:getId() == 3603 then
if (target:getId() == 2524 or target:getId() == 2873) and target:getFluidType() == FLUID_WATER then
target:transform(target:getId(), FLUID_NONE)
local parent = item:getParent()
if parent:isContainer() or parent:isPlayer() then
parent:addItem(3604, 1):decay()
else
Game.createItem(3604, 1, item:getPosition()):decay()
end
item:remove(1)
return true
end
elseif item:getId() == 3604 then
if table.contains(ovens, target:getId()) then
Game.createItem(3600, 1, target:getPosition())
item:remove(1)
return true
end
elseif item:getId() == 6276 then
if table.contains(ovens, target:getId()) then
Game.createItem(6277, 1, target:getPosition())
item:remove(1)
return true
end
elseif item:getId() == 3605 then
if table.contains(milestone, target:getId()) then
local parent = item:getParent()
if parent:isContainer() or parent:isPlayer() then
parent:addItem(3603, 1):decay()
else
Game.createItem(3603, 1, item:getPosition()):decay()
end
item:remove(1)
return true
end
end
return false
end

View File

@@ -0,0 +1,9 @@
function onUse(player, item, fromPosition, target, toPosition)
if math.random(1, 100) <= 1 and math.random(1, 100) <= 10 then
item:transform(2975, 0)
item:decay()
else
item:getPosition():sendMagicEffect(22)
end
return true
end

View File

@@ -0,0 +1,6 @@
function onUse(player, item, fromPosition, target, toPosition)
item:transform(3700, 1)
item:decay()
Game.createItem(3588, 3, fromPosition)
return true
end

View File

@@ -0,0 +1,30 @@
function onUse(player, item, fromPosition, target, toPosition)
if not target:isItem() then
return false
end
if target:getId() == 3874 and player:getStorageValue(305) == 1 then
item:transform(4868, 1)
target:getPosition():sendMagicEffect(10)
return true
elseif target:getId() == 3885 and player:getStorageValue(305) == 3 then
item:transform(4870, 1)
target:getPosition():sendMagicEffect(10)
return true
elseif target:getId() == 3878 and player:getStorageValue(305) == 5 then
item:transform(4869, 1)
target:getPosition():sendMagicEffect(10)
return true
elseif target:getId() == 5658 and player:getStorageValue(17535) == 1 then
if player:getStorageValue(17536) < os.time() then
item:transform(5937, 1)
target:getPosition():sendMagicEffect(10)
player:setStorageValue(17536, os.time() + 20 * 60 * 60) -- 20 hour
return true
else
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You just collected a fragile griffinclaw. At least wait for the rest of the plant to recover a bit before gathering more.")
return true
end
end
return false
end

View File

@@ -0,0 +1,28 @@
function onUse(player, item, fromPosition, target, toPosition)
if not target:isItem() then
return false
end
if target:getId() == 4992 and player:getStorageValue(304) == 1 then
target:getPosition():sendMagicEffect(17)
item:transform(4865, 1)
item:decay()
target:remove()
elseif target:getId() == 4993 and player:getStorageValue(304) == 3 then
target:getPosition():sendMagicEffect(17)
item:transform(4866, 1)
item:decay()
target:remove()
elseif target:getId() == 4991 and player:getStorageValue(304) == 5 then
target:getPosition():sendMagicEffect(17)
item:transform(4864, 1)
item:decay()
target:remove()
elseif target:getId() == 5013 and player:getStorageValue(304) == 5 then
target:getPosition():sendMagicEffect(17)
item:transform(5089, 1)
item:decay()
target:remove()
end
return false
end

View File

@@ -0,0 +1,16 @@
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
if target.itemid ~= 5553 then
return false
end
if math.random(2) ~= 1 then
player:say("The golden fish escaped.", TALKTYPE_MONSTER_SAY)
return true
end
player:say("You catch a golden fish in the bowl.", TALKTYPE_MONSTER_SAY)
item:transform(5929)
target:remove()
toPosition:sendMagicEffect(CONST_ME_MAGIC_BLUE)
return true
end

View File

@@ -0,0 +1,12 @@
function onUse(player, item, fromPosition, target, toPosition)
if not target:isItem() then
return false
end
if target:getId() == 5662 and Game.isItemThere({x = 33024, y = 32672, z = 6}, 5662) then
item:transform(5939, 1)
target:getPosition():sendMagicEffect(2)
return true
end
return false
end

View File

@@ -0,0 +1,18 @@
local blessings = {
{key = 101, value = 1, name = 'Wisdom of Solitude'},
{key = 102, value = 1, name = 'Spark of the Phoenix'},
{key = 103, value = 3, name = 'Fire of the Suns'},
{key = 104, value = 1, name = 'Spiritual Shielding'},
{key = 105, value = 1, name = 'Embrace of Tibia'}
}
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
local result, bless = 'Received blessings:'
for i = 1, #blessings do
bless = blessings[i]
result = (player:getStorageValue(bless.key) == bless.value) and result .. '\n' .. bless.name or result
end
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 20 > result:len() and 'No blessings received.' or result)
return true
end

View File

@@ -0,0 +1,35 @@
local config = {
[3031] = {changeTo = 3035},
[3035] = {changeBack = 3031, changeTo = 3043},
[3043] = {changeBack = 3035}
}
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
local ring = player:getSlotItem(CONST_SLOT_RING)
if ring == nil or ring:getId() ~= 3007 then
return false
end
local ringCharges = ring:getAttribute(ITEM_ATTRIBUTE_CHARGES)
local coin = config[item:getId()]
if coin.changeTo and item.type == 100 then
item:remove()
player:addItem(coin.changeTo, 1)
if ringCharges > 1 then
ring:setAttribute(ITEM_ATTRIBUTE_CHARGES,(ringCharges-1))
else
ring:remove(1)
end
elseif coin.changeBack then
item:remove(1)
player:addItem(coin.changeBack, 100)
if ringCharges > 1 then
ring:setAttribute(ITEM_ATTRIBUTE_CHARGES,(ringCharges-1))
else
ring:remove(1)
end
else
return false
end
return true
end

View File

@@ -0,0 +1,115 @@
function onUse(player, item, fromPosition, target, toPosition)
local chestQuestNumber = item:getAttribute(ITEM_ATTRIBUTE_CHESTQUESTNUMBER)
if chestQuestNumber == 0 then
return false
end
if player:getStorageValue(chestQuestNumber) > 0 then
player:sendTextMessage(MESSAGE_INFO_DESCR, "The " .. item:getName() .. " is empty.")
return true
end
local playerCapacity = player:getFreeCapacity()
if item:getSize() <= 0 then
player:sendTextMessage(MESSAGE_INFO_DESCR, "The chest is empty. This is a bug, report it to a gamemaster.")
return true
end
local reward = item:getItem(0)
local stackable = reward:getType():isStackable()
local rewardName = reward:getName()
local rewardWeight = reward:getWeight()
if stackable then
if reward:getCount() > 1 then
rewardName = reward:getCount() .. " " .. reward:getPluralName()
else
rewardName = reward:getName()
end
end
if reward:getArticle():len() > 0 and reward:getCount() <= 1 then
rewardName = reward:getArticle() .. " " .. rewardName
end
if rewardWeight > playerCapacity and not getPlayerFlagValue(player, layerFlag_HasInfiniteCapacity) then
local term = "it is"
if stackable and reward:getCount() > 1 then
term = "they are"
end
player:sendTextMessage(MESSAGE_INFO_DESCR, string.format("You have found %s. Weighing %d.%02d oz %s too heavy.", rewardName, rewardWeight / 100, rewardWeight % 100, term))
return true
end
player:sendTextMessage(MESSAGE_INFO_DESCR, "You have found " .. rewardName .. ".")
local attackAttribute = math.random(-2, 5)
local rewardClone = reward:clone()
if rewardClone:getType():getAttack() > 0 then
rewardClone:setAttribute(ITEM_ATTRIBUTE_ATTACK, rewardClone:getType():getAttack() + attackAttribute)
local description = rewardClone:hasAttribute(ITEM_ATTRIBUTE_DESCRIPTION) and rewardClone:getAttribute(ITEM_ATTRIBUTE_DESCRIPTION) or rewardClone:getType():getDescription()
if description ~= nil and description ~= '' then
description = description .. ". "
end
if attackAttribute == 5 then
rewardClone:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, description .. "Enchanted with perfect attack.")
else
if attackAttribute ~= 0 then
rewardClone:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, description .. "Enchanted with " .. attackAttribute .. " attack.")
end
end
end
local defenseAttribute = math.random(-2, 5)
if rewardClone:getType():getDefense() > 0 then
rewardClone:setAttribute(ITEM_ATTRIBUTE_DEFENSE, rewardClone:getType():getDefense() + defenseAttribute)
local description = rewardClone:hasAttribute(ITEM_ATTRIBUTE_DESCRIPTION) and rewardClone:getAttribute(ITEM_ATTRIBUTE_DESCRIPTION) or rewardClone:getType():getDescription()
if rewardClone:getType():getAttack() > 0 and attackAttribute ~= 0 then
if defenseAttribute == 5 then
rewardClone:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, description .. " Enchanted with perfect defense.")
else
if defenseAttribute ~= 0 then
rewardClone:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, description .. " Enchanted with " .. defenseAttribute .. " defense.")
end
end
else
if description ~= nil and description ~= '' then
description = description .. ". "
end
if defenseAttribute == 5 then
rewardClone:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, description .. "Enchanted with perfect defense.")
else
if defenseAttribute ~= 0 then
rewardClone:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, description .. "Enchanted with " .. defenseAttribute .. " defense.")
end
end
end
end
local armorAttribute = math.random(-1, 2)
if rewardClone:getType():getArmor() > 0 then
rewardClone:setAttribute(ITEM_ATTRIBUTE_ARMOR, rewardClone:getType():getArmor() + armorAttribute)
local description = rewardClone:hasAttribute(ITEM_ATTRIBUTE_DESCRIPTION) and rewardClone:getAttribute(ITEM_ATTRIBUTE_DESCRIPTION) or rewardClone:getType():getDescription()
if description ~= nil and description ~= '' then
description = description .. ". "
end
if armorAttribute == 2 then
rewardClone:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, description .. "Enchanted with perfect armor protection.")
else
if armorAttribute ~= 0 then
rewardClone:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, description .. "Enchanted with " .. armorAttribute .. " armor protection.")
end
end
end
player:addItemEx(rewardClone, true)
player:setStorageValue(chestQuestNumber, 1)
return true
end

View File

@@ -0,0 +1,50 @@
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
local bundleTypes = {
[6506] = { -- red christmas bundle
6503
},
[6507] = { -- blue christmas bundle
6504
},
[6508] = { -- green christmas bundle
6502
}
}
local common = {
{6569, 15}, {3598, 20}, {3599, 10}, {3586, 10}, {3585, 5}, 6500, 6501, 6489, 6387
}
local targetItem = bundleTypes[item.itemid]
if not targetItem then
return true
end
targetItem = common
-- In case there's going to be more than one unique item per bundle
for i = 1, #bundleTypes[item.itemid] do
table.insert(targetItem, bundleTypes[item.itemid][i])
end
local rewards = {}
repeat
local count = 1
local rand = math.random(#targetItem)
local gift = targetItem[rand]
if type(gift) == "table" then
count = gift[2]
gift = gift[1]
end
rewards[#rewards + 1] = {gift, count}
table.remove(targetItem, rand)
until #rewards == 7
for i = 1, #rewards do
player:addItem(rewards[i][1], rewards[i][2])
end
item:remove(1)
fromPosition:sendMagicEffect(CONST_ME_GIFT_WRAPS)
return true
end

View File

@@ -0,0 +1,5 @@
function onUse(player, item, fromPosition, target, toPosition)
item:getPosition():sendMagicEffect(CONST_ME_SOUND_YELLOW)
item:getPosition():sendMonsterSay("Merry Christmas, " .. player:getName() .. "!")
return true
end

View File

@@ -0,0 +1,9 @@
function onUse(player, item, fromPosition, target, toPosition)
if Tile(item:getPosition()):hasFlag(TILESTATE_PROTECTIONZONE) then
item:getPosition():sendMagicEffect(3)
else
item:transform(3482, 1)
item:decay()
end
return true
end

View File

@@ -0,0 +1,5 @@
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
item:getPosition():sendMagicEffect(CONST_ME_DRAWBLOOD)
item:transform(2874, math.random(10, 11))
return true
end

View File

@@ -0,0 +1,61 @@
function onUse(player, item, fromPosition, target, toPosition)
if math.random(1, 100) <= 95 then
item:getPosition():sendMagicEffect(19)
local parent = item:getParent()
if parent:isContainer() or parent:isPlayer() then
parent:addItem(3592, 1)
parent:addItem(3592, 1)
parent:addItem(3592, 1)
parent:addItem(3592, 1)
parent:addItem(3592, 1)
parent:addItem(3592, 1)
parent:addItem(3592, 1)
parent:addItem(3592, 1)
parent:addItem(3592, 1)
parent:addItem(3592, 1)
else
Game.createItem(3592, 1, fromPosition)
Game.createItem(3592, 1, fromPosition)
Game.createItem(3592, 1, fromPosition)
Game.createItem(3592, 1, fromPosition)
Game.createItem(3592, 1, fromPosition)
Game.createItem(3592, 1, fromPosition)
Game.createItem(3592, 1, fromPosition)
Game.createItem(3592, 1, fromPosition)
Game.createItem(3592, 1, fromPosition)
Game.createItem(3592, 1, fromPosition)
Game.createItem(3592, 1, fromPosition)
end
else
item:getPosition():sendMagicEffect(19)
local parent = item:getParent()
if parent:isContainer() or parent:isPlayer() then
parent:addItem(3592, 1)
parent:addItem(3592, 1)
parent:addItem(3592, 1)
parent:addItem(3592, 1)
parent:addItem(3592, 1)
parent:addItem(3592, 1)
parent:addItem(3592, 1)
parent:addItem(3592, 1)
parent:addItem(3592, 1)
parent:addItem(3592, 1)
parent:addItem(3592, 1)
else
Game.createItem(3592, 1, fromPosition)
Game.createItem(3592, 1, fromPosition)
Game.createItem(3592, 1, fromPosition)
Game.createItem(3592, 1, fromPosition)
Game.createItem(3592, 1, fromPosition)
Game.createItem(3592, 1, fromPosition)
Game.createItem(3592, 1, fromPosition)
Game.createItem(3592, 1, fromPosition)
Game.createItem(3592, 1, fromPosition)
Game.createItem(3592, 1, fromPosition)
Game.createItem(3592, 1, fromPosition)
end
item:transform(3592, 1)
item:decay()
end
return true
end

View File

@@ -0,0 +1,36 @@
function onUse(player, item, fromPosition, target, toPosition)
if not target:isItem() then
return false
end
if target:getId() == 4848 and player:getStorageValue(297) == 0 then
player:setStorageValue(297, 1)
target:getPosition():sendMagicEffect(1)
target:transform(4849, 1)
target:decay()
return true
elseif target:getId() == 4848 and player:getStorageValue(297) == 1 then
player:setStorageValue(297, 2)
target:getPosition():sendMagicEffect(1)
target:transform(4849, 1)
target:decay()
return true
elseif target:getId() == 4848 and player:getStorageValue(297) == 2 then
player:setStorageValue(297, 3)
target:getPosition():sendMagicEffect(1)
target:transform(4849, 3)
target:decay()
return true
elseif target:getId() == 1628 and toPosition.x == 32680 and toPosition.y == 32083 and toPosition.z == 09 then
Game.transformItemOnMap({x = 32680, y = 32083, z = 09}, 1628, 1630)
return true
elseif target:getId() == 3501 and toPosition.x == 32013 and toPosition.y == 31562 and toPosition.z == 04 and player:getStorageValue(228) == 1 then
Game.sendMagicEffect({x = 32013, y = 31562, z = 04}, 15)
player:setStorageValue(228, 2)
return true
elseif target:getId() == 3501 and toPosition.x == 32013 and toPosition.y == 31562 and toPosition.z == 04 then
Game.sendMagicEffect({x = 32013, y = 31562, z = 04}, 3)
return true
end
return doDestroyItem(target)
end

View File

@@ -0,0 +1,31 @@
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
local playerPosition = player:getPosition()
local afrompos = {x=playerPosition.x - 1, y=playerPosition.y - 1, z=playerPosition.z}
local atopos = {x=playerPosition.x + 1, y=playerPosition.y + 1, z=playerPosition.z}
for xa = afrompos.x,atopos.x do
for ya = afrompos.y,atopos.y do
for za = afrompos.z,atopos.z do
local npos = {x = xa,y = ya,z = za}
local depotItem = Tile(npos):getItemByType(ITEM_TYPE_DEPOT)
if depotItem ~= nil then
player:sendCancelMessage("You cannot use this object.")
return true
end
end
end
end
local dicePosition = item:getPosition()
local value = math.random(6)
local isInGhostMode = player:isInGhostMode()
dicePosition:sendMagicEffect(CONST_ME_CRAPS, isInGhostMode and player)
local spectators = Game.getSpectators(dicePosition, false, true, 3, 3)
for i = 1, #spectators do
player:say(player:getName() .. " rolled a " .. value .. ".", TALKTYPE_MONSTER_SAY, isInGhostMode, spectators[i], dicePosition)
end
item:transform(5791 + value)
return true
end

View File

@@ -0,0 +1,20 @@
local distillingMachines = {
[5468] = 5512,
[5469] = 5513
}
function onUse(player, item, fromPosition, target, toPosition)
if not target:isItem() then
return false
end
local machine = distillingMachines[target:getId()]
if machine then
target:transform(machine, 1)
target:decay()
item:remove(1)
return true
end
return false
end

View File

@@ -0,0 +1,26 @@
local greenDjinnItem = 6549
local blueDjinnItem = 6551
function onUse(player, item, fromPosition, target, toPosition)
if player:getStorageValue(278) > 1 then
player:sendTextMessage(MESSAGE_INFO_DESCR, "You have already finished one of the djinn quest or your quest is in-progress.")
return true
end
if item:getId() == greenDjinnItem then
player:setStorageValue(278, 3)
player:setStorageValue(286, 3)
player:setStorageValue(287, 3)
player:setStorageValue(288, 3)
elseif item:getId() == blueDjinnItem then
player:setStorageValue(278, 2)
player:setStorageValue(280, 2)
player:setStorageValue(281, 2)
player:setStorageValue(282, 2)
player:setStorageValue(283, 3)
end
item:getPosition():sendMagicEffect(3)
item:remove()
return true
end

View File

@@ -0,0 +1,74 @@
local dolls = {
[5080] = {"Hug me."},
[5668] = {
"It's not winning that matters, but winning in style.",
"Today's your lucky day. Probably.",
"Do not meddle in the affairs of dragons, for you are crunchy and taste good with ketchup.",
"That is one stupid question.",
"You'll need more rum for that.",
"Do or do not. There is no try.",
"You should do something you always wanted to.",
"If you walk under a ladder and it falls down on you it probably means bad luck.",
"Never say 'oops'. Always say 'Ah, interesting!'",
"Five steps east, fourteen steps south, two steps north and seventeen steps west!"
},
[5791] = {
"Fchhhhhh!",
"Zchhhhhh!",
"Grooaaaaar*cough*",
"Aaa... CHOO!",
"You... will.... burn!!"
},
[6511] = {
"Ho ho ho",
"Jingle bells, jingle bells...",
"Have you been naughty?",
"Have you been nice?",
"Merry Christmas!",
"Can you stop squeezing me now... I'm starting to feel a little sick."
}
}
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
local sounds = dolls[item.itemid]
if not sounds then
return false
end
if fromPosition.x == CONTAINER_POSITION then
fromPosition = player:getPosition()
end
local random = math.random(#sounds)
local sound = sounds[random]
if item.itemid == 5791 then
if random == 3 then
fromPosition:sendMagicEffect(CONST_ME_POFF)
elseif random == 4 then
fromPosition:sendMagicEffect(CONST_ME_FIREAREA)
elseif random == 5 then
doTargetCombatHealth(0, player, COMBAT_PHYSICALDAMAGE, -1, -1, CONST_ME_EXPLOSIONHIT)
end
if configManager.getNumber(configKeys.CLIENT_VERSION) >= 790 then
item:transform(6566)
item:decay()
end
elseif item.itemid == 5668 then
fromPosition:sendMagicEffect(CONST_ME_MAGIC_RED)
item:transform(item.itemid + 1)
item:decay()
elseif item.itemid == 5080 then
if configManager.getNumber(configKeys.CLIENT_VERSION) >= 790 then
item:transform(6568)
item:decay()
end
elseif item.itemid == 6511 then
item:transform(6567)
item:decay()
end
sound = sound:gsub('|PLAYERNAME|', player:getName())
player:say(sound, TALKTYPE_MONSTER_SAY, false, 0, fromPosition)
return true
end

View File

@@ -0,0 +1,275 @@
local lockedDoors = {
1628, 1631, 1650, 1653, 1668, 1671, 1682, 1691, 5006, 5007, 5097, 5106, 5115, 5124, 5133, 5136, 5139, 5142, 5277, 5280, 5732, 5735, 6191, 6194, 6248, 6251
}
local closedNormalDoors = {
[1629] = 1630,
[1632] = 1633,
[1638] = 1639,
[1640] = 1641,
[1651] = 1652,
[1654] = 1655,
[1656] = 1657,
[1658] = 1659,
[1669] = 1670,
[1672] = 1673,
[1683] = 1684,
[1685] = 1686,
[1692] = 1693,
[1694] = 1695,
[4912] = 4911,
[4913] = 4914,
[5082] = 5083,
[5084] = 5085,
[2177] = 2178,
[2179] = 2180,
[5098] = 5099,
[5100] = 5101,
[5107] = 5108,
[5109] = 5110,
[5116] = 5117,
[5118] = 5119,
[5125] = 5126,
[5127] = 5128,
[5134] = 5135,
[5137] = 5138,
[5140] = 5141,
[5143] = 5144,
[5278] = 5279,
[5281] = 5282,
[5283] = 5284,
[5285] = 5286,
[5514] = 5515,
[5516] = 5517,
[5733] = 5734,
[5736] = 5737,
[6192] = 6193,
[6195] = 6196,
[6197] = 6198,
[6199] = 6200,
[6249] = 6250,
[6252] = 6253,
[6254] = 6255,
[6256] = 6257,
}
local openVerticalDoors = {
[1630] = 1629,
[1639] = 1638,
[1643] = 1642,
[1647] = 1646,
[1652] = 1651,
[1657] = 1656,
[1661] = 1660,
[1665] = 1664,
[1670] = 1669,
[1675] = 1674,
[1679] = 1678,
[1693] = 1692,
[1695] = 1694,
[1697] = 1696,
[1699] = 1698,
[4914] = 4913,
[5083] = 5082,
[2178] = 2177,
[5108] = 5107,
[5110] = 5109,
[5112] = 5111,
[5114] = 5113,
[5126] = 5125,
[5128] = 5127,
[5130] = 5129,
[5132] = 5131,
[5141] = 5140,
[5144] = 5143,
[5282] = 5281,
[5284] = 5283,
[5288] = 5287,
[5292] = 5291,
[5515] = 5514,
[5737] = 5736,
[5748] = 5749,
[6193] = 6192,
[6198] = 6197,
[6202] = 6201,
[6206] = 6205,
[6250] = 6249,
[6255] = 6254,
[6259] = 6258,
[6263] = 6262,
}
local openHorizontalDoors = {
[1633] = 1632,
[1641] = 1640,
[1645] = 1644,
[1649] = 1648,
[1655] = 1654,
[1659] = 1658,
[1663] = 1662,
[1667] = 1666,
[1673] = 1672,
[1677] = 1676,
[1681] = 1680,
[1684] = 1683,
[1686] = 1685,
[1688] = 1687,
[1690] = 1689,
[4911] = 4912,
[5085] = 5084,
[2180] = 2179,
[5099] = 5098,
[5101] = 5100,
[5103] = 5102,
[5105] = 5104,
[5117] = 5116,
[5119] = 5118,
[5121] = 5120,
[5123] = 5122,
[5135] = 5134,
[5138] = 5137,
[5279] = 5278,
[5286] = 5285,
[5290] = 5289,
[5294] = 5293,
[5517] = 5516,
[5734] = 5733,
[5746] = 5745,
[6196] = 6195,
[6200] = 6199,
[6204] = 6203,
[6208] = 6207,
[6253] = 6252,
[6257] = 6256,
[6261] = 6260,
[6265] = 6264,
}
local levelDoors = {
[1646] = 1647,
[1648] = 1649,
[1664] = 1665,
[1666] = 1667,
[1678] = 1679,
[1680] = 1681,
[1687] = 1688,
[1696] = 1697,
[5102] = 5103,
[5111] = 5112,
[5120] = 5121,
[5129] = 5130,
[5291] = 5292,
[5293] = 5294,
[6205] = 6206,
[6207] = 6208,
[6262] = 6263,
[6264] = 6265,
}
local questDoors = {
[1642] = 1643,
[1644] = 1645,
[1660] = 1661,
[1662] = 1663,
[1674] = 1675,
[1676] = 1677,
[1689] = 1690,
[1698] = 1699,
[5104] = 5105,
[5113] = 5114,
[5122] = 5123,
[5131] = 5132,
[5287] = 5288,
[5289] = 5290,
[5745] = 5746,
[5749] = 5748,
[6201] = 6202,
[6203] = 6204,
[6258] = 6259,
[6260] = 6261,
}
local passthrough = {
[2334] = 2335,
[2335] = 2334,
[2336] = 2337,
[2337] = 2336,
[2338] = 2339,
[2339] = 2338,
[2340] = 2341,
[2341] = 2340,
}
function onUse(player, item, fromPosition, target, toPosition)
if table.contains(lockedDoors, item:getId()) then
player:sendTextMessage(MESSAGE_INFO_DESCR, "It is locked.")
return true
end
local door = closedNormalDoors[item:getId()]
if door then
item:transform(door, 1)
item:decay()
return true
end
door = openVerticalDoors[item:getId()]
if door then
local doorCreature = Tile(item:getPosition()):getTopCreature()
if doorCreature then
doorCreature:teleportTo(item:getPosition():moveRel(1, 0, 0), true)
end
item:transform(door, 1)
item:decay()
return true
end
door = openHorizontalDoors[item:getId()]
if door then
local doorCreature = Tile(item:getPosition()):getTopCreature()
if doorCreature then
doorCreature:teleportTo(item:getPosition():moveRel(0, 1, 0), true)
end
item:transform(door, 1)
item:decay()
return true
end
door = levelDoors[item:getId()]
if door then
if player:getLevel() < item:getAttribute(ITEM_ATTRIBUTE_DOORLEVEL) then
player:sendTextMessage(MESSAGE_INFO_DESCR, item:getType():getDescription() .. ".")
return true
end
player:teleportTo(item:getPosition(), true)
item:transform(door, 1)
item:decay()
return true
end
door = questDoors[item:getId()]
if door then
local questNumber = item:getAttribute(ITEM_ATTRIBUTE_DOORQUESTNUMBER)
local questValue = item:getAttribute(ITEM_ATTRIBUTE_DOORQUESTVALUE)
if questNumber > 0 then
if player:getStorageValue(questNumber) ~= questValue then
player:sendTextMessage(MESSAGE_INFO_DESCR, "The door seems to be sealed against unwanted intruders.")
return true
end
end
player:teleportTo(item:getPosition(), true)
item:transform(door, 1)
item:decay()
return true
end
door = passthrough[item:getId()]
if door then
item:transform(door, 1)
item:decay()
return true
end
return true
end

View File

@@ -0,0 +1,14 @@
function onUse(player, item, fromPosition, target, toPosition)
if not target:isItem() then
return false
end
if target:getId() == 4094 then
item:transform(4853, 1)
item:decay()
target:getPosition():sendMagicEffect(12)
item:getPosition():sendMagicEffect(13)
return true
end
return false
end

View File

@@ -0,0 +1,32 @@
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
if player:getStorageValue(17520) == 5 and target.itemid == 5601 then
player:setStorageValue(17520, 6)
toPosition:sendMagicEffect(CONST_ME_FIREAREA)
return true
end
local random = math.random(10)
if random >= 4 then --success 6% chance
if target.itemid == 5465 then --Burn Sugar Cane
toPosition:sendMagicEffect(CONST_ME_FIREAREA)
target:transform(5464)
target:decay()
elseif target.itemid == 3514 then --Light Up empty coal basins
toPosition:sendMagicEffect(CONST_ME_HITBYFIRE)
target:transform(3513)
elseif target.itemid == 2114 then --Light Up empty coal basins
toPosition:sendMagicEffect(CONST_ME_HITBYFIRE)
target:transform(2113)
end
elseif random == 2 then --it remove the fire bug 2% chance
item:remove(1)
toPosition:sendMagicEffect(CONST_ME_POFF)
elseif random == 1 then --it explode on the user 1% chance
doTargetCombatHealth(0, player, COMBAT_FIREDAMAGE, -5, -5, CONST_ME_HITBYFIRE)
player:say('OUCH!', TALKTYPE_MONSTER_SAY)
item:remove(1)
else
toPosition:sendMagicEffect(CONST_ME_POFF) --it fails, but dont get removed 3% chance
end
return true
end

View File

@@ -0,0 +1,17 @@
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
if fromPosition.x ~= CONTAINER_POSITION then
fromPosition:sendMagicEffect(math.random(CONST_ME_FIREWORK_YELLOW, CONST_ME_FIREWORK_BLUE))
else
local pos = player:getPosition()
pos:sendMagicEffect(CONST_ME_HITBYFIRE)
pos:sendMagicEffect(CONST_ME_EXPLOSIONAREA)
player:say("Ouch! Rather place it on the ground next time.", TALKTYPE_MONSTER_SAY)
if (player:getHealth() > 10) then
player:addHealth(-10)
end
end
item:remove()
return true
end

View File

@@ -0,0 +1,36 @@
local water = {
4597, 4598, 4599, 4600, 4601, 4602,
4609, 4610, 4611, 4612, 4613, 4614,
4615, 4616, 4617, 4618, 4619, 4620,
622
}
local fishableWater = {
4597, 4598, 4599, 4600, 4601, 4602
}
function onUse(player, item, fromPosition, target, toPosition)
if not target:isItem() then
return false
end
if not table.contains(water, target:getId()) then
return false
end
if not Tile(player:getPosition()):hasFlag(TILESTATE_PROTECTIONZONE) then
player:addSkillTries(SKILL_FISHING, 1)
if math.random(1, 100) <= math.min(math.max(10 + (player:getEffectiveSkillLevel(SKILL_FISHING) - 10) * 0.597, 10), 50) then
player:addItem(3578, 1)
if target:getId() ~= 622 then
target:transform(4609, 1)
end
target:decay()
end
end
target:getPosition():sendMagicEffect(2)
return true
end

View File

@@ -0,0 +1,120 @@
local drunk = Condition(CONDITION_DRUNK)
drunk:setParameter(CONDITION_PARAM_TICKS, 60000)
local poison = Condition(CONDITION_POISON)
poison:setTiming(100)
local messages = {
[FLUID_WATER] = "Gulp.",
[FLUID_WINE] = "Aah...",
[FLUID_BEER] = "Aah...",
[FLUID_MUD] = "Gulp.",
[FLUID_BLOOD] = "Gulp.",
[FLUID_SLIME] = "Urgh!",
[FLUID_OIL] = "Gulp.",
[FLUID_URINE] = "Urgh!",
[FLUID_MILK] = "Mmmh.",
[FLUID_MANAFLUID] = "Aaaah...",
[FLUID_LIFEFLUID] = "Aaaah...",
[FLUID_LEMONADE] = "Mmmh.",
[FLUID_RUM] = "Aah...",
[FLUID_COCONUTMILK] = "Mmmh.",
[FLUID_FRUITJUICE] = "Mmmh."
}
function onUse(player, item, fromPosition, target, toPosition)
local targetItemType = ItemType(target:getId())
if targetItemType and targetItemType:isFluidContainer() then
if target:getFluidType() == 0 and item:getFluidType() ~= 0 then
target:transform(target:getId(), item:getFluidType())
item:transform(item:getId(), 0)
return true
elseif target:getFluidType() ~= 0 and item:getFluidType() == 0 then
player:sendCancelMessage("You cannot use this object.")
return true
end
end
if (configManager.getBoolean(configKeys.UH_TRAP)) then
local tile = Tile(toPosition)
local creature = tile:getBottomCreature()
if creature and creature:isPlayer() then
target = creature
end
else
-- monsters do not use mana also I do not know if you can use life fluid on monsters
-- if you can just want to use life fluids on monster then change isPlayer to isCreature
target = target:isPlayer() and target
end
if target:isCreature() and target:getPlayer() ~= nil then
if item:getFluidType() == FLUID_NONE then
player:sendCancelMessage("It is empty.")
else
local self = target == player
if self and item:getFluidType() == FLUID_BEER or item:getFluidType() == FLUID_WINE or item:getFluidType() == FLUID_RUM then
player:addCondition(drunk)
elseif self and item:getFluidType() == FLUID_SLIME then
player:addCondition(poison)
elseif item:getFluidType() == FLUID_MANAFLUID then
target:addMana(math.random(50, 100))
target:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE)
elseif item:getFluidType() == FLUID_LIFEFLUID then
target:addHealth(math.random(25, 50))
target:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE)
end
if not self then
if item:getFluidType() ~= FLUID_MANAFLUID and item:getFluidType() ~= FLUID_LIFEFLUID then
if toPosition.x == CONTAINER_POSITION then
toPosition = player:getPosition()
end
Game.createItem(2886, item:getFluidType(), toPosition):decay()
return true
end
end
local message = messages[item:getFluidType()]
if message then
target:say(message, TALKTYPE_MONSTER_SAY)
else
target:say("Gulp.", TALKTYPE_MONSTER_SAY)
end
if player:getStorageValue(17742) ~= 1 then
item:transform(item:getId(), FLUID_NONE)
else
item:remove()
end
end
else
if toPosition.x == CONTAINER_POSITION then
toPosition = player:getPosition()
end
local tile = Tile(toPosition)
if not tile then
return false
end
if item:getFluidType() ~= FLUID_NONE and tile:hasFlag(TILESTATE_IMMOVABLEBLOCKSOLID) then
return false
end
local fluidSource = targetItemType and targetItemType:getFluidSource() or FLUID_NONE
if fluidSource ~= FLUID_NONE then
item:transform(item:getId(), fluidSource)
elseif item:getFluidType() == FLUID_NONE then
player:sendTextMessage(MESSAGE_STATUS_SMALL, "It is empty.")
else
if item:getFluidType() == FLUID_BLOOD and target:getActionId() == 17639 then
doRelocate({x = 32791, y = 32334, z = 09}, {x = 32791, y = 32332, z = 10})
Position({x = 32791, y = 32332, z = 10}):sendMonsterSay("Muahahahaha...")
end
Game.createItem(2886, item.type, toPosition):decay()
item:transform(item:getId(), 0)
end
end
return true
end

View File

@@ -0,0 +1,73 @@
local foods = {
[3250] = "Crunch.", -- the carrot of doom
[3577] = "Munch.", -- meat
[3578] = "Munch.", -- fish
[3579] = "Mmmm.", -- salmon
[3580] = "Munch.", -- fish
[3581] = "Gulp.", -- shrimp
[3582] = "Chomp.", -- ham
[3583] = "Chomp.", -- dragon ham
[3584] = "Yum.", -- pear
[3585] = "Yum.", -- red apple
[3586] = "Yum.", -- orange
[3587] = "Yum.", -- banana
[3588] = "Yum.", -- blueberry
[3589] = "Slurp.", -- coconut
[3590] = "Yum.", -- cherry
[3591] = "Yum.", -- strawberry
[3592] = "Yum.", -- grapes
[3593] = "Yum.", -- melon
[3594] = "Munch.", -- pumpkin
[3595] = "Crunch.", -- carrot
[3596] = "Munch.", -- tomato
[3597] = "Crunch.", -- corncob
[3598] = "Crunch.", -- cookie
[3599] = "Munch.", -- candy cane
[3600] = "Crunch.", -- bread
[3601] = "Crunch.", -- roll
[3602] = "Crunch.", -- brown bread
[3606] = "Gulp.", -- egg
[3607] = "Smack.", -- cheese
[3723] = "Munch.", -- white mushroom
[3724] = "Munch.", -- red mushroom
[3725] = "Munch.", -- brown mushroom
[3726] = "Munch.", -- orange mushroom
[3727] = "Munch.", -- wood mushroom
[3728] = "Munch.", -- dark mushroom
[3729] = "Munch.", -- some mushrooms
[3730] = "Munch.", -- some mushrooms
[3731] = "Munch.", -- fire mushroom
[3732] = "Munch.", -- green mushroom
[5096] = "Yum.", -- mango
[5678] = "Gulp.", -- tortoise egg
[6125] = "Gulp.", -- tortoise egg from Nargor
[6277] = "Mmmm.", -- cake
[6278] = "Mmmm.", -- cake
[6392] = "Mmmm.", -- valentine's cake
[6393] = "Mmmm.", -- cream cake
[6500] = "Mmmm.", -- gingerbreadman
[6541] = "Gulp.", -- coloured egg
[6542] = "Gulp.", -- coloured egg
[6543] = "Gulp.", -- coloured egg
[6544] = "Gulp.", -- coloured egg
[6545] = "Gulp.", -- coloured egg
[6569] = "Mmmm.", -- candy
[6574] = "Mmmm.", -- bar of chocolate
}
function onUse(player, item, fromPosition, target, toPosition)
local itemType = ItemType(item:getId())
local condition = player:getCondition(CONDITION_REGENERATION, CONDITIONID_DEFAULT)
if condition and math.floor(condition:getTicks() / 1000 + (itemType:getNutrition() * 12)) >= 1200 then
player:sendTextMessage(MESSAGE_STATUS_SMALL, "You are full.")
else
player:feed(itemType:getNutrition() * 12)
item:remove(1)
if configManager.getNumber(configKeys.CLIENT_VERSION) >= 790 then
player:say(foods[item:getId()] or "Munch.", TALKTYPE_MONSTER_SAY)
end
end
return true
end

View File

@@ -0,0 +1,65 @@
local parcels = {
[2775] = 2374,
[2776] = 2378,
[2777] = 2358,
[2778] = 2382,
[2779] = 2366,
[2780] = 2418,
[2781] = 2422,
[2782] = 2319,
[2783] = 2316,
[2784] = 2315,
[2785] = 2314,
[2786] = 2346,
[2787] = 2349,
[2788] = 2351,
[2789] = 2433,
[2790] = 2441,
[2791] = 2449,
[2792] = 2524,
[2793] = 2523,
[2794] = 2483,
[2795] = 2465,
[2796] = 2976,
[2797] = 2979,
[2798] = 2934,
[2799] = 3485,
[2800] = 2998,
[2801] = 2445,
[2802] = 2025,
[2803] = 2029,
[2804] = 2030,
[2805] = 2904,
[2806] = 3510,
[2807] = 2959,
[2808] = 2963,
[2809] = 2426,
[2810] = 2352,
[2811] = 2982,
[2812] = 2986,
[5086] = 5046,
[5087] = 5055,
[5088] = 5056,
[6114] = 6111,
[6115] = 6109,
[6371] = 6355,
[6372] = 6367,
}
function onUse(player, item, fromPosition, target, toPosition)
local parcel = parcels[item:getId()]
if not parcel then
return false
end
if not item:getParent():isTile() then
item:getPosition():sendMagicEffect(CONST_ME_POFF)
elseif not Tile(fromPosition):getHouse() then
item:getPosition():sendMagicEffect(CONST_ME_POFF)
else
item:transform(parcel)
item:getPosition():sendMagicEffect(CONST_ME_POFF)
end
return true
end

View File

@@ -0,0 +1,14 @@
function onUse(player, item, fromPosition, target, toPosition)
if not target:isItem() then
return false
end
if target:getId() == 3030 then
item:getPosition():sendMagicEffect(14)
item:transform(3230, 1)
item:decay()
target:remove(1)
return true
end
return false
end

View File

@@ -0,0 +1,18 @@
function onUse(player, item, fromPosition, target, toPosition)
if not target:isItem() then
return false
end
if target:getId() == 4994 and player:getStorageValue(306) == 1 and player:getStorageValue(307) == 0 then
local parent = item:getParent()
if parent:isContainer() or parent:isPlayer() then
parent:addItem(4837, 1)
else
Game.createItem(4837, 1, item:getPosition())
end
target:getPosition():sendMagicEffect(2)
player:setStorageValue(307, 1)
return true
end
return false
end

View File

@@ -0,0 +1,28 @@
function onUse(player, item, fromPosition, target, toPosition)
if item:getId() >= 2948 and item:getId() <= 2950 or item:getId() >= 2952 and item:getId() <= 2958 or
item:getId() >= 2963 and item:getId() <= 2964 then
item:getPosition():sendMagicEffect(CONST_ME_SOUND_GREEN)
elseif (item:getId() >= 2959 and item:getId() <= 2962 or item:getId() == 2965) and math.random(1, 100) <= 50 then
item:getPosition():sendMagicEffect(CONST_ME_SOUND_GREEN)
elseif item:getId() >= 2959 and item:getId() <= 2962 or item:getId() == 2965 then
item:getPosition():sendMagicEffect(CONST_ME_SOUND_PURPLE)
elseif item:getId() == 3219 then
item:getPosition():sendMagicEffect(19)
elseif item:getId() == 5786 then
Game.createMonster("wolf", player:getPosition())
local random = math.random(1,10)
if random > 3 then -- destroy 70% chance
item:getPosition():sendMagicEffect(CONST_ME_SOUND_RED)
item:remove(1)
else
item:getPosition():sendMagicEffect(CONST_ME_SOUND_YELLOW)
end
elseif item:getId() == 6572 then
item:getPosition():sendMagicEffect(CONST_ME_SOUND_GREEN)
item:getPosition():sendMonsterSay("TOOOOOOT")
item:transform(6573)
item:decay()
end
return true
end

View File

@@ -0,0 +1,9 @@
local fruits = {3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3595, 3596, 5096}
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
if isInArray(fruits, target.itemid) and player:removeItem(2874, 1, 0) then
target:remove(1)
player:addItem(2874, target.itemid == 3589 and 14 or 15)
return true
end
end

View File

@@ -0,0 +1,104 @@
local closedDoors = {
[1628] = 1630,
[1629] = 1628,
[1631] = 1633,
[1632] = 1631,
[1650] = 1652,
[1651] = 1650,
[1653] = 1655,
[1654] = 1653,
[1668] = 1670,
[1669] = 1668,
[1671] = 1673,
[1672] = 1671,
[1682] = 1684,
[1683] = 1682,
[1691] = 1693,
[1692] = 1691,
[5097] = 5099,
[5098] = 5097,
[5106] = 5108,
[5107] = 5106,
[5115] = 5117,
[5116] = 5115,
[5124] = 5126,
[5125] = 5124,
[5133] = 5135,
[5134] = 5133,
[5136] = 5138,
[5137] = 5136,
[5139] = 5141,
[5140] = 5139,
[5142] = 5144,
[5143] = 5142,
[5277] = 5279,
[5278] = 5277,
[5280] = 5282,
[5281] = 5280,
[5732] = 5734,
[5733] = 5732,
[5735] = 5737,
[5736] = 5735,
[6191] = 6193,
[6192] = 6191,
[6194] = 6196,
[6195] = 6194,
[6248] = 6250,
[6249] = 6248,
[6251] = 6253,
[6252] = 6251,
}
local openDoors = {
[1630] = 1628,
[1633] = 1631,
[1652] = 1650,
[1655] = 1653,
[1670] = 1668,
[1673] = 1671,
[1684] = 1682,
[1693] = 1691,
[5099] = 5097,
[5108] = 5106,
[5117] = 5115,
[5126] = 5124,
[5135] = 5133,
[5138] = 5136,
[5141] = 5139,
[5144] = 5142,
[5279] = 5277,
[5282] = 5280,
[5734] = 5732,
[5737] = 5735,
[6193] = 6191,
[6196] = 6194,
[6250] = 6248,
[6253] = 6251,
}
function onUse(player, item, fromPosition, target, toPosition)
if not target:isItem() then
return false
end
local door = closedDoors[target:getId()]
if not door then
door = openDoors[target:getId()]
end
if not door then
return false
end
local keyNumber = item:getAttribute(ITEM_ATTRIBUTE_KEYNUMBER)
local keyHoleNumber = target:getAttribute(ITEM_ATTRIBUTE_KEYHOLENUMBER)
if keyHoleNumber == 0 or keyNumber ~= keyHoleNumber then
player:sendCancelMessage("The key does not match.")
return true
end
target:transform(door)
target:decay()
return true
end

View File

@@ -0,0 +1,19 @@
local fruits = {3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3595, 3596, 5096}
function onUse(player, item, fromPosition, target, toPosition)
if not target:isItem() then
return false
end
if target:getId() == 3594 then
target:transform(2977, 1)
target:decay()
return true
elseif isInArray(fruits, target:getId()) and player:removeItem(6277, 1) then
target:remove(1)
player:addItem(6278, 1)
player:getPosition():sendMagicEffect(CONST_ME_MAGIC_GREEN)
return true
end
return false
end

View File

@@ -0,0 +1,10 @@
function onUse(player, item, fromPosition, target, toPosition)
if target:getId() == 3221 and toPosition.x == 31948 and toPosition.y == 31711 and toPosition.z == 06 then
item:transform(2859, 1)
item:decay()
player:setStorageValue(244, 2)
Game.sendMagicEffect({x = 31948, y = 31711, z = 06}, 19)
return true
end
return false
end

View File

@@ -0,0 +1,12 @@
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
if math.random(100) == 1 then
player:getPosition():sendMagicEffect(CONST_ME_SOUND_YELLOW)
player:say("Congratulations! You won a prize!", TALKTYPE_MONSTER_SAY)
item:transform(5958)
else
player:getPosition():sendMagicEffect(CONST_ME_POFF)
player:say("Sorry, but you drew a blank.", TALKTYPE_MONSTER_SAY)
item:remove(1)
end
return true
end

View File

@@ -0,0 +1,19 @@
function onUse(player, item, fromPosition, target, toPosition)
if not target:isItem() then
return false
end
if target:getId() == 3696 then
target:transform(3695, 1)
target:decay()
return true
elseif target:getId() == 3702 then
target:transform(3701, 1)
target:decay()
return true
elseif target:getId() == 2130 then
target:remove()
return true
end
return false
end

View File

@@ -0,0 +1,6 @@
function onUse(player, item, fromPosition, target, toPosition)
item:transform(3481, 1)
item:decay()
item:getPosition():sendMagicEffect(3)
return true
end

View File

@@ -0,0 +1,6 @@
function onUse(player, item, fromPosition, target, toPosition)
item:getPosition():sendMagicEffect(CONST_ME_POFF)
item:transform(6278, 1)
item:getPosition():sendMonsterSay(player:getName() .. " blew out the candle.")
return true
end

View File

@@ -0,0 +1,9 @@
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
local slot = player:getSlotItem(CONST_SLOT_HEAD)
if slot and item.uid == slot.uid then
player:getPosition():sendMagicEffect(CONST_ME_GIFT_WRAPS)
return true
end
return false
end

View File

@@ -0,0 +1,89 @@
local pitsOfInfernoLava = {
Position(32808, 32336, 11),
Position(32809, 32336, 11),
Position(32810, 32336, 11),
Position(32808, 32334, 11),
Position(32807, 32334, 11),
Position(32807, 32335, 11),
Position(32807, 32336, 11),
Position(32807, 32337, 11),
Position(32806, 32337, 11),
Position(32805, 32337, 11),
Position(32805, 32338, 11),
Position(32805, 32339, 11),
Position(32806, 32339, 11),
Position(32806, 32338, 11),
Position(32807, 32338, 11),
Position(32808, 32338, 11),
Position(32808, 32337, 11),
Position(32809, 32337, 11),
Position(32810, 32337, 11),
Position(32811, 32337, 11),
Position(32811, 32338, 11),
Position(32806, 32338, 11),
Position(32810, 32338, 11),
Position(32810, 32339, 11),
Position(32809, 32339, 11),
Position(32809, 32338, 11),
Position(32811, 32336, 11),
Position(32811, 32335, 11),
Position(32810, 32335, 11),
Position(32809, 32335, 11),
Position(32808, 32335, 11),
Position(32809, 32334, 11),
Position(32809, 32333, 11),
Position(32810, 32333, 11),
Position(32811, 32333, 11),
Position(32806, 32338, 11),
Position(32810, 32334, 11),
Position(32811, 32334, 11),
Position(32812, 32334, 11),
Position(32813, 32334, 11),
Position(32812, 32333, 11),
Position(32810, 32334, 11),
Position(32812, 32335, 11),
Position(32813, 32335, 11),
Position(32813, 32333, 11)
}
function onUse(player, item, fromPosition, target, toPosition)
local tile = Tile(toPosition)
if not tile then
return false
end
local ground = tile:getGround()
if not ground then
return false
end
if ground:getId() == 372 then
ground:transform(394, 1)
ground:decay()
return true
elseif target:getId() == 1772 and toPosition.x == 32648 and toPosition.y == 32134 and toPosition.z == 10 and math.random(1, 100) <= 40 then
Game.sendMagicEffect({x = 32648, y = 32134, z = 10}, 3)
Game.removeItemOnMap({x = 32648, y = 32134, z = 10}, 1772)
return true
elseif target:getId() == 1772 and toPosition.x == 32648 and toPosition.y == 32134 and toPosition.z == 10 then
Game.sendMagicEffect({x = 32648, y = 32134, z = 10}, 3)
doTargetCombatHealth(0, player, COMBAT_PHYSICALDAMAGE, -40, -40)
return true
elseif target:getId() == 1791 and toPosition.x == 32356 and toPosition.y == 32074 and toPosition.z == 10 and math.random(1, 100) <= 40 then
Game.sendMagicEffect({x = 32356, y = 32074, z = 10}, 3)
Game.removeItemOnMap({x = 32356, y = 32074, z = 10}, 1791)
return true
elseif target:getId() == 1791 and toPosition.x == 32356 and toPosition.y == 32074 and toPosition.z == 10 then
Game.sendMagicEffect({x = 32356, y = 32074, z = 10}, 3)
doTargetCombatHealth(0, player, COMBAT_PHYSICALDAMAGE, -50, -50)
return true
elseif target:getActionId() == 17643 then
for i = 1, #pitsOfInfernoLava do
Game.createItem(5815, 1, pitsOfInfernoLava[i])
end
target:transform(3141)
toPosition:sendMagicEffect(CONST_ME_POFF)
return true
end
return false
end

View File

@@ -0,0 +1,22 @@
function onUse(player, item, fromPosition, target, toPosition)
if player:getStorageValue(250) == 5 then
player:sendTextMessage(MESSAGE_INFO_DESCR, "You have already finished The Postman Missions.")
return true
end
player:setStorageValue(227, 6)
player:setStorageValue(228, 3)
player:setStorageValue(229, 4)
player:setStorageValue(230, 21)
player:setStorageValue(231, 3)
player:setStorageValue(233, 11)
player:setStorageValue(234, 8)
player:setStorageValue(242, 2)
player:setStorageValue(244, 3)
player:setStorageValue(245, 3)
player:setStorageValue(250, 5)
item:getPosition():sendMagicEffect(CONST_ME_SOUND_GREEN)
item:remove()
return true
end

View File

@@ -0,0 +1,5 @@
function onUse(player, item, fromPosition, target, toPosition)
item:getPosition():sendMagicEffect(3)
item:remove()
return true
end

View File

@@ -0,0 +1,13 @@
function onUse(player, item, fromPosition, target, toPosition)
if not target:isItem() then
return false
end
if target:getId() == 2917 then
item:transform(2978, 1)
item:decay()
target:remove()
return true
end
return false
end

View File

@@ -0,0 +1,12 @@
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
-- The Shattered Isles Parrot ring
if target:getId() == 6094 then
if player:getStorageValue(17502) == 1 and player:getStorageValue(17503) ~= 1 then
toPosition:sendMagicEffect(CONST_ME_POFF)
Game.createItem(6093, 1, Position(32422, 32770, 1))
player:say("You have found a ring.", TALKTYPE_MONSTER_SAY)
player:setStorageValue(17503, 1)
end
end
return true
end

View File

@@ -0,0 +1,21 @@
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
if player:getStorageValue(17572) ~= 1 and player:getLevel() <= 7 then
player:setStorageValue(17572, 1)
player:addHealth(-math.random(player:getHealth()-20, player:getHealth()-1))
item:getPosition():sendMagicEffect(CONST_ME_HITBYFIRE)
player:say('OUCH!', TALKTYPE_MONSTER_SAY)
player:addExperience(4200 - player:getExperience())
player:addItem(3355,1)
player:addItem(3361,1)
player:addItem(3559,1)
player:addItem(3552,1)
player:addItem(3412,1)
player:addItem(3273,1)
player:addItem(3031,25)
player:addItem(3582,3)
player:addItem(3003,1)
end
return true
end

View File

@@ -0,0 +1,76 @@
local ropeSpots = {
386, 421
}
local holeSpots = {
293, 294, 369, 370, 385, 394, 411, 412,
421, 432, 433, 435, 482, 5081, 483, 594,
595, 607, 609, 610, 615, 1066, 1067, 1080
}
local pools = {2886, 2887, 2888, 2889, 2890, 2891, 2895, 2896, 2897, 2898, 2899, 2900}
function onUse(player, item, fromPosition, target, toPosition)
if (configManager.getBoolean(configKeys.ROPE_SPOT_BLOCK)) then
-- Rope for 7.4 protocol.
local newPos = {x = toPosition.x, y = toPosition.y, z = toPosition.z, stackpos = 0}
local groundItem = getThingfromPos(newPos)
local blockingItem = getThingfromPos({x = toPosition.x, y = toPosition.y, z = toPosition.z, stackpos = 255})
if table.contains(ropeSpots, groundItem.itemid) then
newPos.y = newPos.y + 1
newPos.z = newPos.z - 1
if((blockingItem.itemid > 0 and not isInArray(pools, blockingItem.itemid)) or isCreature(blockingItem.uid)) then
doPlayerSendCancel(player, "You cannot use this object.")
else
doTeleportThing(player, newPos)
end
elseif table.contains(holeSpots, groundItem.itemid) then
newPos.y = newPos.y + 1
local downPos = {x = toPosition.x, y = toPosition.y, z = toPosition.z + 1, stackpos = 255}
local downItem = getThingfromPos(downPos)
if(downItem.itemid > 0) then
doTeleportThing(downItem.uid, newPos)
else
doPlayerSendCancel(player, "You cannot use this object.")
end
end
return true
else
local tile = Tile(toPosition)
if not tile then
return false
end
if not tile:getGround() then
return false
end
if table.contains(ropeSpots, tile:getGround():getId()) then
player:teleportTo(target:getPosition():moveRel(0, 1, -1))
return true
elseif table.contains(holeSpots, tile:getGround():getId()) or target:getId() == 435 then
local tile = Tile(target:getPosition():moveRel(0, 0, 1))
if not tile then
return false
end
local thing = tile:getTopCreature()
if not thing then
thing = tile:getTopVisibleThing()
end
if thing:isCreature() then
thing:teleportTo(target:getPosition():moveRel(0, 1, 0), false)
return true
end
if thing:isItem() and thing:getType():isMovable() then
thing:moveTo(target:getPosition():moveRel(0, 1, 0))
return true
end
return true
end
return false
end
return true
end

View File

@@ -0,0 +1,10 @@
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
if player:getStorageValue(17582) < os.time() then
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Your experience earnings have been enchanted by the Tibianus Gods.")
player:setStorageValue(17582, os.time() + 24 * 60 * 60) -- 24 hour
item:remove(1)
else
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You shoud not take any more today.")
end
return true
end

View File

@@ -0,0 +1,21 @@
function onUse(player, item, fromPosition, target, toPosition)
if not target:isItem() then
return false
end
if target:getId() == 3652 then
player:sendCancelMessage(target:getType():getDescription() .. ".")
return true
elseif target:getId() == 3653 then
target:transform(3651, 1)
target:decay()
Game.createItem(3605, 1, target:getPosition())
return true
elseif target:getId() == 5463 then
target:transform(5462, 1)
target:decay()
Game.createItem(5466, 1, target:getPosition())
return true
end
return doDestroyItem(target)
end

View File

@@ -0,0 +1,10 @@
function onUse(player, item, fromPosition, target, toPosition)
if target:getId() == 2199 and toPosition.x == 32754 and toPosition.y == 32559 and toPosition.z == 09 and player:getStorageValue(315) == 1 then
item:transform(4843, 1)
item:decay()
player:setStorageValue(316, 1)
target:getPosition():sendMagicEffect(4)
return true
end
return false
end

View File

@@ -0,0 +1,15 @@
local hundredPoints = 6554
local fiftyPoints = 6555
function onUse(player, item, fromPosition, target, toPosition)
if item:getId() == hundredPoints then
db.query("UPDATE znote_accounts SET points = points + 100 WHERE account_id = ".. player:getAccountId() .."")
elseif item:getId() == fiftyPoints then
db.query("UPDATE znote_accounts SET points = points + 50 WHERE account_id = ".. player:getAccountId() .."")
end
item:getPosition():sendMagicEffect(3)
item:remove()
player:save()
return true
end

View File

@@ -0,0 +1,57 @@
function onUse(player, item, fromPosition, target, toPosition)
local tile = Tile(toPosition)
if not tile then
return false
end
local ground = tile:getGround()
if not ground then
return false
end
local toTarget = target;
local itemType = ItemType(target:getId())
if itemType:isSplash() then
toTarget = ground
end
if toTarget:getId() == 231 then
toTarget:getPosition():sendMagicEffect(3)
return true
elseif toTarget:getId() == 593 then
toTarget:transform(594, 1)
toTarget:decay()
doRelocate(toTarget:getPosition(), toTarget:getPosition():moveRel(0,0,1))
return true
elseif toTarget:getId() == 606 then
toTarget:transform(607, 1)
toTarget:decay()
doRelocate(toTarget:getPosition(), toTarget:getPosition():moveRel(0,0,1))
return true
elseif toTarget:getId() == 608 then
toTarget:transform(609, 1)
toTarget:decay()
doRelocate(toTarget:getPosition(), toTarget:getPosition():moveRel(0,0,1))
elseif toTarget:getId() == 614 and math.random(1, 100) <= 50 then
toTarget:transform(615, 1)
toTarget:decay()
toTarget:getPosition():sendMagicEffect(3)
doRelocate(toTarget:getPosition(), toTarget:getPosition():moveRel(0,0,1))
elseif toTarget:getId() == 614 then
toTarget:getPosition():sendMagicEffect(3)
elseif toTarget:getId() == 616 and math.random(1, 100) <= 95 then
toTarget:transform(617, 1)
toTarget:decay()
toTarget:getPosition():sendMagicEffect(3)
Game.createMonster("scarab", toTarget:getPosition())
elseif toTarget:getId() == 616 then
toTarget:getPosition():sendMagicEffect(3)
Game.createItem(3042, 1, toTarget:getPosition())
toTarget:transform(617, 1)
toTarget:decay()
elseif toTarget:getId() == 617 then
toTarget:getPosition():sendMagicEffect(3)
end
return false
end

View File

@@ -0,0 +1,30 @@
local statues = {
[17725] = SKILL_SWORD,
[17724] = SKILL_AXE,
[17726] = SKILL_CLUB,
[17727] = SKILL_DISTANCE,
[17728] = SKILL_MAGLEVEL
}
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
-- local skill = statues[item:getActionId()]
-- if not player:isPremium() then
-- player:sendCancelMessage(RETURNVALUE_YOUNEEDPREMIUMACCOUNT)
-- return true
-- end
-- if player:isPzLocked() then
-- return false
-- end
-- local entreePrice = 1000
-- if player:getBankBalance() < entreePrice then
-- player:sendCancelMessage("You do not have 1000 gold coins in your bank account balance to participate in offline training.")
-- return true
-- end
-- player:setOfflineTrainingSkill(skill)
-- player:setBankBalance(player:getBankBalance() - entreePrice)
-- player:remove()
return true
end

View File

@@ -0,0 +1,80 @@
local config = {
[5908] = {
-- Minotaurs
[4011] = {value = 25000, newItem = 5878},
[4047] = {value = 25000, newItem = 5878},
[4057] = {value = 25000, newItem = 5878},
[4052] = {value = 25000, newItem = 5878},
-- Low Class Lizards
[4321] = {value = 25000, newItem = 5876},
[4327] = {value = 25000, newItem = 5876},
[4324] = {value = 25000, newItem = 5876},
-- Dragons
[4025] = {value = 25000, newItem = 5877},
-- Dragon Lords
[4062] = {value = 25000, newItem = 5948},
-- Behemoths
[4112] = {value = 35000, newItem = 5893},
-- Bone Beasts
[4212] = {value = 25000, newItem = 5925},
},
[5942] = {
-- Demon
[4097] = {value = 25000, newItem = 5906},
-- Vampires
[4137] = {value = 25000, newItem = 5905}
}
}
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
local skin = config[item.itemid][target.itemid]
if not skin then
return false
end
local random, effect, transform = math.random(1, 100000), CONST_ME_MAGIC_GREEN, true
if type(skin[1]) == 'table' then
local _skin
for i = 1, #skin do
_skin = skin[i]
if random <= _skin.value then
if isInArray({7441, 7442, 7444, 7445}, target.itemid) then
player:addItem(_skin.newItem, _skin.amount or 1)
effect = CONST_ME_HITAREA
else
player:addItem(_skin.newItem, _skin.amount or 1)
end
break
end
end
elseif random <= skin.value then
if isInArray({7441, 7442, 7444, 7445}, target.itemid) then
player:addItem(skin.newItem, skin.amount or 1)
effect = CONST_ME_HITAREA
else
player:addItem(skin.newItem, skin.amount or 1)
end
else
if isInArray({7441, 7442, 7444, 7445}, target.itemid) then
player:say('The attempt of sculpting failed miserably.', TALKTYPE_MONSTER_SAY)
effect = CONST_ME_HITAREA
else
effect = CONST_ME_POFF
end
end
toPosition:sendMagicEffect(effect)
if transform then
target:transform(skin.after or target.itemid + 1)
target:decay()
end
return true
end

View File

@@ -0,0 +1,14 @@
function onUse(player, item, fromPosition, target, toPosition)
if not target:isItem() then
return false
end
if target:getId() == 2917 then
player:addItem(5813, 1)
item:remove(1)
target:remove(1)
return true
end
return false
end

View File

@@ -0,0 +1,15 @@
function onUse(player, item, fromPosition, target, toPosition)
if not target:isItem() then
return false
end
if target:getId() == 4850 and player:getStorageValue(293) == 17 then
target:transform(4851, 1)
target:decay()
player:setStorageValue(299, 1)
item:remove()
target:getPosition():sendMagicEffect(7)
return true
end
return false
end

View File

@@ -0,0 +1,4 @@
function onUse(player, item, fromPosition, target, toPosition)
Game.createItem(2992, 1, fromPosition)
return true
end

View File

@@ -0,0 +1,37 @@
function onUse(player, item, fromPosition, target, toPosition)
if player:hasFlag(PlayerFlag_SpecialMoveUse) then
if item:getId() == 372 then
item:transform(394, 1)
item:decay()
elseif item:getId() == 386 or item:getId() == 421 then
local relPos = item:getPosition():moveRel(0, 1, -1)
player:teleportTo(relPos)
elseif item:getId() == 593 then
item:transform(594, 1)
item:decay()
doRelocate(item:getPosition(),item:getPosition():moveRel(0, 0, 1))
elseif item:getId() == 606 or item:getId() == 608 then
item:transform(607, 1)
item:decay()
doRelocate(item:getPosition(), item:getPosition():moveRel(0, 0, 1))
elseif item:getId() == 614 then
item:transform(615, 1)
item:decay()
item:getPosition():sendMagicEffect(3)
doRelocate(item:getPosition(), item:getPosition():moveRel(0, 0, 1))
elseif item:getId() == 3653 then
item:transform(3651, 1)
item:decay()
Game.createItem(3605, 1, item:getPosition())
elseif item:getId() == 3696 then
item:transform(3695, 1)
item:decay()
elseif item:getId() == 3702 then
item:transform(3701, 1)
item:decay()
end
else
return false
end
return true
end

View File

@@ -0,0 +1,12 @@
function onUse(player, item, fromPosition, target, toPosition)
if target:getId() == 599 and toPosition.x == 32665 and toPosition.y == 32736 and toPosition.z == 06 and player:getStorageValue(320) == 5 then
player:setStorageValue(321,1)
target:getPosition():sendMagicEffect(13)
return true
elseif target:getId() == 599 and toPosition.x == 32497 and toPosition.y == 31622 and toPosition.z == 06 and player:getStorageValue(320) == 5 then
player:setStorageValue(322,1)
target:getPosition():sendMagicEffect(13)
return true
end
return false
end

View File

@@ -0,0 +1,32 @@
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
local count = getPlayerInstantSpellCount(player)
local text = ""
local spells = {}
for i = 0, count - 1 do
local spell = getPlayerInstantSpellInfo(player, i)
if spell.level ~= 0 then
if spell.manapercent > 0 then
spell.mana = spell.manapercent .. "%"
end
spells[#spells + 1] = spell
end
end
table.sort(spells, function(a, b) return a.level < b.level end)
local prevLevel = -1
for i, spell in ipairs(spells) do
local line = ""
if prevLevel ~= spell.level then
if i ~= 1 then
line = "\n"
end
line = line .. "Spells for Level " .. spell.level .. "\n"
prevLevel = spell.level
end
text = text .. line .. " " .. spell.words .. " - " .. spell.name .. " : " .. spell.mana .. "\n"
end
player:showTextDialog(item:getId(), text)
return true
end

View File

@@ -0,0 +1,15 @@
function onUse(player, item, fromPosition, target, toPosition)
if item:getId() == 2566 then
item:transform(2567, 1)
item:decay()
elseif item:getId() == 2567 then
player:sendCancelMessage("It doesn't move.")
elseif item:getId() == 2569 then
item:transform(2570, 1)
item:decay()
elseif item:getId() == 2570 then
item:transform(2569, 1)
item:decay()
end
return true
end

View File

@@ -0,0 +1,16 @@
local downstairs = {
435
}
local upstairs = {
1948, 1968, 5542
}
function onUse(player, item, fromPosition, target, toPosition)
if table.contains(downstairs, item:getId()) then
player:teleportTo(item:getPosition():moveRel(0, 0, 1))
elseif table.contains(upstairs, item:getId()) then
player:teleportTo(item:getPosition():moveRel(0, 1, -1))
end
return true
end

View File

@@ -0,0 +1,4 @@
function onUse(player, item, fromPosition, target, toPosition)
player:sendTextMessage(MESSAGE_INFO_DESCR, "The time is " .. getFormattedWorldTime() .. ".")
return true
end

View File

@@ -0,0 +1,13 @@
function onUse(player, item, fromPosition, target, toPosition)
if not target:isItem() then
return false
end
if target:getId() == 2874 and target:getFluidType() == FLUID_OIL then
target:transform(target:getId(), FLUID_NONE)
item:transform(2914, 1)
item:decay()
return true
end
return false
end

View File

@@ -0,0 +1,9 @@
function onUse(player, item, fromPosition, target, toPosition)
if math.random(1, 100) <= 90 then
item:getPosition():sendMagicEffect(3)
return true
else
player:getPosition():sendMagicEffect(3)
end
return true
end

View File

@@ -0,0 +1,3 @@
function onUse(player, item, fromPosition, target, toPosition)
return doDestroyItem(target)
end

View File

@@ -0,0 +1,26 @@
function onUse(player, item, fromPosition, target, toPosition)
if item:getId() == 2772 and Game.isItemThere({x = 32627, y = 31699, z = 10}, 1771) then
item:transform(2773, 1)
item:decay()
doRelocate({x = 32627, y = 31699, z = 10},{x = 32626, y = 31699, z = 10})
doRelocate({x = 32628, y = 31699, z = 10},{x = 32626, y = 31699, z = 10})
doRelocate({x = 32629, y = 31699, z = 10},{x = 32626, y = 31699, z = 10})
Game.transformItemOnMap({x = 32627, y = 31699, z = 10}, 1771, 622)
Game.createItem(4788, 1, {x = 32627, y = 31699, z = 10})
Game.transformItemOnMap({x = 32628, y = 31699, z = 10}, 1771, 622)
Game.transformItemOnMap({x = 32629, y = 31699, z = 10}, 1771, 622)
Game.createItem(4786, 1, {x = 32629, y = 31699, z = 10})
elseif item:getId() == 2772 then
item:transform(2773, 1)
item:decay()
elseif item:getId() == 2773 and Game.isItemThere({x = 32628, y = 31699, z = 10}, 622) then
item:transform(2772, 1)
item:decay()
Game.transformItemOnMap({x = 32627, y = 31699, z = 10}, 622, 1771)
Game.transformItemOnMap({x = 32628, y = 31699, z = 10}, 622, 1771)
Game.transformItemOnMap({x = 32629, y = 31699, z = 10}, 622, 1771)
Game.removeItemOnMap({x = 32627, y = 31699, z = 10}, 4788)
Game.removeItemOnMap({x = 32629, y = 31699, z = 10}, 4786)
end
return true
end

View File

@@ -0,0 +1,19 @@
function onUse(player, item, fromPosition, target, toPosition)
if item:getId() == 2772 and Game.isItemThere({x = 32792, y = 31581, z = 07},1282) then
item:transform(2773, 1)
item:decay()
Game.removeItemOnMap({x = 32792, y = 31581, z = 07}, 1282)
elseif item:getId() == 2772 then
item:transform(2773, 1)
item:decay()
elseif item:getId() == 2773 and Game.isItemThere({x = 32792, y = 31581, z = 07}, 1282) then
item:transform(2772, 1)
item:decay()
elseif item:getId() == 2773 then
item:transform(2772, 1)
item:decay()
doRelocate({x = 32792, y = 31581, z = 07},{x = 32792, y = 31582, z = 07})
Game.createItem(1282, 1, {x = 32792, y = 31581, z = 07})
end
return true
end

View File

@@ -0,0 +1,32 @@
function onUse(player, item, fromPosition, target, toPosition)
if item:getId() == 2773 and Game.isItemThere({x = 32685, y = 32084, z = 09}, 1771) then
item:transform(2772, 1)
item:decay()
doRelocate({x = 32687, y = 32084, z = 09},{x = 32683, y = 32084, z = 09})
doRelocate({x = 32686, y = 32084, z = 09},{x = 32683, y = 32084, z = 09})
doRelocate({x = 32685, y = 32084, z = 09},{x = 32683, y = 32084, z = 09})
doRelocate({x = 32684, y = 32084, z = 09},{x = 32683, y = 32084, z = 09})
Game.transformItemOnMap({x = 32687, y = 32084, z = 09}, 1771, 727)
Game.createItem(4798, 1, {x = 32687, y = 32084, z = 09})
Game.transformItemOnMap({x = 32686, y = 32084, z = 09}, 1771, 727)
Game.transformItemOnMap({x = 32685, y = 32084, z = 09}, 1771, 727)
Game.transformItemOnMap({x = 32684, y = 32084, z = 09}, 1771, 727)
Game.createItem(4800, 1, {x = 32684, y = 32084, z = 09})
elseif item:getId() == 2773 then
item:transform(2772, 1)
item:decay()
elseif item:getId() == 2772 and Game.isItemThere({x = 32685, y = 32084, z = 09},727) then
item:transform(2773, 1)
item:decay()
Game.removeItemOnMap({x = 32684, y = 32084, z = 09}, 4800)
Game.transformItemOnMap({x = 32684, y = 32084, z = 09}, 727, 1771)
Game.transformItemOnMap({x = 32685, y = 32084, z = 09}, 727, 1771)
Game.removeItemOnMap({x = 32687, y = 32084, z = 09}, 4798)
Game.transformItemOnMap({x = 32687, y = 32084, z = 09}, 727, 1771)
Game.transformItemOnMap({x = 32686, y = 32084, z = 09}, 727, 1771)
elseif item:getId() == 2772 then
item:transform(2773, 1)
item:decay()
end
return true
end

View File

@@ -0,0 +1,26 @@
function onUse(player, item, fromPosition, target, toPosition)
if item:getId() == 2772 and Game.isItemThere({x = 32673, y = 32085, z = 08},430) and Game.isItemThere ({x = 32669, y = 32089, z = 08},430) and Game.isItemThere ({x = 32673, y = 32093, z = 08},430) and Game.isItemThere ({x = 32677, y = 32089, z = 08},430) and Game.isItemThere ({x = 32673, y = 32083, z = 08},3349) and Game.isItemThere ({x = 32667, y = 32089, z = 08},3585) and Game.isItemThere ({x = 32673, y = 32094, z = 08},3264) and Game.isItemThere ({x = 32679, y = 32089, z = 08},3059) then
item:transform(2773, 1)
item:decay()
Game.removeItemOnMap({x = 32673, y = 32083, z = 08}, 3349)
Game.removeItemOnMap({x = 32667, y = 32089, z = 08}, 3585)
Game.removeItemOnMap({x = 32673, y = 32094, z = 08}, 3264)
Game.removeItemOnMap({x = 32679, y = 32089, z = 08}, 3059)
Game.sendMagicEffect({x = 32673, y = 32083, z = 08}, 11)
Game.sendMagicEffect({x = 32667, y = 32089, z = 08}, 11)
Game.sendMagicEffect({x = 32673, y = 32094, z = 08}, 11)
Game.sendMagicEffect({x = 32679, y = 32089, z = 08}, 11)
doRelocate({x = 32673, y = 32093, z = 08},{x = 32671, y = 32069, z = 08})
doRelocate({x = 32669, y = 32089, z = 08},{x = 32672, y = 32069, z = 08})
doRelocate({x = 32673, y = 32085, z = 08},{x = 32671, y = 32070, z = 08})
doRelocate({x = 32677, y = 32089, z = 08},{x = 32672, y = 32070, z = 08})
Game.sendMagicEffect({x = 32671, y = 32069, z = 08}, 11)
Game.sendMagicEffect({x = 32672, y = 32069, z = 08}, 11)
Game.sendMagicEffect({x = 32671, y = 32070, z = 08}, 11)
Game.sendMagicEffect({x = 32672, y = 32070, z = 08}, 11)
elseif item:getId() == 2773 then
item:transform(2772, 1)
item:decay()
end
return true
end

View File

@@ -0,0 +1,17 @@
function onUse(player, item, fromPosition, target, toPosition)
if item:getId() == 2772 and Game.isItemThere({x = 32568, y = 32078, z = 12},2185) and Game.isItemThere ({x = 32569, y = 32078, z = 12},2185) then
item:transform(2773, 1)
item:decay()
Game.removeItemOnMap({x = 32568, y = 32078, z = 12}, 2185)
Game.removeItemOnMap({x = 32569, y = 32078, z = 12}, 2185)
elseif item:getId() == 2773 and Game.isItemThere({x = 32568, y = 32078, z = 12},2185) and Game.isItemThere ({x = 32569, y = 32078, z = 12}, 2185) then
item:transform(2772, 1)
item:decay()
elseif item:getId() == 2773 then
item:transform(2772, 1)
item:decay()
Game.createItem(2185, 1, {x = 32568, y = 32078, z = 12})
Game.createItem(2185, 1, {x = 32569, y = 32078, z = 12})
end
return true
end

View File

@@ -0,0 +1,16 @@
function onUse(player, item, fromPosition, target, toPosition)
if item:getId() == 2772 then
item:transform(2773, 1)
item:decay()
Game.removeItemOnMap({x = 33314, y = 31592, z = 15}, 1842)
doRelocate({x = 33316, y = 31591, z = 15},{x = 33317, y = 31591, z = 15})
Game.createItem(1949, 1, {x = 33316, y = 31591, z = 15})
elseif item:getId() == 2773 then
item:transform(2772, 1)
item:decay()
doRelocate({x = 33314, y = 31592, z = 15},{x = 33315, y = 31592, z = 15})
Game.createItem(1842, 1, {x = 33314, y = 31592, z = 15})
Game.removeItemOnMap({x = 33316, y = 31591, z = 15}, 1949)
end
return true
end

View File

@@ -0,0 +1,31 @@
function onUse(player, item, fromPosition, target, toPosition)
if item:getId() == 2772 and Game.isItemThere({x = 33295, y = 31677, z = 15},1791) then
item:transform(2773, 1)
item:decay()
Game.removeItemOnMap({x = 33295, y = 31677, z = 15}, 1791)
Game.removeItemOnMap({x = 33296, y = 31677, z = 15}, 1791)
Game.removeItemOnMap({x = 33297, y = 31677, z = 15}, 1791)
Game.removeItemOnMap({x = 33298, y = 31677, z = 15}, 1791)
Game.removeItemOnMap({x = 33299, y = 31677, z = 15}, 1791)
elseif item:getId() == 2772 then
item:transform(2773, 1)
item:decay()
elseif item:getId() == 2773 and Game.isItemThere({x = 33295, y = 31677, z = 15}, 1791) then
item:transform(2772, 1)
item:decay()
elseif item:getId() == 2773 then
item:transform(2772, 1)
item:decay()
doRelocate({x = 33295, y = 31677, z = 15},{x = 33295, y = 31678, z = 15})
doRelocate({x = 33296, y = 31677, z = 15},{x = 33296, y = 31678, z = 15})
doRelocate({x = 33297, y = 31677, z = 15},{x = 33297, y = 31678, z = 15})
doRelocate({x = 33298, y = 31677, z = 15},{x = 33298, y = 31678, z = 15})
doRelocate({x = 33299, y = 31677, z = 15},{x = 33299, y = 31678, z = 15})
Game.createItem(1791, 1, {x = 33295, y = 31677, z = 15})
Game.createItem(1791, 1, {x = 33296, y = 31677, z = 15})
Game.createItem(1791, 1, {x = 33297, y = 31677, z = 15})
Game.createItem(1791, 1, {x = 33298, y = 31677, z = 15})
Game.createItem(1791, 1, {x = 33299, y = 31677, z = 15})
end
return true
end

View File

@@ -0,0 +1,13 @@
function onUse(player, item, fromPosition, target, toPosition)
if item:getId() == 2772 then
item:transform(2773, 1)
item:decay()
Game.removeItemOnMap({x = 33171, y = 31897, z = 08}, 1772)
elseif item:getId() == 2773 then
item:transform(2772, 1)
item:decay()
doRelocate({x = 33171, y = 31897, z = 08},{x = 33171, y = 31898, z = 08})
Game.createItem(1772, 1, {x = 33171, y = 31897, z = 08})
end
return true
end

View File

@@ -0,0 +1,31 @@
function onUse(player, item, fromPosition, target, toPosition)
if item:getId() == 2773 and Game.isItemThere({x = 33222, y = 31671, z = 13},430) and Game.isItemThere ({x = 33223, y = 31671, z = 13},430) and Game.isItemThere ({x = 33224, y = 31671, z = 13},430) and Game.isItemThere ({x = 33225, y = 31671, z = 13},430) and Game.isItemThere ({x = 33220, y = 31659, z = 13},1772) then
item:transform(2772, 1)
item:decay()
Game.removeItemOnMap({x = 33220, y = 31659, z = 13}, 1772)
Game.removeItemOnMap({x = 33221, y = 31659, z = 13}, 1772)
Game.removeItemOnMap({x = 33222, y = 31659, z = 13}, 1772)
Game.removeItemOnMap({x = 33223, y = 31659, z = 13}, 1772)
Game.removeItemOnMap({x = 33224, y = 31659, z = 13}, 1772)
Game.removeItemOnMap({x = 33219, y = 31659, z = 13}, 1772)
Game.removeItemOnMap({x = 33219, y = 31657, z = 13}, 1772)
Game.removeItemOnMap({x = 33221, y = 31657, z = 13}, 1772)
Game.removeItemOnMap({x = 33220, y = 31661, z = 13}, 1772)
Game.removeItemOnMap({x = 33222, y = 31661, z = 13}, 1772)
Game.createMonster("Demon", {x = 33224, y = 31659, z = 13})
Game.createMonster("Demon", {x = 33223, y = 31659, z = 13})
Game.createMonster("Demon", {x = 33219, y = 31657, z = 13})
Game.createMonster("Demon", {x = 33221, y = 31657, z = 13})
Game.createMonster("Demon", {x = 33220, y = 31661, z = 13})
Game.createMonster("Demon", {x = 33222, y = 31661, z = 13})
doRelocate({x = 33222, y = 31671, z = 13},{x = 33219, y = 31659, z = 13})
doRelocate({x = 33223, y = 31671, z = 13},{x = 33220, y = 31659, z = 13})
doRelocate({x = 33224, y = 31671, z = 13},{x = 33221, y = 31659, z = 13})
doRelocate({x = 33225, y = 31671, z = 13},{x = 33222, y = 31659, z = 13})
Game.sendMagicEffect({x = 33219, y = 31659, z = 13}, 11)
Game.sendMagicEffect({x = 33220, y = 31659, z = 13}, 11)
Game.sendMagicEffect({x = 33221, y = 31659, z = 13}, 11)
Game.sendMagicEffect({x = 33222, y = 31659, z = 13}, 11)
end
return true
end

View File

@@ -0,0 +1,14 @@
function onUse(player, item, fromPosition, target, toPosition)
if item:getId() == 2772 and Game.isItemThere({x = 32483, y = 31633, z = 09}, 385) then
item:transform(2773, 1)
item:decay()
elseif item:getId() == 2772 then
item:transform(2773, 1)
item:decay()
Game.transformItemOnMap({x = 32483, y = 31633, z = 09}, 355, 385)
elseif item:getId() == 2773 then
item:transform(2772, 1)
item:decay()
end
return true
end

View File

@@ -0,0 +1,20 @@
function onUse(player, item, fromPosition, target, toPosition)
if item:getId() == 2772 then
item:remove()
Game.createItem(2126, 1, {x = 32487, y = 31628, z = 13})
Game.createItem(2126, 1, {x = 32487, y = 31629, z = 13})
Game.createItem(2126, 1, {x = 32488, y = 31629, z = 13})
Game.createItem(2126, 1, {x = 32487, y = 31627, z = 13})
Game.createItem(2126, 1, {x = 32486, y = 31627, z = 13})
Game.createItem(2126, 1, {x = 32486, y = 31628, z = 13})
Game.createItem(2126, 1, {x = 32486, y = 31629, z = 13})
Game.createItem(2126, 1, {x = 32486, y = 31630, z = 13})
Game.createItem(2126, 1, {x = 32487, y = 31630, z = 13})
Game.createItem(2126, 1, {x = 32488, y = 31630, z = 13})
Game.createItem(2126, 1, {x = 32486, y = 31626, z = 13})
Game.createItem(2126, 1, {x = 32487, y = 31626, z = 13})
Game.createItem(2126, 1, {x = 32488, y = 31626, z = 13})
Game.sendMagicEffect({x = 32488, y = 31628, z = 13}, 3)
end
return true
end

View File

@@ -0,0 +1,9 @@
function onUse(player, item, fromPosition, target, toPosition)
if Game.isItemThere({x = 33211, y = 32698, z = 13}, 1306) then
Game.removeItemOnMap({x = 33211, y = 32698, z = 13}, 1306)
else
doRelocate({x = 33211, y = 32698, z = 13}, {x = 33211, y = 32697, z = 13})
Game.createItem(1306, 1, {x = 33211, y = 32698, z = 13})
end
return true
end

View File

@@ -0,0 +1,19 @@
function onUse(player, item, fromPosition, target, toPosition)
if item:getId() == 2772 and Game.isItemThere({x = 32259, y = 31891, z = 10},2129) then
item:transform(2773, 1)
item:decay()
Game.removeItemOnMap({x = 32259, y = 31891, z = 10}, 2129)
elseif item:getId() == 2772 then
item:transform(2773, 1)
item:decay()
elseif item:getId() == 2773 and Game.isItemThere({x = 32259, y = 31891, z = 10}, 2129) then
item:transform(2772, 1)
item:decay()
elseif item:getId() == 2773 then
item:transform(2772, 1)
item:decay()
doRelocate({x = 32259, y = 31891, z = 10},{x = 32259, y = 31892, z = 10})
Game.createItem(2129, 1, {x = 32259, y = 31891, z = 10})
end
return true
end

View File

@@ -0,0 +1,18 @@
function onUse(player, item, fromPosition, target, toPosition)
if item:getId() == 2772 and Game.isItemThere({x = 32313, y = 31975, z = 13}, 1998) then
item:transform(2773, 1)
item:decay()
Game.transformItemOnMap({x = 32313, y = 31975, z = 13}, 1998, 1996)
elseif item:getId() == 2772 then
item:transform(2773, 1)
item:decay()
elseif item:getId() == 2773 and Game.isItemThere({x = 32313, y = 31975, z = 13}, 1996) then
item:transform(2772, 1)
item:decay()
Game.transformItemOnMap({x = 32313, y = 31975, z = 13}, 1996, 1998)
elseif item:getId() == 2773 then
item:transform(2772, 1)
item:decay()
end
return true
end

View File

@@ -0,0 +1,18 @@
function onUse(player, item, fromPosition, target, toPosition)
if item:getId() == 2772 and Game.isItemThere({x = 32313, y = 31976, z = 13}, 1998) then
item:transform(2773, 1)
item:decay()
Game.transformItemOnMap({x = 32313, y = 31976, z = 13}, 1998, 1996)
elseif item:getId() == 2772 then
item:transform(2773, 1)
item:decay()
elseif item:getId() == 2773 and Game.isItemThere({x = 32313, y = 31976, z = 13}, 1996) then
item:transform(2772, 1)
item:decay()
Game.transformItemOnMap({x = 32313, y = 31976, z = 13}, 1996, 1998)
elseif item:getId() == 2773 then
item:transform(2772, 1)
item:decay()
end
return true
end

View File

@@ -0,0 +1,18 @@
function onUse(player, item, fromPosition, target, toPosition)
if item:getId() == 2772 and Game.isItemThere({x = 32311, y = 31976, z = 13}, 1998) then
item:transform(2773, 1)
item:decay()
Game.transformItemOnMap({x = 32311, y = 31976, z = 13}, 1998, 1996)
elseif item:getId() == 2772 then
item:transform(2773, 1)
item:decay()
elseif item:getId() == 2773 and Game.isItemThere({x = 32311, y = 31976, z = 13}, 1996) then
item:transform(2772, 1)
item:decay()
Game.transformItemOnMap({x = 32311, y = 31976, z = 13}, 1996, 1998)
elseif item:getId() == 2773 then
item:transform(2772, 1)
item:decay()
end
return true
end

View File

@@ -0,0 +1,18 @@
function onUse(player, item, fromPosition, target, toPosition)
if item:getId() == 2772 and Game.isItemThere({x = 32311, y = 31975, z = 13}, 1998) then
item:transform(2773, 1)
item:decay()
Game.transformItemOnMap({x = 32311, y = 31975, z = 13}, 1998, 1996)
elseif item:getId() == 2772 then
item:transform(2773, 1)
item:decay()
elseif item:getId() == 2773 and Game.isItemThere({x = 32311, y = 31975, z = 13}, 1996) then
item:transform(2772, 1)
item:decay()
Game.transformItemOnMap({x = 32311, y = 31975, z = 13}, 1996, 1998)
elseif item:getId() == 2773 then
item:transform(2772, 1)
item:decay()
end
return true
end

View File

@@ -0,0 +1,18 @@
function onUse(player, item, fromPosition, target, toPosition)
if item:getId() == 2772 and Game.isItemThere({x = 32309, y = 31976, z = 13}, 1998) then
item:transform(2773, 1)
item:decay()
Game.transformItemOnMap({x = 32309, y = 31976, z = 13}, 1998, 1996)
elseif item:getId() == 2772 then
item:transform(2773, 1)
item:decay()
elseif item:getId() == 2773 and Game.isItemThere({x = 32309, y = 31976, z = 13}, 1996) then
item:transform(2772, 1)
item:decay()
Game.transformItemOnMap({x = 32309, y = 31976, z = 13}, 1996, 1998)
elseif item:getId() == 2773 then
item:transform(2772, 1)
item:decay()
end
return true
end

View File

@@ -0,0 +1,18 @@
function onUse(player, item, fromPosition, target, toPosition)
if item:getId() == 2772 and Game.isItemThere({x = 32309, y = 31975, z = 13}, 1998) then
item:transform(2773, 1)
item:decay()
Game.transformItemOnMap({x = 32309, y = 31975, z = 13}, 1998, 1996)
elseif item:getId() == 2772 then
item:transform(2773, 1)
item:decay()
elseif item:getId() == 2773 and Game.isItemThere({x = 32309, y = 31975, z = 13}, 1996) then
item:transform(2772, 1)
item:decay()
Game.transformItemOnMap({x = 32309, y = 31975, z = 13}, 1996, 1998)
elseif item:getId() == 2773 then
item:transform(2772, 1)
item:decay()
end
return true
end

View File

@@ -0,0 +1,20 @@
function onUse(player, item, fromPosition, target, toPosition)
if item:getId() == 2772 and Game.isItemThere({x = 32266, y = 31860, z = 11},2129) then
Game.removeItemOnMap({x = 32266, y = 31860, z = 11}, 2129)
Game.transformItemOnMap({x = 32266, y = 31860, z = 11}, 410, 411)
item:transform(2773, 1)
item:decay()
elseif item:getId() == 2772 then
item:transform(2773, 1)
item:decay()
elseif item:getId() == 2773 and Game.isItemThere({x = 32266, y = 31860, z = 11}, 2129) then
item:transform(2772, 1)
item:decay()
elseif item:getId() == 2773 then
item:transform(2772, 1)
item:decay()
Game.transformItemOnMap({x = 32266, y = 31860, z = 11}, 411, 410)
Game.createItem(2129, 1, {x = 32266, y = 31860, z = 11})
end
return true
end

View File

@@ -0,0 +1,19 @@
function onUse(player, item, fromPosition, target, toPosition)
if item:getId() == 2772 and Game.isItemThere({x = 32259, y = 31890, z = 10},2129) then
item:transform(2773, 1)
item:decay()
Game.removeItemOnMap({x = 32259, y = 31890, z = 10}, 2129)
elseif item:getId() == 2772 then
item:transform(2773, 1)
item:decay()
elseif item:getId() == 2773 and Game.isItemThere({x = 32259, y = 31890, z = 10}, 2129) then
item:transform(2772, 1)
item:decay()
elseif item:getId() == 2773 then
item:transform(2772, 1)
item:decay()
doRelocate({x = 32259, y = 31890, z = 10},{x = 32259, y = 31889, z = 10})
Game.createItem(2129, 1, {x = 32259, y = 31890, z = 10})
end
return true
end

View File

@@ -0,0 +1,17 @@
function onUse(player, item, fromPosition, target, toPosition)
if item:getId() == 2773 and Game.isItemThere({x = 32220, y = 31845, z = 15}, 2772) and player:getStorageValue(7) ~= 1 then
item:transform(2772, 1)
item:decay()
item:getPosition():sendMagicEffect(13)
Game.sendMagicEffect({x = 32217, y = 31842, z = 14}, 12)
Game.sendMagicEffect({x = 32217, y = 31844, z = 14}, 12)
Game.sendMagicEffect({x = 32217, y = 31845, z = 14}, 12)
Game.sendMagicEffect({x = 32218, y = 31844, z = 14}, 12)
Game.sendMagicEffect({x = 32219, y = 31843, z = 14}, 12)
Game.sendMagicEffect({x = 32219, y = 31845, z = 14}, 12)
elseif item:getId() == 2773 then
item:getPosition():sendMagicEffect(12)
doTargetCombatHealth(0, player, COMBAT_FIREDAMAGE, -170, -170)
end
return true
end

Some files were not shown because too many files have changed in this diff Show More