rendered paste bodytemporary 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?