Всадники Кальрадии

Модификации => Обмен опытом: Mount&Blade => Обмен опытом (в помощь мододелу) => Вопросы и ответы по модостроению => Тема начата: Northmen от 20 Июля, 2014, 10:26

Название: Охотники за головами
Отправлено: Northmen от 20 Июля, 2014, 10:26
О них нет даже упоминания в "parties" , но они появляются на карте. Значит где то прописано их появление и место - подскажите где?
И в тему почему они сами не прокачиваются?
Название: Re: Охотники за головами
Отправлено: Дикий-дикий повар от 20 Июля, 2014, 15:09
О них нет даже упоминания в "parties"
О них и не будет упоминания в parties (там партии оригиналы, единственные и неповторимые, типа поселений, мостиков и отметок местности), manhunters в party_templates (шаблоны партий, всё то, что появляется и исчезает, и не обязательно в единственном экземпляре).
Значит где то прописано их появление и место
Покопайтесь в триггерах (кстати, местом может служить одна из отметок, что в parties)
И в тему почему они сами не прокачиваются?
Дайте-ка подумать... ...наверное, потому, что этого для них не предусмотрели.
Название: Re: Охотники за головами
Отправлено: Northmen от 20 Июля, 2014, 18:16
Покопайтесь в триггерах (кстати, местом может служить одна из отметок, что в parties)
В триггерах нашел это:

(5.7, 0, 0.0, [(store_num_parties_created,reg(3),"pt_manhunters"),
                 (lt,reg(3),num_max_zendar_manhunters),
                 (store_num_parties_of_template, reg(2), "pt_manhunters"), (lt,reg(2),3)],
                       [(set_spawn_radius,1),(spawn_around_party,"p_zendar","pt_manhunters")]),

Но Зендара нет на карте, в parties перед городами есть -

("zendar","Zendar",pf_disabled|icon_town|pf_is_static|pf_always_visible|pf_hide_defenders, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(18,60),[]), Это типа город-призрак?
И если захочу сделать еще точку выхода, придется еще призраков добавлять?

Название: Re: Охотники за головами
Отправлено: FinGall от 20 Июля, 2014, 21:17
Можно спаунить относительно любой партии (локации или отряда), в диапазоне заданного радиуса.
Например, рядом с одним из городов:
Название: Re: Охотники за головами
Отправлено: Northmen от 20 Июля, 2014, 22:39
Проверяет, если manhunters меньше 10 отрядов, то создаёт ещё один возле одного из городов.
Игра выбирает любой город?
Название: Re: Охотники за головами
Отправлено: Rongar от 20 Июля, 2014, 23:07
В скрипте FinGall игра выбирает город из диапазона, случайно.

В оригинальном скрипте игра выбирает Зендар.

То, что город не виден для игрока,  в данном случае роли никакой не играет.
Название: Re: Охотники за головами
Отправлено: Northmen от 24 Июля, 2014, 07:58
Дайте-ка подумать... ...наверное, потому, что этого для них не предусмотрели.
А предусмотреть можно?
Название: Re: Охотники за головами
Отправлено: FinGall от 24 Июля, 2014, 12:57
А предусмотреть можно?
Можно конечно. Просто добавить такой триггер в module_simple_triggers, который будет добалять отряду ХР.
Так же, как основным партиям.
См. после строки:
# Give some xp to hero parties
Название: Re: Охотники за головами
Отправлено: Northmen от 24 Июля, 2014, 21:54
См. после строки:
# Give some xp to hero parties
Посмотрел. Это та ситуация когда- "Смотришь в книгу-видишь фигу" Попробую разобраться.
Название: Re: Охотники за головами
Отправлено: FinGall от 25 Июля, 2014, 07:57
Посмотрел. Это та ситуация когда- "Смотришь в книгу-видишь фигу" Попробую разобраться
Если знать англйский, то разобраться легко. Все функции и переменные, это англ. слова и фразы. Можно использовать переводчик.
Название: Re: Охотники за головами
Отправлено: Northmen от 25 Июля, 2014, 12:23
Если знать англйский, то разобраться легко. Все функции и переменные, это англ. слова и фразы. Можно использовать переводчик.
Слова то я понимаю
Название: Re: Охотники за головами
Отправлено: Дикий-дикий повар от 25 Июля, 2014, 15:07
Хороший справочник, правда, очень давно не пополнялся, вот: http://rusmnb.ru/index.php?topic=14396.0 (http://rusmnb.ru/index.php?topic=14396.0)
Название: Re: Охотники за головами
Отправлено: Northmen от 25 Июля, 2014, 15:51
буду разбиратся
 

Добавлено: 26 Июля, 2014, 09:29

Может я не верно понял, но это-

(try_for_range, ":troop_no", kingdom_heroes_begin, kingdom_heroes_end),
         (store_random_in_range, ":rand", 0, 100),
         (lt, ":rand", 30),
         (troop_get_slot, ":hero_party", ":troop_no", slot_troop_leaded_party),
         (gt, ":hero_party", centers_end),
         (party_is_active, ":hero_party"),
         (store_skill_level, ":trainer_level", skl_trainer, ":troop_no"),
         (val_add, ":trainer_level", 2),
         (store_mul, ":xp_gain", ":trainer_level", 500),
         (party_upgrade_with_xp, ":hero_party", ":xp_gain"),
       (try_end),
для прокачки партий, а охотники там не состоят
Название: Re: Охотники за головами
Отправлено: FinGall от 27 Июля, 2014, 11:04
Да, это просто, как пример.

Можно например сделать и так в module_simple_triggers:
   (12,
   [
      (store_random_party_of_template, ":party", "pt_manhunters"),
      (party_upgrade_with_xp, ":party", 1000),
    ]),

Случайно выбраному отряду "охотников" каждые 12 часов будут добавляться 1000хр и абгрейтиться, если накопилось достаточно хр.
Но лучше всего добавлять хр во время битвы (в автобое), любому победившему отряду. И охотникам за головами и разбойникам, и лордам.
Скрипт автобоя - "game_event_simulate_battle".
После строки:
(gt, ":root_defeated_party", -1),
Добавить:
(party_upgrade_with_xp, ":root_winner_party", 5000),
Можно и больше, чем 5000. Надо проверять на практике.
Название: Re: Охотники за головами
Отправлено: Northmen от 27 Июля, 2014, 17:13
FinGall

 Благодарю!
С общей прокачкой надо попробовать, вот с разбойниками это будет стремно, через некоторое время они будут бегать рыцарями и сержантами
Название: Re: Охотники за головами
Отправлено: FinGall от 27 Июля, 2014, 18:55
вот с разбойниками это будет стремно, через некоторое время они будут бегать рыцарями и сержантами
Можно сделать разбойникам свою линейку развития или вообще её убрать.
Название: Re: Охотники за головами
Отправлено: Northmen от 27 Июля, 2014, 19:13
Можно сделать разбойникам свою линейку развития или вообще её убрать.
Это да. А вот строку   (gt, ":root_defeated_party", -1),  я не нашел, есть только  (assign, ":root_defeated_party", -1),
Название: Re: Охотники за головами
Отправлено: FinGall от 27 Июля, 2014, 21:35
А вот строку   (gt, ":root_defeated_party", -1),  я не нашел, есть только  (assign, ":root_defeated_party", -1),
У меня МС с Дипломатией.
Думаю в обычной МС можно воткнуть
(party_upgrade_with_xp, ":root_winner_party", 5000),
 после строки
(ge, ":root_winner_party", 0),
Название: Re: Охотники за головами
Отправлено: Northmen от 28 Июля, 2014, 18:19
Думаю в обычной МС можно воткнуть
я с И.Г. Custom Commander резвлюсь
Попробовать стоит
Название: Re: Охотники за головами
Отправлено: Northmen от 01 Августа, 2014, 09:16
Думаю в обычной МС можно воткнуть
(party_upgrade_with_xp, ":root_winner_party", 5000),
 после строки
(ge, ":root_winner_party", 0),
Это не работает
Название: Re: Охотники за головами
Отправлено: Дикий-дикий повар от 01 Августа, 2014, 12:18
Цитата: FinGall от 27 Июль, 2014, 21:35

    Думаю в обычной МС можно воткнуть
    (party_upgrade_with_xp, ":root_winner_party", 5000),
     после строки
    (ge, ":root_winner_party", 0),

Это не работает
Может забыли отметить путь развития (0 - случайно): (party_upgrade_with_xp, ":root_winner_party", 5000, 0),
А по моему лучше (чтобы все партии получали опыт): в том же скрипте после #ADD XP уберите условие (party_slot_eq, ":root_attacker_party", slot_party_type, spt_kingdom_hero_party), и в следующем try блоке того же уровня (party_slot_eq, ":root_defender_party", slot_party_type, spt_kingdom_hero_party),.
Название: Re: Охотники за головами
Отправлено: Northmen от 01 Августа, 2014, 20:00
(party_upgrade_with_xp, ":root_winner_party", 5000, 0),
Так тоже не работает
Название: Re: Охотники за головами
Отправлено: FinGall от 01 Августа, 2014, 22:19
Это только когда бой без участия отряда игрока. В сценах надо отдельно делать.
Название: Re: Охотники за головами
Отправлено: Groby от 02 Августа, 2014, 16:08
О них нет даже упоминания в "parties" , но они появляются на карте. Значит где то прописано их появление и место - подскажите где?
И в тему почему они сами не прокачиваются?

Да уж. module_party_templates.py строка 45. Warband 1.158. Native.

("manhunters","Manhunters",icon_gray_knight,0,fac_manhunters,soldier_personality,[(trp_manhunter,9,40)]),
Manhunter - охотник за головами по-английски. фракция охотники за головами, солдаты, состав группы от мин. 9 до макс. 40 охотников.

Сами они не прокачиваются, потому что во-первых им не дают халявной экспы и не говорят "апгрейдитесь, ****" в коде, а во-вторых их чаще разбирают бандиты и таскают как пленников. А происходит так, потому что максимальное количество пати (групп) Manhunteroв мало, по сравнению с количеством пати бандитов.

А это уже module_scripts.py

(lt,":num_parties",ХХХ) - ХХХ это максимальное количество пати (групп) бандитов на карте одновременно. Для каждого вида бандитов свой счётчик.


А вот Manhunterам повезло меньше. У них нет большого максимального количества пати (групп) на карте. Их спавнят по триггеру в module_triggers.py, когда их совсем мало остается. Кстати говоря, там же, но чуть ниже их "интеллект". Вернее сказать, задание преследовать бандитов и убивать их, которое им выдается при их спавне.


Вот такая непростая механика судьба Manhunterов...