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

📄 playerinfo.cpp

📁 韩国英雄王座倒闭后流出来部分源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
////////////////////////////////////////////////////////////////////////////////////////
//	PlayerInfo.cpp : implementation file
//
//
//
//
//
//
////////////////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "Resource.h"
#include "CUdpSocket.h"

#include "PlayerInfo.h"
#include "MapServerSocket.h"
#include "DBSocket.h"
#include "CFightZone.h"
#include "CLog.h"

#include "ServerMem.h"
#include "QuestEngine.h"	//	Quest
#include "ActiveQuest.h"	//	Active Quest

#include "QuestEngine.h"

#ifdef DEF_AZIT
	#include "AzitManager.h"
#endif

#ifdef DEF_UNIQUEITEM
	#include "UniqueManager.h"
#endif

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


////////////////////////////////////////////////////////////////////////////////////////
//	Global Values
////////////////////////////////////////////////////////////////////////////////////////
extern	CDBConnection		g_AccountDB;			//	Account Database Connect

extern _LPCLOGMANAGER		g_lpLog ;				//	Log
extern	CQuestEngine		*g_pQuestEngine;		//	Quest Engine

extern	ServerMem			*g_pServerMem;	
extern	BaseData			g_Base;					//	DATABASE 包访
extern	Map					*g_pMap;				//	MAP 包府

extern	MapServerSocket		*g_pServer;				//	Map Server Pointer
extern _LPDBSOCK			g_lpDBSock ;			//	World Server
extern _LPUDPSOCKET			g_lpUdpSock ;			//	UDP

extern _LPCFIGHTZONEMANAGER g_lpFightzoneManager ;

////////////////////////////////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////////////////////////////////
#ifdef DEF_CHECKATTAKRANGE

//DEF_CHECKATTAKRANGE_MORE
inline int	GetAllowSkillAttackRange( CEnchant* pSkill, bool bOff )
{
	if ( pSkill )
	{
		switch( pSkill->m_wRangeType )
		{
		case SKILL_RANGE_ONLYMYSELF:  // 阿辆 牢忙飘, 磊扁 磊脚俊霸父 矫傈
			break;

		case SKILL_RANGE_ONLYITSELF:  // 颇捞绢 杭飘, 浇贰矫殿 努腐茄 措惑 茄疙俊霸父 矫傈
			{
				
				if ( pSkill->m_wSkillRange == 0 )
					return MAX_ALLOWED_ATTACK;

				if ( pSkill->m_wSkillRange <= MAX_ALLOWED_ATTACK )
						return MAX_ALLOWED_ATTACK;

				return ( ( ( pSkill->m_wSkillRange + OFFSET_ALLOWED_RANGE ) > MAX_ALLOWED_ATTACKINAOI ) ? MAX_ALLOWED_ATTACKINAOI : ( pSkill->m_wSkillRange + OFFSET_ALLOWED_RANGE ) );
			
			}
			break;	
		case SKILL_RANGE_TARGET:      // 皋抛坷, 颇捞绢 杭
		case SKILL_RANGE_STRIKE:      // 抄荤, 家靛 配匙捞档
			return MAX_ALLOWED_ATTACKINAOI;
			break;				
		case SKILL_RANGE_SQUARE:      // 酒捞胶 鞘扼, 家靛胶盆
			{
				if ( pSkill->m_wSkillHitRange == 0 )
					return MAX_ALLOWED_ATTACK + OFFSET_ALLOWED_RANGE;

				if ( pSkill->m_wSkillHitRange <= ( MAX_ALLOWED_ATTACK + OFFSET_ALLOWED_RANGE ) )
					return MAX_ALLOWED_ATTACK + OFFSET_ALLOWED_RANGE;

				return ( ( ( pSkill->m_wSkillHitRange + OFFSET_ALLOWED_RANGE ) > MAX_ALLOWED_ATTACKINAOI ) ? MAX_ALLOWED_ATTACKINAOI : ( pSkill->m_wSkillHitRange + OFFSET_ALLOWED_RANGE ) );

			}
			break;		
		}
	}

	return MAX_ALLOWED_ATTACK;
}

// 老窜 吝惫铂肺 利侩 巩力 乐阑锭绰 犬牢 鞘夸 2005-3-10
//inline int	GetAllowSkillAttackRange( CEnchant* pSkill, bool bOff )
//{
//	if ( pSkill )
//	{
//		switch( pSkill->m_wRangeType )
//		{
//		case 0:				// 阿辆 牢忙飘, 磊扁 磊脚俊霸父 矫傈
//			break;
//
//		case 1:				// 颇捞绢 杭飘, 浇贰矫殿 努腐茄 措惑 茄疙俊霸父 矫傈
//		case 2:				// 皋抛坷, 颇捞绢 杭
//		case 3:				// 抄荤, 家靛 配匙捞档
//		case 4:				// 酒捞胶 鞘扼, 家靛胶盆
//			{
//				if ( pSkill->m_wSkillRange == 0 )
//					return MAX_ALLOWED_ATTACK;
//
//				if ( bOff )
//				{
//					return ( ( ( pSkill->m_wSkillRange + OFFSET_ALLOWED_RANGE ) > MAX_ALLOWED_ATTACKINAOI ) ? MAX_ALLOWED_ATTACKINAOI : ( pSkill->m_wSkillRange + OFFSET_ALLOWED_RANGE ) );
//				}
//				else
//				{
//					if ( pSkill->m_wSkillRange <= OFFSET_ALLOWED_RANGE )
//						return OFFSET_ALLOWED_RANGE;
//
//					return ( ( pSkill->m_wSkillRange  > MAX_ALLOWED_ATTACKINAOI ) ? MAX_ALLOWED_ATTACKINAOI : pSkill->m_wSkillRange );
//				}
//			}
//			break;		
//		}
//	}
//
//	return MAX_ALLOWED_ATTACKINAOI;
//}

////////////////////////////////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////////////////////////////////
inline int GetAllowPhysicalAttackRange( int nIdx )
{
	return MAX_ALLOWED_ATTACK;
}


////////////////////////////////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////////////////////////////////
inline int GetAllowMissileAttackRange( int nIdx )
{
	return MAX_ALLOWED_MISSILEATTACK;
}

#endif


////////////////////////////////////////////////////////////////////////////////////////
//	PlayerInfo
////////////////////////////////////////////////////////////////////////////////////////
PlayerInfo::PlayerInfo()
{
	memset(&_PLAYERINFO, 0x0, sizeof(_ZP_PLAYERINFO));

	m_bOptionWhisper	=	TRUE;	//	庇加富 劝己拳 咯何
	m_bOptionCommunity	=	TRUE;	//	目孤聪萍 劝己 咯何


#ifdef DEF_KUMA_GAMBLE
	m_nGambleState		=	0;
	m_pTmpGambleItem	=	NULL;
#endif


	m_bWaitForPartyReq	= false;
	m_bPartyBreak		= false;


	m_iContribute	= 0 ;	

	m_bHoldTurn			=	false;

}

PlayerInfo::~PlayerInfo()
{

}

////////////////////////////////////////////////////////////////////////////////////////
//	Player客 包访等 函荐甫 Clear矫糯 
//
//	-	檬扁拳 亲格 郴侩 痢八 累诀 鞘夸
////////////////////////////////////////////////////////////////////////////////////////
void PlayerInfo::Clear_PlayerInfo()
{
	CPlayer::Clear_Player();
	
	m_nStatus			=	STATUS_NOTHING;		//	酒公 悼累档 绝绰 惑怕
	m_pSocketFD			=	NULL;	

	m_dwHandle			=	0;					//	Player	Handle
	Party_ClearHandle() ;

	m_bOptionWhisper	=	TRUE;				//	庇加富 劝己拳 咯何
	m_bOptionCommunity	=	TRUE;				//	目孤聪萍 劝己 咯何

	m_nAdminDiv			=	0;
	m_nTeleportMapID	=	0;

	m_bIsForceLogout	=	false ;

	m_dwGuildHandle		=   0;
	m_nGuildLevel		=   0;
	
#ifdef DEF_GUILDRANKDUB
	m_iGuildRank		=	0;
#endif
	


	m_dwMatchSEQ		=	0 ;
	m_nTeam				=	0 ;
	m_nKillCount		=	0 ;
	m_bIsFightZone		=	false ; 
	m_bIsFightMode		=   false ;
	m_sProtectTime		=	0 ;

	m_nUsePotion		=   PVP_POTION_USE ;	// 拱距 荤侩捞 啊瓷窍促 

	m_nMatchTeamType	=	0;

	m_nPartyType		=   0;
	m_sPartyClass		=   0;

	m_bHoldTurn			=	false;
	
	memset( m_strAccountID	,0x0, sizeof( m_strAccountID) );
	memset( m_strPlayerID	,0x0, sizeof( m_strPlayerID	) );

	memset( m_strGuildName	,0x0, sizeof( m_strGuildName) );
	memset( m_strGuildMark	,0x0, sizeof( m_strGuildMark) );

	
	memset( &m_OldCellPoint	,0x0, sizeof( _POINT		) );		//	困摹 包访 函荐 檬扁拳 

	memset( &m_FromCell		,0x0, sizeof( _POINT	) ); 
	memset( &m_ToCell		,0x0, sizeof( _POINT	) ); 
	memset( &m_BaseFromCell	,0x0, sizeof( _POINT	) ); 
	memset( &m_BaseToCell	,0x0, sizeof( _POINT	) ); 
	
	memset(&_PLAYERINFO		,0x0, sizeof(_ZP_PLAYERINFO));			//	Visual 沥焊 檬扁拳	

	//
	//	NPC SYSTEM	Clear
	//
	m_listSummonNPC.RemoveAll();

	//
	//	牢亥配府 郴侩 檬扁拳
	//
	if( bInventoryMapClear())
	{		
		ErrorMsg( "(X) Play  Clear Error - Inventory" );
	}
	
	//
	//	胶懦 檬扁拳
	//
	m_pAttackSkill	=	NULL;	

	if( bSkillMapClear() )	
	{		
		ErrorMsg( "(X) Play Clear Error - Skill" );
	}

	//
	//	Enchant	檬扁拳 
	//
	if( bEnchantMapClear())
	{
		ErrorMsg( "(X) Play Clear Error - Enchant" );	
	}


	// 辨靛 胶懦 努府绢 
	if(  bGuildSkillClear() )	
	{		
		ErrorMsg( "(X) Play Clear Error - m_MapGuildSkill" );
	}
	


	//
	//	Quest檬扁拳 (窃荐肺 盒府矫糯)
	//
	if( !m_ActiveQuest.m_SafeMap.empty() )	
	{
		MAP_VOIDPTR::iterator  itEnd = m_ActiveQuest.End() ;
		for ( MAP_VOIDPTR::iterator  it = m_ActiveQuest.Begin(); it != itEnd; it++)
		{
			CActiveQuest *pActiveQuest	= (CActiveQuest *)it->second;
			
			g_pServerMem->ActiveQuest_Push( pActiveQuest );
				
		}

		m_ActiveQuest.Clear();

		ErrorMsg( "(X) Play Clear Error - ActiveQuest" );	
	}



#ifdef DEF_CHECK_QUESTDONE

	//
	//	窃荐肺 盒府 矫糯
	//
	if ( !m_QuestDone.m_SafeMap.empty() )
	{
		MAP_VOIDPTR::iterator itEnd = m_QuestDone.End();
		
		for ( MAP_VOIDPTR::iterator  it = m_QuestDone.Begin(); it != itEnd; it++)
		{
			_QUEST_SUCCESS_INFO *pQuestDone	= (_QUEST_SUCCESS_INFO *)it->second;
			g_pServerMem->QuestSuccessInfo_Push( pQuestDone );				
		}

		m_QuestDone.Clear();
	}
#endif


	//
	//	辨靛 桂农 檬扁拳
	//
#ifdef	DEF_GUILDBANK
	
	if( bGuildInventoryClear() )
		ErrorMsg( "(X) Play Clear Error - m_MapGuildInventory" );

#endif


	//	--------------------------------------------------------------------------------
	//	厘馒 沥焊 檬扁拳 	
	//	--------------------------------------------------------------------------------
	memset( m_pEquipments		,0x0, sizeof(m_pEquipments	) ); 

	//	--------------------------------------------------------------------------------
	//	技飘酒捞袍 可记
	//	--------------------------------------------------------------------------------
	m_SetItemOption		=	0;
	m_pSetItemFullOption=	NULL;

	//	--------------------------------------------------------------------------------
	//	苞陛 包访 函荐 檬扁拳 	
	//	--------------------------------------------------------------------------------
	m_nBillCode			=	0;	
	m_nConnectLocation	=	0;

	//	--------------------------------------------------------------------------------
	//	PK Chao
	//	--------------------------------------------------------------------------------
	m_pPKChao			=	NULL;
	m_sAttackModeTime		=	0 ;

	m_iPKPoint	= 0 ;
	m_iPKWin    = 0 ;
	m_iPKLose   = 0 ;

	//	--------------------------------------------------------------------------------
	//	PARTYQUEST
	//	--------------------------------------------------------------------------------
	memset( m_nQuestGlobalValue, 0x00, sizeof(int)*DEF_QUEST_GLOBALVALUE_MAX );

	//
	//
	//	Event Map俊 措茄 Path甫 历厘矫糯
	//
	//	-	眠饶 包访 Pointer泅怕肺 函版矫糯
	//
	m_nEventMapBase		=	0;
	m_nEventMapPath		=	0;
	m_nEventMapSelect	=	0;	

	#ifdef DEF_AZIT
		m_dwPartyQuest = 0;
		SetChannel( 0 );
	#endif




#ifdef DEF_KUMA_GAMBLE
	m_nGambleState		=	0;	
	m_pTmpGambleItem	= NULL;	
#endif

	m_iContribute	= 0 ;	



#ifdef DEF_ITEMCOUNT_BADAJOA20041108
	memset(m_sItemCount,0x0,sizeof(m_sItemCount)) ;

#endif

#ifdef DEF_NPCCARD
	m_dwNPCCardSellComplete	= 0;
#endif

#ifdef DEF_DEFENCESKILLHACK
	m_nReactAttackCount		= 0 ;
#endif

#ifdef DEF_GUILDWAR
	m_lpGuild				= NULL ;
#endif


	m_bStallHack	= FALSE;

}


#ifdef DEF_CHECK_QUESTDONE

////////////////////////////////////////////////////////////////////////////////////////
//	涅胶飘 荐青矫埃捞 20檬 固父牢 巴捞 7锅捞惑 唱鸥唱搁 老窜 肺弊甫 巢扁磊..
//
////////////////////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

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