Skip to main content

未成年人游戏限时

前提条件

  1. 集成 SDK,版本要求:1.29 及以上。
  2. 接入 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_TYPE0 表示 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】),请退出并注意休息,详情请联系您的家长/监护人。
其他值游戏侧可以忽略。