📄 playerinfo.h
字号:
#ifdef DEF_FIXITEMSELLBUYHACK
void ItemBuy( DWORD pItemHandle, WORD pX, WORD pY, DWORD pAddItemHandle , DWORD dwNPCHandle);
void ItemSell( DWORD pItemHandle, DWORD dwNPCHandle );
#else
void ItemBuy( DWORD pItemHandle, WORD pX, WORD pY, DWORD pAddItemHandle );
void ItemSell( DWORD pItemHandle );
#endif
void ItemUse( DWORD pItemHandle );
void ItemUse_Arrow( CItem *pItem, int pCount );
void ItemPickUp( _LPZP_ITEMPICKUP_ASK pPacket );
void ItemThrow( DWORD pItemHandle );
bool bTryItemUpgrade( WORD nOptionValue , bool & bIsLostItem );
bool bTryItemUpgrade( WORD nOptionValue );
bool bUseItem(CItem * lpItem);
int iUseItem(CItem * lpItem,int iCount);
////////////////////////////////////////////////////////////////////////////////////////
// 秦寸 酒捞袍阑 茫酒 馆券 矫糯
////////////////////////////////////////////////////////////////////////////////////////
CItem * Find_Item ( DWORD pHandle )
{
return (CItem *)m_MapInventory.Find( pHandle );
}
bool PKDropItem(PlayerInfo * pAttacker, int nKilledBy = MAP_PC); // Jason 2004-06-22
#ifdef DEF_GUILDWAR
bool GuildWarDropItem(PlayerInfo * pAttacker);
#endif
void PKAlign(PlayerInfo * pAttacked) ;
void ChangeAlign(int iBeforAlign, bool & bIsChangColor) ;
// --------------------------------------------------------------------------------
// Inventory 包访 风凭
// --------------------------------------------------------------------------------
int Inventory_Act( _LPZP_INVENTORYACT_ASK pPacket ); // Inventory包访 悼累
bool Inventory_Add( CItem *pItem, WORD pX, WORD pY );
int Inventory_PutOnUpdate( CItem *pItem ); // Item阑 厘馒 窍绰 版快
int Inventory_PutOffUpdate( CItem *pItem ); // Item阑 呕馒 窍绰 版快
int Inventory_ClearSlot( BYTE pSlotType ); // Inventory狼 秦寸 Slot阑 檬扁拳 矫糯
void Inventory_ItemAdd( _LPZP_INVENTORYADD_ASK pPacket );
bool Inventory_Delete( CItem *pItem );
bool Trade_Item();
bool Trade_ItemCheck();
// --------------------------------------------------------------------------------
// 胶懦 贸府 Functions
// --------------------------------------------------------------------------------
void Skill_Down( _LPZP_SKILLDOWN_ASK pPacket );
void Skill_Up( DWORD pSkillHandle );
void Skill_Delete( _LPZEMIPACKET pPacket );
void GuildSkill_Up( _LPZP_GUILDSKILLUP_ASK pPacket );
void Skill_SlotDelete( _LPZEMIPACKET pPacket );
void Skill_SlotInsert( _LPZEMIPACKET pPacket );
void Skill_Attack( _LPZP_SKILLATTACK_ASK pPacket );
void Skill_AttackReactPoint( _LPZP_SKILLREACTPOINT_ASK pPacket );
void Skill_AttackReady( _LPZP_SKILLATTACKREADY_ASK pPacket );
void Skill_SlotActive( BYTE pSlot );
bool Skill_MoveWarp( _LPZP_MOVEWARP_ASK pPacket );
////////////////////////////////////////////////////////////////////////////////////////
// 秦寸 胶懦阑 茫酒 馆券 矫糯
////////////////////////////////////////////////////////////////////////////////////////
CEnchant* Find_Skill( DWORD pHandle )
{
return (CEnchant *)m_MapSkill.Find( pHandle );
}
#ifdef DEF_SKILLCHECK_BADAJOA20050504
CEnchant* Find_SkillIdx( DWORD pIdx )
{
return (CEnchant *)m_MapSkillIdx.Find( pIdx );
}
#endif
CGuildSkill* Find_GuildSkill( WORD wSkillIndex )
{
return (CGuildSkill *)m_MapGuildSkill.Find( wSkillIndex );
}
void SkillEnchant_Delete( CEnchant * pSkill );
void SummonMonsterCmd(_LPZEMIPACKET pPacket);
void CurseEnchantStart();
void CurseEnchantStop();
// --------------------------------------------------------------------------------
// ITEM SLOT
// Jason 2004-05-31
// --------------------------------------------------------------------------------
void Item_SlotInsert( _LPZEMIPACKET pPacket );
void Item_SlotDelete( _LPZEMIPACKET pPacket );
void SetItemSlot(BYTE nDBAction, WORD wSlot, WORD wItemIndex, WORD wItemType);
DWORD GetItemSlot(WORD wSlot);
bool IsActiveItemSlot(WORD wSlot);
bool IsItemInSlot(WORD wSlot);
// --------------------------------------------------------------------------------
// NOTENOTE: 颇萍 矫胶袍
// --------------------------------------------------------------------------------
void Party_Break();
void Party_ClearHandle()
{
m_dwPartyHandle = 0;
m_nPartyType = 0;
_PLAYERINFO.dwPartyHandle = 0 ;
m_bWaitForPartyReq = false;
m_dwPartyQuest = 0;
m_bPartyBreak = false;
}
DWORD Party_GetHandle() { return m_dwPartyHandle; }
void Party_PlayerMapMove() ;
bool Party_bIsMaster() ;
void Party_FightzoneTeleport(short sLayer, _LPZW_FIGHTZONERESERVE pPacket, _POINT p,short nTeam = 0) ;
void Party_FightzoneMapMove(short sLayer,int MapSeq, _POINT p ,DWORD dwMatchSeq = 0,short nTeam =0) ;
// --------------------------------------------------------------------------------
// World Server楷搬 Function
// --------------------------------------------------------------------------------
bool bIsSameAlign(int iOtherPlayerAlign )
{
if(m_nAlign >=0 && iOtherPlayerAlign >= 0)
{
return true ;
}
else if(m_nAlign < 0 && iOtherPlayerAlign < 0)
{
return true ;
}
return false ;
}
// --------------------------------------------------------------------------------
// 辨靛 矫胶袍
// --------------------------------------------------------------------------------
void GuildCreateRequest(_LPZP_CREATEGUILD_REP pPacket) ;
void GuildCreate(_LPZP_CREATEGUILD_REP pPacket );
void GuildJoin(_LPZP_JOINGUILD_ASK pPacket ) ;
void RequestGuildLeave(_LPZP_GUILDOP pPacket) ;
void GuildLeave (_LPZP_GUILDOP pPacket ) ;
void RequestKickMember(_LPZP_GUILDOP pPacket) ;
void KickMember (_LPZP_GUILDOP pPacket ) ;
void RequestGuildDisband(_LPZP_GUILDOP pPacket) ;
void GuildDisband (_LPZP_GUILDOP pPacket ) ;
void RequestGuildAppointMaster(_LPZP_GUILDOP pPacket) ;
void GuildAppointMaster (_LPZP_GUILDOP pPacket ) ;
void RequestGuildInfor(_LPZP_GUILDOP pPacket) ;
void RequestGuildMarkChange(_LPZP_GUILDMARKCHANGE_ASK pPacket) ;
void GuildMarkChange(_LPZP_GUILDMARKCHANGE_ASK pPacket) ;
void GuildInfor(char * lpData) ;
void GuildMember(char * lpData) ;
void RequestGuildMember(_LPZP_GUILDMEMBER_ASK pPacket) ;
void RequestGuildNoticeSet(_LPZP_GUILDNOTICESET_ASK pPacket) ;
void Guild_FightzoneTeleport(short sLayer, _LPZW_FIGHTZONERESERVE pPacket, _POINT p,short nTeam = 0) ;
void Guild_FightzoneMapMove(short sLayer,int MapSeq, _POINT p ,DWORD dwMatchSeq = 0,short nTeam =0) ;
void Resurrection(int &iSkillLevel,CPlayer * lpAttacker,CItem * lpScrollItem ) ;
// --------------------------------------------------------------------------------
// NOTENOTE: 荤捧厘
// --------------------------------------------------------------------------------
void SendToLobby(_LPZP_PLAYERBASE_REP pPlayerBase) ;
bool SendPVPPrize_Item();
void PolyMorphStart(WORD & iSkill) ;
void PolyMorphStop(WORD & iSkill) ;
void UpdatePlayerGuildInfo()
{
memcpy( _PLAYERINFO.strGuildName , m_strGuildName, sizeof( m_strGuildName ) );
memcpy( _PLAYERINFO.strGuildMark , m_strGuildMark, sizeof( m_strGuildMark ) );
_PLAYERINFO.nGuildLevel = m_nGuildLevel; // 辨靛郴狼 饭骇
_PLAYERINFO.dwGuildHandle = m_dwGuildHandle ;
}
void PlayerGuildInfoInit()
{
memset(m_strGuildName,0x0, sizeof(m_strGuildName)) ; // 辨靛 捞抚
memset(m_strGuildMark,0x0, sizeof(m_strGuildMark)) ; // 辨靛 捞抚
m_dwGuildHandle = 0 ;
m_nGuildLevel = 0 ;
// 傍清档
m_iContribute = 0 ;
#ifdef DEF_GUILDWAR
m_lpGuild = NULL ;
#endif
#ifdef DEF_GUILDRANKDUB
m_iGuildRank = 0 ;
#endif
_PLAYERINFO.dwGuildHandle = 0 ;
memset( _PLAYERINFO.strGuildName , 0x0, sizeof( m_strGuildName ) );
memset( _PLAYERINFO.strGuildMark , 0x0, sizeof( m_strGuildMark ) );
_PLAYERINFO.nGuildLevel = 0; // 辨靛郴狼 饭骇
}
bool bIsUseSkill() ;
void Guild_ClearHandle() { m_dwGuildHandle = 0; }
DWORD Guild_GetHandle() { return m_dwGuildHandle; }
RELATION bCheckRelation(CPlayer * lpPlayer) ;
// --------------------------------------------------------------------------------
// World Server包访 Functions
// --------------------------------------------------------------------------------
bool World_PlayerBaseUpdate(); // 纳腐狼 扁夯 沥焊甫 DB俊 历厘
bool World_InventoryWrite(); // 纳腐狼 牢亥配府 历厘
bool World_InvItemInsert( CItem *pItem ); // Inventory DB俊 INSERT
bool World_InvItemUpdate( CItem *pItem ); // Inventory DB俊 UPDATE
bool World_InvItemDelete( DWORD pInventoryHandle ); // Inventory DB俊 DELETE
bool World_SkillWrite(); // 纳腐狼 牢亥配府 沥焊甫 DB俊 历厘
bool World_SkillInsert( CEnchant *pEnchant );
bool World_SkillUpdate( CEnchant *pEnchant );
bool World_SkillDelete( CEnchant *pEnchant );
void World_GuildSkillUpdate( CGuildSkill *pGuildSkill,BYTE nDBOP);
void RecalcGuildInfor(_LPGUILD lpGuild) ;
void PacketSendWorld_GuildInfor(_LPGUILD lpGuild) ;
void PacketSend_GuildInfor(_LPZP_GUILDINFOR_ASK pPacket,_LPGUILD lpGuild) ;
void PacketSend_GuildSkillUp(_LPZP_GUILDSKILLUP_ASK pPacket,CGuildSkill * pGuildSkill = NULL, GUILD_ENUM nResult = GOP_GUILDSKILLUP_SUCCESS ) ;
void PacketSend_GuildInforRep(_LPZP_GUILDINFOR_ASK pPacket,int iResult) ;
bool World_ItemSlotWrite(); // Jason 2004-06-01
void World_QuestWrite();
bool World_QuestDelete( CActiveQuest *pAQ );
bool World_QuestUpdate( CActiveQuest *pAQ );
bool World_QuestInsert( CActiveQuest *pAQ );
bool bCheckBundle(CItem * pItem, CItem * pAddItem);
bool bCheckBundle(CItem * pItem, int nCount);
void ItemDropPercentSimulation(CPlayer *pAttacked);
void ItemDropSimulation(CPlayer *pAttacked);
void MonsterKillAlignUp(CPlayer *pAttacked);
void ChangeStatus(DEF_STATUS nStatus)
{
m_nStatus = nStatus;
_PLAYERINFO.nStatus1 = nStatus ;
}
void SkillScrollUse(DWORD &pItemHandle,CItem *pItem) ;
void QuestScrollUse(DWORD &pItemHandle,CItem *pItem) ;
void GuildTabletUse(DWORD &pItemHandle,CItem *pItem) ;
void ReturnScrollUse(CItem *pItem);
void GuildLoginProcess(_LPGUILD lpGuild) ;
#ifdef DEF_DEFENCESKILLHACK
bool bCheckSkillReactCount(WORD wSkillIndex);
bool bCheckSkillSameTargetCount(WORD &wSkillIndex,short &sTargetCount);
#endif
#ifdef DEF_GUILDWAR
void KilledByPlayer_GuildWar(PlayerInfo * pAttacker);
#endif
#ifdef DEF_SECONDCHANGEJOB
BOOL bCanUseSkill(int & iSourceJob )
{
// 2瞒 傈流狼 版快
if(iSourceJob > 100 )
{
if( iSourceJob != m_nJob ) return FALSE ;
}
// 1瞒 傈流狼 版快
else if(iSourceJob > 10 )
{
if( iSourceJob != m_nJob%100 ) return FALSE ;
}
else
{
if( iSourceJob != m_nCharacterType ) return FALSE;
}
return TRUE ;
}
#endif
#ifdef DEF_GUILDWAR
// 辨靛傈 咯何甫 眉农茄促.
// 辨靛傈 咯何肺 档惯磊肺 官曹瘤 眉农茄促.
BOOL bCheckGuildwar(PlayerInfo * lpAttackedPlayer )
{
// 傍拜 罐绰 率捞唱 傍拜 窍绰 率捞唱 促 辨靛傈 吝捞搁 档惯磊肺 函窍瘤 臼扁 锭巩俊
// 档惯磊 咯何甫 眉农秦具 茄促.
if (m_lpGuild && m_lpGuild->bIsWar == TRUE
&& (lpAttackedPlayer->m_lpGuild && lpAttackedPlayer->m_lpGuild->bIsWar == TRUE )
&& m_lpGuild->bIsEnemyGuild(lpAttackedPlayer->m_dwGuildHandle)
)
{
return TRUE ;
}
return FALSE;
}
void PacketSend_GuildWarList() ;
#endif
};
#endif // #define __PLAYERINFO__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -