Голосование

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












Оформление



Пользователей
Сейчас на форуме
Пользователи: 8
Гостей: 468
Всего: 476

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

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

  • Сообщений: 296
  • За активную деятельность, связанную с публикациями и помощью другим посетителям
    • Просмотр профиля
0
« Ответ #750 : 07 Мая, 2014, 18:08 »
Тогда могу предложить следующее: в конце скрипта game_start вставьте вот это
(party_set_slot, "<идентификатор вашего замка>", slot_center_ex_faction, fac_neutral),

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

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

Ясно: надо было и тестировать как скрипт, а не пихать в триггер для миссии (они похоже не рассчитаны на объёмные конструкции).
« Последнее редактирование: 09 Мая, 2014, 10:14 от Дикий-дикий повар »
Без комментариев.
  • Сообщений: 296
  • За активную деятельность, связанную с публикациями и помощью другим посетителям
    • Просмотр профиля
0
« Ответ #751 : 12 Мая, 2014, 12:35 »
Помогите кто-нибудь, пожалуйста. Как я уже сказал, пишу скрипт (для построения юнитов различными строями). В конце скрипта у меня два цикла, для расчёта позиций и для поиска наиболее подходящего для позиции агента, один в другом (изначально расположил цикл для подбора агента в цикле для расчёта позиций). В цикле по агентам, как только находился более подходящий агент, происходила перепись его идентификатора из одной переменной в другую (похоже, что такое можно делать только в mission_templates), из которой брался идентификатор для скриптования.
...
    (get_distance_between_positions, ":distance_1", ":position", ":target_position"),
    (lt, ":distance_1", ":distance_2"),
    (assign, ":distance_2", ":distance_1"),
    (assign, ":agent_2", ":agent"),
   (try_end),
   (agent_set_scripted_destination, ":agent_2", ":target_position", 1),
   (assign, ":distance_2", 100000),
  (try_end),
На деле игра (как раз на этом-самом скриптовании) жаловалась на инвалидский идентификатор агента.
...Этот вариант в любом случае не подойдёт, т. к. будет сложновато (если вообще возможно) исключить для цикла идентификаторы уже заскриптованых агентов (в случае ежели они и до этого находились в заскриптованом состоянии). Посему решил сделать по-другому. Но ежели просто поменять циклы местами (внутри цикла по агентам цикл для расчёта позиций), то получается, что для каждого агента будут персонально просчитываться одни и те же позиции.
 Вот если бы разместить эти циклы отдельно один от другого: в первом позиции рассчитываются и записываются в регистры позиций, скажем с pos66 по pos109, а во-втором агенты будут по-очереди примеряться на каждую позицию и скриптоваться на более подходящую из них. Просто я не могу сообразить, как можно было бы осуществить запись расчётов на каждой интерацие в новый регистр.
Без комментариев.
  • Сообщений: 2766
  • За создание крупных модов и других особо сложных проектов За регистрацию на форуме не позже декабря 2016 года и не менее 2500 постов Выдается модераторам, достигнувшим значимых успехов на своем посту
    • Просмотр профиля
0
« Ответ #752 : 17 Мая, 2014, 21:57 »
Есть следующее меню:

Интересует пункт recrut_all: По слоту slot_town_num_unique_troop хранится значение 4. Но на экране отображается Recrut all (184 denars) вместо Recrut all (800 denars). Но деньги у игрока забирает как надо т.е 800 динаров. В чем ошибка???? :-\ :-\ :-\ :-\ :-\ :-\ :-\ :-\ :-\ :-\
1 + 2 + 3 + 4 + ... = ζ(-1) = -0.08(3)
1 - 1 + 1 - 1 + 1 - ... = 0.5
1 - 2 + 3 - 4 + 5 - ... = 0.25

На вопросы в ПС не отвечаю! Спрашивать в темах!
  • Сообщений: 3508
  • За создание крупных модов и других особо сложных проектов За активную деятельность, связанную с публикациями и помощью другим посетителям За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов
    • Просмотр профиля
0
« Ответ #753 : 18 Мая, 2014, 02:01 »
Ошибка в том, что блок команд пункта меню выполняется после активация этого пункта меню.
А строки формируются раньше.
Нужно вычисления, сколько будет стоит найм всех, перенести в блок команд всего меню.

Куда-то сюда

 [
    (party_get_slot, ":trp", "$current_town", slot_town_unique_troop),
    (str_store_troop_name_plural, s20, ":trp"),
  ],
 

Добавлено: 18 Мая, 2014, 02:04

...Этот вариант в любом случае не подойдёт, т. к. будет сложновато (если вообще возможно) исключить для цикла идентификаторы уже заскриптованых агентов (в случае ежели они и до этого находились в заскриптованом
Слоты агентов вам в помощь.
« Последнее редактирование: 18 Мая, 2014, 02:04 от Rongar »
  • Сообщений: 296
  • За активную деятельность, связанную с публикациями и помощью другим посетителям
    • Просмотр профиля
0
« Ответ #754 : 18 Мая, 2014, 15:44 »
Благодарю, Rongar. Возьму слот slot_agent_courage_score - всё равно собираюсь держать всех и постоянно в заскриптованом состоянии (в любом случае нужно будет попробовать добавить слотов). Теперь можно сказать, что скрипт принял нужную форму, только вот все агенты скриптуются на одну точку - ну да это уже мои проблемы (я знаю где ошибся).
Без комментариев.
  • Сообщений: 2766
  • За создание крупных модов и других особо сложных проектов За регистрацию на форуме не позже декабря 2016 года и не менее 2500 постов Выдается модераторам, достигнувшим значимых успехов на своем посту
    • Просмотр профиля
0
« Ответ #755 : 18 Мая, 2014, 18:11 »
Ошибка в том, что блок команд пункта меню выполняется после активация этого пункта меню.
А строки формируются раньше.
Нужно вычисления, сколько будет стоит найм всех, перенести в блок команд всего меню.

Куда-то сюда

 [
    (party_get_slot, ":trp", "$current_town", slot_town_unique_troop),
    (str_store_troop_name_plural, s20, ":trp"),
  ],

Не помогло
1 + 2 + 3 + 4 + ... = ζ(-1) = -0.08(3)
1 - 1 + 1 - 1 + 1 - ... = 0.5
1 - 2 + 3 - 4 + 5 - ... = 0.25

На вопросы в ПС не отвечаю! Спрашивать в темах!
  • Сообщений: 3508
  • За создание крупных модов и других особо сложных проектов За активную деятельность, связанную с публикациями и помощью другим посетителям За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов
    • Просмотр профиля
0
« Ответ #756 : 18 Мая, 2014, 21:15 »
Возьму слот slot_agent_courage_score - всё равно собираюсь держать всех и постоянно в заскриптованом состоянии (в любом случае нужно будет попробовать добавить слотов).
Слоты можно свои добавлять. Главное чтобы номера не пересекались с уже существующими.


Не помогло
Загадка какая-то. Примеров, когда так работает по коду дофига.
Две версии осталось только
1. Сменить регистр на что-то побольше. Возможно где-то переписывается.
2. Сделать через строку
(str_store_string,s11,блабалбал{reg0}),


 
  • Сообщений: 2766
  • За создание крупных модов и других особо сложных проектов За регистрацию на форуме не позже декабря 2016 года и не менее 2500 постов Выдается модераторам, достигнувшим значимых успехов на своем посту
    • Просмотр профиля
0
« Ответ #757 : 18 Мая, 2014, 22:37 »
Загадка какая-то. Примеров, когда так работает по коду дофига.
Две версии осталось только
1. Сменить регистр на что-то побольше. Возможно где-то переписывается.
2. Сделать через строку
(str_store_string,s11,блабалбал{reg0}),
Я использовал другой регистр (reg60). Оно помогло
1 + 2 + 3 + 4 + ... = ζ(-1) = -0.08(3)
1 - 1 + 1 - 1 + 1 - ... = 0.5
1 - 2 + 3 - 4 + 5 - ... = 0.25

На вопросы в ПС не отвечаю! Спрашивать в темах!
  • Сообщений: 892
  • За создание крупных модов и других особо сложных проектов За создание технических проектов различного характера
    • Просмотр профиля
0
« Ответ #758 : 19 Мая, 2014, 14:21 »
Подскажите на, что указывает данная ошибка, возникает через некоторое время  после боя, если не заходить в села, замки, города. (всю модульную перерыл понять не могу, при срабатывание забивает лог сообшений, номера партий могут быть разные)

script error on opcode:1680:Invalid Party ID: 2769;LINE NO:10:
 At Game triggers trigger no: 33 consequences.
 At Game triggers trigger no: 33 consequences.

(хотя бы в общих чертах где искать)
  • Сообщений: 296
  • За активную деятельность, связанную с публикациями и помощью другим посетителям
    • Просмотр профиля
0
« Ответ #759 : 19 Мая, 2014, 14:58 »
script error on opcode:1680:Invalid Party ID: 2769;LINE NO:10:
 At Game triggers trigger no: 33 consequences.
 At Game triggers trigger no: 33 consequences.
 =
сбой возникает при попытке использовать идентификатор агента в операции party_get_battle_opponent (смотрите в header_operations номер 1680) в триггере номер 33, 2769 - это насколько я понимаю значение, которое операция получила вместо идентификатора партии, и 10 - точно не знаю наверное строка в триггере.
Без комментариев.
  • Сообщений: 892
  • За создание крупных модов и других особо сложных проектов За создание технических проектов различного характера
    • Просмотр профиля
0
« Ответ #760 : 19 Мая, 2014, 15:26 »
Спасибо посмотрю
 

Добавлено: 19 Мая, 2014, 15:31

триггере номер 33
еще вопрос триггере номер 33 где искать.

 

Добавлено: 19 Мая, 2014, 16:18

Дикий-дикий повар
Все спасибо, нашел  :thumbup:
   
« Последнее редактирование: 19 Мая, 2014, 16:18 от Pavvvell »
  • Сообщений: 5
    • Просмотр профиля
0
« Ответ #761 : 24 Мая, 2014, 23:41 »
Объясните мне плиз:
1. Где находить размер гарнизона замка и города, и отрядов лордов и Гг. мне нужно установить 150, 400, 100 и 100 соответственно. И отключить влияние известности и харизмы на повышение кол-ва людей в отряде, только сто, не больше.
2.Как сделать чтобы с начала игры карта была в "тумане", то есть ни замков, ни городов, ни деревень ничего не было видно, только когда Гг проезжает рядом уже появляется и остается на всегда.
3.Чтобы в деревни нанимались только крестьяне, а не новобранцы культур. И найм их зависел от известности и отношения к деревне, например: с известностью в 100 ед и отношению в 10, Гг мог нанять от 5 до 7 крестьян.
П.С. если это где-то есть, то ссылку киньте. Заранее спасибо.
  • Сообщений: 76
    • Просмотр профиля
0
« Ответ #762 : 05 Июня, 2014, 22:28 »
Привет Именно он
1. Для этого тебе нужен Morghs M&B WB-WFAS Editor(скачать можно прямо с сайта если не ошибаюсь), в Party templates editor там изменяешь pt_kingdom_1_reinforcements_a, или pt_kingdom_2_reinforcements_a и всех остальных.
2. Также нужен Morghs M&B WB-WFAS Editor, в parties editor  там убираешь флажок always_visible, и все.
3. Для этого тебе понадобится МС(модульная система), там в module_scripts, находишь культуру фракции и находишь:
      (faction_set_slot, "fac_culture_1",  slot_faction_tier_1_troop, "trp_swadian_recruit"),

изменяешь на например:
      (faction_set_slot, "fac_culture_1",  slot_faction_tier_1_troop, "trp_farmer"),
и т.д.

Ссылки на скачивание:
-Morghs M&B WB-WFAS Editor:
http://rusmnb.ru/index.php?action=dldir;sa=details;lid=34
-МС(модульная система):
http://rusmnb.ru/index.php?action=dldir;sa=details;lid=185
P.S. Здесь же на сайте можно найти как ими пользоваться
  • Сообщений: 2766
  • За создание крупных модов и других особо сложных проектов За регистрацию на форуме не позже декабря 2016 года и не менее 2500 постов Выдается модераторам, достигнувшим значимых успехов на своем посту
    • Просмотр профиля
0
« Ответ #763 : 06 Июня, 2014, 19:55 »
Дана презентация:

Вызывается следующим образом из меню reports:

Результат на скрине mb4.jpg

Но не появляется надписть Declaration of War {s1} has declared war against {s2}!, там, где должна быть надпись (ожидание.jpg).
Как это исправить??? :-\ :-\ :-\ :-\ :-\ :-\
 

Добавлено: 06 Июня, 2014, 21:38

Уже исправил
« Последнее редактирование: 06 Июня, 2014, 21:38 от Janycz »
1 + 2 + 3 + 4 + ... = ζ(-1) = -0.08(3)
1 - 1 + 1 - 1 + 1 - ... = 0.5
1 - 2 + 3 - 4 + 5 - ... = 0.25

На вопросы в ПС не отвечаю! Спрашивать в темах!
  • Сообщений: 49
    • Просмотр профиля
0
« Ответ #764 : 09 Июня, 2014, 19:23 »
Добрый день. Народ, подскажите в чем проблема. Использовал скрипт на разделение денег. Условно на дукаты и динары
Однако, в магазинах как были цены в динарах, так и осталось. Аналогично и по еженедельным выплатам и доходам. Подскажите, в чем проблема может быть?
Зло неистребимо. Никакой человек не способен уменьшить его количество в мире. Он может несколько улучшить свою собственную судьбу, но всегда за счет ухудшения судьбы других. «Трудно быть богом». Братья Стругацкие
  • Сообщений: 892
  • За создание крупных модов и других особо сложных проектов За создание технических проектов различного характера
    • Просмотр профиля
0
« Ответ #765 : 12 Июня, 2014, 14:38 »
Подскажите, есть оператор который заставляет просчитать партию ее маршрут, объясняю когда мы заставляем партию при помощи назначения поведения следовать туда -то, она начинает движение по прямой к этой цели и только когда, во что-нибудь упрется (горы или реку), начинает просчитывать свой маршрут, а можно сделать чтоб сразу.
  • Сообщений: 2766
  • За создание крупных модов и других особо сложных проектов За регистрацию на форуме не позже декабря 2016 года и не менее 2500 постов Выдается модераторам, достигнувшим значимых успехов на своем посту
    • Просмотр профиля
0
« Ответ #766 : 12 Июня, 2014, 15:57 »
Подскажите, есть оператор который заставляет просчитать партию ее маршрут, объясняю когда мы заставляем партию при помощи назначения поведения следовать туда -то, она начинает движение по прямой к этой цели и только когда, во что-нибудь упрется (горы или реку), начинает просчитывать свой маршрут, а можно сделать чтоб сразу.
Оператора нет. Но ты можешь реализовать это через поиск в глубину (как в классической задаче про путника)
1 + 2 + 3 + 4 + ... = ζ(-1) = -0.08(3)
1 - 1 + 1 - 1 + 1 - ... = 0.5
1 - 2 + 3 - 4 + 5 - ... = 0.25

На вопросы в ПС не отвечаю! Спрашивать в темах!
  • Сообщений: 892
  • За создание крупных модов и других особо сложных проектов За создание технических проектов различного характера
    • Просмотр профиля
0
« Ответ #767 : 12 Июня, 2014, 16:44 »
Оператора нет. Но ты можешь реализовать это через поиск в глубину (как в классической задаче про путника)
Грузить будет.
  • Сообщений: 2766
  • За создание крупных модов и других особо сложных проектов За регистрацию на форуме не позже декабря 2016 года и не менее 2500 постов Выдается модераторам, достигнувшим значимых успехов на своем посту
    • Просмотр профиля
0
« Ответ #768 : 12 Июня, 2014, 20:29 »
Оператора нет. Но ты можешь реализовать это через поиск в глубину (как в классической задаче про путника)
Грузить будет.
Согласен.
1 + 2 + 3 + 4 + ... = ζ(-1) = -0.08(3)
1 - 1 + 1 - 1 + 1 - ... = 0.5
1 - 2 + 3 - 4 + 5 - ... = 0.25

На вопросы в ПС не отвечаю! Спрашивать в темах!
  • Сообщений: 892
  • За создание крупных модов и других особо сложных проектов За создание технических проектов различного характера
    • Просмотр профиля
0
« Ответ #769 : 15 Июня, 2014, 00:34 »
Заметил, одну странность, я нанял в таверне (на последние деньги) наемников, через некоторое время выдал жалование остался должен им около тысячи , в следующем бою их всех героически угробил, а долг остался, (как я понимаю они ко мне с того света ночью являются и деньги требуют), как это поправить чтоб долг соответствовал количеству бойцов и менялся когда их количество уменьшается,  а то как-то неуютно, ну зачем мертвецам деньги? Может кто хорошо в бютжет презенташион разбирается или уже редактировал ее, а то я туда залез там черт ногу сломит.
« Последнее редактирование: 15 Июня, 2014, 00:38 от Pavvvell »
  • Сообщений: 296
  • За активную деятельность, связанную с публикациями и помощью другим посетителям
    • Просмотр профиля
0
« Ответ #770 : 16 Июня, 2014, 14:25 »
Если уж разглядывать такие тонкости, то неплохо бы добавить: как будет происходить распределение "погашенного долга" между подопечными? Снять с крайних убитых (это будет выглядеть по меньшей мере странно)? Случайно обделить некоторых? Или обделить всех в процентах (особенно чудесно ежели в компании без торговцев: "та-а-ак, в прошлый раз я вам задолжал и раздал что было, некоторые из нас не вернулись из боя, это сколько же я должен доплатить?.. ...Эх мне бы секретаршу".)?
А что по презентации непонятно? Или надо целиком разбирать?
Без комментариев.
  • Сообщений: 892
  • За создание крупных модов и других особо сложных проектов За создание технических проектов различного характера
    • Просмотр профиля
0
« Ответ #771 : 16 Июня, 2014, 23:18 »
А что по презентации непонятно? Или надо целиком разбирать?
Непонятно следующее, как сделать отдельно долг который мы должны замкам и городам, и отдельно своему отряду, а то там считается все сразу в общем, и как выделить отдельно сколько мы должны отряду (где во общем самая главная текучка) не понято.
  • Сообщений: 296
  • За активную деятельность, связанную с публикациями и помощью другим посетителям
    • Просмотр профиля
0
« Ответ #772 : 17 Июня, 2014, 05:15 »
Найдите строку (assign, "$g_player_debt_to_party_members", ":player_new_debt_to_party_members"), - когда всё подсчитано и выведено на экран переписывает новые долги (локальная) в старые (глобальная), поскольку будем разделять, здесь понадобятся две сроки: для компании и для владений. Переменная ":player_new_debt_to_party_members" выше заполняется из reg0 и в этом же try-блоке выводится на экран, а в конце его вызывается скрипт провоцирующий реакцию компаньёнов с типом характера tmt_egalitarian. Содержимое этого блока, начиная с вывода текста и заканчивая (val_sub, ":cur_y", 27), (расстояние меж строк) надо удвоить: для вывода оплаты компании возьмите переменную ":total_wage" (в ней то, что вам нужно), для поселений ":all_centers_accumulated_taxes_and_rents" (налоги) + ":tax_lost" (потери налогов) + ":<где-нибудь после (val_add, ":net_change", ":net_profit"), сложите net_profit в новую переменную (объявите, естественно, вне цикла try_for_range)>" (производства).
Ещё что-нибудь?
Без комментариев.
  • Сообщений: 892
  • За создание крупных модов и других особо сложных проектов За создание технических проектов различного характера
    • Просмотр профиля
0
« Ответ #773 : 19 Июня, 2014, 04:50 »
Ещё что-нибудь?
Спасибо буду пробовать, если что спрошу.
  • Сообщений: 1286
  • Skype - zdevilbox
    • Просмотр профиля
0
« Ответ #774 : 20 Июня, 2014, 19:51 »
В каком файле описаны характеристики оружий/брони?
  • Ник в M&B: zDevilBox
  • Фракция: Свады

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


Powered by SMF 2.0 | SMF © Simple Machines LLC