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());
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.
Guest Elfocrash Posted February 27, 2012 Posted February 27, 2012 Cool.and as i told you on frozen, gj
`Heroin Posted February 27, 2012 Posted February 27, 2012 Good job! Continue with that way! Good luck:)
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.................................
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)
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 :)
NumL0ck Posted February 28, 2012 Posted February 28, 2012 Good work Token :) And thanks for helping :D
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!
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
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now