public static void GetGuardianEquippedItem(BinaryReader reader, int WhoAmI) { byte PlayerID = reader.ReadByte(); int MyGuardianPosID = reader.ReadInt32(); int Slot = reader.ReadInt32(); int NetId = reader.ReadInt32(); byte Prefix = (byte)(NetId == 0 ? 0 : reader.ReadByte()); int Stack = (NetId == 0 ? 0 : reader.ReadInt32()); Item i = new Item(); i.netDefaults(NetId); i.Prefix(Prefix); i.stack = Stack; ItemIO.ReceiveModData(i, reader); Player player = Main.player[PlayerID]; if (PlayerID == Main.myPlayer) { return; } PlayerMod pm = player.GetModPlayer <PlayerMod>(); if (!pm.MyGuardians.ContainsKey(MyGuardianPosID)) { return; } pm.MyGuardians[MyGuardianPosID].Equipments[Slot] = i; if (Main.netMode == 2) { SendGuardianEquippedItem(pm, MyGuardianPosID, Slot, -1, WhoAmI); } }
public override void HandleCommand(BinaryReader reader, int playerNumber) { if (Main.netMode == 2) { int plr = reader.ReadByte(); var id = reader.ReadInt16(); var nettype = reader.ReadInt16(); var prefix = reader.ReadByte(); var stack = reader.ReadInt16(); var player = Main.player[plr]; Item item = new Item(); item.SetDefaults(nettype); item.Prefix(prefix); item.stack = stack; ItemIO.ReceiveModData(item, reader); if (!player.active) { return; } var splayer = player.GetServerPlayer(); lock (player) { if (stack < 0) { stack = 0; } int k = setItem(player, id, item); NetMessage.SendData(5, -1, -1, null, plr, k, (float)prefix, 0f, 0, 0, 0); } } }
public override void HandleCommand(BinaryReader reader, int playerNumber) { if (Main.netMode == 2) { string name = reader.ReadString(); var id = reader.ReadByte(); var nettype = reader.ReadInt16(); var prefix = reader.ReadByte(); var stack = reader.ReadInt16(); var player = ServerSideCharacter2.PlayerCollection.Get(name); var sender = Main.player[playerNumber].GetServerPlayer(); Item item = new Item(); item.SetDefaults(nettype); item.Prefix(prefix); item.stack = stack; ItemIO.ReceiveModData(item, reader); if (player == null) { sender.SendInfoMessage("玩家不存在", Color.Red); return; } lock (player) { if (stack < 0) { stack = 0; } player.SetInventory(id, item); } } }
public override void HandleCommand(BinaryReader reader, int playerNumber) { if (Main.netMode == 2) { CommandBoardcast.ConsoleMessage("受到玩家请求离线玩家背包"); int plr = reader.ReadInt32(); var splayer = ServerSideCharacter2.PlayerCollection.Get(plr); var sender = Main.player[playerNumber].GetServerPlayer(); if (splayer == null) { sender.SendInfoMessage("找不到这个玩家", Color.Red); return; } if (splayer.IsLogin && splayer.PrototypePlayer != null && splayer.PrototypePlayer.active) { sender.SendInfoMessage("该玩家在线,请使用资料页面查看背包"); return; } var p = ServerSideCharacter2.Instance.GetPacket(); p.Write((int)SSCMessageType.GetEquipsOffline); var list = splayer.GetInventory(); p.Write(splayer.Name); p.Write((byte)list.Count); for (int i = 0; i < list.Count; i++) { p.Write((short)list[i].netID); p.Write((short)list[i].stack); p.Write((byte)list[i].prefix); ItemIO.SendModData(list[i], p); } p.Send(playerNumber); } else { var name = reader.ReadString(); int num = reader.ReadByte(); List <Item> list = new List <Item>(); for (int i = 0; i < num; i++) { int type = reader.ReadInt16(); int stack = reader.ReadInt16(); int prefix = reader.ReadByte(); Item item = new Item(); item.netDefaults(type); item.stack = stack; item.Prefix(prefix); ItemIO.ReceiveModData(item, reader); list.Add(item); } lock (PlayerInventoryState2.Instance) { ServerSideCharacter2.GuiManager.OpenInventory2(); PlayerInventoryState2.Instance.GetInventory(name, list); } } }