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 string timeSp = ""; } 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_store,netease 、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