中国虚拟军事网(VME)- 专注于武装突袭系列虚拟军事游戏

 找回密码
 加入VME

QQ登录

只需一步,快速开始

搜索
查看: 1323|回复: 22

[求助] 脚本编辑新手求助。。。大虾请进

[复制链接]
发表于 2014-10-25 15:55:10 | 显示全部楼层 |阅读模式
我想让玩家的队伍挨个从飞机(Aircraft1)里面跳出来,我这么写结果只有队长跳出来了。。。大神帮我看看问题在哪?
{_x moveInCargo Aircraft1} foreach units group player

_unit = units group player;
_i = 0;
_j = count _unit;

while {_i < _j} do {
(_unit select _i) action ["Eject", Aircraft1];
unAssignVehicle (_unit select _i);
_i = _i + 1;
sleep 1
}
 楼主| 发表于 2014-10-25 15:59:26 | 显示全部楼层
我不太确定是不是那个循环结果有问题,因为只有队长跳出去了。。。。如果是的话应该怎么写呢?
发表于 2014-10-25 16:04:16 | 显示全部楼层
本帖最后由 gpgpgpgp 于 2014-10-25 16:05 编辑

没看出问题(我也是菜鸟啊,除了第一段结束没分号)。不过你后面那段应该可以简化成:

{_x action ["Eject", Aircraft1];sleep 1;} foreach (units player);

点评

这样跳出去队长还会让你坐进去。。。  发表于 2014-10-25 16:26
发表于 2014-10-25 16:06:19 | 显示全部楼层
你要给队长的组起个名字

点评

怎么给组起名字?group player的返回值应该就是玩家所在的组啊。。。  发表于 2014-10-25 16:24
没理由吧。  发表于 2014-10-25 16:08
发表于 2014-10-25 16:12:12 | 显示全部楼层
bym101 发表于 2014-10-25 16:06
你要给队长的组起个名字

_unit = units group player;
_i = 0;
_j = count _unit;

while {_i < _j} do {
(_unit select _i) action ["Eject", Aircraft1];
unAssignVehicle (_unit select _i);
_i = _i + 1;
sleep 1
}
发表于 2014-10-25 16:15:42 | 显示全部楼层
bym101 发表于 2014-10-25 16:12
_unit = units group player;
_i = 0;
_j = count _unit;

呃,根据他的代码,貌似想跳机的组应该就是玩家所在组。

点评

嗯。。。就是这个意思  发表于 2014-10-25 16:25
发表于 2014-10-25 16:40:14 | 显示全部楼层
在队长的INIT里输入:BBB=group this
BBB就是组的名字

点评

貌似还是不行  发表于 2014-10-25 17:21
发表于 2014-10-25 17:16:08 | 显示全部楼层
或许应该先unAssign再Action[Eject]。嗯,让我晚上试试再说。另外,去掉sleep试试。这个sleep曾经不止一次搞坏我的脚本(我也不知道为啥)。

点评

我试过了。。去掉sleep确实可以。。。不过所有人都挤作一团跳机。。看着好别捏。。。  发表于 2014-10-25 23:39
赶脚sqs的语法成功率比sqf要高。。。以前用~的时候都没有问题。。。  发表于 2014-10-25 17:21
发表于 2014-10-25 17:29:42 | 显示全部楼层
gpgpgpgp 发表于 2014-10-25 17:16
或许应该先unAssign再Action[Eject]。嗯,让我晚上试试再说。另外,去掉sleep试试。这个sleep曾经不止一次 ...

好像以前见过sqf不能用sleep

点评

BI的wiki community上都有这条指令啊。。。  发表于 2014-10-25 22:00
发表于 2014-10-25 22:13:00 | 显示全部楼层
本帖最后由 chaoduichen 于 2014-10-25 22:17 编辑

没细看。。。跟FSM混了,不好意思

点评

那是什么东东?。。。。  发表于 2014-10-25 23:13
发表于 2014-10-26 10:20:57 | 显示全部楼层
嗯,你试试spawn {}这个。
[] spawn {语句}
相当于额外开辟一个线程来运行括号中的代码。这样可以支持延时,缺点是之前的变量要这样传输进去:
[_var1,_var2] spawn {
  _var1_in_spawn = _this select 0;
  _var2_xxx = _this select 1;
  sleep 1;
  .....
};
这样。

点评

这个好高级啊。。。我先试试。。。  发表于 2014-10-26 21:45
发表于 2014-10-26 10:21:57 | 显示全部楼层
根据以往的经验:
sqs是以换行符断句,sqf是以;断句,sqs转换sqf注意这一点就行了(lz应该知道问题出哪了吧)。
另外:包含sleep语句脚本调用方式有其特别的地方,如果语块脚本有_this传递,请用call(sleep语句无效)以外的方式调用比如spawn....

点评

大神谢谢指教。。。。。。  发表于 2014-10-26 21:46
您需要登录后才可以回帖 登录 | 加入VME

本版积分规则

小黑屋|中国虚拟军事网

GMT+8, 2024-4-26 00:02

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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