未成年人游戏限时
前提条件
- 集成 SDK,版本要求:1.29 及以上。
- 接入 Player Network 登录鉴权服务。
接入步骤
开启配置
一、联系合规接口人为游戏开启配置
"warningThreshold": 10,
"parentControlMap": {
"410": {
"5": 1,
"7": 1
}
}
warningThreshold:显示提前预警时间(单位:分钟)。parentControlMap:开启限时的国家和端。
二、客户端开启心跳上报配置,以便 LI PASS SDK 可以自动进行心跳上报并计算判断
开启方式:
PARENTAL_GUIDANCE_HEARTBEAT_ENABLE = 1
PC 游戏还需开启以下配置:
INTL_SDK_PROGRESS_TYPE = 1
INTL_SDK_PROGRESS_TYPE:0表示 Launcher,1表示游戏进程。
三、游戏服务器根据 SDK 返回结果进行处理
监听 SDK 返回,并参考下文"游戏侧处理建议"进行处理。
实现流程 - 游戏研发需要实现的步骤
Unity 业务层监控心跳回调
// 监听心跳上报回调
AddParentalGuidanceResultObserver
// 取消监听心跳上报回调
RemoveParentalGuidanceResultObserver
Unreal Engine 业务层监控心跳上报回调
// 监听心跳上报回调
AddObserver(TScriptInterface<IINTLPluginObserver> Observer)
void AddObserverExternal(TSharedPtr<IINTLPluginObserver, ESPMode::ThreadSafe> Listener)
// 取消监听心跳上报
void RemoveObserver(UObject* Obj)
void RemoveObserverExternal(TSharedPtr<IINTLPluginObserver, ESPMode::ThreadSafe> Listener)
返回结果
Unreal Engine
USTRUCT(BlueprintType)
struct FINTLParentalGuidanceResult : public FINTLBaseResult {
GENERATED_USTRUCT_BODY()
public:
// 时段限制开始时间,HH:MM
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "INTLSDK | INTLParentalGuidanceResult")
FString TimeLimitStart;
// 时段限制结束时间,HH:MM
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "INTLSDK | INTLParentalGuidanceResult")
FString TimeLimitEnd;
// 时长限制,单位小时,只能整数
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "INTLSDK | INTLParentalGuidanceResult")
int32 DurationLimit;
// 玩家时区,UTC+08:00
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "INTLSDK | INTLParentalGuidanceResult")
FString TimeZone;
// 本地时间,HH:MM
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "INTLSDK | INTLParentalGuidanceResult")
FString Time;
// 当天在线时长,秒数
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "INTLSDK | INTLParentalGuidanceResult")
int32 Duration;
// 计算出来的用户当前剩余时间,单位分钟,允许小数
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "INTLSDK | INTLParentalGuidanceResult")
float LeftMins;
public:
FINTLParentalGuidanceResult() {
}
FINTLParentalGuidanceResult(int ret) : FINTLBaseResult(ret) {
}
FINTLParentalGuidanceResult(FINTLBaseResult BaseRet){
MethodId = BaseRet.MethodId;
RetCode = BaseRet.RetCode;
RetMsg = BaseRet.RetMsg;
ThirdCode = BaseRet.ThirdCode;
ThirdMsg = BaseRet.ThirdMsg;
ExtraJson = BaseRet.ExtraJson;
SubRetCode = BaseRet.SubRetCode;
}
};
Unity
public class ParentalGuidanceResult : INTLBaseResult
{
private string timeLimitStart; // 时段限制开始时间,HH:MM
private string timeLimitEnd; // 时段限制结束时间,HH:MM
private long durationLimit; // 时长限制,单位小时,只能整数
private string timeZone; // 玩家时区,UTC+08:00
private string currentTime; // 本地时间,HH:MM
private long duration; // 当天在线时长,秒数
private double leftMins; // 计算出来的用户当前剩余时间,单位分钟,允许小数
[JsonProp("time_limit_start")]
public string TimeLimitStart
{
get { return timeLimitStart; }
set { timeLimitStart = value; }
}
[JsonProp("time_limit_end")]
public string TimeLimitEnd
{
get { return timeLimitEnd; }
set { timeLimitEnd = value; }
}
[JsonProp("duration_limit")]
public long DurationLimit
{
get { return durationLimit; }
set { durationLimit = value; }
}
[JsonProp("time_zone")]
public string TimeZone
{
get { return timeZone; }
set { timeZone = value; }
}
[JsonProp("time")]
public string CurrentTime
{
get { return currentTime; }
set { currentTime = value; }
}
[JsonProp("duration")]
public long Duration
{
get { return duration; }
set { duration = value; }
}
[JsonProp("left_mins")]
public double LeftMins
{
get { return leftMins; }
set { leftMins = value; }
}
public ParentalGuidanceResult() { }
public ParentalGuidanceResult(string param) : base(param) { }
public ParentalGuidanceResult(object json) : base(json) { }
}
游戏侧处理建议
监听 thirdCode / ThirdCode,根据不同返回码进行处理:
| ThirdCode | 场景描述 | 需要关注的参数 | 建议游戏侧处理 |
|---|---|---|---|
70049 | 游戏侧需要预警玩家:距离家长设置可以游玩的时长,剩余 x 分钟,提前预警提示玩家 | duration:玩家当日累计游玩时长(单位:秒)durationLimit:家长设置的可以游玩时长(单位:小时)leftMins:剩余时间(单位:分钟,允许小数) | 弹窗或弹文字提醒玩家。 提示语参考:检测您今日累积的游玩时长即将在【 leftMins】分钟后到达家长/监护人设置的上限(【durationLimit】小时),建议优先完成关键任务,避免突然中断影响游戏体验。 |
70047 | 游戏侧需要踢出玩家或禁止进入:用户当日游玩时长已经到达家长设置可以游玩的时长限制,需要提示玩家并退出游戏服/登录 | durationLimit:家长设置的可以游玩时长(单位:小时) | 踢出游戏服/登录,并温馨提示。 提示语参考:您今日的累积游玩时长已到达家长/监护人设置的上限(【 durationLimit】小时),请退出并注意休息,明日再试。 |
70048 | 游戏侧需要预警玩家:距离家长设置可游玩时段的结束时间,剩余 x 分钟,提前预警提示玩家 | timeLimitStart:家长设置的可以开始游玩的时间timeLimitEnd:家长设置的需要结束游玩的时间leftMins:剩余时间(单位:分钟,允许小数) | 弹窗或弹文字提醒玩家。 提示语参考:检测到您正处于家长设定的健康时段【 timeLimitStart】 - 【timeLimitEnd】尾声(剩余【leftMins】分钟),建议优先完成关键任务,避免突然中断影响游戏体验。 |
70046 | 游戏侧需要踢出玩家或禁止进入:用户当前的时间,不在家长设置可以游玩的时段,需要提示玩家并退出游戏服/登录 | timeLimitStart:家长设置的可以开始游玩的时间timeLimitEnd:家长设置的需要结束游玩的时间 | 踢出游戏服/登录,并温馨提示。 提示语参考:当前时间不在您家长/监护人设置的允许游玩时段(【 timeLimitStart】 - 【timeLimitEnd】),请退出并注意休息,详情请联系您的家长/监护人。 |
| 其他值 | — | — | 游戏侧可以忽略。 |