翔鹰帝国网|帝国时代论坛|帝国时代系列|神话时代
 找回密码
 注册翔鹰会员(昵称)
搜索
查看: 1048|回复: 9

[教程分享] 极简方法对联机场景中玩家编号,id,序号的xs订正

[复制链接]

12

主题

2

精华

3196

积分

公爵

耕战
400
鹰币
1303
天龙币
0
回帖
31
附庸关系0
 楼主| 发表于 2022-4-1 00:46:14 | 显示全部楼层 |阅读模式
本帖最后由 熊教授 于 2022-4-1 10:30 编辑

今天太晚了,简单写几句
众所周知,每个玩家都有一个编号,比如在1号位置的玩家约等于玩家1。
同时,在联机场景中的玩家编号不一定等于地编中的玩家编号,也不一定等于ai信号里面的玩家编号
也不一定等于xs语法中的玩家编号。

游戏大厅中,玩家如果更换颜色,更换位置。其颜色对应的玩家序号就不一致了。
导致蓝色玩家的id编号可以是1-8的任何一个数字。


只需要轻轻一点这个绿色小按钮,所有联机触发白写……
这也是去年3月以来,大量的ai,场景地图下线,停更以及出现bug的原因之一。包括野蛮人和撸蛇到现在很难使用。

现在有个非常简单的方法,只需要3分钟就能对玩家序号正确排序,完成准确的触发动作。


1、第一步,用xs语句为玩家1-8的8号无用资源分别设置数量为1-8
void a1()
{
xsSetPlayerAttribute(1, 8, 1);

xsSetPlayerAttribute(2, 8, 2);
}


2、第二步更简单了,设置一个自动循环触发,在8号无用资源大于1时,减去1资源,变量“玩家1序号”的值增加1.
也就是让变量1-8的值等于各玩家的无用资源值。

3、第三步最简单了。
所有的触发中需要填写玩家序号的,都替换为“玩家1序号”变量的值,例如“玩家1序号”变量是12号变量,也就是第13个变量。xsTriggerVariable(12)
例:
原版增加所有塔0.01的攻击速度
void attspeed1()
{
xsEffectAmount(cAddAttribute, 952, 10, -0.01, 1);
}

其中952是种属,10是攻速,-0.01是修改值,1是玩家序号。
导致联机场景中出现问题的就是最后的1
替换后例:
void attspeed1()
{
xsEffectAmount(cAddAttribute, 952, 10, -0.01, xsTriggerVariable(12));
}


看,是不是超级简单,超级方便,只需要9个小小触发就全部搞定。
需要注意的是,本触发有运行时间约8秒。
因此最好将其他所有玩家序号的触发后置于8秒后开始运行。
还有除了8号无用资源,不一定所有无用资源的初始值都是0.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册翔鹰会员(昵称)

x

评分

参与人数 1鹰币 +25 收起 理由
cly806 + 25 分享交流

查看全部评分

回复

使用道具 举报

91

主题

14

精华

2万

积分

都主教

耕战
3368
鹰币
20766
天龙币
0
回帖
1381
附庸关系1
发表于 2022-4-1 00:59:18 | 显示全部楼层
有啥结论可共享给专栏,十分欢迎补充,当然请支持一下我的独家xs专栏
回复

使用道具 举报

12

主题

2

精华

3196

积分

公爵

耕战
400
鹰币
1303
天龙币
0
回帖
31
附庸关系0
 楼主| 发表于 2022-4-1 01:01:13 | 显示全部楼层
cly806 发表于 2022-4-1 00:59
有啥结论可共享给专栏,十分欢迎补充,当然请支持一下我的独家xs专栏

大佬说的必须支持
回复

使用道具 举报

91

主题

14

精华

2万

积分

都主教

耕战
3368
鹰币
20766
天龙币
0
回帖
1381
附庸关系1
发表于 2022-4-1 01:03:10 | 显示全部楼层
本帖最后由 cly806 于 2022-4-1 16:52 编辑
熊教授 发表于 2022-4-1 01:01
大佬说的必须支持

阁下可是马桶游击队?有没有机会修复aoesp的项目啊,不能用实在太可惜,另外的鬼佬文字编辑器已更新,支持最新版本,可否从他的代码中寻求修改的思路,新桶那个等于不能用

你的帖子很有建设性思路非常的好,对联机玩家有很大的参考意义
讲几点建议,前面的cAddAttribute应该改用4比较稳妥,0设置4加减5倍乘,这几个用的比较多,255字符限制下,字符寸字寸金,能省则省
另外8个触发完全可以写成1个触发8条xs效果


举例P8
void P8(){
int a=xsPlayerAttribute(8,8);
int b=xsTriggerVarible(8);
while(a>=1){
a--;b++;}
xsSetTriggerVarible(8,b);
}
回复

使用道具 举报

12

主题

2

精华

3196

积分

公爵

耕战
400
鹰币
1303
天龙币
0
回帖
31
附庸关系0
 楼主| 发表于 2022-4-1 01:12:40 | 显示全部楼层
cly806 发表于 2022-4-1 01:03
阁下可是马桶游击队?有没有机会修复aoesp的项目啊,不能用实在太可惜,另外的鬼佬文字编辑器已更新,支持 ...

亲是的啊,咱俩常聊呢。我也是没办法被催过来修复地图,最近这次更新后好多以前做的图都没法用了,大半夜一堆人等着我修图,头发都掉完了。aoesp是非常重要的项目,修复那个难度太大了,上次修复的时候改了一小半的变量,工作量太大了,而且更新好频繁,修复后很可能也管不了多久。我感觉很难使上劲,实在是超出能力范围了。
回复

使用道具 举报

91

主题

14

精华

2万

积分

都主教

耕战
3368
鹰币
20766
天龙币
0
回帖
1381
附庸关系1
发表于 2022-4-1 01:27:27 | 显示全部楼层
熊教授 发表于 2022-4-1 01:12
亲是的啊,咱俩常聊呢。我也是没办法被催过来修复地图,最近这次更新后好多以前做的图都没法用了,大半夜 ...

基本上56005后官方的更新都差不多,估计dlc前不会有大改动的,我说退而求其次起码保证了新桶代码那个导入txt能在游戏里打开这个修复了也就差不多了,重排ID的这种aoesp进阶功能相对而言没有那么紧急
回复

使用道具 举报

12

主题

2

精华

3196

积分

公爵

耕战
400
鹰币
1303
天龙币
0
回帖
31
附庸关系0
 楼主| 发表于 2022-4-2 13:16:39 | 显示全部楼层
本帖最后由 cly806 于 2022-4-3 11:21 编辑
cly806 发表于 2022-4-1 01:03
阁下可是马桶游击队?有没有机会修复aoesp的项目啊,不能用实在太可惜,另外的鬼佬文字编辑器已更新,支持 ...

哦哦哦看懂了,原来这个语法可以直接用序号代替,还能这么用,学会了。0是设置,1是增减,2是科技启用禁用,3是升级,4是增加,5是乘以。有机会试试试试。
回复

使用道具 举报

12

主题

2

精华

3196

积分

公爵

耕战
400
鹰币
1303
天龙币
0
回帖
31
附庸关系0
 楼主| 发表于 2022-4-2 22:06:50 | 显示全部楼层
cly806 发表于 2022-4-1 01:03
阁下可是马桶游击队?有没有机会修复aoesp的项目啊,不能用实在太可惜,另外的鬼佬文字编辑器已更新,支持 ...

顺便问一下,怎么读取玩家id写入字符串变量,或者读取到玩家id的字符串字节长度。想做个存档系统。
回复

使用道具 举报

91

主题

14

精华

2万

积分

都主教

耕战
3368
鹰币
20766
天龙币
0
回帖
1381
附庸关系1
发表于 2022-4-3 11:23:17 | 显示全部楼层
熊教授 发表于 2022-4-2 22:06
顺便问一下,怎么读取玩家id写入字符串变量,或者读取到玩家id的字符串字节长度。想做个存档系统。 ...

这个估计要用ai,目前字符串只能是xsEffectAmount(0,952,50,123434,1);这种读取自定义字符串表的字符串
回复

使用道具 举报

91

主题

14

精华

2万

积分

都主教

耕战
3368
鹰币
20766
天龙币
0
回帖
1381
附庸关系1
发表于 2022-4-3 11:33:54 | 显示全部楼层
熊教授 发表于 2022-4-2 13:16
哦哦哦看懂了,原来这个语法可以直接用序号代替,还能这么用,学会了。0是设置,1是增减,2是科技启用禁用 ...

你试试while那个能不能用,如果能用能少几个触发的,看看有没有效果
回复

使用道具 举报

本版积分规则

排行榜|小黑屋|翔鹰帝国

GMT+8, 2024-11-22 01:31 , Processed in 0.149723 second(s), 115 queries , File On.

Powered by Hawk Studio  QS Security Corp.® Licensed

Copyright © 2001-2023, Hawkaoe.net All Rights Reserved

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