-
Публикаций
580 -
Зарегистрирован
-
Посещение
-
Победитель дней
7
Сообщения, опубликованные StDIABLO
-
-
5) Добавить неуничтожаемость встроенному объекту на карте. В редакторе вроде бы работает //разместить юнит Game Logic над необходимым объектом //Game Logic - Objects - Game Logic ==> init field: (nearestBuilding this) allowDamage false;просто обзываешь здание на карте и в юнит скф (в разделе для сервера)
<название дома> allowDamage false;
Простое правило -> меньше обьектов не нужных для клиентов - лучше работает.
В твоем случае
1)клиенту совершенно не нужен этот объект гейм логик для работы.
2) все что написано в разделе init field ->выполняется всеми клиентами, а т.к эффект уже глобальный - это можно сделать только 1 раз но на сервере. и всем будет хорошо.
Ram3esIV и Dock отреагировали на это -
воот эт портянка :)
Проверять лениво, но научу как сделать (я считаю эту позицию правильной).
Смотри разбиваешь все свои команды на global/local (с помощью wiki смотришь какой эффект от операции для сервера и клиента картинки ниже)
в init sqf делаешь 2 блока кода
1 блок кода - код который выполняет ТОЛЬКО сервер (тут все твои команды и функции в итоге которые дают )if (isServer) then { sleep 0.01; //твой код содержащий ТОЛЬКО глобальный эффект //или код для обработки скриптов и прочего говнокода что ты придумал };
2 блок - БЛОК кода ТОЛЬКО ДЛЯ клиентов (тут все твои команды и функции в итоге которые дают локальный эффект)
if (!isDedicated) then { sleep 0.01; //твой код содержащий ТОЛЬКО локальный эффект //и евент хендлеры и прочее говно для синхронизации с сервером. };
В чем суть фокуса, глобальный эффект уже подразумевает синхронизацию действия со всеми клиентами и сервером, а т.к в большинстве случаев на сервере больше ресурсов для обработки (математических, логических, триггерных) ситуаций, все эти задачи правильнее всего "вешать" на сервер. А клиенту давать или addEventHandler (в случае если эффект локальный ) или ничего (в случаях если это так надо или глобального эффекта ).
Ну собственно вот и вся магия. (Поправьте если не так)Dock, Ram3esIV и Sandy отреагировали на это -
НУУУУ ооооок ми17 но тамже в DCS XD
-
[b][member=krech][/b], Это к вопросу шпагу или пистолет?
Я выбираю пистолет.
Ка50 - DCS World XD
-
[member=almost], тут все относительно.... имхо дискриминация для тех кто на SFM будет :)
А если никому не говорить как ты летаешь - вообще никто и неузнает
-
Я еще раз повторяю!! Я НЕЗАСТАВЛЯЮ ВСЕХ ПЕРЕХОДИТЬ НА АФМ. Я ПРОШУ СДЕЛАТЬ ТАК ЧТОБЫ ЭТО БЫЛО ДОБРОВОЛЬНО, МОЖЕШЬ ЛЕТАТЬ НА АФМ- ЛЕТАЙ, неможешь - летай на SFM (как сейчас)
-
спам флуд, и как обычно ничего по делу. Вы как при подьездные бабки сами белые и пушистые, но катя шл*ха, юра - наркоман, а павел - алкоголик.
-
[sarcasm][member=Arcued],неее ты не прав, мы за третий вид большими стрелками над головами противников и чтобы был наконецто autoaim.[/sarcasm]
ТАкже я нехочу ДЛЯ ВСЕХ AFM, я хочу только для себя.
А по существу, я знаю позицию ГУП по этому вопросу. Впринципе те задачи которые они передомной поставили - сейчас (1.52) не реализуемые, но придет время.....
-
[b][member=krech][/b],не складывай яблоки и мотоциклы. Имхо AFM стоит того чтобы потратить 20 часов на обучение полетам (самому же потом приятно будет летать). Например - полетай с SFM на самолетах DCS и AFM тамже. Совершенно разное управление, машину начинаешь чувствовать, что она управляется тобой, а не ездит по рельсам.
Shaman4eG отреагировал на это -
Для начала
http://wogames.info/tutorials/article/11-o-proekte/
Weekly Open Games — это проект для людей, которым интересен хардкорный тип игры. Мы стараемся максимально эффективно использовать структуру, слабые и сильные стороны, а также технику и вооружение различных сторон конфликта, но не ставим перед собой цель провести 100% сбалансированного боестолкновения. Командная игра, командное взаимодействие — фундамент нашего проекта.
Использование SFM на такого рода проектах я считаю аркадой. Осталось только ОГРОМНУЮ стрелку над противником рисовать и 3тий вид включить, да начнется деградирование.
Вот ты говоришь что SFM - читы ( см выше "в 2 раза выше шансы на победу"), а я говорю что AFM дает преимущество перед SFM, но чтобы этим преимуществом пользоваться надо учиться летать заново на вертушках.
Ну вот простой пример, на низких высотах с АФМ летать В РАЗЫ ПРОЩЕ (привет скриптам ПВО где не больше 30 метров полет), с АФМ можно летать и больше 180 и делать развороты какие хочется. Посадка с пролета - вообще делается закрытыми глазами. Да, теперь нельзя нажимать
XQ чтобыпобедитьлететь нормально, приходится постоянно дрочить Q и Z, чтобы не было проблем на поворотах и разворотах и следить за оборотами винта, но это ж проблема летчика и опыта летчика.Я ж не требую чтобы у всех был включен AFM - для начала сделать его добровольным.
Shaman4eG отреагировал на это -
-
@Mutagen, Если ты думаешь что с SFM проще победить то отключай, (можно еще и читов включить для уверенной победы, если ты играешь ради победы и фапаешь на нее не включай AFM) тебе никто не запретит! А вообще с АФМом вертушка становится более маневренной. Такчт я вот не так уверен в превосходстве SFM.
1eon, Liquid и Shaman4eG отреагировали на это -
Привет техотдел,
Хотел спросить почему так получилось что у ВСЕХ игроков на сервере WOG A3 сделан принудительная СТАНДАРТНАЯ модель управления полетов? Почему бы не дать пользователю выбор какую систему управления использовать пользователю?
Сколько летаю на AFM проблем ниодной не видел. Впринципе даж с клавы можно играть или с гейпада.
Скажите о проблемах которые стоят на пути полноценного включения AFM на серваке?
KOHCTPYKTOP и Shaman4eG отреагировали на это -
-
Парни нужен примерчик:
1) Как создать интерфейс? (для начала окошко с кнопками, полем ввода или полоской ввода)
2) Как к этим кнопкам привязвыать действие?
3) При нажатии например на ctrl+r появлялось это окошко
Есть у кого?
-
Поменял
switch (_this select 0) do {
наswitch (winside) do {и все заработало, чудеса :(прост _this select 0 это строка если чо :) -
Собстна инит
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 сек на базе, хотя вроде все верно сделал. Есть идеи?
-
Если я правильно понимаю - то в а2 все триггеры глобальные
Пруф ниже
https://community.bistudio.com/wiki/createTrigger
-
Ну создание триггера локального ТОЛЬКО серверу изи -> (работает только в 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 сек) вычитает время и ждет дальше подошло время - вызываем процедуру победы синей стороны (пока не написал). И вроде ВЕСЬ код (возможно кроме процедуры победы) будет выполнятся ТОЛЬКО на сервере.
-
@swatSTEAM, А зачем эвент хендлер игрокам? Я как думал (поправь если не так):
Задача на миске захватить и удержать: (прям белый снег вспомнился :) только там без триггера нахождение в зоне считается, через равноудаленность от объекта)
Мозг мне подсказывает что лучше создать триггер (через инит локальный серверу) в его инициализации написать ANY + car in thisList. В активации -> вызов sqf которая чекает сколько времени простоял объект car в триггерной зоне.
Если простоял достаточно - просто вызываю конец миссии через функцию wmt.
т.е все вычисления на серве получаются, да и вообще клиенты не знают о триггере как объекте.
-
Парни что лучше?
1) Создание триггеров в 2д редакторе (прям в миске)
или
2) Создание такого триггера?
if (isServer) then{_trg = createTrigger ["EmptyDetector", getMarkerPos "us",false];бла бла бла; };
Жопой чую, что триггерами и вычислениями внутри триггеров лучше считать на сервере (благо можно создать триггер локальный только серверу), но как поведут себя клиенты?. Есть удачные примеры реализации локальных серверу триггеров? WMT мне маловат по функционалу прост.
-
нанообходы, эхх я просто сделал скрипт замутить на проверку в зоне триггера если вышел за пределы - превратился в петушка или собачку или кролика. Можно не так извращенно, а просто отнимать бк.
Всегда считал что проходы за картой - это недочеты картодела. Если картодел разрешил находится за картой - значит так можно.Конечно нагружает нмного комп клиента, но раз в 5 минут можно прочекать, за пределами ли боец или нет.
Player и Ram3esIV отреагировали на это -
Хотелось бы добавить модуль для блокировки техники (setVehicleLock) и чтобы мог открыть технику только КО.
Например я ставлю отряд ставлю урал синхронизирую урал с группой. И модуль блокирует технику для всех кроме КО к которому приписана эта техника.
Удобно с точки картодела - не обязательно расставлять пехоту рядом с техникой (можно поставить в гаражи и красиво это оформить), ни один из отрядов не останется без техники из за несогласованности других отделений (Например 1 отряд вместо 1 урала взял 2) и 1 отделение без техники осталось.
-
Вопросы по созданию МП-миссий
в Картостроение
Опубликовано · Изменено пользователем StDIABLO · Пожаловаться
да это работает но это совершенно бессмыслено для клиента. лучше или:
1)или поставить 101 editor http://www.armaholic.com/page.php?id=20821 (показывает все равно не все объекты пришлось доделывать напильником)
2)или менять класс прямо через текстовый редактор в mission.sqm
3)или создавать объекты уже не в редакторе, а при запуске миссии самим сервером. (Благо эффект от createVehicle глобальный) самая лучшая реализация для расстановки ВСЕГО НА КАРТЕ, кроме самих клиентов)
ps не забывай удалять из памяти ненужные объекты