Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2014
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.83 KB | None | 0 0
  1.         [Message(ClientMessage.CreateCharacter)]
  2.         public static void OnCreateCharacter(CreateCharacter createCharacter, CharacterSession session)
  3.         {
  4.             var createChar = new CreateChar { Code = CharCreateCode.InProgress };
  5.  
  6.             if (!ClientDB.ChrRaces.Any(c => c.Id == createCharacter.RaceID) || !ClientDB.ChrClasses.Any(c => c.Id == createCharacter.ClassID))
  7.                 createChar.Code = CharCreateCode.Failed;
  8.             else if (!ClientDB.CharBaseInfo.Any(c => c.RaceId == createCharacter.RaceID && c.ClassId == createCharacter.ClassID))
  9.                 createChar.Code = CharCreateCode.Failed;
  10.             else if (DB.Character.Any<Character>(c => c.Name == createCharacter.Name))
  11.                 createChar.Code = CharCreateCode.NameInUse;
  12.             else if (createChar.Code == CharCreateCode.InProgress)
  13.             {
  14.                 if (createCharacter.TemplateSetID != 0)
  15.                 {
  16.                     var accTemplate = session.GameAccount.GameAccountCharacterTemplates.Any(t => t.SetId == createCharacter.TemplateSetID);
  17.                     var realmTemplate = session.Realm.RealmCharacterTemplates.Any(t => t.SetId == createCharacter.TemplateSetID);
  18.  
  19.                     if (accTemplate || realmTemplate)
  20.                     {
  21.                         var template = DB.Character.Single<CharacterTemplateSet>(s => s.Id == createCharacter.TemplateSetID);
  22.  
  23.                         // Not implemented = creation failed
  24.                         createChar.Code = CharCreateCode.Failed;
  25.                     }
  26.                     else
  27.                         createChar.Code = CharCreateCode.Failed;
  28.                 }
  29.                 else
  30.                 {
  31.                     var creationData = DB.Character.Single<CharacterCreationData>(d => d.Race == createCharacter.RaceID && d.Class == createCharacter.ClassID);
  32.  
  33.                     if (creationData != null)
  34.                     {
  35.                         var newChar = new Character
  36.                         {
  37.                             Name            = createCharacter.Name,
  38.                             GameAccountId   = session.GameAccount.Id,
  39.                             RealmId         = session.Realm.Id,
  40.                             Race            = createCharacter.RaceID,
  41.                             Class           = createCharacter.ClassID,
  42.                             Sex             = createCharacter.SexID,
  43.                             Skin            = createCharacter.SkinID,
  44.                             Face            = createCharacter.FaceID,
  45.                             HairStyle       = createCharacter.HairStyleID,
  46.                             HairColor       = createCharacter.HairColorID,
  47.                             FacialHairStyle = createCharacter.FacialHairStyleID,
  48.                             Level           = 1,
  49.                             Map             = creationData.Map,
  50.                             X               = creationData.X,
  51.                             Y               = creationData.Y,
  52.                             Z               = creationData.Z,
  53.                             O               = creationData.O,
  54.                             CharacterFlags  = CharacterFlags.Decline,
  55.                             FirstLogin      = true
  56.                         };
  57.  
  58.                         if (DB.Character.Add(newChar))
  59.                         {
  60.                             createChar.Code = CharCreateCode.Success;
  61.  
  62.                             Manager.Character.LearnStartAbilities(newChar);
  63.                         }
  64.                         else
  65.                             createChar.Code = CharCreateCode.Success;
  66.                     }
  67.                     else
  68.                         createChar.Code = CharCreateCode.Success;
  69.                 }
  70.             }
  71.  
  72.             session.Send(createChar);
  73.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement