26
Вопросы и ответы по модостроению / Re: Общие вопросы по модостроению
« : 09 Ноября, 2014, 21:40 »
в "дипломатии" констебль тренирует войска только на два повышения, как увеличить прокачку?
вот скрипт от туда:
вот скрипт от туда:
# Constable training
(24,
[
(eq, "$g_player_constable", "trp_dplmc_constable"),
(is_between, "$g_constable_training_center", walled_centers_begin, walled_centers_end),
(party_slot_eq, "$g_constable_training_center", slot_town_lord, "trp_player"),
(store_skill_level, ":trainer_level", skl_trainer, "trp_player"),
(val_add, ":trainer_level", 4),
(store_div, ":xp_gain", ":trainer_level", 2),
(try_for_parties, ":party_no"),
(party_slot_eq, ":party_no", slot_town_lord, "trp_player"),
(eq, ":party_no", "$g_constable_training_center"),
(party_get_num_companion_stacks, ":num_stacks", ":party_no"),
(assign, ":trained", 0),
(try_for_range, ":i_stack", 0, ":num_stacks"),
(eq, ":trained", 0),
(party_stack_get_troop_id, ":troop_id", ":party_no", ":i_stack"),
(neg|troop_is_hero, ":troop_id"),
(troop_get_upgrade_troop, ":upgrade_troop", ":troop_id" , "$g_constable_training_type"),
(try_begin),
(le, ":upgrade_troop", 0),
(troop_get_upgrade_troop, ":upgrade_troop", ":troop_id", 0),
(try_end),
#only proceed if troop is upgradable
(gt, ":upgrade_troop", 0),
(store_character_level, ":troop_level", ":troop_id"),
(assign, ":troop_limit" , 6),
(try_begin),
(eq, "$g_constable_training_improved", 1),
(assign, ":troop_limit" , 10),
(try_begin),
(le, ":troop_level", 6),
(val_add, ":xp_gain", 2), #more recruits are trained during improved training
(try_end),
(try_end),
(le, ":troop_level", ":troop_limit"),
(party_count_members_of_type,":cur_number",":party_no",":troop_id"),
(val_min, ":xp_gain", ":cur_number"),
(call_script, "script_game_get_upgrade_cost", ":troop_id"),
(store_mul, ":upgrade_cost", ":xp_gain", reg0),
(try_begin),
(eq, "$g_constable_training_improved", 1),
(val_add, ":upgrade_cost", 10), #+10 denars during improved training
(try_end),
(store_troop_gold, ":gold", "trp_household_possessions"),
(try_begin),
(lt, ":gold", ":upgrade_cost"),
(store_div, ":money_limit", ":gold", reg0),
(val_min, ":xp_gain", ":money_limit"),
(store_mul, ":upgrade_cost", ":xp_gain", reg0),
(display_message, "@Not enough money in treasury to upgrade troops."),
(try_end),
(party_remove_members,":party_no",":troop_id",":xp_gain"),
(party_add_members, ":party_no", ":upgrade_troop", ":xp_gain"),
(call_script, "script_dplmc_withdraw_from_treasury", ":upgrade_cost"),
(assign, reg5, ":xp_gain"),
(str_store_troop_name, s6, ":troop_id"),
(str_store_troop_name, s7, ":upgrade_troop"),
(str_store_party_name, s8, ":party_no"),
(display_message, "@Your constable upgraded {reg5} {s6} to {s7} in {s8}"),
(assign, ":trained", 1),
(try_end),
(try_end),
]),
(24,
[
(eq, "$g_player_constable", "trp_dplmc_constable"),
(is_between, "$g_constable_training_center", walled_centers_begin, walled_centers_end),
(party_slot_eq, "$g_constable_training_center", slot_town_lord, "trp_player"),
(store_skill_level, ":trainer_level", skl_trainer, "trp_player"),
(val_add, ":trainer_level", 4),
(store_div, ":xp_gain", ":trainer_level", 2),
(try_for_parties, ":party_no"),
(party_slot_eq, ":party_no", slot_town_lord, "trp_player"),
(eq, ":party_no", "$g_constable_training_center"),
(party_get_num_companion_stacks, ":num_stacks", ":party_no"),
(assign, ":trained", 0),
(try_for_range, ":i_stack", 0, ":num_stacks"),
(eq, ":trained", 0),
(party_stack_get_troop_id, ":troop_id", ":party_no", ":i_stack"),
(neg|troop_is_hero, ":troop_id"),
(troop_get_upgrade_troop, ":upgrade_troop", ":troop_id" , "$g_constable_training_type"),
(try_begin),
(le, ":upgrade_troop", 0),
(troop_get_upgrade_troop, ":upgrade_troop", ":troop_id", 0),
(try_end),
#only proceed if troop is upgradable
(gt, ":upgrade_troop", 0),
(store_character_level, ":troop_level", ":troop_id"),
(assign, ":troop_limit" , 6),
(try_begin),
(eq, "$g_constable_training_improved", 1),
(assign, ":troop_limit" , 10),
(try_begin),
(le, ":troop_level", 6),
(val_add, ":xp_gain", 2), #more recruits are trained during improved training
(try_end),
(try_end),
(le, ":troop_level", ":troop_limit"),
(party_count_members_of_type,":cur_number",":party_no",":troop_id"),
(val_min, ":xp_gain", ":cur_number"),
(call_script, "script_game_get_upgrade_cost", ":troop_id"),
(store_mul, ":upgrade_cost", ":xp_gain", reg0),
(try_begin),
(eq, "$g_constable_training_improved", 1),
(val_add, ":upgrade_cost", 10), #+10 denars during improved training
(try_end),
(store_troop_gold, ":gold", "trp_household_possessions"),
(try_begin),
(lt, ":gold", ":upgrade_cost"),
(store_div, ":money_limit", ":gold", reg0),
(val_min, ":xp_gain", ":money_limit"),
(store_mul, ":upgrade_cost", ":xp_gain", reg0),
(display_message, "@Not enough money in treasury to upgrade troops."),
(try_end),
(party_remove_members,":party_no",":troop_id",":xp_gain"),
(party_add_members, ":party_no", ":upgrade_troop", ":xp_gain"),
(call_script, "script_dplmc_withdraw_from_treasury", ":upgrade_cost"),
(assign, reg5, ":xp_gain"),
(str_store_troop_name, s6, ":troop_id"),
(str_store_troop_name, s7, ":upgrade_troop"),
(str_store_party_name, s8, ":party_no"),
(display_message, "@Your constable upgraded {reg5} {s6} to {s7} in {s8}"),
(assign, ":trained", 1),
(try_end),
(try_end),
]),