Browse Source

BETA: Updating '''Plains of Lizardman'''
* Also updating Czech language for SQLAccountManager

malyelfik 12 years ago
parent
commit
1958d0f33e
21 changed files with 428 additions and 313 deletions
  1. 163 114
      L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PlainsOfLizardman.java
  2. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-00.html
  3. 1 1
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-01.html
  4. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-02.html
  5. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-03.html
  6. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-04.html
  7. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-05.html
  8. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-ugoros.html
  9. 1 1
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740.html
  10. 1 1
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-01.htm
  11. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-02.html
  12. 1 1
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-03.htm
  13. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-05.html
  14. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-06.html
  15. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-quit.html
  16. 79 105
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/Q00423_TakeYourBestShot.java
  17. 13 7
      L2J_DataPack_BETA/dist/game/data/stats/skills/06400-06499.xml
  18. 136 32
      L2J_DataPack_BETA/dist/game/data/stats/skills/06600-06699.xml
  19. 24 24
      L2J_DataPack_BETA/dist/languages/accountmanager/SQLAccountManager_cs.xml
  20. 0 2
      L2J_DataPack_BETA/dist/sql/game/npcskills.sql
  21. 9 25
      L2J_DataPack_BETA/dist/sql/game/spawnlist.sql

+ 163 - 114
L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PlainsOfLizardman.java

@@ -21,178 +21,227 @@ package ai.group_template;
 import ai.npc.AbstractNpcAI;
 
 import com.l2jserver.gameserver.ai.CtrlIntention;
-import com.l2jserver.gameserver.datatables.SkillTable;
-import com.l2jserver.gameserver.handler.ISkillHandler;
-import com.l2jserver.gameserver.handler.SkillHandler;
 import com.l2jserver.gameserver.model.L2CharPosition;
 import com.l2jserver.gameserver.model.actor.L2Attackable;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.L2Playable;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.skills.L2Skill;
-import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse;
+import com.l2jserver.gameserver.model.holders.SkillHolder;
 
 /**
- * Plains Of Lizardman AI.
- * @author Gnacik
+ * Plains of Lizardman AI
+ * @author Gnacik, malyelfik
  */
-public class PlainsOfLizardman extends AbstractNpcAI
+public final class PlainsOfLizardman extends AbstractNpcAI
 {
-	private static final int[] _MOBS =
+	// NPCs
+	private static final int INVISIBLE_NPC = 18919;
+	private static final int TANTA_GUARD = 18862;
+	private static final int FANTASY_MUSHROOM = 18864;
+	private static final int STICKY_MUSHROOM = 18865;
+	private static final int RAINBOW_FROG = 18866;
+	private static final int ENERGY_PLANT = 18868;
+	private static final int TANTA_SCOUT = 22768;
+	private static final int TANTA_MAGICIAN = 22773;
+	private static final int TANTA_SUMMONER = 22774;
+	private static final int[] MOBS =
 	{
-		18864,
-		18865,
-		18866,
-		18868
+		22768, // Tanta Lizardman Scout
+		22769, // Tanta Lizardman Warrior
+		22770, // Tanta Lizardman Soldier
+		22771, // Tanta Lizardman Berserker
+		22772, // Tanta Lizardman Archer
+		22773, // Tanta Lizardman Magician
+		22774, // Tanta Lizardman Summoner
 	};
 	
-	private static final int FANTASY_MUSHROOM = 18864;
-	private static final int FANTASY_MUSHROOM_SKILL = 6427;
+	// Skills
+	private static final SkillHolder STUN_EFFECT = new SkillHolder(6622, 1);
+	private static final SkillHolder DEMOTIVATION_HEX = new SkillHolder(6425, 1);
+	private static final SkillHolder FANTASY_MUSHROOM_SKILL = new SkillHolder(6427, 1);
+	private static final SkillHolder RAINBOW_FROG_SKILL = new SkillHolder(6429, 1);
+	private static final SkillHolder STICKY_MUSHROOM_SKILL = new SkillHolder(6428, 1);
+	private static final SkillHolder ENERGY_PLANT_SKILL = new SkillHolder(6430, 1);
 	
-	private static final int RAINBOW_FROG = 18866;
-	private static final int RAINBOW_FROG_SKILL = 6429;
-	
-	private static final int STICKY_MUSHROOM = 18865;
-	private static final int STICKY_MUSHROOM_SKILL = 6428;
+	// Buffs
+	private static final SkillHolder[] BUFFS =
+	{
+		new SkillHolder(6625, 1), // Energy of Life
+		new SkillHolder(6626, 2), // Energy of Life's Power
+		new SkillHolder(6627, 3), // Energy of Life's Highest Power
+		new SkillHolder(6628, 1), // Energy of Mana
+		new SkillHolder(6629, 2), // Energy of Mana's Power
+		new SkillHolder(6630, 3), // Energy of Mana's Highest Power
+		new SkillHolder(6631, 1), // Energy of Power
+		new SkillHolder(6633, 1), // Energy of Attack Speed
+		new SkillHolder(6635, 1), // Energy of Crt Rate
+		new SkillHolder(6636, 1), // Energy of Moving Speed
+		new SkillHolder(6638, 1), // Aura of Mystery
+		new SkillHolder(6639, 1), // Bane of Auras - Damage
+		new SkillHolder(6640, 1), // Energizing Aura
+		new SkillHolder(6674, 1), // Energy of Range Increment
+	};
 	
-	private static final int ENERGY_PLANT = 18868;
-	private static final int ENERGY_PLANT_SKILL = 6430;
+	// Misc
+	private static final int[] BUFF_LIST =
+	{
+		6,
+		7,
+		8,
+		11,
+		13
+	};
 	
 	private PlainsOfLizardman(String name, String descr)
 	{
 		super(name, descr);
-		registerMobs(_MOBS, QuestEventType.ON_ATTACK);
+		addAttackId(FANTASY_MUSHROOM, RAINBOW_FROG, STICKY_MUSHROOM, ENERGY_PLANT, TANTA_SUMMONER);
+		addKillId(MOBS);
 	}
 	
 	@Override
 	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
 	{
-		if ((player != null) && !player.isAlikeDead())
+		if (event.equals("fantasy_mushroom") && (npc != null) && (player != null))
 		{
-			boolean isPet = false;
-			if (event.endsWith("_pet") && player.hasSummon() && !player.getSummon().isDead())
+			npc.doCast(FANTASY_MUSHROOM_SKILL.getSkill());
+			for (L2Character target : npc.getKnownList().getKnownCharactersInRadius(200))
 			{
-				isPet = true;
-			}
-			
-			if (event.startsWith("rainbow_frog"))
-			{
-				triggerSkill(npc, isPet ? player.getSummon() : player, RAINBOW_FROG_SKILL, 1);
-			}
-			else if (event.startsWith("energy_plant"))
-			{
-				triggerSkill(npc, isPet ? player.getSummon() : player, ENERGY_PLANT_SKILL, 1);
-			}
-			else if (event.startsWith("sticky_mushroom"))
-			{
-				triggerSkill(npc, isPet ? player.getSummon() : player, STICKY_MUSHROOM_SKILL, 1);
+				if ((target != null) && target.isL2Attackable())
+				{
+					final L2Attackable monster = (L2Attackable) target;
+					npc.setTarget(monster);
+					npc.doCast(STUN_EFFECT.getSkill());
+					attackPlayer(monster, player);
+				}
 			}
-			else if (event.startsWith("fantasy_mushroom"))
-			{
-				L2Skill skill = SkillTable.getInstance().getInfo(FANTASY_MUSHROOM_SKILL, 1);
-				npc.doCast(skill);
-				for (L2Character target : npc.getKnownList().getKnownCharactersInRadius(200))
+			npc.doDie(player);
+		}
+		return null;
+	}
+	
+	@Override
+	public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isPet)
+	{
+		switch (npc.getNpcId())
+		{
+			case TANTA_SUMMONER:
+				if (npc.getFirstEffect(DEMOTIVATION_HEX.getSkillId()) == null)
+				{
+					npc.doCast(DEMOTIVATION_HEX.getSkill());
+				}
+				break;
+			case RAINBOW_FROG:
+				castSkill(npc, attacker, RAINBOW_FROG_SKILL);
+				break;
+			case ENERGY_PLANT:
+				castSkill(npc, attacker, ENERGY_PLANT_SKILL);
+				break;
+			case STICKY_MUSHROOM:
+				castSkill(npc, attacker, STICKY_MUSHROOM_SKILL);
+				break;
+			case FANTASY_MUSHROOM:
+				if (npc.isScriptValue(0))
 				{
-					if ((target != null) && (target instanceof L2Attackable) && (target.getAI() != null))
+					npc.setScriptValue(1);
+					npc.setIsInvul(true);
+					for (L2Character target : npc.getKnownList().getKnownCharactersInRadius(1000))
 					{
-						skill.getEffects(npc, target);
-						attackPlayer((L2Attackable) target, isPet ? player.getSummon() : player);
+						if ((target != null) && target.isL2Attackable())
+						{
+							final L2Attackable monster = (L2Attackable) target;
+							if ((monster.getNpcId() == TANTA_MAGICIAN) || (monster.getNpcId() == TANTA_SCOUT))
+							{
+								target.setIsRunning(true);
+								target.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new L2CharPosition(npc.getX(), npc.getY(), npc.getZ(), 0));
+							}
+						}
 					}
+					startQuestTimer("fantasy_mushroom", 4000, npc, attacker);
 				}
-				npc.doDie(player);
-			}
+				break;
 		}
-		return super.onAdvEvent(event, npc, player);
+		return super.onAttack(npc, attacker, damage, isPet);
 	}
 	
 	@Override
-	public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isPet)
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet)
 	{
-		if (npc.isDead())
+		// Tanta Guard
+		if (getRandom(1000) == 0)
 		{
-			return null;
+			final L2Npc guard = addSpawn(TANTA_GUARD, npc);
+			attackPlayer((L2Attackable) guard, killer);
 		}
 		
-		if (npc.getNpcId() == RAINBOW_FROG)
+		// Invisible buff npc
+		final int random = getRandom(100);
+		final L2Npc buffer = addSpawn(INVISIBLE_NPC, npc.getLocation(), false, 6000);
+		buffer.setTarget(killer);
+		
+		if (random <= 42)
 		{
-			if (isPet)
-			{
-				startQuestTimer("rainbow_frog_pet", 2000, npc, attacker);
-			}
-			else
-			{
-				startQuestTimer("rainbow_frog", 2000, npc, attacker);
-			}
-			npc.doDie(attacker);
+			castRandomBuff(buffer, 7, 45, BUFFS[0], BUFFS[1], BUFFS[2]);
 		}
-		else if (npc.getNpcId() == STICKY_MUSHROOM)
+		if (random <= 11)
 		{
-			if (isPet)
-			{
-				startQuestTimer("sticky_mushroom_pet", 2000, npc, attacker);
-			}
-			else
-			{
-				startQuestTimer("sticky_mushroom", 2000, npc, attacker);
-			}
-			npc.doDie(attacker);
+			castRandomBuff(buffer, 8, 60, BUFFS[3], BUFFS[4], BUFFS[5]);
+			castRandomBuff(buffer, 3, 6, BUFFS[9], BUFFS[10], BUFFS[12]);
 		}
-		else if (npc.getNpcId() == ENERGY_PLANT)
+		if (random <= 25)
 		{
-			if (isPet)
-			{
-				startQuestTimer("energy_plant_pet", 2000, npc, attacker);
-			}
-			else
-			{
-				startQuestTimer("energy_plant", 2000, npc, attacker);
-			}
-			npc.doDie(attacker);
+			buffer.doCast(BUFFS[BUFF_LIST[getRandom(BUFF_LIST.length)]].getSkill());
+		}
+		if (random <= 10)
+		{
+			buffer.doCast(BUFFS[13].getSkill());
 		}
-		else if (npc.getNpcId() == FANTASY_MUSHROOM)
+		if (random <= 1)
 		{
-			for (L2Character target : npc.getKnownList().getKnownCharactersInRadius(1000))
+			final int i = getRandom(100);
+			if (i <= 34)
 			{
-				if ((target != null) && (target instanceof L2Attackable) && (target.getAI() != null))
-				{
-					target.setIsRunning(true);
-					target.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new L2CharPosition(npc.getX(), npc.getY(), npc.getZ(), 0));
-				}
+				buffer.doCast(BUFFS[6].getSkill());
+				buffer.doCast(BUFFS[7].getSkill());
+				buffer.doCast(BUFFS[8].getSkill());
 			}
-			if (isPet)
+			else if (i < 67)
 			{
-				startQuestTimer("fantasy_mushroom_pet", 3000, npc, attacker);
+				buffer.doCast(BUFFS[13].getSkill());
 			}
 			else
 			{
-				startQuestTimer("fantasy_mushroom", 3000, npc, attacker);
+				buffer.doCast(BUFFS[2].getSkill());
+				buffer.doCast(BUFFS[5].getSkill());
 			}
 		}
-		return super.onAttack(npc, attacker, damage, isPet);
+		return super.onKill(npc, killer, isPet);
 	}
 	
-	private static void triggerSkill(L2Character caster, L2Playable playable, int skill_id, int skill_level)
+	private void castRandomBuff(L2Npc npc, int chance1, int chance2, SkillHolder... buffs)
 	{
-		L2Character[] targets = new L2Character[1];
-		targets[0] = playable;
-		
-		L2Skill trigger = SkillTable.getInstance().getInfo(skill_id, skill_level);
-		
-		if ((trigger != null) && playable.isInsideRadius(caster, trigger.getCastRange(), true, false) && (playable.getInstanceId() == caster.getInstanceId()))
+		final int rand = getRandom(100);
+		if (rand <= chance1)
 		{
-			playable.broadcastPacket(new MagicSkillUse(playable, playable, skill_id, skill_level, 0, 0));
-			
-			ISkillHandler handler = SkillHandler.getInstance().getHandler(trigger.getSkillType());
-			if (handler != null)
-			{
-				handler.useSkill(playable, trigger, targets);
-			}
-			else
-			{
-				trigger.useSkill(playable, targets);
-			}
+			npc.doCast(buffs[2].getSkill());
 		}
+		else if (rand <= chance2)
+		{
+			npc.doCast(buffs[1].getSkill());
+		}
+		else
+		{
+			npc.doCast(buffs[0].getSkill());
+		}
+	}
+	
+	private void castSkill(L2Npc npc, L2Character target, SkillHolder skill)
+	{
+		npc.doDie(target);
+		
+		final L2Npc buffer = addSpawn(INVISIBLE_NPC, npc.getLocation(), false, 6000);
+		buffer.setTarget(target);
+		buffer.doCast(skill.getSkill());
 	}
 	
 	public static void main(String[] args)

+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-00.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-00.html


+ 1 - 1
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-01.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-01.html

@@ -1,5 +1,5 @@
 <html><body>Gatekeeper Batracos:<br>
 There's something about this place, an unescapable feeling of peace. I used to know that feeling very well here. Unfortunately, the truth behind my people's past keeps me from enjoying that feeling anymore. You see, the Plains have been showered with the blood of my people. In the wake of Antharas' death, we struggled for this land, bloodlust fueling brother against brother, father against son.<br>It was the Seer who united the new tribe of Tanta to defeat the Leto. He is known amongst my people as a great leader, but he also kills any who oppose him.<br>
 I can't just sit back and watch anymore. But I won't send someone to be slaughtered either. I must know you can handle Ugoros in battle!<br>
-<a action="bypass -h Quest Q00423_TakeYourBestShot 32740.htm">Back</a>
+<a action="bypass -h Quest Q00423_TakeYourBestShot 32740.html">Back</a>
 </body></html>

+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-02.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-02.html


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-03.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-03.html


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-04.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-04.html


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-05.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-05.html


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-ugoros.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-ugoros.html


+ 1 - 1
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740.html

@@ -1,6 +1,6 @@
 <html><body>Gatekeeper Batracos:<br>
 Welcome. These are the tribal lands of the Seer Uguros of Tanta. I, the Gatekeeper Batracos, decide who is able to see the seer and who does not. Judging by the looks of you, I have some advice - turn back and keep your life. That shiny armor won't protect you here.<br>
-<a action="bypass -h Quest Q00423_TakeYourBestShot 32740-01.htm">Continue to listen</a><br>
+<a action="bypass -h Quest Q00423_TakeYourBestShot 32740-01.html">Continue to listen</a><br>
 <a action="bypass -h Quest Q00423_TakeYourBestShot teleport_inside">Ask him to send you to Tanta Seer Ugoros</a><br>
 <a action="bypass -h npc_%objectId%_Quest">Quest</a>
 </body></html>

+ 1 - 1
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-01.htm

@@ -1,4 +1,4 @@
 <html><body>Chief Investigator Johnny:<br>
 I'm a busy guy. Get to the point. I ain't getting any younger.<br>
-<a action="bypass -h Quest Q00423_TakeYourBestShot 32744-02.htm">Ask about a way to see Tanta Seer Ugoros</a>
+<a action="bypass -h Quest Q00423_TakeYourBestShot 32744-02.html">Ask about a way to see Tanta Seer Ugoros</a>
 </body></html>

+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-02.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-02.html


+ 1 - 1
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-03.htm

@@ -2,5 +2,5 @@
 Objectivity is important when it comes to this kind of thing. I don't respect just anyone - I have clear standards. Here's the deal:<br>
 Tanta Lizardmen live in the Plains. Start killing them off and the Tanta Lizardmen Guards will start to show up. If you can manage to take out some of those guards, you've got my respect, without even a word. How about that? You in?<br>
 <a action="bypass -h Quest Q00423_TakeYourBestShot 32744-04.htm">"I'm in."</a><br>
-<a action="bypass -h Quest Q00423_TakeYourBestShot 32744-quit.htm">"I'm out."</a>
+<a action="bypass -h Quest Q00423_TakeYourBestShot 32744-quit.html">"I'm out."</a>
 </body></html>

+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-05.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-05.html


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-06.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-06.html


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-quit.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-quit.html


+ 79 - 105
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/Q00423_TakeYourBestShot.java

@@ -20,14 +20,11 @@ package quests.Q00423_TakeYourBestShot;
 
 import quests.Q00249_PoisonedPlainsOfTheLizardmen.Q00249_PoisonedPlainsOfTheLizardmen;
 
-import com.l2jserver.gameserver.ai.CtrlIntention;
-import com.l2jserver.gameserver.model.actor.L2Attackable;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.quest.QuestState;
 import com.l2jserver.gameserver.model.quest.State;
-import com.l2jserver.gameserver.util.Util;
 
 /**
  * Take Your Best Shot (423)
@@ -36,48 +33,45 @@ import com.l2jserver.gameserver.util.Util;
  */
 public class Q00423_TakeYourBestShot extends Quest
 {
-	// NPC
+	// NPCs
 	private static final int BATRACOS = 32740;
 	private static final int JOHNNY = 32744;
+	
+	// Monster
+	private static final int TANTA_GUARD = 18862;
+	
 	// Item
 	private static final int SEER_UGOROS_PASS = 15496;
-	// Spawn chance x/1000
-	private static final int SPAWN_CHANCE = 2;
-	// Guard
-	private static final int TANTA_LIZARDMAN_GUARD = 18862;
-	// Mobs
-	private static final int[] MOBS =
-	{
-		22768,
-		22769,
-		22770,
-		22771,
-		22772,
-		22773,
-		22774
-	};
+	
+	// Misc
+	private static final int MIN_LEVEL = 82;
 	
 	@Override
 	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
 	{
-		String htmltext = event;
-		QuestState st = player.getQuestState(getName());
-		
+		final QuestState st = player.getQuestState(getName());
 		if (st == null)
 		{
-			return htmltext;
+			return null;
 		}
 		
-		if (npc.getNpcId() == JOHNNY)
+		String htmltext = event;
+		switch (event)
 		{
-			if (event.equalsIgnoreCase("32744-04.htm"))
-			{
+			case "32740.html":
+			case "32740-01.html":
+			case "32744-02.html":
+			case "32744-03.htm":
+				break;
+			case "32744-04.htm":
 				st.startQuest();
-			}
-			else if (event.equalsIgnoreCase("32744-quit.htm"))
-			{
+				break;
+			case "32744-quit.html":
 				st.exitQuest(true);
-			}
+				break;
+			default:
+				htmltext = null;
+				break;
 		}
 		return htmltext;
 	}
@@ -85,56 +79,60 @@ public class Q00423_TakeYourBestShot extends Quest
 	@Override
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
-		QuestState st = player.getQuestState(getName());
+		final QuestState st = player.getQuestState(getName());
 		String htmltext = getNoQuestMsg(player);
 		if (st == null)
 		{
 			return htmltext;
 		}
 		
-		if (npc.getNpcId() == JOHNNY)
-		{
-			switch (st.getState())
-			{
-				case State.CREATED:
-					QuestState _prev = player.getQuestState(Q00249_PoisonedPlainsOfTheLizardmen.class.getSimpleName());
-					if ((_prev != null) && _prev.isCompleted() && (player.getLevel() >= 82))
-					{
-						htmltext = (st.hasQuestItems(SEER_UGOROS_PASS)) ? "32744-07.htm" : "32744-01.htm";
-					}
-					else
-					{
-						htmltext = "32744-00.htm";
-					}
-					break;
-				case State.STARTED:
-					if (st.isCond(1))
-					{
-						htmltext = "32744-05.htm";
-					}
-					else if (st.isCond(2))
-					{
-						htmltext = "32744-06.htm";
-					}
-					break;
-			}
-		}
-		else if (npc.getNpcId() == BATRACOS)
+		switch (npc.getNpcId())
 		{
-			if (st.getState() == State.CREATED)
-			{
-				htmltext = (st.hasQuestItems(SEER_UGOROS_PASS)) ? "32740-05.htm" : "32740-00.htm";
-			}
-			else if ((st.getState() == State.STARTED) && (st.isCond(1)))
-			{
-				htmltext = "32740-02.htm";
-			}
-			else if ((st.getState() == State.STARTED) && (st.isCond(2)))
-			{
-				st.giveItems(SEER_UGOROS_PASS, 1);
-				st.exitQuest(true, true);
-				htmltext = "32740-04.htm";
-			}
+			case JOHNNY:
+				switch (st.getState())
+				{
+					case State.CREATED:
+						final QuestState _prev = player.getQuestState(Q00249_PoisonedPlainsOfTheLizardmen.class.getSimpleName());
+						if ((_prev != null) && _prev.isCompleted() && (player.getLevel() >= MIN_LEVEL))
+						{
+							htmltext = (st.hasQuestItems(SEER_UGOROS_PASS)) ? "32744-07.htm" : "32744-01.htm";
+						}
+						else
+						{
+							htmltext = "32744-00.htm";
+						}
+						break;
+					case State.STARTED:
+						if (st.isCond(1))
+						{
+							htmltext = "32744-05.html";
+						}
+						else if (st.isCond(2))
+						{
+							htmltext = "32744-06.html";
+						}
+						break;
+				}
+				break;
+			case BATRACOS:
+				switch (st.getState())
+				{
+					case State.CREATED:
+						htmltext = (st.hasQuestItems(SEER_UGOROS_PASS)) ? "32740-05.html" : "32740-00.html";
+						break;
+					case State.STARTED:
+						if (st.isCond(1))
+						{
+							htmltext = "32740-02.html";
+						}
+						else if (st.isCond(2))
+						{
+							st.giveItems(SEER_UGOROS_PASS, 1);
+							st.exitQuest(true, true);
+							htmltext = "32740-04.html";
+						}
+						break;
+				}
 		}
 		return htmltext;
 	}
@@ -142,45 +140,22 @@ public class Q00423_TakeYourBestShot extends Quest
 	@Override
 	public String onFirstTalk(L2Npc npc, L2PcInstance player)
 	{
-		QuestState st = player.getQuestState(getName());
-		if (st == null)
-		{
-			st = newQuestState(player);
-		}
-		
 		if (npc.isInsideRadius(96782, 85918, 100, true))
 		{
-			return "32740-ugoros.htm";
+			return "32740-ugoros.html";
 		}
-		return "32740.htm";
+		return "32740.html";
 	}
 	
 	@Override
-	public String onKill(L2Npc npc, L2PcInstance player, boolean isPet)
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet)
 	{
-		QuestState st = player.getQuestState(getName());
-		if (st == null)
-		{
-			return null;
-		}
-		
-		if (Util.contains(MOBS, npc.getNpcId()) && (getRandom(1000) <= SPAWN_CHANCE))
-		{
-			L2Npc guard = addSpawn(TANTA_LIZARDMAN_GUARD, npc, false);
-			attackPlayer((L2Attackable) guard, player);
-		}
-		else if ((npc.getNpcId() == TANTA_LIZARDMAN_GUARD) && (st.isCond(1)))
+		final QuestState st = killer.getQuestState(getName());
+		if ((st != null) && st.isCond(1))
 		{
 			st.setCond(2, true);
 		}
-		return null;
-	}
-	
-	private void attackPlayer(L2Attackable npc, L2PcInstance player)
-	{
-		npc.setIsRunning(true);
-		npc.addDamageHate(player, 0, 999);
-		npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, player);
+		return super.onKill(npc, killer, isPet);
 	}
 	
 	public Q00423_TakeYourBestShot(int questId, String name, String descr)
@@ -189,12 +164,11 @@ public class Q00423_TakeYourBestShot extends Quest
 		addStartNpc(JOHNNY, BATRACOS);
 		addTalkId(JOHNNY, BATRACOS);
 		addFirstTalkId(BATRACOS);
-		addKillId(TANTA_LIZARDMAN_GUARD);
-		addKillId(MOBS);
+		addKillId(TANTA_GUARD);
 	}
 	
 	public static void main(String[] args)
 	{
 		new Q00423_TakeYourBestShot(423, Q00423_TakeYourBestShot.class.getSimpleName(), "Take Your Best Shot!");
 	}
-}
+}

+ 13 - 7
L2J_DataPack_BETA/dist/game/data/stats/skills/06400-06499.xml

@@ -428,12 +428,18 @@
 	<skill id="6425" levels="1" name="Demotivation Hex">
 		<set name="abnormalLvl" val="3" />
 		<set name="abnormalType" val="pd_down" />
+		<set name="magicLvl" val="84" />
 		<set name="isMagic" val="1" /> <!-- Magic Skill -->
-		<set name="target" val="TARGET_NONE" />
-		<set name="skillType" val="NOTDONE" />
+		<set name="target" val="TARGET_SELF" />
+		<set name="skillType" val="BUFF" />
 		<set name="operateType" val="A2" />
 		<set name="saveVs" val="MEN" />
 		<set name="lvlDepend" val="2" />
+		<for>
+			<effect name="Buff" val="0" abnormalTime="10" abnormalLvl="3" abnormalType="pd_down">
+				<mul order="0x30" stat="pDef" val="0.1" />
+			</effect>
+		</for>
 	</skill>
 	<skill id="6426" levels="1" name="Priest's Ire">
 		<!-- Confirmed CT2.5 -->
@@ -454,7 +460,8 @@
 	<skill id="6427" levels="1" name="Medicinal Mushroom 1">
 		<!-- Fantasy Mushroom Skill -->
 		<set name="operateType" val="A1" />
-		<set name="target" val="TARGET_AURA" />
+		<set name="magicLvl" val="84" />
+		<set name="target" val="TARGET_SELF" />
 		<set name="skillRadius" val="300" />
 		<set name="hitTime" val="1000" />
 		<set name="coolTime" val="1000" />
@@ -507,13 +514,12 @@
 	<skill id="6430" levels="1" name="Roar Hip Heal">
 		<!-- Energy Plant Skill -->
 		<set name="operateType" val="A1" />
-		<set name="target" val="TARGET_SELF" />
+		<set name="target" val="TARGET_ONE" />
 		<set name="castRange" val="2000" />
 		<set name="hitTime" val="500" />
 		<set name="isMagic" val="1" /> <!-- Magic Skill -->
-		<for>
-			<effect name="HealPercent" noicon="1" val="30" />
-		</for>
+		<set name="skillType" val="HEAL_PERCENT" />
+		<set name="power" val="30" />
 	</skill>
 	<skill id="6431" levels="1" name="Feral Might">
 		<!-- P. Atk. increases by 19 % for 5 minutes -->

+ 136 - 32
L2J_DataPack_BETA/dist/game/data/stats/skills/06600-06699.xml

@@ -216,12 +216,21 @@
 		<!-- Momentarily causes shock, which stuns the enemy for 20 seconds. In addition, your chance of being critically attacked is increased by 50%. -->
 		<set name="abnormalLvl" val="1" />
 		<set name="abnormalType" val="stun" />
-		<set name="target" val="TARGET_NONE" />
-		<set name="skillType" val="NOTDONE" />
+		<set name="magicLvl" val="84" />
+		<set name="target" val="TARGET_ONE" />
+		<set name="skillType" val="PDAM" />
+		<set name="power" val="2748" />
+		<set name="isDebuff" val="true" />
+		<set name="mpConsume" val="121" />
 		<set name="lvlDepend" val="1" />
 		<set name="operateType" val="A2" />
 		<set name="saveVs" val="CON" />
 		<set name="trait" val="SHOCK" />
+		<for>
+			<effect name="Stun" val="0" abnormalTime="20" effectPower="98" effectType="STUN" abnormalLvl="1" abnormalType="stun">
+				<mul order="0x30" stat="critDamEvas" val="1.5" />
+			</effect>
+		</for>
 	</skill>
 	<skill id="6623" levels="1" name="Fungus Hub">
 		<set name="isMagic" val="1" /> <!-- Magic Skill -->
@@ -242,58 +251,90 @@
 	</skill>
 	<skill id="6625" levels="1" name="Energy of Life">
 		<set name="isMagic" val="2" /> <!-- Static Skill -->
-		<set name="target" val="TARGET_NONE" />
-		<set name="skillType" val="NOTDONE" />
+		<set name="power" val="15" />
+		<set name="target" val="TARGET_ONE" />
+		<set name="skillType" val="HEAL_PERCENT" />
 		<set name="operateType" val="A1" />
+		<set name="castRange" val="2000" />
+		<set name="effectRange" val="2000" />
+		<set name="hitTime" val="100" />
 		<set name="reuseDelay" val="2000" />
 	</skill>
 	<skill id="6626" levels="2" name="Energy of Life's Power">
 		<!-- This skill only has one level, 2. -->
 		<set name="isMagic" val="2" /> <!-- Static Skill -->
-		<set name="target" val="TARGET_NONE" />
-		<set name="skillType" val="NOTDONE" />
+		<set name="power" val="25" />
+		<set name="target" val="TARGET_ONE" />
+		<set name="skillType" val="HEAL_PERCENT" />
 		<set name="operateType" val="A1" />
+		<set name="castRange" val="2000" />
+		<set name="effectRange" val="2000" />
+		<set name="hitTime" val="100" />
 		<set name="reuseDelay" val="2000" />
 	</skill>
 	<skill id="6627" levels="3" name="Energy of Life's Highest Power">
 		<!-- This skill only has one level, 3. -->
 		<set name="isMagic" val="2" /> <!-- Static Skill -->
-		<set name="target" val="TARGET_NONE" />
-		<set name="skillType" val="NOTDONE" />
+		<set name="power" val="100" />
+		<set name="target" val="TARGET_ONE" />
+		<set name="skillType" val="HEAL_PERCENT" />
 		<set name="operateType" val="A1" />
+		<set name="castRange" val="2000" />
+		<set name="effectRange" val="2000" />
+		<set name="hitTime" val="100" />
 		<set name="reuseDelay" val="2000" />
 	</skill>
 	<skill id="6628" levels="1" name="Energy of Mana">
 		<set name="isMagic" val="2" /> <!-- Static Skill -->
-		<set name="target" val="TARGET_NONE" />
-		<set name="skillType" val="NOTDONE" />
+		<set name="power" val="11" />
+		<set name="target" val="TARGET_ONE" />
+		<set name="skillType" val="MANAHEAL_PERCENT" />
 		<set name="operateType" val="A1" />
+		<set name="castRange" val="2000" />
+		<set name="effectRange" val="2000" />
+		<set name="hitTime" val="100" />
 		<set name="reuseDelay" val="2000" />
 	</skill>
 	<skill id="6629" levels="2" name="Energy of Mana's Power">
 		<!-- This skill only has one level, 2. -->
 		<set name="isMagic" val="2" /> <!-- Static Skill -->
-		<set name="target" val="TARGET_NONE" />
-		<set name="skillType" val="NOTDONE" />
+		<set name="power" val="18" />
+		<set name="target" val="TARGET_ONE" />
+		<set name="skillType" val="MANAHEAL_PERCENT" />
 		<set name="operateType" val="A1" />
+		<set name="castRange" val="2000" />
+		<set name="effectRange" val="2000" />
+		<set name="hitTime" val="100" />
 		<set name="reuseDelay" val="2000" />
 	</skill>
 	<skill id="6630" levels="3" name="Energy of Mana's Highest Power">
 		<!-- This skill only has one level, 3. -->
 		<set name="isMagic" val="2" /> <!-- Static Skill -->
-		<set name="target" val="TARGET_NONE" />
-		<set name="skillType" val="NOTDONE" />
+		<set name="power" val="100" />
+		<set name="target" val="TARGET_ONE" />
+		<set name="skillType" val="MANAHEAL_PERCENT" />
 		<set name="operateType" val="A1" />
+		<set name="castRange" val="2000" />
+		<set name="effectRange" val="2000" />
+		<set name="hitTime" val="100" />
 		<set name="reuseDelay" val="2000" />
 	</skill>
 	<skill id="6631" levels="1" name="Energy of Power">
 		<set name="abnormalLvl" val="3" />
 		<set name="abnormalType" val="pa_up" />
+		<set name="magicLvl" val="40" />
 		<set name="isMagic" val="2" /> <!-- Static Skill -->
-		<set name="target" val="TARGET_NONE" />
-		<set name="skillType" val="NOTDONE" />
+		<set name="target" val="TARGET_ONE" />
+		<set name="skillType" val="BUFF" />
 		<set name="operateType" val="A2" />
+		<set name="castRange" val="2000" />
+		<set name="effectRange" val="2000" />
 		<set name="reuseDelay" val="2000" />
+		<for>
+			<effect name="Buff" val="0" abnormalTime="300" abnormalLvl="3" abnormalType="pa_up">
+				<mul order="0x30" stat="pAtk" val="1.15" />
+			</effect>
+		</for>
 	</skill>
 	<skill id="6632" levels="1" name="Energy of Enchant">
 		<set name="abnormalLvl" val="3" />
@@ -304,14 +345,22 @@
 		<set name="operateType" val="A2" />
 		<set name="reuseDelay" val="2000" />
 	</skill>
-	<skill id="6633" levels="1" name="Energy of Attack Speed\">
+	<skill id="6633" levels="1" name="Energy of Attack Speed">
 		<set name="abnormalLvl" val="2" />
 		<set name="abnormalType" val="attack_time_down" />
+		<set name="magicLvl" val="52" />
 		<set name="isMagic" val="2" /> <!-- Static Skill -->
-		<set name="target" val="TARGET_NONE" />
-		<set name="skillType" val="NOTDONE" />
+		<set name="target" val="TARGET_ONE" />
+		<set name="skillType" val="BUFF" />
 		<set name="operateType" val="A2" />
+		<set name="castRange" val="2000" />
+		<set name="effectRange" val="2000" />
 		<set name="reuseDelay" val="2000" />
+		<for>
+			<effect name="Buff" val="0" abnormalTime="300" abnormalLvl="2" abnormalType="attack_time_down">
+				<mul order="0x30" stat="pAtkSpd" val="1.33" />
+			</effect>
+		</for>
 	</skill>
 	<skill id="6634" levels="1" name="Energy of Casting Speed">
 		<set name="abnormalLvl" val="3" />
@@ -322,23 +371,39 @@
 		<set name="operateType" val="A2" />
 		<set name="reuseDelay" val="2000" />
 	</skill>
-	<skill id="6635" levels="1" name="Energy of Crt Rate\">
+	<skill id="6635" levels="1" name="Energy of Crt Rate">
 		<set name="abnormalLvl" val="3" />
 		<set name="abnormalType" val="critical_prob_up" />
+		<set name="magicLvl" val="52" />
 		<set name="isMagic" val="2" /> <!-- Static Skill -->
-		<set name="target" val="TARGET_NONE" />
-		<set name="skillType" val="NOTDONE" />
+		<set name="target" val="TARGET_ONE" />
+		<set name="skillType" val="BUFF" />
 		<set name="operateType" val="A2" />
+		<set name="castRange" val="2000" />
+		<set name="effectRange" val="2000" />
 		<set name="reuseDelay" val="2000" />
+		<for>
+			<effect name="Buff" val="0" abnormalTime="300" abnormalLvl="3" abnormalType="critical_prob_up">
+				<mul order="0x30" stat="rCrit" val="1.3" />
+			</effect>
+		</for>
 	</skill>
 	<skill id="6636" levels="1" name="Energy of Moving Speed">
 		<set name="abnormalLvl" val="2" />
 		<set name="abnormalType" val="speed_up" />
+		<set name="magicLvl" val="30" />
 		<set name="isMagic" val="2" /> <!-- Static Skill -->
-		<set name="target" val="TARGET_NONE" />
-		<set name="skillType" val="NOTDONE" />
+		<set name="target" val="TARGET_ONE" />
+		<set name="skillType" val="BUFF" />
 		<set name="operateType" val="A2" />
+		<set name="castRange" val="2000" />
+		<set name="effectRange" val="2000" />
 		<set name="reuseDelay" val="2000" />
+		<for>
+			<effect name="Buff" val="0" abnormalTime="300" abnormalLvl="2" abnormalType="speed_up">
+				<add order="0x40" stat="runSpd" val="33" />
+			</effect>
+		</for>
 	</skill>
 	<skill id="6637" levels="1" name="Vampiric Aura">
 		<!-- Confirmed CT2.5 -->
@@ -367,30 +432,59 @@
 	<skill id="6638" levels="1" name="Aura of Mystery">
 		<set name="abnormalLvl" val="1" />
 		<set name="abnormalType" val="big_head" />
+		<set name="magicLvl" val="1" />
 		<set name="isMagic" val="2" /> <!-- Static Skill -->
-		<set name="target" val="TARGET_NONE" />
-		<set name="skillType" val="NOTDONE" />
+		<set name="target" val="TARGET_ONE" />
+		<set name="skillType" val="BUFF" />
 		<set name="operateType" val="A2" />
+		<set name="castRange" val="2000" />
+		<set name="effectRange" val="2000" />
 		<set name="reuseDelay" val="2000" />
 		<set name="trait" val="ETC" />
+		<cond msgId="113" addName="1">
+			<not>
+				<player transformationId="103" />
+			</not>
+		</cond>
+		<for>
+			<effect name="BigHead" val="0" abnormalTime="300" abnormalVisualEffect="bighead" abnormalLvl="1" abnormalType="big_head">
+				<mul order="0x30" stat="regHp" val="2" />
+				<mul order="0x30" stat="regMp" val="2" />
+			</effect>
+		</for>
 	</skill>
 	<skill id="6639" levels="1" name="Bane of Auras - Damage">
 		<set name="abnormalLvl" val="3" />
 		<set name="abnormalType" val="critical_dmg_up" />
+		<set name="magicLvl" val="48" />
 		<set name="isMagic" val="2" /> <!-- Static Skill -->
-		<set name="target" val="TARGET_NONE" />
-		<set name="skillType" val="NOTDONE" />
+		<set name="target" val="TARGET_ONE" />
+		<set name="skillType" val="BUFF" />
 		<set name="operateType" val="A2" />
+		<set name="castRange" val="2000" />
+		<set name="effectRange" val="2000" />
 		<set name="reuseDelay" val="2000" />
+		<for>
+			<effect name="Buff" val="0" abnormalTime="300" abnormalLvl="3" abnormalType="critical_dmg_up">
+				<mul order="0x30" stat="cAtk" val="1.35" />
+			</effect>
+		</for>
 	</skill>
 	<skill id="6640" levels="1" name="Energizing Aura">
 		<set name="abnormalLvl" val="1" />
 		<set name="abnormalType" val="vp_up" />
 		<set name="isMagic" val="2" /> <!-- Static Skill -->
-		<set name="target" val="TARGET_NONE" />
-		<set name="skillType" val="NOTDONE" />
+		<set name="target" val="TARGET_ONE" />
+		<set name="skillType" val="BUFF" />
 		<set name="operateType" val="A2" />
+		<set name="castRange" val="2000" />
+		<set name="effectRange" val="2000" />
 		<set name="reuseDelay" val="2000" />
+		<for>
+			<effect name="Buff" val="0" abnormalTime="300" abnormalLvl="1" abnormalType="vp_up" abnormalVisualEffect="vitality">
+				<sub order="0x40" stat="vitalityConsumeRate" val="10" />
+			</effect>
+		</for>
 	</skill>
 	<skill id="6641" levels="1" name="Holy Ball">
 		<!-- Confirmed CT2.5 -->
@@ -760,10 +854,20 @@
 		<!-- Bow/Crossbow range is temporarily increased by 50. -->
 		<set name="abnormalLvl" val="10" />
 		<set name="abnormalType" val="signal_b" />
+		<set name="magicLvl" val="52" />
 		<set name="isMagic" val="2" /> <!-- Static Skill -->
-		<set name="target" val="TARGET_NONE" />
-		<set name="skillType" val="NOTDONE" />
+		<set name="target" val="TARGET_ONE" />
+		<set name="skillType" val="BUFF" />
 		<set name="operateType" val="A2" />
+		<set name="castRange" val="2000" />
+		<set name="effectRange" val="2000" />
+		<for>
+			<effect name="Buff" abnormalTime="300" val="0" abnormalLvl="10" abnormalType="signal_b">
+				<add order="0x40" stat="pAtkRange" val="50">
+					<using kind="Bow, Crossbow" />
+				</add>
+			</effect>
+		</for>
 	</skill>
 	<skill id="6675" levels="1" name="Lavasaurus Firstborn Attack">
 		<set name="target" val="TARGET_NONE" />

+ 24 - 24
L2J_DataPack_BETA/dist/languages/accountmanager/SQLAccountManager_cs.xml

@@ -5,35 +5,35 @@
 	<message id="yesChar" text="A" />
 	<message id="noChar" text="N" />
 	<message id="trueString" text="Pravda" />
-	<message id="falseString" text="Lež" />
+	<message id="falseString" text="Lez" />
 
-	<message id="functChooser" text="Prosím vyberte si z uvedených možností" />
-	<message id="functCreateAccount" text="1 - Vytvoøit nový úèet nebo upravit stávající (zmìna hesla a acess levelu)" />
-	<message id="functAccessLevel" text="2 - Zmìna acess levelu" />
-	<message id="functDeleteAccount" text="3 - Odstranit úèet" />
-	<message id="functListAccount" text="4 - Seznam úètù a access levlù" />
-	<message id="functExit" text="5 - Odejít" />
+	<message id="functChooser" text="Prosim vyberte si z uvedenych moznosti" />
+	<message id="functCreateAccount" text="1 - Vytvorit novy ucet nebo upravit stavajici (zmena hesla a acess levelu)" />
+	<message id="functAccessLevel" text="2 - Zmena acess levelu" />
+	<message id="functDeleteAccount" text="3 - Odstranit ucet" />
+	<message id="functListAccount" text="4 - Seznam uctu a access levlu" />
+	<message id="functExit" text="5 - Odejit" />
 
-	<message id="inputChoice" text="Váš výbìr" />
-	<message id="inputUsername" text="Název úètu (login)" />
+	<message id="inputChoice" text="Vas vyber" />
+	<message id="inputUsername" text="Nazev uctu (login)" />
 	<message id="inputPassword" text="Heslo" />
 	<message id="inputAccessLevel" text="Access level" />
 
-	<message id="functListAccountChooser" text="Prosím vyberte si režim výpisu" />
-	<message id="functListAccountBanned" text="1 - Pouze zablokované (accessLevel &lt; 0)" />
-	<message id="functListAccountPrivileged" text="2 - GM úèet (accessLevel &gt; 0)" />
-	<message id="functListAccountRegular" text="3 - Obyèejný úèet (accessLevel = 0)" />
-	<message id="functListAccountAll" text="4 - Všechny" />
-	<message id="functListAccountDisplayed" text="Ukázat úèty: %d" />
+	<message id="functListAccountChooser" text="Prosim vyberte si rezim vypisu" />
+	<message id="functListAccountBanned" text="1 - Pouze zablokovane (accessLevel &lt; 0)" />
+	<message id="functListAccountPrivileged" text="2 - GM ucet (accessLevel &gt; 0)" />
+	<message id="functListAccountRegular" text="3 - Obycejny ucet (accessLevel = 0)" />
+	<message id="functListAccountAll" text="4 - Vsechny" />
+	<message id="functListAccountDisplayed" text="Ukazat ucty: %d" />
 
-	<message id="functAccessLevelUpdated" text="Úèet %s byl aktualizován" />
-	<message id="functAccessLevelNotExist" text="Úèet %s neexistuje" />
+	<message id="functAccessLevelUpdated" text="Ucet %s byl aktualizovan" />
+	<message id="functAccessLevelNotExist" text="Ucet %s neexistuje" />
 
-	<message id="functDeleteAccountConfirm" text="Jste si jistý, že chcete smazat tento úèet? A/N" />
-	<message id="functDeleteAccountAbort" text="Odstranìní zrušeno" />
-	<message id="functDeleteAccountCancel" text="Odstranìní zrušeno" />
-	<message id="functDeleteAccountChar" text="Odstranìní %s" />
-	<message id="functDeleteAccountClan" text="Odstranìní klanu %s" />
-	<message id="functDeleteAccountComplete" text="Úèet %s byl smazán" />
-	<message id="functDeleteAccountNotExist" text="Úèet %s neexistuje" />
+	<message id="functDeleteAccountConfirm" text="Jste si jisty, ze chcete smazat tento ucet? A/N" />
+	<message id="functDeleteAccountAbort" text="Odstraneni zruseno" />
+	<message id="functDeleteAccountCancel" text="Odstraneni zruseno" />
+	<message id="functDeleteAccountChar" text="Odstraneni %s" />
+	<message id="functDeleteAccountClan" text="Odstraneni klanu %s" />
+	<message id="functDeleteAccountComplete" text="Ucet %s byl smazan" />
+	<message id="functDeleteAccountNotExist" text="Ucet %s neexistuje" />
 </localization>

+ 0 - 2
L2J_DataPack_BETA/dist/sql/game/npcskills.sql

@@ -27222,7 +27222,6 @@ INSERT INTO `npcskills` VALUES
 (18866, 4415, 3), -- Weapon Type
 (18866, 4416, 4), -- Races
 (18866, 5465, 1), -- Earth Attacks
-(18866, 6429, 1), -- Cozy Mucus
 -- Abyss Weed
 (18867, 4408, 8), -- HP Modifiers
 (18867, 4409, 1), -- MP Modifiers
@@ -58987,7 +58986,6 @@ INSERT INTO `npcskills` VALUES
 (22774, 4449, 4), -- Greater Resist Two-handed Weapons
 (22774, 5465, 1), -- Earth Attacks
 (22774, 5601, 9), -- Short-Range Physical Attack Resistance
-(22774, 6425, 1), -- Demotivation Hex
 (22774, 6679, 1), -- Summoner's Strike
 -- Sel Mahum Drill Sergeant
 (22775, 4071, 5), -- Resist Archery

+ 9 - 25
L2J_DataPack_BETA/dist/sql/game/spawnlist.sql

@@ -28334,31 +28334,15 @@ INSERT INTO `spawnlist` VALUES
 ("oren28_2219_p01", 1, 20767, 74903, 80037, -3468, 0, 0, 63156, 40, 0, 0, 0),
 ("oren28_2219_p01", 1, 20767, 72394, 84815, -3360, 0, 0, 10096, 40, 0, 0, 0),
 -- Bloody Axe Elite
-("oren01_qm2220_01", 1, 20780, 74523, 91806, -3373, 0, 0, 24113, 30, 0, 0, 0),
-("oren01_qm2220_01", 1, 20780, 84550, 90991, -3538, 0, 0, 574, 30, 0, 0, 0),
-("oren01_qm2220_01", 1, 20780, 84162, 91989, -3538, 0, 0, 20786, 30, 0, 0, 0),
-("oren01_qm2220_01", 1, 20780, 83063, 92089, -3538, 0, 0, 28662, 30, 0, 0, 0),
-("oren01_qm2220_01", 1, 20780, 83441, 93405, -3463, 0, 0, 45903, 30, 0, 0, 0),
-("oren01_qm2220_01", 1, 20780, 81787, 93934, -3539, 0, 0, 26508, 30, 0, 0, 0),
-("oren01_qm2220_01", 1, 20780, 83814, 94520, -3461, 0, 0, 18723, 30, 0, 0, 0),
-("oren01_qm2220_01", 1, 20780, 86865, 94100, -3462, 0, 0, 48496, 30, 0, 0, 0),
-("oren01_qm2220_01", 1, 20780, 84453, 94853, -3447, 0, 0, 27575, 30, 0, 0, 0),
-("oren01_qm2220_01", 1, 20780, 87054, 95030, -3452, 0, 0, 25404, 30, 0, 0, 0),
-("oren01_qm2220_01", 1, 20780, 86257, 92523, -3355, 0, 0, 21144, 30, 0, 0, 0),
-("oren01_qm2220_01", 1, 20780, 86285, 91625, -3355, 0, 0, 47577, 30, 0, 0, 0),
-("oren01_qm2220_01", 1, 20780, 87404, 92510, -3355, 0, 0, 18821, 30, 0, 0, 0),
-("oren01_qm2220_01", 1, 20780, 79806, 77287, -3490, 0, 0, 34728, 30, 0, 0, 0),
-("oren01_qm2220_01", 1, 20780, 78531, 72947, -3493, 0, 0, 44092, 30, 0, 0, 0),
-("oren01_qm2220_01", 1, 20780, 78404, 74754, -3708, 0, 0, 0, 30, 0, 0, 0),
-("oren01_qm2220_01", 1, 20780, 79906, 78112, -3764, 0, 0, 0, 30, 0, 0, 0),
-("oren01_qm2220_01", 1, 20780, 79906, 78824, -3764, 0, 0, 0, 30, 0, 0, 0),
-("oren01_qm2220_01", 1, 20780, 80108, 78468, -3764, 0, 0, 0, 30, 0, 0, 0),
-("oren01_qm2220_01", 1, 20780, 80208, 78290, -3764, 0, 0, 0, 30, 0, 0, 0),
-("oren01_qm2220_01", 1, 20780, 80510, 78468, -3764, 0, 0, 0, 30, 0, 0, 0),
-("oren01_qm2220_01", 1, 20780, 83300, 82392, -3564, 0, 0, 0, 30, 0, 0, 0),
-("oren01_qm2220_01", 1, 20780, 83197, 86728, -3247, 0, 0, 49829, 30, 0, 0, 0),
-("oren01_qm2220_01", 1, 20780, 83328, 86828, -3528, 0, 0, 0, 30, 0, 0, 0),
-("oren01_qm2220_01", 1, 20780, 84127, 85787, -3118, 0, 0, 56084, 30, 0, 0, 0),
+("oren21_qm2220_05", 1, 20780, 83021, 91920, -3481, 0, 0, 43462, 30, 5, 0, 0),
+("oren21_qm2220_05", 1, 20780, 83767, 91980, -3541, 0, 0, 26127, 30, 5, 0, 0),
+("oren21_qm2220_05", 1, 20780, 84449, 91167, -3532, 0, 0, 48710, 30, 5, 0, 0),
+("oren21_qm2220_05", 1, 20780, 83395, 91302, -3406, 0, 0, 33521, 30, 5, 0, 0),
+("oren21_qm2220_04", 1, 20780, 83419, 87630, -3323, 0, 0, 34921, 30, 5, 0, 0),
+("oren21_qm2220_04", 1, 20780, 83392, 86801, -3226, 0, 0, 45417, 30, 5, 0, 0),
+("oren21_qm2220_04", 1, 20780, 84831, 87958, -3238, 0, 0, 61740, 30, 5, 0, 0),
+("oren21_qm2220_04", 1, 20780, 84308, 89510, -3379, 0, 0, 27811, 30, 5, 0, 0),
+("oren21_qm2220_04", 1, 20780, 85294, 88944, -3303, 0, 0, 54807, 30, 5, 0, 0),
 -- Tanta Lizardman Scout
 ("plains_of_lizardmen", 1, 22768, 91309, 84191, -3640, 0, 0, 34751, 60, 0, 0, 0),
 ("plains_of_lizardmen", 1, 22768, 91496, 86119, -3584, 0, 0, 15906, 60, 0, 0, 0),