魔兽世界中,buff触发的条件是极其复杂的。例如上面冲击天赋触发条件涉及到三个小条件。这还是比较简单,条件与条件之间只有and关系。如果有or关系怎么办?我们可以用一棵行为树解决这个问题,行为树可以实现and和or的关系。所以完全可以让程序员开发策划需要的condition节点,策划使用编辑器编辑行为树即可。行为树在此就不细说了,大家可以找google看看
再说天赋成就和LOG系统看到这里,大家也明白了成就系统无非也是三点1. 时间 2. 条件 3. 动作
比如坐骑成就:
成就id
时间点
条件
动作
收集50个坐骑
收到一个坐骑时
有50个坐骑
增加一个坐骑大师的称号
LOG也是一样:
Log
时间点
条件
动作
记录一次转移金币大于1000G的LOG
扣钱
数量> 1000
记录log
魔兽世界天赋就是一些隐藏的永久buff
顺便给出一个简单实现:
https://github.com/egametang/Egametang/tree/master/Cpp/Game/BehaviorTree