📄 gamelog.cpp
字号:
#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 + -