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


Фотография

Please help.


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

#1 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 11 September 2015 - 19:00

 не знаете как можно было бы упростить:

aobgectiveshq = [];
_lvobgectiveshq = 0;
{
vcpointsw = vcpointsw + 1;
    while {_lvobgectiveshq == 0;} do {
        sleep 5;
        if (alive _x) then {}
        else {
            countingwestv = countingwestv - 1;
            _lvobgectiveshq = 1;
        };
    };
} for each aobgectiveshq;

Что он не понимает? (я знаю Что, не знаю почему)

vppreshurewest = 0;
vppreshureeast = 0;
_acivu = 0;

{
if (side _x == Civilian) then {
    _acivu = _x;
    _x addMPeventhandler ["MPkilled",{
        hint format ["%1 is under invastigation",_this select 1];
        _lvppreshures = format [vppreshure%1,text "str (side (_this select 1))"];
        _lvppreshures = _lvppreshures + 1;
}];
{_x addCuratorEditableObjects [[_acivu],true];} forEach allCurators;
while {true} do {
 sleep 10;
 if (vppreshurewest > 1) then {hint "West is under ppreshure."};
 if (vppreshureeast > 1) then {hint "East is under ppreshure."};
};
};
} forEach allUnits;

И как сделать чтобы addeventhandler ["MPkilled" добавлялся появившимся во время игры units.

 

И есть у ai в uav's что нибудь их выдающее, для подсчёта?

И ещё вопрос, где выполняется код заданный в object init через zeus?

 

Thanks in advance.


Сообщение отредактировал Ilias: 12 September 2015 - 13:01

  • 0

#2 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 11 September 2015 - 19:08

В прошлый раз я намекнул, а теперь настоятельно рекомендую, сначала сюда

http://arma3.ru/foru...kriptopisaniiu/

 

а потом, вы выкинете то что выложили выше, и перепишете всё с нуля, ибо вам станет ясно какую ересь вы изложили!)


  • 0

#3 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 11 September 2015 - 19:09

В прошлый раз я намекнул, а теперь настоятельно рекомендую, сначала сюда

http://arma3.ru/foru...kriptopisaniiu/

 

а потом, вы выкинете то что выложили выше, и перепишете всё с нуля, ибо вам станет ясно какую ересь вы изложили!)

 

Если ты можешь помочь с решением конкретно заданных вопросов, я буду признателен.


Сообщение отредактировал Ilias: 11 September 2015 - 20:03

  • 0

#4 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 11 September 2015 - 23:51

.


Сообщение отредактировал Ilias: 12 September 2015 - 01:40

  • 0

#5 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 12 September 2015 - 12:57

Неужели тут нет никого кто мог бы ответить на эти протые вопросы?


  • 0

#6 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 12 September 2015 - 13:11

Ilias, что бы ответить на ваши вопросы вы должны в полной мере понимать скриптописание в А3, что вам настойчиво предлагает тов. SteelRat
  • 0

#7 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 12 September 2015 - 13:20

vlad333000,

Я не понимаю-что я не понимаю, буду признателен за объяснение это разумнее чем читать целую кучу всего что я знаю для для получения одного ответа.


  • 0

#8 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 12 September 2015 - 13:45

Ilias, что бы ответить на ваши вопросы вы должны в полной мере понимать скриптописание в А3, что вам настойчиво предлагает тов. SteelRat

Если я !ничего! не понимаю, то почему оно работает?

Вариант на данный момент:

acivu = [];
la = [];
_la1 = [];
_lv = 1;

while {true} do {
{
	if (side _x == Civilian) then {
		_acivu = _x;
		_la1 = [_x];
		_lv = la find _x;
		if (_lv != 0) then {
			_x addMPeventhandler ["MPkilled",{
				hint format ["%1 is under invastigation",_this select 1];
				switch (side (_this select 1)) do {
					case blufor: {vppreshurew = vppreshurew + 1};
					case opfor: {vppreshuree = vppreshuree + 1};
				};
			}];
			{
			_x addCuratorEditableObjects [[_acivu],true];
			} forEach allCurators;
			la = la + _la1;
		};
	};
} forEach allUnits;
sleep 10;
};

Сообщение отредактировал Ilias: 12 September 2015 - 13:46

  • 0

#9 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 12 September 2015 - 13:55

Ilias, напомнить как вы еле еле поняли бональные истины после тонны наших подсказок? Напомнить что вы хотите разбираться в скриптах А3, не изучив сам язык скриптописание П3?
+ у вас есть одна логическая ошибка, которая с точки зрения кода правильная, но с точки зрения логики - ошибка (Тоесть не препятствует работе кода)

Сообщение отредактировал vlad333000: 12 September 2015 - 13:55

  • 0

#10 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 12 September 2015 - 14:06

Ilias, напомнить как вы еле еле поняли бональные истины после тонны наших подсказок? Напомнить что вы хотите разбираться в скриптах А3, не изучив сам язык скриптописание П3?
+ у вас есть одна логическая ошибка, которая с точки зрения кода правильная, но с точки зрения логики - ошибка (Тоесть не препятствует работе кода)

Работоспособность 100%

acivu = [];
la = [];
_la1 = [];
_lv = 1;

while {true} do {
{
	if (side _x == Civilian) then {
		_acivu = _x;
		_la1 = [_x];
		_lv = la find _x;
		if (_lv == 0) then {
			if (alive _lv) then {}
			else  {
				la = la - _la1;
			};
		} else {
			_x addMPeventhandler ["MPkilled",{
				hint format ["%1 is under invastigation",_this select 1];
				_null = _this select 1 spawn {
				switch (side _this) do {
					case blufor: {vppreshurew = vppreshurew + 1};
					case opfor: {vppreshuree = vppreshuree + 1};
				};
				};
			}];
			{
			_x addCuratorEditableObjects [[_acivu],true];
			} forEach allCurators;
			la = la + _la1;
		};
	};
} forEach allUnits;
sleep 10;
};

 


напомнить как вы еле еле поняли бональные истины после тонны наших подсказок? Напомнить что вы хотите разбираться в скриптах А3, не изучив сам язык скриптописание П3?

Мне не нужна оценка, мне нужны ответы на конкретно задаваемые вопросы.

(Тот скрипт был первый когда либо мной написанный на каком либо языке, после часа не сосредоточенного изучения.)

 


+ у вас есть одна логическая ошибка, которая с точки зрения кода правильная, но с точки зрения логики - ошибка (Тоесть не препятствует работе кода)

Интересно, ?


Сообщение отредактировал Ilias: 12 September 2015 - 14:32

  • 0

#11 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 12 September 2015 - 14:24

Ilias, изучаем язык скриптописание и вам станет понятно
  • 0

#12 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 12 September 2015 - 14:29

Ilias, изучаем язык скриптописание и вам станет понятно

Просто сказать нельзя?


Так вы можете помочь?


  • 0

#13 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 12 September 2015 - 14:53

Ilias, ну если вы настолько упорно не хотите изучать, то в чем хотите разбираться:
find = -1 - не найдено
find != -1 - если элемент найден, но возвращаемое значение равно индексу элемента в массиве
If (find != 0) then {code} - логическая ошибка
Код будет выполняется сначала для всех (т к никого нету в массиве), в после, каждые 10 секунд код будет выполняется для всех кроме 1 Цивиль в массиве - итог бесконечное добавление обработчиков события - бесконечно возрастающая нагрузка и бесконечное засорение памяти, и спустя какое то время может вызывать жуткие лаги в момент смерти - единовременный вывод большого кол-ва hint вызывает тормоза(для наглядности в дебаг консоли напишите
[] spawn {sleep 1; while {true} do {hint "text"; sleep 0.000001}}

Сообщение отредактировал vlad333000: 12 September 2015 - 14:57

  • 0

#14 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 12 September 2015 - 15:07

 

Ilias, ну если вы настолько упорно не хотите изучать, то в чем хотите разбираться:
find = -1 - не найдено
find != -1 - если элемент найден, но возвращаемое значение равно индексу элемента в массиве
If (find != 0) then {code} - логическая ошибка
Код будет выполняется сначала для всех (т к никого нету в массиве), в после, каждые 10 секунд код будет выполняется для всех кроме 1 Цивиль в массиве - итог бесконечное добавление обработчиков события - бесконечно возрастающая нагрузка и бесконечное засорение памяти, и спустя какое то время может вызывать жуткие лаги в момент смерти - единовременный вывод большого кол-ва hint вызывает тормоза(для наглядности в дебаг консоли напишите

[] spawn {sleep 1; while {true} do {hint "text"; sleep 0.000001}}

find возвращает место найденного а не факт нахождения, вот и всё.

la = [];
_la1 = [];
lociv = 0;
_lv = -1;

while {true} do {
{
	if (side _x == Civilian) then {
		lociv = _x;
		_la1 = [_x];
		_lv = la find _x;
		if (_lv != -1) then {
			if (alive _x) then {}
			else  {
				la = la - _la1;
			};
		} else {
			_x addMPeventhandler ["MPkilled",{
				hint format ["%1 is under invastigation",_this select 1];
				_null = _this select 1 spawn {
				switch (side _this) do {
					case blufor: {vppreshurew = vppreshurew + 1};
					case opfor: {vppreshuree = vppreshuree + 1};
				};
				};
			}];
			la = la + _la1;
		};
	};
	{
	_x addCuratorEditableObjects [[lociv],true];
	} forEach allCurators;
} forEach allUnits;
sleep 10;
};
 

Верно?


Сообщение отредактировал Ilias: 12 September 2015 - 16:10

  • 0

#15 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 12 September 2015 - 19:18

Ilias, ну если вы настолько упорно не хотите изучать, то в чем хотите разбираться:
find = -1 - не найдено
find != -1 - если элемент найден, но возвращаемое значение равно индексу элемента в массиве
If (find != 0) then {code} - логическая ошибка
Код будет выполняется сначала для всех (т к никого нету в массиве), в после, каждые 10 секунд код будет выполняется для всех кроме 1 Цивиль в массиве - итог бесконечное добавление обработчиков события - бесконечно возрастающая нагрузка и бесконечное засорение памяти, и спустя какое то время может вызывать жуткие лаги в момент смерти - единовременный вывод большого кол-ва hint вызывает тормоза(для наглядности в дебаг консоли напишите

[] spawn {sleep 1; while {true} do {hint "text"; sleep 0.000001}}

 

Помоги пожалуйста опять ему что то не нравиться

 

Всё работает но vppreshure|side| не идёт за 2.
la = [];
_la1 = [];
_la2 = [];
lociv = 0;
_lv = -1;
_lo = 0;

while {true} do {
{
	if (side _x == Civilian) then {
		lociv = _x;
		_la1 = [_x];
		_lv = la find _x;
		if (_lv == -1) then {
			_x addMPeventhandler ["MPkilled",{
				_la2 = [_this];
				hint format ["%1 is under invastigation",_this select 1];
				_lo = _this select 1;
                                _lo spawn {
				switch (side _this) do {
					case blufor: {vppreshurew = vppreshurew + 1};
					case opfor: {vppreshuree = vppreshuree + 1};
				};
				};
				la = la - _la2;
			}];
			la = la + _la1;
		};
	{
	_x addCuratorEditableObjects [[lociv],true];
	} forEach allCurators;
	};
} forEach allUnits;
sleep 10;
};

интересно: 129 просмотров, 14 ответов/


Сообщение отредактировал Ilias: 13 September 2015 - 00:01

  • 0

#16 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 12 September 2015 - 21:05

Ilias, ну если вы настолько упорно не хотите изучать, то в чем хотите разбираться:
find = -1 - не найдено
find != -1 - если элемент найден, но возвращаемое значение равно индексу элемента в массиве
If (find != 0) then {code} - логическая ошибка
Код будет выполняется сначала для всех (т к никого нету в массиве), в после, каждые 10 секунд код будет выполняется для всех кроме 1 Цивиль в массиве - итог бесконечное добавление обработчиков события - бесконечно возрастающая нагрузка и бесконечное засорение памяти, и спустя какое то время может вызывать жуткие лаги в момент смерти - единовременный вывод большого кол-ва hint вызывает тормоза(для наглядности в дебаг консоли напишите

[] spawn {sleep 1; while {true} do {hint "text"; sleep 0.000001}}

Поможеш?


  • 0

#17 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 12 September 2015 - 21:13

Ну и правильно что на vpppreshau спотыкается - где начально значение? Как железке понять "ничего + 1"?
Еще раз повторю: изучайте язык!
Все я улетучиваюсь пока вы не изучие язык

Сообщение отредактировал vlad333000: 12 September 2015 - 21:15

  • 0

#18 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 12 September 2015 - 21:20

Ну и правильно что на vpppreshau спотыкается - где начально значение? Как железке понять "ничего + 1"?
Еще раз повторю: изучайте язык!
Все я улетучиваюсь пока вы не изучие язык

они заданы

init.sqf

vppreshurew = 0;
vppreshuree = 0;

Я же не могу сюда всё выкладывать

У меня там 26 файлов.

и у него бы другая реакция была если нет.

 

Хватит уже,

спросил бы заданы ли они


Сообщение отредактировал Ilias: 12 September 2015 - 22:28

  • 0

#19 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 12 September 2015 - 21:26

Ну и правильно что на vpppreshau спотыкается - где начально значение? Как железке понять "ничего + 1"?
Еще раз повторю: изучайте язык!
Все я улетучиваюсь пока вы не изучие язык

только предыдущее сообщение не пропусти пожалуйста


Сообщение отредактировал Ilias: 12 September 2015 - 21:26

  • 0

#20 OFFLINE   Ilias

Ilias

    Прапорщик

  • Пользователи
  • 512 сообщений

Отправлено 13 September 2015 - 00:16

всё работает

la = [];
_la1 = [];
_la2 = [];
lociv = 0;
_lv = -1;

while {true} do {
{
	if (side _x == Civilian) then {
		lociv = _x;
		_la1 = [_x];
		_lv = la find _x;
		if (_lv == -1) then {
			_x addMPeventhandler ["MPkilled",{
				_la2 = [_this];
				hint format ["%1 is under invastigation",_this select 1];
				switch (side (_this select 1)) do {
					case blufor: {vppreshurew = vppreshurew + 1};
					case opfor: {vppreshuree = vppreshuree + 1};
				};
				la = la - _la2;
			}];
			la = la + _la1;
		};
		{
		_x addCuratorEditableObjects [[lociv],true];
		} forEach allCurators;
	};
} forEach allUnits;
sleep 10;
};

теперь кто нибудь может таки помочь?

 

 

 не знаете как можно было бы упростить:

aobgectiveshq = [];
_lvobgectiveshq = 0;
{
vcpointsw = vcpointsw + 1;
    while {_lvobgectiveshq == 0;} do {
        sleep 5;
        if (alive _x) then {}
        else {
            countingwestv = countingwestv - 1;
            _lvobgectiveshq = 1;
        };
    };
} for each aobgectiveshq;

почему он не понимает?

vppreshurewest = 0;
vppreshureeast = 0;
_ts = "west";

_lvppreshures = format [vppreshure%1,text "str (side (_ts))"];
_lvppreshures = _lvppreshures + 1;

И как сделать чтобы addeventhandler ["MPkilled" добавлялся появившимся во время игры units.

 

И есть у ai в uav's что нибудь их выдающее, для подсчёта?

И ещё вопрос, где выполняется код заданный в object init через zeus?

 

Thanks in advance.

 


Сообщение отредактировал Ilias: 13 September 2015 - 00:19

  • 0




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