Голосование

Как вы оцениваете Смуту?












Оформление



Пользователей
  • Всего: 28883
  • Последний: alexff099
Сейчас на форуме
Пользователи: 0
Гостей: 707
Всего: 707

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

Тема: Что вообще можно менять?  (Прочитано 114372 раз)

  • Сообщений: 2
    • Просмотр профиля
0
« Ответ #425 : 07 Декабря, 2013, 14:39 »
Большое спасибо=) Попробую)

  • Сообщений: 2
    • Просмотр профиля
0
« Ответ #426 : 15 Февраля, 2014, 14:55 »
Можно изменить меню мода в M&B? И если можно то где есть подробное описание этого процесса. Вроде menus.txt отвечает за это.
  • Сообщений: 1697
  • За особо выдающиеся авторские тексты За активную деятельность, связанную с публикациями и помощью другим посетителям
    • Просмотр профиля
0
« Ответ #427 : 15 Февраля, 2014, 15:23 »
Можно изменить меню мода в M&B? И если можно то где есть подробное описание этого процесса. Вроде menus.txt отвечает за это.
Если надо изменить сам текст, то лучше поменять его в русификаторе мода.
1.Открой папку нужного мода.
2. Открой в ней папку languages.
3. Открой папку RU.
4. В game_menus нади текст и поменяй.
  • Ник в M&B: Fin___Gall
  • Сообщений: 2
    • Просмотр профиля
0
« Ответ #428 : 15 Февраля, 2014, 21:03 »
Как текст изменить ясно. Но как его допустим перенести влево или выше, изменить размер. Например в моде TLD изменена позиция текста. Нашел тему по изменению шрифта, только не знаю как его переместить.
« Последнее редактирование: 15 Февраля, 2014, 23:20 от Незнайка »
  • Сообщений: 296
  • За активную деятельность, связанную с публикациями и помощью другим посетителям
    • Просмотр профиля
0
« Ответ #429 : 26 Марта, 2014, 14:26 »
Извините, что встреваю, но я увидел в этом разделе вопрос по поводу возможности повышения пределов умений и навыков (лимитов/максимально возможного уровня уровня), на который так и не ответили. И в связи с этим хочу привести один из своих весьма удачных экспериментов по этому поводу. Так вот, в первую очередь хотелось бы рассказать о том как я увеличил предел для умения "железная кожа" (живучесть) с помощью модульной системы: для этого нам нужно поработать (совсем немного) с файлами header_skills и module_skills. Итак открываем header_skills и находим там место имеющее десять записей начинающихся с knows_ironflesh, каждая из которых имеет после себя (через _) значение уровня навыка, описываемое далее (через =) - т.е. это описаны каждый из десяти уровней умения. Чтобы осуществить задуманное: добавляем после knows_ironflesh_10 = 223007451985306231415357182726483615059804160 нужное нам количество строк, для каждой последующей уровень умения на один выше:
knows_ironflesh_11
knows_ironflesh_12...
Далее надобно добавить к ним опись - 45-значное число, которое от уровня к уровню возрастает на 22300745198530623141535718272648361505980416 (можете сами проверить). Т.е. прибавляем приведённое число к описанию 10-го уровня и получаем описание 11-го и т.д. (мне пришлось каждое вычисление производить в два приёма потому как числа не помещаются в калькулятор). В итоге должно получиться вот что (считайте внимательно!):
knows_ironflesh_11 = 245308197183836854556892900999131976565784576
knows_ironflesh_12 = 267608942382367477698428619271780338071764992...
После этого сохраняем изменения и открываем module_skills и изменяем там максимальный уровень для нашего умения (четвёртая запись в строке, перед описанием). Как водится, сохраняем компилируем и радуемся.
Аналогично изменяются пределы для навыков: там редактируем только header_troops (описи для них в шестнадцатиричной СИ, т.е. цифры от 0 до f )(правда, не знаю как там можно вылезти за предел двухзначного числа).
Также можно добавлять регистры в header_common - там вообще проще простого.
Всё описанное я проверял - всё прекрасно работает.
Числа описаний не должны пересекаться, и входить в пределы других умений, т.е. числа с одного умения должны быть в промежутке между своим первым числом и первым числом следующего умения.
Благодарю за внимание.
« Последнее редактирование: 26 Марта, 2014, 18:07 от Дикий-дикий повар »
Без комментариев.
  • Сообщений: 2766
  • За создание крупных модов и других особо сложных проектов За регистрацию на форуме не позже декабря 2016 года и не менее 2500 постов Выдается модераторам, достигнувшим значимых успехов на своем посту
    • Просмотр профиля
0
« Ответ #430 : 26 Марта, 2014, 20:45 »
Извините, что встреваю, но я увидел в этом разделе вопрос по поводу возможности повышения пределов умений и навыков (лимитов/максимально возможного уровня уровня), на который так и не ответили. И в связи с этим хочу привести один из своих весьма удачных экспериментов по этому поводу. Так вот, в первую очередь хотелось бы рассказать о том как я увеличил предел для умения "железная кожа" (живучесть) с помощью модульной системы: для этого нам нужно поработать (совсем немного) с файлами header_skills и module_skills. Итак открываем header_skills и находим там место имеющее десять записей начинающихся с knows_ironflesh, каждая из которых имеет после себя (через _) значение уровня навыка, описываемое далее (через =) - т.е. это описаны каждый из десяти уровней умения. Чтобы осуществить задуманное: добавляем после knows_ironflesh_10 = 223007451985306231415357182726483615059804160 нужное нам количество строк, для каждой последующей уровень умения на один выше:
knows_ironflesh_11
knows_ironflesh_12...
Далее надобно добавить к ним опись - 45-значное число, которое от уровня к уровню возрастает на 22300745198530623141535718272648361505980416 (можете сами проверить). Т.е. прибавляем приведённое число к описанию 10-го уровня и получаем описание 11-го и т.д. (мне пришлось каждое вычисление производить в два приёма потому как числа не помещаются в калькулятор). В итоге должно получиться вот что (считайте внимательно!):
knows_ironflesh_11 = 245308197183836854556892900999131976565784576
knows_ironflesh_12 = 267608942382367477698428619271780338071764992...
После этого сохраняем изменения и открываем module_skills и изменяем там максимальный уровень для нашего умения (четвёртая запись в строке, перед описанием). Как водится, сохраняем компилируем и радуемся.
Аналогично изменяются пределы для навыков: там редактируем только header_troops (описи для них в шестнадцатиричной СИ, т.е. цифры от 0 до f )(правда, не знаю как там можно вылезти за предел двухзначного числа).
Также можно добавлять регистры в header_common - там вообще проще простого.
Всё описанное я проверял - всё прекрасно работает.
Числа описаний не должны пересекаться, и входить в пределы других умений, т.е. числа с одного умения должны быть в промежутке между своим первым числом и первым числом следующего умения.
Благодарю за внимание.
По этому поводу я общался с Aeldarian'ом, начальным автором Warband Module Decompiler, вот что он мне сказал:

Цитата: Aeldarian
Привет. Если что-то непонятно, то лучше внимательно прочитать заголовок соответствующего файла module_*.py модульной системы и его обработчика process_*.py, если непонятен порядок чисел в текстовом файле.

Относительно troops, написано в module_troops.py:
Цитировать (выделенное)
# 11) Skills (int): See header_skills.py to see a list of skills. Example:

В каждом элементе массива troops, 11-й по счёту элемент представляет собой набор флагов умений войска. Например в
["temp_troop","Temp Troop","Temp Troop",tf_hero,no_scene,reserved,fac_commoners,[],def_attrib,0,[b]knows_common|knows_inventory_management_10[/b],0],это knows_common|knows_inventory_management_10.

Где knows_common выше определён как совокупность флагов
knows_common = knows_riding_1|knows_trade_2|knows_inventory_management_2|knows_prisoner_management_1|knows_leadership_1
Два флага knows_inventory_management_2 и knows_inventory_management_10 сливаются, так как имеют схожие битовые значения:
562949953421312 | 2814749767106560 = b10 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 | b1010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 = b1010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 = 2 814 749 767 106 560

В итоге имеем пять флагов: knows_riding_1|knows_trade_2|knows_prisoner_management_1|knows_leadership_1|knows_inventory_management_10, для численного значения каждого из которых отведено 4 бита в header_skills.py.

То есть, например knows_trade_3|knows_leadership_5 будет выглядеть как 3+80=83 или b01010011 в двоичном исчислении. При обратном преобразовании из числа в текстовые флаги, первые 4 бита будет значение knows_trade_(b0011), вторые 4 бита значение умения knows_leadership_(b0101) и так далее.

С тем же успехом можно было написать :
knows_trade_3 = 3 * (16**0)
knows_trade_4 = 4 * (16**0)
..
knows_prisoner_management_7 = 7 * (16**2)
knows_prisoner_management_8 = 8 * (16**2)
..
knows_horse_archery_5 = 5 * (16**23)
knows_horse_archery_6 = 6 * (16**23)

вместо:
knows_trade_3 = 3
knows_trade_4 = 4
..
knows_prisoner_management_7 = 1792
knows_prisoner_management_8 = 2048
..
knows_horse_archery_5 = 24758800785707605497982484480
knows_horse_archery_6 = 29710560942849126597578981376
но у турок своё мнение на этот счёт

Далее смотрим как обрабатывается этот элемент в process_troops.py
    skill_array = troop[10]
    for i in xrange(num_skill_words):
      file.write("%d "%((skill_array >> (i * 32)) & 0xffffffff))
    file.write("\n  ")

Это сверхдлинное число разделяется на 6 (num_skill_words) 32-битных слов и записывается последовательно в виде целых чисел в результирующий файл troops.txt, после чего завершается символом переноса строки. Для Temp_Troop это выглядит как 274 655360 0 1 0 0. Что в двоичном формате представляет собой b100010010 b10100000000000000000 b0 b1 b0 b0.

В первом слове - b0010 значение умения trade, то есть knows_trade_2. b0001 - knows_leadership и b1 - knows_prisoner_management.

Во второй группе b1010 0000 0000 0000 0000 пятый флаг имеет ненулевое значение. Добавляем справа пустые биты в длинну предущих слов, в данном случае 32 нуля:
b1010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 = 0xA 0000 0000 0000 = 2 814 749 767 106 560
что соответствует символьному значению knows_inventory_management_10 в header_skills.py. Аналогично разбираются остальные битовые флаги всех слов.

Для упрощения понимания способа упаковки флагов в числе, выбранном разработчиками, все 6 слов можно собрать обратно в 192-битное целое число и представить его в шестнадцатеричном формате: 0x00000112 0x000A0000 0x00000000 0x00000001 0x00000000 0x00000000
где хорошо заметны пять ненулевых символов, порядковый номер которых справа определяет к какому флагу относиться значение.

Надеюсь понятно объяснил мудрёный способ хранения данных. Примеры данных приведены для версии 1,153.

Значит: предел каждого скилла равен 15.
1 + 2 + 3 + 4 + ... = ζ(-1) = -0.08(3)
1 - 1 + 1 - 1 + 1 - ... = 0.5
1 - 2 + 3 - 4 + 5 - ... = 0.25

На вопросы в ПС не отвечаю! Спрашивать в темах!
  • Сообщений: 296
  • За активную деятельность, связанную с публикациями и помощью другим посетителям
    • Просмотр профиля
0
« Ответ #431 : 27 Марта, 2014, 11:14 »
Благодарю за познавательный материал.
Пользуясь случаем, хочу спросить: где можно почерпнуть знания, чтобы я смог самостоятельно разбирать подобные коды?
Видите-ли, я не программист и не смог бы разобрать подобное
skill_array = troop[10]
    for i in xrange(num_skill_words):
      file.write("%d "%((skill_array >> (i * 32)) & 0xffffffff))
    file.write("\n  ")
без такого-вот пояснения
Это сверхдлинное число разделяется на 6 (num_skill_words) 32-битных слов и записывается последовательно в виде целых чисел в результирующий файл troops.txt, после чего завершается символом переноса строки.
.
Без комментариев.
  • Сообщений: 2766
  • За создание крупных модов и других особо сложных проектов За регистрацию на форуме не позже декабря 2016 года и не менее 2500 постов Выдается модераторам, достигнувшим значимых успехов на своем посту
    • Просмотр профиля
0
« Ответ #432 : 28 Марта, 2014, 11:03 »
Благодарю за познавательный материал.
Пользуясь случаем, хочу спросить: где можно почерпнуть знания, чтобы я смог самостоятельно разбирать подобные коды?
Видите-ли, я не программист и не смог бы разобрать подобное
skill_array = troop[10]
    for i in xrange(num_skill_words):
      file.write("%d "%((skill_array >> (i * 32)) & 0xffffffff))
    file.write("\n  ")
без такого-вот пояснения
Это сверхдлинное число разделяется на 6 (num_skill_words) 32-битных слов и записывается последовательно в виде целых чисел в результирующий файл troops.txt, после чего завершается символом переноса строки.
.


Надо Python, C/C++ учить
1 + 2 + 3 + 4 + ... = ζ(-1) = -0.08(3)
1 - 1 + 1 - 1 + 1 - ... = 0.5
1 - 2 + 3 - 4 + 5 - ... = 0.25

На вопросы в ПС не отвечаю! Спрашивать в темах!
  • Сообщений: 449
    • Просмотр профиля
0
« Ответ #433 : 28 Марта, 2014, 11:20 »
Благодарю за познавательный материал.Пользуясь случаем, хочу спросить: где можно почерпнуть знания, чтобы я смог самостоятельно разбирать подобные коды?Видите-ли, я не программист и не смог бы разобрать подобное

Питон это. Знания берутся, например, тут: https://www.google.ru/search?client=opera&q=python+%D1%83%D1%87%D0%B5%D0%B1%D0%BD%D0%B8%D0%BA&sourceid=opera&ie=utf-8&oe=utf-8&channel=suggest


  • Сообщений: 296
  • За активную деятельность, связанную с публикациями и помощью другим посетителям
    • Просмотр профиля
0
« Ответ #434 : 28 Марта, 2014, 13:41 »
Некоторое время назад я заинтересовался C++ и по этому поводу раздобыл по нему весьма неплохой учебник. Полистав эту занятную книжицу, я, само собой, решил на деле ознакомиться, так сказать, с процессом,что привело к потребности в библиотеках и компиляторах. Не долго думая я остановил свой выбор на интегрированной среде разработки microsoft visual c++, ну и конечно добыл для таковой русскоязычный учебник. Далее при помощи накопленных материалов приступил, как я уже сказал, к ознакомлению с процессом. И тут, в этом самом процессе, могло-ли быть иначе, встал вопрос о подгонке кода. Этому мог бы помочь встроенный "автомат", дающий информацию, из справки, о выбранном элементе кода. Но за неимением вышеупомянутых справочников, я приостановил изучение до приобретения таковых, в отдельном виде или вкупе со средой.
П.с.: а разве в модульной системе используется C++?
« Последнее редактирование: 28 Марта, 2014, 14:35 от Дикий-дикий повар »
Без комментариев.
  • Сообщений: 2766
  • За создание крупных модов и других особо сложных проектов За регистрацию на форуме не позже декабря 2016 года и не менее 2500 постов Выдается модераторам, достигнувшим значимых успехов на своем посту
    • Просмотр профиля
0
« Ответ #435 : 28 Марта, 2014, 20:49 »
Некоторое время назад я заинтересовался C++ и по этому поводу раздобыл по нему весьма неплохой учебник. Полистав эту занятную книжицу, я, само собой, решил на деле ознакомиться, так сказать, с процессом,что привело к потребности в библиотеках и компиляторах. Не долго думая я остановил свой выбор на интегрированной среде разработки microsoft visual c++, ну и конечно добыл для таковой русскоязычный учебник. Далее при помощи накопленных материалов приступил, как я уже сказал, к ознакомлению с процессом. И тут, в этом самом процессе, могло-ли быть иначе, встал вопрос о подгонке кода. Этому мог бы помочь встроенный "автомат", дающий информацию, из справки, о выбранном элементе кода. Но за неимением вышеупомянутых справочников, я приостановил изучение до приобретения таковых, в отдельном виде или вкупе со средой.
П.с.: а разве в модульной системе используется C++?

Для изучения C/C++ используйте Dev-C++, а не Microsoft Visual C++.

Модулька написана на Python, но есть ModuleSystem++, которая написана на С++, используя API Python'a: https://bitbucket.org/cmpxchg8b/modulesystem
1 + 2 + 3 + 4 + ... = ζ(-1) = -0.08(3)
1 - 1 + 1 - 1 + 1 - ... = 0.5
1 - 2 + 3 - 4 + 5 - ... = 0.25

На вопросы в ПС не отвечаю! Спрашивать в темах!
  • Сообщений: 449
    • Просмотр профиля
0
« Ответ #436 : 31 Марта, 2014, 11:32 »
Модулька написана на Python, но есть ModuleSystem++, которая написана на С++, используя API Python'a: https://bitbucket.org/cmpxchg8b/modulesystem

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

С другой стороны свет клином не моддинге МиБ не сошелся =) потому учить что-то новое всегда полезно.
  • Сообщений: 296
  • За активную деятельность, связанную с публикациями и помощью другим посетителям
    • Просмотр профиля
+1
« Ответ #437 : 31 Марта, 2014, 14:00 »
Такой уж я человек: люблю во всём поглубже докопаться до корешков. А что касается переименования лордов и переодевания солдат... Ведь эти вещи сами по себе не представляют совершенно никакого интереса, ими только по ходу дела и заниматься. Что касается языков программирования... Вообще-то я давно уже интересуюсь математикой (в широком смысле этого слова) (может некоторые и не понимают причём здесь математика), такой опыт очень помогает решать различные задачи и модульная система не исключение. Также и изучение (хотя бы поверхностное) языков программирования пойдёт этому интересу только на пользу... ...Да, и свет клином конечно же не сошёлся, но всё-таки есть навязчивая идея изготовить собственную модификацию (ну или нечто подобное) для m&b... Это дело по времени затратно и потому хочется внести в свою работу уникальные и стоящие изменения, а не переводить время просто на переодевание (чай не безрукие - сами переоденутся).
« Последнее редактирование: 31 Марта, 2014, 14:34 от Дикий-дикий повар »
Без комментариев.
  • Сообщений: 26
    • Просмотр профиля
0
« Ответ #438 : 14 Мая, 2014, 23:21 »
Здравствуйте!
Надеюсь, что обращаюсь в правильную тему. Побегал по форуму - так и не нашёл более подходящего места для адресации вопросов.

У меня всего лишь 2 вопроса по моду Warband и моду 1257AD для него:

1. как отключить миникарту (радар, который виден в верхнем правом углу, когда находишься на поле боя)?
2. заметил, что стрелы пополняются автоматически, то есть затрачу к примеру, 7 стрел и буквально тут же появляется надпись - "пополнение стрел" и стрелы действительно пополняются в мгновение в колчане, как это можно отключить и можно ли вообще?

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


Powered by SMF 2.0 | SMF © Simple Machines LLC