Script改変


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。



税収を自動振込みにする(なまけものさん用)
module_simple_trrigers.pyの中の# Accumulate taxesを検索し、以下のスクリプトに置き換える。
 # Accumulate taxes
  (24 * 7,
  [
     (try_for_range, ":center_no", centers_begin, centers_end),
       (party_get_slot, ":accumulated_rents", ":center_no", slot_center_accumulated_rents),
       (assign, ":cur_rents", 0),
       (try_begin),
         (party_slot_eq, ":center_no", slot_party_type, spt_village),
         (try_begin),
           (party_slot_eq, ":center_no", slot_village_state, svs_normal),
           (assign, ":cur_rents", 500),
         (try_end),
       (else_try),
         (party_slot_eq, ":center_no", slot_party_type, spt_castle),
         (assign, ":cur_rents", 250),
       (else_try),
         (party_slot_eq, ":center_no", slot_party_type, spt_town),
         (assign, ":cur_rents", 1000),
       (try_end),
       (party_get_slot, ":prosperity", ":center_no", slot_town_prosperity),
       (store_add, ":multiplier", 10, ":prosperity"),
       (val_mul, ":cur_rents", ":multiplier"),
       (val_div, ":cur_rents", 110),#Prosperity of 100 gives the default values
       (val_add, ":accumulated_rents", ":cur_rents"),
       (party_set_slot, ":center_no", slot_center_accumulated_rents, ":accumulated_rents"),
     (try_end),
     #Adding earnings to town lords' wealths.
     (try_for_range, ":center_no", centers_begin, centers_end),
       (party_get_slot, ":town_lord", ":center_no", slot_town_lord),
# change points start
       (this_or_next|eq, ":town_lord", "trp_player"),
# change points end
       (is_between, ":town_lord", kingdom_heroes_begin, kingdom_heroes_end),
       (party_get_slot, ":accumulated_rents", ":center_no", slot_center_accumulated_rents),
       (party_get_slot, ":accumulated_tariffs", ":center_no", slot_center_accumulated_tariffs),
       (troop_get_slot, ":troop_wealth", ":town_lord", slot_troop_wealth),
       (val_add, ":troop_wealth", ":accumulated_rents"),
       (val_add, ":troop_wealth", ":accumulated_tariffs"),
       (troop_set_slot, ":town_lord", slot_troop_wealth, ":troop_wealth"),
       (party_set_slot, ":center_no", slot_center_accumulated_rents, 0),
       (party_set_slot, ":center_no", slot_center_accumulated_tariffs, 0),
     (try_end),
# change points start
     (troop_get_slot, ":troop_wealth", "trp_player", slot_troop_wealth),
     (try_begin),
       (gt,":troop_wealth",0),
       (call_script,"script_troop_add_gold","trp_player",":troop_wealth"),
       (troop_set_slot, "trp_player",  slot_troop_wealth,0),
     (try_end),
# change points end
   ]),

近くの盗賊も現在の戦闘に参加してくるようにする(マゾ用)
module_scripts.pyの# script_let_nearby_parties_join_current_battleを検索して以下に差し替え
 # script_let_nearby_parties_join_current_battle
 # Input: arg1 = besiege_mode, arg2 = dont_add_friends
 # Output: none
 ("let_nearby_parties_join_current_battle",
   [
     (store_script_param, ":besiege_mode", 1),
     (store_script_param, ":dont_add_friends", 2),
     (assign, ":join_distance", 5),
     (try_begin),
       (is_currently_night),
       (assign, ":join_distance", 3),
     (try_end),
     (try_for_parties, ":party_no"),
       (party_get_battle_opponent, ":opponent",":party_no"),
       (lt, ":opponent", 0), #party is not itself involved in a battle
       (party_get_attached_to, ":attached_to",":party_no"),
       (lt, ":attached_to", 0), #party is not attached to another party
       (get_party_ai_behavior, ":behavior", ":party_no"),
       (neq, ":behavior", ai_bhvr_in_town),
       (store_distance_to_party_from_party, ":distance", ":party_no", "p_main_party"),
       (lt, ":distance", ":join_distance"),
       (store_faction_of_party, ":faction_no", ":party_no"),
       (store_faction_of_party, ":enemy_faction", "$g_enemy_party"),
       (try_begin),
         (eq, ":faction_no", "fac_player_supporters_faction"),
         (assign, ":reln_with_player", 100),
       (else_try),
         (store_relation, ":reln_with_player", ":faction_no", "fac_player_supporters_faction"),
       (try_end),
       (try_begin),
         (eq, ":faction_no", ":enemy_faction"),
         (assign, ":reln_with_enemy", 100),
       (else_try),
         (store_relation, ":reln_with_enemy", ":faction_no", ":enemy_faction"),
       (try_end),
       (assign, ":enemy_side", 1),
       (try_begin),
         (neq, "$g_enemy_party", "$g_encountered_party"),
         (assign, ":enemy_side", 2),
       (try_end),
       (try_begin),
         (eq, ":besiege_mode", 0),
         (lt, ":reln_with_player", 0),
         (gt, ":reln_with_enemy", 0),
         (get_party_ai_behavior, ":ai_bhvr", ":party_no"),
         (neq, ":ai_bhvr", ai_bhvr_avoid_party),
         (party_quick_attach_to_current_battle, ":party_no", ":enemy_side"), #attach as enemy
         (str_store_party_name, s1, ":party_no"),
         (display_message, "str_s1_joined_battle_enemy"),
       (else_try),
         (eq, ":dont_add_friends", 0),
         (gt, ":reln_with_player", 0),
         (lt, ":reln_with_enemy", 0),
         (assign, ":do_join", 1),
         (try_begin),
           (eq, ":besiege_mode", 1),
           (assign, ":do_join", 0),
           (eq, ":faction_no", "$players_kingdom"),
           (faction_slot_eq, "$players_kingdom", slot_faction_marshall, "trp_player"),
           (assign, ":do_join", 1),
         (try_end),
         (eq, ":do_join", 1),
         (party_stack_get_troop_id, ":leader", ":party_no", 0),
         (call_script, "script_troop_get_player_relation", ":leader"),
         (assign, ":player_relation", reg0),
         (party_get_template_id,":party_template",":party_no"),
         (try_begin),
           (eq, ":do_join", 1),
           (this_or_next|gt, ":player_relation", 0),
           (eq,":party_template","pt_hero_party"),
           (party_quick_attach_to_current_battle, ":party_no", 0), #attach as friend
           (str_store_party_name, s1, ":party_no"),
           (display_message, "str_s1_joined_battle_friend"),
         (else_try),
           (eq, ":do_join", 0),
           (eq,":party_template","pt_hero_party"),
           (party_quick_attach_to_current_battle, ":party_no", 0), #attach as friend
           (str_store_party_name, s1, ":party_no"),
           (display_message, "str_s1_joined_battle_friend"),
         (else_try),
           (eq, ":do_join", 1),
           (lt, ":player_relation", 0),
           (party_quick_attach_to_current_battle, ":party_no", 1), #attach as enemy
           (str_store_party_name, s1, ":party_no"),
           (display_message, "str_s1_joined_battle_enemy"),
         (try_end),
       (try_end),
     (try_end),
 ]),

王に仕えていないくせに領地を持っているのはけしからんと言われ停戦してくれない
module_dialogs.pyのI wish to make peace withを検索、その4行下の
 [(assign, ":has_center", 0),
  (try_for_range, ":cur_center", centers_begin, centers_end),
    (store_faction_of_party, ":cur_center_faction", ":cur_center"),
    (eq, ":cur_center_faction", "fac_player_supporters_faction"),
    (assign, ":has_center", 1),
  (try_end)],

[(eq, 1, 0)],
に差し替え。

敵に負けた時のステータスダメージをなくする
module_game_menus.pyの
         (try_begin),
           (store_random_in_range, ":random_no", 0, 100),
           (ge, ":random_no", "$g_player_luck"),
           (jump_to_menu, "mnu_permanent_damage"),
         (else_try),
をコメントアウトする(#)

コンパニオンを城や町のstation garrisonにおけるようにする
module_troops.pyのnpc1からnpc16までのtf_unmoveable_in_party_windowを消す。
module_game_menus.pyの"castle_station_troops"を検索、その6行下を以下に変える
(change_screen_exchange_members,1),
※新しくゲームを始めないと反映されません

牛をプレイヤーについて来させる
module_game_menus.pyの中で"cattle_drive_away"を検索する
その3行下を
(party_set_ai_behavior, "$g_encountered_party", ai_bhvr_escort_party),
に置き換える。(ai_bhvr_escort_partyはプレイヤーについて来るということです)

村で生産される牛の数を変える
module_simple_triggers.pyの中の
 # Refresh number of cattle in villages
 (24,
  [(try_for_range, ":village_no", villages_begin, villages_end),
     (party_get_slot, ":num_cattle", ":village_no", slot_village_number_of_cattle),
     (store_random_in_range, ":random_no", 0, 100),
     (try_begin),
       (lt, ":random_no", 3),#famine
       (assign, ":num_cattle", 0),
       (try_begin),
#          (eq, "$cheat_mode", 1),
#          (str_store_party_name, s1, ":village_no"),
#          (display_message, "@Cattle in {s1} are exterminated due to famine."),
       (try_end),
     (else_try),
       (lt, ":random_no", 10),#double growth
       (store_random_in_range, ":random_no", 111, 121),
       (val_mul, ":num_cattle", ":random_no"),
       (val_div, ":num_cattle", 100),
       (store_random_in_range, ":random_no", 1, 3),
       (val_add, ":num_cattle", ":random_no"),
     (else_try),
       (lt, ":random_no", 50),#negative growth
       (store_random_in_range, ":random_no", 3, 8),
       (val_sub, ":num_cattle", ":random_no"),
     (else_try),#positive growth
       (store_random_in_range, ":random_no", 101, 111),
       (val_mul, ":num_cattle", ":random_no"),
       (val_div, ":num_cattle", 100),
       (store_random_in_range, ":random_no", 1, 3),
       (val_add, ":num_cattle", ":random_no"),
     (try_end),
     (val_clamp, ":num_cattle", 0, 101),
     (party_set_slot, ":village_no", slot_village_number_of_cattle, ":num_cattle"),
     #Reassigning the cattle production in the village
     (store_sub, ":production", ":num_cattle", 10),
     (val_div, ":production", 2),
     (call_script, "script_center_change_trade_good_production", ":village_no", "itm_cattle_meat", ":production", 0),
   (try_end),
   ]),

famineのところの数字は牛が全滅するフラグで3%の確立になっている
double growthは10%の確立で牛が増える(11%~21%+1~3頭増える)
negative growthは40%の確立で牛が減る(3~8頭減る)
positive growthは50%の確立で牛が増える(1%~11%+1~3頭増える)
数字を変えれば生産される牛の数も変わります。

牛の移動速度を速く
module_troops.pyの"cattle"を
["cattle","Cattle","Cattle",tf_mounted,no_scene,reserved,fac_neutral,[itm_courser],def_attrib|level(1),wp(60),
knows_pathfinding_10|knows_riding_10,mercenary_face_1, mercenary_face_2],
スキルのパスファインディングとライディングを10にして馬の"courser"を持たせる。Steppe Bandit並に速くなります

Banner(紋章)を変えたい
module_game_menus.pyの中の"action_modify_banner"を検索
(eq, "$cheat_mode", 1)
を削除。Camp>"Take an action.">"Cheat: Modify your banner."からいつでもBannerを変えることができる。
もうひとつ、
     ("action_modify_banner",[],"Cheat:Modify your banner.",
      [
          (start_presentation, "prsnt_banner_selection"),
       ]
      ),
     ("action_modify_banner_2",[],"Cheat:customize your banner.",
      [
          (start_presentation, "prsnt_custom_banner"),
       ]
      ),
とすると、Custom Bannerの隠れメニューが出てくる。

名声によって増えるパーティサイズの上限を変更する
module_scripts.pyの#script_game_get_party_companion_limitを検索
 #script_game_get_party_companion_limit:
 # This script is called from the game engine when the companion limit is needed for a party.
 # INPUT: arg1 = none
 # OUTPUT: reg0 = companion_limit
 ("game_get_party_companion_limit",
   [
     (assign, ":troop_no", "trp_player"),
     (assign, ":limit", 10),
     (store_skill_level, ":skill", "skl_leadership", ":troop_no"),
     (store_attribute_level, ":charisma", ":troop_no", ca_charisma),
     (val_mul, ":skill", 5),
     (val_add, ":limit", ":skill"),
     (val_add, ":limit", ":charisma"),
     (troop_get_slot, ":troop_renown", ":troop_no", slot_troop_renown),
     (store_div, ":renown_bonus", ":troop_renown", 25),
     (val_add, ":limit", ":renown_bonus"),
     (assign, reg0, ":limit"),
     (set_trigger_result, reg0),
 ]),
下から5行目の ":troop_renown", 25),は名声を25得た時、+1人連れて行けるということ。
これを":troop_renown", 3 にすると名声を3得た時、+1人。

  • 質問があれば投稿してください -- 名無しさん (2008-12-14 00:57:12)
  • 隠れメニューですが、どこに追加するのですか? -- Banner(紋章)を変えたい (2009-01-16 22:41:08)
  • 僕もBanner変えたいんですが、よくわからず。。MOD開発と同じ環境を整えないといけないぽいけど。。 -- 名無しさん (2009-01-16 23:53:12)
  • なんとか解決しました。どうやら、"Cheat: Modify your banner."のプログラム(『]),』までで一つのプログラムだとして)の次の行に入れたら上手くいきました。分かりにくい表現で申し訳ないです…。 -- 名無しさん (2009-01-17 00:53:34)
  • マップの地形を変えたり都市の位置を変えたりするにはどうしたら良いのでしょう?自作をしてみたいのですが、その辺の知識が無いもので…。 -- 名無しさん (2009-01-17 01:05:25)
  • ↑マップエディタを使え。ここのスクリプトに関係ないことは、掲示板にでも書いてください -- 名無しさん (2009-01-18 03:11:50)
  • 申し訳ありません。スクリプトと関係があるのかと思ったもので…。 -- 名無しさん (2009-01-18 23:28:10)
  • 村に兵士を駐留するスクリプトはどのあたりなんでしょう? -- 名無しさん (2009-02-08 20:04:50)
  • 自己メモ:*.pyファイルの開き方:インストールとpath変更後、ファイル右クリ、edit with IDLE -- 名無しさん (2009-02-08 21:04:08)
  • SoDのように自分の隊から独立部隊を作るにはどうしたらいいでしょうか? -- 名無しさん (2009-03-20 21:22:02)
  • 建築物の建築にかかる時間と援軍の回数の変更はどうすればよいのでしょうか? -- 名無しさん (2009-03-22 14:18:10)
  • SoDはソース公開しているから自分で勉強して。建築物と援軍の回数の改造は2chの過去スレ -- 名無しさん (2009-03-22 16:40:14)
  • 最近の過去スレにあるから探して -- 名無しさん (2009-03-22 16:40:43)
  • pyファイルってのがどこにも見当たらないです。同じ名前のtxtならありますが。 -- 名無しさん (2009-06-19 18:54:18)
  • 事故解決しました。。 -- 名無しさん (2009-06-19 19:01:16)
  • マウントアンドブレードウォーバンドのscrip改変 をアップしてほしいです。 -- マウント歴1年 (2012-01-05 09:35:27)
名前:
コメント: