⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hero.h

📁 网络游戏魔域源代码 测试可以完整变异
💻 H
📖 第 1 页 / 共 3 页
字号:
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 + -