直接上代码  不说什么   这一款源码 凝视及多  PublicDef.h 公共头文件
#define NF_PLATFORM                    1   //当前版本号(默觉得普通版)//版本号列表
#define NF_PLATFORM_NORMAL          1   //normal
#define NF_PLATFORM_91              2   //91 playform
#define NF_PLATFORM_PP              3   //PP playform
#define NF_PLATFORM_UC_ANDROID      4   //UC playform
#define NF_PLATFORM_360_ANDROID     5   //360 playform
#define NF_PLATFORM_DK_ANDROID      6   //DK playform
#define NF_PLATFORM_MI_ANDROID      7   //MI playform
#define NF_PLATFORM_WDJ_ANDROID     8   //WDJ playform
#define NF_PLATFORM_OPPO_ANDROID    9   //OPPO playform
#define NF_PLATFORM_WYX_ANDROID    10   //WYX  playform//静态数据管理
#define _TR_STATIC_DATABASE_FILE_NAME_      "nf_static.db"
std::string GetStaticDataName();//存储数据管理
#define _NF_SAVE_DATABASE_FILE_NAME_        "nf_save.db"
std::string GetSaveDataName();#define SCREEN_WIDTH      CCDirector::sharedDirector()->getWinSize().width //屏幕宽(指定分辨率)
#define SCREEN_HEIGHT       480                                                 //屏幕高(指定分辨率)
#define SCREEN_CENTER       ccp(SCREEN_WIDTH*0.5f,SCREEN_HEIGHT*0.5f)           //屏幕中心
#define NAME_LEN            128
#define _NF_ABS(x)              (    (x)>=0 ?

(x) : -(x) ) //非Win32平台的一些数据类型定义 #if (CC_TARGET_PLATFORM != CC_PLATFORM_WIN32) typedef unsigned int UINT; typedef unsigned short WORD; typedef unsigned long DWORD; typedef unsigned char BYTE; #endif //消息接收 class CMsgReceiver { public: virtual void RecMsg(int nMsgID,void* pInfo,int nSize) { } }; //消息发送 class CMsgSender { protected: CMsgReceiver * m_pReceiver;; public: void SetMsg(CMsgReceiver * pReceiver) { m_pReceiver = pReceiver; } bool SendMsg(int nMsgID,void* pInfo,int nSize) { if (m_pReceiver == NULL) { return false; } else { m_pReceiver->RecMsg(nMsgID,pInfo,nSize); return true; } } }; //z轴 enum { enZOrderBack=100, enZOrderMid=100000, enZOrderFront=300000, }; //玩家控制的角色 enum { enTagProtagonist, }; ///======================================================================= //消息标签 enum { enMsgCommonAttack, //普通攻击 enMsg_Hit_Enemy, //击中敌人 enMsg_RemoveEnemy, //移除敌人 enMsg_RemoveProtagonist, //移除主角 enMsgEnemyCommonAttack, //敌人普通攻击 enMsgProtagonistSkill, //技能 enMsgProtagonistTransfer, //传送门 enMsgCreateEnemy, //创建敌人 enMsgGameWin, //游戏胜利 enMsgCreateGameWinLayer, //创建游戏胜利页 enMsgCreateGameOverLayer, //创建游戏失败页 }; //城镇消息标签 enum { enMsgCreateFbSelectLayer, //创建副本选择页 }; //消息标签:依据server数据,进行操作 enum { enHttpMsg_CheckUserExist = 1, //用户角色检測 enHttpMsg_CreateHero, }; //敌人创建结构体 struct Cmd_CreateEnemyInfo { int nEnemyID; //敌人ID int nEnemyLevel; //敌人等级 float fPosX; //敌人创建x轴位置 float fPosY; //敌人创建y轴位置 }; // struct tagTransferDoor { int nID; tagTransferDoor(){ nID = 0; } }; //移除人物的结构体 class CNFBasicPerson; struct tagRemovePerson { CCArray* pArrayTarget; CNFBasicPerson* pPerson; tagRemovePerson(){ pArrayTarget = NULL; } }; //区分城镇和副本的ID范围 ID:0-10000为城镇。10001-19999为副本 ,20000以上为城镇副本 #define _NF_TOWN_OR_BATTLE_ID_ 10000 #define _NF_TOWN_FB_ID_ 20000 /************************************************************************/ /* 力量,智力与hp,mp的转化量 */ /************************************************************************/ #define _NF_POWER_HP_ 16 #define _NF_WIT_MP_ 14 #define _NF_ATTACK_UP_RATE_POWER_ 14 #define _NF_ATTACK_UP_RATE_WIT_ 14 #define _NF_ATTACK_UP_RATE_AGILITY_ 14 #define _NF_DOMINATION_UP_RATE_POWER_ 20 #define _NF_DOMINATION_UP_RATE_WIT_ 20 #define _NF_DOMINATION_UP_RATE_AGILITY_ 20 #define _NF_HIT_CD_ 180 //毅力计算系数 #define _NF_PERSEVERANCE_COEFFICIENT_ 4285 //防御计算系数 #define _NF_DEFENSE_COEFFICIENT_ 2857 /************************************************************************/ /* buff编号 */ /************************************************************************/ #define _NF_BUFF_TREATFORMULA_ID 1 //治疗 #define _NF_BUFF_SIPERARMOR_ID 2 //霸体 #define _NF_BUFF_ASTHENIA_ID 3 //衰弱 #define _NF_BUFF_ATTACKSPEEDCUT_ID 4 //缓慢 #define _NF_BUFF_MOVESPEEDCUT_ID 5 //减速 #define _NF_BUFF_POISONING_ID 6 //中毒 #define _NF_BUFF_BFB_TREATFORMULA_ID 7 //百分比治疗 #define _NF_BUFF_SINGLE_ATTACKUP_ID 8 //添加单体攻击力 #define _NF_BUFF_ATTACKUP_ID 9 //添加群体攻击力 #define _NF_BUFF_S_SIPERARMOR_ID 10 //群体霸体 #define _NF_BUFF_S_MP_RECOVER_ID 11 //群体百分比恢复MP //拳花类型 enum { enTagAttackType_Common = 1, //普通 enTagAttackType_Sharp = 2, //锐利 enTagAttackType_Fire = 3, //火焰 enTagAttackType_Electricity = 4, //雷电 }; /************************************************************************/ /* 技能摇杆 */ /************************************************************************/ //技能CD结构体 struct tagSkillCDInfo { int nSkill_SkillItemID; //技能块ID int nSkill_CD_Time; //技能的CD时间 int nSkill_CD_Time_Temp; //技能的当前CD时间 string strSkill_AniName; //动画名 float fCostMp; //消耗魔法值 }; /************************************************************************/ /* UI */ /************************************************************************/ //屏幕适配,宽度差值 #define _NF_SCREEN_WIDTH_DIS_ ( CCDirector::sharedDirector()->getWinSize().width*0.5f - 360 ) //server选择结构体 struct tagServerSelect { int nServerID; //serverID }; //消息发送:外部UI enum enUI_Msg { enMsg_ServerSelect, //server选择 }; /************************************************************************/ /* 结构体 */ /************************************************************************/ //景深地图信息结构体 struct tagTmxStaticInfo { string strTmxName; //景深地图名字 float fStartPosX; //景深地图x轴初始位置 float fStartPosY; //景深地图y轴初始位置 }; typedef map<int,tagTmxStaticInfo> CNFTmxStaticInfoMap; //景深地图静态信息map //敌人AI enum enumEnemyAIKind //行动种类 { enEnemyAIHold, //待机 enEnemyAICrosswiseApproach, //直线接近 enEnemyAICrosswiseDisapproach, //直线远离 enEnemyLengthwaysApproach, //并线接近 enEnemyLengthwaysDisapproach, //并线远离 enEnemyDirectlyApproach, //斜角靠近 enEnemyCircuity, //绕背 enEnemyAttackTypeShort, //攻击-近 enEnemyAttackTypeLong, //攻击-远 }; enum enumEnemyAICondition //AI条件 { enEnemyCondition_SameCrosswise_InRangeLong, //同线 且范围处于 远距离攻击 和近距离攻击范围之间 enEnemyCondition_SameCrosswise_InRangeShort, //同线 且范围处于 近距离攻击范围内 enEnemyCondition_SameCrosswise_NotInRange, //同线 且范围处于 远距离攻击 范围外 enEnemyCondition_NotSameCrosswiss_Near, //不同线 但距离非常近 enEnemyCondition_NotSameCrosswiss_Far_FacePlayer, //不同线 距离远 面对玩家正面 enEnemyCondition_NotSameCrosswiss_Far_NotFacePlayer, //不同线 距离远 面对玩家背面 }; typedef map<enumEnemyAIKind,int> CMapAIActionOnKind; //敌人行动类型map typedef map<enumEnemyAICondition,CMapAIActionOnKind> CMapAI; //敌人AI条件map typedef map<int,CMapAI> CEnemyAIStaticInfoMap; //通过ID,得到敌人AI信息 //buff(debuff)静态信息结构体 struct tagBuffStaticInfo { int nBuffID; //buffID int nBuffTime; //buff持续时间 int nBuffTime_g; //buff持续时间成长 float fBuffPoint1; //buff点数1 float fBuffPoint1_g; //buff点数1成长 float fBuffPoint2; //buff点数2 float fBuffPoint2_g; //buff点数2成长 }; typedef map<int,tagBuffStaticInfo> CNFBuffStaticInfoMap; //buff静态信息map typedef vector<tagBuffStaticInfo> CNFBuffStaticInfoVec; //buff静态信息 //buff(debuff)信息结构体 struct tagBuffInfo { int nBuffID; //buffID int nBuffTime; //buff持续时间 float fBuffPoint1; //buff点数1 float fBuffPoint2; //buff点数2 }; typedef vector<tagBuffInfo> CNFBuffInfoVec; //buff信息 //技能块自身的变化信息 struct tagSkillChangeInfo { float fChangeTime; //变化时间 int nIsGravity; //是否开启重力 1.开启 0.不开启 float fOldX; //技能块,旧x轴位置 float fOldY; //技能块,旧y轴位置 float fOldZ; //技能块,旧z轴位置 float fOldLength; //技能块,旧长度 float fOldWidth; //技能块。旧宽度 float fOldHeight; //技能块,旧高度 float fNewX; //技能块。新x轴位置 float fNewY; //技能块。新y轴位置 float fNewZ; //技能块,新z轴位置 float fNewLength; //技能块,新长度 float fNewWidth; //技能块,新宽度 float fNewHeight; //技能块。新高度 }; //技能块伤害信息 struct tagSkillDamageInfo { CNFBuffStaticInfoVec vecTargetBuff; //被攻击者的buff或debuff float fDamagePoint; //基础攻击力 float fDamagePoint_g; //攻击力系数 float fDamagePercent; //技能百分比 float fDamagePercent_g; //技能百分比成长 float fXDis; //被攻击者x轴的变化量 float fXTime; //被攻击者x轴的变化时间 float fYDis; //被攻击者y轴的变化量 float fYTime; //被攻击者y轴的变化时间 float fZSpeed; //被攻击者z轴的速度变化 int nIsConversely; //被攻击者是否倒地 1.倒地 0.不倒地 int nCrickAdd; //被攻击者硬直添加量 int nAttackSpeed; //攻击之间的间隔(帧) int nIsExplodeMode; //是否为爆炸模式 1.是 0.不是 int nIsPullMode; //是否为拉近到面前模式 1.是 0.不是 int nCritAdd; //暴击率添加量 float fCritDamageAdd; //暴击伤害添加量 int nHitTargetAdd; //命中添加量 int nIsDirection; //是否有方向 1.有 0.没有 int nIsSuctionMode; //是否为吸引模式 1.是 0.不是 float fSuctionSpeed; //吸引的速度 float fSuctionTime; //吸引的时间(秒) float fSuctionPosX; //吸引到的x轴位置:相对于角色,面部向右 float fSuctionPosY; //吸引到的y轴位置 int nIsOnlyDamageNotHit; //是否仅仅受到伤害,但不播放被击动画(用于地面AOE) 1.是 0.不是 int nIsSuctionSkillItemCenter; //是否吸引到技能块中心 1.是 0.不是 ps:若“是”。则fSuctionPosX和fSuctionPosY无意义。

int nIsDamage; //是否计算伤害 1.是 0.不是 int nIsFollow; //技能块是否尾随释放者 1.是 0.不是 int nIsBreakSiperarmor; //是否破霸体 int nHitEffectType; //拳花类型 }; //技能Item结构体 struct tagSkillItemStaticInfo { bool bIsCommonSkill; //是否为普通攻击 float fDelayTime; //延迟时间 float fDisX; //释放者。x轴位移量 float fTimeX; //释放者,x轴时间 float fDisY; //释放者,y轴位移量 float fTimeY; //释放者,y轴时间 float fSpeedZ; //释放者,z轴速度 int nScreenIsShake; //屏幕是否震动 1.震动 0.不震动 float fShakeDurTime; //屏幕震动持续时间(秒) float fShakeDegree; //屏幕震动幅度 int nShakeCount; //屏幕震动次数 int nIsLensfeatrue; //屏幕是否拉伸 float fLensfeatureTime; //屏幕拉伸时间(秒) int nIsScreenChangeColor; //屏幕是否改变颜色 0.不改变 1.变黑 float fScreenChangeColorTime; //屏幕颜色改变时间(秒) int nIsTurnRound; //释放者是否转头 1.是 0.不是 CNFBuffStaticInfoVec vecBuff; //释放者的buff或debuff tagSkillChangeInfo tSkillChange; //技能块,自身变化信息 tagSkillDamageInfo tSkillDamage; //技能块,伤害信息 int nIsArmature; //技能块,是否有骨骼动画:1.有 0,没有 string strArmatureName; //骨骼动画名称 int nIsSound; //技能块。是否有音效:1.有 0,没有 string strSoundName; //音效名称 }; typedef vector<tagSkillItemStaticInfo> CNFSkillItemVec; //技能块容器 //技能静态信息结构体 struct tagSkillStaticInfo { int nSkillID; //技能ID int nIsCommonSkill; //是否为普通攻击:1.是 0.不是 int nSkillCD; //技能CD(帧) int nSkillCD_g; //技能CD成长 float fCostMp; //魔法消耗 float fCostMp_g; //魔法消耗成长 string strAniName; //动画名称 string strSkillName; //技能名称 string strSkillIntroduce; //技能介绍 CNFSkillItemVec vecSkillItem; //技能块容器 }; typedef map<int,tagSkillStaticInfo> CNFSkillStaticMapBySkillID; //通过技能ID,得到tagSkillStaticInfo typedef map<int,CNFSkillStaticMapBySkillID> CNFSkillStaticInfoMapByProtagonistID; //通过主角ID,得到CNFSkillStaticMapBySkillID typedef vector<tagSkillStaticInfo> CNFSkillStaticInfoVec; //技能静态信息vec //攻击的结构体 struct tagTakeABeating { CNFBuffInfoVec vecBuff; //目标的buff或debuff float fDamagePoint; //攻击力 int nHitTarget; //命中 int nCrit; //暴击 float fCritDamage; //暴击伤害 int nXDis; //被攻击者x轴的变化量 float fXTime; //被攻击者x轴的变化时间 int nYDis; //被攻击者y轴的变化量 float fYTime; //被攻击者y轴的变化时间 float fZSpeed; //被攻击者z轴的速度变化 bool bIsConversely; //被攻击者是否倒地 int nCrickAdd; //被攻击者硬直添加量 int nAttackSpeed; //攻击之间的间隔(帧) bool bIsExplodeMode; //是否是爆炸模式 bool bIsPullMode; //是否是拉倒面前模式 bool bIsSuctionMode; //是否为吸引模式 float fSuctionSpeed; //吸引的速度 float fSuctionTime; //吸引的时间(秒) float fSuctionPosX; //吸引到的x轴位置:相对于角色,面部向右 float fSuctionPosY; //吸引到的y轴位置 bool bIsOnlyDamageNotHit; //是否仅仅受到伤害。但不播放被击动画(用于地面AOE) bool bIsSuctionSkillItemCenter; //是否吸引到技能块中心 ps:若“是”。则fSuctionPosX和fSuctionPosY无意义。 bool bIsDamage; //是否计算伤害 bool bIsFollow; //是否尾随释放者 bool bIsBreakSiperarmor; //是否破霸体 int nHitEffectType; //拳花类型 tagTakeABeating() { bIsExplodeMode = false; bIsPullMode = false; bIsDamage = true; } }; //普通攻击结构体 class CNFBasicPerson; struct tagCommonAttack { CNFBasicPerson* pReleaser; //释放者 CCArray *pArrayTarget; //目标数组 float fChangeTime; //变化时间 int nIsGravity; //是否开启重力 1.开启 0.不开启 float fOldX; //技能块,旧x轴位置 float fOldY; //技能块。旧y轴位置 float fOldZ; //技能块,旧z轴位置 float fOldLength; //技能块。旧长度 float fOldWidth; //技能块。旧宽度 float fOldHeight; //技能块,旧高度 float fNewX; //技能块,新x轴位置 float fNewY; //技能块。新y轴位置 float fNewZ; //技能块,新z轴位置 float fNewLength; //技能块。新长度 float fNewWidth; //技能块,新宽度 float fNewHeight; //技能块,新高度 int nIsArmature; //技能块,是否有骨骼动画:1.有 0,没有 string strArmatureName; //骨骼动画名称 tagTakeABeating tTakeABeating; tagCommonAttack(CNFBasicPerson* pReleaserU,tagSkillItemStaticInfo* pInfo,int nSkillLV); tagCommonAttack(){ } }; /************************************************************************/ /* 主角AI */ /************************************************************************/ //治疗技能 struct tagTreatSkillInfo { int nSkillID; //技能ID float fBloodPer; //触发加血技能的hp最低百分比 }; typedef vector<tagTreatSkillInfo> CNFTreatSkillVec; //治疗技能容器 //必定技能 struct tagMustSkillInfo { int nSkillID; //技能ID }; typedef vector<tagMustSkillInfo> CNFMustSkillVec; //必定技能容器 //距离技能块 struct tagDistanceItem { int nSkillID; //技能ID int nDelayTime; //延迟时间(帧)。总时间 }; typedef vector<tagDistanceItem> CNFDistanceItemVec; //距离技能块容器 //距离技能 struct tagDistanceSkillInfo { float fSkillDistance; //释放技能的距离范围 CNFDistanceItemVec vecDistanceItem; //距离技能块容器 }; typedef vector<tagDistanceSkillInfo> CNFDistanceSkillVec; //距离技能容器 //主角Ai结构体 struct tagProtagonistAIInfo { CNFTreatSkillVec vecTreatSkill; //治疗技能 CNFMustSkillVec vecMustSkill; //必定技能 CNFDistanceSkillVec vecDistanceSkill; //距离技能 }; //typedef map<int,tagProtagonistAIInfo> CNFProtagonistAIMap; //主句ai容器 /************************************************************************/ /* NPC */ /************************************************************************/ //ncp静态信息结构体 struct tagNPCStaticInfo { string strArmatureName; //NPC 动画名称 float fLength; //NPC 长度 float fWidth; //NPC 宽度 float fHeight; //NPC 高度 }; typedef map<int,tagNPCStaticInfo> CNFNPCStaticInfoMap; //NPC静态信息容器 //npc Json信息 struct tagNPCJsonInfo { int nNPCID; //NPC ID float fPosX; //NPC x轴位置 float fPosY; //NPC y轴位置 float fPosZ; //NPC z轴位置 tagNPCStaticInfo NPCStaticInfo; //NPC 静态信息 }; typedef vector<tagNPCJsonInfo> CNFNPCJsonInfoVec; //NPC Json 信息容器 /************************************************************************/ /* DOOR */ /************************************************************************/ //door静态信息结构体 struct tagDoorStaticInfo { string strArmatureName; //Door 动画名称 float fLength; //Door 长度 float fWidth; //Door 宽度 float fHeight; //Door 高度 int nRelaceStageID; //Door 跳转到的关卡ID }; typedef map<int,tagDoorStaticInfo> CNFDoorStaticInfoMap; //Door静态信息容器 //door Json信息 struct tagDoorJsonInfo { int nDoorID; //Door ID float fPosX; //Door x轴位置 float fPosY; //Door y轴位置 float fPosZ; //Door z轴位置 tagDoorStaticInfo DoorStaticInfo; //Door 静态信息 }; typedef vector<tagDoorJsonInfo> CNFDoorJsonInfoVec; //Door Json 信息容器 /************************************************************************/ /* http消息发送结构体 */ /************************************************************************/ //注冊 struct THttpRegister { string strUserName; //username称 string strPassWord; //用户password }; //登录 struct THttpLogin { string strUserName; //username称 string strPassWord; //用户password }; //创建角色 struct TTHttpCreateHero { int nHeroID; //角色ID string strHeroName; //角色名称 }; #endif


<span style="white-space:pre"> </span>公共 PublicDef.cpp 文件

#include "PublicDef.h"
#include "../gameunit/person/NFProtagonist.h"//静态数据库
std::string GetStaticDataName()
{
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
<span style="white-space:pre"> </span>return _TR_STATIC_DATABASE_FILE_NAME_;
#else
<span style="white-space:pre"> </span>std::string strResult = CCFileUtils::sharedFileUtils()->getWritablePath();
<span style="white-space:pre"> </span>strResult+= _TR_STATIC_DATABASE_FILE_NAME_;
<span style="white-space:pre"> </span>return strResult;
#endif
}//存储数据库
std::string GetSaveDataName()
{
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
<span style="white-space:pre"> </span>return _NF_SAVE_DATABASE_FILE_NAME_;
#else
<span style="white-space:pre"> </span>std::string strResult = CCFileUtils::sharedFileUtils()->getWritablePath();
<span style="white-space:pre"> </span>strResult+= _NF_SAVE_DATABASE_FILE_NAME_;
<span style="white-space:pre"> </span>return strResult;
#endif
}tagCommonAttack::tagCommonAttack(CNFBasicPerson* pReleaserU,tagSkillItemStaticInfo* pInfo,int nSkillLV)
{
<span style="white-space:pre"> </span>pReleaser = pReleaserU;
<span style="white-space:pre"> </span>pArrayTarget = NULL;
<span style="white-space:pre"> </span>fChangeTime = pInfo->tSkillChange.fChangeTime;
<span style="white-space:pre"> </span>nIsGravity = pInfo->tSkillChange.nIsGravity;
<span style="white-space:pre"> </span>fOldX = pInfo->tSkillChange.fOldX;
<span style="white-space:pre"> </span>fOldY = pInfo->tSkillChange.fOldY;
<span style="white-space:pre"> </span>fOldZ = pInfo->tSkillChange.fOldZ;
<span style="white-space:pre"> </span>fOldLength = pInfo->tSkillChange.fOldLength;
<span style="white-space:pre"> </span>fOldWidth = pInfo->tSkillChange.fOldWidth;
<span style="white-space:pre"> </span>fOldHeight = pInfo->tSkillChange.fOldHeight;
<span style="white-space:pre"> </span>fNewX = pInfo->tSkillChange.fNewX;
<span style="white-space:pre"> </span>fNewY = pInfo->tSkillChange.fNewY;
<span style="white-space:pre"> </span>fNewZ = pInfo->tSkillChange.fNewZ;
<span style="white-space:pre"> </span>fNewLength = pInfo->tSkillChange.fNewLength;
<span style="white-space:pre"> </span>fNewWidth = pInfo->tSkillChange.fNewWidth;
<span style="white-space:pre"> </span>fNewHeight = pInfo->tSkillChange.fNewHeight;
<span style="white-space:pre"> </span>tTakeABeating.bIsConversely = pInfo->tSkillDamage.nIsConversely==0?false:true;
<span style="white-space:pre"> </span>if(pReleaser!=NULL)
<span style="white-space:pre"> </span>{
<span style="white-space:pre">     </span>if(pInfo->bIsCommonSkill){
<span style="white-space:pre">         </span>tTakeABeating.fDamagePoint = pReleaser->GetAttack();
<span style="white-space:pre">     </span>}else{
<span style="white-space:pre">         </span>//技能攻击力 = 施放者掌控力 + (技能基础攻击力 + 技能攻击力成长*技能等级)+ 施放者攻击力*(技能基础百分比倍数 + 技能成长百分比倍数*技能等级)
<span style="white-space:pre">         </span>tTakeABeating.fDamagePoint = pReleaser->GetDomination() + (pInfo->tSkillDamage.fDamagePoint + pInfo->tSkillDamage.fDamagePoint_g*nSkillLV) + pReleaser->GetAttack()*(1 + pInfo->tSkillDamage.fDamagePercent + pInfo->tSkillDamage.fDamagePercent_g*nSkillLV);
<span style="white-space:pre">     </span>}
<span style="white-space:pre">     </span>
<span style="white-space:pre">     </span>tTakeABeating.nCrit = pReleaser->GetCrit() + pInfo->tSkillDamage.nCritAdd;
<span style="white-space:pre">     </span>tTakeABeating.fCritDamage = pReleaser->GetCritDamage() + pInfo->tSkillDamage.fCritDamageAdd;
<span style="white-space:pre">     </span>tTakeABeating.nHitTarget = pReleaser->GetHitTarget() + pInfo->tSkillDamage.nHitTargetAdd;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>tTakeABeating.fXTime = pInfo->tSkillDamage.fXTime;
<span style="white-space:pre"> </span>tTakeABeating.nXDis = pInfo->tSkillDamage.fXDis;
<span style="white-space:pre"> </span>if(pInfo->tSkillDamage.nIsDirection>0){
<span style="white-space:pre">     </span>fOldX = fOldX*pReleaser->GetDirection();
<span style="white-space:pre">     </span>fNewX = fNewX*pReleaser->GetDirection();
<span style="white-space:pre">     </span>
<span style="white-space:pre">     </span>tTakeABeating.nXDis = tTakeABeating.nXDis*pReleaser->GetDirection();
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>tTakeABeating.fYTime = pInfo->tSkillDamage.fYTime;
<span style="white-space:pre"> </span>tTakeABeating.nYDis = pInfo->tSkillDamage.fYDis;
<span style="white-space:pre"> </span>tTakeABeating.fZSpeed = pInfo->tSkillDamage.fZSpeed;
<span style="white-space:pre"> </span>tTakeABeating.nCrickAdd = pInfo->tSkillDamage.nCrickAdd;
<span style="white-space:pre"> </span>tTakeABeating.nAttackSpeed = pInfo->tSkillDamage.nAttackSpeed;
<span style="white-space:pre"> </span>tTakeABeating.bIsExplodeMode = pInfo->tSkillDamage.nIsExplodeMode>0?

true:false; <span style="white-space:pre"> </span>tTakeABeating.bIsPullMode = pInfo->tSkillDamage.nIsPullMode>0?true:false; <span style="white-space:pre"> </span>tTakeABeating.bIsSuctionMode = pInfo->tSkillDamage.nIsSuctionMode>0?true:false; <span style="white-space:pre"> </span>tTakeABeating.fSuctionSpeed = pInfo->tSkillDamage.fSuctionSpeed; <span style="white-space:pre"> </span>tTakeABeating.fSuctionTime = pInfo->tSkillDamage.fSuctionTime; <span style="white-space:pre"> </span>tTakeABeating.fSuctionPosX = pInfo->tSkillDamage.fSuctionPosX; <span style="white-space:pre"> </span>tTakeABeating.fSuctionPosY = pInfo->tSkillDamage.fSuctionPosY; <span style="white-space:pre"> </span>tTakeABeating.bIsOnlyDamageNotHit = pInfo->tSkillDamage.nIsOnlyDamageNotHit>0?

true:false; <span style="white-space:pre"> </span>tTakeABeating.bIsSuctionSkillItemCenter = pInfo->tSkillDamage.nIsSuctionSkillItemCenter>0?

true:false; <span style="white-space:pre"> </span>tTakeABeating.bIsDamage = pInfo->tSkillDamage.nIsDamage>0?true:false; <span style="white-space:pre"> </span>tTakeABeating.bIsFollow = pInfo->tSkillDamage.nIsFollow>0?true:false; <span style="white-space:pre"> </span>tTakeABeating.bIsBreakSiperarmor = pInfo->tSkillDamage.nIsBreakSiperarmor>0?true:false; <span style="white-space:pre"> </span>tTakeABeating.nHitEffectType = pInfo->tSkillDamage.nHitEffectType; <span style="white-space:pre"> </span>for (CNFBuffStaticInfoVec::iterator iter = pInfo->tSkillDamage.vecTargetBuff.begin();iter != pInfo->tSkillDamage.vecTargetBuff.end();iter++) <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>tagBuffInfo BuffInfo; <span style="white-space:pre"> </span>BuffInfo.nBuffID = iter->nBuffID; <span style="white-space:pre"> </span>BuffInfo.nBuffTime = iter->nBuffTime + nSkillLV*iter->nBuffTime_g; <span style="white-space:pre"> </span>BuffInfo.fBuffPoint1 = iter->fBuffPoint1 + nSkillLV*iter->fBuffPoint1_g; <span style="white-space:pre"> </span>BuffInfo.fBuffPoint2 = iter->fBuffPoint2 + nSkillLV*iter->fBuffPoint2_g; <span style="white-space:pre"> </span>tTakeABeating.vecBuff.push_back(BuffInfo); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>nIsArmature = pInfo->nIsArmature; <span style="white-space:pre"> </span>strArmatureName = pInfo->strArmatureName; }

个人博客 www.sundaboke.com

分析Cocos2d-x横版ACT手游源码 1、公共相关推荐

  1. 分析Cocos2d-x横版ACT手游源 1、登录

    我自己的游戏代码 因为 游戏源 盯着外面的 我们能够能够理解 /******************************************************************** ...

  2. 分析Cocos2d-x横版ACT手游源代码 1、公共

    直接上代码 不说什么 这一款源代码 注释及多 PublicDef.h 公共头文件 #define NF_PLATFORM 1 //当前版本(默认为普通版)//版本列表 #define NF_PLATF ...

  3. 手机2d横版游戏服务器位置同步,分析Cocos2d-x横版ACT手游源 2、server场景

    仍然一样 直接在代码 资源 下一个 上传 你可以看到自己NFServerChangeLayer.h /************************************************* ...

  4. 分析Cocos2d-x横版ACT手游源代码 1、登录

    我就自己上游戏代码来 因为 这个游戏源代码 注释十分的 都可以看得懂 /**************************************************************** ...

  5. cocos2d中getasynckeystate android,分析Cocos2d-x横版ACT手游源代码 4、场景

    .h文件 #ifndef _CM_GAME_SCENE_H_ #define _CM_GAME_SCENE_H_ #include "../publicdef/PublicDef.h&quo ...

  6. 分析Cocos2d-x横版ACT手游源代码 4、场景

    .h文件 #ifndef _CM_GAME_SCENE_H_ #define _CM_GAME_SCENE_H_#include "../publicdef/PublicDef.h" ...

  7. 手机2d横版游戏服务器位置同步,分析Cocos2d-x横版ACT手游源代码 2、服务器场景...

    还是一样 直接上代码 源代码 下一篇 上传 大家可以自己看 NFServerChangeLayer.h /*********************************************** ...

  8. 分析Cocos2d-x横版ACT手游源代码 3、人物选择界面

    .h文件 #ifndef _NF_ROLE_SELECT_SCENE_HEAD_ #define _NF_ROLE_SELECT_SCENE_HEAD_#include "../public ...

  9. 分析Cocos2d-x横版ACT手游源代码 5、3D世界

    .h文件 #ifndef _NF_3D_WORLD_LAYER_HEAD_ #define _NF_3D_WORLD_LAYER_HEAD_#include "../publicdef/Pu ...

最新文章

  1. 在Axure RP 8.0 中使用 Font Awesome 图标库完成设计并能在其他未安装该字体的电脑离线预览的方法...
  2. kotlin对ZipInputStream与ZipOutputStream的一些拓展工具(压缩,解压)
  3. 读取一个文件,获取其中出现次数最多的前五个字符以及次数
  4. c++类模板(c++细节篇十一)
  5. boost::hana::detail::has_duplicates用法的测试程序
  6. Tunnel Warfare(HDU1540+线段树+区间合并)
  7. mysql7.5安装教程_CentOS7.5下yum安装MySQL8图文教程
  8. Linux实验二:vi编辑器的使用
  9. 在Spring项目中集成使用MongoDB
  10. Android自定义控件之流式布局
  11. 数组string 转 long
  12. 7450清零_联想M7450F打印机加粉清零方法
  13. 假设有一台多道程序的计算机,某多道程序设计系统配有一台处理器和两台外设101、102,现有3个优先级由高到低的作业J1、J2、J3都已 - 试题答案网问答...
  14. 010 Editor v12.0.1 专业文本编辑器及16进制编辑器中文版
  15. js原型继承的几种方式
  16. 软件工程(第三版) 期末复习
  17. 03、江苏专转本(专业课笔记)第三章、计算机软件
  18. 微信查券返利机器人公众号搭建教程分享
  19. timeval结构体的使用
  20. 导数的几何意义和物理意义, 求曲线y=f(x) 在相应点处的切线方程,法线方程

热门文章

  1. 腾讯的人工智能大战已然打响!
  2. 项目经理生存现状(漫画)
  3. SAP WM 业务部门Unplanned工单消耗导致WM层面单据异常问题之分析
  4. SAP MM 影响Vendor主数据维护界面的字段选择的四大因素?
  5. 心得丨一位资深程序员大牛给予Java初学者的学习路线建议
  6. 如何使用gensim来加载和使用词向量模型word2vec
  7. DataLoader worker (pid(s) 11404, 1168, 15692, 13308) exited unexpectedly
  8. 《科学》:中国科学家揭示,人脑中间神经元多样性从何而来?
  9. 百度研究院发布2021年十大科技趋势预测
  10. 一文剖析2020年最火十大物联网应用|IoT Analytics 年度重磅报告出炉!