Open Opressor-3000 opened 9 years ago
@AlNazir, делай лучше для каждой задачи отдельный тикет. Так и тебе самому проще будет.
Да, наверное если эти два скрипта особо не связаны, то можно и разделить на две задачи.
Десант рисуется в миссии, а пехота в грузовиках нет.
Я так понял это относится к скрипту защиты города?
Это относится ко всем заданиям в миссии. Проблема описана NARRAMом на форуме. Боты возрождаются очень близко от точки задания буквально под боком. Надо что бы пехота на Темпасе, Камыше, Мариде и Варсуки возрождались за 1-2 км, десантные вертолеты 2-2,5 км, боевые вертолеты и истребители >3 км. Арчи говорил про точку на площади которой боты должны выполнить задачу найти и уничтожить. @tym32167 @a11archer @Tourorist
Я кажется понял. В скрипте защиты (po3_task_m15_defendTown.sqf) _locRadis = _location select 2;
нигде не встречается! Надо бы новую версию патруля брать. Это незаконченная версия.
Все, как я понял. Построив алгоритм появляется в одной точке +/- 4 метра рядом с командиром отряда.
Функция получения позиции работает по маркерам и обьектам возвращая лишь 2D или 3D координату. По этой точке работают другие скрипты. Выходит что надо добавлять код.
Это последняя версия и Roy86 (создатель Patrol Ops 3.1) больше не будет ее поддерживать.
Да, миссия не доделанная мы это с Norad-ом давно поняли и нам надо «вдохнуть в нее новую жизнь» так что нам очень нужна помощь с этим. Плиииз @a11archer
Я почитал лицензию на патрули, там сказано что модифицировать скрипты запрещается лицензией разработчика. То что они сами не будут далее обновлять свой труд ни о чем не говорит. Это лицензия на пользование скриптами, а не открытая, как MIT или GPL. Есть ли указание что EightySix меняет лицензионную политику?
MPSF PO3 Edition - MultiPlayer Scripting Framework by EightySix Version Release 3.1.1 PERMITTED FOR PUBLIC RELEASE WITHOUT MODIFICATION
А давай мы напрямую свяжемся с Roy86 и поговорим с ним. @a11archer @tym32167 @Tourorist
Ок, лучше связаться, спросить не против ли он что мы будем редактировать её для своих нужд и на каких условиях. Думаю ему сотню раз такой вопрос задавали. Тем более что следующего релиза ждать бессмысленно. Меня беспокоит что Roy86 не один её делал и EightySix очень много скриптов сделал к ней без права на изменение. В любом случае по первому же требованию я готов все изменения удалить. Это лишь для собственного пользования (мы можем поставить миссию в спуллер чтобы это не считалось публичным выпуском). Пока вроде на миссию вообще нет ссылки на форумах что может считаться что её вовсе не опубликовывали.
Касательно скрипта порождения ИИ рядом с точкой:
_position = [PO3_TASK__POS,0,0,false] call PO3_fnc_
getPos;, где значения соответственно:
[_3dposition,_radius,_direction,?,?]
Вот так вызывается функция которая возвращает место где порождаются вражеские юниты.
Она 3D ([19473.3,15453.7,0]
к примеру, координаты мне вывела для города Nifi). Радиус от позиции и угол отклонения этого радиуса не воспринимает т.к. всё кроме 3dposition игнорируется.
Там при защите города вроде как создается группа СВОИХ:
_grp = [ _position, (PO3_side_3 select 0), "EN_PatrolGroup0",
20] call PO3_fnc_createGroup;
Ищу может есть сдвиг от города в PO3_fnc_createGroup задан. а на самом деле все сразу передается в squadSpawner где принимается
Нашел её в fnc\creator\fn_createGroup.sqf
Returns: Group ID of units
Автор этого скрипта опять тот же RoyEightySix.
Внутри функции написано что от позиции радиус размещения 20 метров.:
Syntax:
["<position>,<side>,<type>,<radius>,<stance>,<strength>] spawn PO3_fnc_
createGroupradius - Number - (OPTIONAL) The maximum radius from the position they will be spawned at.
Где 20 это радиус внутри которого создается отряд.
Похоже на правду, попробую в отладчике сделать 500 + random 200
:
_grp = [ _position, (PO3_side_3 select 0), "EN_PatrolGroup0",500 + random 200] call PO3_fnc_createGroup;
Чтобы на нашей позиции не появлялись.
Опа:
_return = _this call PO3_fnc_
squadSpawner;
Уводит в другую функцию : cox_patrol-ops-3-01-nato.Altis\fnc\creator\ fn_squadSpawner.sqf
@roy86 и RoyEightySix это два разных человека? Я думал что один и тот же.
У нас с паблика есть сюда ссылка, поэтому мы не можем менять код миссии. Нужно закрытый репозиторий для этого исходя из лицензии Eightysix. самое оптимальное - все обработать "для себя" и залить обратно исходную миссию (это разрешается)
Давай просто свяжемся с @roy86. Надо написать ему, а лучше пригласить в ТС. Только переводчик нужен.
Кто у нас хорошо английский знает.
Может пока рано? Для начала выясним что и почему мы хотим поменять. Я минуту назад нашел ошибку:
[_3dpos, _radius, _angle] PO3_fnc_ getPos
to find random position from current. So we need permisiion to make repository as public to solve it in our customized mission for internal usageТо есть мы меняем, меняем, а потом в итоге миссия не публикуется как а выкладывается на одном сервере.
а конкретно в коде: _position = if(_radius > 0) then { [_position,_radius,random 360] call PO3_fnc_getPos переменные уходят "вникуда". мы дорабатываем функцию как задумано Eightysix.
Ха, они её уже сделали но не использовали для этой цели. она лишь узнает позицию по заданному углу и расстоянию от точки как я ранее описывал в ТС.
видимо ошибка в функции fn_squadSpawner.sqf. В строке 26
_position = if(_radius > 0) then { [_position,_radius,random 360] call PO3_fnc_getPos }else{ _position call PO3_fnc_getPos };
надо заменять на
_position = if(_radius > 0) then { [_position,_radius,random 360] call PO3_fnc_getPos
Radius}else{ _position call PO3_fnc_getPos };
переносится в ветку AI-spawn-patch
Ты можешь связаться с разработчиком PO3. Просто спроси на каких условиях он согласен дать нам разрешение на редактирование. @a11archer
нет. у меня нет времени и на работу в миссии и на связь с ним. Может Браконьер может спросить у них разрешения.... я пытаюсь у себя править. это лицензия не запрещает.
ну вот что это за [400,500]
, их PO3fnc getPos тоже ведь игнорирует...
// =========================================================================================================
// Create Hostiles
// =========================================================================================================
_spawnAmbush = {
private["_position","_b","_ingress","_grp"];
_position = _this select 0;
_b = _this select 1;
_ingress = [_position ,[400,500],random 360,false] call PO3_fnc_getPos;
Radis это тоже какой-то массив... пытаюсь понять какой.
ведь есть же Location Radis
_locRadis = _location select 2;
!!!
вообщем чем глубже изучаю тем больше кажется что мы порождаем баги пытаясь улучшить общую функцию PO3_fn_getPos, она влияет на все и сразу...
Кстати я видел что вертолеты (кайман) уже и так высаживает ботов. касательно грузовиков не уверен. Просто иногда на сервере синхронизация тупит и они не высаживаются.
Разрешение получил, путаницу с запретом на редактирование разяснил
Happy for you to modify Patrol Ops 3 provided it is clearly stated that it is an adaption/modification of the original (you've met this condition).
The scripts saying "Do Not Modify" is only a warning for inexperienced coders as the code in that area feeds a lot of scripts that may break during alterations. It is a warning only and the scripts are permitted to be modified under the license.
@AlNazir @a11archer
Вложенность (рекурентный вызов) функций не позволяет понять алгоритм полностью. Увы. Описания некоторых переменных нету а они передаются в десятки функций. А отладчика посмотреть почему и куда пошла обработка нету. Не могу ознакомиться толком.
Изучить алгоритм который используется в миссии, найти ошибки и недочеты.