Перейти к содержимому


Фотография

[Help!]Error in expression


Лучший Ответ vlad333000 , 25 February 2017 - 12:52

Red_Hot, ну вы же даже в лог выводите неправильные значения:

...
1:52:38 "POSITION : [[278.043,156.917,22.2639]]"
...
На что и жалуется дальше Арма:
...
1:52:38   Error 1 установлено элементов, 3 ожидалось
...
Позиция - это массив из трех элемнтов типа число, а у вас массив из одного элемента типа массив, который содержит 3 элемнта типа число Перейти к сообщению


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1 OFFLINE   Red_Hot

Red_Hot

    Рядовой

  • Пользователи
  • 2 сообщений
  • Откуда:Ukraine
  • Отряд:VOENSTAL

Отправлено 25 February 2017 - 03:11

Всем привет!

кто может помочь?
у меня такая проблема

есть скрипт спавна артефактов  в определенных координатах заданных в массиве 
ставлю триггер в EDEN редакторе имя переменной пишу sp_point1
после в скрипте получаю координаты триггера (_art_spawn1 = getPosWorld sp_point1;)

и когда запускаю скрипт в логах выдает такую ошибку
что я не так делаю, помогите пожалуйста(
 

1:52:38 "SPAWN LOCAL ARTIFACT : Medusa_Unstab at [[278.043,156.917,22.2639]]"
 1:52:38 Error in expression <Artifact__spawnedArtifacts pushBack (_x createVehicleLocal _posRandom);

diag_lo>
 1:52:38   Error position: <createVehicleLocal _posRandom);

diag_lo>
 1:52:38   Error 1 установлено элементов, 3 ожидалось
 1:52:38 File zone_server\modules\Artifact\Artifact.sqf, line 81
 1:52:38 "RANDOMIZER : 100"
 1:52:38 "POSITION : [[278.043,156.917,22.2639]]"
 1:52:38 "SPAWN LOCAL ARTIFACT : GRAVI_Unstab at [[278.043,156.917,22.2639]]"
 1:52:38 Error in expression <Artifact__spawnedArtifacts pushBack (_x createVehicleLocal _posRandom);

diag_lo>
 1:52:38   Error position: <createVehicleLocal _posRandom);

diag_lo>
 1:52:38   Error 1 установлено элементов, 3 ожидалось
 1:52:38 File zone_server\modules\Artifact\Artifact.sqf, line 81

Вот сам скрипт

moduleInitStart();


	
	module(_artifacts) = [
			[
			"GRAVI_Unstab","FIRE_Unstab","MEAT_Unstab","Medusa_Unstab","Item_ELECTRA_Unstab","Item_TEARS_Unstab","Item_CRYSTALL_Unstab","Item_BATTERY_Unstab"],
			[100,100,100,45,25,35,25,25]
	];

	
	_art_spawn1 = getPosWorld sp_point1;


	module(_spawnAreas) = [
	
		[[_art_spawn1], 10, ["Medusa_Unstab", "GRAVI_Unstab"]] //TEST AREA

	];

	module(_spawnDelay) = 150;

	module(_maxArtifacts) = 1500;

	module(_spawnedArtifacts) = [];

	module(SpawnArtifacts) = {

		// foreach module(_spawnAreas)
		{
			_position   = _x select 0;
			_radius     = _x select 1;
			_artifacts  = _x select 2;

			// foreach _artifacts
			{
				if ((count module(_spawnedArtifacts)) < module(_maxArtifacts)) then {

					if (assocGet(module(_artifacts), _x) > (random 100)) then {

            private ["_posRandom"];
            private ["_randomizer"];
            _randomizer = _radius * 10;
            diag_log format ["RANDOMIZER : %1", _randomizer];
            			
            _posRandom = _position; //vectorAdd [round(random (2*(- _randomizer))+ _randomizer), round(random (2*(- _randomizer))+ _randomizer), 0];  //_position
            diag_log format ["POSITION : %1", _position];
            module(_spawnedArtifacts) pushBack (_x createVehicleLocal _posRandom);

            diag_log format ["SPAWN LOCAL ARTIFACT : %1 at %2", _x, _posRandom];
          };
				};
			} foreach _artifacts;
		} foreach module(_spawnAreas);
	};


	[] spawn {

		while {true} do {
			sleep module(_spawnDelay);
			[] call module(SpawnArtifacts);
		};
	};


	[] spawn {

		while {true} do {

			sleep 3;
			{
				_currentUnit = _x;

				diag_log format['!!!!!!!!! %1 >>> %2 ', _currentUnit, (_currentUnit getVariable ["ARTDETECTOR", 0])];

				//if ((1 == (_currentUnit getVariable ["ARTDETECTOR", 0]))) then {

					 // foreach nearestObjects
					{
						private ["_artifactClass", "_artifactPosition"];
						
						diag_log format["IS LOCAL %1", (local _x)];
						
						if (local _x) then {
							_artifactClass    = typeOf _x;
							_artifactPosition = (getPos _x);

						  // удаляем локальный арт
						  deleteVehicle _x;
						  module(_spawnedArtifacts) = module(_spawnedArtifacts) - [_x];

										// спавним артефакт глобально
										diag_log format ["spawn artifact %1 for player %2 at %3", _artifactClass, _currentUnit, _artifactPosition];
							// _artifactClass createVehicle _artifactPosition;
							_veh = _artifactClass createVehicle _artifactPosition;
							_veh setOwner (owner _currentUnit);
							// "Sign_Pointer_Green_F" createVehicle _artifactPosition; // test
						};
					} foreach nearestObjects [_currentUnit, (module(_artifacts) select 0), 20]; // todo: заменить костнантами - класс артефакта и радиус действия детектора
				//};
			} forEach playableUnits;

		};

	};


	moduleInitEnd();

  • 0

#2 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 25 February 2017 - 12:52   Лучший Ответ

Red_Hot, ну вы же даже в лог выводите неправильные значения:
...
1:52:38 "POSITION : [[278.043,156.917,22.2639]]"
...
На что и жалуется дальше Арма:
...
1:52:38   Error 1 установлено элементов, 3 ожидалось
...
Позиция - это массив из трех элемнтов типа число, а у вас массив из одного элемента типа массив, который содержит 3 элемнта типа число
  • 0

#3 OFFLINE   Red_Hot

Red_Hot

    Рядовой

  • Пользователи
  • 2 сообщений
  • Откуда:Ukraine
  • Отряд:VOENSTAL

Отправлено 25 February 2017 - 15:58

Red_Hot, ну вы же даже в лог выводите неправильные значения:

...
1:52:38 "POSITION : [[278.043,156.917,22.2639]]"
...
На что и жалуется дальше Арма:
...
1:52:38   Error 1 установлено элементов, 3 ожидалось
...
Позиция - это массив из трех элемнтов типа число, а у вас массив из одного элемента типа массив, который содержит 3 элемнта типа число

 

а как мне получить из массива 3 элемента ?


  • 0




Яндекс.Метрика