随笔 - 132  文章 - 51  trackbacks - 0
<2011年7月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

常用链接

留言簿(7)

随笔分类

随笔档案

文章分类

文章档案

cocos2d-x

OGRE

OPenGL

搜索

  •  

最新评论

阅读排行榜

评论排行榜

Client
1.技能快捷键
2.判断技能CD,范围,根据技能类型设置技能目标,eg.以自身为中心的AOE技能,目标是自身
3.向Server发送TryUseSkill消息

Server
1.收到Client消息,使用的技能压入到‘技能处理列表‘中
 m_skillTaskMgr.Push( TaskType_Skill, target, position, skillID, skillLvl )
2.在玩家每一帧中调用 m_skillTaskMgr.GetTask() 处理所有类型的任务,包括技能

3.判断使用技能的一些条件,eg.技能目标,技能范围...
  都满足向Client发送MsgIntonateStart开始吟唱消息
 
 
Server:
1.目标进入视野,如果目标正在吟唱或维持魔法,将此状态消息MsgSkillStatus发给自己
  EnterMySight(pTarget)
  if ( pTarget->IsIntonate() || pTarget->IsHoldSkill() )
 pTarget->SendSkillStatusTo( pMe )


Client
1.接受到Server技能吟唱消息 MsgIntonateStart MsgSkillStatus
  参数:iSkillID, iSkillLvl, srcPlayerID, tagPlayerID, iPercent
  1). 若是自己吟唱,显示吟唱进度条 UIProgressBar::Show(...)
  2). 加入到动作队列中等待处理 GetActionQueue()->Push_Intonate(...)
 
2. 每帧 HandleActionQueue 中处理 ‘技能吟唱’Intonate
 1)保存吟唱的技能 skillID, skillLvl
 2)播放并记录吟唱的特效 iSkillEffectID = PlayEffect(...)
 3)切换到吟唱动作 SwitchActionStatus( Intonate, ...)

3. 吟唱结束 条件诸如:EndIntonate IntonateInterrupt HoldSkillEnd HoldSkillCancel Dead
   1).切换动作到idle状态
   2).清除播放中的吟唱特效 GetEffectMgr()->ReleaseEffect( iSkillEffectID )


 

posted on 2012-03-16 15:23 风轻云淡 阅读(360) 评论(0)  编辑 收藏 引用 所属分类: DX

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理