Index: C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/L2World.java =================================================================== --- C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/L2World.java (revision 1315) +++ C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/L2World.java (working copy) @@ -82,8 +82,10 @@ /** Area where to spawn for arena */ public static int[][] arenaspawn; /** Area of castle (used to determine castle ground) */ - public static int[][] castles; - + public static int[][] castles; + /** Area of Clanhalls, id,x1,y1,x2,y2 */ + public static int[][] agitarea; + public static int[][] castlespawns = { {-14272,116545,-3095}, //Gludio attackers {-18105,110303,-2146}, //Gludio defenders @@ -146,11 +148,13 @@ String typeNameArenaSpawn = "Arena Spawn"; String typeNameCastleArea = "Castle Area"; String typeNameTown = "Town"; + String typeNameAgit = "Agit"; ArrayList tempArena = new ArrayList(); ArrayList tempArenaSpawn = new ArrayList(); ArrayList tempCastleArea = new ArrayList(); ArrayList tempTown = new ArrayList(); + ArrayList tempAgit = new ArrayList(); while (rs.next()) { if (rs.getString(columnNameType).equalsIgnoreCase(typeNameArena)) @@ -161,6 +165,8 @@ tempCastleArea.add(new int[]{rs.getInt(columnNameX1), rs.getInt(columnNameY1), rs.getInt(columnNameX2), rs.getInt(columnNameY2)}); else if (rs.getString(columnNameType).equalsIgnoreCase(typeNameTown)) tempTown.add(new int[]{rs.getInt(columnNameX1), rs.getInt(columnNameY1), rs.getInt(columnNameX2), rs.getInt(columnNameY2)}); + else if (rs.getString(columnNameType).equalsIgnoreCase(typeNameAgit)) + tempAgit.add(new int[]{rs.getInt("id"),rs.getInt(columnNameX1), rs.getInt(columnNameY1), rs.getInt(columnNameX2), rs.getInt(columnNameY2)}); } statement.close(); @@ -183,6 +189,11 @@ for (int i = 0; i < tempTown.size(); i++) zones[i] = tempTown.get(i); _log.info("L2World: Loaded " + zones.length + " town zones"); + + agitarea = new int[tempAgit.size()][]; + for(int i=0;i < tempAgit.size(); i++) + agitarea[i] = tempAgit.get(i); + _log.info("L2World: Loaded " + agitarea.length + " agit zones"); } catch (Exception e) { Index: C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/ScrollOfEscape.java =================================================================== --- C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/ScrollOfEscape.java (revision 1315) +++ C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/ScrollOfEscape.java (working copy) @@ -20,10 +20,10 @@ import net.sf.l2j.gameserver.ClientScheduler; import net.sf.l2j.gameserver.MapRegionTable; -import net.sf.l2j.gameserver.SevenSignsFestival; import net.sf.l2j.gameserver.SkillTable; import net.sf.l2j.gameserver.ai.CtrlIntention; import net.sf.l2j.gameserver.handler.IItemHandler; +import net.sf.l2j.gameserver.model.L2AgitInstance; import net.sf.l2j.gameserver.model.L2Clan; import net.sf.l2j.gameserver.model.L2ItemInstance; import net.sf.l2j.gameserver.model.L2PcInstance; @@ -109,10 +109,14 @@ _activeChar.enableAllSkills(); try { L2Clan playersClan = _activeChar.getClan(); - if ((playersClan == null)||(_itemId != 1830)) + if ((playersClan == null)) { escapeToTown(); } + else if((_itemId == 5858 || _itemId == 1829) && playersClan.getHasHideout() > 0) + { + escapeToClanhall(); + } else if (playersClan.getHasCastle() > 0) // escape to castle if has a castle { escapeToCastle(playersClan.getHasCastle()-1); @@ -126,6 +130,19 @@ } } + private void escapeToClanhall() + { + StopMove sm = new StopMove(_activeChar); + _activeChar.broadcastPacket(sm); + + ActionFailed af = new ActionFailed(); + _activeChar.sendPacket(af); + + int coords[] = L2AgitInstance.getInstance().getAgitRespawn(_activeChar.getClan().getHasHideout()); + _activeChar.teleToLocation(coords[0],coords[1],coords[2]); + } + + private void escapeToCastle(int castleNum) { StopMove sm = new StopMove(_activeChar); Index: C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminPledge.java =================================================================== --- C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminPledge.java (revision 1315) +++ C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminPledge.java (working copy) @@ -8,6 +8,7 @@ import net.sf.l2j.L2DatabaseFactory; import net.sf.l2j.gameserver.ClanTable; import net.sf.l2j.gameserver.handler.IAdminCommandHandler; +import net.sf.l2j.gameserver.model.L2AgitInstance; import net.sf.l2j.gameserver.model.L2Clan; import net.sf.l2j.gameserver.model.L2PcInstance; import net.sf.l2j.gameserver.model.L2Siege; @@ -18,11 +19,12 @@ /** * Pledge Manipulation - * //pledge + * //pledge [pledge_name|level] + * //agit agit_id */ public class AdminPledge implements IAdminCommandHandler { - private static String[] _adminCommands = {"admin_pledge"}; + private static String[] _adminCommands = {"admin_pledge","admin_agit"}; private static Logger _log = Logger.getLogger(AdminPledge.class.getName()); public boolean useAdminCommand(String command, L2PcInstance activeChar) @@ -180,6 +182,29 @@ } } } + else if(command.startsWith("admin_agit")) + { + StringTokenizer st = new StringTokenizer(command); + st.nextToken(); + + String action = st.nextToken(); // create|dismiss|setlevel + + if(action.equals("setowner")) + { + if(activeChar.getTarget() != null && activeChar.getTarget() instanceof L2PcInstance) + { + int agitId = Integer.parseInt(st.nextToken()); + L2AgitInstance.getInstance().setAgitOwner(agitId,target.getClanId()); + activeChar.sendMessage("Agit owner changed!"); + target.sendMessage("GM gave agit "+agitId+" to ur clan"); + target.getClan().setHasHideout(agitId); + } + } + else if(action.equals("setfree")) + { + int agitId = Integer.parseInt(st.nextToken()); + } + } return false; } Index: C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/GameServer.java =================================================================== --- C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/GameServer.java (revision 1315) +++ C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/GameServer.java (working copy) @@ -118,6 +118,7 @@ import net.sf.l2j.gameserver.idfactory.IdFactory; import net.sf.l2j.gameserver.lib.JBForth; import net.sf.l2j.gameserver.model.AutoChatHandler; +import net.sf.l2j.gameserver.model.L2AgitInstance; import net.sf.l2j.gameserver.model.L2Castle; import net.sf.l2j.gameserver.model.L2World; import net.sf.l2j.gameserver.model.RandomSpawnHandler; @@ -170,6 +171,7 @@ private final EventDroplist _eventDroplist; private final DoorTable _doorTable; private final StaticObjects _staticObjects; + private static L2AgitInstance _agitData; private final SevenSigns _sevenSignsEngine; private final SevenSignsFestival _sevenSignsFestival; @@ -310,6 +312,7 @@ //_monsterRace.newRace(); _doorTable = DoorTable.getInstance(); _staticObjects = StaticObjects.getInstance(); + _agitData = L2AgitInstance.getInstance(); _sevenSignsEngine = SevenSigns.getInstance(); _sevenSignsFestival = SevenSignsFestival.getInstance(); _randomSpawnHandler = RandomSpawnHandler.getInstance();