- UID
- 367137
- 阅读权限
- 70
- 注册时间
- 2021-5-16
- 最后登录
- 2024-11-21
- 在线时间
- 170 小时
- 性别
- 保密
公爵
- 耕战
- 400
- 鹰币
- 1303
- 天龙币
- 0
- 回帖
- 31
|
本帖最后由 熊教授 于 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.
|
评分
-
查看全部评分
|