Script改変 - (2009/01/17 (土) 01:05:25) の1つ前との変更点
追加された行は緑色になります。
削除された行は赤色になります。
#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_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)
#comment
#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_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)
#comment
表示オプション
横に並べて表示:
変化行の前後のみ表示: