为什么到处都找不到什么好用的资料,难道这个json就这么“浅显易懂”吗?
这是啥?
worldstate.php是Warframe国际服官方给出的服务器状态信息,本质上是JSON,包含警报、入侵、突击等等的游戏实时状况信息。
为什么?
因为我想从头开始做个Discord机器人。
怎么用?
这就是让我最纠结的地方,除了WFCD的Parser之外,我压根就没找到什么能用的文档……
所以免得我自己忘掉,写在这里备忘。
警报
Alerts数组,内含多个数组,每个数组中(我认为)有用的数据如下:
- Activation:警报开始时间,Epoch时间,毫秒。
- Expiry:警报结束时间,同上。
- MissionInfo:任务信息,内含如下内容。
- missionType:任务类型,内部字符串,MT_啥啥的,实际内容转换我扔到Github了。
- location:星图节点,内部字符串,SolNodeXXX,实际内容转换也在Github。
- minEnemyLevel、maxEnemyLevel:警报的等级范围。
- missionReward:警报奖励,默认会有钱Credits,如果有单个的物品,会在items数组,ItemType表示物品类型;如果有多个数量的物品,会在countedItems数组,多一个ItemCount表示物品数量。
- archwingRequired:表示警报需要archwing。
突击
Sorties数组,内含1个数组,包含三个突击任务。
- Activation、Expiry同警报,意义不大,反正一天一更。
- Boss:Boss。
- Variants:含三个数组,就是三个突击。
- missionType:同警报。
- modifierType:限制条件,我忘了把json汉化掉,所以用世界上最好的编程语言附在后面了。
- node:同警报。
虚空裂缝
ActiveMissions数组。需要注意的是数组的顺序是混乱的,需要自己按照古纪前纪排个序。
- MissionType、Node、Expiry:同警报。注意大小写。
- Modifier:只会有四个值,VoidT1、VoidT2、VoidT3、VoidT4。代表古纪、前纪、中纪、后纪。
入侵
Invasions数组。比较烦人的一个。
- Completed:是否已完成,1的话表示这个节点已经打完,就不用输出出来看了。
- DefenderMissionInfo:防御方的任务信息,这里有个弯儿,见底下的描述
- faction:表示进攻方的阵营,因为是防御方要打的阵营。
- AttackerMissionInfo:同上,表示防御方的阵营。
- DefenderReward、AttackerReward:防守方和进攻方的完成奖励,这个不是反过来的,别混了。I系作为进攻方没有奖励,注意写好错误陷阱。
- countedItems:任务奖励。
- ItemType:奖励种类。
- ItemCount:奖励数量。
- countedItems:任务奖励。
- Node:地点。
- LocTag:入侵任务描述。
- Count:目前任务已经完成的总次数,双方对战的话,支持往右边打+1,往左边打-1,比如-1000表示右边打左边多1000次。
- Goal:入侵完成的目标值,当Count达到Goal的时候任务结束。(如果你要计算百分比的话,两边互推是从50%开始的,也就是0为50%)
奸商
VoidTraders数组。为啥是复数?
- Activation、Expiry:奸商到来和离去时间,同上上上。
- Character:到来的角色,说明刚开始的设计可能不止Baro一个。目前来看只有“Baro’Ki Teel”一个值,但实际上游戏里奸商的名字是“Baro Ki’Teer”。迷。
- Node:地点。
- Manifest:数组。带来的商品。
- ItemType:物品种类。
- PrimePrice:需要的杜卡德金币数。
- RegularPrice:需要的Credits数。
Darvo的每日特贵惠
DailyDeals数组。
- StoreItem:物品名。
- Activation、Expiry:我懒得说了。
- Discount:降价百分比。
- OriginalPrice、SalePrice:原价、现价(白金)。
- AmountTotal、AmountSold:库存、已售。
语言文件
上面提到了很多物品名、语言描述之类的东西,直接获取到的其实是类似“/Lotus/StoreItems/Types/Keys/MummyQuestKeyBlueprint”之类的内部字符串。由于现在WF没有有效的字符串提取方式,因此虽然获取英文版很容易,但是翻译还是需要自己来的。
根据WFCD的英文版我自己汉化了一部分放到了Github:https://github.com/Raka-loah/warframe-worldstate-data/blob/master/data/languages.json 。目前不全。
集团任务
SyndicateMissions数组。内容待更。
希图斯白天、黑夜
在SyndicateMissions数组找到Tag为“CetusSyndicate”的集团,其中Activation就是白天开始时间,100分钟白天,50分钟夜晚,自己减一下就知道是白天还是晚上了。
地球的白天黑夜很巧在东八区时间零点是白天开始,每4小时一更,也就是凌晨4点进入夜晚、早晨8点进入白天……循环一天。