Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,163 @@
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
#include <Network/Winsock/SocketFactory.h>
|
||||
#include <Network/Packet/PacketCommand.h>
|
||||
#include <Network/Packet/PacketStruct/ServerPacket.h>
|
||||
#include <Network/Dispatch/GameClient/GameClientDispatch.h>
|
||||
|
||||
#include <Utility/Setup/ServerSetup.h>
|
||||
|
||||
#include "GuildPacketParse.h"
|
||||
#include "CastlePacketParse.h"
|
||||
#include "DBAgentPacketParse.h"
|
||||
#include "DBAgentDispatch.h"
|
||||
|
||||
|
||||
enum
|
||||
{
|
||||
// edith 2008.03.04 CDBAgentDispatch <20><><EFBFBD><EFBFBD>
|
||||
MAX_DBAGENT_PACKET_DISPATCH_PER_PULSE = 200
|
||||
};
|
||||
|
||||
CSingleDispatch& CDBAgentDispatch::GetDispatchTable()
|
||||
{
|
||||
static CSingleDispatch singleDispatch;
|
||||
return singleDispatch;
|
||||
}
|
||||
|
||||
|
||||
CDBAgentDispatch::CDBAgentDispatch(CSession& Session)
|
||||
: CRylServerDispatch(Session, MAX_DBAGENT_PACKET_DISPATCH_PER_PULSE)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
CDBAgentDispatch::~CDBAgentDispatch()
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
void CDBAgentDispatch::Connected()
|
||||
{
|
||||
char* lpBuffer = m_SendStream.GetBuffer(sizeof(PktSL));
|
||||
if(NULL != lpBuffer)
|
||||
{
|
||||
PktSL* lpPktSL = reinterpret_cast<PktSL*>(lpBuffer);
|
||||
|
||||
const int MAX_ADDRESS = 128;
|
||||
char szAddress[MAX_ADDRESS];
|
||||
|
||||
CTCPFactory tcpFactory;
|
||||
tcpFactory.GetNetworkInfo(szAddress, MAX_ADDRESS);
|
||||
|
||||
lpPktSL->m_Address.S_un.S_addr = inet_addr(szAddress);
|
||||
lpPktSL->m_dwServerID = CServerSetup::GetInstance().GetServerID();
|
||||
|
||||
if(m_SendStream.WrapHeader(sizeof(PktSL), CmdSysServerLogin, 0, 0))
|
||||
{
|
||||
INFLOG2(g_Log, "<EFBFBD>߰輼<EFBFBD><EFBFBD>(0x%p)<29><> <20><><EFBFBD><EFBFBD>(0x%08x)<29><> <20>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD>Ŷ<EFBFBD><C5B6> <20><><EFBFBD><EFBFBD>",
|
||||
this, CServerSetup::GetInstance().GetServerID());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void CDBAgentDispatch::Disconnected()
|
||||
{
|
||||
GetDispatchTable().RemoveDispatch(this);
|
||||
}
|
||||
|
||||
|
||||
bool CDBAgentDispatch::DispatchPacket(PktBase* lpPktBase)
|
||||
{
|
||||
bool bResult = false;
|
||||
|
||||
switch (lpPktBase->GetCmd())
|
||||
{
|
||||
case CmdUserKill: bResult = DBAgentPacketParse::ParseUserKill(*this, lpPktBase); break;
|
||||
case CmdDBUpdateData: bResult = DBAgentPacketParse::ParseUpdateDBData(*this, lpPktBase); break;
|
||||
case CmdAgentParty: bResult = DBAgentPacketParse::ParseAgentParty(*this, lpPktBase); break;
|
||||
case CmdAgentZone: bResult = DBAgentPacketParse::ParseAgentZone(*this, lpPktBase); break;
|
||||
case CmdSysServerLogin: bResult = DBAgentPacketParse::ParseSysServerLogin(*this, lpPktBase); break;
|
||||
case CmdSysServerVerUpdate: bResult = DBAgentPacketParse::ParseSysServerVerUpdate(*this, lpPktBase); break;
|
||||
case CmdSysChannelUpdate: bResult = DBAgentPacketParse::ParseSysChannelUpdate(*this, lpPktBase); break;
|
||||
case CmdDepositUpdate: bResult = DBAgentPacketParse::ParseDepositUpdate(*this, lpPktBase); break;
|
||||
case CmdDeposit: bResult = DBAgentPacketParse::ParseDepositCmd(*this, lpPktBase); break;
|
||||
case CmdFriendDB: bResult = DBAgentPacketParse::ParseFriendList(*this, lpPktBase); break;
|
||||
case CmdQuestDB: bResult = DBAgentPacketParse::ParseQuestDB(*this, lpPktBase); break;
|
||||
case CmdConfigInfoDB: bResult = DBAgentPacketParse::ParseConfigInfoDB(*this, lpPktBase); break;
|
||||
case CmdRankingInfo: bResult = DBAgentPacketParse::ParseSysRankingUpdate(*this, lpPktBase); break;
|
||||
case CmdBillingTimeoutNotify: bResult = DBAgentPacketParse::ParseBillingTimeoutNotify(*this, lpPktBase); break;
|
||||
case CmdBillingTimeCheckNotify: bResult = DBAgentPacketParse::ParseBillingTimeCheckNotify(*this, lpPktBase); break;
|
||||
case CmdEventDropItem: bResult = DBAgentPacketParse::ParseEventDropItem(*this, lpPktBase); break;
|
||||
case CmdCharUseCashItem: bResult = DBAgentPacketParse::ParseCharUseCashItem(*this, lpPktBase); break;
|
||||
case CmdExtraEvent: bResult = DBAgentPacketParse::ParseExtraEvent(*this, lpPktBase); break;
|
||||
|
||||
case CmdCreateGuild: bResult = DBAgentPacketParse::ParseCreateGuild(*this, lpPktBase); break;
|
||||
case CmdGuildCmd: bResult = DBAgentPacketParse::ParseGuildCmd(*this, lpPktBase); break;
|
||||
case CmdGuildMark: bResult = DBAgentPacketParse::ParseGuildMark(*this, lpPktBase); break;
|
||||
case CmdGuildLevel: bResult = DBAgentPacketParse::ParseGuildLevel(*this, lpPktBase); break;
|
||||
case CmdGuildRelation: bResult = DBAgentPacketParse::ParseGuildRelation(*this, lpPktBase); break;
|
||||
case CmdGuildInclination: bResult = DBAgentPacketParse::ParseGuildInclination(*this, lpPktBase); break;
|
||||
case CmdGuildRight: bResult = DBAgentPacketParse::ParseGuildRight(*this, lpPktBase); break;
|
||||
case CmdGuildDB: bResult = DBAgentPacketParse::ParseGuildDB(*this, lpPktBase); break;
|
||||
case CmdGuildSafe: bResult = DBAgentPacketParse::ParseGuildSafe(*this, lpPktBase); break;
|
||||
case CmdGuildMemberInfoUpdate: bResult = DBAgentPacketParse::ParseGuildMemberInfoUpdate(*this, lpPktBase); break;
|
||||
case CmdGuildMemberFameUpdate: bResult = DBAgentPacketParse::ParseGuildMemberFameUpdate(*this, lpPktBase); break;
|
||||
case CmdGuildMemberGoldUpdate: bResult = DBAgentPacketParse::ParseGuildMemberGoldUpdate(*this, lpPktBase); break;
|
||||
|
||||
case CmdCastleInfo: bResult = DBAgentPacketParse::ParseCastleInfo(*this, lpPktBase); break;
|
||||
case CmdCampInfo: bResult = DBAgentPacketParse::ParseCampInfo(*this, lpPktBase); break;
|
||||
case CmdFertilityInfo: bResult = DBAgentPacketParse::ParseFertilityInfo(*this, lpPktBase); break;
|
||||
case CmdWorldWeaponInfo: bResult = DBAgentPacketParse::ParseWorldWeaponInfo(*this, lpPktBase); break;
|
||||
case CmdCreateCamp: bResult = DBAgentPacketParse::ParseCreateCamp(*this, lpPktBase); break;
|
||||
case CmdCreateSiegeArms: bResult = DBAgentPacketParse::ParseCreateSiegeArms(*this, lpPktBase); break;
|
||||
case CmdCastleCmd: bResult = DBAgentPacketParse::ParseCastleCmd(*this, lpPktBase); break;
|
||||
case CmdCampCmd: bResult = DBAgentPacketParse::ParseCampCmd(*this, lpPktBase); break;
|
||||
case CmdSiegeArmsCmd: bResult = DBAgentPacketParse::ParseSiegeArmsCmd(*this, lpPktBase); break;
|
||||
case CmdCastleRight: bResult = DBAgentPacketParse::ParseCastleRight(*this, lpPktBase); break;
|
||||
case CmdCampRight: bResult = DBAgentPacketParse::ParseCampRight(*this, lpPktBase); break;
|
||||
case CmdGameTimeInfo: bResult = DBAgentPacketParse::ParseGameTimeInfo(*this, lpPktBase); break;
|
||||
case CmdCampMessage: bResult = DBAgentPacketParse::ParseCampMessage(*this, lpPktBase); break;
|
||||
case CmdProcessMining: bResult = DBAgentPacketParse::ParseProcessMining(*this, lpPktBase); break;
|
||||
|
||||
case CmdCharAdminCmd: bResult = DBAgentPacketParse::ParseCharAdminCmd(*this, lpPktBase); break;
|
||||
|
||||
case CmdGiveItemToTempInven: bResult = DBAgentPacketParse::ParseGiveItemToTempInven(*this, lpPktBase); break;
|
||||
case CmdCharNameChange: bResult = DBAgentPacketParse::ParseCharNameChangeAck(*this, lpPktBase); break;
|
||||
|
||||
case CmdCastleTaxMove: bResult = DBAgentPacketParse::ParseCastleTaxMove(*this, lpPktBase); break;
|
||||
case CmdCastleSiegeCount: bResult = DBAgentPacketParse::ParseCastleSiegeCount(*this, lpPktBase); break;
|
||||
|
||||
case CmdWarOnOff: bResult = DBAgentPacketParse::ParseWarOnOff(*this, lpPktBase); break;
|
||||
case CmdRealmPoint: bResult = DBAgentPacketParse::ParseRealmPoint(*this, lpPktBase); break;
|
||||
case CmdStatueCmd: bResult = DBAgentPacketParse::ParseStatueCmd(*this, lpPktBase); break;
|
||||
|
||||
case CmdSaveEnemy: bResult = DBAgentPacketParse::ParseSaveEnemy(*this, lpPktBase); break;
|
||||
case CmdKeyInfo: bResult = DBAgentPacketParse::ParseKeyInfo(*this, lpPktBase); break;
|
||||
|
||||
case CmdSysServerLogout:
|
||||
bResult = true;
|
||||
CloseSession();
|
||||
break;
|
||||
|
||||
default:
|
||||
bResult = true;
|
||||
ERRLOG2(g_Log, "DP:0x%p/Cmd:0x%02x/Unknown Agentpacket",
|
||||
this, lpPktBase->GetCmd());
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
if(!bResult)
|
||||
{
|
||||
ERRLOG2(g_Log, "DP:0x%p/Cmd:0x%02x/Agentpacket Process failed",
|
||||
this, lpPktBase->GetCmd());
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
Reference in New Issue
Block a user