[教程]装备鉴定与自定义词条

Viewed 58

[TOC]

鉴定词条属性的配置

image.png
image.png
image.png

  1. 针对不同类型(ItemType),不同职业(RequiredClass),不同装备ID(ItemIndex)的配置
  2. 装备ID指定物品数据库Item的索引(对应ItemInfo, ItemIndex),如祈祷之剑是2
  3. 装备类型指向ItemType枚举,比如1是武器,2是盔甲
  4. RequiredClass指向装备的使用职业,比如法师的武器通常我们希望它只能鉴定出和法师职业相关的词条,如魔法攻击,智力等
  5. 插槽数量的概率
  6. 词条数量的概率
  7. 词条属性的随机范围和概率

当物品需要鉴定时, 会优先读取指定ItemIndex的配置,如果找不到就会找
查通用的配置, 先找 ItemType+RequiredClass 符合条件的配置, 再找ItemType符合的配置

比如
ItemType不等于0,Class为-1, 则表示为针对物品类型的通用配置

image.png

词条随机取值的范围设定

对于普通的词条, 如设定HP%在10~20范围内取值, 设置倍率为1,最小最大值为10,20即可, 简单的乘法关系,

最终的取值范围计算公式为为:
取值范围 = (物品等级Grade * 最小值 * 倍率) ~ (物品等级Grade * 最大值 * 倍率 )

对于一些强力的词条, 如暴击百分比,往往是极小的数值,那么可以降低倍率的方式实现小数值的增幅

比如暴击概率%,
一般会设置低档装备取值 1-2
五六档装备一般能打到3-4%
高级别的会再高一点

小数值的配置样本
image.png
取值范围计算公式:
下限: =A2C2D2
上限: =B2D2E2

一些说明

  1. 插槽数量的概率计算方法为:
    从0~10000的范围内,取一个随机值, 从后往前与列表比较, 如果小于,则插槽数为下标+1
    举例, 插槽概率配置:8888#6666#3333#2222#1111#111
    1.1 如果随机值为3000, 侧该装备鉴定为有4个插槽
    1.2 如果随机值为7000, 侧该装备鉴定为有1个插槽
    1.3 如果随机值为9000, 侧该装备鉴定为有0个插槽
    1.4 如果随机值为1000, 侧该装备鉴定为有5个插槽
    1.5 如果随机值为100 , 侧该装备鉴定为有6个插槽

  2. 鉴定属性数量的概率计算方法与插槽数量概率计算方法一致

  3. 装备的可鉴定属性列表,由 属性ID#出现概率#最小值#最大值#倍率 组成,支持无限多个

  4. '可鉴定属性列表'的选择算法是:
    从0~10000的范围内,取一个随机值, 从可鉴定属性列表由后往前与列表比较,小于则命中
    故第1条应该设置保底概率:10000,即至少有一个属性能够被选择

  5. 鉴定的属性值的算法为:
    最小值*倍率*装备等级 ~ 最大值*倍率*装备等级 的随机值,装备等级在数据库中配置(Grade)

  6. ItemIndex等于0,ItemType不等于0,Class为-1, 则表示为针对物品类型的通用配置, 当找不到指定ItemIndex的配置时,会使用通用配置兜底

自定义词条示例:

   71.火焰伤害           72.冰冷伤害           73.闪电伤害
   74.毒素伤害           75.火焰抵抗           76.冰冷抵抗
   77.闪电抵抗           78.毒素抵抗           4 .增加最小伤害
   5.增加最大伤害        51.增加伤害百分比     19.增加反弹伤害
   10.增加命中           1 .增加防御           11.增加****躲闪
   32.增加HP回复         33.增加MP回复         36.会心一击属性攻击
   66.加最大最小攻击     47.增加魔法攻击百分比 81.增加火魔法攻击点数
   82.增加冰魔法攻击点数 83.增加电魔法攻击点数 3.增加魔法防御点数
   41.魔法防御加百分比   12.最大生命值加点数   46.最大生命值加百分比
   13.最大魔法值加点数   47.最大魔法值加百分比 84.每杀个怪加生命点数
   85.每杀个怪加魔法点数 39.伤害增加生命百分比 48.伤害增加魔法百分比
   40.防御增加百分比     61.伤害吸收点数       24.伤害吸收百分比
   49.破防属性攻击       50.破除魔防属性攻击   7 .魔法攻击力加点数
  • 重置装备(ResetItemAdded+ResetItemSlot) 会清除所有的鉴定词条+天然极品属性+插槽数量+镶嵌入插槽的宝石

  • 鉴定的物品需要在物品数据库中设置Flag设置有: 8388608 (0x01<<23 , 需要鉴定) 标志位
    image.png

装备Flag枚举值

  [Flags]
public enum ItemFlag : long
{
    None = 0,
    [Description("显示组拾取")]
    ShowGroupPickup = 0x01<<1,
    [Description("装备穿戴需要职业")]
    ClassBased = 0x01<<2,
    [Description("装备穿戴需要等级")]
    LevelBased = 0x01<<3,
    [Description("能挖矿")]
    CanMine= 0x01<<4,
    [Description("需要鉴定")]
    NeedIdentify = 0x01<<23,    
}

装备类型


public enum ItemType : int
{
    None = 0,
    [Description("武器")]Weapon = 1,
    [Description("盔甲")]Armour = 2,
    [Description("盾牌")]Shield = 3 ,
    [Description("头盔")]Helmet = 4,
    [Description("项链")]Necklace = 5,
    [Description("手镯")]Bracelet = 6,
    [Description("戒指")]Ring = 7,
    [Description("护符")]Amulet = 8,
    [Description("腰带")]Belt = 9,
    [Description("靴子")]Boots = 10,
    [Description("宝石")]Stone = 11,
    [Description("火把")]Torch = 12,
    [Description("毒药")]Potion = 13,
    [Description("矿石")]Ore = 14,
    Meat = 15,
    CraftingMaterial = 16,
    Scroll = 17,
    [Description("镶嵌")]Gem = 18,
    [Description("坐骑")]Mount = 19,
    Book = 20,
    Script = 21,
    [Description("缰绳")]Reins = 22,
    [Description("铃铛")]Bells = 23,
    [Description("马鞍")]Saddle = 24,
    [Description("丝带")]Ribbon = 25,
    [Description("面具")]Mask = 26,
    Food = 27,
    Hook = 28,
    Float = 29,
    Bait = 30,
    Finder = 31,
    Reel = 32,
    Fish = 33,
    Quest = 34,
    Awakening = 35,
    Pets = 36,
    Transform = 37,
    Deco = 38,
    Socket = 39,
    MonsterSpawn = 40,
    SiegeAmmo = 41 ,
    

    
    [Description("称号,顶戴花翎")]FengHao = 73,
    
    [Description("天赋")] Innate = 120,
    [Description("元素")] Element = 121,
    
}

装备所需职业枚举值

[Flags]
public enum RequiredClass 
{
    [Description("任何职业可穿戴")]
    None = 0,
    [Description("仅战士可穿戴")]
    Warrior = 1,
    [Description("仅法师可穿戴")]
    Wizard = 2,
    [Description("仅道士可穿戴")]
    Taoist = 4,
    [Description("仅刺客可穿戴")]
    Assassin = 8,
    [Description("仅弓手可穿戴")]
    Archer = 16,
    [Description("战法道可穿戴")]
    WarWizTao = Warrior | Wizard | Taoist,
    [Description("战法道刺弓可穿戴")]
    WarWizTaoAssArc = Warrior | Wizard | Taoist |Assassin|Archer,

}

词条枚举值

public enum Stat : byte
{
    [Description("最小防御")]
    MinAC = 0,//防御
    [Description("防御")]
    MaxAC = 1,//防御
    [Description("最小魔御")]
    MinMAC = 2,//魔御
    [Description("魔御")]
    MaxMAC = 3,//魔御
    [Description("最小攻击")]
    MinDC = 4,//攻击
    [Description("攻击")]
    MaxDC = 5,//攻击
    [Description("最小魔法")]
    MinMC = 6,//魔法
    [Description("魔法")]
    MaxMC = 7,//魔法
    [Description("最小道术")]
    MinSC = 8,//道术
    [Description("道术")]
    MaxSC = 9,//道术

    [Description("准确")]
    Accuracy = 10,//准确
    [Description("敏捷")]
    Agility = 11,//敏捷
    [Description("生命值")]
    HP = 12,//HP
    [Description("魔法值")]
    MP = 13,//MP
    [Description("攻击速度")]
    AttackSpeed = 14,//攻击速度
    [Description("幸运")][Color(0xFFFF0000)]
    Luck = 15,//幸运
    [Description("背包负重")]
    BagWeight = 16,//背包负重
    [Description("腕力")]
    HandWeight = 17,//腕力
    [Description("负重")]
    WearWeight = 18,//负重
    [Description("反弹伤害")]
    Reflect = 19,//反弹伤害
    [Description("强度")]
    Strong = 20,//强度
    [Description("神圣")]
    Holy = 21,//神圣
    [Description("冰冻")]
    Freezing = 22,//冰冻
    [Description("中毒攻击")]
    PoisonAttack = 23,//中毒攻击
    [Description("魔法速度")]
    MagicSpeed = 24,//魔法速度
    [Description("移动速度")]
    MoveSpeed = 26,//移动速度

    [Description("魔法抗性")]
    MagicResist = 30,//魔法抗性
    [Description("中毒抗性")]
    PoisonResist = 31,//中毒抗性
    
    [Description("生命恢复")]
    HealthRecovery = 32,//生命恢复
    [Description("魔法恢复")]
    SpellRecovery = 33,//魔法恢复
    [Description("中毒恢复")]
    PoisonRecovery = 34, //中毒恢复
    
    [Description("暴击几率")][Color(0xFF00FFFF)]
    CriticalRate = 35,//暴击几率
    [Description("暴击伤害")][Color(0xFF00FFFF)]
    CriticalDamage = 36,//暴击伤害
    [Description("暴击抗性")][Color(0xFF00FFFF)]
    CriticalResist = 37,//暴击抗性
    [Description("反弹概率")][Color(0xFF00FFFF)]
    ReflectRate = 38,//反弹概率
    [Description("吸血概率")][Color(0xFF00FFFF)]
    HpDrainRate = 39,//吸血概率

    [Description("防御加成")][Color(0xFF00FFFF)]
    MaxACRatePercent = 40,//防御加成
    [Description("魔御加成")][Color(0xFF00FFFF)]
    MaxMACRatePercent = 41,//魔御加成
    [Description("攻击加成")][Color(0xFF00FFFF)]
    MaxDCRatePercent = 42,//攻击加成
    [Description("魔法加成")][Color(0xFF00FFFF)]
    MaxMCRatePercent = 43,//魔法加成
    [Description("道术加成")][Color(0xFF00FFFF)]
    MaxSCRatePercent = 44,//道术加成
    [Description("攻速加成")][Color(0xFF00FFFF)]
    AttackSpeedRatePercent = 45,//攻击速度加成
    [Description("生命加成")][Color(0xFF00FFFF)]
    HPRatePercent = 46,//生命加成
    [Description("魔法加成")][Color(0xFF00FFFF)]
    MPRatePercent = 47,//魔法加成
    [Description("吸血比例")][Color(0xFF00FFFF)]
    HPDrainRatePercent = 48,//吸血比例
    [Description("忽视防御")][Color(0xFF00FFFF)]
    IgnoreAC = 49,//忽视防御
    [Description("忽视魔御")][Color(0xFF00FFFF)]
    IgnoreMaC = 50,//忽视魔御
    [Description("伤害增强")][Color(0xFF00FFFF)]
    DamageIncRate = 51,//伤害增强
    [Description("伤害吸收")][Color(0xFF00FFFF)]
    DamageDecRate = 52,//伤害吸收

    //魔兽属性
    [Description("护甲")][Color(0xFFFF00FF)]
    Armor     = 60,//护甲
    [Description("格挡")][Color(0xFFFF00FF)]
    Reduce    = 61,//格挡
    [Description("力量")][Color(0xFFFF00FF)]
    Power     = 62,//力量
    [Description("敏捷")][Color(0xFFFF00FF)]
    Agile     = 63,//敏捷
    [Description("智力")][Color(0xFFFF00FF)]
    Intellect = 64,//智力
    [Description("破甲伤害")][Color(0xFFFF00FF)]
    Puncture  = 65,//破甲伤害,无极物理防御及抗性 18
    [Description("神圣伤害")][Color(0xFFFF00FF)]
    Divine    = 66,//神圣伤害,无视模仿防御及抗性 47
    [Description("体质")][Color(0xFFFF00FF)]
    Body      = 67,//体质,增加生命上限
    [Description("精神")][Color(0xFFFF00FF)]
    Mental    = 68,//精神,增加魔法上限 
    
    //五行元素攻击
    [Description("金攻击")][Color(0xFFFF7700)]
    EA_Metal  = 71,//金
    [Description("木攻击")][Color(0xFFFF7700)]
    EA_Wood   = 72,//木
    [Description("水攻击")][Color(0xFFFF7700)]
    EA_Water  = 73,//水
    [Description("火攻击")][Color(0xFFFF7700)]
    EA_Fire   = 74,//火
    [Description("土攻击")][Color(0xFFFF7700)]
    EA_Earth  = 75,//土
    [Description("光明攻击")][Color(0xFFFF7700)]
    EA_Light  = 76,//光明
    [Description("黑暗攻击")][Color(0xFFFF7700)]
    EA_Dark   = 77,//黑暗
    [Description("时间攻击")][Color(0xFFFF7700)]
    EA_Time   = 78,//时间
    [Description("雷攻击")][Color(0xFFFF7700)]
    EA_Thunder= 79,//雷
    
    //五行元素防御
    [Description("金防御")][Color(0xFFFF7700)]
    ED_Metal  = 81,//金
    [Description("木防御")][Color(0xFFFF7700)]
    ED_Wood   = 82,//木
    [Description("水防御")][Color(0xFFFF7700)]
    ED_Water  = 83,//水
    [Description("火防御")][Color(0xFFFF7700)]
    ED_Fire   = 84,//火
    [Description("土防御")][Color(0xFFFF7700)]
    ED_Earth  = 85,//土
    [Description("光明防御")][Color(0xFFFF7700)]
    ED_Light  = 86,//光明
    [Description("黑暗防御")][Color(0xFFFF7700)]
    ED_Dark   = 87,//黑暗
    [Description("时间防御")][Color(0xFFFF7700)]
    ED_Time   = 88,//时间
    [Description("雷防御")][Color(0xFFFF7700)]
    ED_Thunder= 89,//雷
    
    [Description("经验倍率加成")]
    ExpRatePercent = 100,//经验倍率加成
    [Description("装备爆率加成")][Level(1)]
    ItemDropRatePercent = 101,//装备爆率加成
    [Description("金币爆率加成")]
    GoldDropRatePercent = 102,//金币爆率加成
    [Description("采矿加成")]
    MineRatePercent = 103,//采矿加成
    [Description("宝石加成")]
    GemRatePercent = 104,// 宝石加成
    [Description("钓鱼加成")]
    FishRatePercent = 105,//钓鱼加成
    [Description("制造成功率加成")]
    CraftRatePercent = 106,//制造成功率加成
    [Description("技能熟练度加成")]
    SkillGainMultiplier = 107,//技能熟练度加成
    [Description("额外攻击")]
    AttackBonus = 108,//额外攻击

    [Description("夫妻经验倍率")]
    LoverExpRatePercent = 120,//夫妻经验倍率
    [Description("师徒伤害加成")]
    MentorDamageRatePercent = 121,//师徒伤害加成
    [Description("师徒经验加成")]
    MentorExpRatePercent = 123,//师徒经验加成
    [Description("伤害吸收百分比")]
    DamageReductionPercent = 124,//伤害吸收百分比
    [Description("被攻击回血几率")]
    EnergyShieldPercent = 125,//被攻击回血几率
    [Description("被攻击回血数量")]
    EnergyShieldHPGain = 126,////被攻击回血数量
    [Description("额外魔耗加成")]
    ManaPenaltyPercent = 127,//额外魔耗加成,Debuf
    [Description("传送额外魔耗加成")]
    TeleportManaPenaltyPercent = 128,//传送,闪烁,雷仙风等技能的额外魔耗加成,Debuf


    [Description("未知")]
    Unknown = 255

}
0 Answers