From c383bab89a8203062a0f478a7fd55b83cf2f13bb Mon Sep 17 00:00:00 2001 From: Tom Hart Date: Mon, 6 Mar 2023 18:16:08 +0000 Subject: [PATCH 01/11] Balance updating from server, balance not deducted though when buying, that's up next --- Modules/AClient/AgcmUICashMall/AgcmUICashMall.cpp | 2 +- Modules/AServer/AgsmCashMall/AgsmCashMall.cpp | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Modules/AClient/AgcmUICashMall/AgcmUICashMall.cpp b/Modules/AClient/AgcmUICashMall/AgcmUICashMall.cpp index da00b0d..39bdf06 100644 --- a/Modules/AClient/AgcmUICashMall/AgcmUICashMall.cpp +++ b/Modules/AClient/AgcmUICashMall/AgcmUICashMall.cpp @@ -582,7 +582,7 @@ BOOL AgcmUICashMall::RefreshCashEdit() #ifdef _AREA_GLOBAL_ CashInfoGlobal pCash; - m_pagpmBillInfo->SetCashGlobal(m_pcsAgcmCharacter->GetSelfCharacter(), 100000, 100000); + // m_pagpmBillInfo->SetCashGlobal(m_pcsAgcmCharacter->GetSelfCharacter(), 100000, 100000); m_pagpmBillInfo->GetCashGlobal(m_pcsAgcmCharacter->GetSelfCharacter(), pCash.m_WCoin, pCash.m_PCoin); szBuffer.Format("%s : %d", m_pcsAgcmUIManager2->GetUIMessage(AGCMUIMESSAGE_CASHMALL_C_CASH), (INT64)pCash.m_WCoin); diff --git a/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp b/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp index 7a82113..1be34be 100644 --- a/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp +++ b/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp @@ -1,6 +1,7 @@ #include "AgsmCashMall.h" #include "AgsmSystemMessage.h" #include "AgsmBillingChina.h" +#include "AgppBillInfo.h" AgsmCashMall::AgsmCashMall() { @@ -170,13 +171,19 @@ BOOL AgsmCashMall::CBRefreshCash(PVOID pData, PVOID pClass, PVOID pCustData) // request to billing server CashInfoGlobal pCash; - pThis->m_pcsAgpmBillInfo->GetCashGlobal(pcsCharacter, pCash.m_WCoin, pCash.m_PCoin); printf("Increasing from %f to %f\n", pCash.m_WCoin, 2500.0); pThis->m_pcsAgpmBillInfo->SetCashGlobal(pcsCharacter, 2500.0, 0); + /*pThis->m_pcsAgpmBillInfo->GetCashGlobal(pcsCharacter, pCash.m_WCoin, pCash.m_PCoin); + pThis->m_pcsAgpmBillInfo->GetCashGlobal(pcsCharacter, pCash.m_WCoin, pCash.m_PCoin); - printf("Now %f\n", pCash.m_WCoin); + printf("Now %f\n", pCash.m_WCoin);*/ + + + pThis->m_pcsAgpmBillInfo->GetCashGlobal(pcsCharacter, pCash.m_WCoin, pCash.m_PCoin); + PACKET_BILLINGINFO_CASHINFO pPacket(pcsCharacter->m_lID, pCash.m_WCoin, pCash.m_PCoin); + pThis->SendPacketUser(pPacket, pThis->m_pcsAgsmCharacter->GetCharDPNID(pcsCharacter)); return TRUE; } From d7514c715c5becaa8f203d3c117ea966315b84c0 Mon Sep 17 00:00:00 2001 From: Tom Hart Date: Sun, 22 Oct 2023 17:14:23 +0100 Subject: [PATCH 02/11] WIP --- AlefServer - Copy.sln | 79 +++++++++++++++++++ AlefServer.sln | 9 ++- Backup/AlefServer.sln | 79 +++++++++++++++++++ .../AClient/AgcmUICashMall/AgcmUICashMall.cpp | 6 +- .../AgpmSiegeWar/AgpmSiegeWarApplication.cpp | 10 +-- 5 files changed, 173 insertions(+), 10 deletions(-) create mode 100644 AlefServer - Copy.sln create mode 100644 Backup/AlefServer.sln diff --git a/AlefServer - Copy.sln b/AlefServer - Copy.sln new file mode 100644 index 0000000..a526d7c --- /dev/null +++ b/AlefServer - Copy.sln @@ -0,0 +1,79 @@ +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AgpModules", "Projects\AgpModules\AgpModules.vcproj", "{55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}" + ProjectSection(ProjectDependencies) = postProject + {A5C4630C-E440-4767-87CC-6B53905D260E} = {A5C4630C-E440-4767-87CC-6B53905D260E} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ApModules", "Projects\ApModules\ApModules.vcproj", "{A5C4630C-E440-4767-87CC-6B53905D260E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AgsModules", "Projects\AgsModules\AgsModules.vcproj", "{AEA137C2-3EAB-40C8-80B9-78FE659027B2}" + ProjectSection(ProjectDependencies) = postProject + {CFD93F15-C931-4506-8E73-36D3817F8E65} = {CFD93F15-C931-4506-8E73-36D3817F8E65} + {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D} = {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AlefServer", "Projects\AlefServer\AlefServer.vcproj", "{AEC0E888-B6F6-4610-8F15-31400F7B3F6E}" + ProjectSection(ProjectDependencies) = postProject + {AEA137C2-3EAB-40C8-80B9-78FE659027B2} = {AEA137C2-3EAB-40C8-80B9-78FE659027B2} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AsNetworkLib", "Projects\AsNetworkLib\AsNetworkLib.vcproj", "{CFD93F15-C931-4506-8E73-36D3817F8E65}" + ProjectSection(ProjectDependencies) = postProject + {A5C4630C-E440-4767-87CC-6B53905D260E} = {A5C4630C-E440-4767-87CC-6B53905D260E} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug Global|Win32 = Debug Global|Win32 + Debug Global|x64 = Debug Global|x64 + Release Global|Win32 = Release Global|Win32 + Release Global|x64 = Release Global|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Debug Global|Win32.ActiveCfg = Debug Global|Win32 + {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Debug Global|Win32.Build.0 = Debug Global|Win32 + {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Debug Global|x64.ActiveCfg = Debug Global|x64 + {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Debug Global|x64.Build.0 = Debug Global|x64 + {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Release Global|Win32.ActiveCfg = Release Global|Win32 + {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Release Global|Win32.Build.0 = Release Global|Win32 + {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Release Global|x64.ActiveCfg = Release Global|x64 + {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Release Global|x64.Build.0 = Release Global|x64 + {A5C4630C-E440-4767-87CC-6B53905D260E}.Debug Global|Win32.ActiveCfg = Debug Global|Win32 + {A5C4630C-E440-4767-87CC-6B53905D260E}.Debug Global|Win32.Build.0 = Debug Global|Win32 + {A5C4630C-E440-4767-87CC-6B53905D260E}.Debug Global|x64.ActiveCfg = Debug Global|x64 + {A5C4630C-E440-4767-87CC-6B53905D260E}.Debug Global|x64.Build.0 = Debug Global|x64 + {A5C4630C-E440-4767-87CC-6B53905D260E}.Release Global|Win32.ActiveCfg = Release Global|Win32 + {A5C4630C-E440-4767-87CC-6B53905D260E}.Release Global|Win32.Build.0 = Release Global|Win32 + {A5C4630C-E440-4767-87CC-6B53905D260E}.Release Global|x64.ActiveCfg = Release Global|x64 + {A5C4630C-E440-4767-87CC-6B53905D260E}.Release Global|x64.Build.0 = Release Global|x64 + {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Debug Global|Win32.ActiveCfg = Debug Global|Win32 + {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Debug Global|Win32.Build.0 = Debug Global|Win32 + {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Debug Global|x64.ActiveCfg = Debug Global|x64 + {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Debug Global|x64.Build.0 = Debug Global|x64 + {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Release Global|Win32.ActiveCfg = Release Global|Win32 + {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Release Global|Win32.Build.0 = Release Global|Win32 + {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Release Global|x64.ActiveCfg = Release Global|x64 + {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Release Global|x64.Build.0 = Release Global|x64 + {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Debug Global|Win32.ActiveCfg = Debug Global|Win32 + {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Debug Global|Win32.Build.0 = Debug Global|Win32 + {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Debug Global|x64.ActiveCfg = Debug Global|x64 + {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Debug Global|x64.Build.0 = Debug Global|x64 + {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Release Global|Win32.ActiveCfg = Release Global|Win32 + {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Release Global|Win32.Build.0 = Release Global|Win32 + {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Release Global|x64.ActiveCfg = Release Global|x64 + {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Release Global|x64.Build.0 = Release Global|x64 + {CFD93F15-C931-4506-8E73-36D3817F8E65}.Debug Global|Win32.ActiveCfg = Debug EM64T|x64 + {CFD93F15-C931-4506-8E73-36D3817F8E65}.Debug Global|x64.ActiveCfg = Debug|x64 + {CFD93F15-C931-4506-8E73-36D3817F8E65}.Debug Global|x64.Build.0 = Debug|x64 + {CFD93F15-C931-4506-8E73-36D3817F8E65}.Release Global|Win32.ActiveCfg = Release EM64T|x64 + {CFD93F15-C931-4506-8E73-36D3817F8E65}.Release Global|x64.ActiveCfg = Release|x64 + {CFD93F15-C931-4506-8E73-36D3817F8E65}.Release Global|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(DPCodeReviewSolutionGUID) = preSolution + DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000} + EndGlobalSection +EndGlobal diff --git a/AlefServer.sln b/AlefServer.sln index a526d7c..6f1b8ea 100644 --- a/AlefServer.sln +++ b/AlefServer.sln @@ -1,5 +1,7 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.33423.256 +MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AgpModules", "Projects\AgpModules\AgpModules.vcproj", "{55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}" ProjectSection(ProjectDependencies) = postProject {A5C4630C-E440-4767-87CC-6B53905D260E} = {A5C4630C-E440-4767-87CC-6B53905D260E} @@ -73,6 +75,9 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {9FD2C5F6-9D6E-4D05-8D2A-6BE1A97F9744} + EndGlobalSection GlobalSection(DPCodeReviewSolutionGUID) = preSolution DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000} EndGlobalSection diff --git a/Backup/AlefServer.sln b/Backup/AlefServer.sln new file mode 100644 index 0000000..a526d7c --- /dev/null +++ b/Backup/AlefServer.sln @@ -0,0 +1,79 @@ +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AgpModules", "Projects\AgpModules\AgpModules.vcproj", "{55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}" + ProjectSection(ProjectDependencies) = postProject + {A5C4630C-E440-4767-87CC-6B53905D260E} = {A5C4630C-E440-4767-87CC-6B53905D260E} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ApModules", "Projects\ApModules\ApModules.vcproj", "{A5C4630C-E440-4767-87CC-6B53905D260E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AgsModules", "Projects\AgsModules\AgsModules.vcproj", "{AEA137C2-3EAB-40C8-80B9-78FE659027B2}" + ProjectSection(ProjectDependencies) = postProject + {CFD93F15-C931-4506-8E73-36D3817F8E65} = {CFD93F15-C931-4506-8E73-36D3817F8E65} + {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D} = {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AlefServer", "Projects\AlefServer\AlefServer.vcproj", "{AEC0E888-B6F6-4610-8F15-31400F7B3F6E}" + ProjectSection(ProjectDependencies) = postProject + {AEA137C2-3EAB-40C8-80B9-78FE659027B2} = {AEA137C2-3EAB-40C8-80B9-78FE659027B2} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AsNetworkLib", "Projects\AsNetworkLib\AsNetworkLib.vcproj", "{CFD93F15-C931-4506-8E73-36D3817F8E65}" + ProjectSection(ProjectDependencies) = postProject + {A5C4630C-E440-4767-87CC-6B53905D260E} = {A5C4630C-E440-4767-87CC-6B53905D260E} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug Global|Win32 = Debug Global|Win32 + Debug Global|x64 = Debug Global|x64 + Release Global|Win32 = Release Global|Win32 + Release Global|x64 = Release Global|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Debug Global|Win32.ActiveCfg = Debug Global|Win32 + {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Debug Global|Win32.Build.0 = Debug Global|Win32 + {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Debug Global|x64.ActiveCfg = Debug Global|x64 + {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Debug Global|x64.Build.0 = Debug Global|x64 + {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Release Global|Win32.ActiveCfg = Release Global|Win32 + {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Release Global|Win32.Build.0 = Release Global|Win32 + {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Release Global|x64.ActiveCfg = Release Global|x64 + {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Release Global|x64.Build.0 = Release Global|x64 + {A5C4630C-E440-4767-87CC-6B53905D260E}.Debug Global|Win32.ActiveCfg = Debug Global|Win32 + {A5C4630C-E440-4767-87CC-6B53905D260E}.Debug Global|Win32.Build.0 = Debug Global|Win32 + {A5C4630C-E440-4767-87CC-6B53905D260E}.Debug Global|x64.ActiveCfg = Debug Global|x64 + {A5C4630C-E440-4767-87CC-6B53905D260E}.Debug Global|x64.Build.0 = Debug Global|x64 + {A5C4630C-E440-4767-87CC-6B53905D260E}.Release Global|Win32.ActiveCfg = Release Global|Win32 + {A5C4630C-E440-4767-87CC-6B53905D260E}.Release Global|Win32.Build.0 = Release Global|Win32 + {A5C4630C-E440-4767-87CC-6B53905D260E}.Release Global|x64.ActiveCfg = Release Global|x64 + {A5C4630C-E440-4767-87CC-6B53905D260E}.Release Global|x64.Build.0 = Release Global|x64 + {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Debug Global|Win32.ActiveCfg = Debug Global|Win32 + {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Debug Global|Win32.Build.0 = Debug Global|Win32 + {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Debug Global|x64.ActiveCfg = Debug Global|x64 + {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Debug Global|x64.Build.0 = Debug Global|x64 + {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Release Global|Win32.ActiveCfg = Release Global|Win32 + {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Release Global|Win32.Build.0 = Release Global|Win32 + {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Release Global|x64.ActiveCfg = Release Global|x64 + {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Release Global|x64.Build.0 = Release Global|x64 + {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Debug Global|Win32.ActiveCfg = Debug Global|Win32 + {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Debug Global|Win32.Build.0 = Debug Global|Win32 + {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Debug Global|x64.ActiveCfg = Debug Global|x64 + {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Debug Global|x64.Build.0 = Debug Global|x64 + {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Release Global|Win32.ActiveCfg = Release Global|Win32 + {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Release Global|Win32.Build.0 = Release Global|Win32 + {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Release Global|x64.ActiveCfg = Release Global|x64 + {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Release Global|x64.Build.0 = Release Global|x64 + {CFD93F15-C931-4506-8E73-36D3817F8E65}.Debug Global|Win32.ActiveCfg = Debug EM64T|x64 + {CFD93F15-C931-4506-8E73-36D3817F8E65}.Debug Global|x64.ActiveCfg = Debug|x64 + {CFD93F15-C931-4506-8E73-36D3817F8E65}.Debug Global|x64.Build.0 = Debug|x64 + {CFD93F15-C931-4506-8E73-36D3817F8E65}.Release Global|Win32.ActiveCfg = Release EM64T|x64 + {CFD93F15-C931-4506-8E73-36D3817F8E65}.Release Global|x64.ActiveCfg = Release|x64 + {CFD93F15-C931-4506-8E73-36D3817F8E65}.Release Global|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(DPCodeReviewSolutionGUID) = preSolution + DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000} + EndGlobalSection +EndGlobal diff --git a/Modules/AClient/AgcmUICashMall/AgcmUICashMall.cpp b/Modules/AClient/AgcmUICashMall/AgcmUICashMall.cpp index 39bdf06..112a0c9 100644 --- a/Modules/AClient/AgcmUICashMall/AgcmUICashMall.cpp +++ b/Modules/AClient/AgcmUICashMall/AgcmUICashMall.cpp @@ -732,9 +732,9 @@ BOOL AgcmUICashMall::CBBuyProductConfirm(PVOID pClass, PVOID pData1, PVOID pData pThis->m_pcsAgcmUIManager2->RefreshUserData(pThis->m_pcsUserDataBuyProduct, TRUE); if (pThis->m_pcsBuyItem){ - //pThis->m_pcsAgcmUIManager2->ThrowEvent(pThis->m_lEventBuyProductConfirm); + pThis->m_pcsAgcmUIManager2->ThrowEvent(pThis->m_lEventBuyProductConfirm); - CashInfoGlobal pCash; + /*CashInfoGlobal pCash; INT64 llCash = 0; pThis->m_pagpmBillInfo->GetCashGlobal(pThis->m_pcsAgcmCharacter->GetSelfCharacter(), pCash.m_WCoin, pCash.m_PCoin); @@ -751,7 +751,7 @@ BOOL AgcmUICashMall::CBBuyProductConfirm(PVOID pClass, PVOID pData1, PVOID pData return FALSE; } - pThis->m_pcsAgcmUIManager2->GetFunction("CashMallBuyProduct")->m_fnCallback( pClass, pData1, pData2, pData3, pData4, pData5, pcsTarget, pcsSourceControl); + pThis->m_pcsAgcmUIManager2->GetFunction("CashMallBuyProduct")->m_fnCallback( pClass, pData1, pData2, pData3, pData4, pData5, pcsTarget, pcsSourceControl);*/ } return TRUE; diff --git a/Modules/APublic/AgpmSiegeWar/AgpmSiegeWarApplication.cpp b/Modules/APublic/AgpmSiegeWar/AgpmSiegeWarApplication.cpp index aaade46..ff3094b 100644 --- a/Modules/APublic/AgpmSiegeWar/AgpmSiegeWarApplication.cpp +++ b/Modules/APublic/AgpmSiegeWar/AgpmSiegeWarApplication.cpp @@ -28,13 +28,13 @@ BOOL AgpmSiegeWar::CheckGuildRequirement(AgpdGuild *pcsGuild) */ // ±æµå Àοø 20ÀÎ ÀÌ»ó. - if (m_pcsAgpmGuild->GetAllMemberCount(pcsGuild) < AGPMSIEGEWAR_GUILD_MEMBER_COUNT_REQUIREMENT) - return FALSE; + //if (m_pcsAgpmGuild->GetAllMemberCount(pcsGuild) < AGPMSIEGEWAR_GUILD_MEMBER_COUNT_REQUIREMENT) + // return FALSE; //±æµå »ý¼º ÈÄ 14ÀÏ ÀÌ»ó - UINT32 ulCurrentTime = AuTimeStamp::GetCurrentTimeStamp(); - if (ulCurrentTime - pcsGuild->m_lCreationDate < AGPMSIEGEWAR_GUILD_CREATE_TIME_REQUIREMENT) - return FALSE; + /*UINT32 ulCurrentTime = autimestamp::getcurrenttimestamp(); + if (ulcurrenttime - pcsguild->m_lcreationdate < agpmsiegewar_guild_create_time_requirement) + return false;*/ return TRUE; } From 537245b35bc02861b44504e51685b118f4ebe27a Mon Sep 17 00:00:00 2001 From: Tom Hart Date: Mon, 23 Oct 2023 11:09:37 +0100 Subject: [PATCH 03/11] Got more working --- Lib/Release/AuKbHook.exp | Bin 871 -> 871 bytes Lib/Release/AuKbHook.lib | Bin 2274 -> 2274 bytes Lib/Release/SoundLibrary.lib | Bin 3649342 -> 3649342 bytes Modules/APublic/AgpmBillInfo/AgpmBillInfo.cpp | 2 -- .../AgpmSiegeWar/AgpmSiegeWarApplication.cpp | 8 ++++---- Modules/AServer/AgsmCashMall/AgsmCashMall.cpp | 15 ++++++--------- Modules/AServer/AgsmCashMall/AgsmCashMall.h | 1 + .../AgsmCharManager/AgsmCharManager.cpp | 3 ++- 8 files changed, 13 insertions(+), 16 deletions(-) diff --git a/Lib/Release/AuKbHook.exp b/Lib/Release/AuKbHook.exp index f7902d9f0418534a6fda68fccdebbaa683ded2ae..c0a5174cffa47f218a67c027417000884f924cdb 100644 GIT binary patch delta 25 ecmaFP_MDBwhmnb4vyW-&M2-X&5WO+yHxmG6;s|>H delta 25 ecmaFP_MDBwhmncF%lvQhM2-X&5WO+yHxmGAxCsjY diff --git a/Lib/Release/AuKbHook.lib b/Lib/Release/AuKbHook.lib index ceccbeee0b792c05073c4131ee1468a96591258b..9dc85ba5fb75f933c6ef3d00dae8919c11d9281d 100644 GIT binary patch delta 193 zcmaDP_(*Vq6o;j`rKO>TspUqc07f`xa}{G0f;agNlN!rrAJf#$Y|Q_Vgn3xiSV6+O zC+D-tPYz>!2G>8?g$=4Bk4*(h$1HX&utAegusb0X3vob29XK2iq8%Js+#u7H85kIt Z7&s;|iSs#@dMA10=V$As!2G>8?g$=4Bk4*(h$1HX&utAegusb0X3vob29XK2iq8%Js+#u7H85kIt Z7&s;|iSs#@dMA10=V$As8@(`qVv6L$4`N@%Fp;gh`k-6g+ozV8a}NcD9)B=)7j<^P1z!vT%LjHc?fgM${3a#8YZCr6hPHqtu)< zw&#F0I0oi(I~?b+y%SfXUAvEeO9NvQSMr(H($C8CZNB1lJ+K`~GvqLrv1!RAI?dCI z#SV5$C*w3Hxxft_JSTNN*|dt0q%);XI0;>F3Qj{e2yg~Ge5TYhx%FQdhA*z3&4VE`T2{LO)OM58O{Q*}ohN zH10Qs1J=cS+^iS#@|{^shRUG;mqUYht$rW%AQ%GpR@>-WVGxGk5(HrwLVT?dp6qKL z&(A)U!yg(hZ?zJ({l`!9_M5Z2Ewnot!s4xOih`}h@jMIrGfpA}b#&YrX EKa%NP0ssI2 delta 946 zcmZ|NPiPZC7zOa=Pfavwt#(Z}UA2=KYg*GJ-OYAuPF5k5R!gCKlA^_KFTII~H=#kC zTEyyU6w`wTDUuj0MF$VfK`^(_dJzOklvwa01bS9{Yqi0+Is9Pen}vD2*+RK&E5L(p zx2CDenZbm{YFV4OkbIT2<+FQ3iXpFM?egm0$o#I0jZ8U8^%0RgJ{Hj(0vXqS%ntut z_dffWy_kFQ;dQWg>g|i7tEJQHYBA5~jPBqwy7T>_kea(nWR1viSs}8LjH}6n%;WQe zH5XO4ozM#Vz}&lGKUcR8j3qk0-d=jDJU7O3?rYz!f6r|2WxwaH?QfbPhBW=oFG6tP2wZlQ^fJ1N?IzfOV;Nz2}uF>`X!Z3u% zF?~V&^iLokn@Ed7(9F_U&#f=J^_XXuKC{aPIY*0Wkr&f`|3j;I%Ac01Qa7zi5*&qN za2$GgRU*r&Cc&b!q%m07Ai{24XAL6$UeRfT@M$BEzSs1A-A+?G0SLkg2*F9{<*A)h zcZQqXzZeNO-k%-_TNksjRxjr9OS71H8jOZ{Fxq$1^7l!Y#pref2xMC6N}&(>;WR{G z0HS=Q5F71j9xue+m1A!j9xqdg3B>C0Zfw>w(ydC2Z&l(KmaJM!P=o^+6fpNH3?Z~e P&o>E#_X;tV*H(W4d+lOr diff --git a/Modules/APublic/AgpmBillInfo/AgpmBillInfo.cpp b/Modules/APublic/AgpmBillInfo/AgpmBillInfo.cpp index ad07635..ce600fb 100644 --- a/Modules/APublic/AgpmBillInfo/AgpmBillInfo.cpp +++ b/Modules/APublic/AgpmBillInfo/AgpmBillInfo.cpp @@ -181,13 +181,11 @@ BOOL AgpmBillInfo::IsPCBang(AgpdCharacter *pcsCharacter) BOOL AgpmBillInfo::SetCashGlobal(AgpdCharacter* pcsCharacter, double WCoin, double PCoin) { if (!pcsCharacter){ - printf("SetCashGlobal 1"); return FALSE; } AgpdBillInfo *pcsAttachData = GetADCharacter(pcsCharacter); if(!pcsAttachData){ - printf("SetCashGlobal 2"); return FALSE; } diff --git a/Modules/APublic/AgpmSiegeWar/AgpmSiegeWarApplication.cpp b/Modules/APublic/AgpmSiegeWar/AgpmSiegeWarApplication.cpp index ff3094b..ea47bb7 100644 --- a/Modules/APublic/AgpmSiegeWar/AgpmSiegeWarApplication.cpp +++ b/Modules/APublic/AgpmSiegeWar/AgpmSiegeWarApplication.cpp @@ -29,12 +29,12 @@ BOOL AgpmSiegeWar::CheckGuildRequirement(AgpdGuild *pcsGuild) // ±æµå Àοø 20ÀÎ ÀÌ»ó. //if (m_pcsAgpmGuild->GetAllMemberCount(pcsGuild) < AGPMSIEGEWAR_GUILD_MEMBER_COUNT_REQUIREMENT) - // return FALSE; + //return FALSE; //±æµå »ý¼º ÈÄ 14ÀÏ ÀÌ»ó - /*UINT32 ulCurrentTime = autimestamp::getcurrenttimestamp(); - if (ulcurrenttime - pcsguild->m_lcreationdate < agpmsiegewar_guild_create_time_requirement) - return false;*/ + //UINT32 ulCurrentTime = AuTimeStamp::GetCurrentTimeStamp(); + //if (ulCurrentTime - pcsGuild->m_lCreationDate < AGPMSIEGEWAR_GUILD_CREATE_TIME_REQUIREMENT) + //return FALSE; return TRUE; } diff --git a/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp b/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp index 1be34be..266b431 100644 --- a/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp +++ b/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp @@ -171,16 +171,13 @@ BOOL AgsmCashMall::CBRefreshCash(PVOID pData, PVOID pClass, PVOID pCustData) // request to billing server CashInfoGlobal pCash; - printf("Increasing from %f to %f\n", pCash.m_WCoin, 2500.0); - pThis->m_pcsAgpmBillInfo->SetCashGlobal(pcsCharacter, 2500.0, 0); - /*pThis->m_pcsAgpmBillInfo->GetCashGlobal(pcsCharacter, pCash.m_WCoin, pCash.m_PCoin); - - pThis->m_pcsAgpmBillInfo->GetCashGlobal(pcsCharacter, pCash.m_WCoin, pCash.m_PCoin); - printf("Now %f\n", pCash.m_WCoin);*/ + printf("Increasing w from %f to %f\n", pCash.m_WCoin, pCash.m_WCoin + 5000.0); + printf("Increasing p from %f to %f\n", pCash.m_WCoin, pCash.m_PCoin + 5000.0); + pThis->m_pcsAgpmBillInfo->SetCashGlobal(pcsCharacter, pCash.m_WCoin + 5000.0, pCash.m_PCoin + 5000.0); - pThis->m_pcsAgpmBillInfo->GetCashGlobal(pcsCharacter, pCash.m_WCoin, pCash.m_PCoin); + printf("Now %f and %f\n", pCash.m_WCoin, pCash.m_PCoin); PACKET_BILLINGINFO_CASHINFO pPacket(pcsCharacter->m_lID, pCash.m_WCoin, pCash.m_PCoin); pThis->SendPacketUser(pPacket, pThis->m_pcsAgsmCharacter->GetCharDPNID(pcsCharacter)); @@ -298,7 +295,7 @@ INT32 AgsmCashMall::CheckBuyRequirement(AgpdCharacter *pcsCharacter, INT32 lProd return AGPMCASH_BUY_RESULT_NOT_ENOUGH_CASH; } #else - /*CashInfoGlobal pCash; + CashInfoGlobal pCash; m_pcsAgpmBillInfo->GetCashGlobal(pcsCharacter, pCash.m_WCoin, pCash.m_PCoin); switch(lType) @@ -318,7 +315,7 @@ INT32 AgsmCashMall::CheckBuyRequirement(AgpdCharacter *pcsCharacter, INT32 lProd } break; default: return AGPMCASH_BUY_RESULT_FAIL; - }*/ + } #endif if (!m_pcsAgpmItem->IsAnyEmptyCashInventory(pcsCharacter)) diff --git a/Modules/AServer/AgsmCashMall/AgsmCashMall.h b/Modules/AServer/AgsmCashMall/AgsmCashMall.h index 2b18398..618014c 100644 --- a/Modules/AServer/AgsmCashMall/AgsmCashMall.h +++ b/Modules/AServer/AgsmCashMall/AgsmCashMall.h @@ -5,6 +5,7 @@ #include "AgsmItemManager.h" #include "AgsmCharManager.h" #include "AgsmBilling.h" +#include "AgppBillInfo.h" class AgsmSystemMessage; class CCallBackFunc; diff --git a/Modules/AServer/AgsmCharManager/AgsmCharManager.cpp b/Modules/AServer/AgsmCharManager/AgsmCharManager.cpp index 9bdcd06..c78ea89 100644 --- a/Modules/AServer/AgsmCharManager/AgsmCharManager.cpp +++ b/Modules/AServer/AgsmCharManager/AgsmCharManager.cpp @@ -1111,7 +1111,8 @@ INT16 AgsmCharManager::EnterGameWorld(AgpdCharacter *pcsCharacter, BOOL bIsCheck //m_pagsmCharacter->CheckRecvCharList(pcsCharacter->m_lID); - m_pagpmBillInfo->SetCashGlobal(pcsCharacter, 10000, 0); + // Set initial cash amount + // m_pagpmBillInfo->SetCashGlobal(pcsCharacter, 10000, 0); // ÀÌ character·Î °ÔÀÓÀÌ ÁøÇàµÉ°Å¶ó´Â ÆÐŶÀ» ³¯·ÁÁØ´Ù. if (!SendCharacterSettingOK(pcsCharacter, pcsAgsdCharacter->m_dpnidCharacter)) From 40ce30a8c5e14c6805bc20f07e24ce19e00155d3 Mon Sep 17 00:00:00 2001 From: Tom Hart Date: Mon, 23 Oct 2023 11:35:10 +0100 Subject: [PATCH 04/11] Revert --- Modules/AClient/AgcmUICashMall/AgcmUICashMall.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Modules/AClient/AgcmUICashMall/AgcmUICashMall.cpp b/Modules/AClient/AgcmUICashMall/AgcmUICashMall.cpp index 112a0c9..da00b0d 100644 --- a/Modules/AClient/AgcmUICashMall/AgcmUICashMall.cpp +++ b/Modules/AClient/AgcmUICashMall/AgcmUICashMall.cpp @@ -582,7 +582,7 @@ BOOL AgcmUICashMall::RefreshCashEdit() #ifdef _AREA_GLOBAL_ CashInfoGlobal pCash; - // m_pagpmBillInfo->SetCashGlobal(m_pcsAgcmCharacter->GetSelfCharacter(), 100000, 100000); + m_pagpmBillInfo->SetCashGlobal(m_pcsAgcmCharacter->GetSelfCharacter(), 100000, 100000); m_pagpmBillInfo->GetCashGlobal(m_pcsAgcmCharacter->GetSelfCharacter(), pCash.m_WCoin, pCash.m_PCoin); szBuffer.Format("%s : %d", m_pcsAgcmUIManager2->GetUIMessage(AGCMUIMESSAGE_CASHMALL_C_CASH), (INT64)pCash.m_WCoin); @@ -732,9 +732,9 @@ BOOL AgcmUICashMall::CBBuyProductConfirm(PVOID pClass, PVOID pData1, PVOID pData pThis->m_pcsAgcmUIManager2->RefreshUserData(pThis->m_pcsUserDataBuyProduct, TRUE); if (pThis->m_pcsBuyItem){ - pThis->m_pcsAgcmUIManager2->ThrowEvent(pThis->m_lEventBuyProductConfirm); + //pThis->m_pcsAgcmUIManager2->ThrowEvent(pThis->m_lEventBuyProductConfirm); - /*CashInfoGlobal pCash; + CashInfoGlobal pCash; INT64 llCash = 0; pThis->m_pagpmBillInfo->GetCashGlobal(pThis->m_pcsAgcmCharacter->GetSelfCharacter(), pCash.m_WCoin, pCash.m_PCoin); @@ -751,7 +751,7 @@ BOOL AgcmUICashMall::CBBuyProductConfirm(PVOID pClass, PVOID pData1, PVOID pData return FALSE; } - pThis->m_pcsAgcmUIManager2->GetFunction("CashMallBuyProduct")->m_fnCallback( pClass, pData1, pData2, pData3, pData4, pData5, pcsTarget, pcsSourceControl);*/ + pThis->m_pcsAgcmUIManager2->GetFunction("CashMallBuyProduct")->m_fnCallback( pClass, pData1, pData2, pData3, pData4, pData5, pcsTarget, pcsSourceControl); } return TRUE; From 2895217a49599b28e4bdbe97f4b4a39857049fa5 Mon Sep 17 00:00:00 2001 From: Tom Hart Date: Mon, 23 Oct 2023 11:48:30 +0100 Subject: [PATCH 05/11] Revert --- AlefServer.sln | 9 ++--- Backup/AlefServer.sln | 79 ------------------------------------------- 2 files changed, 2 insertions(+), 86 deletions(-) delete mode 100644 Backup/AlefServer.sln diff --git a/AlefServer.sln b/AlefServer.sln index 6f1b8ea..a526d7c 100644 --- a/AlefServer.sln +++ b/AlefServer.sln @@ -1,7 +1,5 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.33423.256 -MinimumVisualStudioVersion = 10.0.40219.1 +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AgpModules", "Projects\AgpModules\AgpModules.vcproj", "{55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}" ProjectSection(ProjectDependencies) = postProject {A5C4630C-E440-4767-87CC-6B53905D260E} = {A5C4630C-E440-4767-87CC-6B53905D260E} @@ -75,9 +73,6 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {9FD2C5F6-9D6E-4D05-8D2A-6BE1A97F9744} - EndGlobalSection GlobalSection(DPCodeReviewSolutionGUID) = preSolution DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000} EndGlobalSection diff --git a/Backup/AlefServer.sln b/Backup/AlefServer.sln deleted file mode 100644 index a526d7c..0000000 --- a/Backup/AlefServer.sln +++ /dev/null @@ -1,79 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AgpModules", "Projects\AgpModules\AgpModules.vcproj", "{55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}" - ProjectSection(ProjectDependencies) = postProject - {A5C4630C-E440-4767-87CC-6B53905D260E} = {A5C4630C-E440-4767-87CC-6B53905D260E} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ApModules", "Projects\ApModules\ApModules.vcproj", "{A5C4630C-E440-4767-87CC-6B53905D260E}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AgsModules", "Projects\AgsModules\AgsModules.vcproj", "{AEA137C2-3EAB-40C8-80B9-78FE659027B2}" - ProjectSection(ProjectDependencies) = postProject - {CFD93F15-C931-4506-8E73-36D3817F8E65} = {CFD93F15-C931-4506-8E73-36D3817F8E65} - {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D} = {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AlefServer", "Projects\AlefServer\AlefServer.vcproj", "{AEC0E888-B6F6-4610-8F15-31400F7B3F6E}" - ProjectSection(ProjectDependencies) = postProject - {AEA137C2-3EAB-40C8-80B9-78FE659027B2} = {AEA137C2-3EAB-40C8-80B9-78FE659027B2} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AsNetworkLib", "Projects\AsNetworkLib\AsNetworkLib.vcproj", "{CFD93F15-C931-4506-8E73-36D3817F8E65}" - ProjectSection(ProjectDependencies) = postProject - {A5C4630C-E440-4767-87CC-6B53905D260E} = {A5C4630C-E440-4767-87CC-6B53905D260E} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug Global|Win32 = Debug Global|Win32 - Debug Global|x64 = Debug Global|x64 - Release Global|Win32 = Release Global|Win32 - Release Global|x64 = Release Global|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Debug Global|Win32.ActiveCfg = Debug Global|Win32 - {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Debug Global|Win32.Build.0 = Debug Global|Win32 - {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Debug Global|x64.ActiveCfg = Debug Global|x64 - {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Debug Global|x64.Build.0 = Debug Global|x64 - {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Release Global|Win32.ActiveCfg = Release Global|Win32 - {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Release Global|Win32.Build.0 = Release Global|Win32 - {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Release Global|x64.ActiveCfg = Release Global|x64 - {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Release Global|x64.Build.0 = Release Global|x64 - {A5C4630C-E440-4767-87CC-6B53905D260E}.Debug Global|Win32.ActiveCfg = Debug Global|Win32 - {A5C4630C-E440-4767-87CC-6B53905D260E}.Debug Global|Win32.Build.0 = Debug Global|Win32 - {A5C4630C-E440-4767-87CC-6B53905D260E}.Debug Global|x64.ActiveCfg = Debug Global|x64 - {A5C4630C-E440-4767-87CC-6B53905D260E}.Debug Global|x64.Build.0 = Debug Global|x64 - {A5C4630C-E440-4767-87CC-6B53905D260E}.Release Global|Win32.ActiveCfg = Release Global|Win32 - {A5C4630C-E440-4767-87CC-6B53905D260E}.Release Global|Win32.Build.0 = Release Global|Win32 - {A5C4630C-E440-4767-87CC-6B53905D260E}.Release Global|x64.ActiveCfg = Release Global|x64 - {A5C4630C-E440-4767-87CC-6B53905D260E}.Release Global|x64.Build.0 = Release Global|x64 - {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Debug Global|Win32.ActiveCfg = Debug Global|Win32 - {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Debug Global|Win32.Build.0 = Debug Global|Win32 - {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Debug Global|x64.ActiveCfg = Debug Global|x64 - {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Debug Global|x64.Build.0 = Debug Global|x64 - {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Release Global|Win32.ActiveCfg = Release Global|Win32 - {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Release Global|Win32.Build.0 = Release Global|Win32 - {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Release Global|x64.ActiveCfg = Release Global|x64 - {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Release Global|x64.Build.0 = Release Global|x64 - {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Debug Global|Win32.ActiveCfg = Debug Global|Win32 - {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Debug Global|Win32.Build.0 = Debug Global|Win32 - {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Debug Global|x64.ActiveCfg = Debug Global|x64 - {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Debug Global|x64.Build.0 = Debug Global|x64 - {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Release Global|Win32.ActiveCfg = Release Global|Win32 - {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Release Global|Win32.Build.0 = Release Global|Win32 - {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Release Global|x64.ActiveCfg = Release Global|x64 - {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Release Global|x64.Build.0 = Release Global|x64 - {CFD93F15-C931-4506-8E73-36D3817F8E65}.Debug Global|Win32.ActiveCfg = Debug EM64T|x64 - {CFD93F15-C931-4506-8E73-36D3817F8E65}.Debug Global|x64.ActiveCfg = Debug|x64 - {CFD93F15-C931-4506-8E73-36D3817F8E65}.Debug Global|x64.Build.0 = Debug|x64 - {CFD93F15-C931-4506-8E73-36D3817F8E65}.Release Global|Win32.ActiveCfg = Release EM64T|x64 - {CFD93F15-C931-4506-8E73-36D3817F8E65}.Release Global|x64.ActiveCfg = Release|x64 - {CFD93F15-C931-4506-8E73-36D3817F8E65}.Release Global|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(DPCodeReviewSolutionGUID) = preSolution - DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000} - EndGlobalSection -EndGlobal From 1ac64147c970fb6064d31266079d4a87d40e8367 Mon Sep 17 00:00:00 2001 From: Tom Hart Date: Mon, 23 Oct 2023 16:30:57 +0100 Subject: [PATCH 06/11] Holy shit, seems to be working. DB Next --- .../AClient/AgcmUICashMall/AgcmUICashMall.cpp | 2 +- Modules/AServer/AgsmCashMall/AgsmCashMall.cpp | 17 ++++++++++++++++- .../AServer/AgsmCharManager/AgsmCharManager.cpp | 1 + .../AServer/AgsmCharManager/AgsmCharManager.h | 1 + 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/Modules/AClient/AgcmUICashMall/AgcmUICashMall.cpp b/Modules/AClient/AgcmUICashMall/AgcmUICashMall.cpp index da00b0d..39bdf06 100644 --- a/Modules/AClient/AgcmUICashMall/AgcmUICashMall.cpp +++ b/Modules/AClient/AgcmUICashMall/AgcmUICashMall.cpp @@ -582,7 +582,7 @@ BOOL AgcmUICashMall::RefreshCashEdit() #ifdef _AREA_GLOBAL_ CashInfoGlobal pCash; - m_pagpmBillInfo->SetCashGlobal(m_pcsAgcmCharacter->GetSelfCharacter(), 100000, 100000); + // m_pagpmBillInfo->SetCashGlobal(m_pcsAgcmCharacter->GetSelfCharacter(), 100000, 100000); m_pagpmBillInfo->GetCashGlobal(m_pcsAgcmCharacter->GetSelfCharacter(), pCash.m_WCoin, pCash.m_PCoin); szBuffer.Format("%s : %d", m_pcsAgcmUIManager2->GetUIMessage(AGCMUIMESSAGE_CASHMALL_C_CASH), (INT64)pCash.m_WCoin); diff --git a/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp b/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp index 266b431..7634504 100644 --- a/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp +++ b/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp @@ -115,7 +115,7 @@ BOOL AgsmCashMall::CBEnterGame(PVOID pData, PVOID pClass, PVOID pCustData) if (!pcsCharacter || pcsCharacter->m_szID[0] == 0) return FALSE; - return TRUE; + return pThis->CBRefreshCash(pData, pClass, pCustData); } BOOL AgsmCashMall::CBRequestMallProductList(PVOID pData, PVOID pClass, PVOID pCustData) @@ -422,6 +422,21 @@ BOOL AgsmCashMall::ProcessBuyItem(AgpdCharacter *pcsCharacter, INT32 lProductID, pcsItem->m_lStatusFlag |= AGPMITEM_STATUS_CASH_PPCARD; } + // Deduct credits + CashInfoGlobal pCash; + m_pcsAgpmBillInfo->GetCashGlobal(pcsCharacter, pCash.m_WCoin, pCash.m_PCoin); + switch (lType) { + case AGPMCASHMALL_TYPE_WCOIN: + pCash.m_WCoin = pCash.m_WCoin - pCashItemInfo->m_llPrice; + break; + case AGPMCASHMALL_TYPE_WCOIN_PPCARD: + pCash.m_PCoin = pCash.m_PCoin - pCashItemInfo->m_llPrice; + break; + } + m_pcsAgpmBillInfo->SetCashGlobal(pcsCharacter, pCash.m_WCoin, pCash.m_PCoin); + PACKET_BILLINGINFO_CASHINFO pPacket(pcsCharacter->m_lID, pCash.m_WCoin, pCash.m_PCoin); + SendPacketUser(pPacket, m_pcsAgsmCharacter->GetCharDPNID(pcsCharacter)); + // insert item into cash inventory if (!m_pcsAgpmItem->AddItemToCashInventory(pcsCharacter, pcsItem)) { diff --git a/Modules/AServer/AgsmCharManager/AgsmCharManager.cpp b/Modules/AServer/AgsmCharManager/AgsmCharManager.cpp index c78ea89..dd2635f 100644 --- a/Modules/AServer/AgsmCharManager/AgsmCharManager.cpp +++ b/Modules/AServer/AgsmCharManager/AgsmCharManager.cpp @@ -1113,6 +1113,7 @@ INT16 AgsmCharManager::EnterGameWorld(AgpdCharacter *pcsCharacter, BOOL bIsCheck // Set initial cash amount // m_pagpmBillInfo->SetCashGlobal(pcsCharacter, 10000, 0); + // m_pcsAgpmCashMall->EnumCallback(AGPMCASH_CB_REFRESH_CASH, pcsCharacter, NULL); // ÀÌ character·Î °ÔÀÓÀÌ ÁøÇàµÉ°Å¶ó´Â ÆÐŶÀ» ³¯·ÁÁØ´Ù. if (!SendCharacterSettingOK(pcsCharacter, pcsAgsdCharacter->m_dpnidCharacter)) diff --git a/Modules/AServer/AgsmCharManager/AgsmCharManager.h b/Modules/AServer/AgsmCharManager/AgsmCharManager.h index d5f3e49..6f87963 100644 --- a/Modules/AServer/AgsmCharManager/AgsmCharManager.h +++ b/Modules/AServer/AgsmCharManager/AgsmCharManager.h @@ -18,6 +18,7 @@ Last Update: 2002. 08. 23 #include "ApmMap.h" #include "AgpmFactors.h" #include "AgpmCharacter.h" +#include "AgpmCashMall.h" #include "AgpdCharacter.h" #include "AgpmItem.h" #include "AgpmEventBinding.h" From 4c7248b56b62741fe8a412d4bbd47e3583dcedcd Mon Sep 17 00:00:00 2001 From: Tom Hart Date: Wed, 25 Oct 2023 08:29:01 +0100 Subject: [PATCH 07/11] Slight distraction to fix autoloot settings --- Modules/AClient/AgcmUIOption/AgcmUIOption.cpp | 8 ++- Modules/AServer/AgsmCashMall/AgsmCashMall.cpp | 3 +- .../AServer/AgsmDropItem2/AgsmDropItem2.cpp | 26 ++++++--- Modules/AServer/AgsmRelay2/AgsdRelay2.h | 21 +++++++ Modules/AServer/AgsmRelay2/AgsmRelay2.cpp | 4 ++ Modules/AServer/AgsmRelay2/AgsmRelay2.h | 3 + .../AgsmRelay2/AgsmRelay2CashItemBuyList.cpp | 56 +++++++++++++++++++ 7 files changed, 110 insertions(+), 11 deletions(-) diff --git a/Modules/AClient/AgcmUIOption/AgcmUIOption.cpp b/Modules/AClient/AgcmUIOption/AgcmUIOption.cpp index 6998f9f..ed4af58 100644 --- a/Modules/AClient/AgcmUIOption/AgcmUIOption.cpp +++ b/Modules/AClient/AgcmUIOption/AgcmUIOption.cpp @@ -3330,6 +3330,10 @@ BOOL AgcmUIOption::LoadFromINI(char* szFile) { csStream.GetValue(&m_bAutolootOwn); } + else if(!strcmp(szValueName, "REF_AL")) + { + csStream.GetValue(&m_bIsAutoPickItem); + } else if(!strcmp(szValueName, "REF_PIN")) { csStream.GetValue(&m_bRefusePartyIn); @@ -3494,6 +3498,7 @@ BOOL AgcmUIOption::SaveToINI(char* szFileName) if(!csStream.WriteValue("REF_TRADE", m_bRefuseTrade)) return FALSE; if(!csStream.WriteValue("REF_DXP", m_bDisableXP)) return FALSE; if(!csStream.WriteValue("REF_ALOWN", m_bAutolootOwn)) return FALSE; + if(!csStream.WriteValue("REF_AL", m_bIsAutoPickItem)) return FALSE; if(!csStream.WriteValue("REF_PIN", m_bRefusePartyIn)) return FALSE; if(!csStream.WriteValue("REF_GIN", m_bRefuseGuildIn)) return FALSE; if(!csStream.WriteValue("REF_GBAT", m_bRefuseGuildBattle)) return FALSE; @@ -3849,8 +3854,9 @@ VOID AgcmUIOption::SendOptionFlag() if (m_bRefuseGuildIn) lOptionFlag = m_pcsAgpmCharacter->SetOptionFlag(lOptionFlag, AGPDCHAR_OPTION_REFUSE_GUILD_IN); if (m_bRefuseGuildRelation) lOptionFlag = m_pcsAgpmCharacter->SetOptionFlag(lOptionFlag, AGPDCHAR_OPTION_REFUSE_GUILD_RELATION); if (m_bRefuseBuddy) lOptionFlag = m_pcsAgpmCharacter->SetOptionFlag(lOptionFlag, AGPDCHAR_OPTION_REFUSE_BUDDY); + if (m_bIsAutoPickItem) lOptionFlag = m_pcsAgpmCharacter->SetOptionFlag(lOptionFlag, AGPDCHAR_OPTION_AUTO_PICKUP_ONOFF); if (m_bDisableXP) lOptionFlag = m_pcsAgpmCharacter->SetOptionFlag(lOptionFlag, AGPDCHAR_OPTION_DISABLE_XP); - if (m_bAutolootOwn) lOptionFlag = m_pcsAgpmCharacter->SetOptionFlag(lOptionFlag, AGPDCHAR_OPTION_AUTO_PICKUP_ONOFF); + if (m_bAutolootOwn) lOptionFlag = m_pcsAgpmCharacter->SetOptionFlag(lOptionFlag, AGPDCHAR_OPTION_AUTO_PICKUP_OWN_ONLY); m_pcsAgcmCharacter->SendPacketOptionFlag(pcsSelfCharacter, lOptionFlag); } diff --git a/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp b/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp index 7634504..26cd156 100644 --- a/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp +++ b/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp @@ -168,7 +168,8 @@ BOOL AgsmCashMall::CBRefreshCash(PVOID pData, PVOID pClass, PVOID pCustData) pcsAttachData->m_ulLastRefreshCashTimeMsec = pThis->GetClockCount() + AGPMCASHMALL_MIN_INTERVAL_REFRESH_CASH; - // request to billing server + // Request to billing server. + // EnumCallback(AGSMITEM_CB_USE_ITEM_REVERSE_ORB, pcsItem->m_pcsCharacter, pcsItem); CashInfoGlobal pCash; pThis->m_pcsAgpmBillInfo->GetCashGlobal(pcsCharacter, pCash.m_WCoin, pCash.m_PCoin); diff --git a/Modules/AServer/AgsmDropItem2/AgsmDropItem2.cpp b/Modules/AServer/AgsmDropItem2/AgsmDropItem2.cpp index e32acc9..8696d61 100644 --- a/Modules/AServer/AgsmDropItem2/AgsmDropItem2.cpp +++ b/Modules/AServer/AgsmDropItem2/AgsmDropItem2.cpp @@ -359,7 +359,7 @@ BOOL AgsmDropItem2::CBDropItem(PVOID pData, PVOID pClass, PVOID pCustData) return TRUE; } - BOOL autolootOwn = ((AgpmCharacter *) pcsDropInfo->m_pcsFirstLooter)->IsOptionFlag(((AgpdCharacter *) pcsDropInfo->m_pcsFirstLooter), AGPDCHAR_OPTION_AUTO_PICKUP_OWN_ONLY) == TRUE; + BOOL autolootOwnConfig = ((AgpmCharacter *) pcsDropInfo->m_pcsFirstLooter)->IsOptionFlag(((AgpdCharacter *) pcsDropInfo->m_pcsFirstLooter), AGPDCHAR_OPTION_AUTO_PICKUP_OWN_ONLY) == TRUE; INT32 lCharClass = pThis->m_pcsAgpmFactors->GetClass(&((AgpdCharacter *) pcsDropInfo->m_pcsFirstLooter)->m_csFactor); INT32 lCharRace = pThis->m_pcsAgpmFactors->GetRace(&((AgpdCharacter *) pcsDropInfo->m_pcsFirstLooter)->m_csFactor); @@ -369,14 +369,22 @@ BOOL AgsmDropItem2::CBDropItem(PVOID pData, PVOID pClass, PVOID pCustData) pThis->m_pcsAgsmCharacter->IsAutoPickup((AgpdCharacter *) pcsDropInfo->m_pcsFirstLooter) && pcsItem->m_pcsItemTemplate->m_lID != 4608) { - if ( - autolootOwn && - !( - pThis->m_pcsAgpmFactors->CheckClass((AuCharClassType)lCharClass, &pcsItem->m_csRestrictFactor) && - pThis->m_pcsAgpmFactors->CheckRace ((AuRaceType) lCharRace, &pcsItem->m_csRestrictFactor) && - pThis->m_pcsAgpmFactors->GetClass (&pcsItem->m_csRestrictFactor) != AUCHARCLASS_TYPE_NONE - ) - ) { + printf( + "Dropping %s. Class %d, Race: %d, Rank: %d\n", + pcsItem->m_pcsItemTemplate->m_szName, + pThis->m_pcsAgpmFactors->GetClass (&pcsItem->m_csRestrictFactor), + pThis->m_pcsAgpmFactors->GetRace (&pcsItem->m_csRestrictFactor), + pcsADItemTemplate->m_lDropRank + ); + + BOOL notForMe = !( + pThis->m_pcsAgpmFactors->CheckClass((AuCharClassType)lCharClass, &pcsItem->m_csRestrictFactor) && + pThis->m_pcsAgpmFactors->CheckRace ((AuRaceType) lCharRace, &pcsItem->m_csRestrictFactor) + ); + + BOOL classless = pThis->m_pcsAgpmFactors->GetClass (&pcsItem->m_csRestrictFactor) == AUCHARCLASS_TYPE_NONE; + + if (autolootOwnConfig && notForMe && !classless) { return pThis->DropItemToField(pcsDropInfo->m_pcsDropCharacter, pcsDropInfo->m_pcsFirstLooter, pcsItem); } diff --git a/Modules/AServer/AgsmRelay2/AgsdRelay2.h b/Modules/AServer/AgsmRelay2/AgsdRelay2.h index d156046..d48b3f9 100644 --- a/Modules/AServer/AgsmRelay2/AgsdRelay2.h +++ b/Modules/AServer/AgsmRelay2/AgsdRelay2.h @@ -112,6 +112,7 @@ typedef enum _eAgsmRelay2Param AGSMRELAY_PARAM_COUPON, // 82. Coupon AGSMRELAY_PARAM_SERVERMOVE, // 83. Ư¼ºÈ­ ¼­¹ö ¼­¹öÀ̵¿ //JK_Ư¼ºÈ­¼­¹ö + AGSMRELAY_PARAM_REQUEST_CASH, // 84. } eAgsmRelay2Param; @@ -573,6 +574,26 @@ class AgsdRelay2CashItemBuyList : public AgsdDBParam, public ApMemory + { + public: + CHAR m_szAccountID[AGSMACCOUNT_MAX_ACCOUNT_NAME + 1]; + + protected: + BOOL SetParamUpdate(AuStatement *pStatement); + BOOL SetParamInsert(AuStatement *pStatement); + + public: + AgsdRelay2RequestCash(); + virtual ~AgsdRelay2RequestCash() {} + virtual void Release() { delete this; } + + virtual void Dump(CHAR *pszOp); + }; + // // ========== Wanted Criminal ========== // diff --git a/Modules/AServer/AgsmRelay2/AgsmRelay2.cpp b/Modules/AServer/AgsmRelay2/AgsmRelay2.cpp index 3905419..daed6bb 100644 --- a/Modules/AServer/AgsmRelay2/AgsmRelay2.cpp +++ b/Modules/AServer/AgsmRelay2/AgsmRelay2.cpp @@ -718,6 +718,10 @@ BOOL AgsmRelay2::OnReceive(UINT32 ulType, PVOID pvPacket, INT16 nSize, UINT32 ul OnParamServerMove((PACKET_HEADER*)pvPacket, ulNID); break; + case AGSMRELAY_PARAM_REQUEST_CASH: + OnParamRequestCash(nParam, pvPacketEmb, ulNID); + break; + default: OutputDebugString("!!! Error : Unknown Packet Received in AgsmRelay2::OnReceive()\n"); break; diff --git a/Modules/AServer/AgsmRelay2/AgsmRelay2.h b/Modules/AServer/AgsmRelay2/AgsmRelay2.h index 2052dbc..d7cde6f 100644 --- a/Modules/AServer/AgsmRelay2/AgsmRelay2.h +++ b/Modules/AServer/AgsmRelay2/AgsmRelay2.h @@ -214,6 +214,7 @@ class AgsmRelay2 : public AgsModule AuPacket m_csPacketMailItem; AuPacket m_csPacketRowset; AuPacket m_csPacketCashItemBuyList; + AuPacket m_csPacketRequestCash; AuPacket m_csPacketWantedCriminal; AuPacket m_csPacketCastle; AuPacket m_csPacketSiege; @@ -242,6 +243,7 @@ class AgsmRelay2 : public AgsModule void InitPacketBuddy(); void InitPacketMail(); void InitPacketCashItemBuyList(); + void InitPacketRequestCash(); void InitPacketWantedCriminal(); void InitPacketSiegeWar(); void InitPacketGuildItem(); @@ -279,6 +281,7 @@ class AgsmRelay2 : public AgsModule BOOL OnParamMail(INT16 nParam, PVOID pvPacket, UINT32 ulNID); BOOL OnParamMailItem(INT16 nParam, PVOID pvPacket, UINT32 ulNID); BOOL OnParamCashItemBuyList(INT16 nParam, PVOID pvPacket, UINT32 ulNID); + BOOL OnParamRequestCash(INT16 nParam, PVOID pvPacket, UINT32 ulNID); BOOL OnParamWantedCriminal(INT16 nParam, PVOID pvPacket, UINT32 ulNID); BOOL OnParamNotifySaveAll(INT16 nParam, PVOID pvPacket, UINT32 ulNID); BOOL OnParamCastle(INT16 nParam, PVOID pvPacket, UINT32 ulNID); diff --git a/Modules/AServer/AgsmRelay2/AgsmRelay2CashItemBuyList.cpp b/Modules/AServer/AgsmRelay2/AgsmRelay2CashItemBuyList.cpp index 2437778..353cf54 100644 --- a/Modules/AServer/AgsmRelay2/AgsmRelay2CashItemBuyList.cpp +++ b/Modules/AServer/AgsmRelay2/AgsmRelay2CashItemBuyList.cpp @@ -34,6 +34,31 @@ void AgsmRelay2::InitPacketCashItemBuyList() } +void AgsmRelay2::InitPacketRequestCash() + { + m_csPacketCashItemBuyList.SetFlagLength(sizeof(INT16)); + m_csPacketCashItemBuyList.SetFieldType(AUTYPE_INT16, 1, // eAgsmRelay2Operation + AUTYPE_CHAR, AGSMACCOUNT_MAX_ACCOUNT_NAME + 1, + AUTYPE_END, 0 + ); + + } + +BOOL AgsmRelay2::OnParamRequestCash(INT16 nParam, PVOID pvPacket, UINT32 ulNID) + { + AgsdRelay2RequestCash *pAgsdRelay2 = new AgsdRelay2RequestCash; + + CHAR *pszAccountID = NULL; + + m_csPacketCashItemBuyList.GetField(FALSE, pvPacket, 0, + &pAgsdRelay2->m_eOperation, + &pszAccountID + ); + + printf("%s : %s", __FUNCTION__, pszAccountID); + + return TRUE; + } BOOL AgsmRelay2::OnParamCashItemBuyList(INT16 nParam, PVOID pvPacket, UINT32 ulNID) { @@ -335,3 +360,34 @@ void AgsdRelay2CashItemBuyList::Dump(CHAR *pszOp) } +/********************************************************************/ +/* The Implementation of AgsdRelay2RequestCash class */ +/********************************************************************/ +// +AgsdRelay2RequestCash::AgsdRelay2RequestCash() + { + ZeroMemory(m_szAccountID, sizeof(m_szAccountID)); + } + + +BOOL AgsdRelay2RequestCash::SetParamUpdate(AuStatement* pStatement) + { + INT16 i=0; + + return TRUE; + } + + +BOOL AgsdRelay2RequestCash::SetParamInsert(AuStatement *pStatement) + { + INT16 i=0; + + pStatement->SetParam(i++, m_szAccountID, sizeof(m_szAccountID)); + + return TRUE; + } + + +void AgsdRelay2RequestCash::Dump(CHAR *pszOp) + { + } From 7ffa86661b7d3e147866dcb2df699ea9421e7991 Mon Sep 17 00:00:00 2001 From: Tom Hart Date: Thu, 26 Oct 2023 18:03:22 +0100 Subject: [PATCH 08/11] Can kinda send data to the relay at least now --- Modules/APublic/AgpmCashMall/AgpdCashMall.h | 2 +- Modules/APublic/AgpmCashMall/AgpmCashMall.cpp | 7 ++++ Modules/APublic/AgpmCashMall/AgpmCashMall.h | 1 + Modules/APublic/ApBase/ApDefine.h | 2 +- Modules/AServer/AgsmCashMall/AgsmCashMall.cpp | 33 +++++++++++++++ Modules/AServer/AgsmCashMall/AgsmCashMall.h | 5 +++ .../AServer/AgsmDropItem2/AgsmDropItem2.cpp | 4 +- Modules/AServer/AgsmRelay2/AgsmRelay2.cpp | 41 +++++++++++++++++++ Modules/AServer/AgsmRelay2/AgsmRelay2.h | 4 ++ .../AgsmRelay2/AgsmRelay2CashItemBuyList.cpp | 20 +++++---- 10 files changed, 107 insertions(+), 12 deletions(-) diff --git a/Modules/APublic/AgpmCashMall/AgpdCashMall.h b/Modules/APublic/AgpmCashMall/AgpdCashMall.h index 183ccea..f2b2742 100644 --- a/Modules/APublic/AgpmCashMall/AgpdCashMall.h +++ b/Modules/APublic/AgpmCashMall/AgpdCashMall.h @@ -2,7 +2,7 @@ #include "ApDefine.h" -#define AGPMCASHMALL_MIN_INTERVAL_REFRESH_CASH 1000 +#define AGPMCASHMALL_MIN_INTERVAL_REFRESH_CASH 100 typedef struct _AgpdCashMall { diff --git a/Modules/APublic/AgpmCashMall/AgpmCashMall.cpp b/Modules/APublic/AgpmCashMall/AgpmCashMall.cpp index ac67804..47e28a3 100644 --- a/Modules/APublic/AgpmCashMall/AgpmCashMall.cpp +++ b/Modules/APublic/AgpmCashMall/AgpmCashMall.cpp @@ -24,6 +24,13 @@ AgpmCashMall::AgpmCashMall() AUTYPE_END, 0 ); + m_csPacketRequestCash.SetFlagLength(sizeof(INT64)); + m_csPacketRequestCash.SetFieldType( + AUTYPE_INT8, 1, // operation + AUTYPE_CHAR, AGPACHARACTER_MAX_ID_STRING + 1, // Game ID + AUTYPE_END, 0 + ); + m_lIndexAttachData = 0; m_bUseCashMall = TRUE; diff --git a/Modules/APublic/AgpmCashMall/AgpmCashMall.h b/Modules/APublic/AgpmCashMall/AgpmCashMall.h index f08368a..6905033 100644 --- a/Modules/APublic/AgpmCashMall/AgpmCashMall.h +++ b/Modules/APublic/AgpmCashMall/AgpmCashMall.h @@ -183,6 +183,7 @@ class AgpmCashMall : public ApModule public: AuPacket m_csPacket; + AuPacket m_csPacketRequestCash; public: AgpmCashMall(); diff --git a/Modules/APublic/ApBase/ApDefine.h b/Modules/APublic/ApBase/ApDefine.h index 84eb83a..2e523de 100644 --- a/Modules/APublic/ApBase/ApDefine.h +++ b/Modules/APublic/ApBase/ApDefine.h @@ -709,7 +709,7 @@ enum ePacketType AGSMRELAY_PACKET_TYPE = 0x25, AGSMITEMLOG_PACKET_TYPE = 0x26, AGSMLOG_PACKET_TYPE = 0x27, - AGSMGUILD_PACKET_TYPE = 0x28, + AGSMGUILD_PACKET_TYPE = 0x28 }; // const variable definition diff --git a/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp b/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp index 26cd156..4db0741 100644 --- a/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp +++ b/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp @@ -170,7 +170,24 @@ BOOL AgsmCashMall::CBRefreshCash(PVOID pData, PVOID pClass, PVOID pCustData) // Request to billing server. // EnumCallback(AGSMITEM_CB_USE_ITEM_REVERSE_ORB, pcsItem->m_pcsCharacter, pcsItem); + + INT8 cOperation = AGPMCASH_OPERATION_REFRESH_CASH; + INT16 nPacketLength = 0; + PVOID pvPacket = pThis->m_pcsAgpmCashMall->m_csPacketRequestCash.MakePacket( + TRUE, + &nPacketLength, + AGPMCASHMALL_PACKET_TYPE, + &cOperation, + &pcsCharacter->m_lID + ); + + BOOL bResult = pThis->SendPacket(pvPacket, nPacketLength, pThis->_GetCharacterNID(pcsCharacter)); + pThis->m_pcsAgpmCashMall->m_csPacketRequestCash.FreePacket(pvPacket); + + + + CashInfoGlobal pCash; pThis->m_pcsAgpmBillInfo->GetCashGlobal(pcsCharacter, pCash.m_WCoin, pCash.m_PCoin); printf("Increasing w from %f to %f\n", pCash.m_WCoin, pCash.m_WCoin + 5000.0); @@ -186,6 +203,22 @@ BOOL AgsmCashMall::CBRefreshCash(PVOID pData, PVOID pClass, PVOID pCustData) return TRUE; } +// Helper +//=============================================== +// +UINT32 AgsmCashMall::_GetCharacterNID(INT32 lCID) + { + ASSERT(NULL != m_pAgsmCharacter); + return m_pcsAgsmCharacter->GetCharDPNID(lCID); + } + + +UINT32 AgsmCashMall::_GetCharacterNID(AgpdCharacter *pAgpdCharacter) + { + ASSERT(NULL != m_pAgsmCharacter); + return m_pcsAgsmCharacter->GetCharDPNID(pAgpdCharacter); + } + BOOL AgsmCashMall::CBCheckListVersion(PVOID pData, PVOID pClass, PVOID pCustData) { if (!pData || !pClass || !pCustData) diff --git a/Modules/AServer/AgsmCashMall/AgsmCashMall.h b/Modules/AServer/AgsmCashMall/AgsmCashMall.h index 618014c..02cc815 100644 --- a/Modules/AServer/AgsmCashMall/AgsmCashMall.h +++ b/Modules/AServer/AgsmCashMall/AgsmCashMall.h @@ -51,4 +51,9 @@ class AgsmCashMall : public AgsModule { BOOL ProcessBuyItem(AgpdCharacter *pcsCharacter, INT32 lProductID, UINT8 ucMallListVersion, INT32 lType); BOOL ProcessBuyItemResult(AgpdCharacter *pcsCharacter, AgsdBillingItem *pcsBilling); BOOL SendMallProductList(AgpdCharacter *pcsCharacter, INT32 lTab); + +protected: + // Helper + UINT32 _GetCharacterNID(INT32 lCID); + UINT32 _GetCharacterNID(AgpdCharacter *pAgpdCharacter); }; \ No newline at end of file diff --git a/Modules/AServer/AgsmDropItem2/AgsmDropItem2.cpp b/Modules/AServer/AgsmDropItem2/AgsmDropItem2.cpp index 8696d61..89509b5 100644 --- a/Modules/AServer/AgsmDropItem2/AgsmDropItem2.cpp +++ b/Modules/AServer/AgsmDropItem2/AgsmDropItem2.cpp @@ -369,13 +369,13 @@ BOOL AgsmDropItem2::CBDropItem(PVOID pData, PVOID pClass, PVOID pCustData) pThis->m_pcsAgsmCharacter->IsAutoPickup((AgpdCharacter *) pcsDropInfo->m_pcsFirstLooter) && pcsItem->m_pcsItemTemplate->m_lID != 4608) { - printf( + /*printf( "Dropping %s. Class %d, Race: %d, Rank: %d\n", pcsItem->m_pcsItemTemplate->m_szName, pThis->m_pcsAgpmFactors->GetClass (&pcsItem->m_csRestrictFactor), pThis->m_pcsAgpmFactors->GetRace (&pcsItem->m_csRestrictFactor), pcsADItemTemplate->m_lDropRank - ); + );*/ BOOL notForMe = !( pThis->m_pcsAgpmFactors->CheckClass((AuCharClassType)lCharClass, &pcsItem->m_csRestrictFactor) && diff --git a/Modules/AServer/AgsmRelay2/AgsmRelay2.cpp b/Modules/AServer/AgsmRelay2/AgsmRelay2.cpp index daed6bb..703b0e7 100644 --- a/Modules/AServer/AgsmRelay2/AgsmRelay2.cpp +++ b/Modules/AServer/AgsmRelay2/AgsmRelay2.cpp @@ -76,6 +76,7 @@ AgsmRelay2::AgsmRelay2() InitPacketBuddy(); InitPacketMail(); InitPacketCashItemBuyList(); + InitPacketRequestCash(); InitPacketWantedCriminal(); InitPacketSiegeWar(); InitPacketGuildItem(); @@ -162,6 +163,7 @@ BOOL AgsmRelay2::OnAddModule() m_pAgpmMailBox = (AgpmMailBox *) GetModule(_T("AgpmMailBox")); m_pAgsmMailBox = (AgsmMailBox *) GetModule(_T("AgsmMailBox")); m_pAgsmCashMall = (AgsmCashMall *) GetModule(_T("AgsmCashMall")); + m_pAgpmCashMall = (AgpmCashMall *) GetModule(_T("AgpmCashMall")); m_pAgsmReturnToLogin = (AgsmReturnToLogin *) GetModule(_T("AgsmReturnToLogin")); m_pAgsmWantedCriminal = (AgsmWantedCriminal *) GetModule(_T("AgsmWantedCriminal")); m_pAgsmSiegeWar = (AgsmSiegeWar *) GetModule(_T("AgsmSiegeWar")); @@ -423,6 +425,12 @@ BOOL AgsmRelay2::OnAddModule() } + if (m_pAgpmCashMall) + { + if (!m_pAgpmCashMall->SetCallbackRefreshCash(CBRefreshCash, this)) + return FALSE; + } + if (m_pAgsmWantedCriminal) { if (!m_pAgsmWantedCriminal->SetCallbackSelect(CBWantedCriminalSelect, this)) @@ -1180,6 +1188,39 @@ BOOL AgsmRelay2::EnableBufferingSend() +BOOL AgsmRelay2::CBRefreshCash(PVOID pData, PVOID pClass, PVOID pCustData) +{ + if (!pClass || !pData) + return FALSE; + + AgsmRelay2 *pThis = (AgsmRelay2 *) pClass; + AgpdCharacter *pcsCharacter = (AgpdCharacter *) pData; + + printf("%s for %s\n", __FUNCTION__, &pcsCharacter->m_szID); + INT16 nPacketLength = 0; + INT16 nOperation = AGSMDATABASE_OPERATION_SELECT; + PVOID pvPacketPingSend = pThis->m_csPacketRequestCash.MakePacket(TRUE, &nPacketLength, 0, &pcsCharacter->m_szID); + if (!pvPacketPingSend) + return FALSE; + + + CHAR *pszAccountID = NULL; + + pThis->m_csPacketRequestCash.GetField(FALSE, pvPacketPingSend, 0, &pszAccountID); + printf("Got back %s\n", pszAccountID); + pThis->m_csPacketRequestCash.GetField(TRUE, pvPacketPingSend, 0, &pszAccountID); + printf("Got back %s\n", pszAccountID); + + pThis->m_csPacketRequestCash.GetField(FALSE, pvPacketPingSend, nPacketLength, &pszAccountID); + printf("Got back %s\n", pszAccountID); + pThis->m_csPacketRequestCash.GetField(TRUE, pvPacketPingSend, nPacketLength, &pszAccountID); + printf("Got back %s\n", pszAccountID); + + BOOL bResult = pThis->MakeAndSendRelayPacket(pvPacketPingSend, AGSMRELAY_PARAM_REQUEST_CASH); + pThis->m_csPacketRequestCash.FreePacket(pvPacketPingSend); + + return bResult; +} // //=================================== diff --git a/Modules/AServer/AgsmRelay2/AgsmRelay2.h b/Modules/AServer/AgsmRelay2/AgsmRelay2.h index d7cde6f..9a43e4a 100644 --- a/Modules/AServer/AgsmRelay2/AgsmRelay2.h +++ b/Modules/AServer/AgsmRelay2/AgsmRelay2.h @@ -13,6 +13,7 @@ #include "AgsmServerManager2.h" #include "AgpmFactors.h" #include "AgpmCharacter.h" +#include "AgpdCharacter.h" #include "AgsmCharacter.h" #include "AgpmItem.h" #include "AgsmItem.h" @@ -33,6 +34,7 @@ #include "AgsmAdmin.h" #include "AgsmAuctionRelay.h" #include "AgsmCashMall.h" +#include "AgpmCashMall.h" #include "AuCircularBuffer.h" #include "AgsmReturnToLogin.h" #include "AgsmWantedCriminal.h" @@ -176,6 +178,7 @@ class AgsmRelay2 : public AgsModule AgpmMailBox *m_pAgpmMailBox; AgsmMailBox *m_pAgsmMailBox; AgsmCashMall *m_pAgsmCashMall; + AgpmCashMall *m_pAgpmCashMall; AgsmReturnToLogin *m_pAgsmReturnToLogin; AgsmWantedCriminal *m_pAgsmWantedCriminal; AgsmSiegeWar *m_pAgsmSiegeWar; @@ -508,6 +511,7 @@ class AgsmRelay2 : public AgsModule static BOOL CBAdminItemConvertUpdate2(PVOID pData, PVOID pClass, PVOID pCustData); static BOOL CBAdminItemUpdate(PVOID pData, PVOID pClass, PVOID pCustData); static BOOL CBAdminSkillUpdate(PVOID pData, PVOID pClass, PVOID pCustData); + static BOOL CBRefreshCash(PVOID pData, PVOID pClass, PVOID pCustData); // Operation result callback (game-side after execution callback) static BOOL CBOperationResultGuildMaster(PVOID pData, PVOID pClass, PVOID pCustData); diff --git a/Modules/AServer/AgsmRelay2/AgsmRelay2CashItemBuyList.cpp b/Modules/AServer/AgsmRelay2/AgsmRelay2CashItemBuyList.cpp index 353cf54..18fb542 100644 --- a/Modules/AServer/AgsmRelay2/AgsmRelay2CashItemBuyList.cpp +++ b/Modules/AServer/AgsmRelay2/AgsmRelay2CashItemBuyList.cpp @@ -36,9 +36,8 @@ void AgsmRelay2::InitPacketCashItemBuyList() void AgsmRelay2::InitPacketRequestCash() { - m_csPacketCashItemBuyList.SetFlagLength(sizeof(INT16)); - m_csPacketCashItemBuyList.SetFieldType(AUTYPE_INT16, 1, // eAgsmRelay2Operation - AUTYPE_CHAR, AGSMACCOUNT_MAX_ACCOUNT_NAME + 1, + m_csPacketRequestCash.SetFlagLength(sizeof(INT16)); + m_csPacketRequestCash.SetFieldType(AUTYPE_CHAR, AGPACHARACTER_MAX_ID_STRING + 1, // Game ID AUTYPE_END, 0 ); @@ -50,12 +49,17 @@ BOOL AgsmRelay2::OnParamRequestCash(INT16 nParam, PVOID pvPacket, UINT32 ulNID) CHAR *pszAccountID = NULL; - m_csPacketCashItemBuyList.GetField(FALSE, pvPacket, 0, - &pAgsdRelay2->m_eOperation, - &pszAccountID - ); + m_csPacketRequestCash.GetField(TRUE, pvPacket, 0, &pszAccountID); + + printf("%s : %s\n", __FUNCTION__, pszAccountID); + + m_csPacketRequestCash.GetField(TRUE, pvPacket, 65, &pszAccountID); + + printf("%s : %s\n", __FUNCTION__, pszAccountID); + + m_csPacketRequestCash.GetField(TRUE, pvPacket, 256, &pszAccountID); - printf("%s : %s", __FUNCTION__, pszAccountID); + printf("%s : %s\n", __FUNCTION__, pszAccountID); return TRUE; } From 2b39a84aa3692c422ac96edb99e2d6d0fbbbdd84 Mon Sep 17 00:00:00 2001 From: Tom Hart Date: Fri, 27 Oct 2023 09:51:52 +0100 Subject: [PATCH 09/11] Got a query running --- Modules/AServer/AgsmCashMall/AgsmCashMall.cpp | 4 +- .../AServer/AgsmDatabasePool/IOCPDatabase.cpp | 2 +- Modules/AServer/AgsmRelay2/AgsdRelay2.h | 2 + Modules/AServer/AgsmRelay2/AgsmRelay2.cpp | 6 + Modules/AServer/AgsmRelay2/AgsmRelay2.h | 4 + .../AgsmRelay2/AgsmRelay2CashItemBuyList.cpp | 121 +++++++++++++++++- .../AServer/AgsmRelay2/AgsmRelay2MailBox.cpp | 4 +- 7 files changed, 130 insertions(+), 13 deletions(-) diff --git a/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp b/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp index 4db0741..a18239e 100644 --- a/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp +++ b/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp @@ -188,7 +188,7 @@ BOOL AgsmCashMall::CBRefreshCash(PVOID pData, PVOID pClass, PVOID pCustData) - CashInfoGlobal pCash; + /*CashInfoGlobal pCash; pThis->m_pcsAgpmBillInfo->GetCashGlobal(pcsCharacter, pCash.m_WCoin, pCash.m_PCoin); printf("Increasing w from %f to %f\n", pCash.m_WCoin, pCash.m_WCoin + 5000.0); printf("Increasing p from %f to %f\n", pCash.m_WCoin, pCash.m_PCoin + 5000.0); @@ -198,7 +198,7 @@ BOOL AgsmCashMall::CBRefreshCash(PVOID pData, PVOID pClass, PVOID pCustData) printf("Now %f and %f\n", pCash.m_WCoin, pCash.m_PCoin); PACKET_BILLINGINFO_CASHINFO pPacket(pcsCharacter->m_lID, pCash.m_WCoin, pCash.m_PCoin); - pThis->SendPacketUser(pPacket, pThis->m_pcsAgsmCharacter->GetCharDPNID(pcsCharacter)); + pThis->SendPacketUser(pPacket, pThis->m_pcsAgsmCharacter->GetCharDPNID(pcsCharacter));*/ return TRUE; } diff --git a/Modules/AServer/AgsmDatabasePool/IOCPDatabase.cpp b/Modules/AServer/AgsmDatabasePool/IOCPDatabase.cpp index d265c3b..9196c6e 100644 --- a/Modules/AServer/AgsmDatabasePool/IOCPDatabase.cpp +++ b/Modules/AServer/AgsmDatabasePool/IOCPDatabase.cpp @@ -285,7 +285,7 @@ BOOL DBWorker::ExecuteQuery(AgsdQuery* pQuery) INT32 lFailed = m_pIOCP->Failed(); AGSMTRACE("!!! Error : [%05d][%08d] Query Failed [%8d][%s]\n", m_nIndex, GetId(), lFailed, pQuery->Get() ? pQuery->Get() : ""); - + GetLocalTime(&st); sprintf(szLog, "LOG\\RelayServer_QueryError-%04d%02d%02d.log", st.wYear, st.wMonth, st.wDay); diff --git a/Modules/AServer/AgsmRelay2/AgsdRelay2.h b/Modules/AServer/AgsmRelay2/AgsdRelay2.h index d48b3f9..b7c9aa3 100644 --- a/Modules/AServer/AgsmRelay2/AgsdRelay2.h +++ b/Modules/AServer/AgsmRelay2/AgsdRelay2.h @@ -583,8 +583,10 @@ class AgsdRelay2RequestCash : public AgsdDBParam, public ApMemorym_nIndex = 522; + pQuery->m_pParam = pAgsdRelay2; + pQuery->SetCallback(AgsmRelay2::CBFinishOperationRefreshCash, + AgsmRelay2::CBFailOperation, + this, pAgsdRelay2); + + return m_pAgsmDatabasePool->Execute(pQuery);*/ + + + + + /*CashInfoGlobal pCash; + m_pAgpm + pThis->m_pcsAgpmBillInfo->GetCashGlobal(pcsCharacter, pCash.m_WCoin, pCash.m_PCoin); + printf("Increasing w from %f to %f\n", pCash.m_WCoin, pCash.m_WCoin + 5000.0); + printf("Increasing p from %f to %f\n", pCash.m_WCoin, pCash.m_PCoin + 5000.0); + pThis->m_pcsAgpmBillInfo->SetCashGlobal(pcsCharacter, pCash.m_WCoin + 5000.0, pCash.m_PCoin + 5000.0); + + pThis->m_pcsAgpmBillInfo->GetCashGlobal(pcsCharacter, pCash.m_WCoin, pCash.m_PCoin); + printf("Now %f and %f\n", pCash.m_WCoin, pCash.m_PCoin); + + PACKET_BILLINGINFO_CASHINFO pPacket(pcsCharacter->m_lID, pCash.m_WCoin, pCash.m_PCoin); + pThis->SendPacketUser(pPacket, pThis->m_pcsAgsmCharacter->GetCharDPNID(pcsCharacter));*/ + BOOL AgsmRelay2::OnParamRequestCash(INT16 nParam, PVOID pvPacket, UINT32 ulNID) { AgsdRelay2RequestCash *pAgsdRelay2 = new AgsdRelay2RequestCash; CHAR *pszAccountID = NULL; - m_csPacketRequestCash.GetField(TRUE, pvPacket, 0, &pszAccountID); + m_csPacketRequestCash.GetField(TRUE, pvPacket, 256, &pszAccountID); - printf("%s : %s\n", __FUNCTION__, pszAccountID); + // printf("%s : %s\n", __FUNCTION__, pszAccountID); - m_csPacketRequestCash.GetField(TRUE, pvPacket, 65, &pszAccountID); - printf("%s : %s\n", __FUNCTION__, pszAccountID); + pAgsdRelay2->m_ulNID = ulNID; + _tcscpy(pAgsdRelay2->m_szAccountID, pszAccountID ? pszAccountID : _T("")); - m_csPacketRequestCash.GetField(TRUE, pvPacket, 256, &pszAccountID); + return EnumCallback(AGSMRELAY_PARAM_REQUEST_CASH, (PVOID)pAgsdRelay2, (PVOID)nParam); + } + +BOOL AgsmRelay2::CBOperationRefreshCash(PVOID pData, PVOID pClass, PVOID pCustData) + { + AgsmRelay2 *pThis = (AgsmRelay2 *) pClass; + AgsdRelay2RequestCash *pAgsdRelay2 = (AgsdRelay2RequestCash *) pData; + // INT16 nParam = (INT16) pCustData; + + // pAgsdRelay2->m_nParam = nParam; + + AgsdQueryWithParam* pQuery = new AgsdQueryWithParam; + pAgsdRelay2->m_eOperation = AGSMDATABASE_OPERATION_SELECT; + pQuery->m_nIndex = 522; + pQuery->m_pParam = pAgsdRelay2; + pQuery->SetCallback(AgsmRelay2::CBFinishOperationRefreshCash, + AgsmRelay2::CBFailOperation, + pThis, pAgsdRelay2); + + return pThis->m_pAgsmDatabasePool->Execute(pQuery); + } + + +BOOL AgsmRelay2::CBFinishOperationRefreshCash(PVOID pData, PVOID pClass, PVOID pCustData) + { + if (!pClass || !pCustData) + return FALSE; + + AgsmRelay2 *pThis = (AgsmRelay2 *) pClass; + AgsdDBParam *pAgsdRelay2 = (AgsdDBParam *) pCustData; + AuRowset *pRowset = (AuRowset *) pData; + + if (NULL != pRowset && AGSMDATABASE_OPERATION_SELECT == pAgsdRelay2->m_eOperation) + pThis->OnSelectResultRefreshCash(pRowset, pAgsdRelay2); + + pAgsdRelay2->Release(); - printf("%s : %s\n", __FUNCTION__, pszAccountID); - return TRUE; } +BOOL AgsmRelay2::OnSelectResultRefreshCash(AuRowset *pRowset, AgsdDBParam *pAgsdRelay2) + { + AgsdRelay2Mail *pAgsdRelay2Mail = static_cast(pAgsdRelay2); + + AgsdServer *pGameServer = m_pAgsmServerManager->GetGameServerBySocketIndex(pAgsdRelay2Mail->m_ulNID); + if (!pGameServer) + return FALSE; + + // RowsetÀ» Custom parameter·Î ¸Í±Û°í ÀÌ°É Embedded PacketÀ¸·Î ¸Í±Ù´Ù. + INT32 lTotalSize = pRowset->GetRowBufferSize() * pRowset->GetRowCount(); + INT32 lTotalStep = 1 + (INT32) (lTotalSize / 20000); + pAgsdRelay2Mail->m_nStatus = (INT16) lTotalStep; + INT32 lRowsPerStep = 20000 / pRowset->GetRowBufferSize(); + for (INT32 lStep = 0; lStep < lTotalStep; lStep++) + { + PVOID pvPacket = NULL; + pAgsdRelay2Mail->m_pvPacketEmb = MakeRowsetPacket2(pRowset, lStep, lRowsPerStep); + + BOOL bResult = SendMail(pAgsdRelay2Mail, pGameServer->m_dpnidServer); + + printf("\nMail of CID[%d] sended[%d/%d][%s]\n", pAgsdRelay2Mail->m_lCID, + lStep + 1, lTotalStep, bResult ? _T("TRUE") : _T("FALSE")); + } + + // last + pAgsdRelay2Mail->m_pvPacketEmb = NULL; + pAgsdRelay2Mail->m_lResult = AGPMMAILBOX_RESULT_SUCCESS; + + return SendMail(pAgsdRelay2Mail, pGameServer->m_dpnidServer); + } + BOOL AgsmRelay2::OnParamCashItemBuyList(INT16 nParam, PVOID pvPacket, UINT32 ulNID) { AgsdRelay2CashItemBuyList *pAgsdRelay2 = new AgsdRelay2CashItemBuyList; @@ -374,6 +463,15 @@ AgsdRelay2RequestCash::AgsdRelay2RequestCash() } +BOOL AgsdRelay2RequestCash::SetParamSelect(AuStatement* pStatement) + { + INT16 i=0; + + pStatement->SetParam(i++, m_szAccountID, sizeof(m_szAccountID)); + + return TRUE; + } + BOOL AgsdRelay2RequestCash::SetParamUpdate(AuStatement* pStatement) { INT16 i=0; @@ -391,6 +489,15 @@ BOOL AgsdRelay2RequestCash::SetParamInsert(AuStatement *pStatement) return TRUE; } +BOOL AgsdRelay2RequestCash::SetParamExecute(AuStatement *pStatement) + { + INT16 i=0; + + pStatement->SetParam(i++, m_szAccountID, sizeof(m_szAccountID)); + + return TRUE; + } + void AgsdRelay2RequestCash::Dump(CHAR *pszOp) { diff --git a/Modules/AServer/AgsmRelay2/AgsmRelay2MailBox.cpp b/Modules/AServer/AgsmRelay2/AgsmRelay2MailBox.cpp index 8c5eb51..fefa42d 100644 --- a/Modules/AServer/AgsmRelay2/AgsmRelay2MailBox.cpp +++ b/Modules/AServer/AgsmRelay2/AgsmRelay2MailBox.cpp @@ -283,9 +283,7 @@ BOOL AgsmRelay2::CBOperationMail(PVOID pData, PVOID pClass, PVOID pCustData) pQuery->m_pParam = pAgsdRelay2; pQuery->SetCallback(AgsmRelay2::CBFinishOperationMail, AgsmRelay2::CBFailOperation, - pThis, - pAgsdRelay2 - ); + pThis, pAgsdRelay2); return pThis->m_pAgsmDatabasePool->Execute(pQuery); } From f939befbd9e5f02e3b137cccb7a4c3ab34945cf1 Mon Sep 17 00:00:00 2001 From: Tom Hart Date: Sat, 28 Oct 2023 03:35:13 +0100 Subject: [PATCH 10/11] LOADING FROM DB AT LAST. Now need to remove from DB on purchase --- Modules/APublic/AgpmCashMall/AgpmCashMall.cpp | 2 + Modules/AServer/AgsmCashMall/AgsmCashMall.cpp | 6 +- Modules/AServer/AgsmRelay2/AgsdRelay2.h | 1 + Modules/AServer/AgsmRelay2/AgsmRelay2.cpp | 16 +--- Modules/AServer/AgsmRelay2/AgsmRelay2.h | 37 +++++++- .../AgsmRelay2/AgsmRelay2CashItemBuyList.cpp | 90 ++++++++++++++----- .../AUtility/AuDatabase/auDatabaseODBC.cpp | 2 +- 7 files changed, 117 insertions(+), 37 deletions(-) diff --git a/Modules/APublic/AgpmCashMall/AgpmCashMall.cpp b/Modules/APublic/AgpmCashMall/AgpmCashMall.cpp index 47e28a3..39d4285 100644 --- a/Modules/APublic/AgpmCashMall/AgpmCashMall.cpp +++ b/Modules/APublic/AgpmCashMall/AgpmCashMall.cpp @@ -24,10 +24,12 @@ AgpmCashMall::AgpmCashMall() AUTYPE_END, 0 ); + // NOT THIS ONE, NEED TO REMOVE I THINK, OR MAYBE REMOVE THE OTHER m_csPacketRequestCash.SetFlagLength(sizeof(INT64)); m_csPacketRequestCash.SetFieldType( AUTYPE_INT8, 1, // operation AUTYPE_CHAR, AGPACHARACTER_MAX_ID_STRING + 1, // Game ID + AUTYPE_INT32, 1, // cid AUTYPE_END, 0 ); diff --git a/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp b/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp index a18239e..0b60156 100644 --- a/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp +++ b/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp @@ -173,11 +173,15 @@ BOOL AgsmCashMall::CBRefreshCash(PVOID pData, PVOID pClass, PVOID pCustData) INT8 cOperation = AGPMCASH_OPERATION_REFRESH_CASH; INT16 nPacketLength = 0; + INT32 lID = 0; + lID = pcsCharacter->m_lID; + printf("Making packet for '%s' (%d)\n", pcsCharacter->m_szID, pcsCharacter->m_lID); PVOID pvPacket = pThis->m_pcsAgpmCashMall->m_csPacketRequestCash.MakePacket( TRUE, &nPacketLength, AGPMCASHMALL_PACKET_TYPE, - &cOperation, + &cOperation, // Remove the m_csPacketRequestCash definition WITHOUT operation first + &pcsCharacter->m_szID, &pcsCharacter->m_lID ); diff --git a/Modules/AServer/AgsmRelay2/AgsdRelay2.h b/Modules/AServer/AgsmRelay2/AgsdRelay2.h index b7c9aa3..7fd0a62 100644 --- a/Modules/AServer/AgsmRelay2/AgsdRelay2.h +++ b/Modules/AServer/AgsmRelay2/AgsdRelay2.h @@ -581,6 +581,7 @@ class AgsdRelay2RequestCash : public AgsdDBParam, public ApMemorym_szID); INT16 nPacketLength = 0; INT16 nOperation = AGSMDATABASE_OPERATION_SELECT; - PVOID pvPacketPingSend = pThis->m_csPacketRequestCash.MakePacket(TRUE, &nPacketLength, 0, &pcsCharacter->m_szID); + PVOID pvPacketPingSend = pThis->m_csPacketRequestCash.MakePacket(TRUE, &nPacketLength, 0, &pcsCharacter->m_szID, &pcsCharacter->m_lID); if (!pvPacketPingSend) return FALSE; CHAR *pszAccountID = NULL; - - pThis->m_csPacketRequestCash.GetField(FALSE, pvPacketPingSend, 0, &pszAccountID); - printf("Got back %s\n", pszAccountID); - pThis->m_csPacketRequestCash.GetField(TRUE, pvPacketPingSend, 0, &pszAccountID); - printf("Got back %s\n", pszAccountID); - - pThis->m_csPacketRequestCash.GetField(FALSE, pvPacketPingSend, nPacketLength, &pszAccountID); - printf("Got back %s\n", pszAccountID); pThis->m_csPacketRequestCash.GetField(TRUE, pvPacketPingSend, nPacketLength, &pszAccountID); - printf("Got back %s\n", pszAccountID); + printf("Got back '%s'\n", pszAccountID); BOOL bResult = pThis->MakeAndSendRelayPacket(pvPacketPingSend, AGSMRELAY_PARAM_REQUEST_CASH); pThis->m_csPacketRequestCash.FreePacket(pvPacketPingSend); diff --git a/Modules/AServer/AgsmRelay2/AgsmRelay2.h b/Modules/AServer/AgsmRelay2/AgsmRelay2.h index 41228c1..5f75c68 100644 --- a/Modules/AServer/AgsmRelay2/AgsmRelay2.h +++ b/Modules/AServer/AgsmRelay2/AgsmRelay2.h @@ -142,6 +142,40 @@ class Relay2Sender : public zzThread class AgsmEventSystem; class AgsmItemManager; + +typedef enum AgpmCashMallPacketOperation { + AGPMCASH_PACKET_OPERATION_REFRESH_CASH = 0, +} AgpmCashMallPacketOperation; + +struct PACKET_AGSP_REFRESH_CASH_RELAY : public PACKET_HEADER +{ + CHAR FlagLow; + INT16 nParam; + INT16 nOperation; + CHAR strCharName[AGPACHARACTER_MAX_ID_STRING+1]; + INT32 nCID; + INT32 nCoins; + + PACKET_AGSP_REFRESH_CASH_RELAY() + :nOperation(0), FlagLow(1) + { + cType = AGSMRELAY_PACKET_TYPE; + nParam = AGSMRELAY_PARAM_REQUEST_CASH; + unPacketLength = (UINT16)sizeof(PACKET_AGSP_REFRESH_CASH_RELAY); + } +}; +struct PACKET_AGSP_REFRESH_CASH_RESULT_RELAY : public PACKET_AGSP_REFRESH_CASH_RELAY +{ + PACKET_AGSP_REFRESH_CASH_RESULT_RELAY(CHAR *CharName, INT32 Coins, INT32 CID) + { + nOperation = AGPMCASH_PACKET_OPERATION_REFRESH_CASH; + unPacketLength = (UINT16)sizeof(PACKET_AGSP_REFRESH_CASH_RELAY); + strncpy(strCharName, CharName, AGPACHARACTER_MAX_ID_STRING); + nCoins = Coins; + nCID = CID; + } +}; + /************************************************/ /* The Definition of AgsmRelay2 class */ /************************************************/ @@ -156,6 +190,7 @@ class AgsmRelay2 : public AgsModule AgsmServerManager2 *m_pAgsmServerManager2; AgpmCharacter *m_pAgpmCharacter; AgsmCharacter *m_pAgsmCharacter; + AgpmBillInfo *m_pAgpmBillInfo; AgpmItem *m_pAgpmItem; AgsmItem *m_pAgsmItem; AgsmItemConvert *m_pAgsmItemConvert; @@ -284,7 +319,7 @@ class AgsmRelay2 : public AgsModule BOOL OnParamMail(INT16 nParam, PVOID pvPacket, UINT32 ulNID); BOOL OnParamMailItem(INT16 nParam, PVOID pvPacket, UINT32 ulNID); BOOL OnParamCashItemBuyList(INT16 nParam, PVOID pvPacket, UINT32 ulNID); - BOOL OnParamRequestCash(INT16 nParam, PVOID pvPacket, UINT32 ulNID); + BOOL OnParamRequestCash(INT16 nParam, PVOID pvPacket, UINT32 ulNID, PACKET_HEADER* pvOuterPacket); BOOL OnParamWantedCriminal(INT16 nParam, PVOID pvPacket, UINT32 ulNID); BOOL OnParamNotifySaveAll(INT16 nParam, PVOID pvPacket, UINT32 ulNID); BOOL OnParamCastle(INT16 nParam, PVOID pvPacket, UINT32 ulNID); diff --git a/Modules/AServer/AgsmRelay2/AgsmRelay2CashItemBuyList.cpp b/Modules/AServer/AgsmRelay2/AgsmRelay2CashItemBuyList.cpp index 410134f..e1a305b 100644 --- a/Modules/AServer/AgsmRelay2/AgsmRelay2CashItemBuyList.cpp +++ b/Modules/AServer/AgsmRelay2/AgsmRelay2CashItemBuyList.cpp @@ -38,6 +38,7 @@ void AgsmRelay2::InitPacketRequestCash() { m_csPacketRequestCash.SetFlagLength(sizeof(INT16)); m_csPacketRequestCash.SetFieldType(AUTYPE_CHAR, AGPACHARACTER_MAX_ID_STRING + 1, // Game ID + AUTYPE_INT32, 1, // CID AUTYPE_END, 0 ); @@ -68,19 +69,33 @@ void AgsmRelay2::InitPacketRequestCash() PACKET_BILLINGINFO_CASHINFO pPacket(pcsCharacter->m_lID, pCash.m_WCoin, pCash.m_PCoin); pThis->SendPacketUser(pPacket, pThis->m_pcsAgsmCharacter->GetCharDPNID(pcsCharacter));*/ -BOOL AgsmRelay2::OnParamRequestCash(INT16 nParam, PVOID pvPacket, UINT32 ulNID) - { - AgsdRelay2RequestCash *pAgsdRelay2 = new AgsdRelay2RequestCash; +BOOL AgsmRelay2::OnParamRequestCash(INT16 nParam, PVOID pvPacket, UINT32 ulNID, PACKET_HEADER* pvOuterPacket) +{ - CHAR *pszAccountID = NULL; + PACKET_AGSP_REFRESH_CASH_RELAY *pPacketRaw = (PACKET_AGSP_REFRESH_CASH_RELAY*) pvOuterPacket; + + if (NULL != pPacketRaw && pPacketRaw->nOperation == AGPMCASH_PACKET_OPERATION_REFRESH_CASH) { + // Don't need the CID? + printf("Send coins (%d) back to user '%s' (%d)\n", pPacketRaw->nCoins, pPacketRaw->strCharName, pPacketRaw->nCID); + AgpdCharacter *pcsCharacter = m_pAgpmCharacter->GetCharacter(pPacketRaw->strCharName); + m_pAgpmBillInfo->SetCashGlobal(pcsCharacter, pPacketRaw->nCoins, pPacketRaw->nCoins); + PACKET_BILLINGINFO_CASHINFO pPacket(pcsCharacter->m_lID, pPacketRaw->nCoins, pPacketRaw->nCoins); + SendPacketUser(pPacket, m_pAgsmCharacter->GetCharDPNID(pcsCharacter)); + return TRUE; + } + + AgsdRelay2RequestCash *pAgsdRelay2 = new AgsdRelay2RequestCash; - m_csPacketRequestCash.GetField(TRUE, pvPacket, 256, &pszAccountID); + CHAR *pszAccountID = NULL; + INT32 pszCID = 0; - // printf("%s : %s\n", __FUNCTION__, pszAccountID); + m_csPacketRequestCash.GetField(TRUE, pvPacket, 256, &pszAccountID, &pszCID); + printf("%s: %s %d\n", __FUNCTION__, pszAccountID, pszCID); pAgsdRelay2->m_ulNID = ulNID; - _tcscpy(pAgsdRelay2->m_szAccountID, pszAccountID ? pszAccountID : _T("")); + _tcscpy(pAgsdRelay2->m_szAccountID, NULL != pszAccountID ? pszAccountID : _T("")); + pAgsdRelay2->m_lCID = pszCID; return EnumCallback(AGSMRELAY_PARAM_REQUEST_CASH, (PVOID)pAgsdRelay2, (PVOID)nParam); } @@ -95,7 +110,7 @@ BOOL AgsmRelay2::CBOperationRefreshCash(PVOID pData, PVOID pClass, PVOID pCustDa AgsdQueryWithParam* pQuery = new AgsdQueryWithParam; pAgsdRelay2->m_eOperation = AGSMDATABASE_OPERATION_SELECT; - pQuery->m_nIndex = 522; + pQuery->m_nIndex = 1027; pQuery->m_pParam = pAgsdRelay2; pQuery->SetCallback(AgsmRelay2::CBFinishOperationRefreshCash, AgsmRelay2::CBFailOperation, @@ -111,7 +126,8 @@ BOOL AgsmRelay2::CBFinishOperationRefreshCash(PVOID pData, PVOID pClass, PVOID p return FALSE; AgsmRelay2 *pThis = (AgsmRelay2 *) pClass; - AgsdDBParam *pAgsdRelay2 = (AgsdDBParam *) pCustData; + AgsdDBParam *pAgsdRelay2 = NULL; + pAgsdRelay2 = (AgsdDBParam *) pCustData; AuRowset *pRowset = (AuRowset *) pData; if (NULL != pRowset && AGSMDATABASE_OPERATION_SELECT == pAgsdRelay2->m_eOperation) @@ -124,35 +140,64 @@ BOOL AgsmRelay2::CBFinishOperationRefreshCash(PVOID pData, PVOID pClass, PVOID p BOOL AgsmRelay2::OnSelectResultRefreshCash(AuRowset *pRowset, AgsdDBParam *pAgsdRelay2) { - AgsdRelay2Mail *pAgsdRelay2Mail = static_cast(pAgsdRelay2); + AgsdRelay2RequestCash *pAgsdRelay2Mail = static_cast(pAgsdRelay2); AgsdServer *pGameServer = m_pAgsmServerManager->GetGameServerBySocketIndex(pAgsdRelay2Mail->m_ulNID); if (!pGameServer) return FALSE; - // RowsetÀ» Custom parameter·Î ¸Í±Û°í ÀÌ°É Embedded PacketÀ¸·Î ¸Í±Ù´Ù. INT32 lTotalSize = pRowset->GetRowBufferSize() * pRowset->GetRowCount(); INT32 lTotalStep = 1 + (INT32) (lTotalSize / 20000); - pAgsdRelay2Mail->m_nStatus = (INT16) lTotalStep; INT32 lRowsPerStep = 20000 / pRowset->GetRowBufferSize(); - for (INT32 lStep = 0; lStep < lTotalStep; lStep++) + for (INT32 lStep2 = 0; lStep2 < lTotalStep; lStep2++) { - PVOID pvPacket = NULL; - pAgsdRelay2Mail->m_pvPacketEmb = MakeRowsetPacket2(pRowset, lStep, lRowsPerStep); - BOOL bResult = SendMail(pAgsdRelay2Mail, pGameServer->m_dpnidServer); + UINT32 ulCol = 0; + + CHAR *psz = NULL; + + //if (NULL != (psz = pRowset->Get(ul, ulCol++))) // item tid + // lItemTID = _ttoi(psz); + + CHAR *charName = NULL; + INT32 coins = 0; + INT32 CID = 0; - printf("\nMail of CID[%d] sended[%d/%d][%s]\n", pAgsdRelay2Mail->m_lCID, - lStep + 1, lTotalStep, bResult ? _T("TRUE") : _T("FALSE")); + + if (NULL != (psz = (CHAR *) pRowset->Get(lStep2, ulCol++))) { + charName = psz; } - // last - pAgsdRelay2Mail->m_pvPacketEmb = NULL; - pAgsdRelay2Mail->m_lResult = AGPMMAILBOX_RESULT_SUCCESS; + if (NULL != (psz = (CHAR *) pRowset->Get(lStep2, ulCol++))) { + coins = _ttoi(psz); + } + + //if (NULL != (psz = (CHAR *) pRowset->Get(lStep2, ulCol++))) { + // CID = _ttoi(psz); + //} + + printf("Got '%s' and '%d'. CID %d\n", charName, coins, pAgsdRelay2Mail->m_lCID); - return SendMail(pAgsdRelay2Mail, pGameServer->m_dpnidServer); + PACKET_AGSP_REFRESH_CASH_RESULT_RELAY pPacket(charName, coins, pAgsdRelay2Mail->m_lCID); + + AgsEngine::GetInstance()->SendPacket(pPacket, pAgsdRelay2Mail->m_ulNID); + break; } + return TRUE; + } + + +//PACKET_AGSMCHARACTER_RELAY_CHANGENAME_RESULT pPacket; +//pPacket.CID = pAgsdRelay2->CID; +//pPacket.NID = pAgsdRelay2->NID; +//pPacket.EID = pAgsdRelay2->EID; +//pPacket.STEP = pAgsdRelay2->STEP; +//pPacket.nResult = pAgsdRelay2->m_nCode; +// +//AgsEngine::GetInstance()->SendPacket(pPacket, pAgsdRelay2->m_ulNID); + + BOOL AgsmRelay2::OnParamCashItemBuyList(INT16 nParam, PVOID pvPacket, UINT32 ulNID) { AgsdRelay2CashItemBuyList *pAgsdRelay2 = new AgsdRelay2CashItemBuyList; @@ -467,6 +512,7 @@ BOOL AgsdRelay2RequestCash::SetParamSelect(AuStatement* pStatement) { INT16 i=0; + // pStatement->SetParam(i++, &m_lCID); pStatement->SetParam(i++, m_szAccountID, sizeof(m_szAccountID)); return TRUE; diff --git a/Modules/AUtility/AuDatabase/auDatabaseODBC.cpp b/Modules/AUtility/AuDatabase/auDatabaseODBC.cpp index 230b691..f6523a9 100644 --- a/Modules/AUtility/AuDatabase/auDatabaseODBC.cpp +++ b/Modules/AUtility/AuDatabase/auDatabaseODBC.cpp @@ -395,7 +395,7 @@ BOOL AuStmtODBC::Prepare(LPCTSTR pszQuery) ResetParameters(); SQLFreeStmt(m_hStatement, SQL_CLOSE); - TRACE("Query=[%s]\n", pszQuery); + printf("Query=[%s]\n", pszQuery); // prepare if (SQL_SUCCESS != SQLPrepare(m_hStatement, (SQLTCHAR *) pszQuery, SQL_NTS)) From 0912db362e21c8e8782cdb78df8bfa620c3f8e4a Mon Sep 17 00:00:00 2001 From: Tom Hart Date: Sat, 28 Oct 2023 09:20:52 +0100 Subject: [PATCH 11/11] Clean up --- AlefServer - Copy.sln | 79 ------------------- .../AClient/AgcmUICashMall/AgcmUICashMall.cpp | 1 - Modules/APublic/ApBase/ApDefine.h | 2 +- Modules/AServer/AgsmCashMall/AgsmCashMall.cpp | 32 ++------ .../AgsmCharManager/AgsmCharManager.cpp | 4 - .../AServer/AgsmDatabasePool/IOCPDatabase.cpp | 2 +- Modules/AServer/AgsmRelay2/AgsdRelay2.h | 1 - Modules/AServer/AgsmRelay2/AgsmRelay2.cpp | 1 - Modules/AServer/AgsmRelay2/AgsmRelay2.h | 6 +- .../AgsmRelay2/AgsmRelay2CashItemBuyList.cpp | 69 +--------------- .../AServer/AgsmRelay2/AgsmRelay2MailBox.cpp | 4 +- .../AUtility/AuDatabase/auDatabaseODBC.cpp | 2 +- 12 files changed, 14 insertions(+), 189 deletions(-) delete mode 100644 AlefServer - Copy.sln diff --git a/AlefServer - Copy.sln b/AlefServer - Copy.sln deleted file mode 100644 index a526d7c..0000000 --- a/AlefServer - Copy.sln +++ /dev/null @@ -1,79 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AgpModules", "Projects\AgpModules\AgpModules.vcproj", "{55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}" - ProjectSection(ProjectDependencies) = postProject - {A5C4630C-E440-4767-87CC-6B53905D260E} = {A5C4630C-E440-4767-87CC-6B53905D260E} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ApModules", "Projects\ApModules\ApModules.vcproj", "{A5C4630C-E440-4767-87CC-6B53905D260E}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AgsModules", "Projects\AgsModules\AgsModules.vcproj", "{AEA137C2-3EAB-40C8-80B9-78FE659027B2}" - ProjectSection(ProjectDependencies) = postProject - {CFD93F15-C931-4506-8E73-36D3817F8E65} = {CFD93F15-C931-4506-8E73-36D3817F8E65} - {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D} = {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AlefServer", "Projects\AlefServer\AlefServer.vcproj", "{AEC0E888-B6F6-4610-8F15-31400F7B3F6E}" - ProjectSection(ProjectDependencies) = postProject - {AEA137C2-3EAB-40C8-80B9-78FE659027B2} = {AEA137C2-3EAB-40C8-80B9-78FE659027B2} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AsNetworkLib", "Projects\AsNetworkLib\AsNetworkLib.vcproj", "{CFD93F15-C931-4506-8E73-36D3817F8E65}" - ProjectSection(ProjectDependencies) = postProject - {A5C4630C-E440-4767-87CC-6B53905D260E} = {A5C4630C-E440-4767-87CC-6B53905D260E} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug Global|Win32 = Debug Global|Win32 - Debug Global|x64 = Debug Global|x64 - Release Global|Win32 = Release Global|Win32 - Release Global|x64 = Release Global|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Debug Global|Win32.ActiveCfg = Debug Global|Win32 - {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Debug Global|Win32.Build.0 = Debug Global|Win32 - {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Debug Global|x64.ActiveCfg = Debug Global|x64 - {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Debug Global|x64.Build.0 = Debug Global|x64 - {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Release Global|Win32.ActiveCfg = Release Global|Win32 - {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Release Global|Win32.Build.0 = Release Global|Win32 - {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Release Global|x64.ActiveCfg = Release Global|x64 - {55DEEE27-6B81-4BE1-BBB0-FD4894E6806D}.Release Global|x64.Build.0 = Release Global|x64 - {A5C4630C-E440-4767-87CC-6B53905D260E}.Debug Global|Win32.ActiveCfg = Debug Global|Win32 - {A5C4630C-E440-4767-87CC-6B53905D260E}.Debug Global|Win32.Build.0 = Debug Global|Win32 - {A5C4630C-E440-4767-87CC-6B53905D260E}.Debug Global|x64.ActiveCfg = Debug Global|x64 - {A5C4630C-E440-4767-87CC-6B53905D260E}.Debug Global|x64.Build.0 = Debug Global|x64 - {A5C4630C-E440-4767-87CC-6B53905D260E}.Release Global|Win32.ActiveCfg = Release Global|Win32 - {A5C4630C-E440-4767-87CC-6B53905D260E}.Release Global|Win32.Build.0 = Release Global|Win32 - {A5C4630C-E440-4767-87CC-6B53905D260E}.Release Global|x64.ActiveCfg = Release Global|x64 - {A5C4630C-E440-4767-87CC-6B53905D260E}.Release Global|x64.Build.0 = Release Global|x64 - {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Debug Global|Win32.ActiveCfg = Debug Global|Win32 - {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Debug Global|Win32.Build.0 = Debug Global|Win32 - {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Debug Global|x64.ActiveCfg = Debug Global|x64 - {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Debug Global|x64.Build.0 = Debug Global|x64 - {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Release Global|Win32.ActiveCfg = Release Global|Win32 - {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Release Global|Win32.Build.0 = Release Global|Win32 - {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Release Global|x64.ActiveCfg = Release Global|x64 - {AEA137C2-3EAB-40C8-80B9-78FE659027B2}.Release Global|x64.Build.0 = Release Global|x64 - {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Debug Global|Win32.ActiveCfg = Debug Global|Win32 - {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Debug Global|Win32.Build.0 = Debug Global|Win32 - {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Debug Global|x64.ActiveCfg = Debug Global|x64 - {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Debug Global|x64.Build.0 = Debug Global|x64 - {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Release Global|Win32.ActiveCfg = Release Global|Win32 - {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Release Global|Win32.Build.0 = Release Global|Win32 - {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Release Global|x64.ActiveCfg = Release Global|x64 - {AEC0E888-B6F6-4610-8F15-31400F7B3F6E}.Release Global|x64.Build.0 = Release Global|x64 - {CFD93F15-C931-4506-8E73-36D3817F8E65}.Debug Global|Win32.ActiveCfg = Debug EM64T|x64 - {CFD93F15-C931-4506-8E73-36D3817F8E65}.Debug Global|x64.ActiveCfg = Debug|x64 - {CFD93F15-C931-4506-8E73-36D3817F8E65}.Debug Global|x64.Build.0 = Debug|x64 - {CFD93F15-C931-4506-8E73-36D3817F8E65}.Release Global|Win32.ActiveCfg = Release EM64T|x64 - {CFD93F15-C931-4506-8E73-36D3817F8E65}.Release Global|x64.ActiveCfg = Release|x64 - {CFD93F15-C931-4506-8E73-36D3817F8E65}.Release Global|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(DPCodeReviewSolutionGUID) = preSolution - DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000} - EndGlobalSection -EndGlobal diff --git a/Modules/AClient/AgcmUICashMall/AgcmUICashMall.cpp b/Modules/AClient/AgcmUICashMall/AgcmUICashMall.cpp index 39bdf06..24ebc10 100644 --- a/Modules/AClient/AgcmUICashMall/AgcmUICashMall.cpp +++ b/Modules/AClient/AgcmUICashMall/AgcmUICashMall.cpp @@ -582,7 +582,6 @@ BOOL AgcmUICashMall::RefreshCashEdit() #ifdef _AREA_GLOBAL_ CashInfoGlobal pCash; - // m_pagpmBillInfo->SetCashGlobal(m_pcsAgcmCharacter->GetSelfCharacter(), 100000, 100000); m_pagpmBillInfo->GetCashGlobal(m_pcsAgcmCharacter->GetSelfCharacter(), pCash.m_WCoin, pCash.m_PCoin); szBuffer.Format("%s : %d", m_pcsAgcmUIManager2->GetUIMessage(AGCMUIMESSAGE_CASHMALL_C_CASH), (INT64)pCash.m_WCoin); diff --git a/Modules/APublic/ApBase/ApDefine.h b/Modules/APublic/ApBase/ApDefine.h index 2e523de..84eb83a 100644 --- a/Modules/APublic/ApBase/ApDefine.h +++ b/Modules/APublic/ApBase/ApDefine.h @@ -709,7 +709,7 @@ enum ePacketType AGSMRELAY_PACKET_TYPE = 0x25, AGSMITEMLOG_PACKET_TYPE = 0x26, AGSMLOG_PACKET_TYPE = 0x27, - AGSMGUILD_PACKET_TYPE = 0x28 + AGSMGUILD_PACKET_TYPE = 0x28, }; // const variable definition diff --git a/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp b/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp index 0b60156..5284b6b 100644 --- a/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp +++ b/Modules/AServer/AgsmCashMall/AgsmCashMall.cpp @@ -115,7 +115,7 @@ BOOL AgsmCashMall::CBEnterGame(PVOID pData, PVOID pClass, PVOID pCustData) if (!pcsCharacter || pcsCharacter->m_szID[0] == 0) return FALSE; - return pThis->CBRefreshCash(pData, pClass, pCustData); + return TRUE; } BOOL AgsmCashMall::CBRequestMallProductList(PVOID pData, PVOID pClass, PVOID pCustData) @@ -148,7 +148,6 @@ BOOL AgsmCashMall::CBRequestBuyItem(PVOID pData, PVOID pClass, PVOID pCustData) BOOL AgsmCashMall::CBRefreshCash(PVOID pData, PVOID pClass, PVOID pCustData) { - printf("Refreshing cash...\n"); if (!pData || !pClass) return FALSE; @@ -157,30 +156,23 @@ BOOL AgsmCashMall::CBRefreshCash(PVOID pData, PVOID pClass, PVOID pCustData) AgpdCashMall *pcsAttachData = pThis->m_pcsAgpmCashMall->GetADCharacter(pcsCharacter); if (!pcsAttachData){ - printf("1"); return FALSE; } if (pcsAttachData->m_ulLastRefreshCashTimeMsec + AGPMCASHMALL_MIN_INTERVAL_REFRESH_CASH > pThis->GetClockCount()){ - printf("2"); return TRUE; } pcsAttachData->m_ulLastRefreshCashTimeMsec = pThis->GetClockCount() + AGPMCASHMALL_MIN_INTERVAL_REFRESH_CASH; // Request to billing server. - // EnumCallback(AGSMITEM_CB_USE_ITEM_REVERSE_ORB, pcsItem->m_pcsCharacter, pcsItem); - INT8 cOperation = AGPMCASH_OPERATION_REFRESH_CASH; INT16 nPacketLength = 0; - INT32 lID = 0; - lID = pcsCharacter->m_lID; - printf("Making packet for '%s' (%d)\n", pcsCharacter->m_szID, pcsCharacter->m_lID); PVOID pvPacket = pThis->m_pcsAgpmCashMall->m_csPacketRequestCash.MakePacket( TRUE, &nPacketLength, AGPMCASHMALL_PACKET_TYPE, - &cOperation, // Remove the m_csPacketRequestCash definition WITHOUT operation first + &cOperation, &pcsCharacter->m_szID, &pcsCharacter->m_lID ); @@ -188,23 +180,7 @@ BOOL AgsmCashMall::CBRefreshCash(PVOID pData, PVOID pClass, PVOID pCustData) BOOL bResult = pThis->SendPacket(pvPacket, nPacketLength, pThis->_GetCharacterNID(pcsCharacter)); pThis->m_pcsAgpmCashMall->m_csPacketRequestCash.FreePacket(pvPacket); - - - - - /*CashInfoGlobal pCash; - pThis->m_pcsAgpmBillInfo->GetCashGlobal(pcsCharacter, pCash.m_WCoin, pCash.m_PCoin); - printf("Increasing w from %f to %f\n", pCash.m_WCoin, pCash.m_WCoin + 5000.0); - printf("Increasing p from %f to %f\n", pCash.m_WCoin, pCash.m_PCoin + 5000.0); - pThis->m_pcsAgpmBillInfo->SetCashGlobal(pcsCharacter, pCash.m_WCoin + 5000.0, pCash.m_PCoin + 5000.0); - - pThis->m_pcsAgpmBillInfo->GetCashGlobal(pcsCharacter, pCash.m_WCoin, pCash.m_PCoin); - printf("Now %f and %f\n", pCash.m_WCoin, pCash.m_PCoin); - - PACKET_BILLINGINFO_CASHINFO pPacket(pcsCharacter->m_lID, pCash.m_WCoin, pCash.m_PCoin); - pThis->SendPacketUser(pPacket, pThis->m_pcsAgsmCharacter->GetCharDPNID(pcsCharacter));*/ - - return TRUE; + return bResult; } // Helper @@ -471,6 +447,8 @@ BOOL AgsmCashMall::ProcessBuyItem(AgpdCharacter *pcsCharacter, INT32 lProductID, pCash.m_PCoin = pCash.m_PCoin - pCashItemInfo->m_llPrice; break; } + + // Call refresh instead maybe? m_pcsAgpmBillInfo->SetCashGlobal(pcsCharacter, pCash.m_WCoin, pCash.m_PCoin); PACKET_BILLINGINFO_CASHINFO pPacket(pcsCharacter->m_lID, pCash.m_WCoin, pCash.m_PCoin); SendPacketUser(pPacket, m_pcsAgsmCharacter->GetCharDPNID(pcsCharacter)); diff --git a/Modules/AServer/AgsmCharManager/AgsmCharManager.cpp b/Modules/AServer/AgsmCharManager/AgsmCharManager.cpp index dd2635f..e952e60 100644 --- a/Modules/AServer/AgsmCharManager/AgsmCharManager.cpp +++ b/Modules/AServer/AgsmCharManager/AgsmCharManager.cpp @@ -1110,10 +1110,6 @@ INT16 AgsmCharManager::EnterGameWorld(AgpdCharacter *pcsCharacter, BOOL bIsCheck */ //m_pagsmCharacter->CheckRecvCharList(pcsCharacter->m_lID); - - // Set initial cash amount - // m_pagpmBillInfo->SetCashGlobal(pcsCharacter, 10000, 0); - // m_pcsAgpmCashMall->EnumCallback(AGPMCASH_CB_REFRESH_CASH, pcsCharacter, NULL); // ÀÌ character·Î °ÔÀÓÀÌ ÁøÇàµÉ°Å¶ó´Â ÆÐŶÀ» ³¯·ÁÁØ´Ù. if (!SendCharacterSettingOK(pcsCharacter, pcsAgsdCharacter->m_dpnidCharacter)) diff --git a/Modules/AServer/AgsmDatabasePool/IOCPDatabase.cpp b/Modules/AServer/AgsmDatabasePool/IOCPDatabase.cpp index 9196c6e..d265c3b 100644 --- a/Modules/AServer/AgsmDatabasePool/IOCPDatabase.cpp +++ b/Modules/AServer/AgsmDatabasePool/IOCPDatabase.cpp @@ -285,7 +285,7 @@ BOOL DBWorker::ExecuteQuery(AgsdQuery* pQuery) INT32 lFailed = m_pIOCP->Failed(); AGSMTRACE("!!! Error : [%05d][%08d] Query Failed [%8d][%s]\n", m_nIndex, GetId(), lFailed, pQuery->Get() ? pQuery->Get() : ""); - + GetLocalTime(&st); sprintf(szLog, "LOG\\RelayServer_QueryError-%04d%02d%02d.log", st.wYear, st.wMonth, st.wDay); diff --git a/Modules/AServer/AgsmRelay2/AgsdRelay2.h b/Modules/AServer/AgsmRelay2/AgsdRelay2.h index 7fd0a62..b7c9aa3 100644 --- a/Modules/AServer/AgsmRelay2/AgsdRelay2.h +++ b/Modules/AServer/AgsmRelay2/AgsdRelay2.h @@ -581,7 +581,6 @@ class AgsdRelay2RequestCash : public AgsdDBParam, public ApMemorym_nIndex = 522; - pQuery->m_pParam = pAgsdRelay2; - pQuery->SetCallback(AgsmRelay2::CBFinishOperationRefreshCash, - AgsmRelay2::CBFailOperation, - this, pAgsdRelay2); - - return m_pAgsmDatabasePool->Execute(pQuery);*/ - - - - - /*CashInfoGlobal pCash; - m_pAgpm - pThis->m_pcsAgpmBillInfo->GetCashGlobal(pcsCharacter, pCash.m_WCoin, pCash.m_PCoin); - printf("Increasing w from %f to %f\n", pCash.m_WCoin, pCash.m_WCoin + 5000.0); - printf("Increasing p from %f to %f\n", pCash.m_WCoin, pCash.m_PCoin + 5000.0); - pThis->m_pcsAgpmBillInfo->SetCashGlobal(pcsCharacter, pCash.m_WCoin + 5000.0, pCash.m_PCoin + 5000.0); - - pThis->m_pcsAgpmBillInfo->GetCashGlobal(pcsCharacter, pCash.m_WCoin, pCash.m_PCoin); - printf("Now %f and %f\n", pCash.m_WCoin, pCash.m_PCoin); - - PACKET_BILLINGINFO_CASHINFO pPacket(pcsCharacter->m_lID, pCash.m_WCoin, pCash.m_PCoin); - pThis->SendPacketUser(pPacket, pThis->m_pcsAgsmCharacter->GetCharDPNID(pcsCharacter));*/ - BOOL AgsmRelay2::OnParamRequestCash(INT16 nParam, PVOID pvPacket, UINT32 ulNID, PACKET_HEADER* pvOuterPacket) { PACKET_AGSP_REFRESH_CASH_RELAY *pPacketRaw = (PACKET_AGSP_REFRESH_CASH_RELAY*) pvOuterPacket; if (NULL != pPacketRaw && pPacketRaw->nOperation == AGPMCASH_PACKET_OPERATION_REFRESH_CASH) { - // Don't need the CID? - printf("Send coins (%d) back to user '%s' (%d)\n", pPacketRaw->nCoins, pPacketRaw->strCharName, pPacketRaw->nCID); + printf("Send coins (%d) back to user '%s' (%d)\n", pPacketRaw->nCoins, pPacketRaw->strCharName); AgpdCharacter *pcsCharacter = m_pAgpmCharacter->GetCharacter(pPacketRaw->strCharName); m_pAgpmBillInfo->SetCashGlobal(pcsCharacter, pPacketRaw->nCoins, pPacketRaw->nCoins); PACKET_BILLINGINFO_CASHINFO pPacket(pcsCharacter->m_lID, pPacketRaw->nCoins, pPacketRaw->nCoins); @@ -87,15 +51,11 @@ BOOL AgsmRelay2::OnParamRequestCash(INT16 nParam, PVOID pvPacket, UINT32 ulNID, AgsdRelay2RequestCash *pAgsdRelay2 = new AgsdRelay2RequestCash; CHAR *pszAccountID = NULL; - INT32 pszCID = 0; - m_csPacketRequestCash.GetField(TRUE, pvPacket, 256, &pszAccountID, &pszCID); - - printf("%s: %s %d\n", __FUNCTION__, pszAccountID, pszCID); + m_csPacketRequestCash.GetField(TRUE, pvPacket, 256, &pszAccountID); pAgsdRelay2->m_ulNID = ulNID; _tcscpy(pAgsdRelay2->m_szAccountID, NULL != pszAccountID ? pszAccountID : _T("")); - pAgsdRelay2->m_lCID = pszCID; return EnumCallback(AGSMRELAY_PARAM_REQUEST_CASH, (PVOID)pAgsdRelay2, (PVOID)nParam); } @@ -104,9 +64,6 @@ BOOL AgsmRelay2::CBOperationRefreshCash(PVOID pData, PVOID pClass, PVOID pCustDa { AgsmRelay2 *pThis = (AgsmRelay2 *) pClass; AgsdRelay2RequestCash *pAgsdRelay2 = (AgsdRelay2RequestCash *) pData; - // INT16 nParam = (INT16) pCustData; - - // pAgsdRelay2->m_nParam = nParam; AgsdQueryWithParam* pQuery = new AgsdQueryWithParam; pAgsdRelay2->m_eOperation = AGSMDATABASE_OPERATION_SELECT; @@ -156,13 +113,8 @@ BOOL AgsmRelay2::OnSelectResultRefreshCash(AuRowset *pRowset, AgsdDBParam *pAgsd CHAR *psz = NULL; - //if (NULL != (psz = pRowset->Get(ul, ulCol++))) // item tid - // lItemTID = _ttoi(psz); - CHAR *charName = NULL; INT32 coins = 0; - INT32 CID = 0; - if (NULL != (psz = (CHAR *) pRowset->Get(lStep2, ulCol++))) { charName = psz; @@ -172,12 +124,6 @@ BOOL AgsmRelay2::OnSelectResultRefreshCash(AuRowset *pRowset, AgsdDBParam *pAgsd coins = _ttoi(psz); } - //if (NULL != (psz = (CHAR *) pRowset->Get(lStep2, ulCol++))) { - // CID = _ttoi(psz); - //} - - printf("Got '%s' and '%d'. CID %d\n", charName, coins, pAgsdRelay2Mail->m_lCID); - PACKET_AGSP_REFRESH_CASH_RESULT_RELAY pPacket(charName, coins, pAgsdRelay2Mail->m_lCID); AgsEngine::GetInstance()->SendPacket(pPacket, pAgsdRelay2Mail->m_ulNID); @@ -188,16 +134,6 @@ BOOL AgsmRelay2::OnSelectResultRefreshCash(AuRowset *pRowset, AgsdDBParam *pAgsd } -//PACKET_AGSMCHARACTER_RELAY_CHANGENAME_RESULT pPacket; -//pPacket.CID = pAgsdRelay2->CID; -//pPacket.NID = pAgsdRelay2->NID; -//pPacket.EID = pAgsdRelay2->EID; -//pPacket.STEP = pAgsdRelay2->STEP; -//pPacket.nResult = pAgsdRelay2->m_nCode; -// -//AgsEngine::GetInstance()->SendPacket(pPacket, pAgsdRelay2->m_ulNID); - - BOOL AgsmRelay2::OnParamCashItemBuyList(INT16 nParam, PVOID pvPacket, UINT32 ulNID) { AgsdRelay2CashItemBuyList *pAgsdRelay2 = new AgsdRelay2CashItemBuyList; @@ -512,7 +448,6 @@ BOOL AgsdRelay2RequestCash::SetParamSelect(AuStatement* pStatement) { INT16 i=0; - // pStatement->SetParam(i++, &m_lCID); pStatement->SetParam(i++, m_szAccountID, sizeof(m_szAccountID)); return TRUE; diff --git a/Modules/AServer/AgsmRelay2/AgsmRelay2MailBox.cpp b/Modules/AServer/AgsmRelay2/AgsmRelay2MailBox.cpp index fefa42d..8c5eb51 100644 --- a/Modules/AServer/AgsmRelay2/AgsmRelay2MailBox.cpp +++ b/Modules/AServer/AgsmRelay2/AgsmRelay2MailBox.cpp @@ -283,7 +283,9 @@ BOOL AgsmRelay2::CBOperationMail(PVOID pData, PVOID pClass, PVOID pCustData) pQuery->m_pParam = pAgsdRelay2; pQuery->SetCallback(AgsmRelay2::CBFinishOperationMail, AgsmRelay2::CBFailOperation, - pThis, pAgsdRelay2); + pThis, + pAgsdRelay2 + ); return pThis->m_pAgsmDatabasePool->Execute(pQuery); } diff --git a/Modules/AUtility/AuDatabase/auDatabaseODBC.cpp b/Modules/AUtility/AuDatabase/auDatabaseODBC.cpp index f6523a9..230b691 100644 --- a/Modules/AUtility/AuDatabase/auDatabaseODBC.cpp +++ b/Modules/AUtility/AuDatabase/auDatabaseODBC.cpp @@ -395,7 +395,7 @@ BOOL AuStmtODBC::Prepare(LPCTSTR pszQuery) ResetParameters(); SQLFreeStmt(m_hStatement, SQL_CLOSE); - printf("Query=[%s]\n", pszQuery); + TRACE("Query=[%s]\n", pszQuery); // prepare if (SQL_SUCCESS != SQLPrepare(m_hStatement, (SQLTCHAR *) pszQuery, SQL_NTS))