public static void m_mapCharacterInfo(Session right, PacketWrite ks) { ks.Int(right.PCharacters.CharInfo.Length); for (int x = 0; x < right.PCharacters.CharInfo.Length; x++) { ks.Byte(right.PCharacters.CharInfo[x].CharType); ks.Byte(right.PCharacters.CharInfo[x].CharType); ks.Int(0); ks.Byte(right.PCharacters.CharInfo[x].Promotion); ks.Byte(right.PCharacters.CharInfo[x].Promotion); ks.Long(right.PCharacters.CharInfo[x].Exp); ks.Int(right.PCharacters.CharInfo[x].Win); ks.Int(right.PCharacters.CharInfo[x].Lose); ks.Int(right.PCharacters.CharInfo[x].Win); ks.Int(right.PCharacters.CharInfo[x].Lose); ks.Long(right.PCharacters.CharInfo[x].Exp); ks.Int(right.PCharacters.CharInfo[x].Level); ks.Int(right.PCharacters.CharInfo[x].Equipements.Count); for (int y = 0; y < right.PCharacters.CharInfo[x].Equipements.Count; y++) { ks.Int(right.PCharacters.CharInfo[x].Equipements[y].ItemID); ks.Int(1); ks.Int(right.PCharacters.CharInfo[x].Equipements[y].ItemUID); ks.HexArray("00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00"); } ks.Int(255); ks.HexArray("00 00 00 A0 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 0B 18 00 00 00 00 00 00 0B 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00"); ks.Int(7); ks.Int(7); ks.HexArray("00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00"); ks.Int(500); ks.Int(x); ks.HexArray("00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF"); ks.Int(right.PInfo.m_iGamePoint); ks.Int(right.PInfo.m_iGamePoint); ks.Int(right.PInfo.m_iLifePoint); ks.Int(0); ks.Int(260); ks.Int(260); ks.Int(right.PCharacters.CharInfo[x].LookItens.Count); for (int y = 0; y < right.PCharacters.CharInfo[x].LookItens.Count; y++) { ks.UInt(right.PCharacters.CharInfo[x].LookItens[y].ItemID); ks.Int(1); ks.UInt(right.PCharacters.CharInfo[x].LookItens[y].ItemUID); ks.HexArray("00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00"); } ks.Int(0); ks.Int(0); } }
public void BundleSellItens(Session p, PacketRead r) { PacketWrite pw = new PacketWrite(); r.Int(); int m_dwDeleteCount = r.Int(); pw.Int(m_dwDeleteCount); for (int i = 0; i < m_dwDeleteCount; i += 1) { int unk = r.Int(); pw.Int(unk); uint m_dwUID = r.UInt(); pw.UInt(m_dwUID); p.PInfo.m_iGamePoint += SelectPrice(m_dwUID); RemoveItem(p.PInfo.m_strLogin, m_dwUID); } int unk2 = r.Int(); pw.Int(unk2); PacketWrite ks = new PacketWrite(); ks.Int(0);//dwOK ks.Int(p.PInfo.m_iGamePoint); ks.Long(0); ks.ArrayBytes(pw.Get_Packet()); p.SendPacket(ks, 867); }
public void ReceiveExp(Session player, PacketRead r) { int exp = r.Int(); if (exp < 203081358 && exp > 0) { PacketWrite write = new PacketWrite(); write.Int(player.PInfo.CurRoom.m_usUsers()); for (int i = 0; i < player.PInfo.CurRoom.m_usMaxUsers; i++) { if (player.PInfo.CurRoom.m_dwSlots[i].Active == true) { int characterPosition = player.PCharacters.PositionCharacter(player.PInfo.m_ucCharType, player); if (player.PInfo.CurRoom.m_dwSlots[i].usr.PCharacters.CharInfo[characterPosition].Exp < 2147483647) { libcomservice.Request.Server.EXPReward ExpManager = new libcomservice.Request.Server.EXPReward(); ExpManager.getExp(((int)player.PCharacters.CharInfo[characterPosition].Exp) + exp, player, player.PInfo.m_ucCharType, player.PInfo.CurRoom.m_dwSlots[i].usr.PCharacters.CharInfo[characterPosition].Level); write.Int(player.PInfo.CurRoom.m_dwSlots[i].usr.PInfo.m_dwUserUID); write.Byte(0); write.Long(player.PInfo.CurRoom.m_dwSlots[i].usr.PCharacters.CharInfo[characterPosition].Exp * 2); write.Long(player.PInfo.CurRoom.m_dwSlots[i].usr.PCharacters.CharInfo[characterPosition].Exp * 2); if (ExpManager.isLevelUP == true) { write.Int(player.PInfo.CurRoom.m_dwSlots[i].usr.PCharacters.CharInfo[characterPosition].Level - 1); } else { write.Int(player.PInfo.CurRoom.m_dwSlots[i].usr.PCharacters.CharInfo[characterPosition].Level); } write.Int(player.PInfo.CurRoom.m_dwSlots[i].usr.PCharacters.CharInfo[characterPosition].Level); write.HexArray("41 30 00 00 00 00 00 0C 00 00 00 A0"); for (int j = 0; j < player.PInfo.CurRoom.m_usMaxUsers; j++) { if (player.PInfo.CurRoom.m_dwSlots[j].Active == true) { player.PInfo.CurRoom.m_dwSlots[j].usr.SendPacket(write, 921); } } player.PInfo.CurRoom.m_dwSlots[i].usr.PCharacters.CharInfo[characterPosition].Exp += exp; ExpManager.updateExp(((int)player.PInfo.CurRoom.m_dwSlots[i].usr.PCharacters.CharInfo[characterPosition].Exp), player.PInfo.CurRoom.m_dwSlots[i].usr.PInfo.m_strLogin, player.PInfo.CurRoom.m_dwSlots[i].usr.PCharacters.CharInfo[characterPosition].CharType); } } } } }
public static void m_roomCharacterInfo(Session right, PacketWrite ks) { ks.Int(right.PCharacters.CharInfo.Length); for (int x = 0; x < right.PCharacters.CharInfo.Length; x++) { ks.Byte(right.PCharacters.CharInfo[x].CharType); ks.Int(0); ks.Byte(right.PCharacters.CharInfo[x].Promotion); ks.Byte(right.PCharacters.CharInfo[x].Promotion); ks.Long(right.PCharacters.CharInfo[x].Exp); ks.Int(right.PCharacters.CharInfo[x].Level); ks.Int(right.PCharacters.CharInfo[x].Win); ks.Int(right.PCharacters.CharInfo[x].Lose); ks.Int(right.PCharacters.CharInfo[x].Equipements.Count); for (int y = 0; y < right.PCharacters.CharInfo[x].Equipements.Count; y++) { ks.Int(right.PCharacters.CharInfo[x].Equipements[y].ItemID); ks.Int(1); ks.Int(right.PCharacters.CharInfo[x].Equipements[y].ItemUID); ks.HexArray("00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00"); } ks.Int(0); ks.Int(right.PCharacters.CharInfo[x].LookItens.Count); for (int y = 0; y < right.PCharacters.CharInfo[x].LookItens.Count; y++) { ks.UInt(right.PCharacters.CharInfo[x].LookItens[y].ItemID); ks.Int(1); ks.UInt(right.PCharacters.CharInfo[x].LookItens[y].ItemUID); ks.HexArray("00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00"); } KPetInfo(right, ks, x); ks.HexArray("00 00 00 00 00 00 00 00 04 00 00 00 00 00 01 00 00 00 00 02 00 00 00 00 03"); ks.Int(0); ks.HexArray("00 00 00 8C 00 00 00 A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00"); ks.Int(right.PCharacters.CharInfo[x].Promotion + 2); ks.Byte(right.PCharacters.CharInfo[x].CharType); ks.Byte(255); ks.Int(0); for (byte y = 0; y < right.PCharacters.CharInfo[x].Promotion + 1; y++) { ks.Byte(right.PCharacters.CharInfo[x].CharType); ks.Byte(y); ks.Int(0); } ks.HexArray("00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00"); ks.HexArray("00 00 04 E2 00 00 04 E2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07"); ks.Int(x); ks.Int(right.PInfo.m_iGamePoint); ks.Int(right.PInfo.m_iLifePoint); ks.HexArray("00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00"); } }