Голосование

Как вы относитесь к играм в жанре "симулятор колонии"?












Оформление



Пользователей
  • Всего: 29196
  • Последний: hoy545
Сейчас на форуме
Пользователи: 3
Гостей: 586
Всего: 589

0 Пользователей и 1 Гость просматривают эту тему.

Тема: [KIT] Создание патруля для Warband  (Прочитано 20699 раз)

  • Сообщений: 317
    • Просмотр профиля
+6
« : 09 Июля, 2011, 10:23 »
Примечание:
Сразу говорю, что со Sward of Domocles я взял только идею. В игре этот мод будет выглядеть таким, как с SoD, но для Warband мне пришлось его кардинально переработать. С патрулем из SoD нет ни единого общего скриптика... Кроме того я сделал пару очень важных доработок. Так что что бы про плагиат мне тут не говорили. Целую неделю делал!

Примечание:
Для удобства я выделяю все по данной схеме:
Синий - искомый текст.
Зеленый - добавленный текст.
Красный - замененный текст.
Серый - исходный текст файла.


Итак:
Создание патруля для Warband
1.134, 1.143, 1.153                                                           
1. Новая партия
 Патруль, который мы собираемся создать, по самой сути не должен быть похож ни на один существующий отряд. По этому для него надо создать новый.
Изменения будем вносить в party_tempates. Итак, дописываем вот тут:
Цитировать (выделенное)
  ("looter_lair","Kidnappers' Hideout",icon_bandit_lair|carries_goods(2)|pf_is_static|pf_hide_defenders,0,fac_neutral,bandit_personality,[(trp_looter,15,25)]),
 
  ("bandit_lair_templates_end","{!}bandit_lair_templates_end",icon_axeman|carries_goods(2)|pf_is_static,0,fac_outlaws,bandit_personality,[(trp_sea_raider,15,50)]),

  ("leaded_looters","Band of robbers",icon_axeman|carries_goods(8)|pf_quest_party,0,fac_neutral,bandit_personality,[(trp_looter_leader,1,1),(trp_looter,3,3)]),

# patrols +
  ("player_patrol","Player Partol", icon_gray_knight|pf_always_visible|carries_goods(10), 0, fac_player_supporters_faction, courage_15|aggressiveness_1,[]),
# patrol -

]

Примечание: серый - текст файла, зеленый - то, что мы дописываем.

Итак, что мы сделали:
- Создали новый вид групп с названием "Player Partol" (можно поменять по желанию).
- Дали ему иконку gray_knight (тоже можно поменять на желаемую).
- Сделали его всегда видимым. Как-никак - патруль, как бы информирует наc о своем местонахождении. Если этого не хотите - уберите флаг "pf_always_visible".
- Дали ему немного добра carries_goods(10), что бы бандиты не обходили его стороной, так же, как и любой обычный отряд...
- Самое главное, и где авторы кодя для SoD сделали большую ошибку, мы ставим ему фракцию "fac_player_supporters_faction", а совсем не "fac_player_faction". Иначе наш отряд не сможет нормально воевать и будет нам пользы от него ноль...
- Храбрость ставим на 15, что бы он не убегал, а защищал территорию, где мы его поставили. А агрессию на 1, что бы он не нападал на все, что движется и гонялся за ним по всей карте.

2. Диалоги
Итак, делаем очень важное - "интерфейс" управления нашей группой. Это обычные диалоги с приказами, которые знакомы вам от общения с лордами, если вы маршал...
Итак в dialogs найдем это:
Цитировать (выделенное)
######################################
# GENERIC MEMBER CHAT
######################################

Строки блока "member chat" мы будем заменять. Можете поместить их в комментарий:
Цитировать (выделенное)
 
  ##[anyone,"member_chat", [], "Your orders {sir/madam}?", "regular_member_talk",[]],
  ##[anyone|plyr,"regular_member_talk", [], "Tell me about yourself", "view_regular_char_requested",[]],
  ##[anyone,"view_regular_char_requested", [], "Aye {sir/madam}. Let me tell you all there is to know about me.", "do_regular_member_view_char",[[change_screen_view_character]]],
  ##[anyone,"do_regular_member_view_char", [], "Anything else?", "regular_member_talk",[]],
  ##[anyone|plyr,"regular_member_talk", [], "Nothing. Keep moving.", "close_window",[]],

Как я сказал, вместо этих строк вписываем вот эти нехитрые диалоги:


Фразы диалогов можете менять, как душе угодно, если вам не нравятся эти... Кириллицу не используйте, в модульке можно исключительно латиницу!

Как можно заметить из диалогов патруль создается так:
В меню партии выбираем воина -> "Говорить" -> "Make  a party". В итоге на карте появится отряд с этим воином. Патруль будет уметь:
- Обмениваться  войсками с группой игрока;
- Вернуть всех воинов обратно в группу игрока;
- Следовать;
- Стоять;
- Патрулировать;
- Идти в назначенное место (город/замок/деревня);
- Патрулировать назначенное место (город/замок/деревня);

Некоторые примечания:
- При создании патруля он по умолчанию будет следовать за вами. Если вам надо, что бы группа по умолчанию стояла на месте, то в диалоге Make a party. в середине блока операций вместо "ai_bhvr_escort_party" пропишите "ai_bhvr_hold".
- Когда вы приказываете патрулю стоять на месте или идти в указанное место, то патруль всегда (пока не прикажете что-то другое) будет стремится находится в этой точке. То есть даже, если его спугнут враги, то он потом вернется обратно.

Тактика:
  Патрулям можно менять тактику. Это всего-лишь изменение агрессивности и храбрости, но оно отлично влияет на действия патруля. Имейте ввиду, тактика - не жесткий приказ. Она лишь указывает патрулям, как бы им стоило поступать, а не приказывает поступать именно так.
  Варианты:
- Действовать обычно ("нейтральные" значения)
- Атаковать всех врагов (макс. агрессия и храбрость; атакуют всех врагов, даже тех, кто сильнее патруля)
- Атаковать аккуратно (макс. агрессия, мин. храбрость; атакуют только, если враг слабее патруля)
- Не атаковать, но защищаться (мин. агрессия, макс. храбрость; не атакуют первыми, но не убегают, даже от врагов сильнее патруля)
- Не вступать в бой (мин. агрессия и храбрость; сами не атакуют и убегают, даже от врагов слабее патруля)
Примечания:
  Имейте ввиду, что каких-то 5-10 воинов точно не пойдут на 100-150 врагов ни при какой тактике и будут в любом случае убегать.
  Тактика не влияет на присоединение патруля на вашу сторону при начале битвы. Патруль присоединится в любом случае.

4. Скрипты
Скрипт всего один - подсчет платы всем патрулям. Подробнее в следующем пункте.
Итак в scripts  в самом конце перед закрывающей скобкой:
Примечание: Серый - текст файла, зеленый - то, что мы дописываем.

Как видите, патрули получают плату в размере 150%.
По 2 мнимым причинам:
- На пропитание (в отряде игрока ведь кормит игрок);
- Все-таки патруль, работа сложная, рискованная;
И одной объективной причине:
- Что бы не было слишком легко после такого нововведения  :p

5. Презентации
Что же нам понадобилось в презентация? Ответ прост - недельная смета! Сейчас мы сделаем замечательный фокус, после которого плата за все патрули будет писаться в одной строчке. По стандарту новая строчка - это новый отряд. А нам ведь не надо стописят строчек, если у нас много патрулей...
Итак, дело сложное. Делаем все очень внимательно!
Первое:
В presentations найти строку:
Цитировать (выделенное)
("budget_report", 0, mesh_load_window,

Нашли? Рано радоваться, нам надо намного ниже.... Теперь ниже этой строки найдите вот это:
Цитировать (выделенное)
      (try_for_parties, ":party_no"),
        (assign, ":garrison_troop", 0),

Вы должны видеть вот такое:
Цитировать (выделенное)
        (gt, ":num_owned_center_values_for_tax_efficiency", ":num_centers_needed_for_efficiency_loss"),
      #gt accumulated total is ignored
        (val_add, ":num_lines", 1),
      (try_end),
      (try_for_parties, ":party_no"),
        (assign, ":garrison_troop", 0),
        (try_begin),
          (this_or_next|party_slot_eq, ":party_no", slot_party_type, spt_town),
         (party_slot_eq, ":party_no", slot_party_type, spt_castle),

Так вот: зеленая строка говорит нам, что вы нашли не то.
Надо еще раз найти упомянутые выше 2 строчки.
Вы должны найти вот такой блок:
(Синим я выделил искомые строчки)
Проглядите его, в файле вы должны быть именно на это блоке. Именно его мы сейчас будем редактировать.
Что бы не объяснять каждую букву я просто выложу этот же блок со сделанными изменениями. Вы должны у себя сделать такие же изменения. Обратите внимание, что все строки добавлены, т.е. из начального текста не нужно ничего удалять.
Примечание: Серый - текст файла, зеленый - то, что мы дописываем.
Если у вас все точно, как на примере, значит все ОК!

Ну собственно это все. Компилируем и радуемся.

Если вам понравился это дополнение, попробуйте так же 7. Заставляем ваш эскорт разбивать лагерь вместе с вами

« Последнее редактирование: 12 Августа, 2012, 02:06 от Arantir »
Багов в чужих скриптах не исправляю! Скриптов по просьбе не пишу и на заказ не делаю! Я всего лишь любитель поиграть в M&B, и ничего более.
  • Сообщений: 747
    • Просмотр профиля
0
« Ответ #1 : 09 Июля, 2011, 12:26 »
ну вобщето в SoD использовали код патруля(осп)2008 год от пользователя Geoffrey Ashe на талевордском форуме , так что это не их идея
За код спасибо , я раньше тоже его добавлял , но вот с имитацией битвы у патруля этого проблеммы были (патруль нападал на другие партии ,но через секунду убегал - продолжал движение по карте )

  • Ник в M&B: sorry_Im_berserk
  • Фракция: Норды
  • Сообщений: 317
    • Просмотр профиля
0
« Ответ #2 : 09 Июля, 2011, 12:51 »
ну вобщето в SoD использовали код патруля(осп)2008 год от пользователя Geoffrey Ashe на талевордском форуме , так что это не их идея
За код спасибо , я раньше тоже его добавлял , но вот с имитацией битвы у патруля этого проблеммы были (патруль нападал на другие партии ,но через секунду убегал - продолжал движение по карте )
Просто не стоило давать патрулю фракцию player_faction. Я вот эту проблему как раз исправил... Проверял - патруль успешно побил пару отрядов бандитов да еще пленных набрал...

А про автора идеи буду знать, спс...

Багов в чужих скриптах не исправляю! Скриптов по просьбе не пишу и на заказ не делаю! Я всего лишь любитель поиграть в M&B, и ничего более.
  • Сообщений: 97
    • Просмотр профиля
0
« Ответ #3 : 09 Июля, 2011, 19:12 »
у меня пишет какие-то warning-и в конце в build_module. запускаю - все нормально, кроме одной важной вещи! патруль формируется из одного юнитом, а когда говоришль ему показать свой отряд, он говорит да и ничего не появлется, остается дмалог, т.е это значит что нельзя юнитов ему в отряд добавить, он так и остается 1! все сделал по инструкции трижды - ничего не менятеся, подскажите, что делать, плиз.

  • Ник в M&B: Граф Людвиг
  • Сообщений: 317
    • Просмотр профиля
0
« Ответ #4 : 10 Июля, 2011, 05:19 »
Swadian Knight, упсть, когда удалял ненужную деталь, то удалил нужную случайно. Допиши в строке выделенное зеленым:
Цитировать (выделенное)
  [anyone,"plyr_patrol_give_troops_end", [], "Of course {sir/madam}!", "plyr_patrol_chat_pre_talk",[(change_screen_exchange_members,1)]],
А ошибок быть не должно. Скажи конкретно, на что жалуется build_module. Т.к. у меня все нормально. Наверное в посте где-то ошибку сделал.

Добавлено:
Такс, забыл выделить зеленым одно важное изменение вот тут (хотя они все важные...):
Цитировать (выделенное)
         (this_or_next|eq, ":garrison_troop", 1),
Но без этого изменения ошибок не должно быть. Просто работало бы чуть неправильно...
Добавил исправления в первый пост.

Добавлено:
На неизмененной модульной системе сделал те изменения, что указал в посте. Весь текст копировал. Даже без вышеуказанных 2-х исправлений компилируется build_modul'ем совсем без ошибок.
Все-таки, какие именно ошибки у тебя там пишет?

« Последнее редактирование: 10 Июля, 2011, 09:47 от Arantir »
Багов в чужих скриптах не исправляю! Скриптов по просьбе не пишу и на заказ не делаю! Я всего лишь любитель поиграть в M&B, и ничего более.
  • Сообщений: 97
    • Просмотр профиля
0
« Ответ #5 : 10 Июля, 2011, 09:57 »
Arantir,
Initializing...
Traceback <most recent call list>:
File "process_global_variables.py", line 6 in <module>
* from module_dialogs import
File ''C:\Module_system 1.134\module_dialogs.py'', line 25619, in <module>
 [party_tpl|pt_player_patrol,"start", [<store_encourated_party, "$temp">] "Yes <sir/madam>?", "plyr_patrol_chat_talk", [<assign, "$g_leave_encourater", 1>]]
Name error: name 'pt_player_patrol' is not defined
.....(дальше все норм до диалогов)
exporting dialogs...
WARNING: Usage of unassingned global variable: $temp_1
WARNING: Usage of unassingned global variable: $temp_1
WARNING: Usage of unassingned global variable: $temp_1
WARNING: Usage of unassingned global variable: $temp_1
WARNING: Usage of unassingned global variable: $temp_1
WARNING: Usage of unassingned global variable: $temp_1
Checking global variable usages...
WARNING: Global variable never used: $temp_1
WARNING: Global variable never used: $temp_1
WARNING: Global variable never used: $temp_1
WARNING: Global variable never used: $temp_1
WARNING: Global variable never used: $temp_1
WARNING: Global variable never used: $temp_1
вот такая фигня, остается после исправленного
___________
При компиляции осталось эта фигня, но теперь в игре заработал показ отряда и можно впихнуть партию. Спасибо, и все же , что эти ошибки значат?

« Последнее редактирование: 10 Июля, 2011, 10:02 от Swadian Knight »
  • Ник в M&B: Граф Людвиг
  • Сообщений: 317
    • Просмотр профиля
0
« Ответ #6 : 10 Июля, 2011, 11:25 »
Swadian Knight,
Цитировать (выделенное)
Name error: name 'pt_player_patrol' is not defined
Странно. Имя сходится ведь. Ты случайно не дописал в party_template после скобки? А надо было перед ней...
Да ну. Фигня какая-то... Один диалог player_patrol не видит, но другой спокойно создает группу этого патруля на карте?  :-\ :blink:
Цитировать (выделенное)
WARNING: Usage of unassingned global variable: $temp_1
Да ну, как это unassingned? Вот ведь assign этой переменной и всегда там был, еще с создания темы:
Цитировать (выделенное)
  [anyone|plyr,"plyr_patrol_give_order", [],"Go to...", "plyr_patrol_give_order_details_ask",[(assign, "$temp_1", spai_holding_center)]],
  [anyone|plyr,"plyr_patrol_give_order", [],"Patrol around...", "plyr_patrol_give_order_details_ask",[(assign, "$temp_1", spai_patrolling_around_center)]],

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

Или попробуй запихнуть в party_template новый отряд вот сюда:

« Последнее редактирование: 10 Июля, 2011, 11:35 от Arantir »
Багов в чужих скриптах не исправляю! Скриптов по просьбе не пишу и на заказ не делаю! Я всего лишь любитель поиграть в M&B, и ничего более.
  • Сообщений: 97
    • Просмотр профиля
0
« Ответ #7 : 10 Июля, 2011, 11:41 »
Или попробуй запихнуть в party_template новый отряд вот сюда:


воо, терь ниче не вылазает вроде. спасибо.)

  • Ник в M&B: Граф Людвиг
  • Сообщений: 317
    • Просмотр профиля
0
« Ответ #8 : 10 Июля, 2011, 11:47 »
Swadian Knight, Хм... Просто знаю в другом файле предупреждали не пихать новое в конец. (В patry_temlates не предупреждали. Я дописал в конце и у меня все прекрасно работало.)
Вот и толкнула мысль предложить написать где-то в середине...

И тебе спасибо за "тестирование". Добавлю в первый пост измененное, что бы наверняка у всех работало. :thumbup:

« Последнее редактирование: 10 Июля, 2011, 11:50 от Arantir »
Багов в чужих скриптах не исправляю! Скриптов по просьбе не пишу и на заказ не делаю! Я всего лишь любитель поиграть в M&B, и ничего более.
  • Сообщений: 317
    • Просмотр профиля
0
« Ответ #9 : 15 Июля, 2011, 12:31 »
Обновлено!
Добавлена новая возможность - настройка тактики. Подробнее читайте в первом посте.
Новые операции найдете в диалогах, они выделены оранжевым словом "new".

Багов в чужих скриптах не исправляю! Скриптов по просьбе не пишу и на заказ не делаю! Я всего лишь любитель поиграть в M&B, и ничего более.
  • Сообщений: 1332
    • Просмотр профиля
0
« Ответ #10 : 23 Февраля, 2012, 12:50 »
Отлично  работает. Спасибо за  толковую  выкладку  скрипта.

  • Сообщений: 2048
  • За создание технических проектов различного характера
    • Просмотр профиля
0
« Ответ #11 : 23 Февраля, 2012, 13:19 »
Хорошая работа Arantir, побольше бы таких постов)))

  • Фракция: Бандиты
  • Сообщений: 374
    • Просмотр профиля
0
« Ответ #12 : 24 Февраля, 2012, 11:45 »
Хороший урок. Авось что и возьму. :) Например тактику.

  • Сообщений: 317
    • Просмотр профиля
0
« Ответ #13 : 06 Августа, 2012, 19:40 »
Компилируется без ошибок на 1.143 и 1.153.

Багов в чужих скриптах не исправляю! Скриптов по просьбе не пишу и на заказ не делаю! Я всего лишь любитель поиграть в M&B, и ничего более.
  • Сообщений: 3008
  • За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов
    • Просмотр профиля
0
« Ответ #14 : 06 Августа, 2012, 21:24 »
Ну дык в последних версиях синглплеерных изменений почти и не было. На 1.153 если не всё, то почти всё переносится без проблем.

  • Сообщений: 126
    • Просмотр профиля
0
« Ответ #15 : 20 Сентября, 2012, 20:24 »
Здравствуйте!
Заранее прошу прощения если, из-за непонимания мною сути работы скрипта,  мои вопросы покажутся глупыми!
1) Компьютерные фракции могут выделять патрули? Возможно ли это реализовать?

2)Возможно ли создание патруля привязать только к определённым юнитам в линейке юнитов игрока (скажем офицерам), компьютерных фракций? Получается несколько различных юнитов, для каждой фракции.

3)Возможно ли привязать различным патрулям (созданным от разных юнитов) различные свойства поведения (определённое соотношение смелость\агрессивность), возможность разбивать охраняемый лагерь на ночлег?

4)Возможно ли реализовать для патрулей созданных из определённых юнитов, и наполненных определённого вида юнитами какие то уникальные свойства (скажем разведчикам возможность например устраивать засады)? То есть патруль созданный из определённых юнитов будет иметь присущие только этим юнитам способности, например те же разведчики могут быть невидим врагам, до момента нападения. 

5)Возможно ли привязать к засадам специально созданные для них сцены, со своими точками входа на сцену?

6)Возможно ли юнитам, которых мы выделяем  для создания патруля, присвоение некоторых свойств лордов, а конкретно возможность осаждать города и замки, грабить деревни, по приказу игрока и самостоятельно?

7)Возможно ли превращение юнита выделенного для создания патруля, в лорда (в момент выделения автоматически, или по желанию игрока, комьпютера-для комьпьютерной фракции)?

8)Есть возможность патруля сопровождать игрока, то есть двигаться за игроком на определённом расстоянии. Возможно ли изменять это расстояние? Если возможно то как?

9)Возможно ли реализовать выбор для патруля команды двигаться впереди игрока (разведка) на определённом расстоянии? Выглядеть это должно, приблизительно, как раньше выглядела перегонка коров, с той лишь разницей, что при повороте игрока патруль будет поворачивать в ту же сторону.

10)Возможно ли реализовать ниже описанное поведение патруля:
-при обнаружении вражеских фракций патруль возвращается к игроку(возможно с сообщением о обнаружении врага), или присылает одного юнита из своего отряда с сообщением и присоединением к игроку, до полного своего исчерпания (последним присоединяется юнит с которого создавался патруль).

11)Возможно ли сделать привязку максимального числа юнитов передаваемых патрулю к показателям (лидерство и др.) юнита основывающего патруль? Те патрули которые видел, зависели от показателей игрока. 

Заранее благодарю всех ответивших.

  • Сообщений: 47
    • Просмотр профиля
0
« Ответ #16 : 01 Ноября, 2012, 17:50 »
Цвет патруля (иконки) - свадийский. Его можно поменять?

  • Сообщений: 2766
  • За создание крупных модов и других особо сложных проектов За регистрацию на форуме не позже декабря 2016 года и не менее 2500 постов Выдается модераторам, достигнувшим значимых успехов на своем посту
    • Просмотр профиля
0
« Ответ #17 : 01 Ноября, 2012, 18:17 »
Цвет патруля (иконки) - свадийский. Его можно поменять?
да

1 + 2 + 3 + 4 + ... = ζ(-1) = -0.08(3)
1 - 1 + 1 - 1 + 1 - ... = 0.5
1 - 2 + 3 - 4 + 5 - ... = 0.25

На вопросы в ПС не отвечаю! Спрашивать в темах!
  • Сообщений: 47
    • Просмотр профиля
0
« Ответ #18 : 01 Ноября, 2012, 23:36 »
да
Спасибо.
Второй вопрос: какие файлы за это отвечают?
                  

« Последнее редактирование: 01 Ноября, 2012, 23:39 от Khanif »
  • Сообщений: 2766
  • За создание крупных модов и других особо сложных проектов За регистрацию на форуме не позже декабря 2016 года и не менее 2500 постов Выдается модераторам, достигнувшим значимых успехов на своем посту
    • Просмотр профиля
0
« Ответ #19 : 02 Ноября, 2012, 18:19 »
да
Спасибо.
Второй вопрос: какие файлы за это отвечают?
                  

module_icons.py

1 + 2 + 3 + 4 + ... = ζ(-1) = -0.08(3)
1 - 1 + 1 - 1 + 1 - ... = 0.5
1 - 2 + 3 - 4 + 5 - ... = 0.25

На вопросы в ПС не отвечаю! Спрашивать в темах!
  • Сообщений: 20
    • Просмотр профиля
0
« Ответ #20 : 31 Января, 2013, 18:38 »
В какой папке это находится? Я нашел party templates есть в общей папке с модом и в языке. Но там нет ничего такого

Ничто не вечно.

СиЧЪ Total War СиЧЪ Total War
Сайт "Всадники Кальрадии" не является СМИ. Администрация не несет ответственность за высказывания и публикацию каких-либо материалов, сделанные любыми пользователями форума, в том числе посредством личных и публичных сообщений. Материалы, размещенные на ресурсе третьими лицами, могут содержать информацию, не предназначенную для лиц, не достигнувших совершеннолетия. При обнаружении на ресурсе материалов, нарушающих законодательство Российской Федерации, необходимо обращаться к администрации.
Сайт работает на быстром VPS/VDS хостинге от FASTVPS


Powered by SMF 2.0 | SMF © Simple Machines LLC