Esempio n. 1
0
    public static WorldMap_OtherRoleUseSkillProto GetProto(byte[] buffer)
    {
        WorldMap_OtherRoleUseSkillProto proto = new WorldMap_OtherRoleUseSkillProto();

        using (MMO_MemoryStream ms = new MMO_MemoryStream(buffer))
        {
            proto.AttackRoleId  = ms.ReadInt();
            proto.SkillId       = ms.ReadInt();
            proto.SkillLevel    = ms.ReadInt();
            proto.RolePosX      = ms.ReadFloat();
            proto.RolePosY      = ms.ReadFloat();
            proto.RolePosZ      = ms.ReadFloat();
            proto.RoleYAngle    = ms.ReadFloat();
            proto.BeAttackCount = ms.ReadInt();
            proto.ItemList      = new List <BeAttackItem>();
            for (int i = 0; i < proto.BeAttackCount; i++)
            {
                BeAttackItem _Item = new BeAttackItem();
                _Item.BeAttackRoleId = ms.ReadInt();
                _Item.ReduceHp       = ms.ReadInt();
                _Item.IsCri          = (byte)ms.ReadByte();
                proto.ItemList.Add(_Item);
            }
        }
        return(proto);
    }
    public static WorldMap_CurrRoleUseSkillProto GetProto(MMO_MemoryStream ms, byte[] buffer)
    {
        WorldMap_CurrRoleUseSkillProto proto = new WorldMap_CurrRoleUseSkillProto();

        ms.SetLength(0);
        ms.Write(buffer, 0, buffer.Length);
        ms.Position = 0;

        proto.SkillId       = ms.ReadInt();
        proto.SkillLevel    = ms.ReadInt();
        proto.RolePosX      = ms.ReadFloat();
        proto.RolePosY      = ms.ReadFloat();
        proto.RolePosZ      = ms.ReadFloat();
        proto.RoleYAngle    = ms.ReadFloat();
        proto.BeAttackCount = ms.ReadInt();
        proto.ItemList      = new List <BeAttackItem>();
        for (int i = 0; i < proto.BeAttackCount; i++)
        {
            BeAttackItem _Item = new BeAttackItem();
            _Item.BeAttackRoleId = ms.ReadInt();
            proto.ItemList.Add(_Item);
        }

        return(proto);
    }
    public static WorldMap_OtherRoleUseSkillProto GetProto(byte[] buffer, bool isChild = false)
    {
        WorldMap_OtherRoleUseSkillProto proto = new WorldMap_OtherRoleUseSkillProto();

        MMO_MemoryStream ms = null;

        if (!isChild)
        {
            ms = GameEntry.Socket.SocketSendMS;
        }
        else
        {
            ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>();
        }
        ms.SetLength(0);
        ms.Write(buffer, 0, buffer.Length);
        ms.Position = 0;

        proto.AttackRoleId  = ms.ReadInt();
        proto.SkillId       = ms.ReadInt();
        proto.SkillLevel    = ms.ReadInt();
        proto.RolePosX      = ms.ReadFloat();
        proto.RolePosY      = ms.ReadFloat();
        proto.RolePosZ      = ms.ReadFloat();
        proto.RoleYAngle    = ms.ReadFloat();
        proto.BeAttackCount = ms.ReadInt();
        proto.ItemList      = new List <BeAttackItem>();
        for (int i = 0; i < proto.BeAttackCount; i++)
        {
            BeAttackItem _Item = new BeAttackItem();
            _Item.BeAttackRoleId = ms.ReadInt();
            _Item.ReduceHp       = ms.ReadInt();
            _Item.IsCri          = (byte)ms.ReadByte();
            proto.ItemList.Add(_Item);
        }

        if (isChild)
        {
            GameEntry.Pool.EnqueueClassObject(ms);
        }
        return(proto);
    }