Перейти к содержанию
ToxaSM

Вопросы по созданию МП-миссий

Рекомендуемые сообщения

а у этой мишки нурсы не желают выпиливатся

 

this removeMagazinesTurret ["80Rnd_80mm",[-1]]

this removeWeaponTurret ["ACE_S8Launcher",[-1]];

 

хотя смотрел его в SIX Browser.

Процентов 30 всего добра из сборки отсутствует в six browser, поэтому только PG, только хардкор.

Изменено пользователем crabe

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

this removeWeaponTurret ["ACE_S8Launcher",[-1]];
эта команда введена в А3, в А2 только removeWeapon, не?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня осталась только проблема с вертолетом, все-таки можно ли удалить радар Ка-50 или нет? Потому как я перепробовал все способы а у мишки нары остаются в любом случае, хотя птуры удаляются.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@crabe,каким скриптом? Что мне прописывать то эквипменте?  Так не получается: _veh removeMagazines ["80Rnd_80mm",[-1]];

{_veh removeMagazines "80Rnd_80mm"} forEach [0];

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

 


this removeMagazinesTurret ["80Rnd_80mm",[-1]]

 

прописывать это через вехпроцессор можно, конечно. Но на мой взгляд изврат и много мусорного кода.

Изучи что такое строка инициализации объекта чтоль  :)

Изменено пользователем crabe

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нашел в своей миссии(http://wogames.info/topic/2170-mwog-132-nelyotnaia-pogoda/) такую проблему: у красной стороны ванильные А3 медпакеты не разбиваются на бинты и морфин, при чем у синей стороны все в порядке. Кто-нибудь знает, как это починить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@CaesarSalad, Появляется ли такая проблема регулярно? Возможно это просто баг, который иногда бывает у части игроков на играх.
Обойти проблему можно выдачей бинтов/морфинов через скрипт в ините каждому юниту, либо просто поставить на респе ящики с медициной, либо добавить в снаряжение транспорта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Появляется ли такая проблема регулярно?

я открыл его миссию в редакторе и там тоже самое - у ванильный РХСовский русских мед.пакеты, а у таких же ванильных американцев все нормально. Может просто попробовать собрать миссию заново (создать новый файл в редакторе и поставить все как было)

Изменено пользователем DeFeNDeR

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

РХСовский хотфикс починил этот баг.

Причем здесь RHS? Медпакеты разбивает agm_medical. А проблема была связана с прошлым обновлением CBA A3, что-то изменилось в обработке XEH хендлеров.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Zealot, ну значит так совпало, что с обновлением медпакеты починились у красных. У зеленых, кстати, до сих пор через раз работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Парни что лучше?

 

1) Создание триггеров в 2д редакторе (прям в миске)

 

или 

 

2)  Создание такого триггера?

if (isServer) then{_trg = createTrigger ["EmptyDetector", getMarkerPos "us",false];бла бла бла;
};

Жопой чую, что триггерами и вычислениями внутри триггеров лучше считать на сервере (благо можно создать триггер локальный только серверу), но как поведут себя клиенты?. Есть удачные примеры реализации локальных серверу триггеров? WMT мне маловат по функционалу прост.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@StDIABLO

Второе. Провещать эвент на клиенты потом не забудь.

Примеров не видел, здесь поцики обычно по нормальному коду не запариваются. Да мне и самому бы было лень.

Изменено пользователем swatSTEAM

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В ините вехикла: this setVectorUp [0,0,1];

весчщь,

для заборов замена  - skill=1.00000; на skill=1.00000; init="this setVectorUp [0,0,1]";

ровняет всё что наклепал

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@swatSTEAM, А зачем эвент хендлер игрокам? Я как  думал (поправь если не так):

 

Задача на миске захватить и удержать: (прям белый снег вспомнился :) только там без триггера нахождение в зоне считается, через равноудаленность от объекта)

 

Мозг мне подсказывает что лучше создать триггер (через инит локальный серверу) в его инициализации написать ANY + car in thisList. В активации -> вызов sqf которая чекает сколько времени простоял объект car в триггерной зоне.

Если простоял достаточно - просто вызываю конец миссии через функцию wmt.

 

т.е все вычисления на серве получаются, да и вообще клиенты не знают о триггере как объекте. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мозг мне подсказывает что лучше создать триггер (через инит локальный серверу) в его инициализации написать ANY + car in thisList. В активации -> вызов sqf которая чекает сколько времени простоял объект car в триггерной зоне. Если простоял достаточно - просто вызываю конец миссии через функцию wmt.   т.е все вычисления на серве получаются, да и вообще клиенты не знают о триггере как объекте. 

 

Пример пожалуйста.

 

 

Такой вопрос. Есть ли отличие радаров в различных техниках. Если я не ошибаюсь. Радар в шилке не видит ничего кроме воздушных целей?

Хотя есть множество техники которая видит как воздух так и землю.

Изменено пользователем almost

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну создание триггера локального ТОЛЬКО серверу изи -> (работает только в A3 если чо)

if (isServer) then{
_vicUS = 0;
_trg = createTrigger ["EmptyDetector", getMarkerPos "us",false];
_trg setTriggerArea [250, 400, 0, false];
_trg setTriggerActivation ["ANY", "PRESENT", true];
_trg setTriggerStatements [
"car in thisList", "_vicUS = [] execVM 'CheckUS.sqf';", ""];};

код CheckUS.sqf у меня пока не готов но все впереди.

 

Чтото типа 

 

если timeus > 5  тогда  timeus  = timeus -5 ; sleep 5

иначе  вызываем процедуру победы синей стороны.

 

Получется триггер чекает машину в зоне (вродебы каждые 0.5 сек) если в зоне и время нахождения в зоне пока не подошло к концу  (например timeus задать 1200 сек) вычитает время и ждет дальше подошло время - вызываем процедуру победы синей стороны (пока не написал). И вроде ВЕСЬ код (возможно кроме процедуры победы) будет выполнятся ТОЛЬКО на сервере.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

(работает только в A3 если чо)
Кто тебе сказал? Подобный скрипт на удержание зоны в течение определенного времени использовался Мибом (и теми, кто его позаимствовал ;)). Отлично работает на А2.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если я правильно понимаю - то в а2 все триггеры глобальные

Пруф ниже

 

https://community.bistudio.com/wiki/createTrigger

 

createTrigger [type, position, makeGlobal] Parameters: [type, position, makeGlobal]: Array type: String position: Position2DPosition3D or Object makeGlobal (optional)Boolean - locality flag, true - trigger is global effects_global.gif, false - trigger is local effects_local.gif (available since Arma 3 v1.43.129935)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@StDIABLO, уговорил  :lol: Только надо будет тестить, как оно поведет себя на сервере. С Армой часто бывает, что делаешь-делаешь, в редакторе и на локальном сервере все работает, а на игровом нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Собстна инит

enableSaving [false, false];
enableSentences false;
//[] execvm "briefing.sqf";
//only for this missiom
winside=0;
publicVariable "winside";
if (isServer) then{
//рандомим машину
_r= round(random 5);
_obj = ([p_1,p_2,p_3,p_4,p_5,p_6] select _r);
device setDir (getDir _obj);
device setPosASL (getPosASL _obj);
{deleteVehicle _x} forEach [p_1,p_2,p_3,p_4,p_5,p_6];

[] spawn { //чек машины в маркерах
_timeRU=120;
_timeUS=120;
while {alive device} do {
	if ([device,"ru"] call WMT_fnc_IsTheUnitInsideMarker) then {
		_timeRU = _timeRU - 5;
		};
	if ([device,"us"] call WMT_fnc_IsTheUnitInsideMarker) then {
		_timeUS = _timeUS - 5;
		};
	if  (_timeRU<5) then {
		winside =1;
		publicVariable "winside";
		};
	if  (_timeUS<5) then {
		winside =2;
		publicVariable "winside";
		};
	sleep 5;
	};
winside =3;
publicVariable "winside";
};

};

/*
[] spawn { //us

};
_trg = createTrigger ["EmptyDetector", getMarkerPos "us",false];
_trg setTriggerArea [250, 400, 0, false];
_trg setTriggerActivation ["ANY", "PRESENT", true];
_trg setTriggerStatements [
"device in thisList", "_vicUS = [] execVM 'CheckUS.sqf'; sleep 5;", ""];
*/


if (!isDedicated) then{
"winside" addPublicVariableEventHandler {
	switch (_this select 0) do {
		case 0: { };
		case 1: { [EAST, "ВС РФ Захватили машину"] call WMT_fnc_EndMission; };
		case 2: { [WEST, "USAF Захватили машину"] call WMT_fnc_EndMission;};
		case 3: { [sideEnemy, "Машина уничтожена - ничья"] call WMT_fnc_EndMission;};
		default {};
		};
	};
};

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

Изменено пользователем StDIABLO

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.