怎么将STATE模式引用到游戏外挂逻辑里

如何将STATE模式引用到游戏外挂逻辑里
游戏里面有很多的状态
比如接任务的时候,寻找NPC状态,对话状态,还有打怪状态,死亡状态
这些状态之间随时可能转换。
我想问下有人将STATE模式应用在外挂上么
如果有的话可以下面回帖,也可以私M我。。交流一下

------解决方案--------------------
游戏和游戏外挂,通常用状态机或者行为树,前者适用于简单游戏逻辑,复杂的可以考虑后者,c++的可以参考
https://code.google.com/p/libbehavior/
里面例子可以直接运行
之前搞d3 wg 是这两个混合用,登录部分用的状态机,里面用的BT
------解决方案--------------------
实现的话,考虑消息驱动还是轮询。前者需要把发送消息接口留给各个游戏功能模块去调,从无到有的话写起来繁琐点。
轮询嘛就给个时间精度做个timer,一般记录下当前状态,ontimer的时候根据状态名去找对应的处理流程。然后把改变状态的方法暴露出来,各个处理流程之间可以根据条件进行切换。状态内部如果需要维护数据就另记。
不过这种东西状态多了之后多多少少行为上会产生冲突,写起来还是要很注意结构性的。
对于外挂这种东西不是所有的功能都是持续性的,即不需要维护状态,比如类似加血这种瞬时性操作我觉得可以汇总一下在ontimer中直接调用。