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:
2025-11-29 20:17:20 +09:00
parent 5d3cd64a25
commit dd97ddec92
11602 changed files with 1446576 additions and 0 deletions

View File

@@ -0,0 +1,349 @@
#include "stdafx.h"
#include "Ryl_AgentServerParseData.h"
#include <Character/ModifyCharacter.h>
#include <Stream/Buffer/Buffer.h>
#include <Stream/Buffer/BufferFactory.h>
#include <Item/ItemFactory.h>
#include <Log/ServerLog.h>
#include <Network/Buffer/Ryl_CumulateBuffer.h>
#include <Network/Protocol/Ryl_AdminMgrProtocol.h>
#include <Network/Session/Session.h>
#include <Network/XORCrypt/XORCrypt.h>
#include <Network/Packet/WrapPacket.h>
#include <Network/Packet/PacketStruct/CharLoginOutPacketStruct.h>
bool CAgentServerParseData::UpdateCharacter(CModifyCharacter* lpChar, unsigned __int64 dwSerial,
unsigned long dwUID, unsigned long dwCID, unsigned long dwRequestKey)
{
SendInfo SetData;
SetData.m_dwSerial = dwSerial;
SetData.m_dwUID = dwUID;
SetData.m_dwCID = dwCID;
SetData.m_dwRequestKey = dwRequestKey;
if (lpChar->m_byChangedInfo & CModifyCharacter::ON_BASIC)
{
SEND_CHAR_BASIC_DATA(lpChar, SetData);
lpChar->OffChangedInfo(CModifyCharacter::OFF_BASIC);
}
if (lpChar->m_byChangedInfo & CModifyCharacter::ON_EXTRA)
{
SEND_CHAR_EXTRA_DATA(lpChar, SetData);
lpChar->OffChangedInfo(CModifyCharacter::OFF_EXTRA);
}
if (lpChar->m_byChangedInfo & CModifyCharacter::ON_FRIEND)
{
SEND_CHAR_FRIEND_DATA(lpChar, SetData);
lpChar->OffChangedInfo(CModifyCharacter::OFF_FRIEND);
}
if (lpChar->m_byChangedInfo & CModifyCharacter::ON_BAN)
{
SEND_CHAR_BAN_DATA(lpChar, SetData);
lpChar->OffChangedInfo(CModifyCharacter::OFF_BAN);
}
if (lpChar->m_byChangedInfo & CModifyCharacter::ON_STROE12)
{
SEND_STORE_12_DATA(lpChar, SetData);
lpChar->OffChangedInfo(CModifyCharacter::OFF_STORE12);
}
if (lpChar->m_byChangedInfo & CModifyCharacter::ON_STORE34)
{
SEND_STORE_34_DATA(lpChar, SetData);
lpChar->OffChangedInfo(CModifyCharacter::OFF_STORE34);
}
if (false == SEND_FINISH_UPDATE_DATA(SetData, lpChar->GetOldServerGroupID()))
{
ERRLOG0(g_Log, "SEND_FINISH_UPDATE_DATA <20><><EFBFBD><EFBFBD>");
return false;
}
return true;
}
bool CAgentServerParseData::SEND_FINISH_UPDATE_DATA(CAgentServerParseData::SendInfo& SetData,
unsigned char cOldServerGroupID)
{
CBuffer* lpBuffer =
CREATE_BUFFER(m_lpSession->GetPolicy().GetBufferFactory(), sizeof(PktAgentServer::PktAdminToolSetData));
PktAgentServer::PktAdminToolSetData* lpPktSetData =
reinterpret_cast<PktAgentServer::PktAdminToolSetData*>(lpBuffer->begin());
lpPktSetData->m_dwSerial = SetData.m_dwSerial;
lpPktSetData->m_dwUID = SetData.m_dwUID;
lpPktSetData->m_dwCID = SetData.m_dwCID;
lpPktSetData->m_dwRequestKey = SetData.m_dwRequestKey;
lpPktSetData->m_cType = PktAgentServer::PktAdminToolSetData::FINISH_UPDATE_DATA;
lpPktSetData->m_cOldServerGroupID = cOldServerGroupID;
PacketWrap::WrapHeader(lpBuffer,
sizeof(PktAgentServer::PktAdminToolSetData), PktAgentServer::PktCMD::CmdAdminToolSetData, 0, 0);
if(!m_lpSession->SendPending(lpBuffer))
{
ERRLOG0(g_Log, "SEND_FINISH_UPDATE_DATA <20><>Ŷ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>");
return false;
}
return true;
}
bool CAgentServerParseData::SEND_CHAR_BASIC_DATA(CModifyCharacter* lpChar,
CAgentServerParseData::SendInfo& SetData)
{
unsigned short usBufferSize =
sizeof(PktAgentServer::PktAdminToolSetData) +
sizeof(unsigned short) * DBUpdateData::MAX_UPDATE_DB + DBUpdateData::MAX_DBUPDATE_SIZE;
CCumulateBuffer cBuffer(usBufferSize + 10, m_lpSession);
char* In_BasicPos = cBuffer.GetBuffer(usBufferSize);
PktAgentServer::PktAdminToolSetData* lpPktSetData =
reinterpret_cast<PktAgentServer::PktAdminToolSetData*>(In_BasicPos);
char* In_DataBuffer = reinterpret_cast<char*>(lpPktSetData + 1);
unsigned short* usSizeArray = reinterpret_cast<unsigned short*>(In_DataBuffer);
int nBufferSize = DBUpdateData::MAX_DBUPDATE_SIZE;
char* In_BasicInfo = static_cast<char*>(In_DataBuffer + sizeof(unsigned short) * DBUpdateData::MAX_UPDATE_DB);
lpPktSetData->m_dwSerial = SetData.m_dwSerial;
lpPktSetData->m_dwUID = SetData.m_dwUID;
lpPktSetData->m_dwCID = SetData.m_dwCID;
lpPktSetData->m_dwRequestKey = SetData.m_dwRequestKey;
lpPktSetData->m_cType = PktAgentServer::PktAdminToolSetData::CHAR_BASIC_DATA;
lpPktSetData->m_cOldServerGroupID = lpChar->GetOldServerGroupID();
lpChar->GetCharacterInfo(In_BasicInfo, &nBufferSize, usSizeArray);
unsigned int nPktLength = sizeof(PktAgentServer::PktAdminToolSetData) +
sizeof(unsigned short) * DBUpdateData::MAX_UPDATE_DB + nBufferSize;
cBuffer.ResizeLength(nPktLength); // <20><><EFBFBD><EFBFBD> <20><>Ŷ<EFBFBD>϶<EFBFBD> <20><><EFBFBD><EFBFBD>!
PacketWrap::WrapHeader(In_BasicPos, nPktLength, PktAgentServer::PktCMD::CmdAdminToolSetData, 0, 0);
return true;
}
bool CAgentServerParseData::SEND_CHAR_EXTRA_DATA(CModifyCharacter* lpChar,
CAgentServerParseData::SendInfo& SetData)
{
unsigned short usBufferSize = sizeof(CHAR_INFOEX) + sizeof(QUEST) + sizeof(HISTORY) +
sizeof(CONFIG) + sizeof(STORE_INFO) + sizeof(PktAgentServer::PktAdminToolSetData);
CCumulateBuffer cBuffer(usBufferSize, m_lpSession);
char* DataBuffer = cBuffer.GetBuffer(usBufferSize);
PktAgentServer::PktAdminToolSetData* lpPktSetData =
reinterpret_cast<PktAgentServer::PktAdminToolSetData*>(DataBuffer);
char* In_DataBuffer = reinterpret_cast<char*>(lpPktSetData + 1);
CModifyCharacter::CHAR_EXTRA_DATA& ExtraData = lpChar->GetExtraData();
CopyMemory(In_DataBuffer, &ExtraData.m_CharInfoEX, sizeof(CHAR_INFOEX));
In_DataBuffer += sizeof(CHAR_INFOEX);
CopyMemory(In_DataBuffer, &ExtraData.m_Quest, sizeof(QUEST));
In_DataBuffer += sizeof(QUEST);
CopyMemory(In_DataBuffer, &ExtraData.m_History, sizeof(HISTORY));
In_DataBuffer += sizeof(HISTORY);
CopyMemory(In_DataBuffer, &ExtraData.m_Config, sizeof(CONFIG));
In_DataBuffer += sizeof(CONFIG);
lpPktSetData->m_dwSerial = SetData.m_dwSerial;
lpPktSetData->m_dwUID = SetData.m_dwUID;
lpPktSetData->m_dwCID = SetData.m_dwCID;
lpPktSetData->m_dwRequestKey = SetData.m_dwRequestKey;
lpPktSetData->m_cType = PktAgentServer::PktAdminToolSetData::CHAR_EXTRA_DATA;
lpPktSetData->m_cOldServerGroupID = lpChar->GetOldServerGroupID();
LPSTORE_INFO lpStoreInfo = reinterpret_cast<LPSTORE_INFO>(In_DataBuffer);
Item::CDepositContainer& DepositContainer = lpChar->GetDeposit();
memcpy(lpStoreInfo->Password, DepositContainer.GetPassword(), 4);
lpStoreInfo->Password[4] = 0;
lpStoreInfo->Flag = DepositContainer.GetTabFlag();
lpStoreInfo->Gold = DepositContainer.GetGold();
PacketWrap::WrapHeader(DataBuffer, usBufferSize, PktAgentServer::PktCMD::CmdAdminToolSetData, 0, 0);
return true;
}
bool CAgentServerParseData::SEND_CHAR_FRIEND_DATA(CModifyCharacter* lpChar,
CAgentServerParseData::SendInfo& SetData)
{
CFriendList& FriendList = lpChar->GetFriendList();
unsigned short usBufferSize =
sizeof(FriendInfo) * CFriendList::MAX_FRIENDS_NUM + sizeof(PktAgentServer::PktAdminToolSetData);
CCumulateBuffer cBuffer(usBufferSize + 10, m_lpSession);
char* lpDataBuffer = cBuffer.GetBuffer(usBufferSize);
PktAgentServer::PktAdminToolSetData* lpPktSetData =
reinterpret_cast<PktAgentServer::PktAdminToolSetData*>(lpDataBuffer);
char* In_DataBuffer = reinterpret_cast<char*>(lpPktSetData + 1);
lpPktSetData->m_dwSerial = SetData.m_dwSerial;
lpPktSetData->m_dwUID = SetData.m_dwUID;
lpPktSetData->m_dwCID = SetData.m_dwCID;
lpPktSetData->m_dwRequestKey = SetData.m_dwRequestKey;
lpPktSetData->m_cType = PktAgentServer::PktAdminToolSetData::CHAR_FRIEND_DATA;
lpPktSetData->m_cOldServerGroupID = lpChar->GetOldServerGroupID();
unsigned long nBufferSize = sizeof(FriendInfo) * CFriendList::MAX_FRIENDS_NUM;
FriendList.SerializeOut(In_DataBuffer, nBufferSize);
cBuffer.ResizeLength(sizeof(PktAgentServer::PktAdminToolSetData) + nBufferSize);
PacketWrap::WrapHeader(lpDataBuffer,
(sizeof(PktAgentServer::PktAdminToolSetData) + (unsigned short)nBufferSize),
PktAgentServer::PktCMD::CmdAdminToolSetData, 0, 0);
return true;
}
bool CAgentServerParseData::SEND_CHAR_BAN_DATA(CModifyCharacter* lpChar,
CAgentServerParseData::SendInfo& SetData)
{
CBanList& BanList = lpChar->GetBanList();
unsigned short usBufferSize =
sizeof(BanInfo) * CBanList::MAX_BAN_NUM + sizeof(PktAgentServer::PktAdminToolSetData);
CCumulateBuffer cBuffer(usBufferSize + 10, m_lpSession);
char* lpDataBuffer = cBuffer.GetBuffer(usBufferSize);
PktAgentServer::PktAdminToolSetData* lpPktSetData =
reinterpret_cast<PktAgentServer::PktAdminToolSetData*>(lpDataBuffer);
char* In_DataBuffer = reinterpret_cast<char*>(lpPktSetData + 1);
lpPktSetData->m_dwSerial = SetData.m_dwSerial;
lpPktSetData->m_dwUID = SetData.m_dwUID;
lpPktSetData->m_dwCID = SetData.m_dwCID;
lpPktSetData->m_dwRequestKey = SetData.m_dwRequestKey;
lpPktSetData->m_cType = PktAgentServer::PktAdminToolSetData::CHAR_BAN_DATA;
lpPktSetData->m_cOldServerGroupID = lpChar->GetOldServerGroupID();
unsigned long nBufferSize = sizeof(BanInfo) * CBanList::MAX_BAN_NUM;
BanList.SerializeOut(In_DataBuffer, nBufferSize);
cBuffer.ResizeLength(sizeof(PktAgentServer::PktAdminToolSetData) + nBufferSize);
PacketWrap::WrapHeader(lpDataBuffer,
(sizeof(PktAgentServer::PktAdminToolSetData) + (unsigned short)nBufferSize),
PktAgentServer::PktCMD::CmdAdminToolSetData, 0, 0);
return true;
}
bool CAgentServerParseData::SEND_STORE_12_DATA(CModifyCharacter* lpChar, CAgentServerParseData::SendInfo& SetData)
{
unsigned short usBufferSize = sizeof(STORE) + sizeof(PktAgentServer::PktAdminToolSetData);
CCumulateBuffer cBuffer(usBufferSize + 10, m_lpSession);
char* lpDataBuffer = cBuffer.GetBuffer(usBufferSize);
PktAgentServer::PktAdminToolSetData* lpPktSetData =
reinterpret_cast<PktAgentServer::PktAdminToolSetData*>(lpDataBuffer);
char* In_DataBuffer = reinterpret_cast<char*>(lpPktSetData + 1);
Item::CDepositContainer& DepositContainer = lpChar->GetDeposit();
LPSTORE lpStore = reinterpret_cast<LPSTORE>(In_DataBuffer);
const Item::CItemContainer* lpContainer0 = DepositContainer.GetTab(0);
const Item::CItemContainer* lpContainer1 = DepositContainer.GetTab(1);
ZeroMemory(lpDataBuffer, usBufferSize);
lpPktSetData->m_dwSerial = SetData.m_dwSerial;
lpPktSetData->m_dwUID = SetData.m_dwUID;
lpPktSetData->m_dwCID = SetData.m_dwCID;
lpPktSetData->m_dwRequestKey = SetData.m_dwRequestKey;
lpPktSetData->m_cType = PktAgentServer::PktAdminToolSetData::STORE_12_DATA;
lpPktSetData->m_cOldServerGroupID = lpChar->GetOldServerGroupID();
if (NULL != lpContainer0 && NULL != lpContainer1)
{
lpStore->dwSize = STORE::MAX_STORE_SIZE;
if (lpContainer0->SerializeOut(lpStore->Data, lpStore->dwSize))
{
unsigned long dwContainer0Size = lpStore->dwSize;
lpStore->dwSize = STORE::MAX_STORE_SIZE - dwContainer0Size;
if (lpContainer1->SerializeOut(lpStore->Data + dwContainer0Size, lpStore->dwSize))
{
lpStore->dwSize += dwContainer0Size;
cBuffer.ResizeLength(usBufferSize);
PacketWrap::WrapHeader(lpDataBuffer,
usBufferSize, PktAgentServer::PktCMD::CmdAdminToolSetData, 0, 0);
return true;
}
}
}
cBuffer.ResizeLength(0);
return false;
}
bool CAgentServerParseData::SEND_STORE_34_DATA(CModifyCharacter* lpChar,
CAgentServerParseData::SendInfo& SetData)
{
unsigned short usBufferSize = sizeof(STORE) + sizeof(PktAgentServer::PktAdminToolSetData);
CCumulateBuffer cBuffer(usBufferSize + 10, m_lpSession);
char* lpDataBuffer = cBuffer.GetBuffer(usBufferSize);
PktAgentServer::PktAdminToolSetData* lpPktSetData =
reinterpret_cast<PktAgentServer::PktAdminToolSetData*>(lpDataBuffer);
char* In_DataBuffer = reinterpret_cast<char*>(lpPktSetData + 1);
Item::CDepositContainer& DepositContainer = lpChar->GetDeposit();
LPSTORE lpStore = reinterpret_cast<LPSTORE>(In_DataBuffer);
const Item::CItemContainer* lpContainer0 = DepositContainer.GetTab(2);
const Item::CItemContainer* lpContainer1 = DepositContainer.GetTab(3);
ZeroMemory(lpDataBuffer, usBufferSize);
lpPktSetData->m_dwSerial = SetData.m_dwSerial;
lpPktSetData->m_dwUID = SetData.m_dwUID;
lpPktSetData->m_dwCID = SetData.m_dwCID;
lpPktSetData->m_dwRequestKey = SetData.m_dwRequestKey;
lpPktSetData->m_cType = PktAgentServer::PktAdminToolSetData::STORE_34_DATA;
lpPktSetData->m_cOldServerGroupID = lpChar->GetOldServerGroupID();
if (NULL != lpContainer0 && NULL != lpContainer1)
{
lpStore->dwSize = STORE::MAX_STORE_SIZE;
if (lpContainer0->SerializeOut(lpStore->Data, lpStore->dwSize))
{
unsigned long dwContainer0Size = lpStore->dwSize;
lpStore->dwSize = STORE::MAX_STORE_SIZE - dwContainer0Size;
if (lpContainer1->SerializeOut(lpStore->Data + dwContainer0Size, lpStore->dwSize))
{
lpStore->dwSize += dwContainer0Size;
cBuffer.ResizeLength(usBufferSize);
PacketWrap::WrapHeader(lpDataBuffer,
usBufferSize, PktAgentServer::PktCMD::CmdAdminToolSetData, 0, 0);
return true;
}
}
}
cBuffer.ResizeLength(0);
return false;
}