Догечня. Новый Фронт.
|
|
tupolev
|
Среда, 02.08.2023, 00:13
|
Одиночка
|

Название миссии: Догечня. Новый фронт. Название файла: RBC_202_DogechnyaNewFront_v1.vt7 Версия: v1 Карта: Virolahti Число слотов: 202 Стороны(фракции): Вейшнория & Канада VS Догечня & Беларусь
Ситуация: В 2022 году Вейшнория, при поддержке Канады, входит на территорию Догечни, встречая первое сопротивление в лице Белорусских частей. Спешащие резервы вынуждены выяснить, какое из направлений атаки станет основным. (полный ЛОР внутри миссии)
Дата, время, погода: 4 июня 2022 года. Переменная облачность, местами дождь. Задача стороны BluFor: Захватить два КПП и один триггер. Ключевой триггер выбирается через первый захват КПП. Задача стороны OpFor: Не дать захватить два КПП и один триггер в течении 100 минут.
Техника синих:
Техника красных:
Форма сторон:
Ссылочка на миссию Ссылочка на тоже самое, только с диска
На проекте новенький, не понимаю размеров ТВД. Не уверен за баланс и респы. На обсуждение с проверяющим.
Сообщение отредактировал tupolev - Среда, 02.08.2023, 00:20
|
|
Автор темы
|
|
 |
|
|
DokkaKekandos
|
Среда, 02.08.2023, 03:04
|
RMC
|
|
|
|
|
Matvein
|
Пятница, 04.08.2023, 01:47
|
Командир отряда
VRG
|
взял на проверку
|
|
|
|
Matvein
|
Понедельник, 14.08.2023, 17:43
|
Командир отряда
VRG
|
Момент описанный ниже я хочу вынести в отдельный блок, так как в нем фундаментальные проблемы:
Код if (!isDedicated) exitWith { if (playerSide == west) then { // твой вызов hold action }
1. В вызываемой функции есть параметр - Condition for the action to be shown зачем костыль выше вообще нужен, когда очевидно надо обрабатывать это условие непосредственно там? 2. Убирай эту конструкцию впринципе, а первой строкой добавляй - if (!local this) exitWith {}; 3. call WMT_fnc_ShowTaskNotification - локальная функция, ее надо транслировать в сеть при вызове внутри holdaction, читай про remoteExec либо вызывай в отдельном триггере без галки - только на сервере 4. Вместо указания конкретного имени переменной rad1 и rad2 используй this, а сам скрипт вызывай на конкретном предмете через this call compile preprocessFileLineNumbers "my_hold_action_script.sqf"; 5. Зачем вся эта дроч с изменением магических чисел в hold action? Мало того что ты словишь дисинхрон их между пользователями/сервером/перезаходящими пользователями так это все еще и написано крайне неочевидно и нечитаемо. Зачем это вообще нужно? Зачем делать эту мешанину из логики в hold action? У тебя получилась функция которая во-первых красит маркер, во-вторых объявляет переменные, в-третьих вызывает оповещение, в-четвертых совершает дополнительные действия со вторым триггером и все через задницу, что самое страшное. Соответственно все что я описал выше, кроме изменения цвета, нужно вынести в отдельней игровые триггеры, а вместо запар по объявлению переменных и отслеживания их синхронизации используй проверку на то соответствует ли триггер новому цвету, смотри marketColor, либо активирован ли триггер, смотри - triggerActivated (зависит от выстроенной тобой логики).
|
|
|
|
Matvein
|
Понедельник, 14.08.2023, 18:26
|
Командир отряда
VRG
|
1. Выданы патроны не по правилам для АК 2. На ПКМ выданы только бронебойные, смотри правила создания миссий 3. Выдавать больше гранат 4. Бойцы внутри отряда не пронумерованы 5. Наколенники убери, тонут в текстуре формы 6. Убрать лишнюю медицину из мешин 7. Почему у медика кастомная медицина? Должна выдаваться черная аптечка 8. Почему у подносчика РПГ всего 1 снаряд в рюкзаке 9. Почему GPS именно у стрелка с ПКМ, а не например у медика или зама? 10. Скрин с формой слишком маленький, сделать 2 отдельных для сторон и встроить друг под другом 11. Второе "тут" нерабочее в брифе где про госпиталя написано 12. Неправильные боеприпасы также распространяются на инвентарь техники 13. При использование игрового редактора используй дополнительно скрипт на очки и лица (смотри правила создания миссий), чтобы у игроков не было кастомных очков 14. Плохо написана задача, ничего не понятно, больше конкретики и очередности действий, нумерация тебе в помощь, также рядовой игрок не знает что такое holdaction о котором ты пишешь, пиши более понятным языком 15. У КС-а атаки нет патрон 16. Также не забыть завязать логики WMT триггеров на новой логике 17. Часть объектов в триггерах весит в воздухе 18. Экипажники не инженеры 19. Нет наборов инструментов в технике 20. Марксманов с СВД целеноправлено нет? У атаки они есть. 21. Та же проблема с наколенниками на форме Bdu они сидят, на остальных нет, соответственно на тех слотах, что не в bdu форме их следует убрать 22. На некоторых M4 затесалась планка боковая непонятная 23. Марксманам атаки заменить прицелы на sps_optic_snb_hp_1_8_black 24. У марксманов нет таблиц поправок 25. Неправильные патроны у атаки 26. Те же проблемы с медициной атаки 27. Те же проблемы с инженерами атаки 28. Те же проблему с наборами инструментов атаки 29. Было бы наверное логично чтобы у 3-1 водитель тоже был бы одет как экипажник 30. Учитывая количество техники непонимаю зачем было скручивать птур у БМП 31. У атаки очень скудно по ПТ средствам, особенно у канады 32. МБ миномет или снайперских пар сторонам выдать для разнообразия? 33. На ак 12 прицел бы заменить на rbc_optic_1p87_1p90 либо rbc_optic_psu 34. На форме G3 у 1-4 обороны есть наколенники зачем ты лепишь по верх них еще одни 35. Нарушена нумерация. Почему у тебя у 1-4 стоит @1-7 и откуда вообще взялось 1-7 когда нумерация обычно кончается на 1-6, а дальше идет 1-2 36. 3-5 который переименован в 1-1 - КС на модный комплект от зенитки ему хватило, а на нормальный колиматор нет? 37. С БТР-80а не убран 1 ящик 38. Я бы сказал, что обороне тоже не помешает больше труб т.к. страйкера например как и лавку может пробить только БТР-80а , который я бы советовал заменить на 82а и БМП (который без птура) 39. Передовой штаб ощущается месевом из объектов 40. Стоит ли вообще делать 2 триггера штаб и радар на выбор так как удержать оба почти нереально обороне 41. В WMT Main не отключены тепловизоры, а это значит, что вся техника атаки с ними, а у обороны их нет физически 42. Не стал разбираться, что у тебя там за создания класса с собственным звуком, но возможно тебе было бы легче воспользоваться функцией playSound3D
|
|
|
|
BendeR
|
Понедельник, 14.08.2023, 21:44
|
STELS
|
Цитата Matvein (  ) 1. В вызываемой функции есть параметр - Condition for the action to be shown зачем костыль выше вообще нужен, когда очевидно надо обрабатывать это условие непосредственно там? чтобы условие не проверялось на ненужных клиентах каждый тик например? А потом говорят что арма лагучая а вот playerSide лучше уволить и заменить на side player: бывает при медленной инициализации у клиента она слишком долго возвращает WEST вместо реальной стороны (playerSide можно использовать например если у тебя условие проверяется после старта в игру/окончания фриза и тд)
Сообщение отредактировал BendeR - Понедельник, 14.08.2023, 22:07
|
|
|
|
Matvein
|
Понедельник, 14.08.2023, 23:19
|
Командир отряда
VRG
|
Цитата BendeR (  ) чтобы условие не проверялось на ненужных клиентах каждый тик например? А потом говорят что арма лагучаяа вот playerSide лучше уволить и заменить на side player: бывает при медленной инициализации у клиента она слишком долго возвращает WEST вместо реальной стороны (playerSide можно использовать например если у тебя условие проверяется после старта в игру/окончания фриза и тд) Вау у клиента локально раз в тик проверится принадлежит ли он стороне WEST нехуя же себе, непосильная конечно задача для современной вычислительной техники капец ты конечно наоптимизировал жеееееесть.
А еще у функции есть параметры // Condition for the action to be shown и // Condition for the action to progress ЖЕЕЕЕЕЕСТЬ ЭТО ВЕДЬ ЕЩЕ 2 ПРОВЕРКИ РАЗ В ТИК ЭТО ЖЕ ПРОСТО НЕЗАКОННО!!!!!!! У меня не взорвется компьютер? А ЕЩЕ В НЕЙ МОЖНО ЭКЗЕКЬЮТИТЬ КОД НА КАЖДЫЙ ТИК И ПРИ СТАРТЕ ЖЕЕЕЕЕЕЕЕСТЬ!!!!! // Code executed when action starts // Code executed on every progress tick Я если все это вместе использовать буду я ведь кокому-нибудь борщу расплавлю проц? Мне срочно нужно экспертное мнение как все это наоптимизировать!!!!
Верить в то, что это в данном конкретном случае реально вызовет просадку фпс хоть на 1 кадр из-за вызова более "медленного" метода это шизофазия
|
|
|
|
Borw
|
Вторник, 15.08.2023, 00:26
|
Одиночка
|
Цитата Matvein (  ) ведь кокому-нибудь борщу расплавлю проц? придется помимо проца и игру по новой архивировать((((((((((((((((((
|
|
|
|
BendeR
|
Вторник, 15.08.2023, 00:28
|
STELS
|
Это прям хрестоматийная стена текста от большинства ванаби-программеров. Тем не менее из таких мелочей и складывается хороший код и нормально работающий софт. Не стоит исправлять то что написано нормально, пусть даже автор не понимает таких тонкостей
Сообщение отредактировал BendeR - Вторник, 15.08.2023, 00:48
|
|
|
|
Matvein
|
Вторник, 15.08.2023, 00:50
|
Командир отряда
VRG
|
Цитата BendeR (  ) Это прям хрестоматийная стена текста от большинства ванаби-программеров. Тем не менее из таких мелочей и складывается хороший код и нормально работающий софт. Лучше делать сразу нормально. не? Ну в таком случае ты представитель blazing fast шизов который сейчас пытается затирать про оптимизацию с помощью манипуляций через абстракции в скриптовом языке написанном чехами к своему движку, который они пилили под пиво в конце 90х не имея при этом исходников. Ты понимаешь абсурдность "оптимизации" такого рода в этом случае?
Это не говоря про то, что это абсолютно тривиальная задача которую пытается решить игрок где простота и читаемость > производительности в условиях объема данного кода.
Я бы согласился с тобой в случае если бы мы вели разработку чего либо, и то с условием обоснованности оптимизиции относительно нагрузки и выделенных мощностей, но в данной конкретной ситуации это просто какой-то бред с около эмпирическими выводами по оптимизации.
|
|
|
|
BendeR
|
Вторник, 15.08.2023, 01:04
|
STELS
|
Называя ядро армы древним дерьмом, ты всеж не забывай что у нас был глобальный апдейт виртмашины sqf'а не далее как год назад (арма 2.0). И ни о какой "читаемости кода" разговаривать даже не стоит когда весь код состоит из 2х условий и вызова функции
Еще раз повторю: править то, что работает нормально и правильно, на то, что вроде работает, но хуже не стоит. Так что можешь потереть флуд, только не забудь вписать в требования про замену playerSide (если там нет каких то интересных waituntil перед вызовом условия с ним)
Сообщение отредактировал BendeR - Вторник, 15.08.2023, 01:04
|
|
|
|
Matvein
|
Вторник, 15.08.2023, 01:15
|
Командир отряда
VRG
|
Цитата BendeR (  ) вписать в требования про замену playerSide Я конечно понимаю, что тебе просто надо из принципа насрать сюда последним, но это буквально 2 функции возвращающие один и тот же side отличия которой заключается в приведенной ниже строчке, что никак не влияет на использование в данном скрипте.
-Returns the player's side. This is valid even when the player controlled person is dead (a difference from side player).
|
|
|
|
BendeR
|
Вторник, 15.08.2023, 01:28
|
STELS
|
Она тебе WEST вернет не зависимо от стороны если будет задержка инициализации плеер юнита. Я на это вроде когда анализаторе писал напарывался-локально тестил работало, на играх у некоторых залагавших глючило. Лучше ее просто избегать, кроме озвученного тобой выше случая с дохлым плеером
Сообщение отредактировал BendeR - Вторник, 15.08.2023, 01:30
|
|
|
|
Kypatop
|
Понедельник, 13.11.2023, 01:18
|
RMC
|
Автор афк, миссия в архив.
|
|
|
|