示例#1
0
 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);
     }
 }
示例#2
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);
        }
示例#3
0
        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);
                        }
                    }
                }
            }
        }
示例#4
0
        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");
            }
        }