「Script改変」の編集履歴(バックアップ)一覧に戻る
Script改変 - (2009/03/20 (金) 21:22:02) のソース
#contents ---- ****税収を自動振込みにする(なまけものさん用) 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の隠れメニュー>http://bandito.web.infoseek.co.jp/cgi-bin/MnB/data/mb0090.jpg]]が出てくる。 - 質問があれば投稿してください -- 名無しさん (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) #comment