diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/EffectMasterHandler.java index 86c8ca1e7e122e1ba209de4a220b6c33cbf8412d..182dcd22149754eb06f1033b0faba5c6f06a4641 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -97,11 +97,11 @@ public final class EffectMasterHandler GiveSp.class, Grow.class, Harvesting.class, + HeadquarterCreate.class, Heal.class, HealOverTime.class, HealPercent.class, Hide.class, - HolythingPossess.class, HpByLevel.class, HpDrain.class, ImmobileBuff.class, @@ -123,6 +123,8 @@ public final class EffectMasterHandler Unsummon.class, OpenCommonRecipeBook.class, OpenDwarfRecipeBook.class, + OutpostCreate.class, + OutpostDestroy.class, Paralyze.class, Passive.class, Petrification.class, @@ -161,6 +163,10 @@ public final class EffectMasterHandler SummonPet.class, SummonTrap.class, Sweeper.class, + TakeCastle.class, + TakeFort.class, + TakeFortStart.class, + TakeTerritoryFlag.class, TargetCancel.class, TargetMe.class, TargetMeProbability.class, diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/MasterHandler.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/MasterHandler.java index d9447a3df136f3e8efb0a457125c252a84296a0e..83669013731502ae88fd464b904281add52c46e4 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/MasterHandler.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/MasterHandler.java @@ -211,7 +211,6 @@ import handlers.skillhandlers.Fishing; import handlers.skillhandlers.FishingSkill; import handlers.skillhandlers.NornilsPower; import handlers.skillhandlers.Sow; -import handlers.skillhandlers.TakeFort; import handlers.skillhandlers.Trap; import handlers.skillhandlers.Unlock; import handlers.targethandlers.Area; @@ -503,7 +502,6 @@ public class MasterHandler FishingSkill.class, NornilsPower.class, Sow.class, - TakeFort.class, Trap.class, Unlock.class, }, diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminFortSiege.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminFortSiege.java index c03fdea0bda62b8b90fd6adc8056e1d1bf00b276..c2f73d9f5d00039b6a902dc21ae79fa4977d40e6 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminFortSiege.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminFortSiege.java @@ -114,7 +114,7 @@ public class AdminFortSiege implements IAdminCommandHandler } else { - fort.setOwner(player.getClan(), false); + fort.endOfSiege(player.getClan()); } } else if (command.equalsIgnoreCase("admin_removefort")) diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Grow.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Grow.java index 11c8337d92741f2b4b18c96c91e50190465ad634..8115d37945e2dc5abd1b2182b5d1ed096eff659f 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Grow.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Grow.java @@ -47,8 +47,7 @@ public final class Grow extends AbstractEffect if (info.getEffected().isNpc()) { L2Npc npc = (L2Npc) info.getEffected(); - // TODO: Uncomment line when fix for mobs falling underground is found - // npc.setCollisionHeight(npc.getTemplate().collisionHeight); + npc.setCollisionHeight(npc.getTemplate().getCollisionHeight()); npc.setCollisionRadius(npc.getTemplate().getfCollisionRadius()); } } @@ -59,9 +58,8 @@ public final class Grow extends AbstractEffect if (info.getEffected().isNpc()) { L2Npc npc = (L2Npc) info.getEffected(); - // TODO: Uncomment line when fix for mobs falling underground is found - // npc.setCollisionHeight((int) (npc.getCollisionHeight() * 1.24)); - npc.setCollisionRadius((npc.getCollisionRadius() * 1.19)); + npc.setCollisionHeight(npc.getTemplate().getCollisionHeightGrown()); + npc.setCollisionRadius(npc.getTemplate().getCollisionRadiusGrown()); } } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HeadquarterCreate.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HeadquarterCreate.java new file mode 100644 index 0000000000000000000000000000000000000000..921e86eb25ff96f235a157f9c8d501787cf9328d --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HeadquarterCreate.java @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2004-2014 L2J DataPack + * + * This file is part of L2J DataPack. + * + * L2J DataPack is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * L2J DataPack is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +package handlers.effecthandlers; + +import com.l2jserver.gameserver.datatables.NpcData; +import com.l2jserver.gameserver.idfactory.IdFactory; +import com.l2jserver.gameserver.instancemanager.CHSiegeManager; +import com.l2jserver.gameserver.instancemanager.CastleManager; +import com.l2jserver.gameserver.instancemanager.FortManager; +import com.l2jserver.gameserver.model.StatsSet; +import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; +import com.l2jserver.gameserver.model.actor.instance.L2SiegeFlagInstance; +import com.l2jserver.gameserver.model.conditions.Condition; +import com.l2jserver.gameserver.model.effects.AbstractEffect; +import com.l2jserver.gameserver.model.entity.Castle; +import com.l2jserver.gameserver.model.entity.Fort; +import com.l2jserver.gameserver.model.entity.clanhall.SiegableHall; +import com.l2jserver.gameserver.model.skills.BuffInfo; + +/** + * Headquarter Create effect implementation. + * @author Adry_85 + */ +public class HeadquarterCreate extends AbstractEffect +{ + private static final int HQ_NPC_ID = 35062; + private static boolean _isAdvanced; + + public HeadquarterCreate(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params) + { + super(attachCond, applyCond, set, params); + _isAdvanced = hasParameters() ? getParameters().getBoolean("isAdvanced", false) : false; + } + + @Override + public boolean isInstant() + { + return true; + } + + @Override + public void onStart(BuffInfo info) + { + final L2PcInstance player = info.getEffector().getActingPlayer(); + if ((player.getClan() == null) || (player.getClan().getLeaderId() != player.getObjectId())) + { + return; + } + + final L2SiegeFlagInstance flag = new L2SiegeFlagInstance(player, IdFactory.getInstance().getNextId(), NpcData.getInstance().getTemplate(HQ_NPC_ID), _isAdvanced, false); + flag.setTitle(player.getClan().getName()); + flag.setCurrentHpMp(flag.getMaxHp(), flag.getMaxMp()); + flag.setHeading(player.getHeading()); + flag.spawnMe(player.getX(), player.getY(), player.getZ() + 50); + final Castle castle = CastleManager.getInstance().getCastle(player); + final Fort fort = FortManager.getInstance().getFort(player); + final SiegableHall hall = CHSiegeManager.getInstance().getNearbyClanHall(player); + if (castle != null) + { + castle.getSiege().getFlag(player.getClan()).add(flag); + } + else if (fort != null) + { + fort.getSiege().getFlag(player.getClan()).add(flag); + } + else + { + hall.getSiege().getFlag(player.getClan()).add(flag); + } + } +} diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/OutpostCreate.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/OutpostCreate.java new file mode 100644 index 0000000000000000000000000000000000000000..f83b3d615eba475c29905ac92794defe9abb9791 --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/OutpostCreate.java @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2004-2014 L2J DataPack + * + * This file is part of L2J DataPack. + * + * L2J DataPack is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * L2J DataPack is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +package handlers.effecthandlers; + +import com.l2jserver.gameserver.datatables.NpcData; +import com.l2jserver.gameserver.idfactory.IdFactory; +import com.l2jserver.gameserver.instancemanager.TerritoryWarManager; +import com.l2jserver.gameserver.model.StatsSet; +import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; +import com.l2jserver.gameserver.model.actor.instance.L2SiegeFlagInstance; +import com.l2jserver.gameserver.model.conditions.Condition; +import com.l2jserver.gameserver.model.effects.AbstractEffect; +import com.l2jserver.gameserver.model.skills.BuffInfo; + +/** + * Outpost Create effect implementation. + * @author UnAfraid + */ +public class OutpostCreate extends AbstractEffect +{ + private static final int HQ_NPC_ID = 36590; + + public OutpostCreate(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params) + { + super(attachCond, applyCond, set, params); + } + + @Override + public boolean isInstant() + { + return true; + } + + @Override + public void onStart(BuffInfo info) + { + final L2PcInstance player = info.getEffector().getActingPlayer(); + if ((player.getClan() == null) || (player.getClan().getLeaderId() != player.getObjectId())) + { + return; + } + + if (TerritoryWarManager.getInstance().isTWInProgress()) + { + // Spawn a new flag + final L2SiegeFlagInstance flag = new L2SiegeFlagInstance(player, IdFactory.getInstance().getNextId(), NpcData.getInstance().getTemplate(HQ_NPC_ID), true, true); + flag.setTitle(player.getClan().getName()); + flag.setCurrentHpMp(flag.getMaxHp(), flag.getMaxMp()); + flag.setHeading(player.getHeading()); + flag.spawnMe(player.getX(), player.getY(), player.getZ() + 50); + TerritoryWarManager.getInstance().setHQForClan(player.getClan(), flag); + } + } +} diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/OutpostDestroy.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/OutpostDestroy.java new file mode 100644 index 0000000000000000000000000000000000000000..33a89763e838a43f7d237ab78e2fd291532a42d4 --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/OutpostDestroy.java @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2004-2014 L2J DataPack + * + * This file is part of L2J DataPack. + * + * L2J DataPack is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * L2J DataPack is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +package handlers.effecthandlers; + +import com.l2jserver.gameserver.instancemanager.TerritoryWarManager; +import com.l2jserver.gameserver.model.StatsSet; +import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; +import com.l2jserver.gameserver.model.actor.instance.L2SiegeFlagInstance; +import com.l2jserver.gameserver.model.conditions.Condition; +import com.l2jserver.gameserver.model.effects.AbstractEffect; +import com.l2jserver.gameserver.model.skills.BuffInfo; + +/** + * Outpost Destroy effect implementation. + * @author UnAfraid + */ +public class OutpostDestroy extends AbstractEffect +{ + public OutpostDestroy(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params) + { + super(attachCond, applyCond, set, params); + } + + @Override + public boolean isInstant() + { + return true; + } + + @Override + public void onStart(BuffInfo info) + { + final L2PcInstance player = info.getEffector().getActingPlayer(); + if ((player.getClan() == null) || (player.getClan().getLeaderId() != player.getObjectId())) + { + return; + } + + if (TerritoryWarManager.getInstance().isTWInProgress()) + { + final L2SiegeFlagInstance flag = TerritoryWarManager.getInstance().getHQForClan(player.getClan()); + if (flag != null) + { + flag.deleteMe(); + } + TerritoryWarManager.getInstance().setHQForClan(player.getClan(), null); + } + } +} diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HolythingPossess.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/TakeCastle.java similarity index 87% rename from L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HolythingPossess.java rename to L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/TakeCastle.java index 0b60939a7eabf5dc9bfc7de8522806d0c7e31f91..da7e252a00d71928ac4028610fa650760199ae66 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HolythingPossess.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/TakeCastle.java @@ -28,12 +28,12 @@ import com.l2jserver.gameserver.network.SystemMessageId; import com.l2jserver.gameserver.network.serverpackets.SystemMessage; /** - * Holything Possess effect implementation. + * Take Castle effect implementation. * @author Adry_85 */ -public final class HolythingPossess extends AbstractEffect +public final class TakeCastle extends AbstractEffect { - public HolythingPossess(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params) + public TakeCastle(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params) { super(attachCond, applyCond, set, params); } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/TakeFort.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/TakeFort.java new file mode 100644 index 0000000000000000000000000000000000000000..28139fda48b5c4b192291004db997911bae0ec12 --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/TakeFort.java @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2004-2014 L2J DataPack + * + * This file is part of L2J DataPack. + * + * L2J DataPack is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * L2J DataPack is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +package handlers.effecthandlers; + +import com.l2jserver.gameserver.instancemanager.FortManager; +import com.l2jserver.gameserver.model.StatsSet; +import com.l2jserver.gameserver.model.conditions.Condition; +import com.l2jserver.gameserver.model.effects.AbstractEffect; +import com.l2jserver.gameserver.model.entity.Fort; +import com.l2jserver.gameserver.model.skills.BuffInfo; + +/** + * Take Fort effect implementation. + * @author Adry_85 + */ +public final class TakeFort extends AbstractEffect +{ + public TakeFort(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params) + { + super(attachCond, applyCond, set, params); + } + + @Override + public boolean isInstant() + { + return true; + } + + @Override + public void onStart(BuffInfo info) + { + if (!info.getEffector().isPlayer()) + { + return; + } + + final Fort fort = FortManager.getInstance().getFort(info.getEffector().getActingPlayer()); + if (fort != null) + { + fort.endOfSiege(info.getEffector().getActingPlayer().getClan()); + } + } +} diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/TakeFortStart.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/TakeFortStart.java new file mode 100644 index 0000000000000000000000000000000000000000..e95f45e3c740a4da5cc4206b2f836cf21c56bfe7 --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/TakeFortStart.java @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2004-2014 L2J DataPack + * + * This file is part of L2J DataPack. + * + * L2J DataPack is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * L2J DataPack is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +package handlers.effecthandlers; + +import com.l2jserver.gameserver.instancemanager.FortManager; +import com.l2jserver.gameserver.model.L2Clan; +import com.l2jserver.gameserver.model.StatsSet; +import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; +import com.l2jserver.gameserver.model.conditions.Condition; +import com.l2jserver.gameserver.model.effects.AbstractEffect; +import com.l2jserver.gameserver.model.entity.Fort; +import com.l2jserver.gameserver.model.skills.BuffInfo; +import com.l2jserver.gameserver.network.SystemMessageId; +import com.l2jserver.gameserver.network.serverpackets.SystemMessage; + +/** + * Take Fort Start effect implementation. + * @author UnAfraid + */ +public class TakeFortStart extends AbstractEffect +{ + public TakeFortStart(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params) + { + super(attachCond, applyCond, set, params); + } + + @Override + public boolean isInstant() + { + return true; + } + + @Override + public void onStart(BuffInfo info) + { + super.onStart(info); + + if (info.getEffector().isPlayer()) + { + final L2PcInstance player = info.getEffector().getActingPlayer(); + final Fort fort = FortManager.getInstance().getFort(player); + final L2Clan clan = player.getClan(); + if ((fort != null) && (clan != null)) + { + fort.getSiege().announceToPlayer(SystemMessage.getSystemMessage(SystemMessageId.S1_TRYING_RAISE_FLAG), clan.getName()); + } + } + } +} diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/TakeTerritoryFlag.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/TakeTerritoryFlag.java new file mode 100644 index 0000000000000000000000000000000000000000..569bdb0497043427d61bee62db6cd11a6b37bb3d --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/TakeTerritoryFlag.java @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2004-2014 L2J DataPack + * + * This file is part of L2J DataPack. + * + * L2J DataPack is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * L2J DataPack is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +package handlers.effecthandlers; + +import com.l2jserver.gameserver.datatables.NpcData; +import com.l2jserver.gameserver.idfactory.IdFactory; +import com.l2jserver.gameserver.instancemanager.TerritoryWarManager; +import com.l2jserver.gameserver.model.StatsSet; +import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; +import com.l2jserver.gameserver.model.actor.instance.L2SiegeFlagInstance; +import com.l2jserver.gameserver.model.conditions.Condition; +import com.l2jserver.gameserver.model.effects.AbstractEffect; +import com.l2jserver.gameserver.model.skills.BuffInfo; + +/** + * Take Territory Flag effect implementation. + * @author UnAfraid + */ +public class TakeTerritoryFlag extends AbstractEffect +{ + private static final int FLAG_NPC_ID = 35062; + + public TakeTerritoryFlag(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params) + { + super(attachCond, applyCond, set, params); + } + + @Override + public boolean isInstant() + { + return true; + } + + @Override + public void onStart(BuffInfo info) + { + final L2PcInstance player = info.getEffector().getActingPlayer(); + if ((player.getClan() == null) || (player.getClan().getLeaderId() != player.getObjectId())) + { + return; + } + + if (TerritoryWarManager.getInstance().isTWInProgress()) + { + // Spawn a new flag + final L2SiegeFlagInstance flag = new L2SiegeFlagInstance(player, IdFactory.getInstance().getNextId(), NpcData.getInstance().getTemplate(FLAG_NPC_ID), false, false); + flag.setTitle(player.getClan().getName()); + flag.setCurrentHpMp(flag.getMaxHp(), flag.getMaxMp()); + flag.setHeading(player.getHeading()); + flag.spawnMe(player.getX(), player.getY(), player.getZ() + 50); + TerritoryWarManager.getInstance().addClanFlag(player.getClan(), flag); + } + } +} diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/TakeFort.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/TakeFort.java deleted file mode 100644 index a4355f75bce64aa57c2904af13469e8e0698798c..0000000000000000000000000000000000000000 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/TakeFort.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (C) 2004-2014 L2J DataPack - * - * This file is part of L2J DataPack. - * - * L2J DataPack is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * L2J DataPack is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ -package handlers.skillhandlers; - -import com.l2jserver.gameserver.handler.ISkillHandler; -import com.l2jserver.gameserver.instancemanager.FortManager; -import com.l2jserver.gameserver.model.L2Object; -import com.l2jserver.gameserver.model.actor.L2Character; -import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; -import com.l2jserver.gameserver.model.entity.Fort; -import com.l2jserver.gameserver.model.skills.L2Skill; -import com.l2jserver.gameserver.model.skills.L2SkillType; - -/** - * @author _drunk_ - */ -public class TakeFort implements ISkillHandler -{ - private static final L2SkillType[] SKILL_IDS = - { - L2SkillType.TAKEFORT - }; - - @Override - public void useSkill(L2Character activeChar, L2Skill skill, L2Object[] targets) - { - if (!activeChar.isPlayer() || (targets.length == 0)) - { - return; - } - - L2PcInstance player = activeChar.getActingPlayer(); - if (player.getClan() == null) - { - return; - } - - Fort fort = FortManager.getInstance().getFort(player); - if ((fort == null) || !player.checkIfOkToCastFlagDisplay(fort, true, skill, targets[0])) - { - return; - } - - try - { - fort.endOfSiege(player.getClan()); - } - catch (Exception e) - { - e.printStackTrace(); - } - } - - @Override - public L2SkillType[] getSkillIds() - { - return SKILL_IDS; - } - - public static void main(String[] args) - { - new TakeFort(); - } -} \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/targethandlers/FlagPole.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/targethandlers/FlagPole.java index d48eb0117082a91462d0cf2de63b2b4701051ef6..8ddd6979c0ce9a43f271ce73b157456249494cb9 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/targethandlers/FlagPole.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/targethandlers/FlagPole.java @@ -19,11 +19,8 @@ package handlers.targethandlers; import com.l2jserver.gameserver.handler.ITargetTypeHandler; -import com.l2jserver.gameserver.instancemanager.FortManager; import com.l2jserver.gameserver.model.L2Object; import com.l2jserver.gameserver.model.actor.L2Character; -import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; -import com.l2jserver.gameserver.model.entity.Fort; import com.l2jserver.gameserver.model.skills.L2Skill; import com.l2jserver.gameserver.model.skills.targets.L2TargetType; @@ -40,16 +37,9 @@ public class FlagPole implements ITargetTypeHandler return EMPTY_TARGET_LIST; } - final L2PcInstance player = activeChar.getActingPlayer(); - final Fort fort = FortManager.getInstance().getFort(player); - if ((player.getClan() == null) || (fort == null) || !player.checkIfOkToCastFlagDisplay(fort, true, skill, activeChar.getTarget())) - { - return EMPTY_TARGET_LIST; - } - return new L2Object[] { - activeChar.getTarget() + target }; } diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/00000-00099.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/00000-00099.xml index b1bbfef49feba7406294caf5100b198eebc1745c..e6521274a826efa398d8cb27ed4528d256c96253 100644 --- a/L2J_DataPack_BETA/dist/game/data/stats/skills/00000-00099.xml +++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/00000-00099.xml @@ -553,7 +553,10 @@ <set name="reuseDelay" val="5000" /> <set name="targetType" val="SELF" /> <cond> - <player canSummon="true" /> + <and> + <player canSummon="true" /> + <player canSummonSiegeGolem="true" /> + </and> </cond> <for> <effect name="Summon"> diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/00200-00299.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/00200-00299.xml index 9df1180ae151c657c14b39baa23e568efc035078..24fac95f3444be6c8d41907726d38bf9ef447c63 100644 --- a/L2J_DataPack_BETA/dist/game/data/stats/skills/00200-00299.xml +++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/00200-00299.xml @@ -1009,10 +1009,10 @@ <set name="reuseDelay" val="5000" /> <set name="targetType" val="HOLY" /> <cond> - <player canPossessHolything="true" /> + <player canTakeCastle="true" /> </cond> <for> - <effect name="HolythingPossess" /> + <effect name="TakeCastle" /> </for> </skill> <skill id="247" levels="1" name="Build Headquarters"> @@ -1025,8 +1025,13 @@ <set name="mpInitialConsume" val="30" /> <set name="operateType" val="A1" /> <set name="reuseDelay" val="1800000" /> - <set name="skillType" val="SIEGEFLAG" /> <set name="targetType" val="SELF" /> + <cond> + <player canCreateBase="true" /> + </cond> + <for> + <effect name="HeadquarterCreate" /> + </for> </skill> <skill id="248" levels="5" name="Crystallize"> <table name="#magicLvl"> 20 40 52 60 70 </table> @@ -2906,7 +2911,10 @@ <set name="reuseDelay" val="5000" /> <set name="targetType" val="SELF" /> <cond> - <player canSummon="true" /> + <and> + <player canSummon="true" /> + <player canSummonSiegeGolem="true" /> + </and> </cond> <for> <effect name="Summon"> diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/00300-00399.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/00300-00399.xml index e30ffd353c99c5614b8076422e3d8171ce115f03..5319a426ee4af077c582d3840dbc322eb8e56915 100644 --- a/L2J_DataPack_BETA/dist/game/data/stats/skills/00300-00399.xml +++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/00300-00399.xml @@ -883,7 +883,6 @@ <skill id="326" levels="1" name="Build Advanced Headquarters"> <set name="hitTime" val="4000" /> <set name="icon" val="icon.skill0326" /> - <set name="isAdvanced" val="true" /> <set name="isMagic" val="2" /> <!-- Static Skill --> <set name="itemConsumeCount" val="300" /> <set name="itemConsumeId" val="2131" /> @@ -891,8 +890,15 @@ <set name="mpInitialConsume" val="30" /> <set name="operateType" val="A1" /> <set name="reuseDelay" val="3600000" /> - <set name="skillType" val="SIEGEFLAG" /> <set name="targetType" val="SELF" /> + <cond> + <player canCreateBase="true" /> + </cond> + <for> + <effect name="HeadquarterCreate"> + <param isAdvanced="true" /> + </effect> + </for> </skill> <skill id="327" levels="1" name="Wyvern Aegis"> <set name="abnormalLvl" val="3" /> diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/00400-00499.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/00400-00499.xml index eceded6d030dc8a83bbfef581c4ebb56fdc46562..3c0dfca5ff0925d97cfd3caa99f8766ba2fc79e3 100644 --- a/L2J_DataPack_BETA/dist/game/data/stats/skills/00400-00499.xml +++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/00400-00499.xml @@ -1689,7 +1689,6 @@ </for> </skill> <skill id="448" levels="1" name="Summon Swoop Cannon" enchantGroup1="1"> - <!-- TODO: Needs to be verified "Is enchantable but no stats for the +Power versions" --> <table name="#ench1npcId"> 14840 14841 14842 14843 14844 14845 14846 14847 14848 14849 14850 14851 14852 14853 14854 14855 14856 14857 14858 14859 14860 14861 14862 14863 14864 14865 14866 14867 14868 14869 </table> <set name="hitTime" val="10000" /> <set name="icon" val="icon.skill0448" /> @@ -1703,7 +1702,10 @@ <set name="reuseDelay" val="5000" /> <set name="targetType" val="SELF" /> <cond> - <player canSummon="true" /> + <and> + <player canSummon="true" /> + <player canSummonSiegeGolem="true" /> + </and> </cond> <for> <effect name="Summon"> diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/00800-00899.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/00800-00899.xml index 422af13ac98d9fb69ed80f2cbe4857010bfaf966..377c4987f6dd117be3a08c6bbff1873d42043625 100644 --- a/L2J_DataPack_BETA/dist/game/data/stats/skills/00800-00899.xml +++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/00800-00899.xml @@ -943,8 +943,13 @@ <set name="mpInitialConsume" val="30" /> <set name="operateType" val="A1" /> <set name="reuseDelay" val="600000" /> - <set name="skillType" val="SIEGEFLAG" /> <set name="targetType" val="SELF" /> + <cond> + <player canCreateOutpost="true" /> + </cond> + <for> + <effect name="OutpostCreate" /> + </for> </skill> <skill id="845" levels="1" name="Outpost Demolition"> <set name="castRange" val="100" /> @@ -959,6 +964,9 @@ <cond msgId="109"> <target npcId="36590" /> </cond> + <for> + <effect name="OutpostDestroy" /> + </for> </skill> <skill id="846" levels="1" name="Possess Ward"> <!-- Confirmed CT2.5 --> @@ -990,6 +998,9 @@ <cond msgId="109"> <target npcId="36590" /> </cond> + <for> + <effect name="TakeTerritoryFlag" /> + </for> </skill> <skill id="848" levels="1" name="Gludio Territory Benefaction"> <!-- Confirmed CT2.5 --> diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/03300-03399.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/03300-03399.xml index 2cb97097a3b250d36304f89c8607b0308db470cc..1e10a79a59bab0178824b86e077eaf7d89809abd 100644 --- a/L2J_DataPack_BETA/dist/game/data/stats/skills/03300-03399.xml +++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/03300-03399.xml @@ -223,8 +223,16 @@ <set name="magicLvl" val="80" /> <set name="operateType" val="CA1" /> <set name="reuseDelay" val="5000" /> - <set name="skillType" val="TAKEFORT" /> <set name="targetType" val="FLAGPOLE" /> + <cond> + <player canTakeFort="true" /> + </cond> + <startEffects> + <effect name="TakeFortStart" /> + </startEffects> + <for> + <effect name="TakeFort" /> + </for> </skill> <skill id="3319" levels="1" name="Divine Protection of Ring"> <set name="magicLvl" val="86" />