Положу и я сюда свои 5 копеек. Начнём с файла
module_simple_triggers.pyВ нём можно поменять доход от городов, замков и деревень, потребление еды и потерю известности со временем.
Комментарии на англ т.к. писал для себя прямо в коде комментарии. Добавил комментарии на русском языке для форума.
Здесь оригинальные куски кода от модуля Native со стандартными значениями.
Доход от деревень, замков и городов:
#Village, Town, Castle income. 1200, 1200, 2400. Change this numbers.
#(val_div, ":cur_rents", 120),#Prosperity of 100 gives the default values - Final divider for income. Changing to 60 will results in 2x higher income.
Перевод для форума: Числа 1200, 1200 и 2400 это базовый доход от Деревни. Замка. Города. Меняйте их, чтобы
повысить доход.
#(val_div, ":cur_rents", 120). 120 здесь и есть финальное число на которое будет разделён доход по-формуле. Если его уменьшить, то доход увеличится, если увеличить, то доход будет срезан.
#Collect taxes for another week
(try_for_range, ":center_no", centers_begin, centers_end),
(try_begin),
(party_slot_ge, ":center_no", slot_town_lord, 0), #unassigned centers do not accumulate rents
(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", 1200),
(try_end),
(else_try),
(party_slot_eq, ":center_no", slot_party_type, spt_castle),
(assign, ":cur_rents", 1200),
(else_try),
(party_slot_eq, ":center_no", slot_party_type, spt_town),
(assign, ":cur_rents", 2400),
(try_end),
(party_get_slot, ":prosperity", ":center_no", slot_town_prosperity), #prosperty changes between 0..100
(store_add, ":multiplier", 20, ":prosperity"), #multiplier changes between 20..120
(val_mul, ":cur_rents", ":multiplier"),
(val_div, ":cur_rents", 120),#Prosperity of 100 gives the default values
Потребление еды войсками:
#Consuming food 14 - amount of hours. (val_div, ":num_men", 3), - number of troops fed by 1 food piece.
#Перевод и коммент для форума. 14 это по-идее количество часов. Каждые 14 часов войска едят.
# (val_div, ":num_men", 3), - тройка здесь это количество войск, которых кормит 1 единица еды. Например у хлеба 50 единиц еды, если изменить это число на 100, то пати размером в 100 человек будет потреблять 1/50 хлеба раз в 14 часов.
# Consuming food at every 14 hours
(14,
[
(eq, "$g_player_is_captive", 0),
(party_get_num_companion_stacks, ":num_stacks","p_main_party"),
(assign, ":num_men", 0),
(try_for_range, ":i_stack", 0, ":num_stacks"),
(party_stack_get_size, ":stack_size","p_main_party",":i_stack"),
(val_add, ":num_men", ":stack_size"),
(try_end),
(val_div, ":num_men", 3),
(try_begin),
(eq, ":num_men", 0),
(val_add, ":num_men", 1),
(try_end),
Уменьшение известности со временем:
#Renown reduction over time. Change 7 to 700 to lose renown once every 700 days.
#7 это кол-во дней, 24 часов. тоесть 7 раз по 24 часа - раз в неделю. Можно поменять на 700, чтобы терять известность лишь раз в 700 дней игрового времени.
#:player_renown", 200), а вот эти 200 по-идее, должны быть минимальной известностью, при которой она будет
терятся. Тоесть можно поставить 200000 и не терять. Но только по-идее, я сам не тестировал и не пользовался, так что на свой страх и риск меняйте это число.
# Reduce renown slightly by 0.5% every week
(7 * 24,
[
(troop_get_slot, ":player_renown", "trp_player", slot_troop_renown),
(store_div, ":renown_decrease", ":player_renown", 200),
(val_sub, ":player_renown", ":renown_decrease"),
(troop_set_slot, "trp_player", slot_troop_renown, ":player_renown"),
]),
Добавлено: 30 Июля, 2014, 10:41Ну и парочка полезных твиков в
module_scripts.pyЭффективность (имеется ввиду доход) предприятий. (многа букаф в коде)
#Enterpise Prices. 1000, 1000, 1000 are the dividers. First one - divider for selling price. Decrease it to increase #profit. Changin to 100 will give 10 times more profit.
#Second 1000 is a divider for inputs. Increase it to increase profit. Decreasing it will result in less profit.
#Third 1000 is a divider for secondary inputs. Involves Velvet only cause it has 2 input materials. Works same as the #second 1000.
Перевод для форума: Нас интересуют 3 числа. 1000, 1000, 1000.
Первая 1000 в этом коде это число, на которое будет РАЗДЕЛЕН доход от авто-продажи произведенных предметов. Тоесть если это число сделать меньше, то доход в общем будет больше. Если увеличить, то общих доход от всех предприятий упадёт.
Вторая 1000 это число на которое РАЗДЕЛЯЮТ цену материалов. Если её уменьшить, то общий доход упадёт, потому что материалы для предприятия будут стоить ДОРОЖЕ. А вот если это число увеличить, то материалы будут дешевле и доход возрастёт.
Третья 1000 работает точь в точь как и вторая 1000, но это вторичный материал. На данный момент в игре только производство Вельвета использует вторичный материал для производства.
("process_player_enterprise",
#reg0: Profit per cycle
[
(store_script_param, ":item_type", 1),
(store_script_param, ":center", 2),
(item_get_slot, ":price_of_labor", ":item_type", slot_item_overhead_per_run),
(item_get_slot, ":base_price", ":item_type", slot_item_base_price),
(store_sub, ":cur_good_price_slot", ":item_type", trade_goods_begin),
(val_add, ":cur_good_price_slot", slot_town_trade_good_prices_begin),
(party_get_slot, ":cur_price_modifier", ":center", ":cur_good_price_slot"),
(store_mul, ":final_price_for_single_produced_good", ":base_price", ":cur_price_modifier"),
(val_div, ":final_price_for_single_produced_good", 1000),
(item_get_slot, ":number_of_outputs_produced", ":item_type", slot_item_output_per_run),
(store_mul, ":final_price_for_total_produced_goods", ":number_of_outputs_produced", ":final_price_for_single_produced_good"),
(item_get_slot, ":primary_raw_material", ":item_type", slot_item_primary_raw_material),
(item_get_slot, ":base_price", ":primary_raw_material", slot_item_base_price),
(store_sub, ":cur_good_price_slot", ":primary_raw_material", trade_goods_begin),
(val_add, ":cur_good_price_slot", slot_town_trade_good_prices_begin),
(party_get_slot, ":cur_price_modifier", ":center", ":cur_good_price_slot"),
(store_mul, ":final_price_for_single_input", ":base_price", ":cur_price_modifier"),
(val_div, ":final_price_for_single_input", 1000),
(item_get_slot, ":number_of_inputs_required", ":item_type", slot_item_input_number),
(try_begin),
(lt, ":number_of_inputs_required", 0),
(store_div, ":final_price_for_total_inputs", ":final_price_for_single_input", 2),
(else_try),
(store_mul, ":final_price_for_total_inputs", ":final_price_for_single_input", ":number_of_inputs_required"),
(try_end),
(try_begin),
(item_slot_ge, ":item_type", slot_item_secondary_raw_material, 1),
(item_get_slot, ":secondary_raw_material", ":item_type", slot_item_secondary_raw_material),
(item_get_slot, ":base_price", ":secondary_raw_material", slot_item_base_price),
(store_sub, ":cur_good_price_slot", ":secondary_raw_material", trade_goods_begin),
(val_add, ":cur_good_price_slot", slot_town_trade_good_prices_begin),
(party_get_slot, ":cur_price_modifier", ":center", ":cur_good_price_slot"),
(try_begin),
(lt, ":number_of_inputs_required", 0),
(store_div, ":final_price_for_secondary_input", ":final_price_for_secondary_input", 2),
(else_try),
(store_mul, ":final_price_for_secondary_input", ":final_price_for_secondary_input", ":number_of_inputs_required"),
(try_end),
(store_mul, ":final_price_for_secondary_input", ":base_price", ":cur_price_modifier"),
(val_div, ":final_price_for_secondary_input", 1000),
(else_try),
(assign, ":final_price_for_secondary_input", 0),
(try_end),
(store_sub, ":profit_per_cycle", ":final_price_for_total_produced_goods", ":final_price_for_total_inputs"),
(val_sub, ":profit_per_cycle", ":price_of_labor"),
(val_sub, ":profit_per_cycle", ":final_price_for_secondary_input"),
(assign, reg0, ":profit_per_cycle"),
(assign, reg1, ":final_price_for_total_produced_goods"),
(assign, reg2, ":final_price_for_total_inputs"),
(assign, reg3, ":price_of_labor"),
(assign, reg4, ":final_price_for_single_produced_good"),
(assign, reg5, ":final_price_for_single_input"),
(assign, reg10, ":final_price_for_secondary_input"),
]),
Количество золота у торговцев в городах.
#The amount of gold merchants have and recieve. Change 1500, 1000, 600 and 1000 to whatever amount you want them to have.
Я сократил тут код. Тут 4 примерно одинаковых элемента (как ниже), только с разными числами и названиями, это для четырёх видов торговцев в городе. Ессесно если вы хотите, чтобы у всех торговцев было много денег, то надо менять во всех 4 кусках кода числа. В первую очередь 1500, 1000, 1000, 600.
1500 - это стандартная сумма, что есть у торговца. Если изменить её на миллион, то при создании новой игры у торговцев общими предметами будет миллион динар. У торговцев не бывает намного больше этой суммы никогда.
1000 это для торговцев оружием и броней
600 это торговцы лошадьми.
# (store_random_in_range,":new_gold",500,1000), - вот эта строка Добавляет торговцу золота, если у него меньше чем "стандартная сумма". минимум 500, максимум 1000. Можно менять и их, чтобы торговцы быстрее набирали нужные "стандартные суммы", но если саму "сумму" вы не поменяете, то добавлятся золото не будет.
(troop_ensure_inventory_space, ":cur_merchant", 20),
(troop_sort_inventory, ":cur_merchant"),
(store_troop_gold, ":cur_gold",":cur_merchant"),
(lt,":cur_gold",1500),
(store_random_in_range,":new_gold",500,1000),
(call_script, "script_troop_add_gold", ":cur_merchant", ":new_gold"),
(try_end),
]),
И наконец то, что люди просили в этой теме. Это жалование/зарплата солдат.
#Player's Party troop wages. 25 is Base wage. Change it to 10000 to pay 1 denar to each troop and companion per week. weekly wage will be 1*party size.
Тут можно очень много чего поменять, (и жалование компаньонам и отдельно кавалерии и тд и тп) но всё обьяснять мне лень :crazy:.
Самое простое, находим:
(val_div, ":wage", 25), - 25 это финальное число, на которое будет делится жалование. Сделайте его 100000
и вы будете платить по 1 динару каждому солдату, даже всадникам 62ого уровня, если такие вдруг есть у вас.
В неделю сумма жалования будет = размер пати*1 динар.
# script_game_get_troop_wage
# This script is called from the game engine for calculating troop wages.
# Input:
# param1: troop_id, param2: party-id
# Output: reg0: weekly wage
("game_get_troop_wage",
[
(store_script_param_1, ":troop_id"),
(store_script_param_2, ":unused"), #party id
(assign,":wage", 0),
(try_begin),
(this_or_next|eq, ":troop_id", "trp_player"),
(eq, ":troop_id", "trp_kidnapped_girl"),
(else_try),
(is_between, ":troop_id", pretenders_begin, pretenders_end),
(else_try),
(store_character_level, ":troop_level", ":troop_id"),
(assign, ":wage", ":troop_level"),
(val_add, ":wage", 3),
(val_mul, ":wage", ":wage"),
(val_div, ":wage", 25),
(try_end),
(try_begin), #mounted troops cost 65% more than the normal cost
(neg|is_between, ":troop_id", companions_begin, companions_end),
(troop_is_mounted, ":troop_id"),
(val_mul, ":wage", 5),
(val_div, ":wage", 3),
(try_end),
(try_begin), #mercenaries cost %50 more than the normal cost
(is_between, ":troop_id", mercenary_troops_begin, mercenary_troops_end),
(val_mul, ":wage", 3),
(val_div, ":wage", 2),
(try_end),
(try_begin),
(is_between, ":troop_id", companions_begin, companions_end),
(val_mul, ":wage", 2),
(try_end),
(store_skill_level, ":leadership_level", "skl_leadership", "trp_player"),
(store_mul, ":leadership_bonus", 5, ":leadership_level"),
(store_sub, ":leadership_factor", 100, ":leadership_bonus"),
(val_mul, ":wage", ":leadership_factor"), #wage = wage * (100 - 5*leadership)/100
(val_div, ":wage", 100),
(try_begin),
(neq, ":troop_id", "trp_player"),
(neq, ":troop_id", "trp_kidnapped_girl"),
(neg|is_between, ":troop_id", pretenders_begin, pretenders_end),
(val_max, ":wage", 1),
(try_end),
(assign, reg0, ":wage"),
(set_trigger_result, reg0),
]),