コード例 #1
0
        public void get_Skills_Office(TcpClient cliente, string paquete)
        {
            string[]      separador_skill;
            GameCharacter personaje = cliente.Account.Game.Character;
            Oficio        oficio;
            SkillsOficio  skill = null;
            short         id_oficio, id_skill;
            byte          cantidad_minima, cantidad_maxima;
            float         tiempo;

            foreach (string datos_oficio in paquete.Substring(3).Split('|'))
            {
                id_oficio = short.Parse(datos_oficio.Split(';')[0]);
                oficio    = personaje.oficios.Find(x => x.id == id_oficio);

                if (oficio == null)
                {
                    oficio = new Oficio(id_oficio);
                    personaje.oficios.Add(oficio);
                }

                foreach (string datos_skill in datos_oficio.Split(';')[1].Split(','))
                {
                    separador_skill = datos_skill.Split('~');
                    id_skill        = short.Parse(separador_skill[0]);
                    cantidad_minima = byte.Parse(separador_skill[1]);
                    cantidad_maxima = byte.Parse(separador_skill[2]);
                    tiempo          = float.Parse(separador_skill[4]);
                    skill           = oficio.skills.Find(actividad => actividad.id == id_skill);

                    if (skill != null)
                    {
                        skill.set_Actualizar(id_skill, cantidad_minima, cantidad_maxima, tiempo);
                    }
                    else
                    {
                        oficio.skills.Add(new SkillsOficio(id_skill, cantidad_minima, cantidad_maxima, tiempo));
                    }
                }
            }

            personaje.evento_Oficios_Actualizados();
        }
コード例 #2
0
        public void get_Skills_Oficio(ClienteTcp cliente, string paquete)
        {
            PersonajeJuego personaje = cliente.cuenta.juego.personaje;
            short          id_oficio;
            short          id_skill;

            Predicate <Oficio> < > 9__0;
            Predicate <SkillsOficio> < > 9__1;
            foreach (string text in paquete.Substring(3).Split(new char[]
            {
                '|'
            }))
            {
                id_oficio = short.Parse(text.Split(new char[]
                {
                    ';'
                })[0]);
                List <Oficio>      oficios = personaje.oficios;
                Predicate <Oficio> match;
                if ((match = < > 9__0) == null)
                {
                    match = (< > 9__0 = ((Oficio x) => x.id == (int)id_oficio));
                }
                Oficio oficio = oficios.Find(match);
                bool   flag   = oficio == null;
                if (flag)
                {
                    oficio = new Oficio((int)id_oficio);
                    personaje.oficios.Add(oficio);
                }
                foreach (string text2 in text.Split(new char[]
                {
                    ';'
                })[1].Split(new char[]
                {
                    ','
                }))
                {
                    string[] array3 = text2.Split(new char[]
                    {
                        '~'
                    });
                    id_skill = short.Parse(array3[0]);
                    byte  cantidad_minima           = byte.Parse(array3[1]);
                    byte  cantidad_maxima           = byte.Parse(array3[2]);
                    float tiempo                    = float.Parse(array3[4]);
                    List <SkillsOficio>      skills = oficio.skills;
                    Predicate <SkillsOficio> match2;
                    if ((match2 = < > 9__1) == null)
                    {
                        match2 = (< > 9__1 = ((SkillsOficio actividad) => actividad.id == id_skill));
                    }
                    SkillsOficio skillsOficio = skills.Find(match2);
                    bool         flag2        = skillsOficio != null;
                    if (flag2)
                    {
                        skillsOficio.set_Actualizar(id_skill, cantidad_minima, cantidad_maxima, tiempo);
                    }
                    else
                    {
                        oficio.skills.Add(new SkillsOficio(id_skill, cantidad_minima, cantidad_maxima, tiempo));
                    }
                }
            }
            personaje.evento_Oficios_Actualizados();
        }