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

📄 azit.cpp

📁 韩国英雄王座倒闭后流出来部分源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
////////////////////////////////////////////////////////////////////////////////////////
//	Azit.cpp: implementation of the Azit class.
//
//
//
////////////////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "Azit.h"
#include "AzitManager.h"
#include "Map.h"

#include "MapServerSocket.h"
#include "DBSocket.h"
#include "CUdpSocket.h"
#include "CGuild.h"
#include "CLog.h"

////////////////////////////////////////////////////////////////////////////////////////
//	Global 函荐 
////////////////////////////////////////////////////////////////////////////////////////
extern	Map				*g_pMap;		//	MAP 包府 (User捞悼)
extern	MapServerSocket	*g_pServer;		//	Map Server Pointer
extern _LPDBSOCK		g_lpDBSock;		//	DB  Socket
extern _LPUDPSOCKET		g_lpUdpSock;	//	UDP Socket
extern _LPCLOGMANAGER	g_lpLog ;

#ifdef DEF_AZIT
////////////////////////////////////////////////////////////////////////////////////////
// Construction/Destruction
////////////////////////////////////////////////////////////////////////////////////////
Azit::Azit( bool bIsHaveAzitMap)
{
	m_bIsHaveAzitMap	=	bIsHaveAzitMap;

#ifdef DEF_AZITTAXBIGMONEY_BADAJOA20050622	
	m_i64AzitTex		=	0;
#else
	m_nAzitTex			=	0;
#endif 

	m_nDefenseCount		=	DEF_AZITSYMBOLDEFENSE_DEFAULTCOUNT;
	m_nAttackerCount	=	DEF_AZITSYMBOLATTACKER_DEFAULTCOUNT;
}

Azit::Azit(_LPZW_AZITSTATUSLIST_REP pAzitList)
{
	m_bIsHaveAzitMap	=	false;
#ifdef DEF_AZITTAXBIGMONEY_BADAJOA20050622	
	m_i64AzitTex			=	0;
#else
	m_nAzitTex			=	0;
#endif 

	memcpy( &m_AzitInfo, pAzitList, sizeof(m_AzitInfo));

	m_nDefenseCount		=	DEF_AZITSYMBOLDEFENSE_DEFAULTCOUNT;
	m_nAttackerCount	=	DEF_AZITSYMBOLATTACKER_DEFAULTCOUNT;
}

Azit::~Azit()
{

}




////////////////////////////////////////////////////////////////////////////////////////
//	酒瘤飘 备炼眉 沥焊甫 掘澜
////////////////////////////////////////////////////////////////////////////////////////
_LPZW_AZITSTATUSLIST_REP Azit::GetAzit()
{
	return &m_AzitInfo;
}

////////////////////////////////////////////////////////////////////////////////////////
//	泅犁狼 技陛阑 穿利 矫糯
//	
//	-	穿利等 技陛捞 漂沥 陛咀 捞惑老 版快 World Server肺 傈价窃
////////////////////////////////////////////////////////////////////////////////////////
#define DEF_AZITTEX_MAX		100

void Azit::SetTax(int pTax)
{

#ifdef DEF_AZITMAXTAX
	// 技啦 * 10父 飘扼啊 弥措 甸绢棵 荐 乐绰 技陛捞促. 
	// 技啦捞 5 捞搁 50父 飘扼啊 弥措 技陛捞促.
	pTax =  MIN( GetAzitTaxRate() * 100000 , pTax) /2 ;
	
#endif 
	
	m_nAzitTex = m_nAzitTex + pTax;

	//
	//	漂沥 陛咀 捞惑牢 版快 World Server肺 傈价窃
	//
	if( m_nAzitTex > DEF_AZITTEX_MAX )
	{
		g_lpDBSock->WorldSend_AzitTex( GetAzitSeq(), m_nAzitTex );

		m_nAzitTex	=	0;
	}
}

////////////////////////////////////////////////////////////////////////////////////////
//	秦寸 甘俊 酒瘤飘 家蜡 咯何 馆券
//
////////////////////////////////////////////////////////////////////////////////////////
bool Azit::GetHaveAzitMap()
{
	return m_bIsHaveAzitMap;
}

////////////////////////////////////////////////////////////////////////////////////////
//	酒瘤飘 沥焊甫 涝仿矫糯
//
//	-	酒瘤飘 惑怕 函版俊 蝶弗 饶加 累诀
////////////////////////////////////////////////////////////////////////////////////////
void Azit::SetAzitInfo(_LPZW_AZITSTATUSLIST_REP pAzitInfo)
{
	int nOldStatus	=	GetAzitStatus();
	int nOldTaxRate	=	m_AzitInfo.nTaxRate;

	//
	//	鞘夸 沥焊甫 汗荤矫糯
	//
	memcpy( &m_AzitInfo, pAzitInfo, sizeof( _ZW_AZITSTATUSLIST_REP ) );

	//
	//	酒瘤飘 技啦捞 函版等 版快 贸府
	//
	//	-	函版等 酒瘤飘 沥焊甫 努扼捞攫飘俊 傈价窃
	//
	if( nOldTaxRate != pAzitInfo->nTaxRate )
	{		
		//
		//	立加磊 沥焊
		//
		#ifdef DEF_NEWREGISTRY
			void*	TempPlayer[MAX_USER_LIMIT]		=	{0, };
		#else
			void*	TempPlayer[MAX_SOCKET_CONTEXT]	=	{0, };
		#endif

		int nCountPlayer = g_pMap->m_MapPlayerHandle.CopyTmpList( TempPlayer );

		for( int i=0; i < nCountPlayer ; i ++ )
		{
			_SOCKET_FD *pSocketFD = (	_SOCKET_FD *)TempPlayer[i];
			if( !IsSocketValidity( pSocketFD ) )	continue;

			//
			//	 酒瘤飘 殿废 沥焊俊辑 掘澜
			//	
			Azit *pAzit = _Module.m_pAzitManager->GetAzitTaxMap( pSocketFD->pPlayer->GetMapID() );

			if( pAzit && pAzit->GetAzitSeq() == GetAzitSeq() )
				g_pServer->PacketSend_AzitStatus( pSocketFD, pAzit->GetAzit() );		
		}
	}
	
	//
	//	酒瘤飘 惑怕啊 函版等 版快贸府
	//
	if( GetHaveAzitMap() && nOldStatus != pAzitInfo->nStatus )
	{		
		
		switch( pAzitInfo->nStatus )
		{
		//
		//	酒瘤飘傈 霖厚 惑怕
		//
		//	-	酒瘤飘 惑痢阑 Off矫糯
		//	-	秦寸 甘俊 立加 蜡历俊霸 包访 涅胶飘 傈价
		//	-	酒瘤飘 郴狼 捞侩磊甫 困摹 捞悼 矫糯
		//
		case	AZITSTATUS_WARREADY	:
			{
				#ifdef DEF_NEWREGISTRY
					void*	TempPlayer[MAX_USER_LIMIT]		=	{0, };
				#else
					void*	TempPlayer[MAX_SOCKET_CONTEXT]	=	{0, };
				#endif

				int nCountPlayer = g_pMap->m_MapPlayerHandle.CopyTmpList( TempPlayer );

				for( int i=0; i < nCountPlayer ; i ++ )
				{
					_SOCKET_FD *pSocketFD = (	_SOCKET_FD *)TempPlayer[i];
					if( !IsSocketValidity( pSocketFD ) )	continue;
					
					if( MAP_AZIT != pSocketFD->pPlayer->GetLocationMapType() ) continue;//	AZIT MAP立加磊
					
					//	酒瘤飘 家蜡 辨靛牢 版快 
					if( GetOwnerHandle()		&& GetOwnerHandle()		== pSocketFD->pPlayer->Guild_GetHandle() )
					{
						g_pServer->PacketSend_QuestGate		( pSocketFD		, 1, 1	);	//	Gate甫 Lock矫糯	
						pSocketFD->pPlayer->Quest_Teleport( 8, 41, 10 );				//	规绢磊 困摹肺 捞悼 矫糯

						pSocketFD->pPlayer->QuestRequest( DEF_AZITDEFENSEQUEST );		//	酒瘤飘 规滚 涅胶飘 惯悼
						g_pServer->PacketSend_AzitStatus( pSocketFD, &m_AzitInfo );		//	酒瘤飘 惑怕 傈价
					}
					//	酒瘤飘 档傈 辨靛牢 版快
					else if( GetWarProposeHandle() && GetWarProposeHandle()== pSocketFD->pPlayer->Guild_GetHandle() )
					{
						g_pServer->PacketSend_QuestGate		( pSocketFD		, 1, 1	);	//	Gate甫 Lock矫糯	
						pSocketFD->pPlayer->Quest_Teleport( 8, 40, 100 );				//	傍拜磊 困摹肺 捞悼 矫糯

						pSocketFD->pPlayer->QuestRequest( DEF_AZITATTACKQUEST );		//	酒瘤飘 档傈 涅胶飘 惯悼
						g_pServer->PacketSend_AzitStatus( pSocketFD, &m_AzitInfo );		//	酒瘤飘 惑怕 傈价

						
					}
				}
				
				//
				//	Azit Symbol俊 秦寸 辨靛拳 矫糯
				//
				void*	ListNPC[10000]		=	{0, };
				int		nCountNPC;

				for(int iLayer = 0 ; iLayer < g_pMap->m_nMaxLayer; ++iLayer)
				{
					if( MAP_AZIT != g_pMap->MapConfig[iLayer].nMapType )	continue;

					nCountNPC = g_pMap->m_MapNPC[iLayer]->CopyTmpList( ListNPC );
					
					for( int i=0; i< nCountNPC; ++i )
					{
						NPC *pNPC	=	(NPC *)ListNPC[i];
						if( !pNPC)	continue;

						if( pNPC->GetChannel() == GetAzitSeq() )
						{
							pNPC->m_dwGuildHandle = GetOwnerHandle();
						}
					}
				}
			}
			break;

		//
		//	酒瘤飘傈 傈里 惑怕
		//
		//	-	立加 荤侩磊甸俊霸 涅胶飘 惯悼 矫埃阑 傈价窃
		//	-	秦寸 惑怕 沥焊甫 傈价窃 
		//
		case	AZITSTATUS_WAR		:
			{
				//
				//	酒瘤飘 惑怕甫 檬扁拳 矫糯
				//
				m_nDefenseCount		=	DEF_AZITSYMBOLDEFENSE_DEFAULTCOUNT;
				m_nAttackerCount	=	DEF_AZITSYMBOLATTACKER_DEFAULTCOUNT;

				
				#ifdef DEF_NEWREGISTRY
					void*	TempPlayer[MAX_USER_LIMIT]		=	{0, };
				#else
					void*	TempPlayer[MAX_SOCKET_CONTEXT]	=	{0, };
				#endif

				int nCountPlayer = g_pMap->m_MapPlayerHandle.CopyTmpList( TempPlayer );

				for( int i=0; i < nCountPlayer ; i ++ )
				{
					_SOCKET_FD *pSocketFD = (	_SOCKET_FD *)TempPlayer[i];
					if( !IsSocketValidity( pSocketFD ) )	continue;

					if( MAP_AZIT != pSocketFD->pPlayer->GetLocationMapType() ) continue;	//	AZIT MAP立加磊
					
					//
					//	酒瘤飘 家蜡 辨靛牢 版快 
					if( GetOwnerHandle()		&& GetOwnerHandle()		== pSocketFD->pPlayer->Guild_GetHandle() )
					{
						g_pServer->PacketSend_QuestSetTimer( pSocketFD,	 DEF_AZITDEFENSEQUEST, 1, GetAzitWarTime() );

						pSocketFD->pPlayer->Quest_Teleport( 8, 41, 10 );						//	规绢 困摹肺 捞悼

						g_pServer->PacketSend_QuestGate		(pSocketFD, 1, 1 );					//	Gate甫 Lock矫糯

						g_pServer->PacketSend_AzitStatus	(pSocketFD, &m_AzitInfo	);			//	酒瘤飘 惑怕 傈价					
						g_pServer->PacketSend_PVPStart		(pSocketFD	);						//	酒瘤飘 傈 矫累
					
						g_pServer->PacketSend_AzitWarPoint	(pSocketFD, this );					//	酒瘤飘 惑隆拱 惑怕 傈价

						g_pServer->PacketSend_WarningMsg	(pSocketFD, MSG_AZITSTART_MSG1	);	//	酒瘤飘 矫累 包访 皋矫瘤  #1
						g_pServer->PacketSend_WarningMsg	(pSocketFD, MSG_AZITSTART_MSG2	);	//	酒瘤飘 矫累 包访 皋矫瘤  #2
						g_pServer->PacketSend_WarningMsg	(pSocketFD, MSG_AZITSTART_MSG3	);	//	酒瘤飘 矫累 包访 皋矫瘤  #3
					}
					//
					//	酒瘤飘 档傈 辨靛牢 版快
					//
					else if( GetWarProposeHandle() && GetWarProposeHandle()== pSocketFD->pPlayer->Guild_GetHandle() )
					{
						g_pServer->PacketSend_QuestSetTimer( pSocketFD,	 DEF_AZITATTACKQUEST, 1, GetAzitWarTime() );
						pSocketFD->pPlayer->Quest_Teleport( 8, 40, 100 );						//	傍拜 困摹肺 捞悼

						g_pServer->PacketSend_QuestGate		(pSocketFD, 1, 1 );					//	Gate甫 Lock矫糯
						g_pServer->PacketSend_AzitStatus	(pSocketFD, &m_AzitInfo );			//	酒瘤飘 惑怕 傈价					
						g_pServer->PacketSend_PVPStart		(pSocketFD );						//	酒瘤飘 傈 矫累
					
						g_pServer->PacketSend_AzitWarPoint	(pSocketFD, this );					//	酒瘤飘 惑隆拱 惑怕 傈价

						g_pServer->PacketSend_WarningMsg	(pSocketFD, MSG_AZITSTART_MSG1 );	//	酒瘤飘 矫累 包访 皋矫瘤  #1
						g_pServer->PacketSend_WarningMsg	(pSocketFD, MSG_AZITSTART_MSG2 );	//	酒瘤飘 矫累 包访 皋矫瘤  #2
						g_pServer->PacketSend_WarningMsg	(pSocketFD, MSG_AZITSTART_MSG3 );	//	酒瘤飘 矫累 包访 皋矫瘤  #3
					}
				}				
			}
			break;

		//
		//	酒瘤飘傈 肯丰 惑怕
		//
		//	-	酒瘤飘 傈 搬苞 魄沥
		//		->	酒瘤飘 惑隆拱 箭磊肺 魄沥窃
		//		->	World Server俊 包访
		//
		//	-	酒瘤飘 惑隆拱 檬扁拳 累诀
		//	-	秦寸 酒瘤飘 立加磊 -> 档己栏肺 捞悼矫糯
		//
		case	AZITSTATUS_WAREND	:
			{	
				//
				//	酒瘤飘傈 搬苞 魄窜
				//
				//	-	秦寸 酒瘤飘狼 辨靛 惑隆拱 箭磊肺 魄窜窃
				//	
				void*	ListNPC[10000]		=	{0, };
				int		nCountNPC;

				for(int iLayer = 0 ; iLayer < g_pMap->m_nMaxLayer; ++iLayer)
				{
					if( MAP_AZIT != g_pMap->MapConfig[iLayer].nMapType )	continue;

					nCountNPC = g_pMap->m_MapNPC[iLayer]->CopyTmpList( ListNPC );
					
					for( int i=0; i< nCountNPC; ++i )
					{
						NPC *pNPC	=	(NPC *)ListNPC[i];
						if( !pNPC)	continue;
						
						if( ( pNPC->GetChannel()	== GetAzitSeq() ) &&
							( pNPC->GetClassType()	== MONSTER_AZITSYMBOL ) )
						{
						
							switch( pNPC->m_dwDBSEQ )
							{
							//
							//	规绢螟 Azit Symbol
							//
							//	-	眠饶 包访 荐摹 涝仿	(眠饶 Function栏肺 盒府矫糯)
							//
							case	336	:	
								{
									pNPC->m_nHP	=	pNPC->m_nMaxHP;
								}
								break;
								
							//
							//	傍拜螟 Azit Symbol
							//
							case	335	:	
								{
									//
									//	秦寸 Azit Symbol阑 磷篮 惑怕肺 父惦
									//
									//	
									pNPC->m_nStatus = STATUS_DEAD;		//	DEAD惑怕 函版

									pNPC->EnchantAllStop();				//	牢忙飘甫 葛滴 辆丰 矫糯
									g_pMap->AOI_PlayerDelete( pNPC );	//	NPC甫 AOI MAP俊辑 昏力 矫糯
								}
								break;		
														
							default	:	break;							

⌨️ 快捷键说明

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