If u use an item to summon a pet when countdown to enter to olympiad stadium is 5 +-, your skill isn't aborted and when u enter to the stadium, after 2-3 seconds, the pet will summon.
http://imageshack.us/photo/my-images/198/34560367.jpg/
I made a fix by myself and for me it's working fine:
Code: Select all
Index: java/com/l2jserver/gameserver/model/olympiad/AbstractOlympiadGame.java===================================================================--- java/com/l2jserver/gameserver/model/olympiad/AbstractOlympiadGame.java (revision 0)+++ java/com/l2jserver/gameserver/model/olympiad/AbstractOlympiadGame.java (revision 0) protected static final void portPlayerBack(L2PcInstance player){if (player == null)return; if (player.getLastX() == 0 && player.getLastY() == 0)return;+ L2PcInstance._OlyRegistered=false;player.setInstanceId(0);player.teleToLocation(player.getLastX(), player.getLastY(), player.getLastZ());player.setLastCords(0, 0, 0);} Index: java/com/l2jserver/gameserver/model/olympiad/OlympiadManager.java===================================================================--- java/com/l2jserver/gameserver/model/olympiad/OlympiadManager.java (revision 0)+++ java/com/l2jserver/gameserver/model/olympiad/OlympiadManager.java (revision 0) List<Integer> classed = _classBasedRegisters.get(player.getBaseClass());if (classed != null)classed.add(player.getObjectId());else{classed = new FastList<Integer>().shared();classed.add(player.getObjectId());_classBasedRegisters.put(player.getBaseClass(), classed);}+ player._OlyRegistered=true;player.sendPacket(SystemMessageId.YOU_HAVE_BEEN_REGISTERED_IN_A_WAITING_LIST_OF_CLASSIFIED_GAMES);break; }case NON_CLASSED:{if (!checkNoble(player, player))return false; if (Olympiad.getInstance().getRemainingWeeklyMatchesNonClassed(player.getObjectId()) < 1){player.sendPacket(SystemMessageId.MAX_OLY_WEEKLY_MATCHES_REACHED_60_NON_CLASSED_30_CLASSED_10_TEAM);return false;} _nonClassBasedRegisters.add(player.getObjectId());+ player._OlyRegistered=true;player.sendPacket(SystemMessageId.YOU_HAVE_BEEN_REGISTERED_IN_A_WAITING_LIST_OF_NO_CLASS_GAMES);break;} ================================================================================================================================ if (teamPoints < 10){// TODO: replace with retail messageplayer.sendMessage("Your team must have at least 10 points in total.");// remove previously registered party membersif (Config.L2JMOD_DUALBOX_CHECK_MAX_OLYMPIAD_PARTICIPANTS_PER_IP > 0){for (L2PcInstance unreg : party.getPartyMembers())AntiFeedManager.getInstance().removePlayer(AntiFeedManager.OLYMPIAD_ID, unreg);}return false;}+ for (L2PcInstance partyMember : party.getPartyMembers()){+ partyMember._OlyRegistered=true;+ }party.broadcastToPartyMembers(SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_REGISTERED_IN_A_WAITING_LIST_OF_TEAM_GAMES));_teamsBasedRegisters.add(team);break; ================================================================================================================================== Integer objId = Integer.valueOf(noble.getObjectId());if (_nonClassBasedRegisters.remove(objId)){if (Config.L2JMOD_DUALBOX_CHECK_MAX_OLYMPIAD_PARTICIPANTS_PER_IP > 0)AntiFeedManager.getInstance().removePlayer(AntiFeedManager.OLYMPIAD_ID, noble); + noble._OlyRegistered=false;noble.sendPacket(SystemMessageId.YOU_HAVE_BEEN_DELETED_FROM_THE_WAITING_LIST_OF_A_GAME);return true;}final List<Integer> classed = _classBasedRegisters.get(noble.getBaseClass());if (classed != null && classed.remove(objId)){_classBasedRegisters.remove(noble.getBaseClass());_classBasedRegisters.put(noble.getBaseClass(), classed); if (Config.L2JMOD_DUALBOX_CHECK_MAX_OLYMPIAD_PARTICIPANTS_PER_IP > 0)AntiFeedManager.getInstance().removePlayer(AntiFeedManager.OLYMPIAD_ID, noble);+ noble._OlyRegistered=false;noble.sendPacket(SystemMessageId.YOU_HAVE_BEEN_DELETED_FROM_THE_WAITING_LIST_OF_A_GAME);return true;} ================================================================================================================================== private static final class AnnounceUnregToTeam implements Runnable{private final List<Integer> _team; public AnnounceUnregToTeam(List<Integer> t){_team = t;} public final void run(){L2PcInstance teamMember;final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_BEEN_DELETED_FROM_THE_WAITING_LIST_OF_A_GAME);for (int objectId : _team){teamMember = L2World.getInstance().getPlayer(objectId);if (teamMember != null){+ teamMember._OlyRegistered=false;teamMember.sendPacket(sm);if (Config.L2JMOD_DUALBOX_CHECK_MAX_OLYMPIAD_PARTICIPANTS_PER_IP > 0)AntiFeedManager.getInstance().removePlayer(AntiFeedManager.OLYMPIAD_ID, teamMember);}}teamMember = null;}} Index: java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java===================================================================--- java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (revision 0)+++ java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (revision 0) public final class L2PcInstance extends L2Playable{ +public boolean _OlyRegistered = false; ====================================================================================================================================== + public boolean _OlyRegistered(L2Character target)+ {+ L2PcInstance targetPlayer = target.getActingPlayer();+ return targetPlayer._OlyRegistered;+ } /*** Increase pk count, karma and send the info to the player* @param target*/public void increasePkKillsAndKarma(L2Character target){ Index: dist/game/data/scripts/handlers/itemhandlers/SummonItems.java===================================================================--- dist/game/data/scripts/handlers/itemhandlers/SummonItems.java (revision 0)+++ dist/game/data/scripts/handlers/itemhandlers/SummonItems.java (revision 0) if (activeChar.isInOlympiadMode()){activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.THIS_ITEM_IS_NOT_AVAILABLE_FOR_THE_OLYMPIAD_EVENT));return;} +if (activeChar._OlyRegistered==true)+ {+ activeChar.sendMessage("You can't summon any pet until you are registered to olympiads.");+ return;+ }