private static void DropEquips(int equipLevel, List <int> items) { int[] qualRate = { 70, 20, 5, 4, 1 }; int resultQual = 0; int sum = 0; int roll = MathTool.GetRandom(100); for (int i = 0; i < 5; i++) { sum += qualRate[i]; if (roll < sum) { resultQual = i; break; } } int resultItemId = 0; while (resultItemId == 0) { resultItemId = EquipBook.GetRandEquipByLevelQuality(equipLevel, resultQual); resultQual--;//如果该品质没有道具,就降低一档品质继续查找 } items.Add(resultItemId); }
private void RefreshEquip() { equipDataList = EquipBook.GetEquipsList(Array.ConvertAll(UserProfile.InfoEquip.Equipon,equip=>equip.BaseId)); vEquip = EquipBook.GetVirtualEquips(equipDataList); var jobConfig = ConfigData.GetJobConfig(UserProfile.InfoBasic.Job); jobInfo = new JobAddon(); jobInfo.Lp += jobConfig.EnergyRate[0]; jobInfo.Pp += jobConfig.EnergyRate[1]; jobInfo.Mp += jobConfig.EnergyRate[2]; }
public DbMergeData[] GetAllMergeData() { int time = TimeTool.DateTimeToUnixTime(DateTime.Now); if (MergeMethods == null || UserProfile.InfoRecord.GetRecordById((int)MemPlayerRecordTypes.LastMergeTime) < time - GameConstants.MergeWeaponDura) { int[] ids = EquipBook.GetCanMergeId(UserProfile.InfoBasic.Level); List <int> newids = new List <int>(ids); ListTool.RandomShuffle(newids); MergeMethods = new List <DbMergeData>(); for (int i = 0; i < 8; i++) { MergeMethods.Add(CreateMergeMethod(newids[i])); } UserProfile.InfoRecord.SetRecordById((int)MemPlayerRecordTypes.LastMergeTime, TimeManager.GetTimeOnNextInterval(UserProfile.InfoRecord.GetRecordById((int)MemPlayerRecordTypes.LastMergeTime), time, GameConstants.MergeWeaponDura)); } return(MergeMethods.ToArray()); }
private void CalculateEquipAndSkill(int[] equipids, int[] energyData) { var equipList = EquipBook.GetEquipsList(equipids); foreach (var equip in equipList) { EquipConfig equipConfig = ConfigData.GetEquipConfig(equip.TemplateId); for (int i = 0; i < 3; i++) { energyData[i] += equipConfig.EnergyRate[i]; } if (equipConfig.HeroSkillId > 0) { HeroSkillList.Add(equipConfig.HeroSkillId); //添加装备附带的技能 } } var addon = EquipBook.GetVirtualEquips(equipList); State.UpdateAttr(addon); }
private void selectPanel_DrawCell(Graphics g, int info, int xOff, int yOff) { EquipConfig equipConfig = ConfigData.GetEquipConfig(info); g.DrawImage(EquipBook.GetEquipImage(info), 5 + xOff, 5 + yOff, 40, 40); Font font = new Font("微软雅黑", 11.25F * 1.33f, FontStyle.Bold, GraphicsUnit.Pixel); SolidBrush sb = new SolidBrush(Color.FromName(HSTypes.I2QualityColor(equipConfig.Quality))); g.DrawString(equipConfig.Name, font, sb, 50 + xOff, 5 + yOff); sb.Dispose(); font.Dispose(); font = new Font("宋体", 10F * 1.33f, FontStyle.Regular, GraphicsUnit.Pixel); g.DrawString("Lv" + equipConfig.Level, font, Brushes.DimGray, 50 + xOff + 10, 5 + yOff + 24); font.Dispose(); if (UserProfile.InfoEquip.EquipComposeAvail.Contains(info)) { var img = PicLoader.Read("System", "Learn.PNG"); g.DrawImage(img, xOff + 10, 3 + yOff, img.Width, img.Height); img.Dispose(); } }
private void virtualRegion_RegionClicked(int id, int x, int y, MouseButtons button) { tooltip.Hide(this); if (button == MouseButtons.Left) { if (id < 10)//点击装备 { if (selectTar != -1)//穿上装备 { EquipConfig equipConfig = ConfigData.GetEquipConfig(UserProfile.InfoEquip.Equipoff[selectTar].BaseId); if (!EquipBook.CanEquip(equipConfig.Id)) { AddFlowCenter("等级不足", "Red"); } else { if (equipConfig.Position == id) { var oldItem = UserProfile.InfoEquip.Equipon[id - 1]; UserProfile.InfoEquip.Equipon[id - 1] = UserProfile.InfoEquip.Equipoff[selectTar]; vRegion.SetRegionKey(id, UserProfile.InfoEquip.Equipon[id - 1].BaseId); UserProfile.InfoEquip.Equipoff[selectTar] = oldItem; vRegion.SetRegionKey(selectTar + 20, oldItem.BaseId); RefreshEquip(); selectTar = -1; myCursor.ChangeCursor("default"); } } } else//脱下装备 { int i = UserProfile.InfoEquip.GetBlankEquipPos(); if (i == -1)//没有空格了 return; UserProfile.InfoEquip.Equipoff[i] = UserProfile.InfoEquip.Equipon[id - 1]; vRegion.SetRegionKey(i + 20, UserProfile.InfoEquip.Equipoff[i].BaseId); UserProfile.InfoEquip.Equipon[id - 1] = new DbEquip(); vRegion.SetRegionKey(id, 0); RefreshEquip(); } } else if (id >= 20) { var tar = id - 20; if (selectTar == -1) { if (UserProfile.InfoEquip.Equipoff[tar].BaseId != 0) { var icon = ConfigData.GetEquipConfig(UserProfile.InfoEquip.Equipoff[tar].BaseId).Url; myCursor.ChangeCursor("Equip", string.Format("{0}.JPG", icon), 40, 40); selectTar = tar; tooltip.Hide(this); } } else { myCursor.ChangeCursor("default"); if (UserProfile.InfoEquip.Equipoff[tar].BaseId == 0)//移动 { UserProfile.InfoEquip.Equipoff[tar] = UserProfile.InfoEquip.Equipoff[selectTar]; UserProfile.InfoEquip.Equipoff[selectTar] = new DbEquip(); vRegion.SetRegionKey(tar + 20, UserProfile.InfoEquip.Equipoff[tar].BaseId); vRegion.SetRegionKey(selectTar + 20, 0); } else//交换 { var oldItem = UserProfile.InfoEquip.Equipoff[tar]; UserProfile.InfoEquip.Equipoff[tar] = UserProfile.InfoEquip.Equipoff[selectTar]; UserProfile.InfoEquip.Equipoff[selectTar] = oldItem; vRegion.SetRegionKey(tar + 20, UserProfile.InfoEquip.Equipoff[tar].BaseId); vRegion.SetRegionKey(selectTar + 20, UserProfile.InfoEquip.Equipoff[selectTar].BaseId); } selectTar = -1; } } Invalidate(); } else { if (id >= 20) { var tar = id - 20; tooltip.Hide(this); popMenuEquip.Clear(); #region 构建菜单 if (UserProfile.InfoEquip.Equipoff[tar].BaseId != 0) { popMenuEquip.AddItem("decompose", "分解", "Red"); } popMenuEquip.AddItem("exit", "退出"); #endregion popMenuEquip.AutoResize(); popMenuEquip.EquipIndex = tar; var pos = vRegion.GetRegionPosition(tar + 20); popContainer.Show(this, pos.X, pos.Y); } } }