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

StDIABLO

Пользователи
  • Публикаций

    580
  • Зарегистрирован

  • Посещение

  • Победитель дней

    7

Весь контент StDIABLO

  1. StDIABLO

    mWOG 85 Белый снег

    Что нового в версии 1.0 (banana edition): поправлены неточности в брифинге (блифинг был от большой миссии)
  2. StDIABLO

    Обсуждение прошедших игр

    Спалил лазер, и свалил под ваше брюхо :) cheeres
  3. StDIABLO

    mWOG 85 Белый снег

    Что нового в версии 1.0 (banana edition): нанотайминг теперь грузчик грузит ящики быстрее
  4. StDIABLO

    mWOG 85 Белый снег

    Что нового в версии 1.0 (banana edition): уменьшил время на победу для РФ и US до 35 и 25 соответственно.
  5. StDIABLO

    WOG 148 Белый снег

    Уже в работе, думаю управлюсь до конца недели (на 85 человек) На все вопросы :)
  6. StDIABLO

    WOG 148 Белый снег

    Что нового в версии 1.0: миссия не изменялась, но для всех жаждающих справедливость изменил версию с 1.1 на 1.0
  7. StDIABLO

    WOG 148 Белый снег

    Ну рано то или поздно будет :) Главная моя задача, чтобы все что я задумал в миске работало на игре и на тесте так как оно заложено мной. И если это будет работать как надо - у ИА будет все в поряде. Ну у игроков может припечь от КС к примеру, от киберкотлет, от злых собачек да от чего угодно самое главное что все скрипты, оружие, задачи поставленные мной перед КС работали :). А как КС их будет реализовывать уже узнаем в игре. пс: принимаю это пукан в поряде всегда
  8. StDIABLO

    WOG 148 Белый снег

    newcode: Ну а что делать, лежишь такой в 3 ночи в кровати, а тебя бах. И ты понимаешь что ты рукожоп и говнокодер, и то что ты сделал вчера можно сделать намного эффективнее. Встаешь включаешь комп, включаешь нотепад++ и с**а кодишь (потому что так тебе и надо рукожопу). Сделал довольный ложишься в кровать, но вот время 4 ночи иии.... goto newcode //это тоже говнокод После отыгрыша ждите 2.0 XD
  9. StDIABLO

    WOG 148 Белый снег

    Ну на подходе 1.2, к пятнице сделаю к субботе протестирую. сделаю есть одна интересная идея....
  10. StDIABLO

    WOG 148 Белый снег

    Что нового в версии 1.1: Исправлена разблокировка вертолетов (не разблокировались на DS) Исправлено наполнение в ящиках (на DS работало не корректно) Мелкие правки по балансу оружия (убраны/добавлены карты, убрано некоторое количество припасов для ПУ) Теперь собаки корректно садятся в машину (наконец-то) Улучшение кода и скорости его работы.
  11. StDIABLO

    WOG 148 Белый снег

    Что нового в версии 1.0: я аутист, оформил не правильно. Все поправил вроде
  12. StDIABLO

    WOG 148 Белый снег

    Этот файл был обновлён до версии 1.0. Что нового в версии 1.0: очепятки
  13. Доброй вечер всем. Собственно есть скрипт А, который формирует массив. 0 spawn { if (isServer) then { while {true} do { { if !(alive _x) then {qalive = qalive - [_x]}; _xq=_x; _qstat=false; _vehtemp=0; { if (_xq in (_x call ACE_fnc_listCargo)) then {_qstat=true;_vehtemp=_x}; } foreach allmissionobjects "LandVehicle"; if (!_qstat) then {qrstatus1 set [_forEachIndex,_x]}; if (_qstat) then {qrstatus1 set [_forEachIndex,_vehtemp]}; } foreach qalive; sleep 5; }; }; }; Есть скрипт Б который немного модифицирует массив от первого скрипта 0 spawn { if (isServer) then { while {true} do { { if !(alive _x) then {qrstatus1 = qrstatus1 - [_x]}; if ((base distance _x) < 5) then {qrstatus2 = qrstatus1 - [_x]} else { if !(_x in qrstatus1) then {qrstatus2 = qrstatus1 + [_x]};};//если на базе исключаем //if ({qrstatus1 find _x}==-1) } foreach qrstatus1; //qrstatus2=qrstatus1; sleep 5; }; }; }; В игре лежат 4 ящика q1,q2,q3,q4, я беру любой ящик (к примеру q4) отношу его к base нажимаю hint str qrstatus2 вижу q1,q2,q3 - вроде бы нормально но, есть еще код if (vehiclevarname player == "qt1") then { smellHandler = player addAction ["test", "sense.sqf",qrstatus2,-1,false,true,"","Cooldown < 1"]; }; я пробую выполнить код (в принципе простой поиск ближайших ящиков из массива, он настроен и работает) но мне в ответ дает что самый ближайший объект q4, он конечно ближайший, но не находится в qrstatus2 и должен игнорироваться мной... но все равно меня ведут на q4. Есть идеи почему такое возможно? Или как это избежать? Заранее спасибо
  14. Как я и догодывался, что проблема не в коде, а в понимании того как этот код в a2 работает суть проблемы в том что код if (vehiclevarname player == "qt1") then { smellHandler = player addAction ["test", "sense.sqf",qrstatus2,-1,false,true,"","Cooldown < 1"]; }; выполняется в коде 1 раз, и вычистление qrstatus2 происходит именно во время выполнения кода, как бы я не старался менять qrstatus2 после кода выше - выполняться акшен будет только со старым значением. Я по наивности считал что там не переменные в явном виде, а указатель на нее. Сделал как ты хотел - в сенс меняю входной массив и все пашет отлично Спасибо за помощь.
  15. Да я уже немного переписал код :) понял ошибки сейчас это выглядит вот так, вроде бы лишнее убрал Cooldown = 0; qalive= [q1,q2,q3,q4]; qrstatus1=[]; qrs_ru=[]; qrs_us=[]; 0 spawn { if (isServer) then { while {true} do { qrstatus1=[]; qrs_ru=[]; qrs_us=[]; { if !(alive _x) then {qalive = qalive - [_x]}; _xq=_x; _qstat=false; _vehtemp=0; { if (_xq in (_x call ACE_fnc_listCargo)) then {_qstat=true;_vehtemp=_x}; } foreach allmissionobjects "LandVehicle"; if (_qstat) then {qrstatus1 set [_forEachIndex,_vehtemp]} else {qrstatus1 set [_forEachIndex,_x]}; } foreach qalive; publicVariable "qrstatus1"; { if ((shron_ru distance _x) < 5) then {qrs_ru = qrs_ru - [_x]} else {qrs_ru = qrs_ru + [_x]};//если на базе ru исключаем if ((shron_us distance _x) < 5) then {qrs_us = qrs_us - [_x]} else {qrs_us = qrs_us + [_x]};//если на базе us исключаем } foreach qrstatus1; publicVariable "qrs_ru"; publicVariable "qrs_us"; sleep 5; }; }; }; if (vehiclevarname player == "qt1") then { smellHandler = player addAction ["Найти", "sense.sqf",qrs_ru,-1,false,true,"","Cooldown < 1"]; }; мне просто интересно при этом коде почему у меня на входе скрипта приходит пустой массив (как будто qrs_ru вообще не меняется в коде) , а не то что мне надо. почему не хочу вписывать глобальную переменную в sense.sqf : У меня 2 стороны, а скрипт в принципе одинаковый, за исключением входных параметров (массива из нужных q1,q2,q3,q4.... Уверен, что первый ящик не из-за этого удаляется В том то и дело что все удаляется правильно, на первой картинке правильный qrstatus2 на второй qrstatus2 когда произошел вызов функции. и там должен быть именно массив с первой картинки (по моей логике). ==================================== Окей упрощаем задачку hellomsg="hello"; 0 spawn { hellomsg="world"; }; hint hellomsg; Что надо сделать чтобы при старте игры мне написало world (сейчас постоянно пишет hello)
  16. Немного добавил дебаг кода Самое начало init.sqf qalive= [q1,q2,q3,q4]; //живые ящики qrstatus1=[q1,q2,q3,q4]; //ящики после первой итерации qrstatus2=[q1,q2,q3,q4]; //ящики после второй итерации в самом начале миссии qalive= qrstatus1=qrstatus2 и это нормально. потом их статус может измениться к примеру qalive= [q1,q2,q4]; //3тий ящик уничтожен qrstatus1=[u_1,u_2,q4]; //Ящики q1 и q2 в машинах u_1 и u_2, q4 стоит на земле (предположим рядом с базой) qrstatus2=[u_1,u_2]; //ящики которые надо искать (q4 искать не надо т.к он стоит на базе) ну и собственно qrstatus2 передается в sense.sqf, там он: private ["_banana", "_bananaRange", "_dirTobanana"]; //Cooldown = 0; hint str (_this select 3); // дебаг, проверяю что пришло sleep 5; _cnt = (count (_this select 3) - 1); _dist=[]; for "_k" from 0 to _cnt do { _dist set [_k,(player distance ((_this select 3) select _k))]; }; hint str _dist; _min = 90000; //найти ближайший ящик или машину for "_i" from 0 to _cnt do { _min = _min min (_dist select _i); }; _banana = _this select 3 select (_dist find _min); if (player distance _banana < 5000) then { вроде все норм, но во время выполнения скрипта sense.sqf почему то передается неправильный qrstatus2. но я не могу понять почему так. Направьте на путь истинный если знаете или сталкивались с подобным.
  17. StDIABLO

    Ящики в триггерной зоне

    Сделал так, пользуйтесь на здоровье, если надо. 0 spawn { if (isServer) then { _cd=0; while {true} do { if ({base distance _x < 5} count [q1,q2,q3] >= 2) then { _cd = _cd + 5; } else { _cd = 0 }; if (_cd >= 30) then { endMission "END2" }; sleep 5 }; }; };
  18. Сломал мозг Мне надо сделать так чтобы при наличии ящиков с боеприпасами в зоне у меня сработал триггер. Ок, написал скрипт, работает на людях, на технике и на любом другом КРОМЕ чертовых ящиков. Подскажите пожалуйста как тут правильно сделать? http://cloud-4.steamusercontent.com/ugc/535137718201504273/6C430C2D4BD26A37EB9933B6C1C67529AB5BEE71/
  19. StDIABLO

    Ящики в триггерной зоне

    Извиняюсь за свою некомпетентность (программировать то я умею, но не в А2), у меня пару вопросов возникло (направьте на путь истинный, если уже были ответы, или хоть по каким тегам гуглить): 1) куда нормальный код впихивать чтобы он работал? 2) пока работает while, дальше код не работает (ну по крайней мере в других языках ООП) и код выше справедлив только для одной точки эвакуации (qexit), т.е надо написать что-то подобное и для qexit1 0 spawn { if (isServer) then { while !(({(_x distance qexit1) < 15} count [q1,q2,q9,qn]) >= 2) do { sleep 1; }; publicVariable "end1"; //or anything u like }; }; Но он не будет работать пока первый цикл не отработает, или я не понимаю тут в принципах взаимодействия скриптов с А2?
  20. StDIABLO

    Ящики в триггерной зоне

    это конечно проблема, но тут без ящиков просто никак, вся миссия на них завязана :)
  21. StDIABLO

    Ящики в триггерной зоне

    Работает спасибо, но я сделал в лоб триггеры (5 ящиков - 5 триггеров), есть ли более элегантный способ? Планируется 9 ящиков и 2 точки "эвакуации ящиков" 18 скриптов которые ПОСТОЯННО мониторят где ящики, не думаю что это правильное решение для миссии . Как нибудь покрасивее можно сделать это? olol.utes.zip
×

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

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