ro-webgl/Assets/Plugins/SDK/DataTemplate.cs
2021-12-21 09:40:39 +08:00

425 lines
18 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//此脚本内为sdk通用数据业务层下发的数据类型如果各sdk需要继续添加则各自另外继承实现
public enum ChannelType
{
WORLD = 1, //世界
GUILD = 2, //工会
GUILD_NOTICE = 3 ,//工会公告
GUILD_RECRUIT = 4,//工会招募
PRIVATE = 5, //私聊
HUNDRED_DOJO_SLOGAN = 6 //百人道场口号
}
public class DeviceSystemData
{
public string deviceModel;
public int deviceWidth;
public int deviceHeight;
public string osName;
public string osVer;
public string macAddr;
public string udid;
public string isp;
public string network;
public string appChannel;
public string appVer;
public string transId;
public string deviceId;
public int isEmulator;
public int isRoot;
public string accountId;
public string oldAccountId;
public string imei;
public string countryCode;
public string oaid;
public string engineVer;
}
public enum SDKModulType
{
USERMANAGER,
EXIT_VIEW,
}
public class UserInfo
{
public string uid;
public string userName;
public string token;
}
public class OrderExtraInfo
{
public int serverId;
public string platform;
public string subPlatform;
}
public class OrderInfo
{
public string cpOrderId;
public string goodsId;
public string goodsName;
public string goodsDesc;
public string orderAmount;
public string unitName;
public string goodsNum;
public string goinNum;
public string cpExtra;
}
public class GameRoleInfo
{
// 必填参数
public string openId;
public int serverId;
public string serverName;
public string roleId;
private string m_roleName;
public string roleName
{
get
{
if (string.IsNullOrEmpty(m_roleName))
{
return "初心者";
}
else
{
return m_roleName;
}
}
set
{
m_roleName = value;
}
}
public int roleLv;
public long roleCreateTime;
public long roleUpLvTime;
// 非必填参数
public int vipLv;
public int gender;
public int jobId;
public string jobName;
public long guildId;
public string guildName;
public int fightPower;
public string balance;
// 其它参数
public long lastLogoutTime;
public long loginTime;
public long openServerTime;
public bool Valid()
{
return !string.IsNullOrEmpty(roleId) && serverId > 0;
}
}
public class AccountLoginInfo
{
public string uid;
public string username;
public string token;
}
public class TutorialDetail
{
public int total_screens;
public int finish_screens;
}
public class Offline_ItemDetail
{
public ItemDic[] offline_item;
}
public class Item_SumDetail
{
public ItemDic[] item_sum;
}
public class YuanbaoUseDetails
{
public ItemDic[] details;
}
public class ItemDic
{
public int item_id;
public string item_name;
public int count;
}
#region
//timestamp 实际上是int64, 类似于c里面time的返回值表示1970年到现在经过了多少秒 1371089650
//timestamp_text 更具有可读性的时间,日期之后接时间,精确到秒,时间之后接时区,使用空格分割。
//格式是 YYYY-MM-DD HH:MM:SS Timezone 2013-04-11 00:00:09 +0800
// 2019-07-09 00:00:00 +0900
public class ReportActivationData
{
public long active_time; //激活时间
}
public class ReportUpdateData
{
public long reach_update_time; //timestamp类型 到达更新界面时间,若无,不记录
public int update_status; //0表示更新开始1表示更新成功-1表示更新失败
public long update_time; //timestamp类型 记录更新状态对应的时间,比如更新开始的时间、更新成功的时间、更新失败的时间
public int use_time; //单位秒如果update_status=0这里记录为0如果update_status=1记录更新成功时间-更新开始时
//间如果update_status=-1记录更新失败时间-更新开始时间
}
public class ReportDownloadData
{
public long update_time; //timestamp类型 记录更新状态对应的时间,比如更新开始的时间、更新成功的时间、更新失败的时间
public string patch_ver; //当前要下载的patch的版本号
public string download_url; //下载资源的url即patch的下载地址
public int downloaded_size; //已经下载好的patch文件大小MB为单位
public int file_size; //需下载的所有patch文件的总大小MB为单位
public int file_num; //需下载的所有patch文件的总数
}
public class ReportLoginUIData
{
public long reach_login_time; //timestamp类型 到达登陆界面时间
}
public class ReportIdentificationData
{
public long reach_login_time; //timestamp类型 到达账号认证界面时间
}
public class ReportLoadData
{
public long reach_game_time; //到达登陆界面时间
public int load_time_long; //对于进入游戏界面前需要加载的游戏(非更新),指上一界面至游戏界面加载的时长,单位秒
}
public class ReportTutorial
{
public int server; //服务器编号id要求是正整数的编号如10001
public string role_id; //角色唯一标识,在所有服唯一
public string role_name; //游戏角色名称,多服可重复,单服唯一
public string tutorial_id; //新手引导ID 例“001-1022”。
public string tutorial_name; //新手引导名称 例:“第一次主城升级”
public string details; //ITEM_DICT类型 该玩法其他信息。
//例:该引导总点击次数,玩家实际点击次数
//“{total_screens:5, finish_screens:3}”
public long begin_time; //timestamp类型 开始新手引导的时间
public int begin_role_level; //开始教程时玩家角色等级
public int end_role_level; //结束教程时玩家角色等级
public int vip_level; //角色VIP等级 注意如果不写则默认游戏内没有vip等级
public int use_time; //玩法耗时单位秒瞬时玩法的耗时记为0
public int step_type; //引导情况(未完成:-1完成1开始 0
}
public class ReportUserCertification
{
public int server; //服务器编号id要求是正整数的编号如10001
public string account_id; //游戏账号的唯一标示符,用于统计用户数量。
}
public class ReportCreateRole
{
public int server; //服务器编号id要求是正整数的编号如10001
public string role_id; //角色唯一标识,在所有服唯一。
public string role_name; //游戏角色名称,多服可重复,单服唯一
public long create_time; //timestamp类型 这个角色的创建时间
}
public class ReportLoginRole
{
public int server; //服务器编号id要求是正整数的编号如10001
public string role_id; //角色唯一标识,在所有服唯一。
public string role_name; //游戏角色名称,多服可重复,单服唯一
public long create_time; // timestamp类型 这个角色的创建时间
public int role_level; //角色等级
public long login_time; //timestamp类型 角色登录游戏的时间
public int vip_level; //角色vip等级 注意如果不写则默认游戏内没有vip等级
public long last_logout_time; //timestamp类型 角色上次退出游戏的时间
public int offline_money; //本次登陆奖励的游戏币数目,包括离线挂机奖励。
//注意如果游戏内没有这个数据可以不添加如游戏不是mmo的
public int offline_exp; //本次登陆奖励的经验,包括离线挂机奖励。
//注意如果游戏内没有这个数据可以不添加如游戏不是mmo的
public string offline_item; //ITEM_DICT格式 本次登陆奖励的物品或者资源,包括离线挂机奖励。
// 若无奖励,则不需要本字段,如果有多个道具,可以用这种方式完成:
//" offline_item ": [
// { "item_id": 1,
// "item_name": "a",
// "count": 1
// },
// { "item_id": 2,
// "item_name": "b",
// "count": 2
// }
//]注意要自己查下是否满足json格式
}
public class ReportRoleEnterFail
{
public int server; //服务器编号id要求是正整数的编号如10001
public string role_id; //角色唯一标识,在所有服唯一。
public string role_name; //游戏角色名称,多服可重复,单服唯一
public int role_level; //角色等级
public long login_time; //timestamp类型 角色登录游戏的时间
public int vip_level; //角色vip等级
}
public class ReportLogoutRole
{
public int server; //服务器编号id要求是正整数的编号如10001
public string role_id; //角色唯一标识,在所有服唯一。
public long create_time; //timestamp类型 这个角色的创建时间
public string role_name; //游戏角色名称,多服可重复,单服唯一
public int role_level; //角色等级
public int vip_level; //角色vip等级 注意如果不写则默认游戏内没有vip等级
public int exp; //角色当前经验(如游戏没有角色概念,可以不写)
public long logout_time; //timestamp类型 角色登出游戏的时间
public int online_time; //在线时间 本次玩家在线时长(单位:秒);由于实名认证的需求,建议可以排除掉后台在线时间,
//以防未成年玩家的游戏时间都消耗在后台
public string scene; //登出时所在场景(如果游戏是获取不到这个数据的,可以不添加)
public string axis; //登出时所在场景坐标,应该是 (x,y,z)的形式(如果游戏是获取不到这个数据的,可以不添加)
public string last_operation; //登出前角色最后一次操作或者完成的玩法,游戏自己定义。
public int money_sum; //每次登出的时候将本次在线所有系统产生游戏币进行累加
//注意:如果游戏是获取不到这个数据的,可以不添加
public int exp_sum; //每次登出的时候将本次在线所有获得的经验值进行累加写出。
//注意:如果游戏是获取不到这个数据的,可以不添加
public string item_sum; //每次登出的时候将本次在线所有你希望监控的重要资源或者物品进行累计,通过物品资源表形式写出
}
public class ReportAntiAddictionKickOff
{
public int server; //服务器编号id要求是正整数的编号如10001
public string role_id; //角色唯一标识,在所有服唯一。
public string role_name; //游戏角色名称,多服可重复,单服唯一
public int role_level; //角色等级
public long kickoff_time; //timestamp类型 角色被踢下线的时间
}
public class ReportPrepaid
{
public int server; //服务器编号id要求是正整数的编号如10001
public string role_id; //角色唯一标识,在所有服唯一。
public string role_name; //游戏角色名称,多服可重复,单服唯一
public int role_level; //角色等级
public int vip_level; //角色vip等级 注意如果不写则默认游戏内没有vip等级
public string pay_channel; //如app_storenetease 、91_assistant具体参见关于pay_channel说明章节
public int yuanbao; //本次充值获得的元宝数量 注意yuanbao值为正数等于付费元宝+免费元宝。如果付费元宝是10免费元宝是5则记录为10+5=15
public int free_yuanbao; //本次充值获得的免费元宝值为正数如没获得免费元宝则记录为0例如用网易点充值的时候
//如果使用的点数为免费点,则获得免费元宝)
public float cash; //本次充值花费现金 注意cash和currency的值必须对应如充值的货币是美元则currency的值须为USD/usd
public string currency; //货币类型CNY代表中国货币EUR代表欧元统一采用标准货币代码
public int left_yuanbao; //角色充值后剩余元宝量
//注意left_yuanbao值为正数等于剩余付费元宝+剩余免费元宝。如果剩余付费元宝是10剩余免费元宝是5则记录为10+5=15
public int left_free_yuanbao; //角色充值后剩余的免费元宝量,值为正数(产品务必区分)
public long pay_time; //timestamp类型 角色充值的时间
public string pay_method; //返回计费SDK接口中的pay_method注意一定返回该字段涉及财务收入统计
public string get_item; //ITEM_DICT类型 用于记录充值获得的道具。如梦幻口袋版,充值不获得元宝,但可以获得精力值,这里记录精力值的详情
public string sn; //订单编号,一般是唯一的
public string prepaid_detail; //ITEM_DICT类型 比如游戏内的购买钻石购买xxx个钻石用于分析。例如 该字段内容包含充值的物品编号,以及充值的物品显示名称。
//"prepaid_name":"苹果官方充值12元""prepaid_id":"com.netease.xyqm.buy_energies12"
}
public class ReportItemBuy
{
public int server;
public string role_id;
public string role_name;
public int role_level;
public int vip_level;
public int item_id;
public string item_name;
public string item_type;
public long buy_time; //timestamp类型
public long expire_time; //timestamp类型
public int count;
public int price;
public int yuanbao;
public int left_yuanbao;
public int left_free_yuanbao;
public int cost_money;
}
public class ReportYuanbaoUse
{
public int server;
public string role_id;
public string role_name;
public int role_level;
public int vip_level;
public string reason; //消耗原因
public string details; //
public int yuanbao; //花费元宝
public int left_yuanbao;
public int free_yuanbao;
public int left_free_yuanbao;
public string use_time;
}
public class ReportYuanbaoGain
{
public int server;
public string role_id;
public string role_name;
public int role_level;
public int vip_level;
public string reason;
public int yuanbao;
public int free_yuanbao;
public int left_yuanbao;
public int left_free_yuanbao;
public long gain_time; //timestamp类型 获取时间
}
public class ReportFPS
{
public int server;
public string role_id;
public string role_name;
public string scene_id;
public string team_id;
public string quality_level;
public int is_battle;
public int multi_players; //平均同频人数
public int[] fps; //5分钟内的fps的list
public int[] ping; //5分钟内的ping的list
}
public class ReportChat
{
public int server;
public string role_id;
public string role_name;
public int role_level;
public string content; //发言内容
public string channel; //发言频道
public string scene; //发言时所在场景
public string axis; //发言时所在坐标
public long chat_time; //timestamp类型 发言时间
public string y_account_id; //发言对象的account_id和玩家私聊时记录如在公共频道发言不用记录或者记录空字符串
public string y_obj; //发言对象的role_id和玩家私聊时记录如在公共频道发言不用记录或者记录空字符串
public int y_level; //发言对象的等级,和玩家私聊时记录;如在公共频道发言,不用记录或者记录空字符串
public string y_name; //发言对象的昵称,和玩家私聊时记录;如在公共频道发言,不用记录或者记录空字符串
}
#endregion