玩猎人感觉宠物天赋点太少了,感觉可以和人物天赋一样可以配置天赋点的获取倍率。自己研究了一下,这里总结出来。
增加配置
World/IWorld.h 中的Rates 枚举的RATE_TALENT后面增加RATE_PET_TALENT 代表宠物天赋倍率的配置。
World/World.cpp 中配置读取的地方新增(可以加在_rate_values[RATE_TALENT]配置的后面)
1 | _rate_values[RATE_PET_TALENT] = sConfigMgr->GetOption<float>("Rate.Pet.Talent", 1.0f); |
实现配置读取以及默认值的设置。
修改源码
Entities/Pet/pet.cpp 中找到 GetMaxTalentPointsForLevel 方法,修改如下:
1 | uint8 Pet::GetMaxTalentPointsForLevel(uint8 level) |
好了,这样代码就改好了。
编译验证
在 worldserver.conf 中增加配置:Rate.Pet.Talent = 2 设置成两倍倍率。
编译服务端,启动游戏验证,天赋计算公式按代码逻辑是:**20级开始(等级-16)/ 4 取整 **
宠物20级:2点天赋
宠物80级:32点天赋
完成~
PR
给官方提了PR,也成功合并了。有个问题是项目成员觉得应该和玩家的天赋倍率保持一致,需要影响到所有天赋点获取行为,我觉得也合理,所以最终提交的代码是有变化的。
PR详情: https://github.com/azerothcore/azerothcore-wotlk/pull/17678