//---------------------------------------------------------------------------
void GS_DGAnsOwnerGuildMaster(int aIndex, CSP_REQ_OWNERGUILDMASTER * aRecv)
{
CSP_ANS_OWNERGUILDMASTER pResult = {0};
bool bRet = false;
// ----
PHeadSubSetB((LPBYTE)&pResult, 0x80,0x01, sizeof(pResult));
// ----
pResult.iIndex = aRecv->iIndex;
pResult.wMapSvrNum = aRecv->wMapSvrNum;
pResult.iResult = 0;
// ----
bRet = g_DbManager.ExecFormat("EXEC WZ_CS_GetOwnerGuildMaster %d",aRecv->wMapSvrNum);
// ----
if ((bRet == true) && (g_DbManager.Fetch() != SQL_NO_DATA))
{
pResult.iResult = g_DbManager.GetInt("QueryResult");
// ----
g_DbManager.GetStr("OwnerGuild", pResult.szCastleOwnGuild);
g_DbManager.GetStr("OwnerGuildMaster", pResult.szCastleOwnGuildMaster);
}
// ----
g_DbManager.Clear();
// ----
g_ServerManager.DataSend(aIndex, (unsigned char*)&pResult, pResult.h.size);
}
//---------------------------------------------------------------------------
void GS_DGAnsCastleNpcBuy(int aIndex, CSP_REQ_NPCBUY * aRecv)
{
CSP_ANS_NPCBUY pResult = {0};
bool bRet = false;
// ----
PHeadSubSetB((LPBYTE)&pResult, 0x80,0x03, sizeof(pResult));
// ----
pResult.iBuyCost = aRecv->iBuyCost;
pResult.iIndex = aRecv->iIndex;
pResult.iNpcIndex = aRecv->iNpcIndex;
pResult.iNpcNumber = aRecv->iNpcNumber;
pResult.wMapSvrNum = aRecv->wMapSvrNum;
pResult.iResult = 0;
// ----
bRet = g_DbManager.ExecFormat("EXEC WZ_CS_ReqNpcBuy %d,%d,%d,%d,%d,%d,%d,%d,%d,%d",aRecv->wMapSvrNum,aRecv->iNpcNumber,aRecv->iNpcIndex,aRecv->iNpcDfLevel,aRecv->iNpcRgLevel,aRecv->iNpcMaxHp,aRecv->iNpcHp,aRecv->btNpcX,aRecv->btNpcY,aRecv->btNpcDIR);
// ----
if ((bRet == true) && (g_DbManager.Fetch() != SQL_NO_DATA))
{
pResult.iResult = g_DbManager.GetInt("QueryResult");
}
// ----
g_DbManager.Clear();
// ----
g_ServerManager.DataSend(aIndex, (unsigned char*)&pResult, pResult.h.size);
}
//---------------------------------------------------------------------------
void GS_DGAnsCastleNpcRepair(int aIndex, CSP_REQ_NPCREPAIR * aRecv)
{
CSP_ANS_NPCREPAIR pResult = {0};
bool bRet = false;
// ----
PHeadSubSetB((LPBYTE)&pResult, 0x80,0x04, sizeof(pResult));
// ----
pResult.iIndex = aRecv->iIndex;
pResult.iNpcIndex = aRecv->iNpcIndex;
pResult.iNpcNumber = aRecv->iNpcNumber;
pResult.iRepairCost = aRecv->iRepairCost;
pResult.wMapSvrNum = aRecv->wMapSvrNum;
pResult.iResult = 0;
pResult.iNpcMaxHp = 0;
pResult.iNpcHpl = 0;
// ----
bRet = g_DbManager.ExecFormat("EXEC WZ_CS_ReqNpcRepair %d,%d,%d",aRecv->wMapSvrNum,aRecv->iNpcNumber,aRecv->iNpcIndex);
// ----
if ((bRet == true) && (g_DbManager.Fetch() != SQL_NO_DATA))
{
pResult.iResult = g_DbManager.GetInt("QueryResult");
pResult.iNpcHpl = g_DbManager.GetInt("NPC_HP");
pResult.iNpcMaxHp = g_DbManager.GetInt("NPC_MAXHP");
}
// ----
g_DbManager.Clear();
// ----
g_ServerManager.DataSend(aIndex, (unsigned char*)&pResult, pResult.h.size);
}
//---------------------------------------------------------------------------
void GS_DGAnsCastleNpcUpgrade(int aIndex, CSP_REQ_NPCUPGRADE * aRecv)
{
CSP_ANS_NPCUPGRADE pResult = {0};
bool bRet = false;
// ----
PHeadSubSetB((LPBYTE)&pResult, 0x80,0x05, sizeof(pResult));
// ----
pResult.iIndex = aRecv->iIndex;
pResult.iNpcIndex = aRecv->iNpcIndex;
pResult.iNpcNumber = aRecv->iNpcNumber;
pResult.iNpcUpIndex = aRecv->iNpcUpIndex;
pResult.iNpcUpType = aRecv->iNpcUpType;
pResult.iNpcUpValue = aRecv->iNpcUpValue;
pResult.wMapSvrNum = aRecv->wMapSvrNum;
pResult.iResult = 0;
// ----
bRet = g_DbManager.ExecFormat("EXEC WZ_CS_ReqNpcUpgrade %d,%d,%d,%d,%d",aRecv->wMapSvrNum,aRecv->iNpcNumber,aRecv->iNpcIndex,aRecv->iNpcUpType,aRecv->iNpcUpValue);
// ----
if ((bRet == true) && (g_DbManager.Fetch() != SQL_NO_DATA))
{
pResult.iResult = g_DbManager.GetInt("QueryResult");
}
// ----
g_DbManager.Clear();
// ----
g_ServerManager.DataSend(aIndex, (unsigned char*)&pResult, pResult.h.size);
}
//---------------------------------------------------------------------------
void GS_DGAnsTaxInfo(int aIndex, CSP_REQ_TAXINFO * aRecv)
{
CSP_ANS_TAXINFO pResult = {0};
bool bRet = false;
// ----
PHeadSubSetB((LPBYTE)&pResult, 0x80,0x06, sizeof(pResult));
// ----
pResult.iIndex = aRecv->iIndex;
pResult.wMapSvrNum = aRecv->wMapSvrNum;
pResult.i64CastleMoney = 0;
pResult.iResult = 0;
pResult.iTaxHuntZone = 0;
pResult.iTaxRateChaos = 0;
pResult.iTaxRateStore = 0;
// ----
bRet = g_DbManager.ExecFormat("EXEC WZ_CS_GetCastleTaxInfo %d",aRecv->wMapSvrNum);
// ----
if ((bRet == true) && (g_DbManager.Fetch() != SQL_NO_DATA))
{
pResult.iResult = 1;
pResult.i64CastleMoney = g_DbManager.GetInt64("MONEY");
pResult.iTaxRateChaos = g_DbManager.GetInt("TAX_RATE_CHAOS");
pResult.iTaxRateStore = g_DbManager.GetInt("TAX_RATE_STORE");
pResult.iTaxHuntZone = g_DbManager.GetInt("TAX_HUNT_ZONE");
}
// ----
g_DbManager.Clear();
// ----
g_ServerManager.DataSend(aIndex, (unsigned char*)&pResult, pResult.h.size);
}
//---------------------------------------------------------------------------
void GS_DGAnsTaxRateChange(int aIndex, CSP_REQ_TAXRATECHANGE * aRecv)
{
CSP_ANS_TAXRATECHANGE pResult;
PHeadSubSetB((LPBYTE)&pResult, 0x80,0x07, sizeof(pResult));
pResult.iIndex = aRecv->iIndex;
pResult.iResult = 0;
pResult.iTaxKind = aRecv->iTaxKind;
pResult.iTaxRate = aRecv->iTaxRate;
pResult.wMapSvrNum = aRecv->wMapSvrNum;
BOOL bRet = g_DbManager.ExecFormat("EXEC WZ_CS_ModifyTaxRate %d,%d,%d",aRecv->wMapSvrNum,aRecv->iTaxKind,aRecv->iTaxRate);
if (bRet == TRUE )
{
if(g_DbManager.Fetch() != SQL_NO_DATA)
{
pResult.iResult = g_DbManager.GetInt("QueryResult");
pResult.iTaxKind = g_DbManager.GetInt("TaxKind");
pResult.iTaxRate = g_DbManager.GetInt("TaxRate");
}
}
g_DbManager.Clear();
g_ServerManager.DataSend(aIndex, (unsigned char*)&pResult, pResult.h.size);
}
//---------------------------------------------------------------------------
void GS_DGAnsCastleMoneyChange(int aIndex, CSP_REQ_MONEYCHANGE * aRecv)
{
CSP_ANS_MONEYCHANGE pResult;
PHeadSubSetB((LPBYTE)&pResult, 0x80,0x08, sizeof(pResult));
pResult.i64CastleMoney = 0;
pResult.iIndex = aRecv->iIndex;
pResult.iMoneyChanged = aRecv->iMoneyChanged;
pResult.iResult = 0;
pResult.wMapSvrNum = aRecv->wMapSvrNum;
BOOL bRet = g_DbManager.ExecFormat("EXEC WZ_CS_ModifyMoney %d,%d",aRecv->wMapSvrNum,aRecv->iMoneyChanged);
if (bRet == TRUE )
{
if(g_DbManager.Fetch() != SQL_NO_DATA)
{
pResult.iResult = g_DbManager.GetInt("QueryResult");
pResult.i64CastleMoney = g_DbManager.GetInt64("MONEY");
}
}
g_DbManager.Clear();
g_ServerManager.DataSend(aIndex, (unsigned char*)&pResult, pResult.h.size);
}
//---------------------------------------------------------------------------
void GS_DGAnsSiegeDateChange(int aIndex, CSP_REQ_SDEDCHANGE * aRecv)
{
CSP_ANS_SDEDCHANGE pResult;
PHeadSubSetB((LPBYTE)&pResult, 0x80,0x09, sizeof(pResult));
pResult.btEndDay = aRecv->btEndDay;
pResult.btEndMonth = aRecv->btEndMonth;
pResult.btStartDay = aRecv->btStartDay;
pResult.btStartMonth = aRecv->btStartMonth;
pResult.iIndex = aRecv->iIndex;
pResult.iResult = 0;
pResult.wEndYear = aRecv->wEndYear;
pResult.wMapSvrNum = aRecv->wMapSvrNum;
pResult.wStartYear = aRecv->wStartYear;
BOOL bRet = g_DbManager.ExecFormat("EXEC WZ_CS_ModifyCastleSchedule %d, '%d-%d-%d 00:00:00', '%d-%d-%d 00:00:00'",aRecv->wMapSvrNum,aRecv->btStartDay,aRecv->btStartMonth,aRecv->wStartYear,aRecv->btEndDay,aRecv->btEndMonth,aRecv->wEndYear);
if (bRet == TRUE )
{
if(g_DbManager.Fetch() != SQL_NO_DATA)
{
pResult.iResult = g_DbManager.GetInt("QueryResult");
}
}
g_DbManager.Clear();
g_ServerManager.DataSend(aIndex, (unsigned char*)&pResult, pResult.h.size);
}
//---------------------------------------------------------------------------
void GS_DGAnsGuildMarkRegInfo(int aIndex, CSP_REQ_GUILDREGINFO * aRecv)
{
CSP_ANS_GUILDREGINFO pResult;
PHeadSubSetB((LPBYTE)&pResult, 0x80,0x0A, sizeof(pResult));
pResult.bIsGiveUp = 0;
pResult.btRegRank = 0;
pResult.iIndex = aRecv->iIndex;
pResult.iRegMarkCount = 0;
pResult.iResult = 0;
memcpy(pResult.szGuildName,aRecv->szGuildName,8);
pResult.wMapSvrNum = aRecv->wMapSvrNum;
BOOL bRet = g_DbManager.ExecFormat("EXEC WZ_CS_GetGuildMarkRegInfo %d, '%s'",aRecv->wMapSvrNum,aRecv->szGuildName);
if (bRet == TRUE )
{
if(g_DbManager.Fetch() != SQL_NO_DATA)
{
pResult.iResult = 1;
pResult.iRegMarkCount = g_DbManager.GetInt("REG_MARKS");
pResult.btRegRank = (BYTE) g_DbManager.GetInt("SEQ_NUM");
pResult.bIsGiveUp = g_DbManager.GetInt("IS_GIVEUP");
}
}
g_DbManager.Clear();
g_ServerManager.DataSend(aIndex, (unsigned char*)&pResult, pResult.h.size);
}
//---------------------------------------------------------------------------
void GS_DGAnsSiegeEndedChange(int aIndex, CSP_REQ_SIEGEENDCHANGE * aRecv)
{
CSP_ANS_SIEGEENDCHANGE pResult;
PHeadSubSetB((LPBYTE)&pResult, 0x80,0x0B, sizeof(pResult));
pResult.bIsSiegeEnded = aRecv->bIsSiegeEnded;
pResult.iResult = 0;
pResult.wMapSvrNum = aRecv->wMapSvrNum;
BOOL bRet = g_DbManager.ExecFormat("EXEC WZ_CS_ModifySiegeEnd %d, %d",aRecv->wMapSvrNum,aRecv->bIsSiegeEnded);
if (bRet == TRUE )
{
if(g_DbManager.Fetch() != SQL_NO_DATA)
{
pResult.iResult = g_DbManager.GetInt("QueryResult");
}
}
g_DbManager.Clear();
g_ServerManager.DataSend(aIndex, (unsigned char*)&pResult, pResult.h.size);
}
//---------------------------------------------------------------------------
void GS_DGAnsCastleOwnerChange(int aIndex, CSP_REQ_CASTLEOWNERCHANGE * aRecv)
{
CSP_ANS_CASTLEOWNERCHANGE pResult;
PHeadSubSetB((LPBYTE)&pResult, 0x80,0x0C, sizeof(pResult));
pResult.bIsCastleOccupied = aRecv->bIsCastleOccupied;
pResult.iResult = 0;
memcpy(pResult.szOwnerGuildName,aRecv->szOwnerGuildName,8);
pResult.wMapSvrNum = aRecv->wMapSvrNum;
BOOL bRet = g_DbManager.ExecFormat("EXEC WZ_CS_ModifyCastleOwnerInfo %d, %d, '%s'",aRecv->wMapSvrNum,aRecv->bIsCastleOccupied,aRecv->szOwnerGuildName);
if (bRet == TRUE )
{
if(g_DbManager.Fetch() != SQL_NO_DATA)
{
pResult.iResult = g_DbManager.GetInt("QueryResult");
}
}
g_DbManager.Clear();
g_ServerManager.DataSend(aIndex, (unsigned char*)&pResult, pResult.h.size);
}
//---------------------------------------------------------------------------
void GS_DGAnsRegAttackGuild(int aIndex, CSP_REQ_REGATTACKGUILD * aRecv)
{
CSP_ANS_REGATTACKGUILD pResult;
PHeadSubSetB((LPBYTE)&pResult, 0x80,0x0D, sizeof(pResult));
pResult.iIndex = aRecv->iIndex;
pResult.iResult = 0;
memcpy(pResult.szEnemyGuildName,aRecv->szEnemyGuildName,8);
pResult.wMapSvrNum = aRecv->wMapSvrNum;
BOOL bRet = g_DbManager.ExecFormat("EXEC WZ_CS_ReqRegAttackGuild %d, '%s'",aRecv->wMapSvrNum,aRecv->szEnemyGuildName);
if (bRet == TRUE )
{
if(g_DbManager.Fetch() != SQL_NO_DATA)
{
pResult.iResult = g_DbManager.GetInt("QueryResult");
}
}
g_DbManager.Clear();
g_ServerManager.DataSend(aIndex, (unsigned char*)&pResult, pResult.h.size);
}
//---------------------------------------------------------------------------
void GS_DGAnsRestartCastleState(int aIndex, CSP_REQ_CASTLESIEGEEND * aRecv)
{
CSP_ANS_CASTLESIEGEEND pResult;
PHeadSubSetB((LPBYTE)&pResult, 0x80,0x0E, sizeof(pResult));
pResult.iResult = 0;
pResult.wMapSvrNum = aRecv->wMapSvrNum;
BOOL bRet = g_DbManager.ExecFormat("EXEC WZ_CS_ResetCastleSiege %d",aRecv->wMapSvrNum);
if (bRet == TRUE )
{
if(g_DbManager.Fetch() != SQL_NO_DATA)
{
pResult.iResult = g_DbManager.GetInt("QueryResult");
}
}
g_DbManager.Clear();
g_ServerManager.DataSend(aIndex, (unsigned char*)&pResult, pResult.h.size);
}
//---------------------------------------------------------------------------
void GS_DGAnsMapSvrMsgMultiCast(int aIndex, CSP_REQ_MAPSVRMULTICAST * aRecv)
{
CSP_ANS_MAPSVRMULTICAST pResult;
PHeadSubSetB((LPBYTE)&pResult, 0x80,0x0F, sizeof(pResult));
memcpy(pResult.szMsgText,aRecv->szMsgText,128);
pResult.wMapSvrNum = aRecv->wMapSvrNum;
g_ServerManager.DataSendAll((unsigned char*)&pResult, pResult.h.size);
}
//---------------------------------------------------------------------------
void GS_DGAnsRegGuildMark(int aIndex, CSP_REQ_GUILDREGMARK * aRecv)
{
CSP_ANS_GUILDREGMARK pResult;
PHeadSubSetB((LPBYTE)&pResult, 0x80,0x10, sizeof(pResult));
pResult.iIndex = aRecv->iIndex;
pResult.iItemPos = aRecv->iItemPos;
pResult.iRegMarkCount = 0;
pResult.iResult = 0;
memcpy(pResult.szGuildName,aRecv->szGuildName,8);
pResult.wMapSvrNum = aRecv->wMapSvrNum;
BOOL bRet = g_DbManager.ExecFormat("EXEC WZ_CS_ReqRegGuildMark %d, '%s'",aRecv->wMapSvrNum,aRecv->szGuildName);
if (bRet == TRUE )
{
if(g_DbManager.Fetch() != SQL_NO_DATA)
{
pResult.iResult = g_DbManager.GetInt("QueryResult");
pResult.iRegMarkCount = g_DbManager.GetInt("REG_MARKS");
}
}
g_DbManager.Clear();
g_ServerManager.DataSend(aIndex, (unsigned char*)&pResult, pResult.h.size);
}
//---------------------------------------------------------------------------
void GS_DGAnsGuildMarkReset(int aIndex, CSP_REQ_GUILDRESETMARK * aRecv)
{
CSP_ANS_GUILDRESETMARK pResult;
PHeadSubSetB((LPBYTE)&pResult, 0x80,0x11, sizeof(pResult));
pResult.iIndex = aRecv->iIndex;
pResult.iRegMarkCount = 0;
pResult.iResult = 0;
memcpy(pResult.szGuildName,aRecv->szGuildName,8);
pResult.wMapSvrNum = aRecv->wMapSvrNum;
BOOL bRet = g_DbManager.ExecFormat("EXEC WZ_CS_ModifyGuildMarkReset %d, '%s'",aRecv->wMapSvrNum,aRecv->szGuildName);
if (bRet == TRUE )
{
if( g_DbManager.Fetch() != SQL_NO_DATA)
{
pResult.iResult = g_DbManager.GetInt("QueryResult");
pResult.iRegMarkCount = g_DbManager.GetInt("DEL_MARKS");
}
}
g_DbManager.Clear();
g_ServerManager.DataSend(aIndex, (unsigned char*)&pResult, pResult.h.size);
}
//---------------------------------------------------------------------------
void GS_DGAnsGuildSetGiveUp(int aIndex, CSP_REQ_GUILDSETGIVEUP * aRecv)
{
CSP_ANS_GUILDSETGIVEUP pResult;
PHeadSubSetB((LPBYTE)&pResult, 0x80,0x12, sizeof(pResult));
pResult.bIsGiveUp = aRecv->bIsGiveUp;
pResult.iIndex = aRecv->iIndex;
pResult.iRegMarkCount = 0;
pResult.iResult = 0;
memcpy(pResult.szGuildName,aRecv->szGuildName,8);
pResult.wMapSvrNum = aRecv->wMapSvrNum;
BOOL bRet = g_DbManager.ExecFormat("EXEC WZ_CS_ModifyGuildGiveUp %d, '%s', %d",aRecv->wMapSvrNum,aRecv->szGuildName,aRecv->bIsGiveUp);
if (bRet == TRUE )
{
if( g_DbManager.Fetch() != SQL_NO_DATA)
{
pResult.iResult = g_DbManager.GetInt("QueryResult");
pResult.iRegMarkCount = g_DbManager.GetInt("DEL_MARKS");
}
}
g_DbManager.Clear();
g_ServerManager.DataSend(aIndex, (unsigned char*)&pResult, pResult.h.size);
}
//---------------------------------------------------------------------------
void GS_DGAnsNpcRemove(int aIndex, CSP_REQ_NPCREMOVE * aRecv)
{
CSP_ANS_NPCREMOVE pResult;
PHeadSubSetB((LPBYTE)&pResult, 0x80,0x16, sizeof(pResult));
pResult.iNpcIndex = aRecv->iNpcIndex;
pResult.iNpcNumber = aRecv->iNpcNumber;
pResult.iResult = 0;
pResult.wMapSvrNum = aRecv->wMapSvrNum;
BOOL bRet = g_DbManager.ExecFormat("EXEC WZ_CS_ReqNpcRemove %d, %d, %d",aRecv->wMapSvrNum,aRecv->iNpcNumber,aRecv->iNpcIndex);
if (bRet == TRUE )
{
if( g_DbManager.Fetch() != SQL_NO_DATA)
{
pResult.iResult = g_DbManager.GetInt("QueryResult");
}
}
g_DbManager.Clear();
g_ServerManager.DataSend(aIndex, (unsigned char*)&pResult, pResult.h.size);
}
//---------------------------------------------------------------------------
void GS_DGAnsCastleStateSync(int aIndex, CSP_REQ_CASTLESTATESYNC * aRecv)
{
CSP_ANS_CASTLESTATESYNC pResult;
PHeadSubSetB((LPBYTE)&pResult, 0x80,0x17, sizeof(pResult));
pResult.iCastleState = aRecv->iCastleState;
pResult.iTaxHuntZone = aRecv->iTaxHuntZone;
pResult.iTaxRateChaos = aRecv->iTaxRateChaos;
pResult.iTaxRateStore = aRecv->iTaxRateStore;
memcpy(pResult.szOwnerGuildName,aRecv->szOwnerGuildName,8);
pResult.wMapSvrNum = aRecv->wMapSvrNum;
g_ServerManager.DataSendAll((unsigned char*)&pResult, pResult.h.size);
}
//---------------------------------------------------------------------------
void GS_DGAnsCastleTributeMoney(int aIndex, CSP_REQ_CASTLETRIBUTEMONEY * aRecv)
{
CSP_ANS_CASTLETRIBUTEMONEY pResult;
PHeadSubSetB((LPBYTE)&pResult, 0x80,0x18, sizeof(pResult));
pResult.iResult = 0;
pResult.wMapSvrNum = aRecv->wMapSvrNum;
BOOL bRet = g_DbManager.ExecFormat("EXEC EXEC WZ_CS_ModifyMoney %d, %d",aRecv->wMapSvrNum,aRecv->iCastleTributeMoney);
if (bRet == TRUE )
{
if( g_DbManager.Fetch() != SQL_NO_DATA)
{
pResult.iResult = g_DbManager.GetInt("QueryResult");
}
}
g_DbManager.Clear();
g_ServerManager.DataSend(aIndex, (unsigned char*)&pResult, pResult.h.size);
}
//---------------------------------------------------------------------------
void GS_DGAnsResetCastleTaxInfo(int aIndex, CSP_REQ_RESETCASTLETAXINFO * aRecv)
{
CSP_ANS_RESETCASTLETAXINFO pResult;
PHeadSubSetB((LPBYTE)&pResult, 0x80,0x19, sizeof(pResult));
pResult.iResult = 0;
pResult.wMapSvrNum = aRecv->wMapSvrNum;
BOOL bRet = g_DbManager.ExecFormat("EXEC WZ_CS_ResetCastleTaxInfo %d",aRecv->wMapSvrNum);
if (bRet == TRUE )
{
if( g_DbManager.Fetch() != SQL_NO_DATA)
{
pResult.iResult = g_DbManager.GetInt("QueryResult");
}
}
g_DbManager.Clear();
g_ServerManager.DataSend(aIndex, (unsigned char*)&pResult, pResult.h.size);
}
//---------------------------------------------------------------------------
void GS_DGAnsResetSiegeGuildInfo(int aIndex, CSP_REQ_RESETSIEGEGUILDINFO * aRecv)
{
CSP_ANS_RESETSIEGEGUILDINFO pResult;
PHeadSubSetB((LPBYTE)&pResult, 0x80,0x1A, sizeof(pResult));
pResult.iResult = 0;
pResult.wMapSvrNum = aRecv->wMapSvrNum;
BOOL bRet = g_DbManager.ExecFormat("EXEC WZ_CS_ResetSiegeGuildInfo %d",aRecv->wMapSvrNum);
if (bRet == TRUE )
{
if( g_DbManager.Fetch() != SQL_NO_DATA)
{
pResult.iResult = g_DbManager.GetInt("QueryResult");
}
}
g_DbManager.Clear();
g_ServerManager.DataSend(aIndex, (unsigned char*)&pResult, pResult.h.size);
}
//---------------------------------------------------------------------------
void GS_DGAnsResetRegSiegeInfo(int aIndex, CSP_REQ_RESETREGSIEGEINFO * aRecv)
{
CSP_ANS_RESETREGSIEGEINFO pResult;
PHeadSubSetB((LPBYTE)&pResult, 0x80,0x1B, sizeof(pResult));
pResult.iResult = 0;
pResult.wMapSvrNum = aRecv->wMapSvrNum;
BOOL bRet = g_DbManager.ExecFormat("EXEC WZ_CS_ResetRegSiegeInfo %d",aRecv->wMapSvrNum);
if (bRet == TRUE )
{
if( g_DbManager.Fetch() != SQL_NO_DATA)
{
pResult.iResult = g_DbManager.GetInt("QueryResult");
}
}
g_DbManager.Clear();
g_ServerManager.DataSend(aIndex, (unsigned char*)&pResult, pResult.h.size);
}
//---------------------------------------------------------------------------
void GS_DGAnsCastleInitData(int aIndex, CSP_REQ_CSINITDATA * aRecv)
{
BOOL bRet = FALSE;
int Counter = 0;
char cBUFFER[10000]={0};
CSP_ANS_CSINITDATA * pResult = (CSP_ANS_CSINITDATA *)(cBUFFER);
CSP_CSINITDATA * NPCInfo = (CSP_CSINITDATA *)(cBUFFER + sizeof(CSP_ANS_CSINITDATA));
pResult->btEndDay = 0;
pResult->btEndMonth = 0;
pResult->btIsCastleOccupied = 0;
pResult->btIsSiegeEnded = 0;
pResult->btIsSiegeGuildList = 0;
pResult->btStartDay = 0;
pResult->btStartMonth = 0;
pResult->i64CastleMoney = 0;
pResult->iCount = 0;
pResult->iFirstCreate = 0;
pResult->iResult = 0;
pResult->iTaxHuntZone = 0;
pResult->iTaxRateChaos = 0;
pResult->iTaxRateStore = 0;
memset(pResult->szCastleOwnGuild,0,8);
//memcpy(pResult->szCastleOwnGuild,0,8);
pResult->wEndYear = 0;
pResult->wMapSvrNum = aRecv->wMapSvrNum;
pResult->wStartYear = 0;
int lOfs=sizeof(CSP_ANS_CSINITDATA);
bRet = g_DbManager.ExecFormat("EXEC WZ_CS_GetCastleTotalInfo %d,%d",aRecv->wMapSvrNum,aRecv->iCastleEventCycle);
if (bRet == TRUE )
{
if( g_DbManager.Fetch() != SQL_NO_DATA)
{
pResult->iResult = 1;
pResult->btEndDay = g_DbManager.GetInt("EDAY");
pResult->btEndMonth = g_DbManager.GetInt("EMONTH");
pResult->btIsCastleOccupied = g_DbManager.GetInt("CASLE_OCCUPY");
pResult->btIsSiegeEnded = g_DbManager.GetInt("SIEGE_ENDED");
pResult->btIsSiegeGuildList = g_DbManager.GetInt("SIEGE_GUILDLIST_SETTED");
pResult->btStartDay = g_DbManager.GetInt("SDAY");
pResult->btStartMonth = g_DbManager.GetInt("SMONTH");
pResult->i64CastleMoney = g_DbManager.GetInt64("MONEY");
pResult->iFirstCreate = g_DbManager.GetInt("FIRST_CREATE");
pResult->iTaxHuntZone = g_DbManager.GetInt("TAX_RATE_ZONE");
pResult->iTaxRateChaos = g_DbManager.GetInt("TAX_RATE_CHAOS");
pResult->iTaxRateStore = g_DbManager.GetInt("TAX_RATE_STORE");
g_DbManager.GetStr("OWNER_GUILD", pResult->szCastleOwnGuild);
pResult->wEndYear = g_DbManager.GetInt("EYEAR");
pResult->wStartYear = g_DbManager.GetInt("SYEAR");
g_DbManager.Clear();
bRet = g_DbManager.ExecFormat("EXEC WZ_CS_GetCastleNpcInfo %d",aRecv->wMapSvrNum);
if (bRet == TRUE )
{
if( g_DbManager.Fetch() != SQL_NO_DATA)
{
do
{
NPCInfo = (CSP_CSINITDATA *)(cBUFFER + lOfs);
NPCInfo->iNpcNumber = g_DbManager.GetInt("NPC_NUMBER");
NPCInfo->iNpcIndex = g_DbManager.GetInt("NPC_INDEX");
NPCInfo->iNpcDfLevel = g_DbManager.GetInt("NPC_DF_LEVEL");
NPCInfo->iNpcRgLevel = g_DbManager.GetInt("NPC_RG_LEVEL");
NPCInfo->iNpcMaxHp = g_DbManager.GetInt("NPC_MAXHP");
NPCInfo->iNpcHp = g_DbManager.GetInt("NPC_HP");
NPCInfo->btNpcX = g_DbManager.GetInt("NPC_X");
NPCInfo->btNpcY = g_DbManager.GetInt("NPC_Y");
NPCInfo->btNpcDIR = g_DbManager.GetInt("NPC_DIR");
lOfs+=sizeof(CSP_CSINITDATA);
Counter++;
}while(Counter < 200 && g_DbManager.Fetch() != SQL_NO_DATA);
}
}
}
}
g_DbManager.Clear();
PHeadSetW((LPBYTE)pResult, 0x81, sizeof(CSP_ANS_CSINITDATA) + sizeof(CSP_CSINITDATA) * Counter);
pResult->iCount = Counter;
g_ServerManager.DataSend(aIndex, (unsigned char*)cBUFFER, sizeof(CSP_ANS_CSINITDATA) + sizeof(CSP_CSINITDATA) * Counter);
}
//---------------------------------------------------------------------------
void GS_DGAnsAllGuildMarkRegInfo(int aIndex, CSP_REQ_ALLGUILDREGINFO * aRecv)
{
char cBUFFER[10000]={0};
CSP_ANS_ALLGUILDREGINFO * pResult = (CSP_ANS_ALLGUILDREGINFO *)(cBUFFER);
CSP_GUILDREGINFO * GuildInfo = (CSP_GUILDREGINFO *)(cBUFFER + sizeof(CSP_ANS_ALLGUILDREGINFO));
int Counter = 0;
pResult->iIndex = aRecv->iIndex;
pResult->iResult = 1;
pResult->wMapSvrNum = aRecv->wMapSvrNum;
GuildInfo->iRegMarkCount = 0;
GuildInfo->btRegRank = 0;
GuildInfo->bIsGiveUp = 0;
memset(GuildInfo->szGuildName,0,8);
//memcpy(GuildInfo->szGuildName,0,8);
int lOfs=sizeof(CSP_ANS_ALLGUILDREGINFO);
BOOL bRet = g_DbManager.ExecFormat("EXEC WZ_CS_GetAllGuildMarkRegInfo %d",aRecv->wMapSvrNum);
if (bRet == TRUE )
{
if( g_DbManager.Fetch() != SQL_NO_DATA)
{
do
{
GuildInfo = (CSP_GUILDREGINFO *)(cBUFFER + lOfs);
char tmp[8]={0};
GuildInfo->bIsGiveUp = g_DbManager.GetInt("IS_GUIVEUP");
GuildInfo->btRegRank = (BYTE) g_DbManager.GetInt("SEQ_NUM");
GuildInfo->iRegMarkCount = g_DbManager.GetInt("REG_MARKS");
g_DbManager.GetStr("REG_SIEGE_GUILD", tmp);
memcpy(GuildInfo->szGuildName,tmp,8);
Counter++;
lOfs+=sizeof(CSP_GUILDREGINFO);
}while(Counter < 100 && g_DbManager.Fetch() != SQL_NO_DATA);
}
}
g_DbManager.Clear();
PHeadSetW((LPBYTE)pResult, 0x83, sizeof(CSP_ANS_ALLGUILDREGINFO) + sizeof(CSP_GUILDREGINFO) * Counter);
pResult->iCount = Counter;
g_ServerManager.DataSend(aIndex, (unsigned char*)cBUFFER, sizeof(CSP_ANS_ALLGUILDREGINFO) + sizeof(CSP_GUILDREGINFO) * Counter);
}
//---------------------------------------------------------------------------
void GS_DGAnsFirstCreateNPC(int aIndex, CSP_REQ_NPCSAVEDATA * aRecv)
{
int Counter = 0;
BOOL bRet = FALSE;
CSP_ANS_NPCSAVEDATA pResult;
PHeadSetB((LPBYTE)&pResult, 0x84, sizeof(pResult));
pResult.wMapSvrNum = aRecv->wMapSvrNum;
pResult.iResult = 0;
int lOfs=sizeof(CSP_REQ_NPCSAVEDATA);
bRet = g_DbManager.ExecFormat("DELETE FROM MuCastle_NPC WHERE MAP_SVR_GROUP = %d",aRecv->wMapSvrNum);
if (bRet == TRUE )
{
if(aRecv->iCount > 0)
{
while(Counter<aRecv->iCount)
{
g_DbManager.Clear();
CSP_NPCSAVEDATA * NPCInfo = (CSP_NPCSAVEDATA*)((LPBYTE)aRecv + lOfs);
bRet = g_DbManager.ExecFormat("EXEC WZ_CS_ReqNpcBuy %d, %d, %d, %d, %d, %d, %d, %d, %d, %d",aRecv->wMapSvrNum,NPCInfo->iNpcNumber,NPCInfo->iNpcIndex,NPCInfo->iNpcDfLevel,NPCInfo->iNpcRgLevel,NPCInfo->iNpcMaxHp,NPCInfo->iNpcHp,NPCInfo->btNpcX,NPCInfo->btNpcY,NPCInfo->btNpcDIR);
if (bRet != TRUE )
{
g_DbManager.Clear();
break;
}
Counter++;
lOfs+=sizeof(CSP_NPCSAVEDATA);
}
pResult.iResult = 1;
}
}
g_DbManager.Clear();
g_ServerManager.DataSend(aIndex, (unsigned char*)&pResult,sizeof(pResult));
}
//---------------------------------------------------------------------------
void GS_DGAnsCalcRegGuildList(int aIndex, CSP_REQ_CALCREGGUILDLIST * aRecv)
{
char cBUFFER[10000]={0};
CSP_ANS_CALCREGGUILDLIST * pResult = (CSP_ANS_CALCREGGUILDLIST *)(cBUFFER);
CSP_CALCREGGUILDLIST * GuildInfo = (CSP_CALCREGGUILDLIST *)(cBUFFER + sizeof(CSP_ANS_CALCREGGUILDLIST));
int Counter = 0;
pResult->iResult = 1;
pResult->wMapSvrNum = aRecv->wMapSvrNum;
GuildInfo->iGuildMasterLevel = 0;
GuildInfo->iGuildMemberCount = 0;
GuildInfo->iRegMarkCount = 0;
GuildInfo->iSeqNum = 0;
memset(GuildInfo->szGuildName,0,8);
//memcpy(GuildInfo->szGuildName,0,8);
int lOfs=sizeof(CSP_ANS_CALCREGGUILDLIST);
BOOL bRet = g_DbManager.ExecFormat("EXEC WZ_CS_GetCalcRegGuildList %d",aRecv->wMapSvrNum);
if (bRet == TRUE )
{
if( g_DbManager.Fetch() != SQL_NO_DATA)
{
do
{
GuildInfo = (CSP_CALCREGGUILDLIST *)(cBUFFER + lOfs);
char tmp[8]={0};
GuildInfo->iGuildMasterLevel = g_DbManager.GetInt("GM_LEVEL");
GuildInfo->iGuildMemberCount = g_DbManager.GetInt("GUILD_MEMBER");
GuildInfo->iRegMarkCount = g_DbManager.GetInt("REG_MARKS");
GuildInfo->iSeqNum = g_DbManager.GetInt("SEQ_NUM");
g_DbManager.GetStr("REG_SIEGE_GUILD", tmp);
memcpy(GuildInfo->szGuildName,tmp,8);
Counter++;
lOfs+=sizeof(CSP_CALCREGGUILDLIST);
}while(Counter < 100 && g_DbManager.Fetch() != SQL_NO_DATA);
}
}
g_DbManager.Clear();
PHeadSetW((LPBYTE)pResult, 0x85, sizeof(CSP_ANS_CALCREGGUILDLIST) + sizeof(CSP_CALCREGGUILDLIST) * Counter);
pResult->iCount = Counter;
g_ServerManager.DataSend(aIndex, (unsigned char*)cBUFFER, sizeof(CSP_ANS_CALCREGGUILDLIST) + sizeof(CSP_CALCREGGUILDLIST) * Counter);
}
//---------------------------------------------------------------------------
void GS_DGAnsCsGulidUnionInfo(int aIndex, CSP_REQ_CSGUILDUNIONINFO * aRecv)
{
int Counter = 0;
int GuildCount = 0;
char cBUFFER[10000]={0};
CSP_ANS_CSGUILDUNIONINFO * pResult = (CSP_ANS_CSGUILDUNIONINFO *)(cBUFFER);
CSP_CSGUILDUNIONINFO * GuildInfo = (CSP_CSGUILDUNIONINFO *)(cBUFFER + sizeof(CSP_ANS_CSGUILDUNIONINFO));
PHeadSetB((LPBYTE)pResult, 0x86, sizeof(pResult));
pResult->wMapSvrNum = aRecv->wMapSvrNum;
pResult->iResult = 0;
pResult->iCount = 0;
int lOfs=sizeof(CSP_REQ_CSSAVETOTALGUILDINFO);
int ROfs=lOfs;
if(aRecv->iCount > 0)
{
while(Counter<aRecv->iCount)
{
CSP_CSGUILDUNIONINFO * GuildRecvInfo = (CSP_CSGUILDUNIONINFO*)((LPBYTE)aRecv + lOfs);
BOOL bRet = g_DbManager.ExecFormat("EXEC WZ_CS_GetCsGuildUnionInfo '%s'",GuildRecvInfo->szGuildName);
if(( g_DbManager.Fetch() != SQL_NO_DATA) && (bRet != TRUE ))
{
g_DbManager.Clear();
break;
}
do
{
GuildInfo = (CSP_CSGUILDUNIONINFO *)(cBUFFER + ROfs);
char tmp[8]={0};
g_DbManager.GetStr("GUILD_NAME", tmp);
memcpy(GuildInfo->szGuildName,tmp,8);
GuildInfo->iCsGuildID = GuildCount;
GuildCount++;
ROfs+=sizeof(CSP_CALCREGGUILDLIST);
}while(GuildCount < 100 && g_DbManager.Fetch() != SQL_NO_DATA);
g_DbManager.Clear();
Counter++;
lOfs+=sizeof(CSP_CSGUILDUNIONINFO);
}
pResult->iResult = 1;
}
PHeadSetW((LPBYTE)pResult, 0x86, sizeof(CSP_ANS_CSGUILDUNIONINFO) + sizeof(CSP_CSGUILDUNIONINFO) * GuildCount);
pResult->iCount = Counter;
g_ServerManager.DataSend(aIndex, (unsigned char*)cBUFFER, sizeof(CSP_ANS_CSGUILDUNIONINFO) + sizeof(CSP_CSGUILDUNIONINFO) * GuildCount);
}
//---------------------------------------------------------------------------
void GS_DGAnsCsSaveTotalGuildInfo(int aIndex, CSP_REQ_CSSAVETOTALGUILDINFO * aRecv)
{
int Counter = 0;
CSP_ANS_CSSAVETOTALGUILDINFO pResult;
PHeadSetB((LPBYTE)&pResult, 0x87, sizeof(pResult));
pResult.wMapSvrNum = aRecv->wMapSvrNum;
pResult.iResult = 0;
int lOfs=sizeof(CSP_REQ_CSSAVETOTALGUILDINFO);
if(aRecv->iCount > 0)
{
while(Counter<aRecv->iCount)
{
CSP_CSSAVETOTALGUILDINFO * GuildInfo = (CSP_CSSAVETOTALGUILDINFO*)((LPBYTE)aRecv + lOfs);
BOOL bRet = g_DbManager.ExecFormat("EXEC WZ_CS_SetSiegeGuildInfo %d, '%s', %d, %d",aRecv->wMapSvrNum,GuildInfo->szGuildName,GuildInfo->iCsGuildID,GuildInfo->iGuildInvolved);
if (bRet != TRUE )
{
g_DbManager.Clear();
break;
}
g_DbManager.Clear();
Counter++;
lOfs+=sizeof(CSP_CSSAVETOTALGUILDINFO);
}
pResult.iResult = 1;
}
g_ServerManager.DataSend(aIndex, (unsigned char*)&pResult,sizeof(pResult));
}
//---------------------------------------------------------------------------
void GS_DGAnsCsLoadTotalGuildInfo(int aIndex, CSP_REQ_CSLOADTOTALGUILDINFO * aRecv)
{
char cBUFFER[10000]={0};
CSP_ANS_CSLOADTOTALGUILDINFO * pResult = (CSP_ANS_CSLOADTOTALGUILDINFO *)(cBUFFER);
CSP_CSLOADTOTALGUILDINFO * GuildInfo = (CSP_CSLOADTOTALGUILDINFO *)(cBUFFER + sizeof(CSP_ANS_CSLOADTOTALGUILDINFO));
int Counter = 0;
pResult->iResult = 1;
pResult->wMapSvrNum = aRecv->wMapSvrNum;
GuildInfo->iCsGuildID = 0;
GuildInfo->iGuildInvolved = 0;
memset(GuildInfo->szGuildName,0,8);
//memcpy(GuildInfo->szGuildName,0,8);
int lOfs=sizeof(CSP_ANS_CSLOADTOTALGUILDINFO);
BOOL bRet = g_DbManager.ExecFormat("EXEC WZ_CS_GetSiegeGuildInfo %d",aRecv->wMapSvrNum);
if (bRet == TRUE )
{
if( g_DbManager.Fetch() != SQL_NO_DATA)
{
do
{
GuildInfo = (CSP_CSLOADTOTALGUILDINFO *)(cBUFFER + lOfs);
char tmp[8]={0};
GuildInfo->iCsGuildID = g_DbManager.GetInt("GUILD_ID");
GuildInfo->iGuildInvolved = g_DbManager.GetInt("GUILD_INVOLVED");
g_DbManager.GetStr("GUILD_NAME", tmp);
memcpy(GuildInfo->szGuildName,tmp,8);
Counter++;
lOfs+=sizeof(CSP_CSLOADTOTALGUILDINFO);
}while(Counter < 100 && g_DbManager.Fetch() != SQL_NO_DATA);
}
}
g_DbManager.Clear();
PHeadSetW((LPBYTE)pResult, 0x88, sizeof(CSP_ANS_CSLOADTOTALGUILDINFO) + sizeof(CSP_CSLOADTOTALGUILDINFO) * Counter);
pResult->iCount = Counter;
g_ServerManager.DataSend(aIndex, (unsigned char*)cBUFFER, sizeof(CSP_ANS_CSLOADTOTALGUILDINFO) + sizeof(CSP_CSLOADTOTALGUILDINFO) * Counter);
}
//---------------------------------------------------------------------------
void GS_DGAnsCastleNpcUpdate(int aIndex, CSP_REQ_NPCUPDATEDATA * aRecv)
{
int Counter = 0;
CSP_ANS_NPCUPDATEDATA pResult;
PHeadSetB((LPBYTE)&pResult, 0x89, sizeof(pResult));
pResult.wMapSvrNum = aRecv->wMapSvrNum;
pResult.iResult = 0;
BOOL bRet = FALSE;
int lOfs=sizeof(CSP_REQ_NPCUPDATEDATA);
bRet = g_DbManager.ExecFormat("DELETE FROM MuCastle_NPC WHERE MAP_SVR_GROUP = %d",aRecv->wMapSvrNum);
if (bRet == TRUE )
{
if(aRecv->iCount > 0)
{
while(Counter<aRecv->iCount)
{
g_DbManager.Clear();
CSP_NPCUPDATEDATA * NPCInfo = (CSP_NPCUPDATEDATA*)((LPBYTE)aRecv + lOfs);
bRet = g_DbManager.ExecFormat("EXEC WZ_CS_ReqNpcUpdate %d, %d, %d, %d, %d, %d, %d, %d, %d, %d",aRecv->wMapSvrNum,NPCInfo->iNpcNumber,NPCInfo->iNpcIndex,NPCInfo->iNpcDfLevel,NPCInfo->iNpcRgLevel,NPCInfo->iNpcMaxHp,NPCInfo->iNpcHp,NPCInfo->btNpcX,NPCInfo->btNpcY,NPCInfo->btNpcDIR);
if (bRet != TRUE )
{
g_DbManager.Clear();
break;
}
Counter++;
lOfs+=sizeof(CSP_NPCUPDATEDATA);
}
pResult.iResult = 1;
}
}
g_ServerManager.DataSend(aIndex, (unsigned char*)&pResult,sizeof(pResult));
}
//---------------------------------------------------------------------------
void DGAnsCrywolfSync(int aIndex, CWP_REQ_CRYWOLFSYNC * aRecv)
{
CWP_ANS_CRYWOLFSYNC pResult;
PHeadSetB((LPBYTE)&pResult, 0xB0, sizeof(pResult));
pResult.iCrywolfState = aRecv->iCrywolfState;
pResult.iOccupationState = aRecv->iOccupationState;
pResult.btResult = aRecv->iOccupationState; //REVEER
g_ServerManager.DataSendAll((unsigned char*)&pResult,sizeof(pResult));
}
//---------------------------------------------------------------------------
void DGAnsCrywolfInfoLoad(int aIndex, CWP_REQ_CRYWOLFINFOLOAD * aRecv)
{
CWP_ANS_CRYWOLFINFOLOAD pResult;
PHeadSetB((LPBYTE)&pResult, 0xB1, sizeof(pResult));
pResult.btResult = 0;
pResult.iCrywolfState = 0;
pResult.iOccupationState = 0;
BOOL bRet = g_DbManager.ExecFormat("EXEC WZ_CW_InfoLoad %d",aRecv->wMapSvrNum);
if (bRet == TRUE )
{
if( g_DbManager.Fetch() != SQL_NO_DATA)
{
pResult.btResult = 1;
pResult.iCrywolfState = g_DbManager.GetInt("CRYWOLF_STATE");
pResult.iOccupationState = g_DbManager.GetInt("CRYWOLF_OCCUFY");
}
}
g_DbManager.Clear();
g_ServerManager.DataSend(aIndex, (unsigned char*)&pResult, pResult.h.size);
}
//---------------------------------------------------------------------------