骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买CDKEY 小黑盒加速器
查看: 3435|回复: 4

[原创] [ESAI]联机数据传递方法[暂停更新]

[复制链接]

16

主题

838

回帖

396

积分

子爵[版主]

汉[Han]
联机ID:Han_DongHai

Rank: 7Rank: 7Rank: 7

UID
3033293
第纳尔
13442
精华
0
互助
24
荣誉
2
贡献
510
魅力
184
注册时间
2018-10-3

第十届战团中国联赛征战勋章汉匈决战正版勋章战团正版勋章霸主正版勋章

QQ
鲜花(39) 鸡蛋(0)
发表于 2023-3-3 13:26:52 | 显示全部楼层 |阅读模式
本帖最后由 815208129 于 2023-3-13 23:43 编辑

AI开源考虑到为了维护联机的公平,近几年内不会开源
  1.     # initial json
  2.     ("esai_initial_json", [
  3.         (troop_set_slot, "trp_esai_json", 0, 1),
  4.         (try_for_range, ":slot_no", 1, 1000),
  5.             (troop_set_slot, "trp_esai_json", ":slot_no", 0),
  6.         (try_end),
  7.         ]),

  8.     # to calculate
  9.     ("append_json_data", [
  10.         (store_script_param_1, ":data_type"),
  11.         (store_script_param_2, ":data"),

  12.         (assign, ":troop_no", "trp_esai_json"),
  13.         (troop_get_slot, ":slot_no", ":data_type", 0),
  14.         (try_begin),
  15.             (eq, ":data_type", 1), # reg
  16.             (troop_set_slot, , ":slot_no", ":data"),
  17.             (val_add, ":slot_no", 1),
  18.             (troop_set_slot, "trp_esai_json", 0, ":slot_no"),
  19.         (else_try),
  20.             (eq, ":data_type", 2), # pos
  21.             (position_get_x, ":pos_x", ":data"),
  22.             (troop_set_slot, "trp_esai_json", ":slot_no", ":data"),
  23.             (val_add, ":slot_no", 1),

  24.             (position_get_y, ":pos_y", ":data"),
  25.             (troop_set_slot, "trp_esai_json", ":slot_no", ":data"),
  26.             (val_add, ":slot_no", 1),

  27.             (position_get_z, ":pos_z", ":data"),
  28.             (troop_set_slot, "trp_esai_json", ":slot_no", ":data"),
  29.             (val_add, ":slot_no", 1),

  30.             (troop_set_slot, "trp_esai_json", 0, ":slot_no"),
  31.         (else_try),
  32.             (eq, ":data_type", 3), # list: troop_
  33.             ()
  34.         (try_end),
  35.         ]),
复制代码

评分

参与人数 2第纳尔 +20 互助 +2 魅力 +4 收起 理由
1640700233 + 10 + 1 + 2 文章不错,继续努力!
守恒 + 10 + 1 + 2 文章不错,继续努力!

查看全部评分

16

主题

838

回帖

396

积分

子爵[版主]

汉[Han]
联机ID:Han_DongHai

Rank: 7Rank: 7Rank: 7

UID
3033293
第纳尔
13442
精华
0
互助
24
荣誉
2
贡献
510
魅力
184
注册时间
2018-10-3

第十届战团中国联赛征战勋章汉匈决战正版勋章战团正版勋章霸主正版勋章

QQ
鲜花(39) 鸡蛋(0)
 楼主| 发表于 2023-3-3 13:28:45 | 显示全部楼层
本帖最后由 815208129 于 2023-3-12 10:25 编辑

本贴为ESAI项目开源第一弹, 作为联机技术开源的第一个目标,
(ESAI = East_Sea AI)
将逐步更新,并且分为多个贴子

当需要传递多个数据时,以往的做法是
把过去的东西都封装到一个string里,然后发送给DS(dedicated server)服务器.
如果服务器没有使用WSE,则必须传递给web.由网页的处理程序(如JS, php ,node.js , java)等等来处理,再把结果返回给DS服务器
如果服务器使用了WSE,则需要使用 (str_split)  分割,然而这种情况只能处理一些简单合并在一起的数据.有时候需要传递多种数据时,需要在DS端设置编号
(0,1,2,3)

过去的方法仍然可以使用,现在提出一种新的方法.使用json数据传递,ms client封装成json字符串, 然后由lua解析它
现在WSE2提供了lua 编译器,完全可以使用lua来处理数据传递.减少访问web服务器.

目前该贴子尚未完全更新完毕.

AI开源考虑到为了维护联机的公平,两年内不会开源,用以维护联机环境良好秩序

16

主题

838

回帖

396

积分

子爵[版主]

汉[Han]
联机ID:Han_DongHai

Rank: 7Rank: 7Rank: 7

UID
3033293
第纳尔
13442
精华
0
互助
24
荣誉
2
贡献
510
魅力
184
注册时间
2018-10-3

第十届战团中国联赛征战勋章汉匈决战正版勋章战团正版勋章霸主正版勋章

QQ
鲜花(39) 鸡蛋(0)
 楼主| 发表于 2023-3-3 13:41:19 | 显示全部楼层
占楼,待编辑
占楼,待编辑
占楼,待编辑
占楼,待编辑

17

主题

205

回帖

142

积分

见习骑士

Rank: 3

UID
3181770
第纳尔
1847
精华
0
互助
15
荣誉
0
贡献
10
魅力
168
注册时间
2020-5-5
鲜花(33) 鸡蛋(0)
发表于 2023-3-10 16:01:17 | 显示全部楼层
支持一一下楼主,内容很有价值

点评

还没有做完的.我觉得可以过个几月再来看看  发表于 2023-3-10 20:07
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

Archiver|手机版|小黑屋|骑马与砍杀中文站

GMT+8, 2024-11-21 21:13 , Processed in 0.103905 second(s), 21 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表