任务完成！！！

那个，攻击弹来弹去哪个要求完成了。。
原理如下：

初始状态客户端的控制区都是不可用的，当服务器需要一个用户的操作时给客户端发一个描述结构明确指出要有啥操作并且仅允许指明的操作，客户端此时操作区变为可用，当操作完成后客户端的操作区马上变为不可用。这样所有的控制权都被服务端掌握了。

然后服务端的原理是，用多层状态描述机制，每攻击一次都call一个攻击响应状态，攻击响应状态的OnEnter()响应函数会请求目标玩家的操作，然后停留在该状态。当客户端消息发过来后会检查状态，根据消息和当前状态对状态进行切换。当一系列攻击完成并结算伤害后，先前Call进去的状态会一层一层弹出来，这样控制权就又交回来了。
整体来说，由状态机制控制游戏流程。
Rule类有两个功能：一个是对各个状态进行响应，做出应该做的操作，另一个是控制状态的变化。

另外关于多层状态机制，这次改动完全舍弃了信号-槽机制，全部使用回调函数进行事件响应。还有昨天说的那个指针的删除问题，还是没解决，目前只有经常在合适的地方使用StateManager::Clean()进行手动清理以防止内存泄露。