All pastes #20992 Raw Edit

Someone

public text v1 · immutable
#20992 ·published 2005-08-24 16:05 UTC
rendered paste body
temporary fix for #457

new system messages:

Index: C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/serverpackets/SystemMessage.java
===================================================================
--- C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/serverpackets/SystemMessage.java	(revision 831)
+++ C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/serverpackets/SystemMessage.java	(working copy)
@@ -270,6 +270,9 @@
 	public static final int SELECT_ITEM_TO_ENCHANT = 303;
 	public static final int INAPPROPRIATE_ENCHANT_CONDITION = 355;
 	
+    //combta-related
+    public static final int CANNOT_LOGOUT_IN_COMBAT = 101;
+    public static final int CANNOT_RESTART_IN_COMBAT = 102;
 	/**
 	 * @param _characters
 	 */

Logout handler:
Index: C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/clientpackets/Logout.java
===================================================================
--- C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/clientpackets/Logout.java	(revision 831)
+++ C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/clientpackets/Logout.java	(working copy)
@@ -24,6 +24,7 @@
 import net.sf.l2j.gameserver.ClientThread;
 import net.sf.l2j.gameserver.model.L2PcInstance;
 import net.sf.l2j.gameserver.serverpackets.LeaveWorld;
+import net.sf.l2j.gameserver.serverpackets.SystemMessage;
 
 /**
  * This class ...
@@ -51,17 +52,26 @@
 		// normally the server would send serveral "delete object" before "leaveWorld"
 		// we skip that for now
 
-		LeaveWorld ql = new LeaveWorld();
-		sendPacket(ql);
+        L2PcInstance activeChar = getClient().getActiveChar();
+        if(!activeChar.isAttackingNow())
+        {
+            LeaveWorld ql = new LeaveWorld();
+            sendPacket(ql);
 
-		// removing player from the world
-		L2PcInstance player = getClient().getActiveChar();
-		if (player != null)
-		{
-			player.deleteMe();
-			//save character
-			ClientThread.saveCharToDisk(player);
-		}
+            //removing player from the world
+            L2PcInstance player = getClient().getActiveChar();
+            if (player != null)
+            {
+                player.deleteMe();
+                //save character
+                ClientThread.saveCharToDisk(player);
+            }
+        }
+        else
+        {
+            SystemMessage s = new SystemMessage(101);
+            activeChar.sendPacket(s);
+        }
 	}
 
 	/* (non-Javadoc)


restart handler:

Index: C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/clientpackets/RequestRestart.java
===================================================================
--- C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/clientpackets/RequestRestart.java	(revision 831)
+++ C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/clientpackets/RequestRestart.java	(working copy)
@@ -25,6 +25,7 @@
 import net.sf.l2j.gameserver.model.L2PcInstance;
 import net.sf.l2j.gameserver.serverpackets.CharSelectInfo;
 import net.sf.l2j.gameserver.serverpackets.RestartResponse;
+import net.sf.l2j.gameserver.serverpackets.SystemMessage;
 
 /**
  * This class ...
@@ -48,24 +49,35 @@
 
 	void runImpl()
 	{
-		// removing player from the world
-		L2PcInstance player = getClient().getActiveChar();
+        
+	    L2PcInstance activeChar = getClient().getActiveChar();
+        if(!activeChar.isAttackingNow())
+        {
+            // removing player from the world
+            L2PcInstance player = getClient().getActiveChar();
 		
-		if (player != null)
-		{
-			player.deleteMe();
+		    if (player != null)
+		    {
+		        player.deleteMe();
 
-			RestartResponse response = new RestartResponse();
-			sendPacket(response);
-			//save character
-			ClientThread.saveCharToDisk(getClient().getActiveChar());
-		}
+		        RestartResponse response = new RestartResponse();
+		        sendPacket(response);
+		        //save character
+		        ClientThread.saveCharToDisk(getClient().getActiveChar());
+		    }
 			
-		getClient().setActiveChar(null);
-		// send char list
-		CharSelectInfo cl = new CharSelectInfo(getClient().getLoginName(), getClient().getSessionId());
-		sendPacket(cl);
-        getClient().setCharSelection(cl.getCharInfo());
+		    getClient().setActiveChar(null);
+		    // send char list
+		    CharSelectInfo cl = new CharSelectInfo(getClient().getLoginName(), getClient().getSessionId());
+		    sendPacket(cl);
+		    getClient().setCharSelection(cl.getCharInfo());
+        }
+        else
+        {
+            SystemMessage s = new SystemMessage(102);
+            activeChar.sendPacket(s);
+        }
+
 	}
 
 	/* (non-Javadoc)


maybe we need to send ActionFailed packet in restart handler?