public Toon(ulong id, string name, ToonClass @class, ToonGender gender, byte level) { this.ID = id; this.ToonHandle = new ToonHandleHelper(id); this.D3EntityID = this.ToonHandle.ToD3EntityID(); this.BnetEntityID = this.ToonHandle.ToBnetEntityID(); this.Name = name; this.Class = @class; this.Gender = gender; this.Level = level; var visualItems = new[] { D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), D3.Hero.VisualItem.CreateBuilder().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(this.GenderID) .SetLevel(this.Level) .SetVisualEquipment(this.Equipment) .SetLastPlayedAct(0) .SetHighestUnlockedAct(0) .SetLastPlayedDifficulty(0) .SetHighestUnlockedDifficulty(0) .SetLastPlayedQuest(-1) .SetLastPlayedQuestStep(-1) .SetTimePlayed(0) .Build(); }
public Toon(ulong id, string name, ToonClass @class, ToonGender gender, byte level, long accountId) { this.ID = id; this.ToonHandle = new ToonHandleHelper(id); this.D3EntityID = this.ToonHandle.ToD3EntityID(); this.BnetEntityID = this.ToonHandle.ToBnetEntityID(); this.Name = name; this.Class = @class; this.Gender = gender; this.Level = level; this.AccountID = accountId; var visualItems = new[] { // Some hack. We should either load strings and then hash it from DB or load hash directly from DB.. // Showing a head and a Wep to show how it works // Head D3.Hero.VisualItem.CreateBuilder() .SetGbid( (int)StringHashHelper.HashString2("Helm_002") ) .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( (int)StringHashHelper.HashString2("Unique_Mace_1H_012") ) .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(this.GenderID) .SetLevel(this.Level) .SetVisualEquipment(this.Equipment) .SetLastPlayedAct(0) .SetHighestUnlockedAct(0) .SetLastPlayedDifficulty(0) .SetHighestUnlockedDifficulty(0) .SetLastPlayedQuest(-1) .SetLastPlayedQuestStep(-1) .SetTimePlayed(0) .Build(); }
public Toon(string name, uint classId, ToonGender gender, byte level, long accountId) : this(StringHashHelper.HashString(name), name, GetClassByID(classId), gender , level, accountId) { }
public Toon(string name, int classId, ToonGender gender, byte level, long accountId) // toon with **newly generated** persistantId : base(StringHashHelper.HashString(name)) { this.SetFields(name, GetClassByID(classId), gender, level, accountId); }
public Toon(string name, uint classId, ToonGender gender, byte level) : this(GetToonIDByName(name), name, GetClassByID(classId), gender , level) { }
public Toon(string name, int classId, ToonGender gender, byte level, Account account) // Toon with **newly generated** persistent ID : base(StringHashHelper.HashIdentity(name)) { this.SetFields(name, GetClassByID(classId), gender, level, account); }
private void SetFields(string name, ToonClass @class, ToonGender gender, 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.Gender = gender; 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(this.GenderID) .SetLevel(this.Level) .SetVisualEquipment(this.Equipment) .SetLastPlayedAct(0) .SetHighestUnlockedAct(0) .SetLastPlayedDifficulty(0) .SetHighestUnlockedDifficulty(0) .SetLastPlayedQuest(-1) .SetLastPlayedQuestStep(-1) .SetTimePlayed(0) .Build(); }