Bücher Tweaken

正在查看此主题的用户

Khalim

Sergeant
Hi!

Gibt es eine Möglichkeit um die Bücher im Spiel so zu ändern, sodass der Bonus nur temporär anstatt permanent ist?

Temporär wäre zum Beispiel das Trainer buch was +1 auf Trainer gibt. Im Gegenzug dazu gibt Das Handel Buch dauerhaft +1 auf Handeln.

Der Grund warum ich das gerne ändern würde ist, weil es die Charakterplanung wesentlich leichter macht.

Zum Beispiel überlege ich mir gerne wie mein Character am Ende aussehen soll, weiss aber nicht bis zu welchem Level ich komme. Dadurch kommt es zu der Unsicherheit, dass man Bücher "ungünstig nutzt".

Ein so ein Beispiel wäre, Geschick 18 anzustreben um Waffenkunst auf 6 zu skillen und sich +1 durch das Buch zu holen. Blöd nur, wenn man im fortgeschrittenen Stadtion Geschick auf 21 skillt, was dann in hinsicht auf den Skill Waffenkunst unnötig ist, da man es nicht auf 8 skillen kann.

Das gleiche Problem hat man auch bei Intelligenz und Charismaskills. Und bis "ganz zu Ende" warten und die Bücher dann einsetzen ist auch nicht das wahre.

Optimal wäre es also, wenn man das Buch "Der Wert der Dinge" so ändert, dass es +1 Handel gibt, wenn man es im Inventar hat.
Generell bin ich gegen tweaken, wenn es dem Spieler einen Vorteil verschafft aber in diesem Fall wird Vorteil mit Nachteilen erkauft(Inventarplatz, Goldkosten)
:wink:
 
Soweit ich die Sache verstehe ist es zwar nicht schwierig, eine entsprechende Mod zu erstellen, eine einfache Änderung an den txt-Dateien geht aber nicht so schnell.
Im Prinzip müsste man die Daten im Modul System ändern, damit die Mod erstellen und dann schauen, wie sich die txt-Dateien ändern.

Die Änderungen im Modul System sind recht klein und betreffen drei Dateien:
Anmerkung: Die Einträge xxx_begin beziehen sich immer auf den ersten Gegenstand der Gruppe, die Einträge xxx_end immer auf den ersten Gegenstand der nächsten Gruppe. Sind Anfang und Ende identisch ist die Gruppe damit leer.
Bisheriger Eintrag:
reference_books_begin = "itm_book_wound_treatment_reference"
reference_books_end  = trade_goods_begin
readable_books_begin = "itm_book_tactics"
readable_books_end  = reference_books_begin

Geändeter Eintrag:
reference_books_begin = "itm_book_tactics"
reference_books_end  = trade_goods_begin
readable_books_begin = trade_goods_begin
readable_books_end  = trade_goods_begin
Ohne es auszuprobieren kann ich nicht sagen ob die Sache auch mit Essays on Logic (Intelligenz) funktioniert.
Bisheriger Eintrag:
  ("game_get_item_extra_text",
    [
      (store_script_param, ":item_no", 1),
      (store_script_param, ":extra_text_id", 2),
      (store_script_param, ":item_modifier", 3),
      (try_begin),
        (is_between, ":item_no", food_begin, food_end),
        (try_begin),
          (eq, ":extra_text_id", 0),
          (assign, ":continue", 1),
          (try_begin),
            (eq, ":item_no", "itm_cattle_meat"),
            (eq, ":item_modifier", imod_rotten),
            (assign, ":continue", 0),
          (try_end),
          (eq, ":continue", 1),
          (item_get_slot, ":food_bonus", ":item_no", slot_item_food_bonus),
          (assign, reg1, ":food_bonus"),
          (set_result_string, "@+{reg1} to party morale"),
          (set_trigger_result, 0x4444FF),
        (try_end),
      (else_try),
        (is_between, ":item_no", readable_books_begin, readable_books_end),
        (try_begin),
          (eq, ":extra_text_id", 0),
          (item_get_slot, reg1, ":item_no", slot_item_intelligence_requirement),
          (set_result_string, "@Requires {reg1} intelligence to read"),
          (set_trigger_result, 0xFFEEDD),
        (else_try),
          (eq, ":extra_text_id", 1),
          (item_get_slot, ":progress", ":item_no", slot_item_book_reading_progress),
          (val_div, ":progress", 10),
          (assign, reg1, ":progress"),
          (set_result_string, "@Reading Progress: {reg1}%"),
          (set_trigger_result, 0xFFEEDD),
        (try_end),
      (else_try),
        (is_between, ":item_no", reference_books_begin, reference_books_end),
        (try_begin),
          (eq, ":extra_text_id", 0),
          (try_begin),
            (eq, ":item_no", "itm_book_wound_treatment_reference"),
            (str_store_string, s1, "@wound treament"),
          (else_try),
            (eq, ":item_no", "itm_book_training_reference"),
            (str_store_string, s1, "@trainer"),
          (else_try),
            (eq, ":item_no", "itm_book_surgery_reference"),
            (str_store_string, s1, "@surgery"),
          (try_end),
          (set_result_string, "@+1 to {s1} while in inventory"),
          (set_trigger_result, 0xFFEEDD),
        (try_end),
      (try_end),
  ]),

Geändeter Eintrag:
    [
      (store_script_param, ":item_no", 1),
      (store_script_param, ":extra_text_id", 2),
      (store_script_param, ":item_modifier", 3),
      (try_begin),
        (is_between, ":item_no", food_begin, food_end),
        (try_begin),
          (eq, ":extra_text_id", 0),
          (assign, ":continue", 1),
          (try_begin),
            (eq, ":item_no", "itm_cattle_meat"),
            (eq, ":item_modifier", imod_rotten),
            (assign, ":continue", 0),
          (try_end),
          (eq, ":continue", 1),
          (item_get_slot, ":food_bonus", ":item_no", slot_item_food_bonus),
          (assign, reg1, ":food_bonus"),
          (set_result_string, "@+{reg1} to party morale"),
          (set_trigger_result, 0x4444FF),
        (try_end),
#      (else_try),
#        (is_between, ":item_no", readable_books_begin, readable_books_end),
#        (try_begin),
#          (eq, ":extra_text_id", 0),
#          (item_get_slot, reg1, ":item_no", slot_item_intelligence_requirement),
#          (set_result_string, "@Requires {reg1} intelligence to read"),
#          (set_trigger_result, 0xFFEEDD),
#        (else_try),
#          (eq, ":extra_text_id", 1),
#          (item_get_slot, ":progress", ":item_no", slot_item_book_reading_progress),
#          (val_div, ":progress", 10),
#          (assign, reg1, ":progress"),
#          (set_result_string, "@Reading Progress: {reg1}%"),
#          (set_trigger_result, 0xFFEEDD),
#        (try_end),
      (else_try),
        (is_between, ":item_no", reference_books_begin, reference_books_end),
        (try_begin),
          (eq, ":extra_text_id", 0),
          (try_begin),
            (eq, ":item_no", "book_tactics"),
            (str_store_string, s1, "@tactics"),
          (else_try),
            (eq, ":item_no", "book_persuasion"),
            (str_store_string, s1, "@persuasion"),
          (else_try),
            (eq, ":item_no", "book_leadership"),
            (str_store_string, s1, "@leadership"),
          (else_try),
            (eq, ":item_no", "book_trade"),
            (str_store_string, s1, "@trade"),
          (else_try),
            (eq, ":item_no", "book_weapon_mastery"),
            (str_store_string, s1, "@weapon_master"),
          (else_try),
            (eq, ":item_no", "book_engineering"),
            (str_store_string, s1, "@engineer"),
          (else_try),
            (eq, ":item_no", "itm_book_training_reference"),
            (str_store_string, s1, "@trainer"),
          (else_try),
            (eq, ":item_no", "itm_book_surgery_reference"),
            (str_store_string, s1, "@surgery"),
          (try_end),
          (set_result_string, "@+1 to {s1} while in inventory"),
          (set_trigger_result, 0xFFEEDD),
        (try_end),
      (try_end),
  ]),
Bisheriger Eintrag:
  ("game_get_skill_modifier_for_troop",
  [(store_script_param, ":troop_no", 1),
    (store_script_param, ":skill_no", 2),
    (assign, ":modifier_value", 0),
    (try_begin),
      (eq, ":skill_no", "skl_wound_treatment"),
      (call_script, "script_get_troop_item_amount", ":troop_no", "itm_book_wound_treatment_reference"),
      (gt, reg0, 0),
      (val_add, ":modifier_value", 1),
    (else_try),
      (eq, ":skill_no", "skl_trainer"),
      (call_script, "script_get_troop_item_amount", ":troop_no", "itm_book_training_reference"),
      (gt, reg0, 0),
      (val_add, ":modifier_value", 1),
    (else_try),
      (eq, ":skill_no", "skl_surgery"),
      (call_script, "script_get_troop_item_amount", ":troop_no", "itm_book_surgery_reference"),
      (gt, reg0, 0),
      (val_add, ":modifier_value", 1),
    (try_end),
    (set_trigger_result, ":modifier_value"),
    ]),

Geänderter Eintrag:
  ("game_get_skill_modifier_for_troop",
  [(store_script_param, ":troop_no", 1),
    (store_script_param, ":skill_no", 2),
    (assign, ":modifier_value", 0),
    (try_begin),
      (eq, ":skill_no", "skl_tactics"),
      (call_script, "script_get_troop_item_amount", ":troop_no", "itm_book_tactics"),
      (gt, reg0, 0),
      (val_add, ":modifier_value", 1),
    (else_try),
      (eq, ":skill_no", "skl_persuasion"),
      (call_script, "script_get_troop_item_amount", ":troop_no", "itm_book_persuasion"),
      (gt, reg0, 0),
      (val_add, ":modifier_value", 1),
    (else_try),
      (eq, ":skill_no", "skl_leadership"),
      (call_script, "script_get_troop_item_amount", ":troop_no", "itm_book_leadership"),
      (gt, reg0, 0),
      (val_add, ":modifier_value", 1),
    (else_try),
      (eq, ":skill_no", "skl_trade"),
      (call_script, "script_get_troop_item_amount", ":troop_no", "itm_book_trade"),
      (gt, reg0, 0),
      (val_add, ":modifier_value", 1),
    (else_try),
      (eq, ":skill_no", "skl_weapon_master"),
      (call_script, "script_get_troop_item_amount", ":troop_no", "itm_book_weapon_mastery"),
      (gt, reg0, 0),
      (val_add, ":modifier_value", 1),
    (else_try),
      (eq, ":skill_no", "skl_engineer"),
      (call_script, "script_get_troop_item_amount", ":troop_no", "itm_book_engineering"),
      (gt, reg0, 0),
      (val_add, ":modifier_value", 1),
    (else_try),
      (eq, ":skill_no", "skl_wound_treatment"),
      (call_script, "script_get_troop_item_amount", ":troop_no", "itm_book_wound_treatment_reference"),
      (gt, reg0, 0),
      (val_add, ":modifier_value", 1),
    (else_try),
      (eq, ":skill_no", "skl_trainer"),
      (call_script, "script_get_troop_item_amount", ":troop_no", "itm_book_training_reference"),
      (gt, reg0, 0),
      (val_add, ":modifier_value", 1),
    (else_try),
      (eq, ":skill_no", "skl_surgery"),
      (call_script, "script_get_troop_item_amount", ":troop_no", "itm_book_surgery_reference"),
      (gt, reg0, 0),
      (val_add, ":modifier_value", 1),
    (try_end),
    (set_trigger_result, ":modifier_value"),
    ]),
Bisheriger Eintrag:
  ("camp_action_read_book",0,
  "Choose a book to read:",
  "none",
  [],
    [
      ("action_read_book_1",[(player_has_item, "itm_book_tactics"),
                            (item_slot_eq, "itm_book_tactics", slot_item_book_read, 0),
                            (str_store_item_name, s1, "itm_book_tactics"),
                            ],"{s1}.",
      [(assign, "$temp", "itm_book_tactics"),
        (jump_to_menu, "mnu_camp_action_read_book_start"),
        ]
      ),
      ("action_read_book_2",[(player_has_item, "itm_book_persuasion"),
                            (item_slot_eq, "itm_book_persuasion", slot_item_book_read, 0),
                            (str_store_item_name, s1, "itm_book_persuasion"),
                            ],"{s1}.",
      [(assign, "$temp", "itm_book_persuasion"),
        (jump_to_menu, "mnu_camp_action_read_book_start"),
        ]
      ),
      ("action_read_book_3",[(player_has_item, "itm_book_leadership"),
                            (item_slot_eq, "itm_book_leadership", slot_item_book_read, 0),
                            (str_store_item_name, s1, "itm_book_leadership"),
                            ],"{s1}.",
      [(assign, "$temp", "itm_book_leadership"),
        (jump_to_menu, "mnu_camp_action_read_book_start"),
        ]
      ),
      ("action_read_book_4",[(player_has_item, "itm_book_intelligence"),
                            (item_slot_eq, "itm_book_intelligence", slot_item_book_read, 0),
                            (str_store_item_name, s1, "itm_book_intelligence"),
                            ],"{s1}.",
      [(assign, "$temp", "itm_book_intelligence"),
        (jump_to_menu, "mnu_camp_action_read_book_start"),
        ]
      ),
      ("action_read_book_5",[(player_has_item, "itm_book_trade"),
                            (item_slot_eq, "itm_book_trade", slot_item_book_read, 0),
                            (str_store_item_name, s1, "itm_book_trade"),
                            ],"{s1}.",
      [(assign, "$temp", "itm_book_trade"),
        (jump_to_menu, "mnu_camp_action_read_book_start"),
        ]
      ),
      ("action_read_book_6",[(player_has_item, "itm_book_weapon_mastery"),
                            (item_slot_eq, "itm_book_weapon_mastery", slot_item_book_read, 0),
                            (str_store_item_name, s1, "itm_book_weapon_mastery"),
                            ],"{s1}.",
      [(assign, "$temp", "itm_book_weapon_mastery"),
        (jump_to_menu, "mnu_camp_action_read_book_start"),
        ]
      ),
      ("action_read_book_7",[(player_has_item, "itm_book_engineering"),
                            (item_slot_eq, "itm_book_engineering", slot_item_book_read, 0),
                            (str_store_item_name, s1, "itm_book_engineering"),
                            ],"{s1}.",
      [(assign, "$temp", "itm_book_engineering"),
        (jump_to_menu, "mnu_camp_action_read_book_start"),
        ]
      ),
      ("camp_action_4",[],"Back to camp menu.",
      [(jump_to_menu, "mnu_camp"),
        ]
      ),
      ]
  ),

Geänderter Eintrag:
  ("camp_action_read_book",0,
  "Choose a book to read:",
  "none",
  [],
    [
      ("action_read_book_4",[(player_has_item, "itm_book_intelligence"),
                            (item_slot_eq, "itm_book_intelligence", slot_item_book_read, 0),
                            (str_store_item_name, s1, "itm_book_intelligence"),
                            ],"{s1}.",
      [(assign, "$temp", "itm_book_intelligence"),
        (jump_to_menu, "mnu_camp_action_read_book_start"),
        ]
      ),
        (jump_to_menu, "mnu_camp_action_read_book_start"),
        ]
      ),
      ("action_read_book_7",[(player_has_item, "itm_book_engineering"),
                            (item_slot_eq, "itm_book_engineering", slot_item_book_read, 0),
                            (str_store_item_name, s1, "itm_book_engineering"),
                            ],"{s1}.",
      [(assign, "$temp", "itm_book_engineering"),
        (jump_to_menu, "mnu_camp_action_read_book_start"),
        ]
      ),
      ("camp_action_4",[],"Back to camp menu.",
      [(jump_to_menu, "mnu_camp"),
        ]
      ),
      ]
  ),
Ohne es auszuprobieren kann ich leider nicht mit Sicherheit sagen, ob ich alles erwischt habe...
 
Danke, das sieht gut aus.

Dass es schwer ist glaub ich nicht, nur hab ich damit leider absolut gar keine Erfahrung, sonst hätt ichs ja schon probiert :wink:
Finde es aber interessant.

Wo befinden sich die 3 Dateien? Kann sie leider nicht finden, auch weiss ich nicht genau mit welchem Programm man die öffnen kann. (Dateiendung .py?) Naja, mal mit Texteditor probieren.
 
Das sind Dateien aus dem ModuleSystem. Lies dir dazu am besten svadils Anfänger-Tutorial durch. Das WB MS bekommst du hier.
 
后退
顶部 底部