Тема: Общие вопросы по модостроению  (Прочитано 945035 раз)

Ответ #2875 21 Августа, 2014, 14:01
0
    Janycz спасибо!
Для того что бы удалить из игры деревни:
 1) Перенёс все деревни и город "zendar" в нижний правый угол карты.
2) Отключил распределние деревень по городам и замкам в module_scripts.py с помощью "#", между строками:
#pass 1: Give one village to each castle
.....
# Towns (loop)
 3) У деревень и Zendar в module_parties.py  выставил флаг pf_disabled.

Что имеем по игре:
В начале игры из невидимых на карте деревень бегут саранидские крестьяне в саранидские города Durquba, Bariyye и обратно.
Затем постепенно они заменяются на крестьян нейтральной фракции, то есть как я понял,  фракции игрока.
И в конце второй недели игры деревни начинают приносить игроку доход.
Причём нейтральные крестьяне продолжают бегать в Durquba и Bariyye, но не ходят в "zendar".

Собственно вопрос где нужно докрутить:
1) Что бы исчезли крестьяне. Не стали невидимые а именно перестали выходить из деревень.
2) Что бы игроку перестал приходить доход с деревень       
« Последнее редактирование: 21 Августа, 2014, 14:10 от world_silmarillion@bk.ru »
Ответ #2876 21 Августа, 2014, 15:43
0
Чтоб фермеры не появлялись на гл. карте, надо в module_simple_triggers найти строку:
# Spawn village farmer parties
и отключить, следующий за ней, триггер полностью.

А чтоб с деревень не шёл доход игроку, можно попробовать в module_presentations все строки:
(try_for_range, ":center_no", centers_begin, centers_end),
заменить на:
(try_for_range, ":center_no", walled_centers_begin, walled_centers_end),

Или же задать фракции "neutral" какого-нибудь лидера из нерабочих трупсов (или добавить своего):
Например, в скрипте "game_start" добавить
(faction_set_slot, "fac_neutral", slot_faction_leader,"trp_looter_leader"),
Ответ #2877 28 Августа, 2014, 20:30
0
Доброго времени суток! Как и где можно изменить стоимость солдат (хускарлов, сержантов и прочих ветеранов)?
Ответ #2878 29 Августа, 2014, 03:22
+1
скрипты
game_get_troop_wage - рассчёт зарплаты отряду,
game_get_join_cost - стоимость найма,
game_get_upgrade_cost - стоимость повышения,
game_get_prisoner_price - стоимость продажи в рабство (нехорошо товарищи - очень нехорошо).
Ответ #2879 29 Августа, 2014, 10:45
0
Цитировать (выделенное)
бы новый вид воск чтоб в деревне нанимать.
Надо в module_scripts поменять некоторые строки,а лучше посмотори "Создание фракции для одиночной игры"
Ответ #2880 29 Августа, 2014, 14:02
0
Как создать новую фракцию в НВ? facepalm
Ответ #2881 29 Августа, 2014, 18:25
0
GROZA, http://rusmnb.ru/index.php?topic=11642.0
Действовать необходимо по аналогии. Если разбираться лень, сразу предупреждаю, что заваливать тучей вопросов форум НЕ НАДО. Вы и так уже метите в кандидаты на бан.
Ответ #2882 29 Августа, 2014, 18:59
0
Дикий-дикий повар, а где, чем и как править скрипты? Я не понял совсем, о чем речь
Ответ #2883 30 Августа, 2014, 03:04
+1
Где? - В папке нужного модуля (мода) смотрите файлик, который так и называется - scripts.txt.
Чем? - можно напрямую редактировать scripts.txt любым текстовым редактором (правда, это не очень удобно), можно при помощи модульной системы мода, вроде бы есть ещё какие-то программы для редактирования этих кодов, но я не интересовался.
Как? - возрадуйтесь, ибо здесь вы можете проявить фантазию.
В уже приведённых скриптах для всех troops общий расчёт и ежели хотите изменить стоимость некоторых из них - просто пропишите для них исключения.
Как? - почитайте инструкции и уроки
Программки можете посмотреть в инструментарии
Ответ #2884 30 Августа, 2014, 20:55
0
   FinGall спасибо!
   День добрый!
Будьте добры, подскажите где посмотреть в каких городах и замках при осадах используются лестницы а в каких осадные башни?
Ответ #2885 30 Августа, 2014, 21:10
0
Будьте добры, подскажите где посмотреть в каких городах и замках при осадах используются лестницы а в каких осадные башни?
В скрипте game_start:
# Set which castles need to be attacked with siege towers.
      (party_set_slot,"p_town_13", slot_center_siege_with_belfry, 1),
      (party_set_slot,"p_town_16", slot_center_siege_with_belfry, 1),

      (party_set_slot,"p_castle_1", slot_center_siege_with_belfry, 1),
      (party_set_slot,"p_castle_2", slot_center_siege_with_belfry, 1),
      (party_set_slot,"p_castle_4", slot_center_siege_with_belfry, 1),
      (party_set_slot,"p_castle_7", slot_center_siege_with_belfry, 1),
      (party_set_slot,"p_castle_8", slot_center_siege_with_belfry, 1),
      (party_set_slot,"p_castle_9", slot_center_siege_with_belfry, 1),
      (party_set_slot,"p_castle_11", slot_center_siege_with_belfry, 1),
      (party_set_slot,"p_castle_13", slot_center_siege_with_belfry, 1),
      (party_set_slot,"p_castle_21", slot_center_siege_with_belfry, 1),
      (party_set_slot,"p_castle_25", slot_center_siege_with_belfry, 1),
      (party_set_slot,"p_castle_34", slot_center_siege_with_belfry, 1),
      (party_set_slot,"p_castle_35", slot_center_siege_with_belfry, 1),
      (party_set_slot,"p_castle_38", slot_center_siege_with_belfry, 1),
      (party_set_slot,"p_castle_40", slot_center_siege_with_belfry, 1),
      (party_set_slot,"p_castle_41", slot_center_siege_with_belfry, 1),
      (party_set_slot,"p_castle_42", slot_center_siege_with_belfry, 1),
      (party_set_slot,"p_castle_43", slot_center_siege_with_belfry, 1),
Скрипт пояснять не буду, поскольку тут все очевидно.
Ответ #2886 01 Сентября, 2014, 19:51
0
Дикий-дикий повар, большое спасибо за помощь!
Ответ #2887 04 Сентября, 2014, 12:13
0
Первый, весьма интересный вопрос.

Можно ли каким-то образом добавить при атаке еще один пункт "Атаковать самому"? Т.е. ввязатся в драку без войска. За ответы заранее спасибо.
Можно, но не так просто, как кажется.
1. Добавить этот пункт в нескольких меню:
join_battle - меню стандартной битвы, дающее выбор: атаковать, послать в бой войска, отступить.
castle_besiege - меню осады, выбор: повести войска на штурм, послать войска на штурм, подождать, оступить.
Также в других меню, зависит от задумки.
2. Работа с шаблонами миссий (mission templates). Вносить правки в уже существующие шаблоны, такие как:
mt_lead_charge - шаблон стандартной рандомной битвы
mt_castle_attack_walls_defenders_sally - битва у стен крепости с защитниками (защитники делают вылазку.)
mt_castle_attack_walls_belfry - сценарий боя у стен с осадной башней.
mt_castle_attack_walls_ladder - сценарий боя у стен с лестницей.
mt_besiege_inner_battle_town_center - битва в центре двора крепости.
mt_besiege_inner_battle_castle - битва внутри замка.
mt_village_attack_bandits - бой против бандитов за деревню.
mt_village_raid - Разграбление деревни (бой с крестьянами).
Если нет желания править стандартные шаблоны миссий, то можно создать свои. Так безопаснее, но очень разрастется код.
Проще всего реализовать через глобальную переменную. В начальном блоке операций меню определить эту переменную в нулевое значение. Затем в созданном пункте меню эта переменная устанавливается в ненулевое значение, далее в тех шаблонах, где необходимо найти триггеры, отвечающие за появление подкреплений и добавить в их блоки условий проверку этой переменной. Если 0 то вызываем дружественные подкрепления, иначе нет.
Я описал процесс лишь в общих чертах, дал общие подсказки. Конкретная реализация зависит от конкретной задумки.
 

Добавлено: 04 Сентября, 2014, 12:37

Все поборол python'а!!! Установка несколько отличается для Vista x64 от описанной в инструкции. Дело в том что в Vista (по крайней мере у меня),нет системной переменной PATH - есть path и как я понял это не одно и тоже,т.е. PATH надо создать и туды уже прописать C:\python26 . Ну щас дальше faq освою уже по самой модульной системе и вперед!
Необязательно править системную переменную PATH. Можно просто поправить bat-файл модульной системы, заменив команду 'python' на путь к исполняемому модулю питона. (У меня, например, вместо python process_init.py... написано C:\Python26\python.exe process_init.py...).

 

Добавлено: 04 Сентября, 2014, 13:02

1) Как правильно убрать через модульную систему все деревни? Не вызовет ли это каких либо сбоев в игре?
Убрать все деревни можно без сбоев. Но для этого придется конкретно перелопатить модульную систему. Во-первых в script_game_start происходит привязка деревень к крепостям и городам. (ищите комментарий '# fill_village_bound_centers').
Эту привязку нужно убрать. Затем искать по модульной системе конкретные ID деревень а также конструкции циклов и условий(try_for_range) и (is_between) по диапазонам деревень(villages_begin, villages_end), диапазонам крепостей(castles_begin, castles_end) и диапазонам городов(towns_begin, towns_end) и отключить весь код, касающийся деревень. Это довольно долгий процесс.
« Последнее редактирование: 04 Сентября, 2014, 13:02 от ziff21 »
Ответ #2888 06 Сентября, 2014, 21:40
0
как сделать проверку на дату?Например сейчас 100 век и если век будет 101 то выполняеться скрипт или открываеться окно?
 

Добавлено: 06 Сентября, 2014, 21:56

некто не знает( :(
« Последнее редактирование: 06 Сентября, 2014, 21:56 от Warband|King Yaroglek »
Ответ #2889 07 Сентября, 2014, 11:21
0
Есть такие функции, как:
(store_current_hours,<destination>),
(store_time_of_day,<destination>),
(store_current_day,<destination>),
(is_currently_night), - думаю пояснять не надо.
А ежели нужны рассчёты на дату, то посмотрите скрипт game_get_date_text, его результаты направьте в какие-нибудь слоты, регистры или глобальные переменные и пользуйтесь когда и где угодно, здесь же можно изменить стартовую дату.
Вам стоило просмотреть header_operations, кроме того в инструкциях и уроках присутствует тема где пояснены многие функции, также хочу посоветовать покопаться в скриптах, чтобы иметь представление о "мироздании". И незачем было так сыпать темами.
« Последнее редактирование: 07 Сентября, 2014, 11:24 от Дикий-дикий повар »
Ответ #2890 07 Сентября, 2014, 14:10
0
спасибо)А можно поподробнее?
 

Добавлено: 07 Сентября, 2014, 14:12

и тоесть game_get_date_text это и есть проверочка на время?
 

Добавлено: 07 Сентября, 2014, 14:29

Здравствуйте,а если я пишу триггерс то можно так зафигарить?
(0.1, 0, ti_once, [(assign, ":cur_year", 1000)], [(tutorial_box,"str_tutorial_map1")]),#проверка на лет 1000,будет высвечино окно с туториалом
« Последнее редактирование: 07 Сентября, 2014, 14:29 от Warband|King Yaroglek »
Ответ #2891 07 Сентября, 2014, 15:00
0
(assign, ":cur_year", 1000) - создаёт локальную переменную (т. е. существующую только в этом блоке []) ":cur_year" и устанавливает её значение в 1000 (то бишь это не условие). Ежели стартовая дата не будет варьироваться, то не понятно зачем это проверять, т. к. триггер одноразовый (ti_once).
А что объяснить поподробнее? Красноречие у меня инвалидское, но не до такой же степени. Прочтите в этой теме сообщение от HunterWolf: http://rusmnb.ru/index.php?topic=14396.0 как я понял вам это надо.
game_get_date_text вызывается движком (об этом говорит префикс game_) на глобалке каждый час, так что свежие данные от него обеспечены.
« Последнее редактирование: 07 Сентября, 2014, 15:11 от Дикий-дикий повар »
Ответ #2892 07 Сентября, 2014, 15:39
0
ого,сейчас посмотрю)Я просто ходел мод разделить по нескольким векам(каменный,юронзовый и т.д) и для меня нужна была проверка на время)
Ответ #2893 09 Сентября, 2014, 17:14
0
где записаны родственные связи? я по именам искал не где не нашел
Ответ #2894 09 Сентября, 2014, 20:18
0
где записаны родственные связи? я по именам искал не где не нашел
В module_scripts в скрипте "initialize_aristocracy".
Ответ #2895 09 Сентября, 2014, 20:32
0
В module_scripts в скрипте "initialize_aristocracy".
посмотрим Спасибо
Ответ #2896 10 Сентября, 2014, 10:16
0
Как можно изменить характеристики компаньонов (нпс), а конкретней его культурную принадлежность, чтобы к примеру он вместо нордов, вегитров и.т.д набирал свадийскую армию?
Ответ #2897 10 Сентября, 2014, 16:28
0
в module_troops найди npc_1 или свой ид :thumbup:
Ответ #2898 10 Сентября, 2014, 21:03
0
сделал новую деревню, на свадийской земле, точнее скопировал свадийскую "Немейя" дал другой номер и имя, приписал к городу-
      (party_set_slot, "p_village_145", slot_village_bound_center, "p_town_6"),
      (store_faction_of_party, ":town_faction", "p_town_6"),
      (call_script, "script_give_center_to_faction_aux", "p_village_145", ":town_faction"),
вхожу в игру и иконка деревни на карте "пустынная" , вхожу в меню деревни и узнаю что "деревня процветает в оазисе много пальм", так же что деревня не имеет хозяина
нанять добровольцев-нанимаются свады, сцена деревни все в порядке как и Немейя
И город к которому приписана эта деревня не имеет в списке деревень этой.

Вот что это за фокусы?
Ответ #2899 13 Сентября, 2014, 14:47
0
Как добавить в меню пункты?И как это связать с скриптом?

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

Теги: