|
using System.Collections.Generic;
|
using LitJson;
|
|
public class GuildBossManager : GameSystemManager<GuildBossManager>
|
{
|
|
public Dictionary<int, HA513_tagMCFamilyActionInfo.tagMCFamilyAction> bossActions = new Dictionary<int, HA513_tagMCFamilyActionInfo.tagMCFamilyAction>();
|
|
|
|
//配置
|
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<int>(config.Numerical2);
|
bzMaxLevel = int.Parse(config.Numerical3);
|
|
// 数值1:每日免费斩杀次数
|
// 数值2:每次普通斩杀获得个人奖励列表 [[物品ID,个数], ...]
|
// 数值4:常规斩杀增加怒气|暴击斩杀增加怒气|满怒气值
|
config = FuncConfigConfig.Get("FamilyTaofaAtk");
|
freeAtkCount = int.Parse(config.Numerical1);
|
atkItemList = JsonMapper.ToObject<int[][]>(config.Numerical2);
|
maxAngerValue = int.Parse(config.Numerical4.Split('|')[2]);
|
|
// 数值1:产出宝箱的累计伤害列表 [宝箱1所需累计伤害, ...],最后一档伤害可以循环产出,直到当日的贡献宝箱上限
|
// 数值2:每日个人贡献宝箱数上限,最后一档可循环,上限控制
|
// 数值3:每日个人领取宝箱奖励个数上限
|
config = FuncConfigConfig.Get("FamilyTaofaBox");
|
bxCumulativeDamageList = JsonMapper.ToObject<int[]>(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()
|
{
|
|
return null;
|
}
|
|
// 获取公会中的伤害记录做排名
|
public bool UpdateGuildBossInfo(HA513_tagMCFamilyActionInfo vNetData)
|
{
|
if (vNetData.ActionType != GuildManager.GuildBossActionType)
|
{
|
return false;
|
}
|
|
for (int i = 0; i < vNetData.Count; i++)
|
{
|
bossActions[(int)vNetData.FamilyActionList[i].Value1] = vNetData.FamilyActionList[i];
|
}
|
|
|
return true;
|
}
|
|
}
|
|
public class PlayerGuildBossAtkInfo
|
{
|
public int playerID;
|
public int atkTime;
|
public int bzTime;
|
public int atkCount;
|
public long totalHurtValue;
|
public int boxCnt;
|
|
}
|
|