WSE - Warband Script EnhancerАвторы: cmpxchg8b, K700
СКАЧАТЬ С НАШЕГО САЙТАСтарая тема на Taleworlds |
Новая тема на TaleworldsЧто такое Warband Script Enhancer?Программа которая повышает возможности движка Warband, путем добавления команд/скриптов/триггеров и изменяет закодированную в движке механику.
Я не мододел, стоит ли мне использовать Warband Script Enhancer?Конечно.
WSE исправляет некоторые баги движка, включая один, который приводит к частым вылетам. Также он записывает в лог данные о ошибках, так что если какие то баги еще присутствуют, то можно о них сообщить, и они будут исправлены.
Кроме этого, в нем присутствуют некоторые встроенные утилиты, который могут быть полезными, например оптимизатор памяти, или возможность увеличения количество трупов выше стандартного.
Если вы запускаете сервер под Wine, то вы можете использовать WSE для того чтобы избежать багов движка которые приводят к искажению глобальный переменных и других ошибок.
Ссылки для загрузкиWSE v.4.8.4 (для любых изданий версии 1.174 от vandar)
WSE v.4.8.4 (для Warband версии 1.174)
WSE v.4.7.0 (для Warband версии 1.174)
WSE v.4.2.4 (для Warband версии 1.168)
WSE v.4.1.0 (для Warband версии 1.166)
WSE v.3.2.0 (для Warband версии 1.153)
WSE v.2.8.1 (для Warband версии 1.143)
WSE v.2.4.0 (для Warband версии 1.143)
WSEProfilerGUI v.1.1 (графический интерфейс для чтения логов профайлера)
MBSE Profiler v1.000 (только профайлер для Mount&Blade 1.011 Enhanced Edition)
УстановкаПользователи1. Скачать WSE.
2. Распаковать все содержимое архива, кроме папки с названием WSESDK, в папку с игрой (не в папку Modules или куда то еще, а именно в папку с игрой (туда где mb_warband.exe)).
3. Отредактировать файл wse_settings.ini на свой вкус.
4. Запустить WSELoader.
Мододелы1. Скачать WSE.
2. Увеличьте возможности модульной системы при помощи файлов для MC (файлы с расширением .py) (смотрите файл README.txt, который находится в папке со скачанным архивом, для получения большей информации).
После установки WSE, игру нужно запускать из файла WSELoader.exe, иначе программа не будет работать.Как сделать запуск игры с использованием WSE более удобным и привычным:
Если вы запускаете игру с ярлыка, то это для вас. (если вы не знаете что такое ярлык, тогда кликните на
эту ссылку). Все банально просто, и думаю что большинство пользователей ОС Windows сами догадались это сделать, но для некоторых это все равно пригодится. Итак:
1. Находим ярлык с которого вы чаще всего запускаете игру.
2. Кликаем на ярлык правой клавишей мышки, и в появившемся окне ищем строчку под названием:
Объект:
ищем в поле, справа от этой строчки вот это (находится в самом конце):
mb_warband.exe
и заменяем на (пробел в конце удаляем):
WSELoader.exe
3. Немного ниже, нажимаем на кнопку "Сменить значок...", в появившемся предупреждении жмем "ОК", после этого, в появившемся окошке, нажимаем на кнопку "Обзор", и заходим в папку с игрой, в ней дважды кликаем левой кнопкой мыши по файлу под названием "mb_warband" (без кавычек) и затем нажимаем на копку "ОК".
4. В низу окна нажимаем на копку "ОК".
В итоге мы имеем старый ярлык, с тем же названием и внешним видом как и раньше, но игра теперь запускается вместе с WSE, и запуск ничем не отличается от того, что было раньше.
Особенности: (список не полный)
- Много новых и очень полезных команд, триггеров и скриптов;
- Возможность использовании геральдики на лошадях;
- Возможность нормально работать с дробными числами;
- Возможность проигрывания видео во время игры (используя поставляющийся с игрой
Bink Video);
- Возможность подмены встроенных в движок презентаций (например меню инвентаря, просмотра характеристик персонажа и т.п.) на сделанные с помощью модульной системы;
- Возможность использования различных рас в мультиплеере (вплоть до 16-ти);
- Возможность задавать агентам различное масштабирование (с помощью этого можно сделать чтобы агенты были различного роста, так что они буду еще меньше похожими на армию клонов);
- Исправления некоторых багов игры;
- Оптимизатор памяти;
- Возможность выставлять огромное количество трупов;
- И многое другого, что может быть сделано с помощью новых команд и триггеров (например: изменение параметров лица (форма частей лица, его текстуры, волос, цвета волос, возраста и т.д.) в любой момент, добавление эффектов и источников света к снарядам (огонь и т.п.), спаун снарядов (стрелы, пули и все остальное чем можно выстрелить/метнуть) в любое время, и с любого места);
С полным списком новых возможностей для модульной системы, можно ознакомится просмотрев файлы которые находятся в архиве с WSE, в папке под названием WSESDK.
Примеры использования:Пример #1 - анализ сообщений в чатеСкрипт для модульной системы (module_scripts.py) #script_wse_chat_message_received
# Called each time a chat message is received (both for servers and clients)
# INPUT
# script param 1 = sender player id
# script param 2 = chat type (0 = global, 1 = team)
# s0 = message
# OUTPUT
# trigger result = anything non-zero suppresses default chat behavior. Server will not even broadcast messages to clients.
# result string = changes message text for default chat behavior (if not suppressed).
("wse_chat_message_received", [
(multiplayer_is_server),
(store_script_param, ":player_no", 1),
(try_begin),
(str_store_trim, s1, s0),
(str_starts_with, s1, "@/"),
(str_store_substring, s1, s1, 1),
(try_begin),
(str_starts_with, s1, "@die", 1),
(player_is_active, ":player_no"),
(player_get_agent_id, ":agent_no", ":player_no"),
(ge, ":agent_no", 0),
(remove_agent, ":agent_no"),
(set_trigger_result, 1),
(else_try),
(str_starts_with, s1, "@id", 1),
(assign, reg0, ":player_no"),
(set_result_string, "@My player number is {reg0}."),
(else_try),
(set_trigger_result, 1),
(try_end),
(else_try),
(str_contains, s0, "@ho"),
(str_store_replace, s1, s0, "@ho", "@a woman with question life choices"), #Pun intended.
(set_result_string, s1),
(try_end),
]),
Видео показывающие работу скрипта на выделенном сервереПример #2 - работа с консольными командами на выделенном сервереЭтот пример показывает добавление команды
set_max_players_real в список команд для консоли которая устанавливает максимальное количество игроков без лимита в 64, в отличие от
set_max_players.
Скрипт для модульной системы (module_scripts.py) #script_wse_console_command_received
# Called each time a command is typed on the dedicated server console (after parsing standard commands)
# INPUT
# s0 = text
# OUTPUT
# trigger result = anything non-zero if the command succeeded
# result string = message to display on success (if empty, default message will be used)
("wse_console_command_received", [
(str_split, ":num_tokens", s30, s0, "@ ", 1),
(ge, ":num_tokens", 1),
(assign, ":fail", 0),
(try_begin),
(str_store_string, s0, "@set_max_players_real"),
(str_store_replace_spaces_with_underscores, s0, s0), #Workaround for Warband' annoying habit of replacing all underscores with spaces (seriously, was underscore the less common character they could come up with?)
(str_starts_with, s30, s0),
(try_begin),
(ge, ":num_tokens", 3),
(str_to_num, ":max_players", s31),
(str_to_num, ":max_private_players", s32),
(is_between, ":max_players", 2, 251),
(is_between, ":max_private_players", 2, 251),
(le, ":max_players", ":max_private_players"),
(server_set_max_num_players, ":max_players", ":max_private_players"),
(assign, reg0, ":max_players"),
(assign, reg1, ":max_private_players"),
(set_result_string, "@Set maximum players to {reg0} and maximum private players to {reg1}"),
(else_try),
(set_result_string, "@Usage: set_max_players_real <max_players> (2-250) <max_private_players> (2-250)"),
(try_end),
(else_try),
(assign, ":fail", 1),
(try_end),
(eq, ":fail", 0),
(set_trigger_result, 1),
]),
Скриншоты скрипта в действии http://img405.ссылки на данный сайт запрещены/img405/5030/consolecommanddemo.pngПример #3 - комбинированные мультиплеерные сообщения (multiplayer messages)Скрипт для сервера(multiplayer_message_init, 10), # network buffer register no. 10
(multiplayer_message_put_int, 10, 0x00FF00),
(multiplayer_message_put_string, 10, "@Hello world!"),
(multiplayer_send_composite_message_to_player, ":player_no", event_display_colored_message, 10),
Скрипт для клиента("wse_multiplayer_message_received", [
(store_script_param, ":player_no", 1),
(store_script_param, ":event", 2),
(try_begin),
(eq, ":event", event_display_colored_message),
(neg|multiplayer_is_server),
(multiplayer_cur_message_get_int, ":color"),
(multiplayer_cur_message_get_string, s0),
(display_message, "@{s0}", ":color"),
(try_end),
]),
FAQ:Как я могу быть уверен что это не вирус?Вы не можете.
Проверьте его с помощью антивируса, проверяйте как угодно. Если вы не хотите запускать его, то не запускайте.
Разве изменение/взлом файлов игры легальный?Файлы игры не изменены.
Он работает на пиратских версиях игры?Нет. Он работает только с активированной, официальной лицензионной версией игры.
Он работает на пробной (то есть не активированной, или же по другому триальной) версии игры, и на лицензии от 1С?На пробной (триальной), и на лицензии от 1С он работать не будет.
Если у вас есть лицензия от 1С, то тогда можно скачать английскую версию игры (самую последнюю версию можно найти на
официальном сайте игры, или на нашем сайте в
каталоге файлов, если вам нужна какая-то определенная версия, то в пункте ниже описано как можно скачать ее), поставить на нее русификатор (его также можно найти в
каталоге файлов) и активировать ее ключом от мультиплеера, который можно найти в коробке с диском, вместе с серийным номером (лицензионным ключом).
Во время игры у меня появляется ошибка вроде этой: unrecognized opcode 3606.Значит из-за каких то причин у вас не запущен WSE. Это может быть если вы запустили игру не из лаунчера (файл WSELoader.exe в корневой папке игры), а с помощью обычного mb_warband.exe. Также причиной этому может быть не подходящая или не совместимая версия игры. По-первому смотрите пункт выше. Во-втором случае, это бывает если WSE работает с одной версией игры, а у вас стоит другая (например если WSE под 1.143, а вы используете 1.134 или 1.153). Чтобы исправить это, нужно установить либо версию WSE которая подходит под вашу версию игры, или же наоборот - установить подходящую для WSE версию игры. Во-втором случае, если он под более новую версию - поставить подходящий патч, если под более старую - то тогда нужно установить подходящую версию игры. Патч можно найти на
официальном сайте игры, или на нашем сайте в
каталоге файлов. Для того чтобы скачать нужную вам версию игры, нужно в этой ссылке:
http://download2.taleworlds.com/mb_warband_setup_1143.exe
изменить красную цифру на нужную вам цифру, которая обозначает номер версии. Например если нужен клиент версии 1.143 то пишем 1143, если 1.134 то пишем 1134. Все версии игры доступны для скачивания, вам необходимо лишь их выбрать, с помощью манипуляции написанной выше.
Как мне запустить с этой программой свой сервер?Чтобы запустить сервер, нужно положить все wseшные файлы в папку с сервером
и там выполнить
WSELoaderServer.exe -r Sample_<режим>.txt -m <имя мода>
(Modules/<имя мода> должно быть там же)
Когда я запускаю его, он пишет, что какие то .dll файлы потеряны.Начиная с версии 1.020 зависимость от внешних компонентов приведена к нулю. Если вы распаковали весь архив и все равно получаете сообщения об этой ошибке, то вы можете попробовать установить это
Microsoft Visual C++ 2010 Redistributable Package (x86).
У меня игра вылетает/показывает странные ошибки.Напишите разработчику на официальном форуме игры в
этой теме (на английском языке) и приложите содержимое файлов wse_log.txt и rgl_log.txt, которые находятся в корневой папке игры
В моем логе пишет что-то наподобие: WARNING: Unable to map WSE script code ...Если вы не мододел, то просто игнорируйте эти сообщения. Они просто означают, что текущий мод не использует какие-то из особенностей WSE.
Я хочу добавить WSE к своему моду. Что я должен сделать?Добавьте файлы от WSE для загрузки вместе с модом. Последняя версия WSE, может быть не совместимой с той, которая используется в вашем моде.
Я не мододел, что мне вообще с ним делать?Можете просто играть с ним, так как он исправляет некоторые баги движка. Также вы можете редактировать wse_settings.ini, который находится в той папке, куда вы распаковали WSE.
Как увеличить количество трупов?Откройте wse_settings.ini с помощью блокнота, или ему подобных программ. Затем найдите строку:
max_corpses
Если перед ней у вас стоит знак ; то удалите его. Число которое написано в этой строке - это количество трупов, замените это число на нужное вам. Для примера, у меня эта строка выглядит так:
;max_corpses = 1000
Красное - это знак который нужно удалить (если вы не сделали этого ранее);
Зеленое - это количество трупов
Внимание, количество трупов может повлиять на производительность! Чем больше трупов - тем больший может быть ущерб производительности, поэтому будьте осторожными с большими значениями. Как включить оптимизатор памяти, и как его настроить?Откройте wse_settings.ini с помощью блокнота, или ему подобных программ. Затем найдите строку:
[memory_optimizer]
Текст который нам нужен выглядит примерно так:
[memory_optimizer]
;Enable the memory optimizer for systems with low memory or large mods (experimental)
enabled = 0
;Threshold (in MB) after which the optimizer will activate
threshold = 500
Красное - включает или выключает оптимизатор. Число в этой строке может быть только 0 или 1.
0 - оптимизатор выключен; 1 - оптимизатор включен.
Зеленое - это порог памяти в мегабайтах. Когда игра будет использовать больше оперативной памяти чем задано здесь, то оптимизатор будет запускаться. Для того чтобы был хоть какой то результат, то это число должно быть меньше чем размер вашей оперативной памяти. Можете поэкспериментировать с ним.