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

 找回密码
 加入VME

QQ登录

只需一步,快速开始

搜索
查看: 2529|回复: 7

[求助] 奇怪这段脚本一跑就崩溃

[复制链接]
发表于 2016-2-28 16:04:37 | 显示全部楼层 |阅读模式


这是一个测试脚本如果是创建物品就没问题,是步兵单位运行不到一分钟游戏就崩溃了不知道问题出在哪里希望大家帮忙测试一下

player allowDamage false;

hint "开始...";
[[["O_Soldier_AR_F"], {
xxxyy = {
_Class = _this select 0;
_width = _this select 1;
_length = _this select 2;
_shells = _this select 3;
_side = if((playerSide == west)||{playerSide == resistance}||{playerSide == civilian})then{east}else{west};
_grp = createGroup _side;
_Pos = getPosASL player;
_dir = random 360;
_shellsPerMetre = _shells / _length;
for [{ _i = -(_length / 2) }, {_i < (_length / 2) }, { _i = _i + (1 / _shellsPerMetre) }] do {
        _rnd = (random _width) - (_width / 2);
        _Pos1 = [(_Pos select 0) + (_i * sin _dir) + (_rnd * cos _dir), (_Pos select 1) + (_i * cos _dir) + (_rnd * sin _dir), 9999];
        _round = if(_Class isKindOf "man")then[{if(_Class isKindOf "Animal")then[{createAgent [_class, _Pos1, [], 0, "FORM"]},{_grp createUnit [_class, _Pos1, [], 0, "NONE"]}]},{_Class createVehicle _Pos1}];
        _Pos1 set [2, getPosASL player select 2];
        _round setPosASL _Pos1;
        _round setDir (random 360);
        sleep 0.1;
}};
(_this select 0) spawn {
    while {true} do {
        waitUntil {!isNull player && {alive player}};
        [_this, 30+(random 170), 50+(random 150), 50+(random 150)] call xxxyy;
    };
};
}], "BIS_fnc_spawn", true, true] call BIS_fnc_MP;

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入VME

x
发表于 2016-2-29 19:01:31 | 显示全部楼层
  1. _round = if(_Class isKindOf "man")then[{if(_Class isKindOf "Animal")then[{createAgent [_class, _Pos1, [], 0, "FORM"]},{_grp createUnit [_class, _Pos1, [], 0, "NONE"]}]},{_Class createVehicle _Pos1}];
复制代码

这段看起来不太对。
 楼主| 发表于 2016-2-29 21:39:57 | 显示全部楼层
gpgpgpgp 发表于 2016-2-29 19:01
这段看起来不太对。

应该没问题啊,三种创建方式都有返回值,isKindOf参数可以是Object 或者类名,isKindOf "man"下是包括人类单位和动物
发表于 2016-3-1 10:47:08 | 显示全部楼层
把它展开看看,许多错误就一目了然了。
  1. _round =
  2.         if(_Class isKindOf "man")then
  3.         [{
  4.                 if(_Class isKindOf "Animal")then
  5.                 [{
  6.                         createAgent [_class, _Pos1, [], 0, "FORM"]},{_grp createUnit [_class, _Pos1, [], 0, "NONE"]}]},{_Class createVehicle _Pos1}];
复制代码


首先,if-then的格式是:
if( condition )then
{

};
而不是
if( condition )then
[{

}];
你的括号也没有对齐。这句代码到分号为止,不清楚在做什么。
 楼主| 发表于 2016-3-1 15:47:27 | 显示全部楼层
gpgpgpgp 发表于 2016-3-1 10:47
把它展开看看,许多错误就一目了然了。

if可以是这样的写法

_round =
    if(_Class isKindOf "man")then[{
        if(_Class isKindOf "Animal")then[{
            createAgent [_class, _Pos1, [], 0, "FORM"];
        },{
            _grp createUnit [_class, _Pos1, [], 0, "NONE"];
        }];
    },{
        _Class createVehicle _Pos1;
    }];
       
if()then{}else{};等同于数组格式的if()then[{},{}];

https://community.bistudio.com/wiki/if
发表于 2016-3-1 20:05:11 | 显示全部楼层
如果是这样,那么就是这儿不对。
  1. _grp createUnit [_class, _Pos1, [], 0, "NONE"];
复制代码
 楼主| 发表于 2016-3-1 20:47:49 | 显示全部楼层
sleep 0.1;改成sleep 2;创建到700人都没问题,难道不能快速创建?
_grp = createGroup east;
while {true} do   {
    _grp createUnit ["O_Soldier_AR_F", getpos player, [], 0, "NONE"];
};//还是崩溃
发表于 2016-3-2 10:14:28 | 显示全部楼层
本帖最后由 gpgpgpgp 于 2016-3-2 10:32 编辑
啤酒冲米二 发表于 2016-3-1 20:47
sleep 0.1;改成sleep 2;创建到700人都没问题,难道不能快速创建?
_grp = createGroup east;
while {true ...


https://community.bistudio.com/wiki/createUnit
您需要登录后才可以回帖 登录 | 加入VME

本版积分规则

小黑屋|中国虚拟军事网

GMT+8, 2024-4-26 03:37

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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