public SCharList CharList; // 12 a 855 = 844 // Construtores public static P_110 New(Client client) { P_110 tmp = new P_110 { Header = SHeader.New(0x110, Marshal.SizeOf <P_110> ( ), 30001), CharList = SCharList.New(client) }; return(tmp); }
// Controlador public static void Controller(Client client, P_20F rcv) { if (!Regex.IsMatch(rcv.Name, @"^[A-Za-z0-9-]{4,12}$")) { client.Send(P_101.New("Somente letras e números no nome. 4 a 12 caracteres.")); } else if (rcv.Slot < 0 || rcv.Slot > 3) { client.Close( ); } else if (rcv.ClassInfo < 0 || rcv.ClassInfo > 3) { client.Close( ); } else { // Retorna character da conta ref Character character = ref client.Account.Characters [rcv.Slot]; // Verifica se não está vaziu if (character != null) { client.Close( ); } else { // Inicializa novo character character = new Character( ); // Referencia o MOB do character ref SMob mob = ref character.Mob; // Inicializa a classe selecionada no MOB switch (rcv.ClassInfo) { case 1: mob = SMob.FM(rcv.Name); break; case 2: mob = SMob.BM(rcv.Name); break; case 3: mob = SMob.HT(rcv.Name); break; default: mob = SMob.TK(rcv.Name); break; } // Atualiza os status do MOB Functions.GetCurrentScore(character, true); // Envia os pacotes de criação de personagem client.Send(P_110.New(client)); client.Send(P_101.New($"Personagem [{rcv.Name}] criado! Bom jogo!")); }
// Controlador public static void Controller(Client client, P_20F rcv) { if (!Regex.IsMatch(rcv.Name, @"^[A-Za-z0-9-]{4,12}$")) { client.Send(P_101.New("Somente letras e números no nome. 4 a 12 caracteres.")); } else if (rcv.Slot < 0 || rcv.Slot > 3) { client.Close( ); } else if (rcv.ClassInfo < 0 || rcv.ClassInfo > 3) { client.Close( ); } else { // Retorna character da conta ref Character character = ref client.Account.Characters[rcv.Slot]; // Verifica se não está vaziu if (character != null) { client.Close( ); } else { character = new Character(SMob.New()); character.Mob.Name = rcv.Name; character.Mob.ClassInfo = (ClassInfo)rcv.ClassInfo; character = UserMobDAO.CreateOrUpdateChar(character); if (character != null) { //Atualiza o xml da account para salvar o novo char criado UserAccountDAO.CreateOrUpdateAccount(client.Account); // Envia os pacotes de criação de personagem client.Send(P_110.New(client)); client.Send(P_101.New($"Personagem [{character.Mob.Name}] criado! Bom jogo!")); } else { client.Send(P_101.New($"Erro ao criar o personagem, contate o suporte!")); } } }