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

📄 gamelog.cpp

📁 奇迹世界 部分源代码奇迹世界 部分源代码奇迹世界 部分源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
#include "StdAfx.h"
#include ".\gamelog.h"
#include "ItemManager.h"
#include "SkillManager.h"
#include "MissionManager.h"
#include "SCItemSlotContainer.h"
#include "SCSkillSlotContainer.h"
#include "SkillInfoParser.h"
#include "Map.h"


GameLog::GameLog(void)
{
}

GameLog::~GameLog(void)
{
}


//////////////////////////////////////////////////////////////////////////
// 版氰摹 肺弊 
// 1. 饭骇诀 肺弊
void GameLog::WriteLevelUp( Player* pPlayer, int nServerCode, DWORD dwOldExp, DWORD dwNewExp,
							WORD wOldLevel, WORD wNewLevel )
{
	if( !IsRun() )		return;

	m_ExpData.Init();

	m_ExpData.iExpCode = EXP_LEVELUP;
	m_ExpData.iServerCode = nServerCode;
	WriteBaseData( &m_ExpData, pPlayer->GetUserID(), pPlayer->GetCharName() );
	m_ExpData.iOldExp = dwOldExp;
	m_ExpData.iNewExp = dwNewExp;
	m_ExpData.iOldLevel = wOldLevel;
	m_ExpData.iNewLevel = wNewLevel;
	if( !m_LogMng.WriteExp( m_ExpData, m_bWriteText, NULL ) )
		InsertStatusLog( "WriteLevelUp Error" );
}


// 2. 版氰摹 10殿盒 肺弊
void GameLog::WriteDivideExp( Player* pPlayer, int nServerCode, DWORD dwOldExp, DWORD dwNewExp,
							  WORD wOldLevel, WORD wNewLevel, WORD wDivideCount )
{
	if( !IsRun() )		return;

	m_ExpData.Init();
	m_ExpData.iExpCode = EXP_DIVIDECNT;
	m_ExpData.iServerCode = nServerCode;
	WriteBaseData( &m_ExpData, pPlayer->GetUserID(), pPlayer->GetCharName() );
	m_ExpData.iDivideCount = wDivideCount;
	m_ExpData.iOldExp = dwOldExp;
	m_ExpData.iNewExp = dwNewExp;
	m_ExpData.iOldLevel = wOldLevel;
	m_ExpData.iNewLevel = wNewLevel;
	if( !m_LogMng.WriteExp( m_ExpData, m_bWriteText, NULL ) )
		InsertStatusLog( "WriteDivideExp Error" );
}


// 3. 版氰摹 促款
void GameLog::WriteDownExp( Player* pPlayer, int nServerCode, DWORD dwTotalExp, DWORD dwChangeExp,
							WORD wLevel )
{
	if( !IsRun() )		return;

	// 泅犁狼 牢磐其捞胶肺绰 阂啊瓷..
	// 泅 敲饭捞绢狼 傈眉 版氰摹客 促款等 版氰摹甫 夸备窍绰单, 泅犁 牢磊肺绰 阂啊瓷.
	// AddInfo俊 火涝且 版快, 促款等 版氰摹甫 持阑巴牢啊?
	m_ExpData.Init();
	m_ExpData.iExpCode = EXP_DOWN;
	m_ExpData.iServerCode = nServerCode;
	WriteBaseData( &m_ExpData, pPlayer->GetUserID(), pPlayer->GetCharName() );
	m_ExpData.iNewExp = dwTotalExp;
	m_ExpData.iNewLevel = wLevel;

	if( !m_LogMng.WriteExp( m_ExpData, m_bWriteText, "Change Exp = %d", dwChangeExp ) )
		InsertStatusLog( "WriteDownExp Error" );
}


//////////////////////////////////////////////////////////////////////////
// 酒捞袍 肺弊
// 1. 酒捞袍 靛酚 肺弊(滚覆苞 磷绢辑 冻备绰巴苞 阁胶磐 磷咯辑 冻备绰 巴狼 瞒捞?)
// 1. 酒捞袍 靛酚(顶俊 冻崩) 苞 凛扁
void GameLog::WriteItemOwner( Player* pPlayer, int nServerCode, BOOL bPickUp, SCItemSlot* pItemSlot )
{
	if( !IsRun() )		return;

	if( !pPlayer || !pItemSlot )		return;

	m_ItemData.Init();
	if( bPickUp == TRUE )  	m_ItemData.iItemCode = ITEM_PICKUP;  // 凛扁
	else					m_ItemData.iItemCode = ITEM_CAST;	   // 滚府扁

	m_ItemData.iServerCode = nServerCode;
	WriteBaseData( &m_ItemData, pPlayer->GetUserID(), pPlayer->GetCharName() );
	SetItemInfo( &m_ItemData, pItemSlot );
	BOOL bRet = pItemSlot->IsDivine();
	SetPlayerPosInfo( &m_ItemData, pPlayer );

	if( !m_LogMng.WriteItem( m_ItemData, m_bWriteText, "%d, %d", pItemSlot->GetRank(), pItemSlot->GetEnchant() ) )
		InsertStatusLog( "WriteItemOwner Error" );
}

// 2. 牢镁飘 
void GameLog::WriteEnchantResult( Player* pPlayer, int nServerCode, BOOL bSuccess, SCItemSlot* pItemSlot, vector<COMPOSITEMATERIAL> vecMatInfo )
{
	if( !IsRun() )		return;

	m_ItemData.Init();
	if( bSuccess == TRUE)		m_ItemData.iItemCode = ITEM_ENCHANTSUCCESS;
	else						m_ItemData.iItemCode = ITEM_ENCHANTFAIL;
	m_ItemData.iServerCode = nServerCode;

	WriteBaseData( &m_ItemData, pPlayer->GetUserID(), pPlayer->GetCharName() );
	SetItemInfo( &m_ItemData, pItemSlot );

	string strInfo;
	int nSize = (int)vecMatInfo.size();
	for(int i = 0; i < nSize; i++)
	{
		COMPOSITEMATERIAL info = vecMatInfo[i];
		char szInfo[128];
		_snprintf( szInfo, 128, "MATCODE = %d, MATNUM = %d  ",  info.nMaterialCode, info.wCntMaterial );
		strInfo += szInfo;
	}

	if( !m_LogMng.WriteItem( m_ItemData, m_bWriteText, strInfo.c_str() ) )
		InsertStatusLog( "WriteEnchantResult Error" );
}

// 3. NPC客狼 芭贰
void GameLog::WriteItemTradeWithNPC( Player* pPlayer, int nServerCode, BOOL bSell, SCItemSlot* pItemSlot, DWORD dwMoney )
{
	if( !IsRun() )		return;

	m_ItemData.Init();
	if( bSell == TRUE )  	m_ItemData.iItemCode = ITEM_SELLNPC;	// NPC俊霸 迫扁
	else					m_ItemData.iItemCode = ITEM_BUYNPC;	// NPC俊霸 荤扁

	m_ItemData.iServerCode = nServerCode;
	WriteBaseData( &m_ItemData, pPlayer->GetUserID(), pPlayer->GetCharName() );
	SetItemInfo( &m_ItemData, pItemSlot );

	if( !m_LogMng.WriteItem( m_ItemData, m_bWriteText, " %d, %d, Money = %d", pItemSlot->GetRank(), pItemSlot->GetEnchant(), dwMoney ) )
		InsertStatusLog( "WriteItemTradeWithNPC Error" );
}


void GameLog::WriteItemTradeWithPlayer( Player* pPlayer1, int nServerCode, BOOL bGive, SCItemSlot* pItemSlot, Player* pPlayer2 )
{
	if( !IsRun() )		return;

	m_ItemData.Init();
	if( bGive == TRUE )  	m_ItemData.iItemCode = ITEM_GIVE;		// 惑措 敲饭捞绢俊霸 林扁
	else					m_ItemData.iItemCode = ITEM_RECEIVE;	// 惑措俊霸辑 罐扁
	m_ItemData.iServerCode = nServerCode;
	WriteBaseData( &m_ItemData, pPlayer1->GetUserID(), pPlayer1->GetCharName() );
	SetItemInfo( &m_ItemData, pItemSlot );
	SetOtherPlayerInfo( &m_ItemData, pPlayer2 );

	if( !m_LogMng.WriteItem( m_ItemData, m_bWriteText, "%d, %d", pItemSlot->GetRank(), pItemSlot->GetEnchant() ) )
		InsertStatusLog( "WriteItemTradeWithPlayer Error" );
}

// 5. 捣 俺牢芭贰
void GameLog::WriteMoneyTradeWithPlayer( Player* pPlayer1, int nServerCode, BOOL bGive, DWORD dwMoney, Player* pPlayer2 )
{
	if( !IsRun() )		return;

	m_ItemData.Init();
	if( bGive == TRUE )			m_ItemData.iItemCode = ITEM_MONEY;		// 惑措 敲饭捞绢俊霸 林扁
	else						m_ItemData.iItemCode = ITEM_MONEY;		// 惑措俊霸辑 罐扁

	m_ItemData.iServerCode = nServerCode;
	WriteBaseData( &m_ItemData, pPlayer1->GetUserID(), pPlayer1->GetCharName() );
	SetOtherPlayerInfo( &m_ItemData, pPlayer2 );

	BOOL bRet = FALSE;

	if( bGive == TRUE )  //Player1捞 Player2俊霸 捣阑 dwMoney父怒 林促.
		bRet = m_LogMng.WriteItem( m_ItemData, m_bWriteText, "Give Money  = %d", dwMoney );
	else				//Player1捞 Player2俊霸辑 捣阑 dwMoney父怒 罐促.
		bRet = m_LogMng.WriteItem( m_ItemData, m_bWriteText, "Receive Money  = %d", dwMoney );

	if( !bRet )
		InsertStatusLog( "WriteMoneyTradeWithPlayer Error" );
}

// 6. 俺牢惑痢 芭贰
void GameLog::WriteItemVendorWithPlayer( Player* pPlayer1, int nServerCode, BOOL bSell, SCItemSlot* pItemSlot,  DWORD dwMoney, Player* pPlayer2 )
{
	if( !IsRun() )		return;

	m_ItemData.Init();
	if( bSell == TRUE )  	m_ItemData.iItemCode = ITEM_SELLPC;	// 俺牢伙沥俊辑 拱扒 迫扁
	else					m_ItemData.iItemCode = ITEM_BUYPC;	// 俺牢惑痢俊辑 拱扒 荤扁
	m_ItemData.iServerCode = nServerCode;
	WriteBaseData( &m_ItemData, pPlayer1->GetUserID(), pPlayer1->GetCharName() );
	SetItemInfo( &m_ItemData, pItemSlot );
	SetOtherPlayerInfo( &m_ItemData, pPlayer2 ); 

	BOOL bRet = FALSE;

	if( bSell == TRUE )
		bRet = m_LogMng.WriteItem( m_ItemData, m_bWriteText, "%d, %d, RECEIVE MONEY = %d", pItemSlot->GetRank(), pItemSlot->GetEnchant(), dwMoney );
	else
		bRet = m_LogMng.WriteItem( m_ItemData, m_bWriteText, "%d, %d, PAY MONEY = %d", pItemSlot->GetRank(), pItemSlot->GetEnchant(), dwMoney );

	if( !bRet )
		InsertStatusLog( "WriteItemVendorWithPlayer Error" );

}

// 7. 酒捞袍 珐农诀
void GameLog::WriteItemRankUpResult( Player* pPlayer, int nServerCode, SCItemSlot* pItemSlot, DWORD dwMoney, BOOL bCreateSocket )
{
	if( !IsRun() )		return;

	m_ItemData.Init();
	m_ItemData.iItemCode = ITEM_RANKUPSUCCESS;	// 珐农诀 己傍
	m_ItemData.iServerCode = nServerCode;
	WriteBaseData( &m_ItemData, pPlayer->GetUserID(), pPlayer->GetCharName() );
	SetItemInfo( &m_ItemData, pItemSlot );

	BOOL bRet = FALSE;
	if( bCreateSocket )
		bRet = m_LogMng.WriteItem( m_ItemData, m_bWriteText, "%d, %d, 家南 积己 凳", pItemSlot->GetRank(), pItemSlot->GetEnchant() );
	else
		bRet = m_LogMng.WriteItem( m_ItemData, m_bWriteText, "%d, %d, 家南 积己 救凳", pItemSlot->GetRank(), pItemSlot->GetEnchant() );

	if( !bRet )
		InsertStatusLog( "WriteItemRankUpResult Error" );

}

// 8. 芒绊俊 嘎扁扁 / 茫扁
// dwMoney : 芒绊 焊包丰
void GameLog::WriteItemMoveInWareHouse( Player* pPlayer, int nServerCode, BOOL bKeep, SCItemSlot* pItemSlot )
{
	if( !IsRun() )		return;

	m_ItemData.Init();

	if( bKeep == TRUE )  	m_ItemData.iItemCode = ITEM_PUTSTORAGE;	// 芒绊俊 焊包
	else					m_ItemData.iItemCode = ITEM_GETSTORAGE;	// 芒绊俊辑 波郴扁
	m_ItemData.iServerCode = nServerCode;
	WriteBaseData( &m_ItemData, pPlayer->GetUserID(), pPlayer->GetCharName() );
	SetItemInfo( &m_ItemData, pItemSlot );

	if( !m_LogMng.WriteItem( m_ItemData, m_bWriteText, "%d, %d", pItemSlot->GetRank(), pItemSlot->GetEnchant() ) )
		InsertStatusLog( "WriteItemMoveInWareHouse Error" );
}

// 9. 牢镁飘 矫档
void GameLog::WriteEnchantStart( Player* pPlayer, int nServerCode, vector<COMPOSITEMATERIAL> vecMatInfo )
{
	if( !IsRun() )		return;

	m_ItemData.Init();
	m_ItemData.iItemCode = ITEM_ENCHANTTRY;
	m_ItemData.iServerCode = nServerCode;
	WriteBaseData( &m_ItemData, pPlayer->GetUserID(), pPlayer->GetCharName() );

	string strInfo;
	int nSize = (int)vecMatInfo.size();
	for(int i = 0; i < nSize; i++)
	{
		COMPOSITEMATERIAL info = vecMatInfo[i];
		char szInfo[128];
		_snprintf( szInfo, 128, "MATCODE = %d, MATNUM = %d  ",  info.nMaterialCode, info.wCntMaterial );
		strInfo += szInfo;
	}

	if( !m_LogMng.WriteItem( m_ItemData, m_bWriteText, strInfo.c_str() ) )
		InsertStatusLog( "WriteEnchantStart Error" );
}

// 10. 阁胶磐 酒捞袍 靛而
void GameLog::WriteMonsterItemDrop( int nServerCode, SCItemSlot* pItemSlot, DWORD dwMonsterCode, DWORD dwMonsterLevel, int nMapCode,
									int nPosX, int nPosY, int nPosZ )
{
	if( !IsRun() )		return;

	m_ItemData.Init();
	m_ItemData.iItemCode = ITEM_MONSTER_ITEMDROP;
	m_ItemData.iServerCode = nServerCode;
	SetItemInfo( &m_ItemData, pItemSlot );
	m_ItemData.siMapCode = nMapCode;
	m_ItemData.siMapX = nPosX;
	m_ItemData.siMapY = nPosY;
	m_ItemData.siMapZ = nPosZ;
	if( !m_LogMng.WriteItem( m_ItemData, m_bWriteText, "%d, %d, MONSTER CODE = %d, LEVEL = %d", 
		pItemSlot->GetRank(), pItemSlot->GetEnchant(), dwMonsterCode, dwMonsterLevel ) )
		InsertStatusLog( "WriteMonsterItemDrop Error" );
}

// 11. 酒捞袍 俺牢芭贰 夸没 / 铰牢 / 夸没芭何
// nType (0 : 芭贰 夸没, 1 : 铰牢, 2 : 芭例)
void GameLog::WriteItemTradeStatus( Player* pPlayer1, int nServerCode, Player* pPlayer2, int nType )
{
	if( !IsRun() )		return;

	m_ItemData.Init();
	if( nType == 0 )				// 酒捞袍 芭贰 夸没
		m_ItemData.iItemCode = ITEM_REQUEST;
	else if( nType == 1 )			// 铰牢
		m_ItemData.iItemCode = ITEM_ACCEPT;
	else if( nType == 2 )			// 芭例
		m_ItemData.iItemCode = ITEM_REJECT;
	else
		return;

	m_ItemData.iServerCode = nServerCode;
	WriteBaseData( &m_ItemData, pPlayer1->GetUserID(), pPlayer1->GetCharName() );
	SetOtherPlayerInfo( &m_ItemData, pPlayer2 );
	if( !m_LogMng.WriteItem( m_ItemData, m_bWriteText, NULL ) )
		InsertStatusLog( "WriteItemTradeStatus Error" );

}

// 12. 俺牢惑痢 俺汲/企尖
void GameLog::WriteItemVendorStatus( Player* pPlayer, int nServerCode, BOOL bOpen )
{
	if( !IsRun() )		return;

	m_ItemData.Init();
	if( bOpen == TRUE )		m_ItemData.iItemCode = ITEM_NEWPC;
	else					m_ItemData.iItemCode = ITEM_DELPC;

	m_ItemData.iServerCode = nServerCode;
	WriteBaseData( &m_ItemData, pPlayer->GetUserID(), pPlayer->GetCharName() );
	SetPlayerPosInfo( &m_ItemData, pPlayer );
	if( !m_LogMng.WriteItem( m_ItemData, m_bWriteText, "Money = %d", pPlayer->GetMoney() ) )
		InsertStatusLog( "WriteItemVendorStatus Error" );

⌨️ 快捷键说明

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