📄 hero.h
字号:
public:
void DestroyMagicSet();
void AddMagic(OBJID idMagic, DWORD dwLevel, DWORD dwExp);
void StartMagicBusy(DWORD dwDuration);
void EndMagicBusy();
void ProcessMagicBusy();
int GetMagicAmount();
int GetTeamMagicAmount();
CMagic* GetTeamMagicByIndex(int nIndex);
CMagic* GetMagicByIndex(int nIndex);
CMagic* GetMagic(OBJID idType);
BOOL IsXpSkillEnable() {return m_bXpSkillEnable;}
int GetXpSkillAmount();
CMagic* GetXpSkillByIndex(int nIndex);
int GetKongfuAmount();
CMagic* GetKongfuByIndex(int nIndex);
void MagicAttack(OBJID idMagicType, OBJID idPlayer, BOOL bForce=false);
void MagicAttack(OBJID idMagicType, CMyPos posTarget);
DWORD GetMagicDelay(){return _MAGIC_DELAY - _MAGIC_DECDELAY_PER_LEVEL*this->GetProfessionLevel();}
void AbortIntone();
void ProcessMagic();
private:
BOOL m_bXpSkillEnable;
DWORD m_dwLastBump;
private:
OBJID m_idLastSyndicateApply;
OBJID m_idLastSyndicate;
char m_szSyndicateAnnounce[_MAX_STRING];
char m_szSyndicateAnnounceTime[64];
char m_szActionMessageBox[_MAX_STRING];
int m_nSynListIndex;
DEQUE_SYNMEMBER m_setSyndicateMember;
SynMemberInfo m_objSynMemberInfo;
SyndicateInfo m_QuerySynInfo;
OBJID m_idLastSynAlly;
char m_szLastSynAllyName[_MAX_STRING];
public:
SynMemberInfo* GetReturnSynMemberInfo(){return &m_objSynMemberInfo;}
void QueryOtherSynicateInfo(char* szSynName);
SyndicateInfo* GetReturnSyndicateInfo(){return &m_QuerySynInfo;}
void QuerySynicateInfo();
void SetSynListIndex(int nIndex){m_nSynListIndex = nIndex;}
void SetSyndicateRank(DWORD dwRank);
void SetLastSyndicateApplyID(OBJID idApply);
void SetLastSyndicateID(OBJID idSynDicate);
OBJID GetLastSyndicateID();
OBJID GetLastSyndicateApplyID() { return m_idLastSyndicateApply; }
void SendSyndicateAnnounce(char* pszStr);
void SyndicateApplyJoin(OBJID idTarget);
void SynDicateAcceptJoin();
void SyndicateApplyInvite(OBJID idTarget);
void SyndicateAcceptInvite();
void LeaveSyndicate();
void SetSyndicateAnnounce(char* pszWord);
char* GetSyndicateAnnounce();
void SetSyndicateAnnounceTime(DWORD dwTime);
char* GetSyndicateAnnounceTime();
void QuerySpecifSynMember(OBJID idSyn,int nIndex);
void RenameSynName(char* szNowName);
void QuerySynMemberList(int nIndex);
int GetSynMemberAmount();
SynMemberInfo* GetSynMemberByIndex(int nIndex);
void ClearSynMember();
void AddSynMember(char* pszMember);
BOOL IsAllEquipmentNonsuch();
DWORD GetBowShootRange();
void SetActionMessage(const char* pszStr);
char* GetActionMessage();
void SelectMedal(DWORD dwMedalSelect);
void SelectHonorTitle(DWORD dwSelectedTitle);
OBJID GetLastSynAlly(){return m_idLastSynAlly;}
void SetLastSynAlly(OBJID idSyn){m_idLastSynAlly = idSyn;} //发出请求的player id
const char* GetLastSynAllyName(){return m_szLastSynAllyName;}
void SetLastSynAllyName(const char* pszName)
{if(pszName && strlen(pszName) < _MAX_NAMESIZE) strcpy(m_szLastSynAllyName, pszName);}
//ghost and so on ...
public:
void Relife();
void Body2Ghost();
void ReBorn();
BOOL IsRebornEnable() { return (this->IsGhost() && (::TimeGet() - m_timeGhost) > 20000); }
// dummy and so on ...
public:
CDummy m_objDummy;
CDummy m_objPlayerDummy;
public:
void CreateStatuty();
// booth and so on ...
public:
CBooth m_objBooth;
CBoothManager m_objBoothManager;
// bulletin and so on ...
public:
CBulletin m_objBulletin;
void LockBooth(CPlayer* pTarget);
BOOL CanBooth(CPlayer* pTarget);
//changeface
public:
void ChangeFace(int nFace);
// mouse player and so on ...
private:
BOOL m_bMousePlayerFixed;
BOOL n_bMousePlayerTerrain;
public:
void ProcessMousePlayer();
void FixMousePlayer();
void CreateMousePlayer(int nLookType, BOOL bTerrain = false);
void SetMousePlayerDir(int nDir);
void PutMousePlayer();
void DelMousePlayer();
// void DelNpc
public:
void DelNpc(OBJID idNpc);
// wanted
public:
char m_szWanted[_MAX_NAMESIZE];
char m_szPoliceWanted[_MAX_NAMESIZE];
// dice
public:
DiceManager m_objDiceManager;
public:
void ApplyLanding();
// charge up
private:
BOOL m_bChargeUp;
DWORD m_dwTimeChargeUp;
DWORD m_dwChargeUpTotalTime;
public:
void BeginChangeUp(OBJID idMagicType, DWORD dwDelay);
void StopChargeUp();
void ShowChargeUp();
void AbortChargeUp();
// user help info
public:
int GetUserHelpInfoLineAmount();
const char* GetUserHelpInfoLineByIndex(int nIndex);
// arrow amount
private:
BOOL m_bShowArrow;
public:
CCheck m_objCheck;
public:
void ShowArrow(int nOffset);
// for pet ai
private:
OBJID m_idWhoAttackMe;
OBJID m_idMyTarget;
DWORD m_dwTimeWhoAttackMe;
OBJID m_idSpecialTarget;
DWORD m_dwTimeSpecialTarget;
vector<OBJID> m_setPetInfo;
public:
void SetIDWhoAttackMe(OBJID id){m_idWhoAttackMe = id;m_dwTimeWhoAttackMe = ::TimeGet();}
void SetIDMyTarget(OBJID id);
OBJID GetIDWhoAttackMe(){return m_idWhoAttackMe;}
OBJID GetIDMyTarget(){return m_idMyTarget;}
void SetSpecialTarget(OBJID idTarget);
OBJID GetSpecialTarget();
void ProcessSpecialTarget();
DWORD GetTimeWhoAttackme(){return m_dwTimeWhoAttackMe;}
void AddPet(OBJID idPet);
void DelPet(OBJID idPet);
int GetCallPetAmount() {return m_setPetInfo.size();}
void ClearPet();
BOOL CheckPet(OBJID idPet);
CPet* GetPetByID(OBJID idPet);
CPet* GetPetByItemID(OBJID idItem);
CPet* GetPetByIndex(int nIndex);
BOOL TryItem(OBJID idItem, int nPosition);
DWORD GetMonsterNameColor(int nMonsterLevel);
void IdentItem(OBJID idItem);
public:
DWORD GetSoul();
DWORD GetOriginalSoul();
DWORD GetAdditionalSoul();
BOOL IsMagicAttackBusy(){return m_bMagicAttackBusy || this->IsMagicLock();}
void Reject(int nType);
void SetTaskDialogID(OBJID idDialog){m_idTaskDialog = idDialog;}
OBJID GetTaskDialogID(){return m_idTaskDialog;}
// for teacher board
private:
DEQUE_ANNOUNCE m_setAnnounceList;
public:
AnnounceInfo m_infoAnnounce;
void QueryMyTeacherBoard();
void QueryTeacherBoardList(int nIndex);
void QueryTeacherBoardInfo(OBJID idTBoard);
void UpTeacherBoard(char* pszTitle,char* pszInfo);
void CancelTeacherBoard(OBJID idAnnounce);
void RequestTeacherBoard(OBJID idUser);
ST_ANNOUNCE_TITLE* GetAnnounceByIndex(int nIndex);
int GetAnnounceAmount();
void AddAnnounceList(OBJID idAnnounce,const char* szTitle);
void ClearAnnounceList();
// for school ...
private:
DEQUE_SCHOOLMEMBER m_setSchoolMember;
vector<string> m_setSecSchoolMember;
BOOL m_bQuerySchoolMember;
OBJID m_idLastTeacherApply;
OBJID m_idLastStudentApply;
char m_szLastTeacherApply[64];
char m_szLastStudentApply[64];
public:
void QuerySecSchoolMember(OBJID IdMember);
int GetSecSchoolMemberAmount();
const char* GetSecSchoolMemberByIndex(int nIndex);
void AddSecSchoolMember(char* strName);
void QuerySchoolMember();
void SetQuerySchoolMember(bool bFlag);
BOOL AddSchoolMember(CSchoolMember* pSchoolMember);
BOOL DelSchoolMember(OBJID id);
BOOL UpdataSchoolMember(OBJID id,UCHAR ucStatus,char* pszName,UCHAR ucRelation,char* pszMate,UCHAR ucLevel,UCHAR ucProfession,USHORT usPkValue,UCHAR ucNobilityRank,DWORD dwSynID_Rank);
BOOL IsHaveTeacher();
BOOL IsHaveStudent();
int GetSchoolMemberAmount();
CSchoolMember* GetSchoolMember(OBJID id);
CSchoolMember* GetSchoolMemberByIndex (int nIndex);
CSchoolMember* GetSchoolMemberByName (const char* pszName);
void ClearSchoolMemberList();
BOOL TeacherApply(OBJID idPlayer); // 拜师
BOOL StudentApply(OBJID idPlayer); // 招徒
BOOL DismissStudent(OBJID idPlayer); //开除徒弟
BOOL LeaveTeacher(); //脱离师门
BOOL AgreeTeacherApply(); // 同意拜师请求
BOOL AgreeStudentApply(); // 同意招徒请求
void SetLastTeacherApply(OBJID idPlayer);
void SetLastStudentApply(OBJID idPlayer);
const char* GetLastTeacherApply(); // 拜师人名字
const char* GetLastStudentApply(); // 招徒人名字
// 佣兵任务
private:
DEQUE_PLAYERTASK m_setPlayerTask;
public:
TaskInfo m_infoTask;
int m_PlayerTaskType;
BOOL m_bMagicLock;
public:
void ClearPlayerTaskList();
void SetPlayerTaskListType(USHORT usType) {m_PlayerTaskType=usType ; }
void AddPlayerTaskList(OBJID idTask, const char* szTitle , UCHAR ucReqLev );
DWORD GetPlayerTaskAmout();
ST_TASK_TITLE* GetPlayerTaskIndex(int nIndex);
void QueryPlayerTaskAcceptedList(OBJID idLast);
void QueryPlayerTaskUnacceptedList(OBJID idLast);
void QueryPlayerTaskCompletedList(OBJID idLast);
void QueryPlayerMyTaskList(OBJID idLast);
void QueryPlayerTaskDetial(OBJID idTask);
void AcceptPlayerTask(OBJID idTask);
void CompletePlayerTask(OBJID idTask);
void CompletePlayerTaskForItem(OBJID idTask,OBJID idItem);
void CancelPlayerTask(OBJID idTask);
void WantPk(const char* pszName, const char* pszTitle, const char* pszDesc,
DWORD dwMoney, UCHAR ucRankReq,OBJID idItem0,
OBJID idItem1, OBJID idItem2, OBJID idItem3,
OBJID idItem4);
void WantItem(const char* pszName, const char* pszTitle, const char* pszDesc,
UCHAR ucType,
DWORD dwDurability, UCHAR ucAddition, UCHAR ucDegree,
WORD dwMoney,UCHAR ucRankReq, OBJID idItem0,
OBJID idItem1, OBJID idItem2, OBJID idItem3,
OBJID idItem4);
// 物品提升
void UpLevelItem(OBJID idItem, OBJID idTreesure);
void ImproveQuality(OBJID idItem, OBJID idGem);
void ImproveSoulDegree(OBJID idItem, OBJID idGem);
void ImproveMagic(OBJID idItem, OBJID idGem);
void MagicLock(){m_bMagicLock = true;}
void UnMagicLock(){m_bMagicLock = false;}
BOOL IsMagicLock(){return m_bMagicLock;}
private:
OBJID m_idAttchPet; //当前合体的幻兽itemid
int m_nMaxPetCall; //最大幻兽召唤数量
DWORD m_dwPetCallStartTime;
DWORD m_bPetCall;
public:
// 幻兽相关
void SetMaxPetCall(int nMax) {m_nMaxPetCall = nMax;}
int GetMaxPetCall() {return m_nMaxPetCall;}
void SetAttachPetId( OBJID idPetItem) { m_idAttchPet = idPetItem;}
OBJID GetAttachPetId( ) {return m_idAttchPet;} //当前合体的幻兽itemid
void AttachEudemon(OBJID idPetItem); //幻兽合体 ,幻兽的itemid
void UnAttachEudemon(OBJID idPetItem); //幻兽解体
void EvolveEudemon(OBJID idPetItem, int nMode);// 幻兽进化, 幻兽itemID 进化类型
void ReEvolveEudemon(OBJID idPetItem, int nMode); //幻兽二次进化 ,幻兽itemid,进化类型
void ReboneEudemon(OBJID idPetItem, OBJID idGem);// 幻兽复活,幻兽itemID 宝石ID
void EnhanceEudemon(OBJID idPetItem, OBJID idGem);// 幻兽强化,幻兽itemID, 宝石ID
void CallEudenmon(OBJID idPetItem);
void KillEudenmon(OBJID idPetItem);
void RenameEudenmon(OBJID idPetItem,char* petName); //幻兽改名
// collect resource
public:
void CollectRes(OBJID idRes);// 挖矿 伐木 采石
private:
typedef struct
{
int x, y, cx, cy;
std::string strMusic;
}RangeMusicInfo;
typedef struct
{
std::vector<RangeMusicInfo> setRangeMusicInfo;
std::string strBgMusic;
}MusicInfo;
MusicInfo m_setMusicInfo;
std::string m_strCurrentMusic;
std::string m_strCurrentMusicPlay;
DWORD m_dwLastChangeMusicTimer;
int m_nMusicVolume;
public:
DWORD GetPetLevelExp(int nLev);
void LoadMusicInfo();
void ProcessMusic();
void SetMusicVolume(int nVolume);
public:// 急行相关
int m_nFastRunSetp;
public:
int m_nLastMagicDir;
public:
char m_szServerName[128];
DWORD m_dwServerPort;
void Set91ID(OBJID id){m_dw91Id = id;}
OBJID Get91ID(){return m_dw91Id;}
private:
DWORD m_dw91Id;
};
extern CHero g_objHero;
const int Statuary1037[7][3] =
{
{187, 191, 100},
{184, 198, 100},
{194, 188, 100},
{185, 210, 100},
{200, 210, 100},
{206, 204, 100},
{206, 189, 100}
};
const int Statuary1038[7][3] =
{
{379, 384, 100},
{373, 387, 100},
{382, 378, 100},
{380, 394, 100},
{382, 399, 100},
{389, 385, 100},
{394, 387, 100}
};
#endif // !defined(AFX_HERO_H__E1E1F17C_8E9A_439A_B54A_E7A6D3213111__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -