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

📄 playerinfo.h

📁 韩国英雄王座倒闭后流出来部分源代码
💻 H
📖 第 1 页 / 共 3 页
字号:
#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 + -