Голосование

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












Оформление



Пользователей
  • Всего: 28887
  • Последний: EnaSevol
Сейчас на форуме
Пользователи: 4
Гостей: 539
Всего: 543

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

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

  • Сообщений: 2766
  • За создание крупных модов и других особо сложных проектов За регистрацию на форуме не позже декабря 2016 года и не менее 2500 постов Выдается модераторам, достигнувшим значимых успехов на своем посту
    • Просмотр профиля
0
« Ответ #450 : 11 Августа, 2012, 16:53 »
само меню написано неправильно. расмотрите меню
Ха-ха
Правильно оно написано
1 + 2 + 3 + 4 + ... = ζ(-1) = -0.08(3)
1 - 1 + 1 - 1 + 1 - ... = 0.5
1 - 2 + 3 - 4 + 5 - ... = 0.25

На вопросы в ПС не отвечаю! Спрашивать в темах!
  • Сообщений: 2562
  • За регистрацию на форуме не позже декабря 2016 года и не менее 2500 постов
    • Просмотр профиля
    • Портфолио
0
« Ответ #451 : 11 Августа, 2012, 17:25 »
верно :embarrassed:. сбило с толку куча квадратных скобок.
  • Сообщений: 13
    • Просмотр профиля
    • Мой личный блог
0
« Ответ #452 : 12 Августа, 2012, 11:45 »
Всё равно не хочет работать вызывается стандартное меню города помогите пожалуйста!
  • Ник в M&B: Кутайс
  • Сообщений: 317
    • Просмотр профиля
0
« Ответ #453 : 12 Августа, 2012, 11:58 »
Yionex, покажи весь свой измененный скрипт "game_event_party_encounter" и полностью свое меню "kazemat_enter".

По моему, ты в скрипте не в то место добавил. До него условие могло просто-напросто не дойти.
Багов в чужих скриптах не исправляю! Скриптов по просьбе не пишу и на заказ не делаю! Я всего лишь любитель поиграть в M&B, и ничего более.
  • Сообщений: 13
    • Просмотр профиля
    • Мой личный блог
0
« Ответ #454 : 12 Августа, 2012, 12:08 »
("game_event_party_encounter",
   [
       (store_script_param_1, "$g_encountered_party"),
       (store_script_param_2, "$g_encountered_party_2"),# encountered_party2 is set when we come across a battle or siege, otherwise it's a negative value
#       (store_encountered_party, "$g_encountered_party"),
#       (store_encountered_party2,"$g_encountered_party_2"), # encountered_party2 is set when we come across a battle or siege, otherwise it's a minus value
       (store_faction_of_party, "$g_encountered_party_faction","$g_encountered_party"),
       (store_relation, "$g_encountered_party_relation", "$g_encountered_party_faction", "fac_player_faction"),
             
       (party_get_slot, "$g_encountered_party_type", "$g_encountered_party", slot_party_type),
       (party_get_template_id,"$g_encountered_party_template","$g_encountered_party"),
#       (try_begin),
#         (gt, "$g_encountered_party_2", 0),
#         (store_faction_of_party, "$g_encountered_party_2_faction","$g_encountered_party_2"),
#         (store_relation, "$g_encountered_party_2_relation", "$g_encountered_party_2_faction", "fac_player_faction"),
#         (party_get_template_id,"$g_encountered_party_2_template","$g_encountered_party_2"),
#       (else_try),
#         (assign, "$g_encountered_party_2_faction",-1),
#         (assign, "$g_encountered_party_2_relation", 0),
#         (assign,"$g_encountered_party_2_template", -1),
#       (try_end),

#NPC companion changes begin
       (call_script, "script_party_count_fit_regulars", "p_main_party"),
       (assign, "$playerparty_prebattle_regulars", reg0),

#        (try_begin),
#            (assign, "$player_party__regulars", 0),
#            (call_script, "script_party_count_fit_regulars", "p_main_party"),
#            (gt, reg0, 0),
#            (assign, "$player_party_contains_regulars", 1),
#        (try_end),
#NPC companion changes end


       (assign, "$g_last_rest_center", -1),
       (assign, "$talk_context", 0),
       (assign,"$g_player_surrenders",0),
       (assign,"$g_enemy_surrenders",0),
       (assign, "$g_leave_encounter",0),
       (assign, "$g_engaged_enemy", 0),
#       (assign,"$waiting_for_arena_fight_result", 0),
#       (assign,"$arena_bet_amount",0),
#       (assign,"$g_player_raiding_village",0),
       (try_begin),
         (neg|is_between, "$g_encountered_party", centers_begin, centers_end),
         (rest_for_hours, 0), #stop waiting
         (assign, "$g_infinite_camping", 0),
       (try_end),
#       (assign, "$g_permitted_to_center",0),
       (assign, "$new_encounter", 1), #check this in the menu.
       (try_begin),
         (lt, "$g_encountered_party_2",0), #Normal encounter. Not battle or siege.
         (try_begin),
           (party_slot_eq, "$g_encountered_party", slot_party_type, spt_town),
           (jump_to_menu, "mnu_castle_outside"),
         (else_try),
           (party_slot_eq, "$g_encountered_party", slot_party_type, spt_castle),
           (jump_to_menu, "mnu_castle_outside"),
         (else_try),
           (party_slot_eq, "$g_encountered_party", slot_party_type, spt_ship),
           (jump_to_menu, "mnu_ship_reembark"),
         (else_try),
           (party_slot_eq, "$g_encountered_party", slot_party_type, spt_village),
           (jump_to_menu, "mnu_village"),
         (else_try),
           (party_slot_eq, "$g_encountered_party", slot_party_type, spt_cattle_herd),
           (jump_to_menu, "mnu_cattle_herd"),
         (else_try),
           (is_between, "$g_encountered_party", training_grounds_begin, training_grounds_end),
           (jump_to_menu, "mnu_training_ground"),
(else_try), 
   (party_get_template_id, ":template", "$g_encountered_party"),
   (ge, ":template", "pt_steppe_bandit_lair"),
   (lt, ":template", "pt_bandit_lair_templates_end"),
   (assign, "$loot_screen_shown", 0),
#    (call_script, "script_encounter_init_variables"),
   (jump_to_menu, "mnu_bandit_lair"),
         (else_try),
           (eq, "$g_encountered_party", "p_zendar"),
           (jump_to_menu, "mnu_zendar"),
[color=red](else_try),
           (eq, "$g_encountered_party", "p_kazemat"),
           (jump_to_menu, "mnu_kazemat_enter"),[/color]
(else_try),
           (eq, "$g_encountered_party", "p_salt_mine"),
           (jump_to_menu, "mnu_salt_mine"),
         (else_try),
           (eq, "$g_encountered_party", "p_four_ways_inn"),
           (jump_to_menu, "mnu_four_ways_inn"),
         (else_try),
           (eq, "$g_encountered_party", "p_test_scene"),
           (jump_to_menu, "mnu_test_scene"),
         (else_try),
           (eq, "$g_encountered_party", "p_battlefields"),
           (jump_to_menu, "mnu_battlefields"),
         (else_try),
           (eq, "$g_encountered_party", "p_training_ground"),
           (jump_to_menu, "mnu_tutorial"),
         (else_try),
           (eq, "$g_encountered_party", "p_camp_bandits"),           
           (jump_to_menu, "mnu_camp"),
         (else_try),
           (jump_to_menu, "mnu_simple_encounter"),
         (try_end),
       (else_try), #Battle or siege
         (try_begin),
           (this_or_next|party_slot_eq, "$g_encountered_party", slot_party_type, spt_town),
           (party_slot_eq, "$g_encountered_party", slot_party_type, spt_castle),
           (try_begin),
             (eq, "$auto_enter_town", "$g_encountered_party"),
             (jump_to_menu, "mnu_town"),
           (else_try),
             (eq, "$auto_besiege_town", "$g_encountered_party"),
             (jump_to_menu, "mnu_besiegers_camp_with_allies"),
           (else_try),
             (jump_to_menu, "mnu_join_siege_outside"),
           (try_end),
         (else_try),
           (jump_to_menu, "mnu_pre_join"),
         (try_end),
       (try_end),
       (assign,"$auto_enter_town",0),
       (assign,"$auto_besiege_town",0),
   
      ]),

  (
    "kazemat_enter",mnf_auto_enter,
    "You enter the kazemat's.",
    "none",
    [],
    [
      ("enter",[],"Enter.",[[set_jump_mission,"mt_town_center"],[jump_to_scene,"scn_town_1_room"],[change_screen_mission]]),
      ("leave",[],"Leave.",[[leave_encounter],[change_screen_return]]),
    ]
  ),
« Последнее редактирование: 12 Августа, 2012, 12:12 от Yionex »
  • Ник в M&B: Кутайс
  • Сообщений: 317
    • Просмотр профиля
0
« Ответ #455 : 12 Августа, 2012, 12:22 »
Если верить твоим словам о стандартном меню города, то, вероятно, самое первое условие
Цитировать (выделенное)
      (try_begin),
         (lt, "$g_encountered_party_2",0), #Normal encounter. Not battle or siege.
         (try_begin),
           (party_slot_eq, "$g_encountered_party", slot_party_type, spt_town),
           (jump_to_menu, "mnu_castle_outside"),

         (else_try),
           ...
выполняется раньше. И, соответственно, ни одно последующее else_try не выполняется вообще.
  Попробуй вот так:
Цитировать (выделенное)
       (try_begin),
         (lt, "$g_encountered_party_2",0), #Normal encounter. Not battle or siege.
         (try_begin),
           (eq, "$g_encountered_party", "p_kazemat"),
           (jump_to_menu, "mnu_kazemat_enter"),
         (else_try),

           (party_slot_eq, "$g_encountered_party", slot_party_type, spt_town),
           (jump_to_menu, "mnu_castle_outside"),
         (else_try),
           (party_slot_eq, "$g_encountered_party", slot_party_type, spt_castle),
           (jump_to_menu, "mnu_castle_outside"),
         (else_try),
           (party_slot_eq, "$g_encountered_party", slot_party_type, spt_ship),
           (jump_to_menu, "mnu_ship_reembark"),
         (else_try),
           ...

P.S.: В теге "code" теги не работают ) Он для того и сделан, чтобы показывать текст "как есть". Для цвета, шрифта и т.д. используй цитату (или спойлер).
Багов в чужих скриптах не исправляю! Скриптов по просьбе не пишу и на заказ не делаю! Я всего лишь любитель поиграть в M&B, и ничего более.
  • Сообщений: 13
    • Просмотр профиля
    • Мой личный блог
0
« Ответ #456 : 12 Августа, 2012, 12:28 »
Нет не получилось
  • Ник в M&B: Кутайс
  • Сообщений: 317
    • Просмотр профиля
0
« Ответ #457 : 12 Августа, 2012, 12:42 »
  А в parties этот город точно называется "kazemat"?
  Вот у меня добавление
Цитировать (выделенное)
       (try_begin),
         (lt, "$g_encountered_party_2",0), #Normal encounter. Not battle or siege.
         (try_begin),
           (eq, "$g_encountered_party", "p_town_16"),
           (jump_to_menu, "mnu_village"),
         (else_try),

           (party_slot_eq, "$g_encountered_party", slot_party_type, spt_town),
           (jump_to_menu, "mnu_castle_outside"),
         (else_try),
безотказно открывает меню деревни в Дириме.
Вероятно, у тебя $g_encountered_party != "p_kazemat", так как сам город имеет иной ID.
Багов в чужих скриптах не исправляю! Скриптов по просьбе не пишу и на заказ не делаю! Я всего лишь любитель поиграть в M&B, и ничего более.
  • Сообщений: 13
    • Просмотр профиля
    • Мой личный блог
0
« Ответ #458 : 12 Августа, 2012, 12:45 »
Цитировать (выделенное)
("kazemat","Kazemat's",icon_town|pf_town, no_menu, pt_none, fac_kingdom_7,0,ai_bhvr_hold,0,(18,60),[]), 


Всё заработало незнаю как но просто поставил модульку заново и всё заново написал

И ещё не подскажешь как посмотреть все сцены в игре с их названием?
« Последнее редактирование: 12 Августа, 2012, 12:54 от Yionex »
  • Ник в M&B: Кутайс
  • Сообщений: 749
    • Просмотр профиля
0
« Ответ #459 : 12 Августа, 2012, 13:12 »
Yionex, module_scenes.py
а если названия как в игре, то тогда в module_strings. А если русские то в modules/%module%/languages/ru/game_strings.csv
  • Ник в M&B: ValerBOSS
  • Сообщений: 317
    • Просмотр профиля
0
« Ответ #460 : 12 Августа, 2012, 13:13 »
И ещё не подскажешь как посмотреть все сцены в игре с их названием?
Ну как бы все сцены прописаны в "module_scenes.py". Но это какой-то слишком простой ответ =). Наверное, я не понял вопроса.
 

Добавлено: 12 Августа, 2012, 13:16

Опоздал с ответом на 10 секунд  :D
Багов в чужих скриптах не исправляю! Скриптов по просьбе не пишу и на заказ не делаю! Я всего лишь любитель поиграть в M&B, и ничего более.
  • Сообщений: 13
    • Просмотр профиля
    • Мой личный блог
0
« Ответ #461 : 12 Августа, 2012, 14:13 »
Спасибо но вот теперь у меня возник такой вопрос как поместить определённого npc в определённый город и сцену???
  • Ник в M&B: Кутайс
  • Сообщений: 2766
  • За создание крупных модов и других особо сложных проектов За регистрацию на форуме не позже декабря 2016 года и не менее 2500 постов Выдается модераторам, достигнувшим значимых успехов на своем посту
    • Просмотр профиля
0
« Ответ #462 : 12 Августа, 2012, 15:28 »
Спасибо но вот теперь у меня возник такой вопрос как поместить определённого npc в определённый город и сцену???
["Mardhug","Mardhug","Mardhug",tf_hero|tf_guarantee_all, scn_town_1_tavern|entry(30),reserved, fac_commoners,[itm_surgeon,itm_coif_2,itm_blue_hose],def_attrib|level(4),wp(20),knows_common, 0x000000000000040000005a5461a4c18c],

Нужное выделил красным
1-ое сцена (scn_town_1_tavern)
2-ое точка входа (entry(30))
1 + 2 + 3 + 4 + ... = ζ(-1) = -0.08(3)
1 - 1 + 1 - 1 + 1 - ... = 0.5
1 - 2 + 3 - 4 + 5 - ... = 0.25

На вопросы в ПС не отвечаю! Спрашивать в темах!
  • Сообщений: 13
    • Просмотр профиля
    • Мой личный блог
0
« Ответ #463 : 12 Августа, 2012, 15:40 »
А скриптами можно как нибудь??
  • Ник в M&B: Кутайс
  • Сообщений: 2562
  • За регистрацию на форуме не позже декабря 2016 года и не менее 2500 постов
    • Просмотр профиля
    • Портфолио
0
« Ответ #464 : 12 Августа, 2012, 16:03 »
(set_visitor, 45, "trp_fugitive"),(45 - entry_point)
(set_jump_mission,"mt_village_center"), выбор миссии в мишион теплс
(jump_to_scene,":village_scene"), выбор сцены
(change_screen_mission), переход
в мишион теплс в нужной миссии должна быть точка входа.
(45, mtef_visitor_source,af_override_horse|af_override_weapons|af_override_head,0,1,[]),

с флагом mtef_visitor_source
если тот вариант что предлагал Janycz, то mtef_scene_source.
вроде так если память не подводит.

  • Сообщений: 13
    • Просмотр профиля
    • Мой личный блог
0
« Ответ #465 : 12 Августа, 2012, 16:18 »
А вот возможно будет ли сделать что после выполнения определённой миссии город передаются другой фракции или вобще в него нельзя заходить и как вобще делать проверки на выполнение чего нибудь?

 
  • Ник в M&B: Кутайс
  • Сообщений: 2562
  • За регистрацию на форуме не позже декабря 2016 года и не менее 2500 постов
    • Просмотр профиля
    • Портфолио
0
« Ответ #466 : 12 Августа, 2012, 17:19 »
http://rusmnb.ru/index.php?topic=3629.msg124655#msg124655
здесь доступно вполне описано. проверки осуществляются через операции слотов, либо проверяется на равенство/неравенство/больше/меньше, значение которое хранится в переменных - как в локальных ":destination", так и в глобальных "$g_destination",
Ответ на первый вопрос - все можно.
  • Сообщений: 1027
  • За создание технических проектов различного характера
    • Просмотр профиля
    • WarHammer Fantasy Mod для WarBand.
0
« Ответ #467 : 24 Августа, 2012, 20:48 »
Есть ли возможность заставить операцию повторяться до тех пор, пока условия не будут удовлетворены, до победного, так сказать? Конкретнее вот тут:

(0, 0, 0, [
       (get_max_players, ":num_players"),                   
       (try_for_range, ":player", 0, ":num_players"),
       (ge, ":player", 1),
       (player_is_active, ":player"),
       (player_get_agent_id, ":other", ":player"),
       (agent_get_wielded_item,":atm",":other",0),

нужно что бы строка  (ge, ":player", 1), повторялась до тех пор, пока игроков действительно не станет 1 или более. Без этой строки скрипт за считанные секунды загаживает чат сообщениями об ошибке, однако после спауна первого игрока всё встаёт в норму. С нею же он просто отключается, так как при запуске карты игроков нет.
  • Сообщений: 317
    • Просмотр профиля
0
« Ответ #468 : 24 Августа, 2012, 21:32 »
Андреус Ас,
В модульной системе невозможно в любом месте создать бесконечно замкнутый цикл. Это сделано специально. Но, тем не менее, в некоторых местах доступны интервалы повторения блока операций.

Зачем отлавливать момент спавна бесконечным циклом? Почему просто не сделать вот так:
Цитировать (выделенное)
(ti_on_agent_spawn, 0, 0, [
    # doing something...

Если хоть кто-то заспавнился - игроков уже в любом случае 1 или более.

А вообще, надо брать пример с разработчиков =)
Например:
Цитировать (выделенное)
common_battle_order_panel_tick = (
  0.1, 0, 0, [],
  [
    (is_presentation_active, "prsnt_battle"),
    (call_script, "script_update_order_panel_statistics_and_map"),
    ])
« Последнее редактирование: 24 Августа, 2012, 21:37 от Arantir »
Багов в чужих скриптах не исправляю! Скриптов по просьбе не пишу и на заказ не делаю! Я всего лишь любитель поиграть в M&B, и ничего более.
  • Сообщений: 2562
  • За регистрацию на форуме не позже декабря 2016 года и не менее 2500 постов
    • Просмотр профиля
    • Портфолио
0
« Ответ #469 : 24 Августа, 2012, 23:57 »
Arantir, почему невозможно? :-\все зависти от условий блока тригера, каждый фрейм будет работать и пробегать по всем агентам и отлавливать тех что заданы.
Андреус вопрос непонятен. условия выполняются скрипт работает. если хоч поставь    (ge, ":player", 0), тогда и ошибок не будет. а так у тебя проверка на то что хоть один но должен быть.
  • Сообщений: 317
    • Просмотр профиля
0
« Ответ #470 : 25 Августа, 2012, 00:15 »
Arantir, почему невозможно? :-\все зависти от условий блока тригера, каждый фрейм будет работать и пробегать по всем агентам и отлавливать тех что заданы.

По моему первое и третье предложения моего сообщения уже и так ответили на этот вопрос.
Объясняю =)
1) Нельзя вот так вот взять и в, к примеру, module_scripts внутри какого-то скрипта сделать бесконечный цикл.
2) Можно делать что-либо периодически неограниченное количество раз при помощи специально созданных для этого модулей. Например, module_simple_triggers на глобальной карте, module_mission_templates для сцен (например, битва, прогулка по городу, зал в замке).

Андреус Ас, вероятно, привел скрипт из module_mission_templates и поставил первым параметром ноль. А это период между повторными выполнениями блока кода внутри триггера (ноль значит скрипт не повторяется). А это всего-лишь один триггер из многих возможных в миссии. Соответственно можно вместо просто придумивания какого-то бесконечного цикла запихнуть все это в отдельный триггер с периодом выполнения 0.1 сек. и впихнуть где-нибудь в требуемом месте миссии.

p.s.: У меня редко получается внятно объяснить. Хорошим учителем мне явно не стать  :laught:
« Последнее редактирование: 25 Августа, 2012, 00:20 от Arantir »
Багов в чужих скриптах не исправляю! Скриптов по просьбе не пишу и на заказ не делаю! Я всего лишь любитель поиграть в M&B, и ничего более.
  • Сообщений: 2562
  • За регистрацию на форуме не позже декабря 2016 года и не менее 2500 постов
    • Просмотр профиля
    • Портфолио
0
« Ответ #471 : 25 Августа, 2012, 01:02 »
Arantir, ничего не понял , но
0,0,0, это
1 - проверяется каждый фрейм
2 - ноль это задержка с которой сработает триггер
3 0  -это сколько раз
а бесконечный цикл зависит от условий
  • Сообщений: 317
    • Просмотр профиля
0
« Ответ #472 : 25 Августа, 2012, 01:16 »
Уверен? =)
Цитировать (выделенное)
common_battle_order_panel_tick = (
  0.1, 0, 0, [],
  [
    (is_presentation_active, "prsnt_battle"),
    (call_script, "script_update_order_panel_statistics_and_map"),
    ])
Обновляет панель статистики (Backspace) в бою каждые 0.1 секунды.


« Последнее редактирование: 25 Августа, 2012, 01:27 от Arantir »
Багов в чужих скриптах не исправляю! Скриптов по просьбе не пишу и на заказ не делаю! Я всего лишь любитель поиграть в M&B, и ничего более.
  • Сообщений: 2562
  • За регистрацию на форуме не позже декабря 2016 года и не менее 2500 постов
    • Просмотр профиля
    • Портфолио
0
« Ответ #473 : 25 Августа, 2012, 02:09 »
уверен.
1) Check interval: How frequently this trigger will be checked
именно. но не с 0,1 секунды как ты пишешь , а с каким то своим внутреигровым временем. на глобальной карте то понятно 0,1 игрового часа. а в мишион темплс это как то неясно. но явно не секунды. сидел с секундомером мерял. :p
0 это не проверка  на то что он
Цитировать (выделенное)
(ноль значит скрипт не повторяется).
а именно с постояной проверкой каждый миг игрового времени. то есть интервал отсутствует. а 0,1 это с интервалом в 0,1.
 

Добавлено: 25 Августа, 2012, 02:17

Цитировать (выделенное)
А это период между повторными выполнениями блока кода внутри триггера (ноль значит скрипт не повторяется)
поставь ti_onse
0,0,ti_onse, и триггер проверится только раз.
вот и не будет повторятся
« Последнее редактирование: 25 Августа, 2012, 02:17 от Легионер »
  • Сообщений: 317
    • Просмотр профиля
0
« Ответ #474 : 25 Августа, 2012, 02:18 »
Легионер, 1 равняется ровно-ровно 1 секунде в сценах и 1 игровому часу на глобальной карте.
Но в сценах - именно реальные секунды.
Багов в чужих скриптах не исправляю! Скриптов по просьбе не пишу и на заказ не делаю! Я всего лишь любитель поиграть в M&B, и ничего более.

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


Powered by SMF 2.0 | SMF © Simple Machines LLC