yuanshen/Yuanshen.SDK/Models/SdkModels.cs
wisedev 61cc2055cf First working version of the server
KCP gameserver with packet dispatch, scene streaming, combat, gacha and the
shop, plus a small HTTP server for the login flow and the wish history page.

Game data under assets is pulled out of the client instead of being typed by
hand. The excel tables come from the packed bin container and the spawn points
from the compiled scene scripts.
2026-09-04 02:06:53 +03:00

136 lines
4.3 KiB
C#

namespace Yuanshen.SDK.Models;
public sealed class Rsp<T>
{
public int Retcode { get; set; }
public string Message { get; set; } = "OK";
public T? Data { get; set; }
}
public sealed class CaptchaData
{
public string Id { get; set; } = "none";
public string Action { get; set; } = "ACTION_NONE";
public object? Geetest { get; set; }
}
public sealed class LoadConfigData
{
public int Id { get; set; } = 6;
public string GameKey { get; set; } = "hk4e_global";
public string Client { get; set; } = "PC";
public string Identity { get; set; } = "I_IDENTITY";
public bool Guest { get; set; }
public string IgnoreVersions { get; set; } = "";
public string Scene { get; set; } = "S_NORMAL";
public string Name { get; set; } = "Yuanshen";
public bool DisableRegist { get; set; }
public bool EnableEmailCaptcha { get; set; }
public object[] Thirdparty { get; set; } = [];
public bool DisableMmt { get; set; }
public bool ServerGuest { get; set; }
public bool EnablePsBindAccount { get; set; }
}
public sealed class ComboConfigData
{
public bool Protocol { get; set; } = true;
public bool QrEnabled { get; set; }
public string LogLevel { get; set; } = "INFO";
public string AnnounceUrl { get; set; } = "https://localhost/";
public int PushAliasType { get; set; } = 2;
public bool DisableYsdkGuard { get; set; }
public bool EnableAnnouncePicPopup { get; set; }
}
public sealed class ProtocolInfo
{
public int Id { get; set; }
public int AppId { get; set; } = 4;
public string Language { get; set; } = "zh-cn";
public string UserProto { get; set; } = "";
public string PrivProto { get; set; } = "";
public int Major { get; set; } = 7;
public int Minimum { get; set; }
public string CreateTime { get; set; } = "0";
public string TeenagerProto { get; set; } = "";
public string ThirdProto { get; set; } = "";
}
public sealed class GetProtocolData
{
public bool Modified { get; set; } = true;
public ProtocolInfo Protocol { get; set; } = new();
}
public sealed class AccountData
{
public string Uid { get; set; } = "1337";
public string Name { get; set; } = "yuanshen";
public string Email { get; set; } = "yuanshen@ys.local";
public string IsEmailVerify { get; set; } = "1";
public string Realname { get; set; } = "";
public string IdentityCard { get; set; } = "";
public string Token { get; set; } = "yuanshentoken";
public string Country { get; set; } = "US";
public string AreaCode { get; set; } = "**";
}
public sealed class ShieldLoginData
{
public AccountData Account { get; set; } = new();
public bool DeviceGrantRequired { get; set; }
public bool SafeMobileRequired { get; set; }
public bool RealpersonRequired { get; set; }
public bool ReactivateRequired { get; set; }
public string RealnameOperation { get; set; } = "None";
}
public sealed class GranterLoginData
{
public string ComboId { get; set; } = "1";
public string OpenId { get; set; } = "1337";
public string ComboToken { get; set; } = "yuanshencombotoken";
public string Data { get; set; } = "{\"guest\":false}";
public bool Heartbeat { get; set; }
public int AccountType { get; set; } = 1;
public object? FatigueRemind { get; set; }
}
public sealed class BeforeVerifyData
{
public bool IsHeartbeatRequired { get; set; }
public bool IsRealpersonRequired { get; set; }
public bool IsGuardianRequired { get; set; }
}
public sealed class GenAuthKeyData
{
public int SignType { get; set; } = 2;
public int AuthkeyVer { get; set; } = 1;
public string Authkey { get; set; } = string.Empty;
}
public sealed class AlertAnnData
{
public bool Alert { get; set; }
public int AlertId { get; set; }
public List<object> Remind { get; set; } = new();
}
public sealed class AnnListData
{
public List<object> List { get; set; } = new();
public int Total { get; set; }
public List<object> TypeList { get; set; } = new();
public bool Alert { get; set; }
public int AlertId { get; set; }
public string TimeZone { get; set; } = "0";
public string T { get; set; } = "0";
}
public sealed class AnnContentData
{
public List<object> List { get; set; } = new();
public int Total { get; set; }
}