コード例 #1
0
        // Token: 0x060003D8 RID: 984 RVA: 0x0000E200 File Offset: 0x0000C600
        public bool desequipar_Objeto(ObjetosInventario objeto)
        {
            bool flag = objeto == null;
            bool result;

            if (flag)
            {
                result = false;
            }
            else
            {
                bool flag2 = objeto.posicion == InventarioPosiciones.PAS_EQUIPE;
                if (flag2)
                {
                    result = false;
                }
                else
                {
                    this.cuenta.conexion.enviar_Paquete("OM" + objeto.id_inventario.ToString() + "|" + -1.ToString(), false);
                    objeto.posicion = InventarioPosiciones.PAS_EQUIPE;
                    this.cuenta.logger.log_informacion("INVENTAIRE", objeto.nombre + " déséquipé.");
                    Action <bool> action = this.inventario_actualizado;
                    if (action != null)
                    {
                        action(true);
                    }
                    result = true;
                }
            }
            return(result);
        }
コード例 #2
0
        // Token: 0x060003D5 RID: 981 RVA: 0x0000DDA0 File Offset: 0x0000C1A0
        public void eliminar_Objeto(ObjetosInventario obj, int cantidad, bool paquete_eliminar)
        {
            bool flag = obj == null;

            if (!flag)
            {
                cantidad = ((cantidad == 0) ? obj.cantidad : ((cantidad > obj.cantidad) ? obj.cantidad : cantidad));
                bool flag2 = obj.cantidad > cantidad;
                if (flag2)
                {
                    obj.cantidad -= cantidad;
                    this._objetos.TryUpdate(obj.id_inventario, obj, obj);
                }
                else
                {
                    ObjetosInventario objetosInventario;
                    this._objetos.TryRemove(obj.id_inventario, out objetosInventario);
                }
                if (paquete_eliminar)
                {
                    this.cuenta.conexion.enviar_Paquete(string.Format("Od{0}|{1}", obj.id_inventario, cantidad), false);
                    this.cuenta.logger.log_informacion("Inventaire", string.Format("{0} {1} enlevé(s).", cantidad, obj.nombre));
                }
                Action <bool> action = this.inventario_actualizado;
                if (action != null)
                {
                    action(true);
                }
            }
        }
コード例 #3
0
        // Token: 0x060003D4 RID: 980 RVA: 0x0000DCF8 File Offset: 0x0000C0F8
        public void modificar_Objetos(string paquete)
        {
            bool flag = !string.IsNullOrEmpty(paquete);

            if (flag)
            {
                string[] separador = paquete.Split(new char[]
                {
                    '|'
                });
                ObjetosInventario objetosInventario = this.objetos.FirstOrDefault((ObjetosInventario f) => f.id_inventario == uint.Parse(separador[0]));
                bool flag2 = objetosInventario != null;
                if (flag2)
                {
                    int cantidad = int.Parse(separador[1]);
                    ObjetosInventario objetosInventario2 = objetosInventario;
                    objetosInventario2.cantidad = cantidad;
                    bool flag3 = this._objetos.TryUpdate(objetosInventario.id_inventario, objetosInventario2, objetosInventario);
                    if (flag3)
                    {
                        Action <bool> action = this.inventario_actualizado;
                        if (action != null)
                        {
                            action(true);
                        }
                    }
                }
            }
        }
コード例 #4
0
        // Token: 0x060003D3 RID: 979 RVA: 0x0000DCAC File Offset: 0x0000C0AC
        public void agregar_Objetos(string paquete)
        {
            Task.Run(delegate()
            {
                foreach (string text in paquete.Split(new char[]
                {
                    ';'
                }))
                {
                    bool flag = !string.IsNullOrEmpty(text);
                    if (flag)
                    {
                        string[] array2 = text.Split(new char[]
                        {
                            '~'
                        });
                        uint key = Convert.ToUInt32(array2[0], 16);
                        ObjetosInventario value = new ObjetosInventario(text);
                        this._objetos.TryAdd(key, value);
                    }
                }
            }).Wait();
            Action <bool> action = this.inventario_actualizado;

            if (action != null)
            {
                action(true);
            }
        }
コード例 #5
0
        // Token: 0x060003D9 RID: 985 RVA: 0x0000E2B0 File Offset: 0x0000C6B0
        public void utilizar_Objeto(ObjetosInventario objeto)
        {
            bool flag = objeto == null;

            if (!flag)
            {
                bool flag2 = objeto.cantidad == 0;
                if (flag2)
                {
                    this.cuenta.logger.log_Error("INVENTAIRE", "L'objet " + objeto.nombre + " ne peut pas être utilisé, quantité insuffisante");
                }
                else
                {
                    this.cuenta.conexion.enviar_Paquete("OU" + objeto.id_inventario.ToString() + "|", false);
                    this.eliminar_Objeto(objeto, 1, false);
                    this.cuenta.logger.log_informacion("INVENTAIRE", objeto.nombre + " utilisé.");
                }
            }
        }
コード例 #6
0
        // Token: 0x060003D7 RID: 983 RVA: 0x0000DECC File Offset: 0x0000C2CC
        public bool equipar_Objeto(ObjetosInventario objeto)
        {
            bool flag = objeto == null || objeto.cantidad == 0 || this.cuenta.esta_ocupado();
            bool result;

            if (flag)
            {
                this.cuenta.logger.log_Error("INVENTAIRE", "l'objet " + objeto.nombre + " ne peut pas être équipé");
                result = false;
            }
            else
            {
                bool flag2 = objeto.nivel > (short)this.cuenta.juego.personaje.nivel;
                if (flag2)
                {
                    this.cuenta.logger.log_Error("INVENTAIRE", "Le niveau de l'objet " + objeto.nombre + " est superieur au niveau actuel.");
                    result = false;
                }
                else
                {
                    bool flag3 = objeto.posicion != InventarioPosiciones.PAS_EQUIPE;
                    if (flag3)
                    {
                        this.cuenta.logger.log_Error("INVENTAIRE", "L'objet " + objeto.nombre + " est déjà équipé");
                        result = false;
                    }
                    else
                    {
                        List <InventarioPosiciones> list = InventarioUtiles.get_Posibles_Posiciones((int)objeto.tipo);
                        bool flag4 = list == null || list.Count == 0;
                        if (flag4)
                        {
                            this.cuenta.logger.log_Error("INVENTAIRE", "L'objet " + objeto.nombre + " ne peut pas être équipé.");
                            result = false;
                        }
                        else
                        {
                            foreach (InventarioPosiciones inventarioPosiciones in list)
                            {
                                bool flag5 = this.get_Objeto_en_Posicion(inventarioPosiciones) == null;
                                if (flag5)
                                {
                                    this.cuenta.conexion.enviar_Paquete("OM" + objeto.id_inventario.ToString() + "|" + ((sbyte)inventarioPosiciones).ToString(), true);
                                    this.cuenta.logger.log_informacion("INVENTAIRE", objeto.nombre + " équipé.");
                                    objeto.posicion = inventarioPosiciones;
                                    Action <bool> action = this.inventario_actualizado;
                                    if (action != null)
                                    {
                                        action(true);
                                    }
                                    return(true);
                                }
                            }
                            ObjetosInventario objetosInventario;
                            bool flag6 = this._objetos.TryGetValue(this.get_Objeto_en_Posicion(list[0]).id_inventario, out objetosInventario);
                            if (flag6)
                            {
                                objetosInventario.posicion = InventarioPosiciones.PAS_EQUIPE;
                                this.cuenta.conexion.enviar_Paquete("OM" + objetosInventario.id_inventario.ToString() + "|" + -1.ToString(), false);
                            }
                            this.cuenta.conexion.enviar_Paquete("OM" + objeto.id_inventario.ToString() + "|" + ((sbyte)list[0]).ToString(), false);
                            bool flag7 = objeto.cantidad == 1;
                            if (flag7)
                            {
                                objeto.posicion = list[0];
                            }
                            this.cuenta.logger.log_informacion("INVENTAIRE", objeto.nombre + " équipé.");
                            Action <bool> action2 = this.inventario_actualizado;
                            if (action2 != null)
                            {
                                action2(true);
                            }
                            result = true;
                        }
                    }
                }
            }
            return(result);
        }