Союз | Union

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Союз | Union » Картостроение и скриптовка » Делаем карту (с грехом пополам)


Делаем карту (с грехом пополам)

Сообщений 601 страница 630 из 693

601

ИС 3 написал(а):

из-за того, что реки уходят сильно далеко за края карты

У меня была проблема из-за слишком широкой реки, пришлось её рисовать несколькими ручейками.

0

602

Странно, у меня карта спокойно открылась...
Посмотрел, нарисована неплохо :cool:

Отредактировано Aist15 (2016-11-25 18:53:32)

0

603

VDVшник написал(а):

После открытия reseditor'а в папке Data появятся непонятные пару файлов, удалите их, и попробуйте открыть карту в mapeditor, затем по новой сохраните в BZM-формате.

Благодарю, помогло.

0

604

Кто-нибудь может выложить учебник по LUA Jukov'а? А то живых ссылок на форуме не осталось. Заранее благодарю.

0

605

VautourII написал(а):

Кто-нибудь может выложить учебник по LUA Jukov'а? А то живых ссылок на форуме не осталось. Заранее благодарю.

https://yadi.sk/d/nraaa7CTzXad3
Тут не только ЛУА... возможно, многое из этого у Вас есть, но, скинул всё, на всякий случай

0

606

Доделал карту про усташей и партизан. Жду критику. https://yadi.sk/d/wSrfxkIP33ijcb

+4

607

VautourII написал(а):

Жду критику

В первом задании "Защитить поезд". Партизанов в окопах около 8 - 10 взводов, плюс около 5 пулеметов, плюс миномет, плюс Дзот. Пехотных наступающих злодеев около 16 взводов. Для успеха боя при стандартном соотношении наступающих к обороняющимся в укреплениях 3:1, задание очень сложно выполнимо.
Дальше. Из всех злодеев остался только 1, который застрял в оградах города (вылезти никаким образом не может), дальше игра останавливается.  Залез в скрипты, там прописано условие выполнения первого задания: если хотя бы один юнит из поезда будет в городе (зона "station"), то задание выполнено; а вот невыполнение этого задания не предусмотрено.
Поэтому, если поезд стопорится (уничтожен движущий его локомотив), то он никогда не попадет в город - игра прервется при невыполнении первого же задания, потому что условие начала (высвечивания) следующего - это нахождения к.-либо части поезда в вышеуказанной зоне.
Нужно ввести какое-то условие инициации следующего задания даже при условии невыполнения первого задания (например, добавить второе условие (через "or"), в котором написано, что количество обеспечивающих прохождение поезд злодеев меньше двух (одного оставить на случай "застревания между заборами города)).
Или, если это задумано, то при невыполнении прописать функцию "Поражение".
А карта хорошая, красивая... Спасибо за труды.

Отредактировано yersinia (2016-12-17 17:13:51)

0

608

Еще, к первому заданию "поезд".
Немецкому поезду ни в стартовых командах, ни в скриптах не дано задание "переместиться в зону "station".
Хотя там и есть функция и команда
RunScript("Trainmove1",0); и далее (в этой функции) Cmd(0,3331,12526,9482), где 3331 это локомотив, но инициацию функции через 0(ноль) секунд прописывать нельзя, она не сработает; нужно задать хоть какой-то промежуток времени, с учетом появления подкрепа на карте, минимум 2 - 6 - 10 секунд.
Есть нюанс. Если пулеметно-зенитная платформа не будет стрелять (врагов уже не будет), то поезд все-таки поедет в город, но это практически в игре невозможно. А как только данная платформа дала первый залп, то автоматически задание локомотиву "переместиться" анулируется.
А так, как он "Плеер 2", хоть и наш (игрока), но "браться" не может, то он в любом случае не сможет попать в город.
Отсюда вывод: первое задание в принципе невыполнимо, а дальше игра останавливается.
Далі буде (дальше будет).

Примечание. Нельзя инициировать (РанСкрипт) функцию через 0 секунд - ни условия, ни сама функция сработать через 0(ноль) единиц времени не смогут. Нужно задать хоть какой-либо временной интервал (хотя бы 1 сотую секунды).

Отредактировано yersinia (2016-12-17 17:44:16)

0

609

yersinia написал(а):

VautourII написал(а):

    Жду критику

В первом задании "Защитить поезд". Партизанов в окопах около 8 - 10 взводов, плюс около 5 пулеметов, плюс миномет, плюс Дзот. Пехотных наступающих злодеев около 16 взводов. Для успеха боя при стандартном соотношении наступающих к обороняющимся в укреплениях 3:1, задание очень сложно выполнимо.
Дальше. Из всех злодеев остался только 1, который застрял в оградах города (вылезти никаким образом не может), дальше игра останавливается.  Залез в скрипты, там прописано условие выполнения первого задания: если хотя бы один юнит из поезда будет в городе (зона "station"), то задание выполнено; а вот невыполнение этого задания не предусмотрено.
Поэтому, если поезд стопорится (уничтожен движущий его локомотив), то он никогда не попадет в город - игра прервется при невыполнении первого же задания, потому что условие начала (высвечивания) следующего - это нахождения к.-либо части поезда в вышеуказанной зоне.
Нужно ввести какое-то условие инициации следующего задания даже при условии невыполнения первого задания (например, добавить второе условие (через "or"), в котором написано, что количество обеспечивающих прохождение поезд злодеев меньше двух (одного оставить на случай "застревания между заборами города)).
Или, если это задумано, то при невыполнении прописать функцию "Поражение".
А карта хорошая, красивая... Спасибо за труды.

Отредактировано yersinia (Сегодня 17:13:51)

Сам неоднократно проходил это место. При грамотном управлении пехотой (т.е. перемещении "перебежками" штурмовать-залечь) проходится без проблем, тем более, что партизаны отходят, потеряв определенное кол-во юнитов. Поезд у меня тоже всегда ездил до станции стабильно. А функция поражения в "Traindestroy" прописана. Видимо, я задал слишком большую фору до прибытия поезда, и поэтому у Вас создалось впечатление, что скрипты не работают. На всякий случай еще раз протестирую...

0

610

VautourII написал(а):

...поэтому у Вас создалось впечатление, что скрипты не работают...

Очень даже может быть. Это было только первое впечатление, "на вскидку"...
Вполне допускаю, что был не прав. ...
Очень давно не играл, всё критикую, исправляю, экспериментирую...

0

611

Только что снова прогнал это место. Поезд до станции едет, задание выполняется, если раздолбать больше половины - игрок терпит поражение.

0

612

Msv написал(а):

карта в стадии балансировки. Пробуйте, пишите что не так. )) Для любителей оборонительных миссий.

Решил отвлечься от картоделанья, прошёл Вашу карту. Карта отлично прорисована, сюжет довольно интересный, интересно играть. Выявленные ляпы: 1). Наличие танков Pz.Kpfw. III Ausf. M, данные танки не могут находится в этом периоде времени, потому как в войска начали поступать в конце 1942 года; 2). StuG III Ausf. G и StuH 42 Ausf. G оналогично; 3). Наличие СС-менов с панцершреками (при обороне последнего населённого пункта). Данные юниты и сквады замените и будет замечательно.
Мне понравилось как установлены направления атак, непредсказуемо для игрока, не знаешь как организовать оборону, по этому приходится или занимать круговую или выстраивать эшелонированную. Совет с атаками (это чисто моё мнение, как супер критику не воспринимайте), можно сделать развитие прорыва, если юниты или сквады прорываются в заданную зону, приходит дополнительное подкрепление с задачей: продолжить прорыв в заданном направлении.
function Ataka1()
if (GetNUnitsInArea(0,"Zona7")>=2)then
LandReinforcement(200);
GiveCommand(3,1005,GetScriptAreaParams("Zona9"));
RunScript("Othod1",3000);
Suicide();
end;
end; как пример.
Можно сделать ещё команды на отход с позиций, время июнь месяц, приказ №227 "Ни шагу назад" ещё не вышел.
Удачи Вам в картостроении, с Новым годом.

+1

613

Спс за отзыв. Карту пока отложил, праздники )))). Через недельку постараюсь заняться доведением до ума.

+1

614

По просьбе одного товарища я сделал не больной мануал по созданию и скриптованию миссии.

Вот ссылка https://yadi.sk/d/UF3agVI_pFsWb

+4

615

Подскажите пожалуйста, есть ли возможность в .xml заменить один тайл на другой? Так получилось, что, не зная свойства тайлов, я закрасил значительную часть африканской карты mud ground'ом.

Отредактировано VautourII (2017-01-26 20:16:38)

0

616

VautourII написал(а):

Подскажите пожалуйста, есть ли возможность в .xml заменить один тайл на другой?

А не проще на самой карте поменять тайлы и сохранить в BZM-файле, один на другой накладывается без проблем?

0

617

Столкнулся со следующей проблемой: бомберы союзника вылетают только один раз. Время ожидания - 0, общее кол-во бомберов - 6 штук. Вот кусок скрипта:

function Bomb()
Cmd(19,3,2,GetScriptAreaParams("bomb"));
RunScript("Bomb2",5000);
Suicide();
end;

function Bomb2()
Cmd(19,3,2,GetScriptAreaParams("bomb2"));
RunScript("Bomb3",5000);
Suicide();
end;

function Bomb3()
Cmd(19,3,2,GetScriptAreaParams("bomb3"));
RunScript("AG1",5000);
RunScript("Scoutheli",0);
Suicide();
end;

0

618

VautourII написал(а):

общее кол-во бомберов - 6 штук

Вылетают по 2 штуки, я так понимаю? И да, время перезарядки 0 будет считаться как 30(то есть по стандарту), так что нужно поставить вместо нуля единицу.

Ещё замечу, что второй параметр в Cmd желательно ставить равным 10000

+1

619

ИС 3 написал(а):

Ещё замечу, что второй параметр в Cmd желательно ставить равным 10000

Почему-то если пишу 10000, скрипт не работает... В остальном же проблема решена, благодарю. Еще хотелось бы спросить: каков наилучший вариант "отключения" типа авиации после вылета? Те варианты, которые использованы в миссии "Крит" и 2-й миссии югославской главы HRA у меня отчего-то не работают.

Отредактировано VautourII (2017-02-26 02:34:57)

0

620

VautourII написал(а):

Еще хотелось бы спросить: каков наилучший вариант "отключения" типа авиации после вылета?

Тут надо поподробней рассказать, какого результата хочешь добиться. Если отключить один тип авиации на какое-то определённое время сразу после вызова, то это сделать очень даже просто. Для этого достаточно в следующей же строчке после вызова отключить вызываемый тип, но сработает, если в небе не будет других самолётов той же стороны. Если же будут, то тут зависит от перерывов между вылетами. В ситуации, когда любой самолёт успеет вернуться на аэродром, а авиация будет ещё перезаряжаться, достаточно сделать проверку на отсутствие самолётов в воздухе.

if GetNUnitsOfType("avia_attack",1) == 0 -- соответственно вместо единички нужный номер игрока
and GetNUnitsOfType("avia_bomber",1) == 0
and GetNUnitsOfType("avia_fighter",1) == 0
and GetNUnitsOfType("avia_scout",1) == 0
and GetNUnitsOfType("avia_lander",1) == 0 then

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

0

621

ИС 3 написал(а):

Тут надо поподробней рассказать, какого результата хочешь добиться. Если отключить один тип авиации на какое-то определённое время сразу после вызова, то это сделать очень даже просто. Для этого достаточно в следующей же строчке после вызова отключить вызываемый тип, но сработает, если в небе не будет других самолётов той же стороны. Если же будут, то тут зависит от перерывов между вылетами. В ситуации, когда любой самолёт успеет вернуться на аэродром, а авиация будет ещё перезаряжаться, достаточно сделать проверку на отсутствие самолётов в воздухе.

    if GetNUnitsOfType("avia_attack",1) == 0 -- соответственно вместо единички нужный номер игрока
    and GetNUnitsOfType("avia_bomber",1) == 0
    and GetNUnitsOfType("avia_fighter",1) == 0
    and GetNUnitsOfType("avia_scout",1) == 0
    and GetNUnitsOfType("avia_lander",1) == 0 then

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

Проблема в том, что у меня по сюжету после прибытия десантников игрока в воздухе постоянно висит авиация "союзника". Видимо, следует поставить условием их вылета  GetNUnitsOfType("avia_lander",0) == 0?

Отредактировано VautourII (2017-02-26 16:47:44)

0

622

VautourII написал(а):

Проблема в том, что у меня по сюжету после прибытия десантников игрока в воздухе постоянно висит авиация "союзника". Видимо, следует поставить условием из вылета  GetNUnitsOfType("avia_lander",0) == 0?

Авиация союзника никаким образом не влияет на авиацию игрока, то есть для каждого игрока номер 0, 1, 2, 3 и т.д. авиация работает независимо. В GetNUnitsOfType прописывается именно номер игрока, а не стороны.

0

623

ИС 3 написал(а):

Авиация союзника никаким образом не влияет на авиацию игрока, то есть для каждого игрока номер 0, 1, 2, 3 и т.д. авиация работает независимо. В GetNUnitsOfType прописывается именно номер игрока, а не стороны.

Выше вы написали:

ИС 3 написал(а):

сработает, если в небе не будет других самолётов той же стороны.

Или имелся в виду игрок? В любом случае, скрипт вида
function Paras1()
EnableAviation(0, 2);
SetIGlobalVar("ParadropSquad.ScriptID",1000);
Cmd(22,10011,0,GetScriptAreaParams("dropzone1"));
RunScript("Parasinzone",10000);
DisableAviation(0, 2);
Suicide();
end;
должным образом не работает: игрок может вызвать транспортники по их возвращении.

0

624

VautourII написал(а):

Выше вы написали:

Да, имел в виду игрока, пардон.

VautourII написал(а):

должным образом не работает: игрок может вызвать транспортники по их возвращении.

Попробуй DisableAviation написать сразу следующей строчкой после вызова десанта, то есть так:

Cmd(22,10011,0,GetScriptAreaParams("dropzone1"));
DisableAviation(0, 2);
RunScript("Parasinzone",10000);

Если не получится, то тогда лучше запустить после функцию с проверкой, как я описал выше.

0

625

Опытным путем установил, что авиация "союзника" засчитывается как авиация стороны 0, поэтому при наличии в воздухе его транспортников условие GetNUnitsOfType("avia_lander",0) == 0 не выполняется. Решил проблему, поставив условием кол-во самолетов в воздухе, меньшее, чем численность "звена" у игрока.

+1

626

VautourII написал(а):

Опытным путем установил, что авиация "союзника" засчитывается как авиация стороны 0, поэтому при наличии в воздухе его транспортников условие GetNUnitsOfType("avia_lander",0) == 0 не выполняется. Решил проблему, поставив условием кол-во самолетов в воздухе, меньшее, чем численность "звена" у игрока.

А если один или несколько самолетов из звена собьют?

0

627

dima32rus написал(а):

А если один или несколько самолетов из звена собьют?

Как правило в миссиях, где имеется "автоматическая" высадка десанта, транспортники не прорываются через ПВО противника и, тем более, не перехватываются истребителями. Если же возможность их уничтожения есть, то условием вылета "союзника" следует ставить отсутствие самолетов игрока в воздухе. Тогда проблемы, для которой и предусмотрено это решение, просто не возникнет.

0

628

VautourII написал(а):

В любом случае, скрипт вида
function Paras1() ...не работает: игрок может вызвать транспортники по их возвращении

- (см. пост 623)
Странно, должно работать, а ведь и не работает - специально создал проверочную карту и... ноусер.
А кто-нибудь разобрался со скриптовым номером для авиации - вторым числом в команде: Cmd(22(или другой тип самолетов),ВОТ ЗДЕСЬ,0,GetScriptAreaParams
Замечено, что можно ставить любое число, я даже пробовал -1, все равно срабатывает.

0

629

yersinia написал(а):

А кто-нибудь разобрался со скриптовым номером для авиации - вторым числом в команде: Cmd(22(или другой тип самолетов),ВОТ ЗДЕСЬ,0,GetScriptAreaParams
Замечено, что можно ставить любое число, я даже пробовал -1, все равно срабатывает.

Скорее всего этот параметр просто присваивает id самолётам в звене.

0

630

yersinia написал(а):

Замечено, что можно ставить любое число, я даже пробовал -1, все равно срабатывает.

Любое, кроме номера размещенного на карте объекта/юнита. У меня, например, фугас имел номер 10000, и поэтому самолеты с этим числом в команде не вылетали.

0


Вы здесь » Союз | Union » Картостроение и скриптовка » Делаем карту (с грехом пополам)