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

📄 hero.h

📁 网络游戏魔域源代码 测试可以完整变异
💻 H
📖 第 1 页 / 共 3 页
字号:
	void	TitleSynMember	(CPlayer* pTarget, const char* pszTitle);
	void	KickoutSynMember(CPlayer* pTarget);
	void	KickoutSynMember(char* pszTargetName);
	void	QuitSyn			(void);
	void	SynContribute	(DWORD dwMoney);
	int		GetSynWarReportAmount ();
	char*	GetSynWarReportLine(int nIndex);
	void	ClearSynWarReport();
	void	AddSynWarReport(char* pszLine);
	void	ShowSynWarReport();
	void	SetSynLeader(int nAction,char* pszTargetName);
	void	UniteSubSyn(OBJID idSource, OBJID idTarget);
	void	UniteSyn(OBJID idSource, OBJID idTarget);
	void	QuerySynMember(char* pszName);
	void	AddAllySyn(OBJID idTarget);
	void	ClearAllySyn(char* pszName);
	void	AddAntagonizeSyn(char* pszName);
	void	ClearAntagonizeSyn(char* pszName);
private:
	DEQUE_STRING m_dequeSynWarReport;

// for marriage
public:
	void	Court			(CPlayer* pTarget);
	void	Marriage		(CPlayer* pTarget);
	void	Divorce			(CPlayer* pTarget);

// for items
public:
	IItemPackage*	QueryPackageBag(){return m_pPackageNormal;}
	IItemPackage*	QueryPackageEgg(){return m_pPackageEgg;}
	IItemPackage*	QueryPackageSoul(){return m_pPackageSoul;}
	IItemPackage*	QueryPackagePet(){return m_pPackagePet;}
	
	

	CItem*	GetItem			(OBJID id, BOOL bExcludeEquipment = true);
	BOOL	AddItem			(CItem* pItem);

	int     GetGhostGemAmount	(int nSoulType);
	int     GetPackageLimit (int nPackageType = PACKAGE_BAG);
	int		GetItemAmount	(int nPackageType = PACKAGE_BAG);
	CItem*	GetItemByIndex	(UINT uIndex, int nPackageType = PACKAGE_BAG);
	CItem*	SearchItem		(OBJID id);
	BOOL	IsPackageFull   (CItem* pItem);

	BOOL	DelItem			(OBJID id, BOOL bDelete=_DEL_PT);
	void	ClearItem		(void);

	// interface
	BOOL	TryItem			(CItem* pItem);
	BOOL	TryItemTarget   (CItem* pItem, OBJID idTarget);
	void	UseItem			(OBJID id, OBJID idTarget=ID_NONE);
	void	RepairItem		(OBJID id);
	void	SellItem		(OBJID id);
	void	BuyItem			(OBJID idType);
	BOOL	DropItem		(OBJID id, int x, int y);
	void	PickUpItem		(OBJID id, int x, int y);

	DWORD	GetMoney(){return m_dwMoney;}
	void	SetMoney(DWORD dwMoney){m_dwMoney = dwMoney;}

	DWORD	GetCarryingCapacity();
	DWORD	GetItemTotalWeight();

private:
	//DEQUE_ITEM	m_dequeItem;
	IItemPackage*	m_pPackageNormal;	//	普通袋子
	IItemPackage*	m_pPackagePet;		//	宠物袋子
	IItemPackage*	m_pPackageSoul;		//	魔魂袋子
	IItemPackage*	m_pPackageEgg;		//	蛋蛋袋子
	
// equipment
public:	 
	CItem*	GetEquipment(int nPosition)	{ MYASSERT(nPosition-1>=0 && nPosition-1<_MAX_EQUIPMENT); return m_pEquipment[nPosition-1]; }
	void	SetEquipment(int nPosition, CItem* pItem);
	BOOL	CanEquip	(int nPosition, CItem* pItem) const;

	BOOL	EquipItem	(int nPosition, OBJID idItem);
	BOOL	UnequipItem	(int nPosition);

	CItem*	SearchEquipment	(OBJID idItem);

private:
	CItem*	m_pEquipment[_MAX_EQUIPMENT];

// own info
public: 
	DWORD	GetAdditionAtk();
	DWORD	GetAdditionDef();
	DWORD	GetAdditionMAtk();
	DWORD	GetAdditionMDef();
	DWORD	GetMaxAtk();
	DWORD	GetMinAtk();
	DWORD	GetMaxMagicAtk();
	DWORD	GetMinMagicAtk();

	DWORD	GetDef();
	DWORD	GetMagicDef();

	DWORD	GetDex();
	
	DWORD	GetMaxLife();
	DWORD	GetMaxMana();
	DWORD	GetMaxXP();

	void	SetAutoAllot(DWORD dwAutoAllot){m_dwAutoAllot = dwAutoAllot;}
	DWORD	GetAutoAllot(void) {return m_dwAutoAllot;}

	DWORD	m_dwNobility;
	DWORD   m_dwMetempsychosis;

	// override
	int		GetAtkRange	(void);

// frineds
private:
	DEQUE_FRIEND		m_setFriend;
	OBJID				m_idFriendQuery;
	DWORD				m_dwFriendBeginQuery;
	BOOL				m_bFriendQueryBusy;
	BOOL				m_bFriendQueryReturn;
	OBJID				m_idFriendLastApply;
	char				m_szFriendLastApplyInfo[256];
	char				m_szFriendLastAcceptInfo[256];
	char				m_szNameFriendLastAccept[16];
public:
	BOOL	AddFriend		(CFriend* pFriend);
	BOOL	DelFriend		(OBJID id);
	void	QueryFriend	(OBJID id);
	void	ProcessFriend();
	void	QueryFriendReturn(){m_bFriendQueryReturn = true;}
	OBJID	GetCurrentQueryFriendID(){return m_idFriendQuery;}
	void ClearFriendList();

	BOOL MakeFriend		(OBJID id);
	BOOL BreakOffFriend	(OBJID id);

	int  GetFriendAmount();
	CFriend* GetFriend	(OBJID id);
	CFriend* GetFriendByIndex	(int nIndex);
	CFriend* GetFriendByName	(const char* pszName);
	void LeaveWords2Friend (OBJID idFriend, char* szWords);

	OBJID	GetIdFriendLastApply();
	void	SetIdFriendLastApply(OBJID id);
	const	char*	GetNameFriendLastApply(){return m_szNameFriendLastAccept;}
	void	SetNameFriendLastApply(char* pszName)
				{if(pszName && strlen(pszName) < _MAX_NAMESIZE) strcpy(m_szNameFriendLastAccept, pszName);}
	
	const   char*	GetFriendLastApplyInfo();
	void	SetFriendLastApplyInfo(const char* pszInfo);
	const	char*	GetFriendLastAcceptInfo();
	void	SetFriendLastAcceptInfo(const char* pszInfo);
	

// enemies
private:
	DEQUE_ENEMY			m_setEnemy;
	OBJID				m_idEnemyQuery;
	DWORD				m_dwEnemyBeginQuery;
	BOOL				m_bEnemyQueryBusy;
	BOOL				m_bEnemyQueryReturn;
public:
	BOOL	AddEnemy		(CEnemy* pEnemy);
	BOOL	DelEnemy		(OBJID id, BOOL bSendMsg = true);
	void	QueryEnemy		(OBJID id);
	void	ProcessEnemy	();
	void	QueryEnemyReturn(){m_bEnemyQueryReturn = true;}
	OBJID	GetCurrentQueryEnemyID(){return m_idEnemyQuery;}
	void	ClearEnemyList();
	
	int			GetEnemyAmount();
	CEnemy*	GetEnemy(OBJID id);
	CEnemy*	GetEnemyByIndex	(int nIndex);
	CEnemy*	GetEnemyByName	(const char* pszName);

// trade
public:
	// 交易的开与关
	void	CloseTrade(BOOL	bSuc);
	void	OpenTrade(OBJID idPlayer);
	BOOL	IsTradeActive(); 

	// 取交易栏需要信息
	DWORD	GetHeroTradeMoney();
	DWORD	GetPlayerTradeMoney();
	CItem*	GetHeroTradeItemByIndex(int nIndex);
	CItem*	GetPlayerTradeItemByIndex(int nIndex);
	int		GetHeroTradeItemAmount();
	int		GetPlayerTradeItemAmount();
	char*	GetPlayerTradeName();
	char*	GetApplyTradeName();

	// 网络消息中使用
	void	SetPlayerTradeMoney(DWORD dwMoney);
	void	SetHeroTradeMoney(DWORD dwMoney);
	void	AddHeroTradeMoney(DWORD dwMoney);
	void	AddHeroTradeItem(CItem* pItem);
	void	AddPlayerTradeItem(CItem* pItem);
	void	TradePlayerAgree();
	void	AddApply(OBJID idPlayer);
	void	AddItemFalse(OBJID idItem);

	// 申请,接受,同意,退出
	void	ApplyTrade(CPlayer* pPlayer);
	void	AcceptTrade();
	void	AgreeTrade();
	void	QuitTrade();

// auction 拍卖
	void	AuctionBid(OBJID idNpc,OBJID idItem,int dwValue);	//出价格
	void	AuctionAddItem(OBJID idNpc,OBJID idItem,int dwValue); //加入拍卖物品
	void	AuctionItemInfo(OBJID idNpc, OBJID idItem); //查询当前拍卖物品信息
	CItem*	GetAuctionItem(); //获得当前拍卖物品
	void	SetAuctionItemId(OBJID idItem) { m_AuctionItemId = idItem;}
	OBJID   GetAuctionItemId() {return m_AuctionItemId;} 
	void    SetAuctionItemMoney(int nMoney) {m_AuctionItemMoney = nMoney;}
	int     GetAuctionItemMoney() {return m_AuctionItemMoney;}
	void	SetAuctionOwnerName(char* szName) { strcpy(m_AuctionOwnerName,szName);}
	char*	GetAuctionOwnerName() {return m_AuctionOwnerName;}
	void	SetAuctionName(char* szName) { strcpy(m_AuctionName,szName);}
	char*   GetAuctionName() { return m_AuctionName;}	
	void	SetAuctionItem(CItem* pItem);
	void	DelAuctionItem();
private:
	CItem*  m_AuctionItem;	//拍卖物品
	OBJID   m_AuctionItemId;
	int		m_AuctionItemMoney; //拍卖价格
	char    m_AuctionName[_MAX_NAMESIZE]; //加价人
	char	m_AuctionOwnerName[_MAX_NAMESIZE]; //物品主人
// package
public:
	void	OpenPackage(OBJID idPackage, int nType);
	void	ClosePackage();
	int		GetPackageItemAmount();
	CItem*	GetPackageItemByIndex(int nIndex);
	void	AddPackageItem(CItem* pItem);
	int		GetPackageMaxItemAmount();
	void	QueryPackage();
	void	CheckInItem(OBJID idItem);
	void	CheckOutItem(OBJID idItem);
	int		GetPackageType();
	void	ResetPackage();
	void	DelPackageItem(OBJID idItem);

// bank 
public:
	void	DrawMoney		(DWORD dwMoney);
	void	SaveMoney		(DWORD dwMoney);
	DWORD	GetSavedMoney	();
	void	SetSavedMoney	(DWORD dwMoney);
	void	QueryMoney		();
	void	OpenBank		(OBJID idBank);
	void	CloseBank		();
	BOOL	DropMoney		(DWORD dwMoney, int x, int y);

// task dialog
public:
	void			DestroyTaskDialog();
	int				GetTaskDialogLineAmount();
	TaskDialogLine*	GetTaskDialogLineByIndex(int nIndex);
	void			AddTaskDialogLine(TaskDialogLine* pLine);
	void			AddTaskDialogLine(int nType, DWORD dwData, int nIndex, char* szStr, CMyPos posLine);
	void			AnswerTaskDialog(int nIndex, char* pszEdit);
	void			CreateTaskDialog();

	void			ActiveNpc(OBJID idNpc);
	void			ActiveAction(OBJID idAction, char* pszStr=NULL);
// for npc dialog open
private:
	OBJID	m_idDialogPara;
	
public:
	void	SetLastDialogPara(OBJID idDialog){m_idDialogPara = idDialog;}
	OBJID	GetLastDialogPara(){return m_idDialogPara;}
// status
public:
	virtual void	ReplaceStatus	(__int64 dwStatus);

private:
	CMyTimer		m_tmNameAlert;

// pk mode
private:		 
	int		m_nPkMode;

public:
	void	SetPkMode(int nPkMode, BOOL bSubmit = true);
	int	GetPkMode(){return m_nPkMode;}
private:
	BOOL	CanPk	(CPlayer* pTarget);

private:
	CProfessional		m_objProfessional;
	CTeam				m_objTeam;
	OBJID				m_dwFlashTeamMemberID;
	DWORD				m_dwLastQueryTeamLeader;
	DWORD				m_dwLastQueryTeam;

	CTrade				m_objTrade;
	CPackage			m_objPackage;
	CBank				m_objBank;
	CTaskDialog			m_objTaskDialog;
	DEQUE_WEAPONSKILL	m_setSingleHandWeaponSkill;
	DEQUE_WEAPONSKILL	m_setDoubleHandWeaponSkill;
	DEQUE_WEAPONSKILL	m_setOtherWeaponSkill;
	DWORD				m_setLevelExp[_MAX_LEVEL*2];

	VECTOR_MAGIC		m_setMagic;

	DWORD				m_dwMagicAttackBegin;
	DWORD				m_dwMagicAttackBusy;
	BOOL				m_bMagicAttackBusy;
private:
	void			DestroyWeaponSkill();
	CWeaponSkill*	GetWeaponSkillByType(DEQUE_WEAPONSKILL& setSkill, int nType);
	CWeaponSkill*	GetWeaponSkill(DEQUE_WEAPONSKILL& setSkill, int nIndex);
	void			AddNewWeaponSkill(DEQUE_WEAPONSKILL& setSkill, int nSkillType, DWORD dwLevel, DWORD dwExp);

	void			CreateLevelExp();
public:
	CWeaponSkill*	GetWeaponSkill(int nWeaponSkillClass, int nIndex);
	CWeaponSkill*	GetWeaponSkill(int nWeaponSkillType);
	int				GetWeaponSkillAmount(int nWeaponSkillClass);
	void			AddNewWeaponSkill(int nSkillType, DWORD dwLevel, DWORD dwExp);	

public:
	// teammember operation
	void			TeamCreate();
	void			TeamApplyJion(OBJID idTarget);
	void			TeamLeave();
	void			TeamAcceptInvite();
	void			SetTeamLeaderPos(CMyPos pos)	{ m_objTeam.m_posLeader = pos, m_dwLastQueryTeamLeader = ::TimeGet();}
	DWORD			GetTeamLeaderFlashTime()		{ return m_dwLastQueryTeamLeader;}
	CMyPos			GetTeamLeaderPos(void)			{ return m_objTeam.m_posLeader; }
	void			QueryTeamMemberPos(OBJID idTarget);
	OBJID			GetTeamMemberFlashID();
	void			SetTeamMoneyAccess(BOOL bAccess);
	void			SetTeamItemAccess(BOOL bAccess);
	void			SetTeamGemAccess(BOOL bAccess);
	BOOL			IsTeamClosed(){return m_objTeam.IsTeamClosed();}
		

	// teamleader operation
	void			TeamInvite(OBJID idTarget);
	void			TeamKickOut(OBJID idTarget);
	void			TeamDismiss();
	void			TeamClose();
	void			TeamOpen();
	void			TeamAgreeApply();
	char*			GetTeamApplyerName();

	// system operation
	void			ClearTeamMember();
	void			SetTeamMemberHp(OBJID idMember, int nHp);
	void			SetTeamMemberMaxHp(OBJID idMember, int nMaxHp);
	int				GetTeamMemberAmount();
	TeamMemberInfo* GetTeamMemberInfo(int nIndex);
	TeamMemberInfo* GetTeamMemberInfoByID(OBJID idMember);
	BOOL			SetTeamLastApply(OBJID idPlayer);
	void			AddTeamMember(TeamMemberInfo* pInfo);
	void			DelTeamMember(OBJID id);
	void			CloseTeam();
	void			OpenTeam();
	BOOL			IsTeamMember(OBJID idPlayer);
	BOOL			IsTeamMember(char* pszPlayer);

	BOOL			IsTeamLeader();
	void			ShowTeam(CMyPos posShow);
	void			SetTeamMemberFace(OBJID idMember, int nFace);
	
// profession
public:
	char*			GetProfessionalName(DWORD dwIndex);

// jump?
private:
	int			 m_nHeightCanJump;
	BOOL		 CanJump(CMyPos posTarGet);
	DWORD		 m_dwBeginUseTransformMagicTime;

	DWORD		 m_dwFlyBegin;
	DWORD		 m_dwFlyDuration;
	void		 ShowFly();

	DWORD		 m_dwTransformBegin;
	DWORD		 m_dwTransformDuration;
	BOOL		 m_bShowAbortTransformDialog;
	void		 ShowTransform();
		
public:
	void		 BeginFly(DWORD dwMagicType, DWORD dwLevel);
	BOOL		 IsTransform();
	void		 BeginTransForm(DWORD dwMagicType, DWORD dwLevel);
	void		 ProcessAbortTransformDialog();
	void		 AbortTransform();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -