Enhance Your Weapon
- ID
- 350
- Название
- Enhance Your Weapon
- start_npcs_json
- []
- npc_ids_json
- []
- constants_json
- {"MIN_LEVEL":40,"RED_SOUL_CRYSTAL0_ID":4629,"GREEN_SOUL_CRYSTAL0_ID":4640,"BLUE_SOUL_CRYSTAL0_ID":4651}
- Статус разбора
- metadata_only; dynamic Java conditions/rewards retained in source; unresolved starts: ["STARTING_NPCS"]
- Источник
- game/data/scripts/quests/Q00350_EnhanceYourWeapon/Q00350_EnhanceYourWeapon.java
NPC квеста
Записей нет.
Условия уровней: выражения из Java
private static final int MIN_LEVEL = 40; if (player.getLevel() < MIN_LEVEL) if (!LevelUpCrystalData.getInstance().getNpcsSoulInfo().get(mob.getId()).containsKey(sc.getLevel())) if (getRandom(100) <= LevelUpCrystalData.getInstance().getNpcsSoulInfo().get(mob.getId()).get(sc.getLevel()).getChance()) if ((sc.getLevel() > maxSCLevel) && LevelUpCrystalData.getInstance().getNpcsSoulInfo().get(mob.getId()).containsKey(sc.getLevel())) maxSCLevel = sc.getLevel(); // Track the highest-level Soul Crystal. if ((sc.getLevel() > maxSCLevel) && LevelUpCrystalData.getInstance().getNpcsSoulInfo().get(mob.getId()).containsKey(sc.getLevel())) maxSCLevel = sc.getLevel();
Выдача предметов, адены и опыта: выражения из Java
giveItems(player, RED_SOUL_CRYSTAL0_ID, 1); giveItems(player, GREEN_SOUL_CRYSTAL0_ID, 1); giveItems(player, BLUE_SOUL_CRYSTAL0_ID, 1);
Квесты содержат динамические условия Java. Выражения выдачи включают промежуточные предметы, варианты и случайные награды; это не гарантированная награда. Константы приведены выше. Полные условия — в исходнике.
Тексты квеста
[30115-01.htm] Grand Magister Jurek: Hello there, have you come to learn how to enhance the abilities of your weapon? "Yes, I wish to learn more."
[30115-02.htm] Grand Magister Jurek: I have a growing sense of dread of late. Something terrible is coming. Can you hear it? The trees in the forest, the birds in the sky and the fish in the ocean...They know of what I speak... I fear for the survival of the whole Human race, but I don't know what threatens it! This dark foreboding will not give me any peace whatsoever. I hope I am wrong but I fear I am not... I must do what I can to save my race! I will find like-minded individuals to join my preperations for the coming apocolypse. If only we knew when... Will you join my cause? Are you willing to lend a hand in preparing to fight the imminent darkness? "I will join your cause!"
[30115-03.htm] Grand Magister Jurek: You must hurry and collect the souls of evil creatures in the soul crystal. You will find the evil ones in the northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the higher reaches of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle etc...Take the crystal filled with souls to any blacksmith and he will enhance a weapon for you. It is imperative that you build as much strength as possible to prepare yourself for the coming apocolypse. After growing each of your individual strength, if you put together all of your strengths, I think you will have enough force to fight against the approaching apocolypse. Then, next time we meet, I hope to see you stronger... Ask about the evil creatures from which you will collect souls.
[30115-04.htm] Grand Magister Jurek: Oh, marvelous! If we all develop our strengths and work together, we will triumph over the coming cataclysm. My colleagues and I have recently developed a method of enhancing weaponry that should prove quite useful to all of us. This weapons enhancement boosts strength noticeably in combat. Explanation of weapons enhancement
[30115-05.htm] Grand Magister Jurek: To enhance a weapon you will need some magical souls. You must collect the souls of evil creatures and trap them in the soul crystal I will give you. You will then take the crystal to a blacksmith and he will extract the magic from the crystal and apply it to a weapon for you. All blacksmiths know how to do this, but, obviously, they don't work for free. You can collect the souls of the evil ones in the northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the upper floors of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle. Enhanced weapons would greatly aid your mission. "How do I collect the souls of the evil ones?"
[30115-06.htm] Grand Magister Jurek: After you have sapped the evil one's strength in battle, apply the crystal to his skin. His soul will be absorbed into the crystal. His mortal body is easily dispatched. Each soul crystal can contain up to 10 souls. A more precise explanation would be that it can contain up to 10 souls with regular usage. I will tell you the detailed story later when you bring back the soul crystal with 10 souls. Actually, collecting souls for the purpose of bestowing a weapon with a special power is not as easy as it sounds. What are the precautions to take when collecting souls?"
[30115-07.htm] Grand Magister Jurek: The collection of a soul doesn't always go as planned. Some evil souls will simply not be absorbed, and, if you happen to collect the wrong soul, the crystal will shatter... Soul crystals develop refined tastes, and will reject weaker souls after a while. When this happens you must seek the souls of creatures of greater evil to satisfy your crystal. Remember that you may not absorb a soul with more than one crystal because a resonance effect is created between the crystals that prevents proper absorbtion. Receive a soul crystal.
[30115-08.htm] Grand Magister Jurek: Please choose one of the following three types of crystals: Red Soul Crystal Green Soul Crystal Blue Soul Crystal Each crystal bestows a different power upon the weapon it enhances, and the powers may vary from weapon to weapon.
[30115-09.htm] Grand Magister Jurek: Here is a red soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it. Next time we meet I hope you have gained more strength.
[30115-10.htm] Grand Magister Jurek: Here is a green soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it. Next time we meet I hope you have gained more strength.
[30115-11.htm] Grand Magister Jurek: Here is a blue soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it. Next time we meet I hope you have gained more strength.
[30115-12.htm] Grand Magister Jurek: From the following areas, which area's evil creatures would you like to obtain more information about? Northern Oren Forest of Mirrors Cave of Giants Devastated Castle Tower of Insolence Lair of Antharas Eva's Underwater Garden Devil's Isle
[30115-13.htm] Grand Magister Jurek: It seems that the most evil creatures in northern Oren are the Timak Orcs. Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
[30115-14.htm] Grand Magister Jurek: It seems that the most evil creatures in the Forest of Mirrors are the Forest of Mirror ghosts, mirrors and Harit Lizardmen. Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
[30115-15.htm] Grand Magister Jurek: It seems that the most evil creatures in the Cave of Giants are the Halingkas, Yintzus, Paliotes, Hamruts, and Kranrots. Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
[30115-16.htm] Grand Magister Jurek: It seems that the most evil creatures in the Devastated Castle are the Doom Servants, Doom Guards, Doom Archers, Doom Troopers, Doom Warriors, and Doom Knights. Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
[30115-17.htm] Grand Magister Jurek: It seems that the most evil creatures in the Tower of Insolence are the Erin Ediunce, members of the Platinum Tribe and their Angels. Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
[30115-18.htm] Grand Magister Jurek: It seems that the most evil creatures in the Lair of Antharas are the Malruk Knights, Malruk Berserkers, Malruk Lords, Limal Karinness, Kariks, Pytans, and Pytan Knights. Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
[30115-19.htm] Grand Magister Jurek: It seems that all of the evil creatures inhabiting Eva's Underwater Garden are appropriate soul donors. Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
[30115-20.htm] Grand Magister Jurek: It seems that all of the evil creatures inhabiting Devil's Isle are appropriate soul donors. Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
[30115-21.htm] Grand Magister Jurek: How is your mission going? Oh, I see that you need a new crystal! "Yes, please, may I have another?" "Quit"
[30115-lvl.htm] Grand Magister Jurek: Recently I have had troubling premonitions. The trees, birds and fish know of what I speak. I still don't know what is coming, only that it will be horrible. I hope I am wrong... I hope, at the least, to save humanity. I am therefore recruiting like-minded individuals to prepare for whatever awaits us. If only I knew how much time we have left! (This quest can only be undertaken by a player of level 40 or above.)
[30194-01.htm] Master Gideon: Hello there, have you come to learn how to enhance the abilities of your weapon? "Yes, I wish to learn more."
[30194-02.htm] Master Gideon: I have a growing sense of dread of late. Something terrible is coming. Can you hear it? The trees in the forest, the birds in the sky and the fish in the ocean...They know of what I speak... I fear for the survival of the whole Human race, but I don't know what threatens it! This dark foreboding will not give me any peace whatsoever. I hope I am wrong but I fear I am not... I must do what I can to save my race! I will find like-minded individuals to join my preperations for the coming apocolypse. If only we knew when... Will you join my cause? Are you willing to lend a hand in preparing to fight the imminent darkness? "I will join your cause!"
[30194-03.htm] Master Gideon: You must hurry and collect the souls of evil creatures in the soul crystal. You will find the evil ones in the northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the higher reaches of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle etc...Take the crystal filled with souls to any blacksmith and he will enhance a weapon for you. It is imperative that you build as much strength as possible to prepare yourself for the coming apocolypse. After growing each of your individual strength, if you put together all of your strengths, I think you will have enough force to fight against the approaching apocolypse. Then, next time we meet, I hope to see you stronger... Ask about the evil creatures from which you will collect souls.
[30194-04.htm] Master Gideon: Oh, marvelous! If we all develop our strengths and work together, we will triumph over the coming cataclysm. My colleagues and I have recently developed a method of enhancing weaponry that should prove quite useful to all of us. This weapons enhancement boosts strength noticeably in combat. Explanation of weapons enhancement
[30194-05.htm] Master Gideon: To enhance a weapon you will need some magical souls. You must collect the souls of evil creatures and trap them in the soul crystal I will give you. You will then take the crystal to a blacksmith and he will extract the magic from the crystal and apply it to a weapon for you. All blacksmiths know how to do this, but, obviously, they don't work for free. You can collect the souls of the evil ones in the northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the upper floors of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle. Enhanced weapons would greatly aid your mission. "How do I collect the souls of the evil ones?"
[30194-06.htm] Master Gideon: After you have sapped the evil one's strength in battle, apply the crystal to his skin. His soul will be absorbed into the crystal. His mortal body is easily dispatched. Each soul crystal can contain up to 10 souls. A more precise explanation would be that it can contain up to 10 souls with regular usage. I will tell you the detailed story later when you bring back the soul crystal with 10 souls. Actually, collecting souls for the purpose of bestowing a weapon with a special power is not as easy as it sounds. What are the precautions to take when collecting souls?"
[30194-07.htm] Master Gideon: The collection of a soul doesn't always go as planned. Some evil souls will simply not be absorbed, and, if you happen to collect the wrong soul, the crystal will shatter... Soul crystals develop refined tastes, and will reject weaker souls after a while. When this happens you must seek the souls of creatures of greater evil to satisfy your crystal. Remember that you may not absorb a soul with more than one crystal because a resonance effect is created between the crystals that prevents proper absorbtion. Receive a soul crystal.
[30194-08.htm] Master Gideon: Please choose one of the following three types of crystals: Red Soul Crystal Green Soul Crystal Blue Soul Crystal Each crystal bestows a different power upon the weapon it enhances, and the powers may vary from weapon to weapon.
[30194-09.htm] Master Gideon: Here is a red soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it. Next time we meet I hope you have gained more strength.
[30194-10.htm] Master Gideon: Here is a green soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it. Next time we meet I hope you have gained more strength.
[30194-11.htm] Master Gideon: Here is a blue soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it. Next time we meet I hope you have gained more strength.
[30194-12.htm] Master Gideon: From the following areas, which area's evil creatures would you like to obtain more information about? Northern Oren Forest of Mirrors Cave of Giants Devastated Castle Tower of Insolence Lair of Antharas Eva's Underwater Garden Devil's Isle
[30194-13.htm] Master Gideon: It seems that the most evil creatures in northern Oren are the Timak Orcs. Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
[30194-14.htm] Master Gideon: It seems that the most evil creatures in the Forest of Mirrors are the Forest of Mirror ghosts, mirrors and Harit Lizardmen. Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
[30194-15.htm] Master Gideon: It seems that the most evil creatures in the Cave of Giants are the Halingkas, Yintzus, Paliotes, Hamruts, and Kranrots. Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
[30194-16.htm] Master Gideon: It seems that the most evil creatures in the Devastated Castle are the Doom Servants, Doom Guards, Doom Archers, Doom Troopers, Doom Warriors, and Doom Knights. Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
[30194-17.htm] Master Gideon: It seems that the most evil creatures in the Tower of Insolence are the Erin Ediunce, members of the Platinum Tribe and their Angels. Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
[30194-18.htm] Master Gideon: It seems that the most evil creatures in the Lair of Antharas are the Malruk Knights, Malruk Berserkers, Malruk Lords, Limal Karinness, Kariks, Pytans, and Pytan Knights. Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
[30194-19.htm] Master Gideon: It seems that all of the evil creatures inhabiting Eva's Underwater Garden are appropriate soul donors. Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
[30194-20.htm] Master Gideon: It seems that all of the evil creatures inhabiting Devil's Isle are appropriate soul donors. Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
[30194-21.htm] Master Gideon: How is your mission going? Oh, I see that you need a new crystal! "Yes, please, may I have another?" "Quit"
[30194-lvl.htm] Magister Gideon: Recently I've begun to sense impending doom. The trees in the forest, the birds in the sky and fish in the water all know of what I speak. I don't even know if the Human race will survive the coming disaster... I can only hope that I am wrong... I hope to at least assure the survival of our race... I am currently in the process of recruiting like-minded people to fight the menace. But we don't even yet know what the menace is... (This quest may only be undertaken by a character of level 40 and above.)
[30856-01.htm] Magister Winonin: Hello there, have you come to learn how to enhance the abilities of your weapon? "Yes, I wish to learn more."
[30856-02.htm] Magister Winonin: I have a growing sense of dread of late. Something terrible is coming. Can you hear it? The trees in the forest, the birds in the sky and the fish in the ocean...They know of what I speak... I fear for the survival of the whole Human race, but I don't know what threatens it! This dark foreboding will not give me any peace whatsoever. I hope I am wrong but I fear I am not... I must do what I can to save my race! I will find like-minded individuals to join my preperations for the coming apocolypse. If only we knew when... Will you join my cause? Are you willing to lend a hand in preparing to fight the imminent darkness? "I will join your cause!"
[30856-03.htm] Magister Winonin: You must hurry and collect the souls of evil creatures in the soul crystal. You will find the evil ones in the northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the higher reaches of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle etc...Take the crystal filled with souls to any blacksmith and he will enhance a weapon for you. It is imperative that you build as much strength as possible to prepare yourself for the coming apocolypse. After growing each of your individual strength, if you put together all of your strengths, I think you will have enough force to fight against the approaching apocolypse. Then, next time we meet, I hope to see you stronger... Ask about the evil creatures from which you will collect souls.
[30856-04.htm] Magister Winonin: Oh, marvelous! If we all develop our strengths and work together, we will triumph over the coming cataclysm. My colleagues and I have recently developed a method of enhancing weaponry that should prove quite useful to all of us. This weapons enhancement boosts strength noticeably in combat. Explanation of weapons enhancement
[30856-05.htm] Magister Winonin: To enhance a weapon you will need some magical souls. You must collect the souls of evil creatures and trap them in the soul crystal I will give you. You will then take the crystal to a blacksmith and he will extract the magic from the crystal and apply it to a weapon for you. All blacksmiths know how to do this, but, obviously, they don't work for free. You can collect the souls of the evil ones in the northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the upper floors of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle. Enhanced weapons would greatly aid your mission. "How do I collect the souls of the evil ones?"
[30856-06.htm] Magister Winonin: After you have sapped the evil one's strength in battle, apply the crystal to his skin. His soul will be absorbed into the crystal. His mortal body is easily dispatched. Each soul crystal can contain up to 10 souls. A more precise explanation would be that it can contain up to 10 souls with regular usage. I will tell you the detailed story later when you bring back the soul crystal with 10 souls. Actually, collecting souls for the purpose of bestowing a weapon with a special power is not as easy as it sounds. What are the precautions to take when collecting souls?"
[30856-07.htm] Magister Winonin: The collection of a soul doesn't always go as planned. Some evil souls will simply not be absorbed, and, if you happen to collect the wrong soul, the crystal will shatter... Soul crystals develop refined tastes, and will reject weaker souls after a while. When this happens you must seek the souls of creatures of greater evil to satisfy your crystal. Remember that you may not absorb a soul with more than one crystal because a resonance effect is created between the crystals that prevents proper absorbtion. Receive a soul crystal.
[30856-08.htm] Magister Winonin: Please choose one of the following three types of crystals: Red Soul Crystal Green Soul Crystal Blue Soul Crystal Each crystal bestows a different power upon the weapon it enhances, and the powers may vary from weapon to weapon.
[30856-09.htm] Magister Winonin: Here is a red soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it. Next time we meet I hope you have gained more strength.
[30856-10.htm] Magister Winonin: Here is a green soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it. Next time we meet I hope you have gained more strength.
[30856-11.htm] Magister Winonin: Here is a blue soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it. Next time we meet I hope you have gained more strength.
[30856-12.htm] Magister Winonin: From the following areas, which area's evil creatures would you like to obtain more information about? Northern Oren Forest of Mirrors Cave of Giants Devastated Castle Tower of Insolence Lair of Antharas Eva's Underwater Garden Devil's Isle
[30856-13.htm] Magister Winonin: It seems that the most evil creatures in northern Oren are the Timak Orcs. Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
[30856-14.htm] Magister Winonin: It seems that the most evil creatures in the Forest of Mirrors are the Forest of Mirror ghosts, mirrors and Harit Lizardmen. Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
[30856-15.htm] Magister Winonin: It seems that the most evil creatures in the Cave of Giants are the Halingkas, Yintzus, Paliotes, Hamruts, and Kranrots. Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
[30856-16.htm] Magister Winonin: It seems that the most evil creatures in the Devastated Castle are the Doom Servants, Doom Guards, Doom Archers, Doom Troopers, Doom Warriors, and Doom Knights. Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
[30856-17.htm] Magister Winonin: It seems that the most evil creatures in the Tower of Insolence are the Erin Ediunce, members of the Platinum Tribe and their Angels. Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
[30856-18.htm] Magister Winonin: It seems that the most evil creatures in the Lair of Antharas are the Malruk Knights, Malruk Berserkers, Malruk Lords, Limal Karinness, Kariks, Pytans, and Pytan Knights. Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
[30856-19.htm] Magister Winonin: It seems that all of the evil creatures inhabiting Eva's Underwater Garden are appropriate soul donors. Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
[30856-20.htm] Magister Winonin: It seems that all of the evil creatures inhabiting Devil's Isle are appropriate soul donors. Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
[30856-21.htm] Magister Winonin: How is your mission going? Oh, I see that you need a new crystal! "Yes, please, may I have another?" "Quit"
[30856-lvl.htm] Magister Winonin: I have had a growing sense of dread of late. Something terrible is coming. Can you hear it? The trees in the forest, the birds in the sky and the fish in the ocean... They know of what I speak... I fear for the survival of the whole Human race, but I don't know what threatens it! This dark foreboding will not give me any peace whatsoever. I hope I am wrong but I fear I am not... I must do what I can to save my race. I will find like-minded individuals to join my preparations for the coming apocalypse. If only we knew when... (This quest can only be undertaken by a character of level 40 or above.)
[exit.htm] %npcname%: Yes, you do look rather exhausted! Take a rest, my friend. If you change your mind, please come back any time.
Исходник условий и наград (Java)
/*
* Copyright (c) 2013 L2jMobius
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
* IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
package quests.Q00350_EnhanceYourWeapon;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import org.l2jmobius.gameserver.config.PlayerConfig;
import org.l2jmobius.gameserver.data.enums.AbsorbCrystalType;
import org.l2jmobius.gameserver.data.holders.LevelingSoulCrystalInfo;
import org.l2jmobius.gameserver.data.holders.SoulCrystal;
import org.l2jmobius.gameserver.data.xml.LevelUpCrystalData;
import org.l2jmobius.gameserver.entity.WorldObject;
import org.l2jmobius.gameserver.entity.actor.Attackable;
import org.l2jmobius.gameserver.entity.actor.Npc;
import org.l2jmobius.gameserver.entity.actor.Player;
import org.l2jmobius.gameserver.entity.actor.holders.npc.AbsorberInfo;
import org.l2jmobius.gameserver.entity.item.enums.ItemProcessType;
import org.l2jmobius.gameserver.entity.item.instance.Item;
import org.l2jmobius.gameserver.mechanics.script.Quest;
import org.l2jmobius.gameserver.mechanics.script.QuestSound;
import org.l2jmobius.gameserver.mechanics.script.QuestState;
import org.l2jmobius.gameserver.mechanics.script.State;
import org.l2jmobius.gameserver.mechanics.skill.Skill;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
import org.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
/**
* Enhance Your Weapon (350)
* @author Gigiikun, Skache
*/
public class Q00350_EnhanceYourWeapon extends Quest
{
private static final int MIN_LEVEL = 40;
// NPCs
private static final int[] STARTING_NPCS =
{
30115,
30856,
30194
};
// Items
private static final int RED_SOUL_CRYSTAL0_ID = 4629;
private static final int GREEN_SOUL_CRYSTAL0_ID = 4640;
private static final int BLUE_SOUL_CRYSTAL0_ID = 4651;
public Q00350_EnhanceYourWeapon()
{
super(350, "Enhance Your Weapon");
addStartNpc(STARTING_NPCS);
addTalkId(STARTING_NPCS);
for (int npcId : LevelUpCrystalData.getInstance().getNpcsSoulInfo().keySet())
{
addSkillSeeId(npcId);
addKillId(npcId);
}
}
@Override
public String onEvent(String event, Npc npc, Player player)
{
final String htmltext = event;
final QuestState qs = getQuestState(player, false);
if (event.endsWith("-04.htm"))
{
qs.startQuest();
}
else if (event.endsWith("-09.htm"))
{
giveItems(player, RED_SOUL_CRYSTAL0_ID, 1);
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
}
else if (event.endsWith("-10.htm"))
{
giveItems(player, GREEN_SOUL_CRYSTAL0_ID, 1);
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
}
else if (event.endsWith("-11.htm"))
{
giveItems(player, BLUE_SOUL_CRYSTAL0_ID, 1);
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
}
else if (event.equalsIgnoreCase("exit.htm"))
{
qs.exitQuest(true, true);
final NpcHtmlMessage html = new NpcHtmlMessage(npc.getObjectId());
html.setFile(player, "data/scripts/quests/Q00350_EnhanceYourWeapon/exit.htm");
html.replace("%npcname%", npc.getName());
player.sendPacket(html);
return null;
}
return htmltext;
}
@Override
public void onKill(Npc npc, Player killer, boolean isSummon)
{
if (npc.isAttackable() && LevelUpCrystalData.getInstance().getNpcsSoulInfo().containsKey(npc.getId()))
{
levelSoulCrystals(npc.asAttackable(), killer);
}
}
@Override
public void onSkillSee(Npc npc, Player caster, Skill skill, List<WorldObject> targets, boolean isSummon)
{
super.onSkillSee(npc, caster, skill, targets, isSummon);
if ((skill == null) || (skill.getId() != 2096))
{
return;
}
if ((caster == null) || caster.isDead())
{
return;
}
if (!npc.isAttackable() || npc.isDead() || !LevelUpCrystalData.getInstance().getNpcsSoulInfo().containsKey(npc.getId()))
{
return;
}
try
{
npc.asAttackable().addAbsorber(caster);
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "", e);
}
}
@Override
public String onTalk(Npc npc, Player player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (qs.getState() == State.CREATED)
{
if (player.getLevel() < MIN_LEVEL)
{
htmltext = npc.getId() + "-lvl.htm";
}
else
{
htmltext = npc.getId() + "-01.htm";
}
}
else if (check(player))
{
htmltext = npc.getId() + "-03.htm";
}
else if (!hasQuestItems(player, RED_SOUL_CRYSTAL0_ID) && !hasQuestItems(player, GREEN_SOUL_CRYSTAL0_ID) && !hasQuestItems(player, BLUE_SOUL_CRYSTAL0_ID))
{
htmltext = npc.getId() + "-21.htm";
}
return htmltext;
}
private static boolean check(Player player)
{
for (int i = 4629; i < 4665; i++)
{
if (hasQuestItems(player, i))
{
return true;
}
}
return false;
}
private static void exchangeCrystal(Player player, Attackable mob, int takeId, int giveId, boolean broke)
{
Item item = player.getInventory().destroyItemByItemId(ItemProcessType.FEE, takeId, 1, player, mob);
if (item != null)
{
// Prepare inventory update packet.
final InventoryUpdate playerIU = new InventoryUpdate();
playerIU.addRemovedItem(item);
// Add new crystal to the killer's inventory.
item = player.getInventory().addItem(ItemProcessType.REWARD, giveId, 1, player, mob);
playerIU.addItem(item);
// Send a sound event and text message to the player.
if (broke)
{
player.sendPacket(SystemMessageId.THE_SOUL_CRYSTAL_BROKE_BECAUSE_IT_WAS_NOT_ABLE_TO_ENDURE_THE_SOUL_ENERGY);
}
else
{
player.sendPacket(SystemMessageId.THE_SOUL_CRYSTAL_SUCCEEDED_IN_ABSORBING_A_SOUL);
}
// Send system message.
final SystemMessage sms = new SystemMessage(SystemMessageId.YOU_HAVE_EARNED_S1);
sms.addItemName(giveId);
player.sendPacket(sms);
// Send inventory update packet.
player.sendInventoryUpdate(playerIU);
}
}
private static SoulCrystal getSCForPlayer(Player player)
{
final QuestState qs = player.getQuestState(Q00350_EnhanceYourWeapon.class.getSimpleName());
if ((qs == null) || !qs.isStarted())
{
return null;
}
SoulCrystal ret = null;
for (Item item : player.getInventory().getItems())
{
final int itemId = item.getId();
if (!LevelUpCrystalData.getInstance().getSoulCrystals().containsKey(itemId))
{
continue;
}
if (ret != null)
{
return null;
}
ret = LevelUpCrystalData.getInstance().getSoulCrystals().get(itemId);
}
return ret;
}
private static boolean isPartyLevelingMonster(int npcId)
{
for (LevelingSoulCrystalInfo info : LevelUpCrystalData.getInstance().getNpcSoulInfo(npcId).values())
{
if (info.getAbsorbCrystalType() != AbsorbCrystalType.LAST_HIT)
{
return true;
}
}
return false;
}
private static void levelCrystal(Player player, SoulCrystal sc, Attackable mob)
{
if ((sc == null) || !LevelUpCrystalData.getInstance().getNpcsSoulInfo().containsKey(mob.getId()))
{
return;
}
// If the crystal level is way too high for this mob, say that we can't increase it.
if (!LevelUpCrystalData.getInstance().getNpcsSoulInfo().get(mob.getId()).containsKey(sc.getLevel()))
{
player.sendPacket(SystemMessageId.THE_SOUL_CRYSTAL_IS_REFUSING_TO_ABSORB_A_SOUL);
return;
}
if (getRandom(100) <= LevelUpCrystalData.getInstance().getNpcsSoulInfo().get(mob.getId()).get(sc.getLevel()).getChance())
{
exchangeCrystal(player, mob, sc.getItemId(), sc.getLeveledItemId(), false);
}
else
{
player.sendPacket(SystemMessageId.THE_SOUL_CRYSTAL_WAS_NOT_ABLE_TO_ABSORB_A_SOUL);
}
}
/**
* Calculate the leveling chance of Soul Crystals based on the attacker that killed this Attackable
* @param mob
* @param killer The player that last killed this Attackable
*/
public static void levelSoulCrystals(Attackable mob, Player killer)
{
// Only Players can absorb souls; reset if no killer is present.
if (killer == null)
{
mob.resetAbsorbList();
return;
}
// Map to store players and their crystals.
final Map<Player, SoulCrystal> players = new HashMap<>();
int maxSCLevel = 0;
// Gather eligible players and their Soul Crystals.
if (isPartyLevelingMonster(mob.getId()) && (killer.getParty() != null))
{
for (Player member : killer.getParty().getMembers())
{
if ((member == null) || (member.calculateDistance3D(killer) > PlayerConfig.ALT_PARTY_RANGE))
{
continue; // Skip invalid or out-of-range members.
}
final SoulCrystal sc = getSCForPlayer(member);
if (sc == null)
{
continue; // Skip if no valid Soul Crystal is present.
}
players.put(member, sc);
if ((sc.getLevel() > maxSCLevel) && LevelUpCrystalData.getInstance().getNpcsSoulInfo().get(mob.getId()).containsKey(sc.getLevel()))
{
maxSCLevel = sc.getLevel(); // Track the highest-level Soul Crystal.
}
}
}
else
{
final SoulCrystal sc = getSCForPlayer(killer);
if (sc != null)
{
players.put(killer, sc);
if ((sc.getLevel() > maxSCLevel) && LevelUpCrystalData.getInstance().getNpcsSoulInfo().get(mob.getId()).containsKey(sc.getLevel()))
{
maxSCLevel = sc.getLevel();
}
}
}
// No eligible players or crystals; exit early.
if (players.isEmpty())
{
return;
}
// Get leveling info for the mob and highest-level crystal.
final LevelingSoulCrystalInfo levelInfo = LevelUpCrystalData.getInstance().getNpcsSoulInfo().get(mob.getId()).get(maxSCLevel);
if (levelInfo == null)
{
return; // No leveling info available for this mob.
}
// Handle special absorb skill checks.
if (levelInfo.isSkillNeeded())
{
if (!mob.isAbsorbed())
{
mob.resetAbsorbList(); // Absorption not initialized.
return;
}
final AbsorberInfo ai = mob.getAbsorbersList().get(killer.getObjectId());
if ((ai == null) || (ai.getObjectId() != killer.getObjectId()) || (ai.getAbsorbedHp() > (mob.getMaxHp() / 2.0)))
{
mob.resetAbsorbList(); // Absorption skill was misused.
return;
}
}
// Process leveling based on absorb type.
switch (levelInfo.getAbsorbCrystalType())
{
case PARTY_ONE_RANDOM:
{
if (killer.getParty() != null)
{
final Player lucky = killer.getParty().getMembers().get(getRandom(killer.getParty().getMemberCount()));
levelCrystal(lucky, players.get(lucky), mob);
}
else
{
levelCrystal(killer, players.get(killer), mob);
}
break;
}
case PARTY_RANDOM:
{
if (killer.getParty() != null)
{
final List<Player> partyMembers = new ArrayList<>(killer.getParty().getMembers());
while ((getRandom(100) < 33) && !partyMembers.isEmpty())
{
final Player lucky = partyMembers.remove(getRandom(partyMembers.size()));
final SoulCrystal luckyData = players.get(lucky);
if (luckyData != null)
{
levelCrystal(lucky, luckyData, mob);
}
}
}
else if (getRandom(100) < 33)
{
levelCrystal(killer, players.get(killer), mob);
}
break;
}
case FULL_PARTY:
{
if (killer.getParty() != null)
{
for (Player member : killer.getParty().getMembers())
{
levelCrystal(member, players.get(member), mob);
}
}
else
{
levelCrystal(killer, players.get(killer), mob);
}
break;
}
case LAST_HIT:
{
levelCrystal(killer, players.get(killer), mob);
break;
}
}
// Reset absorb state after processing.
mob.resetAbsorbList();
}
}