[关闭]
@iamzealotwang 2023-02-21T10:07:37.000000Z 字数 2885 阅读 274

Mod工坊 API 示意

Data结构

  1. public class WorkShopModMeta
  2. {
  3. public string UUID; //唯一ID 全局不重复
  4. public int Type; //区分Mod类型 1:地图 2:脚本 3:模型...etc
  5. public string UserID // KeyForGet AvartaImg,Name?
  6. public string Title;
  7. public string Desc;
  8. public string CDN_FileKey_RawMod; //相应文件的Key. URL地址最终前端拼接.方便更换CDN
  9. public string CDN_FileKey_PreviewImg;
  10. public int Version; //Increass by server side
  11. public int ReviewStatus; // 0 NotStart(Default) 1 During 2 Reject 3 Approve
  12. public string RejectMsg; //审核不通过的理由
  13. public string SecretKey; //加密Key !! 抓Rank时候不能带回来
  14. public string Custom; //游戏内特定逻辑.比如标记当前地图适用的人数(单人,1-4人联机等) 用JSON?
  15. }
  16. public class WorkShopModExtData
  17. {
  18. public string UUID; //Mod的唯一ID 表关联
  19. public int LikeNum;
  20. public int DownloadNum;
  21. public int HotScore;
  22. public Date LastUpdateTime; //最后一次更新时间
  23. //All Custom Data Increase By API Call, Game Specific
  24. public int[] Custom;
  25. }

API

通用

发送文件到CDN
  1. //Data Type区分文件类型是不是图片,CDN对图片有压缩
  2. void Common_UploadFileToCDN(byte[] _data,int _dataType);
Group请求Mod+Ext信息
  1. void Common_BatchGetModInfo(string[] _modUUIDList);
  2. void Result(List<WorkShopModMeta> _modMetaList,List<WorkShopModExtData> _modExtDataList);

Mod制作者

请求某个用户所有已发布的Mod信息
  1. void Mod_GetAllUUIDList(string _userID);
  2. void Result(string[] _allModUUIDList);
创建/更新 Mod

先通过 API上传文件到CDN?

  1. //Data Type区分文件类型是不是图片,CDN对图片有压缩
  2. void Common_UploadFileToCDN(byte[] _data,int _dataType);

再发送给后端

  1. void Mod_Create(string _userID,int _modType,string _title,
  2. string _desc,string _modFileKey,string _preivewImgKey,
  3. string _custom,string _secretKey);
  4. void Mod_Update(string _userID,string _modUUID,string _title=null,
  5. string _desc=null,string _modFileKey=null,string _previewImgKey=null,
  6. string _custom=null,string _secretKey=null);
删除Mod
  1. void Mod_Delete(string _userID, string _modUUID);

普通用户

取得RankList
  1. void User_GetRankList(int _rankType);
  2. return Result(string[] _allModUUIDList);
取得User社交信息
  1. public class UserModSocialInfo()
  2. {
  3. public string[] likedModList; //所有喜欢过的Mod UUID
  4. ... //后续有扩展再添加
  5. }
  6. void User_GetSocialInfo(string _userID);
  7. return Result(UserModSocialInfo _result);
对Mod点赞
  1. void User_LikeMod(string _userID ,string _modUUID);
通知下载了某个Mod
  1. void User_DownloadMod(string _userID, string _modUUID);
自定义
  1. void User_IncreaseCustomValue(string _userID,string _modUUID,
  2. int _customValueIndex,int _increaseValue);

上线后的 审查 & 删除


加密问题

原理

  1. void Custom_GetModSecretKey(string _userID, string _modUUID);
  2. return Result(string _key)

性能


多端登录问题

  1. void Custom_GetModSecretKey(string _userID,string _loginKey, string _modUUID);
  2. return Result(string _key)
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注