直接上代码  不说什么   这一款源代码 注释及多  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,          //创建副本选择页
};//消息标签:根据服务器数据,进行操作
enum
{enHttpMsg_CheckUserExist = 1,             //用户角色检测enHttpMsg_CreateHero,
};//敌人创建结构体
struct Cmd_CreateEnemyInfo
{int        nEnemyID;           //敌人IDint       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;             //技能块IDint          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 )//服务器选择结构体
struct tagServerSelect
{int nServerID;         //服务器ID
};//消息发送:外部UI
enum enUI_Msg
{enMsg_ServerSelect,            //服务器选择
};/************************************************************************/
/*              结构体                                                                     */
/************************************************************************/
//景深地图信息结构体
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;        //buffIDint         nBuffTime;      //buff持续时间int           nBuffTime_g;    //buff持续时间成长float       fBuffPoint1;    //buff点数1float      fBuffPoint1_g;  //buff点数1成长float        fBuffPoint2;    //buff点数2float      fBuffPoint2_g;  //buff点数2成长
};
typedef map<int,tagBuffStaticInfo> CNFBuffStaticInfoMap;  //buff静态信息map
typedef vector<tagBuffStaticInfo> CNFBuffStaticInfoVec;   //buff静态信息//buff(debuff)信息结构体
struct tagBuffInfo
{int            nBuffID;        //buffIDint         nBuffTime;      //buff持续时间float     fBuffPoint1;    //buff点数1float      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或debufffloat                 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或debufftagSkillChangeInfo     tSkillChange;           //技能块,自身变化信息tagSkillDamageInfo       tSkillDamage;           //技能块,伤害信息int                        nIsArmature;            //技能块,是否有骨骼动画:1.有 0,没有string                   strArmatureName;        //骨骼动画名称int                     nIsSound;               //技能块,是否有音效:1.有   0,没有string                   strSoundName;           //音效名称
};
typedef vector<tagSkillItemStaticInfo> CNFSkillItemVec;       //技能块容器//技能静态信息结构体
struct tagSkillStaticInfo
{int                    nSkillID;                   //技能IDint                   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或debufffloat   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;               //技能IDfloat     fBloodPer;              //触发加血技能的hp最低百分比
};
typedef vector<tagTreatSkillInfo>     CNFTreatSkillVec;       //治疗技能容器//必然技能
struct tagMustSkillInfo
{int            nSkillID;               //技能ID
};
typedef vector<tagMustSkillInfo>      CNFMustSkillVec;        //必然技能容器//距离技能块
struct tagDistanceItem
{int            nSkillID;               //技能IDint           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 IDfloat               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 IDfloat              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;        //用户名称string            strPassWord;        //用户密码
};//登录
struct THttpLogin
{string         strUserName;        //用户名称string            strPassWord;        //用户密码
};//创建角色
struct TTHttpCreateHero
{int                nHeroID;            //角色IDstring            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中getasynckeystate android,分析Cocos2d-x横版ACT手游源代码 4、场景

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

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

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

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

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

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

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

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

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

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

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

  7. 分析Cocos2d-x横版ACT手游源代码 2、服务器场景

    还是一样 直接上代码 源代码 下一篇 上传 大家可以自己看 NFServerChangeLayer.h </pre><pre name="code" class= ...

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

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

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

    直接上代码 不说什么 这一款源码 凝视及多 PublicDef.h 公共头文件 #define NF_PLATFORM 1 //当前版本号(默觉得普通版)//版本号列表 #define NF_PLAT ...

最新文章

  1. Google 开源的依赖注入库,比 Spring 更小更快!
  2. 《R语言游戏数据分析与挖掘》一导读
  3. Club Web Site-Customized web controls
  4. POJ1741:Tree——题解+树分治简要讲解
  5. JavaScript:jklyDB
  6. 使用js实现复选框的全选、取消功能
  7. Cartesian k-means论文理解
  8. 建立自己的voc数据集_Mac上 制作自己的VOC数据集
  9. 写给准备看CCNA题库的朋友们 希望有些帮助
  10. linux177端口怎么打开,AIX5.3,如何使用xmanager管理?177端口打不开的相关推荐_ChinaUnix论坛...
  11. 全国哀悼日网站变灰代码
  12. [杂记]就《10.30日华为HR体验官胡玲在心声论坛爆料内部HR腐败行为》有感
  13. ppt图片特效 c语言实现,用了这么久的PPT,才知道PPT可以一键生成特效图片!太好看了...
  14. 《紫川》之远东战火 第八卷
  15. GitLab 中编辑 Markdown 写README技巧
  16. Python迎来30岁生日,先驱Pablo Galindo:没想到Python这么流行
  17. 护卫神备份mysql_护卫神好备份系统数据库怎么备份?
  18. 手机投屏电脑的开源软件
  19. 使用cobra创建cli命令行工具
  20. Java就业前景如何?

热门文章

  1. 族蚂免费建站系统,3分钟搭建官网!
  2. 我在三味书屋的日子(三)
  3. 切身体会创业型企业的种种问题!---来自好友的博客
  4. 影响三级分销系统开发的因素有哪些?
  5. Flash Builder 4.5 开发 OA - 3 --由于最近太慢,暂停
  6. 电路模型和电路定律——“电路分析”
  7. 用小说的形式讲解Spring(4) —— 使用Spring Boot创建NoXml的Web应用
  8. 什么是EDI许可证办理需要哪些条件
  9. PHP 数组方法合集
  10. BeyondCompare对比设置