コード例 #1
0
ファイル: Packet.cs プロジェクト: horato/IntWarsSharp
        public SpawnProjectile(Projectile p) : base(PacketCmdS2C.PKT_S2C_SpawnProjectile, p.getNetId())
        {
            float targetZ = p.getMap().getHeightAtLocation(p.getTarget().getX(), p.getTarget().getY());

            buffer.Write((float)p.getX());
            buffer.Write((float)p.getZ());
            buffer.Write((float)p.getY());
            buffer.Write((float)p.getX());
            buffer.Write((float)p.getZ());
            buffer.Write((float)p.getY());
            buffer.Write((long)0x000000003f510fe2); // unk
            buffer.Write((float)0.577f); // unk
            buffer.Write((float)p.getTarget().getX());
            buffer.Write((float)targetZ);
            buffer.Write((float)p.getTarget().getY());
            buffer.Write((float)p.getX());
            buffer.Write((float)p.getZ());
            buffer.Write((float)p.getY());
            buffer.Write((float)p.getTarget().getX());
            buffer.Write((float)targetZ);
            buffer.Write((float)p.getTarget().getY());
            buffer.Write((float)p.getX());
            buffer.Write((float)p.getZ());
            buffer.Write((float)p.getY());
            buffer.Write((int)0); // unk
            buffer.Write((float)p.getMoveSpeed()); // Projectile speed
            buffer.Write((long)0x00000000d5002fce); // unk
            buffer.Write((int)0x7f7fffff); // unk
            buffer.Write((byte)0);
            buffer.Write((byte)0x66);
            buffer.Write((byte)0);
            buffer.Write((int)p.getProjectileId()); // unk (projectile ID)
            buffer.Write((int)0); // Second net ID
            buffer.Write((byte)0); // unk
            buffer.Write(1.0f);
            buffer.Write((int)p.getOwner().getNetId());
            buffer.Write((int)p.getOwner().getNetId());

            var c = p.getOwner() as Champion;
            if (c != null)
                buffer.Write((int)c.getChampionHash());
            else
                buffer.Write((int)0);

            buffer.Write((int)p.getNetId());
            buffer.Write((float)p.getTarget().getX());
            buffer.Write((float)targetZ);
            buffer.Write((float)p.getTarget().getY());
            buffer.Write((float)p.getTarget().getX());
            buffer.Write((float)targetZ);
            buffer.Write((float)p.getTarget().getY());
            buffer.Write((uint)0x80000000); // unk
            buffer.Write((int)0x000000bf); // unk
            buffer.Write((uint)0x80000000); // unk
            buffer.Write((int)0x2fd5843f); // unk
            buffer.Write((int)0x00000000); // unk
            buffer.Write((short)0x0000); // unk
            buffer.Write((byte)0x2f); // unk
            buffer.Write((int)0x00000000); // unk
            buffer.Write((float)p.getX());
            buffer.Write((float)p.getZ());
            buffer.Write((float)p.getY());
            buffer.Write((long)0x0000000000000000); // unk
        }