更改ACE_SDK位置

This commit is contained in:
2025-12-06 17:59:24 +08:00
parent baf547c71d
commit ae5479b583
31 changed files with 2 additions and 2 deletions
@@ -0,0 +1,166 @@
#ifndef __ACE_SDK_CLIENT_IMPL_H__
#define __ACE_SDK_CLIENT_IMPL_H__
#ifndef _WIN32
#error ACE Client SDK is only compatible with Windows programs now.
#endif
#include <stdint.h>
#include <string.h>
#include <windows.h>
#define STRSAFE_NO_DEPRECATE
#include <strsafe.h>
#include "ace_sdk_common.h"
#include "ace_sdk_account.h"
struct __AceSdkClientPacket;
struct __AceSdkClientLightFeaturePacket;
struct __AceSdkClientLightFeature;
typedef AceSdkResult(ACE_SDK_CALL* __AceSdkClientLogInRoutine)(void*, const char*, uint32_t, uint32_t, const char*);
typedef AceSdkResult(ACE_SDK_CALL* __AceSdkClientLogOutRoutine)(void*);
typedef AceSdkResult(ACE_SDK_CALL* __AceSdkClientDeinitRoutine)(void*);
typedef AceSdkResult(ACE_SDK_CALL* __AceSdkClientGetPacketRoutine)(void*, struct __AceSdkClientPacket* out_packet);
typedef AceSdkResult(ACE_SDK_CALL* __AceSdkClientOnPacketReceivedRoutine)(void*, const uint8_t*, uint32_t);
typedef AceSdkResult(ACE_SDK_CALL* __AceSdkClientGetLightFeaturePacketRoutine)(void*, struct __AceSdkClientLightFeaturePacket*);
typedef AceSdkResult(ACE_SDK_CALL* __AceSdkClientOnLightFeatureReceivedRoutine)(void*, const struct __AceSdkClientLightFeature*);
typedef struct {
void* handle_;
void* deprecated1_;
__AceSdkClientLogOutRoutine log_out_;
__AceSdkClientDeinitRoutine deinit_;
__AceSdkClientGetPacketRoutine get_packet_;
__AceSdkClientOnPacketReceivedRoutine on_packet_received_;
__AceSdkClientLogInRoutine log_in_;
__AceSdkClientGetLightFeaturePacketRoutine get_light_feature_packet_;
__AceSdkClientOnLightFeatureReceivedRoutine on_light_feature_received_;
}__AceSdkClientObject;
typedef struct {
const ACE_CHAR* config_path_;
}__AceSdkClientInitParams;
#ifdef _MSC_VER
__declspec(selectany) __AceSdkClientObject* __ace_sdk_client_object = NULL;
#else
__attribute__((weak)) __AceSdkClientObject* __ace_sdk_client_object = NULL;
#endif
#define __ACE_SDK_CLIENT_VERSION 9
inline int32_t __ace_sdk_get_exe_mod_path(ACE_CHAR* path, uint32_t len)
{
uint32_t ret = GetModuleFileNameW(NULL, path, len);
if (ret == 0 || ret == len)
{
return -1;
}
ACE_CHAR* pos = wcsrchr(path, L'\\');
if (pos == NULL)
{
return -1;
}
*pos = L'\0';
return 0;
}
inline AceSdkResult ace_sdk_client_init()
{
ACE_CHAR full_path[1024];
if (__ace_sdk_get_exe_mod_path(full_path, ARRAYSIZE(full_path)) != 0)
{
return ACE_SDK_RESULT_CALC_PATH_FAILED;
}
#ifdef _WIN64
const ACE_CHAR* dll_path = L"\\AntiCheatExpert\\ACE-Base64.dll";
#else
const ACE_CHAR* dll_path = L"\\AntiCheatExpert\\x86\\ACE-Base32.dll";
#endif
if (FAILED(StringCchCatW(full_path, ARRAYSIZE(full_path), dll_path)))
{
return ACE_SDK_RESULT_CALC_PATH_FAILED;
}
int32_t ret = __ace_sdk_load_library(full_path);
if (ret != 0)
{
return ACE_SDK_RESULT_LOAD_LIBRARY_FAILED;
}
typedef AceSdkResult(*InitRoutine)(uint32_t, const __AceSdkClientInitParams*, __AceSdkClientObject**);
InitRoutine init = (InitRoutine)__ace_sdk_get_symbol("InitAceClient5");
if (init == NULL)
{
__ace_sdk_unload_library();
return ACE_SDK_RESULT_SYMBOL_NOT_FOUND;
}
return init(__ACE_SDK_CLIENT_VERSION, NULL, &__ace_sdk_client_object);
}
inline AceSdkResult ace_sdk_client_log_in(const char* account_id, AceSdkAccountType account_type, uint32_t world_id, const char* login_token)
{
if (__ace_sdk_client_object == NULL)
{
return ACE_SDK_RESULT_INIT_NOT_CALLED_OR_FAILED;
}
return __ace_sdk_client_object->log_in_(__ace_sdk_client_object->handle_, account_id, (uint32_t)account_type, world_id, login_token);
}
inline AceSdkResult ace_sdk_client_log_out()
{
if (__ace_sdk_client_object == NULL)
{
return ACE_SDK_RESULT_INIT_NOT_CALLED_OR_FAILED;
}
return __ace_sdk_client_object->log_out_(__ace_sdk_client_object->handle_);
}
inline AceSdkResult ace_sdk_client_deinit()
{
if (__ace_sdk_client_object == NULL)
{
return ACE_SDK_RESULT_INIT_NOT_CALLED_OR_FAILED;
}
AceSdkResult ret = __ace_sdk_client_object->deinit_(__ace_sdk_client_object->handle_);
__ace_sdk_client_object = NULL;
return ret;
}
inline AceSdkResult ace_sdk_client_get_packet(struct __AceSdkClientPacket* out_packet)
{
if (__ace_sdk_client_object == NULL)
{
return ACE_SDK_RESULT_INIT_NOT_CALLED_OR_FAILED;
}
return __ace_sdk_client_object->get_packet_(__ace_sdk_client_object->handle_, out_packet);
}
inline AceSdkResult ace_sdk_client_on_packet_received(const uint8_t* packet, uint32_t len)
{
if (__ace_sdk_client_object == NULL)
{
return ACE_SDK_RESULT_INIT_NOT_CALLED_OR_FAILED;
}
return __ace_sdk_client_object->on_packet_received_(__ace_sdk_client_object->handle_, packet, len);
}
inline AceSdkResult ace_sdk_client_get_light_feature_packet(struct __AceSdkClientLightFeaturePacket* out_packet)
{
if (__ace_sdk_client_object == NULL)
{
return ACE_SDK_RESULT_INIT_NOT_CALLED_OR_FAILED;
}
return __ace_sdk_client_object->get_light_feature_packet_(__ace_sdk_client_object->handle_, out_packet);
}
inline AceSdkResult ace_sdk_client_on_light_feature_received(const struct __AceSdkClientLightFeature* light_feature)
{
if (__ace_sdk_client_object == NULL)
{
return ACE_SDK_RESULT_INIT_NOT_CALLED_OR_FAILED;
}
return __ace_sdk_client_object->on_light_feature_received_(__ace_sdk_client_object->handle_, light_feature);
}
#endif