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

Ответ #175 23 Ноября, 2011, 17:32
0
JoG, компьютер работает с битами. Другого он не умеет.
Флаг — это число. Но чтобы в module_items не писать  0x8, забиты константы.

« Последнее редактирование: 23 Ноября, 2011, 17:41 от Rongar »
Ответ #176 23 Ноября, 2011, 17:58
0
Rongar, понятно. Но сами эти числа не берутся с потолка, они ведь еще прописаны в движке, правда? Т.е. я не могу так просто добавить в header_items какую-то свою константу (вернее, могу, но она не будет работать?)

Еще я не понимаю, каким образом осуществляется связь между module_animations, где прописаны анимации, и header_items, где задекларированы разные наборы анимаций. И внятного тутора на эту тему нет, все они описывают просто замену анимаций.

Например, есть header_items, где прописан флаг:
itcf_thrust_onehanded                                = 0x0000000000000001
И есть module_animations, где описана последовательность анимаций для этого самого onehanded thrust:
Эта константа связана каким-то образом с этими тремя анимациями? Если да, то как?
Ответ #177 23 Ноября, 2011, 19:13
0
JoG, не знаю.
Могу лишь предположить.
Вариант  первый.  То, что для itcf_thrust_onehanded  нужно использовать acf_thrust зашито, в движке.
Вариант  второй. Чему что сопоставлять вычисляется каким-то не хитрмы образом тип сдвига на 32 бита.
Но скорее первое.
Так или иначе сопоставление между анимацией и предназначением зашито в двигло.
Ответ #178 21 Декабря, 2011, 12:47
0
Подскажите пожалуйста. Меняю старт игры. Надо чтобы две фракции после их выбора переносили ГГ на глобальную карту возле города
А одна запускала сюжет
Код
  ("start_phase_2",mnf_disable_all_keys,
    "You hear about East Europe, a land torn between rival kingdoms battling each other for supremacy,\
 a haven for knights and mercenaries,  cutthroats and adventurers, all willing to risk their lives in pursuit of fortune, power, or glory...\
 In this land which holds great dangers and even greater opportunities, you believe you may leave your past behind and start a new life.\
 You feel that finally, you hold the key of your destiny in your hands, free to choose as you will,\
 and that whatever course you take, great adventures will await you. Drawn by the stories you hear about Calradia and its kingdoms, you...",
    "none",
    [],
    [
      ("town_1",[(eq, "$current_startup_quest_phase", 0),],"take a ship to Marienburg, in the Teutonic Order.",
       [
         (assign, "$current_town", "p_town_6"),
         (assign, "$g_starting_town", "$current_town"),
         (assign, "$g_journey_string", "str_journey_to_praven"),
# (jump_to_menu, "mnu_start_phase_2_5"),
         (party_relocate_near_party, "p_main_party", "$g_starting_town", 2),
         (change_screen_map),
       ]),
       
      ("town_2",[(eq, "$current_startup_quest_phase", 0),],"join a caravan to Wilna, in the Grand Duchy of Lithuania.",
       [
         (assign, "$current_town", "p_town_8"),
         (assign, "$g_starting_town", "$current_town"),
         (assign, "$g_journey_string", "str_journey_to_reyvadin"),
# (jump_to_menu, "mnu_start_phase_2_5"),
         (party_relocate_near_party, "p_main_party", "$g_starting_town", 2),
         (change_screen_map),
       ]),
       
#      ("town_3",[(eq, "$current_startup_quest_phase", 0),],"join a caravan to Tulga, in the Khergit Khanate.",
#       [
#         (assign, "$current_town", "p_town_10"),
#         (assign, "$g_starting_town", "$current_town"),
#         (assign, "$g_journey_string", "str_journey_to_tulga"),
# (jump_to_menu, "mnu_start_phase_2_5"),
#         (party_relocate_near_party, "p_main_party", "$g_starting_town", 2),
#         (change_screen_return),
#       ]),
       
#      ("town_4",[(eq, "$current_startup_quest_phase", 0),],"take a ship to Sargoth, in the Kingdom of the Nords.",
#       [
#         (assign, "$current_town", "p_town_1"),
#         (assign, "$g_starting_town", "$current_town"),
#         (assign, "$g_journey_string", "str_journey_to_sargoth"),
# (jump_to_menu, "mnu_start_phase_2_5"),
#         (party_relocate_near_party, "p_main_party", "$g_starting_town", 2),
#         (change_screen_return),
       ]),
       
      ("town_5",[(eq, "$current_startup_quest_phase", 0),],"join a caravan to Krakow, in the Kingdom of Poland.",
       [
         (assign, "$current_town", "p_town_4"),
         (assign, "$g_starting_town", "$current_town"),
         (assign, "$g_journey_string", "str_journey_to_jelkala"),
(jump_to_menu, "mnu_start_phase_2_5"),
#         (party_relocate_near_party, "p_main_party", "$g_starting_town", 2),
#         (change_screen_return),
#       ]),
       
#      ("town_6",[(eq, "$current_startup_quest_phase", 0),],"join a caravan to Shariz, in the Sarranid Sultanate.",
#       [
#         (assign, "$current_town", "p_town_19"),
#         (assign, "$g_starting_town", "$current_town"),
#         (assign, "$g_journey_string", "str_journey_to_shariz"),
# (jump_to_menu, "mnu_start_phase_2_5"),
#         (party_relocate_near_party, "p_main_party", "$g_starting_town", 2),
#         (change_screen_return),
       ]),
 
  ("start_phase_2_5",mnf_disable_all_keys,
    "{!}{s16}",
    "none",
    [
      (str_store_party_name, s1, "$g_starting_town"),
      (str_store_string, s16, "$g_journey_string"),
    ],
    [
      ("continue",[], "Continue...",
       [
(jump_to_menu, "mnu_start_phase_3"),
       ]),
    ]
  ),

  ("start_phase_3",mnf_disable_all_keys,
    "{s16}^^You are exhausted by the time you find the inn in {s1}, and fall asleep quickly. However, you awake before dawn and are eager to explore your surroundings. You venture out onto the streets, which are still deserted. All of a sudden, you hear a sound that stands the hairs of your neck on end -- the rasp of a blade sliding from its scabbard...",
    "none",
    [     
      (assign, ":continue", 1),
      (try_begin),
        (eq, "$current_startup_quest_phase", 1),
#        (try_begin),
#          (eq, "$g_killed_first_bandit", 1),
#          (str_store_string, s11, "str_killed_bandit_at_alley_fight"),                   
#        (else_try),
#          (str_store_string, s11, "str_wounded_by_bandit_at_alley_fight"),
#        (try_end),
#        (jump_to_menu, "mnu_start_phase_4"),
#        (assign, ":continue", 0),
#      (else_try), 
#        (eq, "$current_startup_quest_phase", 3),
#        (try_begin),
#          (eq, "$g_killed_first_bandit", 1),
#          (str_store_string, s11, "str_killed_bandit_at_alley_fight"),                   
#        (else_try),
#          (str_store_string, s11, "str_wounded_by_bandit_at_alley_fight"),
#        (try_end),
        (jump_to_menu, "mnu_start_phase_4"),
        (assign, ":continue", 0),     
      (try_end), 
     
      (str_store_party_name, s1, "$g_starting_town"),
      (str_clear, s16),
      (eq, ":continue", 1),
    ],
    [
      ("continue",[], "Continue...",
       [         
         (assign, "$g_starting_town", "$current_town"),
         (call_script, "script_player_arrived"),
         (party_set_morale, "p_main_party", 100),
         (set_encountered_party, "$current_town"),
#         (call_script, "script_prepare_alley_to_fight"),
       ]),
    ]
  ),

  ("start_phase_4",mnf_disable_all_keys,
    "{s11}",
    "none",
    [     
#      (assign, ":continue", 1),
#      (try_begin), 
#        (eq, "$current_startup_quest_phase", 2),
#        (change_screen_return),       
#        (assign, ":continue", 0),
#      (else_try),
#        (eq, "$current_startup_quest_phase", 3),
#        (str_store_string, s11, "str_merchant_and_you_call_some_townsmen_and_guards_to_get_ready_and_you_get_out_from_tavern"),
#      (else_try),
#        (eq, "$current_startup_quest_phase", 4),
#        (try_begin),
#          (eq, "$g_killed_first_bandit", 1),
#          (str_store_string, s11, "str_town_fight_ended_you_and_citizens_cleaned_town_from_bandits"),
#        (else_try), 
#          (str_store_string, s11, "str_town_fight_ended_you_and_citizens_cleaned_town_from_bandits_you_wounded"),
#        (try_end),
#      (try_end),           
         
#      (eq, ":continue", 1),
    ],
    [
      ("continue",
#      [
#        (this_or_next|eq, "$current_startup_quest_phase", 1),
#        (eq, "$current_startup_quest_phase", 4),
#      ],
      "Continue...",
      [         
        (assign, "$town_entered", 1),
         
        (try_begin),
#          (eq, "$current_town", "p_town_1"),
#          (assign, ":town_merchant", "trp_nord_merchant"),
#          (assign, ":town_room_scene", "scn_town_1_room"),
#        (else_try), 
          (eq, "$current_town", "p_town_4"),
          (assign, ":town_merchant", "trp_npc11"),
          (assign, ":town_room_scene", "scn_town_4_tavern"),
#        (else_try), 
#          (eq, "$current_town", "p_town_6"),
#          (assign, ":town_merchant", "trp_swadian_merchant"),
#          (assign, ":town_room_scene", "scn_town_6_room"),
#        (else_try), 
#          (eq, "$current_town", "p_town_8"),
#          (assign, ":town_merchant", "trp_vaegir_merchant"),
#          (assign, ":town_room_scene", "scn_town_8_room"),
#        (else_try), 
#          (eq, "$current_town", "p_town_10"),
#          (assign, ":town_merchant", "trp_khergit_merchant"),
#          (assign, ":town_room_scene", "scn_town_10_room"),
#        (else_try), 
#          (eq, "$current_town", "p_town_19"),
#          (assign, ":town_merchant", "trp_sarranid_merchant"),
#          (assign, ":town_room_scene", "scn_town_19_room"),
       (try_end),       
         
        (modify_visitors_at_site, ":town_4_tavern"),     
        (reset_visitors),
        (set_visitor, 0, "trp_player"),                   
        (set_visitor, 9, ":town_merchant"),
       
        (assign, "$talk_context", tc_merchants_house),
                 
        (assign, "$dialog_with_merchant_ended", 0),                 
                 
        (set_jump_mission, "mt_meeting_danusia"),

        (jump_to_scene, ":town_4_tavern"),
        (change_screen_mission),         
      ]),       

#      ("continue",
#      [
#        (eq, "$current_startup_quest_phase", 3),
#      ],
#      "Continue...",
#      [         
#        (call_script, "script_prepare_town_to_fight"),
#      ]),             
    ]
  ),

Ошибки

Ответ #179 21 Декабря, 2011, 12:54
0


Добавлено: 21 Декабря, 2011, 12:58

« Последнее редактирование: 21 Декабря, 2011, 12:58 от Легионер »
Ответ #180 21 Декабря, 2011, 13:00
0
Легионер, не лишний. если убрать, то инвалид синтаксис
Эта строка у меня после шестого города осталась. По-этому тут ошибки нет
 

Добавлено: 21 Декабря, 2011, 13:03

Второе тоже пробовал, ошибки те же

Давай, если тебе не трудно, пришлю на проверку Гэйм менюс и еще чего если надо?
 

Добавлено: 21 Декабря, 2011, 13:07

Там вот чего еще в конце (после game_menus) компиляции пишет

save_game_menus(variables,variable_uses,tag_uses,quick_strings)

и
    ofile.write("menu_%s %d %s %s"%(game_menu[0],game_menu[1],string.replace(game_menu[2]," ","_"),game_menu[3]))
    save_statement_block(ofile,0,1, game_menu[4]  , variable_list, variable_uses,tag_uses,quick_strings)
« Последнее редактирование: 21 Декабря, 2011, 13:07 от Van »
Ответ #181 21 Декабря, 2011, 13:10
0
а здесь



примерно так, может что пропустил...
Ответ #182 21 Декабря, 2011, 13:26
0
Легионер, со второй ошибкой справился благодаря тебе :), но вот первая

ты прав, по идее там лишние скобки, но если их комментить, возникает ошибка синтаксиса
 

Добавлено: 21 Декабря, 2011, 13:29

все разобрался. сейчас буду проверять в игре
« Последнее редактирование: 21 Декабря, 2011, 13:29 от Van »
Ответ #183 24 Декабря, 2011, 10:59
0
Подскажите. Поменял старт. Теперь ГГ после выбора фракции оказывается на нужной сцене с нужными НПС и диалогами. Но с этой сцены не выйти по нажатию TAB, я даже прописал автоматический выход на глоб. карту после завершения диалога, однако он не действует.
Можно ли вообще сделать выход до диалога через TAB, ну а лучше после?

Миссия
  (
    "meeting_danusia",0,-1,
    "Meeting with the Danusia",
    [
      (0,mtef_team_0,af_override_horse,0,1,[]),
      (1,mtef_visitor_source|mtef_team_0,af_override_horse,0,1,[]),
      (2,mtef_visitor_source|mtef_team_0,af_override_horse,0,1,[]),
      (3,mtef_visitor_source|mtef_team_0,af_override_horse,0,1,[]),
      (4,mtef_visitor_source|mtef_team_0,af_override_horse,0,1,[]),
      (5,mtef_visitor_source|mtef_team_0,af_override_horse,0,1,[]),
      (6,mtef_visitor_source|mtef_team_0,af_override_horse,0,1,[]),
      (7,mtef_visitor_source|mtef_team_0,af_override_horse,0,1,[]),
      (8,mtef_visitor_source|mtef_team_0,af_override_horse,0,1,[]),
      (9,mtef_visitor_source|mtef_team_0,af_override_horse,0,1,[]),
    ],
    [
      (ti_on_agent_spawn, 0, 0, [],
      [             
        (store_trigger_param_1, ":agent_no"),

        (try_begin),
          (agent_get_troop_id, ":troop_no", ":agent_no"),
          (is_between, ":troop_no", "trp_npc6"),
          (agent_set_team, ":agent_no", 7),         
          (team_set_relation, 0, 7, 0),
        (try_end),               
      ]),

      (1, 0, ti_once, [],
      [
        (assign, "$dialog_with_danusia_ended", 0),
        (store_current_scene, ":cur_scene"),
        (scene_set_slot, ":cur_scene", slot_scene_visited, 1),
        (try_begin),
          (eq, "$sneaked_into_town", 1),
          (call_script, "script_music_set_situation_with_culture", mtf_sit_town_infiltrate),
        (else_try),
          (eq, "$talk_context", tc_tavern_talk),
          (call_script, "script_music_set_situation_with_culture", mtf_sit_tavern),
        (else_try),
          (call_script, "script_music_set_situation_with_culture", mtf_sit_town),
        (try_end),
      ]),
     
      (1, 0, 0,
      [       
        (assign, ":continue", 0),
        (try_begin),
          (ge, "$dialog_with_danusia_ended", 0),
          (assign, ":continue", 1),
        (else_try),
          (ge, "$dialog_with_danusia_ended", 0),
  (neg|conversation_screen_is_active),         

          (try_begin),
#            (eq, "$dialog_with_danusia_ended", 0),
            (check_quest_active, "qst_vow_knight"),
         (party_relocate_near_party, "p_main_party", "$g_starting_town", 2),
         (change_screen_return),
           (try_end), 
     
        (eq, ":continue", 1),
          (finish_mission),

      ],
 []),
    ]),
Ответ #184 24 Декабря, 2011, 11:57
0
ну дык у тебя там нет триггера, который выбрасывает из сцены при нажатии таба

вот самый простой (без условий, без всего - окажешься в том меню, откуда началась "мисия")
      (ti_tab_pressed, 0, 0, [],
       [(finish_mission,0)]),
Ответ #185 24 Декабря, 2011, 15:26
0
Штурмыч, спасибо! все получилось :)
 

« Последнее редактирование: 25 Декабря, 2011, 16:28 от Van »
Ответ #186 25 Декабря, 2011, 16:00
0
Как сделать перевал непроходимым, если на нем замок? Точнее, чтобы начинался разговор с сидящим в замке о пропуске и пр... Бегающий за игроком замок не очень.
Ответ #187 25 Декабря, 2011, 16:16
0
Муурн, тебе нужен триггер который будет запускать  диалоговое окно в том случае  если партия игрока находиться возле замка.
в самом окне вариант оплаты и отказа. если отказ  - спаунить партию игрока немного назад...но за дистанцию при которой запускается диалоговое окно. повозиться надо с стороной похода к замку.
Ответ #188 25 Декабря, 2011, 16:20
0
Понятно. Спасибо. С откидыванием проблемы вряд ли. Наверно: запоминаю позицию, подхожу на достаточное расстояние(т.е. один триггер подальше, второй близко), диалог. Если не пропустили, то возвращаю на позицию.
Ответ #189 25 Декабря, 2011, 16:29
0
Объясните пожалуйста. Я сделал квест, где надо одолеть бандитов.
Мне надо, что бы после победы, снова возникал диалог, но уже другой, с одним их побежденных бандитов.

Что для этого сделать?

Диалог с бандитами до битвы
  [party_tpl|pt_robbers|auto_proceed, "start", [], "{!}NOT SHOWN", "robbers_dialog_prebattle_1",[]],
  [anyone, "robbers_dialog_prebattle_1", [], "Well met! It has been a long while since we have seen a noble personage. What brings you here, your grace?", "robbers_dialog_prebattle_2",[]],   
  [anyone|plyr, "robbers_dialog_prebattle_2", [], "You speak with an eloquent tongue... I would presume you fight just as well? I am on the hunt for robbers who stole the daughter of Pan Yuranda -- perhaps that would be you?", "robbers_dialog_prebattle_3",[]],   
  [anyone, "robbers_dialog_prebattle_3", [], "We are no robbers, but fair and upright forest brothers. We do for ourselves the best we can, rob from the rich, and give to the poor -- and take but a token share for ourselves, as reward for our daring feats of arms.", "robbers_dialog_prebattle_4",[]],   
  [anyone|plyr, "robbers_dialog_prebattle_4", [], "I'm looking Yuranda daughter, and if you have it, then you return it to me!", "robbers_dialog_prebattle_5",[]],   
  [anyone, "robbers_dialog_prebattle_5", [], "Strange business this. Some nameless passer-by dares to slander us. Aye, lads, a long time has passed since our daggers bit flesh. Let's test the color of this noble fool's blood. Get him!", "close_window",[[encounter_attack]]],     

После битвы
  [trp_looter,"start", [], "Pan knight, have mercy on me, do not kill!", "looter_talk",[]],

  [trp_looter|plyr,"looter_talk", [], "Well, I pity you.", "looter_talk_2",[]],

  [trp_looter|plyr,"looter_talk", [], "No dog, you will die for what he dared to raise on my sword!", "close_window",[]],

  [trp_looter,"looter_talk_2", [], "I know who stole her daughter Yuranda.", "looter_talk_3",[]],

  [trp_looter|plyr,"looter_talk_3", [], "Who is it? Speak!.", "looter_talk_4",[]],

  [trp_looter,"looter_talk_4", [], "The Crusaders ...", "looter_talk_5",[]],

  [trp_looter|plyr,"looter_talk_5", [], "Dogs of the knights. That's all that you know?","looter_talk_6",[]],

  [trp_looter|plyr,"looter_talk_5", [], "I destroyed all their castles, and slew all the Teutons. Forward to my troops, for me!", "close_window",[]],


  [trp_looter,"looter_talk_6", [], "Even though I've heard a crusader went to Krakow to the knyginia, to prove that the order was not involved in the kidnapping.", "looter_talk_7",[]],

  [trp_looter|plyr,"looter_talk_7", [], "Thank you. Join the world ...", "close_window",[]],


Нужно на подобии диалога "ally_thanks_meet", но как он вызывается после победы вместе с союзником, я так и не разобрался =/
Ответ #190 25 Декабря, 2011, 17:30
0
Как проверить фракцию города? Не могу найти в header_operations.
« Последнее редактирование: 26 Декабря, 2011, 18:07 от Муурн »
Ответ #191 27 Декабря, 2011, 11:45
0
Как проверить фракцию города? Не могу найти в header_operations.
store_faction_of_party
Ответ #192 06 Января, 2012, 11:17
0
Можно ли установить характеристику напрямую без обнуления?
Ответ #193 06 Января, 2012, 13:12
0
Какую характеристику? =/
(troop_raise_attribute,<troop_id>,<attribute_id>,<value>),         -атрибуты.
(troop_raise_skill,<troop_id>,<skill_id>,<value>),                         -скилы.
(troop_raise_proficiency,<troop_id>,<proficiency_no>,<value>),  -знания.
Ответ #194 06 Января, 2012, 13:34
0
Какую характеристику? =/
(troop_raise_attribute,<troop_id>,<attribute_id>,<value>),         -атрибуты.
(troop_raise_skill,<troop_id>,<skill_id>,<value>),                         -скилы.
(troop_raise_proficiency,<troop_id>,<proficiency_no>,<value>),  -знания.
Любую. А troop_raise_attribute/skill, так понимаю, повышают. Мне желательно, чтобы у трупса с силой n при команде troop_raise_attribute (...) не повысилась сила на n1, а стала n1.
Ответ #195 06 Января, 2012, 14:27
0
не хочешь, не обнуляй, но смысл от этого не меняется

Ответ #196 06 Января, 2012, 15:17
0
Ответ #197 08 Января, 2012, 15:21
0
всем привет
а какой скрипт   #script_party_count_members_with_full_health более правильный в версии MS1.134(Слева) или MS1.143(справа)

просто при старте в 1.143 не достаточно набрать 5 рекрутов(нужно 6) ,а в версии 1.134 - 5 рекрутов
да ,они похоже ,но разные
« Последнее редактирование: 08 Января, 2012, 15:36 от bogmir »
Ответ #198 08 Января, 2012, 15:33
0
А они отличаются? И выкладывай в следующий раз текст, плиз.
Ответ #199 08 Января, 2012, 16:55
0
bogmir, а случаем не в этом ли куске из диалогов дело?

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

Теги: