==注:本人原本在obsidian写好,是原创,首次发表到51CTO平台上,格式不兼容的部分请索要原文章的图片形式以便查看,谢谢啦==
![[Pasted image 20250124091626.png]]
fiddler改包
参考官方文档
![[【参考】Fiddler everywhere 官方Rule文档#^f8f787]]
我们的最终目标是实现modify json response
使用如图的模式先测试一下能不能改成功
![[Pasted image 20250126005112.png|Plain text纯文本替换]]
效果是修改用户名通过 update response body
替换其中的Plain
text)。
![[Pasted image 20250126005045.png|如你所见,彪悍勇猛白日海(用户名)]]
fiddler的filter过滤需要的response
![[Pasted image 20250126060345.png|通过header里的content-type设置filter,过滤出你想要的响应体]]
![[Pasted image 20250126060626.png|保存filter需要按这里右上的save,右下角的apply并不会保存你写的filter。]]
![[Pasted image 20250126060945.png|这个是之前进入家长管理界面输入的内容。一个成语一眼望过去还是有点恐怖谷的。不过真的卡通可爱没要什么傻逼身份证之类的。]]
游戏内逻辑:附录清单
涉及到 elf_id 的你可以辅助 [[编程猫源码精灵:附录 精灵id对应清单]] 查看。
![[Pasted image 20250129205412.png|使用的推理办法:放在首页的五只精灵会展示 elf_id (无论是否在出征) 在此时我查看他们的游戏内名称,此外还辅助各种测试办法,这样就可以绝对准确地得到任意已获得精灵的id。]]
接口及响应体示例
前言:因为json不支持注释,json5除外。所以这里我的办法就是中途截断或者末尾给你写一点批注,就是我的理解。
根据 JSON规范 (RFC 4627, RFC 7159),不支持注释。JSON规范之所以不允许加注释,主要是防止:过多的注释,影响了文件本身的数据载体的目的。
但是有些场合,尤其是配置文件,还是希望能够帮助说明数据项的含义。一方面有利于描述接口,另一方面能够减少重复性的文档。这在软件快速开发实践中有一定意义。
下列排序依据接口的 :path
/trainer/user/get_info
用户基本信息
{
"user_id": 1336329970,
"type": 2,
"nick": "彪悍勇猛白日海",
"icon": 111112,
"gold": 18830,
"pay_status": 0,
"answer_elf": 1212,
"bell_num": 185,
"current_day_sign_status": "HAS_SIGNED",
"step": 70000,
"opt_steps": [
true
],
"compensation_goods": [],
"incubated_secs": 0,
"show_elfs": [
{
"elf_id": 1152,
"adventure": false,
"fatigue_secs": 0,
"exp": 7452,
"level": 28,
"interact_status": true,
"interact_type": 5203
},
{
"elf_id": 1162,
"adventure": false,
"fatigue_secs": 0,
"exp": 9690,
"level": 30,
"interact_status": true,
"interact_type": 5106
},
{
"elf_id": 1173,
"adventure": false,
"fatigue_secs": 0,
"exp": 20852,
"level": 38,
"interact_status": false,
"interact_type": -1
},
{
"elf_id": 1182,
"adventure": false,
"fatigue_secs": 0,
"exp": 2220,
"level": 20,
"interact_status": true,
"interact_type": 0
},
{
"elf_id": 1252,
"adventure": false,
"fatigue_secs": 0,
"exp": 2278,
"level": 20,
"interact_status": false,
"interact_type": -1
},
{
"elf_id": 3252,
"adventure": false,
"fatigue_secs": 0,
"exp": 3510,
"level": 22,
"interact_status": true,
"interact_type": 0
}
],
"lock_flag": true,
"weekday_lock": -1,
"weekend_lock": -1,
"baidu_ai_audio_token": "",
"shows_furniture": [
7011,
7012,
7013,
7014,
7015,
7016,
7017,
7018
]
}
我的理解:"show_elfs"
这个数组就是我首页在展示的精灵。
"lock_flag": true
这个很可能是是否被限时了,如果时长满了不让玩了就触发这个true。我得给改成false……(似乎修改没用?考虑到flag这个词的提醒意味,可能是什么提示之类的。)
"weekend_lock": -1
"weekday_lock": -1
当我家长模式设置当日限时为 “不让玩” 时,这个数为0.设置当日限时为 “60分钟” 时,这个数为-1.
关于这部分json的讨论,我决定在本小节接下来的防沉迷浅析段落里面一并完成。 [[#^54b1d9]] ^5079d7
在这里,不再分析更多,烦请移步后文查看。
对了,因为是canvas
(cocos2d)所以我前端改不了。我当然理所应当需要改系统时间(这确实有效)但是又难以只针对特定的部分给他时间,这个可能就必须改系统时间。
只能改系统时间了,不要当真,对不起,也许我应该关了git什么的,或者好了我再来写文章。
![[Pasted image 20250126053156.png|图中展示的这五只elf精灵就是上面描述的id1152、1162、1182、1252、3252]]
防沉迷机制浅析
源码精灵有两套防沉迷: 家长防沉迷 & 游戏统一防沉迷。
[[#^54b1d9|家长防沉迷]] [[#^955e2f|游戏统一防沉迷]] 都被我解决掉了,放心吧。
![[Pasted image 20250127185540.png]]
游戏统一防沉迷 : 基本是面子工程,改本地设备时间就能绕过,软件方面^1反而没什么好办法,前文有一定介绍,这里不再赘述。 ^955e2f
![[【ai参考】用油猴办法篡改源码精灵读取的时间……?#^429f22]]
![[【ai参考】用油猴办法篡改源码精灵读取的时间……?#^55bce8]]
这个防沉迷很烦人,乱动设备时间,杀伤力不大侮辱性极强。
上面是我想出的最好办法了就是篡改猴,效果还不错。需要和下面的家长防沉迷【屏蔽词】同时使用。家长防沉迷不要关,每次进主页都会检测,这个进去之后就关掉。
![[Pasted image 20250127185620.png]]
家长防沉迷 : 会上云,需要软件继续进行MITM操作。规则为:限制你每日游戏时长不超过家长设定的时间,
。 ^54b1d9
进入家长设置页面需要做两道题:1. 大写中文数字十以内乘法计算 2. 9字里面找出一个4字成语。可以在里面给周一-周五、周六-周日设置时间以及
。
当然,如果已经触发当天的家长防沉迷,无论如何瞎调都是没有用的。也就是说,这样的修改并不能实质上使我们不限时畅玩(只能最多不超过一个小时)源码精灵。
这部分的json控制接着
get_info
接口分析。 [[#^5079d7]] 下面是我的进一步分析:
"lock_flag": true
这个很可能是是否被限时了,如果时长满了不让玩了就触发这个true。我得给改成false……(似乎修改没用?我有点没搞明白是干啥的,反正我就改下面的lock就行了。)
"weekend_lock": -1
"weekday_lock": -1
当我家长模式设置当日限时为 “不让玩” 时,这个数为0.设置当日限时为 “60分钟” 时,这个数为-1. 设置当日限时为 “30分钟” 时,这个数为1800.
请注意,这三种情况下,这个键值对的类型都是整型^2
这无疑是非常不符合我心目中的编码范式的。说真的,我懵了一会儿。请ai来谈谈他的理解(by claude):
这个接口设计违反了直觉性原则。限制时间应该用正数表示允许的时长(如1800秒=30分钟),用0表示不允许,用-1表示无限制。但这里的-1却表示60分钟,这种特殊值的使用方式既不符合常规编程实践,也增加了代码维护难度和出错风险。
我把这个修改了一下,当 、
都等于(时间设置为) 1800 秒时,改为 18000 秒。
很幸运的是,虽然是超模的数字,但是我成功干掉了家长防沉迷,可以继续游戏了。
![[Pasted image 20250127204747.png|懒得写正则了]]
![[Pasted image 20250127204808.png|让我们恭喜彪悍勇猛白日海,学者中最刻苦的学者!武夫中最踏实的武夫!源码精灵的大救星!]]
用正则重写一下rules
按理来说如果我们最后真的要写成伪服务器形式,那么这部分重写成软编码的正则regex几乎是没啥必要,反正也就我一个开发者,到时候再说。
不过写成正则即使是对于我自己也是鲁棒性的一个提升,所以就开干吧。
![[Pasted image 20250129203643.png|我计划将来根据Nick名称来告诉你所使用的私服版本。如“彪悍勇猛白日海”——充满信心的dev版本!“踏实刻苦白日海”——充满决心的稳定生产版本!]]
测试一下吧,这样精简了不少。
/trainer/incubated/info
培养器
![[Pasted image 20250126050644.png]]
incubated 培养
{
"incubated_egg_id": 201,
"remain_seconds": 0,
"acceTimes": 0,
"shared": 0,
"egg_list": [
{
"egg_id": 201,
"count": 0
},
{
"egg_id": 202,
"count": 1
},
{
"egg_id": 203,
"count": 0
},
{
"egg_id": 205,
"count": 0
}
]
}
似乎是培养器里各种蛋的数目
![[Pasted image 20250130021327.png|如果我领取现在的蛋的话……]]
![[Pasted image 20250130021349.png|居然是new,太令人开心了。火火熊]]
/trainer/incubated/open
培养器收获
请注意:这个是一个发送。这里的1021就是上面的火火熊吧
{
"rewards": [
{
"id": 800,
"num": 300
},
{
"id": 100,
"num": 0
}
],
"reward_elfs": [
{
"elf_id": 1021,
"get_time": 1738174419
}
]
}
/trainer/mail/info
邮件列表
![[Pasted image 20250126050729.png]]
[
{
"id": 80455629,
"mail_type": 8,
"reward_items": [
{
"prop_id": 800,
"num": 100
}
],
"sendtime": 1650547858,
"title": "通天塔奖励",
"content": "训练师真厉害!这是你在通天塔答题获得的奖励,请收下~",
"expiretime": 7,
"accepted": 1
},
{
"id": 80455945,
"mail_type": 8,
"reward_items": [
{
"prop_id": 800,
"num": 100
}
],
"sendtime": 1650549008,
"title": "通天塔奖励",
"content": "训练师真厉害!这是你在通天塔答题获得的奖励,请收下~",
"expiretime": 7,
"accepted": 1
},
{
"id": 80455946,
"mail_type": 8,
"reward_items": [
{
"prop_id": 5105,
"num": 1
}
],
"sendtime": 1650549008,
"title": "通天塔奖励",
"content": "训练师真厉害!这是你在通天塔答题获得的奖励,请收下~",
"expiretime": 7,
"accepted": 1
},
{
"id": 80463316,
"mail_type": 8,
"reward_items": [
{
"prop_id": 800,
"num": 100
}
],
"sendtime": 1650621033,
"title": "通天塔奖励",
"content": "训练师真厉害!这是你在通天塔答题获得的奖励,请收下~",
"expiretime": 7,
"accepted": 1
},
{
"id": 80759722,
"mail_type": 8,
"reward_items": [
{
"prop_id": 800,
"num": 100
}
],
"sendtime": 1651263926,
"title": "通天塔奖励",
"content": "训练师真厉害!这是你在通天塔答题获得的奖励,请收下~",
"expiretime": 7,
"accepted": 1
},
{
"id": 81283211,
"mail_type": 8,
"reward_items": [
{
"prop_id": 800,
"num": 100
}
],
"sendtime": 1652256321,
"title": "通天塔奖励",
"content": "训练师真厉害!这是你在通天塔答题获得的奖励,请收下~",
"expiretime": 7,
"accepted": 1
},
{
"id": 81283299,
"mail_type": 8,
"reward_items": [
{
"prop_id": 800,
"num": 100
}
],
"sendtime": 1652256671,
"title": "通天塔奖励",
"content": "训练师真厉害!这是你在通天塔答题获得的奖励,请收下~",
"expiretime": 7,
"accepted": 1
},
{
"id": 81283325,
"mail_type": 8,
"reward_items": [
{
"prop_id": 800,
"num": 100
}
],
"sendtime": 1652256746,
"title": "通天塔奖励",
"content": "训练师真厉害!这是你在通天塔答题获得的奖励,请收下~",
"expiretime": 7,
"accepted": 1
},
{
"id": 81291330,
"mail_type": 8,
"reward_items": [
{
"prop_id": 800,
"num": 100
}
],
"sendtime": 1652269324,
"title": "通天塔奖励",
"content": "训练师真厉害!这是你在通天塔答题获得的奖励,请收下~",
"expiretime": 7,
"accepted": 1
},
{
"id": 81291331,
"mail_type": 8,
"reward_items": [
{
"prop_id": 5101,
"num": 1
}
],
"sendtime": 1652269324,
"title": "通天塔奖励",
"content": "训练师真厉害!这是你在通天塔答题获得的奖励,请收下~",
"expiretime": 7,
"accepted": 1
},
{
"id": 81291542,
"mail_type": 8,
"reward_items": [
{
"prop_id": 800,
"num": 100
}
],
"sendtime": 1652269545,
"title": "通天塔奖励",
"content": "训练师真厉害!这是你在通天塔答题获得的奖励,请收下~",
"expiretime": 7,
"accepted": 1
},
{
"id": 81291543,
"mail_type": 8,
"reward_items": [
{
"prop_id": 5101,
"num": 1
}
],
"sendtime": 1652269545,
"title": "通天塔奖励",
"content": "训练师真厉害!这是你在通天塔答题获得的奖励,请收下~",
"expiretime": 7,
"accepted": 1
},
{
"id": 81292732,
"mail_type": 8,
"reward_items": [
{
"prop_id": 800,
"num": 100
}
],
"sendtime": 1652270728,
"title": "通天塔奖励",
"content": "训练师真厉害!这是你在通天塔答题获得的奖励,请收下~",
"expiretime": 7,
"accepted": 1
},
{
"id": 81326822,
"mail_type": 8,
"reward_items": [
{
"prop_id": 800,
"num": 100
}
],
"sendtime": 1652380744,
"title": "通天塔奖励",
"content": "训练师真厉害!这是你在通天塔答题获得的奖励,请收下~",
"expiretime": 7,
"accepted": 1
},
{
"id": 81326823,
"mail_type": 8,
"reward_items": [
{
"prop_id": 800,
"num": 100
}
],
"sendtime": 1652380889,
"title": "通天塔奖励",
"content": "训练师真厉害!这是你在通天塔答题获得的奖励,请收下~",
"expiretime": 7,
"accepted": 1
},
{
"id": 81326824,
"mail_type": 8,
"reward_items": [
{
"prop_id": 5102,
"num": 1
}
],
"sendtime": 1652380889,
"title": "通天塔奖励",
"content": "训练师真厉害!这是你在通天塔答题获得的奖励,请收下~",
"expiretime": 7,
"accepted": 1
},
{
"id": 81326825,
"mail_type": 8,
"reward_items": [
{
"prop_id": 800,
"num": 100
}
],
"sendtime": 1652381060,
"title": "通天塔奖励",
"content": "训练师真厉害!这是你在通天塔答题获得的奖励,请收下~",
"expiretime": 7,
"accepted": 1
},
{
"id": 82216562,
"mail_type": 8,
"reward_items": [
{
"prop_id": 800,
"num": 100
}
],
"sendtime": 1653999560,
"title": "通天塔奖励",
"content": "训练师真厉害!这是你在通天塔答题获得的奖励,请收下~",
"expiretime": 7,
"accepted": 1
},
{
"id": 82216563,
"mail_type": 8,
"reward_items": [
{
"prop_id": 5105,
"num": 1
}
],
"sendtime": 1653999560,
"title": "通天塔奖励",
"content": "训练师真厉害!这是你在通天塔答题获得的奖励,请收下~",
"expiretime": 7,
"accepted": 1
},
{
"id": 82216807,
"mail_type": 8,
"reward_items": [
{
"prop_id": 800,
"num": 100
}
],
"sendtime": 1653999891,
"title": "通天塔奖励",
"content": "训练师真厉害!这是你在通天塔答题获得的奖励,请收下~",
"expiretime": 7,
"accepted": 1
},
{
"id": 82220576,
"mail_type": 8,
"reward_items": [
{
"prop_id": 800,
"num": 100
}
],
"sendtime": 1654006707,
"title": "通天塔奖励",
"content": "训练师真厉害!这是你在通天塔答题获得的奖励,请收下~",
"expiretime": 7,
"accepted": 1
},
{
"id": 82220577,
"mail_type": 8,
"reward_items": [
{
"prop_id": 5105,
"num": 1
}
],
"sendtime": 1654006707,
"title": "通天塔奖励",
"content": "训练师真厉害!这是你在通天塔答题获得的奖励,请收下~",
"expiretime": 7,
"accepted": 1
},
{
"id": 80856943,
"mail_type": 1,
"reward_items": [
{
"prop_id": 203,
"num": 1
}
],
"sendtime": 1651341258,
"title": "定制课活动中心奖励",
"content": "恭喜你通过定制课客户端获得以下奖励,请查收~",
"expiretime": 10000,
"accepted": 1
},
{
"id": 82226012,
"mail_type": 1,
"reward_items": [
{
"prop_id": 102,
"num": 10
}
],
"sendtime": 1654071256,
"title": "定制课活动中心奖励",
"content": "恭喜你通过定制课客户端获得以下奖励,请查收~",
"expiretime": 10000,
"accepted": 1
},
{
"id": 88565759,
"mail_type": 1,
"reward_items": [
{
"prop_id": 102,
"num": 10
}
],
"sendtime": 1668725555,
"title": "定制课活动中心奖励",
"content": "恭喜你通过定制课客户端获得以下奖励,请查收~",
"expiretime": 10000,
"accepted": 1
},
{
"id": 90777091,
"mail_type": 1,
"reward_items": [
{
"prop_id": 301,
"num": 3
}
],
"sendtime": 1674034833,
"title": "定制课活动中心奖励",
"content": "恭喜你通过定制课客户端获得以下奖励,请查收~",
"expiretime": 10000,
"accepted": 1
},
{
"id": 91835150,
"mail_type": 1,
"reward_items": [
{
"prop_id": 201,
"num": 1
}
],
"sendtime": 1677592211,
"title": "定制课活动中心奖励",
"content": "恭喜你通过定制课客户端获得以下奖励,请查收~",
"expiretime": 10000,
"accepted": 1
},
{
"id": 93815576,
"mail_type": 1,
"reward_items": [
{
"prop_id": 301,
"num": 3
}
],
"sendtime": 1682863020,
"title": "定制课活动中心奖励",
"content": "恭喜你通过定制课客户端获得以下奖励,请查收~",
"expiretime": 10000,
"accepted": 1
},
{
"id": 93836141,
"mail_type": 1,
"reward_items": [
{
"prop_id": 103,
"num": 10
}
],
"sendtime": 1682927442,
"title": "定制课活动中心奖励",
"content": "恭喜你通过定制课客户端获得以下奖励,请查收~",
"expiretime": 10000,
"accepted": 1
},
{
"id": 94492408,
"mail_type": 1,
"reward_items": [
{
"prop_id": 800,
"num": 1000
}
],
"sendtime": 1685556562,
"title": "定制课活动中心奖励",
"content": "恭喜你通过定制课客户端获得以下奖励,请查收~",
"expiretime": 10000,
"accepted": 1
},
{
"id": 95079496,
"mail_type": 1,
"reward_items": [
{
"prop_id": 201,
"num": 1
}
],
"sendtime": 1688141460,
"title": "定制课活动中心奖励",
"content": "恭喜你通过定制课客户端获得以下奖励,请查收~",
"expiretime": 10000,
"accepted": 1
},
{
"id": 96341962,
"mail_type": 1,
"reward_items": [
{
"prop_id": 201,
"num": 1
}
],
"sendtime": 1694794824,
"title": "定制课活动中心奖励",
"content": "恭喜你通过定制课客户端获得以下奖励,请查收~",
"expiretime": 10000,
"accepted": 1
},
{
"id": 96652130,
"mail_type": 1,
"reward_items": [
{
"prop_id": 301,
"num": 3
}
],
"sendtime": 1696124351,
"title": "定制课活动中心奖励",
"content": "恭喜你通过定制课客户端获得以下奖励,请查收~",
"expiretime": 10000,
"accepted": 1
},
{
"id": 97273165,
"mail_type": 1,
"reward_items": [
{
"prop_id": 301,
"num": 3
}
],
"sendtime": 1699125127,
"title": "定制课活动中心奖励",
"content": "恭喜你通过定制课客户端获得以下奖励,请查收~",
"expiretime": 10000,
"accepted": 1
},
{
"id": 97857118,
"mail_type": 1,
"reward_items": [
{
"prop_id": 800,
"num": 1000
}
],
"sendtime": 1701593292,
"title": "定制课活动中心奖励",
"content": "恭喜你通过定制课客户端获得以下奖励,请查收~",
"expiretime": 10000,
"accepted": 1
},
{
"id": 98640345,
"mail_type": 1,
"reward_items": [
{
"prop_id": 301,
"num": 3
}
],
"sendtime": 1705140036,
"title": "定制课活动中心奖励",
"content": "恭喜你通过定制课客户端获得以下奖励,请查收~",
"expiretime": 10000,
"accepted": 1
},
{
"id": 99251773,
"mail_type": 1,
"reward_items": [
{
"prop_id": 301,
"num": 3
}
],
"sendtime": 1709494579,
"title": "定制课活动中心奖励",
"content": "恭喜你通过定制课客户端获得以下奖励,请查收~",
"expiretime": 10000,
"accepted": 1
},
{
"id": 80934387,
"mail_type": 14,
"reward_items": [
{
"prop_id": 800,
"num": 1000
},
{
"prop_id": 301,
"num": 2
},
{
"prop_id": 100,
"num": 2
}
],
"sendtime": 1651492862,
"title": "<精灵10只>成就",
"content": "训练师,恭喜你拥有了10只不同的源码精灵,请收下这份<精灵10只>的成就奖励吧。",
"expiretime": 10000,
"accepted": 1
},
{
"id": 81261993,
"mail_type": 14,
"reward_items": [
{
"prop_id": 800,
"num": 1000
},
{
"prop_id": 301,
"num": 2
},
{
"prop_id": 100,
"num": 2
}
],
"sendtime": 1652172913,
"title": "<精灵20只>成就",
"content": "训练师,恭喜你拥有了20只不同的源码精灵,请收下这份<精灵20只>的成就奖励吧。",
"expiretime": 10000,
"accepted": 1
},
{
"id": 81771094,
"mail_type": 14,
"reward_items": [
{
"prop_id": 800,
"num": 1000
},
{
"prop_id": 301,
"num": 2
},
{
"prop_id": 100,
"num": 2
}
],
"sendtime": 1653136209,
"title": "<精灵30只>成就",
"content": "训练师,恭喜你拥有了30只不同的源码精灵,请收下这份<精灵30只>的成就奖励吧。",
"expiretime": 10000,
"accepted": 1
},
{
"id": 82167166,
"mail_type": 14,
"reward_items": [
{
"prop_id": 800,
"num": 1000
},
{
"prop_id": 301,
"num": 2
},
{
"prop_id": 100,
"num": 2
}
],
"sendtime": 1653833573,
"title": "<精灵40只>成就",
"content": "训练师,恭喜你拥有了40只不同的源码精灵,请收下这份<精灵40只>的成就奖励吧。",
"expiretime": 10000,
"accepted": 1
},
{
"id": 90042837,
"mail_type": 14,
"reward_items": [
{
"prop_id": 800,
"num": 1000
},
{
"prop_id": 301,
"num": 2
},
{
"prop_id": 100,
"num": 2
}
],
"sendtime": 1671955092,
"title": "<精灵50只>成就",
"content": "训练师,恭喜你拥有了50只不同的源码精灵,请收下这份<精灵50只>的成就奖励吧。",
"expiretime": 10000,
"accepted": 1
},
{
"id": 81058434,
"mail_type": 14,
"reward_items": [
{
"prop_id": 800,
"num": 2500
}
],
"sendtime": 1651888090,
"title": "<铃铛25枚>成就",
"content": "训练师,恭喜你拥有了25枚源码铃铛,请收下这份<铃铛25枚>的成就奖励吧。",
"expiretime": 10000,
"accepted": 1
},
{
"id": 81307313,
"mail_type": 14,
"reward_items": [
{
"prop_id": 800,
"num": 2500
}
],
"sendtime": 1652343503,
"title": "<铃铛50枚>成就",
"content": "训练师,恭喜你拥有了50枚源码铃铛,请收下这份<铃铛50枚>的成就奖励吧。",
"expiretime": 10000,
"accepted": 1
},
{
"id": 81599847,
"mail_type": 14,
"reward_items": [
{
"prop_id": 800,
"num": 2500
}
],
"sendtime": 1652781109,
"title": "<铃铛75枚>成就",
"content": "训练师,恭喜你拥有了75枚源码铃铛,请收下这份<铃铛75枚>的成就奖励吧。",
"expiretime": 10000,
"accepted": 1
},
{
"id": 81885693,
"mail_type": 14,
"reward_items": [
{
"prop_id": 800,
"num": 2500
}
],
"sendtime": 1653231662,
"title": "<铃铛100枚>成就",
"content": "训练师,恭喜你拥有了100枚源码铃铛,请收下这份<铃铛100枚>的成就奖励吧。",
"expiretime": 10000,
"accepted": 1
},
{
"id": 82167131,
"mail_type": 14,
"reward_items": [
{
"prop_id": 800,
"num": 2500
}
],
"sendtime": 1653833491,
"title": "<铃铛125枚>成就",
"content": "训练师,恭喜你拥有了125枚源码铃铛,请收下这份<铃铛125枚>的成就奖励吧。",
"expiretime": 10000,
"accepted": 1
},
{
"id": 82375595,
"mail_type": 14,
"reward_items": [
{
"prop_id": 800,
"num": 2500
}
],
"sendtime": 1654361013,
"title": "<铃铛150枚>成就",
"content": "训练师,恭喜你拥有了150枚源码铃铛,请收下这份<铃铛150枚>的成就奖励吧。",
"expiretime": 10000,
"accepted": 1
},
{
"id": 93836147,
"mail_type": 14,
"reward_items": [
{
"prop_id": 800,
"num": 2500
}
],
"sendtime": 1682927484,
"title": "<铃铛175枚>成就",
"content": "训练师,恭喜你拥有了175枚源码铃铛,请收下这份<铃铛175枚>的成就奖励吧。",
"expiretime": 10000,
"accepted": 1
},
{
"id": 80463226,
"mail_type": 9,
"reward_items": [
{
"prop_id": 301,
"num": 15
},
{
"prop_id": 202,
"num": 1
},
{
"prop_id": 5102,
"num": 15
},
{
"prop_id": 5201,
"num": 15
},
{
"prop_id": 5105,
"num": 15
}
],
"sendtime": 1590654371,
"title": "来自魔术喵的邮件",
"content": "喵~欢迎来到NEMO小宇宙,要想成为一位优秀的源码精灵训练师,就必须要了解和学习源码世界的相关知识哦,而通过【答题模式】就能很好的考验你是否掌握了这些知识,同时在探险的道路上,你也需要强大的精灵帮忙和一些美味的食物补充能量,既然是初次见面,喵喵就给你一份见面礼吧!希望你玩的开心,有所收获哦~",
"expiretime": 8296,
"accepted": 1
},
{
"id": 86440957,
"mail_type": 0,
"reward_items": [
{
"prop_id": 202,
"num": 1
}
],
"sendtime": 1663231007,
"title": "社区活动奖励",
"content": "请收下你的活动奖励~",
"expiretime": 135,
"accepted": 1
},
{
"id": 105558835,
"mail_type": 0,
"reward_items": [
{
"prop_id": 5302,
"num": 1
},
{
"prop_id": 301,
"num": 3
}
],
"sendtime": 1737820800,
"title": "周日专属礼包",
"content": "周末愉快!",
"expiretime": 0,
"accepted": 0
}
]
![[Pasted image 20250126051722.png|邮件领取后。如你所见,105558835是这个邮件的id,这个领取的时候是给指定的路径/query发生一个空请求,而非一个请求内包含被领取的邮件id。]]
对了,正好邮件这边我给保存了个遍,不如干脆删了……?算了。永久有效不得不说是个好文明。
不过我才发现似乎改制了,通天塔邮件现在只保存7天了。
顺带一提,这个字体实在是太舒服了,星铁的字体毫无疑问是非常实用的,这个横平竖直即使花上两三天去干我也觉得真是干值了。
具体到单个邮件的话,就是以下格式:
[{
"id": 80463226,
"mail_type": 9,
"reward_items": [
{
"prop_id": 800,
"num": 9752
}
],
"sendtime": 1737956191,
"title": "致信:孤独的旅人",
"content": "纵然无尽的时间洪流已经吞噬你我,注定坠入无始无终没有永恒的困惑,但愿还能秉持着这份孤独的「爱」——uubd——输入下去……奔赴下去,到真正的死亡,战胜我们的一天。/n 向着山巅走去吧,我命令你,渺小的人类,即使注定是徒劳的攀登,即使年华散尽……直到遍体鳞伤、鲜血流干,也别回头。/n 注:9752是汉字“青”的UTF-8编码。",
"expiretime": 10000,
"accepted": 0
}]
我怀疑这个邮件有什么解读/校验策略,我瞎改是不给过的。
另一方面,也有一种更大的可能是 /n
无法解析,造成游戏崩溃而已。在我移除下面这份diy邮件之后,似乎目测没有出现卡加载。
![[Pasted image 20250127171110.png|在我之前启用了那封带有/n的diy邮件之后,这里出现卡加载状况。我移除了那封diy邮件,改为一封已经有的邮件,这样既实现了轻度的diy,也不会卡加载。下一步应当在此基础上试探性、防御性操作。]]
这是我手动设置的 json 的 set value 修改。这是可以正常使用的。
[
{
"id": 80463226,
"mail_type": 9,
"reward_items": [
{
"prop_id": 301,
"num": 15
},
{
"prop_id": 202,
"num": 1
},
{
"prop_id": 5102,
"num": 15
},
{
"prop_id": 5201,
"num": 15
},
{
"prop_id": 5105,
"num": 15
}
],
"sendtime": 1590654371,
"title": "来自魔术喵的邮件",
"content": "喵~欢迎来到NEMO小宇宙,要想成为一位优秀的源码精灵训练师,就必须要了解和学习源码世界的相关知识哦,而通过【答题模式】就能很好的考验你是否掌握了这些知识,同时在探险的道路上,你也需要强大的精灵帮忙和一些美味的食物补充能量,既然是初次见面,喵喵就给你一份见面礼吧!希望你玩的开心,有所收获哦~",
"expiretime": 8296,
"accepted": 1
}
]
[!note]+ 解析 注:后面的部分解析由ai推测
prop_id:800
源码晶石(基础货币)prop_id:301
答题卡(就是参加爬塔用的门票)prop_id:202
紫色源码蛋 (呃……子弹?)
mail_type:8
通天塔奖励邮件mail_type:1
定制课活动中心奖励邮件mail_type:14
成就奖励邮件mail_type:9
系统欢迎邮件mail_type:0
其他活动奖励邮件【比如周末专属礼包】
expiretime
过期时间(天),10000表示永久有效accepted
是否已领取,1已领取,0未领取
prop_id:5xxx
似乎是特殊道具,可能是所有喂食用的食品。在此基础上紫色食品是52xx
普通食品是51xx
prop_id:1xx-3xx
似乎是基础道具存疑:
- 具体道具ID对应的物品名称
sendtime
的具体时间格式(推测是Unix时间戳)adventure
字段的具体含义
/trainer/user/elfs
精灵列表
^14773d
就是我的精灵的列表,很好理解。
[
{
"elf_id": 1012,
"adventure": false,
"fatigue_secs": 0,
"exp": 23558,
"level": 40
},
{
"elf_id": 1033,
"adventure": false,
"fatigue_secs": 0,
"exp": 15040,
"level": 34
},
{
"elf_id": 1042,
"adventure": false,
"fatigue_secs": 0,
"exp": 3516,
"level": 22
},
{
"elf_id": 1052,
"adventure": false,
"fatigue_secs": 0,
"exp": 2488,
"level": 20
},
{
"elf_id": 1063,
"adventure": false,
"fatigue_secs": 0,
"exp": 13160,
"level": 33
},
{
"elf_id": 1073,
"adventure": false,
"fatigue_secs": 0,
"exp": 13762,
"level": 33
},
{
"elf_id": 1082,
"adventure": false,
"fatigue_secs": 0,
"exp": 7190,
"level": 28
},
{
"elf_id": 1093,
"adventure": false,
"fatigue_secs": 0,
"exp": 19949,
"level": 37
},
{
"elf_id": 1102,
"adventure": false,
"fatigue_secs": 0,
"exp": 7430,
"level": 28
},
{
"elf_id": 1113,
"adventure": false,
"fatigue_secs": 0,
"exp": 22468,
"level": 39
},
{
"elf_id": 1123,
"adventure": false,
"fatigue_secs": 0,
"exp": 20144,
"level": 37
},
{
"elf_id": 1152,
"adventure": false,
"fatigue_secs": 0,
"exp": 7452,
"level": 28
},
{
"elf_id": 1162,
"adventure": false,
"fatigue_secs": 0,
"exp": 9690,
"level": 30
},
{
"elf_id": 1173,
"adventure": false,
"fatigue_secs": 0,
"exp": 20852,
"level": 38
},
{
"elf_id": 1182,
"adventure": false,
"fatigue_secs": 0,
"exp": 2220,
"level": 20
},
{
"elf_id": 1193,
"adventure": false,
"fatigue_secs": 0,
"exp": 18490,
"level": 36
},
{
"elf_id": 1202,
"adventure": false,
"fatigue_secs": 0,
"exp": 2552,
"level": 20
},
{
"elf_id": 1212,
"adventure": false,
"fatigue_secs": 0,
"exp": 1240,
"level": 16
},
{
"elf_id": 1223,
"adventure": false,
"fatigue_secs": 0,
"exp": 11830,
"level": 32
},
{
"elf_id": 1243,
"adventure": false,
"fatigue_secs": 0,
"exp": 6724,
"level": 27
},
{
"elf_id": 1252,
"adventure": false,
"fatigue_secs": 0,
"exp": 2278,
"level": 20
},
{
"elf_id": 1282,
"adventure": false,
"fatigue_secs": 0,
"exp": 11438,
"level": 31
},
{
"elf_id": 1292,
"adventure": false,
"fatigue_secs": 0,
"exp": 8722,
"level": 30
},
{
"elf_id": 3252,
"adventure": false,
"fatigue_secs": 0,
"exp": 3510,
"level": 22
}
]
/trainer/notice
公告(解密活动)
/trainer/notice?page=1&size=5
![[Pasted image 20250127150656.png]]
格式是八位数时间戳+五个洞(0)。
![[Pasted image 20250127170341.png]]
![[Pasted image 20250127165912.png|修改成功后图片上方显示的日期就会变更为你输入的UNIX时间戳日期。]]
![[Pasted image 20250127170227.png|顺带一提:我记得这个素材(game assets也就是现在所谓的资产)是可以在devtools中找到的,不过我建议还是使用比较专业的cocos2d工具,我这样找就比较麻烦]]
[
{
"notice_id": 66,
"type": 1,
"publish_date": 1642694400000,
"img_name": "https://static.codemao.cn/trainer/GG/r1-21ExdpK",
"jump_content": "",
"top": true
},
{
"notice_id": 65,
"type": 1,
"publish_date": 1634832000000,
"img_name": "https://static.codemao.cn/trainer/GG/SJMIHo1lUF",
"jump_content": "",
"top": false
},
{
"notice_id": 64,
"type": 3,
"publish_date": 1633622400000,
"img_name": "https://static.codemao.cn/trainer/GG/S1GoOHKpVY",
"jump_content": "https://static.codemao.cn/trainer/GG/rJsbKSK6EF",
"top": false
},
{
"notice_id": 63,
"type": 1,
"publish_date": 1632931200000,
"img_name": "https://static.codemao.cn/trainer/GG/rJg00vlXNK",
"jump_content": "",
"top": false
},
{
"notice_id": 62,
"type": 1,
"publish_date": 1632758400000,
"img_name": "https://static.codemao.cn/trainer/GG/rkUJErUeEt",
"jump_content": "",
"top": false
}
]
/trainer/user/redpoint
提示红点
{
"intelligence": true,
"mail": false,
"egg": false,
"sign": false,
"ad": false,
"answer": true,
"notice": false,
"class_mail": false,
"tob_mail": false,
"rocket_mail": false,
"newretail_mail": false
}
字面意义,就是有哪些待办的有趣的东西就给你红点提示。这已经是现在软件GUI常用的设计范式之一了,应该也不用我多解释吧。
/trainer/friendships/...
好友
/trainer/friendships/idols?page=1&size=35
![[Pasted image 20250127225623.png|idiots]]
![[Pasted image 20250127225646.png|idots]]
{
"friend_list": [
{
"user_id": 4009125,
"nick_name": "Nomand",
"avatar_url": "111142",
"follow_flag": true,
"game_user_flag": true,
"be_followed_flag": false,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 0,
"incubated_egg": 0
},
{
"user_id": 302288,
"nick_name": "爵士OIer",
"avatar_url": "111011",
"follow_flag": true,
"game_user_flag": true,
"be_followed_flag": false,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 0,
"incubated_egg": 0
},
{
"user_id": 357088,
"nick_name": "无情的AC自动鸡",
"avatar_url": "111011",
"follow_flag": true,
"game_user_flag": true,
"be_followed_flag": false,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 0,
"incubated_egg": 0
},
{
"user_id": 4714401,
"nick_name": "Planet_Cube",
"avatar_url": "111011",
"follow_flag": true,
"game_user_flag": true,
"be_followed_flag": false,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 0,
"incubated_egg": 0
},
{
"user_id": 333834,
"nick_name": "克雷寄寄",
"avatar_url": "111101",
"follow_flag": true,
"game_user_flag": true,
"be_followed_flag": false,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 0,
"incubated_egg": 0
},
{
"user_id": 843818,
"nick_name": "搅拌布尔鱼",
"avatar_url": "111182",
"follow_flag": true,
"game_user_flag": true,
"be_followed_flag": false,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 0,
"incubated_egg": 0
},
{
"user_id": 3810250,
"nick_name": "ZH-Y-Q",
"avatar_url": "111011",
"follow_flag": true,
"game_user_flag": true,
"be_followed_flag": false,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 100,
"incubated_egg": 201
},
{
"user_id": 8103339,
"nick_name": "冰沫桃猫",
"avatar_url": "112211",
"follow_flag": true,
"game_user_flag": true,
"be_followed_flag": false,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 0,
"incubated_egg": 0
},
{
"user_id": 185676,
"nick_name": "慕斯PhOer的老号",
"avatar_url": "111011",
"follow_flag": true,
"game_user_flag": true,
"be_followed_flag": false,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 0,
"incubated_egg": 0
},
{
"user_id": 9282814,
"nick_name": "年兽佬纸",
"avatar_url": "112102",
"follow_flag": true,
"game_user_flag": true,
"be_followed_flag": false,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 100,
"incubated_egg": 203
},
{
"user_id": 371087,
"nick_name": "Lai追求",
"avatar_url": "111011",
"follow_flag": true,
"game_user_flag": true,
"be_followed_flag": false,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 0,
"incubated_egg": 0
},
{
"user_id": 509903,
"nick_name": "海藻酸钠",
"avatar_url": "113252",
"follow_flag": true,
"game_user_flag": true,
"be_followed_flag": false,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 0,
"incubated_egg": 0
},
{
"user_id": 2867423,
"nick_name": "一门鸽鸽",
"avatar_url": "111011",
"follow_flag": true,
"game_user_flag": true,
"be_followed_flag": false,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 100,
"incubated_egg": 203
},
{
"user_id": 423298,
"nick_name": "伤心抑郁的404N0tF0und",
"avatar_url": "111011",
"follow_flag": true,
"game_user_flag": true,
"be_followed_flag": false,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 0,
"incubated_egg": 0
},
{
"user_id": 5832050,
"nick_name": "哈尔斯达",
"avatar_url": "111261",
"follow_flag": true,
"game_user_flag": true,
"be_followed_flag": false,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 100,
"incubated_egg": 202
},
{
"user_id": 17653602,
"nick_name": "Cexw",
"avatar_url": "111011",
"follow_flag": true,
"game_user_flag": true,
"be_followed_flag": false,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 100,
"incubated_egg": 202
},
{
"user_id": 105878,
"nick_name": "雅人韵士",
"avatar_url": "111011",
"follow_flag": true,
"game_user_flag": false,
"be_followed_flag": false,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 0,
"incubated_egg": 0
},
{
"user_id": 148022,
"nick_name": "I桔汁糖浆I",
"avatar_url": "111011",
"follow_flag": true,
"game_user_flag": true,
"be_followed_flag": false,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 100,
"incubated_egg": 202
},
{
"user_id": 829287,
"nick_name": "AcMax#",
"avatar_url": "111141",
"follow_flag": true,
"game_user_flag": true,
"be_followed_flag": false,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 0,
"incubated_egg": 0
},
{
"user_id": 4018359,
"nick_name": "正负君",
"avatar_url": "111012",
"follow_flag": true,
"game_user_flag": true,
"be_followed_flag": false,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 0,
"incubated_egg": 0
},
{
"user_id": 12107655,
"nick_name": "游銘先生",
"avatar_url": "111011",
"follow_flag": true,
"game_user_flag": false,
"be_followed_flag": false,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 0,
"incubated_egg": 0
},
{
"user_id": 424648,
"nick_name": "安德球",
"avatar_url": "111011",
"follow_flag": true,
"game_user_flag": false,
"be_followed_flag": false,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 0,
"incubated_egg": 0
},
{
"user_id": 133721,
"nick_name": "四九圣尊",
"avatar_url": "111011",
"follow_flag": true,
"game_user_flag": false,
"be_followed_flag": false,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 0,
"incubated_egg": 0
},
{
"user_id": 203577,
"nick_name": "技术喵",
"avatar_url": "111011",
"follow_flag": true,
"game_user_flag": true,
"be_followed_flag": false,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 0,
"incubated_egg": 0
}
],
"total_num": 24
}
/trainer/friendships/fans?page=1&size=35
![[Pasted image 20250127225705.png|fans]]
{
"friend_list": [
{
"user_id": 7522979,
"nick_name": "3.141592653549798",
"avatar_url": "111012",
"follow_flag": false,
"game_user_flag": true,
"be_followed_flag": true,
"recently_accelerate_flag": false,
"recently_stroke_flag": true,
"recently_visit_flag": true,
"incubated_schedule": 49,
"incubated_egg": 201
},
{
"user_id": 6726273,
"nick_name": "钢铁侠宬睿",
"avatar_url": "111192",
"follow_flag": false,
"game_user_flag": true,
"be_followed_flag": true,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 0,
"incubated_egg": 0
},
{
"user_id": 906469802,
"nick_name": "HarryPotter哈利波特先生",
"avatar_url": "111202",
"follow_flag": false,
"game_user_flag": true,
"be_followed_flag": true,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 0,
"incubated_egg": 0
},
{
"user_id": 1881891850,
"nick_name": "小鱼不想吃肉",
"avatar_url": "111193",
"follow_flag": false,
"game_user_flag": true,
"be_followed_flag": true,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 0,
"incubated_egg": 0
},
{
"user_id": 11740996,
"nick_name": "冷静的乌力力PrCq",
"avatar_url": "111061",
"follow_flag": false,
"game_user_flag": true,
"be_followed_flag": true,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 100,
"incubated_egg": 201
},
{
"user_id": 883911125,
"nick_name": "SKY·光遇氏",
"avatar_url": "111012",
"follow_flag": false,
"game_user_flag": true,
"be_followed_flag": true,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 0,
"incubated_egg": 0
},
{
"user_id": 103863366,
"nick_name": "天才2号",
"avatar_url": "111202",
"follow_flag": false,
"game_user_flag": true,
"be_followed_flag": true,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 100,
"incubated_egg": 203
},
{
"user_id": 1503900888,
"nick_name": "风趣的土岩龙A0k2",
"avatar_url": "112061",
"follow_flag": false,
"game_user_flag": true,
"be_followed_flag": true,
"recently_accelerate_flag": false,
"recently_stroke_flag": false,
"recently_visit_flag": false,
"incubated_schedule": 0,
"incubated_egg": 0
}
],
"total_num": 8
}
还有一个拜访好友的家这个功能。路由我看看…… /trainer/friendships/home?friend_id=185676
{
"friend_info": {
"user_id": 185676,
"nick_name": "慕斯PhOer的老号",
"avatar_url": "111011",
"bell_num": 0,
"gold": 0,
"fans_num": 229,
"idols_num": 6,
"follow_flag": true,
"all_elf_ids": [
1011
]
},
"incubated_egg_id": 0,
"accelerate_flag": false,
"remain_seconds": 0,
"has_easter_egg": false,
"show_elfs": [],
"shows_furniture": [
7011,
7012,
7013,
7014,
7015,
7016,
7017,
7018
]
}
妈的,哪儿来这么一群er,oier phoer ctfer 真是 张扬的青春哈。 很有活力,很酷嘛。哈哈哈哈,哈哈。令我不禁感到自己的渺小和可悲了。 曾经的我,骄傲地,和他们站在一起。如今的我,低下头去,仿佛能躲过冰冷遥远的地球的未来。
悲从中来了几次又几次,腹中墨水早已榨干,哀叹……也已经落入尽头的尘网。笑话我吧,掉队失足的小丑。
/trainer/store/items
商店货架
![[Pasted image 20250127231016.png|我这边进商店的时候卡加载进不去了,有能力的就来测试一下吧。怀念起匆匆逝去的那段美好的岁月,我哀从中来,难以自拔啊!]]
我以为在前面铺就的努力学习走向一个新的道路的前景,只是我诚如在民中所说“溺死在粪坑前的临终一梦”。我现在都写不出那么好的词了。
{
"item_store": {
"shelves": [
{
"has_bought": false,
"enable_unlock": false,
"has_unlocked": true,
"num": 2,
"price": 150,
"prop_id": 5203,
"shelf_id": 1001,
"unlock_bell_num": 0
},
{
"has_bought": false,
"enable_unlock": false,
"has_unlocked": true,
"num": 4,
"price": 150,
"prop_id": 5203,
"shelf_id": 1002,
"unlock_bell_num": 0
},
{
"has_bought": false,
"enable_unlock": false,
"has_unlocked": true,
"num": 5,
"price": 100,
"prop_id": 109,
"shelf_id": 1003,
"unlock_bell_num": 0
},
{
"has_bought": false,
"enable_unlock": false,
"has_unlocked": true,
"num": 5,
"price": 100,
"prop_id": 5106,
"shelf_id": 1004,
"unlock_bell_num": 100
},
{
"has_bought": false,
"enable_unlock": false,
"has_unlocked": false,
"num": 5,
"price": 100,
"prop_id": 5101,
"shelf_id": 1005,
"unlock_bell_num": 200
},
{
"has_bought": false,
"enable_unlock": false,
"has_unlocked": false,
"num": 1,
"price": 9000,
"prop_id": 203,
"shelf_id": 1006,
"unlock_bell_num": 300
},
{
"has_bought": false,
"enable_unlock": false,
"has_unlocked": false,
"num": 5,
"price": 100,
"prop_id": 102,
"shelf_id": 1007,
"unlock_bell_num": 400
},
{
"has_bought": false,
"enable_unlock": false,
"has_unlocked": false,
"num": 5,
"price": 100,
"prop_id": 5102,
"shelf_id": 1008,
"unlock_bell_num": 500
},
{
"has_bought": false,
"enable_unlock": false,
"has_unlocked": false,
"num": 3,
"price": 200,
"prop_id": 5301,
"shelf_id": 1009,
"unlock_bell_num": 600
}
]
},
"limit_store": {
"remaining_date": -1,
"shelves": []
}
}
/trainer/handbook/elf
图鉴
这里面是elfs精灵的收集状况。重复获得同一精灵会加经验。
![[Pasted image 20250129204822.png|已经拥有的elf精灵们的会点亮,没有的话,似乎会标灰色吧?]]
[
{
"handbook_id": 1,
"elfs": [
{
"id": 1011,
"get_time": 1649789467,
"new_inelligence_flag": false
},
{
"id": 1012,
"get_time": 1651055994,
"new_inelligence_flag": false
},
{
"id": 1041,
"get_time": 1654615099,
"new_inelligence_flag": false
},
{
"id": 1042,
"get_time": 1654966151,
"new_inelligence_flag": false
},
{
"id": 1091,
"get_time": 1651260782,
"new_inelligence_flag": false
},
{
"id": 1092,
"get_time": 1651492863,
"new_inelligence_flag": false
}
]
},
{
"handbook_id": 2,
"elfs": [
{
"id": 1031,
"get_time": 1652098910,
"new_inelligence_flag": false
},
{
"id": 1032,
"get_time": 1652255802,
"new_inelligence_flag": false
},
{
"id": 1081,
"get_time": 1653395334,
"new_inelligence_flag": false
},
{
"id": 1082,
"get_time": 1653844325,
"new_inelligence_flag": false
}
]
},
{
"handbook_id": 5,
"elfs": [
{
"id": 1033,
"get_time": 1653521049,
"new_inelligence_flag": false
}
]
},
{
"handbook_id": 3,
"elfs": [
{
"id": 1051,
"get_time": 1655364449,
"new_inelligence_flag": true
},
{
"id": 1052,
"get_time": 1683703465,
"new_inelligence_flag": false
},
{
"id": 1061,
"get_time": 1652080686,
"new_inelligence_flag": false
},
{
"id": 1062,
"get_time": 1652186853,
"new_inelligence_flag": false
},
{
"id": 1101,
"get_time": 1653105805,
"new_inelligence_flag": false
},
{
"id": 1102,
"get_time": 1653645906,
"new_inelligence_flag": false
},
{
"id": 1151,
"get_time": 1653521004,
"new_inelligence_flag": true
},
{
"id": 1152,
"get_time": 1653792358,
"new_inelligence_flag": true
},
{
"id": 1161,
"get_time": 1652781102,
"new_inelligence_flag": false
},
{
"id": 1162,
"get_time": 1653295442,
"new_inelligence_flag": true
},
{
"id": 1171,
"get_time": 1651389537,
"new_inelligence_flag": false
},
{
"id": 1172,
"get_time": 1651792550,
"new_inelligence_flag": true
}
]
},
{
"handbook_id": 6,
"elfs": [
{
"id": 1063,
"get_time": 1653833573,
"new_inelligence_flag": false
},
{
"id": 1093,
"get_time": 1652595693,
"new_inelligence_flag": false
},
{
"id": 1173,
"get_time": 1653095693,
"new_inelligence_flag": true
}
]
},
{
"handbook_id": 11,
"elfs": [
{
"id": 1071,
"get_time": 1652015108,
"new_inelligence_flag": false
},
{
"id": 1072,
"get_time": 1652087385,
"new_inelligence_flag": false
},
{
"id": 1073,
"get_time": 1653750794,
"new_inelligence_flag": false
},
{
"id": 1121,
"get_time": 1650804362,
"new_inelligence_flag": false
},
{
"id": 1122,
"get_time": 1651432593,
"new_inelligence_flag": false
},
{
"id": 1123,
"get_time": 1652152251,
"new_inelligence_flag": false
}
]
},
{
"handbook_id": 7,
"elfs": [
{
"id": 1111,
"get_time": 1651341056,
"new_inelligence_flag": true
},
{
"id": 1112,
"get_time": 1651536844,
"new_inelligence_flag": false
},
{
"id": 1113,
"get_time": 1652695732,
"new_inelligence_flag": true
},
{
"id": 1181,
"get_time": 1671955092,
"new_inelligence_flag": true
},
{
"id": 1182,
"get_time": 1682863135,
"new_inelligence_flag": true
},
{
"id": 1201,
"get_time": 1674034856,
"new_inelligence_flag": true
},
{
"id": 1202,
"get_time": 1683703450,
"new_inelligence_flag": false
}
]
},
{
"handbook_id": 10,
"elfs": [
{
"id": 1191,
"get_time": 1650620132,
"new_inelligence_flag": false
},
{
"id": 1192,
"get_time": 1651260880,
"new_inelligence_flag": false
},
{
"id": 1193,
"get_time": 1652088731,
"new_inelligence_flag": false
},
{
"id": 1211,
"get_time": 1701593376,
"new_inelligence_flag": false
},
{
"id": 1212,
"get_time": 1709495298,
"new_inelligence_flag": false
}
]
},
{
"handbook_id": 12,
"elfs": [
{
"id": 1221,
"get_time": 1651993056,
"new_inelligence_flag": false
},
{
"id": 1222,
"get_time": 1652172913,
"new_inelligence_flag": false
},
{
"id": 1223,
"get_time": 1654071002,
"new_inelligence_flag": false
}
]
},
{
"handbook_id": 14,
"elfs": [
{
"id": 1241,
"get_time": 1653833561,
"new_inelligence_flag": false
},
{
"id": 1242,
"get_time": 1653985354,
"new_inelligence_flag": false
},
{
"id": 1243,
"get_time": 1655865310,
"new_inelligence_flag": false
}
]
},
{
"handbook_id": 16,
"elfs": [
{
"id": 1251,
"get_time": 1682863076,
"new_inelligence_flag": true
},
{
"id": 1252,
"get_time": 1683992361,
"new_inelligence_flag": false
}
]
},
{
"handbook_id": 20,
"elfs": [
{
"id": 1281,
"get_time": 1652198152,
"new_inelligence_flag": false
},
{
"id": 1282,
"get_time": 1652422181,
"new_inelligence_flag": false
},
{
"id": 1291,
"get_time": 1653136209,
"new_inelligence_flag": false
},
{
"id": 1292,
"get_time": 1653395530,
"new_inelligence_flag": false
}
]
},
{
"handbook_id": 17,
"elfs": [
{
"id": 3251,
"get_time": 1655043476,
"new_inelligence_flag": true
},
{
"id": 3252,
"get_time": 1668846684,
"new_inelligence_flag": true
}
]
}
]
![[Pasted image 20250129234450.png|对了其实我想说这个拼写似乎有问题,就是那个intelligence,如果是说新情报(铃铛/互动得到的蓝卡)的话,那么这里少拼了个t啊!]]
继时间设置为-1之后的又一个丈育。不过现代ide自动修改导入恐怕也不会很难?
![[Pasted image 20250129234643.png]]
图源豆包。
![[Pasted image 20250129235958.png|这里的拼写倒是正确的]]
/trainer/handbook/elf/shows
图鉴点亮收集
你拥有的精灵就可以这样……呃,写进去!
需要什么精灵就自己去拿 参考 [[编程猫源码精灵:附录 精灵id对应清单]]
{
"1012": 1012,
"1033": 1033,
"1042": 1042,
"1052": 1052,
"1063": 1063,
"1073": 1073,
"1082": 1082,
"1093": 1093,
"1102": 1102,
"1113": 1113,
"1123": 1123,
"1152": 1152,
"1162": 1162,
"1173": 1173,
"1182": 1182,
"1193": 1193,
"1202": 1202,
"1212": 1212,
"1223": 1223,
"1243": 1243,
"1252": 1252,
"1282": 1282,
"1292": 1292,
"3252": 3252
}
![[Pasted image 20250129234143.png]]
cursor最近风控变得很刁钻,我只好用豆包暂时完成需求,deepseek又太慢,不如本地deepseek导入cursor……也许,将来。 2025/01/30(周四) 02:24:11(+08:00) 凌晨 可能是我的jituc.com邮箱被拉黑了,这就没办法了。
[!note]+ 一个推论的错误:也许没那么简单? 2025/01/30(周四) 02:21:37(+08:00) 凌晨
如果是要得到我点亮的精灵,为什么不如干脆一个数组解决掉,而是要这样搞更多键值对? 此外,我有的一个精灵
1062
并未显示在这上面,针对这只精灵,显示了进化时的键值对"1063": 1063,
这意味着什么呢?两种解释:1. 原计划出一个皮肤功能 这能解释: 为什么同一精灵的不同形态不会重复出现。 这不能解释: 为什么 没有
1062:1063
这类的键值对,整个键值对都是一模一样的复刻
进化状态与图鉴点亮浅析
也许我们需要联系 [[编程猫源码精灵:附录 精灵id对应清单#^9d56f8|冰火对抗这一组数据的参考]] 以及 [[#^14773d|已拥有的精灵列表]] 以便看出答案。
![[编程猫源码精灵:附录 精灵id对应清单#^fb6eb5]]
{
"elf_id": 1193,
"adventure": false,
"fatigue_secs": 0,
"exp": 18490,
"level": 36
},
在冰霜阿尔法这一系列进化中:
trainer/user/elfs
显示且仅显示 1193./trainer/handbook/elf/shows
显示且仅显示"1193": 1193,
显示我拥有的最高进化阶段。
{
"elf_id": 1212,
"adventure": false,
"fatigue_secs": 0,
"exp": 1240,
"level": 16
},
在烈火龙这一系列进化中:
trainer/user/elfs
显示且仅显示 1212./trainer/handbook/elf/shows
显示且仅显示"1212": 1212,
显示我拥有的最高进化阶段。
![[Pasted image 20250130024946.png|我随后针对三个接口都设计了一套预设的mock response,在我的精灵页面起码可以正常看到9012.9022.9032.9072这四只精灵了。]]
![[Pasted image 20250130025106.png|之后我点进图鉴,果不其然终于也点亮了9012……9072这四只。剩下的所有精灵都可以以此类推,非常简单了。]]
结论:可能主要是和
user/elfs
有关,其他的/handbook/...
系列可能关系不大,我无法确定(因为确实是改了没用)。
/trainer/painting/list/...
同人画列表
![[Pasted image 20250129210056.png|这个接口也是得到我未获得的精灵的elf_id的办法之一,理由是这里面要携带elf_id。]]
上图 elf_id 为9012,对应游戏内精灵 甪端 lù duān 这个是真的生僻字,哈哈啊哈。 这个精灵从属于图鉴集合中的 [[编程猫源码精灵:附录 精灵id对应清单#^543ddd|《故宫神兽集》]] 。
[
{
"painting_id": 31,
"painting_url": "https://static.codemao.cn/trainer/GG/HJiUQYloO",
"user_id": 10798161,
"user_name": "火“龙”果",
"star_num": 1106,
"has_star": false,
"elf_id": 9012
},
{
"painting_id": 171,
"painting_url": "https://static.codemao.cn/trainer/GG/HkLVYzsj_",
"user_id": 4148543,
"user_name": "绘画残手",
"star_num": 9588,
"has_star": false,
"elf_id": 9012
},
{
"painting_id": 265,
"painting_url": "https://static.codemao.cn/trainer/GG/S1U1rT6jd",
"user_id": 9975700,
"user_name": "王绍帆",
"star_num": 2296,
"has_star": false,
"elf_id": 9012
},
{
"painting_id": 284,
"painting_url": "https://static.codemao.cn/trainer/GG/r1HKSaTs_",
"user_id": 11230772,
"user_name": "655同科纳克里",
"star_num": 860,
"has_star": false,
"elf_id": 9012
},
{
"painting_id": 368,
"painting_url": "https://static.codemao.cn/trainer/GG/rykIVSe2d",
"user_id": 948385,
"user_name": "泛起涟漪i~",
"star_num": 5201,
"has_star": false,
"elf_id": 9012
},
{
"painting_id": 811,
"painting_url": "https://static.codemao.cn/trainer/GG/HkA_4tK3_",
"user_id": 5360691,
"user_name": "速战速决疾疯雀_9Y9z",
"star_num": 9640,
"has_star": false,
"elf_id": 9012
},
{
"painting_id": 864,
"painting_url": "https://static.codemao.cn/trainer/GG/S1PjBKthO",
"user_id": 16431971,
"user_name": "无邪的象牙螺ALZq",
"star_num": 1995,
"has_star": false,
"elf_id": 9012
},
{
"painting_id": 1143,
"painting_url": "https://static.codemao.cn/trainer/GG/B1sNOvbaO",
"user_id": 3545294,
"user_name": "001.H",
"star_num": 5952,
"has_star": false,
"elf_id": 9012
},
{
"painting_id": 1449,
"painting_url": "https://static.codemao.cn/trainer/GG/rJlSKf0i6u",
"user_id": 8812467,
"user_name": "黄鱼5bAh",
"star_num": 1153,
"has_star": false,
"elf_id": 9012
},
{
"painting_id": 1457,
"painting_url": "https://static.codemao.cn/trainer/GG/SyU5zRsTO",
"user_id": 8825582,
"user_name": "冰飞龙",
"star_num": 3524,
"has_star": false,
"elf_id": 9012
},
{
"painting_id": 1547,
"painting_url": "https://static.codemao.cn/trainer/GG/ryg5HN0jTu",
"user_id": 16386395,
"user_name": "『Coffee』",
"star_num": 4505,
"has_star": false,
"elf_id": 9012
},
{
"painting_id": 1602,
"painting_url": "https://static.codemao.cn/trainer/GG/Sk5VuaMRd",
"user_id": 2994035,
"user_name": "MOYO",
"star_num": 2558,
"has_star": false,
"elf_id": 9012
},
{
"painting_id": 1605,
"painting_url": "https://static.codemao.cn/trainer/GG/SJhS_6GC_",
"user_id": 3442098,
"user_name": "咸鱼99",
"star_num": 6256,
"has_star": false,
"elf_id": 9012
},
{
"painting_id": 1772,
"painting_url": "https://static.codemao.cn/trainer/GG/B1xMGhl3Ru",
"user_id": 5386393,
"user_name": "寂寞宇宙",
"star_num": 1977,
"has_star": false,
"elf_id": 9012
},
{
"painting_id": 1920,
"painting_url": "https://static.codemao.cn/trainer/GG/Sklx1W30O",
"user_id": 1963926553,
"user_name": "宽容的胆小菇Io0O",
"star_num": 1163,
"has_star": false,
"elf_id": 9012
},
{
"painting_id": 2321,
"painting_url": "https://static.codemao.cn/trainer/GG/SyGvJ-rkY",
"user_id": 17450057,
"user_name": "源码888",
"star_num": 1977,
"has_star": false,
"elf_id": 9012
}
]
/trainer/handbook/elf/..../intelligence
精灵情报图鉴
其中 .... 对应你要查看情报的精灵id。以下json对应
![[Pasted image 20250130030729.png|情报1-7除6外全解锁,对应图中“小秘密”里面的第二条。也与下面的json符合。]]
[
{
"elf_id": 1281,
"type": 1,
"new_flag": false,
"exp": 0
},
{
"elf_id": 1281,
"type": 2,
"new_flag": false,
"exp": 0
},
{
"elf_id": 1281,
"type": 3,
"new_flag": false,
"exp": 0
},
{
"elf_id": 1281,
"type": 4,
"new_flag": false,
"exp": 0
},
{
"elf_id": 1281,
"type": 5,
"new_flag": false,
"exp": 0
},
{
"elf_id": 1281,
"type": 7,
"new_flag": false,
"exp": 0
}
]