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(); }
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(); }