コード例 #1
0
        private void SetFields(string name, int hashCode, ToonClass @class, ToonFlags flags, byte level, GameAccount owner, uint timePlayed)
        {
            //this.BnetEntityID = bnet.protocol.EntityId.CreateBuilder().SetHigh((ulong)EntityIdHelper.HighIdType.ToonId + this.PersistentID).SetLow(this.PersistentID).Build();
            this.D3EntityID = D3.OnlineService.EntityId.CreateBuilder().SetIdHigh((ulong)EntityIdHelper.HighIdType.ToonId).SetIdLow(this.PersistentID).Build();

            this.Name        = name;
            this.HashCode    = hashCode;
            this.Class       = @class;
            this.Flags       = flags;
            this.Level       = level;
            this.GameAccount = owner;
            this.TimePlayed  = timePlayed;

            var visualItems = new[]
            {
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Head
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Chest
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Feet
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Hands
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Weapon (1)
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Weapon (2)
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Shoulders
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Legs
            };

            this.Equipment = D3.Hero.VisualEquipment.CreateBuilder().AddRangeVisualItem(visualItems).Build();
        }
コード例 #2
0
ファイル: Toon.cs プロジェクト: DZilli/mooege
        private void SetFields(string name, int hashCode, int @class, ToonFlags flags, byte level, GameAccount owner, uint timePlayed, int goldAmount, Dictionary <uint, Item> items)
        {
            this.D3EntityID = D3.OnlineService.EntityId.CreateBuilder().SetIdHigh((ulong)EntityIdHelper.HighIdType.ToonId).SetIdLow(this.PersistentID).Build();


            this.HeroNameField.Value  = name;
            this.HeroClassField.Value = @class;
            this.HeroFlagsField.Value = (uint)flags;
            this.HeroLevelField.Value = level;
            this.GameAccount          = owner;
            this.HashCode             = hashCode;
            this.TimePlayed           = timePlayed;
            this.GoldAmount           = goldAmount;
            this.Field6.Value         = 99999999999999999;
            this.Field7.Value         = 99999999999999999;
            this.Items = items;

            var visualItems = new[]
            {
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Head
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Chest
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Feet
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Hands
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Weapon (1)
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Weapon (2)
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Shoulders
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Legs
            };

            this.HeroVisualEquipmentField.Value = D3.Hero.VisualEquipment.CreateBuilder().AddRangeVisualItem(visualItems).Build();
        }
コード例 #3
0
ファイル: GameCommands.cs プロジェクト: realTobby/NullD
            public string ChangeGender(string[] @params, LogNetClient invokerClient)
            {
                if (invokerClient == null)
                {
                    return("You can not invoke this command from console.");
                }

                if (invokerClient.InGameClient == null)
                {
                    return("You can only invoke this command while ingame.");
                }

                Toon      toon       = invokerClient.Account.CurrentGameAccount.CurrentToon;
                ToonFlags gender     = invokerClient.Account.CurrentGameAccount.CurrentToon.Flags;
                var       dbToon     = DBSessions.AccountSession.Get <DBToon>(toon.PersistentID);
                string    lastGender = toon.DBToon.Flags.ToString();

                if (gender == ToonFlags.Male)
                {
                    toon.DBToon.Flags = ToonFlags.Female;
                }
                else if (gender == ToonFlags.Female)
                {
                    toon.DBToon.Flags = ToonFlags.Male;
                }

                DBSessions.AccountSession.SaveOrUpdate(dbToon);
                DBSessions.AccountSession.Flush();

                return(string.Format("Gender {0} changed to {1}!. Reload to see the change.", lastGender, toon.DBToon.Flags.ToString()));
            }
コード例 #4
0
        private void SetFields(string name, int hashCode, ToonClass @class, ToonFlags flags, byte level, Account owner, uint timePlayed)
        {
            this.ToonHandle     = new ToonHandleHelper(this.PersistentID);
            this.D3EntityID     = this.ToonHandle.ToD3EntityID();
            this.BnetEntityID   = this.ToonHandle.ToBnetEntityID();
            this.Name           = name;
            this.HashCode       = hashCode;
            this.HashCodeString = HashCode.ToString("D3");
            this.NameText       = D3.Hero.NameText.CreateBuilder().SetName(string.Format("{0}#{1}", this.Name, this.HashCodeString)).Build();
            this.Class          = @class;
            this.Flags          = flags;
            this.Level          = level;
            this.Owner          = owner;
            this.TimePlayed     = timePlayed;

            var visualItems = new[]
            {
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Head
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Chest
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Feet
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Hands
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Weapon (1)
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Weapon (2)
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Shoulders
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Legs
            };

            this.Equipment = D3.Hero.VisualEquipment.CreateBuilder().AddRangeVisualItem(visualItems).Build();
        }
コード例 #5
0
        public static Toon CreateNewToon(string name, int classId, ToonFlags flags, byte level, GameAccount gameAccount)
        {
            #region LevelConfs Server.conf
            if (Mooege.Net.GS.Config.Instance.LevelStarter < 1)
            {
                level = 1;
            }
            else if (Mooege.Net.GS.Config.Instance.LevelStarter > Mooege.Net.GS.Config.Instance.MaxLevel)
            {
                level = (byte)Mooege.Net.GS.Config.Instance.MaxLevel;
            }
            else
            {
                level = (byte)Mooege.Net.GS.Config.Instance.LevelStarter;
            }
            #endregion

            var dbGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID);
            var newDBToon     = new DBToon
            {
                Class = @Toon.GetClassByID(classId),
                Name  = name,
                /*HashCode = GetUnusedHashCodeForToonName(name),*/
                Flags         = flags,
                Level         = level,
                DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID)
            };

            dbGameAccount.DBToons.Add(newDBToon);
            DBSessions.AccountSession.SaveOrUpdate(dbGameAccount);
            DBSessions.AccountSession.Flush();


            return(GetToonByLowID(newDBToon.Id));
        }
コード例 #6
0
ファイル: ToonManager.cs プロジェクト: n4v/mooege
        public static Toon CreateNewToon(string name, int classId, ToonFlags flags, byte level, GameAccount gameAccount)
        {
            var dbGameAccount = DBSessions.AccountSession.Get<DBGameAccount>(gameAccount.PersistentID);
            var newDBToon = new DBToon
                                {
                                    Class = @Toon.GetClassByID(classId),
                                    Name = name,
                                    /*HashCode = GetUnusedHashCodeForToonName(name),*/
                                    Flags = flags,
                                    Level = level,
                                    DBGameAccount = DBSessions.AccountSession.Get<DBGameAccount>(gameAccount.PersistentID)
                                };

            dbGameAccount.DBToons.Add(newDBToon);
            DBSessions.AccountSession.SaveOrUpdate(dbGameAccount);
            DBSessions.AccountSession.Flush();


            return GetToonByLowID(newDBToon.Id);
        }
コード例 #7
0
        public static Toon CreateNewToon(string name, int classId, ToonFlags flags, byte level, GameAccount gameAccount)
        {
            var dbGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID);
            var newDBToon     = new DBToon
            {
                Class = @Toon.GetClassByID(classId),
                Name  = name,
                /*HashCode = GetUnusedHashCodeForToonName(name),*/
                Flags         = flags,
                Level         = level,
                DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID)
            };

            dbGameAccount.DBToons.Add(newDBToon);
            DBSessions.AccountSession.SaveOrUpdate(dbGameAccount);
            DBSessions.AccountSession.Flush();


            return(GetToonByLowID(newDBToon.Id));
        }
コード例 #8
0
ファイル: Toon.cs プロジェクト: tovipoussin/mooege
 public Toon(string name, int hashCode, int classHash, ToonFlags flags, byte level, GameAccount account) // Toon with **newly generated** persistent ID
     : base(StringHashHelper.HashIdentity(name + "#" + hashCode.ToString("D3")))
 {
     this.HeroClassField.transformDelegate += HeroClassFieldTransform;
     this.SetFields(name, hashCode, Toon.GetClassFromHash(classHash), flags, level, account, 0, 0);
 }
コード例 #9
0
ファイル: Toon.cs プロジェクト: kiwi0530/mooege
        public Toon(string name, int hashCode, int classId, ToonFlags flags, byte level, GameAccount account) // Toon with **newly generated** persistent ID
            : base(StringHashHelper.HashIdentity(name + "#" + hashCode.ToString("D3")))
        {
            this.D3EntityID = D3.OnlineService.EntityId.CreateBuilder().SetIdHigh((ulong)EntityIdHelper.HighIdType.ToonId).SetIdLow(this.PersistentID).Build();

            this.Name = name;
            this.HashCode = hashCode;
            this.Class = @GetClassByID(classId);
            this.Flags = flags;
            this.Level = level;
            this.ExperienceNext = Player.LevelBorders[level];
            this.GameAccount = account;
            this.TimePlayed = 0;

            var visualItems = new[]
            {                                
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Head
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Chest
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Feet
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Hands
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Weapon (1)
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Weapon (2)
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Shoulders
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Legs
            };

            this.HeroVisualEquipmentField.Value = D3.Hero.VisualEquipment.CreateBuilder().AddRangeVisualItem(visualItems).Build();
        }
コード例 #10
0
ファイル: ToonManager.cs プロジェクト: xPathin/DiIiS-
        public static Toon CreateNewToon(string name, int classId, bool isHardcore, ToonFlags flags, byte level, GameAccount gameAccount)
        {
            #region LevelConfs Server.conf
            if (Mooege.Net.GS.Config.Instance.LevelStarter < 1)
            {
                level = 1;
            }
            else if (Mooege.Net.GS.Config.Instance.LevelStarter > Mooege.Net.GS.Config.Instance.MaxLevel)
            {
                level = (byte)Mooege.Net.GS.Config.Instance.MaxLevel;
            }
            else
            {
                level = (byte)Mooege.Net.GS.Config.Instance.LevelStarter;
            }
            #endregion

            // Create Character
            var dbGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID);
            var newDBToon     = new DBToon
            {
                Class = @Toon.GetClassByID(classId),
                Name  = name,
                /*HashCode = GetUnusedHashCodeForToonName(name),*/
                Hardcore = isHardcore,
                Flags    = flags,
                Level    = level,

                DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID)
            };



            dbGameAccount.DBToons.Add(newDBToon);



            //Стандартные Предметы
            #region Стандартные предметы Barbarian
            if (newDBToon.Class == ToonClass.Barbarian)
            {
                #region Топор
                //Структура сущности предмета
                DBItemInstance BARAxeInstance = new DBItemInstance
                {
                    GbId       = 1661412390, //
                    Affixes    = "",
                    Attributes = "295,:1|" +
                                 "1.401298E-45;91,:0|" +
                                 "0;308,:1|" +
                                 "1.401298E-45;312,:1371713298|" +
                                 "1.045201E+11;157,:1067869798|" +
                                 "1.3;159,:1067869798|" +
                                 "1.3;161,:1067869798|" +
                                 "1.3;412,:1067869798|" +
                                 "1.3;414,:1067869798|" +
                                 "1.3;420,:1067869798|" +
                                 "1.3;164,:1067869798|" +
                                 "1.3;326,:0|" +
                                 "0;327,:0|" +
                                 "0;328,:0|" +
                                 "0;329,:0|" +
                                 "0;413,:0|" +
                                 "0;415,:0|" +
                                 "0;183,0:1073741824|" +
                                 "2;177,0:1077936128|" +
                                 "3;184,0:1073741824|" +
                                 "2;178,0:1077936128|" +
                                 "3;179,:1077936128|" +
                                 "3;185,:1073741824|" +
                                 "2;416,0:1073741824|" +
                                 "2;421,0:1073741824|" +
                                 "2;173,0:1073741824|" +
                                 "2;172,0:1073741824|" +
                                 "2;172,:0|" +
                                 "0;417,0:0|" +
                                 "0;175,0:1065353216|" +
                                 "1;176,0:1065353216|" +
                                 "1;180,0:1065353216|" +
                                 "1;181,:1065353216|" +
                                 "1;418,0:1065353216|" +
                                 "1;422,0:1065353216|" +
                                 "1;169,0:1065353216|" +
                                 "1;419,0:0|" +
                                 "0;89,30592:1|" +
                                 "1.401298E-45;90,30592:1|" +
                                 "1.401298E-45;297,:1|" +
                                 "1.401298E-45"
                };
                // Добавляем сущность в базу
                DBSessions.AccountSession.SaveOrUpdate(BARAxeInstance);
                // Структура предмета
                DBInventory BARAxeFirstWeapon = new DBInventory
                {
                    DBGameAccount  = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту
                    DBItemInstance = BARAxeInstance,                                                          // Использовать свеже созданную сущность предмета
                    Hardcore       = isHardcore,                                                              // Хардкорный или нет персонаж
                    DBToon         = newDBToon,                                                               // Выдать созданному персонажу
                    EquipmentSlot  = 4,                                                                       // Вооружить в первую руку
                    LocationX      = 0,
                    LocationY      = 0
                };
                // Добавляем предмет в базу
                DBSessions.AccountSession.SaveOrUpdate(BARAxeFirstWeapon);
                #endregion

                #region Щиток
                //Структура сущности предмета
                DBItemInstance BARBuckInstance = new DBItemInstance
                {
                    GbId       = 1815806857, //
                    Affixes    = "",
                    Attributes = "295,:2|2,802597E-45;91,:0|0;308,:1|1,401298E-45;312,:978984494|0,0008320537;48,:1090519040|8;51,:1090519040|8;52,:1090519040|8;53,:1090519040|8;207,:1040522936|0,13;208,:1040522936|0,13;205,:1040522936|0,13;213,:1088421888|7;211,:1088421888|7;212,:1094713344|12;214,:1084227584|5;297,:1|1,401298E-45"
                };
                // Добавляем сущность в базу
                DBSessions.AccountSession.SaveOrUpdate(BARBuckInstance);
                // Структура предмета
                DBInventory BARBuckler = new DBInventory
                {
                    DBGameAccount  = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту
                    DBItemInstance = BARBuckInstance,                                                         // Использовать свеже созданную сущность предмета
                    Hardcore       = isHardcore,                                                              // Хардкорный или нет персонаж
                    DBToon         = newDBToon,                                                               // Выдать созданному персонажу
                    EquipmentSlot  = 3,                                                                       // Вооружить в первую руку
                    LocationX      = 0,
                    LocationY      = 0
                };
                // Добавляем предмет в базу
                DBSessions.AccountSession.SaveOrUpdate(BARBuckler);
                #endregion
            }
            #endregion

            #region Стандартные предметы Demon Hunter
            if (newDBToon.Class == ToonClass.DemonHunter)
            {
                #region Арбалет
                //Структура сущности предмета
                DBItemInstance DHFWInstance = new DBItemInstance
                {
                    GbId       = -1647832978,                         //
                    Affixes    = "",
                    Attributes = "295,:0 |" +                         //Item Quality Level
                                 " 2,802597E-45; 91,:0 |" +           //TeamID
                                 " 0; 308,:1 |" +                     // ItemStackQuantityLo
                                 " 1,401298E-45; 312,:1381516818 |" + // Seed
                                 " 1,767016E+35; 157,:1070386381 |" + // Attacks_Per_Second_Item
                                 " 1,6; 159,:1070386381 |" +          // Attacks_Per_Second_Item_Subtotal
                                 " 1,6; 161,:1070386381 |" +          // Attacks_Per_Second_Item_Total
                                 " 1,6; 412,:1070386381 |" +          // Attacks_Per_Second_Item_MainHand
                                 " 1,6; 414,:1070386381 |" +          // Attacks_Per_Second_Item_Total_MainHand
                                 " 1,6; 420,:1070386381 |" +          // Attacks_Per_Second_Item_CurrentHand
                                 " 1,6; 164,:1070386381 |" +          // Attacks_Per_Second_Total
                                 " 1; 326,:0 |" +                     // InitialCooldownMinTotal
                                 " 0; 327,:0 |" +                     // InitialCooldownDeltaTotal
                                 " 0; 328,:0 |" +                     // Attack_Cooldown_Min_Total
                                 " 0; 329,:0 |" +                     // Attack_Cooldown_Delta_Total
                                 " 0; 413,:0 |" +                     // Attacks_Per_Second_Item_OffHand
                                 " 0; 415,:0 |" +                     // Attacks_Per_Second_Item_Total_OffHand
                                 " 0;183,0:1073741824 |" +            // Damage_Weapon_Min
                                 " 2;177,0:1096810496 |" +            // Damage_Weapon_Max
                                 " 14;184,0:1073741824 |" +           // Damage_Weapon_Min_Total
                                 " 2;178,0:1096810496 |" +            // Damage_Weapon_Max_Total
                                 " 14;179,:1096810496 |" +            // Damage_Weapon_Max_Total_All
                                 " 14;185,:1073741824 |" +            // Damage_Weapon_Min_Total_All
                                 " 2;416,0:1073741824 |" +            // Damage_Weapon_Min_Total_MainHand
                                 " 2;421,0:1073741824 |" +            // Damage_Weapon_Min_Total_CurrentHand
                                 " 2;173,0:1073741824 |" +            // Damage_Min_Subtotal
                                 " 2;172,0:1073741824 |" +            // Damage_Min_Total
                                 " 2;172,:0 |" +                      // Damage_Min_Total
                                 " 0;417,0:0 |" +                     // Damage_Weapon_Min_Total_OffHand
                                 " 0;175,0:1094713344 |" +            // Damage_Weapon_Delta
                                 " 12;176,0:1094713344 |" +           // Damage_Weapon_Delta_SubTotal
                                 " 12;180,0:1094713344 |" +           // Damage_Weapon_Delta_Total
                                 " 12;181,:1094713344 |" +            // Damage_Weapon_Delta_Total_All
                                 " 12;418,0:1094713344 |" +           // Damage_Weapon_Delta_Total_MainHand
                                 " 12;422,0:1094713344 |" +           // Damage_Weapon_Delta_Total_CurrentHand
                                 " 12;169,0:1094713344 |" +           // Damage_Delta_Total
                                 " 12;419,0:0|" +                     // Damage_Weapon_Delta_Total_OffHand
                                 " 0; 89,30599:1 |" +                 // Skill
                                 " 1,401298E-45; 90,30599:1 |" +      // Skill_Total
                                 " 1,401298E-45; 297,:1 |" +          // Item_Equipped
                                 " 1,401298E-45"
                };
                // Добавляем сущность в базу
                DBSessions.AccountSession.SaveOrUpdate(DHFWInstance);
                // Структура предмета
                DBInventory DHFirstWeapon = new DBInventory
                {
                    DBGameAccount  = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту
                    DBItemInstance = DHFWInstance,                                                            // Использовать свеже созданную сущность предмета
                    DBToon         = newDBToon,                                                               // Выдать созданному персонажу
                    Hardcore       = isHardcore,                                                              // Хардкорный или нет персонаж
                    EquipmentSlot  = 4,                                                                       // Вооружить в первую руку
                    LocationX      = 0,
                    LocationY      = 0
                };
                // Добавляем предмет в базу
                DBSessions.AccountSession.SaveOrUpdate(DHFirstWeapon);
                #endregion
            }
            #endregion

            #region Стандартные предметы Monk
            if (newDBToon.Class == ToonClass.Monk)
            {
                #region Перчатки
                //Структура сущности предмета
                DBItemInstance MKKnuckInstance = new DBItemInstance
                {
                    GbId       = 1236604967, //
                    Affixes    = "",
                    Attributes = "295,:2|2,802597E-45;91,:0|0;308,:1|1,401298E-45;312,:277358000|5,370061E-29;157,:1067030938|1,2;159,:1067030938|1,2;161,:1067030938|1,2;412,:1067030938|1,2;414,:1067030938|1,2;420,:1067030938|1,2;164,:1067030938|1,2;326,:0|0;327,:0|0;328,:0|0;329,:0|0;413,:0|0;415,:0|0;183,0:1073741824|2;177,0:1077936128|3;184,0:1073741824|2;178,0:1077936128|3;179,:1077936128|3;185,:1073741824|2;416,0:1073741824|2;421,0:1073741824|2;173,0:1073741824|2;172,0:1073741824|2;172,:0|0;417,0:0|0;175,0:1065353216|1;176,0:1065353216|1;180,0:1065353216|1;181,:1065353216|1;418,0:1065353216|1;422,0:1065353216|1;169,0:1065353216|1;419,0:0|0;89,30592:1|1,401298E-45;90,30592:1|1,401298E-45;297,:1|1,401298E-45"
                };
                // Добавляем сущность в базу
                DBSessions.AccountSession.SaveOrUpdate(MKKnuckInstance);
                // Структура предмета
                DBInventory MKKnucktWeapon = new DBInventory
                {
                    DBGameAccount  = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту
                    DBItemInstance = MKKnuckInstance,                                                         // Использовать свеже созданную сущность предмета
                    DBToon         = newDBToon,                                                               // Выдать созданному персонажу
                    Hardcore       = isHardcore,                                                              // Хардкорный или нет персонаж
                    EquipmentSlot  = 4,                                                                       // Вооружить в первую руку
                    LocationX      = 0,
                    LocationY      = 0
                };
                // Добавляем предмет в базу
                DBSessions.AccountSession.SaveOrUpdate(MKKnucktWeapon);
                #endregion
            }
            #endregion

            #region Стандартные предметы Witch Doctor
            if (newDBToon.Class == ToonClass.WitchDoctor)
            {
                #region Нож
                //Структура сущности предмета
                DBItemInstance WDKnifeInstance = new DBItemInstance
                {
                    GbId       = -635269584, //
                    Affixes    = "",
                    Attributes = "295,:1|1,401298E-45;91,:0|0;308,:1|1,401298E-45;312,:233363062|1,434973E-30;157,:1067030938|1,2;159,:1067030938|1,2;161,:1067030938|1,2;412,:1067030938|1,2;414,:1067030938|1,2;420,:1067030938|1,2;164,:1067030938|1,2;326,:0|0;327,:0|0;328,:0|0;329,:0|0;413,:0|0;415,:0|0;183,0:1073741824|2;177,0:1077936128|3;184,0:1073741824|2;178,0:1077936128|3;179,:1077936128|3;185,:1073741824|2;416,0:1073741824|2;421,0:1073741824|2;173,0:1073741824|2;172,0:1073741824|2;172,:0|0;417,0:0|0;175,0:1065353216|1;176,0:1065353216|1;180,0:1065353216|1;181,:1065353216|1;418,0:1065353216|1;422,0:1065353216|1;169,0:1065353216|1;419,0:0|0;89,30592:1|1,401298E-45;90,30592:1|1,401298E-45;297,:1|1,401298E-45"
                };
                // Добавляем сущность в базу
                DBSessions.AccountSession.SaveOrUpdate(WDKnifeInstance);
                // Структура предмета
                DBInventory WDKnifeWeapon = new DBInventory
                {
                    DBGameAccount  = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту
                    DBItemInstance = WDKnifeInstance,                                                         // Использовать свеже созданную сущность предмета
                    DBToon         = newDBToon,                                                               // Выдать созданному персонажу
                    Hardcore       = isHardcore,                                                              // Хардкорный или нет персонаж
                    EquipmentSlot  = 4,                                                                       // Вооружить в первую руку
                    LocationX      = 0,
                    LocationY      = 0
                };
                // Добавляем предмет в базу
                DBSessions.AccountSession.SaveOrUpdate(WDKnifeWeapon);
                #endregion
            }
            #endregion

            #region Стандартные предметы Wizzard
            if (newDBToon.Class == ToonClass.Wizard)
            {
                #region Палочка
                //Структура сущности предмета
                DBItemInstance WWandInstance = new DBItemInstance
                {
                    GbId       = -635269584, //
                    Affixes    = "",
                    Attributes = "295,:1|1,401298E-45;91,:0|0;308,:1|1,401298E-45;312,:233363062|1,434973E-30;157,:1067030938|1,2;159,:1067030938|1,2;161,:1067030938|1,2;412,:1067030938|1,2;414,:1067030938|1,2;420,:1067030938|1,2;164,:1067030938|1,2;326,:0|0;327,:0|0;328,:0|0;329,:0|0;413,:0|0;415,:0|0;183,0:1073741824|2;177,0:1077936128|3;184,0:1073741824|2;178,0:1077936128|3;179,:1077936128|3;185,:1073741824|2;416,0:1073741824|2;421,0:1073741824|2;173,0:1073741824|2;172,0:1073741824|2;172,:0|0;417,0:0|0;175,0:1065353216|1;176,0:1065353216|1;180,0:1065353216|1;181,:1065353216|1;418,0:1065353216|1;422,0:1065353216|1;169,0:1065353216|1;419,0:0|0;89,30592:1|1,401298E-45;90,30592:1|1,401298E-45;297,:1|1,401298E-45"
                };
                // Добавляем сущность в базу
                DBSessions.AccountSession.SaveOrUpdate(WWandInstance);
                // Структура предмета
                DBInventory WWandWeapon = new DBInventory
                {
                    DBGameAccount  = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту
                    DBItemInstance = WWandInstance,                                                           // Использовать свеже созданную сущность предмета
                    DBToon         = newDBToon,                                                               // Выдать созданному персонажу
                    Hardcore       = isHardcore,                                                              // Хардкорный или нет персонаж
                    EquipmentSlot  = 4,                                                                       // Вооружить в первую руку
                    LocationX      = 0,
                    LocationY      = 0
                };
                // Добавляем предмет в базу
                DBSessions.AccountSession.SaveOrUpdate(WWandWeapon);
                #endregion
            }
            #endregion


            #region Начало прогресса. 1 Акт, Пока не взятый квест.
            DBProgressToon StartProgress = new DBProgressToon
            {
                DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту
                DBToon        = newDBToon,                                                               // Выдать созданному персонажу
                LastQuest     = 0,                                                                       // Последний выполненный квест
                StepOfQuest   = 0,                                                                       //Текущий шаг квеста
                ActiveAct     = 1,                                                                       // Активный акт
                ActiveQuest   = -1                                                                       // Активный квест
            };
            DBSessions.AccountSession.SaveOrUpdate(StartProgress);
            DBPortalOfToon NullPortal = new DBPortalOfToon
            {
                DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID),
                DBToon        = newDBToon,
                X             = 0,
                Y             = 0,
                Z             = 0,
                WorldDest     = 0
            };
            DBSessions.AccountSession.SaveOrUpdate(NullPortal);
            #endregion

            DBSessions.AccountSession.Flush();
            DBSessions.AccountSession.Refresh(dbGameAccount);
            return(GetToonByLowID(newDBToon.Id));
        }
コード例 #11
0
ファイル: Toon.cs プロジェクト: s018mes/mooege
 public Toon(string name, int hashCode, int classId, ToonFlags flags, byte level, GameAccount account) // Toon with **newly generated** persistent ID
     : base(StringHashHelper.HashIdentity(name + "#" + hashCode.ToString("D3")))
 {
     this.SetFields(name, hashCode, GetClassByID(classId), flags, level, account, 0);
 }
コード例 #12
0
ファイル: Toon.cs プロジェクト: s018mes/mooege
        private void SetFields(string name, int hashCode, ToonClass @class, ToonFlags flags, byte level, GameAccount owner, uint timePlayed)
        {
            //this.BnetEntityID = bnet.protocol.EntityId.CreateBuilder().SetHigh((ulong)EntityIdHelper.HighIdType.ToonId + this.PersistentID).SetLow(this.PersistentID).Build();
            this.D3EntityID = D3.OnlineService.EntityId.CreateBuilder().SetIdHigh((ulong)EntityIdHelper.HighIdType.ToonId).SetIdLow(this.PersistentID).Build();

            this.Name = name;
            this.HashCode = hashCode;
            this.Class = @class;
            this.Flags = flags;
            this.Level = level;
            this.GameAccount = owner;
            this.TimePlayed = timePlayed;

            var visualItems = new[]
            {                                
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Head
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Chest
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Feet
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Hands
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Weapon (1)
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Weapon (2)
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Shoulders
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Legs
            };

            this.Equipment = D3.Hero.VisualEquipment.CreateBuilder().AddRangeVisualItem(visualItems).Build();

        }
コード例 #13
0
ファイル: Toon.cs プロジェクト: rdavydov/d3sharp
 public Toon(string name, int classId, ToonFlags flags, byte level, Account account) // Toon with **newly generated** persistent ID
     : base(StringHashHelper.HashIdentity(name))
 {
     this.SetFields(name, GetClassByID(classId), flags, level, account);
 }
コード例 #14
0
 public Toon(string name, int hashCode, int classId, ToonFlags flags, byte level, GameAccount account) // Toon with **newly generated** persistent ID
     : base(StringHashHelper.HashIdentity(name + "#" + hashCode.ToString("D3")))
 {
     this.SetFields(name, hashCode, GetClassByID(classId), flags, level, account, 0);
 }
コード例 #15
0
ファイル: Toon.cs プロジェクト: zicnic/d3sharp
 public Toon(string name, int classId, ToonFlags flags, byte level, Account account) // Toon with **newly generated** persistent ID
     : base(StringHashHelper.HashIdentity(name))
 {
     this.SetFields(name, GetClassByID(classId), flags, level, account);
 }
コード例 #16
0
ファイル: Toon.cs プロジェクト: tovipoussin/mooege
        private void SetFields(string name, int hashCode, int @class, ToonFlags flags, byte level, GameAccount owner, uint timePlayed, int goldAmount)
        {
            this.D3EntityID = D3.OnlineService.EntityId.CreateBuilder().SetIdHigh((ulong)EntityIdHelper.HighIdType.ToonId).SetIdLow(this.PersistentID).Build();


            this.HeroNameField.Value = name;
            this.HeroClassField.Value = @class;
            this.HeroFlagsField.Value = (uint)flags;
            this.HeroLevelField.Value = level;
            this.GameAccount = owner;
            this.HashCode = hashCode;
            this.TimePlayed = timePlayed;
            this.GoldAmount = goldAmount;
            this.Field6.Value = 99999999999999999;
            this.Field7.Value = 99999999999999999;

            var visualItems = new[]
            {                                
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Head
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Chest
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Feet
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Hands
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Weapon (1)
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Weapon (2)
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Shoulders
                D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Legs
            };

            this.HeroVisualEquipmentField.Value = D3.Hero.VisualEquipment.CreateBuilder().AddRangeVisualItem(visualItems).Build();

        }
コード例 #17
0
        public static Toon CreateNewToon(string name, int classId, ToonFlags flags, byte level, GameAccount gameAccount)
        {
            #region LevelConfs Server.conf
            if (NullD.Net.GS.Config.Instance.LevelStarter < 1)
            {
                level = 1;
            }
            else if (NullD.Net.GS.Config.Instance.LevelStarter > NullD.Net.GS.Config.Instance.MaxLevel)
            {
                level = (byte)NullD.Net.GS.Config.Instance.MaxLevel;
            }
            else
            {
                level = (byte)NullD.Net.GS.Config.Instance.LevelStarter;
            }
            #endregion

            var dbGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID);
            var newDBToon     = new DBToon
            {
                Class = @Toon.GetClassByID(classId),
                Name  = name,
                /*HashCode = GetUnusedHashCodeForToonName(name),*/
                Flags         = flags,
                Level         = level,
                DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID)
            };
            dbGameAccount.DBToons.Add(newDBToon);

            #region Стандартные предметы 1.0.4
            //*
            #region Стандартные предметы Barbarian
            if (newDBToon.Class == ToonClass.Barbarian)
            {
                #region Топор
                //Структура сущности предмета
                DBItemInstance BARAxeInstance = new DBItemInstance
                {
                    GbId       = 1661412390, //
                    Affixes    = "",
                    Attributes = "312,:1|5,605194E-45;101,:0|0;329,:1|1,401298E-45;196,0:1077936128|3;190,0:1082130432|4;197,0:1077936128|3;191,0:1082130432|4;192,:1082130432|4;198,:1077936128|3;201,:1080033280|3,5;200,0:1080033280|3,5;434,0:1077936128|3;439,0:1077936128|3;186,0:1077936128|3;182,0:1077936128|3;184,:1077936128|3;185,:1080033280|3,5;435,0:0|0;199,0:1080033280|3,5;188,0:1065353216|1;189,0:1065353216|1;193,0:1065353216|1;194,:1065353216|1;436,0:1065353216|1;440,0:1065353216|1;179,0:1065353216|1;183,:1065353216|1;437,0:0|0;326,:1|1,401298E-45;330,:851683752|2,277814E-08;167,:1067869798|1,3;169,:1067869798|1,3;171,:1067869798|1,3;430,:1067869798|1,3;432,:1067869798|1,3;438,:1067869798|1,3;174,:1067869798|1,3;344,:0|0;345,:0|0;346,:0|0;347,:0|0;431,:0|0;433,:0|0;99,30592:1|1,401298E-45;100,30592:1|1,401298E-45;315,:1|1,401298E-45"
                };
                // Добавляем сущность в базу
                DBSessions.AccountSession.SaveOrUpdate(BARAxeInstance);
                // Структура предмета
                DBInventory BARAxeFirstWeapon = new DBInventory
                {
                    DBGameAccount  = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту
                    DBItemInstance = BARAxeInstance,                                                          // Использовать свеже созданную сущность предмета
                    //Hardcore = isHardcore, // Хардкорный или нет персонаж
                    DBToon        = newDBToon,                                                                // Выдать созданному персонажу
                    EquipmentSlot = 4,                                                                        // Вооружить в первую руку
                    LocationX     = 0,
                    LocationY     = 0
                };
                // Добавляем предмет в базу
                DBSessions.AccountSession.SaveOrUpdate(BARAxeFirstWeapon);
                #endregion

                #region Нагрудник
                //Структура сущности предмета
                DBItemInstance ChestInstance = new DBItemInstance
                {
                    GbId       = 1612257704, //
                    Affixes    = "",
                    Attributes = "312,:1|1,401298E-45;101,:0|0;329,:1|1,401298E-45;48,:1073741824|2;51,:1073741824|2;52,:1073741824|2;53,:1073741824|2;326,:1|1,401298E-45;330,:1425612098|8,559502E+12"
                };
                // Добавляем сущность в базу
                DBSessions.AccountSession.SaveOrUpdate(ChestInstance);
                // Структура предмета
                DBInventory BARChest = new DBInventory
                {
                    DBGameAccount  = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту
                    DBItemInstance = ChestInstance,                                                           // Использовать свеже созданную сущность предмета
                    //Hardcore = isHardcore, // Хардкорный или нет персонаж
                    DBToon        = newDBToon,                                                                // Выдать созданному персонажу
                    EquipmentSlot = 2,                                                                        // Вооружить в первую руку
                    LocationX     = 0,
                    LocationY     = 0
                };
                // Добавляем предмет в базу
                DBSessions.AccountSession.SaveOrUpdate(BARChest);
                #endregion

                #region Штаны
                //Структура сущности предмета
                DBItemInstance PantsInstance = new DBItemInstance
                {
                    GbId       = -1512732138, //
                    Affixes    = "",
                    Attributes = "312,:1|0;101,:0|0;329,:1|1,401298E-45;48,:1084227584|5;51,:1084227584|5;52,:1084227584|5;53,:1084227584|5;326,:1|1,401298E-45;330,:56548088|6,54913E-37;315,:1|1,401298E-45"
                };
                // Добавляем сущность в базу
                DBSessions.AccountSession.SaveOrUpdate(PantsInstance);
                // Структура предмета
                DBInventory BARPants = new DBInventory
                {
                    DBGameAccount  = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту
                    DBItemInstance = PantsInstance,                                                           // Использовать свеже созданную сущность предмета
                    //Hardcore = isHardcore, // Хардкорный или нет персонаж
                    DBToon        = newDBToon,                                                                // Выдать созданному персонажу
                    EquipmentSlot = 9,                                                                        // Вооружить в первую руку
                    LocationX     = 0,
                    LocationY     = 0
                };
                // Добавляем предмет в базу
                DBSessions.AccountSession.SaveOrUpdate(BARPants);
                #endregion
            }
            #endregion

            #region Стандартные предметы DemonHunter
            else if (newDBToon.Class == ToonClass.DemonHunter)
            {
                #region Одноручный арбалет
                //Структура сущности предмета
                DBItemInstance DHbowInstance = new DBItemInstance
                {
                    GbId       = -2091504072, //
                    Affixes    = "",
                    Attributes = "312,:1|5,605194E-45;101,:0|0;329,:1|1,401298E-45;196,0:1077936128|3;190,0:1082130432|4;197,0:1077936128|3;191,0:1082130432|4;192,:1082130432|4;198,:1077936128|3;201,:1080033280|3,5;200,0:1080033280|3,5;434,0:1077936128|3;439,0:1077936128|3;186,0:1077936128|3;182,0:1077936128|3;184,:1077936128|3;185,:1080033280|3,5;435,0:0|0;199,0:1080033280|3,5;188,0:1065353216|1;189,0:1065353216|1;193,0:1065353216|1;194,:1065353216|1;436,0:1065353216|1;440,0:1065353216|1;179,0:1065353216|1;183,:1065353216|1;437,0:0|0;326,:1|1,401298E-45;330,:851683752|2,277814E-08;167,:1067869798|1,3;169,:1067869798|1,3;171,:1067869798|1,3;430,:1067869798|1,3;432,:1067869798|1,3;438,:1067869798|1,3;174,:1067869798|1,3;344,:0|0;345,:0|0;346,:0|0;347,:0|0;431,:0|0;433,:0|0;99,30592:1|1,401298E-45;100,30592:1|1,401298E-45;315,:1|1,401298E-45"
                };
                // Добавляем сущность в базу
                DBSessions.AccountSession.SaveOrUpdate(DHbowInstance);
                // Структура предмета
                DBInventory DHFirstWeapon = new DBInventory
                {
                    DBGameAccount  = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту
                    DBItemInstance = DHbowInstance,                                                           // Использовать свеже созданную сущность предмета
                    //Hardcore = isHardcore, // Хардкорный или нет персонаж
                    DBToon        = newDBToon,                                                                // Выдать созданному персонажу
                    EquipmentSlot = 4,                                                                        // Вооружить в первую руку
                    LocationX     = 0,
                    LocationY     = 0
                };
                // Добавляем предмет в базу
                DBSessions.AccountSession.SaveOrUpdate(DHFirstWeapon);
                #endregion

                #region Нагрудник
                //Структура сущности предмета
                DBItemInstance ChestInstance = new DBItemInstance
                {
                    GbId       = 1612257704, //
                    Affixes    = "",
                    Attributes = "312,:1|1,401298E-45;101,:0|0;329,:1|1,401298E-45;48,:1073741824|2;51,:1073741824|2;52,:1073741824|2;53,:1073741824|2;326,:1|1,401298E-45;330,:1425612098|8,559502E+12"
                };
                // Добавляем сущность в базу
                DBSessions.AccountSession.SaveOrUpdate(ChestInstance);
                // Структура предмета
                DBInventory BARChest = new DBInventory
                {
                    DBGameAccount  = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту
                    DBItemInstance = ChestInstance,                                                           // Использовать свеже созданную сущность предмета
                    // Hardcore = isHardcore, // Хардкорный или нет персонаж
                    DBToon        = newDBToon,                                                                // Выдать созданному персонажу
                    EquipmentSlot = 2,                                                                        // Вооружить в первую руку
                    LocationX     = 0,
                    LocationY     = 0
                };
                // Добавляем предмет в базу
                DBSessions.AccountSession.SaveOrUpdate(BARChest);
                #endregion

                #region Штаны
                //Структура сущности предмета
                DBItemInstance PantsInstance = new DBItemInstance
                {
                    GbId       = -1512732138, //
                    Affixes    = "",
                    Attributes = "312,:1|0;101,:0|0;329,:1|1,401298E-45;48,:1084227584|5;51,:1084227584|5;52,:1084227584|5;53,:1084227584|5;326,:1|1,401298E-45;330,:56548088|6,54913E-37;315,:1|1,401298E-45"
                };
                // Добавляем сущность в базу
                DBSessions.AccountSession.SaveOrUpdate(PantsInstance);
                // Структура предмета
                DBInventory BARPants = new DBInventory
                {
                    DBGameAccount  = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту
                    DBItemInstance = PantsInstance,                                                           // Использовать свеже созданную сущность предмета
                    //Hardcore = isHardcore, // Хардкорный или нет персонаж
                    DBToon        = newDBToon,                                                                // Выдать созданному персонажу
                    EquipmentSlot = 9,                                                                        // Вооружить в первую руку
                    LocationX     = 0,
                    LocationY     = 0
                };
                // Добавляем предмет в базу
                DBSessions.AccountSession.SaveOrUpdate(BARPants);
                #endregion
            }
            #endregion

            #region Стандартные предметы Monk
            else if (newDBToon.Class == ToonClass.Monk)
            {
                #region Кастет 1
                //Структура сущности предмета
                DBItemInstance DHbowInstance = new DBItemInstance
                {
                    GbId       = 1236604967, //
                    Affixes    = "",
                    Attributes = "312,:1|2,802597E-45;101,:0|0;329,:1|1,401298E-45;196,0:1065353216|1;190,0:1077936128|3;197,0:1065353216|1;191,0:1077936128|3;192,:1077936128|3;198,:1065353216|1;201,:1073741824|2;200,0:1073741824|2;434,0:1065353216|1;439,0:1065353216|1;186,0:1065353216|1;182,0:1065353216|1;184,:1065353216|1;185,:1073741824|2;435,0:0|0;199,0:1073741824|2;188,0:1073741824|2;189,0:1073741824|2;193,0:1073741824|2;194,:1073741824|2;436,0:1073741824|2;440,0:1073741824|2;179,0:1073741824|2;183,:1073741824|2;437,0:0|0;326,:1|1,401298E-45;330,:750642467|5,397142E-12;167,:1067030938|1,2;169,:1067030938|1,2;171,:1067030938|1,2;430,:1067030938|1,2;432,:1067030938|1,2;438,:1067030938|1,2;174,:1067030938|1,2;344,:0|0;345,:0|0;346,:0|0;347,:0|0;431,:0|0;433,:0|0;99,30592:1|1,401298E-45;100,30592:1|1,401298E-45;315,:1|1,401298E-45"
                };
                // Добавляем сущность в базу
                DBSessions.AccountSession.SaveOrUpdate(DHbowInstance);
                // Структура предмета
                DBInventory DHFirstWeapon = new DBInventory
                {
                    DBGameAccount  = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту
                    DBItemInstance = DHbowInstance,                                                           // Использовать свеже созданную сущность предмета
                    //Hardcore = isHardcore, // Хардкорный или нет персонаж
                    DBToon        = newDBToon,                                                                // Выдать созданному персонажу
                    EquipmentSlot = 4,                                                                        // Вооружить в первую руку
                    LocationX     = 0,
                    LocationY     = 0
                };
                // Добавляем предмет в базу
                DBSessions.AccountSession.SaveOrUpdate(DHFirstWeapon);
                #endregion

                #region Кастет 2
                //Структура сущности предмета
                DBItemInstance DHbowInstance2 = new DBItemInstance
                {
                    GbId       = 1236604967, //
                    Affixes    = "",
                    Attributes = "312,:1|2,802597E-45;101,:0|0;329,:1|1,401298E-45;196,0:1065353216|1;190,0:1077936128|3;197,0:1065353216|1;191,0:1077936128|3;192,:1077936128|3;198,:1065353216|1;201,:1073741824|2;200,0:1073741824|2;434,0:1065353216|1;439,0:1065353216|1;186,0:1065353216|1;182,0:1065353216|1;184,:1065353216|1;185,:1073741824|2;435,0:0|0;199,0:1073741824|2;188,0:1073741824|2;189,0:1073741824|2;193,0:1073741824|2;194,:1073741824|2;436,0:1073741824|2;440,0:1073741824|2;179,0:1073741824|2;183,:1073741824|2;437,0:0|0;326,:1|1,401298E-45;330,:750642467|5,397142E-12;167,:1067030938|1,2;169,:1067030938|1,2;171,:1067030938|1,2;430,:1067030938|1,2;432,:1067030938|1,2;438,:1067030938|1,2;174,:1067030938|1,2;344,:0|0;345,:0|0;346,:0|0;347,:0|0;431,:0|0;433,:0|0;99,30592:1|1,401298E-45;100,30592:1|1,401298E-45;315,:1|1,401298E-45"
                };
                // Добавляем сущность в базу
                DBSessions.AccountSession.SaveOrUpdate(DHbowInstance2);
                // Структура предмета
                DBInventory DHFirstWeapon2 = new DBInventory
                {
                    DBGameAccount  = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту
                    DBItemInstance = DHbowInstance2,                                                          // Использовать свеже созданную сущность предмета
                    //Hardcore = isHardcore, // Хардкорный или нет персонаж
                    DBToon        = newDBToon,                                                                // Выдать созданному персонажу
                    EquipmentSlot = 3,                                                                        // Вооружить во вторую руку
                    LocationX     = 0,
                    LocationY     = 0
                };
                // Добавляем предмет в базу
                DBSessions.AccountSession.SaveOrUpdate(DHFirstWeapon2);
                #endregion

                #region Нагрудник
                //Структура сущности предмета
                DBItemInstance ChestInstance = new DBItemInstance
                {
                    GbId       = 1612257704, //
                    Affixes    = "",
                    Attributes = "312,:1|1,401298E-45;101,:0|0;329,:1|1,401298E-45;48,:1073741824|2;51,:1073741824|2;52,:1073741824|2;53,:1073741824|2;326,:1|1,401298E-45;330,:1425612098|8,559502E+12"
                };
                // Добавляем сущность в базу
                DBSessions.AccountSession.SaveOrUpdate(ChestInstance);
                // Структура предмета
                DBInventory BARChest = new DBInventory
                {
                    DBGameAccount  = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту
                    DBItemInstance = ChestInstance,                                                           // Использовать свеже созданную сущность предмета
                    //Hardcore = isHardcore, // Хардкорный или нет персонаж
                    DBToon        = newDBToon,                                                                // Выдать созданному персонажу
                    EquipmentSlot = 2,                                                                        // Вооружить в первую руку
                    LocationX     = 0,
                    LocationY     = 0
                };
                // Добавляем предмет в базу
                DBSessions.AccountSession.SaveOrUpdate(BARChest);
                #endregion

                #region Штаны
                //Структура сущности предмета
                DBItemInstance PantsInstance = new DBItemInstance
                {
                    GbId       = -1512732138, //
                    Affixes    = "",
                    Attributes = "312,:1|0;101,:0|0;329,:1|1,401298E-45;48,:1084227584|5;51,:1084227584|5;52,:1084227584|5;53,:1084227584|5;326,:1|1,401298E-45;330,:56548088|6,54913E-37;315,:1|1,401298E-45"
                };
                // Добавляем сущность в базу
                DBSessions.AccountSession.SaveOrUpdate(PantsInstance);
                // Структура предмета
                DBInventory BARPants = new DBInventory
                {
                    DBGameAccount  = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту
                    DBItemInstance = PantsInstance,                                                           // Использовать свеже созданную сущность предмета
                    //Hardcore = isHardcore, // Хардкорный или нет персонаж
                    DBToon        = newDBToon,                                                                // Выдать созданному персонажу
                    EquipmentSlot = 9,                                                                        // Вооружить в первую руку
                    LocationX     = 0,
                    LocationY     = 0
                };
                // Добавляем предмет в базу
                DBSessions.AccountSession.SaveOrUpdate(BARPants);
                #endregion
            }
            #endregion

            #region Стандартные предметы Witch Doctor
            else if (newDBToon.Class == ToonClass.WitchDoctor)
            {
                #region Кинжал
                //Структура сущности предмета
                DBItemInstance DHbowInstance = new DBItemInstance
                {
                    GbId       = -1303415302, //
                    Affixes    = "",
                    Attributes = "312,:1|2,802597E-45;101,:0|0;329,:1|1,401298E-45;196,0:1073741824|2;190,0:1088421888|7;197,0:1073741824|2;191,0:1088421888|7;192,:1088421888|7;198,:1073741824|2;201,:1083179008|4,5;200,0:1083179008|4,5;434,0:1073741824|2;439,0:1073741824|2;186,0:1073741824|2;182,0:1073741824|2;184,:1073741824|2;185,:1083179008|4,5;435,0:0|0;199,0:1083179008|4,5;188,0:1084227584|5;189,0:1084227584|5;193,0:1084227584|5;194,:1084227584|5;436,0:1084227584|5;440,0:1084227584|5;179,0:1084227584|5;183,:1084227584|5;437,0:0|0;326,:1|1,401298E-45;330,:432328575|2,034973E-23;167,:1069547520|1,5;169,:1069547520|1,5;171,:1069547520|1,5;430,:1069547520|1,5;432,:1069547520|1,5;438,:1069547520|1,5;174,:1069547520|1,5;344,:0|0;345,:0|0;346,:0|0;347,:0|0;431,:0|0;433,:0|0;99,30592:1|1,401298E-45;100,30592:1|1,401298E-45;315,:1|1,401298E-45"
                };
                // Добавляем сущность в базу
                DBSessions.AccountSession.SaveOrUpdate(DHbowInstance);
                // Структура предмета
                DBInventory DHFirstWeapon = new DBInventory
                {
                    DBGameAccount  = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту
                    DBItemInstance = DHbowInstance,                                                           // Использовать свеже созданную сущность предмета
                    // Hardcore = isHardcore, // Хардкорный или нет персонаж
                    DBToon        = newDBToon,                                                                // Выдать созданному персонажу
                    EquipmentSlot = 4,                                                                        // Вооружить в первую руку
                    LocationX     = 0,
                    LocationY     = 0
                };
                // Добавляем предмет в базу
                DBSessions.AccountSession.SaveOrUpdate(DHFirstWeapon);
                #endregion

                #region Нагрудник
                //Структура сущности предмета
                DBItemInstance ChestInstance = new DBItemInstance
                {
                    GbId       = 1612257704, //
                    Affixes    = "",
                    Attributes = "312,:1|1,401298E-45;101,:0|0;329,:1|1,401298E-45;48,:1073741824|2;51,:1073741824|2;52,:1073741824|2;53,:1073741824|2;326,:1|1,401298E-45;330,:1425612098|8,559502E+12"
                };
                // Добавляем сущность в базу
                DBSessions.AccountSession.SaveOrUpdate(ChestInstance);
                // Структура предмета
                DBInventory BARChest = new DBInventory
                {
                    DBGameAccount  = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту
                    DBItemInstance = ChestInstance,                                                           // Использовать свеже созданную сущность предмета
                    //Hardcore = isHardcore, // Хардкорный или нет персонаж
                    DBToon        = newDBToon,                                                                // Выдать созданному персонажу
                    EquipmentSlot = 2,                                                                        // Вооружить в первую руку
                    LocationX     = 0,
                    LocationY     = 0
                };
                // Добавляем предмет в базу
                DBSessions.AccountSession.SaveOrUpdate(BARChest);
                #endregion

                #region Штаны
                //Структура сущности предмета
                DBItemInstance PantsInstance = new DBItemInstance
                {
                    GbId       = -1512732138, //
                    Affixes    = "",
                    Attributes = "312,:1|0;101,:0|0;329,:1|1,401298E-45;48,:1084227584|5;51,:1084227584|5;52,:1084227584|5;53,:1084227584|5;326,:1|1,401298E-45;330,:56548088|6,54913E-37;315,:1|1,401298E-45"
                };
                // Добавляем сущность в базу
                DBSessions.AccountSession.SaveOrUpdate(PantsInstance);
                // Структура предмета
                DBInventory BARPants = new DBInventory
                {
                    DBGameAccount  = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту
                    DBItemInstance = PantsInstance,                                                           // Использовать свеже созданную сущность предмета
                    //Hardcore = isHardcore, // Хардкорный или нет персонаж
                    DBToon        = newDBToon,                                                                // Выдать созданному персонажу
                    EquipmentSlot = 9,                                                                        // Вооружить в первую руку
                    LocationX     = 0,
                    LocationY     = 0
                };
                // Добавляем предмет в базу
                DBSessions.AccountSession.SaveOrUpdate(BARPants);
                #endregion
            }
            #endregion

            #region Стандартные предметы Wizard
            else if (newDBToon.Class == ToonClass.Wizard)
            {
                #region Жезл
                //Структура сущности предмета
                DBItemInstance DHbowInstance = new DBItemInstance
                {
                    GbId       = 88665049, //
                    Affixes    = "",
                    Attributes = "312,:1|7,006492E-45;101,:0|0;329,:1|1,401298E-45;196,0:1077936128|3;190,0:1082130432|4;197,0:1077936128|3;191,0:1082130432|4;192,:1082130432|4;198,:1077936128|3;201,:1080033280|3,5;200,0:1080033280|3,5;434,0:1077936128|3;439,0:1077936128|3;186,0:1077936128|3;182,0:1077936128|3;184,:1077936128|3;185,:1080033280|3,5;435,0:0|0;199,0:1080033280|3,5;188,0:1065353216|1;189,0:1065353216|1;193,0:1065353216|1;194,:1065353216|1;436,0:1065353216|1;440,0:1065353216|1;179,0:1065353216|1;183,:1065353216|1;437,0:0|0;326,:1|1,401298E-45;330,:2081659420|3,065573E+36;167,:1067030938|1,2;169,:1067030938|1,2;171,:1067030938|1,2;430,:1067030938|1,2;432,:1067030938|1,2;438,:1067030938|1,2;174,:1067030938|1,2;344,:0|0;345,:0|0;346,:0|0;347,:0|0;431,:0|0;433,:0|0;99,30601:1|1,401298E-45;100,30601:1|1,401298E-45"
                };
                // Добавляем сущность в базу
                DBSessions.AccountSession.SaveOrUpdate(DHbowInstance);
                // Структура предмета
                DBInventory DHFirstWeapon = new DBInventory
                {
                    DBGameAccount  = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту
                    DBItemInstance = DHbowInstance,                                                           // Использовать свеже созданную сущность предмета
                    //Hardcore = isHardcore, // Хардкорный или нет персонаж
                    DBToon        = newDBToon,                                                                // Выдать созданному персонажу
                    EquipmentSlot = 4,                                                                        // Вооружить в первую руку
                    LocationX     = 0,
                    LocationY     = 0
                };
                // Добавляем предмет в базу
                DBSessions.AccountSession.SaveOrUpdate(DHFirstWeapon);
                #endregion

                #region Нагрудник
                //Структура сущности предмета
                DBItemInstance ChestInstance = new DBItemInstance
                {
                    GbId       = 1612257704, //
                    Affixes    = "",
                    Attributes = "312,:1|1,401298E-45;101,:0|0;329,:1|1,401298E-45;48,:1073741824|2;51,:1073741824|2;52,:1073741824|2;53,:1073741824|2;326,:1|1,401298E-45;330,:1425612098|8,559502E+12"
                };
                // Добавляем сущность в базу
                DBSessions.AccountSession.SaveOrUpdate(ChestInstance);
                // Структура предмета
                DBInventory BARChest = new DBInventory
                {
                    DBGameAccount  = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту
                    DBItemInstance = ChestInstance,                                                           // Использовать свеже созданную сущность предмета
                    //Hardcore = isHardcore, // Хардкорный или нет персонаж
                    DBToon        = newDBToon,                                                                // Выдать созданному персонажу
                    EquipmentSlot = 2,                                                                        // Вооружить в первую руку
                    LocationX     = 0,
                    LocationY     = 0
                };
                // Добавляем предмет в базу
                DBSessions.AccountSession.SaveOrUpdate(BARChest);
                #endregion

                #region Штаны
                //Структура сущности предмета
                DBItemInstance PantsInstance = new DBItemInstance
                {
                    GbId       = -1512732138, //
                    Affixes    = "",
                    Attributes = "312,:1|0;101,:0|0;329,:1|1,401298E-45;48,:1084227584|5;51,:1084227584|5;52,:1084227584|5;53,:1084227584|5;326,:1|1,401298E-45;330,:56548088|6,54913E-37;315,:1|1,401298E-45"
                };
                // Добавляем сущность в базу
                DBSessions.AccountSession.SaveOrUpdate(PantsInstance);
                // Структура предмета
                DBInventory BARPants = new DBInventory
                {
                    DBGameAccount  = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту
                    DBItemInstance = PantsInstance,                                                           // Использовать свеже созданную сущность предмета
                    // Hardcore = isHardcore, // Хардкорный или нет персонаж
                    DBToon        = newDBToon,                                                                // Выдать созданному персонажу
                    EquipmentSlot = 9,                                                                        // Вооружить в первую руку
                    LocationX     = 0,
                    LocationY     = 0
                };
                // Добавляем предмет в базу
                DBSessions.AccountSession.SaveOrUpdate(BARPants);
                #endregion
            }
            #endregion
            //*/
            #endregion

            #region Начало прогресса. 1 Акт, Пока не взятый квест.
            DBProgressToon StartProgress = new DBProgressToon
            {
                DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту
                DBToon        = newDBToon,                                                               // Выдать созданному персонажу
                MaximumQuest  = 87700,                                                                   // Максимальный квест
                MaximumAct    = 0,                                                                       // Максимальный квест
                StepOfQuest   = 0,                                                                       //Текущий шаг квеста
                ActiveAct     = 0,                                                                       // Активный акт
                ActiveQuest   = -1,                                                                      // Активный квест
                StepIDofQuest = 1,
                LoreCollected = "",
                StatusOfWings = 0,

                LastCheckPoint = -1,
                LastWorld      = -1,

                WaypointStatus  = 1,
                WaypointStatus2 = 1,
                WaypointStatus3 = 1,
                WaypointStatus4 = 1
            };
            DBSessions.AccountSession.SaveOrUpdate(StartProgress);
            DBPortalOfToon NullPortal = new DBPortalOfToon
            {
                DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID),
                DBToon        = newDBToon,
                X             = 0,
                Y             = 0,
                Z             = 0,
                WorldDest     = 0
            };
            DBSessions.AccountSession.SaveOrUpdate(NullPortal);
            DBArtisansOfToon BaseArtisans = new DBArtisansOfToon
            {
                DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID),
                DBToon        = newDBToon,
                Blacksmith    = 1,
                Jeweler       = 1,
                Mystic        = 1,
            };
            DBSessions.AccountSession.SaveOrUpdate(BaseArtisans);
            DBHirelingsOfToon BaseInfoOfHirelings = new DBHirelingsOfToon
            {
                DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID),
                DBToon        = newDBToon,

                Level_Templar     = 1,
                Level_Scoundrel   = 1,
                Level_Enchantress = 1,

                Experience_Templar     = 1200,
                Experience_Scoundrel   = 1200,
                Experience_Enchantress = 1200,

                Templar_Skill1 = -1,
                Templar_Skill2 = -1,
                Templar_Skill3 = -1,
                Templar_Skill4 = -1,

                Scoundrel_Skill1 = -1,
                Scoundrel_Skill2 = -1,
                Scoundrel_Skill3 = -1,
                Scoundrel_Skill4 = -1,

                Enchantress_Skill1 = -1,
                Enchantress_Skill2 = -1,
                Enchantress_Skill3 = -1,
                Enchantress_Skill4 = -1
            };
            DBSessions.AccountSession.SaveOrUpdate(BaseInfoOfHirelings);
            #endregion



            DBSessions.AccountSession.SaveOrUpdate(dbGameAccount);
            DBSessions.AccountSession.Flush();
            DBSessions.AccountSession.Refresh(dbGameAccount);

            return(GetToonByLowID(newDBToon.Id));
        }
コード例 #18
0
ファイル: Toon.cs プロジェクト: keltins/mooege
        private void SetFields(string name, int hashCode, ToonClass @class, ToonFlags flags, byte level, Account owner,uint timePlayed)
        {
            this.ToonHandle = new ToonHandleHelper(this.PersistentID);
            this.D3EntityID = this.ToonHandle.ToD3EntityID();
            this.BnetEntityID = this.ToonHandle.ToBnetEntityID();
            this.Name = name;
            this.HashCode = hashCode;
            this.HashCodeString = HashCode.ToString("D3");
            this.Class = @class;
            this.Flags = flags;
            this.Level = level;
            this.Owner = owner;
            this.TimePlayed = timePlayed;

            var visualItems = new[]
            {                                
                D3.Hero.VisualItem.CreateBuilder().SetGbid(0).SetDyeType(0).SetItemEffectType(0).SetEffectLevel(0).Build(), // Head
                D3.Hero.VisualItem.CreateBuilder().SetGbid(0).SetDyeType(0).SetItemEffectType(0).SetEffectLevel(0).Build(), // Chest
                D3.Hero.VisualItem.CreateBuilder().SetGbid(0).SetDyeType(0).SetItemEffectType(0).SetEffectLevel(0).Build(), // Feet
                D3.Hero.VisualItem.CreateBuilder().SetGbid(0).SetDyeType(0).SetItemEffectType(0).SetEffectLevel(0).Build(), // Hands
                D3.Hero.VisualItem.CreateBuilder().SetGbid(0).SetDyeType(0).SetItemEffectType(0).SetEffectLevel(0).Build(), // Weapon (1)
                D3.Hero.VisualItem.CreateBuilder().SetGbid(0).SetDyeType(0).SetItemEffectType(0).SetEffectLevel(0).Build(), // Weapon (2)
                D3.Hero.VisualItem.CreateBuilder().SetGbid(0).SetDyeType(0).SetItemEffectType(0).SetEffectLevel(0).Build(), // Shoulders
                D3.Hero.VisualItem.CreateBuilder().SetGbid(0).SetDyeType(0).SetItemEffectType(0).SetEffectLevel(0).Build(), // Legs
            };

            this.Equipment = D3.Hero.VisualEquipment.CreateBuilder().AddRangeVisualItem(visualItems).Build();

        }
コード例 #19
0
ファイル: Toon.cs プロジェクト: rdavydov/d3sharp
//<<<<<<< HEAD
//        public Toon(ulong persistantId, string name, byte @class, byte gender, byte level, long accountId) // Toon with given persistent ID
//            :base(persistantId)
//        {
//            this.SetFields(name, (ToonClass)@class, (ToonFlags)gender, level, AccountManager.GetAccountByPersistantID((ulong)accountId));
//        }

//        public Toon(string name, int classId, ToonFlags flags, byte level, Account account) // Toon with **newly generated** persistent ID
//            : base(StringHashHelper.HashIdentity(name))
//        {
//            this.SetFields(name, GetClassByID(classId), flags, level, account);
//        }

//=======
//>>>>>>> 8574c238179fe15ed89f064963d15f70293617bc
        private void SetFields(string name, ToonClass @class, ToonFlags flags, byte level, Account owner)
        {
            this.ToonHandle   = new ToonHandleHelper(this.PersistentID);
            this.D3EntityID   = this.ToonHandle.ToD3EntityID();
            this.BnetEntityID = this.ToonHandle.ToBnetEntityID();
            this.Name         = name;
            this.Class        = @class;
            this.Flags        = flags;
            this.Level        = level;
            this.Owner        = owner;

            var itemsGenerator = new Items.ItemTypeGenerator();

            var visualItems = new[]
            {
                // Head
                D3.Hero.VisualItem.CreateBuilder()
                .SetGbid(itemsGenerator.generateRandomElement(Items.ItemType.Helm).Gbid)
                .SetDyeType(0)
                .SetItemEffectType(0)
                .SetEffectLevel(0)
                .Build(),

                // Chest
                D3.Hero.VisualItem.CreateBuilder()
                .SetGbid(itemsGenerator.generateRandomElement(Items.ItemType.ChestArmor).Gbid)
                .SetDyeType(0)
                .SetItemEffectType(0)
                .SetEffectLevel(0)
                .Build(),

                // Feet
                D3.Hero.VisualItem.CreateBuilder()
                .SetGbid(itemsGenerator.generateRandomElement(Items.ItemType.Boots).Gbid)
                .SetDyeType(0)
                .SetItemEffectType(0)
                .SetEffectLevel(0)
                .Build(),

                // Hands
                D3.Hero.VisualItem.CreateBuilder()
                .SetGbid(itemsGenerator.generateRandomElement(Items.ItemType.Gloves).Gbid)
                .SetDyeType(0)
                .SetItemEffectType(0)
                .SetEffectLevel(0)
                .Build(),

                // Weapon (1)
                D3.Hero.VisualItem.CreateBuilder()
                .SetGbid(itemsGenerator.generateRandomElement(Items.ItemType.Sword_1H).Gbid)
                .SetDyeType(0)
                .SetItemEffectType(0)
                .SetEffectLevel(0)
                .Build(),

                // Weapon (2)
                D3.Hero.VisualItem.CreateBuilder()
                .SetGbid(itemsGenerator.generateRandomElement(Items.ItemType.Shield).Gbid)
                .SetDyeType(0)
                .SetItemEffectType(0)
                .SetEffectLevel(0)
                .Build(),

                // Shoulders
                D3.Hero.VisualItem.CreateBuilder()
                .SetGbid(itemsGenerator.generateRandomElement(Items.ItemType.Shoulders).Gbid)
                .SetDyeType(0)
                .SetItemEffectType(0)
                .SetEffectLevel(0)
                .Build(),

                // Legs
                D3.Hero.VisualItem.CreateBuilder()
                .SetGbid(itemsGenerator.generateRandomElement(Items.ItemType.Pants).Gbid)
                .SetDyeType(0)
                .SetItemEffectType(0)
                .SetEffectLevel(0)
                .Build(),
            };


            this.Equipment = D3.Hero.VisualEquipment.CreateBuilder().AddRangeVisualItem(visualItems).Build();

            this.Digest = D3.Hero.Digest.CreateBuilder().SetVersion(891)
                          .SetHeroId(this.D3EntityID)
                          .SetHeroName(this.Name)
                          .SetGbidClass((int)this.ClassID)
                          .SetPlayerFlags((uint)this.Flags)
                          .SetLevel(this.Level)
                          .SetVisualEquipment(this.Equipment)
                          .SetLastPlayedAct(0)
                          .SetHighestUnlockedAct(0)
                          .SetLastPlayedDifficulty(0)
                          .SetHighestUnlockedDifficulty(0)
                          .SetLastPlayedQuest(-1)
                          .SetLastPlayedQuestStep(-1)
                          .SetTimePlayed(0)
                          .Build();
        }
コード例 #20
0
ファイル: Toon.cs プロジェクト: zicnic/d3sharp
        private void SetFields(string name, ToonClass @class, ToonFlags flags, byte level, Account owner)
        {
            this.ToonHandle = new ToonHandleHelper(this.PersistentID);
            this.D3EntityID = this.ToonHandle.ToD3EntityID();
            this.BnetEntityID = this.ToonHandle.ToBnetEntityID();
            this.Name = name;
            this.Class = @class;
            this.Flags = flags;
            this.Level = level;
            this.Owner = owner;
           
            var visualItems = new[]
                            {
                                // Head
                                D3.Hero.VisualItem.CreateBuilder()
                                    .SetGbid(0)
                                    .SetDyeType(0)
                                    .SetItemEffectType(0)
                                    .SetEffectLevel(0)
                                    .Build(),

                                // Chest
                                D3.Hero.VisualItem.CreateBuilder()
                                    .SetGbid(0)
                                    .SetDyeType(0)
                                    .SetItemEffectType(0)
                                    .SetEffectLevel(0)
                                    .Build(),

                                // Feet
                                D3.Hero.VisualItem.CreateBuilder()
                                    .SetGbid(0)
                                    .SetDyeType(0)
                                    .SetItemEffectType(0)
                                    .SetEffectLevel(0)
                                    .Build(),

                                // Hands
                                D3.Hero.VisualItem.CreateBuilder()
                                    .SetGbid(0)
                                    .SetDyeType(0)
                                    .SetItemEffectType(0)
                                    .SetEffectLevel(0)
                                    .Build(),

                                // Weapon (1)
                                D3.Hero.VisualItem.CreateBuilder()
                                    .SetGbid(0)
                                    .SetDyeType(0)
                                    .SetItemEffectType(0)
                                    .SetEffectLevel(0)
                                    .Build(),

                                // Weapon (2)
                                D3.Hero.VisualItem.CreateBuilder()
                                    .SetGbid(0)
                                    .SetDyeType(0)
                                    .SetItemEffectType(0)
                                    .SetEffectLevel(0)
                                    .Build(),

                                // Shoulders
                                D3.Hero.VisualItem.CreateBuilder()
                                    .SetGbid(0)
                                    .SetDyeType(0)
                                    .SetItemEffectType(0)
                                    .SetEffectLevel(0)
                                    .Build(),

                                // Legs
                                D3.Hero.VisualItem.CreateBuilder()
                                    .SetGbid(0)
                                    .SetDyeType(0)
                                    .SetItemEffectType(0)
                                    .SetEffectLevel(0)
                                    .Build(),
                            };


            this.Equipment = D3.Hero.VisualEquipment.CreateBuilder().AddRangeVisualItem(visualItems).Build();

            this.Digest = D3.Hero.Digest.CreateBuilder().SetVersion(891)
                .SetHeroId(this.D3EntityID)
                .SetHeroName(this.Name)
                .SetGbidClass((int)this.ClassID)
                .SetPlayerFlags((uint)this.Flags)
                .SetLevel(this.Level)
                .SetVisualEquipment(this.Equipment)
                .SetLastPlayedAct(0)
                .SetHighestUnlockedAct(0)
                .SetLastPlayedDifficulty(0)
                .SetHighestUnlockedDifficulty(0)
                .SetLastPlayedQuest(-1)
                .SetLastPlayedQuestStep(-1)
                .SetTimePlayed(0)
                .Build();
        }
コード例 #21
0
ファイル: Toon.cs プロジェクト: DZilli/mooege
 public Toon(string name, int hashCode, int classHash, ToonFlags flags, byte level, GameAccount account) // Toon with **newly generated** persistent ID
     : base(StringHashHelper.HashIdentity(name + "#" + hashCode.ToString("D3")))
 {
     this.HeroClassField.transformDelegate += HeroClassFieldTransform;
     this.SetFields(name, hashCode, Toon.GetClassFromHash(classHash), flags, level, account, 0, 0, new Dictionary <uint, Item>());
 }