Sync with L2jServer HighFive Feb 15th 2015.

This commit is contained in:
mobius
2015-02-15 23:48:35 +00:00
parent f2d6aedabe
commit 06c765ea63
45 changed files with 474 additions and 843 deletions

View File

@@ -28,7 +28,6 @@ import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.ai.CtrlIntention;
import com.l2jserver.gameserver.cache.HtmCache;
import com.l2jserver.gameserver.data.xml.impl.DoorData;
import com.l2jserver.gameserver.data.xml.impl.NpcData;
import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.instancemanager.GrandBossManager;
import com.l2jserver.gameserver.instancemanager.ZoneManager;
@@ -41,7 +40,6 @@ import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2DoorInstance;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
import com.l2jserver.gameserver.model.effects.L2EffectType;
import com.l2jserver.gameserver.model.holders.SkillHolder;
import com.l2jserver.gameserver.model.skills.Skill;
@@ -117,15 +115,11 @@ public final class Beleth extends AbstractNpcAI
{
try
{
L2NpcTemplate template = NpcData.getInstance().getTemplate(npcId);
if (template != null)
{
L2Spawn spawn = new L2Spawn(template);
spawn.setInstanceId(loc.getInstanceId());
spawn.setLocation(loc);
spawn.setAmount(spawn.getAmount() + 1);
return spawn.doSpawn();
}
final L2Spawn spawn = new L2Spawn(npcId);
spawn.setInstanceId(loc.getInstanceId());
spawn.setLocation(loc);
spawn.setAmount(spawn.getAmount() + 1);
return spawn.doSpawn();
}
catch (Exception ignored)
{

View File

@@ -18,8 +18,6 @@
*/
package ai.npc;
import java.util.logging.Logger;
import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Npc;
@@ -38,8 +36,6 @@ import com.l2jserver.gameserver.util.Broadcast;
*/
public abstract class AbstractNpcAI extends Quest
{
public final Logger _log = Logger.getLogger(getClass().getSimpleName());
public AbstractNpcAI(String name, String descr)
{
super(-1, name, descr);

View File

@@ -30,7 +30,6 @@ import org.w3c.dom.Node;
import com.l2jserver.gameserver.GeoData;
import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.data.xml.impl.NpcData;
import com.l2jserver.gameserver.model.L2Spawn;
import com.l2jserver.gameserver.model.L2Territory;
import com.l2jserver.gameserver.model.Location;
@@ -227,7 +226,7 @@ public class TarBeetleSpawn implements IXmlReader
final Location location = _zones.get(Rnd.get(_zones.size())).getRandomPoint();
if (location != null)
{
final L2Spawn spawn = new L2Spawn(NpcData.getInstance().getTemplate(18804));
final L2Spawn spawn = new L2Spawn(18804);
spawn.setHeading(Rnd.get(65535));
spawn.setX(location.getX());
spawn.setY(location.getY());

View File

@@ -24,7 +24,6 @@ import java.util.Map.Entry;
import com.l2jserver.gameserver.cache.HtmCache;
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
import com.l2jserver.gameserver.data.xml.impl.NpcData;
import com.l2jserver.gameserver.model.L2Clan;
import com.l2jserver.gameserver.model.L2Spawn;
import com.l2jserver.gameserver.model.Location;
@@ -65,7 +64,7 @@ public final class FortressOfResistance extends ClanHallSiegeEngine
try
{
_nurka = new L2Spawn(NpcData.getInstance().getTemplate(BLOODY_LORD_NURKA));
_nurka = new L2Spawn(BLOODY_LORD_NURKA);
_nurka.setAmount(1);
_nurka.setRespawnDelay(10800);
// @formatter:off

View File

@@ -35,7 +35,6 @@ import com.l2jserver.L2DatabaseFactory;
import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.cache.HtmCache;
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
import com.l2jserver.gameserver.data.xml.impl.NpcData;
import com.l2jserver.gameserver.datatables.SpawnTable;
import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.instancemanager.CHSiegeManager;
@@ -715,7 +714,7 @@ public final class RainbowSpringsChateau extends ClanHallSiegeEngine
{
try
{
_gourds[i] = new L2Spawn(NpcData.getInstance().getTemplate(GOURDS[i]));
_gourds[i] = new L2Spawn(GOURDS[i]);
_gourds[i].setX(ARENAS[i].getX() + 150);
_gourds[i].setY(ARENAS[i].getY() + 150);
_gourds[i].setZ(ARENAS[i].getZ());

View File

@@ -32,7 +32,6 @@ import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.ai.CtrlIntention;
import com.l2jserver.gameserver.ai.L2SpecialSiegeGuardAI;
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
import com.l2jserver.gameserver.data.xml.impl.NpcData;
import com.l2jserver.gameserver.enums.SiegeClanType;
import com.l2jserver.gameserver.model.L2Clan;
import com.l2jserver.gameserver.model.L2ClanMember;
@@ -43,7 +42,6 @@ import com.l2jserver.gameserver.model.Location;
import com.l2jserver.gameserver.model.TeleportWhereType;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
import com.l2jserver.gameserver.model.entity.Siegable;
import com.l2jserver.gameserver.model.entity.clanhall.ClanHallSiegeEngine;
import com.l2jserver.gameserver.model.entity.clanhall.SiegeStatus;
@@ -629,20 +627,6 @@ public abstract class FlagWar extends ClanHallSiegeEngine
{
try
{
L2NpcTemplate mahumTemplate = NpcData.getInstance().getTemplate(data.npc);
L2NpcTemplate flagTemplate = NpcData.getInstance().getTemplate(data.flag);
if (flagTemplate == null)
{
_log.warning(getName() + ": Flag L2NpcTemplate[" + data.flag + "] does not exist!");
throw new NullPointerException();
}
else if (mahumTemplate == null)
{
_log.warning(getName() + ": Ally L2NpcTemplate[" + data.npc + "] does not exist!");
throw new NullPointerException();
}
int index = 0;
if (_firstPhase)
{
@@ -654,13 +638,13 @@ public abstract class FlagWar extends ClanHallSiegeEngine
}
Location loc = FLAG_COORDS[index];
data.flagInstance = new L2Spawn(flagTemplate);
data.flagInstance = new L2Spawn(data.flag);
data.flagInstance.setLocation(loc);
data.flagInstance.setRespawnDelay(10000);
data.flagInstance.setAmount(1);
data.flagInstance.init();
data.warrior = new L2Spawn(mahumTemplate);
data.warrior = new L2Spawn(data.npc);
data.warrior.setLocation(loc);
data.warrior.setRespawnDelay(10000);
data.warrior.setAmount(1);

View File

@@ -396,23 +396,21 @@ public class AdminSpawn implements IAdminCommandHandler
target = activeChar;
}
L2NpcTemplate template1;
L2NpcTemplate template;
if (monsterId.matches("[0-9]*"))
{
// First parameter was an ID number
int monsterTemplate = Integer.parseInt(monsterId);
template1 = NpcData.getInstance().getTemplate(monsterTemplate);
template = NpcData.getInstance().getTemplate(Integer.parseInt(monsterId));
}
else
{
// First parameter wasn't just numbers so go by name not ID
monsterId = monsterId.replace('_', ' ');
template1 = NpcData.getInstance().getTemplateByName(monsterId);
template = NpcData.getInstance().getTemplateByName(monsterId.replace('_', ' '));
}
try
{
L2Spawn spawn = new L2Spawn(template1);
final L2Spawn spawn = new L2Spawn(template);
if (Config.SAVE_GMSPAWN_ON_CUSTOM)
{
spawn.setCustom(true);
@@ -435,15 +433,15 @@ public class AdminSpawn implements IAdminCommandHandler
// TODO add checks for GrandBossSpawnManager
if (RaidBossSpawnManager.getInstance().isDefined(spawn.getId()))
{
activeChar.sendMessage("You cannot spawn another instance of " + template1.getName() + ".");
activeChar.sendMessage("You cannot spawn another instance of " + template.getName() + ".");
}
else
{
if (RaidBossSpawnManager.getInstance().getValidTemplate(spawn.getId()) != null)
if (template.isType("L2RaidBoss"))
{
spawn.setRespawnMinDelay(43200);
spawn.setRespawnMaxDelay(129600);
RaidBossSpawnManager.getInstance().addNewSpawn(spawn, 0, template1.getBaseHpMax(), template1.getBaseMpMax(), permanent);
RaidBossSpawnManager.getInstance().addNewSpawn(spawn, 0, template.getBaseHpMax(), template.getBaseMpMax(), permanent);
}
else
{
@@ -454,7 +452,7 @@ public class AdminSpawn implements IAdminCommandHandler
{
spawn.stopRespawn();
}
activeChar.sendMessage("Created " + template1.getName() + " on " + target.getObjectId());
activeChar.sendMessage("Created " + template.getName() + " on " + target.getObjectId());
}
}
catch (Exception e)

View File

@@ -28,7 +28,6 @@ import java.util.logging.Logger;
import com.l2jserver.Config;
import com.l2jserver.L2DatabaseFactory;
import com.l2jserver.gameserver.ai.CtrlIntention;
import com.l2jserver.gameserver.data.xml.impl.NpcData;
import com.l2jserver.gameserver.datatables.SpawnTable;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.instancemanager.MapRegionManager;
@@ -41,7 +40,6 @@ import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2GrandBossInstance;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.actor.instance.L2RaidBossInstance;
import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jserver.util.StringUtil;
@@ -544,15 +542,6 @@ public class AdminTeleport implements IAdminCommandHandler
{
L2Npc target = (L2Npc) obj;
int monsterTemplate = target.getTemplate().getId();
L2NpcTemplate template1 = NpcData.getInstance().getTemplate(monsterTemplate);
if (template1 == null)
{
activeChar.sendMessage("Incorrect monster template.");
_log.warning("ERROR: NPC " + target.getObjectId() + " has a 'null' template.");
return;
}
L2Spawn spawn = target.getSpawn();
if (spawn == null)
{
@@ -568,9 +557,7 @@ public class AdminTeleport implements IAdminCommandHandler
try
{
// L2MonsterInstance mob = new L2MonsterInstance(monsterTemplate, template1);
spawn = new L2Spawn(template1);
spawn = new L2Spawn(target.getTemplate().getId());
if (Config.SAVE_GMSPAWN_ON_CUSTOM)
{
spawn.setCustom(true);
@@ -592,7 +579,7 @@ public class AdminTeleport implements IAdminCommandHandler
SpawnTable.getInstance().addNewSpawn(spawn, true);
spawn.init();
activeChar.sendMessage("Created " + template1.getName() + " on " + target.getObjectId() + ".");
activeChar.sendMessage("Created " + target.getTemplate().getName() + " on " + target.getObjectId() + ".");
if (Config.DEBUG)
{
@@ -621,8 +608,7 @@ public class AdminTeleport implements IAdminCommandHandler
RaidBossSpawnManager.getInstance().deleteSpawn(spawn, true);
try
{
L2NpcTemplate template = NpcData.getInstance().getTemplate(target.getId());
L2Spawn spawnDat = new L2Spawn(template);
final L2Spawn spawnDat = new L2Spawn(target.getId());
if (Config.SAVE_GMSPAWN_ON_CUSTOM)
{
spawn.setCustom(true);

View File

@@ -98,7 +98,7 @@ public class QuestLink implements IBypassHandler
for (Quest quest : quests)
{
final QuestState qs = player.getQuestState(quest.getScriptName());
final QuestState qs = player.getQuestState(quest.getName());
if ((qs == null) || qs.isCreated())
{
state = quest.isCustomQuest() ? "" : "01";

View File

@@ -145,7 +145,7 @@ public final class SummonNpc extends AbstractEffect
L2Spawn spawn;
try
{
spawn = new L2Spawn(npcTemplate);
spawn = new L2Spawn(_npcId);
}
catch (Exception e)
{

View File

@@ -28,11 +28,9 @@ import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import com.l2jserver.gameserver.data.xml.IXmlReader;
import com.l2jserver.gameserver.data.xml.impl.NpcData;
import com.l2jserver.gameserver.datatables.SpawnTable;
import com.l2jserver.gameserver.model.L2Spawn;
import com.l2jserver.gameserver.model.Location;
import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
/**
* Hellbound Spawns parser.
@@ -88,13 +86,6 @@ public final class HellboundSpawns implements IXmlReader
}
final int npcId = Integer.parseInt(id.getNodeValue());
final L2NpcTemplate template = NpcData.getInstance().getTemplate(npcId);
if (template == null)
{
LOGGER.warning(getClass().getSimpleName() + ": Missing NPC template for ID: " + npcId + "!");
return;
}
Location loc = null;
int delay = 0;
int randomInterval = 0;
@@ -129,7 +120,7 @@ public final class HellboundSpawns implements IXmlReader
try
{
final L2Spawn spawn = new L2Spawn(template);
final L2Spawn spawn = new L2Spawn(npcId);
spawn.setAmount(1);
if (loc == null)
{

View File

@@ -19,10 +19,8 @@
package instances;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.logging.Logger;
import ai.npc.AbstractNpcAI;
@@ -46,8 +44,6 @@ import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
*/
public abstract class AbstractInstance extends AbstractNpcAI
{
public final Logger _log = Logger.getLogger(getClass().getSimpleName());
public AbstractInstance(String name, String desc)
{
super(name, desc);
@@ -181,7 +177,7 @@ public abstract class AbstractInstance extends AbstractNpcAI
protected void handleRemoveBuffs(InstanceWorld world)
{
for (Integer objId : world.getAllowed())
for (int objId : world.getAllowed())
{
final L2PcInstance player = L2World.getInstance().getPlayer(objId);
@@ -201,8 +197,8 @@ public abstract class AbstractInstance extends AbstractNpcAI
/**
* Spawns group of instance NPC's
* @param groupName - name of group from XML definition to spawn
* @param instanceId - ID of instance
* @param groupName the name of group from XML definition to spawn
* @param instanceId the instance ID
* @return list of spawned NPC's
*/
protected List<L2Npc> spawnGroup(String groupName, int instanceId)
@@ -211,9 +207,9 @@ public abstract class AbstractInstance extends AbstractNpcAI
}
/**
* Save Reenter time for every player in InstanceWorld.
* @param world - the InstanceWorld
* @param time - Time in miliseconds
* Sets reenter time for every player in the instance.
* @param world the instance
* @param time the time in milliseconds
*/
protected void setReenterTime(InstanceWorld world, long time)
{
@@ -236,8 +232,6 @@ public abstract class AbstractInstance extends AbstractNpcAI
private void handleRemoveBuffs(L2PcInstance player, InstanceWorld world)
{
final Instance inst = InstanceManager.getInstance().getInstance(world.getInstanceId());
final List<BuffInfo> buffToRemove = new ArrayList<>();
switch (inst.getRemoveBuffType())
{
case ALL:
@@ -259,7 +253,7 @@ public abstract class AbstractInstance extends AbstractNpcAI
{
if (!inst.getBuffExceptionList().contains(info.getSkill().getId()))
{
buffToRemove.add(info);
info.getEffected().getEffectList().stopSkillEffects(true, info.getSkill());
}
}
@@ -269,7 +263,7 @@ public abstract class AbstractInstance extends AbstractNpcAI
{
if (!inst.getBuffExceptionList().contains(info.getSkill().getId()))
{
buffToRemove.add(info);
info.getEffected().getEffectList().stopSkillEffects(true, info.getSkill());
}
}
}
@@ -281,7 +275,7 @@ public abstract class AbstractInstance extends AbstractNpcAI
{
if (!inst.getBuffExceptionList().contains(info.getSkill().getId()))
{
buffToRemove.add(info);
info.getEffected().getEffectList().stopSkillEffects(true, info.getSkill());
}
}
}
@@ -293,7 +287,7 @@ public abstract class AbstractInstance extends AbstractNpcAI
{
if (inst.getBuffExceptionList().contains(info.getSkill().getId()))
{
buffToRemove.add(info);
info.getEffected().getEffectList().stopSkillEffects(true, info.getSkill());
}
}
@@ -303,7 +297,7 @@ public abstract class AbstractInstance extends AbstractNpcAI
{
if (inst.getBuffExceptionList().contains(info.getSkill().getId()))
{
buffToRemove.add(info);
info.getEffected().getEffectList().stopSkillEffects(true, info.getSkill());
}
}
}
@@ -315,17 +309,12 @@ public abstract class AbstractInstance extends AbstractNpcAI
{
if (inst.getBuffExceptionList().contains(info.getSkill().getId()))
{
buffToRemove.add(info);
info.getEffected().getEffectList().stopSkillEffects(true, info.getSkill());
}
}
}
break;
}
}
for (BuffInfo info : buffToRemove)
{
info.getEffected().getEffectList().stopSkillEffects(true, info.getSkill());
}
}
}

View File

@@ -190,7 +190,7 @@ public final class Q00501_ProofOfClanAlliance extends Quest
{
if (npc.getSummonedNpcCount() < 4)
{
takeItems(player, ADENA_TO_RESTART_GAME, Inventory.ADENA_ID);
takeItems(player, Inventory.ADENA_ID, ADENA_TO_RESTART_GAME);
}
htmltext = event;
}

View File

@@ -352,7 +352,6 @@
<set name="price" val="200" />
<set name="handler" val="SoulShots" />
<set name="item_skill" val="9193-1" />
<set name="commissionItemType" val="SOULSHOT" />
</item>
<item id="17755" name="Human Male Wig - A" additionalName="" type="Armor">
<set name="icon" val="BranchSys.icon.br_plastic_hair_f_i00" />

View File

@@ -300,7 +300,6 @@
<set name="is_stackable" val="true" />
<set name="handler" val="SpiritShot" />
<set name="item_skill" val="9194-1" />
<set name="commissionItemType" val="SPIRITSHOT" />
</item>
<item id="19442" name="Blessed Spiritshot (R-grade)" additionalName="" type="EtcItem">
<!-- The power of a higher-level spirit is bestowed upon a weapon, temporarily increasing its M. Atk. significantly. Can be used with an R-grade weapon. -->
@@ -314,7 +313,6 @@
<set name="is_stackable" val="true" />
<set name="handler" val="BlessedSpiritShot" />
<set name="item_skill" val="9195-1" />
<set name="commissionItemType" val="SPIRITSHOT" />
</item>
<item id="19443" name="Orichalcum Bolt" additionalName="" type="EtcItem">
<!-- Bolt made of Orichalcum. Used as bolts for R-grade Crossbows. -->

View File

@@ -100,7 +100,6 @@
<set name="is_stackable" val="true" />
<set name="handler" val="BlessedSpiritShot" />
<set name="item_skill" val="9195-1" />
<set name="commissionItemType" val="SPIRITSHOT" />
</item>
<item id="34617" name="Player Commendation - Agathion's Gift" additionalName="PC-exclusive" type="EtcItem">
<!-- When used, you can receive an Agathion's gift. -->

View File

@@ -1410,21 +1410,24 @@
<set name="hitTime" val="20000" />
</skill>
<skill id="9193" levels="1" name="Soulshot (R-grade)">
<!-- AUTO GENERATED SKILL -->
<set name="icon" val="icon.skill0000" />
<set name="isMagic" val="2" /> <!-- Static Skill -->
<set name="magicLvl" val="1" />
<set name="operateType" val="ACTIVE_INSTANT" />
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
<set name="targetType" val="SELF" />
</skill>
<skill id="9194" levels="1" name="Spiritshot (R-grade)">
<!-- AUTO GENERATED SKILL -->
<set name="icon" val="icon.skill0000" />
<set name="isMagic" val="2" /> <!-- Static Skill -->
<set name="magicLvl" val="1" />
<set name="operateType" val="ACTIVE_INSTANT" />
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
<set name="targetType" val="SELF" />
</skill>
<skill id="9195" levels="1" name="Blessed Spiritshot (R-grade)">
<!-- AUTO GENERATED SKILL -->
<set name="icon" val="icon.skill0000" />
<set name="isMagic" val="2" /> <!-- Static Skill -->
<set name="magicLvl" val="1" />
<set name="operateType" val="ACTIVE_INSTANT" />
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
<set name="targetType" val="SELF" />
</skill>
<skill id="9196" levels="1" name="Blessed Scroll: Enchant Armor (R-grade)">