Files
dnf-utils/ace_sdk/server/include/ace_sdk_server_light_feature.h
2025-12-06 17:59:24 +08:00

62 lines
2.1 KiB
C

#ifndef __ACE_SDK_SERVER_LIGHT_FEATURE_H__
#define __ACE_SDK_SERVER_LIGHT_FEATURE_H__
#include "ace_sdk_account.h"
#include "ace_sdk_server_light_feature_impl.h"
#pragma pack(push, 1)
#define ACE_SDK_MAX_CLIENT_VERSION_LEN 256
#define ACE_SDK_MAX_LIGHT_FEATURE_NAME_LEN 256
#define ACE_SDK_MAX_LIGHT_FEATURE_DATA_LEN (128 * 1024)
/**
* TssSdkGetFeatureUserInfo
*/
typedef struct __AceSdkLightFeatureRequest
{
/**
* Version of the client: string separated by '.'
*/
char client_version_[ACE_SDK_MAX_CLIENT_VERSION_LEN];
} AceSdkLightFeatureRequest;
/**
* AceSdkLightFeatureResponse
*/
typedef struct __AceSdkLightFeatureResponse
{
/**
* Actual length of the light feature. 0 means that no light features are matched.
*/
int32_t data_len_;
/**
* Binary content of the light feature.
*/
char data_[ACE_SDK_MAX_LIGHT_FEATURE_DATA_LEN];
/**
* Name of the light feature(C-style string). It is recommended to log it along with the account for trouble shooting.
*/
char name_[ACE_SDK_MAX_LIGHT_FEATURE_NAME_LEN];
/**
* CRC32 of the light feature data. It is recommended to log it along with the account for trouble shooting.
*/
uint32_t data_crc_;
} AceSdkLightFeatureResponse;
#pragma pack(pop)
/**
* @brief It must be called after player logins the game as soon as possible.
* @param account Account of player.
* @param request Information for matching light feature.
* @param response Information of light feature.
* @returns Non-0 : Contact ACE to handle it.
* 0 : If 'data_len_' is not 0, send light feature data('data_') to ACE client with the actual length('data_len_') and guarante success.
* If 'data_len_' is 0, do nothing.
* @note If light feature is matched but not sent to ACE client successfully and immediately, players may be punished wrongly by ACE.
*/
AceSdkResult ace_sdk_server_get_light_feature(const AceSdkAccount* account, const AceSdkLightFeatureRequest* request, AceSdkLightFeatureResponse* response);
#endif // __ACE_SDK_SERVER_LIGHT_FEATURE_H__