Теги:

Автор Тема: [MS] Вторая часть. Модульная система, файлы map_icons и parties .  (Прочитано 58966 раз)

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

   Вторая часть.
Как было отмеченно в предыдущей главе, ваша работа с модульной системой заключается в:
  1) Редактировании одного или более module-файлов (которые начинаются с “module_ ...“ и заканчиваются с  “.py”) и вносить в них любые изменения на ваш вкус. (Обычно, вам нужно щелкнуть правой кнопкой мышки и выбрать Edit with IDLE/редактировать с IDLE чтобы сделать это).
  2) Затем, дважды щелкнуть на файле build_module.bat в папке где расположена модульная система. Это действие позволит сконструировать ваш модуль (и доложит об ошибках, если они есть).
  3) Если ошибок не отмечено, вы можете загрузить ваш модуль с помощью загрузчика Mount&Blade и проверить измения, которые вы сделали. Иногда вам будет необходимо начать новую игру,  для того чтобы изменения возымели эффект.

2.1 Редактирование module-файлов.

Модульная система использует python-овские списки (прим: по-простому - это блоки данных; для более продвинутых - список это составной тип данных, в конкретном случае составными элементами для него послужит тип данных определямый как запись). Python-овские списки начинаются  с квадратных скобок, внутри скобок находится список объектов, отделенных друг от друга запятыми, и заканчиваются они (списки) закрытием квадратных скобок. Если вы откроете и посмотрите любой module-файл, вы увидете, что он состоит из подобных списков. Для примера, файл module_map_icons.py (он описывает значки на глобальной карте) включает:

map_icons = [
  ("player",0,"player", 0.2, snd_footstep_grass),
  ("player_horseman",0,"player_horseman", 0.2, snd_gallop),
  ("gray_knight",0,"knight_a", 0.2, snd_gallop),
  ("vaegir_knight",0,"knight_b", 0.2, snd_gallop),
  ("peasant",0,"peasant_a", 0.2,snd_footstep_grass),
  ("khergit",0,"khergit_horseman", 0.2,snd_gallop),
  ("axeman",0,"bandit_a", 0.2,snd_footstep_grass),
  ("woman",0,"woman_a", 0.2,snd_footstep_grass),
  ("town",mcn_no_shadow,"City", 0.9,snd_footstep_grass),
]


Описанный выше список, с именем  map_icons , является обычным python-овским списком и каждый его элемент это значок на карте. Разберем первый объект в списке - (“player”,0,'player”,0.2,snd_footstep_grass) . В дальнейшем мы будем определять тип таких объектов как “запись” (прим: в английском руководстве "tuple").  (прим. 2:  запись/tuple это объект, состоящий из нескольких элементов. Эти элементы могут быть разных типов). Записи, как и списки, включают в себя элементы отделённые запятой, но в отличе от списков, они заключены в круглые скобки. Структура каждого объекта типа  “запись” объясняется вначале module-файла и отличается от файла к файлу.

Запись каждого значка на карте содержит следущие элементы:

1) название значка, которое мы увидим на карте (набор символов)
2) метки - задаваемые условия, влияющие на отображение (это определённые параметры, о них позже)
3) название модели, которая будет отображена (должно соответствовать названию файла модели без расширения)
4) размеры модели (число; 1 соответствует 100% величине)
5) идентификатор звука - идентификатор записи, содержащей данные звукового сопровождения (должен соответствовать названию звукового файла без расширения)

Итак, первая запись это - (“player”,0,'player”,0.2,snd_footstep_grass) -
1) Название значка на карте = “player”
2) Флаги = 0
3) mesh name/название модели = “player”
4) mesh scale/масштаб = 0.2
5) индентификатор звука = snd_footstep_grass

Изучая шапку файла с описаниями и анализируя затем содержимое списков, вы можете самостоятельно разложить все структуры игровых объектов в каждом из module-файлов.


2.2 Добавление новых игровых объектов

Изучив структуру записи значков на карте, мы можем приступить к добавлению наших собственных значков. Давайте посмотрим на следущий python-овский список:

map_icons = [
  ("player",0,"player", 0.2, snd_footstep_grass),
  ("player_horseman",0,"player_horseman", 0.2, snd_gallop),
  ("gray_knight",0,"knight_a", 0.2, snd_gallop),
  ("vaegir_knight",0,"knight_b", 0.2, snd_gallop),
  ("peasant",0,"peasant_a", 0.2,snd_footstep_grass),
  ("khergit",0,"khergit_horseman", 0.2,snd_gallop),
  ("axeman",0,"bandit_a", 0.2,snd_footstep_grass),
  ("woman",0,"woman_a", 0.2,snd_footstep_grass),
  ("town",mcn_no_shadow,"City", 0.9,snd_footstep_grass),
]


Новый игровой объект в любом module-файле должен быть добавлен внутрь списка. Как мы видим, список в module_map_icons заканчивается сразу после ("town",mcn_no_shadow,"City", 0.9,snd_footstep_grass). Давайте освободим место под наш новый значок, для этого мы должны сдвинуть квадратную скобку “]” на одну строку ниже.

Теперь мы можем добавить в освободившееся место наш новый объект. Простейший способ сделать это – скопировать и вставить предыдущюю запись, а затем отредактировать ее содержимое. Для примера:

map_icons = [
  ("player",0,"player", 0.2, snd_footstep_grass),
  ("player_horseman",0,"player_horseman", 0.2, snd_gallop),
  ("gray_knight",0,"knight_a", 0.2, snd_gallop),
  ("vaegir_knight",0,"knight_b", 0.2, snd_gallop),
  ("peasant",0,"peasant_a", 0.2,snd_footstep_grass),
  ("khergit",0,"khergit_horseman", 0.2,snd_gallop),
  ("axeman",0,"bandit_a", 0.2,snd_footstep_grass),
  ("woman",0,"woman_a", 0.2,snd_footstep_grass),
  ("town",mcn_no_shadow,"City", 0.9,snd_footstep_grass),
  (
"new_icon",mcn_no_shadow,"City", 0.9,snd_footstep_grass),
]


В этом примере, мы скопировали ("town",mcn_no_shadow,"City", 0.9,snd_footstep_grass) и задали новое название для нашего значка на карте; "new_icon". У этого объекта есть метка-флаг. Метки указывают на дополнительные свойства объекта, (каждое свойство имеет соответствующюю метку-переключатель и может быть “включенно” или  “выключенно”  при помощи добавления или удаления такой метки). В нашем примере метка mcn_no_shadow на новом объекте указывает, что он не отбрасывает тени на землю.

Удалим метку mcn_no_shadow с нашего нового значка. Для этого заменим метку mcn_no_shadow на 0. Это скажет модульной системе, что меток для данного объекта нет.

map_icons = [
  ("player",0,"player", 0.2, snd_footstep_grass),
  ("player_horseman",0,"player_horseman", 0.2, snd_gallop),
  ("gray_knight",0,"knight_a", 0.2, snd_gallop),
  ("vaegir_knight",0,"knight_b", 0.2, snd_gallop),
  ("peasant",0,"peasant_a", 0.2,snd_footstep_grass),
  ("khergit",0,"khergit_horseman", 0.2,snd_gallop),
  ("axeman",0,"bandit_a", 0.2,snd_footstep_grass),
  ("woman",0,"woman_a", 0.2,snd_footstep_grass),
  ("town",mcn_no_shadow,"City", 0.9,snd_footstep_grass),
  ("new_icon",
0,"City", 0.9,snd_footstep_grass),
]


Оба значка - “town” и “new_icon” - используют меш/модель “City”, это значит что оба используют одну и ту же 3D модель “City” в resource-файлах игры. Изменяя этот элемент мы можем сменить графическое отображение значка на любую 3D модель из resourse-файлов.

Т.к. оба значка используют одну и ту же 3D модель, то наш новый значок "new_icon" будет выглядеть в точности как значок "town".

Давайте попробуем задать нашему значку немного отличный от "town" облик.

map_icons = [
  ("player",0,"player", 0.2, snd_footstep_grass),
  ("player_horseman",0,"player_horseman", 0.2, snd_gallop),
  ("gray_knight",0,"knight_a", 0.2, snd_gallop),
  ("vaegir_knight",0,"knight_b", 0.2, snd_gallop),
  ("peasant",0,"peasant_a", 0.2,snd_footstep_grass),
  ("khergit",0,"khergit_horseman", 0.2,snd_gallop),
  ("axeman",0,"bandit_a", 0.2,snd_footstep_grass),
  ("woman",0,"woman_a", 0.2,snd_footstep_grass),
  ("town",mcn_no_shadow,"City", 0.9,snd_footstep_grass),
  ("new_icon",0,"City",
5.0,snd_footstep_grass),
]


В этом примере мы изменили масштаб значка с 0.9 до 5.0. Это значит, что значок будет отображен в пять раз крупнее обычного. Это поможет нам отличить наш значок от обычного значка “town", когда мы добавим его в игру.

Далее мы создадим новый отряд (party) в файле module_parties.py  (прим: все объекты на игровой карте ислючая ландшафт являются “отрядами”), который будет использовать наш значок на карте. Чтобы сделать это, нам необходимо “сослаться” на созданный нами значок из файла module_parties.py.


2.3 Ссылки на игровые объекты

Откройте файл module_parties.py в папке с модульной системой. Нам предстоит разобрать другой python-овский список – parties = [.

Файл module_parties.py

Как видим, структура записей в module_parties.py отличается от module_icons.py. Впрочем как и многие - если не все - другие "module_" файлы. Пока есть возможность, изучим структуру этого.

В начале файла идёт расшифровка записи партий на английском.


 Далее идёт описание флагов:

...
no_menu = 0
#pf_town = pf_is_static|pf_always_visible|pf_hide_defenders|pf_show_faction
pf_town = pf_is_static|pf_always_visible|pf_show_faction|pf_label_large
pf_castle = pf_is_static|pf_always_visible|pf_show_faction|pf_label_medium
pf_village = pf_is_static|pf_always_visible|pf_hide_defenders|pf_label_small
...


 Поговорим подробнее о Флагах:

 Флаги:

 pf_town
 pf_castle
 pf_village 

 В свою очередь содержат в себе несколько других флагов

 pf_is_static
 pf_always_visible
 pf_show_faction
 pf_hide_defenders
 pf_label_large
 pf_label_medium
 pf_label_small


 Насколько понимаю можно создать свой флаг и прописать ему нужные флаги, например как в module_parties.py из MS от TLD:

...
no_menu = 0
pf_tld_down  = pf_is_static|pf_always_visible|pf_show_faction|pf_label_large
...


 Таким образом например запись

...
  ("town_1","Sargoth",  icon_town|pf_town, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(-17.6, 79.7),[], 170),
...

 Реально выглядит

...
  ("town_1","Sargoth",  icon_town|pf_is_static|pf_always_visible|pf_show_faction|pf_label_large, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(-17.6, 79.7),[], 170),
...

 Увидеть это можно сравнив флаги города Zendar с другими городами

...
  ("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),[]),

  ("town_1","Sargoth",  icon_town|pf_town, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(-17.6, 79.7),[], 170),
...
  ("castle_1","Culmarr_Castle",icon_castle_a|pf_castle, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(-101.3, -21),[],50),
...
  ("village_1", "Yaragar",  icon_village_a|pf_village, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(-60, -9.5),[], 100),
...



 Рассмотрим свойства флагов

 Флаги разделяются между собой  |


 pf_disabled  -  исключает партию из игрового процесса

 pf_is_static  -  делает партию статичной на глобальной карте

 pf_always_visible  -  если убрать этот флаг, то объект будет виден на глобальной карте только при приближении игрока. Растояние видимости зависит от навыка ГГ - spotting , и от параметра seeing_range = 6.5(по умолчанию) который прописан в module.ini(находится...Warband\Modules\название мода)

 pf_show_faction  -  не могу точно сказать, как я понял от его наличия зависит возможность захватить замок или город

 pf_hide_defenders  -  не могу точно сказать, как я понял он противоположность к pf_show_faction его наличие отменяет возможность захватить замок или город

 pf_label_large, pf_label_medium, pf_label_small - по логике задают размер иконки, но на практике при присвоении иконки города(icon_town) - замку, уменьшения иконки не наблюдалось.



 Пару слов о "Повороте партии в градусах"

...
  ("town_1","Sargoth",  icon_town|pf_town, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(-17.6, 79.7),[], 170),
...

 Поворот партии в градусах изменяется от 0 до 360 (360=0, то есть фактически от 0 до 359 градусов), против часовой стрелки, при нуле ворота города смотрят на юг карты. Отсутсвие параметра в свойствах партии говорит о том, что он равен 0(как например у Zendar).

...
  ("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),[]),
...

Пример записи отряда:

("zendar","Zendar",icon_town|pf_is_static|pf_always_visible|pf_hide_defenders, "zendar", pt_none, fac_neutral,0,ai_bhvr_hold,0,(2,46),[(trp_swadian_knight,6,0)]),

Эта запись определяет местонахождение города Zendar на карте. Свойства объекта Zendar описываются в соответствующих полях – довольно похожие на те, что мы успели разобрать в файле module_icons.py.

Итак:

1) Идентификатор отряда. Служит для обращения к объекту из разных частей файла и из других файлов вообще.
2) Имя отряда. Это имя будет отображенно как название объекта в игре. Может быть отлично от индентификатора отряда, если пожелаете.
3) Метки отряда. Первая метка для каждого отряда (их может быть несколько, отделяются друг от друга значком “|”) должна указывать на значок, используемый при отображении отряда на карте.
4) Меню. Это поле устарело и с версии M&B 0.730 больше не используется.
5) Шаблон отряда. Индентификатор (ID) шаблона, к которому описываемый отряд принадлежит. Используйте метку “pt_none”, как значение по умолчанию.
6) Фракция отряда. Может иметь любое значение входящее в файл module_factions.py.
7) Характеристики отряда. Для объяснения значения Personality/характеристика смотри и разбирай записи из файла header_parties.py.
8) Поведение ИИ (искуственный интелект). Определяет как ИИ отряд будет действовать на глобальной карте.
9) Группы-цели для ИИ. Определяет цели для ИИ.
10) Инициализация координат. Определяет стартовое положение отряда на карте; X,Y.
       11.1) Идентификатор войска. Любое значение (как регулярные войска, так и герои) из файла module_troops.py.
       11.2) Число войск в описываемом стеке/отряде; не варьируется. То колличество, что введете, то и будет. (прим: имеетсе ввиду, что нельзя задать количество войск, определяющееся из заданного интервала, скажем: ..., (свадийские рыцари, от50..до60),...)
       11.3) Метки войска. Опционально, т.е. необязательно к заполнению. Используйте метку pmf_is_prisoner если хотите отметить, что заявленный стек – заключенный.

Рассмотрим запись объекта Zendar:
 
("zendar","Zendar",icon_town|pf_is_static|pf_always_visible|pf_hide_defenders, "zendar", pt_none, fac_neutral,0,ai_bhvr_hold,0,(2,46),[(trp_swadian_knight,6,0)]),

1) Идентификатор отряда = “zendar"
2) Имя отряда = “Zendar”
3) Метки = icon_town|pf_is_static|pf_always_visible|pf_hide_defenders
4) Меню = "zendar"
5) Шаблон отряда = pt_none
6) Фракция отряда = fac_neutral
7) Характеристики отряда = 0
8) Поведение ИИ = ai_bhvr_hold
9) Отряды-цели ИИ = 0
10) Координаты отряда на глобальной карте = (2,46)
11) Список войск
       11.1) Индентификатор = trp_swadian_knight
       11.2) Число войск в этом стеке = 6
       11.3) Метки войск = 0

Рассматривая поле (3), мы можем заметить, что Zendar ссылается на значок  “town”  из файла module_icons.py, добавляя перед его именем префикс icon_. Этот префикс указывает системе на соответствующий module-файл, где описан данный объект. Для того, чтобы сослаться на файл module_icons.py мы будем использовать префикс icon_; для того, чтобы сослаться на module_factions.py мы будем использовать префикс fac_ ; для ссылки на module_parties.py префикс p_; и так далее. В конце статьи вы найдете список префиксов для каждого module-файла.

Теперь, когда мы знаем как "устроены" отряды, мы можем добавить свой. Но перед этим, стоит отметить следущее: в файле module_parties.py, как и в некоторых других module-файлах, не следует добавлять ваш новый объект в конец списка. Внутри самого файла вы даже найдёте предупреждение об этом. Добавление записи в неправильном месте может дизорганизовать работу кода игры. В файле module_parties.py, рекомендуется добавлять ваш новый объект в список parties между строками "training_ground"  и "castle_1".

Теперь, скопируем и вставим в место оговоренное выше строку начинающуюся как: ("town_14" ... 

  ("training_ground","Training Ground",  icon_town|pf_town|pf_disabled, "training_ground", pt_none, fac_vaegirs,0,ai_bhvr_hold,0,(-2,-3),[(trp_vaegir_knight,6,0)]),

  ("new_town","Mod_Town",  icon_town|pf_town, "town", pt_none, fac_vaegirs,0,ai_bhvr_hold,0,(-4,-37),[(trp_vaegir_knight,6,0)]),

  ("castle_1","Culmarr_Castle",icon_town|pf_is_static|pf_always_visible, "castle", pt_none, fac_outlaws,0,ai_bhvr_hold,0,(-47,-51),[(trp_swadian_knight,5,0),(trp_swadian_crossbowman,25,0)]),

В этом примере мы изменили идентификатор новой группы с “town_14” на “new_town”, и название группы с “Halmar” на “Mod_Town”.

Глядя на запись, можно установить следующее:.

1) Ссылаясь на этот отряд из другого файла, мы должны использовать идентификатор "new_town" с префиксом "p_". Суммируя, получаем "p_new_town" .
2) В игре мы будем видеть имя объекта только как "Mod Town" и никогда не увидим идентификатор.
3) Этот отряд использует icon_town (объект town из файла icons_modules.py) и метку pf_town – метку, она добавляет общие свойства города. С полем меток мы ещё поэкспериментируем.
4) Mod Town принадлежит королевству Вегир.
5) Если мы добавим наш город в игру, его местонахождение будет идентично координатам города Halmar. Это мы тоже изменим в дальнейшем.

  ("training_ground","Training Ground",  icon_town|pf_town|pf_disabled, "training_ground", pt_none, fac_vaegirs,0,ai_bhvr_hold,0,(-2,-3),[(trp_vaegir_knight,6,0)]),

  ("new_town","Mod_Town",  icon_new_icon|pf_town, "town", pt_none, fac_neutral,0,ai_bhvr_hold,0,(-1,-1),[(trp_vaegir_knight,6,0)]),

  ("castle_1","Culmarr_Castle",icon_town|pf_is_static|pf_always_visible, "castle", pt_none, fac_outlaws,0,ai_bhvr_hold,0,(-47,-51),[(trp_swadian_knight,5,0),(trp_swadian_crossbowman,25,0)]),

Мы поменяли значок нашего города на значок icon_new_icon, вставив вместо метки icon_town метку icon_new_icon. (прим. для несообразительных: префикс icon_ + название значка на карте;  icon_ +  new_icon =  icon_new_icon). А также, мы изменили координаты местоположения объекта на карте на (-1,-1) и изменили фракцию города на fac_neutral.

Город теперь использует наш значок при отображении на экран и обладает собственным местоположением на карте. И все это без особых проблемых. Побробуйте это сделать сами.

Сохраните ваш прогресс, а затем два раза щелкните на build_module.bat. И если все прошло хорошо, вы можете запустить ваш мод и увидеть новый город в центре карты.

Если все не прошло хорошо, внимательно проверьте синтаксические ошибки. Неправильно, в разных местах по разному, указаны свои же названия,  запятые и скобки не на своих местах. Плохой синтаксис наиболее распространенная причина всех ошибок. Не забывайте пробелы в начале записей, а также что надо ставить не кавычки на русской раскладке по shift+2, а двойной апостроф по shift+э на английской.

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

Как вы можете видеть, взаимосвязь различных файлов модульной системы может быть внешней. Каждая часть работы должна быть сделана в соответсвующем module-файле.


fac_   -- module_factions.py
icon_   -- module_map_icons.py
itm_   -- module_items.py
mnu_   -- module_game_menus.py
mno_   -- module_game_menus.py -- References an individual menu option in module_game_menus.
mt_   -- module_mission_templates.py
psys_   -- module_particle_systems.py
p_      -- module_parties.py
pt_   -- module_party_templates.py
qst_   -- module_quests.py
script_   -- module_scripts.py
scn_   -- module_scenes.py
spr_   -- module_scene_props.py
str_   -- module_strings.py
trp_   -- module_troops.py


Теперь, когда мы покрепче схватили базовые знания, можем перейти к более глубокому изучению module-файлов. Открывайте 3 часть.
« Последнее редактирование: 17 Мая, 2015, 12:30 от Janycz »

У меня чуток не сходится :( хотя делаю все как инструкции :-\, а этот город не появляется :(  :( кто знает подскажите.....буду очень признателен

У меня тоже не сходится. Тут написано так
map_icons = [
  ("player",0,"player", 0.2, snd_footstep_grass),
  ("player_horseman",0,"player_horseman", 0.2, snd_gallop),
  ("gray_knight",0,"knight_a", 0.2, snd_gallop),
  ("vaegir_knight",0,"knight_b", 0.2, snd_gallop),
  ("peasant",0,"peasant_a", 0.2,snd_footstep_grass),
  ("khergit",0,"khergit_horseman", 0.2,snd_gallop),
  ("axeman",0,"bandit_a", 0.2,snd_footstep_grass),
  ("woman",0,"woman_a", 0.2,snd_footstep_grass),
  ("town",mcn_no_shadow,"City", 0.9,snd_footstep_grass),
]
а у меня
map_icons = [
  ("player",0,"player", avatar_scale, snd_footstep_grass, 0.15, 0.173, 0),
  ("player_horseman",0,"player_horseman", avatar_scale, snd_gallop, 0.15, 0.173, 0),
  ("gray_knight",0,"knight_a", avatar_scale, snd_gallop, 0.15, 0.173, 0),
  ("vaegir_knight",0,"knight_b", avatar_scale, snd_gallop, 0.15, 0.173, 0),
  ("flagbearer_a",0,"flagbearer_a", avatar_scale, snd_gallop, 0.15, 0.173, 0),
  ("flagbearer_b",0,"flagbearer_b", avatar_scale, snd_gallop, 0.15, 0.173, 0),
  ("peasant",0,"peasant_a", avatar_scale,snd_footstep_grass, 0.15, 0.173, 0),
  ("khergit",0,"khergit_horseman", avatar_scale,snd_gallop, 0.15, 0.173, 0),
  ("khergit_horseman_b",0,"khergit_horseman_b", avatar_scale,snd_gallop, 0.15, 0.173, 0),
  ("axeman",0,"bandit_a", avatar_scale,snd_footstep_grass, 0.15, 0.173, 0),
  ("woman",0,"woman_a", avatar_scale,snd_footstep_grass, 0.15, 0.173, 0),
  ("woman_b",0,"woman_b", avatar_scale,snd_footstep_grass, 0.15, 0.173, 0),
  ("town",mcn_no_shadow,"map_town_a", 0.35,0),
  ("town_steppe",mcn_no_shadow,"map_town_steppe_a", 0.35,0),
  ("village_a",mcn_no_shadow,"map_village_a", 0.45, 0),
  ("village_burnt_a",mcn_no_shadow,"map_village_burnt_a", 0.45, 0),
  ("village_deserted_a",mcn_no_shadow,"map_village_deserted_a", 0.45, 0), и т. д.
Что делать?

Людям быстрее надоедает есть, пить, танцевать и спать, чем воевать...

У меня тоже не сходится. Тут написано так


а в чем проблема? чем тебя напугал чуть более длинный список иконок?
что делать? делай, что собирался и не ссы %)
документация по мс, по-моему, описывает модульную систему версии .808
конечно, она несколько устарела, но суть та же. думаю, как и во всем, главное в этих "туториалах" - не научиться следовать алгоритму, а понять суть мс. её не поймешь уж точно, пока сам её не выпотрошишь %) наверное)))


Добавлено: 26 Января, 2010, 12:42
У меня чуток не сходится :( хотя делаю все как инструкции :-\, а этот город не появляется :(  :( кто знает подскажите.....буду очень признателен
никто кроме тебя и твоего компа, наверняка, представить себе не может, что у тебя не сходится там чуток.
если при сборке выдает ошибку - скрин в студию. если в игре ошибка - скрин в студию. если без ошибок везде, но город на карте не появляется, то смело можешь сделать всё заново, если не можешь выявить ошибку. если результат прежний - никаких ошибок, никаких городов, то опиши процесс создания. может, люди знающие, скажут, в чем проблема %)

При запуске build_module.bat - ошыбка   name error: name 'icon_new_icon'  is not defined.

не используйте эту метку,она не пропиана,напишите стандартную

Vetal509
Хотя в файле module_map_icons.py
  ("banner_124",0,"map_flag_f19", banner_scale,0),
  ("banner_125",0,"map_flag_f20", banner_scale,0),
  ("banner_126",0,"map_flag_15", banner_scale,0),
  ("towna",0,"map_flag_15", banner_scale,0),
]

Иконка прописана.

После где-то 3-х часов аццкого брейн фака было выяснено что модульная система попросту ... невсегда обновляет id_*.py
Если получили такую ошибку то сначала проверяйте файл индексов соответвующий:

icon_banner_121 = 159
icon_banner_122 = 160
icon_banner_123 = 161
icon_banner_124 = 162
icon_banner_125 = 163
icon_banner_126 = 164

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

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

Добавлено: 14 Марта, 2010, 21:12
icon_banner_121 = 159
icon_banner_122 = 160
icon_banner_123 = 161
icon_banner_124 = 162
icon_banner_125 = 163
icon_banner_126 = 164

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

а в ручную можно прописать??
« Последнее редактирование: 14 Марта, 2010, 21:12 от Vetal509 »

Vetal509, можно, но зачем если она сама добавиться спустя некоторое время...

а как сделать так, чтобы на карте иконка игрока была одинаковой, независимо от того есть ли лошадь в слоте для лошади, или нет?


еще вопрос: создал свой город на основе дирима, дал название, указал координаты местоположения, и когда нажимаю в игре в меню города "зайти в замок", попадаю в таверну, в которой друг на друге стоят несколько свадов. а когда захожу на арену, попадаю в замок, где могу наблюдать за битвой двух парней в желтом...
это можно как-нибудь поправить?
« Последнее редактирование: 26 Марта, 2010, 14:55 от бобик »

не прописал сцены,это надо делать в scenes.py, копируешь похожие строчки и всталяешь ниже

Тем, у кого ничего не выходит, в module_info, возможно, стоит прописывать путь к моду такими слэшами "/", и ставить один такой в конце, после папки с вашим модулем. У меня из-за этого ничего не выходило. Да, и начните новую игру. Все должно получиться :)

Duff
это  думаю все узнают кто прочитает главу,вот из-за этого основыные проблемы бывют
во первых не должно быть пробелов(могут быть подчёркивания),русских букв,и путь должен сожержать не больше 5 остановок)
« Последнее редактирование: 20 Апреля, 2010, 16:03 от §~Vov@~§ »

Выдаёт ошибку name error: name 'icon_new_town'  is not defined
,когда пишу стандартое название town то размер и моего и других городов увеличивается ,как сделать чтоб только мой город увеличился,и вобше почиму такую ошибку выдаёт.

у меня вообще какаято белебирда!!

map_icons = [
  ("player",0,"player", 0.2, snd_footstep_grass),
  ("player_horseman",0,"player_horseman", 0.2, snd_gallop),
  ("gray_knight",0,"knight_a", 0.2, snd_gallop),
  ("vaegir_knight",0,"knight_b", 0.2, snd_gallop),
  ("peasant",0,"peasant_a", 0.2,snd_footstep_grass),
  ("khergit",0,"khergit_horseman", 0.2,snd_gallop),
  ("axeman",0,"bandit_a", 0.2,snd_footstep_grass),
  ("woman",0,"woman_a", 0.2,snd_footstep_grass),
  ("town",mcn_no_shadow,"City", 0.9,snd_footstep_grass),




а у меня


 map_icons_file version 1
165
player 0 player 0.150000 17 0.150000 0.173000 0.000000 0

player_horseman 0 player_horseman 0.150000 111 0.150000 0.173000 0.000000 0

gray_knight 0 knight_a 0.150000 111 0.150000 0.173000 0.000000 0

vaegir_knight 0 knight_b 0.150000 111 0.150000 0.173000 0.000000 0

flagbearer_a 0 flagbearer_a 0.150000 111 0.150000 0.173000 0.000000 0

flagbearer_b 0 flagbearer_b 0.150000 111 0.150000 0.173000 0.000000 0

peasant 0 peasant_a 0.150000 17 0.150000 0.173000 0.000000 0

khergit 0 khergit_horseman 0.150000 111 0.150000 0.173000 0.000000 0

khergit_horseman_b 0 khergit_horseman_b 0.150000 111 0.150000 0.173000 0.000000 0

axeman 0 bandit_a 0.150000 17 0.150000 0.173000 0.000000 0

woman 0 woman_a 0.150000 17 0.150000 0.173000 0.000000 0

woman_b 0 woman_b 0.150000 17 0.150000 0.173000 0.000000 0

town 1 map_town_a 0.350000 0 0 0 0 0

town_steppe 1 map_town_steppe_a 0.350000 0 0 0 0 0

village_a 1 map_village_a 0.450000 0 0 0 0 0

village_burnt_a 1 map_village_burnt_a 0.450000 0 0 0 0 0

village_deserted_a 1 map_village_deserted_a 0.450000 0 0 0 0 0

camp 1 camp_tent 0.130000 0 0 0 0 0

ship 1 boat_sail_on 0.230000 17 0.000000 0.050000 0.000000 0

ship_on_land 1 boat_sail_off 0.230000 0 0 0 0 0

castle_a 1 map_castle_a 0.350000 0 0 0 0 0

castle_b 1 map_castle_b 0.350000 0 0 0 0 0

castle_c 1 map_castle_c 0.350000 0 0 0 0 0

castle_d 1 map_castle_d 0.350000 0 0 0 0 0

town_snow 1 map_town_snow_a 0.350000 0 0 0 0 0

village_snow_a 1 map_village_snow_a 0.450000 0 0 0 0 0

village_snow_burnt_a 1 map_village_snow_burnt_a 0.450000 0 0 0 0 0

village_snow_deserted_a 1 map_village_snow_deserted_a 0.450000 0 0 0 0 0

castle_snow_a 1 map_castle_snow_a 0.350000 0 0 0 0 0

castle_snow_b 1 map_castle_snow_b 0.350000 0 0 0 0 0

mule 0 icon_mule 0.200000 17 0.150000 0.173000 0.000000 0

cattle 0 icon_cow 0.200000 17 0.150000 0.173000 0.000000 0

training_ground 1 training 0.350000 0 0 0 0 0

bridge_a 1 map_river_bridge_a 1.270000 0 0 0 0 0

bridge_b 1 map_river_bridge_b 0.700000 0 0 0 0 0

bridge_snow_a 1 map_river_bridge_snow_a 1.270000 0 0 0 0 0
]

кот знает в чем дело??? :cry:
Вот мне всегда было интересно, кто определяет что корм для Кошек стал вкуснее???

 Не уверен, но рискну предположить две вещи:
 1. Ты открыл не тот файл. Больше похоже на ТХТ-шник, чем на  *.py из модульки.
 2. Мануалы под МиБ, причем вроде под одну из беток, т.е на ВБ будет малость иначе.

хМайоРх, ты открыл текстовый файл. Нужно открывать файл модульной системы map_icons.py

И да, советую бросить это дело. И прятать длинные куски текста под спойлер. =\

Цитировать (выделенное)
И да, советую бросить это дело.
Нет ну зачем так? Старается ведь товарищь. А опыт - дело наживное. Очень радует тот факт, что он с модульки начал (вернее пытается начать), а то модульщиков кот наплакал :(

Ага, значит через ТХТ не открываьт!  а тогда как???

Я, просто в этом деле еще новичок!!! И не все понимаю, но первая часть модульной системы у меня прошла на ура!!!, а вот со второй, тоесть с этой частью у меня не получается!!

А зачем нужен питон 2.6 и как с ним работаьт?
« Последнее редактирование: 11 Сентября, 2010, 07:13 от хМайоРх »
Вот мне всегда было интересно, кто определяет что корм для Кошек стал вкуснее???

хМайоРх, вам сюда: http://rusmnb.ru/forum/index.php?topic=5710.0
И желательно начать с первого урока: http://rusmnb.ru/forum/index.php?topic=2940.0 а потом уже только читать об иконках и партиях.

А я уменя первй урок, получился, все работает ошибок нету!

А  Вот еще  у меня файл map_icons открывается ток через ТХТ а через питона не открывается выдает ошибку!!!

и если запустиьт MOUN and blade она будет работать а то  у меня начинается загрузка и выдает ошибку, что не может найти фал BRF!!!

« Последнее редактирование: 11 Сентября, 2010, 08:15 от хМайоРх »
Вот мне всегда было интересно, кто определяет что корм для Кошек стал вкуснее???

GreyB, ты все еще так думаешь?)

Цитировать (выделенное)
А я уменя первй урок, получился, все работает ошибок нету!
Собсно что именно работает? Файлы модульки открываются? При запуске build_module мод нормально собирается?

Цитировать (выделенное)
А  Вот еще  у меня файл map_icons открывается ток через ТХТ а через питона не открывается выдает ошибку!!!
А вы пытались открыть .txt файл с помощью питона?  Ммда, месье знает толк в извращениях!

Еще раз советую ВНИМАТЕЛЬНО прочитать первый урок по МС, особенно начиная с пункта 1.3

Цитировать (выделенное)
и если запустиьт MOUN and blade она будет работать а то  у меня начинается загрузка и выдает ошибку, что не может найти фал BRF!!!
Трогать папку Resourse и файл module.ini, не разобравшись что там и зачем нужно, крайне нежелательно. Переустановите игру.


 При запуске build_module мод нормально собирается?

да работает все нормально, так как показано в пункте 1.5, в самом конце!!!
 
А вы пытались открыть .txt файл с помощью питона?  Ммда, месье знает толк в извращениях!

а как еще открыть???

[/quote]

а что ты хотел от 13 летнего подростка и на клаве я печатаю быстро!!!!! :laught:

и я уже несколько раз прочитал урок №1 но так нечего и не понял! может я где то что то пропустил?
Вот мне всегда было интересно, кто определяет что корм для Кошек стал вкуснее???

хМайоРх, все файлы, которые нужно изменять, находятся в папке модульной системы. Текстовики вообще трогать не нужно.

Млин!!, не знаю что уже делать! >:( я уже и игру переустановил, сделал все как написано, на 2 часть модульной системы, даже не смотрел, а Игра не запускается >:( >:( В чем дело???

когда включаю игру сночала идет все нормально, но потом когда идет загрузка текстур,  останавливается,выдает ошибку и  ВЫЛЕТАЕТ!! я уже не знаю,что Делаьт! >:( >:(

И причем имменно мой мод не запускается, а обычный Native спокойно зходит!

Вот эта ошибка! http://floomby.ru/content/3hRgCYgvMk/

http://floomby.ru/content/fZfY4ityEE/ вот тут у меня все прально но может ты гдето найдеш шибку, а то я теряюсь в догатках!
« Последнее редактирование: 11 Сентября, 2010, 13:47 от хМайоРх »
Вот мне всегда было интересно, кто определяет что корм для Кошек стал вкуснее???

Теги: