Client
1.技能快捷鍵
2.判斷技能CD,范圍,根據(jù)技能類型設(shè)置技能目標(biāo),eg.以自身為中心的AOE技能,目標(biāo)是自身
3.向Server發(fā)送TryUseSkill消息
Server
1.收到Client消息,使用的技能壓入到‘技能處理列表‘中
m_skillTaskMgr.Push( TaskType_Skill, target, position, skillID, skillLvl )
2.在玩家每一幀中調(diào)用 m_skillTaskMgr.GetTask() 處理所有類型的任務(wù),包括技能
3.判斷使用技能的一些條件,eg.技能目標(biāo),技能范圍...
都滿足向Client發(fā)送MsgIntonateStart開始吟唱消息
Server:
1.目標(biāo)進(jìn)入視野,如果目標(biāo)正在吟唱或維持魔法,將此狀態(tài)消息MsgSkillStatus發(fā)給自己
EnterMySight(pTarget)
if ( pTarget->IsIntonate() || pTarget->IsHoldSkill() )
pTarget->SendSkillStatusTo( pMe )
Client
1.接受到Server技能吟唱消息 MsgIntonateStart MsgSkillStatus
參數(shù):iSkillID, iSkillLvl, srcPlayerID, tagPlayerID, iPercent
1). 若是自己吟唱,顯示吟唱進(jìn)度條 UIProgressBar::Show(...)
2). 加入到動(dòng)作隊(duì)列中等待處理 GetActionQueue()->Push_Intonate(...)
2. 每幀 HandleActionQueue 中處理 ‘技能吟唱’Intonate
1)保存吟唱的技能 skillID, skillLvl
2)播放并記錄吟唱的特效 iSkillEffectID = PlayEffect(...)
3)切換到吟唱?jiǎng)幼?SwitchActionStatus( Intonate, ...)
3. 吟唱結(jié)束 條件諸如:EndIntonate IntonateInterrupt HoldSkillEnd HoldSkillCancel Dead
1).切換動(dòng)作到idle狀態(tài)
2).清除播放中的吟唱特效 GetEffectMgr()->ReleaseEffect( iSkillEffectID )
posted on 2012-03-16 15:23
風(fēng)輕云淡 閱讀(367)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
DX