📄 hero.h
字号:
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 + -