Tokenlt Posted February 27, 2012 Posted February 27, 2012 Admin can recall all online players if they accept it. :) Credits Me and first code ElfoCrash. Index: head-src/com/l2jfrozen/gameserver/handler/admincommandhandlers/AdminRecallAll.java =================================================================== --- head-src/com/l2jfrozen/gameserver/handler/admincommandhandlers/AdminRecallAll.java (revision 0) +++ head-src/com/l2jfrozen/gameserver/handler/admincommandhandlers/AdminRecallAll.java (revision 0) @@ -0,0 +1,111 @@ +/* This program 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 2, or (at your option) + * any later version. + * + * This program 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, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * http://www.gnu.org/copyleft/gpl.html + */ +package com.l2jfrozen.gameserver.handler.admincommandhandlers; + +import com.l2jfrozen.Config; +import com.l2jfrozen.gameserver.handler.IAdminCommandHandler; +import com.l2jfrozen.gameserver.managers.GrandBossManager; +import com.l2jfrozen.gameserver.model.L2Character; +import com.l2jfrozen.gameserver.model.L2World; +import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance; +import com.l2jfrozen.gameserver.network.SystemMessageId; +import com.l2jfrozen.gameserver.network.serverpackets.ConfirmDlg; +import com.l2jfrozen.gameserver.thread.ThreadPoolManager; +import com.l2jfrozen.gameserver.util.Util; + + + +public class AdminRecallAll implements IAdminCommandHandler +{ + private static final String[] ADMIN_COMMANDS = { "admin_recallall" }; + public static boolean isAdminSummoning = false; + public static int x = 0; + public static int y = 0; + public static int z = 0; + + + public boolean useAdminCommand(String command, L2PcInstance activeChar) + { + if (command.startsWith("admin_recallall")) + { + x = activeChar.getX(); + y = activeChar.getY(); + z = activeChar.getZ(); + isAdminSummoning = true; + + + for(L2PcInstance player : L2World.getInstance().getAllPlayers()) + { + try + { + if (!L2PcInstance.checkSummonTargetStatus(player, activeChar) + || player.isAlikeDead() + || player._inEvent + || player._inEventCTF + || player._inEventDM + || player._inEventTvT + || player._inEventVIP + || player.isInStoreMode() + || player.isRooted() || player.isInCombat() + || (GrandBossManager.getInstance().getZone(player) != null && !player.isGM()) + || player.isInOlympiadMode() + || player.isFestivalParticipant() + || player.isInsideZone(L2Character.ZONE_PVP) + ) + continue; + + if(!Util.checkIfInRange(0, activeChar, player, false)) + { + ThreadPoolManager.getInstance().scheduleGeneral(new Restore(), 15000); + ConfirmDlg confirm = new ConfirmDlg(SystemMessageId.S1_WISHES_TO_SUMMON_YOU_FROM_S2_DO_YOU_ACCEPT.getId()); + confirm.addString(activeChar.getName()); + confirm.addZoneName(activeChar.getX(), activeChar.getY(), activeChar.getZ()); + confirm.addTime(15000); + confirm.addRequesterId(activeChar.getObjectId()); + player.sendPacket(confirm); + } + player = null; + } + catch(Throwable e) + { + if(Config.ENABLE_ALL_EXCEPTIONS) + e.printStackTrace(); + } + } + + } + return false; + + } + + class Restore implements Runnable + { + public void run() + { + x = 0; + y = 0; + z = 0; + isAdminSummoning = false; + } + + } + public String[] getAdminCommandList() + { + return ADMIN_COMMANDS; + } +} \ No newline at end of file Index: head-src/com/l2jfrozen/gameserver/network/clientpackets/DlgAnswer.java =================================================================== --- head-src/com/l2jfrozen/gameserver/network/clientpackets/DlgAnswer.java (revision 921) +++ head-src/com/l2jfrozen/gameserver/network/clientpackets/DlgAnswer.java (working copy) @@ -19,7 +19,9 @@ import com.l2jfrozen.Config; import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance; import com.l2jfrozen.gameserver.network.SystemMessageId; +import com.l2jfrozen.gameserver.handler.admincommandhandlers.AdminRecallAll; + /** * @author Dezmond_snz - Packet Format: cddd */ @@ -50,7 +52,17 @@ activeChar.reviveAnswer(_answer); else if (_messageId==SystemMessageId.S1_WISHES_TO_SUMMON_YOU_FROM_S2_DO_YOU_ACCEPT.getId()) - activeChar.teleportAnswer(_answer, _requestId); + { + if(AdminRecallAll.isAdminSummoning == true && _answer==1) + { + activeChar.teleToLocation(AdminRecallAll.x, AdminRecallAll.y, AdminRecallAll.z, false); + } + else + { + activeChar.teleportAnswer(_answer, _requestId); + } + + } else if (_messageId == 614 && Config.L2JMOD_ALLOW_WEDDING) activeChar.EngageAnswer(_answer); \ No newline at end of file Index: gameserver/head-src/com/l2jfrozen/gameserver/handler/AdminCommandHandler.java =================================================================== --- gameserver/head-src/com/l2jfrozen/gameserver/handler/AdminCommandHandler.java (revision 909) +++ gameserver/head-src/com/l2jfrozen/gameserver/handler/AdminCommandHandler.java (working copy) @@ -74,11 +75,13 @@ import com.l2jfrozen.gameserver.handler.admincommandhandlers.AdminPledge; import com.l2jfrozen.gameserver.handler.admincommandhandlers.AdminPolymorph; import com.l2jfrozen.gameserver.handler.admincommandhandlers.AdminQuest; +import com.l2jfrozen.gameserver.handler.admincommandhandlers.AdminRecallAll; import com.l2jfrozen.gameserver.handler.admincommandhandlers.AdminReload; import com.l2jfrozen.gameserver.handler.admincommandhandlers.AdminRepairChar; import com.l2jfrozen.gameserver.handler.admincommandhandlers.AdminRes; @@ -131,6 +134,7 @@ registerAdminCommandHandler(new AdminCreateItem()); registerAdminCommandHandler(new AdminHeal()); registerAdminCommandHandler(new AdminHelpPage()); + registerAdminCommandHandler(new AdminRecallAll()); registerAdminCommandHandler(new AdminShutdown()); registerAdminCommandHandler(new AdminSpawn()); registerAdminCommandHandler(new AdminSkill()); Quote
Guest Elfocrash Posted February 27, 2012 Posted February 27, 2012 Give credits for the first share of this code and then for what you did. Quote
Guest Elfocrash Posted February 27, 2012 Posted February 27, 2012 Cool.and as i told you on frozen, gj Quote
`Heroin Posted February 27, 2012 Posted February 27, 2012 Good job! Continue with that way! Good luck:) Quote
vl4d Posted February 28, 2012 Posted February 28, 2012 the code is wrong... when it sends me to choose ok or cancel is the same,the cancel does not work................................. Quote
Tokenlt Posted February 28, 2012 Author Posted February 28, 2012 the code is wrong... when it sends me to choose ok or cancel is the same,the cancel does not work................................. Try like this: -if(AdminRecallAll.isAdminSummoning == true) +if(AdminRecallAll.isAdminSummoning == true && _answer==1) Quote
vl4d Posted February 28, 2012 Posted February 28, 2012 here will be better when he made a new SystemMessageId.. + { + if(AdminRecallAll.isAdminSummoning == true && _answer==1) + { + activeChar.teleToLocation(AdminRecallAll.x, AdminRecallAll.y, AdminRecallAll.z, false); + } + else + { + activeChar.teleportAnswer(_answer, _requestId); + } + + } not so difficult :) Quote
NumL0ck Posted February 28, 2012 Posted February 28, 2012 Good work Token :) And thanks for helping :D Quote
Malamandre Posted March 1, 2012 Posted March 1, 2012 Its nice and if you make it with party.So party leader can call all pt members!Or clan! Quote
Tokenlt Posted March 4, 2012 Author Posted March 4, 2012 doesnt work Are you sure? add the code again, because for everyone it is working Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.