SKILL_RESULT_CODE CastOnCasterSingle(KCharacter pDisplayCaster, KCharacter pLogicCaster) { SKILL_RESULT_CODE nResult = SKILL_RESULT_CODE.srcFailed; int nRetCode = 0; KSKILL_BULLET pBullet = new KSKILL_BULLET(); KTarget pTarget = new KTarget(); nRetCode = pTarget.SetTarget(pDisplayCaster); if (nRetCode == 0) { goto Exit0; } nRetCode = SetupBullet(pBullet, pLogicCaster, ref pTarget); if (nRetCode == 0) { goto Exit0; } if (pBullet.nEndFrame > FirstFightMgr.Instance().m_nGameLoop) { pLogicCaster.AddBullet(pBullet); } else { ApplyOnSingle(pBullet); } nResult = SKILL_RESULT_CODE.srcSuccess; Exit0: return(nResult); }
SKILL_RESULT_CODE CastOnCasterArea(KCharacter pDisplayCaster, KCharacter pLogicCaster) { SKILL_RESULT_CODE nResult = SKILL_RESULT_CODE.srcFailed; int nRetCode = 0; KTarget pTarget = new KTarget(); KSKILL_BULLET pBullet = new KSKILL_BULLET(); float fX = 0f; float fZ = 0f; nRetCode = pTarget.SetTarget(pDisplayCaster); if (nRetCode == 0) { goto Exit0; } nRetCode = SetupBullet(pBullet, pLogicCaster, ref pTarget); if (nRetCode == 0) { goto Exit0; } if (pBullet.nEndFrame > FirstFightMgr.Instance().m_nGameLoop) { pLogicCaster.AddBullet(pBullet); } else { pDisplayCaster.GetAbsoluteCoordinate(ref fX, ref fZ); nRetCode = (int)ApplyOnArea(pBullet, fX, fZ); } nResult = SKILL_RESULT_CODE.srcSuccess; Exit0: return(nResult); }
//以目标为中心的圆形区域 SKILL_RESULT_CODE CastOnTargetArea(KCharacter pDisplayCaster, KCharacter pLogicCaster, ref KTarget rTarget) { SKILL_RESULT_CODE nResult = SKILL_RESULT_CODE.srcFailed; int nRetCode = 0; KSKILL_BULLET pBullet = new KSKILL_BULLET(); float fTargetX = 0f; float fTargetZ = 0f; nRetCode = SetupBullet(pBullet, pLogicCaster, ref rTarget); if (nRetCode == 0) { goto Exit0; } if (pBullet.nEndFrame > FirstFightMgr.Instance().m_nGameLoop) { pLogicCaster.AddBullet(pBullet); } else { nRetCode = rTarget.GetTarget(ref fTargetX, ref fTargetZ); if (nRetCode == 0) { goto Exit0; } nRetCode = (int)ApplyOnSingle(pBullet); if (nRetCode != (int)SKILL_RESULT_CODE.srcSuccess) { return((SKILL_RESULT_CODE)nRetCode); } nRetCode = (int)ApplyOnArea(pBullet, fTargetX, fTargetZ); if (nRetCode != (int)SKILL_RESULT_CODE.srcSuccess) { return((SKILL_RESULT_CODE)nRetCode); } } nResult = SKILL_RESULT_CODE.srcSuccess; Exit0: return(nResult); }