public static CharacterInfo NewCharacter(C.NewCharacter P, MirConnection Con) { DateTime CreationDate = Main.Now; DBCommand.Parameters.Clear(); DBCommand.CommandText = "INSERT INTO [Character Info] ([Account Index], [Character Name], [Class], [Gender], [Creator IP], [Creation Date], [Last Access]) " + "OUTPUT INSERTED.[Character Index] " + "VALUES (@AccountIndex, @CharacterName, @Class, @Gender, @CreatorIP, @CreationDate, @LastAccess)"; DBCommand.Parameters.AddWithValue("@AccountIndex", Con.Account.AccountIndex); DBCommand.Parameters.AddWithValue("@CharacterName", P.CharacterName); DBCommand.Parameters.AddWithValue("@Class", (byte)P.Class); DBCommand.Parameters.AddWithValue("@Gender", (byte)P.Gender); DBCommand.Parameters.AddWithValue("@CreatorIP", Con.IPAddress); DBCommand.Parameters.AddWithValue("@CreationDate", CreationDate.Ticks); DBCommand.Parameters.AddWithValue("@LastAccess", 0); int Index = (int)DBCommand.ExecuteScalar(); return(new CharacterInfo(P) { CharacterIndex = Index, CreationDate = CreationDate, LastAccess = DateTime.MinValue }); }
public void NewCharacter(C.NewCharacter P) { if (Stage != GameStage.Select) { return; } MirDB.CreateCharacter(P, this); }
public static void CreateCharacter(C.NewCharacter P, MirConnection Con) { if (!Settings.AllowNewCharacter) { Con.QueuePacket(new S.NewCharacter { Result = 1 }); return; } if (!AccountIDReg.IsMatch(P.CharacterName)) { Con.QueuePacket(new S.NewCharacter { Result = 2 }); return; } if (P.Gender != MirGender.Male && P.Gender != MirGender.Female) { Con.QueuePacket(new S.NewCharacter { Result = 3 }); return; } if (P.Class != MirClass.Warrior && P.Class != MirClass.Wizard && P.Class != MirClass.Taoist && P.Class != MirClass.Assassin) { Con.QueuePacket(new S.NewCharacter { Result = 4 }); return; } int CharCount = Con.Account.Characters.Count(C => !C.Deleted); if (CharCount >= Globals.MaxCharacterCount) { Con.QueuePacket(new S.NewCharacter { Result = 5 }); return; } if (CharacterExists(P.CharacterName)) { Con.QueuePacket(new S.NewCharacter { Result = 6 }); return; } CharacterInfo CI = NewCharacter(P, Con); Con.Account.Characters.Add(CI); Con.QueuePacket(new S.NewCharacterSuccess { CharInfo = CI.ToSelectInfo() }); }
public CharacterInfo(C.NewCharacter P) { CharacterName = P.CharacterName; Class = P.Class; Gender = P.Gender; }