public static int UpdateEvolution(int TemplateID, int lv) { int num = TemplateID; int num2 = Convert.ToInt32(PetMgr.FindConfig("EvolutionLevel1").Value); int num3 = Convert.ToInt32(PetMgr.FindConfig("EvolutionLevel2").Value); PetTemplateInfo petTemplateInfo = PetMgr.FindPetTemplate(num); PetTemplateInfo petTemplateInfo2 = PetMgr.FindPetTemplate(num + 1); PetTemplateInfo petTemplateInfo3 = PetMgr.FindPetTemplate(num + 2); if (petTemplateInfo3 != null) { if (lv >= num2 && lv < num3 && petTemplateInfo2.EvolutionID != 0) { num = petTemplateInfo.EvolutionID; } else { if (lv >= num3) { num = petTemplateInfo2.EvolutionID; } } } else { if (petTemplateInfo2 != null && lv >= num3) { num = petTemplateInfo.EvolutionID; } } return(num); }
public static string UpdateSkillPet(int Level, int TemplateID) { PetTemplateInfo petTemplateInfo = PetMgr.FindPetTemplate(TemplateID); if (petTemplateInfo == null) { PetMgr.log.Error("Pet not found: " + TemplateID); return(""); } List <int> petSkillByKindID = PetMgr.GetPetSkillByKindID(petTemplateInfo.KindID, Level); string text = petSkillByKindID[0] + ",0"; for (int i = 1; i < petSkillByKindID.Count; i++) { object obj = text; text = string.Concat(new object[] { obj, "|", petSkillByKindID[i], ",", i }); } return(text); }
public static List <UsersPetinfo> CreateFirstAdoptList(int userID) { List <int> list = new List <int> { 100601, 110601, 120601, 130601 }; List <UsersPetinfo> list2 = new List <UsersPetinfo>(); using (PlayerBussiness playerBussiness = new PlayerBussiness()) { playerBussiness.RemoveUserAdoptPet(userID); for (int i = 0; i < list.Count; i++) { PetTemplateInfo info = PetMgr.FindPetTemplate(list[i]); UsersPetinfo usersPetinfo = PetMgr.CreatePet(info, userID, i); usersPetinfo.IsExit = true; playerBussiness.AddUserAdoptPet(usersPetinfo, false); list2.Add(usersPetinfo); } } return(list2); }
public static int TemplateReset(int TemplateID) { int num = TemplateID; PetTemplateInfo petTemplateInfo = PetMgr.FindPetTemplate(num - 1); PetTemplateInfo petTemplateInfo2 = PetMgr.FindPetTemplate(num - 2); if (petTemplateInfo != null) { num = petTemplateInfo.TemplateID; } else { if (petTemplateInfo2 != null) { num = petTemplateInfo2.TemplateID; } } return(num); }
public static List <int> GetPetTemplateByStar(int star) { List <int> list = new List <int>(); int num = 0; for (int i = 1; i <= PetMgr.GetPetCount(); i++) { PetTemplateInfo petTemplateInfo = PetMgr.FindPetTemplateById(i); if (petTemplateInfo.StarLevel <= star) { int num2 = petTemplateInfo.TemplateID - num; if (num2 != 1 && num2 != -1 && num2 != 2 && num2 != -2) { list.Add(petTemplateInfo.TemplateID); } num = petTemplateInfo.TemplateID; } } return(list); }
public static List <UsersPetinfo> CreateAdoptList(int userID) { int num = Convert.ToInt32(PetMgr.FindConfig("AdoptCount").Value); List <int> petTemplateByStar = PetMgr.GetPetTemplateByStar(PetMgr.MaxStar); List <UsersPetinfo> list = new List <UsersPetinfo>(); using (PlayerBussiness playerBussiness = new PlayerBussiness()) { playerBussiness.RemoveUserAdoptPet(userID); for (int i = 0; i < num; i++) { int index = PetMgr.rand.Next(petTemplateByStar.Count); PetTemplateInfo info = PetMgr.FindPetTemplate(petTemplateByStar[index]); UsersPetinfo usersPetinfo = PetMgr.CreatePet(info, userID, i); usersPetinfo.IsExit = true; playerBussiness.AddUserAdoptPet(usersPetinfo, false); list.Add(usersPetinfo); } } return(list); }
public static UsersPetinfo CreatePet(PetTemplateInfo info, int userID, int place) { UsersPetinfo usersPetinfo = new UsersPetinfo(); int starLevel = info.StarLevel; int minValue = 200 + 100 * starLevel; int maxValue = 350 + 100 * starLevel; int minValue2 = 1700 + 1000 * starLevel; int maxValue2 = 2200 + 2500 * starLevel; usersPetinfo.BloodGrow = PetMgr.rand.Next(minValue2, maxValue2); usersPetinfo.AttackGrow = PetMgr.rand.Next(minValue, maxValue); usersPetinfo.DefenceGrow = PetMgr.rand.Next(minValue, maxValue); usersPetinfo.AgilityGrow = PetMgr.rand.Next(minValue, maxValue); usersPetinfo.LuckGrow = PetMgr.rand.Next(minValue, maxValue); usersPetinfo.DamageGrow = 0; usersPetinfo.GuardGrow = 0; double num = (double)PetMgr.rand.Next(54, 61) * 0.1; double num2 = (double)PetMgr.rand.Next(9, 13) * 0.1; usersPetinfo.Blood = (int)((double)(PetMgr.rand.Next(minValue2, maxValue2) / 10) * 0.1 * num); usersPetinfo.Attack = (int)((double)(PetMgr.rand.Next(minValue, maxValue) / 10) * 0.1 * num2); usersPetinfo.Defence = (int)((double)(PetMgr.rand.Next(minValue, maxValue) / 10) * 0.1 * num2); usersPetinfo.Agility = (int)((double)(PetMgr.rand.Next(minValue, maxValue) / 10) * 0.1 * num2); usersPetinfo.Luck = (int)((double)(PetMgr.rand.Next(minValue, maxValue) / 10) * 0.1 * num2); usersPetinfo.Damage = 0; usersPetinfo.Guard = 0; usersPetinfo.Hunger = 10000; usersPetinfo.TemplateID = info.TemplateID; usersPetinfo.Name = info.Name; usersPetinfo.UserID = userID; usersPetinfo.Place = place; usersPetinfo.Level = 1; usersPetinfo.Skill = PetMgr.UpdateSkillPet(1, info.TemplateID); usersPetinfo.SkillEquip = PetMgr.ActiveEquipSkill(1); return(usersPetinfo); }
private static bool LoadPetMgr(Dictionary <string, PetConfig> Config, Dictionary <int, PetLevel> Level, Dictionary <int, PetSkillElementInfo> SkillElement, Dictionary <int, PetSkillInfo> Skill, Dictionary <int, PetSkillTemplateInfo> SkillTemplate, Dictionary <int, PetTemplateInfo> TemplateId) { using (PlayerBussiness playerBussiness = new PlayerBussiness()) { PetConfig[] allPetConfig = playerBussiness.GetAllPetConfig(); PetLevel[] allPetLevel = playerBussiness.GetAllPetLevel(); PetSkillElementInfo[] allPetSkillElementInfo = playerBussiness.GetAllPetSkillElementInfo(); PetSkillInfo[] allPetSkillInfo = playerBussiness.GetAllPetSkillInfo(); PetSkillTemplateInfo[] allPetSkillTemplateInfo = playerBussiness.GetAllPetSkillTemplateInfo(); PetTemplateInfo[] allPetTemplateInfo = playerBussiness.GetAllPetTemplateInfo(); PetConfig[] array = allPetConfig; for (int i = 0; i < array.Length; i++) { PetConfig petConfig = array[i]; if (!Config.ContainsKey(petConfig.Name)) { Config.Add(petConfig.Name, petConfig); } } PetLevel[] array2 = allPetLevel; for (int j = 0; j < array2.Length; j++) { PetLevel petLevel = array2[j]; if (!Level.ContainsKey(petLevel.Level)) { Level.Add(petLevel.Level, petLevel); } } PetSkillElementInfo[] array3 = allPetSkillElementInfo; for (int k = 0; k < array3.Length; k++) { PetSkillElementInfo petSkillElementInfo = array3[k]; if (!SkillElement.ContainsKey(petSkillElementInfo.ID)) { SkillElement.Add(petSkillElementInfo.ID, petSkillElementInfo); } } PetSkillTemplateInfo[] array4 = allPetSkillTemplateInfo; for (int l = 0; l < array4.Length; l++) { PetSkillTemplateInfo petSkillTemplateInfo = array4[l]; if (!SkillTemplate.ContainsKey(petSkillTemplateInfo.ID)) { SkillTemplate.Add(petSkillTemplateInfo.ID, petSkillTemplateInfo); } } PetTemplateInfo[] array5 = allPetTemplateInfo; for (int m = 0; m < array5.Length; m++) { PetTemplateInfo petTemplateInfo = array5[m]; if (!TemplateId.ContainsKey(petTemplateInfo.ID)) { TemplateId.Add(petTemplateInfo.ID, petTemplateInfo); } } PetSkillInfo[] array6 = allPetSkillInfo; for (int n = 0; n < array6.Length; n++) { PetSkillInfo petSkillInfo = array6[n]; if (!Skill.ContainsKey(petSkillInfo.ID)) { Skill.Add(petSkillInfo.ID, petSkillInfo); } } } return(true); }
public int HandlePacket(GameClient client, GSPacketIn packet) { byte b = packet.ReadByte(); string text = "Xu không đủ!"; int num = 1; switch (b) { case 1: this.UpdatePetHandle(client, packet.ReadInt()); break; case 2: { Console.WriteLine("//ADD_PET "); int place = packet.ReadInt(); num = packet.ReadInt(); int iD = client.Player.PlayerCharacter.ID; int num2 = client.Player.PetBag.FindFirstEmptySlot(); if (num2 == -1) { client.Player.SendMessage("Số lượng pet đã đạt giới hạn!"); } else { ItemInfo itemAt = client.Player.GetItemAt((eBageType)num, place); PetTemplateInfo petTemplateInfo = PetMgr.FindPetTemplate(itemAt.Template.Property5); UsersPetinfo usersPetinfo = PetMgr.CreatePet(petTemplateInfo, iD, num2); using (PlayerBussiness playerBussiness = new PlayerBussiness()) { usersPetinfo.IsExit = false; playerBussiness.AddUserAdoptPet(usersPetinfo, true); } usersPetinfo.IsExit = true; PlayerInventory inventory = client.Player.GetInventory((eBageType)num); if (inventory.RemoveCountFromStack(itemAt, 1)) { client.Player.PetBag.AddPetTo(usersPetinfo, num2); client.Player.SendMessage("Bạn nhận được 1 " + petTemplateInfo.Name); } client.Player.SaveIntoDatabase(); } break; } case 3: { int num3 = packet.ReadInt(); break; } case 4: { int place = packet.ReadInt(); num = packet.ReadInt(); int num3 = packet.ReadInt(); bool flag = false; ItemInfo itemAt2 = client.Player.GetItemAt((eBageType)num, place); if (itemAt2 == null) { client.Player.SendMessage("Vật phẩm lạ không tìm thấy!!! Hack chăng???!!!"); return(0); } int num4 = Convert.ToInt32(PetMgr.FindConfig("MaxHunger").Value); int num5 = Convert.ToInt32(PetMgr.FindConfig("MaxLevel").Value); UsersPetinfo petAt = client.Player.PetBag.GetPetAt(num3); int num6 = itemAt2.Count; int property = itemAt2.Template.Property2; int property2 = itemAt2.Template.Property3; int num7 = num6 * property2; int num8 = num7 + petAt.Hunger; int num9 = num6 * property; text = ""; if (itemAt2.TemplateID == 334100) { num9 = itemAt2.DefendCompose; } if (petAt.Level > 11 && itemAt2.TemplateID == 334100) { text = "Pet level 10 trở xuống mới dùng đuợc " + itemAt2.Template.Name; } else { if (petAt.Level < num5) { num9 += petAt.GP; int level = petAt.Level; int level2 = PetMgr.GetLevel(num9); int gP = PetMgr.GetGP(level2 + 1); int gP2 = PetMgr.GetGP(num5); int num10 = num9; if (num9 > gP2) { num9 -= gP2; if (num9 >= property && property != 0) { num6 = num9 / property; } } petAt.GP = ((num10 >= gP2) ? gP2 : num10); petAt.Level = level2; petAt.MaxGP = ((gP == 0) ? gP2 : gP); petAt.Hunger = ((num8 > num4) ? num4 : num8); flag = client.Player.PetBag.UpGracePet(petAt, num3, true, level, level2, ref text); if (itemAt2.TemplateID == 334100) { client.Player.StoreBag.RemoveItem(itemAt2); } else { client.Player.StoreBag.RemoveCountFromStack(itemAt2, num6); client.Player.OnUsingItem(itemAt2.TemplateID); } } else { int hunger = petAt.Hunger; int num11 = num4 - hunger; if (num8 >= num4 && num8 >= property2) { num6 = num8 / property2; } num8 = hunger + num11; petAt.Hunger = num8; if (hunger < num4) { client.Player.StoreBag.RemoveCountFromStack(itemAt2, num6); flag = client.Player.PetBag.UpGracePet(petAt, num3, false, 0, 0, ref text); text = "Ðộ vui vẻ tang thêm " + num11; } else { text = "Ðộ vui vui đã đạt mức tối da"; } } } if (flag) { UsersPetinfo[] pets = client.Player.PetBag.GetPets(); client.Player.Out.SendUpdatePetInfo(client.Player.PlayerCharacter, pets); } if (!string.IsNullOrEmpty(text)) { client.Player.SendMessage(text); } break; } case 5: { bool refreshBtn = packet.ReadBoolean(); this.RefreshPetHandle(client, refreshBtn, text); break; } case 6: { int num3 = packet.ReadInt(); int num12 = client.Player.PetBag.FindFirstEmptySlot(); if (num12 == -1) { client.Player.Out.SendRefreshPet(client.Player, client.Player.PetBag.GetAdoptPet(), null, false); client.Player.SendMessage("Số lượng pet đã đạt giới hạn!"); } else { UsersPetinfo adoptPetAt = client.Player.PetBag.GetAdoptPetAt(num3); if (client.Player.PetBag.AddPetTo(adoptPetAt, num12)) { client.Player.PetBag.RemoveAdoptPet(adoptPetAt); client.Player.OnAdoptPetEvent(); } } break; } case 7: { int num3 = packet.ReadInt(); int killId = packet.ReadInt(); int killindex = packet.ReadInt(); if (client.Player.PetBag.EquipSkillPet(num3, killId, killindex)) { UsersPetinfo[] pets = client.Player.PetBag.GetPets(); client.Player.Out.SendUpdatePetInfo(client.Player.PlayerCharacter, pets); } else { client.Player.SendMessage("Skill này đã trang bị!"); } break; } case 8: { int num3 = packet.ReadInt(); UsersPetinfo petAt2 = client.Player.PetBag.GetPetAt(num3); if (client.Player.PetBag.RemovePet(petAt2)) { using (PlayerBussiness playerBussiness2 = new PlayerBussiness()) { playerBussiness2.UpdateUserAdoptPet(petAt2.ID); } } client.Player.SendMessage("Thả pet thành công!"); break; } case 9: { int num3 = packet.ReadInt(); string name = packet.ReadString(); int num13 = Convert.ToInt32(PetMgr.FindConfig("ChangeNameCost").Value); if (client.Player.PlayerCharacter.Money >= num13) { if (client.Player.PetBag.RenamePet(num3, name)) { UsersPetinfo[] pets = client.Player.PetBag.GetPets(); client.Out.SendUpdatePetInfo(client.Player.PlayerCharacter, pets); text = "Đổi tên thành công!"; } client.Player.RemoveMoney(num13); } client.Player.SendMessage(text); break; } case 16: { Console.WriteLine("//PAY_SKILL "); int num3 = packet.ReadInt(); break; } case 17: { int num3 = packet.ReadInt(); bool isEquip = packet.ReadBoolean(); if (client.Player.PetBag.SetIsEquip(num3, isEquip)) { UsersPetinfo[] pets = client.Player.PetBag.GetPets(); client.Player.MainBag.UpdatePlayerProperties(); client.Player.Out.SendUpdatePetInfo(client.Player.PlayerCharacter, pets); } break; } case 18: { int num3 = packet.ReadInt(); this.RevertPetHandle(client, num3, text); break; } case 19: { Console.WriteLine("//BUY_PET_EXP_ITEM "); bool buyPetExpItem = packet.ReadBoolean(); int GoodsID = packet.ReadInt(); int count = 20 * 80; ShopItemInfo shopItem = ShopMgr.GetShopItemInfoById(GoodsID); SqlDataProvider.Data.ItemInfo item = SqlDataProvider.Data.ItemInfo.CreateFromTemplate(ItemMgr.FindItemTemplate(334103), 20, 0x66); client.Player.RemoveMoney(count); client.Player.AddItem(item); text = "Mua thức ăn thành công."; client.Player.SendMessage(text); break; } } client.Player.PetBag.SaveToDatabase(); return(0); }