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

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

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

[member=Arcued], да, this removeWeapon "AT6Launcher" работает

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

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


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

Вопрос не совсем к картоделам. Нужно получить повреждения конкретного селекшена - "motor". То есть двигателя танка. Для третьей армы такие команды нашел, для второй пока в поиске. Получить повреждения всего танка не проблема, есть getDammage.

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


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

 есть ли такая возможность установить счетчик на убитых гражданских по сторонам?

если кто знает просьба сказать или сказать где найти.

 

И пару названий мисок с триггер -таймером, если не трудно.

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


Ссылка на сообщение
Поделиться на другие сайты
Счетчик убитых гражданских можно сделать на базе ивентХэндлера "Killed". Изменено пользователем RamZesIV

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


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

[member=RamZesIV],
спасибо.
Это конечно подойдет для варианта "заложники", где количество гражданских не велико.
Мне хотелось немного другое.
 

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

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


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

Пересчитываешь всех гражданских ботов, вешаешь по очереди на каждого из них нужный ивентХэндлер. У меня сейчас в работе такая схема, только с техникой:
 

_vehs = vehicles;
_quantity = count _vehs;
hint format ["%1",_quantity];
for "_x" from 0 to (_quantity -1 ) do 
{
_veh = _vehs select _x;
_veh addEventHandler ["engine", {[_this select 0, isEngineOn (_this select 0)] execVM "CarStart.sqf"}];
};

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


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

[b][member=RamZesIV][/b],

загвоздка в том что нужно чтобы триггер считал убитых гражданских к примеру синими и не считал независимыми.

Иначе обе стороны просто забьют на этот фактор и будут играть как будто его и нет. Или другая сторона будет настреливать гражданских. 

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


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

Делаешь проверку на киллера, в чем проблема? Что-то вроде такого, как я понимаю:

_killer = _this select 1;
if (_killer side "blue") then _countBlue = _countBlue +1;

Это просто схема, точные команды и синтаксис не скажу.

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

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


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


Делаешь проверку на киллера, в чем проблема?

проблема в моем незнании скриптов. Кинь пож-ста пример или ссылку как на хендлер.

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


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

Примеры надо искать по форумам самому - я точно так же не знаю скриптов. У меня вот так в вызываемом ивентХэндлером скрипте:

_vehicle = _this select 0;
_engineState = _this select 1;
_vehSpeedRound = round speed _vehicle;
_vehSpeed = abs _vehSpeedRound;
if (_vehSpeed == 0) then
                    {
                       if (_engineState) then
                           {
                               scopeName "main";
                               if !isEngineOn _vehicle then {breakOut "main"};
                               for "_tick" from 0 to _cycles do
                                  {
                                    _vehicle setVelocity [0, 0, 0];
                                    if !isEngineOn _vehicle then {breakTo "main"};
                                    sleep 0.01;
                                   };
                            };
                      };

Выделил то, на что нужно обратить внимание. А если ты ну прям совсем-совсем ничего не понимаешь, то и сделать вряд ли получится. Потому что даже с готовым примером нужно настраивать под каждый конкретный случай.

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

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


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

[b][member=StDIABLO][/b],

хочу чтобы "добрым" полицейским/SWAT было не выгодно убивать гражданских. А "злым" террористам было бы выгодно прятаться среди них.

Иными словами чтобы штурмующие испытывали затруднения в этом смысле и вели бы более избирательный огонь из крупных калибров и не только.

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


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

[b][member=Buddy_guy][/b], вскрой "Шукуркулай патруль", там есть такое.

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


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

Подскажите правильный синтаксис:
 

_veh setVariable ["timer", _veh getVariable "timer" + 0.1, true];
Изменено пользователем RamZesIV

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


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

[b][member=RamZesIV][/b], 

Почемуто мне хочется написать так (сталкивался с проблемой вычислений внутри команд)

_nill = (_veh getVariable "timer") + 0.1;
_veh setVariable ["timer", _nill, true];
_nill = nil;

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


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

Для начала необходимо дать переменной какое либо значение:

_veh setVariable ["timer", 0, true];

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


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

как правильно переменную объявить всем?

сюда попадаем из инита:

if isNil{onkill} then {
	onkill = compile "if (((side (_this select 0))==east)&&((side (_this select 1))==resistance)) then {eventvar=1;publicVariableServer "eventvar";};";
};
_x = _this select 0;
_idx = _x addMPEventHandler["mpkilled",{_this call onkill}];

функция onkill отрабатывает, но изменений в eventvar нет.

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


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

[b][member=3akapu][/b], publicVariableServer передает значение только серверу, для всех (включая сервер) надо использовать publicVariable

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


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

[member=RavingRobot],

publicVariableServer вроде тоже подходит мне в качестве передачи флага для открытия техники,

...if(isServer) {//открыть технику}... ведь казалось бы результат должен достигнуть клиентов?

но и publicVariable в данном случае так же не дает желаемого результата.

решено.

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

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


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


publicVariableServer

 

если делаешь/хочешь так - то УЖЕ НА СЕРВЕРЕ (в разделе is server)

 

//init sqf

if (isServer) { //секция сервера
//бла бла бла
//какойто говнокод
"nameOfVariable" addPublicVariableEventHandler {
//какойто код 
//в твоем случае- код открытия машины 
//(проверяй чтобы эффект глобальный был)
};
//бла блабла
};//конец секции сервера

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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