using LitJson; public class GuildBossManager : GameSystemManager { //配置 public int initSuperHitRate; public int[] bzAddAttrs; public int bzMaxLevel; public int freeAtkCount; public int[][] atkItemList; public int maxAngerValue; public int[] bxCumulativeDamageList; public int bxDailyMax; //个人每日产出上限 public int bxDailyAwardMax; //个人每日领取奖励上限 void ParseConfig() { // 数值1:初始暴击率万分率,功能独立的暴击率,与角色暴击无关 // 数值3:布阵最大层级,暂固定每人1次,1次1层 var config = FuncConfigConfig.Get("FamilyTaofaBuzhen"); initSuperHitRate = int.Parse(config.Numerical1); bzAddAttrs = ConfigParse.GetMultipleStr(config.Numerical2); bzMaxLevel = int.Parse(config.Numerical3); // 数值1:每日免费斩杀次数 // 数值2:每次普通斩杀获得个人奖励列表 [[物品ID,个数], ...] // 数值4:常规斩杀增加怒气|暴击斩杀增加怒气|满怒气值 config = FuncConfigConfig.Get("FamilyTaofaAtk"); freeAtkCount = int.Parse(config.Numerical1); atkItemList = JsonMapper.ToObject(config.Numerical2); maxAngerValue = int.Parse(config.Numerical4.Split('|')[2]); // 数值1:产出宝箱的累计伤害列表 [宝箱1所需累计伤害, ...],最后一档伤害可以循环产出,直到当日的贡献宝箱上限 // 数值2:每日个人贡献宝箱数上限,最后一档可循环,上限控制 // 数值3:每日个人领取宝箱奖励个数上限 config = FuncConfigConfig.Get("FamilyTaofaBox"); bxCumulativeDamageList = JsonMapper.ToObject(config.Numerical1); bxDailyMax = int.Parse(config.Numerical2); bxDailyAwardMax = int.Parse(config.Numerical3); } public override void Init() { ParseConfig(); } public override void Release() { } //// 操作:0-斩杀攻击;1-布阵 public void TaofaBoss(int opType) { var pack = new CA613_tagCSFamilyTaofaOP(); pack.OpType = (byte)opType; GameNetSystem.Instance.SendInfo(pack); } // 【公会行为】 // 增加行为类型18 - 公会讨伐相关数据 // Value1 玩家ID 或 全局ID,当该值等于1时代表该条数据记录的是讨伐全局数据,以下其他值根据Value1代表不同意思 // 玩家 全局 // Time 最后讨伐时间戳 重置时间戳,前端可用于判断是否变更了不同的讨伐(变更后,前端可重置讨伐相关缓存数据,GM重置会变更) // Value2 玩家布阵时间戳 布阵层级到期时间戳 // Value3 到本公会后攻击次数 当前有效布阵层级 // Value4 到本公会后累计伤害,求余亿部分 无 // Value5 到本公会后累计伤害,整除亿部分 无 // Value6 到本公会后贡献宝箱数 无 // UseData 到本公会后记录 无 // 成员记录格式: Json格式 {"atkList":[[atkTime, 本次贡献箱子数, 本次总伤害, atkType], ...], "info":{k:v, ...}} // atkList - 讨伐记录列表,可用于表现成员头像攻击: atkTime - 攻击时间戳, atkType - 攻击类型(0-普通攻击, 1-怒气攻击) // info - 不一定有该key,仅退出的成员才有,用于更新退出成员相关基础信息,如名字、头像等,还在公会里的成员通过 // A5 20 玩家家族信息 #tagMCRoleFamilyInfo 取成员信息 // "info":{"LV":106,"Job":1,"Name":"主公3016219","FacePic":0,"FightPower":1831995,"RealmLV":12,"ServerID":86,"TitleID":0,"Face":0}, public HA513_tagMCFamilyActionInfo.tagMCFamilyAction GetGuildBossAction() { GuildManager.Instance.TryGetFamilyActions(GuildManager.GuildBossActionType, out var familyActions); if (familyActions == null) { return null; } foreach (var action in familyActions) { if (action.Value1 == 1) { return action; } } return null; } int lastGuildBossTime; // 获取公会中的伤害记录做排名 public void UpdateGuildBossInfo(HA513_tagMCFamilyActionInfo vNetData) { if (vNetData.ActionType != GuildManager.GuildBossActionType) { return; } GuildManager.Instance.TryGetFamilyActions(GuildManager.GuildBossActionType, out var familyActions); if (familyActions == null) { return; } foreach (var action in familyActions) { if (action.Value1 == 1) { return; } } } } public class PlayerGuildBossAtkInfo { public int playerID; public int atkTime; public int bzTime; public int atkCount; public long totalHurtValue; public int boxCnt; }