Compare commits

...

413 Commits
release ... dev

Author SHA1 Message Date
yushunrui
248cca1da7 fix: 还原逻辑 2024-03-05 10:43:53 +08:00
yushunrui
2eb51c03e9 fix: 恐怖战争修改 2024-03-03 14:40:39 +08:00
yushunrui
2a1fe11e8f 修改邮件内容 2024-03-04 09:39:13 +08:00
yushunrui
2f6c7b0a26 逻辑提交 2024-03-04 09:32:21 +08:00
xichaoyin
6bcd618d57 Merge branch 'feature/skin' into dev 2024-01-12 19:36:24 +08:00
xichaoyin
715efd504c Merge branch 'bugfix' into dev 2024-01-12 18:20:04 +08:00
xichaoyin
acde5e312f Merge branch 'feature/huangqijiuguan' into dev 2024-01-12 18:19:59 +08:00
xichaoyin
aca0019d90 feat:黄芪酒馆招募次数监控 2024-01-12 18:19:43 +08:00
xichaoyin
1060c5ccc7 fix:添加黄旗金币和黄旗兑换币的监控 2024-01-12 18:18:08 +08:00
xichaoyin
e9fba7ed05 fix:
1:头像框脚本
2:添加监控数据
2024-01-12 17:50:10 +08:00
a46b8f671c 先不清空,最后一个玩家时可能会有异常 2024-01-12 16:32:09 +08:00
xichaoyin
9104b66bf2 json:配置提交 2024-01-12 16:27:26 +08:00
945d406131 Merge branch 'bugfix' of http://git.legu.cc/qixin/HJ_Server into bugfix 2024-01-12 16:08:41 +08:00
af03f2f6c5 外网insertMany报错兼容 2024-01-12 16:08:30 +08:00
xichaoyin
8a3d58e882 Merge branch 'feature/skin' into dev 2024-01-12 15:46:10 +08:00
xichaoyin
8780716d44 脚本 2024-01-12 15:44:56 +08:00
xichaoyin
07334e2013 json:配置文件 2024-01-12 14:47:47 +08:00
xichaoyin
7adbddee0d feat:玩家每日消耗砖石任务初始值问题 2024-01-12 14:30:16 +08:00
xichaoyin
8850e20041 Merge branch 'feature/huangqijiuguan' into dev 2024-01-12 14:15:05 +08:00
xichaoyin
dd9eeca150 feat:重置bug修复 2024-01-12 14:14:42 +08:00
xichaoyin
490d9b65c9 Merge branch 'feature/huangqijiuguan' into dev 2024-01-12 14:05:40 +08:00
xichaoyin
8718342e3b feat:log 2024-01-12 14:03:18 +08:00
xichaoyin
c2c3ce1bb8 Merge branch 'feature/huangqijiuguan' into dev 2024-01-12 13:43:02 +08:00
xichaoyin
b27f8e5c64 feat:黄芪酒馆 2024-01-12 13:42:43 +08:00
xichaoyin
4f93914bb5 proto 2024-01-12 03:14:06 +08:00
xichaoyin
c59fa128a6 Merge branch 'feature/huangqijiuguan' into dev 2024-01-12 03:13:41 +08:00
xichaoyin
1688e5b197 feat:黄旗酒馆 2024-01-12 03:11:59 +08:00
xichaoyin
f227570248 Merge branch 'feature/huangqijiuguan' into dev 2024-01-12 02:53:30 +08:00
xichaoyin
e6e1153a49 feat:黄旗酒馆 2024-01-12 02:53:16 +08:00
xichaoyin
a1208ba254 Merge branch 'feature/huangqijiuguan' into dev 2024-01-12 02:29:44 +08:00
xichaoyin
036abb80b4 feat:黄芪酒馆 2024-01-12 02:29:33 +08:00
xichaoyin
9d3dd2dbc9 feat:黄旗酒馆 2024-01-12 02:20:16 +08:00
xichaoyin
9fc8c0cb47 Merge branch 'feature/huangqijiuguan' into dev 2024-01-12 01:59:51 +08:00
xichaoyin
5a8d95307b feat:黄旗酒馆 2024-01-12 01:59:37 +08:00
xichaoyin
bda3f74ce9 Merge branch 'feature/huangqijiuguan' into dev 2024-01-12 01:57:10 +08:00
xichaoyin
75e010bbc4 feat:黄旗酒馆 2024-01-12 01:56:59 +08:00
xichaoyin
ffedca3574 Merge branch 'feature/huangqijiuguan' into dev 2024-01-12 01:53:20 +08:00
xichaoyin
cd8e1a44ba 任务初始化 2024-01-12 01:51:17 +08:00
xichaoyin
b44f083637 feat:黄芪酒馆 2024-01-12 01:44:51 +08:00
xichaoyin
e968bcd412 feat:黄芪酒馆 2024-01-12 01:43:26 +08:00
xichaoyin
c791bc152c Merge branch 'feature/huangqijiuguan' into dev 2024-01-11 23:54:29 +08:00
xichaoyin
9154278020 feat:黄旗酒馆 2024-01-11 23:54:13 +08:00
xichaoyin
b76548ea4f Merge branch 'feature/skin' into dev 2024-01-11 23:29:55 +08:00
xichaoyin
8414c52c8a Merge branch 'feature/huangqijiuguan' into dev 2024-01-11 23:10:36 +08:00
xichaoyin
52c24d4507 feta:黄旗酒馆 2024-01-11 23:10:26 +08:00
xichaoyin
e3f33f82e2 proto:协议提交 2024-01-11 23:05:24 +08:00
xichaoyin
f70ba5367c Merge branch 'feature/skin' into dev 2024-01-11 23:01:18 +08:00
08a9dd335a 发奖发错了 2024-01-11 22:52:24 +08:00
xichaoyin
9744576070 Merge branch 'feature/skin' into dev 2024-01-11 22:43:49 +08:00
xichaoyin
06cefdeb53 Merge branch 'feature/skin' into dev 2024-01-11 22:36:48 +08:00
xichaoyin
3b0495fe24 Merge branch 'feature/huangqijiuguan' into dev 2024-01-11 22:33:13 +08:00
xichaoyin
a494f2a3d8 feat:黄旗酒馆 2024-01-11 22:33:01 +08:00
xichaoyin
92ff993129 Merge branch 'feature/huangqijiuguan' into dev 2024-01-11 22:26:37 +08:00
xichaoyin
ba124d82c9 feat:黄旗酒馆 2024-01-11 22:26:21 +08:00
xichaoyin
e6320bb040 json:配置提交 2024-01-11 21:49:05 +08:00
xichaoyin
a776a4c01e fix:baseurl 2024-01-11 21:36:06 +08:00
xichaoyin
af29ee51ac Merge branch 'bugfix' into dev 2024-01-11 21:31:31 +08:00
b23d311dbd slzd不需要回复次数 2024-01-11 21:19:48 +08:00
yushunrui
c4a60ac6ab Merge branch 'feature/skin' into dev 2024-01-11 21:10:05 +08:00
69945c3964 回退层数逻辑 2024-01-11 21:01:00 +08:00
xichaoyin
a91a8f0657 Merge branch 'feature/huangqijiuguan' into dev 2024-01-11 20:57:59 +08:00
xichaoyin
be0923c849 feat:黄芪酒馆排行榜排除0伤害玩家 2024-01-11 20:57:48 +08:00
xichaoyin
ae2952ea5d Merge branch 'feature/huangqijiuguan' into dev 2024-01-11 20:53:03 +08:00
xichaoyin
a600998fd3 feat:黄芪酒馆红点 2024-01-11 20:52:49 +08:00
00804b9b49 矿洞结算bug 2024-01-11 20:23:08 +08:00
b5a9f6f530 积分容错 2024-01-11 19:14:56 +08:00
yushunrui
d6bafb7704 fix:竞技场第一名头像特殊处理,可以用道具直接解锁 2024-01-11 18:20:06 +08:00
xichaoyin
02d17c5f73 Merge branch 'feature/huangqijiuguan' into dev 2024-01-11 18:01:24 +08:00
xichaoyin
561954de17 feat:黄旗酒馆 2024-01-11 18:00:45 +08:00
xichaoyin
5a29cbe802 Merge branch 'feature/huangqijiuguan' into dev 2024-01-11 17:46:09 +08:00
xichaoyin
86fbc457f8 feat:黄芪酒馆 2024-01-11 17:45:37 +08:00
xichaoyin
eb76193922 Merge branch 'dev' of http://git.legu.cc/qixin/HJ_Server into dev 2024-01-11 17:12:37 +08:00
xichaoyin
2dce99387d json:配置提交 2024-01-11 17:12:35 +08:00
yushunrui
323ed2115b fix:刷新兑换脚本 2024-01-11 17:11:07 +08:00
xichaoyin
fd7b8d945d fix:任务修复脚本 2024-01-11 17:06:39 +08:00
yushunrui
5bbeee2f9a fix:脚本提交 2024-01-11 16:54:35 +08:00
yushunrui
ddabcbe8ac fix:脚本修改 2024-01-11 16:19:39 +08:00
yushunrui
5ba323fa49 Merge branch 'bugfix' into dev 2024-01-11 16:14:55 +08:00
xichaoyin
c18c0fcb76 proto:协议提交 2024-01-11 16:09:55 +08:00
xichaoyin
3f7e68b5bf fix:skin 2024-01-11 16:07:40 +08:00
7d85f554f4 聊天分组bug 2024-01-11 16:06:35 +08:00
yushunrui
6eb61ece9c fix:处理活动和新年头像框 2024-01-12 23:53:59 +08:00
yushunrui
184bdd304e 脚本提交,兑换掉落修改礼包内容, 玩家新年头像框刷成永久 2024-01-12 23:32:40 +08:00
yushunrui
8c86b05fe1 Merge remote-tracking branch 'origin/bugfix' into bugfix 2024-01-12 23:13:23 +08:00
yushunrui
c7ce70fcc0 fix:处理了头像框和聊天框得逻辑 2024-01-12 23:10:39 +08:00
yushunrui
ac4432fea8 fix:头像框 聊天框,造型逻辑修改 2024-01-12 22:52:56 +08:00
xichaoyin
f0df93cdd1 Merge remote-tracking branch 'origin/bugfix' into dev
# Conflicts:
#	src/public/player.ts
#	src/shared/fightControl/fightCntrol.ts
2024-01-11 16:05:21 +08:00
xichaoyin
82c47aaadf Merge remote-tracking branch 'origin/feature/huangqijiuguan' into dev
# Conflicts:
#	src/public/scheduler/scheduler_newDay.ts
#	src/shared/protocols/serviceProto.ts
2024-01-11 16:00:20 +08:00
xichaoyin
847613db4a fix:丛林狩猎定时器修复 2024-01-11 14:51:17 +08:00
xichaoyin
8d35b1d74c feat:添加黄芪酒馆招募次数任务 2024-01-11 14:46:05 +08:00
xichaoyin
f1f792ad82 feat:黄芪酒馆 2024-01-11 14:38:09 +08:00
xichaoyin
a8051b9767 feat:npc添加皮肤 2024-01-11 14:19:51 +08:00
xichaoyin
13de3624dc feat:黄旗酒馆 2024-01-11 13:57:52 +08:00
2c3d53899e 去掉多余的环境变量,解决pm2集群启动失败问题 2024-01-11 11:23:08 +08:00
xichaoyin
325ed8745c fix:时区脚本修复 2024-01-11 11:20:14 +08:00
45c5a195ed addhp不应该取整 2024-01-10 23:08:14 +08:00
xichaoyin
6f7eab1701 feat:黄旗酒馆 2024-01-10 21:57:09 +08:00
8e9553386f Merge branch 'bugfix' of http://git.legu.cc/qixin/HJ_Server into bugfix 2024-01-10 21:55:12 +08:00
c09c9dec89 配件修正 2024-01-10 21:55:02 +08:00
yushunrui
b80263ed16 fix:竞技场第一名头像特殊处理,可以用道具直接解锁 2024-01-10 21:17:04 +08:00
yushunrui
363787fb39 Revert "fix:竞技场第一名头像特殊处理,可以用道具直接解锁"
This reverts commit 0a94965e30.
2024-01-10 21:16:13 +08:00
yushunrui
0a94965e30 fix:竞技场第一名头像特殊处理,可以用道具直接解锁 2024-01-10 21:14:10 +08:00
xichaoyin
206e87d64c feat:黄旗酒馆 2024-01-10 20:50:03 +08:00
yushunrui
138ee2675c Merge remote-tracking branch 'origin/bugfix' into bugfix 2024-01-10 20:38:15 +08:00
yushunrui
8aab7b6322 fix:处理人才计划任务领取标识在刷 新一轮的时候没有重置 2024-01-10 20:37:58 +08:00
yushunrui
48cd24d309 fix:超值基金设置奖励逻辑设置为同步 2024-01-11 18:45:59 +08:00
xichaoyin
d30f62f6c5 feat:黄旗酒馆 2024-01-10 19:59:27 +08:00
xichaoyin
8b8e14a609 feat:黄旗酒馆 2024-01-10 19:39:07 +08:00
xichaoyin
1c18a5b7fd feat:黄旗酒馆 2024-01-10 18:56:52 +08:00
xichaoyin
950a048742 feat:黄旗酒馆 2024-01-10 18:23:42 +08:00
xichaoyin
273b1865c3 feat:黄旗酒馆 2024-01-10 17:53:44 +08:00
xichaoyin
14796bb06b feat:黄旗酒馆 2024-01-10 17:38:01 +08:00
72b215451b Merge branch 'bugfix' of http://git.legu.cc/qixin/HJ_Server into bugfix 2024-01-10 16:57:21 +08:00
104a1edadc 天赋技能 2024-01-10 16:57:11 +08:00
yushunrui
7feff43ee6 Merge remote-tracking branch 'origin/bugfix' into bugfix 2024-01-10 16:45:22 +08:00
yushunrui
a26aa7dab3 fix:处理强化伙伴活动初始没有任务进度的逻辑 2024-01-10 16:44:53 +08:00
xichaoyin
ca3e973afd patch:终身卡周奖励补发脚本 2024-01-10 15:50:49 +08:00
xichaoyin
0932d3ee47 patch:终身卡周奖励补发脚本 2024-01-10 15:46:41 +08:00
xichaoyin
452f5f3d14 patch:任务修复脚本 2024-01-10 15:19:38 +08:00
xichaoyin
0a296d739a fix:屏蔽检测生成新的任务逻辑 2024-01-10 14:52:41 +08:00
yushunrui
4596fb537c Merge remote-tracking branch 'origin/bugfix' into bugfix 2024-01-10 14:09:36 +08:00
3bdc98a1f6 Merge branch 'dev' of http://git.legu.cc/qixin/HJ_Server into dev 2024-01-10 14:08:45 +08:00
0642ccb48c 验证专属技能 2024-01-10 14:08:33 +08:00
d8a47e85b2 Merge branch 'bugfix' of http://git.legu.cc/qixin/HJ_Server into bugfix 2024-01-10 14:01:01 +08:00
f802242b35 fix:自选礼包异常 2024-01-10 14:00:48 +08:00
xichaoyin
d2ed18117f Merge branch 'feature/huangqijiuguan' into dev 2024-01-10 13:48:59 +08:00
xichaoyin
c2ce055c73 fix:黄旗酒馆open修改 2024-01-10 13:48:35 +08:00
xichaoyin
51ddb55637 fix:玩家邮件修复脚本 2024-01-10 13:38:27 +08:00
4c37d4c846 Merge branch 'dev' of http://git.legu.cc/qixin/HJ_Server into dev 2024-01-10 11:35:16 +08:00
c04264a88f 还原饰物和天赋技能 2024-01-10 11:33:03 +08:00
f1963d2e53 Merge branch 'bugfix' of http://git.legu.cc/qixin/HJ_Server into bugfix 2024-01-09 22:31:04 +08:00
0ddd611c59 去掉无效刷新 2024-01-09 22:30:35 +08:00
xichaoyin
12b1941aa1 Merge branch 'bugfix' into dev 2024-01-09 22:24:00 +08:00
xichaoyin
666b7e51c5 fix:fightlog添加ttl 2024-01-09 22:23:42 +08:00
xichaoyin
73ccfd4921 Merge branch 'bugfix' into dev 2024-01-09 22:17:30 +08:00
xichaoyin
0d736e4854 fix:jjc战斗日志添加_id倒序 2024-01-09 22:14:56 +08:00
yushunrui
b0a3c17927 fix:玩家道具扣除逻辑脚本提交 2024-01-10 18:32:23 +08:00
yushunrui
24cae9a4e9 fix:战令任务每轮重置进度 2024-01-10 16:19:56 +08:00
yushunrui
1c256ab58b fix:竞技场第一名头像特殊处理,可以用道具直接解锁 2024-01-09 22:00:30 +08:00
xichaoyin
4d15b50a66 fix:
配置和协议提交
2024-01-09 17:18:17 +08:00
xichaoyin
a53e7a9887 Merge branch 'feature/huangqijiuguan' into dev 2024-01-09 17:16:46 +08:00
xichaoyin
61afa26e45 feat:
黄旗酒馆
2024-01-09 17:12:11 +08:00
xichaoyin
5714848a35 Merge branch 'feature/skin' into dev 2024-01-08 20:38:04 +08:00
xichaoyin
0c26c6d5bb fix:
修复任务添加配置后不会自动生成后续任务
2024-01-08 18:19:51 +08:00
xichaoyin
d91c413603 fix:
战令重置定时器时间计算问题修复
2024-01-08 17:12:11 +08:00
xichaoyin
3f90c61490 Merge branch 'bugfix' into dev 2024-01-08 15:48:33 +08:00
xichaoyin
e016e708c4 fix:
解除屏蔽
2024-01-08 15:48:22 +08:00
ccc6470f7b Merge branch 'bugfix' of http://git.legu.cc/qixin/HJ_Server into bugfix 2024-01-08 15:40:04 +08:00
85dc5e02ff fix 每日定时器只执行1次 2024-01-08 15:39:48 +08:00
xichaoyin
29204ab949 Merge branch 'bugfix' into dev 2024-01-08 15:26:39 +08:00
xichaoyin
63ce399c56 fix:
战令重置问题
2024-01-08 15:26:24 +08:00
xichaoyin
a9166e8f52 json:配置文件提交 2024-01-08 14:40:23 +08:00
xichaoyin
da0df2ff95 Merge branch 'feature/skin' into dev 2024-01-08 14:25:42 +08:00
a9a5193efe Merge branch 'bugfix' of http://git.legu.cc/qixin/HJ_Server into bugfix 2024-01-08 14:03:23 +08:00
e597f2969e 全局API接口锁定机制 2024-01-08 14:03:09 +08:00
xichaoyin
ed8fe77656 Merge branch 'bugfix' into dev 2024-01-08 13:49:52 +08:00
xichaoyin
e469ed0b6a fix:
追杀令无限刷bug修复
2024-01-08 13:49:25 +08:00
xichaoyin
ee9114dce4 json:策划json提交 2024-01-08 11:22:39 +08:00
xichaoyin
b354c61358 fix:
养成目标
2024-01-06 17:51:24 +08:00
xichaoyin
c82adea71f Merge branch 'bugfix' into dev 2024-01-06 17:39:44 +08:00
xichaoyin
35d51a3811 fix:
养成目标
2024-01-06 17:39:32 +08:00
xichaoyin
2a35b81f78 Merge branch 'bugfix' into dev 2024-01-06 17:31:25 +08:00
xichaoyin
29f7133f10 fix:
活动刷新脚本
2024-01-06 17:30:57 +08:00
xichaoyin
2d62a387b6 fix:
养成目标礼包重置
2024-01-06 17:30:41 +08:00
xichaoyin
23fd9317ad Merge branch 'dev' of http://git.legu.cc/qixin/HJ_Server into dev 2024-01-06 16:33:08 +08:00
xichaoyin
a8d8ddf954 Merge branch 'feature/skin' into dev 2024-01-06 16:33:05 +08:00
xichaoyin
5e50e29f0a Merge branch 'dev' of http://git.legu.cc/qixin/HJ_Server into dev 2024-01-06 14:59:50 +08:00
xichaoyin
6a81520c68 json:配置提交 2024-01-06 14:59:42 +08:00
xichaoyin
f61b59123b fix:
zhanling重置问题
2024-01-06 00:07:27 +08:00
xichaoyin
2e99a2d592 Merge branch 'feature/skin' into dev 2024-01-05 21:27:23 +08:00
xichaoyin
95c767a21f Merge branch 'feature/skin' into dev 2024-01-05 21:21:16 +08:00
xichaoyin
82b3a45884 fix:
bingo
2024-01-05 21:12:45 +08:00
xichaoyin
f9b6f8901b Merge branch 'feature/skin' into dev 2024-01-05 21:04:04 +08:00
xichaoyin
4e2b7ca74e Merge branch 'feature/skin' into dev 2024-01-05 20:46:58 +08:00
xichaoyin
01c4f28139 Merge branch 'feature/skin' into dev 2024-01-05 20:21:32 +08:00
xichaoyin
3f36fa83ab Merge branch 'feature/skin' into dev 2024-01-05 20:09:26 +08:00
xichaoyin
edf071105e Merge branch 'feature/skin' into dev 2024-01-05 19:49:59 +08:00
7c3b5e985c Merge pull request 'release' (#1) from release into master 2024-01-05 16:30:25 +08:00
dy
3c54ebe0c4 json:
扭蛋机配置概率修改
2024-01-05 16:03:56 +08:00
xichaoyin
8415d675c4 json:
cehua_public/json配置文件同步
2024-01-05 15:24:03 +08:00
xichaoyin
96b71de06d Merge branch 'bugfix' into release 2024-01-05 15:22:38 +08:00
xichaoyin
ef80c8b984 Merge branch 'bugfix' of http://git.legu.cc/qixin/HJ_Server into bugfix 2024-01-05 15:05:17 +08:00
xichaoyin
8560986246 fix:
修复丛林猎手段位奖励漏发问题
2024-01-05 15:05:14 +08:00
xichaoyin
75cadfe391 Merge branch 'dev' of http://git.legu.cc/qixin/HJ_Server into dev 2024-01-05 14:46:33 +08:00
xichaoyin
6e87898cfa feat:json提交 2024-01-05 14:46:22 +08:00
xichaoyin
9d82d08738 Merge branch 'release' of http://git.legu.cc/qixin/HJ_Server into release 2024-01-05 13:34:48 +08:00
xichaoyin
86161fca85 feat:
修改阿里云cli 认证 profile 名称
2024-01-05 13:34:46 +08:00
fa25e745eb 次数调整 2024-01-05 10:36:50 +08:00
dcb83e9520 次数调整 2024-01-05 10:00:59 +08:00
dy
bd4f128179 Merge remote-tracking branch 'origin/bugfix' into release 2024-01-05 00:38:57 +08:00
xichaoyin
a04394149d fix:
修复破冰bug
2024-01-05 00:37:40 +08:00
xichaoyin
3b3d61795e Merge remote-tracking branch 'origin/feature/weiwang' into release 2024-01-04 22:30:14 +08:00
xichaoyin
98e34a065b Merge branch 'bugfix' into dev 2024-01-04 22:25:31 +08:00
xichaoyin
da37b162d9 fix:
破冰礼包一键领取
2024-01-04 22:25:17 +08:00
xichaoyin
8e1c5412d6 fix:
破冰礼包一键领取
2024-01-04 22:20:30 +08:00
xichaoyin
ca0517c4b4 Merge branch 'bugfix' into dev 2024-01-04 21:41:38 +08:00
xichaoyin
b04ce950cd fix:
充值之后推一次活动红点change
2024-01-04 21:41:21 +08:00
xichaoyin
77087741a7 Merge branch 'bugfix' into dev 2024-01-04 21:37:11 +08:00
xichaoyin
8ec4a46837 fix:
修复礼包在最后一天可以一键领取所有奖励
2024-01-04 21:36:45 +08:00
xichaoyin
7415823947 Merge branch 'bugfix' into dev 2024-01-04 21:05:25 +08:00
xichaoyin
d7f0f22df7 fix:
伙伴招募红点修改
2024-01-04 21:05:11 +08:00
xichaoyin
3a383d6f54 Merge branch 'bugfix' into dev 2024-01-04 20:32:50 +08:00
xichaoyin
779709a32f fix:
伙伴招募红点修改
2024-01-04 20:32:31 +08:00
xichaoyin
6cb6d8f60d Merge branch 'dev' of http://git.legu.cc/qixin/HJ_Server into dev 2024-01-04 19:51:01 +08:00
xichaoyin
b4221ff4b0 feat:json配置提交 2024-01-04 19:48:58 +08:00
dy
01f57b347f 新增活动脚本 2024-01-04 18:25:27 +08:00
xichaoyin
7aaf803fb3 Merge branch 'feature/weiwang' into dev 2024-01-04 18:08:20 +08:00
xichaoyin
ec40da9ad5 fix:
修复战斗威望属性没有生效
2024-01-04 18:08:05 +08:00
dy
28adc88ff0 新增活动脚本 2024-01-04 18:04:39 +08:00
xichaoyin
72377fa50d Merge branch 'feat/skin' into dev 2024-01-04 17:49:17 +08:00
xichaoyin
e2df48498a Merge branch 'feature/weiwang' into dev 2024-01-04 17:17:28 +08:00
xichaoyin
42601c29fd fix:
修改gud中weiwang字段为weiwangbuff
2024-01-04 17:17:10 +08:00
dy
3c7985642e Merge branch 'bugfix' into dev 2024-01-04 17:04:36 +08:00
dy
a50b2624ac 累计充值红点 2024-01-04 17:04:01 +08:00
dy
65d306227b 领奖,红点 2024-01-04 16:56:33 +08:00
dy
38b2f9a99e 破冰礼包增加最后一天可领取所有奖励 2024-01-04 16:50:16 +08:00
xichaoyin
a0d06cdaf4 Merge branch 'feature/weiwang' into dev 2024-01-04 16:13:12 +08:00
xichaoyin
2e054daa65 fix:
修复威望系统属性在探险战斗中没有生效
2024-01-04 16:12:55 +08:00
dy
3e1c45aaf9 Merge remote-tracking branch 'origin/bugfix' into bugfix 2024-01-04 16:05:59 +08:00
dy
f1dacd19b6 破冰礼包增加轮次,修复bug 2024-01-04 16:05:52 +08:00
a5e726e811 Merge branch 'bugfix' of http://git.legu.cc/qixin/HJ_Server into bugfix 2024-01-04 15:51:52 +08:00
8afa624f44 跨服聊天分组 2024-01-04 15:51:40 +08:00
dy
6ec6de4d56 破冰礼包拦截前端空字符串请求 2024-01-04 15:37:09 +08:00
xichaoyin
809030edee frat:json配置提交 2024-01-04 15:22:33 +08:00
xichaoyin
df3c9a79bf Merge remote-tracking branch 'origin/bugfix' into dev 2024-01-04 14:43:08 +08:00
52ab7e9979 Merge branch 'bugfix' of http://git.legu.cc/qixin/HJ_Server into bugfix 2024-01-04 14:30:47 +08:00
a1dbacd7fe 积分赛只刷出本服对手 2024-01-04 14:30:37 +08:00
dy
3fa08f6640 Merge remote-tracking branch 'origin/dev' into dev
# Conflicts:
#	src/json/tanxian.json
2024-01-04 14:25:52 +08:00
dy
dabcc8baa4 Merge branch 'feature/json' into dev
# Conflicts:
#	src/json/renown_level.json
#	src/json/tanxian.json
2024-01-04 14:25:34 +08:00
dy
12e21ce0f1 cehua json 2024-01-04 14:25:12 +08:00
dy
0cde599ddd Merge branch 'master' into feature/json
# Conflicts:
#	src/json/clsl_com.json5
2024-01-04 14:24:42 +08:00
xichaoyin
69c44155ec Merge branch 'dev' of http://git.legu.cc/qixin/HJ_Server into dev 2024-01-04 13:41:14 +08:00
xichaoyin
944a13f591 feat:
配置提交
2024-01-04 13:41:05 +08:00
dy
4c0a37cd78 Merge branch 'bugfix' into dev 2024-01-04 11:36:52 +08:00
dy
04533c80f4 fix pata/saodang 2024-01-04 11:20:00 +08:00
dy
98a3927966 fix lingzhulaixi 2024-01-04 11:05:05 +08:00
dy
eb73af1dd2 数据监测改为查半小时内在线用户 2024-01-03 22:40:24 +08:00
dy
1dd7bc2175 api pay 2024-01-03 22:10:35 +08:00
dy
ecc17a22a9 api 锁修改,一键接取悬赏 2024-01-03 21:57:12 +08:00
dy
4379a95d7e Merge remote-tracking branch 'origin/dev' into dev 2024-01-03 20:50:19 +08:00
dy
124681d757 Merge branch 'release' into dev 2024-01-03 20:50:12 +08:00
dy
826840455c api 锁修改 2024-01-03 20:19:58 +08:00
dy
60d0e04e33 fix 探险 gamelog 2024-01-03 19:36:28 +08:00
dy
6233a6672e Merge remote-tracking branch 'origin/bugfix' into bugfix 2024-01-03 19:28:34 +08:00
dy
afd856af30 fix 探险 2024-01-03 19:28:22 +08:00
xichaoyin
1090a5f8df Merge branch 'bugfix' into dev 2024-01-03 18:47:04 +08:00
xichaoyin
698c7bd3f6 fix:
修复讨伐海盗挑战boss胜利不扣除战斗次数bug
2024-01-03 18:42:36 +08:00
dy
b9a612239d Merge branch 'master' into dev 2024-01-03 17:36:07 +08:00
dy
7dd83e06ef watchdog.json 2024-01-03 17:35:08 +08:00
xichaoyin
a1a687773c Merge branch 'feature/weiwang' into dev 2024-01-03 16:28:15 +08:00
xichaoyin
3c50fdbd01 fix:
修复威望升级消耗计算错误
2024-01-03 16:27:59 +08:00
xichaoyin
9f512e8fbc Merge branch 'dev' of http://git.legu.cc/qixin/HJ_Server into dev 2024-01-03 15:33:09 +08:00
xichaoyin
a7f527bf09 fix:
王者荣耀发奖定时器容错修改
2024-01-03 15:33:05 +08:00
dy
f2911269e0 Merge branch 'bugfix' into dev 2024-01-03 15:22:58 +08:00
xichaoyin
7eec14188f Merge branch 'dev' of http://git.legu.cc/qixin/HJ_Server into dev 2024-01-03 14:49:00 +08:00
xichaoyin
bc078b9c95 feat:
探险新增声望掉落
2024-01-03 14:48:58 +08:00
dy
d3f272f1e4 Merge remote-tracking branch 'origin/dev' into dev 2024-01-03 14:47:03 +08:00
dy
89ea1a47af Merge branch 'bugfix' into dev 2024-01-03 14:46:58 +08:00
xichaoyin
08c59b522b Merge branch 'feature/weiwang' into dev 2024-01-03 14:35:58 +08:00
xichaoyin
c65aea9ae2 fix:
威望配置提交
2024-01-03 14:35:19 +08:00
dy
8f92372471 Merge branch 'master' into dev 2024-01-03 10:18:06 +08:00
dy
499acf3684 Merge branch 'bugfix' into dev 2024-01-02 19:55:57 +08:00
xichaoyin
57faacbe9b Merge branch 'dev' of http://git.legu.cc/qixin/HJ_Server into dev 2024-01-02 15:24:01 +08:00
xichaoyin
abf47d251f Merge branch 'feature/weiwang' into dev 2024-01-02 15:23:56 +08:00
xichaoyin
77e06ba769 feat:
威望系统
2024-01-02 15:23:39 +08:00
dy
dec416a158 Merge branch 'master' into dev 2024-01-02 11:11:47 +08:00
xichaoyin
9955c4db93 fix:
提交测试
2024-01-02 09:50:35 +08:00
dy
ab872cf185 cehua json 2024-01-02 09:50:33 +08:00
xichaoyin
8d9002b1a5 Merge branch 'fix/conglinshoulie' into dev 2023-12-31 21:36:32 +08:00
xichaoyin
dc45a38f4e Merge branch 'fix/conglinshoulie' into dev 2024-01-04 20:08:01 +08:00
xichaoyin
ab12f52e2e Merge branch 'fix/conglinshoulie' into dev 2024-01-03 10:04:46 +08:00
xichaoyin
9bf6e3e724 fix:
week添加
2024-01-03 09:50:21 +08:00
xichaoyin
06540083ab Merge branch 'fix/conglinshoulie' into dev 2024-01-03 09:43:10 +08:00
xichaoyin
a69ca2312a Merge branch 'fix/conglinshoulie' into dev
# Conflicts:
#	src/public/rank/rank.ts
2024-01-01 09:22:18 +08:00
dy
afe6ddc20b Merge branch 'bugfix' into dev 2023-12-31 18:56:47 +08:00
dy
e95928b060 Merge branch 'master' into dev 2023-12-31 18:48:42 +08:00
xcy
36a82d135b Merge branch 'fix/conglinshoulie' into dev 2023-12-28 00:02:35 +08:00
dy
f0fc5a5901 Merge branch 'bugfix' into dev 2023-12-31 17:52:22 +08:00
dy
9e032536f0 Merge branch 'bugfix' into dev 2023-12-31 17:22:26 +08:00
dy
b46260f4a2 Merge remote-tracking branch 'origin/dev' into dev 2023-12-31 17:05:25 +08:00
dy
22dd6644a3 Merge branch 'bugfix' into dev 2023-12-31 17:05:15 +08:00
dy
76f9dd1f98 Merge branch 'bugfix' into dev 2023-12-31 15:23:06 +08:00
xcy
60bcf1d794 Merge branch 'fix/conglinshoulie' into dev 2023-12-31 14:20:08 +08:00
dy
3f2daecfef Merge branch 'bugfix' into dev 2023-12-31 13:43:53 +08:00
dy
dbd1e72657 Merge branch 'bugfix' into dev 2023-12-31 13:37:06 +08:00
dy
4128508a4c Merge branch 'feature/leichong' into dev 2023-12-31 11:45:57 +08:00
dy
6f17e77f14 Merge branch 'bugfix' into dev 2023-12-31 11:24:45 +08:00
dy
eafa42880a Merge remote-tracking branch 'origin/dev' into dev 2023-12-31 09:48:45 +08:00
dy
da4a53d071 Merge branch 'feature/leichong' into dev 2023-12-31 09:48:33 +08:00
xcy
a7d11fe54e Merge branch 'bugfix' into dev 2023-12-30 18:04:20 +08:00
dy
86866e9233 Merge branch 'bugfix' into dev 2023-12-30 16:32:49 +08:00
dy
611898b501 Merge branch 'feature/leichong' into dev 2023-12-30 16:32:38 +08:00
dy
f6df6fd8bc Merge branch 'bugfix' into dev 2023-12-30 10:43:31 +08:00
dy
005a086ea1 Merge branch 'master' into dev 2023-12-30 10:28:00 +08:00
dy
9d14aea6b8 Merge branch 'bugfix' into dev 2023-12-29 19:42:43 +08:00
xcy
59a07175e6 Merge branch 'bugfix' into dev 2023-12-29 18:43:58 +08:00
dy
718add173f Merge branch 'feature/json' into dev 2023-12-29 16:52:17 +08:00
dy
94cf1f9c4f Merge branch 'bugfix' into dev 2023-12-29 16:26:22 +08:00
dy
be8691ce6d Merge branch 'bugfix' into dev 2023-12-29 16:21:55 +08:00
dy
f7cf497ded Merge branch 'bugfix' into dev 2023-12-29 14:22:17 +08:00
dy
3462540159 Merge branch 'bugfix' into dev
# Conflicts:
#	src/public/pay.ts
2023-12-29 13:53:02 +08:00
xcy
52a112085b Merge remote-tracking branch 'origin/bugfix' into dev 2023-12-28 18:46:58 +08:00
xcy
2894f384b9 Merge remote-tracking branch 'origin/bugfix' into dev
# Conflicts:
#	src/public/rank/rank.ts
2023-12-28 18:22:20 +08:00
xcy
2739774842 Merge remote-tracking branch 'origin/dev' into dev 2023-12-28 18:20:15 +08:00
dy
17aa676fa9 Merge branch 'bugfix' into dev 2023-12-28 16:16:09 +08:00
xcy
34ce5c01aa fix:
修复终身卡邮件没有type
2023-12-28 15:19:06 +08:00
xcy
4fa797f93d fix:
终身卡发放奖励bug修复
2023-12-28 14:49:17 +08:00
xcy
be85366d04 fix:
终身卡定时器log
2023-12-28 14:43:00 +08:00
dy
e1430b6411 Merge branch 'bugfix' into dev 2023-12-28 14:18:58 +08:00
xcy
0b2a9f3dc7 累计充值累计金额修改为累计vip经验(金额*10) 2023-12-28 13:44:53 +08:00
xcy
b79d80beed fix:
修复终身卡每周奖励未发放bug
2023-12-28 11:49:44 +08:00
Your Name
3898cee713 fix:
修复悬赏任务一键领取3倍奖励逻辑错误
2023-12-28 11:11:34 +08:00
Your Name
dda879b037 Merge branch 'dev' of http://git.legu.cc/qixin/HJ_Server into dev 2023-12-28 10:10:05 +08:00
Your Name
99e84d65a5 fix:修复悬赏任务一键领取特权问题 2023-12-28 10:09:58 +08:00
dy
2811d16323 Merge branch 'bugfix' into dev 2023-12-28 10:06:30 +08:00
dy
b013e9042c Merge branch 'bugfix' into dev 2023-12-27 22:10:19 +08:00
dy
1158f26eaa Merge branch 'feature/xiaofeijingsai' into dev 2023-12-27 21:06:10 +08:00
dy
6efe04ed6d Merge branch 'feature/json' into dev 2023-12-27 20:49:47 +08:00
dy
968ce25e5f Merge branch 'feature/yuandan' into dev 2023-12-27 20:10:25 +08:00
dy
944a675af3 Merge branch 'feature/yuandan' into dev 2023-12-27 20:00:01 +08:00
dy
6fa3a8224c Merge branch 'bugfix' into dev 2023-12-27 19:59:57 +08:00
dy
479c309481 Merge branch 'bugfix' into dev 2023-12-27 19:32:03 +08:00
dy
b2eb783dc1 Merge branch 'feature/json' into dev
# Conflicts:
#	src/json/huodong.json5
2023-12-27 19:16:06 +08:00
dy
892717ca09 Merge branch 'bugfix' into dev 2023-12-27 19:13:24 +08:00
dy
05ea2e4213 Merge remote-tracking branch 'origin/fix_rank' into dev 2023-12-27 18:34:29 +08:00
dy
3450796bb7 Merge branch 'bugfix' into dev 2023-12-27 18:34:16 +08:00
dy
4ebe8ae338 Merge branch 'bugfix' into dev 2023-12-27 17:55:29 +08:00
dy
de90e27b3f Merge branch 'bugfix' into dev 2023-12-27 17:06:34 +08:00
dy
1292156a9d Merge branch 'feature/yuandan' into dev 2023-12-27 17:00:30 +08:00
xcy
26fd486595 Merge branch 'fix/conglinshoulie' into dev 2023-12-27 16:43:28 +08:00
dy
95a3e9d3fb Merge branch 'feature/yuandan' into dev 2023-12-27 16:41:54 +08:00
dy
03d2736e8d Merge branch 'feature/xiaofeijingsai' into dev 2023-12-27 14:17:21 +08:00
dy
58e23b1812 Merge branch 'feature/yuandan' into dev 2023-12-27 11:09:09 +08:00
dy
bff3115f75 Merge branch 'feature/yuandan' into dev 2023-12-27 11:03:21 +08:00
dy
9a5cc99fb1 Merge branch 'bugfix' into dev 2023-12-27 10:23:57 +08:00
dy
058529ea6a Merge branch 'bugfix' into dev 2023-12-27 10:20:00 +08:00
dy
47a9c6efb7 Merge branch 'feature/yuandan' into dev 2023-12-27 09:51:50 +08:00
dy
2a4ed01a34 Merge branch 'feature/yuandan' into dev 2023-12-26 20:04:13 +08:00
dy
9ee67b5193 Merge branch 'feature/yuandan' into dev 2023-12-26 19:50:09 +08:00
dy
f8b87f751e Merge branch 'bugfix' into dev 2023-12-26 19:00:08 +08:00
dy
df027cdf08 Merge branch 'master' into dev
# Conflicts:
#	src/public/pay.ts
2023-12-26 19:00:05 +08:00
dy
408562d576 Merge remote-tracking branch 'origin/dev' into dev 2023-12-26 17:34:21 +08:00
dy
4ae077503f Merge branch 'feature/yuandan' into dev 2023-12-26 17:34:11 +08:00
Your Name
c901756cc8 排行榜修改 2023-12-26 17:27:22 +08:00
dy
03b774b73e Merge branch 'feature/yuandan' into dev 2023-12-26 16:53:53 +08:00
dy
ceec9c5be2 Merge branch 'feature/json' into dev
# Conflicts:
#	src/json/huodong.json5
2023-12-26 16:49:13 +08:00
dy
4e83e2ac72 Merge branch 'bugfix' into dev 2023-12-26 16:33:55 +08:00
dy
bb8ec648e3 Merge branch 'feature/yuandan' into dev 2023-12-26 16:33:41 +08:00
dy
3d2e73e76d Merge branch 'feature/yuandan' into dev 2023-12-26 16:21:38 +08:00
dy
5f2d865966 proto 2023-12-26 15:28:36 +08:00
dy
6af6eec94d Merge branch 'feature/yuandan' into dev
# Conflicts:
#	src/shared/protocols/serviceProto.ts
2023-12-26 15:27:21 +08:00
dy
45e149c2c0 Merge remote-tracking branch 'origin/dev' into dev 2023-12-26 15:07:52 +08:00
dy
b5288be10a Merge branch 'feature/yuandan' into dev 2023-12-26 15:07:46 +08:00
e3f0b4347e fix: 元旦相关 proto 重新生成 2023-12-26 14:42:29 +08:00
b4ffe0a4d2 Merge branch 'bugfix' into dev 2023-12-26 14:34:52 +08:00
dy
b6c7b3717b Merge branch 'feature/yuandan' into dev 2023-12-26 14:30:20 +08:00
209470c89f Merge branch 'bugfix' into dev 2023-12-26 14:22:27 +08:00
dy
60bbb97a40 Merge remote-tracking branch 'origin/dev' into dev 2023-12-26 14:16:28 +08:00
dy
bc8440f9a9 Merge branch 'feature/yuandan' into dev
# Conflicts:
#	src/public/pay.ts
#	src/shared/protocols/hongdian/PtlGet.ts
2023-12-26 14:16:15 +08:00
6c8a649fab Merge branch 'bugfix' into dev 2023-12-26 14:14:33 +08:00
6d1149d6ee Merge branch 'bugfix' into dev 2023-12-26 13:55:29 +08:00
3aca92818f Merge branch 'bugfix' into dev 2023-12-26 11:50:34 +08:00
7de66c4f09 Merge branch 'bugfix' into dev 2023-12-26 10:24:59 +08:00
dy
dd9065a083 Merge branch 'bugfix' into dev 2023-12-26 09:47:19 +08:00
dy
4a4f9ec3aa Merge branch 'bugfix' into dev 2023-12-26 09:40:29 +08:00
dy
c384b2de27 Revert "铁笼死斗积分修改"
This reverts commit 3274911772.
2023-12-25 20:31:25 +08:00
dy
d3e931e634 Merge branch 'bugfix' into dev 2023-12-25 20:30:44 +08:00
dy
4dd4afd007 Merge branch 'bugfix' into dev 2023-12-25 17:18:38 +08:00
dy
e701ce6722 Merge branch 'bugfix' into dev 2023-12-25 16:43:52 +08:00
24649d335c Merge branch 'bugfix' into dev 2023-12-25 15:50:22 +08:00
3346957b5a Merge branch 'bugfix' into dev 2023-12-25 11:23:03 +08:00
dy
6fd4f83882 proto 2023-12-23 11:49:30 +08:00
dy
8c3907c370 Merge branch 'master' into dev
# Conflicts:
#	src/shared/protocols/hongdian/PtlGet.ts
#	src/shared/protocols/pushgift/PtlItemNoEnough.ts
#	src/shared/protocols/serviceProto.ts
2023-12-23 11:48:20 +08:00
dy
712c85ff64 Merge branch 'feature/json' into dev 2023-12-22 21:58:20 +08:00
dy
5eee059c1e Merge branch 'bugfix' into dev 2023-12-22 21:28:08 +08:00
976f4b7f36 Merge branch 'feature/pay_for_diamond' into dev 2023-12-22 21:23:48 +08:00
dy
aaf133d37f Merge remote-tracking branch 'origin/dev' into dev 2023-12-22 20:59:37 +08:00
dy
9579cb2b4d Merge branch 'feature/json' into dev 2023-12-22 20:59:28 +08:00
fff54f4097 Merge branch 'feature/pay_for_diamond' into dev 2023-12-22 20:48:21 +08:00
xcy
7babb93e10 fix:
推送礼包
2023-12-22 20:39:37 +08:00
xcy
159e5578d7 fix:
推送礼包
2023-12-22 20:39:36 +08:00
dy
14effac507 Merge branch 'feature/json' into dev 2023-12-22 20:33:45 +08:00
dy
0850a729ed Merge branch 'dev-meirilibao' into dev 2023-12-22 20:26:44 +08:00
df6927b8ff Merge branch 'feature/pay_for_diamond' into dev 2023-12-22 20:13:43 +08:00
xcy
76626120c4 feat:
累充礼包
2023-12-22 20:02:14 +08:00
xcy
372c84fd05 feat:
proto
2023-12-22 20:00:13 +08:00
xcy
9490faa364 fix:
累充礼包
2023-12-22 19:52:58 +08:00
dy
9df6e2f19f Merge branch 'feature/json' into dev 2023-12-22 19:47:24 +08:00
243265a49c Merge branch 'feature/pay_for_diamond' into dev 2023-12-22 19:27:30 +08:00
xcy
27f2ac75c5 fix:
添加接口
2023-12-22 19:21:23 +08:00
xcy
506785f360 fix:
添加接口
2023-12-22 19:20:28 +08:00
9d5b36b223 Merge branch 'feature/pay_for_diamond' into dev 2023-12-22 19:00:34 +08:00
26a04a778b Merge branch 'feature/pay_for_diamond' into dev 2023-12-22 18:28:45 +08:00
dy
82fd7da144 proto 2023-12-22 18:27:57 +08:00
dy
511a663e6b Merge branch 'feature/dadian' into dev 2023-12-22 18:18:29 +08:00
dy
2d9d577f8b Merge branch 'feature/json' into dev 2023-12-22 18:01:45 +08:00
b47c729a3c Merge branch 'feature/pay_for_diamond' into dev 2023-12-22 17:09:01 +08:00
dy
122fc28388 Merge branch 'feature/xiaofeijingsai' into dev 2023-12-22 16:50:33 +08:00
dec4ce2cc4 Merge branch 'feature/pay_for_diamond' into dev 2023-12-22 16:35:25 +08:00
xcy
efe5bd3216 fix:
email 过滤 prizelist
2023-12-22 16:15:22 +08:00
xcy
32c779a5a4 fix:
异步查库改为同步插库
2023-12-22 16:07:15 +08:00
xcy
2720d5e59a fix:
异步查库改为同步插库
2023-12-22 16:02:11 +08:00
dy
1ed15d2b5c Merge remote-tracking branch 'origin/dev' into dev 2023-12-22 15:01:40 +08:00
dy
7c3da937a5 Merge branch 'feature/json' into dev 2023-12-22 15:01:30 +08:00
304a67e56f Merge branch 'feature/pay_for_diamond' into dev 2023-12-22 15:00:20 +08:00
dy
ffbb2b3af3 Merge branch 'bugfix' into dev 2023-12-22 14:39:25 +08:00
dy
a0bdc11a05 Merge remote-tracking branch 'origin/dev-leijichongzhi' into dev 2023-12-22 14:34:08 +08:00
dy
8710d7d04f Merge branch 'feature/xiaofeijingsai' into dev 2023-12-22 14:11:02 +08:00
dy
4e435c4ed9 Merge branch 'bugfix' into dev 2023-12-22 14:08:19 +08:00
77f8380080 Merge branch 'feature/pay_for_diamond' into dev 2023-12-22 14:05:49 +08:00
6154ddbe61 Merge branch 'feature/pay_for_diamond' into dev 2023-12-22 13:57:23 +08:00
5801423fb7 Merge branch 'feature/pay_for_diamond' into dev 2023-12-22 13:40:30 +08:00
093de3350f Merge branch 'feature/pay_for_diamond' into dev 2023-12-22 12:13:21 +08:00
132 changed files with 25152 additions and 11872 deletions

View File

@ -35,7 +35,7 @@ function dockerLogin() {
const region = 'ap-northeast-1'; const region = 'ap-northeast-1';
const instanceId = 'cri-fe5eqsg73zl4vd4m'; const instanceId = 'cri-fe5eqsg73zl4vd4m';
const version = '2018-12-01'; const version = '2018-12-01';
const command = `aliyun cr GetAuthorizationToken --profile dev --region ${region} --InstanceId ${instanceId} --version ${version} --force`; const command = `aliyun cr GetAuthorizationToken --profile heijiao-dev --region ${region} --InstanceId ${instanceId} --version ${version} --force`;
const output = execSync(command, { encoding: 'utf8' }); const output = execSync(command, { encoding: 'utf8' });
const result = JSON.parse(output); const result = JSON.parse(output);
const password = result.AuthorizationToken.replace(/"/g, ''); const password = result.AuthorizationToken.replace(/"/g, '');

View File

@ -35,7 +35,7 @@ function dockerLogin() {
const region = 'ap-northeast-1'; const region = 'ap-northeast-1';
const instanceId = 'cri-azy285s79zw3ti5v'; const instanceId = 'cri-azy285s79zw3ti5v';
const version = '2018-12-01'; const version = '2018-12-01';
const command = `aliyun cr GetAuthorizationToken --profile prod --region ${region} --InstanceId ${instanceId} --version ${version} --force`; const command = `aliyun cr GetAuthorizationToken --profile heijiao-prod --region ${region} --InstanceId ${instanceId} --version ${version} --force`;
const output = execSync(command, { encoding: 'utf8' }); const output = execSync(command, { encoding: 'utf8' });
const result = JSON.parse(output); const result = JSON.parse(output);
const password = result.AuthorizationToken.replace(/"/g, ''); const password = result.AuthorizationToken.replace(/"/g, '');

View File

@ -17,7 +17,7 @@ export default async function (call: ApiCall<ReqGetUser, ResGetUser>) {
arr.map(i=>{ arr.map(i=>{
res[i.uid] = { res[i.uid] = {
data: i.data, data: i.data,
jifen:i.jifen, jifen:i?.jifen||0,
}; };
}); });

View File

@ -47,7 +47,8 @@ export default async function (call: ApiCall<ReqGetEnemy, ResGetEnemy>) {
$and: [ $and: [
{"data.player.power": {$gte: r[0]}}, {"data.player.power": {$gte: r[0]}},
{"data.player.power": {$lte: r[1]}}, {"data.player.power": {$lte: r[1]}},
{uid: {$nin: blackUids}} {uid: {$nin: blackUids}},
{"data.player.sid":user.data.player.sid}
] ]
} }
}, },

View File

@ -142,7 +142,7 @@ export default async function (call: ApiCall<ReqBingo, ResBingo>) {
if (shell[3]) emailMsg.prize = JSON.parse(shell[3]) if (shell[3]) emailMsg.prize = JSON.parse(shell[3])
EmailFun.addEmail(emailMsg); EmailFun.addEmail(emailMsg);
} else if (shell[0] == "heroskin") { } else if (shell[0] == "heroskin") {
PlayerFun.sendPrize(call, [{ a: "heroskin", "t": shell[1], n: 1 }]); await PlayerFun.sendPrize(call, [{ a: "heroskin", "t": shell[1], n: 1 }]);
} }
call.succ('succ'); call.succ('succ');

View File

@ -1,6 +1,4 @@
import {ApiCall} from "tsrpc"; import {ApiCall} from "tsrpc";
import {EventFun} from '../public/event/event';
import {PayFun} from '../public/pay';
import {ReqSyncBtn, ResSyncBtn, syncBtnKeys} from "../shared/protocols/PtlSyncBtn"; import {ReqSyncBtn, ResSyncBtn, syncBtnKeys} from "../shared/protocols/PtlSyncBtn";
import {PublicShared} from '../shared/public/public'; import {PublicShared} from '../shared/public/public';
import {HuoDongFun} from "../public/huodongfun"; import {HuoDongFun} from "../public/huodongfun";
@ -8,7 +6,6 @@ import {HuoDongFun} from "../public/huodongfun";
const defaultKeys: syncBtnKeys[] = [ const defaultKeys: syncBtnKeys[] = [
'huobanzhaomu', 'yibaichou', 'shouchong', 'huobanzhaomu', 'yibaichou', 'shouchong',
'dayjijin', 'dengjijijin', 'guanqiajijin', 'tianshujijin', 'dayjijin', 'dengjijijin', 'guanqiajijin', 'tianshujijin',
'zhanling',
'xianshilibao', 'xianshilibao',
'xianshizhaomu', 'xianshizhaomu',
'G123Gift', 'G123Gift',
@ -65,39 +62,40 @@ export default async function (call: ApiCall<ReqSyncBtn, ResSyncBtn>) {
break; break;
case 'zhanling': case 'zhanling':
//30天一轮循环不管奖励。常驻活动 //30天一轮循环不管奖励。常驻活动
if (!PublicShared.getEventIsOpen(G.gc.zhanling.eventOpen, call.conn.gud)) { // if (!PublicShared.getEventIsOpen(G.gc.zhanling.eventOpen, call.conn.gud)) {
data[key] = {active: false}; // data[key] = {active: false};
} else { // } else {
let zls = await G.mongodb.collection('scheduler').findOne({type: 'zhanling'}); // let zls = await G.mongodb.collection('scheduler').findOne({type: 'zhanling'});
if (!data[key] || data[key].round != zls.round) { // if (!data[key] || data[key].round != (zls?.round || 0)) {
let lastRunTime = zls && zls.lastRunTime? zls.lastRunTime : G.time // let lastRunTime = zls && zls.lastRunTime? zls.lastRunTime : G.time
let round = zls && zls.lastRunTime? zls.round : 1 // let round = zls && zls.lastRunTime? zls.round : 1
data[key] = {active: true, sTime: lastRunTime, round: round};
change[key] = data[key];
PayFun.delPayLog(call.uid, {payId: G.gc.zhanling.payId, val: []}); // data[key] = {active: true, sTime: lastRunTime, round: round};
// change[key] = data[key];
G.mongodb.cEvent('zhanling').findOne({uid: call.uid, type: 'zhanling'}).then(data => { // PayFun.delPayLog(call.uid, {payId: G.gc.zhanling.payId, val: []});
//新一轮战令 不管玩家多久没上线 只补发玩家上一轮没有领取的奖励
data && EventFun.reissueZhanLingPrize(data, call.conn.gud);
G.mongodb.cEvent('zhanling').updateOne( // G.mongodb.cEvent('zhanling').findOne({uid: call.uid, type: 'zhanling'}).then(data => {
{uid: call.uid, type: 'zhanling'}, // //新一轮战令 不管玩家多久没上线 只补发玩家上一轮没有领取的奖励
{ // data && EventFun.reissueZhanLingPrize(data, call.conn.gud);
$set: {
lv: 1, // G.mongodb.cEvent('zhanling').updateOne(
exp: 0, // {uid: call.uid, type: 'zhanling'},
rec: {}, // {
isPay: false, // $set: {
taskRec: [], // lv: 1,
refreshTime: G.time // exp: 0,
} // rec: {},
}, // isPay: false,
{upsert: true} // taskRec: [],
); // refreshTime: G.time
}); // }
} // },
} // {upsert: true}
// );
// });
// }
// }
break; break;
case 'xianshilibao': case 'xianshilibao':
// 到时间消失 // 到时间消失

View File

@ -1,6 +1,6 @@
import { ApiCall, WsClientStatus } from "tsrpc"; import { ApiCall, WsClientStatus } from "tsrpc";
import { ActionLog } from '../../public/actionLog/actionLog'; import { ActionLog } from '../../public/actionLog/actionLog';
import { ChatFun } from '../../public/chat'; import { ChatFun, getCrossChatGroupByOpenDay } from '../../public/chat';
import { ReqSend, ResSend } from "../../shared/protocols/chat/PtlSend"; import { ReqSend, ResSend } from "../../shared/protocols/chat/PtlSend";
import { chatMsgLog } from "../../shared/protocols/type" import { chatMsgLog } from "../../shared/protocols/type"
import { getGud } from "../../public/gud"; import { getGud } from "../../public/gud";
@ -40,6 +40,8 @@ export default async function (call: ApiCall<ReqSend, ResSend>) {
if (sendData.type == 'cross' && G.clientCross?.status == WsClientStatus.Opened) { if (sendData.type == 'cross' && G.clientCross?.status == WsClientStatus.Opened) {
//如果是跨服的话调用跨服API的这条协议 //如果是跨服的话调用跨服API的这条协议
sendData.otherData.group = getCrossChatGroupByOpenDay();
G.clientCross.sendMsg('msg_cross/CrossChat', sendData); G.clientCross.sendMsg('msg_cross/CrossChat', sendData);
call.succ({}); call.succ({});
return; return;

View File

@ -3,19 +3,56 @@ import { PlayerFun } from '../../public/player';
import { ReqRec, ResRec } from "../../shared/protocols/conglinshoulie/PtlRec"; import { ReqRec, ResRec } from "../../shared/protocols/conglinshoulie/PtlRec";
import { HongDianChange } from "../hongdian/fun"; import { HongDianChange } from "../hongdian/fun";
import { addStar, clslDb } from './ApiOpen'; import { addStar, clslDb } from './ApiOpen';
import { EmailFun } from "../../public/email";
export default async function (call: ApiCall<ReqRec, ResRec>) { export default async function (call: ApiCall<ReqRec, ResRec>) {
let conf = G.gc.clsl_com.fightWinPrize[call.req.index]; let conf = G.gc.clsl_com.fightWinPrize[call.req.index];
if (!conf) return call.errorCode(-1); if (!conf) return call.errorCode(-1);
let db = await clslDb().findOne({ uid: call.uid, type: 'clsl' }); let db = await clslDb().findOne({ uid: call.uid, type: 'clsl' });
let curStar = db?.allStar || 0;
let danPrize = db?.danPrize || [];
let curMaxStar = db?.curMaxStar || 0;
if ((db?.fightWinNum || 0) < conf.total || db?.recWinPrize?.includes(call.req.index)) return call.errorCode(-2); if ((db?.fightWinNum || 0) < conf.total || db?.recWinPrize?.includes(call.req.index)) return call.errorCode(-2);
await PlayerFun.sendPrize(call, conf.prize); await PlayerFun.sendPrize(call, conf.prize);
addStar(call, conf.star); let updata = { $push: { recWinPrize: call.req.index } };
clslDb().updateOne({ uid: call.uid, type: 'clsl' }, { $push: { recWinPrize: call.req.index } }); // 首次达到某个段位
if (curStar + conf.star > curMaxStar) {
curMaxStar += conf.star;
updata["$inc"] = { "curMaxStar": conf.star };
}
// 段位奖励邮件
let title = G.gc.clsl_com.email_dan.title;
let content = G.gc.clsl_com.email_dan.content;
G.gc.clsl_com.danPrize.forEach(conf => {
// 段位未达到 或者 奖励已经发放
if (conf.star > curMaxStar || danPrize.includes(conf.star)) {
return
}
// 发放邮件
EmailFun.addEmail({
uid: call.uid,
type: 'system',
title: title,
content: content,
prize: conf.prize,
contentInsertArr:[conf.title]
})
danPrize.push(conf.star);
updata["$set"] = { danPrize: danPrize };
})
addStar(call, conf.star, undefined, updata);
// clslDb().updateOne({ uid: call.uid, type: 'clsl' }, { $push: { recWinPrize: call.req.index } });
HongDianChange.sendChangeKey(call.uid, ['clslhd']) HongDianChange.sendChangeKey(call.uid, ['clslhd'])

View File

@ -12,11 +12,38 @@ export default async function (call: ApiCall<ReqOpen, ResOpen>) {
// 无此活动 // 无此活动
return call.error('', { code: -1, message: globalThis.lng.huodong_open_1 }) return call.error('', { code: -1, message: globalThis.lng.huodong_open_1 })
} }
let db = await G.mongodb.cEvent(`chuanshuozhilu${call.req.hdid}`).findOne({ uid: call.uid, type: `chuanshuozhilu${call.req.hdid}` }); let db = await G.mongodb.cEvent(`chuanshuozhilu${call.req.hdid}`).findOne({ uid: call.uid, type: `chuanshuozhilu${call.req.hdid}` });
let _info = db?.info || {}
// 如果初始没有数据,就判断玩家是否有活动对应的影响,生成一下初始化数据
if (!db) {
let _dbType: `chuanshuozhilu${number}` = `chuanshuozhilu${call.req.hdid}`
const hid = _hdinfo.data.hid
let heros = await G.mongodb.collection("hero").find({uid: call.uid, heroId: hid})
.sort({ "zhanli": -1 }).limit(1).toArray();
if (heros) {
let hero = heros[0]
const lv = hero.lv || 0
const jieji = hero.jieji || 0
let setInfo = {"lv": lv, "jieji": jieji}
await G.mongodb.cEvent(_dbType).updateOne(
{ uid: call.uid, type: _dbType },
{ $set: G.mongodb.createTreeObj({ key: `info.${hid}`, val: setInfo})},
{ upsert: true}
)
if (!cache[call.uid]) cache[call.uid] = {hid:{}};
if (!cache[call.uid][hid]) cache[call.uid][hid] = setInfo;
_info[hid] = setInfo
G.server.sendMsgByUid(call.uid, 'msg_s2c/HongDianChange', ['huodonghd']);
}
}
call.succ({ call.succ({
info: db?.info || {}, info: _info,
hdinfo: _hdinfo hdinfo: _hdinfo
}); });
} }

View File

@ -0,0 +1,42 @@
import HQJGFun from "./fun";
import { ApiCall } from "tsrpc";
import { PlayerFun } from "../../../public/player";
import { ReqDuiHuan, ResDuiHuan } from "../../../shared/protocols/event/huangqijiuguan/PtlDuiHuan";
export default async function (call: ApiCall<ReqDuiHuan, ResDuiHuan>) {
let hd = await HQJGFun.HdInfo(call, call.req.hdid);
if (!hd || Object.keys(hd).length <= 0) {
// 无此活动
return call.error('', { code: -1, message: globalThis.lng.huodong_open_1 })
}
let need = [];
let prize = [];
let mydata = await HQJGFun.getMydata(call, hd);
for (let id in call.req.dh) {
let con = hd.data.duihuan.filter(x => x.id == Number(id))[0];
if ((mydata.duihuan[id] || 0) + call.req.dh[id] > con.buyNum) {
return call.error("", { code: -2, message: globalThis.lng.hqjgtips_28 })
}
for (let i = 0; i < call.req.dh[id]; i++) {
need.push(...con.need);
prize.push(...con.prize);
}
mydata.duihuan[id] = (mydata.duihuan[id] || 0) + call.req.dh[id];
}
// 检查消耗
await PlayerFun.checkNeedIsMeet(call, need);
await PlayerFun.cutNeed(call, need);
// 发送奖励
await PlayerFun.sendPrize(call, prize);
// 记录兑换次数
await HQJGFun.setMyData(call.uid, hd.hdid, { duihuan: mydata.duihuan });
call.succ({ prize: prize, data: mydata })
}

View File

@ -0,0 +1,42 @@
import { ApiCall } from "tsrpc";
import { ReqFight, ResFight } from "../../../shared/protocols/event/huangqijiuguan/PtlFight";
import { HuoDongFun } from "../../../public/huodongfun";
import HQJGFun from "./fun";
import { fightResult } from "../../../shared/fightControl/fightType";
import { FightFun } from "../../../public/fight";
export default async function (call: ApiCall<ReqFight, ResFight>) {
let hd = await HQJGFun.HdInfo(call, call.req.hdid);
if (!hd) {
// 无此活动
return call.error('', { code: -1, message: globalThis.lng.huodong_open_1 })
}
// 个人活动信息
let mydata = await HQJGFun.getMydata(call, hd);
// 开始战斗
let result: fightResult = await FightFun.fightNpc(call, hd.data.boss.npcId, 'hqjg');
let up = false;
let today = HQJGFun.today(hd);
// 历史最大伤害
if (result.totalDamage[0] > mydata.bossres.maxdps) {
up = true;
mydata.bossres.maxdps = result.totalDamage[0];
}
// 今日最大伤害
if (result.totalDamage[0] > (mydata.bossres.todaydps[today] || 0)) {
up = true;
mydata.bossres.todaydps[today] = result.totalDamage[0];
}
// 更新伤害数据
up && await HQJGFun.setMyData(call.uid, call.req.hdid, { bossres: mydata.bossres });
call.succ({ data: mydata, result: result });
G.server.sendMsgByUid(call.uid, "msg_s2c/HongDianChange", ["huodonghd"])
}

View File

@ -0,0 +1,45 @@
import { ApiCall } from "tsrpc";
import { ReqGiftRec, ResGiftRec } from "../../../shared/protocols/event/huangqijiuguan/PtlGiftRec";
import HQJGFun from "./fun";
import { PlayerFun } from "../../../public/player";
export default async function (call: ApiCall<ReqGiftRec, ResGiftRec>) {
let hd = await HQJGFun.HdInfo(call, call.req.hdid);
if (!hd || Object.keys(hd).length <= 0) {
// 无此活动
return call.error('', { code: -1, message: globalThis.lng.huodong_open_1 })
}
let gift = hd.data.gift.filter(i => i.id == call.req.giftid)[0];
if (!gift || !gift.free) {
return call.error('', { code: -1, message: globalThis.lng.huodong_open_1 })
}
let mydata = await HQJGFun.getMydata(call, hd);
if ((mydata.giftbuy[call.req.giftid] || { num: 0 }).num + 1 > gift.buynum) {
return call.error("", { code: -2, message: globalThis.lng.hqjgtips_28 })
}
let prize: atn[] = [].concat(gift.prize);
if (!mydata.giftbuy[call.req.giftid]) {
mydata.giftbuy[call.req.giftid] = { num: 0, select: [] };
}
if (gift.dlz) {
for (let i = 0; i < gift.dlz.length; i++) {
if (!mydata.giftbuy[call.req.giftid].select[i]) {
let ids = Object.keys(gift.dlz[i])
prize.push(gift.dlz[i][ids[0]]);
mydata.giftbuy[call.req.giftid].select[i] = Number(ids[0]);
} else {
prize.push(gift.dlz[i][mydata.giftbuy[call.req.giftid].select[i]]);
}
}
}
mydata.giftbuy[call.req.giftid].num++;
await HQJGFun.setMyData(call.uid, call.req.hdid, { giftbuy: mydata.giftbuy });
await PlayerFun.sendPrize(call, prize);
call.succ({ data: mydata, prize: prize })
G.server.sendMsgByUid(call.uid, "msg_s2c/HongDianChange", ["huodonghd"])
}

View File

@ -0,0 +1,35 @@
import { ApiCall } from "tsrpc";
import { ReqGiftSelect, ResGiftSelect } from "../../../shared/protocols/event/huangqijiuguan/PtlGiftSelect";
import HQJGFun from "./fun";
export default async function (call: ApiCall<ReqGiftSelect, ResGiftSelect>) {
let hd = await HQJGFun.HdInfo(call, call.req.hdid);
if (!hd || Object.keys(hd).length <= 0) {
// 无此活动
return call.error('', { code: -1, message: globalThis.lng.huodong_open_1 })
}
let gift = hd.data.gift.filter(i => i.id == call.req.giftid)[0];
if (!gift || !gift.dlz) {
return call.error('', { code: -1, message: globalThis.lng.huodong_open_1 })
}
for (let i = 0; i < call.req.seletc.length; i++) {
if (!gift.dlz[i] || !gift.dlz[i][call.req.seletc[i]]) {
return call.error('', { code: -1, message: globalThis.lng.huodong_open_1 })
}
}
let mydata = await HQJGFun.getMydata(call, hd);
if (!mydata.giftbuy[call.req.giftid]) {
mydata.giftbuy[call.req.giftid] = {
num: 0, select: call.req.seletc
}
} else {
mydata.giftbuy[call.req.giftid].select = call.req.seletc;
}
await HQJGFun.setMyData(call.uid, call.req.hdid, { giftbuy: mydata.giftbuy });
call.succ({ data: mydata });
}

View File

@ -0,0 +1,15 @@
import HQJGFun from "./fun";
import { ApiCall } from "tsrpc";
import { ReqOpen, ResOpen } from "../../../shared/protocols/event/huangqijiuguan/PtlOpen";
export default async (call: ApiCall<ReqOpen, ResOpen>) => {
let hd = await HQJGFun.HdInfo(call, call.req.hdid);
if (!hd || Object.keys(hd).length <= 0) {
// 无此活动
return call.error('', { code: -1, message: globalThis.lng.huodong_open_1 })
}
let mydata = await HQJGFun.getMydata(call, hd);
call.succ({ data: mydata })
}

View File

@ -0,0 +1,7 @@
import { ApiCall } from "tsrpc";
import { ReqRankList, ResRankList } from "../../../shared/protocols/event/huangqijiuguan/PtlRankList";
import HQJGFun from "./fun";
export default async function (call: ApiCall<ReqRankList, ResRankList>) {
HQJGFun.getRankList(call.req.hdid).then(data => call.succ({ rankList: data }));
}

View File

@ -0,0 +1,48 @@
import { ApiCall } from "tsrpc";
import HQJGFun, { Data } from "./fun";
import { ReqRecDpsPrize, ResRecDpsPrize } from "../../../shared/protocols/event/huangqijiuguan/PtlRecDpsPrize";
import { PlayerFun } from "../../../public/player";
export default async function (call: ApiCall<ReqRecDpsPrize, ResRecDpsPrize>) {
let hd = await HQJGFun.HdInfo(call, call.req.hdid);
if (!hd) {
// 无此活动
return call.error('', { code: -1, message: globalThis.lng.huodong_open_1 })
}
let data = hd.data as Data
// 个人活动信息
let mydata = await HQJGFun.getMydata(call, hd);
// 领取伤害奖励
let prize = [];
for (let rec of call.req.recid) {
let con = data.bossTask.filter(x => x.id == rec)[0];
if (mydata.bossres.recdpstask.includes(con.id)) {
continue
}
if (con.need > (mydata.bossres.maxdps || 0)) {
continue
}
mydata.bossres.recdpstask.push(con.id);
prize = prize.concat(con.prize);
}
if (prize.length <= 0) {
call.error("", { code: -2, message: lng.hqjgtips_27 });
} else {
// 发送奖励
await PlayerFun.sendPrize(call, prize);
// 设置领奖记录
await HQJGFun.setMyData(call.uid, call.req.hdid, { bossres: mydata.bossres });
}
call.succ({ data: mydata, prize: prize })
G.server.sendMsgByUid(call.uid, "msg_s2c/HongDianChange", ["huodonghd"])
}

View File

@ -0,0 +1,54 @@
import HQJGFun from "./fun";
import { ApiCall } from "tsrpc";
import { ReqTaskRec, ResTaskRec } from "../../../shared/protocols/event/huangqijiuguan/PtlTaskRec";
import { PlayerFun } from "../../../public/player";
export default async function (call: ApiCall<ReqTaskRec, ResTaskRec>) {
let hd = await HQJGFun.HdInfo(call, call.req.hdid);
if (!hd || Object.keys(hd).length <= 0) {
// 无此活动
return call.error('', { code: -1, message: globalThis.lng.huodong_open_1 })
}
let today = HQJGFun.today(hd);
if (today < call.req.day) {
// 未到领取时间
return call.error('', { code: -1, message: globalThis.lng.hqjgtips_29 })
}
let prize = [];
let taskday = `day${call.req.day}`
let mydata = await HQJGFun.getMydata(call, hd);
for (let id of call.req.taskid) {
let con = hd.data.task[taskday][id];
if (!con) {
continue
}
if (mydata.task.rec[taskday] && mydata.task.rec[taskday].includes(id)) {
continue
}
if (!mydata.task.val[taskday] || (mydata.task.val[taskday][id] || 0) < con.pval) {
continue
}
prize = prize.concat(con.prize);
mydata.task.rec[taskday] = (mydata.task.rec[taskday] || []).concat(id);
}
if (prize.length <= 0) {
return call.error('', { code: -3, message: lng.hqjgtips_28 });
}
// 发送奖励
await PlayerFun.sendPrize(call, prize);
// 设置领取记录
await HQJGFun.setMyData(call.uid, call.req.hdid, {task: mydata.task});
call.succ({ data: mydata, prize: prize });
G.server.sendMsgByUid(call.uid, "msg_s2c/HongDianChange", ["huodonghd"])
}

View File

@ -0,0 +1,54 @@
import { ApiCall } from "tsrpc";
import { ReqZhaoMu, ResZhaoMu } from "../../../shared/protocols/event/huangqijiuguan/PtlZhaoMu";
import HQJGFun from "./fun";
import { PlayerFun } from "../../../public/player";
import { PublicShared } from "../../../shared/public/public";
import { ActionLog } from "../../../public/actionLog/actionLog";
export default async function (call: ApiCall<ReqZhaoMu, ResZhaoMu>) {
let hd = await HQJGFun.HdInfo(call, call.req.hdid);
if (!hd || Object.keys(hd).length <= 0) {
// 无此活动
return call.error('', { code: -1, message: globalThis.lng.huodong_open_1 })
}
let need = [{ a: hd.data.huobi.a, t: hd.data.huobi.t, n: hd.data.huobi.n * call.req.num }];
// 检测消耗
await PlayerFun.checkNeedIsMeet(call, need);
let prize = [];
let mydata = await HQJGFun.getMydata(call, hd);
for (let n = 1; n <= call.req.num; n++) {
let num = mydata.zhaomu.num + n;
let baodi = hd.data.baodi.filter(x => x.num == num);
if (baodi.length > 0) {
// 触发保底
prize = prize.concat(baodi[0].prize);
} else {
// 常规掉落
let temp = PublicShared.randomDropAny<{
a: string, t: string, n: number, p: number
}>(
hd.data.chouka.filter(x => x.cishu <= num)
);
prize.push({ a: temp.a, t: temp.t, n: temp.n });
}
}
mydata.zhaomu.num += call.req.num;
// 扣除消耗
await PlayerFun.cutNeed(call, need);
// 发送奖励
await PlayerFun.sendPrize(call, prize);
// 设置抽卡数据
await HQJGFun.setMyData(call.uid, call.req.hdid, { zhaomu: mydata.zhaomu });
call.succ({ data: mydata, prize: prize })
G.emit("Class_task_159", 'Class_task_159', call, 1, 0);
ActionLog.addDayLog(call.uid, { key: "huangqijiuguan/ZhaoMu", val: call.req.num });
}

View File

@ -0,0 +1,44 @@
import { ApiCall } from "tsrpc";
import { ReqZhaoMuPrizeRec, ResZhaoMuPrizeRec } from "../../../shared/protocols/event/huangqijiuguan/PtlZhaoMuPrizeRec";
import HQJGFun from "./fun";
import { PlayerFun } from "../../../public/player";
export default async function (call: ApiCall<ReqZhaoMuPrizeRec, ResZhaoMuPrizeRec>) {
let hd = await HQJGFun.HdInfo(call, call.req.hdid);
if (!hd || Object.keys(hd).length <= 0) {
// 无此活动
return call.error('', { code: -1, message: globalThis.lng.huodong_open_1 })
}
let prize = [];
let mydata = await HQJGFun.getMydata(call, hd);
for (let rec of call.req.recid) {
let con = hd.data.choukajiangli[rec.idx];
if (con.num > mydata.zhaomu.num || mydata.zhaomu.prize.includes(rec.idx)) {
continue
}
if (con.dlz) {
prize.push(con.dlz[0][rec.sec]);
} else {
prize = prize.concat(con.prize);
}
mydata.zhaomu.prize.push(rec.idx);
}
if (prize.length <= 0) {
return call.error('', { code: -2, message: globalThis.lng.hqjgtips_28 })
}
// 发送奖励
await PlayerFun.sendPrize(call, prize);
// 设置领取数据
await HQJGFun.setMyData(call.uid, call.req.hdid, { zhaomu: mydata.zhaomu });
call.succ({ prize: prize, data: mydata })
G.server.sendMsgByUid(call.uid, "msg_s2c/HongDianChange", ["huodonghd"])
}

View File

@ -0,0 +1,510 @@
import { ApiCall } from "tsrpc"
import { ReqAddHuoDong } from "../../../monopoly/protocols/PtlAddHuoDong"
import { HuoDongFun } from "../../../public/huodongfun"
import { PublicShared } from "../../../shared/public/public"
import { EmailFun } from "../../../public/email"
import { playerInfo } from "../../../shared/protocols/user/PtlLogin"
import { PlayerFun } from "../../../public/player"
import { TaskFun } from "../../../public/task"
// hddata.data
export interface Data {
show: 1
task: {
[k: `day${number}`]: {
[k: string]: { pval: number, stype: number, cond: string[], tiaozhuan: number, prize: atn[], des: string }
}
}
huobi: atn // 抽卡货币
boss: {
img: string
npcId: number
}
// boss排行邮件
bossRank_des: string
bossRank_title: string
// boss挑战等级奖励邮
bossLvReward_des: string
bossLvReward_title: string
chouka: { a: string, t: string, n: number, p: number, gailv: number, cishu: number }[]
choukajiangli: { num: number, prize?: any[], dlz: { [k: string]: atn } }[]
baodi: { num: number, prize: any[] }[]
gift: { id: number, free: boolean, payId: string, buynum: number, prize: atn[], dlz?: { [k: string]: atn }[] }[]
duihuan: { id: number, need: atn[], prize: atn[], buyNum: number }[]
bossLvReward: { lv: number, need: number, prize: atn[] }[]
bossTask: { id: number, need: number, prize: atn[] }[]
bossRank: { id: string, rank: [number, number], prize: atn[] }
zhuanhuan: { start: atn, end: atn }[]
end_mail_title: string
end_mail_des: string
}
export interface PlayerData {
// 招募数据
zhaomu: {
// 招募次数
num: number
// 次数奖励领取记录
prize: number[]
};
// 任务计数
task: {
rec: { [k: `day${number}`]: number[] }
val: { [k: `day${number}`]: { [id: string]: number } }
},
// 礼包购买记录
giftbuy: { [id: string]: { num: number, select: number[] } }
// 兑换次数记录
duihuan: { [id: string]: number }
// boss挑战数据
bossres: {
// 历史最大伤害
maxdps: number
// 今日最大伤害
todaydps: {
[k: string]: number
}
// 今日奖励领取记录
recdpstask: number[]
}
}
export default class HQJGFun {
static get htype() {
return 15
};
static rankkey(hdid: number) {
return `rank:huangqijiuguan_${hdid}`
}
/** 默认数据 */
static get defaultData() {
return {
zhaomu: {
num: 0,
prize: []
},
task: {
val: {},
rec: {}
},
giftbuy: {},
duihuan: {},
bossres: {
maxdps: 0,
zhanli: 0,
todaydps: {},
recdpstask: []
},
}
}
static today(hdinfo: ReqAddHuoDong) {
/**
* 1
*/
return PublicShared.getDiff(hdinfo.stime, G.time)
}
/**
*
*/
static async getRankList(hdid: number) {
let uids = await G.mongodb.collection("event").find(
{ type: this.dataType(hdid), "bossres.maxdps": { $gt: 0 } },
{
sort: { "bossres.maxdps": -1, "bossres.zhanli": -1 },
projection: { uid: 1, bossres: 1 }
}
).limit(50).toArray();
let userinfo = await G.mongodb.collection('user').find(
{ uid: { $in: uids.map(v => v.uid) } },
).toArray();
let res = [];
for (let rank = 1; rank <= uids.length; rank++) {
let uid = uids[rank - 1].uid;
let user = userinfo.find(v => v.uid == uid);
if (user) {
res.push({ rank, ...user, valArr: [uids[rank - 1].bossres.maxdps] });
}
}
return res
}
/** 数据类型 */
static dataType(hdid: number) {
return `huangqijiuguan_${hdid}` as `huangqijiuguan_${number}`
}
/** 获取活动数据 */
static async HdInfo(call: ApiCall, hdid?: number): Promise<ReqAddHuoDong & { data: Data }> {
if (!hdid) {
let hdlist = await HuoDongFun.gethdList(
call, this.htype
);
return hdlist.length > 0 ? hdlist[0] : null
} else {
return await HuoDongFun.getHdidInfo(call, hdid) as any as ReqAddHuoDong & { data: Data }
}
}
/** 获取我的数据 */
static async getMydata(call: ApiCall, hd?: ReqAddHuoDong) {
if (!hd) {
hd = await HQJGFun.HdInfo(call);
}
let data = await G.mongodb.cEvent(this.dataType(hd.hdid)).findOne({
uid: call.uid, type: this.dataType(hd.hdid)
}, { projection: { _id: 0 } });
if (!data) {
data = (await G.mongodb.cEvent(this.dataType(hd.hdid)).findOneAndUpdate({
uid: call.uid, type: this.dataType(hd.hdid)
}, {
$set: this.defaultData
}, { upsert: true, returnDocument: 'after', projection: { _id: 0 } })).value;
}
let today = this.today(hd);
if (!data.task.val[`day${today}`]) {
data.task.val[`day${today}`] = {};
let tasks = hd.data.task[`day${today}`];
for (let taskid in tasks) {
let taskcon = tasks[taskid];
data.task.val[`day${today}`][taskid] = await TaskFun.getTaskNval(call, taskcon);
}
await G.mongodb.collection('event').updateOne(
{ uid: call.uid, type: this.dataType(hd.hdid) },
{ $set: { [`task.val.day${today}`]: data.task.val[`day${today}`] } }
);
}
return data
}
/** 设置我的数据 */
static async setMyData(uid: string, hdid: number, update: { [k in keyof Partial<PlayerData>]: PlayerData[k] }) {
let res = await G.mongodb.cEvent(this.dataType(hdid)).updateOne(
{ uid: uid, type: this.dataType(hdid) }, { $set: update }, { upsert: true }
);
if (res.upsertedCount == 1) {
console.log("===>", uid, hdid, update);
await G.mongodb.cEvent(this.dataType(hdid)).updateOne(
{ uid: uid, type: this.dataType(hdid) }, { $set: Object.assign(this.defaultData, update) }
);
}
}
/**
*
*/
static async dayDpsLvPrize(time: number) {
console.log(
"黄旗酒馆 每日伤害等级奖励结算 开始执行。。。"
)
// 取stime小于当前时间的最后一条数据
let hdinfo = await G.mongodb.collection("hdinfo").find({
htype: this.htype, stime: { $lte: time }
}, { sort: { stime: -1 } }).limit(1).toArray();
// 没有活动数
if (hdinfo.length <= 0) {
return
}
let hd = hdinfo[0];
let hdid = hdinfo[0].hdid;
// 活动结束
if (hd.etime < G.time - 300) {
return
}
let today = PublicShared.getDiff(hd.stime, G.time - 300);
G.mongodb.collection("event").find({ type: `huangqijiuguan_${hdid}` }).toArray().then(datas => {
let hddata = hd.data as Data;
for (let i = 0; i < datas.length; i++) {
let data = datas[i];
let lvprize: { lv: number; need?: number; prize?: atn[] };
let dps = data.bossres.todaydps[today] || 0;
for (let lvinfo of hddata.bossLvReward) {
if (dps < lvinfo.need) {
continue;
}
if (!lvprize || lvprize.lv < lvinfo.lv) {
lvprize = lvinfo;
}
}
if (!lvprize) continue
let title = hddata.bossLvReward_title;
let content = hddata.bossLvReward_des;
EmailFun.addEmail({
uid: data.uid,
title: title,
type: "system",
content: content,
prize: lvprize.prize,
contentInsertArr: [lvprize.lv],
})
}
console.log(
"黄旗酒馆 每日伤害等级奖励结算 执行完成!!!"
)
})
}
/**
*
*/
static async endDpsRankPrize(time: number) {
console.log(
"黄旗酒馆 最大伤害排行奖励结算 开始执行。。。"
)
let today = PublicShared.getToDayZeroTime(time + 300);
let yesterday = PublicShared.getToDayZeroTime(time - 300);
// 查询昨天23:59:00或者今天00:00:00结束的活动
let hdinfo = await G.mongodb.collection("hdinfo").find({
htype: this.htype, rtime: { $gt: yesterday, $lte: today }
}).toArray();
// 没有活动数 或者发奖标识已设置
if (hdinfo.length <= 0 || hdinfo[0].data.sendrank) {
return
}
let hd = hdinfo[0];
let hdid = hdinfo[0].hdid;
let hddata = hdinfo[0].data as Data;
if (hd.data.sendrank) {
return
}
let uids = await G.mongodb.collection("event").find(
{ type: this.dataType(hdid) },
{
sort: { "bossres.maxdps": -1, "bossres.zhanli": -1 },
projection: { uid: 1, bossres: 1 }
}
).toArray();
for (let rank = 1; rank <= uids.length; rank++) {
let con = hd.data.bossRank.filter(
(x: { rank: number[] }) => rank >= x.rank[0] && rank <= x.rank[1]
)[0];
if (!con) continue;
// 发送排名奖励
await EmailFun.addEmail({
uid: uids[rank - 1].uid,
title: hd.data.bossRank_title,
type: "system",
content: hd.data.bossRank_des,
prize: con.prize,
contentInsertArr: [rank],
})
}
// 标记已发送
await G.mongodb.collection("hdinfo").updateOne(
{ hdid: hdid }, { $set: { "data.sendrank": true } }
);
// 货币兑换
G.mongodb.collection("user").find().toArray().then(async (users) => {
for (let i = 0; i < users.length; i++) {
let prize = [];
let change = {};
let user = users[i];
for (let con of hddata.zhuanhuan) {
let num = user[con.start.t];
if (num < con.start.n) {
continue
}
change[con.start.t] = 0;
prize.push({
a: con.end.a, t: con.end.t, n: con.end.n * (num / con.start.n),
})
}
if (prize.length <= 0) continue
// 扣除消耗
await PlayerFun.changeAttr(user.uid, change);
G.server?.sendMsgByUid(user.uid, "msg_s2c/PlayerChange", change);
// 发送奖励邮件
await EmailFun.addEmail({
uid: user.uid,
type: "system",
prize: prize,
title: hddata.end_mail_title,
content: hddata.end_mail_des,
})
}
})
console.log(
"黄旗酒馆 最大伤害排行奖励结算 执行结束!!!"
)
}
/**设置任务 */
static async setTaskVal(call: ApiCall, stype: number, val: number, chkCall: Function, chkval: number = 0, isinc: number = 0, alchangeVal: Function, arg) {
// 活动过期,不计数
let hd = await this.HdInfo(call)
if (!hd) return
let today = this.today(hd);
let tasks = hd.data.task[`day${today}`];
if (!tasks) return
let mydata = await this.getMydata(call, hd);
let isset = 0;
if (!mydata.task.val[`day${today}`]) {
isset = 1;
mydata.task.val[`day${today}`] = {}
for (let taskid in tasks) {
let taskcon = tasks[taskid];
mydata.task.val[`day${today}`][taskid] = await TaskFun.getTaskNval(call, taskcon);
}
}
for (let taskid of Object.keys(tasks)) {
let taskCon = tasks[taskid];
if (taskCon.stype != stype) continue
// 不符合任务要求
if (!(await chkCall(taskCon["cond"], chkval, arg))) continue
// 根据需求改写
val = await alchangeVal(call, taskCon, val, arg)
isset = 1
if (isinc != 1) { // 累加
mydata.task.val[`day${today}`][taskid] = val;
} else {
mydata.task.val[`day${today}`][taskid] = (mydata.task.val[`day${today}`][taskid] || 0) + val;
}
}
// 设置任务
if (isset == 1) {
await G.mongodb.collection('event').updateOne({ uid: call.uid, type: this.dataType(hd.hdid) }, {
$set: {
[`task.val.day${today}`]: mydata.task.val[`day${today}`]
}
})
if ((await this.getHongDian(call, hd, mydata)).show) {
G.server.sendMsgByUid(call.uid, "msg_s2c/HongDianChange", ["huodonghd"])
}
}
}
static async buy(player: playerInfo, payId: string, payArgs: any, call: ApiCall) {
let hd = await this.HdInfo(call);
if (!hd) { // 活动不存在
return
}
// 判断购买次数
let gift = hd.data.gift.filter(x => x.payId == payId)[0];
if (!gift) {
return
}
let mydata = await this.getMydata(call, hd);
if (!mydata.giftbuy[gift.id]) {
mydata.giftbuy[gift.id] = { num: 0, select: [] };
}
let prize: atn[] = [];
if (mydata.giftbuy[gift.id].num + 1 > gift.buynum) {
let pay = G.gc.pay[payId];
prize.push({ a: "attr", t: "rmbmoney", n: pay.payExp[0].n })
} else {
prize = gift.prize;
for (let i = 0; i < gift.dlz.length; i++) {
if (!mydata.giftbuy[gift.id].select[i]) {
let ids = Object.keys(gift.dlz[i])
prize.push(gift.dlz[i][ids[0]]);
mydata.giftbuy[gift.id].select[i] = Number(ids[0]);
} else {
prize.push(gift.dlz[i][mydata.giftbuy[gift.id].select[i]]);
}
}
}
mydata.giftbuy[gift.id].num++;
// 发送奖励
await PlayerFun.sendPrize(call, prize, true);
await this.setMyData(call.uid, hd.hdid, { giftbuy: mydata.giftbuy });
}
static async getHongDian(call: ApiCall, hd: ReqAddHuoDong, mydata?: PlayerData) {
let hdid = hd.hdid;
let hddata = hd.data as Data;
mydata = mydata || await this.getMydata(call, hd);
// 当黄旗招募存在可领取的可选奖励时
for (let i = 0; i < hddata.choukajiangli.length; i++) {
let ele = hddata.choukajiangli[i];
if (mydata.zhaomu.num >= ele.num && !mydata.zhaomu.prize.includes(i)) {
return { show: true }
}
}
let today = this.today(hd);
// 当今日没有进行boss挑战时
if (!mydata.bossres.todaydps[today]) {
return { show: true }
}
// 当每日任务界面存在可领取的任务奖励时
for (let day = 1; day <= today; day++) {
for (let taskid in hddata.task[`day${day}`]) {
let task = hddata.task[`day${day}`][taskid];
if (mydata.task.val[`day${day}`]?.[taskid] >= task.pval && !(mydata.task.rec?.[`day${day}`] || []).includes(Number(taskid))) {
return { show: true }
}
}
}
// 当干部挑战界面存在可领取的挑战任务奖励时
for (let mb of hddata.bossTask) {
if (mb.need <= mydata.bossres.maxdps && !mydata.bossres.recdpstask.includes(mb.id)) {
return { show: true }
}
}
// 当存在可以领取的免费礼包时
for (let gift of hddata.gift) {
if (gift.free && (mydata.giftbuy[gift.id]?.num || 0) < gift.buynum) {
return { show: true }
}
}
return { show: false }
}
}

View File

@ -6,7 +6,6 @@ import {PublicShared} from "../../../shared/public/public";
export default async function (call: ApiCall<ReqOpen, ResOpen>) { export default async function (call: ApiCall<ReqOpen, ResOpen>) {
let data = await G.mongodb.cEvent('pobinglibao').findOne({uid: call.uid, type: 'pobinglibao'})
let _hd = (await HuoDongFun.gethdList(call, 10))[0] let _hd = (await HuoDongFun.gethdList(call, 10))[0]
if (!_hd) return call.errorCode(-1) if (!_hd) return call.errorCode(-1)
@ -16,9 +15,11 @@ export default async function (call: ApiCall<ReqOpen, ResOpen>) {
let payLog: any = await PayFun.getPayLogs(call.uid, payIds) let payLog: any = await PayFun.getPayLogs(call.uid, payIds)
for (let key in payLog) { for (let key in payLog) {
payLog[key]?.filter(i => i.time > _hd.stime && i.time < _hd.etime) payLog[key] = payLog[key]?.filter(i => i.time > _hd.stime && i.time < _hd.etime)
} }
let data = await G.mongodb.cEvent(`pobinglibao${_hd.hdid}`).findOne({uid: call.uid, type: `pobinglibao${_hd.hdid}`})
call.succ({ call.succ({
record: data?.record || {}, record: data?.record || {},
buyLog: payLog buyLog: payLog

View File

@ -1,33 +1,89 @@
import {ApiCall} from "tsrpc"; import { ApiCall } from "tsrpc";
import {ReqReceive, ResReceive} from "../../../shared/protocols/event/pobinglibao/PtlReceive"; import { ReqReceive, ResReceive } from "../../../shared/protocols/event/pobinglibao/PtlReceive";
import {HuoDongFun} from "../../../public/huodongfun"; import { HuoDongFun } from "../../../public/huodongfun";
import {PlayerFun} from "../../../public/player"; import { PlayerFun } from "../../../public/player";
import {HongDianChange} from "../../hongdian/fun"; import { HongDianChange } from "../../hongdian/fun";
import {PayFun} from "../../../public/pay"; import { PayFun } from "../../../public/pay";
import { PublicShared } from "../../../shared/public/public";
export default async function (call: ApiCall<ReqReceive, ResReceive>) { export default async function (call: ApiCall<ReqReceive, ResReceive>) {
// 查询活动是否有当前领奖的免费选项
let _hd = (await HuoDongFun.gethdList(call, 10))[0]
let gift = _hd?.data?.gift?.find(i => i.id == call.req.id)
if (!gift) return call.errorCode(-1)
// 查询活动是否是可领取状态
let _hd = (await HuoDongFun.gethdList(call, 10))[0]
let prize = [];
let update = {};
// 判断活动是否是最后一天
if (PublicShared.chkSameDate(G.time, _hd.etime)) {
let data = await G.mongodb.cEvent(`pobinglibao${_hd.hdid}`).findOne(
{ uid: call.uid, type: `pobinglibao${_hd.hdid}` }
);
for (let gift of _hd.data.gift) {
// 查询购买状态
let push = [];
let payLog = await PayFun.getPayLog(call.uid, gift.payId) let payLog = await PayFun.getPayLog(call.uid, gift.payId)
payLog = payLog?.filter(i => i.time >= _hd.stime && i.time <= _hd.etime) || [] payLog = payLog?.filter(i => i.time >= _hd.stime && i.time <= _hd.etime) || []
if (!payLog || !payLog.length) return call.errorCode(-2) if (!payLog || !payLog.length) continue;
for (let key of ["prize", "recPrize1", "recPrize2"]) {
if (!data || !data?.record[gift.id] || !data.record[gift.id].includes(key)) {
push.push(key);
prize.push(...gift[key]);
}
}
if (push.length > 0) {
if (update["$push"]) {
update["$push"]["record." + gift.id] = { $each: push }
} else {
update["$push"] = { ["record." + gift.id]: { $each: push } }
}
}
}
if (!prize.length) {
return call.errorCode(-3)
}
} else {
let gift = _hd?.data?.gift?.find(i => i.id == call.req.id);
if (!gift || !call.req.recId) return call.errorCode(-1);
// 查询购买状态
let payLog = await PayFun.getPayLog(call.uid, gift.payId)
payLog = payLog?.filter(i => i.time >= _hd.stime && i.time <= _hd.etime) || []
if (!payLog || !payLog.length) return call.errorCode(-2);
/**
*
*
*
*/
let data = await G.mongodb.cEvent(`pobinglibao${_hd.hdid}`).findOne(
{ uid: call.uid, type: `pobinglibao${_hd.hdid}` }
)
// 取奖励列表,判断是否有可领取奖励
let data = await G.mongodb.cEvent('pobinglibao').findOne({uid: call.uid, type: 'pobinglibao'})
let rec = data?.record?.[call.req.id]?.length let rec = data?.record?.[call.req.id]?.length
if (rec && (rec >= 3 || data?.record?.[gift.id] == call.req.recId)) return call.errorCode(-3)
await PlayerFun.sendPrize(call, gift[call.req.recId]); let _payDiff = PublicShared.getDiff(payLog[0].time)
_payDiff = _payDiff > 3 ? 3 : _payDiff
await G.mongodb.cEvent('pobinglibao').updateOne({uid: call.uid, type: 'pobinglibao'}, { if (rec >= _payDiff || data?.record?.[gift.id] == call.req.recId) return call.errorCode(-3)
$push: {[`record.${gift.id}`]: call.req.recId},
}, {upsert: true})
call.succ({}) prize.push(...gift[call.req.recId]);
update = {
$push: { [`record.${gift.id}`]: call.req.recId },
}
}
await PlayerFun.sendPrize(call, prize);
await G.mongodb.cEvent(`pobinglibao${_hd.hdid}`).updateOne(
{ uid: call.uid, type: `pobinglibao${_hd.hdid}` }, update, { upsert: true }
);
call.succ({ prize: prize });
HongDianChange.sendChangeKey(call.uid, ['huodonghd']); HongDianChange.sendChangeKey(call.uid, ['huodonghd']);
} }

View File

@ -2,6 +2,8 @@ import { ApiCall } from "tsrpc";
import { HuoDongFun } from "../../../public/huodongfun"; import { HuoDongFun } from "../../../public/huodongfun";
import { ReqOpen, ResOpen } from "../../../shared/protocols/event/yangchengmubiao/PtlOpen"; import { ReqOpen, ResOpen } from "../../../shared/protocols/event/yangchengmubiao/PtlOpen";
import { YangChengMuBiaofun } from "./fun"; import { YangChengMuBiaofun } from "./fun";
import { PayFun } from "../../../public/pay";
import { payLog } from "../../../shared/protocols/pay/PtlGetList";
export default async function (call: ApiCall<ReqOpen, ResOpen>) { export default async function (call: ApiCall<ReqOpen, ResOpen>) {
let _hdinfo = await HuoDongFun.getHdidInfo(call, call.req.hdid) let _hdinfo = await HuoDongFun.getHdidInfo(call, call.req.hdid)
@ -9,6 +11,23 @@ export default async function (call: ApiCall<ReqOpen, ResOpen>) {
// 无此活动 // 无此活动
return call.error('', { code: -1, message: globalThis.lng.huodong_open_1 }) return call.error('', { code: -1, message: globalThis.lng.huodong_open_1 })
} }
let delPay: { payId: string, val: payLog[] }[] = [];
let payIds = _hdinfo.data.gift.map(v => v.payId);
let payLogs = await PayFun.getPayLogs(call.uid, payIds);
for (let payid in payLogs) {
if (payLogs[payid].length > 0) {
if (payLogs[payid].slice(-1)[0].time < _hdinfo.stime) {
delPay.push({ payId: payid, val: [] });
}
}
}
if (delPay.length > 0) {
await PayFun.delPayLog(call.uid, ...delPay);
}
let _mydata = await YangChengMuBiaofun.getMyData(call, call.req.hdid) let _mydata = await YangChengMuBiaofun.getMyData(call, call.req.hdid)
let changedata = { mydata: _mydata, hdinfo: _hdinfo } let changedata = { mydata: _mydata, hdinfo: _hdinfo }
call.succ(changedata); call.succ(changedata);

View File

@ -35,6 +35,7 @@ export default async function (call: ApiCall<ReqRec, ResRec>) {
_mydata.lunci += 1 _mydata.lunci += 1
_setData["taskval"] = _mydata.taskval _setData["taskval"] = _mydata.taskval
_setData["lunci"] = _mydata.lunci _setData["lunci"] = _mydata.lunci
_setData["finishid"] = _mydata.finishid
} }
// 设置任务改变数据 // 设置任务改变数据

View File

@ -16,8 +16,8 @@ export default async function (call: ApiCall<ReqRec, ResRec>) {
if (call.req.index > day) return call.errorCode(-3); if (call.req.index > day) return call.errorCode(-3);
if (rec.includes(call.req.index)) return call.errorCode(-4); if (rec.includes(call.req.index)) return call.errorCode(-4);
// 从异步改成同步
G.mongodb.cEvent(type).updateOne({uid: call.uid, type: type}, {$push: {rec: call.req.index}}, {upsert: true}); await G.mongodb.cEvent(type).updateOne({uid: call.uid, type: type}, {$push: {rec: call.req.index}}, {upsert: true});
await PlayerFun.sendPrize(call, [].concat(conf.prize[call.req.index])); await PlayerFun.sendPrize(call, [].concat(conf.prize[call.req.index]));

View File

@ -1,14 +1,15 @@
import {ApiCall} from "tsrpc"; import { ApiCall } from "tsrpc";
import {ZhanLingTasks} from '../../../public/zhanling'; import { ZhanLingTasks } from '../../../public/zhanling';
import {ReqOpen, ResOpen} from "../../../shared/protocols/event/zhanling/PtlOpen"; import { ReqOpen, ResOpen } from "../../../shared/protocols/event/zhanling/PtlOpen";
import {player} from '../../../shared/protocols/user/type'; import { player } from '../../../shared/protocols/user/type';
import {PublicShared} from '../../../shared/public/public'; import { PublicShared } from '../../../shared/public/public';
import { PayFun } from "../../../public/pay";
export default async function (call: ApiCall<ReqOpen, ResOpen>) { export default async function (call: ApiCall<ReqOpen, ResOpen>) {
let zls = await G.mongodb.collection('scheduler').findOne({type: 'zhanling'}); let zls = await G.mongodb.collection('scheduler').findOne({ type: 'zhanling' });
let data = await G.mongodb.cEvent('zhanling').findOne({uid: call.uid, type: 'zhanling'}); let data = await G.mongodb.cEvent('zhanling').findOne({ uid: call.uid, type: 'zhanling' });
if (!data || data.round != (zls?.round | 0)) { if (!data || data.round != (zls?.round || 0)) {
let set = { let set = {
lv: 1, lv: 1,
exp: 0, exp: 0,
@ -16,18 +17,25 @@ export default async function (call: ApiCall<ReqOpen, ResOpen>) {
isPay: false, isPay: false,
taskRec: [], taskRec: [],
round: zls?.round || 0, round: zls?.round || 0,
reWeekTime:G.time, reWeekTime: G.time,
refreshTime: G.time, refreshTime: G.time,
} }
await PayFun.delPayLog(
call.uid, { payId: G.gc.zhanling.payId, val: [] }
);
// 战令重置的时候需要删除所有的任务进度,但是每天的任务进度不做处理,因为每天会自然重置,怕玩家会刷
// ZhanLingTasks.clearLog(call.uid, 'day');
ZhanLingTasks.clearLog(call.uid, 'week');
ZhanLingTasks.clearLog(call.uid, 'round');
data = (await G.mongodb.cEvent('zhanling').findOneAndUpdate({ data = (await G.mongodb.cEvent('zhanling').findOneAndUpdate({
uid: call.uid, uid: call.uid,
type: 'zhanling' type: 'zhanling'
}, {$set: set}, {upsert: true, returnDocument: 'after'})).value; }, { $set: set }, { upsert: true, returnDocument: 'after' })).value;
} }
if (PublicShared.getToWeekMondayZeroTime() > data.reWeekTime || PublicShared.getToDayZeroTime() > data.refreshTime) { if (PublicShared.getToWeekMondayZeroTime() > data.reWeekTime || PublicShared.getToDayZeroTime() > data.refreshTime) {
let set: any = {taskRec: []}; let set: any = { taskRec: [] };
let reType = []; let reType = [];
if (PublicShared.getToWeekMondayZeroTime() > data.reWeekTime) { if (PublicShared.getToWeekMondayZeroTime() > data.reWeekTime) {
@ -49,11 +57,11 @@ export default async function (call: ApiCall<ReqOpen, ResOpen>) {
data = (await G.mongodb.cEvent('zhanling').findOneAndUpdate({ data = (await G.mongodb.cEvent('zhanling').findOneAndUpdate({
uid: call.uid, uid: call.uid,
type: 'zhanling' type: 'zhanling'
}, {$set: set}, {upsert: true, returnDocument: 'after'})).value; }, { $set: set }, { upsert: true, returnDocument: 'after' })).value;
} }
let tasks = G.gc.zhanling.task.map(t => { let tasks = G.gc.zhanling.task.map(t => {
return {type: t.type as 'day' | 'week' | 'round', key: t.taskId}; return { type: t.type as 'day' | 'week' | 'round', key: t.taskId };
}); });
let taskFinished = await ZhanLingTasks.getLog(call.uid, tasks); let taskFinished = await ZhanLingTasks.getLog(call.uid, tasks);
@ -68,14 +76,14 @@ export default async function (call: ApiCall<ReqOpen, ResOpen>) {
} }
export async function payZhanLing(player: player) { export async function payZhanLing(player: player) {
let zlData = await G.mongodb.cEvent('zhanling').findOne({uid: player.uid, type: 'zhanling'}); let zlData = await G.mongodb.cEvent('zhanling').findOne({ uid: player.uid, type: 'zhanling' });
let curLv = zlData?.lv || 1; let curLv = zlData?.lv || 1;
let maxLv = Number(Object.keys(G.gc.zhanling.lv).slice(-1)[0]); let maxLv = Number(Object.keys(G.gc.zhanling.lv).slice(-1)[0]);
let addLv = maxLv - curLv >= G.gc.zhanling.payAddLv ? G.gc.zhanling.payAddLv : maxLv - curLv; let addLv = maxLv - curLv >= G.gc.zhanling.payAddLv ? G.gc.zhanling.payAddLv : maxLv - curLv;
await G.mongodb.cEvent('zhanling').updateOne( await G.mongodb.cEvent('zhanling').updateOne(
{uid: player.uid, type: 'zhanling'}, { uid: player.uid, type: 'zhanling' },
{$set: {isPay: true, exp: G.gc.zhanling.lv[curLv + addLv], lv: curLv + addLv}}, { $set: { isPay: true, exp: G.gc.zhanling.lv[curLv + addLv], lv: curLv + addLv } },
{upsert: true} { upsert: true }
); );
} }

View File

@ -51,16 +51,24 @@ export default async function (call: ApiCall<ReqGetList, ResGetList>) {
async function checkDataAndFix(call: ApiCall, list: ResGetList['list']) { async function checkDataAndFix(call: ApiCall, list: ResGetList['list']) {
try { try {
// 修复配件数据 // 修复配件数据
let peijianids = []; //hero数据里所有英雄穿戴中的配件的 _idobjectId
Object.values(list).map(hero => { // let peijianids = [];
hero.peijian && Object.values(hero.peijian).map( // Object.values(list).map(hero => {
i => peijianids.push(G.mongodb.conversionId(PeijianShared.fmt(i)._id)) // hero.peijian && Object.values(hero.peijian).map(
) // i => peijianids.push(G.mongodb.conversionId(PeijianShared.fmt(i)._id))
}); // )
// });
let peijians = (await G.mongodb.collection("peijian").find( //通过上述的_id去配件表查询所有配件
{uid: call.uid, _id: {$in: peijianids}}, {projection: {_id: 1}} // let wearedPeiJian = (await G.mongodb.collection("peijian").find(
).toArray()).map(temp => G.mongodb.conversionId(temp._id)); // {uid: call.uid, _id: {$in: peijianids}}, {projection: {_id: 1, wearId:1}}
// ).toArray());
// //peijians = 所有从db里查到的peijian的 _id字符串数据集合
// let peijians = wearedPeiJian.map(temp => {
// let idstr = G.mongodb.conversionId(temp._id)
// return idstr;
// });
let shiwuIds = R.flatten(R.values(list).map(hero => R.values(hero.shiwu).map(i => G.mongodb.conversionId(i._id)))) let shiwuIds = R.flatten(R.values(list).map(hero => R.values(hero.shiwu).map(i => G.mongodb.conversionId(i._id))))
@ -68,15 +76,19 @@ async function checkDataAndFix(call: ApiCall, list: ResGetList['list']) {
{uid: call.uid, _id: {$in: shiwuIds}}, {projection: {_id: 1}} {uid: call.uid, _id: {$in: shiwuIds}}, {projection: {_id: 1}}
).toArray()).map(i => G.mongodb.conversionId(i._id)); ).toArray()).map(i => G.mongodb.conversionId(i._id));
let peijianChanges = {}; //let peijianChanges = {};
let shiwuChanges = {}; let shiwuChanges = {};
Object.values(list).map(hero => { Object.values(list).map(hero => {
for (let pos in hero.peijian) { // for (let pos in hero.peijian) {
if (!peijians.includes(PeijianShared.fmt(hero.peijian[pos])._id)) { // //hero该位置记录的穿戴中的配件_id
hero.peijian[pos] = ""; // let _pid = PeijianShared.fmt(hero.peijian[pos])._id;
peijianChanges[hero._id] = hero.peijian;
} // if (!peijians.includes(_pid) || peijianWearTo?.[_pid] != hero._id ) {
} // //这个配件实际在peijian表里不存在 或 配件表里该配件并不是在这个英雄身上
// hero.peijian[pos] = "";
// peijianChanges[hero._id] = hero.peijian;
// }
// }
for (let pos in hero.shiwu) { for (let pos in hero.shiwu) {
if (!shiwus.includes(hero.shiwu[pos]._id)) { if (!shiwus.includes(hero.shiwu[pos]._id)) {
hero.shiwu = R.omit([pos], hero.shiwu) hero.shiwu = R.omit([pos], hero.shiwu)
@ -85,12 +97,12 @@ async function checkDataAndFix(call: ApiCall, list: ResGetList['list']) {
} }
}) })
for (let oid in peijianChanges) { // for (let oid in peijianChanges) {
// 修复数据 // // 修复数据
G.mongodb.collection("hero").updateOne( // G.mongodb.collection("hero").updateOne(
G.mongodb.conversionIdObj({_id: oid}), {$set: {peijian: peijianChanges[oid]}} // G.mongodb.conversionIdObj({_id: oid}), {$set: {peijian: peijianChanges[oid]}}
) // )
} // }
for (let oid in shiwuChanges) { for (let oid in shiwuChanges) {
// 修复数据 // 修复数据

View File

@ -21,6 +21,7 @@ import kfjsFun from "../../public/kaifujingsai";
import {RankKfjs} from "../../public/rank/rank_kfjs"; import {RankKfjs} from "../../public/rank/rank_kfjs";
import {ShopFun} from "../../public/shop"; import {ShopFun} from "../../public/shop";
import {Christmasfun} from '../event/christmas/fun'; import {Christmasfun} from '../event/christmas/fun';
import HQJGFun from '../event/huangqijiuguan/fun';
export class HongDianFun { export class HongDianFun {
/**黑榜争霸红点 */ /**黑榜争霸红点 */
@ -352,6 +353,10 @@ export class HuoDongHongDianFun {
// 检测 htype 10 元旦活动红点 // 检测 htype 10 元旦活动红点
ishd = await this.yuandan(call, element) ishd = await this.yuandan(call, element)
} }
if (element.htype == 15) {
// 检测 htype 15 黄芪酒馆活动红点
ishd = await HQJGFun.getHongDian(call, element)
}
// 此活动有红点 // 此活动有红点
if (ishd.show) { if (ishd.show) {
@ -366,22 +371,37 @@ export class HuoDongHongDianFun {
/**破冰礼包红点 */ /**破冰礼包红点 */
static async pobinglibao(call: ApiCall, _hd: ReqAddHuoDong): Promise<hongdianVal> { static async pobinglibao(call: ApiCall, _hd: ReqAddHuoDong): Promise<hongdianVal> {
let gift = _hd?.data?.gift?.find(i => i.free == true && !i.payId) let gift = _hd?.data?.gift?.find(i => i.free == true && !i.payId)
if (gift) return {show: true} if (gift) return {show: true}
let payIds = _hd?.data?.gift?.filter(i=>i.payId).map(i=>i.payId)
let payIds = _hd?.data?.gift?.filter(i => i.payId).map(i => i.payId)
let payLogs = await PayFun.getPayLogs(call.uid, payIds) let payLogs = await PayFun.getPayLogs(call.uid, payIds)
for (let key in payLogs) {
// 取奖励列表,判断是否有可领取奖励 payLogs[key] = payLogs[key]?.filter(i => i.time > _hd.stime && i.time < _hd.etime) || []
let data = await G.mongodb.cEvent('pobinglibao').findOne({uid: call.uid, type: 'pobinglibao'})
for (let item of _hd?.data?.gift){
let rec = data?.record?.[item.id]?.length
if (item.free== true && !item.payId) return {show: true}
if (payLogs[item.payId]?.length && (!rec || rec < PublicShared.getDiff(payLogs[item.payId][0].time))) return {show: true}
} }
return {show:false} // 取奖励列表,判断是否有可领取奖励
let data = await G.mongodb.cEvent(`pobinglibao${_hd.hdid}`).findOne({
uid: call.uid,
type: `pobinglibao${_hd.hdid}`
})
for (let item of _hd?.data?.gift) {
if (item.free == true && !item.payId) return {show: true}
let payLog = payLogs[item.payId]
if (!payLog.length) continue
let rec = data?.record?.[item.id]?.length
let _payDiff = PublicShared.getDiff(payLog[0].time)
_payDiff = _payDiff > 3 ? 3 : _payDiff
let _endDiff = PublicShared.getDiff(_hd.etime)
if ((rec < _payDiff)) return {show: true}
if ((rec < 3 && _endDiff > 0)) return {show: true}
}
return {show: false}
} }
/**元旦活动红点 */ /**元旦活动红点 */
@ -641,6 +661,14 @@ export class HuoDongHongDianFun {
if (_mydata?.rec.includes(index)) continue; // 已领取 if (_mydata?.rec.includes(index)) continue; // 已领取
if (element.gudKey && call.conn.gud[element.gudKey] < element.total) continue; // 未达成 if (element.gudKey && call.conn.gud[element.gudKey] < element.total) continue; // 未达成
if (!element.gudKey && (_mydata?.rec?.length || 0) < _con.length - 1) continue; // 大奖资格不够 if (!element.gudKey && (_mydata?.rec?.length || 0) < _con.length - 1) continue; // 大奖资格不够
if (element.gudKey == "zhizunyueka") {
let logs = await PayFun.getPayLog(call.uid, "zhizunyueka");
if (logs.length <= 0 || logs.slice(-1)[0].eTime < G.time) {
continue
}
}
_res.show = true; _res.show = true;
break; break;
} }
@ -656,7 +684,8 @@ export class HuoDongHongDianFun {
let _con = hdCon.data.tasks; let _con = hdCon.data.tasks;
let db = await G.mongodb.cEvent(_dbType).findOne({uid: call.uid, type: _dbType}); let db = await G.mongodb.cEvent(_dbType).findOne({uid: call.uid, type: _dbType});
let _mydata = db || {sTime: PublicShared.getToDayZeroTime(G.time), recIndex: []}; let _mydata = db || {sTime: PublicShared.getToDayZeroTime(G.time), recIndex: []};
let payNum = await PayFun.getPayDaysAllPayNum(call.uid, hdCon.stime, hdCon.etime); let payNum = (await PayFun.getPayDaysAllPayNum(call.uid, hdCon.stime, hdCon.rtime)) * 10
payNum = payNum - (db?.round || 0) * R.sort((a, b) => b.total - a.total)(hdCon.data.tasks)[0].total
for (let index = 0; index < _con.length; index++) { for (let index = 0; index < _con.length; index++) {
const element = _con[index]; const element = _con[index];
if (_mydata.recIndex.includes(index)) continue; if (_mydata.recIndex.includes(index)) continue;

View File

@ -30,6 +30,6 @@ export default async function (call: ApiCall<ReqOpen, ResOpen>) {
}); });
UserFun.activeHeadFrame(call.uid, 'jjc_rank', data["rank"] + 1); UserFun.activeHeadFrame(call.uid, 'jjc_rank', data["rank"] + 1);
JJCFun.checkUpdatePlayer() //JJCFun.checkUpdatePlayer()
} }

View File

@ -5,7 +5,7 @@ import {ReqYanShi, ResYanShi} from "../../shared/protocols/kuangdong/PtlYanShi";
export default async function (call: ApiCall<ReqYanShi, ResYanShi>) { export default async function (call: ApiCall<ReqYanShi, ResYanShi>) {
return call.errorCode(1) //return call.errorCode(1)
let hdid = call.req.hdid let hdid = call.req.hdid
let con = await KuangDongfun.getCon(hdid) let con = await KuangDongfun.getCon(hdid)

View File

@ -63,7 +63,6 @@ export default async function (call: ApiCall<ReqPkBoss, ResPkBoss>) {
{ type: 'lingzhulaixi' }, { type: 'lingzhulaixi' },
{ $set: G.mongodb.createTreeObj({ key: `maxdps.${call.req.bid}`, val: 0 }) } { $set: G.mongodb.createTreeObj({ key: `maxdps.${call.req.bid}`, val: 0 }) }
) )
} else { } else {
// 超过回合,直接赋值输 // 超过回合,直接赋值输
result.winSide = 1 result.winSide = 1
@ -92,12 +91,14 @@ export default async function (call: ApiCall<ReqPkBoss, ResPkBoss>) {
} }
_mySetDat = { _mySetDat = {
maxdps: _myData.maxdps, maxdps: _myData.maxdps,
time: _myData.time,
num: _myData.num + 1
} }
_bossData.delhp += result.totalDamage[0] _bossData.delhp += result.totalDamage[0]
} }
// 无论挑战成功失败都扣除战斗次数
_mySetDat["num"] = _myData.num + 1;
_mySetDat["time"] = G.time;
// 设置boss数据 // 设置boss数据
await LingZhuLaiXifun.setBossData(_bossData.bid, _setData) await LingZhuLaiXifun.setBossData(_bossData.bid, _setData)
await LingZhuLaiXifun.setMyData(call, { $set: _mySetDat }) await LingZhuLaiXifun.setMyData(call, { $set: _mySetDat })

View File

@ -1,32 +1,33 @@
import { ApiCall } from "tsrpc"; import {ApiCall} from "tsrpc";
import { LingZhuLaiXifun } from "../../public/lingzhulaixi"; import {LingZhuLaiXifun} from "../../public/lingzhulaixi";
import { PlayerFun } from "../../public/player"; import {PlayerFun} from "../../public/player";
import { ReqSaoDang, ResSaoDang } from "../../shared/protocols/lingzhulaixi/PtlSaoDang"; import {ReqSaoDang, ResSaoDang} from "../../shared/protocols/lingzhulaixi/PtlSaoDang";
import { PublicShared } from "../../shared/public/public"; import {PublicShared} from "../../shared/public/public";
import { HongDianChange } from "../hongdian/fun"; import {HongDianChange} from "../hongdian/fun";
import {ActionLog} from "../../public/actionLog/actionLog";
export default async function (call: ApiCall<ReqSaoDang, ResSaoDang>) { export default async function (call: ApiCall<ReqSaoDang, ResSaoDang>) {
let _con = await LingZhuLaiXifun.getCon(call.req.bid) let _con = await LingZhuLaiXifun.getCon(call.req.bid)
if (!_con) { if (!_con) {
// 参数错误,无相关配置 // 参数错误,无相关配置
return call.error('', { code: -1, message: globalThis.lng.lingzhulaixi_1 }) return call.error('', {code: -1, message: globalThis.lng.lingzhulaixi_1})
} }
if (call.conn.gud.lv < _con.lv) { if (call.conn.gud.lv < _con.lv) {
// 等级不足 // 等级不足
return call.error('', { code: -2, message: globalThis.lng.lingzhulaixi_2 }) return call.error('', {code: -2, message: globalThis.lng.lingzhulaixi_2})
} }
// boss信息 // boss信息
let _bossData = await LingZhuLaiXifun.getBossData(call.req.bid) let _bossData = await LingZhuLaiXifun.getBossData(call.req.bid)
if (_bossData.passtime != 0) { if (_bossData.passtime != 0) {
// boss 未复活 // boss 未复活
return call.error('', { code: -3, message: globalThis.lng.lingzhulaixi_4 }) return call.error('', {code: -3, message: globalThis.lng.lingzhulaixi_4})
} }
if (!_bossData.pkuser[call.uid]) { if (!_bossData.pkuser[call.uid]) {
// 未挑战过,请先去挑战 // 未挑战过,请先去挑战
return call.error('', { code: -4, message: globalThis.lng.lingzhulaixi_5 }) return call.error('', {code: -4, message: globalThis.lng.lingzhulaixi_5})
} }
let _myData = await LingZhuLaiXifun.getUsePKNum(call) let _myData = await LingZhuLaiXifun.getUsePKNum(call)
@ -53,7 +54,7 @@ export default async function (call: ApiCall<ReqSaoDang, ResSaoDang>) {
if (!prize[0]) { if (!prize[0]) {
// 无奖励,没有挑战次数 // 无奖励,没有挑战次数
return call.error('', { code: -5, message: globalThis.lng.lingzhulaixi_6 }) return call.error('', {code: -5, message: globalThis.lng.lingzhulaixi_6})
} }
let _setData // 设置数据 let _setData // 设置数据
@ -70,8 +71,8 @@ export default async function (call: ApiCall<ReqSaoDang, ResSaoDang>) {
Object.assign(_bossData, _setData["$set"]) Object.assign(_bossData, _setData["$set"])
// 清除玩家数据 // 清除玩家数据
await G.mongodb.cPlayerInfo('lingzhulaixi').updateMany( await G.mongodb.cPlayerInfo('lingzhulaixi').updateMany(
{ type: 'lingzhulaixi' }, {type: 'lingzhulaixi'},
{ $set: G.mongodb.createTreeObj({ key: `maxdps.${call.req.bid}`, val: 0 }) } {$set: G.mongodb.createTreeObj({key: `maxdps.${call.req.bid}`, val: 0})}
) )
} else { } else {
_setData = { _setData = {
@ -85,12 +86,14 @@ export default async function (call: ApiCall<ReqSaoDang, ResSaoDang>) {
// 设置boss数据 // 设置boss数据
await LingZhuLaiXifun.setBossData(_bossData.bid, _setData) await LingZhuLaiXifun.setBossData(_bossData.bid, _setData)
await LingZhuLaiXifun.setMyData(call, { $inc: { num: _num } }) await LingZhuLaiXifun.setMyData(call, {$inc: {num: _num}, $set: {time: G.time}})
// 发奖 // 发奖
prize = PublicShared.mergePrize(prize) prize = PublicShared.mergePrize(prize)
await PlayerFun.sendPrize(call, prize) await PlayerFun.sendPrize(call, prize)
ActionLog.addDayLog(call.uid, {key: "lingzhulaixi/PkBoss", val: _num});
// 扣除挑战次数 // 扣除挑战次数
_myData.num += _num _myData.num += _num

View File

@ -1,10 +1,10 @@
import { ApiCall } from "tsrpc"; import {ApiCall} from "tsrpc";
import { PataFun } from "../../public/pata"; import {PataFun} from "../../public/pata";
import { PlayerFun } from "../../public/player"; import {PlayerFun} from "../../public/player";
import { ReqSaoDang, ResSaoDang } from "../../shared/protocols/pata/PtlSaoDang"; import {ReqSaoDang, ResSaoDang} from "../../shared/protocols/pata/PtlSaoDang";
import { PlayerShared } from '../../shared/public/player'; import {PlayerShared} from '../../shared/public/player';
import { PublicShared } from "../../shared/public/public"; import {PublicShared} from "../../shared/public/public";
import { HongDianChange } from "../hongdian/fun"; import {HongDianChange} from "../hongdian/fun";
export default async function (call: ApiCall<ReqSaoDang, ResSaoDang>) { export default async function (call: ApiCall<ReqSaoDang, ResSaoDang>) {
let changeInfo = await PataFun.getInfo(call.uid); let changeInfo = await PataFun.getInfo(call.uid);
@ -25,11 +25,11 @@ export default async function (call: ApiCall<ReqSaoDang, ResSaoDang>) {
changeInfo.saodangNum = call.req.num + (changeInfo?.saodangNum || 0); changeInfo.saodangNum = call.req.num + (changeInfo?.saodangNum || 0);
// 改变的数据 // 改变的数据
let setData = { // let setData = {
saodangNum: changeInfo.saodangNum // saodangNum: changeInfo.saodangNum
}; // };
// 设置数据 // 设置数据
await PataFun.changeInfo(call.uid, changeInfo.sid, { $set: setData }); await PataFun.changeInfo(call.uid, changeInfo.sid, {"$inc": {saodangNum: call.req.num}});
_prize = await PlayerFun.sendPrize(call, _prize); _prize = await PlayerFun.sendPrize(call, _prize);
let data = { let data = {

View File

@ -1,12 +1,38 @@
import {ApiCall} from "tsrpc"; import {ApiCall} from "tsrpc";
import {ReqGetList, ResGetList} from "../../shared/protocols/peijian/PtlGetList"; import { connGameLogDB } from "../../gameLog";
import {PeiJian, ReqGetList, ResGetList} from "../../shared/protocols/peijian/PtlGetList";
import { PeijianShared } from "../../shared/public/peijian";
export default async function (call: ApiCall<ReqGetList, ResGetList>) { export default async function (call: ApiCall<ReqGetList, ResGetList>) {
let _maxLv = 0 let _maxLv = 0
let color = {} let color = {}
let peijianCon = G.gc.peijian let peijianCon = G.gc.peijian
//所有上阵的英雄_id
let heroIds = R.values(call.conn.gud.heroPos)
//将所有未上阵的英雄的配件卸下
if(heroIds.length>0){
let _ids = heroIds.map(_id => G.mongodb.conversionId(_id));
await G.mongodb.collection("hero").updateMany({uid: call.conn.uid},{
$set:{
peijian:{}
}
});
}
//如果配件穿戴在了未上阵的hero身上则执行卸下操作
await G.mongodb.collection('peijian').updateMany({uid: call.conn.uid, wearId: {$nin: heroIds}}, {$set: {wearId: ''}})
let heroPeiJian = {};
let dbList = (await G.mongodb.collection('peijian').find({uid: call.uid}).toArray()).map(p => { let dbList = (await G.mongodb.collection('peijian').find({uid: call.uid}).toArray()).map(p => {
if(p.wearId){
if(!heroPeiJian[ p.wearId ]){
heroPeiJian[ p.wearId ] = {};
}
heroPeiJian[ p.wearId ][ Object.keys(heroPeiJian[ p.wearId ]).length + 1 ] = PeijianShared.fmt( p as any )
}
let np = G.mongodb.conversionIdObj(p); let np = G.mongodb.conversionIdObj(p);
let {uid, ...ops} = np; let {uid, ...ops} = np;
@ -16,17 +42,25 @@ export default async function (call: ApiCall<ReqGetList, ResGetList>) {
return ops; return ops;
}); });
// 修复配件穿戴在不存在的英雄身上 //对hero的peijian字段进行修正
let heroIds = R.values(call.conn.gud.heroPos) if(Object.keys(heroPeiJian).length > 0){
let fixIds = dbList.filter(i => i.wearId && !heroIds.includes(i.wearId)).map(i => G.mongodb.conversionId(i._id)) for(let heroid in heroPeiJian){
if (fixIds.length) { await G.mongodb.collection("hero").updateOne({
await G.mongodb.collection('peijian').updateMany({_id: {$in: fixIds}}, {$set: {wearId: ''}}) uid : call.conn.uid,
_id : G.mongodb.conversionId(heroid)
},{
$set:{
peijian : heroPeiJian[heroid]
}
});
}
} }
// 记录玩家最大等级,颜色相关数据 注册任务用 // 记录玩家最大等级,颜色相关数据 注册任务用
await G.mongodb.collection('playerInfo', 'usertasklog').updateOne({uid: call.conn.uid, type: 'usertasklog'}, await G.mongodb.collection('playerInfo', 'usertasklog').updateOne({uid: call.conn.uid, type: 'usertasklog'},
{$set: {maxpeijianlv: _maxLv, peijiancolor: color}}, {upsert: true}) {$set: {maxpeijianlv: _maxLv, peijiancolor: color}}, {upsert: true})
let list = Object.fromEntries(dbList.map(p => [G.formatRedisKey(p._id), p])); let list = Object.fromEntries(dbList.map(p => [G.formatRedisKey(p._id), p]));
G.redis.set('peijian', call.uid, list); G.redis.set('peijian', call.uid, list);

View File

@ -41,14 +41,17 @@ export default async function (call: ApiCall<ReqOpen, ResOpen>) {
}, },
{ upsert: true } { upsert: true }
); );
} else if (data.fightNum < G.gc.slzd.maxFightNum && G.time - data.replyCd > G.gc.slzd.replyCd) {
let addNum = Math.floor((G.time - data.replyCd) / G.gc.slzd.replyCd);
let maxAddNum = G.gc.slzd.maxFightNum - data.fightNum;
data.fightNum += addNum > maxAddNum ? maxAddNum : addNum;
data.replyCd = G.time;
G.mongodb.collection('slzdUser').updateOne({ uid: call.uid }, { $set: { 'data.fightNum': data.fightNum, 'data.replyCd': data.replyCd } });
} }
//不需要回复次数
// else if (data.fightNum < G.gc.slzd.maxFightNum && G.time - data.replyCd > G.gc.slzd.replyCd) {
// let addNum = Math.floor((G.time - data.replyCd) / G.gc.slzd.replyCd);
// let maxAddNum = G.gc.slzd.maxFightNum - data.fightNum;
// data.fightNum += addNum > maxAddNum ? maxAddNum : addNum;
// data.replyCd = G.time;
// G.mongodb.collection('slzdUser').updateOne({ uid: call.uid }, { $set: { 'data.fightNum': data.fightNum, 'data.replyCd': data.replyCd } });
// }
let { refreshTime, ...ops } = data; let { refreshTime, ...ops } = data;
call.succ({ call.succ({
...ops, ...ops,

View File

@ -1,12 +1,12 @@
import { ApiCall } from "tsrpc"; import {ApiCall} from "tsrpc";
import { PlayerFun } from '../../public/player'; import {PlayerFun} from '../../public/player';
import { TanXianFun } from '../../public/tanxian'; import {TanXianFun} from '../../public/tanxian';
import { TeQuanFun } from "../../public/tequan"; import {TeQuanFun} from "../../public/tequan";
import { ReqFastGuaJi, ResFastGuaJi } from "../../shared/protocols/tanxian/PtlFastGuaJi"; import {ReqFastGuaJi, ResFastGuaJi} from "../../shared/protocols/tanxian/PtlFastGuaJi";
import { TanXianShared } from '../../shared/public/tanxian'; import {TanXianShared} from '../../shared/public/tanxian';
import { event_dldh_addPrize } from '../event/diaoluoduihuan/ApiOpen'; import {event_dldh_addPrize} from '../event/diaoluoduihuan/ApiOpen';
import { HongDianChange } from "../hongdian/fun"; import {HongDianChange} from "../hongdian/fun";
import { getEventPrize } from './ApiEvent'; import {getEventPrize} from './ApiEvent';
export default async function (call: ApiCall<ReqFastGuaJi, ResFastGuaJi>) { export default async function (call: ApiCall<ReqFastGuaJi, ResFastGuaJi>) {
@ -20,8 +20,12 @@ export default async function (call: ApiCall<ReqFastGuaJi, ResFastGuaJi>) {
// let notFree = data.useFastGuaJiNum >= freeNum && ((data?.zztqfreeNum || 0) >= tqFree && tqFree) && (data?.useFreeGuaJiNum || 0) <= freeNum // let notFree = data.useFastGuaJiNum >= freeNum && ((data?.zztqfreeNum || 0) >= tqFree && tqFree) && (data?.useFreeGuaJiNum || 0) <= freeNum
let notFree = (data?.useFreeGuaJiNum || 0) >= freeNum let notFree = (data?.useFreeGuaJiNum || 0) >= freeNum
if (notFree) { if (notFree) {
let num = G.gc.tanxian_com.fastGuaJiNeed[data.useFastGuaJiNum - freeNum ] || 0; let num = G.gc.tanxian_com.fastGuaJiNeed[data.useFastGuaJiNum - freeNum] || 0;
let need = [{ a: 'attr', t: 'rmbmoney', n: num ? num : G.gc.tanxian_com.fastGuaJiNeed[G.gc.tanxian_com.fastGuaJiNeed.length - 1] }]; let need = [{
a: 'attr',
t: 'rmbmoney',
n: num ? num : G.gc.tanxian_com.fastGuaJiNeed[G.gc.tanxian_com.fastGuaJiNeed.length - 1]
}];
await PlayerFun.checkNeedIsMeet(call, need); await PlayerFun.checkNeedIsMeet(call, need);
await PlayerFun.cutNeed(call, need); await PlayerFun.cutNeed(call, need);
} }
@ -36,11 +40,11 @@ export default async function (call: ApiCall<ReqFastGuaJi, ResFastGuaJi>) {
// await event_dldh_addPrize(_p, call, G.gc.tanxian_com.fastGuaJiTime); // await event_dldh_addPrize(_p, call, G.gc.tanxian_com.fastGuaJiTime);
await PlayerFun.sendPrize(call, _p); await PlayerFun.sendPrize(call, _p);
let setData = { useFastGuaJiNum: data.useFastGuaJiNum + 1, useFreeGuaJiNum: (data?.useFreeGuaJiNum || 0) + (notFree ? 0 : 1)} // let setData = { useFastGuaJiNum: data.useFastGuaJiNum + 1, useFreeGuaJiNum: (data?.useFreeGuaJiNum || 0) + (notFree ? 0 : 1)}
if ((data?.zztqfreeNum || 0) < tqFree && tqFree) setData["zztqfreeNum"] = tqFree let setData = {$inc: {useFastGuaJiNum: 1, useFreeGuaJiNum: (notFree ? 0 : 1)}}
TanXianFun.changeData(call, setData); // if ((data?.zztqfreeNum || 0) < tqFree && tqFree) setData["zztqfreeNum"] = tqFree
if ((data?.zztqfreeNum || 0) < tqFree && tqFree) setData["$set"] = {zztqfreeNum: tqFree}
// (await call.conn.gonghui)?.addExp(20, call.uid); await TanXianFun.changeDataNew(call, setData);
HongDianChange.sendChangeKey(call.uid, ['taskhd', 'huodonghd']); HongDianChange.sendChangeKey(call.uid, ['taskhd', 'huodonghd']);

View File

@ -0,0 +1,17 @@
import { ApiCall } from "tsrpc";
import { ReqOpen, ResOpen } from "../../shared/protocols/weiwang/PtlOpen";
export default async function (call: ApiCall<ReqOpen, ResOpen>) {
let data = await G.mongodb.collection("weiwang").findOne({ uid: call.uid });
if (!data) {
// 初始化威望数据
data = (await G.mongodb.collection("weiwang").findOneAndUpdate(
{ uid: call.uid },
{ $set: { hp: 0, atk: 0, def: 0 } },
{ upsert: true, returnDocument: "after" }
)).value;
}
call.succ({ lv: { hp: data.hp, atk: data.atk, def: data.def } });
}

View File

@ -0,0 +1,94 @@
import { ApiCall } from "tsrpc";
import { ReqUpLv, ResUpLv } from "../../shared/protocols/weiwang/PtlUpLv";
import { PlayerFun } from "../../public/player";
export default async function (call: ApiCall<ReqUpLv, ResUpLv>) {
let data = await G.mongodb.collection("weiwang").findOne({ uid: call.uid });
if (!data) {
// 初始化威望数据
data = (await G.mongodb.collection("weiwang").findOneAndUpdate(
{ uid: call.uid },
{ $set: { hp: 0, atk: 0, def: 0 } },
{ upsert: true, returnDocument: "after" }
)).value;
}
let cur_lv = data[call.req.type];
let min_lv = Math.min(data.atk, data.def, data.hp);
let ids = Object.keys(G.gc.renown_level).sort(
(a, b) => Number(a) - Number(b)
);
let config;
for (let id of ids) {
config = G.gc.renown_level[id];
if (min_lv < config.maxlevel) {
break;
}
}
// 超过档期威望的最大等级
if (cur_lv + call.req.lv > config.maxlevel) {
return call.error("", { code: -1, message: lng.weiwang_12 });
}
let need = [{ a: config.cost[0].a, t: config.cost[0].t, n: config.cost[0].n * call.req.lv }];
// 检测消耗是否足够
await PlayerFun.checkNeedIsMeet(call, need);
// 扣除消耗
await PlayerFun.cutNeed(call, need);
data[call.req.type] += call.req.lv;
// 重新计算buff
let buff = calc_weiwang_buff(data.atk, data.def, data.hp);
G.mongodb.collection("weiwang").updateOne({ uid: call.uid }, {
$set: { buff: buff },
$inc: { [call.req.type]: call.req.lv },
});
call.succ({ lv: { hp: data.hp, atk: data.atk, def: data.def } });
}
/**
* buff
*/
function calc_weiwang_buff(atk: number, def: number, hp: number) {
let buff: k_v<number> = {
"hp": 0, "def": 0, "atk": 0
};
let ids = Object.keys(G.gc.renown_level).sort(
(a, b) => Number(a) - Number(b)
);
for (let i = 0; i < ids.length; i++) {
let curr = G.gc.renown_level[ids[i]];
if (i == 0) {
buff["hp"] += curr.hp * Math.min(curr.maxlevel, hp);
buff["atk"] += curr.atk * Math.min(curr.maxlevel, atk);
buff["def"] += curr.def * Math.min(curr.maxlevel, def);
} else {
let prev = G.gc.renown_level[ids[i - 1]];
if (hp > prev.maxlevel) {
buff["hp"] += curr.hp * Math.min(hp - prev.maxlevel, curr.maxlevel - prev.maxlevel);
}
if (atk > prev.maxlevel) {
buff["atk"] += curr.atk * Math.min(atk - prev.maxlevel, curr.maxlevel - prev.maxlevel);
}
if (def > prev.maxlevel) {
buff["def"] += curr.def * Math.min(def - prev.maxlevel, curr.maxlevel - prev.maxlevel);
}
}
}
return buff;
}

View File

@ -1,9 +1,10 @@
import { ApiCall } from "tsrpc"; import {ApiCall} from "tsrpc";
import { HeroFun } from '../../public/hero'; import { addGameLog } from "../../gameLog";
import { XstaskFun } from '../../public/xstask'; import {HeroFun} from '../../public/hero';
import { ReqOnekeyReceive, ResOnekeyReceive } from "../../shared/protocols/xstask/PtlOnekeyReceive"; import {XstaskFun} from '../../public/xstask';
import { HeroShared } from '../../shared/public/hero'; import {ReqOnekeyReceive, ResOnekeyReceive} from "../../shared/protocols/xstask/PtlOnekeyReceive";
import { HongDianChange } from "../hongdian/fun"; import {HeroShared} from '../../shared/public/hero';
import {HongDianChange} from "../hongdian/fun";
export default async function (call: ApiCall<ReqOnekeyReceive, ResOnekeyReceive>) { export default async function (call: ApiCall<ReqOnekeyReceive, ResOnekeyReceive>) {
@ -33,7 +34,9 @@ export default async function (call: ApiCall<ReqOnekeyReceive, ResOnekeyReceive>
if (heroList.length != heroIds.length) return call.error(globalThis.lng.xstask_6); if (heroList.length != heroIds.length) return call.error(globalThis.lng.xstask_6);
let change: ResOnekeyReceive = {}; let change: ResOnekeyReceive = {};
let lockNum = event?.receiveNum || 0
for (let receive of args) { for (let receive of args) {
if (lockNum >= 8) continue
let task = taskList.find(task => task._id == receive._id); let task = taskList.find(task => task._id == receive._id);
let taskConf = G.gc.xstask[task.taskId]; let taskConf = G.gc.xstask[task.taskId];
@ -43,8 +46,9 @@ export default async function (call: ApiCall<ReqOnekeyReceive, ResOnekeyReceive>
let star = heros.map(h => G.gc.hero[h.heroId].star).reduce((a, b) => a + b); let star = heros.map(h => G.gc.hero[h.heroId].star).reduce((a, b) => a + b);
if (star < taskConf.needStar) return call.error(globalThis.lng.xstask_8); if (star < taskConf.needStar) return call.error(globalThis.lng.xstask_8);
change[receive._id] = { time: G.time, heros: receive.heroIds }; change[receive._id] = {time: G.time, heros: receive.heroIds};
XstaskFun.receiveNum(call.uid) XstaskFun.receiveNum(call.uid)
lockNum += 1
} }
Object.entries(change).forEach(([k, v]) => { Object.entries(change).forEach(([k, v]) => {
@ -53,4 +57,6 @@ export default async function (call: ApiCall<ReqOnekeyReceive, ResOnekeyReceive>
HongDianChange.sendChangeKey(call.uid, ['xstaskhd', 'huodonghd']); HongDianChange.sendChangeKey(call.uid, ['xstaskhd', 'huodonghd']);
call.succ(change); call.succ(change);
addGameLog(call.uid, "_onekeyReceive", {}, change)
} }

View File

@ -1319,6 +1319,20 @@ export const serviceProto: ServiceProto<ServiceType> = {
}, },
{ {
"id": 38, "id": 38,
"name": "weiwangbuff",
"type": {
"type": "Interface",
"indexSignature": {
"keyType": "String",
"type": {
"type": "Number"
}
}
},
"optional": true
},
{
"id": 39,
"name": "heroskin", "name": "heroskin",
"type": { "type": {
"type": "Interface", "type": "Interface",
@ -1725,9 +1739,23 @@ export const serviceProto: ServiceProto<ServiceType> = {
{ {
"id": 8, "id": 8,
"name": "skin", "name": "skin",
"type": {
"type": "Union",
"members": [
{
"id": 0,
"type": { "type": {
"type": "String" "type": "String"
} }
},
{
"id": 1,
"type": {
"type": "Number"
}
}
]
}
} }
] ]
}, },

View File

@ -11,6 +11,7 @@ export class Encrypt {
if (buf instanceof Uint8Array) { if (buf instanceof Uint8Array) {
return decryptUint8Array(buf); return decryptUint8Array(buf);
} }
return buf; return buf;
} }
} }

View File

@ -1,3 +1,4 @@
import 'tsrpc'; import 'tsrpc';
import { ApiCall, BaseConnection, ConnectionStatus, WsServer } from 'tsrpc'; import { ApiCall, BaseConnection, ConnectionStatus, WsServer } from 'tsrpc';
import { Wjjl } from './module/collection_wjjl'; import { Wjjl } from './module/collection_wjjl';
@ -13,7 +14,7 @@ import { ResLogin } from './shared/protocols/user/PtlLogin';
import { HeroShared, otherBuff } from './shared/public/hero'; import { HeroShared, otherBuff } from './shared/public/hero';
import { PlayerShared } from './shared/public/player'; import { PlayerShared } from './shared/public/player';
import { PublicShared } from './shared/public/public'; import { PublicShared } from './shared/public/public';
import {RankKfjs} from "./public/rank/rank_kfjs"; import { RankKfjs } from "./public/rank/rank_kfjs";
import { setGud } from './public/gud'; import { setGud } from './public/gud';
export function extendType() { export function extendType() {
@ -51,7 +52,7 @@ declare module 'tsrpc' {
/**API 锁 */ /**API 锁 */
apiLock: k_v<number>; apiLock: k_v<number>;
/**获取默认上阵战斗数据 */ /**获取默认上阵战斗数据 */
getDefaultFightData(def?: k_v<string>): Promise<joinFightData>; getDefaultFightData(def?: k_v<string>, ext_buff?: { [type: string]: k_v<number> }): Promise<joinFightData>;
/**刷新上阵英雄战力 */ /**刷新上阵英雄战力 */
refreshPower(): Promise<any>; refreshPower(): Promise<any>;
/**玩家计算在线时长时间戳 */ /**玩家计算在线时长时间戳 */
@ -124,7 +125,7 @@ Object.defineProperties(BaseConnection.prototype, {
}, },
}); });
BaseConnection.prototype.getDefaultFightData = async function (this: BaseConnection, def?: k_v<string>) { BaseConnection.prototype.getDefaultFightData = async function (this: BaseConnection, def?: k_v<string>, ext_buff?: { [type: string]: k_v<number> }) {
let posObj = def || this.heroPos; let posObj = def || this.heroPos;
let roles: k_v<roleDataType> = {}; let roles: k_v<roleDataType> = {};
@ -132,7 +133,7 @@ BaseConnection.prototype.getDefaultFightData = async function (this: BaseConnect
posObj = this.gud.matrixPos[this.gud.selectMatrix]; posObj = this.gud.matrixPos[this.gud.selectMatrix];
} }
let heros = await HeroFun.getHeros(this, Object.values(posObj).filter(_id => _id != '') as string[]); let heros = await HeroFun.getHeros(this, Object.values(posObj).filter(_id => _id != ''));
Object.entries(posObj).forEach(obj => { Object.entries(posObj).forEach(obj => {
let pos = obj[0]; let pos = obj[0];
@ -143,7 +144,11 @@ BaseConnection.prototype.getDefaultFightData = async function (this: BaseConnect
roles[pos] = { roles[pos] = {
...hero, ...hero,
attr: { attr: {
...HeroShared.getHeroBasicAttr(hero, { ...this.otherBuff, allBuff: HeroShared.getAllBuff(heros) }, Number(pos)) ...HeroShared.getHeroBasicAttr(hero, {
...ext_buff,
...this.otherBuff,
allBuff: HeroShared.getAllBuff(heros)
}, Number(pos))
} }
}; };
} }
@ -194,34 +199,34 @@ BaseConnection.prototype.refreshPower = async function (this: BaseConnection<Ser
zjBuff.zj_liliang += PublicShared.eval(G.gc.com.zjcz_liliang.value as any as string, { lv: this.gud.lv }) zjBuff.zj_liliang += PublicShared.eval(G.gc.com.zjcz_liliang.value as any as string, { lv: this.gud.lv })
zjBuff.zj_zhishi += PublicShared.eval(G.gc.com.zjcz_zhishi.value as any as string, { lv: this.gud.lv }) zjBuff.zj_zhishi += PublicShared.eval(G.gc.com.zjcz_zhishi.value as any as string, { lv: this.gud.lv })
// 图鉴属性获取 // 图鉴属性获取
for(let i = 1; i <= this.gud.tujianLv; i++) { for (let i = 1; i <= this.gud.tujianLv; i++) {
let item = G.gc.tujian_jc[i] let item = G.gc.tujian_jc[i]
if(item) { if (item) {
// 各等级累加 // 各等级累加
for(let k in item.buff) { for (let k in item.buff) {
zjBuff[k] += item.buff[k] zjBuff[k] += item.buff[k]
} }
} }
} }
// 名望属性加成 // 名望属性加成
if(this.gud.renown > 0) { if (this.gud.renown > 0) {
let mwConf = G.gc.mw_dj let mwConf = G.gc.mw_dj
// 各等级累加 // 各等级累加
for(let i = 1; i <= this.gud.renown; i++) { for (let i = 1; i <= this.gud.renown; i++) {
let mwData = mwConf[i] let mwData = mwConf[i]
for(let k in mwData.buff) { for (let k in mwData.buff) {
zjBuff[k] += mwData.buff[k] zjBuff[k] += mwData.buff[k]
} }
} }
} }
// 训练计划加成 // 训练计划加成
let skillConf = G.gc.xunlianjihua let skillConf = G.gc.xunlianjihua
if(this.gud.skills) { if (this.gud.skills) {
for(let i in this.gud.skills) { for (let i in this.gud.skills) {
let item = skillConf[i] let item = skillConf[i]
for(let j in zjBuff) { for (let j in zjBuff) {
if((j + 'pro') == item.skill) { if ((j + 'pro') == item.skill) {
zjBuff[j] += Math.floor(zjBuff[j] * PublicShared.eval(item.v, { slv: this.gud.skills[i]})) zjBuff[j] += Math.floor(zjBuff[j] * PublicShared.eval(item.v, { slv: this.gud.skills[i] }))
} }
} }
} }
@ -238,14 +243,14 @@ BaseConnection.prototype.refreshPower = async function (this: BaseConnection<Ser
// console.log(zjBuff) // console.log(zjBuff)
if (power != this.gud.power) { if (power != this.gud.power) {
let dbUpdate = { power: power }; let dbUpdate = { power: power };
if(power > this.gud?.maxpower){ if (power > this.gud?.maxpower) {
//记录历史最大战力 //记录历史最大战力
//this.gud.maxpower = power; //this.gud.maxpower = power;
dbUpdate['maxpower'] = power; dbUpdate['maxpower'] = power;
} }
//this.gud.power = power; //this.gud.power = power;
setGud(this.uid,dbUpdate); setGud(this.uid, dbUpdate);
G.mongodb.collection('user').updateOne({ uid: this.uid }, { $set: dbUpdate }); G.mongodb.collection('user').updateOne({ uid: this.uid }, { $set: dbUpdate });
this.sendMsg('msg_s2c/PlayerChange', dbUpdate); this.sendMsg('msg_s2c/PlayerChange', dbUpdate);
@ -310,9 +315,9 @@ ApiCall.prototype.addEventMsg = function (this: ApiCall) {
if (!this.eventMsg[msgName][msgKey]) this.eventMsg[msgName][msgKey] = {}; if (!this.eventMsg[msgName][msgKey]) this.eventMsg[msgName][msgKey] = {};
PublicShared.mergeProperty(this.eventMsg[msgName][msgKey], msg); PublicShared.mergeProperty(this.eventMsg[msgName][msgKey], msg);
} else { } else {
if(doubleApi.includes(this.service?.name) && this.service?.type=='api'&& Object.keys(this.eventMsg[msgName])[0]==Object.keys(msgKey)[0]){ if (doubleApi.includes(this.service?.name) && this.service?.type == 'api' && Object.keys(this.eventMsg[msgName])[0] == Object.keys(msgKey)[0]) {
this.eventMsg[msgName] = msgKey this.eventMsg[msgName] = msgKey
}else { } else {
PublicShared.mergeProperty(this.eventMsg[msgName], msgKey); PublicShared.mergeProperty(this.eventMsg[msgName], msgKey);
} }
} }

View File

@ -0,0 +1,679 @@
import {patchInit} from "../patch";
// import {addGameLog, connGameLogDB} from "../gameLog";
import {MongoClient} from "mongodb";
class Path {
async fun1(a: any) {
hdlist.map(i => {
// @ts-ignore
G.mongodb.collection('hdinfo').updateOne({hdid: i.hdid}, {$set: i}, {upsert: true})
})
}
async run() {
await this.fun1(1);
}
}
async function main() {
await patchInit()
let patch = new Path();
await patch.run();
console.log("逻辑执行完成,等待退出");
setTimeout(function () {
console.log('结束程序');
process.exit();
}, 3000);
}
main();
let hdlist = [
{
"hdid": 102, // 唯一活动id 人才计划
"htype": 1, // 后端唯一识别标识1养成目标
"stype": 101, // 前端唯一识别标识(看前端需要是否修改)
"ttype": 0, // 0 按照开服时间计算1 玩家注册时间计算 4 屏蔽此活动
"stime": 28, // 活动开始天数
"rtime": 35, // 活动显示结束天数
"etime": 35, // 活动实际结束
"name": "intr_ychd_title_3",
"icon": "dfry_rcjh",
"showtime": "仅供参考,会复写正确值",
"data": {
//轮数抽卡 mfmid 168318
//活动文本描述 0-每日登录 1-每日任务 2-活动任务 3-一次性任务 4-活动商店
intr2: 'intr_yczm_tips_3',
intr4: 'intr_yczm_tips_4',
//活动名称
name: 'intr_ychd_title_3',
//活动icon
icon: 'icon_ydlb',
//页签名称 0-每日登录 1-每日任务 2-活动任务 3-一次性任务 4-活动商店
tab2: 'intr_ychd_tab_name_4',
tab4: 'intr_ychd_tab_name_5',
//界面跳转 0-每日登录 1-每日任务 2-活动任务 3-一次性任务 4-活动商店
'2': '9',
//礼包
gift: [
{
index: 0,
need: [{'a': 'attr', t: 'rmbmoney', 'n': 0}],
free: true,
payId: '',
buyNum: 1,
prize: [{'a': 'item', 't': '4', 'n': 5}]
},
{
index: 1,
need: [],
free: false,
payId: 'ycmb_2_1',
buyNum: 1,
prize: [{'a': 'attr', 't': 'rmbmoney', 'n': 300}, {
'a': 'attr',
't': 'rmbmoney',
'n': 300
}, {'a': 'item', 't': '4', 'n': 5}, {'a': 'item', 't': '4', 'n': 5}]
},
{
index: 2,
need: [],
free: false,
payId: 'ycmb_2_2',
buyNum: 1,
prize: [{'a': 'attr', 't': 'rmbmoney', 'n': 680}, {
'a': 'attr',
't': 'rmbmoney',
'n': 680
}, {'a': 'item', 't': '4', 'n': 10}, {'a': 'item', 't': '4', 'n': 10}]
},
{
index: 3,
need: [],
free: false,
payId: 'ycmb_2_3',
buyNum: 1,
prize: [{'a': 'attr', 't': 'rmbmoney', 'n': 1280}, {
'a': 'attr',
't': 'rmbmoney',
'n': 1280
}, {'a': 'item', 't': '4', 'n': 25}, {'a': 'item', 't': '4', 'n': 25}]
},
{
index: 4,
need: [],
free: false,
payId: 'ycmb_2_4',
buyNum: 3,
prize: [{'a': 'attr', 't': 'rmbmoney', 'n': 3280}, {
'a': 'attr',
't': 'rmbmoney',
'n': 3280
}, {'a': 'item', 't': '4', 'n': 50}, {'a': 'item', 't': '4', 'n': 50}]
},
{
index: 4,
need: [],
free: false,
payId: 'ycmb_2_5',
buyNum: 10,
prize: [{'a': 'attr', 't': 'rmbmoney', 'n': 6480}, {
'a': 'attr',
't': 'rmbmoney',
'n': 6480
}, {'a': 'item', 't': '4', 'n': 100}, {'a': 'item', 't': '4', 'n': 100}]
}
],
//任务相关 type 1 每日任务(每天刷新) 2 活动任务(轮数) 3 每日登录 4-一次性任务 任务hdid一定要唯一
maxlun: [[2], 5],
tasklist: {
'2': {
'2001': {
'prize': [{'a': 'item', 't': '4', 'n': 5}, {'a': 'item', 't': '626', 'n': 10}],
'tujing': '',
'title': 'intr_yczm_day_des_2',
'type': 2,
'pval': 50,
'cond': [],
'stype': 118
},
'2002': {
'prize': [{'a': 'item', 't': '4', 'n': 5}, {'a': 'item', 't': '626', 'n': 10}],
'tujing': '',
'title': 'intr_yczm_day_des_2',
'type': 2,
'pval': 100,
'cond': [],
'stype': 118
},
'2003': {
'prize': [{'a': 'item', 't': '4', 'n': 10}, {'a': 'item', 't': '600', 'n': 20}],
'tujing': '',
'title': 'intr_yczm_day_des_2',
'type': 2,
'pval': 200,
'cond': [],
'stype': 118
},
'2004': {
'prize': [{'a': 'item', 't': '4', 'n': 10}, {'a': 'item', 't': '600', 'n': 20}],
'tujing': '',
'title': 'intr_yczm_day_des_2',
'type': 2,
'pval': 250,
'cond': [],
'stype': 118
},
'2005': {
'prize': [{'a': 'item', 't': '4', 'n': 10}, {'a': 'item', 't': '600', 'n': 20}],
'tujing': '',
'title': 'intr_yczm_day_des_2',
'type': 2,
'pval': 300,
'cond': [],
'stype': 118
},
'2006': {
'prize': [{'a': 'item', 't': '4', 'n': 10}, {'a': 'item', 't': '619', 'n': 1}],
'tujing': '',
'title': 'intr_yczm_day_des_2',
'type': 2,
'pval': 400,
'cond': [],
'stype': 118
},
'2007': {
'prize': [{'a': 'item', 't': '4', 'n': 10}, {'a': 'item', 't': '619', 'n': 1}],
'tujing': '',
'title': 'intr_yczm_day_des_2',
'type': 2,
'pval': 500,
'cond': [],
'stype': 118
}
}
}
}
},
{
"hdid": 103, // 唯一活动id 人才计划
"htype": 1, // 后端唯一识别标识1养成目标
"stype": 101, // 前端唯一识别标识(看前端需要是否修改)
"ttype": 0, // 0 按照开服时间计算1 玩家注册时间计算 4 屏蔽此活动
"stime": 42, // 活动开始天数
"rtime": 49, // 活动显示结束天数
"etime": 49, // 活动实际结束
"name": "intr_ychd_title_3",
"icon": "dfry_rcjh",
"showtime": "仅供参考,会复写正确值",
"data": {
//轮数抽卡 mfmid 168318
//活动文本描述 0-每日登录 1-每日任务 2-活动任务 3-一次性任务 4-活动商店
intr2: 'intr_yczm_tips_3',
intr4: 'intr_yczm_tips_4',
//活动名称
name: 'intr_ychd_title_3',
//活动icon
icon: 'icon_ydlb',
//页签名称 0-每日登录 1-每日任务 2-活动任务 3-一次性任务 4-活动商店
tab2: 'intr_ychd_tab_name_4',
tab4: 'intr_ychd_tab_name_5',
//界面跳转 0-每日登录 1-每日任务 2-活动任务 3-一次性任务 4-活动商店
'2': '9',
//礼包
gift: [
{
index: 0,
need: [{'a': 'attr', t: 'rmbmoney', 'n': 0}],
free: true,
payId: '',
buyNum: 1,
prize: [{'a': 'item', 't': '4', 'n': 5}]
},
{
index: 1,
need: [],
free: false,
payId: 'ycmb_2_1',
buyNum: 1,
prize: [{'a': 'attr', 't': 'rmbmoney', 'n': 300}, {
'a': 'attr',
't': 'rmbmoney',
'n': 300
}, {'a': 'item', 't': '4', 'n': 5}, {'a': 'item', 't': '4', 'n': 5}]
},
{
index: 2,
need: [],
free: false,
payId: 'ycmb_2_2',
buyNum: 1,
prize: [{'a': 'attr', 't': 'rmbmoney', 'n': 680}, {
'a': 'attr',
't': 'rmbmoney',
'n': 680
}, {'a': 'item', 't': '4', 'n': 10}, {'a': 'item', 't': '4', 'n': 10}]
},
{
index: 3,
need: [],
free: false,
payId: 'ycmb_2_3',
buyNum: 1,
prize: [{'a': 'attr', 't': 'rmbmoney', 'n': 1280}, {
'a': 'attr',
't': 'rmbmoney',
'n': 1280
}, {'a': 'item', 't': '4', 'n': 25}, {'a': 'item', 't': '4', 'n': 25}]
},
{
index: 4,
need: [],
free: false,
payId: 'ycmb_2_4',
buyNum: 3,
prize: [{'a': 'attr', 't': 'rmbmoney', 'n': 3280}, {
'a': 'attr',
't': 'rmbmoney',
'n': 3280
}, {'a': 'item', 't': '4', 'n': 50}, {'a': 'item', 't': '4', 'n': 50}]
},
{
index: 4,
need: [],
free: false,
payId: 'ycmb_2_5',
buyNum: 10,
prize: [{'a': 'attr', 't': 'rmbmoney', 'n': 6480}, {
'a': 'attr',
't': 'rmbmoney',
'n': 6480
}, {'a': 'item', 't': '4', 'n': 100}, {'a': 'item', 't': '4', 'n': 100}]
}
],
//任务相关 type 1 每日任务(每天刷新) 2 活动任务(轮数) 3 每日登录 4-一次性任务 任务hdid一定要唯一
maxlun: [[2], 5],
tasklist: {
'2': {
'2001': {
'prize': [{'a': 'item', 't': '4', 'n': 5}, {'a': 'item', 't': '626', 'n': 10}],
'tujing': '',
'title': 'intr_yczm_day_des_2',
'type': 2,
'pval': 50,
'cond': [],
'stype': 118
},
'2002': {
'prize': [{'a': 'item', 't': '4', 'n': 5}, {'a': 'item', 't': '626', 'n': 10}],
'tujing': '',
'title': 'intr_yczm_day_des_2',
'type': 2,
'pval': 100,
'cond': [],
'stype': 118
},
'2003': {
'prize': [{'a': 'item', 't': '4', 'n': 10}, {'a': 'item', 't': '600', 'n': 20}],
'tujing': '',
'title': 'intr_yczm_day_des_2',
'type': 2,
'pval': 200,
'cond': [],
'stype': 118
},
'2004': {
'prize': [{'a': 'item', 't': '4', 'n': 10}, {'a': 'item', 't': '600', 'n': 20}],
'tujing': '',
'title': 'intr_yczm_day_des_2',
'type': 2,
'pval': 250,
'cond': [],
'stype': 118
},
'2005': {
'prize': [{'a': 'item', 't': '4', 'n': 10}, {'a': 'item', 't': '600', 'n': 20}],
'tujing': '',
'title': 'intr_yczm_day_des_2',
'type': 2,
'pval': 300,
'cond': [],
'stype': 118
},
'2006': {
'prize': [{'a': 'item', 't': '4', 'n': 10}, {'a': 'item', 't': '619', 'n': 1}],
'tujing': '',
'title': 'intr_yczm_day_des_2',
'type': 2,
'pval': 400,
'cond': [],
'stype': 118
},
'2007': {
'prize': [{'a': 'item', 't': '4', 'n': 10}, {'a': 'item', 't': '619', 'n': 1}],
'tujing': '',
'title': 'intr_yczm_day_des_2',
'type': 2,
'pval': 500,
'cond': [],
'stype': 118
}
}
}
}
},
{
"hdid": 2002, // 唯一活动id 掉落兑换活动
"htype": 2, // 后端唯一识别标识
"stype": 200, // 前端唯一识别标识(看前端需要是否修改)
"ttype": 1, // 0 按照开服时间计算1 玩家注册时间计算 4 屏蔽此活动
"stime": 35, // 活动开始天数
"rtime": 42, // 活动显示结束天数
"etime": 42, // 活动实际结束
"name": "diaoluoduihuan",
"icon": "icon_ywtx",
"showtime": "仅供参考,会复写正确值",
"data": {
//对应mfm 14701
diaoluo: [
//掉落的物品
{
a: 'item',
t: '50',
n: 4,
p: 10,
s: 3600
}
],
tiaozhuan: 3,
event: {
itemId: '50',
duihuan: [
{need: [{a: 'item', t: '50', n: 6000}], prize: [{a: 'item', t: '610', n: 1}], num: 2},
{
need: [{a: 'item', t: '50', n: 3500}],
prize: [{a: 'item', t: '600', n: 80}, {a: 'item', t: '12', n: 20000}],
num: 4
},
{
need: [{a: 'item', t: '50', n: 1200}],
prize: [{a: 'item', t: '600', n: 20}, {a: 'item', t: '609', n: 1}, {a: 'item', t: '4', n: 20}],
num: 1
},
{
need: [{a: 'item', t: '50', n: 1500}],
prize: [{a: 'item', t: '611', n: 1}, {a: 'item', t: '624', n: 50}],
num: 1
},
{need: [{a: 'item', t: '50', n: 350}], prize: [{a: 'item', t: '607', n: 20}], num: 1},
{need: [{a: 'item', t: '50', n: 350}], prize: [{a: 'item', t: '600', n: 5}], num: 1},
{need: [{a: 'item', t: '50', n: 100}], prize: [{a: 'item', t: '4', n: 1}], num: 99},
{need: [{a: 'item', t: '50', n: 10}], prize: [{a: 'item', t: '12', n: 25}], num: 99},
{need: [{a: 'item', t: '50', n: 2}], prize: [{a: 'item', t: '2', n: 10}], num: 99},
],
shop: [
{
need: [{a: 'attr', t: 'rmbmoney', n: 0}],
prize: [{a: 'attr', t: 'rmbmoney', n: 500}],
num: 1,
free: true
},
{
need: [{a: 'attr', t: 'rmbmoney', n: 800}],
prize: [{a: 'item', t: '4', n: 5}, {a: 'item', t: '2', n: 1000}],
num: 1,
free: false
},
{
need: [{a: 'attr', t: 'rmbmoney', n: 2250}],
prize: [{a: 'item', t: '4', n: 10}, {a: 'item', t: '12', n: 2000}],
num: 1,
free: false
},
{
need: [{a: 'attr', t: 'rmbmoney', n: 3000}],
prize: [{a: 'item', t: '12', n: 6000}],
num: 1,
free: false
},
{
need: [{a: 'attr', t: 'rmbmoney', n: 3000}],
prize: [{a: 'item', t: '2', n: 12000}],
num: 3,
free: false
},
{
need: [{a: 'attr', t: 'rmbmoney', n: 3000}],
prize: [{a: 'item', t: '9', n: 6000}],
num: 3,
free: false
},
{
need: [{a: 'attr', t: 'rmbmoney', n: 3000}],
prize: [{a: 'item', t: '10', n: 300}],
num: 3,
free: false
},
{
need: [{a: 'attr', t: 'rmbmoney', n: 3000}],
prize: [{a: 'item', t: '612', n: 20}],
num: 3,
free: false
},
{
need: [{a: 'attr', t: 'rmbmoney', n: 20000}],
prize: [{a: 'item', t: '607', n: 40}, {a: 'item', t: '600', n: 40}],
num: 4,
free: false
},
{
need: [{a: 'attr', t: 'rmbmoney', n: 3000}],
prize: [{a: 'item', t: '624', n: 20}],
num: 3,
free: false
},
{
need: [{a: 'attr', t: 'rmbmoney', n: 3000}],
prize: [{a: 'item', t: '629', n: 20}],
num: 3,
free: false
},
],
gift: [
{
payId: '',
num: 1,
prize: [{a: 'item', t: '50', n: 20}, {a: 'attr', t: 'rmbmoney', n: 200}],
free: true
},
{
payId: 'duihuan_1_1',
prize: [{a: 'item', t: '50', n: 50}, {a: 'attr', t: 'rmbmoney', n: 600}],
free: false
},
{
payId: 'duihuan_1_2',
prize: [{a: 'item', t: '50', n: 100}, {a: 'attr', t: 'rmbmoney', n: 1360}],
free: false
},
{
payId: 'duihuan_1_3',
prize: [{a: 'item', t: '50', n: 200}, {a: 'attr', t: 'rmbmoney', n: 2560}],
free: false
},
{
payId: 'duihuan_1_4',
prize: [{a: 'item', t: '50', n: 600}, {a: 'attr', t: 'rmbmoney', n: 6560}],
free: false
},
{
payId: 'duihuan_1_5',
prize: [{a: 'item', t: '50', n: 1200}, {a: 'attr', t: 'rmbmoney', n: 12960}],
free: false
},
]
}
}
},
{
"hdid": 2003, // 唯一活动id 掉落兑换活动
"htype": 2, // 后端唯一识别标识
"stype": 200, // 前端唯一识别标识(看前端需要是否修改)
"ttype": 1, // 0 按照开服时间计算1 玩家注册时间计算 4 屏蔽此活动
"stime": 49, // 活动开始天数
"rtime": 56, // 活动显示结束天数
"etime": 56, // 活动实际结束
"name": "diaoluoduihuan",
"icon": "icon_ywtx",
"showtime": "仅供参考,会复写正确值",
"data": {
//对应mfm 14701
diaoluo: [
//掉落的物品
{
a: 'item',
t: '50',
n: 4,
p: 10,
s: 3600
}
],
tiaozhuan: 3,
event: {
itemId: '50',
duihuan: [
{need: [{a: 'item', t: '50', n: 6000}], prize: [{a: 'item', t: '610', n: 1}], num: 2},
{
need: [{a: 'item', t: '50', n: 3500}],
prize: [{a: 'item', t: '600', n: 80}, {a: 'item', t: '12', n: 20000}],
num: 4
},
{
need: [{a: 'item', t: '50', n: 1200}],
prize: [{a: 'item', t: '600', n: 20}, {a: 'item', t: '609', n: 1}, {a: 'item', t: '4', n: 20}],
num: 1
},
{
need: [{a: 'item', t: '50', n: 1500}],
prize: [{a: 'item', t: '611', n: 1}, {a: 'item', t: '624', n: 50}],
num: 1
},
{need: [{a: 'item', t: '50', n: 350}], prize: [{a: 'item', t: '607', n: 20}], num: 1},
{need: [{a: 'item', t: '50', n: 350}], prize: [{a: 'item', t: '600', n: 5}], num: 1},
{need: [{a: 'item', t: '50', n: 100}], prize: [{a: 'item', t: '4', n: 1}], num: 99},
{need: [{a: 'item', t: '50', n: 10}], prize: [{a: 'item', t: '12', n: 25}], num: 99},
{need: [{a: 'item', t: '50', n: 2}], prize: [{a: 'item', t: '2', n: 10}], num: 99},
],
shop: [
{
need: [{a: 'attr', t: 'rmbmoney', n: 0}],
prize: [{a: 'attr', t: 'rmbmoney', n: 500}],
num: 1,
free: true
},
{
need: [{a: 'attr', t: 'rmbmoney', n: 800}],
prize: [{a: 'item', t: '4', n: 5}, {a: 'item', t: '2', n: 1000}],
num: 1,
free: false
},
{
need: [{a: 'attr', t: 'rmbmoney', n: 2250}],
prize: [{a: 'item', t: '4', n: 10}, {a: 'item', t: '12', n: 2000}],
num: 1,
free: false
},
{
need: [{a: 'attr', t: 'rmbmoney', n: 3000}],
prize: [{a: 'item', t: '12', n: 6000}],
num: 1,
free: false
},
{
need: [{a: 'attr', t: 'rmbmoney', n: 3000}],
prize: [{a: 'item', t: '2', n: 12000}],
num: 3,
free: false
},
{
need: [{a: 'attr', t: 'rmbmoney', n: 3000}],
prize: [{a: 'item', t: '9', n: 6000}],
num: 3,
free: false
},
{
need: [{a: 'attr', t: 'rmbmoney', n: 3000}],
prize: [{a: 'item', t: '10', n: 300}],
num: 3,
free: false
},
{
need: [{a: 'attr', t: 'rmbmoney', n: 3000}],
prize: [{a: 'item', t: '612', n: 20}],
num: 3,
free: false
},
{
need: [{a: 'attr', t: 'rmbmoney', n: 20000}],
prize: [{a: 'item', t: '607', n: 40}, {a: 'item', t: '600', n: 40}],
num: 4,
free: false
},
{
need: [{a: 'attr', t: 'rmbmoney', n: 3000}],
prize: [{a: 'item', t: '624', n: 20}],
num: 3,
free: false
},
{
need: [{a: 'attr', t: 'rmbmoney', n: 3000}],
prize: [{a: 'item', t: '629', n: 20}],
num: 3,
free: false
},
],
gift: [
{
payId: '',
num: 1,
prize: [{a: 'item', t: '50', n: 20}, {a: 'attr', t: 'rmbmoney', n: 200}],
free: true
},
{
payId: 'duihuan_1_1',
prize: [{a: 'item', t: '50', n: 50}, {a: 'attr', t: 'rmbmoney', n: 600}],
free: false
},
{
payId: 'duihuan_1_2',
prize: [{a: 'item', t: '50', n: 100}, {a: 'attr', t: 'rmbmoney', n: 1360}],
free: false
},
{
payId: 'duihuan_1_3',
prize: [{a: 'item', t: '50', n: 200}, {a: 'attr', t: 'rmbmoney', n: 2560}],
free: false
},
{
payId: 'duihuan_1_4',
prize: [{a: 'item', t: '50', n: 600}, {a: 'attr', t: 'rmbmoney', n: 6560}],
free: false
},
{
payId: 'duihuan_1_5',
prize: [{a: 'item', t: '50', n: 1200}, {a: 'attr', t: 'rmbmoney', n: 12960}],
free: false
},
]
}
}
},
]

View File

@ -0,0 +1,98 @@
import { log } from "console";
import { patchFun, patchInit } from "../patch";
import { TanXianFun } from "../public/tanxian";
import { PublicShared } from "../shared/public/public";
class Path {
async fun1(a: any) {
let hd = [{
"hdid": 3001, // 唯一活动id 传说之路
"htype": 3, // 后端唯一识别标识
"stype": 300, // 前端唯一识别标识(看前端需要是否修改)
"ttype": 1, // 0 按照开服时间计算1 玩家注册时间计算 4 屏蔽此活动
"stime": 30, // 活动开始天数
"rtime": 60, // 活动显示结束天数
"etime": 60, // 活动实际结束
"name": "xinfupeiyang",
"icon": "icon_qiridenglu",
"showtime": "仅供参考,会复写正确值",
"data": {
//干部id
hid: '5002',
//任务
task: [
{ idx: 0, total: 80, type: 'lv', prize: [{ a: 'item', t: '1', n: 500000 }], des: 'intr_cszl_des_2' },
{ idx: 1, total: 4, type: 'jieji', prize: [{ a: 'item', t: '12', n: 500 }], des: 'intr_cszl_des_1' },
{ idx: 2, total: 120, type: 'lv', prize: [{ a: 'item', t: '1', n: 500000 }], des: 'intr_cszl_des_2' },
{ idx: 3, total: 5, type: 'jieji', prize: [{ a: 'item', t: '12', n: 1000 }], des: 'intr_cszl_des_1' },
{ idx: 4, total: 160, type: 'lv', prize: [{ a: 'item', t: '1', n: 800000 }], des: 'intr_cszl_des_2' },
{ idx: 5, total: 6, type: 'jieji', prize: [{ a: 'item', t: '12', n: 1500 }], des: 'intr_cszl_des_1' },
{ idx: 6, total: 200, type: 'lv', prize: [{ a: 'item', t: '1', n: 1200000 }], des: 'intr_cszl_des_2' },
{ idx: 7, total: 7, type: 'jieji', prize: [{ a: 'item', t: '12', n: 2000 }], des: 'intr_cszl_des_1' },
{ idx: 8, total: 240, type: 'lv', prize: [{ a: 'item', t: '1', n: 2000000 }], des: 'intr_cszl_des_2' },
{ idx: 9, total: 8, type: 'jieji', prize: [{ a: 'item', t: '5002', n: 20 }], des: 'intr_cszl_des_1' }
],
//宝箱
box: { total: 10, prize: [{ a: 'item', t: '610', n: 1 }] }
}
},
{
"hdid": 3002, // 唯一活动id 传说之路 心腹培养
"htype": 3, // 后端唯一识别标识
"stype": 300, // 前端唯一识别标识(看前端需要是否修改)
"ttype": 1, // 0 按照开服时间计算1 玩家注册时间计算 4 屏蔽此活动
"stime": 60, // 活动开始天数
"rtime": 90, // 活动显示结束天数
"etime": 90, // 活动实际结束
"name": "xinfupeiyang",
"icon": "icon_xfdj",
"showtime": "仅供参考,会复写正确值",
"data": {
//干部id
hid: '5004',
//任务
task: [
{ idx: 0, total: 100, type: 'lv', prize: [{ a: 'item', t: '1', n: 500000 }], des: 'intr_cszl_des_2' },
{ idx: 1, total: 5, type: 'jieji', prize: [{ a: 'item', t: '12', n: 500 }], des: 'intr_cszl_des_1' },
{ idx: 2, total: 140, type: 'lv', prize: [{ a: 'item', t: '1', n: 500000 }], des: 'intr_cszl_des_2' },
{ idx: 3, total: 6, type: 'jieji', prize: [{ a: 'item', t: '12', n: 1000 }], des: 'intr_cszl_des_1' },
{ idx: 4, total: 180, type: 'lv', prize: [{ a: 'item', t: '1', n: 800000 }], des: 'intr_cszl_des_2' },
{ idx: 5, total: 7, type: 'jieji', prize: [{ a: 'item', t: '12', n: 1500 }], des: 'intr_cszl_des_1' },
{ idx: 6, total: 220, type: 'lv', prize: [{ a: 'item', t: '1', n: 1200000 }], des: 'intr_cszl_des_2' },
{ idx: 7, total: 8, type: 'jieji', prize: [{ a: 'item', t: '12', n: 2000 }], des: 'intr_cszl_des_1' },
{ idx: 8, total: 260, type: 'lv', prize: [{ a: 'item', t: '1', n: 2000000 }], des: 'intr_cszl_des_2' },
{ idx: 9, total: 9, type: 'jieji', prize: [{ a: 'item', t: '5004', n: 20 }], des: 'intr_cszl_des_1' }
],
//宝箱
box: { total: 10, prize: [{ a: 'item', t: '610', n: 1 }] }
}
}]
for (let i = 0; i < hd.length; i++) {
G.mongodb.collection('hdinfo').updateOne(
{ hdid: hd[i].hdid }, { $set: { ["data.task"]: hd[i].data.task } }, { upsert: true }
)
}
return "sucess!!!"
}
async run() {
await this.fun1(1);
}
}
async function main() {
await patchInit()
let patch = new Path();
await patch.run();
console.log("逻辑执行完成,等待退出");
setTimeout(function () {
console.log('结束程序');
process.exit();
}, 3000);
}
main();

View File

@ -0,0 +1,119 @@
import { patchFun, patchInit } from "../patch";
import { PublicShared } from "../shared/public/public";
import { JJCFun } from "../public/jjc";
function getRankPrize(rank: number, conf?: typeof G.gc.jjc_ph['']) {
if (!conf) {
conf = Object.values(G.gc.jjc_ph).filter(v => rank >= v.ph[0] && rank <= v.ph[1])[0];
}
if (conf) {
return [...conf.prize, { a: 'item', t: '11', n: typeof conf.rongyuprize == 'number' ? conf.rongyuprize : PublicShared.eval(conf.rongyuprize, { a: rank }) }];
} else {
return [];
}
}
class Path {
async addEmail(email, isCross = false) {
let { prize, uid, ...e } = email;
let lng = await G.redis.rawGet(`user:lng:${uid}`);
let sendEmail = {
_id: null,
uid: uid,
type: e.type,
title: e.lngTitle ? (e.lngTitle[lng] || e.lngTitle['ja']) : e.title,
content: e.lngContent ? (e.lngContent[lng] || e.lngContent['ja']) : e.content,
createTime: e.createTime || G.time,
contentInsertArr: e.contentInsertArr || []
} as any;
/**跨服邮件给sid标识*/
// if (isCross) {
// sendEmail.sid = uid.split('_')[0];
// }
if ((prize === null || prize === void 0 ? void 0 : prize.length) > 0) {
sendEmail.prizeData = {
prize: email.prize,
isGet: false
};
}
if (email.g123log && Object.keys(email.g123log).length > 0)
sendEmail.g123log = email.g123log;
if (email.lngTitle) {
sendEmail.lngTitle = email.lngTitle;
sendEmail.lngContent = email.lngContent;
}
//太亏了换其他清理机制getAllEmail是性能消耗大户
//todo.. 换其他清理机制
// if (!isCross) {
// let emailList = await this.getAllEmail(uid);
// if (emailList.length >= 50) {
// emailList.sort((a, b) => {
// let noPrizeA = a.prizeData == undefined ? 0 : 1;
// let noPrizeB = b.prizeData == undefined ? 0 : 1;
// let getA = a.prizeData?.isGet == true ? 0 : 1;
// let getB = b.prizeData?.isGet == true ? 0 : 1;
// if (noPrizeA != noPrizeB) {
// return noPrizeA - noPrizeB;
// } else if (getA != getB) {
// return getA - getB;
// }
// return a.createTime - b.createTime;
// });
// this.removeEmail(uid, emailList[0]._id);
// G.server.sendMsgByUid(uid, 'msg_s2c/EmailDel', emailList[0]._id);
// }
// }
//@ts-ignore
await G.mongodb.collection('email').insertOne({
ttl: new Date(), ...G.mongodb.conversionIdObj(sendEmail)
})
}
async sendEmail(uid: string, rank: number, prize: atn[]) {
if (uid.indexOf('npc_') != -1) return;
await this.addEmail({
uid: uid,
type: 'system',
title: G.gc.jjc_com.email.titel,
content: G.gc.jjc_com.email.content,
prize: prize,
contentInsertArr: [rank]
});
}
async fun1(a: any) {
for (let conf of Object.values(G.gc.jjc_ph)) {
let players = await JJCFun.getRankListUid(conf.ph[0] - 1, conf.ph[1]);
for (let index = 0; index < players.length; index++) {
let uid = players[index];
await this.sendEmail(uid, conf.ph[0] + index, getRankPrize(conf.ph[0] + index, conf));
console.log("sendEmail", uid, conf.ph[0] + index)
}
}
return "sucess!!!"
}
async run() {
await this.fun1(1);
}
}
async function main() {
await patchInit()
let patch = new Path();
await patch.run();
console.log("逻辑执行完成,等待退出");
setTimeout(function () {
console.log('结束程序');
process.exit();
}, 3000);
}
main();

View File

@ -0,0 +1,684 @@
import { patchFun, patchInit } from "../patch";
class Path {
async fun1(a: any) {
const con = {
"16_6575db20f6ef8b7da5c8f1fd": {
"item": {
"1": 55400000,
"12": 10600,
"2": 223000,
"6": 690
},
"attr": {
"rmbmoney": 30500,
"jinbi": 2850000000
}
},
"15_6575a14b2f930bd5e51ccde9": {
"item": {
"1": 137200000,
"12": 16600,
"2": 273700,
"6": 1735
},
"attr": {
"rmbmoney": 35200,
"jinbi": 3420000000
}
},
"10_6573c51480a92f081d78e1d9": {
"item": {
"1": 35600000,
"12": 13000,
"2": 67800,
"6": 1180
},
"attr": {
"rmbmoney": 12400,
"jinbi": 630000000
}
},
"10_6573ecd9a884822d24482a1a": {
"item": {
"1": 103200000,
"18": 9490,
"12": 28000,
"2": 421600,
"6": 1300
},
"attr": {
"rmbmoney": 53400,
"jinbi": 5210000000
}
},
"11_657412487fe3541fe7241a60": {
"item": {
"1": 35000000,
"12": 99300,
"2": 110900,
"6": 460
},
"attr": {
"rmbmoney": 19200,
"jinbi": 1830000000
}
},
"11_657436eb3bc021c4e335f356": {
"item": {
"1": 197200000,
"12": 243700,
"2": 597200,
"6": 2475
},
"attr": {
"rmbmoney": 97400,
"jinbi": 9930000000
}
},
"11_657428e87fe3541fe7245b75": {
"item": {
"1": 71200000,
"12": 64300,
"2": 219300,
"6": 910
},
"attr": {
"rmbmoney": 37300,
"jinbi": 3630000000
}
},
"10_6573aeb2602e0a72e8279b54": {
"item": {
"1": 17800000,
"12": 22300,
"2": 58100,
"6": 240
},
"attr": {
"rmbmoney": 10500,
"jinbi": 940000000
}
},
"11_657447453bc021c4e3362403": {
"item": {
"1": 322000000,
"18": 31290,
"12": 134800,
"2": 1297200,
"6": 4035
},
"attr": {
"rmbmoney": 162900,
"jinbi": 16160000000
}
},
"11_657405957b27be6c2f4cac11": {
"item": {
"1": 18600000,
"18": 1050,
"12": 74500,
"2": 79900,
"6": 245
},
"attr": {
"rmbmoney": 12000,
"jinbi": 980000000
}
},
"14_6575004f7aecd430eb86fbb5": {
"item": {
"1": 44000000,
"18": 3440,
"12": 104800,
"2": 182600,
"6": 545
},
"attr": {
"rmbmoney": 25300,
"jinbi": 2270000000
}
},
"16_6575d6ac2e4ba33a00a04cbc": {
"item": {
"1": 36600000,
"12": 13000,
"2": 108200,
"6": 470
},
"attr": {
"rmbmoney": 19100,
"jinbi": 1870000000
}
},
"12_6574823b27bd4264da470583": {
"item": {
"1": 8800000,
"12": 123000,
"2": 37500,
"6": 115
},
"attr": {
"rmbmoney": 7300,
"jinbi": 530000000
}
},
"16_6575b61caff1b610d8bc6c96": {
"item": {
"24": 6,
"10": 200,
"12": 55000,
"600": 20,
"18": 1400,
"1": 16200000,
"2": 64900,
"6": 180,
"9": 3500
},
"attr": {
"rmbmoney": 14400,
"jinbi": 840000000
}
},
"14_6574f2e66c7af0fe3713b718": {
"item": {
"1": 48800000,
"12": 12700,
"2": 90900,
"6": 655
},
"attr": {
"rmbmoney": 12400,
"jinbi": 1100000000
}
},
"11_65740da4deb68620911e96ef": {
"item": {
"1": 64200000,
"18": 5580,
"12": 28300,
"2": 265400,
"6": 820
},
"attr": {
"rmbmoney": 33800,
"jinbi": 3270000000
}
},
"15_657594c3a7981612a8ea7e0e": {
"item": {
"1": 96800000,
"18": 8870,
"12": 3700,
"2": 397200,
"6": 1230
},
"attr": {
"rmbmoney": 50400,
"jinbi": 4920000000
}
},
"11_657434f8290f4393568f16fe": {
"item": {
"1": 129000000,
"12": 198300,
"2": 392100,
"6": 1630
},
"attr": {
"jinbi": 6500000000
}
},
"14_657512ee7aecd430eb872b5d": {
"item": {
"1": 121800000,
"12": 36400,
"2": 363400,
"6": 1530
},
"attr": {
"rmbmoney": 31500,
"jinbi": 6150000000
}
},
"11_657454089beef4c060edab88": {
"item": {
"1": 96600000,
"18": 8660,
"12": 149200,
"2": 392900,
"6": 1215
},
"attr": {
"rmbmoney": 49800,
"jinbi": 4890000000
}
},
"10_6573e8aa80a92f081d7930b4": {
"item": {
"1": 242400000,
"18": 16210,
"12": 84100,
"2": 978800,
"6": 3040
},
"attr": {
"rmbmoney": 123100,
"jinbi": 12180000000
}
},
"11_6573fd7a08e89e5a6859446e": {
"item": {
"1": 178200000,
"18": 16230,
"12": 10900,
"2": 717000,
"6": 2225
},
"attr": {
"rmbmoney": 92000,
"jinbi": 8990000000
}
},
"11_65744fe2d0256beb85eed193": {
"item": {
"1": 262800000,
"18": 25540,
"12": 55800,
"2": 1057600,
"6": 3275
},
"attr": {
"rmbmoney": 134000,
"jinbi": 13190000000
}
},
"11_657440e7ee44bd9935bbbd7c": {
"item": {
"1": 83000000,
"18": 7160,
"12": 250900,
"2": 341800,
"6": 1055
},
"attr": {
"rmbmoney": 43300,
"jinbi": 4220000000
}
},
"11_657420932dd070117eb15e92": {
"item": {
"1": 307400000,
"18": 29210,
"12": 50200,
"2": 1239200,
"6": 3880
},
"attr": {
"jinbi": 15470000000
}
},
"14_65750da36439ef15582d6e6d": {
"item": {
"1": 105000000,
"12": 93900,
"2": 361000,
"6": 1335
},
"attr": {
"rmbmoney": 54100,
"jinbi": 5310000000
}
},
"12_6574762427bd4264da46ce63": {
"item": {
"1": 44400000,
"18": 3390,
"12": 15900,
"2": 185000,
"6": 555
},
"attr": {
"rmbmoney": 25000,
"jinbi": 2290000000
}
},
"16_6575e1625685671e63fe001f": {
"item": {
"1": 12600000,
"2": 51400,
"6": 155
},
"attr": {
"rmbmoney": 9200,
"jinbi": 710000000
}
},
"10_6573e236a884822d244816a0": {
"item": {
"1": 76200000,
"18": 6760,
"12": 79600,
"2": 310200,
"6": 945
},
"attr": {
"rmbmoney": 40700,
"jinbi": 3870000000
}
},
"10_6573a17268053554fe606611": {
"item": {
"1": 109200000,
"18": 9410,
"12": 58000,
"2": 428000,
"6": 2365
},
"attr": {
"rmbmoney": 55000,
"jinbi": 5240000000
}
},
"15_657595a3a7981612a8ea8009": {
"item": {
"1": 19200000,
"18": 830,
"12": 74800,
"2": 84100,
"6": 1115
},
"attr": {
"rmbmoney": 11300,
"jinbi": 990000000
}
},
"11_657438a83bc021c4e335f86e": {
"item": {
"1": 71200000,
"18": 6300,
"12": 55600,
"2": 292500,
"6": 905
},
"attr": {
"rmbmoney": 37200,
"jinbi": 3600000000
}
},
"10_6573e0395fe4caaf29a9b83c": {
"item": {
"1": 9000000,
"12": 184000,
"2": 45800,
"6": 135
},
"attr": {
"rmbmoney": 6400,
"jinbi": 530000000
}
},
"10_6573e596dc05fa03150d7db1": {
"item": {
"1": 12800000,
"18": 410,
"12": 15400,
"2": 60000,
"6": 175
},
"attr": {
"rmbmoney": 8200,
"jinbi": 690000000
}
},
"14_65752c79c85dd4cf1a874893": {
"item": {
"1": 14200000,
"12": 33700,
"2": 64500,
"6": 185
},
"attr": {
"rmbmoney": 8900,
"jinbi": 790000000
}
},
"12_657455ed6b804f4a6d4b53a2": {
"item": {
"1": 160800000,
"18": 14900,
"12": 4800,
"2": 650900,
"6": 2025
},
"attr": {
"rmbmoney": 82000,
"jinbi": 8080000000
}
},
"12_657481316ad7b8861da8a914": {
"item": {
"1": 5600000,
"18": 450,
"12": 34600,
"2": 25500,
"6": 65
},
"attr": {
"rmbmoney": 7800,
"jinbi": 300000000
}
},
"4_6571c11bb0b5337a4d3a63a0": {
"item": {
"24": 7,
"10": 400,
"12": 15600,
"600": 50,
"18": 190,
"1": 5200000,
"2": 16300,
"6": 10,
"9": 8500
},
"attr": {
"rmbmoney": 8800,
"jinbi": 310000000
}
},
"10_6573714bc7069a58e96ba077": {
"item": {
"1": 14400000,
"18": 610,
"12": 11800,
"2": 66400,
"6": 190
},
"attr": {
"rmbmoney": 9000,
"jinbi": 770000000
}
},
"11_65744ba29beef4c060ed803c": {
"item": {
"1": 331800000,
"12": 14800,
"2": 1001400,
"6": 4155
},
"attr": {
"rmbmoney": 167500,
"jinbi": 16670000000
}
},
"16_6575d57c5685671e63fdb6ee": {
"item": {
"1": 13600000,
"12": 42700,
"2": 44500,
"6": 420
},
"attr": {
"rmbmoney": 7000,
"jinbi": 430000000
}
},
"11_65743bb09beef4c060ed46e7": {
"item": {
"10": 300,
"12": 8100,
"600": 30,
"18": 920,
"1": 18400000,
"2": 69600,
"6": 170,
"9": 4500
},
"attr": {
"rmbmoney": 13700,
"jinbi": 950000000
}
},
"10_6573bb4b68053554fe60940c": {
"item": {
"1": 19400000,
"18": 1080,
"12": 63000,
"2": 83100,
"6": 235
},
"attr": {
"rmbmoney": 12300,
"jinbi": 1010000000
}
},
"16_6575d97df2211cd2ff29ba12": {
"item": {
"1": 3400000,
"12": 11100,
"2": 16700,
"6": 50
},
"attr": {
"rmbmoney": 5000,
"jinbi": 250000000
}
},
"11_657434c6d0256beb85ee6fae": {
"item": {
"1": 80600000,
"18": 7360,
"12": 232000,
"2": 332200,
"6": 1025
},
"attr": {
"rmbmoney": 42100,
"jinbi": 4090000000
}
},
"16_6575b6d0f6ef8b7da5c84bf0": {
"item": {
"1": 70600000,
"12": 29700,
"2": 218200,
"6": 900
},
"attr": {
"rmbmoney": 36000,
"jinbi": 3610000000
}
},
"10_6587fbf00c11d852663c5bbb": {
"item": {
"1": 26800000,
"18": 1940,
"12": 168000,
"2": 118300,
"6": 350
},
"attr": {
"rmbmoney": 15300,
"jinbi": 1410000000
}
},
"10_657397c2f31ed0c046ef3730": {
"item": {
"1": 220800000,
"18": 1900,
"12": 8800,
"2": 701400,
"6": 2780
},
"attr": {
"rmbmoney": 112100,
"jinbi": 11100000000
}
}
}
const uids = Object.keys(con);
let _users = await G.mongodb.find('user', { uid: { $in: uids } })
for (let i = 0; i < _users.length; i++) {
let user = _users[i]
const uid = user.uid
const _delattr = con[uid]["attr"]
const _delitem = con[uid]["item"]
let _setUserData = {}
let _dellog = { "attr": {}, "item": {} }
for (let t in _delattr) {
if (t == "rmbmoney") {
let v = user.rmbmoney - _delattr[t]
if (v < 0) { v = 0 }
_setUserData[t] = v
_dellog["attr"][t] = { "old": user.rmbmoney, "new": v }
}
else if (t == "jinbi") {
let v = user.jinbi - _delattr[t]
if (v < 0) { v = 0 }
_setUserData[t] = v
_dellog["attr"][t] = { "old": user.jinbi, "new": v }
}
}
const itemIds = Object.keys(_delitem);
// 删除item
let _itemlist = await G.mongodb.collection('item').find({ "uid": uid, "itemId": { "$in": itemIds } }).toArray();
for (let i = 0; i < _itemlist.length; i++) {
const _item = _itemlist[i]
const _itemid = _item.itemId
const del = _delitem[_itemid] || 0
let v = _item.num - del
if (v < 0) { v = 0 }
let _setItemData = {}
_setItemData["num"] = v
_dellog["item"][_itemid] = { "old": _item.num, "new": v }
await G.mongodb.collection('item').updateOne({ "uid": uid, "itemId": _itemid }, { "$set": _setItemData });
}
await G.mongodb.collection('user').updateOne({ "uid": uid }, { "$set": _setUserData });
// 输出日志
console.log(uid, ":", _dellog);
}
return "sucess!!!"
}
async run() {
await this.fun1(1);
}
}
async function main() {
await patchInit()
let patch = new Path();
await patch.run();
console.log("逻辑执行完成,等待退出");
setTimeout(function () {
console.log('结束程序');
process.exit();
}, 3000);
}
main();

View File

@ -0,0 +1,117 @@
import { ReqEmail } from "../monopoly/protocols/PtlEmail";
import { patchInit } from "../patch";
import { MsgEmail } from "../shared/protocols/msg_s2c/MsgEmail";
import { PublicShared } from "../shared/public/public";
class Path {
async addEmail(email: ReqEmail & { createTime?: number; }) {
let { prize, uid, ...e } = email;
let lng = await G.redis.rawGet(`user:lng:${uid}`)
let sendEmail: MsgEmail = {
_id: null,
uid: uid,
type: e.type,
title: e.lngTitle ? (e.lngTitle[lng] || e.lngTitle['ja']) : e.title,
content: e.lngContent ? (e.lngContent[lng] || e.lngContent['ja']) : e.content,
createTime: e.createTime || G.time,
contentInsertArr: e.contentInsertArr || []
};
if (prize?.length > 0) {
sendEmail.prizeData = {
prize: email.prize,
isGet: false
};
}
if (email.g123log && Object.keys(email.g123log).length > 0) sendEmail.g123log = email.g123log;
if (email.lngTitle) {
sendEmail.lngTitle = email.lngTitle
sendEmail.lngContent = email.lngContent
}
await G.mongodb.collection('email').insertOne({
ttl: new Date(), ...G.mongodb.conversionIdObj(sendEmail)
});
}
async fun1(a: any) {
let taskType = 2;
let users = await G.mongodb.collection('user').find({ loginTime: { $gte: 1704643200 } }).toArray();
for (let i = 0; i < users.length; i++) {
let user = users[i];
let unFinishTask = (await G.mongodb.collection('task').find({
uid: user.uid, type: taskType, finish: 0
}, { projection: { taskid: 1 } }).toArray()).map(i => i.taskid);
if (unFinishTask.length >= 2) {
let deltask = unFinishTask.sort().slice(1);
await G.mongodb.collection("task").deleteOne({
uid: user.uid, taskid: { $in: deltask }
});
console.log(`删除玩家${user.uid}任务:${deltask}`);
}
}
}
/**
*
*/
async fun2(a: any) {
let logs = await G.mongodb.collection("payLogNew").find(
{ key: "zhongshenka", del_time: { $exists: false } }, { projection: { _id: 0, } }
).toArray();
if (logs.length == 0) {
console.log("没有终身卡数据,不发放终身卡");
return
}
let wzt = PublicShared.getToWeekMondayZeroTime();
let con = G.gc.payEmail.zhongshenka.filter(e => e.day == 7)[0];
for (let i = 0; i < logs.length; i++) {
// 查询玩家邮件
let emails = await G.mongodb.collection('email').find({
uid: logs[i].uid, title: con.title, createTime: { $gte: wzt }
}).toArray();
if (emails.length == 0) {
// 发送邮件
this.addEmail({
uid: logs[i].uid,
type: "system",
title: con.title,
content: con.content,
contentInsertArr: [],
createTime: G.time,
prize: con.prize,
})
console.log("发放终身卡", logs[i].uid);
} else {
console.log("本周已发送过 不发放终身卡", logs[i].uid);
}
}
}
async run() {
await this.fun1(1);
await this.fun2(1);
}
}
async function main() {
await patchInit()
let patch = new Path();
await patch.run();
console.log("逻辑执行完成,等待退出");
setTimeout(function () {
console.log('结束程序');
process.exit();
}, 3000);
}
main();

View File

@ -0,0 +1,61 @@
import {ReqEmail} from "../monopoly/protocols/PtlEmail";
import {patchInit} from "../patch";
import {MsgEmail} from "../shared/protocols/msg_s2c/MsgEmail";
import {PublicShared} from "../shared/public/public";
class Path {
async fun1(a: any) {
let taskType = 2;
let users = await G.mongodb.collection('user').find({}, {
projection: {uid: 1}
}).toArray();
// let users = await G.mongodb.collection('user').find({ loginTime: { $gte: 1704643200 } }).toArray();
for (let i = 0; i < users.length; i++) {
let user = users[i];
console.log(`处理玩家${user.uid}数据`);
let task = Object.assign({}, ...(await G.mongodb.collection('task').find({
uid: user.uid, type: taskType
}, {projection: {taskid: 1, finish: 1}}).toArray()).map(i => {
return {[i.taskid]: i.finish}
}))
let deltask = [];
let sortTask = Object.keys(task).sort();
for (let taskid of sortTask) {
if (task[taskid] == 1) continue;
let con = G.gc.task[taskType][taskid];
if (task[con.followtask]) {
let i = sortTask.indexOf(taskid);
deltask.push(...sortTask.slice(i + 1).map(i => Number(i)));
}
}
if (deltask.length > 0) {
await G.mongodb.collection("task").deleteMany(
{uid: user.uid, taskid: {$in: deltask}}
)
console.log(`删除玩家${user.uid}任务:${deltask}`)
}
}
}
async run() {
await this.fun1(1);
}
}
async function main() {
await patchInit()
let patch = new Path();
await patch.run();
console.log("逻辑执行完成,等待退出");
setTimeout(function () {
console.log('结束程序');
process.exit();
}, 3000);
}
main();

View File

@ -0,0 +1,68 @@
import { ReqEmail } from "../monopoly/protocols/PtlEmail";
import { patchInit } from "../patch";
import { MsgEmail } from "../shared/protocols/msg_s2c/MsgEmail";
import { PublicShared } from "../shared/public/public";
class Path {
async fun1(a: any) {
let uids = [
"4_6571ab682b3f80154e724f2a",
"16_6575e1625685671e63fe001f",
"13_6574ad08e7cc32b4bd1334e8",
"13_65749bc319cab1affec349fb",
];
// 删除玩家背包中的头像框
let items = await G.mongodb.collection("item").find({ uid: { $nin: uids }, itemId: { $in: ["47", "48"] } }).toArray();
for (let item of items) {
console.log(`删除玩家${item.uid}的头像框道具${item.itemId}`);
await G.mongodb.collection("item").updateOne({ _id: item._id }, { $set: { uid: `patch_del_${item.uid}` } });
}
// 删除玩家存在的头像框
let users = await G.mongodb.collection("user").find({
uid: { $nin: uids }, $or: [
{ ["headFrame.id"]: "8" },
{ ["headFrame.id"]: "14" },
{ ["headFrames.8"]: { $exists: true } },
{ ["headFrames.14"]: { $exists: true } },
]
}).toArray();
for (let user of users) {
let change = { $set: {}, $unset: {} };
if (user.headFrame?.id == "8" || user.headFrame?.id == "14") {
change.$set = { headFrame: { id: "1", time: -1 } };
}
if (user.headFrames["8"] != undefined) {
change.$unset["headFrames.8"] = 1;
}
if (user.headFrames["14"] != undefined) {
change.$unset["headFrames.14"] = 1;
}
if (Object.keys(change.$set).length > 0 || Object.keys(change.$unset).length > 0) {
console.log(`处理玩家${user.uid}数据:${JSON.stringify(change)}`);
await G.mongodb.collection("user").updateOne({ _id: user._id }, change);
}
}
}
async run() {
await this.fun1(1);
}
}
async function main() {
await patchInit()
let patch = new Path();
await patch.run();
console.log("逻辑执行完成,等待退出");
setTimeout(function () {
console.log('结束程序');
process.exit();
}, 3000);
}
main();

View File

@ -0,0 +1,80 @@
import { patchFun, patchInit } from "../patch";
class Path {
async huodong2(a: any) {
const con ={
2000:[
{ payId: '', num: 1, prize: [{a: 'item', t: '49', n: 20}, {a: 'attr', t: 'rmbmoney', n: 200}], free: true },
{ payId: 'duihuan_1_1', prize: [{a: 'item', t: '49', n: 50}, {a: 'attr', t: 'rmbmoney', n: 600}], free: false },
{ payId: 'duihuan_1_2', prize: [{a: 'item', t: '49', n: 100}, {a: 'attr', t: 'rmbmoney', n: 1360}], free: false },
{ payId: 'duihuan_1_3', prize: [{a: 'item', t: '49', n: 200}, {a: 'attr', t: 'rmbmoney', n: 2560}], free: false },
{ payId: 'duihuan_1_4', prize: [{a: 'item', t: '49', n: 600}, {a: 'attr', t: 'rmbmoney', n: 6560}], free: false },
{ payId: 'duihuan_1_5', prize: [{a: 'item', t: '49', n: 1200}, {a: 'attr', t: 'rmbmoney', n: 12960}], free: false },
],
2001: [
{ payId: '', num: 1, prize: [{a: 'item', t: '49', n: 20}, {a: 'attr', t: 'rmbmoney', n: 200}], free: true },
{ payId: 'duihuan_3_1', prize: [{a: 'item', t: '49', n: 50}, {a: 'attr', t: 'rmbmoney', n: 600}], free: false },
{ payId: 'duihuan_3_2', prize: [{a: 'item', t: '49', n: 100}, {a: 'attr', t: 'rmbmoney', n: 1360}], free: false },
{ payId: 'duihuan_3_3', prize: [{a: 'item', t: '49', n: 200}, {a: 'attr', t: 'rmbmoney', n: 2560}], free: false },
{ payId: 'duihuan_3_4', prize: [{a: 'item', t: '49', n: 600}, {a: 'attr', t: 'rmbmoney', n: 6560}], free: false },
{ payId: 'duihuan_3_5', prize: [{a: 'item', t: '49', n: 1200}, {a: 'attr', t: 'rmbmoney', n: 12960}], free: false },
],
2002: [
{ payId: '', num: 1, prize: [{a: 'item', t: '50', n: 20}, {a: 'attr', t: 'rmbmoney', n: 200}], free: true },
{ payId: 'duihuan_2_1', prize: [{a: 'item', t: '50', n: 50}, {a: 'attr', t: 'rmbmoney', n: 600}], free: false },
{ payId: 'duihuan_2_2', prize: [{a: 'item', t: '50', n: 100}, {a: 'attr', t: 'rmbmoney', n: 1360}], free: false },
{ payId: 'duihuan_2_3', prize: [{a: 'item', t: '50', n: 200}, {a: 'attr', t: 'rmbmoney', n: 2560}], free: false },
{ payId: 'duihuan_2_4', prize: [{a: 'item', t: '50', n: 600}, {a: 'attr', t: 'rmbmoney', n: 6560}], free: false },
{ payId: 'duihuan_2_5', prize: [{a: 'item', t: '50', n: 1200}, {a: 'attr', t: 'rmbmoney', n: 12960}], free: false },
],
2003: [
{ payId: '', num: 1, prize: [{a: 'item', t: '50', n: 20}, {a: 'attr', t: 'rmbmoney', n: 200}], free: true },
{ payId: 'duihuan_4_1', prize: [{a: 'item', t: '50', n: 50}, {a: 'attr', t: 'rmbmoney', n: 600}], free: false },
{ payId: 'duihuan_4_2', prize: [{a: 'item', t: '50', n: 100}, {a: 'attr', t: 'rmbmoney', n: 1360}], free: false },
{ payId: 'duihuan_4_3', prize: [{a: 'item', t: '50', n: 200}, {a: 'attr', t: 'rmbmoney', n: 2560}], free: false },
{ payId: 'duihuan_4_4', prize: [{a: 'item', t: '50', n: 600}, {a: 'attr', t: 'rmbmoney', n: 6560}], free: false },
{ payId: 'duihuan_4_5', prize: [{a: 'item', t: '50', n: 1200}, {a: 'attr', t: 'rmbmoney', n: 12960}], free: false },
],
}
const hdids = [2000,2001,2002,2003]
const hdinfos = await G.mongodb.find('hdinfo', { hdid: { $in: hdids } })
for (let i = 0; i < hdinfos.length; i++) {
let hdinfo = hdinfos[i]
hdinfo.data.event.gift = con[hdinfo.hdid]
console.log(hdinfo.hdid,hdinfo.data.event.gift)
await G.mongodb.collection('hdinfo').updateOne({ "hdid": hdinfo.hdid}, { "$set": {"data": hdinfo.data}});
console.log(hdinfo.hdid,"finish")
}
return "sucess!!!"
}
async headFrame(a: any) {
const users = await G.mongodb.find('user', {"headFrames.25": {"$exists": 1}})
for (let i = 0; i < users.length; i++) {
let user = users[i]
user.headFrames["25"] = -1
await G.mongodb.collection('user').updateOne({ "uid": user.uid}, { "$set": {"headFrames": user.headFrames} });
console.log(user.uid, user.headFrames)
}
return "sucess!!!"
}
async run() {
await this.huodong2(1);
await this.headFrame(1);
}
}
async function main() {
await patchInit()
let patch = new Path();
await patch.run();
console.log("逻辑执行完成,等待退出");
setTimeout(function () {
console.log('结束程序');
process.exit();
}, 3000);
}
main();

View File

@ -15,12 +15,15 @@ import { ZhanLingTasks } from './public/zhanling';
import { player } from './shared/protocols/user/type'; import { player } from './shared/protocols/user/type';
import { PublicShared } from './shared/public/public'; import { PublicShared } from './shared/public/public';
import { setGud } from './public/gud'; import { setGud } from './public/gud';
import {checkResetBuyLog} from "./api_s2c/event/zhoumolibao/ApiOpen"; import { checkResetBuyLog } from "./api_s2c/event/zhoumolibao/ApiOpen";
import {Christmasfun} from "./api_s2c/event/christmas/fun"; import { PushGiftFun } from "./public/pushgift";
import {PushGiftFun} from "./public/pushgift"; import { LeiChongLiBaoBuyGift } from "./api_s2c/event/leichonglibao/ApiReceive";
import {LeiChongLiBaoBuyGift} from "./api_s2c/event/leichonglibao/ApiReceive"; import { HongDianChange } from './api_s2c/hongdian/fun';
import HQJGFun from './api_s2c/event/huangqijiuguan/fun';
export type gEventType = { export type gEventType = {
/**新的一天 */
NEW_DAY: (time: number) => void;
/**玩家断开连接 */ /**玩家断开连接 */
PLAYER_DISCONNECT: (uid: string) => void; PLAYER_DISCONNECT: (uid: string) => void;
/**玩家修改名字 */ /**玩家修改名字 */
@ -151,6 +154,8 @@ export type gEventType = {
Class_task_157: (eventname, call, val, chkVal) => void; Class_task_157: (eventname, call, val, chkVal) => void;
/**今日参与{1}次抓娃娃小游戏 */ /**今日参与{1}次抓娃娃小游戏 */
Class_task_158: (eventname, call, val, chkVal) => void; Class_task_158: (eventname, call, val, chkVal) => void;
/**黄旗酒馆累计抽卡X次*/
Class_task_159: (eventname, call, val, chkVal) => void;
}; };
export function addListener() { export function addListener() {
@ -164,7 +169,7 @@ export function addListener() {
XstaskFun.uidTask[uid] = null; XstaskFun.uidTask[uid] = null;
delete XstaskFun.uidTask[uid]; delete XstaskFun.uidTask[uid];
} }
setGud(uid,{ logoutTime: G.time }); setGud(uid, { logoutTime: G.time });
G.mongodb.collection('user').updateOne({ uid: uid }, { $set: { logoutTime: G.time } }); G.mongodb.collection('user').updateOne({ uid: uid }, { $set: { logoutTime: G.time } });
}); });
@ -176,7 +181,7 @@ export function addListener() {
} }
}); });
G.on('PLAYER_PAY', async (player, payId, payArgs,call) => { G.on('PLAYER_PAY', async (player, payId, payArgs, call) => {
let conf: any = await PayFun.getConf(payId, payArgs); let conf: any = await PayFun.getConf(payId, payArgs);
ActionLog.addDayLog(player.uid, { key: 'pay', val: conf.payExp[0].n }); ActionLog.addDayLog(player.uid, { key: 'pay', val: conf.payExp[0].n });
ActionLog.addRetainLog(player.uid, { key: 'pay', val: conf.payExp[0].n }); ActionLog.addRetainLog(player.uid, { key: 'pay', val: conf.payExp[0].n });
@ -203,13 +208,15 @@ export function addListener() {
); );
await PushGiftFun.buy(player.uid, payId) // 推送礼包 await PushGiftFun.buy(player.uid, payId) // 推送礼包
await LeiChongLiBaoBuyGift(call, payId) // 累充礼包 await LeiChongLiBaoBuyGift(call, payId) // 累充礼包
HongDianChange.sendChangeKey(call.uid, ['huodonghd']);
}); });
G.on("FIRST_LOGIN_EVERY_DAY", (gud, lastTime, curTime) => { G.on("FIRST_LOGIN_EVERY_DAY", (gud, lastTime, curTime) => {
// 签到增加天数 // 签到增加天数
SignFun.updateLogin(gud.uid); SignFun.updateLogin(gud.uid);
ActionLog.initDayLog(gud.uid); //移到定时器里统一执行
//ActionLog.initDayLog(gud.uid);
ActionLog.addRetainLog(gud.uid, { key: 'login_day', val: 1 }); ActionLog.addRetainLog(gud.uid, { key: 'login_day', val: 1 });
ZhanLingTasks.clearLog(gud.uid, 'day'); ZhanLingTasks.clearLog(gud.uid, 'day');
PayFun.checkGiftDayEmail(gud, lastTime, curTime); PayFun.checkGiftDayEmail(gud, lastTime, curTime);
@ -258,4 +265,9 @@ export function addListener() {
let call = PayFun.getCall(gud); let call = PayFun.getCall(gud);
G.emit("Class_task_134", 'Class_task_134', call, 1, 0, items); G.emit("Class_task_134", 'Class_task_134', call, 1, 0, items);
}); });
// 黄旗酒馆
G.on("NEW_DAY", HQJGFun.dayDpsLvPrize.bind(HQJGFun));
G.on("NEW_DAY", HQJGFun.endDpsRankPrize.bind(HQJGFun));
G.on("PLAYER_PAY", HQJGFun.buy.bind(HQJGFun));
} }

View File

@ -1,18 +1,11 @@
{ {
//赛区划分 //赛区划分按照周三23:50的时候王者玩家100个一组
divide: [ //赛区划分时间周三23:50
{ day: [1, 30], group: 0 }, divideTime: 258600,
{ day: [31, 60], group: 1 }, //挑战时间周一08:00——周六22:00
{ day: [61, 120], group: 2 },
{ day: [121, 210], group: 3 },
{ day: [211, 99999999], group: 4 },
],
//赛区划分时间
divideTime: 0,
//挑战时间
fightTime: [28800, 511200], fightTime: [28800, 511200],
//发奖时间 //发奖时间周六22:05
prizeTime: 598200, prizeTime: 511500,
//胜场奖励 //胜场奖励
fightWinPrize: [ fightWinPrize: [
{ total: 5, prize: [{ a: 'attr', t: 'clsl_sd', n: 1 },{ a: 'item', t: '37', n: 1 }], star: 1 }, { total: 5, prize: [{ a: 'attr', t: 'clsl_sd', n: 1 },{ a: 'item', t: '37', n: 1 }], star: 1 },
@ -39,13 +32,13 @@
], ],
//段位奖励 //段位奖励
danPrize: [ danPrize: [
{ star: 49, prize: [{ a: 'item', t: '605', n:3 },{ a: 'item', t: '29', n:10 },{ a: 'item', t: '631', n:3 },{ a: 'item', t: '40', n:1 }] }, { star: 49, title: "clsl_7", prize: [{ a: 'item', t: '605', n:3 },{ a: 'item', t: '29', n:10 },{ a: 'item', t: '631', n:3 },{ a: 'item', t: '40', n:1 }] },
{ star: 39, prize: [{ a: 'item', t: '605', n:2 },{ a: 'item', t: '29', n:5 },{ a: 'item', t: '631', n:2 }] }, { star: 39, title: "clsl_6", prize: [{ a: 'item', t: '605', n:2 },{ a: 'item', t: '29', n:5 },{ a: 'item', t: '631', n:2 }] },
{ star: 29, prize: [{ a: 'item', t: '606', n:3 },{ a: 'item', t: '29', n:5 },{ a: 'item', t: '631', n:1 }] }, { star: 29, title: "clsl_5", prize: [{ a: 'item', t: '606', n:3 },{ a: 'item', t: '29', n:5 },{ a: 'item', t: '631', n:1 }] },
{ star: 21, prize: [{ a: 'item', t: '606', n:2 },{ a: 'item', t: '29', n:5 },{ a: 'item', t: '39', n:1000 }] }, { star: 21, title: "clsl_4", prize: [{ a: 'item', t: '606', n:2 },{ a: 'item', t: '29', n:5 },{ a: 'item', t: '39', n:1000 }] },
{ star: 13, prize: [{ a: 'item', t: '606', n:1 },{ a: 'item', t: '29', n:5 },{ a: 'item', t: '39', n:800 }] }, { star: 13, title: "clsl_3", prize: [{ a: 'item', t: '606', n:1 },{ a: 'item', t: '29', n:5 },{ a: 'item', t: '39', n:800 }] },
{ star: 7, prize: [{ a: 'item', t: '29', n:10 },{ a: 'item', t: '29', n:5 },{ a: 'item', t: '39', n:600 }] }, { star: 7, title: "clsl_2", prize: [{ a: 'item', t: '29', n:10 },{ a: 'item', t: '29', n:5 },{ a: 'item', t: '39', n:600 }] },
{ star: 0, prize: [{ a: 'item', t: '29', n:5 },{ a: 'item', t: '29', n:5 },{ a: 'item', t: '39', n:400 }] } { star: 0, title: "clsl_1", prize: [{ a: 'item', t: '29', n:5 },{ a: 'item', t: '29', n:5 },{ a: 'item', t: '39', n:400 }] }
], ],
//王者排名邮件信息 //王者排名邮件信息
email_rank: { email_rank: {

View File

@ -8498,6 +8498,22 @@
"p": 1 "p": 1
} }
], ],
"50062": [
{
"id": 50062,
"a": "item",
"t": 5002,
"n": 10,
"p": 1
},
{
"id": 50062,
"a": "item",
"t": 5004,
"n": 10,
"p": 1
}
],
"60001": [ "60001": [
{ {
"id": 60001, "id": 60001,
@ -32645,6 +32661,906 @@
"p": 1 "p": 1
} }
], ],
"271081": [
{
"id": 271081,
"a": "attr",
"t": "nexp",
"n": 249674,
"p": 1
}
],
"271082": [
{
"id": 271082,
"a": "attr",
"t": "nexp",
"n": 249905,
"p": 1
}
],
"271083": [
{
"id": 271083,
"a": "attr",
"t": "nexp",
"n": 250136,
"p": 1
}
],
"271084": [
{
"id": 271084,
"a": "attr",
"t": "nexp",
"n": 250367,
"p": 1
}
],
"271085": [
{
"id": 271085,
"a": "attr",
"t": "nexp",
"n": 250598,
"p": 1
}
],
"271086": [
{
"id": 271086,
"a": "attr",
"t": "nexp",
"n": 250829,
"p": 1
}
],
"271087": [
{
"id": 271087,
"a": "attr",
"t": "nexp",
"n": 251060,
"p": 1
}
],
"271088": [
{
"id": 271088,
"a": "attr",
"t": "nexp",
"n": 251291,
"p": 1
}
],
"271089": [
{
"id": 271089,
"a": "attr",
"t": "nexp",
"n": 251522,
"p": 1
}
],
"271090": [
{
"id": 271090,
"a": "attr",
"t": "nexp",
"n": 251753,
"p": 1
}
],
"271091": [
{
"id": 271091,
"a": "attr",
"t": "nexp",
"n": 251984,
"p": 1
}
],
"271092": [
{
"id": 271092,
"a": "attr",
"t": "nexp",
"n": 252215,
"p": 1
}
],
"271093": [
{
"id": 271093,
"a": "attr",
"t": "nexp",
"n": 252446,
"p": 1
}
],
"271094": [
{
"id": 271094,
"a": "attr",
"t": "nexp",
"n": 252677,
"p": 1
}
],
"271095": [
{
"id": 271095,
"a": "attr",
"t": "nexp",
"n": 252908,
"p": 1
}
],
"271096": [
{
"id": 271096,
"a": "attr",
"t": "nexp",
"n": 253139,
"p": 1
}
],
"271097": [
{
"id": 271097,
"a": "attr",
"t": "nexp",
"n": 253370,
"p": 1
}
],
"271098": [
{
"id": 271098,
"a": "attr",
"t": "nexp",
"n": 253601,
"p": 1
}
],
"271099": [
{
"id": 271099,
"a": "attr",
"t": "nexp",
"n": 253832,
"p": 1
}
],
"271100": [
{
"id": 271100,
"a": "attr",
"t": "nexp",
"n": 254063,
"p": 1
}
],
"271101": [
{
"id": 271101,
"a": "attr",
"t": "nexp",
"n": 254294,
"p": 1
}
],
"271102": [
{
"id": 271102,
"a": "attr",
"t": "nexp",
"n": 254525,
"p": 1
}
],
"271103": [
{
"id": 271103,
"a": "attr",
"t": "nexp",
"n": 254756,
"p": 1
}
],
"271104": [
{
"id": 271104,
"a": "attr",
"t": "nexp",
"n": 254987,
"p": 1
}
],
"271105": [
{
"id": 271105,
"a": "attr",
"t": "nexp",
"n": 255218,
"p": 1
}
],
"271106": [
{
"id": 271106,
"a": "attr",
"t": "nexp",
"n": 255449,
"p": 1
}
],
"271107": [
{
"id": 271107,
"a": "attr",
"t": "nexp",
"n": 255680,
"p": 1
}
],
"271108": [
{
"id": 271108,
"a": "attr",
"t": "nexp",
"n": 255911,
"p": 1
}
],
"271109": [
{
"id": 271109,
"a": "attr",
"t": "nexp",
"n": 256142,
"p": 1
}
],
"271110": [
{
"id": 271110,
"a": "attr",
"t": "nexp",
"n": 256373,
"p": 1
}
],
"271111": [
{
"id": 271111,
"a": "attr",
"t": "nexp",
"n": 256604,
"p": 1
}
],
"271112": [
{
"id": 271112,
"a": "attr",
"t": "nexp",
"n": 256835,
"p": 1
}
],
"271113": [
{
"id": 271113,
"a": "attr",
"t": "nexp",
"n": 257066,
"p": 1
}
],
"271114": [
{
"id": 271114,
"a": "attr",
"t": "nexp",
"n": 257297,
"p": 1
}
],
"271115": [
{
"id": 271115,
"a": "attr",
"t": "nexp",
"n": 257528,
"p": 1
}
],
"271116": [
{
"id": 271116,
"a": "attr",
"t": "nexp",
"n": 257759,
"p": 1
}
],
"271117": [
{
"id": 271117,
"a": "attr",
"t": "nexp",
"n": 257990,
"p": 1
}
],
"271118": [
{
"id": 271118,
"a": "attr",
"t": "nexp",
"n": 258221,
"p": 1
}
],
"271119": [
{
"id": 271119,
"a": "attr",
"t": "nexp",
"n": 258452,
"p": 1
}
],
"271120": [
{
"id": 271120,
"a": "attr",
"t": "nexp",
"n": 258683,
"p": 1
}
],
"271121": [
{
"id": 271121,
"a": "attr",
"t": "nexp",
"n": 258914,
"p": 1
}
],
"271122": [
{
"id": 271122,
"a": "attr",
"t": "nexp",
"n": 259145,
"p": 1
}
],
"271123": [
{
"id": 271123,
"a": "attr",
"t": "nexp",
"n": 259376,
"p": 1
}
],
"271124": [
{
"id": 271124,
"a": "attr",
"t": "nexp",
"n": 259607,
"p": 1
}
],
"271125": [
{
"id": 271125,
"a": "attr",
"t": "nexp",
"n": 259838,
"p": 1
}
],
"271126": [
{
"id": 271126,
"a": "attr",
"t": "nexp",
"n": 260069,
"p": 1
}
],
"271127": [
{
"id": 271127,
"a": "attr",
"t": "nexp",
"n": 260300,
"p": 1
}
],
"271128": [
{
"id": 271128,
"a": "attr",
"t": "nexp",
"n": 260531,
"p": 1
}
],
"271129": [
{
"id": 271129,
"a": "attr",
"t": "nexp",
"n": 260762,
"p": 1
}
],
"271130": [
{
"id": 271130,
"a": "attr",
"t": "nexp",
"n": 260993,
"p": 1
}
],
"271131": [
{
"id": 271131,
"a": "attr",
"t": "nexp",
"n": 261224,
"p": 1
}
],
"271132": [
{
"id": 271132,
"a": "attr",
"t": "nexp",
"n": 261455,
"p": 1
}
],
"271133": [
{
"id": 271133,
"a": "attr",
"t": "nexp",
"n": 261686,
"p": 1
}
],
"271134": [
{
"id": 271134,
"a": "attr",
"t": "nexp",
"n": 261917,
"p": 1
}
],
"271135": [
{
"id": 271135,
"a": "attr",
"t": "nexp",
"n": 262148,
"p": 1
}
],
"271136": [
{
"id": 271136,
"a": "attr",
"t": "nexp",
"n": 262379,
"p": 1
}
],
"271137": [
{
"id": 271137,
"a": "attr",
"t": "nexp",
"n": 262610,
"p": 1
}
],
"271138": [
{
"id": 271138,
"a": "attr",
"t": "nexp",
"n": 262841,
"p": 1
}
],
"271139": [
{
"id": 271139,
"a": "attr",
"t": "nexp",
"n": 263072,
"p": 1
}
],
"271140": [
{
"id": 271140,
"a": "attr",
"t": "nexp",
"n": 263303,
"p": 1
}
],
"271141": [
{
"id": 271141,
"a": "attr",
"t": "nexp",
"n": 263534,
"p": 1
}
],
"271142": [
{
"id": 271142,
"a": "attr",
"t": "nexp",
"n": 263765,
"p": 1
}
],
"271143": [
{
"id": 271143,
"a": "attr",
"t": "nexp",
"n": 263996,
"p": 1
}
],
"271144": [
{
"id": 271144,
"a": "attr",
"t": "nexp",
"n": 264227,
"p": 1
}
],
"271145": [
{
"id": 271145,
"a": "attr",
"t": "nexp",
"n": 264458,
"p": 1
}
],
"271146": [
{
"id": 271146,
"a": "attr",
"t": "nexp",
"n": 264689,
"p": 1
}
],
"271147": [
{
"id": 271147,
"a": "attr",
"t": "nexp",
"n": 264920,
"p": 1
}
],
"271148": [
{
"id": 271148,
"a": "attr",
"t": "nexp",
"n": 265151,
"p": 1
}
],
"271149": [
{
"id": 271149,
"a": "attr",
"t": "nexp",
"n": 265382,
"p": 1
}
],
"271150": [
{
"id": 271150,
"a": "attr",
"t": "nexp",
"n": 265613,
"p": 1
}
],
"271151": [
{
"id": 271151,
"a": "attr",
"t": "nexp",
"n": 265844,
"p": 1
}
],
"271152": [
{
"id": 271152,
"a": "attr",
"t": "nexp",
"n": 266075,
"p": 1
}
],
"271153": [
{
"id": 271153,
"a": "attr",
"t": "nexp",
"n": 266306,
"p": 1
}
],
"271154": [
{
"id": 271154,
"a": "attr",
"t": "nexp",
"n": 266537,
"p": 1
}
],
"271155": [
{
"id": 271155,
"a": "attr",
"t": "nexp",
"n": 266768,
"p": 1
}
],
"271156": [
{
"id": 271156,
"a": "attr",
"t": "nexp",
"n": 266999,
"p": 1
}
],
"271157": [
{
"id": 271157,
"a": "attr",
"t": "nexp",
"n": 267230,
"p": 1
}
],
"271158": [
{
"id": 271158,
"a": "attr",
"t": "nexp",
"n": 267461,
"p": 1
}
],
"271159": [
{
"id": 271159,
"a": "attr",
"t": "nexp",
"n": 267692,
"p": 1
}
],
"271160": [
{
"id": 271160,
"a": "attr",
"t": "nexp",
"n": 267923,
"p": 1
}
],
"271161": [
{
"id": 271161,
"a": "attr",
"t": "nexp",
"n": 268154,
"p": 1
}
],
"271162": [
{
"id": 271162,
"a": "attr",
"t": "nexp",
"n": 268385,
"p": 1
}
],
"271163": [
{
"id": 271163,
"a": "attr",
"t": "nexp",
"n": 268616,
"p": 1
}
],
"271164": [
{
"id": 271164,
"a": "attr",
"t": "nexp",
"n": 268847,
"p": 1
}
],
"271165": [
{
"id": 271165,
"a": "attr",
"t": "nexp",
"n": 269078,
"p": 1
}
],
"271166": [
{
"id": 271166,
"a": "attr",
"t": "nexp",
"n": 269309,
"p": 1
}
],
"271167": [
{
"id": 271167,
"a": "attr",
"t": "nexp",
"n": 269540,
"p": 1
}
],
"271168": [
{
"id": 271168,
"a": "attr",
"t": "nexp",
"n": 269771,
"p": 1
}
],
"271169": [
{
"id": 271169,
"a": "attr",
"t": "nexp",
"n": 270002,
"p": 1
}
],
"271170": [
{
"id": 271170,
"a": "attr",
"t": "nexp",
"n": 270233,
"p": 1
}
],
"271171": [
{
"id": 271171,
"a": "attr",
"t": "nexp",
"n": 270464,
"p": 1
}
],
"271172": [
{
"id": 271172,
"a": "attr",
"t": "nexp",
"n": 270695,
"p": 1
}
],
"271173": [
{
"id": 271173,
"a": "attr",
"t": "nexp",
"n": 270926,
"p": 1
}
],
"271174": [
{
"id": 271174,
"a": "attr",
"t": "nexp",
"n": 271157,
"p": 1
}
],
"271175": [
{
"id": 271175,
"a": "attr",
"t": "nexp",
"n": 271388,
"p": 1
}
],
"271176": [
{
"id": 271176,
"a": "attr",
"t": "nexp",
"n": 271619,
"p": 1
}
],
"271177": [
{
"id": 271177,
"a": "attr",
"t": "nexp",
"n": 271850,
"p": 1
}
],
"271178": [
{
"id": 271178,
"a": "attr",
"t": "nexp",
"n": 272081,
"p": 1
}
],
"271179": [
{
"id": 271179,
"a": "attr",
"t": "nexp",
"n": 272312,
"p": 1
}
],
"271180": [
{
"id": 271180,
"a": "attr",
"t": "nexp",
"n": 272543,
"p": 1
}
],
"280001": [ "280001": [
{ {
"id": 280001, "id": 280001,

View File

@ -10,6 +10,7 @@
//累计x个密宝可领取一次奖励 //累计x个密宝可领取一次奖励
getPrizeByMiBaoNum: 6, getPrizeByMiBaoNum: 6,
//每天重置后回退的层数 //每天重置后回退的层数
//这个值没用刺鸟那边写了公式不用这个值了
dayResetBackLayer: 6, dayResetBackLayer: 6,
//每周重置后回退的层数 //每周重置后回退的层数
weekResetBackLayer: 0, weekResetBackLayer: 0,

View File

@ -2666,6 +2666,27 @@
"rarity": 6 "rarity": 6
} }
}, },
"item^638": {
"itemId": "item^638",
"name": "扭蛋机超级干部随机箱",
"i18nKey": "intr_item_name_638",
"detailI18nKey": "intr_item_describe_638",
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
"value": 30000,
"typeId": "item",
"typeName": "道具",
"isStoreSupported": true,
"isAiSupported": true,
"attributes": {
"storeDisplayPrice": null,
"storeCategory": "",
"setQuantity": 1,
"purchaseLimit": 0,
"sellMinCp": 100,
"sellMaxCp": 500,
"rarity": 6
}
},
"item^5001": { "item^5001": {
"itemId": "item^5001", "itemId": "item^5001",
"name": "莱薇碎片", "name": "莱薇碎片",
@ -7160,6 +7181,27 @@
"rarity": 4 "rarity": 4
} }
}, },
"item^50012": {
"itemId": "item^50012",
"name": "花漫大地",
"i18nKey": "playerheadFrame_name_26",
"detailI18nKey": "intr_item_describe_50012",
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
"value": 0,
"typeId": "item",
"typeName": "道具",
"isStoreSupported": true,
"isAiSupported": true,
"attributes": {
"storeDisplayPrice": null,
"storeCategory": "",
"setQuantity": 1,
"purchaseLimit": 0,
"sellMinCp": 100,
"sellMaxCp": 500,
"rarity": 5
}
},
"item^50101": { "item^50101": {
"itemId": "item^50101", "itemId": "item^50101",
"name": "冰天雪地", "name": "冰天雪地",
@ -7454,6 +7496,69 @@
"rarity": 5 "rarity": 5
} }
}, },
"item^80001": {
"itemId": "item^80001",
"name": "白色朗姆酒",
"i18nKey": "intr_item_name_80001",
"detailI18nKey": "intr_item_describe_80001",
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
"value": 0,
"typeId": "item",
"typeName": "道具",
"isStoreSupported": true,
"isAiSupported": true,
"attributes": {
"storeDisplayPrice": null,
"storeCategory": "",
"setQuantity": 1,
"purchaseLimit": 0,
"sellMinCp": 100,
"sellMaxCp": 500,
"rarity": 4
}
},
"item^80002": {
"itemId": "item^80002",
"name": "金色朗姆酒",
"i18nKey": "intr_item_name_80002",
"detailI18nKey": "intr_item_describe_80002",
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
"value": 0,
"typeId": "item",
"typeName": "道具",
"isStoreSupported": true,
"isAiSupported": true,
"attributes": {
"storeDisplayPrice": null,
"storeCategory": "",
"setQuantity": 1,
"purchaseLimit": 0,
"sellMinCp": 100,
"sellMaxCp": 500,
"rarity": 5
}
},
"item^80003": {
"itemId": "item^80003",
"name": "黑色朗姆酒",
"i18nKey": "intr_item_name_80003",
"detailI18nKey": "intr_item_describe_80003",
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
"value": 0,
"typeId": "item",
"typeName": "道具",
"isStoreSupported": true,
"isAiSupported": true,
"attributes": {
"storeDisplayPrice": null,
"storeCategory": "",
"setQuantity": 1,
"purchaseLimit": 0,
"sellMinCp": 100,
"sellMaxCp": 500,
"rarity": 6
}
},
"equip^1001": { "equip^1001": {
"itemId": "equip^1001", "itemId": "equip^1001",
"name": "棉布头盔", "name": "棉布头盔",
@ -10813,5 +10918,67 @@
"sellMaxCp": 500, "sellMaxCp": 500,
"rarity": 5 "rarity": 5
} }
},
"attr^huangqijinbi": {
"itemId": "attr^huangqijinbi",
"name": "黄旗金币",
"i18nKey": "intr_attr_name_18",
"detailI18nKey": "intr_attr_describe_18",
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
"value": 240,
"typeId": "attr",
"typeName": "货币",
"isStoreSupported": true,
"isAiSupported": true,
"attributes": {
"storeDisplayPrice": null,
"storeCategory": "",
"setQuantity": 1,
"purchaseLimit": 0,
"sellMinCp": 100,
"sellMaxCp": 500,
"rarity": 5
}
},
"attr^huangqiduihuan": {
"itemId": "attr^huangqiduihuan",
"name": "黄旗票券",
"i18nKey": "intr_attr_name_19",
"detailI18nKey": "intr_attr_describe_19",
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
"value": 20,
"typeId": "attr",
"typeName": "货币",
"isStoreSupported": true,
"isAiSupported": true,
"attributes": {
"storeDisplayPrice": null,
"storeCategory": "",
"setQuantity": 1,
"purchaseLimit": 0,
"sellMinCp": 100,
"sellMaxCp": 500,
"rarity": 5
}
},
"heroskin^50011": {
"itemId": "heroskin^50011",
"name": "兔女郎",
"i18nKey": "heroSkin_name_1",
"iconUrl": "https://ik.imagekit.io/g123/production-ctw-box/game-box/preview/6ffd84658d75d5247f7f01b2f00ae3e6beda7163237c025ff8f0a58c.png",
"value": 20000,
"typeId": "heroskin",
"typeName": "干部皮肤",
"isStoreSupported": true,
"isAiSupported": true,
"attributes": {
"storeDisplayPrice": null,
"storeCategory": "",
"setQuantity": 1,
"purchaseLimit": 0,
"sellMinCp": 100,
"sellMaxCp": 500,
"rarity": 5
}
} }
} }

View File

@ -1925,6 +1925,37 @@
"initiative": 1, "initiative": 1,
"location": 1 "location": 1
}, },
"186": {
"id": 186,
"triggerType": "openCond",
"typeId": "weiwang",
"Type": "finger",
"path": "Canvas/draw/uiRoot/uiView_mainMenu/mainMenu/btnLayout/zd",
"undefined": "点探险",
"initiative": 1,
"location": 2
},
"187": {
"id": 187,
"triggerType": "openCond",
"typeId": "weiwang",
"Type": "finger",
"path": "Canvas/draw/uiRoot/uiView_tanxian/tanxian/tx_map1/btn_ww",
"undefined": "点影响力按钮",
"initiative": 1,
"location": 1
},
"188": {
"id": 188,
"triggerType": "openCond",
"typeId": "weiwang",
"Type": "finger",
"path": "Canvas/draw/uiRoot/uiView_weiwang/weiwang/xia/shengji/btn_sj",
"undefined": "点升级按钮",
"initiative": 1,
"location": 1,
"filter": "loop_openConfGuideEnd"
},
"20001": { "20001": {
"id": 20001, "id": 20001,
"triggerType": "lose", "triggerType": "lose",

View File

@ -12,7 +12,7 @@
//积分赛vip等级对应的可购买挑战次数 //积分赛vip等级对应的可购买挑战次数
jfsBuyFightNum: [3, 5, 7, 9, 12, 15, 18, 21, 24, 27, 30, 33, 35, 36, 38, 40, 42, 50], jfsBuyFightNum: [3, 5, 7, 9, 12, 15, 18, 21, 24, 27, 30, 33, 35, 36, 38, 40, 42, 50],
//积分赛每日免费刷新次数 //积分赛每日免费刷新次数
jfsRefreshNum: 0, jfsRefreshNum: 15,
//积分赛每日免费刷新次数使用完后的刷新消耗 //积分赛每日免费刷新次数使用完后的刷新消耗
jfsRefreshNeed: [{a: 'attr', t: 'rmbmoney', n: 20}], jfsRefreshNeed: [{a: 'attr', t: 'rmbmoney', n: 20}],
//积分赛购买挑战次数对应的消耗 //积分赛购买挑战次数对应的消耗

178
src/json/heroSkin.json Normal file
View File

@ -0,0 +1,178 @@
{
"40021": {
"id": 40021,
"heroId": 4002,
"name": "heroSkin_name_6",
"des": "heroSkin_des_6",
"undefined": "龙行天下",
"model": 40021,
"card": 40021,
"head": 40021,
"battle": 40021,
"colour": 5,
"icon": 40021,
"zhuanhuan": [
{
"a": "item",
"t": "80002",
"n": 200
}
],
"display": 0,
"advancedEffects": "ani_xiangzikuang"
},
"40061": {
"id": 40061,
"heroId": 4006,
"name": "heroSkin_name_7",
"des": "heroSkin_des_7",
"undefined": "假面魅姬",
"model": 40061,
"card": 40061,
"head": 40061,
"battle": 40061,
"colour": 5,
"icon": 40061,
"zhuanhuan": [
{
"a": "item",
"t": "80002",
"n": 200
}
],
"display": 0,
"advancedEffects": "ani_xiangzikuang"
},
"40071": {
"id": 40071,
"heroId": 4007,
"name": "heroSkin_name_8",
"des": "heroSkin_des_8",
"undefined": "樱花之舞",
"model": 40071,
"card": 40071,
"head": 40071,
"battle": 40071,
"colour": 5,
"icon": 40071,
"zhuanhuan": [
{
"a": "item",
"t": "80002",
"n": 200
}
],
"display": 0,
"advancedEffects": "ani_xiangzikuang"
},
"50011": {
"id": 50011,
"heroId": 5001,
"name": "heroSkin_name_1",
"des": "heroSkin_des_1",
"undefined": "兔女郎",
"model": 50011,
"card": 50011,
"head": 50011,
"battle": 50011,
"colour": 6,
"icon": 50011,
"zhuanhuan": [
{
"a": "item",
"t": "80003",
"n": 200
}
],
"display": 1,
"advancedEffects": "ani_xiangzihong"
},
"50021": {
"id": 50021,
"heroId": 5002,
"name": "heroSkin_name_2",
"des": "heroSkin_des_2",
"undefined": "大尉之风",
"model": 50021,
"card": 50021,
"head": 50021,
"battle": 50021,
"colour": 6,
"icon": 50021,
"zhuanhuan": [
{
"a": "item",
"t": "80003",
"n": 200
}
],
"display": 0,
"advancedEffects": "ani_xiangzihong"
},
"50031": {
"id": 50031,
"heroId": 5003,
"name": "heroSkin_name_3",
"des": "heroSkin_des_3",
"undefined": "西装暴徒",
"model": 50031,
"card": 50031,
"head": 50031,
"battle": 50031,
"colour": 6,
"icon": 50031,
"zhuanhuan": [
{
"a": "item",
"t": "80003",
"n": 200
}
],
"display": 0,
"advancedEffects": "ani_xiangzihong"
},
"50041": {
"id": 50041,
"heroId": 5004,
"name": "heroSkin_name_4",
"des": "heroSkin_des_4",
"undefined": "浪客剑心",
"model": 50041,
"card": 50041,
"head": 50041,
"battle": 50041,
"colour": 6,
"icon": 50041,
"zhuanhuan": [
{
"a": "item",
"t": "80003",
"n": 200
}
],
"display": 0,
"advancedEffects": "ani_xiangzihong"
},
"50051": {
"id": 50051,
"heroId": 5005,
"name": "heroSkin_name_5",
"des": "heroSkin_des_5",
"undefined": "猎犬出动",
"model": 50051,
"card": 50051,
"head": 50051,
"battle": 50051,
"colour": 6,
"icon": 50051,
"zhuanhuan": [
{
"a": "item",
"t": "80003",
"n": 200
}
],
"display": 0,
"advancedEffects": "ani_xiangzihong"
}
}

1031
src/json/heroSkinLv.json Normal file

File diff suppressed because it is too large Load Diff

View File

@ -9811,7 +9811,7 @@
"undpspro": 0.06, "undpspro": 0.06,
"speed": 20, "speed": 20,
"hp": 33800, "hp": 33800,
"pvpdpspro": 0.3, "pvpdpsdrop": 0.3,
"atkpro": 1.4, "atkpro": 1.4,
"defpro": 1.4, "defpro": 1.4,
"hppro": 1.4, "hppro": 1.4,
@ -9848,7 +9848,7 @@
"undpspro": 0.06, "undpspro": 0.06,
"speed": 20, "speed": 20,
"hp": 33800, "hp": 33800,
"pvpdpspro": 0.3, "pvpdpsdrop": 0.3,
"atkpro": 1.8, "atkpro": 1.8,
"defpro": 1.8, "defpro": 1.8,
"hppro": 1.8, "hppro": 1.8,

File diff suppressed because it is too large Load Diff

View File

@ -2111,6 +2111,25 @@
"payId": "", "payId": "",
"advancedEffects": "ani_xiangzihong" "advancedEffects": "ani_xiangzihong"
}, },
"638": {
"id": 638,
"name": "intr_item_name_638",
"undefined": "使用后可随机获得以下碎片",
"type": 2,
"sort": 1,
"colour": 5,
"way": [],
"go": "",
"icon": "icon_equipBox_8",
"sicon": "icon_equipBox_8",
"describe": "intr_item_describe_638",
"diaoluo": 50062,
"useNeed": [],
"usePrize": [],
"selecPrize": [],
"payId": "",
"advancedEffects": "ani_xiangzikuang"
},
"1001": { "1001": {
"id": 1001, "id": 1001,
"name": "intr_item_name_1001", "name": "intr_item_name_1001",
@ -3842,7 +3861,7 @@
"50001": { "50001": {
"id": 50001, "id": 50001,
"name": "playerheadFrame_name_3", "name": "playerheadFrame_name_3",
"undefined": "使用后解锁头像框“火力覆盖”", "undefined": "使用后解锁头像框“火力覆盖”,解锁后防御加成+1%",
"type": 7, "type": 7,
"sort": 1, "sort": 1,
"colour": 4, "colour": 4,
@ -3861,7 +3880,7 @@
"50002": { "50002": {
"id": 50002, "id": 50002,
"name": "playerheadFrame_name_4", "name": "playerheadFrame_name_4",
"undefined": "使用后解锁头像框“双枪”", "undefined": "使用后解锁头像框“双枪”,解锁后攻击加成+1%",
"type": 7, "type": 7,
"sort": 1, "sort": 1,
"colour": 4, "colour": 4,
@ -3880,7 +3899,7 @@
"50003": { "50003": {
"id": 50003, "id": 50003,
"name": "playerheadFrame_name_6", "name": "playerheadFrame_name_6",
"undefined": "使用后解锁头像框“武装炫耀”", "undefined": "使用后解锁头像框“武装炫耀”,解锁后攻击加成+1%、生命加成+1%限时7天",
"type": 7, "type": 7,
"sort": 1, "sort": 1,
"colour": 4, "colour": 4,
@ -3899,7 +3918,7 @@
"50004": { "50004": {
"id": 50004, "id": 50004,
"name": "playerheadFrame_name_7", "name": "playerheadFrame_name_7",
"undefined": "使用后解锁头像框“血海”", "undefined": "使用后解锁头像框“血海”,解锁后攻击加成+1%、生命加成+1%限时7天",
"type": 7, "type": 7,
"sort": 1, "sort": 1,
"colour": 4, "colour": 4,
@ -3918,7 +3937,7 @@
"50005": { "50005": {
"id": 50005, "id": 50005,
"name": "playerheadFrame_name_8", "name": "playerheadFrame_name_8",
"undefined": "使用后解锁头像框“边界感”", "undefined": "使用后解锁头像框“破笼而出”,解锁后伤害加成+2%限时7天",
"type": 7, "type": 7,
"sort": 1, "sort": 1,
"colour": 4, "colour": 4,
@ -3937,7 +3956,7 @@
"50006": { "50006": {
"id": 50006, "id": 50006,
"name": "playerheadFrame_name_9", "name": "playerheadFrame_name_9",
"undefined": "使用后解锁头像框“破笼而出”", "undefined": "使用后解锁头像框“擂台”,解锁后防御加成+1%",
"type": 7, "type": 7,
"sort": 1, "sort": 1,
"colour": 4, "colour": 4,
@ -3956,7 +3975,7 @@
"50007": { "50007": {
"id": 50007, "id": 50007,
"name": "playerheadFrame_name_10", "name": "playerheadFrame_name_10",
"undefined": "使用后解锁头像框“破土而出”", "undefined": "使用后解锁头像框“破土而出”,解锁后攻击加成+1%、生命加成+1%限时7天",
"type": 7, "type": 7,
"sort": 1, "sort": 1,
"colour": 4, "colour": 4,
@ -3975,7 +3994,7 @@
"50008": { "50008": {
"id": 50008, "id": 50008,
"name": "playerheadFrame_name_11", "name": "playerheadFrame_name_11",
"undefined": "使用后解锁头像框“赠礼”", "undefined": "使用后解锁头像框“赠礼”,解锁后攻击加成+1%、生命加成+1%",
"type": 7, "type": 7,
"sort": 1, "sort": 1,
"colour": 4, "colour": 4,
@ -3994,10 +4013,10 @@
"50009": { "50009": {
"id": 50009, "id": 50009,
"name": "playerheadFrame_name_23", "name": "playerheadFrame_name_23",
"undefined": "使用后解锁头像框“圣诞氛围”", "undefined": "使用后解锁头像框“圣诞氛围”,解锁后防御加成+1%,解锁后生命加成+1%",
"type": 7, "type": 7,
"sort": 1, "sort": 1,
"colour": 4, "colour": 5,
"way": [], "way": [],
"go": "", "go": "",
"icon": "txk_028", "icon": "txk_028",
@ -4008,15 +4027,15 @@
"usePrize": [], "usePrize": [],
"selecPrize": [], "selecPrize": [],
"payId": "", "payId": "",
"advancedEffects": "" "advancedEffects": "ani_xiangzikuang"
}, },
"50010": { "50010": {
"id": 50010, "id": 50010,
"name": "playerheadFrame_name_24", "name": "playerheadFrame_name_24",
"undefined": "使用后解锁头像框“披星戴月”", "undefined": "使用后解锁头像框“披星戴月”,解锁后伤害加成+1%限时7天",
"type": 7, "type": 7,
"sort": 1, "sort": 1,
"colour": 4, "colour": 5,
"way": [], "way": [],
"go": "", "go": "",
"icon": "txk_025", "icon": "txk_025",
@ -4027,15 +4046,15 @@
"usePrize": [], "usePrize": [],
"selecPrize": [], "selecPrize": [],
"payId": "", "payId": "",
"advancedEffects": "" "advancedEffects": "ani_xiangzikuang"
}, },
"50011": { "50011": {
"id": 50011, "id": 50011,
"name": "playerheadFrame_name_25", "name": "playerheadFrame_name_25",
"undefined": "使用后解锁头像框“新春安宁”", "undefined": "使用后解锁头像框“新春安宁”,解锁后生命加成+1%",
"type": 7, "type": 7,
"sort": 1, "sort": 1,
"colour": 4, "colour": 5,
"way": [], "way": [],
"go": "", "go": "",
"icon": "txk_029", "icon": "txk_029",
@ -4046,12 +4065,31 @@
"usePrize": [], "usePrize": [],
"selecPrize": [], "selecPrize": [],
"payId": "", "payId": "",
"advancedEffects": "" "advancedEffects": "ani_xiangzikuang"
},
"50012": {
"id": 50012,
"name": "playerheadFrame_name_26",
"undefined": "使用后解锁头像框“花漫大地”,解锁后生命加成+1%",
"type": 7,
"sort": 1,
"colour": 5,
"way": [],
"go": "",
"icon": "txk_007",
"sicon": "txk_007",
"describe": "intr_item_describe_50012",
"diaoluo": 26,
"useNeed": [],
"usePrize": [],
"selecPrize": [],
"payId": "",
"advancedEffects": "ani_xiangzikuang"
}, },
"50101": { "50101": {
"id": 50101, "id": 50101,
"name": "playerChatFrame_name_6", "name": "playerChatFrame_name_6",
"undefined": "使用后解锁聊天框“冰天雪地”", "undefined": "使用后解锁聊天框“冰天雪地”,解锁后攻击加成+1%、生命加成+1%限时7天",
"type": 8, "type": 8,
"sort": 1, "sort": 1,
"colour": 4, "colour": 4,
@ -4070,7 +4108,7 @@
"50102": { "50102": {
"id": 50102, "id": 50102,
"name": "playerChatFrame_name_7", "name": "playerChatFrame_name_7",
"undefined": "使用后解锁聊天框“海浪奔涌”", "undefined": "使用后解锁聊天框“海浪奔涌”,解锁后防御加成+1%",
"type": 8, "type": 8,
"sort": 1, "sort": 1,
"colour": 4, "colour": 4,
@ -4089,7 +4127,7 @@
"50103": { "50103": {
"id": 50103, "id": 50103,
"name": "playerheadFrame_name_15", "name": "playerheadFrame_name_15",
"undefined": "使用后解锁头像框“名扬四海”", "undefined": "使用后解锁头像框“名扬四海”,解锁后伤害加成+1%",
"type": 7, "type": 7,
"sort": 1, "sort": 1,
"colour": 4, "colour": 4,
@ -4108,7 +4146,7 @@
"50104": { "50104": {
"id": 50104, "id": 50104,
"name": "playerChatFrame_name_8", "name": "playerChatFrame_name_8",
"undefined": "使用后解锁聊天框“圣诞快乐”", "undefined": "使用后解锁聊天框“圣诞快乐”,解锁后防御加成+1%",
"type": 8, "type": 8,
"sort": 1, "sort": 1,
"colour": 4, "colour": 4,
@ -4127,7 +4165,7 @@
"50105": { "50105": {
"id": 50105, "id": 50105,
"name": "playerChatFrame_name_9", "name": "playerChatFrame_name_9",
"undefined": "使用后解锁聊天框“新年快乐”", "undefined": "使用后解锁聊天框“新年快乐”,解锁后防御加成+1%",
"type": 8, "type": 8,
"sort": 1, "sort": 1,
"colour": 4, "colour": 4,
@ -4146,7 +4184,7 @@
"50201": { "50201": {
"id": 50201, "id": 50201,
"name": "playerheadFrame_name_16", "name": "playerheadFrame_name_16",
"undefined": "使用后解锁头像框“招贤纳士”", "undefined": "使用后解锁头像框“招贤纳士”,解锁后攻击加成+1%",
"type": 7, "type": 7,
"sort": 1, "sort": 1,
"colour": 4, "colour": 4,
@ -4165,7 +4203,7 @@
"50202": { "50202": {
"id": 50202, "id": 50202,
"name": "playerheadFrame_name_17", "name": "playerheadFrame_name_17",
"undefined": "使用后解锁头像框“势如破竹”", "undefined": "使用后解锁头像框“势如破竹”,解锁后防御加成+1%",
"type": 7, "type": 7,
"sort": 1, "sort": 1,
"colour": 4, "colour": 4,
@ -4184,7 +4222,7 @@
"50203": { "50203": {
"id": 50203, "id": 50203,
"name": "playerheadFrame_name_18", "name": "playerheadFrame_name_18",
"undefined": "使用后解锁头像框“被甲执兵”", "undefined": "使用后解锁头像框“被甲执兵”,解锁后生命加成+1%",
"type": 7, "type": 7,
"sort": 1, "sort": 1,
"colour": 4, "colour": 4,
@ -4203,7 +4241,7 @@
"50204": { "50204": {
"id": 50204, "id": 50204,
"name": "playerheadFrame_name_19", "name": "playerheadFrame_name_19",
"undefined": "使用后解锁头像框“锋芒毕露”", "undefined": "使用后解锁头像框“锋芒毕露”,解锁后攻击加成+1%",
"type": 7, "type": 7,
"sort": 1, "sort": 1,
"colour": 4, "colour": 4,
@ -4222,7 +4260,7 @@
"50205": { "50205": {
"id": 50205, "id": 50205,
"name": "playerheadFrame_name_20", "name": "playerheadFrame_name_20",
"undefined": "使用后解锁头像框“所向披靡”", "undefined": "使用后解锁头像框“所向披靡”,解锁后防御加成+1%",
"type": 7, "type": 7,
"sort": 1, "sort": 1,
"colour": 4, "colour": 4,
@ -4241,7 +4279,7 @@
"50206": { "50206": {
"id": 50206, "id": 50206,
"name": "playerheadFrame_name_21", "name": "playerheadFrame_name_21",
"undefined": "使用后解锁头像框“传世藏品”", "undefined": "使用后解锁头像框“传世藏品”,解锁后生命加成+1%",
"type": 7, "type": 7,
"sort": 1, "sort": 1,
"colour": 4, "colour": 4,
@ -4260,7 +4298,7 @@
"50207": { "50207": {
"id": 50207, "id": 50207,
"name": "playerheadFrame_name_22", "name": "playerheadFrame_name_22",
"undefined": "使用后解锁头像框“金戈铁马”", "undefined": "使用后解锁头像框“金戈铁马”,解锁后伤害加成+1%",
"type": 7, "type": 7,
"sort": 1, "sort": 1,
"colour": 4, "colour": 4,
@ -4279,7 +4317,7 @@
"50301": { "50301": {
"id": 50301, "id": 50301,
"name": "playerModel_name_3", "name": "playerModel_name_3",
"undefined": "使用后解锁主角造型“圣诞庆典:男”", "undefined": "使用后解锁主角造型“圣诞庆典:男”,解锁后防御加成+1%",
"type": 6, "type": 6,
"sort": 1, "sort": 1,
"colour": 5, "colour": 5,
@ -4298,7 +4336,7 @@
"50302": { "50302": {
"id": 50302, "id": 50302,
"name": "playerModel_name_4", "name": "playerModel_name_4",
"undefined": "使用后解锁主角造型“圣诞庆典:女”", "undefined": "使用后解锁主角造型“圣诞庆典:女”,解锁后防御加成+1%",
"type": 6, "type": 6,
"sort": 1, "sort": 1,
"colour": 5, "colour": 5,
@ -7721,5 +7759,59 @@
"selecPrize": [], "selecPrize": [],
"payId": "", "payId": "",
"advancedEffects": "" "advancedEffects": ""
},
"80001": {
"id": 80001,
"name": "intr_item_name_80001",
"undefined": "味道清淡、简单纯净的的白色朗姆酒,可以在干部外观递交给裁缝提升外观等级。",
"type": 1,
"sort": 1,
"colour": 4,
"way": [],
"go": "",
"icon": "icon_pifucailiao_zi",
"sicon": "icon_pifucailiao_zi",
"describe": "intr_item_describe_80001",
"useNeed": [],
"usePrize": [],
"selecPrize": [],
"payId": "",
"advancedEffects": ""
},
"80002": {
"id": 80002,
"name": "intr_item_name_80002",
"undefined": "至少陈酿3年且更甜、更丰富的风味的金色朗姆酒可以在干部外观递交给裁缝提升外观等级。",
"type": 1,
"sort": 1,
"colour": 5,
"way": [],
"go": "",
"icon": "icon_pifucailiao_cheng",
"sicon": "icon_pifucailiao_cheng",
"describe": "intr_item_describe_80002",
"useNeed": [],
"usePrize": [],
"selecPrize": [],
"payId": "",
"advancedEffects": "ani_xiangzikuang"
},
"80003": {
"id": 80003,
"name": "intr_item_name_80003",
"undefined": "酒味芳醇,味道复杂的陈年黑色朗姆酒,可以在干部外观递交给裁缝提升外观等级。",
"type": 1,
"sort": 1,
"colour": 6,
"way": [],
"go": "",
"icon": "icon_pifucailiao_hong",
"sicon": "icon_pifucailiao_hong",
"describe": "intr_item_describe_80003",
"useNeed": [],
"usePrize": [],
"selecPrize": [],
"payId": "",
"advancedEffects": "ani_xiangzihong"
} }
} }

View File

@ -2,6 +2,8 @@
"1": { "1": {
"id": 1, "id": 1,
"dao": 1001, "dao": 1001,
"name": "mingDao_name_1",
"undefined": "正宗",
"condition": [ "condition": [
[ [
"loginDays", "loginDays",
@ -41,13 +43,14 @@
"zjgy_xld": 10 "zjgy_xld": 10
}, },
"img": 1001, "img": 1001,
"name": "mingDao_name_1",
"des": "mingDao_des_1", "des": "mingDao_des_1",
"privilege_des": "mingDao_tequan_1" "privilege_des": "mingDao_tequan_1"
}, },
"2": { "2": {
"id": 2, "id": 2,
"dao": 1002, "dao": 1002,
"name": "mingDao_name_2",
"undefined": "妖刀村正",
"condition": [ "condition": [
[ [
"power", "power",
@ -97,13 +100,14 @@
"wzsj_free": 1 "wzsj_free": 1
}, },
"img": 1002, "img": 1002,
"name": "mingDao_name_2",
"des": "mingDao_des_2", "des": "mingDao_des_2",
"privilege_des": "mingDao_tequan_2" "privilege_des": "mingDao_tequan_2"
}, },
"3": { "3": {
"id": 3, "id": 3,
"dao": 1003, "dao": 1003,
"name": "mingDao_name_3",
"undefined": "村雨",
"condition": [ "condition": [
[ [
"zccg", "zccg",
@ -158,13 +162,14 @@
"zjgy_xld": 20 "zjgy_xld": 20
}, },
"img": 1003, "img": 1003,
"name": "mingDao_name_3",
"des": "mingDao_des_3", "des": "mingDao_des_3",
"privilege_des": "mingDao_tequan_3" "privilege_des": "mingDao_tequan_3"
}, },
"4": { "4": {
"id": 4, "id": 4,
"dao": 1004, "dao": 1004,
"name": "mingDao_name_4",
"undefined": "大典太",
"condition": [ "condition": [
[ [
"use_attr_rmbmoney", "use_attr_rmbmoney",
@ -224,13 +229,14 @@
"dpzd_zl": 1 "dpzd_zl": 1
}, },
"img": 1004, "img": 1004,
"name": "mingDao_name_4",
"des": "mingDao_des_4", "des": "mingDao_des_4",
"privilege_des": "mingDao_tequan_4" "privilege_des": "mingDao_tequan_4"
}, },
"5": { "5": {
"id": 5, "id": 5,
"dao": 1005, "dao": 1005,
"name": "mingDao_name_5",
"undefined": "菊一文字",
"condition": [ "condition": [
[ [
"equip_star_5", "equip_star_5",
@ -295,13 +301,14 @@
"zccg_sd": 1 "zccg_sd": 1
}, },
"img": 2001, "img": 2001,
"name": "mingDao_name_5",
"des": "mingDao_des_5", "des": "mingDao_des_5",
"privilege_des": "mingDao_tequan_5" "privilege_des": "mingDao_tequan_5"
}, },
"6": { "6": {
"id": 6, "id": 6,
"dao": 1006, "dao": 1006,
"name": "mingDao_name_6",
"undefined": "长曾弥虎彻",
"condition": [ "condition": [
[ [
"zccg", "zccg",
@ -366,13 +373,14 @@
"pjbb_rl": 100 "pjbb_rl": 100
}, },
"img": 2002, "img": 2002,
"name": "mingDao_name_6",
"des": "mingDao_des_6", "des": "mingDao_des_6",
"privilege_des": "mingDao_tequan_6" "privilege_des": "mingDao_tequan_6"
}, },
"7": { "7": {
"id": 7, "id": 7,
"dao": 1007, "dao": 1007,
"name": "mingDao_name_7",
"undefined": "和泉守兼定",
"condition": [ "condition": [
[ [
"peijian_colour_5", "peijian_colour_5",
@ -434,18 +442,17 @@
"hp": 108 "hp": 108
}, },
"privilege": { "privilege": {
"hero_buff": { "pjbb_rl": 100
"xixuepro": 0.05
}
}, },
"img": 2003, "img": 2003,
"name": "mingDao_name_7",
"des": "mingDao_des_7", "des": "mingDao_des_7",
"privilege_des": "mingDao_tequan_7" "privilege_des": "mingDao_tequan_7"
}, },
"8": { "8": {
"id": 8, "id": 8,
"dao": 1008, "dao": 1008,
"name": "mingDao_name_8",
"undefined": "肥前国忠吉",
"condition": [ "condition": [
[ [
"equip_star_5", "equip_star_5",
@ -508,17 +515,18 @@
}, },
"privilege": { "privilege": {
"hero_buff": { "hero_buff": {
"dpspro": 0.06 "xixuepro": 0.05
} }
}, },
"img": 3001, "img": 3001,
"name": "mingDao_name_8",
"des": "mingDao_des_8", "des": "mingDao_des_8",
"privilege_des": "mingDao_tequan_8" "privilege_des": "mingDao_tequan_8"
}, },
"9": { "9": {
"id": 9, "id": 9,
"dao": 1009, "dao": 1009,
"name": "mingDao_name_9",
"undefined": "长船",
"condition": [ "condition": [
[ [
"power", "power",
@ -585,16 +593,19 @@
"hp": 112 "hp": 112
}, },
"privilege": { "privilege": {
"pjbb_rl": 100 "hero_buff": {
"dpspro": 0.06
}
}, },
"img": 3002, "img": 3002,
"name": "mingDao_name_9",
"des": "mingDao_des_9", "des": "mingDao_des_9",
"privilege_des": "mingDao_tequan_9" "privilege_des": "mingDao_tequan_9"
}, },
"10": { "10": {
"id": 10, "id": 10,
"dao": 1010, "dao": 1010,
"name": "mingDao_name_10",
"undefined": "童子切安纲",
"condition": [ "condition": [
[ [
"peijian_colour_5", "peijian_colour_5",
@ -666,8 +677,321 @@
} }
}, },
"img": 3003, "img": 3003,
"name": "mingDao_name_10",
"des": "mingDao_des_10", "des": "mingDao_des_10",
"privilege_des": "mingDao_tequan_10" "privilege_des": "mingDao_tequan_10"
},
"11": {
"id": 11,
"dao": 1011,
"name": "mingDao_name_11",
"undefined": "乌兹冲锋枪",
"condition": [
[
"power",
4000000
]
],
"level": 250,
"need": {
"a": "item",
"t": "21",
"n": 1
},
"needExp": 2250,
"reward": {
"10": {
"a": "attr",
"t": "jinbi",
"n": 3000000
},
"20": {
"a": "item",
"t": "24",
"n": 20
},
"30": {
"a": "item",
"t": "18",
"n": 200
},
"50": {
"a": "item",
"t": "10",
"n": 150
},
"80": {
"a": "item",
"t": "611",
"n": 1
},
"120": {
"a": "attr",
"t": "nexp",
"n": 1500000
},
"160": {
"a": "item",
"t": "10",
"n": 150
},
"200": {
"a": "hero",
"t": "5005",
"n": 1
}
},
"buff": {
"atk": 93,
"def": 36,
"hp": 718
},
"upBuff": {
"atk": 16,
"def": 7,
"hp": 130
},
"privilege": {
"pjbb_rl": 100
},
"img": 3004,
"des": "mingDao_des_11",
"privilege_des": "mingDao_tequan_11"
},
"12": {
"id": 12,
"dao": 1012,
"name": "mingDao_name_12",
"undefined": "雷明顿M31霰弹枪",
"condition": [
[
"equip_star_5",
10
]
],
"level": 300,
"need": {
"a": "item",
"t": "21",
"n": 1
},
"needExp": 2250,
"reward": {
"20": {
"a": "attr",
"t": "jinbi",
"n": 3000000
},
"40": {
"a": "item",
"t": "24",
"n": 22
},
"60": {
"a": "item",
"t": "18",
"n": 250
},
"80": {
"a": "item",
"t": "10",
"n": 150
},
"100": {
"a": "item",
"t": "611",
"n": 1
},
"150": {
"a": "attr",
"t": "nexp",
"n": 2000000
},
"200": {
"a": "item",
"t": "10",
"n": 150
},
"250": {
"a": "hero",
"t": "5003",
"n": 1
}
},
"buff": {
"atk": 99,
"def": 40,
"hp": 783
},
"upBuff": {
"atk": 16,
"def": 7,
"hp": 136
},
"privilege": {
"hero_buff": {
"mingzhongpro": 0.03
}
},
"img": 3005,
"des": "mingDao_des_12",
"privilege_des": "mingDao_tequan_12"
},
"13": {
"id": 13,
"dao": 1013,
"name": "mingDao_name_13",
"undefined": "栓动式步枪",
"condition": [
[
"power",
8000000
]
],
"level": 350,
"need": {
"a": "item",
"t": "21",
"n": 1
},
"needExp": 2950,
"reward": {
"30": {
"a": "attr",
"t": "jinbi",
"n": 5000000
},
"60": {
"a": "item",
"t": "24",
"n": 24
},
"90": {
"a": "item",
"t": "18",
"n": 300
},
"120": {
"a": "item",
"t": "10",
"n": 150
},
"150": {
"a": "item",
"t": "611",
"n": 1
},
"200": {
"a": "attr",
"t": "nexp",
"n": 2000000
},
"250": {
"a": "item",
"t": "10",
"n": 150
},
"300": {
"a": "hero",
"t": "5001",
"n": 1
}
},
"buff": {
"atk": 108,
"def": 44,
"hp": 848
},
"upBuff": {
"atk": 16,
"def": 7,
"hp": 142
},
"privilege": {
"hero_buff": {
"shanbipro": 0.03
}
},
"img": 3007,
"des": "mingDao_des_13",
"privilege_des": "mingDao_tequan_13"
},
"14": {
"id": 14,
"dao": 1014,
"name": "mingDao_name_14",
"undefined": "M16自动步枪",
"condition": [
[
"zccg",
400
]
],
"level": 400,
"need": {
"a": "item",
"t": "21",
"n": 1
},
"needExp": 2950,
"reward": {
"30": {
"a": "attr",
"t": "jinbi",
"n": 5000000
},
"60": {
"a": "item",
"t": "24",
"n": 26
},
"100": {
"a": "item",
"t": "18",
"n": 400
},
"150": {
"a": "item",
"t": "10",
"n": 150
},
"200": {
"a": "item",
"t": "611",
"n": 1
},
"250": {
"a": "attr",
"t": "nexp",
"n": 2000000
},
"300": {
"a": "item",
"t": "10",
"n": 150
},
"350": {
"a": "hero",
"t": "5005",
"n": 1
}
},
"buff": {
"atk": 117,
"def": 48,
"hp": 913
},
"upBuff": {
"atk": 17,
"def": 8,
"hp": 148
},
"privilege": {
"hero_buff": {
"hppro": 0.06
}
},
"img": 3006,
"des": "mingDao_des_14",
"privilege_des": "mingDao_tequan_14"
} }
} }

View File

@ -14,6 +14,11 @@
p: 2, p: 2,
pmd: true, pmd: true,
prize: [{a: 'item', t: '5001', n: 20}, {a: 'item', t: '5003', n: 20}, {a: 'item', t: '5005', n: 20}] prize: [{a: 'item', t: '5001', n: 20}, {a: 'item', t: '5003', n: 20}, {a: 'item', t: '5005', n: 20}]
},
{
p: 1,
pmd: false,
prize: [{a: 'item', t: '638', n: 1}]
}, },
{ {
p: 5, p: 5,

File diff suppressed because it is too large Load Diff

View File

@ -835,13 +835,13 @@
"name": "zc_btn_hs", "name": "zc_btn_hs",
"undefined": "黑市", "undefined": "黑市",
"and": { "and": {
"lv": 15 "lv": 7
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_96", "tips": "openCond_tips_96",
"display": { "display": {
"lv": 15 "lv": 7
} }
}, },
"zc_btn_jg": { "zc_btn_jg": {
@ -887,78 +887,78 @@
"name": "shouchong", "name": "shouchong",
"undefined": "首充", "undefined": "首充",
"and": { "and": {
"mapId": 8 "lv": 7
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_64", "tips": "openCond_tips_64",
"display": { "display": {
"mapId": 8 "lv": 7
} }
}, },
"kaifukuanghuan": { "kaifukuanghuan": {
"name": "kaifukuanghuan", "name": "kaifukuanghuan",
"undefined": "开服狂欢", "undefined": "开服狂欢",
"and": { "and": {
"lv": 15 "lv": 10
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_96", "tips": "openCond_tips_96",
"display": { "display": {
"lv": 15 "lv": 10
} }
}, },
"cz_jijin": { "cz_jijin": {
"name": "cz_jijin", "name": "cz_jijin",
"undefined": "基金入口", "undefined": "基金入口",
"and": { "and": {
"mapId": 20 "lv": 7
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_64", "tips": "openCond_tips_64",
"display": { "display": {
"mapId": 20 "lv": 7
} }
}, },
"jijin": { "jijin": {
"name": "jijin", "name": "jijin",
"undefined": "基金", "undefined": "基金",
"and": { "and": {
"mapId": 20 "lv": 7
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_64", "tips": "openCond_tips_64",
"display": { "display": {
"mapId": 20 "lv": 7
} }
}, },
"jijin_gkjj": { "jijin_gkjj": {
"name": "jijin_gkjj", "name": "jijin_gkjj",
"undefined": "关卡基金", "undefined": "关卡基金",
"and": { "and": {
"mapId": 20 "lv": 7
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_64", "tips": "openCond_tips_64",
"display": { "display": {
"mapId": 20 "lv": 7
} }
}, },
"jijin_tbtxz": { "jijin_tbtxz": {
"name": "jijin_tbtxz", "name": "jijin_tbtxz",
"undefined": "特别通行证", "undefined": "特别通行证",
"and": { "and": {
"mapId": 20 "lv": 7
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_64", "tips": "openCond_tips_64",
"display": { "display": {
"mapId": 20 "lv": 7
} }
}, },
"jijin_tszl": { "jijin_tszl": {
@ -980,13 +980,13 @@
"name": "yuedujijin", "name": "yuedujijin",
"undefined": "月度基金", "undefined": "月度基金",
"and": { "and": {
"lv": 15 "lv": 7
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_71", "tips": "openCond_tips_71",
"display": { "display": {
"lv": 15 "lv": 7
} }
}, },
"zhanling": { "zhanling": {
@ -1006,130 +1006,130 @@
"name": "dengludali", "name": "dengludali",
"undefined": "登录大礼7日", "undefined": "登录大礼7日",
"and": { "and": {
"lv": 13 "lv": 10
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_73", "tips": "openCond_tips_73",
"display": { "display": {
"lv": 13 "lv": 10
} }
}, },
"yibaichou": { "yibaichou": {
"name": "yibaichou", "name": "yibaichou",
"undefined": "百抽活动", "undefined": "百抽活动",
"and": { "and": {
"lv": 7 "lv": 10
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_74", "tips": "openCond_tips_74",
"display": { "display": {
"lv": 7 "lv": 10
} }
}, },
"xinfupeiyang": { "xinfupeiyang": {
"name": "xinfupeiyang", "name": "xinfupeiyang",
"undefined": "心腹培养", "undefined": "心腹培养",
"and": { "and": {
"mapId": 20 "lv": 10
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_75", "tips": "openCond_tips_75",
"display": { "display": {
"mapId": 20 "lv": 10
} }
}, },
"huobanzhaomu": { "huobanzhaomu": {
"name": "huobanzhaomu", "name": "huobanzhaomu",
"undefined": "伙伴招募", "undefined": "伙伴招募",
"and": { "and": {
"mapId": 50 "lv": 10
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_76", "tips": "openCond_tips_76",
"display": { "display": {
"mapId": 50 "lv": 10
} }
}, },
"xinshoulibao": { "xinshoulibao": {
"name": "xinshoulibao", "name": "xinshoulibao",
"undefined": "冲刺礼包", "undefined": "冲刺礼包",
"and": { "and": {
"lv": 21 "lv": 7
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_77", "tips": "openCond_tips_77",
"display": { "display": {
"lv": 21 "lv": 7
} }
}, },
"leijichongzhi": { "leijichongzhi": {
"name": "leijichongzhi", "name": "leijichongzhi",
"undefined": "累计充值", "undefined": "累计充值",
"and": { "and": {
"mapId": 20 "lv": 10
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_78", "tips": "openCond_tips_96",
"display": { "display": {
"mapId": 20 "lv": 10
} }
}, },
"diaoluoduihuan": { "diaoluoduihuan": {
"name": "diaoluoduihuan", "name": "diaoluoduihuan",
"undefined": "掉落兑换", "undefined": "掉落兑换",
"and": { "and": {
"openTime": 8 "lv": 10
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_79", "tips": "openCond_tips_79",
"display": { "display": {
"openTime": 8 "lv": 10
} }
}, },
"rencaijihua": { "rencaijihua": {
"name": "rencaijihua", "name": "rencaijihua",
"undefined": "人才计划", "undefined": "人才计划",
"and": { "and": {
"lv": 13 "lv": 10
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_80", "tips": "openCond_tips_96",
"display": { "display": {
"lv": 13 "lv": 10
} }
}, },
"zc_img6": { "zc_img6": {
"name": "zc_img6", "name": "zc_img6",
"undefined": "每日签到", "undefined": "每日签到",
"and": { "and": {
"lv": 13 "lv": 7
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_81", "tips": "openCond_tips_81",
"display": { "display": {
"lv": 13 "lv": 7
} }
}, },
"dianfengrongyao": { "dianfengrongyao": {
"name": "dianfengrongyao", "name": "dianfengrongyao",
"undefined": "巅峰荣耀", "undefined": "巅峰荣耀",
"and": { "and": {
"lv": 20 "lv": 10
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_82", "tips": "openCond_tips_82",
"display": { "display": {
"lv": 20 "lv": 10
} }
}, },
"tuisonglibao": { "tuisonglibao": {
@ -1149,130 +1149,130 @@
"name": "hs_btn_tqlb", "name": "hs_btn_tqlb",
"undefined": "特权礼包", "undefined": "特权礼包",
"and": { "and": {
"lv": 15 "lv": 7
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_84", "tips": "openCond_tips_84",
"display": { "display": {
"lv": 15 "lv": 7
} }
}, },
"hs_btn_ndj": { "hs_btn_ndj": {
"name": "hs_btn_ndj", "name": "hs_btn_ndj",
"undefined": "扭蛋机", "undefined": "扭蛋机",
"and": { "and": {
"lv": 15 "lv": 7
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_85", "tips": "openCond_tips_85",
"display": { "display": {
"lv": 15 "lv": 7
} }
}, },
"hs_btn_yk": { "hs_btn_yk": {
"name": "hs_btn_yk", "name": "hs_btn_yk",
"undefined": "月卡", "undefined": "月卡",
"and": { "and": {
"lv": 15 "lv": 7
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_86", "tips": "openCond_tips_86",
"display": { "display": {
"lv": 15 "lv": 7
} }
}, },
"hs_btn_zsk": { "hs_btn_zsk": {
"name": "hs_btn_zsk", "name": "hs_btn_zsk",
"undefined": "终身卡", "undefined": "终身卡",
"and": { "and": {
"lv": 15 "lv": 7
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_87", "tips": "openCond_tips_87",
"display": { "display": {
"lv": 15 "lv": 7
} }
}, },
"hs_btn_mrjx": { "hs_btn_mrjx": {
"name": "hs_btn_mrjx", "name": "hs_btn_mrjx",
"undefined": "每日精选", "undefined": "每日精选",
"and": { "and": {
"lv": 15 "lv": 7
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_88", "tips": "openCond_tips_88",
"display": { "display": {
"lv": 15 "lv": 7
} }
}, },
"hs_btn_jthl": { "hs_btn_jthl": {
"name": "hs_btn_jthl", "name": "hs_btn_jthl",
"undefined": "积天豪礼", "undefined": "积天豪礼",
"and": { "and": {
"lv": 15 "lv": 7
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_89", "tips": "openCond_tips_89",
"display": { "display": {
"lv": 15 "lv": 7
} }
}, },
"hs_btn_zlb": { "hs_btn_zlb": {
"name": "hs_btn_zlb", "name": "hs_btn_zlb",
"undefined": "周礼包", "undefined": "周礼包",
"and": { "and": {
"lv": 15 "lv": 7
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_90", "tips": "openCond_tips_90",
"display": { "display": {
"lv": 15 "lv": 7
} }
}, },
"shangcheng": { "shangcheng": {
"name": "shangcheng", "name": "shangcheng",
"undefined": "商城", "undefined": "商城",
"and": { "and": {
"mapId": 20 "lv": 7
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_64", "tips": "openCond_tips_64",
"display": { "display": {
"mapId": 20 "lv": 7
} }
}, },
"fuli": { "fuli": {
"name": "fuli", "name": "fuli",
"undefined": "福利", "undefined": "福利",
"and": { "and": {
"lv": 13 "lv": 7
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_92", "tips": "openCond_tips_92",
"display": { "display": {
"lv": 13 "lv": 7
} }
}, },
"xianshihuodong": { "xianshihuodong": {
"name": "xianshihuodong", "name": "xianshihuodong",
"undefined": "限时活动", "undefined": "限时活动",
"and": { "and": {
"lv": 15 "lv": 10
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_93", "tips": "openCond_tips_93",
"display": { "display": {
"lv": 15 "lv": 10
} }
}, },
"hb_btn_yjtz": { "hb_btn_yjtz": {
@ -1285,111 +1285,124 @@
"time": 0, "time": 0,
"tips": "openCond_tips_94", "tips": "openCond_tips_94",
"display": { "display": {
"lv": 7 "lv": 30
} }
}, },
"kaifujingsai": { "kaifujingsai": {
"name": "kaifujingsai", "name": "kaifujingsai",
"undefined": "开服竞赛", "undefined": "开服竞赛",
"and": { "and": {
"lv": 20 "lv": 10
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_95", "tips": "openCond_tips_96",
"display": { "display": {
"lv": 20 "lv": 10
} }
}, },
"zhoumolibao": { "zhoumolibao": {
"name": "zhoumolibao", "name": "zhoumolibao",
"undefined": "周末礼包", "undefined": "周末礼包",
"and": { "and": {
"lv": 15 "lv": 10
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_96", "tips": "openCond_tips_96",
"display": { "display": {
"lv": 15 "lv": 10
} }
}, },
"shengdanhuodong": { "shengdanhuodong": {
"name": "shengdanhuodong", "name": "shengdanhuodong",
"undefined": "圣诞活动", "undefined": "圣诞活动",
"and": { "and": {
"lv": 15 "lv": 10
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_96", "tips": "openCond_tips_96",
"display": { "display": {
"lv": 15 "lv": 10
} }
}, },
"yuandanhuodong": { "yuandanhuodong": {
"name": "yuandanhuodong", "name": "yuandanhuodong",
"undefined": "元旦活动", "undefined": "元旦活动",
"and": { "and": {
"lv": 15 "lv": 10
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_96", "tips": "openCond_tips_96",
"display": { "display": {
"lv": 15 "lv": 10
} }
}, },
"czlibao": { "czlibao": {
"name": "czlibao", "name": "czlibao",
"undefined": "超值礼包破冰", "undefined": "超值礼包破冰",
"and": { "and": {
"lv": 15 "lv": 10
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_96", "tips": "openCond_tips_96",
"display": { "display": {
"lv": 15 "lv": 10
} }
}, },
"xiaofeijingsai": { "xiaofeijingsai": {
"name": "xiaofeijingsai", "name": "xiaofeijingsai",
"undefined": "钻石消费竞赛", "undefined": "钻石消费竞赛",
"and": { "and": {
"lv": 15 "lv": 10
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_96", "tips": "openCond_tips_96",
"display": { "display": {
"lv": 15 "lv": 10
} }
}, },
"leigoulibao": { "leigoulibao": {
"name": "leigoulibao", "name": "leigoulibao",
"undefined": "累购礼包", "undefined": "累购礼包",
"and": { "and": {
"lv": 15 "lv": 10
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_96", "tips": "openCond_tips_96",
"display": { "display": {
"lv": 15 "lv": 10
} }
}, },
"weiwang": { "weiwang": {
"name": "weiwang", "name": "weiwang",
"undefined": "威望", "undefined": "威望",
"and": { "and": {
"lv": 15 "lv": 12
}, },
"or": {}, "or": {},
"time": 0, "time": 0,
"tips": "openCond_tips_96", "tips": "openCond_tips_96",
"display": { "display": {
"lv": 15 "lv": 12
}
},
"huangqijiuiguan": {
"name": "huangqijiuiguan",
"undefined": "黄旗酒馆",
"and": {
"lv": 10
},
"or": {},
"time": 0,
"tips": "openCond_tips_96",
"display": {
"lv": 10
} }
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -3470,7 +3470,7 @@
"conversion": [], "conversion": [],
"buff": [ "buff": [
"baoshangpro", "baoshangpro",
3 0.03
], ],
"suit": 8, "suit": 8,
"rmPrize": [ "rmPrize": [

View File

@ -69,7 +69,7 @@
1001 1001
], ],
"intr": "intr_playerinfo_intr_1001", "intr": "intr_playerinfo_intr_1001",
"sort": 42, "sort": 43,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -84,7 +84,7 @@
1002 1002
], ],
"intr": "intr_playerinfo_intr_1002", "intr": "intr_playerinfo_intr_1002",
"sort": 43, "sort": 44,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -99,7 +99,7 @@
2001 2001
], ],
"intr": "intr_playerinfo_intr_2001", "intr": "intr_playerinfo_intr_2001",
"sort": 40, "sort": 41,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -114,7 +114,7 @@
2002 2002
], ],
"intr": "intr_playerinfo_intr_2002", "intr": "intr_playerinfo_intr_2002",
"sort": 41, "sort": 42,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -129,7 +129,7 @@
3001 3001
], ],
"intr": "intr_playerinfo_intr_3001", "intr": "intr_playerinfo_intr_3001",
"sort": 25, "sort": 26,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -144,7 +144,7 @@
3002 3002
], ],
"intr": "intr_playerinfo_intr_3002", "intr": "intr_playerinfo_intr_3002",
"sort": 26, "sort": 27,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -159,7 +159,7 @@
3003 3003
], ],
"intr": "intr_playerinfo_intr_3003", "intr": "intr_playerinfo_intr_3003",
"sort": 27, "sort": 28,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -174,7 +174,7 @@
3004 3004
], ],
"intr": "intr_playerinfo_intr_3004", "intr": "intr_playerinfo_intr_3004",
"sort": 28, "sort": 29,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -189,7 +189,7 @@
3005 3005
], ],
"intr": "intr_playerinfo_intr_3005", "intr": "intr_playerinfo_intr_3005",
"sort": 29, "sort": 30,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -204,7 +204,7 @@
3006 3006
], ],
"intr": "intr_playerinfo_intr_3006", "intr": "intr_playerinfo_intr_3006",
"sort": 30, "sort": 31,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -219,7 +219,7 @@
3007 3007
], ],
"intr": "intr_playerinfo_intr_3007", "intr": "intr_playerinfo_intr_3007",
"sort": 31, "sort": 32,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -234,7 +234,7 @@
3008 3008
], ],
"intr": "intr_playerinfo_intr_3008", "intr": "intr_playerinfo_intr_3008",
"sort": 32, "sort": 33,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -249,7 +249,7 @@
3009 3009
], ],
"intr": "intr_playerinfo_intr_3009", "intr": "intr_playerinfo_intr_3009",
"sort": 33, "sort": 34,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -264,7 +264,7 @@
3010 3010
], ],
"intr": "intr_playerinfo_intr_3010", "intr": "intr_playerinfo_intr_3010",
"sort": 34, "sort": 35,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -279,7 +279,7 @@
3011 3011
], ],
"intr": "intr_playerinfo_intr_3011", "intr": "intr_playerinfo_intr_3011",
"sort": 35, "sort": 36,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -294,7 +294,7 @@
3012 3012
], ],
"intr": "intr_playerinfo_intr_3012", "intr": "intr_playerinfo_intr_3012",
"sort": 36, "sort": 37,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -309,7 +309,7 @@
3013 3013
], ],
"intr": "intr_playerinfo_intr_3013", "intr": "intr_playerinfo_intr_3013",
"sort": 37, "sort": 38,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -324,7 +324,7 @@
3014 3014
], ],
"intr": "intr_playerinfo_intr_3014", "intr": "intr_playerinfo_intr_3014",
"sort": 38, "sort": 39,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -339,7 +339,7 @@
3015 3015
], ],
"intr": "intr_playerinfo_intr_3015", "intr": "intr_playerinfo_intr_3015",
"sort": 39, "sort": 40,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -354,7 +354,7 @@
4001 4001
], ],
"intr": "intr_playerinfo_intr_4001", "intr": "intr_playerinfo_intr_4001",
"sort": 10, "sort": 11,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -369,7 +369,7 @@
4002 4002
], ],
"intr": "intr_playerinfo_intr_4002", "intr": "intr_playerinfo_intr_4002",
"sort": 11, "sort": 12,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -384,7 +384,7 @@
4003 4003
], ],
"intr": "intr_playerinfo_intr_4003", "intr": "intr_playerinfo_intr_4003",
"sort": 12, "sort": 13,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -399,7 +399,7 @@
4004 4004
], ],
"intr": "intr_playerinfo_intr_4004", "intr": "intr_playerinfo_intr_4004",
"sort": 13, "sort": 14,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -414,7 +414,7 @@
4005 4005
], ],
"intr": "intr_playerinfo_intr_4005", "intr": "intr_playerinfo_intr_4005",
"sort": 14, "sort": 15,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -429,7 +429,7 @@
4006 4006
], ],
"intr": "intr_playerinfo_intr_4006", "intr": "intr_playerinfo_intr_4006",
"sort": 15, "sort": 16,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -444,7 +444,7 @@
4007 4007
], ],
"intr": "intr_playerinfo_intr_4007", "intr": "intr_playerinfo_intr_4007",
"sort": 16, "sort": 17,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -459,7 +459,7 @@
4008 4008
], ],
"intr": "intr_playerinfo_intr_4008", "intr": "intr_playerinfo_intr_4008",
"sort": 17, "sort": 18,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -474,7 +474,7 @@
4009 4009
], ],
"intr": "intr_playerinfo_intr_4009", "intr": "intr_playerinfo_intr_4009",
"sort": 18, "sort": 19,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -489,7 +489,7 @@
4010 4010
], ],
"intr": "intr_playerinfo_intr_4010", "intr": "intr_playerinfo_intr_4010",
"sort": 19, "sort": 20,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -504,7 +504,7 @@
4011 4011
], ],
"intr": "intr_playerinfo_intr_4011", "intr": "intr_playerinfo_intr_4011",
"sort": 20, "sort": 21,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -519,7 +519,7 @@
4012 4012
], ],
"intr": "intr_playerinfo_intr_4012", "intr": "intr_playerinfo_intr_4012",
"sort": 21, "sort": 22,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -527,14 +527,14 @@
"4013": { "4013": {
"id": 4013, "id": 4013,
"name": "intr_playerinfo_name_4013", "name": "intr_playerinfo_name_4013",
"undefined": "获得干部格里达尔后解锁", "undefined": "获得干部葛丽特后解锁",
"img": 4013, "img": 4013,
"cond": [ "cond": [
"hero", "hero",
4013 4013
], ],
"intr": "intr_playerinfo_intr_4013", "intr": "intr_playerinfo_intr_4013",
"sort": 22, "sort": 23,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -549,7 +549,7 @@
4014 4014
], ],
"intr": "intr_playerinfo_intr_4014", "intr": "intr_playerinfo_intr_4014",
"sort": 23, "sort": 24,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -564,7 +564,7 @@
4015 4015
], ],
"intr": "intr_playerinfo_intr_4015", "intr": "intr_playerinfo_intr_4015",
"sort": 24, "sort": 25,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -579,7 +579,7 @@
5001 5001
], ],
"intr": "intr_playerinfo_intr_5001", "intr": "intr_playerinfo_intr_5001",
"sort": 5, "sort": 6,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -594,7 +594,7 @@
5002 5002
], ],
"intr": "intr_playerinfo_intr_5002", "intr": "intr_playerinfo_intr_5002",
"sort": 6, "sort": 7,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -609,7 +609,7 @@
5003 5003
], ],
"intr": "intr_playerinfo_intr_5003", "intr": "intr_playerinfo_intr_5003",
"sort": 7, "sort": 8,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -624,7 +624,7 @@
5004 5004
], ],
"intr": "intr_playerinfo_intr_5004", "intr": "intr_playerinfo_intr_5004",
"sort": 8, "sort": 9,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""
@ -639,7 +639,22 @@
5005 5005
], ],
"intr": "intr_playerinfo_intr_5005", "intr": "intr_playerinfo_intr_5005",
"sort": 9, "sort": 10,
"buff": {},
"colour": 1,
"ani": ""
},
"50011": {
"id": 50011,
"name": "intr_playerinfo_name_50011",
"undefined": "获得干部莱薇外观【兔女郎】后解锁",
"img": 50011,
"cond": [
"heroskin",
50011
],
"intr": "intr_playerinfo_intr_50011",
"sort": 5,
"buff": {}, "buff": {},
"colour": 1, "colour": 1,
"ani": "" "ani": ""

View File

@ -139,7 +139,7 @@
"id": 9, "id": 9,
"name": "playerheadFrame_name_9", "name": "playerheadFrame_name_9",
"undefined": "名望等级达到五阶获得,解锁后防御加成+1%", "undefined": "名望等级达到五阶获得,解锁后防御加成+1%",
"img": "txk_005", "img": "txk_012",
"cond": [ "cond": [
"renown", "renown",
41 41
@ -311,7 +311,7 @@
"id": 19, "id": 19,
"name": "playerheadFrame_name_19", "name": "playerheadFrame_name_19",
"undefined": "开服冲榜活动获得,解锁后攻击加成+1%", "undefined": "开服冲榜活动获得,解锁后攻击加成+1%",
"img": "txk_004", "img": "txk_006",
"cond": [ "cond": [
"time", "time",
-1 -1
@ -395,8 +395,8 @@
"24": { "24": {
"id": 24, "id": 24,
"name": "playerheadFrame_name_24", "name": "playerheadFrame_name_24",
"undefined": "消费竞赛活动前三名获得,解锁后伤害加成+1%限时7天", "undefined": "消费竞赛活动获得,解锁后伤害加成+1%限时7天",
"img": "txk_025", "img": "txk_015",
"cond": [ "cond": [
"time", "time",
604800 604800
@ -425,5 +425,22 @@
}, },
"colour": 4, "colour": 4,
"ani": "" "ani": ""
},
"26": {
"id": 26,
"name": "playerheadFrame_name_26",
"undefined": "黄旗酒馆活动获得,解锁后生命加成+1%",
"img": "txk_007",
"cond": [
"time",
-1
],
"intr": "playerheadFrame_des_26",
"sort": 26,
"buff": {
"hppro": 0.01
},
"colour": 5,
"ani": ""
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -122,7 +122,7 @@
"9": { "9": {
"id": 9, "id": 9,
"renownlevel": 9, "renownlevel": 9,
"maxlevel": 11500, "maxlevel": 11250,
"cost": [ "cost": [
{ {
"a": "attr", "a": "attr",
@ -137,7 +137,7 @@
"10": { "10": {
"id": 10, "id": 10,
"renownlevel": 10, "renownlevel": 10,
"maxlevel": 14500, "maxlevel": 13750,
"cost": [ "cost": [
{ {
"a": "attr", "a": "attr",
@ -152,7 +152,7 @@
"11": { "11": {
"id": 11, "id": 11,
"renownlevel": 11, "renownlevel": 11,
"maxlevel": 18000, "maxlevel": 16500,
"cost": [ "cost": [
{ {
"a": "attr", "a": "attr",
@ -167,7 +167,7 @@
"12": { "12": {
"id": 12, "id": 12,
"renownlevel": 12, "renownlevel": 12,
"maxlevel": 22000, "maxlevel": 19500,
"cost": [ "cost": [
{ {
"a": "attr", "a": "attr",
@ -182,7 +182,7 @@
"13": { "13": {
"id": 13, "id": 13,
"renownlevel": 13, "renownlevel": 13,
"maxlevel": 26500, "maxlevel": 22750,
"cost": [ "cost": [
{ {
"a": "attr", "a": "attr",
@ -197,7 +197,7 @@
"14": { "14": {
"id": 14, "id": 14,
"renownlevel": 14, "renownlevel": 14,
"maxlevel": 31500, "maxlevel": 26250,
"cost": [ "cost": [
{ {
"a": "attr", "a": "attr",
@ -212,7 +212,7 @@
"15": { "15": {
"id": 15, "id": 15,
"renownlevel": 15, "renownlevel": 15,
"maxlevel": 36500, "maxlevel": 30000,
"cost": [ "cost": [
{ {
"a": "attr", "a": "attr",
@ -227,7 +227,7 @@
"16": { "16": {
"id": 16, "id": 16,
"renownlevel": 16, "renownlevel": 16,
"maxlevel": 41500, "maxlevel": 34000,
"cost": [ "cost": [
{ {
"a": "attr", "a": "attr",
@ -242,7 +242,7 @@
"17": { "17": {
"id": 17, "id": 17,
"renownlevel": 17, "renownlevel": 17,
"maxlevel": 46500, "maxlevel": 38250,
"cost": [ "cost": [
{ {
"a": "attr", "a": "attr",
@ -257,7 +257,7 @@
"18": { "18": {
"id": 18, "id": 18,
"renownlevel": 18, "renownlevel": 18,
"maxlevel": 51500, "maxlevel": 42750,
"cost": [ "cost": [
{ {
"a": "attr", "a": "attr",
@ -272,7 +272,7 @@
"19": { "19": {
"id": 19, "id": 19,
"renownlevel": 19, "renownlevel": 19,
"maxlevel": 56500, "maxlevel": 47500,
"cost": [ "cost": [
{ {
"a": "attr", "a": "attr",
@ -287,7 +287,7 @@
"20": { "20": {
"id": 20, "id": 20,
"renownlevel": 20, "renownlevel": 20,
"maxlevel": 61500, "maxlevel": 52500,
"cost": [ "cost": [
{ {
"a": "attr", "a": "attr",
@ -302,7 +302,7 @@
"21": { "21": {
"id": 21, "id": 21,
"renownlevel": 21, "renownlevel": 21,
"maxlevel": 66500, "maxlevel": 57500,
"cost": [ "cost": [
{ {
"a": "attr", "a": "attr",
@ -317,7 +317,7 @@
"22": { "22": {
"id": 22, "id": 22,
"renownlevel": 22, "renownlevel": 22,
"maxlevel": 71500, "maxlevel": 62500,
"cost": [ "cost": [
{ {
"a": "attr", "a": "attr",
@ -332,37 +332,7 @@
"23": { "23": {
"id": 23, "id": 23,
"renownlevel": 23, "renownlevel": 23,
"maxlevel": 76500, "maxlevel": 67500,
"cost": [
{
"a": "attr",
"t": "weiwang",
"n": 27
}
],
"atk": 1.4,
"def": 1.2,
"hp": 7
},
"24": {
"id": 24,
"renownlevel": 24,
"maxlevel": 81500,
"cost": [
{
"a": "attr",
"t": "weiwang",
"n": 29
}
],
"atk": 1.4,
"def": 1.2,
"hp": 7
},
"25": {
"id": 25,
"renownlevel": 25,
"maxlevel": 86500,
"cost": [ "cost": [
{ {
"a": "attr", "a": "attr",
@ -374,70 +344,25 @@
"def": 1.2, "def": 1.2,
"hp": 7 "hp": 7
}, },
"26": { "24": {
"id": 26, "id": 24,
"renownlevel": 26, "renownlevel": 24,
"maxlevel": 91500, "maxlevel": 72500,
"cost": [ "cost": [
{ {
"a": "attr", "a": "attr",
"t": "weiwang", "t": "weiwang",
"n": 32 "n": 35
} }
], ],
"atk": 1.4, "atk": 1.4,
"def": 1.2, "def": 1.2,
"hp": 8 "hp": 7
}, },
"27": { "25": {
"id": 27, "id": 25,
"renownlevel": 27, "renownlevel": 25,
"maxlevel": 96500, "maxlevel": 77500,
"cost": [
{
"a": "attr",
"t": "weiwang",
"n": 34
}
],
"atk": 1.4,
"def": 1.2,
"hp": 8
},
"28": {
"id": 28,
"renownlevel": 28,
"maxlevel": 101500,
"cost": [
{
"a": "attr",
"t": "weiwang",
"n": 36
}
],
"atk": 1.4,
"def": 1.2,
"hp": 8
},
"29": {
"id": 29,
"renownlevel": 29,
"maxlevel": 106500,
"cost": [
{
"a": "attr",
"t": "weiwang",
"n": 38
}
],
"atk": 1.4,
"def": 1.2,
"hp": 8
},
"30": {
"id": 30,
"renownlevel": 30,
"maxlevel": 111500,
"cost": [ "cost": [
{ {
"a": "attr", "a": "attr",
@ -447,72 +372,27 @@
], ],
"atk": 1.4, "atk": 1.4,
"def": 1.2, "def": 1.2,
"hp": 8 "hp": 7
}, },
"31": { "26": {
"id": 31, "id": 26,
"renownlevel": 31, "renownlevel": 26,
"maxlevel": 116500, "maxlevel": 82500,
"cost": [ "cost": [
{ {
"a": "attr", "a": "attr",
"t": "weiwang", "t": "weiwang",
"n": 42 "n": 45
} }
], ],
"atk": 1.4, "atk": 1.4,
"def": 1.2, "def": 1.2,
"hp": 8 "hp": 8
}, },
"32": { "27": {
"id": 32, "id": 27,
"renownlevel": 32, "renownlevel": 27,
"maxlevel": 121500, "maxlevel": 87500,
"cost": [
{
"a": "attr",
"t": "weiwang",
"n": 44
}
],
"atk": 1.4,
"def": 1.2,
"hp": 8
},
"33": {
"id": 33,
"renownlevel": 33,
"maxlevel": 126500,
"cost": [
{
"a": "attr",
"t": "weiwang",
"n": 46
}
],
"atk": 1.4,
"def": 1.2,
"hp": 8
},
"34": {
"id": 34,
"renownlevel": 34,
"maxlevel": 131500,
"cost": [
{
"a": "attr",
"t": "weiwang",
"n": 48
}
],
"atk": 1.4,
"def": 1.2,
"hp": 8
},
"35": {
"id": 35,
"renownlevel": 35,
"maxlevel": 136500,
"cost": [ "cost": [
{ {
"a": "attr", "a": "attr",
@ -524,70 +404,10 @@
"def": 1.2, "def": 1.2,
"hp": 8 "hp": 8
}, },
"36": { "28": {
"id": 36, "id": 28,
"renownlevel": 36, "renownlevel": 28,
"maxlevel": 141500, "maxlevel": 92500,
"cost": [
{
"a": "attr",
"t": "weiwang",
"n": 52
}
],
"atk": 1.4,
"def": 1.2,
"hp": 8
},
"37": {
"id": 37,
"renownlevel": 37,
"maxlevel": 146500,
"cost": [
{
"a": "attr",
"t": "weiwang",
"n": 54
}
],
"atk": 1.4,
"def": 1.2,
"hp": 8
},
"38": {
"id": 38,
"renownlevel": 38,
"maxlevel": 151500,
"cost": [
{
"a": "attr",
"t": "weiwang",
"n": 56
}
],
"atk": 1.4,
"def": 1.2,
"hp": 8
},
"39": {
"id": 39,
"renownlevel": 39,
"maxlevel": 156500,
"cost": [
{
"a": "attr",
"t": "weiwang",
"n": 58
}
],
"atk": 1.4,
"def": 1.2,
"hp": 8
},
"40": {
"id": 40,
"renownlevel": 40,
"maxlevel": 161500,
"cost": [ "cost": [
{ {
"a": "attr", "a": "attr",
@ -598,5 +418,185 @@
"atk": 1.4, "atk": 1.4,
"def": 1.2, "def": 1.2,
"hp": 8 "hp": 8
},
"29": {
"id": 29,
"renownlevel": 29,
"maxlevel": 97500,
"cost": [
{
"a": "attr",
"t": "weiwang",
"n": 80
}
],
"atk": 1.4,
"def": 1.2,
"hp": 8
},
"30": {
"id": 30,
"renownlevel": 30,
"maxlevel": 102500,
"cost": [
{
"a": "attr",
"t": "weiwang",
"n": 100
}
],
"atk": 1.4,
"def": 1.2,
"hp": 8
},
"31": {
"id": 31,
"renownlevel": 31,
"maxlevel": 107500,
"cost": [
{
"a": "attr",
"t": "weiwang",
"n": 120
}
],
"atk": 1.4,
"def": 1.2,
"hp": 8
},
"32": {
"id": 32,
"renownlevel": 32,
"maxlevel": 112500,
"cost": [
{
"a": "attr",
"t": "weiwang",
"n": 140
}
],
"atk": 1.4,
"def": 1.2,
"hp": 8
},
"33": {
"id": 33,
"renownlevel": 33,
"maxlevel": 117500,
"cost": [
{
"a": "attr",
"t": "weiwang",
"n": 180
}
],
"atk": 1.4,
"def": 1.2,
"hp": 8
},
"34": {
"id": 34,
"renownlevel": 34,
"maxlevel": 122500,
"cost": [
{
"a": "attr",
"t": "weiwang",
"n": 220
}
],
"atk": 1.4,
"def": 1.2,
"hp": 8
},
"35": {
"id": 35,
"renownlevel": 35,
"maxlevel": 127500,
"cost": [
{
"a": "attr",
"t": "weiwang",
"n": 260
}
],
"atk": 1.4,
"def": 1.2,
"hp": 8
},
"36": {
"id": 36,
"renownlevel": 36,
"maxlevel": 132500,
"cost": [
{
"a": "attr",
"t": "weiwang",
"n": 300
}
],
"atk": 1.4,
"def": 1.2,
"hp": 8
},
"37": {
"id": 37,
"renownlevel": 37,
"maxlevel": 137500,
"cost": [
{
"a": "attr",
"t": "weiwang",
"n": 350
}
],
"atk": 1.4,
"def": 1.2,
"hp": 8
},
"38": {
"id": 38,
"renownlevel": 38,
"maxlevel": 142500,
"cost": [
{
"a": "attr",
"t": "weiwang",
"n": 400
}
],
"atk": 1.4,
"def": 1.2,
"hp": 8
},
"39": {
"id": 39,
"renownlevel": 39,
"maxlevel": 147500,
"cost": [
{
"a": "attr",
"t": "weiwang",
"n": 450
}
],
"atk": 1.4,
"def": 1.2,
"hp": 8
},
"40": {
"id": 40,
"renownlevel": 40,
"maxlevel": 152500,
"cost": [
{
"a": "attr",
"t": "weiwang",
"n": 500
}
],
"atk": 1.4,
"def": 1.2,
"hp": 8
} }
} }

View File

@ -20,7 +20,7 @@
{ need: [{a: 'attr', t: 'rmbmoney', n: 200}], prize: [{a: 'item', t: '15', n: 300}], maxNum: 3, addExp: 100, vipAddNum: [1,1,1,1,1,1,1,1,3,3,3,5,5,7,9,13,15,21] }, { need: [{a: 'attr', t: 'rmbmoney', n: 200}], prize: [{a: 'item', t: '15', n: 300}], maxNum: 3, addExp: 100, vipAddNum: [1,1,1,1,1,1,1,1,3,3,3,5,5,7,9,13,15,21] },
], ],
//弹劾时间 //弹劾时间
tanheTime: 86400, tanheTime: 259200,
//公会任务 //公会任务
ghTask: [ ghTask: [
{ total: 30, prize: [{a: 'item', t: '19', n: 1},{a: 'item', t: '9', n: 10},{a: 'attr', t: 'jinbi', n: 50000}]}, { total: 30, prize: [{a: 'item', t: '19', n: 1},{a: 'item', t: '9', n: 10},{a: 'attr', t: 'jinbi', n: 50000}]},

View File

@ -100,7 +100,7 @@
] ]
}, },
{ {
"addhp": [ "addmaxhp": [
0.004, 0.004,
0.008 0.008
] ]
@ -162,7 +162,7 @@
] ]
}, },
{ {
"addhp": [ "addmaxhp": [
0.006, 0.006,
0.01 0.01
] ]
@ -224,7 +224,7 @@
] ]
}, },
{ {
"addhp": [ "addmaxhp": [
0.09, 0.09,
0.013 0.013
] ]
@ -286,7 +286,7 @@
] ]
}, },
{ {
"addhp": [ "addmaxhp": [
0.011, 0.011,
0.016 0.016
] ]
@ -348,7 +348,7 @@
] ]
}, },
{ {
"addhp": [ "addmaxhp": [
0.012, 0.012,
0.02 0.02
] ]
@ -360,27 +360,27 @@
{ {
"range": [ "range": [
0, 0,
0.33 0.333
], ],
"color": 2 "color": 2
}, },
{ {
"range": [ "range": [
0.33, 0.334,
0.66 0.666
], ],
"color": 3 "color": 3
}, },
{ {
"range": [ "range": [
0.66, 0.667,
0.99 0.999
], ],
"color": 4 "color": 4
}, },
{ {
"range": [ "range": [
0.99, 0.999,
1 1
], ],
"color": 5 "color": 5

View File

@ -1705,13 +1705,13 @@
"sxleixing": "attr", "sxleixing": "attr",
"buff_type": 1, "buff_type": 1,
"xiaoguocanshu": { "xiaoguocanshu": {
"dpspro": 2 "dpspro": 1
}, },
"round": 2, "round": 3,
"group": "tx01300", "group": "tx01300",
"jiejiaxiaoguo": "retime", "jiejiaxiaoguo": "retime",
"diejiacengshu": 1, "diejiacengshu": 1,
"describe": "进入战斗后的前2回合进入致命状态攻击敌人时有0.01的几率造成双倍伤害" "describe": "进入战斗后的前2回合进入致命状态攻击敌人时有1%的几率造成双倍伤害"
}, },
"tx01301": { "tx01301": {
"skillid": "tx01301", "skillid": "tx01301",
@ -1724,13 +1724,13 @@
"sxleixing": "attr", "sxleixing": "attr",
"buff_type": 1, "buff_type": 1,
"xiaoguocanshu": { "xiaoguocanshu": {
"dpspro": 2 "dpspro": 1
}, },
"round": 2, "round": 3,
"group": "tx01300", "group": "tx01300",
"jiejiaxiaoguo": "retime", "jiejiaxiaoguo": "retime",
"diejiacengshu": 1, "diejiacengshu": 1,
"describe": "进入战斗后的前2回合进入致命状态攻击敌人时有0.02的几率造成双倍伤害" "describe": "进入战斗后的前2回合进入致命状态攻击敌人时有2%的几率造成双倍伤害"
}, },
"tx01302": { "tx01302": {
"skillid": "tx01302", "skillid": "tx01302",
@ -1743,13 +1743,13 @@
"sxleixing": "attr", "sxleixing": "attr",
"buff_type": 1, "buff_type": 1,
"xiaoguocanshu": { "xiaoguocanshu": {
"dpspro": 2 "dpspro": 1
}, },
"round": 2, "round": 3,
"group": "tx01300", "group": "tx01300",
"jiejiaxiaoguo": "retime", "jiejiaxiaoguo": "retime",
"diejiacengshu": 1, "diejiacengshu": 1,
"describe": "进入战斗后的前2回合进入致命状态攻击敌人时有0.03的几率造成双倍伤害" "describe": "进入战斗后的前2回合进入致命状态攻击敌人时有3%的几率造成双倍伤害"
}, },
"tx01303": { "tx01303": {
"skillid": "tx01303", "skillid": "tx01303",
@ -1762,13 +1762,13 @@
"sxleixing": "attr", "sxleixing": "attr",
"buff_type": 1, "buff_type": 1,
"xiaoguocanshu": { "xiaoguocanshu": {
"dpspro": 2 "dpspro": 1
}, },
"round": 2, "round": 3,
"group": "tx01300", "group": "tx01300",
"jiejiaxiaoguo": "retime", "jiejiaxiaoguo": "retime",
"diejiacengshu": 1, "diejiacengshu": 1,
"describe": "进入战斗后的前2回合进入致命状态攻击敌人时有0.04的几率造成双倍伤害" "describe": "进入战斗后的前2回合进入致命状态攻击敌人时有4%的几率造成双倍伤害"
}, },
"tx01304": { "tx01304": {
"skillid": "tx01304", "skillid": "tx01304",
@ -1781,13 +1781,13 @@
"sxleixing": "attr", "sxleixing": "attr",
"buff_type": 1, "buff_type": 1,
"xiaoguocanshu": { "xiaoguocanshu": {
"dpspro": 2 "dpspro": 1
}, },
"round": 2, "round": 3,
"group": "tx01300", "group": "tx01300",
"jiejiaxiaoguo": "retime", "jiejiaxiaoguo": "retime",
"diejiacengshu": 1, "diejiacengshu": 1,
"describe": "进入战斗后的前2回合进入致命状态攻击敌人时有0.05的几率造成双倍伤害" "describe": "进入战斗后的前2回合进入致命状态攻击敌人时有5%的几率造成双倍伤害"
}, },
"tx01305": { "tx01305": {
"skillid": "tx01305", "skillid": "tx01305",
@ -1800,13 +1800,13 @@
"sxleixing": "attr", "sxleixing": "attr",
"buff_type": 1, "buff_type": 1,
"xiaoguocanshu": { "xiaoguocanshu": {
"dpspro": 2 "dpspro": 1
}, },
"round": 2, "round": 3,
"group": "tx01300", "group": "tx01300",
"jiejiaxiaoguo": "retime", "jiejiaxiaoguo": "retime",
"diejiacengshu": 1, "diejiacengshu": 1,
"describe": "进入战斗后的前2回合进入致命状态攻击敌人时有0.06的几率造成双倍伤害" "describe": "进入战斗后的前2回合进入致命状态攻击敌人时有6%的几率造成双倍伤害"
}, },
"tx01306": { "tx01306": {
"skillid": "tx01306", "skillid": "tx01306",
@ -1819,13 +1819,13 @@
"sxleixing": "attr", "sxleixing": "attr",
"buff_type": 1, "buff_type": 1,
"xiaoguocanshu": { "xiaoguocanshu": {
"dpspro": 2 "dpspro": 1
}, },
"round": 2, "round": 3,
"group": "tx01300", "group": "tx01300",
"jiejiaxiaoguo": "retime", "jiejiaxiaoguo": "retime",
"diejiacengshu": 1, "diejiacengshu": 1,
"describe": "进入战斗后的前2回合进入致命状态攻击敌人时有0.07的几率造成双倍伤害" "describe": "进入战斗后的前2回合进入致命状态攻击敌人时有7%的几率造成双倍伤害"
}, },
"tx01307": { "tx01307": {
"skillid": "tx01307", "skillid": "tx01307",
@ -1838,13 +1838,13 @@
"sxleixing": "attr", "sxleixing": "attr",
"buff_type": 1, "buff_type": 1,
"xiaoguocanshu": { "xiaoguocanshu": {
"dpspro": 2 "dpspro": 1
}, },
"round": 2, "round": 3,
"group": "tx01300", "group": "tx01300",
"jiejiaxiaoguo": "retime", "jiejiaxiaoguo": "retime",
"diejiacengshu": 1, "diejiacengshu": 1,
"describe": "进入战斗后的前2回合进入致命状态攻击敌人时有0.08的几率造成双倍伤害" "describe": "进入战斗后的前2回合进入致命状态攻击敌人时有8%的几率造成双倍伤害"
}, },
"tx01308": { "tx01308": {
"skillid": "tx01308", "skillid": "tx01308",
@ -1857,13 +1857,13 @@
"sxleixing": "attr", "sxleixing": "attr",
"buff_type": 1, "buff_type": 1,
"xiaoguocanshu": { "xiaoguocanshu": {
"dpspro": 2 "dpspro": 1
}, },
"round": 2, "round": 3,
"group": "tx01300", "group": "tx01300",
"jiejiaxiaoguo": "retime", "jiejiaxiaoguo": "retime",
"diejiacengshu": 1, "diejiacengshu": 1,
"describe": "进入战斗后的前2回合进入致命状态攻击敌人时有0.09的几率造成双倍伤害" "describe": "进入战斗后的前2回合进入致命状态攻击敌人时有9%的几率造成双倍伤害"
}, },
"tx01309": { "tx01309": {
"skillid": "tx01309", "skillid": "tx01309",
@ -1876,13 +1876,13 @@
"sxleixing": "attr", "sxleixing": "attr",
"buff_type": 1, "buff_type": 1,
"xiaoguocanshu": { "xiaoguocanshu": {
"dpspro": 2 "dpspro": 1
}, },
"round": 2, "round": 3,
"group": "tx01300", "group": "tx01300",
"jiejiaxiaoguo": "retime", "jiejiaxiaoguo": "retime",
"diejiacengshu": 1, "diejiacengshu": 1,
"describe": "进入战斗后的前2回合进入致命状态攻击敌人时有0.10的几率造成双倍伤害" "describe": "进入战斗后的前2回合进入致命状态攻击敌人时有10%的几率造成双倍伤害"
}, },
"tx02300": { "tx02300": {
"skillid": "tx02300", "skillid": "tx02300",

View File

@ -4,7 +4,7 @@
//开放时间 //开放时间
openTime: [0, 514800], openTime: [0, 514800],
//结算定时器时间 //结算定时器时间
schedulerPrize: 597600, schedulerPrize: 515100,
//分组定时器时间 //分组定时器时间
schedulerGroup: 0, schedulerGroup: 0,
//据点 //据点

File diff suppressed because it is too large Load Diff

View File

@ -1402,5 +1402,135 @@
], ],
"chapter": 14, "chapter": 14,
"des": "intr_guanqia_des_1" "des": "intr_guanqia_des_1"
},
"109": {
"id": 109,
"mapId": 1090,
"prize": [
{
"a": "attr",
"t": "rmbmoney",
"n": 100
}
],
"chapter": 14,
"des": "intr_guanqia_des_1"
},
"110": {
"id": 110,
"mapId": 1100,
"prize": [
{
"a": "attr",
"t": "rmbmoney",
"n": 100
}
],
"chapter": 14,
"des": "intr_guanqia_des_1"
},
"111": {
"id": 111,
"mapId": 1110,
"prize": [
{
"a": "attr",
"t": "rmbmoney",
"n": 100
}
],
"chapter": 14,
"des": "intr_guanqia_des_1"
},
"112": {
"id": 112,
"mapId": 1120,
"prize": [
{
"a": "attr",
"t": "rmbmoney",
"n": 100
}
],
"chapter": 14,
"des": "intr_guanqia_des_1"
},
"113": {
"id": 113,
"mapId": 1130,
"prize": [
{
"a": "item",
"t": "4",
"n": 5
}
],
"chapter": 14,
"des": "intr_guanqia_des_1"
},
"114": {
"id": 114,
"mapId": 1140,
"prize": [
{
"a": "attr",
"t": "rmbmoney",
"n": 100
}
],
"chapter": 14,
"des": "intr_guanqia_des_1"
},
"115": {
"id": 115,
"mapId": 1150,
"prize": [
{
"a": "attr",
"t": "rmbmoney",
"n": 100
}
],
"chapter": 14,
"des": "intr_guanqia_des_1"
},
"116": {
"id": 116,
"mapId": 1160,
"prize": [
{
"a": "attr",
"t": "rmbmoney",
"n": 100
}
],
"chapter": 14,
"des": "intr_guanqia_des_1"
},
"117": {
"id": 117,
"mapId": 1170,
"prize": [
{
"a": "attr",
"t": "rmbmoney",
"n": 100
}
],
"chapter": 14,
"des": "intr_guanqia_des_1"
},
"118": {
"id": 118,
"mapId": 1180,
"prize": [
{
"a": "item",
"t": "4",
"n": 5
}
],
"chapter": 14,
"des": "intr_guanqia_des_1"
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -588,5 +588,155 @@
"displayCD": 3600, "displayCD": 3600,
"scale": 3000, "scale": 3000,
"icon": "djlb" "icon": "djlb"
},
"501": {
"id": 501,
"type": 6,
"typeName": "tuisonglibao_name_6",
"num": [
250
],
"payId": [
"yxl_libao_1,yxl_libao_2"
],
"time": 10800,
"displayCD": 10800,
"scale": 3000,
"icon": "gkts"
},
"502": {
"id": 502,
"type": 6,
"typeName": "tuisonglibao_name_6",
"num": [
250
],
"payId": [
"yxl_libao_1,yxl_libao_2"
],
"time": 10800,
"displayCD": 10800,
"scale": 3000,
"icon": "gkts"
},
"503": {
"id": 503,
"type": 6,
"typeName": "tuisonglibao_name_6",
"num": [
19500
],
"payId": [
"yxl_libao_1,yxl_libao_2"
],
"time": 10800,
"displayCD": 10800,
"scale": 3000,
"icon": "gkts"
},
"504": {
"id": 504,
"type": 6,
"typeName": "tuisonglibao_name_6",
"num": [
19500
],
"payId": [
"yxl_libao_1,yxl_libao_2"
],
"time": 10800,
"displayCD": 10800,
"scale": 3000,
"icon": "gkts"
},
"505": {
"id": 505,
"type": 6,
"typeName": "tuisonglibao_name_6",
"num": [
30000
],
"payId": [
"yxl_libao_1,yxl_libao_2"
],
"time": 10800,
"displayCD": 10800,
"scale": 3000,
"icon": "gkts"
},
"506": {
"id": 506,
"type": 6,
"typeName": "tuisonglibao_name_6",
"num": [
30000
],
"payId": [
"yxl_libao_1,yxl_libao_2"
],
"time": 10800,
"displayCD": 10800,
"scale": 3000,
"icon": "gkts"
},
"507": {
"id": 507,
"type": 6,
"typeName": "tuisonglibao_name_6",
"num": [
42750
],
"payId": [
"yxl_libao_2,yxl_libao_3"
],
"time": 10800,
"displayCD": 10800,
"scale": 3000,
"icon": "gkts"
},
"508": {
"id": 508,
"type": 6,
"typeName": "tuisonglibao_name_6",
"num": [
42750
],
"payId": [
"yxl_libao_2,yxl_libao_3"
],
"time": 10800,
"displayCD": 10800,
"scale": 3000,
"icon": "gkts"
},
"509": {
"id": 509,
"type": 6,
"typeName": "tuisonglibao_name_6",
"num": [
62500
],
"payId": [
"yxl_libao_2,yxl_libao_3"
],
"time": 10800,
"displayCD": 10800,
"scale": 3000,
"icon": "gkts"
},
"510": {
"id": 510,
"type": 6,
"typeName": "tuisonglibao_name_6",
"num": [
62500
],
"payId": [
"yxl_libao_2,yxl_libao_3"
],
"time": 10800,
"displayCD": 10800,
"scale": 3000,
"icon": "gkts"
} }
} }

View File

@ -17,7 +17,7 @@
"p": 5, "p": 5,
"intr": "intr_xuanshangrenwu_intr_1", "intr": "intr_xuanshangrenwu_intr_1",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 0 "jiequNum": 0
}, },
"2": { "2": {
"id": 2, "id": 2,
@ -37,7 +37,7 @@
"p": 3, "p": 3,
"intr": "intr_xuanshangrenwu_intr_2", "intr": "intr_xuanshangrenwu_intr_2",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 0 "jiequNum": 0
}, },
"3": { "3": {
"id": 3, "id": 3,
@ -57,7 +57,7 @@
"p": 5, "p": 5,
"intr": "intr_xuanshangrenwu_intr_3", "intr": "intr_xuanshangrenwu_intr_3",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 0 "jiequNum": 0
}, },
"4": { "4": {
"id": 4, "id": 4,
@ -77,7 +77,7 @@
"p": 1, "p": 1,
"intr": "intr_xuanshangrenwu_intr_4", "intr": "intr_xuanshangrenwu_intr_4",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 3 "jiequNum": 3
}, },
"5": { "5": {
"id": 5, "id": 5,
@ -97,7 +97,7 @@
"p": 3, "p": 3,
"intr": "intr_xuanshangrenwu_intr_5", "intr": "intr_xuanshangrenwu_intr_5",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 0 "jiequNum": 0
}, },
"6": { "6": {
"id": 6, "id": 6,
@ -117,7 +117,7 @@
"p": 5, "p": 5,
"intr": "intr_xuanshangrenwu_intr_4", "intr": "intr_xuanshangrenwu_intr_4",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 3 "jiequNum": 3
}, },
"7": { "7": {
"id": 7, "id": 7,
@ -137,7 +137,7 @@
"p": 3, "p": 3,
"intr": "intr_xuanshangrenwu_intr_5", "intr": "intr_xuanshangrenwu_intr_5",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 0 "jiequNum": 0
}, },
"8": { "8": {
"id": 8, "id": 8,
@ -157,7 +157,7 @@
"p": 5, "p": 5,
"intr": "intr_xuanshangrenwu_intr_6", "intr": "intr_xuanshangrenwu_intr_6",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 0 "jiequNum": 0
}, },
"9": { "9": {
"id": 9, "id": 9,
@ -177,7 +177,7 @@
"p": 1, "p": 1,
"intr": "intr_xuanshangrenwu_intr_7", "intr": "intr_xuanshangrenwu_intr_7",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 0 "jiequNum": 0
}, },
"10": { "10": {
"id": 10, "id": 10,
@ -197,7 +197,7 @@
"p": 3, "p": 3,
"intr": "intr_xuanshangrenwu_intr_8", "intr": "intr_xuanshangrenwu_intr_8",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 0 "jiequNum": 0
}, },
"11": { "11": {
"id": 11, "id": 11,
@ -217,7 +217,7 @@
"p": 5, "p": 5,
"intr": "intr_xuanshangrenwu_intr_6", "intr": "intr_xuanshangrenwu_intr_6",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 0 "jiequNum": 0
}, },
"12": { "12": {
"id": 12, "id": 12,
@ -237,7 +237,7 @@
"p": 3, "p": 3,
"intr": "intr_xuanshangrenwu_intr_7", "intr": "intr_xuanshangrenwu_intr_7",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 0 "jiequNum": 0
}, },
"13": { "13": {
"id": 13, "id": 13,
@ -257,7 +257,7 @@
"p": 3, "p": 3,
"intr": "intr_xuanshangrenwu_intr_8", "intr": "intr_xuanshangrenwu_intr_8",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 0 "jiequNum": 0
}, },
"14": { "14": {
"id": 14, "id": 14,
@ -277,7 +277,7 @@
"p": 5, "p": 5,
"intr": "intr_xuanshangrenwu_intr_9", "intr": "intr_xuanshangrenwu_intr_9",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 0 "jiequNum": 0
}, },
"15": { "15": {
"id": 15, "id": 15,
@ -297,7 +297,7 @@
"p": 2, "p": 2,
"intr": "intr_xuanshangrenwu_intr_10", "intr": "intr_xuanshangrenwu_intr_10",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 3 "jiequNum": 3
}, },
"16": { "16": {
"id": 16, "id": 16,
@ -317,7 +317,7 @@
"p": 4, "p": 4,
"intr": "intr_xuanshangrenwu_intr_8", "intr": "intr_xuanshangrenwu_intr_8",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 0 "jiequNum": 0
}, },
"17": { "17": {
"id": 17, "id": 17,
@ -337,7 +337,7 @@
"p": 5, "p": 5,
"intr": "intr_xuanshangrenwu_intr_9", "intr": "intr_xuanshangrenwu_intr_9",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 0 "jiequNum": 0
}, },
"18": { "18": {
"id": 18, "id": 18,
@ -357,7 +357,7 @@
"p": 1, "p": 1,
"intr": "intr_xuanshangrenwu_intr_10", "intr": "intr_xuanshangrenwu_intr_10",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 3 "jiequNum": 3
}, },
"19": { "19": {
"id": 19, "id": 19,
@ -377,7 +377,7 @@
"p": 4, "p": 4,
"intr": "intr_xuanshangrenwu_intr_11", "intr": "intr_xuanshangrenwu_intr_11",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 0 "jiequNum": 0
}, },
"20": { "20": {
"id": 20, "id": 20,
@ -397,7 +397,7 @@
"p": 4, "p": 4,
"intr": "intr_xuanshangrenwu_intr_12", "intr": "intr_xuanshangrenwu_intr_12",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 0 "jiequNum": 0
}, },
"21": { "21": {
"id": 21, "id": 21,
@ -417,7 +417,7 @@
"p": 3, "p": 3,
"intr": "intr_xuanshangrenwu_intr_11", "intr": "intr_xuanshangrenwu_intr_11",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 0 "jiequNum": 0
}, },
"22": { "22": {
"id": 22, "id": 22,
@ -437,7 +437,7 @@
"p": 2, "p": 2,
"intr": "intr_xuanshangrenwu_intr_12", "intr": "intr_xuanshangrenwu_intr_12",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 0 "jiequNum": 0
}, },
"23": { "23": {
"id": 23, "id": 23,
@ -457,7 +457,7 @@
"p": 1, "p": 1,
"intr": "intr_xuanshangrenwu_intr_13", "intr": "intr_xuanshangrenwu_intr_13",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 3 "jiequNum": 3
}, },
"24": { "24": {
"id": 24, "id": 24,
@ -477,7 +477,7 @@
"p": 5, "p": 5,
"intr": "intr_xuanshangrenwu_intr_14", "intr": "intr_xuanshangrenwu_intr_14",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 0 "jiequNum": 0
}, },
"25": { "25": {
"id": 25, "id": 25,
@ -497,7 +497,7 @@
"p": 2, "p": 2,
"intr": "intr_xuanshangrenwu_intr_15", "intr": "intr_xuanshangrenwu_intr_15",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 0 "jiequNum": 0
}, },
"26": { "26": {
"id": 26, "id": 26,
@ -517,7 +517,7 @@
"p": 5, "p": 5,
"intr": "intr_xuanshangrenwu_intr_14", "intr": "intr_xuanshangrenwu_intr_14",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 0 "jiequNum": 0
}, },
"27": { "27": {
"id": 27, "id": 27,
@ -537,7 +537,7 @@
"p": 5, "p": 5,
"intr": "intr_xuanshangrenwu_intr_15", "intr": "intr_xuanshangrenwu_intr_15",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 0 "jiequNum": 0
}, },
"28": { "28": {
"id": 28, "id": 28,
@ -557,7 +557,7 @@
"p": 1, "p": 1,
"intr": "intr_xuanshangrenwu_intr_16", "intr": "intr_xuanshangrenwu_intr_16",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 3 "jiequNum": 3
}, },
"29": { "29": {
"id": 29, "id": 29,
@ -577,7 +577,7 @@
"p": 2, "p": 2,
"intr": "intr_xuanshangrenwu_intr_17", "intr": "intr_xuanshangrenwu_intr_17",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 0 "jiequNum": 0
}, },
"30": { "30": {
"id": 30, "id": 30,
@ -597,6 +597,6 @@
"p": 4, "p": 4,
"intr": "intr_xuanshangrenwu_intr_18", "intr": "intr_xuanshangrenwu_intr_18",
"img": "icon_jinbi", "img": "icon_jinbi",
"appearNum": 0 "jiequNum": 0
} }
} }

View File

@ -106,6 +106,18 @@ type gc_clsl_com = {
"divide": { "day": [number, number], "group": number, [x: string]: any }[], "divideTime": number, "fightTime": [number, number], "prizeTime": number, "fightWinPrize": { "total": number, "prize": { "a": string, "t": string, "n": number, [x: string]: any }[], "star": number, [x: string]: any }[], "fightNum": number, "vipBuyFightNum": [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], "buyFightNumNeed": { "a": string, "t": string, "n": number, [x: string]: any }[], "rankPrize": { "rank": [number, number], "prize": { "a": string, "t": string, "n": number, [x: string]: any }[], "title": string, [x: string]: any }[], "danPrize": { "star": number, "prize": { "a": string, "t": string, "n": number, [x: string]: any }[], [x: string]: any }[], "email_rank": { "title": string, "content": string, [x: string]: any }, "email_dan": { "title": string, "content": string, [x: string]: any }, [x: string]: any "divide": { "day": [number, number], "group": number, [x: string]: any }[], "divideTime": number, "fightTime": [number, number], "prizeTime": number, "fightWinPrize": { "total": number, "prize": { "a": string, "t": string, "n": number, [x: string]: any }[], "star": number, [x: string]: any }[], "fightNum": number, "vipBuyFightNum": [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], "buyFightNumNeed": { "a": string, "t": string, "n": number, [x: string]: any }[], "rankPrize": { "rank": [number, number], "prize": { "a": string, "t": string, "n": number, [x: string]: any }[], "title": string, [x: string]: any }[], "danPrize": { "star": number, "prize": { "a": string, "t": string, "n": number, [x: string]: any }[], [x: string]: any }[], "email_rank": { "title": string, "content": string, [x: string]: any }, "email_dan": { "title": string, "content": string, [x: string]: any }, [x: string]: any
} }
type gc_renown_level = {
[id: string]: {
id: number,
renownlevel: number,
maxlevel: number,
cost: { "a": string, "t": string, "n": number, [x: string]: any }[],
atk: number,
def: number,
hp: number,
}
}
type gc_clsl_dan = k_v<{ type gc_clsl_dan = k_v<{
/** 总星级 */ /** 总星级 */
'allStar': number 'allStar': number
@ -788,6 +800,8 @@ type gc_npc = k_v<{
'ghname': string 'ghname': string
/**npc名称 */ /**npc名称 */
'npcname': string 'npcname': string
/**怪物皮肤*/
'skin': number[]
}>; }>;
type gc_openCond = k_v<{ type gc_openCond = k_v<{
@ -1969,6 +1983,7 @@ type gcType = {
kfcb_prize: gc_kfcb_prize kfcb_prize: gc_kfcb_prize
yuyuemail: gc_yuyuemail yuyuemail: gc_yuyuemail
tuisonglibao: gc_push_gift tuisonglibao: gc_push_gift
renown_level: gc_renown_level
heroSkin: gc_hero_skin heroSkin: gc_hero_skin
heroSkinLv: gc_hero_skin_lv heroSkinLv: gc_hero_skin_lv
} }

View File

@ -350,12 +350,18 @@ class Lng {
event_kfkh_12 = "event_kfkh_12"; event_kfkh_12 = "event_kfkh_12";
event_kfkh_13 = "event_kfkh_13"; event_kfkh_13 = "event_kfkh_13";
qingxiandenglu: "qingxiandenglu"; qingxiandenglu = "qingxiandenglu";
wuciwanjia: "wuciwanjia"; wuciwanjia = "wuciwanjia";
huoqupaihang: "huoqupaihang"; huoqupaihang = "huoqupaihang";
wucigonghui: "wucigonghui"; wucigonghui = "wucigonghui";
nameyicunzai: "nameyicunzai"; nameyicunzai = "nameyicunzai";
ljlibaotips_8:"ljlibaotips_8"; ljlibaotips_8 = "ljlibaotips_8";
weiwang_12 = "weiwang_12";
hqjgtips_27 = "hqjgtips_27";
hqjgtips_28 = "hqjgtips_28";
hqjgtips_29 = "hqjgtips_29";
"11111" = "globalThis.lng.chat_1" "11111" = "globalThis.lng.chat_1"
// return call.error('', { code: -3, message: globalThis.lng.chat_2 }); // return call.error('', { code: -3, message: globalThis.lng.chat_2 });

View File

@ -23,7 +23,7 @@ export default {
/**cross mongodb url */ /**cross mongodb url */
crossMongodbUrl: 'mongodb://root:lyMaple525458@10.0.1.20:27017/heijiao_cross?authSource=admin', crossMongodbUrl: 'mongodb://root:lyMaple525458@10.0.1.20:27017/heijiao_cross?authSource=admin',
/**运营平台接口地址 */ /**运营平台接口地址 */
baseUrl: 'https://blacklagoon-slb.stg.g123-cpp.com', baseUrl: 'blacklagoon-slb.pro.g123-cpp.com',
/**服务器时间 */ /**服务器时间 */
time: '', time: '',
/**开服时间 */ /**开服时间 */

View File

@ -24,6 +24,7 @@ import {ResOpen as ResOpenZhoumolibao} from '../shared/protocols/event/zhoumolib
import {ResOpen as ResOpenPobinglibao} from '../shared/protocols/event/pobinglibao/PtlOpen'; import {ResOpen as ResOpenPobinglibao} from '../shared/protocols/event/pobinglibao/PtlOpen';
import {ResOpen as ResOpenLeiChongLiBao} from '../shared/protocols/event/leichonglibao/PtlOpen'; import {ResOpen as ResOpenLeiChongLiBao} from '../shared/protocols/event/leichonglibao/PtlOpen';
import {event as ResOpenYuandan} from '../shared/protocols/event/yuandan/PtlOpen'; import {event as ResOpenYuandan} from '../shared/protocols/event/yuandan/PtlOpen';
import {PlayerData} from "../api_s2c/event/huangqijiuguan/fun";
export type eventType = { export type eventType = {
shouchong: { shouchong: {
@ -54,7 +55,6 @@ export type eventType = {
jierihuodong: Omit<ResOpenJierihuodong, 'taskFinish'> & { refreshTime: number; }; jierihuodong: Omit<ResOpenJierihuodong, 'taskFinish'> & { refreshTime: number; };
kaifujingsai: ResOpenKaifujingsai; kaifujingsai: ResOpenKaifujingsai;
zhoumolibao: ResOpenZhoumolibao & { refreshTime: number; }; zhoumolibao: ResOpenZhoumolibao & { refreshTime: number; };
pobinglibao: ResOpenPobinglibao
payForDiamond: { payForDiamond: {
[time: number]: number [time: number]: number
} }
@ -74,6 +74,8 @@ export type eventType = {
[k: `qiridenglu${number}`]: Pick<ResOpenQiridenglu, 'recPrize'>; [k: `qiridenglu${number}`]: Pick<ResOpenQiridenglu, 'recPrize'>;
[k: `leichonglibao${number}`]: ResOpenLeiChongLiBao & { opentime: number }; [k: `leichonglibao${number}`]: ResOpenLeiChongLiBao & { opentime: number };
[k: `yuandan${number}`]: ResOpenYuandan; [k: `yuandan${number}`]: ResOpenYuandan;
[k: `pobinglibao${number}`]: ResOpenPobinglibao;
[k: `huangqijiuguan_${number}`]: PlayerData;
}; };
export type CollectionEvent<T extends keyof eventType> = { export type CollectionEvent<T extends keyof eventType> = {

View File

@ -1,4 +1,4 @@
import {fightResult} from '../shared/fightControl/fightType'; import {fightResult} from '../shared/fightControl/fightType';
export type CollectionFightLog = fightResult & { uid: string, type: string }; export type CollectionFightLog = fightResult & { uid: string, type: string, ttl: Date};

View File

@ -0,0 +1,9 @@
export type CollectionWeiwang = {
uid: string;
hp: number;
atk: number;
def: number;
buff: k_v<number>;
}

View File

@ -27,39 +27,40 @@ import {
CollectionKbzzGroupTroop, CollectionKbzzGroupTroop,
CollectionKbzzGroupUser CollectionKbzzGroupUser
} from './collection_kbzz'; } from './collection_kbzz';
import { CollectionKuangDong } from './collection_kuangdong'; import {CollectionKuangDong} from './collection_kuangdong';
import { CollectionLingZhuLaiXi } from './collection_lingzhulaixi'; import {CollectionLingZhuLaiXi} from './collection_lingzhulaixi';
import { CollectionMingdao } from './collection_mingdao'; import {CollectionMingdao} from './collection_mingdao';
import { CollectionPlayerInfo } from './collection_palyerInfo'; import {CollectionPlayerInfo} from './collection_palyerInfo';
import { CollectionPata } from './collection_pata'; import {CollectionPata} from './collection_pata';
import { CollectionPeiJian } from './collection_peijian'; import {CollectionPeiJian} from './collection_peijian';
import { CollectionPlayAttr } from './collection_playattr'; import {CollectionPlayAttr} from './collection_playattr';
import { CollectionRank, CollectionRankList } from './collection_rank'; import {CollectionRank, CollectionRankList} from './collection_rank';
import { CollectionRecord } from './collection_record'; import {CollectionRecord} from './collection_record';
import { CollectionSchedler } from './collection_scheduler'; import {CollectionSchedler} from './collection_scheduler';
import { CollectionShiwu } from './collection_shiwu'; import {CollectionShiwu} from './collection_shiwu';
import { CollectionSlzdGh, CollectionSlzdUser, CollectionSlzdStash } from './collection_slzd'; import {CollectionSlzdGh, CollectionSlzdUser, CollectionSlzdStash} from './collection_slzd';
import { CollectionTanXian } from './collection_tanxian'; import {CollectionTanXian} from './collection_tanxian';
import { CollectionTask } from './collection_task'; import {CollectionTask} from './collection_task';
import { CollectionUser } from './collection_user'; import {CollectionUser} from './collection_user';
import { CollectionWanted } from './collection_wanted'; import {CollectionWanted} from './collection_wanted';
import { CollectionWjjl } from './collection_wjjl'; import {CollectionWjjl} from './collection_wjjl';
import { CollectionWzryCross } from './collection_wzry_user_cross'; import {CollectionWzryCross} from './collection_wzry_user_cross';
import { CollectionWzryCrossFight } from './collection_wzryfight'; import {CollectionWzryCrossFight} from './collection_wzryfight';
import { CollectionWzryCrossFightLOG } from './collection_wzryfightlOG'; import {CollectionWzryCrossFightLOG} from './collection_wzryfightlOG';
import { CollectionWzryCrossWiner } from './collection_wzrywiner'; import {CollectionWzryCrossWiner} from './collection_wzrywiner';
import { CollectionXstask } from './collection_xstask'; import {CollectionXstask} from './collection_xstask';
import { CollectionZhanLing } from './collection_zhanling'; import {CollectionZhanLing} from './collection_zhanling';
import { CollectionHdinfo } from './collection_hdinfo'; import {CollectionHdinfo} from './collection_hdinfo';
import { CollectionGiftLog } from "./collection_giftLog"; import {CollectionGiftLog} from "./collection_giftLog";
import { CollectionLoginLog } from "./collection_loginLog"; import {CollectionLoginLog} from "./collection_loginLog";
import { CollectionPayLogNew } from "./collection_payLogNew"; import {CollectionPayLogNew} from "./collection_payLogNew";
import { CollectionApiCount } from "./collection_apiCount"; import {CollectionApiCount} from "./collection_apiCount";
import { CollectionPlayerBehavior } from "./collection_player_behavior"; import {CollectionPlayerBehavior} from "./collection_player_behavior";
import { CollectionRmbuse } from "./collection_rmbuse"; import {CollectionRmbuse} from "./collection_rmbuse";
import { CollectionFightLog } from "./collection_fightLog"; import {CollectionFightLog} from "./collection_fightLog";
import { CollectionShop } from "./collection_shop"; import {CollectionShop} from "./collection_shop";
import { CollectionPushGift } from "./collection_pushgift"; import {CollectionPushGift} from "./collection_pushgift";
import { CollectionWeiwang } from './collection_weiwang';
export type MongodbCollections = { export type MongodbCollections = {
user: CollectionUser; user: CollectionUser;
@ -136,4 +137,5 @@ export type MongodbCollections = {
pushgift: CollectionPushGift pushgift: CollectionPushGift
huodong_user: CollectionUser; huodong_user: CollectionUser;
weiwang: CollectionWeiwang;
}; };

View File

@ -2640,6 +2640,20 @@ export const serviceProto: ServiceProto<ServiceType> = {
}, },
{ {
"id": 38, "id": 38,
"name": "weiwangbuff",
"type": {
"type": "Interface",
"indexSignature": {
"keyType": "String",
"type": {
"type": "Number"
}
}
},
"optional": true
},
{
"id": 39,
"name": "heroskin", "name": "heroskin",
"type": { "type": {
"type": "Interface", "type": "Interface",

3
src/oss/blackapi.json Normal file
View File

@ -0,0 +1,3 @@
[
]

View File

@ -6,23 +6,38 @@
}, },
{ {
"key":"got_jinbi", "key":"got_jinbi",
"limit":200000000, "limit":2000000000,
"tips":"jinbi获取达到20亿" "tips":"jinbi获取达到20亿"
}, },
{ {
"key":"got_rmbmoney", "key":"got_rmbmoney",
"limit":30000, "limit":100000,
"tips":"钻石获取达到3万" "tips":"钻石获取达到10万"
}, },
{ {
"key":"use_attr_rmbmoney", "key":"use_attr_rmbmoney",
"limit":100000, "limit":100000,
"tips":"钻石消耗达到10万" "tips":"钻石消耗达到10万"
}, },
{
"key":"got_huangqijinbi",
"limit":5000,
"tips":"单日获取黄旗金币达到5000"
},
{
"key":"got_huangqiduihuan",
"limit":10000,
"tips":"单日获取黄旗兑换达到10000"
},
{
"key": "huangqijiuguan/ZhaoMu",
"limit": 1000,
"tips": "单日获取黄旗招募超过1000抽"
},
{ {
"key":"tanxian/FastGuaJi", "key":"tanxian/FastGuaJi",
"limit":40, "limit":30,
"tips":"快速探险达到40次" "tips":"快速探险达到30次"
}, },
{ {
"key":"xstask/Receive/Num", "key":"xstask/Receive/Num",
@ -34,16 +49,6 @@
"limit":500, "limit":500,
"tips":"地下钱庄使用次数超过500次" "tips":"地下钱庄使用次数超过500次"
}, },
{
"key":"shop/Buy/2",
"limit":50,
"tips":"势力商店购买某一商品超过50次"
},
{
"key":"shop/Buy/1",
"limit":10,
"tips":"杂货商店购买某一商品超过10次"
},
{ {
"key":"peijiancangku/Jump", "key":"peijiancangku/Jump",
"limit":500, "limit":500,
@ -56,17 +61,48 @@
}, },
{ {
"key":"pata/SaoDang", "key":"pata/SaoDang",
"limit":5, "limit":6,
"tips":"黑暗塔扫荡次数超过5次" "tips":"黑暗塔扫荡次数超过6次"
}, },
{ {
"key":"lingzhulaixi/PkBoss", "key":"lingzhulaixi/PkBoss",
"limit":15, "limit":16,
"tips":"讨伐海盗挑战次数超过15次" "tips":"讨伐海盗挑战次数超过16次"
}, },
{ {
"key":"gonghui/FbFight", "key":"gonghui/FbFight",
"limit":5, "limit":5,
"tips":"势力战斗boss超过5次" "tips":"势力战斗boss超过5次"
},
{
"key":"shop/Buy/2",
"limit":50,
"tips":"势力商店购买超过50次"
},
{
"key":"shop/Buy/1",
"limit":20,
"tips":"杂货商店购买超过20次"
},
{
"key":"shop/Buy/10",
"limit":20,
"tips":"荣誉商店购买超过20次"
},
{
"key":"shop/Buy/4",
"limit":10,
"tips":"饰品商店购买超过10次"
},
{
"key":"shop/Buy/11",
"limit":5,
"tips":"功绩商店购买超过5次"
},
{
"key":"shop/Buy/3",
"limit":5,
"tips":"战争商店购买超过5次"
} }
] ]

View File

@ -1,9 +1,33 @@
import { PublicShared } from "../../shared/public/public";
export class ActionLog { export class ActionLog {
static async initDayLog(uid: string) { /**
G.mongodb.cActionLog('day').updateOne({ uid: uid, type: 'day' }, { $set: { log: {} } }, { upsert: true }); * 0
*/
static async initAllDayLog() {
await G.mongodb.cActionLog('day').updateMany({type: 'day' }, {
$set: {
log: {},
//增加刷新时间
lastTime: PublicShared.getToDayZeroTime(G.time)
} }
});
}
/**
*
* @param uid
*/
// static async initDayLog(uid: string) {
// G.mongodb.cActionLog('day').updateOne({ uid: uid, type: 'day' }, {
// $set: {
// log: {},
// //增加刷新时间
// lastTime: PublicShared.getToDayZeroTime(G.time)
// }
// }, { upsert: true });
// }
static async addDayLog(uid: string, ...args: { key: string, val: number; }[]) { static async addDayLog(uid: string, ...args: { key: string, val: number; }[]) {
const addObj = G.mongodb.createTreeObj(...args.map(a => { return { key: 'log', k: a.key, val: a.val }; })); const addObj = G.mongodb.createTreeObj(...args.map(a => { return { key: 'log', k: a.key, val: a.val }; }));
G.mongodb.cActionLog('day').updateOne({ uid: uid, type: 'day' }, { $inc: addObj }); G.mongodb.cActionLog('day').updateOne({ uid: uid, type: 'day' }, { $inc: addObj });

View File

@ -3,6 +3,8 @@ import { ApiCall } from 'tsrpc';
import { MsgChat } from '../shared/protocols/msg_s2c/MsgChat'; import { MsgChat } from '../shared/protocols/msg_s2c/MsgChat';
import { player } from '../shared/protocols/user/type'; import { player } from '../shared/protocols/user/type';
import { chatLog, chatMsgLog } from '../shared/protocols/type' import { chatLog, chatMsgLog } from '../shared/protocols/type'
import { PublicShared } from '../shared/public/public';
import { clusterRunOnce } from '../clusterUtils';
const msgListLen = { const msgListLen = {
'cross': 30, 'cross': 30,
@ -10,22 +12,54 @@ const msgListLen = {
'guild': 20 'guild': 20
}; };
/**
*
*/
export function getCrossChatGroupByOpenDay(){
let openday = PublicShared.getOpenServerDay();
if(openday<=7){
return 1;
}else if(openday <= 30){
return 2;
}else{
return 3;
}
}
export class ChatFun { export class ChatFun {
/**新增消息 */ /**新增消息 */
static async newMsg(sendData: MsgChat) { static async newMsg(sendData: MsgChat) {
let addToDB = 0;
if (sendData.type == 'guild') {
addToDB = 1;
G.server.broadcastClusterMsg('msg_s2c/Chat', sendData,{ghId:(sendData.sender as player)?.ghId});
}else if(sendData.type == 'cross'){
//所有的子进程都会收到,不需要集群内分别广播
if(sendData?.otherData?.group == getCrossChatGroupByOpenDay()){
//如果时候同一个分组的
delete sendData?.otherData?.group;
G.server.broadcastMsg('msg_s2c/Chat', sendData);
addToDB = 2;
}
}else{
G.server.broadcastClusterMsg('msg_s2c/Chat', sendData);
addToDB = 1;
}
if(addToDB == 1){
G.mongodb.collection('chat').updateOne( G.mongodb.collection('chat').updateOne(
{ type: `${sendData.type}${sendData.type == 'guild' ? (sendData.sender as player)?.ghId : ''}` }, { type: `${sendData.type}${sendData.type == 'guild' ? (sendData.sender as player)?.ghId : ''}` },
{ $push: { list: { $each: [sendData], $slice: -msgListLen[sendData.type] } } }, { $push: { list: { $each: [sendData], $slice: -msgListLen[sendData.type] } } },
{ upsert: true } { upsert: true }
); );
}else if(addToDB == 2){
if (sendData.type == 'guild') { clusterRunOnce(()=>{
G.server.broadcastClusterMsg('msg_s2c/Chat', sendData,{ghId:(sendData.sender as player)?.ghId}); G.mongodb.collection('chat').updateOne(
}else if(sendData.type == 'cross'){ { type: `${sendData.type}${sendData.type == 'guild' ? (sendData.sender as player)?.ghId : ''}` },
//所有的子进程都会收到,不需要集群内分别广播 { $push: { list: { $each: [sendData], $slice: -msgListLen[sendData.type] } } },
G.server.broadcastMsg('msg_s2c/Chat', sendData); { upsert: true }
}else{ );
G.server.broadcastClusterMsg('msg_s2c/Chat', sendData); })
} }
} }

View File

@ -19,7 +19,8 @@ export class DxltFun {
} }
/**回退层数 */ /**回退层数 */
static backLayer(data: ResOpen) { static backLayer(data: ResOpen) {
let num = data.curLayer - G.gc.dxlt_com.dayResetBackLayer; //let num = data.curLayer - G.gc.dxlt_com.dayResetBackLayer;
let num = (data.curLayer-30) - (data.curLayer-30)%5+1
data.curLayer = num < 1 ? 1 : num; data.curLayer = num < 1 ? 1 : num;
data.over = G.gc.dxlt_layer[data.curLayer].type == 2; data.over = G.gc.dxlt_layer[data.curLayer].type == 2;
} }

View File

@ -1,43 +1,43 @@
import {ApiCall, TsrpcError} from 'tsrpc'; import { ApiCall, TsrpcError } from 'tsrpc';
import {FightControl} from '../shared/fightControl/fightCntrol'; import { FightControl } from '../shared/fightControl/fightCntrol';
import {formatNpcData} from '../shared/fightControl/fightFun'; import { formatNpcData } from '../shared/fightControl/fightFun';
import {fightResult, joinFightData, roleDataType} from '../shared/fightControl/fightType'; import { fightResult, joinFightData, roleDataType } from '../shared/fightControl/fightType';
import {rankInfo} from '../shared/protocols/type'; import { rankInfo } from '../shared/protocols/type';
import {HeroShared} from '../shared/public/hero'; import { HeroShared } from '../shared/public/hero';
import {PlayerShared} from '../shared/public/player'; import { PlayerShared } from '../shared/public/player';
import {HeroFun} from './hero'; import { HeroFun } from './hero';
import {UserFun} from './user'; import { UserFun } from './user';
import {re, string} from "mathjs"; import { re, string } from "mathjs";
import {getGud} from './gud'; import { getGud } from './gud';
import {PushGiftFun} from "./pushgift"; import { PushGiftFun } from "./pushgift";
type fightType = 'tanxian' | 'pata' | 'jjc' | 'gbtx' | 'qjzzd' | 'meirishilian' | 'wzrycross'; type fightType = 'tanxian' | 'pata' | 'jjc' | 'gbtx' | 'qjzzd' | 'meirishilian' | 'wzrycross' | 'hqjg';
let fights:{[key:string]:FightControl} = { let fights: { [key: string]: FightControl } = {
}; };
function clearFights (){ function clearFights() {
//定时清理战斗 //定时清理战斗
setInterval(()=>{ setInterval(() => {
let now = Date.now(); let now = Date.now();
for (let key in fights){ for (let key in fights) {
if (now - fights[key].startTime > 30000){ if (now - fights[key].startTime > 30000) {
console.log("清理战斗",key); console.log("清理战斗", key);
try{ try {
fights[key].release(); fights[key].release();
}catch(e){ } catch (e) {
console.error(e); console.error(e);
} }
delete fights[key]; delete fights[key];
} }
} }
},5000); }, 5000);
} }
clearFights(); clearFights();
export class FightFun { export class FightFun {
static fightIndex:number = 0; static fightIndex: number = 0;
static fight(data: joinFightData[], maxRoundNums = 30, fightType: "pvp" | "pve" = 'pvp') { static fight(data: joinFightData[], maxRoundNums = 30, fightType: "pvp" | "pve" = 'pvp') {
this.fightIndex++; this.fightIndex++;
@ -80,16 +80,20 @@ export class FightFun {
}); });
return { return {
player: {...player, buff: PlayerShared.getBuff(player)}, player: { ...player, buff: PlayerShared.getBuff(player) },
roles: roles roles: roles
}; };
} }
/**挑战竞技场 */ /**挑战竞技场 */
static async fightJJc(call: ApiCall, rankInfo: rankInfo) { static async fightJJc(call: ApiCall, rankInfo: rankInfo) {
if (rankInfo.player.uid.indexOf('npc_') != -1) return await this.fightNpc(call, G.gc.jjc_npc[rankInfo.player.uid].npcId, 'jjc', await this.getPlayerFightData(call.conn.uid)); let result;
let result = this.fight([await this.getPlayerFightData(call.conn.uid), await this.getPlayerFightData(rankInfo.player.uid)]); if (rankInfo.player.uid.indexOf('npc_') != -1) {
result = await this.fightNpc(call, G.gc.jjc_npc[rankInfo.player.uid].npcId, 'jjc', await this.getPlayerFightData(call.conn.uid));
} else {
result = this.fight([await this.getPlayerFightData(call.conn.uid), await this.getPlayerFightData(rankInfo.player.uid)]);
}
// 竞技场 战败触发推送礼包 // 竞技场 战败触发推送礼包
if (result.winSide != 0) { if (result.winSide != 0) {
@ -101,8 +105,15 @@ export class FightFun {
/**挑战npc */ /**挑战npc */
static async fightNpc(call: ApiCall, npcId: string | number, type: fightType, data?: joinFightData) { static async fightNpc(call: ApiCall, npcId: string | number, type: fightType, data?: joinFightData) {
let ext_buff = {};
let my = data || await call.conn.getDefaultFightData(); if (["tanxian"].indexOf(type) != -1) {
// 威望buff
let weiwang = await G.mongodb.collection("weiwang").findOne({ uid: call.uid });
ext_buff["weiwangbuff"] = weiwang?.buff ? weiwang.buff : { "atk": 0, "def": 0, "hp": 0 };
}
let my = data || await call.conn.getDefaultFightData(undefined, ext_buff);
if (Object.keys(my.roles).length < 1) { if (Object.keys(my.roles).length < 1) {
throw new TsrpcError('至少需要上阵一个英雄'); throw new TsrpcError('至少需要上阵一个英雄');
@ -133,11 +144,11 @@ export class FightFun {
let writeList = ['ganhai', 'jjc', 'hbzbJfs', 'hbzbZbs', 'slzd', 'clsl'] let writeList = ['ganhai', 'jjc', 'hbzbJfs', 'hbzbZbs', 'slzd', 'clsl']
if (uid.indexOf('npc') != -1 || !writeList.includes(type)) return; if (uid.indexOf('npc') != -1 || !writeList.includes(type)) return;
G.mongodb.collection('fightLog').insertOne({uid, type, ...result}) G.mongodb.collection('fightLog').insertOne({ uid, type, ...result, ttl: new Date() })
} }
static async readLog(uid: string, type: string, len = 20) { static async readLog(uid: string, type: string, len = 20) {
return await G.mongodb.collection('fightLog').find({uid, type}).limit(len).toArray() || [] return await G.mongodb.collection('fightLog').find({ uid, type }).limit(len).sort({ _id: -1 }).toArray() || []
} }
} }

View File

@ -94,37 +94,37 @@ export class JJCFun {
* @param uTimeOffset * @param uTimeOffset
* @param isUpdate * @param isUpdate
*/ */
static async checkUpdatePlayer(min: number = 0, max: number = 1000, uTimeOffset: number = 600, isUpdate: boolean = true) { // static async checkUpdatePlayer(min: number = 0, max: number = 1000, uTimeOffset: number = 600, isUpdate: boolean = true) {
// 获取指定排名用户uid // // 获取指定排名用户uid
let sortInfo = await this.getRankListUid(min, max) // let sortInfo = await this.getRankListUid(min, max)
if (!sortInfo.length) return [] // if (!sortInfo.length) return []
let updateArr = [] // let updateArr = []
let users = await G.redis.hGetAll('rank:jjc:data') // let users = await G.redis.hGetAll('rank:jjc:data')
for (let i = 0; i < sortInfo.length; i++) { // for (let i = 0; i < sortInfo.length; i++) {
let uid = sortInfo[i] // let uid = sortInfo[i]
let rankInfo = users[uid] // let rankInfo = users[uid]
if (!rankInfo?.player) continue // if (!rankInfo?.player) continue
// 比对utime判断是否更新数据 // // 比对utime判断是否更新数据
if (!rankInfo.player.isNpc) { // if (!rankInfo.player.isNpc) {
if (!rankInfo.utime || (rankInfo.utime && rankInfo.utime < (G.time - uTimeOffset))) { // if (!rankInfo.utime || (rankInfo.utime && rankInfo.utime < (G.time - uTimeOffset))) {
updateArr.push(rankInfo) // updateArr.push(rankInfo)
} // }
} // }
} // }
// 更新数据 // // 更新数据
if (isUpdate && updateArr.length > 0) { // if (isUpdate && updateArr.length > 0) {
let playerArrInfo = await G.mongodb.collection("user").find({uid: {$in: updateArr.map(i => i.uid)}}).toArray() // let playerArrInfo = await G.mongodb.collection("user").find({uid: {$in: updateArr.map(i => i.uid)}}).toArray()
for (let i = 0; i < playerArrInfo.length; i++) { // for (let i = 0; i < playerArrInfo.length; i++) {
let playerInfo = playerArrInfo[i] // let playerInfo = playerArrInfo[i]
let index = updateArr.findIndex(x => x.player.uid == playerInfo.uid) // let index = updateArr.findIndex(x => x.player.uid == playerInfo.uid)
updateArr[index].player = playerInfo // updateArr[index].player = playerInfo
updateArr[index].utime = G.time // updateArr[index].utime = G.time
this.updatePlayerData(playerInfo.uid, updateArr[index]); // this.updatePlayerData(playerInfo.uid, updateArr[index]);
} // }
} // }
} // }
/** /**
* uid[] * uid[]

View File

@ -179,14 +179,14 @@ export class KuangDongfun {
} }
if (!kdInfo) return [] if (!kdInfo) return []
let _con = await this.getCon(hdid) let _con = await this.getCon(hdid)
let _kcTime = G.time + kdInfo.yanshi - kdInfo.ctime let _kcTime = G.time - kdInfo.ctime
//let _gud = await G.mongodb.collection('user').findOne({uid: kdInfo.uid}) //let _gud = await G.mongodb.collection('user').findOne({uid: kdInfo.uid})
let _gud = await getGud(kdInfo.uid) let _gud = await getGud(kdInfo.uid)
let gamer_lv = _gud.lv let gamer_lv = _gud.lv
// @ts-ignore // @ts-ignore
let prize: prizeType[] = _con.reward let prize: prizeType[] = _con.reward
// let prize: prizeType[] = [{ a: 'attr', t: 'rmbmoney', n: 50 }] // todo 待接入配置 // let prize: prizeType[] = [{ a: 'attr', t: 'rmbmoney', n: 50 }] // todo 待接入配置
if (_kcTime > 8 * 3600) _kcTime = 8 * 3600 + kdInfo.yanshi // 设置最大时长 if (_kcTime > 8 * 3600 + kdInfo.yanshi) _kcTime = 8 * 3600 + kdInfo.yanshi // 设置最大时长
prize[0]["n"] = Math.floor(eval(_con.formula) * _kcTime) prize[0]["n"] = Math.floor(eval(_con.formula) * _kcTime)
if (_con.public_map == 1){ if (_con.public_map == 1){

View File

@ -1,12 +1,12 @@
import { UpdateFilter } from 'mongodb'; import {UpdateFilter} from 'mongodb';
import { paTaType } from '../shared/protocols/pata/type'; import {paTaType} from '../shared/protocols/pata/type';
import { PublicShared } from '../shared/public/public'; import {PublicShared} from '../shared/public/public';
export class PataFun { export class PataFun {
/**获取爬塔信息 */ /**获取爬塔信息 */
static async getInfo(uid: string, sid: number = 0) { static async getInfo(uid: string, sid: number = 0) {
let info: paTaType = await G.mongodb.collection('pata').findOne({ uid: uid, sid: sid }); let info: paTaType = await G.mongodb.collection('pata').findOne({uid: uid, sid: sid});
let nt = G.time; let nt = G.time;
if (!info) { if (!info) {
info = { info = {
@ -17,7 +17,7 @@ export class PataFun {
sid: sid, sid: sid,
saodangNum: 0 saodangNum: 0
}; };
this.changeInfo(uid, info.sid, { $set: info }); this.changeInfo(uid, info.sid, {$set: info});
} }
/** 第二天 */ /** 第二天 */
@ -27,7 +27,7 @@ export class PataFun {
useNum: 0, useNum: 0,
saodangNum: 0 saodangNum: 0
}; };
this.changeInfo(uid, info.sid, { $set: setData }); this.changeInfo(uid, info.sid, {$set: setData});
} }
if (info['_id']) { if (info['_id']) {
@ -38,12 +38,11 @@ export class PataFun {
} }
/**修改爬塔信息 */ /**修改爬塔信息 */
static async changeInfo(uid: string, sid: number, change: Pick<UpdateFilter<paTaType>, '$set'>) { static async changeInfo(uid: string, sid: number, change: Pick<UpdateFilter<paTaType>, string>) {
await G.mongodb.collection('pata').updateOne(
G.mongodb.collection('pata').updateOne( {uid: uid, sid: sid},
{ uid: uid, sid: sid },
change, change,
{ upsert: true } {upsert: true}
); );
} }
@ -51,7 +50,7 @@ export class PataFun {
static async getHongDian(uid: string) { static async getHongDian(uid: string) {
let mydata = await this.getInfo(uid); let mydata = await this.getInfo(uid);
let con = Object.keys(G.gc.patacom); let con = Object.keys(G.gc.patacom);
con.sort((a, b) => { return parseInt(a) - parseInt(b); }); con.sort((a, b) => parseInt(a) - parseInt(b));
for (let idx in con) { for (let idx in con) {
idx = con[idx]; idx = con[idx];
if (mydata.lv <= parseInt(idx)) { if (mydata.lv <= parseInt(idx)) {

View File

@ -13,7 +13,7 @@ import {getConf as zmlbGetConf} from '../api_s2c/event/zhoumolibao/ApiOpen';
import {Christmasfun} from "../api_s2c/event/christmas/fun"; import {Christmasfun} from "../api_s2c/event/christmas/fun";
async function checkPayIsActive(payId: string, logs: payLog[], payArgs) { async function checkPayIsActive(payId: string, logs: payLog[], payArgs) {
let conf: any = await this.getConf(payId, payArgs); let conf: any = await PayFun.getConf(payId, payArgs);
if (!conf) return false; if (!conf) return false;
let lastLog = logs.last(); let lastLog = logs.last();
@ -66,7 +66,8 @@ export class PayFun {
); );
}) })
G.mongodb.collection('payLogNew').insertMany(args.map(i => ({key: i.payId, uid: uid, values: i.val}))); let colls = args.map(i => ({key: i.payId, uid: uid, values: i.val}))
if(colls.length>0)G.mongodb.collection('payLogNew').insertMany(colls);
G.server.sendMsgByUid(uid, 'msg_s2c/PayChange', Object.fromEntries(args.map(a => [a.payId, a.val]))); G.server.sendMsgByUid(uid, 'msg_s2c/PayChange', Object.fromEntries(args.map(a => [a.payId, a.val])));
} }
@ -260,7 +261,10 @@ export class PayFun {
let selectPrize = await G.ioredis.get(`pay:${payId}:${player.uid}`); let selectPrize = await G.ioredis.get(`pay:${payId}:${player.uid}`);
if (selectPrize) { if (selectPrize) {
prize.push(...JSON.parse(selectPrize)) prize.push(...JSON.parse(selectPrize))
G.ioredis.del(`pay:${payId}:${player.uid}`) //支付A check -> 玩家支付 -> 网络延迟
//支付B check -> 玩家支付 -> pay -> del
//支付A -> pay 时,这里可能被清了,导致给玩家发放了空的奖励,因此,这里不清除
//G.ioredis.del(`pay:${payId}:${player.uid}`)
} }
} }

View File

@ -19,8 +19,11 @@ import { getGud, setGud } from './gud';
import { addGameLog } from "../gameLog"; import { addGameLog } from "../gameLog";
import { PushGiftFun } from "./pushgift"; import { PushGiftFun } from "./pushgift";
import { ActionLog } from './actionLog/actionLog'; import { ActionLog } from './actionLog/actionLog';
import { roleDataType } from '../shared/fightControl/fightType';
import { PlayerShared } from '../shared/public/player';
import HeroSkinFun from './heroskin'; import HeroSkinFun from './heroskin';
export type call = { export type call = {
get otherBuff(): otherBuff; get otherBuff(): otherBuff;
uid: string; uid: string;
@ -41,6 +44,41 @@ export type call = {
}; };
export class PlayerFun { export class PlayerFun {
/**
* uid获取战斗数据
* @param uid
* @returns
*/
static async getDefaultFightDataByUid(uid: string) {
let gud = await getGud(uid);
let posObj = gud.heroPos;
let roles: k_v<roleDataType> = {};
if (gud.selectMatrix && gud.matrixPos) {
posObj = gud.matrixPos[gud.selectMatrix];
}
let heros = await HeroFun.getHeros({ uid: uid }, Object.values(posObj).filter(_id => _id != '') as string[]);
let otherBuff = UserFun.getOtherBuff(gud)
Object.entries(posObj).forEach(obj => {
let pos = obj[0];
let _id = obj[1];
let hero = heros.filter(h => h._id == _id)[0];
if (hero) {
roles[pos] = {
...hero,
attr: {
...HeroShared.getHeroBasicAttr(hero, { ...otherBuff, allBuff: HeroShared.getAllBuff(heros) }, Number(pos))
}
};
}
});
return {
player: { ...gud, buff: PlayerShared.getBuff(gud) },
roles: roles
};
}
/** /**
* atn数量 * atn数量
*/ */
@ -127,7 +165,7 @@ export class PlayerFun {
/** /**
* *
*/ */
static async sendPrize(call: call, prizeList: atn[]) { static async sendPrize(call: call, prizeList: atn[], pushToClient=false) {
prizeList = PublicShared.mergePrize(prizeList); prizeList = PublicShared.mergePrize(prizeList);
let attr = prizeList.filter(atn => atn.a == 'attr' && atn.n != 0); let attr = prizeList.filter(atn => atn.a == 'attr' && atn.n != 0);
@ -150,6 +188,14 @@ export class PlayerFun {
heroskin.length > 0 && this.addHeroskin(call, heroskin), heroskin.length > 0 && this.addHeroskin(call, heroskin),
]); ]);
if(pushToClient){
G.server.sendMsgByUid(call.uid, 'msg_s2c/Collection', {
fromApi: `PlayerFun_sendPrize`,
msg: call.eventMsg
});
call.eventMsg = {};
}
return prizeList; return prizeList;
}; };
@ -187,6 +233,11 @@ export class PlayerFun {
ActionLog.addDayLog(call.conn.uid, { key: 'got_' + atn.t, val: atn.n }); ActionLog.addDayLog(call.conn.uid, { key: 'got_' + atn.t, val: atn.n });
} }
if (["huangqijinbi", "huangqiduihuan"].includes(atn.t) && atn.n > 0) {
//统计今日获取的黄旗金币和黄旗对换币
ActionLog.addDayLog(call.conn.uid, { key: 'got_' + atn.t, val: atn.n });
}
// 增加vip经验的任务监听 // 增加vip经验的任务监听
if (atn.t == "payExp" && atn.n > 0) { if (atn.t == "payExp" && atn.n > 0) {
G.emit("Class_task_157", 'Class_task_157', call, atn.n, 0); G.emit("Class_task_157", 'Class_task_157', call, atn.n, 0);

Some files were not shown because too many files have changed in this diff Show More