Тема: Модульная система. Вопросы и ответы.  (Прочитано 312014 раз)

Ответ #501 29 Октября, 2012, 12:29
0
HunterWolf, спасибо.
 

Добавлено: 29 Октября, 2012, 13:15

А вы не подскажете, модулька 1.154 с игрой версии 1.153 будут совместимы?
 

Добавлено: 29 Октября, 2012, 14:27

А, и ещё, уважаемые форумчане, есть ли среди вас кто-нибудь, кто может немножко меня поучить работе с модулькой (больше, чем есть в мануале на этом форуме), а? Буду очень благодарен (выше упомянутого мануала не хватило).
« Последнее редактирование: 29 Октября, 2012, 14:27 от Saturn35 »
Ответ #502 29 Октября, 2012, 16:31
0
А вы не подскажете, модулька 1.154 с игрой версии 1.153 будут совместимы?
Т.е. наоборот
MS 1.153 c игрой 1.154. Да, будут.
Ответ #503 30 Октября, 2012, 09:19
0
А что такое agent и где о нём можно почитать?
 

Добавлено: 30 Октября, 2012, 10:34

и где объявляются переменные типа $talk_with_merchant ?
« Последнее редактирование: 30 Октября, 2012, 10:34 от Saturn35 »
Ответ #504 30 Октября, 2012, 10:53
0
некоторое из не доделаного
Операции для работы с агентом
Ответ #505 30 Октября, 2012, 14:45
0
Что делает store_trigger_param_1, *2 и *3 ?
Ответ #506 30 Октября, 2012, 14:52
0
Вытаскивает в переменную параметры триггера, если они есть.


 

Добавлено: 30 Октября, 2012, 14:58

А что такое agent и где о нём можно почитать?
Агент — это сущность отражающая бегающих по сцене людей и лошадей.
Каждому агенту соответствует либо предмет (лошадь), либо тип солдат из тех, что описаны в module_troops.
 
и где объявляются переменные типа $talk_with_merchant ?
C $ — это глобальные переменные. Чтобы найти, где им присваивается значение нужно, искать их сквозь всю модульку напрямую.
« Последнее редактирование: 30 Октября, 2012, 14:58 от Rongar »
Ответ #507 30 Октября, 2012, 15:16
0
 А как узнать агенты нескольких игроков сразу? Например у меня начальный квест, два герой вступают в битву с четырьмя противниками, и после битвы активируется диалог. Как узнать например что агенты противника мертвы? Как вообще узнать агенты противника?
Ответ #508 30 Октября, 2012, 15:35
0
Легионер привёл команды.  Там почти всё необходимое есть.
Понадобиться ещё try_for_agents — цикл сквозь всех агентов. Есть команды для опроса состояния агентов, получения трупсов соотвествующих агентам и т.д.
Ответ #509 31 Октября, 2012, 14:21
0
1.Как сделать неизменяемым имя игрока и как его присвоить игроку?

2. Почему в консоле может быть ругань на сравнение элемента массива агентов, с агентом игрока?
(neq,":agents",":player_agent"),
3. Вот эти все "neq" , "eq" и прочие обрабатываются как условия? (Т.е.:

(eq,":a",":i") равно
if($a==$i)
) ?

4. Переменные типа :переменная нужно записывать куда-нить в файлы модульки, или можно где угодно придумать новую переменную и дать ей любое значение?
 Недовопрос: Переменные типа :переменная - это локальные переменные или слоты?
« Последнее редактирование: 31 Октября, 2012, 14:25 от Saturn35 »
Ответ #510 31 Октября, 2012, 16:38
+1
1. Имя любого юнита меняет операция troop_set_name . Соответственно, чтобы имя игрока было неизменным не применяйте операцию troop_set_name к trp_player, или кто у вас там является игроком.
2. Чтобы понять причину ругани нужен текст ошибки из лога и сам код из модульки.
3. Да. При невыполнения условия весь последующий код выполняться не будет.
4. переменные типа ":" - это локальные переменные. Их можно объявить когда угодно и в любом месте, но работать они будут только в этом конкретном блоке кода (например если в блоке условий появления диалога объявить переменную ":troop_id", то в блоке последствий этого диалога её придётся объявить ещё раз). Эти переменные кстати в отличие от глобальных переменных "$" и слотов не записываются в сэйвы.
Это не слоты, это именно переменные.
« Последнее редактирование: 31 Октября, 2012, 16:42 от uhanich »
Ответ #511 31 Октября, 2012, 16:52
0
Есть ли какие-нибудь программы для редактирования сцен, просмотра айтемов (items) (последние с отображением айтема (изображение айтема))?
Ответ #512 31 Октября, 2012, 16:56
0
Есть ли какие-нибудь программы для редактирования сцен
Внутренний редактор сцен. Нужно включить Edit mode в стартовом меню. ctrl+e в сцене.
Ответ #513 31 Октября, 2012, 17:05
0
просмотра айтемов (items) (последние с отображением айтема (изображение айтема))?

Нет программ, чтобы напрямую из списка итемов просмотреть её модель.
Проще всего использовать связку Morgh's Mount & Blade WB/WFAS Editor и Open-BRF editor
Из Morgh's эдитора копируете имя меша нужного итема и поиском в Open-BRF находите и просматриваете его модель.
 

Добавлено: 31 Октября, 2012, 17:07

Есть ли какие-нибудь программы для редактирования сцен

очень подробно о редактировании сцен
Ответ #514 01 Ноября, 2012, 18:03
0
Возможно ли реализовать несколько валют?
Ответ #515 01 Ноября, 2012, 18:07
0
Возможно ли реализовать несколько валют?
И пункты обмена?
В TLD несколько валют.
Ответ #516 01 Ноября, 2012, 19:09
0
Возможно ли реализовать несколько валют?
Наличность в игре по сути такой же troop_slot , только захардкореный. Но его значение легко вытаскивается в любую переменную операцией store_troop_gold, также изменяется операциями troop_add_gold и troop_remove_gold. Так что не проблема создать сколько угодно валют (новых  troop_slot), привязав основные игровые деньги к этим слотам (динамически изменяющиеся курсы и пр.). А дальше уж дело фантазии и техники, как всё это будет взаимодействовать.
Ответ #517 01 Ноября, 2012, 19:22
0
Возможно ли в ходе игры расширить глоб. карту; например какой-то там квест выполнил и карта расширилась.
Ответ #518 01 Ноября, 2012, 19:40
0
Нет. Карта динамически не меняется.
Ответ #519 01 Ноября, 2012, 19:41
0
uhanich, а перегородить чем-нибудь непроходимым карту можно, а потом это что-то убрать?

2. И всё-же как запретить изменять имя игрока (Игрока!), которое легко меняется в пункте меню "Игрок" (где хар-ки, навыки и прочее) ?
Ответ #520 01 Ноября, 2012, 19:56
0
а перегородить чем-нибудь непроходимым карту можно, а потом это что-то убрать?
Чисто теоретически...Создать два невидимых неподвижных отряда на карте (первый будет преградой) и тригером с определённой частотой проверять расстояние от него до отряда игрока. При расстоянии меньше определённого "отбрасывать" игрока ко второму отряду (есть такая операция party_relocate_near_party).  В теории должно работать. Не проверял.
И всё-же как запретить изменять имя игрока (Игрока!), которое легко меняется в пункте меню "Игрок" (где хар-ки, навыки и прочее) ?
Никак. По крайней мере в случае с самим игроком. Это захардкорено. Переименования компаньонов можно отслеживать в диалоге с ними и возвращать им старое имя.

ЗЫ. Настоятельно рекомендую проштудировать файл header_operations.py и поиском в остальных файлах модульки найти примеры применения тех или иных операций. Это сильно облегчает обучение и понимание структуры модульки :)
Ответ #521 01 Ноября, 2012, 20:07
0
uhanich, я не знаю, может у меня модулька натива какая-то другая, но у меня в ней ни одного комментария, а без комментариев поди разберись где, что и за что отвечает =)
В header_operations зачастую только описание применения ф-ции, типа:
jump_to_menu                           = 2060 # (jump_to_menu,<menu_id>)
Ответ #522 01 Ноября, 2012, 20:43
0
uhanich, я не знаю, может у меня модулька натива какая-то другая, но у меня в ней ни одного комментария, а без комментариев поди разберись где, что и за что отвечает =)
В header_operations зачастую только описание применения ф-ции, типа:
jump_to_menu                           = 2060 # (jump_to_menu,<menu_id>)

http://rusmnb.ru/index.php?topic=3629.0
Ответ #523 01 Ноября, 2012, 20:56
0
И всё-же как запретить изменять имя игрока (Игрока!)
Тут подумал. Всё таки можно. Если на старте игры куда нибудь записать имя игрока, а потом опять же тригером через определённые промежутки времени возвращать исходное имя. Костыль конечно, но работать будет.
Ответ #524 01 Ноября, 2012, 22:17
0
Есть ли в M&B Script какой-нить триггер или условие или ещё что, которое отвечало бы за нажатие определённой клавиши? (Типа: OnKeyPress)

<Т.е. если игрок на поле боя нажал такую-то клавишу, то произошло то-то.>
Фактически по нажатии на клавишу моментально изменится погода на сцене (на дождь), появится густой серый туман и прозвучит звук грома, а один (любой) из противников станет союзником. Длится сие чудо (гром, дождь, туман) будет секунд 20, а вот противник ставший союзником будет до конца боя. По окончанию боя он умрёт.

А, вот, пока писал ещё один вопрос появился:
Есть ли какая-нибудь команда выхода из цикла? (Типа: "break;" какого-нибудь. Здесь то она не так будет писаться конечно...)
« Последнее редактирование: 01 Ноября, 2012, 22:21 от Saturn35 »

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

Теги: