Files
mir_server/server/LogicServer/script/export/HeroExportFun.cpp

181 lines
5.5 KiB
C++
Raw Normal View History

2025-01-09 17:45:40 +08:00
#include "StdAfx.h"
#include "../interface/HeroExportFun.h"
namespace Hero
{
int addHero(void* pEntity,int nHeroId, int nStage, int nLevel)
{
if(pEntity == NULL || ((CEntity *)pEntity)->GetType() != enActor) return -1;
return ((CActor *)pEntity)->GetHeroSystem().AddHero(nHeroId,nStage, nLevel);
}
bool canAddHero(void *pEntity, bool bWithTipmsg)
{
if(pEntity == NULL || ((CEntity *)pEntity)->GetType() != enActor) return false;
return ((CActor *)pEntity)->GetHeroSystem().CanAddHero(bWithTipmsg);
}
bool StageUp(void *pEntity, int nHeroId,int nStage, int nBless)
{
if(pEntity == NULL || ((CEntity *)pEntity)->GetType() != enActor) return false;
return ((CActor *)pEntity)->GetHeroSystem().StageUp(nHeroId,nStage,nBless);
}
unsigned int getHeroProperty(void *pEntity,int nHeroId, int nPropId)
{
if(pEntity == NULL || ((CEntity *)pEntity)->GetType() != enActor) return -1;
const CHeroSystem::HERODATA * pHero = ((CActor *)pEntity)->GetHeroSystem().GetHeroData(nHeroId);
if(pHero ==NULL)
{
return 0;
}
switch ( nPropId)
{
case enHeroStage:
return pHero->data.bStage;
case enHeroLevel:
return pHero->data.bLevel;
break;
case enHeroExp:
return (unsigned int)pHero->data.nExp;
break;
case enHeroBless:
return pHero->data.nBless;
case enHeroForce:
return pHero->data.nBodyforce;
default:
return 0;
}
return 0;
}
//设置英雄属性
bool setHeroProperty(void *pEntity,int nHeroId, int nPropId,unsigned int nValue)
{
if(pEntity == NULL || ((CEntity *)pEntity)->GetType() != enActor) return false;
CHeroSystem::HERODATA * pHero = ((CActor *)pEntity)->GetHeroSystem().GetHeroData(nHeroId);
if(pHero ==NULL)
{
return false;
}
switch ( nPropId)
{
case enHeroStage:
pHero->data.bStage = (BYTE)nValue;
((CActor *)pEntity)->GetHeroSystem().SendHeroData(*pHero);
((CActor *)pEntity)->GetHeroSystem(). SetHeroDataModifyFlag(0,true);
return true;
case enHeroLevel:
pHero->data.bLevel = (BYTE)nValue;
((CActor *)pEntity)->GetHeroSystem().SendHeroData(*pHero);
((CActor *)pEntity)->GetHeroSystem(). SetHeroDataModifyFlag(0,true);
return true;
case enHeroExp:
pHero->data.nExp = nValue;
((CActor *)pEntity)->GetHeroSystem().SendHeroData(*pHero);
((CActor *)pEntity)->GetHeroSystem(). SetHeroDataModifyFlag(0,true);
return true;
case enHeroBless:
pHero->data.nBless = (int)nValue;
((CActor *)pEntity)->GetHeroSystem().SendHeroData(*pHero);
((CActor *)pEntity)->GetHeroSystem(). SetHeroDataModifyFlag(0,true);
return true;
case enHeroForce:
pHero->data.nBodyforce = (int)nValue;
((CActor *)pEntity)->GetHeroSystem().SendHeroData(*pHero);
((CActor *)pEntity)->GetHeroSystem(). SetHeroDataModifyFlag(0,true);
return true;
default:
return false;
}
return false;
}
bool learnSkill(void *pEntity,int nHeroID, int nSkillID)
{
if(pEntity == NULL || ((CEntity *)pEntity)->GetType() != enActor) return false;
return ((CActor *)pEntity)->GetHeroSystem().LearnSkill(nHeroID,nSkillID);
}
int getSkillLevel(void* pEntity,int nHeroId, int nSkillId)
{
if(pEntity == NULL || ((CEntity *)pEntity)->GetType() != enActor) return 0;
return ((CActor *)pEntity)->GetHeroSystem().GetSkillLevel(nHeroId,nSkillId);
}
bool skillLevelUp(void *pEntity,int nHeroID, int nSkillID )
{
if(pEntity == NULL || ((CEntity *)pEntity)->GetType() != enActor) return false;
return ((CActor *)pEntity)->GetHeroSystem().SkillLevelUp(nHeroID,nSkillID);
}
int getBattleHeroId(void * pEntity)
{
if(pEntity == NULL || ((CEntity *)pEntity)->GetType() != enActor) return -1;
return ((CActor *)pEntity)->GetHeroSystem().GetBattleHeroId();
}
void sendHeroOpResult(void * pEntity,int nHeroId,int nOpId, bool result)
{
if(pEntity == NULL || ((CEntity *)pEntity)->GetType() != enActor) return ;
CActor *pActor = (CActor *)pEntity;
if( pActor &&pActor->IsInited() )
{
CActorPacket pack;
pActor->AllocPacket(pack);
pack << (BYTE)(enHeroSystemId)<< (BYTE) sHeroOpResult;
pack << (BYTE)(nOpId) ;
pack << (BYTE) nHeroId;
if(result)
{
pack <<(BYTE)1;
}
else
{
pack <<(BYTE)0;
}
pack.flush();
}
}
void setHeroBattle(void* pEntity, int nHeroId)
{
if(pEntity == NULL || ((CEntity *)pEntity)->GetType() != enActor) return ;
((CActor *)pEntity)->GetHeroSystem().SetHeroBattle(nHeroId);
}
char * getHeroName(void * pEntity ,int nHeroId)
{
if(pEntity == NULL || ((CEntity *)pEntity)->GetType() != enActor) return NULL;
const CHeroSystem::HERODATA * pHero = ((CActor *)pEntity)->GetHeroSystem().GetHeroData(nHeroId);
if(pHero ==NULL)
{
return NULL;
}
return (char*)(pHero->data.name);
}
int getHeroCount(void * pEntity)
{
if (pEntity == NULL || ((CEntity *)pEntity)->GetType() != enActor) return 0;
return (int)((CActor *)pEntity)->GetHeroSystem().GetHeroCount();
}
void addExp(void *pEntity, unsigned int nExp , int nHeroId )
{
if (pEntity == NULL || ((CEntity *)pEntity)->GetType() != enActor) return;
((CActor *)pEntity)->GetHeroSystem().OnAddExp(nExp,false, nHeroId);
}
void addExpByHeroId(void *pEntity, int nHeroId, unsigned int nExp)
{
if (pEntity == NULL || ((CEntity *)pEntity)->GetType() != enActor) return;
INT_PTR nPos = ((CActor *)pEntity)->GetHeroSystem().GetHeroPos(nHeroId);
((CActor *)pEntity)->GetHeroSystem().RealChangeExp(nPos,nExp);
}
void CallBackHero(void *pEntity,bool boClient)
{
if (pEntity == NULL || ((CEntity *)pEntity)->GetType() != enActor) return;
((CActor *)pEntity)->GetHeroSystem().CallbackBattleHero(boClient);
}
}