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

StDIABLO

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

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

  • Посещение

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

    7

Сообщения, опубликованные StDIABLO


  1.  

     

    Как вариант, сделай минивог версию, если задумка от количества игроков не сломается. 

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

     

    Кстати, у ЧВК в реале есть техника такого уровня?

    Многоходовочка?

    На все вопросы :)

     


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

    пс: принимаю это пукан в поряде  всегда


  3. newcode:

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

    goto newcode //это тоже говнокод

     

     

     

    Неужели заветы, которые в меня упорно вбивал Миб, о том, что версия миссии в цифрах не меняется до отыгрыша, уже померли? 

    чтожеснамистало.jpg

     

    После отыгрыша ждите 2.0 XD


  4. Что нового в версии 1.1:

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

  5. WOG 148 Белый снег
    • Тип: WOG
    • Количество участников: 148
    • Остров: Chernorus Winter
    • Фракция BLUFOR: USMC
    • Фракция OPFOR: Russia
    • Фракция Independent: Takistani Locals
    • Фракция Civilians: Chernarus
    • Режим: Захват/оборона
    • В атаке: BLUFOR
    • В обороне: OPFOR
    • Радиооснащение: Полное
    • Год: 2015 г.
    Фракция OPFOR: ВС РФ (66)
    Фракция BLUFOR: КМП США (76)
    Фракция INDEPENDENT: 2
    Фракция CIVILIAN: 2 + 2 (Собаки)

    Задача: Командование ВС РФ перевозит большую партию новейших боеприпасов для ПУ Метис способных поражать технику противника на расстоянии свыше 10ти км. (9 ящиков) и хочет доставить эти боеприпасы на свою новую базу. Эти боеприпасы крайне необходимы для войск РФ т.к являются одним из главных сдерживающих факторов для защиты местного населения от возможного танкового нападения со стороны ЧВК. Используя агентурные сети по всей Черноруссии командование КМП США узнало о перевозке ракет  и решило перехватить ракеты и попытаться узнать, что они из себя представляют и какие технологии при производстве используют.

    Техника красных:
    1х ЗУ-23-2
    2х ДШКМ
    1х ГАЗ-3937 'Водник' (2А42)
    3х КамАЗ
    3х УАЗ-3151

    1х Ка-60 'Касатка' (M32)

    Техника синих:
    1х ЗУ-23-2 (экспортная, купили у евреев втридорога)
    6x Пулеметов M2
    7x HMMWV
    4x HMMWV (M2)
    1x HMMWV (M240)
    2x MTVR

    1x AH-6J
    1x MH-6J

    Условности:
    Условия победы синих:

    Не менее пяти ящиков с боеприпасами удерживалось на схроне синих в течение 40 минут.
    Условия победы красных:
    Не менее пяти ящиков с боеприпасами удерживалось на схроне красных в течение 50 минут.
    Условия поражения всех сторон:
    Пять и более ящиков уничтожено.

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


    !!!!ВНИМАНИЕ!!!! 
    СОБАКИ ОЧЕНЬ ЗЛОБНО КУСАЮТСЯ.
    СОБАКИ МОГУТ ТОЛЬКО ЛАЯТЬ. (Про рацию забудьте, собаки не могут РАЗГОВАРИВАТЬ, а те собаки с которыми вы разговариваете и они вам человеческим голосом отвечают - НЕ НАСТОЯЩИЕ)
    ЯЩИКИ ОЧЕНЬ ЛЕГКО УНИЧТОЖИТЬ.


    Погодные условия:
    Легкий снег, легкий туман, облачно, видимость до 5.5 км.
     

    Нажмите здесь, чтобы скачать файл


  6. Как я и догодывался, что проблема не в коде, а в понимании того как этот код в a2 работает

     

    суть проблемы в том что  код

    if (vehiclevarname player == "qt1") then {
    smellHandler = player addAction ["test", "sense.sqf",qrstatus2,-1,false,true,"","Cooldown < 1"];
    }; 
    

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

     

    Я по наивности считал что там не переменные в явном виде, а указатель на нее.

     

    Сделал как ты хотел - в сенс меняю входной массив и все пашет отлично

     

    Спасибо за помощь. 


  7. Почему A и B не в одном потоке выполняешь?

    Да я уже немного переписал код  :)  понял ошибки сейчас это выглядит вот так, вроде бы лишнее убрал

    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)

  8. Немного добавил  дебаг кода

    Самое начало 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. но я не могу понять почему так. Направьте на путь истинный если знаете или сталкивались с подобным.

     

     

     

     

    post-1837-0-41261300-1425815103.jpg

    post-1837-0-81372100-1425815234.jpg


  9. Доброй вечер всем.

     

    Собственно есть скрипт А, который формирует массив.

    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. 

     

    Есть идеи почему такое возможно? Или как это избежать?

     

    Заранее спасибо

     
     
     

  10. Сделал так, пользуйтесь на здоровье, если надо.

    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
            };
        };
    };
    

  11. Извиняюсь за свою некомпетентность (программировать то я умею, но не в А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?


  12. Работает спасибо, но я сделал в лоб триггеры (5 ящиков - 5 триггеров), есть ли более элегантный способ?

     

    Планируется 9 ящиков и 2 точки "эвакуации ящиков" 18 скриптов которые ПОСТОЯННО мониторят где ящики, не думаю что это правильное решение для миссии .

     

    Как нибудь покрасивее можно сделать это?

    olol.utes.zip


  13. Сломал мозг

     

    Мне надо сделать так чтобы при наличии ящиков с боеприпасами в зоне у меня сработал триггер.

    Ок, написал скрипт, работает на людях, на технике и на любом другом КРОМЕ чертовых ящиков. Подскажите пожалуйста как тут правильно сделать?

     


×

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

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