Exemplo n.º 1
0
        public void pak_SendCharToGame(byte[] pak, CPlayer thisclient)
        {
            int CharPos = Convert.ToInt32(pak[12]);

            thisclient.LoadCharData(CharPos);
            Core.CLog(String.Format("CID: [{0}] UID: [{1}] Char: [{2}]", thisclient.Session.ClientID, thisclient.Session.username, thisclient.CharInfo.CharName));
            OutPak.Clear();
            OutPak.SetShort(1244, 0);
            OutPak.SetShort(0x0114, 4);
            OutPak.SetShort(thisclient.Session.ClientID, 6);
            OutPak.SetShort(thisclient.Position.pCurrent.x, 12);
            OutPak.SetShort(thisclient.Position.pCurrent.y, 14);
            OutPak.SetString(thisclient.CharInfo.CharName, 16);
            OutPak.SetByte(thisclient.CharInfo.Class, 36);
            OutPak.SetLong(thisclient.CharInfo.cGold, 40);
            OutPak.SetLong(thisclient.CharInfo.cExp, 44);
            OutPak.SetShort(thisclient.Position.pCurrent.x, 48);
            OutPak.SetShort(thisclient.Position.pCurrent.y, 50);
            OutPak.SetShort(thisclient.CharInfo.cLevel, 80);
            OutPak.SetShort(thisclient.Stats.mHP, 88);
            OutPak.SetShort(thisclient.Stats.mMP, 90);
            OutPak.SetShort(thisclient.Stats.cHP, 92);
            OutPak.SetShort(thisclient.Stats.cMP, 94);
            OutPak.SetShort(thisclient.Stats.STR, 96);
            OutPak.SetShort(thisclient.Stats.INT, 98);
            OutPak.SetShort(thisclient.Stats.DEX, 100);
            OutPak.SetShort(thisclient.Stats.CON, 102);
            OutPak.SetShort(thisclient.CharInfo.BodyID, 108);
            for (int i = 0; i < 78; i++)
            {
                OutPak.SetShort(thisclient.Inventory[i].ItemID, (8 * i) + 116);
                OutPak.SetByte(thisclient.Inventory[i].EF1, (8 * i) + 118);
                OutPak.SetByte(thisclient.Inventory[i].EFV1, (8 * i) + 119);
                OutPak.SetByte(thisclient.Inventory[i].EF2, (8 * i) + 120);
                OutPak.SetByte(thisclient.Inventory[i].EFV2, (8 * i) + 121);
                OutPak.SetByte(thisclient.Inventory[i].EF3, (8 * i) + 122);
                OutPak.SetByte(thisclient.Inventory[i].EFV3, (8 * i) + 123);
            }
            OutPak.SetShort(thisclient.CharInfo.StatPts, 752);
            OutPak.SetShort(thisclient.CharInfo.SkillPts, 754);
            OutPak.SetShort(thisclient.CharInfo.MasterPts, 756);
            OutPak.SetShort(thisclient.Session.ClientID, 774);
            thisclient.Client.encdec.Encrypt(OutPak, OutPak.dataBuffer, 1244, thisclient.Client.Hash);
            thisclient.Client.SendPacket(OutPak, 1244);
            thisclient.Session.isInGame = true;
            pak_SendCharToGameSpawn(pak, thisclient);
        }