Просмотр исходного кода

BETA: Fix for: Couple actions works fine from player A to B, but when couple finished and player B tries to request couple to player A it says "player is already doing a couple action always", until players A re-login.
* Reported and tested by MELERIX.

The problem:
Player A request player B.
Player B answer, player A's "couple data" is cleaned only if player B cancel.
So when couple action is accepted player A has player B as target of couple action.
The fix:
"Clean" (set to 0) the player A's "couple data" for any answer from player B.

Zoey76 13 лет назад
Родитель
Сommit
51c55d540c

+ 3 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/AnswerCoupleAction.java

@@ -44,16 +44,14 @@ public class AnswerCoupleAction extends L2GameClientPacket
 	@Override
 	protected void runImpl()
 	{
-		L2PcInstance activeChar = getClient().getActiveChar();
+		L2PcInstance activeChar = getActiveChar();
 		L2PcInstance target = L2World.getInstance().getPlayer(_charObjId);
 		if(activeChar == null || target == null)
 			return;
-		if (target.getMultiSocialTarget() != activeChar.getObjectId()
-				|| target.getMultiSociaAction() != _actionId)
+		if (target.getMultiSocialTarget() != activeChar.getObjectId() || target.getMultiSociaAction() != _actionId)
 			return;
 		if (_answer == 0) // cancel
 		{
-			target.setMultiSocialAction(0, 0);
 			target.sendPacket(SystemMessageId.COUPLE_ACTION_DENIED);
 		}
 		else if (_answer == 1) // approve
@@ -80,6 +78,7 @@ public class AnswerCoupleAction extends L2GameClientPacket
 			sm.addPcName(activeChar);
 			target.sendPacket(sm);
 		}
+		target.setMultiSocialAction(0, 0);
 	}
 	
 	@Override