public void HandleConfirmTrade(Character confirmer) { if (!acceptedInvite || confirmer.dwId == dwFirstLockerId) { return; // PE } if (IsOwner(confirmer)) { Partner.SendPacket(PartnerLockPacket()); } else { Parent.SendPacket(PartnerLockPacket()); } if (dwFirstLockerId > 0) { if (InventoryManipulator.HasSpace(Parent, tempInvPartner) && InventoryManipulator.HasSpace(Parent, tempInvOwner)) { CurrentStatus = MR_LeaveResult.TradeDone; } else { CurrentStatus = MR_LeaveResult.TradeFail; } Destroy(); } else { dwFirstLockerId = confirmer.dwId; } }
private TempInventory tempInvOwner, tempInvPartner; // assigned when request is accepted // ----------------------------------------------------- constructor / destructor public CTradingRoom(Character owner) : base(owner, MR_Type.TradingRoom) { nCurUsers = 1; nMaxUsers = 2; owner.CurMiniRoom = this; expiration = DateTime.Now.AddMinutes(30); CurrentStatus = MR_LeaveResult.UserRequest; }
public COutPacket PlayerExitPacket(int dwCharId, MR_LeaveResult nReason) { var p = new COutPacket(SendOps.LP_MiniRoom); p.Encode1((byte)(dwCharId == OwnerID ? MR_Action.ESP_WithdrawAllResult : MR_Action.MRP_Leave)); p.Encode1(GetVisitorIndex(dwCharId)); p.Encode1((byte)nReason); return(p); }
private void VisitorKickAll(MR_LeaveResult nReason) { foreach (var item in aCurVisitors) { var pChar = MasterManager.CharacterPool.Get(item); if (pChar is object) { HandlePlayerExit(pChar, nReason); } } }
/// <summary> /// This is called when a player leaves the room /// </summary> /// <param name="c"></param> /// <param name="nReason"></param> public override void HandlePlayerExit(Character c, MR_LeaveResult nReason) { if (c.dwId != Parent.dwId && c.dwId != Partner?.dwId) { return; // PE } if (acceptedInvite) { CurrentStatus = MR_LeaveResult.Closed; } Destroy(); }
public override void HandlePlayerExit(Character c, MR_LeaveResult nReason = MR_LeaveResult.UserRequest) { c.CurMiniRoom = null; if (aCurVisitors.Contains(c.dwId)) { c.SendMessage("Index Exit: " + GetVisitorIndex(c.dwId)); aCurVisitors[GetVisitorIndex(c.dwId)] = 0; c.SendPacket(PlayerExitPacket(c.dwId, nReason)); if (OwnerID == c.dwId) { aCurVisitors[0] = 0; // hax nCurUsers = 0; ShopOpen = true; } else { nCurUsers = (byte)Math.Max(0, nCurUsers - 1); } } }
public virtual void HandlePlayerExit(Character c, MR_LeaveResult nResult) { nCurUsers -= 1; c.CurMiniRoom = null; }
public override void HandlePlayerExit(Character c, MR_LeaveResult nReason) { throw new NotImplementedException(); }