特别说明:请勿将配置项设为null,空会使得全部配置失效 public double 统一怪物血量倍数 = 1;//全体怪物血量倍数,在自定义血量后执行 public int 统一免疫熔岩类型 = 1;//全体怪物,-1全部不免疫,0不改变,1全体免疫 public int 统一免疫陷阱类型 = 0;//全体怪物,-1全部不免疫,0不改变,1全体免疫 public List 统一设置例外怪物 = new List();//把npc写上 public bool 启动动态血量上限 = true;//服务器人数变多时,根据玩家系数再度调整血量(以人数最大值为准) public bool 启动怪物时间限制 = true; public bool 启动动态时间限制 = true;//服务器人数变多时,根据玩家系数再度调整时间(以人数最大值为准) public 怪物节[] 怪物节集 = new 怪物节[0]; public class 怪物节 { public string 标志 = "";//用于后续判定 public int 怪物ID = 0;//欲修改血量的怪物id,若等于0则任何一个怪物都适配 public int[] 再匹配 = new int[0];//格式ID,ID,ID,用于怪物id是0时的批量适配,当存在时才匹配 public int 怪物血量 = 0;//这个血量会加上玩家数量×玩家系数,如果小于或等于0则不会修改怪物血量 public int 玩家系数 = 0; public int 开服系数 = 0;//根据开服时间进行血量计算 public int 开服时间型 = 0;//0表示取距离开服时间的小时,1表示24小时的天,2表示单纯天(只有日期不包含小时),怪物的开服条件和开服系数都选用此值 public bool 覆盖原血量 = true;//如果为假,则为原始血量加上怪物和玩家系数,如果为真则让怪物血量等于此值 public bool 不低于正常 = true;//使自定义的怪物血量比正常的血量低时以正常为准 public int 出没秒数 = 0;//几秒不杀死自动消失 public int 人秒系数 = 0;//与上一条都为0则不启动 public int 开服系秒 = 0;//根据开服时间进行时间计算 public int 出没率子 = 1;//分子 public int 出没率母 = 1;//分母 public int 杀数条件 = 0;//0不限,负值小于,正值大于//从此插件装上开始计算 public int 数量条件 = 0;//0不限,负值小于,正值大于//同时存在的npcid数量(包含)包含自身 public int 人数条件 = 0;//0不限,负值小于,正值大于(包含) public int 昼夜条件 = 0;//0不限,-1晚上,1白天 public int 肉山条件 = 0;//0不限,-1未打,1打了 public int 巨人条件 = 0;//0不限,-1未打,1打了 public int 血月条件 = 0;//0不限,-1不是,1是 public int 月总条件 = 0;//0不限,-1不是,1是 public int 开服条件 = 0;//0不限,负值小于,正值大于(包含)距离开服时间的条件//从此插件装上开始计算 public List<怪物条件节> 怪物条件 = new List<怪物条件节> { };//必须存在或不存在某些怪物(不包含自身) public int 智慧机制 = -1;//-1表示不修改 public int 免疫熔岩 = 0;//0不修改,1启动,-1不启动,适用于无法被秒杀的怪 public int 免疫陷阱 = 0;//0不修改,1启动,-1不启动,适用于无法被秒杀的怪 public int 能够穿墙 = 0;//0不修改,1启动,-1不启动,如果ai不支持启动则会使怪物掉到地底 public int 无视重力 = 0;//0不修改,1启动,-1不启动,如果ai不支持启动则会使怪物掉到地底 public int 设为老怪 = 0;//0不修改,1启动,-1不启动 public bool 修改防御 = false;//不建议修改,除非不能秒杀的时候 public int 怪物防御 = 0;//怪物血量少时会闪,然后一地尸体... public int 怪物无敌 = 0;//0不修改,1启动,-1不启动 public string 自定缀称 = "";//名字后跟随的名字 public string 出场喊话 = ""; public string 死亡喊话 = ""; public bool 不宣读信息 = false;//不宣读出没、人数变动等讯息 public int 状态范围 = 100;//赋予玩家状态的最大范围,为0则不赋予 public List<状态节> 周围状态 = new List<状态节> { }; public int 死状范围 = 100;//怪物死亡时赋予玩家状态的范围,0不赋予 public Dictionary 死亡状态 = new Dictionary { };//格式 "ID":秒 public List<弹幕节> 出场弹幕 = new List<弹幕节> { }; public List<弹幕节> 死亡弹幕 = new List<弹幕节> { }; public List<怪物杀伤节> 出场伤怪 = new List<怪物杀伤节> { };//怪物出现时杀伤的怪物(不包含自身) public List<怪物杀伤节> 死亡伤怪 = new List<怪物杀伤节> { };//怪物死亡时杀伤的怪物(不包含自身) public int 血事件限 = 1;//设置最多触发几个事件 public List<比例节> 血量事件 = new List<比例节> { };//自动排序小的优先发动//涉及优先级不能排序 public int 时事件限 = 3;//设置最多触发几个事件 public List<时间节> 时间事件 = new List<时间节> { };//自动排序小的优先发动//涉及优先级不能排序 public Dictionary 随从怪物 = new Dictionary { };//怪物出场时召唤的怪物,若要循环请好好考虑,无法随从肉墙,格式 "ID":数量 public Dictionary 遗言怪物 = new Dictionary { };//怪物死亡时召唤的怪物,无法遗言肉墙,格式 "ID":数量 public int 掉落组限 = 1;//额外掉落能掉落几组(带条件的算一组) public List<掉落节> 额外掉落 = new List<掉落节> { };//怪物死亡时额外掉落的物品 public string 备注 = ""; } public class 掉落节 { public int 掉落率子 = 1;//分子 public int 掉落率母 = 1;//分母 public int 杀数条件 = 0;//0不限,负值小于,正值大于//从此插件装上开始计算 public int 人数条件 = 0;//0不限,负值小于,正值大于(包含) public int 杀死条件 = 0;//0不限,负值小于,正值大于(包含),杀死玩家数的 public int 昼夜条件 = 0;//0不限,-1晚上,1白天 public int 耗时条件 = 0;//0不限,负值小于,正值大于(包含) public int 肉山条件 = 0;//0不限,-1未打,1打了 public int 巨人条件 = 0;//0不限,-1未打,1打了 public int 血月条件 = 0;//0不限,-1不是,1是 public int 月总条件 = 0;//0不限,-1不是,1是 public int 开服条件 = 0;//0不限,负值小于,正值大于(包含)距离开服时间的条件//从此插件装上开始计算 public bool 跳出掉落 = false;//不执行后面的内容 public List<怪物条件节> 怪物条件 = new List<怪物条件节> { };//必须存在或不存在某些怪物(不包含自身) public List<物品节> 掉落物品 = new List<物品节> { }; public string 备注 = ""; } public class 物品节 { public int 物品ID = 0;//欲修改血量的怪物id public int 物品数量 = 0;//请尽量不要超过上限 public int 物品前缀 = -1;//前缀,小于0不修改例如-1 public bool 独立掉落 = false;//所有参与攻击者均掉落(且不能相互拾取),就像宝藏带,否则正常掉落,独立掉落无前缀 } public class 比例节 { public int 血量剩余比例 = 0;//百分比,最初怪物血量为100% public int 可触发次 = 1;//-1表示无限触发 public int 触发率子 = 1;//分子 public int 触发率母 = 1;//分母 public int 杀数条件 = 0;//0不限,负值小于,正值大于//从此插件装上开始计算 public int 人数条件 = 0;//0不限,负值小于,正值大于(包含) public int 杀死条件 = 0;//0不限,负值小于,正值大于(包含),杀死玩家数的 public int 昼夜条件 = 0;//0不限,-1晚上,1白天 public int 耗时条件 = 0;//0不限,负值小于,正值大于(包含) public int 肉山条件 = 0;//0不限,-1未打,1打了 public int 巨人条件 = 0;//0不限,-1未打,1打了 public int 血月条件 = 0;//0不限,-1不是,1是 public int 月总条件 = 0;//0不限,-1不是,1是 public int 开服条件 = 0;//0不限,负值小于,正值大于(包含)距离开服时间的条件//从此插件装上开始计算 public bool 跳出事件 = false;//不执行后面的内容 public List<怪物条件节> 怪物条件 = new List<怪物条件节> { };//必须存在或不存在某些怪物(不包含自身) public List<玩家条件节> 玩家条件 = new List<玩家条件节> { };//必须存在或不存在某些怪物(不包含自身) public bool 直接撤退 = false;//不掉物品 public int 切换智慧 = -1;//-1表示不修改 public int 能够穿墙 = 0;//0不修改,1启动,-1不启动,如果ai不支持启动则会使怪物掉到地底 public int 无视重力 = 0;//0不修改,1启动,-1不启动,如果ai不支持启动则会使怪物掉到地底 public bool 修改防御 = false;//不建议修改,除非不能秒杀的时候 public int 怪物防御 = 0; public int 恢复血量 = 0;//恢复怪物血量 public int 怪物无敌 = 0;//0不修改,1启动,-1不启动 public int 拉取起始 = 0; public int 拉取范围 = 0;//0为不拉取,将范围内的全部玩家传送到boss身上,上一条配合可实现环形 public int 杀伤范围 = 0;//击退范围内的玩家 public int 杀伤伤害 = 0;//基于伤害,当然负数可以是给玩家加血 public int 击退范围 = 30;//击退范围内的玩家 public int 击退力度 = 5;//以此力度击退 public List<弹幕节> 释放弹幕 = new List<弹幕节> { }; public int 状态范围 = 0;//大于0则覆盖上次定义的范围状态 public List<状态节> 周围状态 = new List<状态节> { }; public List<怪物杀伤节> 杀伤怪物 = new List<怪物杀伤节> { }; public Dictionary 召唤怪物 = new Dictionary { };//无法随从肉墙 public string 喊话 = ""; } public class 时间节 { public int 消耗时间 = 0;//召唤之后的计时 public bool 循环执行 = false; public int 延迟秒数 = 0;//在实际时间后延迟多久执行 public int 可触发次 = 1;//-1表示无限触发 public int 触发率子 = 1;//分子 public int 触发率母 = 1;//分母 public int 杀数条件 = 0;//0不限,负值小于,正值大于//从此插件装上开始计算 public int 人数条件 = 0;//0不限,负值小于,正值大于(包含) public int 昼夜条件 = 0;//0不限,-1晚上,1白天★ public int 血比条件 = 0;//0不限,负值小于,正值大于(包含),杀死玩家数的 public int 杀死条件 = 0;//0不限,负值小于,正值大于(包含),杀死玩家数的 public int 耗时条件 = 0;//0不限,负值小于,正值大于(包含) public int 肉山条件 = 0;//0不限,-1未打,1打了 public int 巨人条件 = 0;//0不限,-1未打,1打了 public int 血月条件 = 0;//0不限,-1不是,1是 public int 月总条件 = 0;//0不限,-1不是,1是 public int 开服条件 = 0;//0不限,负值小于,正值大于(包含)距离开服时间的条件//从此插件装上开始计算 public bool 跳出事件 = false;//不执行后面的内容 public List<怪物条件节> 怪物条件 = new List<怪物条件节> { };//必须存在或不存在某些怪物(不包含自身) public List<玩家条件节> 玩家条件 = new List<玩家条件节> { };//必须存在或不存在某些怪物(不包含自身) public List<指示物组节> 指示物条件 = new List<指示物组节> { }; public List<指示物节> 指示物修改 = new List<指示物节> { }; public bool 直接撤退 = false;//不掉物品 public int 切换智慧 = -1;//-1表示不修改 public int 能够穿墙 = 0;//0不修改,1启动,-1不启动,如果ai不支持启动则会使怪物掉到地底 public int 无视重力 = 0;//0不修改,1启动,-1不启动,如果ai不支持启动则会使怪物掉到地底 public bool 修改防御 = false;//不建议修改,除非不能秒杀的时候 public int 怪物防御 = 0; public int 恢复血量 = 0;//恢复怪物血量 public int 怪物无敌 = 0;//0不修改,1启动,-1不启动 public int 拉取起始 = 50; public int 拉取范围 = 100;//将范围内的全部玩家传送到boss身上 public int 击退范围 = 30;//击退范围内的玩家 public int 击退力度 = 5;//以此力度击退 public int 杀伤范围 = 0;//击退范围内的玩家 public int 杀伤伤害 = 0;//基于伤害,当然负数可以是给玩家加血 public List<弹幕节> 释放弹幕 = new List<弹幕节> { }; public int 状态范围 = 0;//大于0则覆盖上次定义的范围状态 public List<状态节> 周围状态 = new List<状态节> { }; public List<怪物杀伤节> 杀伤怪物 = new List<怪物杀伤节> { }; public Dictionary 召唤怪物 = new Dictionary { };//无法随从肉墙 public string 喊话 = ""; } public class 状态节 { public int 状态ID = 0; public int 状态起始范围 = 0;//为0不限,需大于起始范围 public int 状态结束范围 = 0;//为0不限,需小于结束范围,与上个组合形成环形 public string 头顶提示 = "";//不停提示 } public class 怪物条件节 { public int 怪物ID = 0; public string 查标志 = "";//如果不为空则需要目标标志符合 public int 范围内 = 0;//0不限制,大于0必须在范围内 public int 符合数 = 0;//0不限,正值大于,负值小于(注:目标值与此值对比,例如此值设置1目标为1,则过,若目标0则不过,若设置-1,目标1不过,0过) } public class 玩家条件节 { public int 范围起 = 0;//0不限制,大于0必须不在范围内 public int 范围内 = 0;//不能为0,必须在范围内 public int 符合数 = 0;//0不限,正值大于,负值小于 } public class 怪物杀伤节 { public int 怪物ID = 0; public int 范围内 = 0;//0不限制,大于0必须在范围内 public int 造成伤害 = 0; public bool 直接伤害 = false;//无视防御,但不能杀死怪物(剩余1血)当然如果是负数可以变成加血 public bool 直接清除 = false;//清除无法掉落物品,但能杀死无敌怪 } public class 指示物组节 { public string 名称 = ""; public int 数量 = 0;//0不限,正值大于,负值小于(注:目标值与此值对比, 例如此值设置1目标为1, 则过, 若目标0则不过, 若设置-1, 目标1不过,0过) } public class 指示物节: 指示物组节 { public string 名称 = ""; public int 数量 = 0; public bool 清除 = false;//若清除则使原来的内容清除再置入数量 } public class 弹幕节 { public int 弹幕ID = 0; public float X轴偏移 = 0;//用于定义弹幕的生成点 public float Y轴偏移 = 0; public float X轴速度 = 0; public float Y轴速度 = 0; public int 弹幕伤害 = 0; public int 弹幕击退 = 0; public float 弹幕Ai0 = 0; public float 弹幕Ai1 = 0; public int 锁定范围 = 0;//若此值大于0,则锁定此范围内距离最近的玩家发射弹幕,其xy轴速度变为偏移速度,最大不可超过100 public float 锁定速度 = 0;//只有为锁定弹幕时才有效的参数 }