Голосование

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












Оформление



Пользователей
  • Всего: 29197
  • Последний: WebMotive
Сейчас на форуме
Пользователи: 4
Гостей: 614
Всего: 618

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

Тема: [MS] Добавление вещей в мультиплеер через модульную систему  (Прочитано 14626 раз)

  • Сообщений: 7413
  • И создали они сайт... За наиболее важные для развития сайта идеи Выдается модераторам, достигнувшим значимых успехов на своем посту За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов
  • Бу!
    • Просмотр профиля
Так как это руководство по большей части для тех, кто запутался, то оформлю в виде расширенного ЧаВо. Это подразумевает что документация по модульной системе прочитана и усвоена (первые 5 частей), а тем, кто этого не сделал, настоятельно советую всё-таки пересилить лень, ибо на откровенно глупые вопросы которые там подробно разжёваны отвечать вам вряд ли будут и просто отошлют читать :)



Задачи тутора научить вас:
1. Как добавить вещь для игроков.
2. Как добавить вещь для ботов.
3. Как выставить ей цену или сделать бесплатной для определённого класса.
4. Как сделать так, чтобы эта вещь была на персонаже уже при выборе персонажа ("стандартный закуп").

Всё это мы рассмотрим на примере правки вещей у свадского арбалетчика. У него в начальном закупе нет шлема - давайте добавим ему бесплатный шлем.


Стандартный закуп свадского арбалетчика. Бесплатная экипировка. Общее начальное описание инвентаря мультиплеерных классов и что у них есть при входе в игру.

Как и любые другие, мультиплеерные классы описываются в module_troops.py. Находим запись свадского арбалетчика и смотрим.

["swadian_crossbowman_multiplayer","Swadian Crossbowman","Swadian Crossbowmen",tf_guarantee_all,0,0,fac_kingdom_1,
[itm_bolts,itm_crossbow,itm_sword_medieval_b_small,itm_tab_shield_heater_a,itm_red_shirt,itm_ankle_boots],
def_attrib_multiplayer|level(19),wpe(90,60,180,90),knows_common|knows_ironflesh_2|knows_athletics_5|knows_shield_5|knows_power_strike_2|knows_riding_1,swadian_face_young_1, swadian_face_old_2],


Синим выделено всё его имущество. Это и есть те вещи, которые будут для игрока бесплатны. Если в этом списке присутствует предмет - в игре он бесплатен.
За то, что это имущество будет на надето на арбалетчика, отвечает метка tf_guarantee_all. Она отвечает за то, что по возможности будут забиты все слоты оружия, брони и коней. Есть и другие метки, например tf_guarantee_ranged, она отвечает за то что выбранный класс точно возьмёт стрелковое/метательное оружие, а tf_guarantee_melee гарантирует что он возьмёт оружие ближнего боя. Такими метками, к слову, достигается и то, что в синглплеере разбойники одеты по-разному - у кого-то лук и стрелы, у кого-то кувалда, хотя класс один.


Где прописывается вся доступная свадскому арбалетчику экипировка.

Это описывается в module_scripts.py. Если предмет там не описан для нужного класса - предмет не появится в меню, даже если он есть в стандартном закупе.

Ниже приведён список вещей, которые свадский арбалетчик вообще сможет увидеть в меню. Важно заметить, что бесплатные (начальные) вещи там тоже должны быть, иначе они не появятся, даже если прописаны в инвентаре в module_troops.py:

#1a-Swadian Crossbowman
      (call_script, "script_multiplayer_set_item_available_for_troop", "itm_bolts", "trp_swadian_crossbowman_multiplayer"),
      (call_script, "script_multiplayer_set_item_available_for_troop", "itm_steel_bolts", "trp_swadian_crossbowman_multiplayer"),
      (call_script, "script_multiplayer_set_item_available_for_troop", "itm_crossbow", "trp_swadian_crossbowman_multiplayer"),
      (call_script, "script_multiplayer_set_item_available_for_troop", "itm_heavy_crossbow", "trp_swadian_crossbowman_multiplayer"),
      (call_script, "script_multiplayer_set_item_available_for_troop", "itm_sniper_crossbow", "trp_swadian_crossbowman_multiplayer"),
      (call_script, "script_multiplayer_set_item_available_for_troop", "itm_sword_medieval_a", "trp_swadian_crossbowman_multiplayer"),
      (call_script, "script_multiplayer_set_item_available_for_troop", "itm_sword_medieval_b", "trp_swadian_crossbowman_multiplayer"),
      (call_script, "script_multiplayer_set_item_available_for_troop", "itm_sword_medieval_b_small", "trp_swadian_crossbowman_multiplayer"),
      (call_script, "script_multiplayer_set_item_available_for_troop", "itm_tab_shield_heater_a", "trp_swadian_crossbowman_multiplayer"),
      (call_script, "script_multiplayer_set_item_available_for_troop", "itm_tab_shield_heater_b", "trp_swadian_crossbowman_multiplayer"),
      (call_script, "script_multiplayer_set_item_available_for_troop", "itm_tab_shield_heater_c", "trp_swadian_crossbowman_multiplayer"),

      (call_script, "script_multiplayer_set_item_available_for_troop", "itm_red_shirt", "trp_swadian_crossbowman_multiplayer"),
      (call_script, "script_multiplayer_set_item_available_for_troop", "itm_padded_cloth", "trp_swadian_crossbowman_multiplayer"),
      (call_script, "script_multiplayer_set_item_available_for_troop", "itm_leather_armor", "trp_swadian_crossbowman_multiplayer"),
      (call_script, "script_multiplayer_set_item_available_for_troop", "itm_haubergeon", "trp_swadian_crossbowman_multiplayer"),
      (call_script, "script_multiplayer_set_item_available_for_troop", "itm_ankle_boots", "trp_swadian_crossbowman_multiplayer"),
      (call_script, "script_multiplayer_set_item_available_for_troop", "itm_leather_boots", "trp_swadian_crossbowman_multiplayer"),
      (call_script, "script_multiplayer_set_item_available_for_troop", "itm_mail_chausses", "trp_swadian_crossbowman_multiplayer"),
      (call_script, "script_multiplayer_set_item_available_for_troop", "itm_leather_gloves", "trp_swadian_crossbowman_multiplayer"),
    
      (call_script, "script_multiplayer_set_item_available_for_troop", "itm_arming_cap", "trp_swadian_crossbowman_multiplayer"),
      (call_script, "script_multiplayer_set_item_available_for_troop", "itm_norman_helmet", "trp_swadian_crossbowman_multiplayer"),
      (call_script, "script_multiplayer_set_item_available_for_troop", "itm_helmet_with_neckguard", "trp_swadian_crossbowman_multiplayer"),
      (call_script, "script_multiplayer_set_item_available_for_troop", "itm_flat_topped_helmet", "trp_swadian_crossbowman_multiplayer"),
      (call_script, "script_multiplayer_set_item_available_for_troop", "itm_guard_helmet", "trp_swadian_crossbowman_multiplayer"),


Итак, мы видим что в доступной экипировке есть и шлемы, но они все покупаются. Далее мы сделаем бесплатным один шлем, например выделенный красным "itm_flat_topped_helmet". Но сперва необходимо разобраться с ценами на предметы.


Цена на предмет в игре.

Стоимость вещей прописывается в module_items.py в описании каждой из них. Когда у игрока накапливается достаточно денег для покупки какой-то вещи - он сможет купить эту вещь. Так, например, наш itm_flat_topped_helmet в игре мы можем купить за 203 золотой уже в начале игры.
(Примечание: На основании этой стоимости рассчитывается цена и в сингле и в мультиплеере. В сингле на цену предмета действует система наценок, в мультиплеере же всё покупается по той стоимости что выставлена в этом описании предмета.)

Но несложно заметить что у вещей, в мультиплеере бесплатных, в module_items.py цена не 0. Почему? А потому, что они прописаны в инвентарь стандартного оружия классу в module_troops.py (мы рассмотрели это выше). То есть эти вещи уже есть в мешке у арбалетчика, когда вы выбираете его в игре. Впрочем, это я итак десять раз сказал :)


Как сделать вещь бесплатной для закупа? тем, кто ещё не догадался.

Как видим, этот шлем ("itm_flat_topped_helmet") у свадского арбалетчика есть в доступной экипировке, но он не бесплатен. Чтобы сделать его бесплатным, необходимо добавить его в стандартную экипировку в module_troops:

["swadian_crossbowman_multiplayer","Swadian Crossbowman","Swadian Crossbowmen",tf_guarantee_all,0,0,fac_kingdom_1,
[itm_bolts,itm_crossbow,itm_sword_medieval_b_small,itm_tab_shield_heater_a,itm_red_shirt,itm_ankle_boots,"itm_flat_topped_helmet"],
def_attrib_multiplayer|level(19),wpe(90,60,180,90),knows_common|knows_ironflesh_2|knows_athletics_5|knows_shield_5|knows_power_strike_2|knows_riding_1,swadian_face_young_1, swadian_face_old_2],


Если надо сделать какой-то предмет не-бесплатным, нужно сделать обратное - удалить его из этой записи.


В каком слоте появится предмет и в каком порядке они выкладываются в слотах?

В module_scripts.py должна быть строка, описывающая в какой слот предмет должен быть вписан (т.е если её нет, то предмет не появится в меню закупа). Например наш шлем описывается как лёгкий шлем :

(item_set_slot, "itm_flat_topped_helmet", slot_item_multiplayer_item_class, multi_item_class_type_light_helm),

Если шлему будет прописано multi_item_class_type_gloves, то надеваться он будет всё также на голову, но появится в слоте для перчаток :)


Порядок сортировки предметов в слотах зависит от их стоимости в module_items.py - чем дальше от края экрана тем дороже предмет. Это будет действовать и на бесплатные в мультиплеере предметы: сперва идут бесплатные с сортировкой по реальной стоимости, затем покупаемые.


Экипировка у ботов.

У ботов оружие и броня прописываются отдельно, они не зависят от закупа игроков. Вооружение ботов (как и для сингла) описывается в module_troops: свадский арбалетчик-бот выглядит как swadian_crossbowman_multiplayer_ai.

Примечание: закуп ботов описывается только в module_troops, в module_scripts ничего исправлять не нужно.





Я запутался во всём вышенаписанном. Можно увидеть краткий алгоритм?

Для добавления вещи в мультиплеер нам необходимо выполнить такие шаги:

1. Описать вещь в module_items.py. Как - описано в документации.
2. В файле module_scripts.py добавить нужному классу нужной фракции эту вещь в список доступных.
3. В файле module_scripts.py описать в каком(-их) слоте(-ах) этот предмет должен появиться.

Если нужно чтобы данная вещь была доступна сразу (то есть бесплатная в начальном закупе), то нужно ещё
4. В файле module_troops.py прописать этот предмет в инвентарь соответствующему классу. Как - описано в документации (и в этом маленьком гайде).


Для удаления предмета из возможного закупа необходимо
1. Удалить или закомментировать символом "#" запись предмета в module_scripts.py (те самые строки "(item_set_slot,").




Итак, всё сделали. Сохраняем, компилируем, входим в игру и проверяем. Если всё сделали правильно, то у вас автоматически появится шлем на голове при выборе класса.

« Последнее редактирование: 15 Августа, 2011, 18:20 от Leshanae »
  • Фракция: Бандиты
"Иногда движение вперёд является следствием пинка взад."

Скромный стрим-канальчик:
http://www.hitbox.tv/benthrottle
WoT, M&B ...
  • Сообщений: 124
    • Просмотр профиля
-1
« Ответ #1 : 09 Июня, 2011, 12:12 »
Цитировать (выделенное)
Если ему будет прописан multi_item_class_type_gloves, то я честно говоря не знаю как это воспримет игра (gloves = перчатки в переводе с английского). Может он шлем на руки натянет?..
Этот шлем будет просто появлятся при выборе перчаток в меню, но одеватся он будет все равно на голову. На это влияет то, что напитано в module_items.

  • Ник в M&B: Nordwolf
  • Сообщений: 83
    • Просмотр профиля
-1
« Ответ #2 : 09 Июня, 2011, 20:41 »
помогите пожалуйста! я хочу добавить свадскому снайперу этот объект он уже есть в игре itm_strange_armor это доспехи самурая. в итемс он уже есть так как он родной!
в скрипте я уже и добавлял и заменял вот че получилось:
 #armors
      (item_set_slot, "itm_red_shirt", slot_item_multiplayer_item_class, multi_item_class_type_light_armor),
      (item_set_slot, "itm_red_tunic", slot_item_multiplayer_item_class, multi_item_class_type_light_armor),
      (item_set_slot, "itm_aketon_green", slot_item_multiplayer_item_class, multi_item_class_type_light_armor),
      (item_set_slot, "itm_padded_cloth", slot_item_multiplayer_item_class, multi_item_class_type_light_armor),
      (item_set_slot, "itm_red_gambeson", slot_item_multiplayer_item_class, multi_item_class_type_light_armor),
     (item_set_slot, "itm_strange_armor", slot_item_multiplayer_item_class, multi_item_class_type_light_armor),
тут были другие доспехи
  #1a-Swadian Crossbowman
...............

      (call_script, "script_multiplayer_set_item_available_for_troop", "itm_red_shirt", "trp_swadian_crossbowman_multiplayer"),
      (call_script, "script_multiplayer_set_item_available_for_troop", "itm_padded_cloth", "trp_swadian_crossbowman_multiplayer"),
      (call_script, "script_multiplayer_set_item_available_for_troop", "itm_strange_armor", "trp_swadian_crossbowman_multiplayer"),


  • Сообщений: 202
    • Просмотр профиля
-1
« Ответ #3 : 09 Июня, 2011, 20:47 »
Pavel)))
Это мультиплеер. Для сингла нужно в troops.py добавлять.

Туториал по созданию и добавлению анимации в Warband
  • Сообщений: 83
    • Просмотр профиля
-1
« Ответ #4 : 09 Июня, 2011, 21:03 »
я и хотел в мультиплеер добавить в сингл я через трооп идитор добавляю так легче)) я понел в чем дело просто у меня модулька небыла правильно настроена я 2 раза написал /модуле/

  • Сообщений: 7413
  • И создали они сайт... За наиболее важные для развития сайта идеи Выдается модераторам, достигнувшим значимых успехов на своем посту За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов
  • Бу!
    • Просмотр профиля
-1
« Ответ #5 : 18 Июня, 2011, 10:29 »
Кстати, необходимо заметить, что у ботов оружие и броня прописываются отдельно, то есть они не зависят от закупа игроков. Вышеописанным образом можно добавить предметы игрокам, но не ботам. Вооружение ботов (как и для сингла) описывается в module_troops, в файле они имеют на конце _multiplayer_ai.

Цитировать (выделенное)
Если ему будет прописан multi_item_class_type_gloves, то я честно говоря не знаю как это воспримет игра (gloves = перчатки в переводе с английского). Может он шлем на руки натянет?..
Этот шлем будет просто появлятся при выборе перчаток в меню, но одеватся он будет все равно на голову. На это влияет то, что напитано в module_items.
Вот спасибо огромное :) Я как раз искал как привязать предмет к слоту :)

Добавлено:
Поправил свой пост, теперь он вроде понятнее и упорядоченнее. Спасибо VKVania за очень важную подсказку :)

« Последнее редактирование: 18 Июня, 2011, 10:54 от Leshanae »
  • Фракция: Бандиты
"Иногда движение вперёд является следствием пинка взад."

Скромный стрим-канальчик:
http://www.hitbox.tv/benthrottle
WoT, M&B ...
  • Сообщений: 83
    • Просмотр профиля
ну ботам и в мультиплеере и в сингле я доспехи всегда через трупидитор добавляю - так реально легче... но добавлять их нужно только после того как с модулькой завершил работу над модом... так что для мододелов которые выпускают часто новые версии будет не очень удобно ведь модулька вроде стирает то что делается через идиторы или вручную... или нет?

  • Сообщений: 7413
  • И создали они сайт... За наиболее важные для развития сайта идеи Выдается модераторам, достигнувшим значимых успехов на своем посту За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов
  • Бу!
    • Просмотр профиля
Pavel))), трупэдитор и модулька - разные пути, и созданы для разных задач. Хотя здесь немалая доля вкусовых предпочтений имеется.

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

  • Фракция: Бандиты
"Иногда движение вперёд является следствием пинка взад."

Скромный стрим-канальчик:
http://www.hitbox.tv/benthrottle
WoT, M&B ...
  • Сообщений: 513
    • Просмотр профиля
Модулька круче)

Leshanae (Танкист)Ну серьёзно, один раз соффтопили - ладно. Но продолжать-то не нужно, для сего болталка есть.
  • Ник в M&B: VaShe
  • Сообщений: 2
    • Просмотр профиля
У меня вопрос , я все создал правильно но , фрака создается боты ставятся но я не могу зайти там нет трупов( юнитов) короче пустота , и когда нажемаш таб нет названия фракцыи. помогите в чем может быть проблема ?

  • Ник в M&B: KHR_Garret_tenb
  • Сообщений: 6
    • Просмотр профиля
Спасибо большое. У меня только один вопрос - всё здесь написанное применимо к моду Warband-а Napoleonic Wars?Понятно что в Наполеонике нету валюты, но реально там просто заменить оружие у некоторых юнитов в мультиплеере, следуя Вашей инструкции?

  • Сообщений: 3
    • Просмотр профиля
Спасибо большое. У меня только один вопрос - всё здесь написанное применимо к моду Warband-а Napoleonic Wars?Понятно что в Наполеонике нету валюты, но реально там просто заменить оружие у некоторых юнитов в мультиплеере, следуя Вашей инструкции?
Доброго времени суток, Kerosin , заменить оружие в мультиплеере NW можно, можно даже и добавить, не прибегая к изменению модульной системы, а используя только UT editor. Достаточно поменять предметы через редактор.
Потом нужно будет изменённый текстовик troops.txt перекинуть на модуль сервера. Тогда будет работать, при условии, что troops.txt установят себе люди, который будут заходить на изменённый сервер. У тех, кто себе ничего не поменяет, ничего и не изменится, но на сервер они смогут зайти, и оружие будут брать стандартное.
 

Добавлено: 04 Марта, 2013, 02:01

Товарищи Форумчане, подскажите пожалуйста, тем много, я на Всадниках не ориентируюсь, ибо новенький здесь. Вопрос у меня следующий: как добавить в Napoleonic Wars функцию выбора экипировки на подобии фунции выбора оружия, как и сделано в оригинале. Я хочу создать две классификации: пехотные и гренадёрские полки, а уже внутри этих классов добавить свободный выбор среди нескольких вариантов киверов и мундиров, чтобы поместить большее число полков, чем есть в оригинальной игре. Как это сделать? Буду благодарен подробному ответу, но и от краткого не откажусь.

« Последнее редактирование: 04 Марта, 2013, 02:01 от Кавир »
  • Сообщений: 3
    • Просмотр профиля
Здравствуйте. Возможно, вопрос не по теме. Простите меня, о модераторы. Играл в мод Рус 13 век. Решил зайти в мультиплеер, но в панели администрирования очень много функций заблокировано и невозможно изменить. Интересует именно пункт с добавлением ботов. Возможно ли это исправить? Интернет через Мегафон-модем, так что сами понимаете. А иногда просто хочется поскакать и просто порубиться без блуждания по глобальной карте. Может кто-нибудь что-нибудь подсказать?
Можно было бы, конечно и в одиночном режиме порубиться, но там вообще веселуха: все боты бегают без оружия и доспехов и имеют имя Игрок, а не, например, ополченец и т.п.

« Последнее редактирование: 25 Мая, 2013, 13:25 от Евген »
  • Сообщений: 12
  • Skype - yulian.min
    • Просмотр профиля
    • Мой канал на YouTube
А как сделать так, чтобы объект, брошенный в редакторе(например любой меч) можно было поднимать?Это скрипты или связано с модульной системой?

  • Ник в M&B: WhiteKnight
  • Сообщений: 7578
  • За наиболее важные для развития сайта идеи За особо выдающиеся авторские тексты За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов И создали они сайт... Призер конкурса Футболка по версии Всадников
    • Просмотр профиля
Это скрипты или связано с модульной системой?
Это скрипты связанные с модульной системой.

Моя конфигурация:
Нормальная, мне хватает.
  • Сообщений: 12
  • Skype - yulian.min
    • Просмотр профиля
    • Мой канал на YouTube
Это скрипты или связано с модульной системой?
Это скрипты связанные с модульной системой.
Подскажи ка Волк как это делается со скриптами + модулька?как сделать так, чтобы оружия можно было поднимать?прошу, напиши(если знаешь)
 

Добавлено: 30 Мая, 2013, 01:04

Буду ОЧЕНЬ благодарен за ответ!

« Последнее редактирование: 01 Июня, 2013, 14:23 от MongolMin »
  • Ник в M&B: WhiteKnight
  • Сообщений: 5
    • Просмотр профиля
Помогите,пожалуйста.
А вот если я добавил в одиночную игру предмет (допустим,броню),то как мне её добавить в мультиплеер? В смысле,в каком файле и что мне нужно прописать,чтобы этот предмет "существовал" в МП. Я так понял это в module_troops,но как понять что написать именно под мой предмет?

Заранее спасибо.

   

  • Сообщений: 1
    • Просмотр профиля
-1
« Ответ #17 : 24 Февраля, 2016, 12:03 »
Подскажите пожалуйста как в сетевую игру(Варбанд,Нативе) добавить новые доспехи. Доспехи скачаны с сайта, есть Resource и Textures. Прочитала эту тему, и еще несколько подобных. Но ничего не получается сделать. Как добавлять вещи для сетевой игры в список покупок?
Файлы из папки Resource и Textures перекинула. item_kinds1.txt отредактировала по инструкции. troops.txt - здесь через Едитор добавила нужному сетевому классу новый доспех(когда старую броню убираю на классе при входе в игру нет доспехов)но в списке покупок его нет. Где то читала что новые доспехи появятся в списке покупок если внести изменения в scripts.txt но тут для меня начинается дремучий лес. :cry: Там весь файл из циферок, откуда их брать и что они значат я без понятия. Может редактор какой для этого файла есть? или кто знающий подскажет что делать?
И еще если я добавлю себе новые доспехи(если все таки получится) и зайду поиграть на выделенный сервер(Хунтер_инвизион например) смогу я свои доспехи покупать или только те что установлены на самом сервере?
Буду благодарна всем кто решит помочь.  :)

  • Фракция: Сестры войны
  • Сообщений: 26121
  • За победу в конкурсе "Знамя кальрадийца" И создали они сайт... За регистрацию на форуме не позже сентября 2008 года
  • Сервер Discord
    • Просмотр профиля
    • Всадники Кальрадии
И еще если я добавлю себе новые доспехи(если все таки получится) и зайду поиграть на выделенный сервер(Хунтер_инвизион например) смогу я свои доспехи покупать или только те что установлены на самом сервере?
Нет, Ваши правки попросту сделают версию мода несовместимой с той, которую использует сервер.

  • Ник в M&B: [RUSMNB]Vanok
  • Фракция: Вегиры
И помните: "Хватит набивать посты" (NightHawkreal)

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


Powered by SMF 2.0 | SMF © Simple Machines LLC