Zarthas said:
["special_meat","Fibrous Meat", [("raw_meat",0)], itp_merchandise|itp_type_goods|itp_consumable|itp_food, 0, 95,weight(15)|abundance(10)|food_quality(100)|max_ammo(40),imodbits_none],
module_scripts.py said:
kalarhan said:
Ikaguia said:
jacobhinds said:
("action_do_the_horse",[
(assign, ":has_horse", 0),
(try_for_range, ":cur_horse", horses_begin, horses_end),
(player_has_item, ":cur_horse"),
(assign, ":has_horse", 1),
(try_end),
(eq, ":has_horse", 1),
# Count horse
(try_begin),
(player_has_item, "itm_sumpter_horse"),
(store_item_kind_count, ":total_this_horse", "itm_sumpter_horse")
(val_add, ":total_horse", ":total_this_horse"),
(else_try),
(player_has_item, "itm_saddle_horse"),
(store_item_kind_count, ":total_this_horse", "itm_saddle_horse")
(val_add, ":total_horse", ":total_this_horse"),
(else_try),
(player_has_item, "itm_steppe_horse"),
(store_item_kind_count, ":total_this_horse", "itm_steppe_horse")
(val_add, ":total_horse", ":total_this_horse"),
(else_try),
## etc ....
(try_end),
(assign, reg6, ":total_horse"),
],"Check horse condition (you have {reg6} horses).",
("camp_action_do_the_horse",0,
"Placeholder text: thing of another later",
"none",
[],
[
("action_do_the_horse",[
(try_for_range, ":cur_horse", horses_begin, horses_end),
(player_has_item, ":cur_horse"),
(try_end),
],"Check horse condition.",
[
(display_message, "@Test"),
]
),
[anyone|plyr,"deserter_talk", [], "There's no need to fight. I am ready to pay for free passage.", "deserter_barter",[]],
[anyone|plyr,"deserter_talk", [], "What about fighting for our cause? We reward brave men with good cash.", "deserter_recruit",[]],
[anyone,"deserter_recruit", [
(troop_get_slot, ":renown", "trp_player", slot_troop_renown),
(lt,":renown",300), # if player renown is lesser than 300
],"Living on our knees for some unknown {man/woman}? We'd make loads of profits by selling you off to slavers instead!","close_window",[encounter_attack]],
[anyone,"deserter_recruit",[],"Fighting for the sake of unknown {man/woman}? Who the hell do you think you are?","deserter_recruit_2a",[]],
[anyone|plyr,"deserter_recruit_2a",[],"I am {playername}. Have you never heard of my deeds in this land?","deserter_recruit_2b",[]],
[anyone,"deserter_recruit_2b",[
(store_party_size_wo_prisoners, ":size", "$g_encountered_party"), # count deserter party size
(store_mul,":bribe",":size", 50),
(store_random_in_range,":rand",2,5),
(val_mul,":bribe", ":rand"),
(val_div,":bribe", 2),
(assign, reg2, ":bribe"),
],"Huh, you're {playername}? We've heard of you... quite a party you can amass there. Fine, here's the deal. {reg2} denars, and our sword is yours.","deserter_recruit_2c",[]],
[anyone|plyr,"deserter_recruit_2c",[
(store_troop_gold,":gold","trp_player"), # store player's gold in :gold
(ge, ":gold", reg2),
(party_can_join),
],"Fair enough. Here's your {reg2} denars. Let's move.","close_window",
[(troop_remove_gold, "trp_player", reg2),
(call_script, "script_change_player_honor", -5), # Dishonorable act to recruit traitor
(store_party_size_wo_prisoners, ":size", "$g_encountered_party"),
(store_mul, ":morale_change", -2, ":size"),
(call_script, "script_change_player_party_morale", ":morale_change"),
(party_join),
(assign, "$g_leave_encounter", 1)
]
],
[anyone|plyr,"deserter_recruit_2c",[],"That's a bit too pricey, don't you think?","deserter_barter_3b",[]],
[anyone|plyr,"deserter_recruit_2c", [], "On a second thought, I guess I'll just pay the toll.", "deserter_barter",[]],
The_dragon said:
The_dragon said:
(store_random_in_range,":chance",0,60), ### Decrease this number (60) for higher chances of knocking riders off (and vice-versa).
(agent_get_troop_id,":victim_agent",":victim_agent"), ## Xaliber's edit
(store_skill_level,":riding","skl_riding",":victim_agent"), ## Xaliber's edit
(val_mul,":riding",6), ## Xaliber's edit
(val_add,":chance",":riding"), ## Xaliber's edit
(ge,":chance", ":orig_damage"), ### If damage dealt is over or equal to the ":chance" number, knock-off occurs.
Reus said:
Thanks, I appreciate it! Especially for translating the error (whew, is there a documentation somewhere I can find what the errors supposed to mean?)...The_dragon said:
(ti_on_agent_spawn, 0, 0, [],
[
(store_trigger_param_1, ":agent_no"),
(call_script, "script_agent_reassign_team", ":agent_no"),
(assign, ":initial_courage_score", 5000),
(agent_get_troop_id, ":troop_id", ":agent_no"),
(store_character_level, ":troop_level", ":troop_id"),
(val_mul, ":troop_level", 35),
(val_add, ":initial_courage_score", ":troop_level"), #average : 20 * 35 = 700
(store_random_in_range, ":randomized_addition_courage", 0, 3000), #average : 1500
(val_add, ":initial_courage_score", ":randomized_addition_courage"),
(agent_get_party_id, ":agent_party", ":agent_no"),
(party_get_morale, ":cur_morale", ":agent_party"),
(store_sub, ":morale_effect_on_courage", ":cur_morale", 70),
(val_mul, ":morale_effect_on_courage", 30), #this can effect morale with -2100..900
(val_add, ":initial_courage_score", ":morale_effect_on_courage"),
#average = 5000 + 700 + 1500 = 7200; min : 5700, max : 8700
#morale effect = min : -2100(party morale is 0), average : 0(party morale is 70), max : 900(party morale is 100)
#min starting : 3600, max starting : 9600, average starting : 7200
(agent_set_slot, ":agent_no", slot_agent_courage_score, ":initial_courage_score"),
]),
(party_get_morale, ":cur_morale", ":agent_party"),
horses_spook = (
6, 0, 0, [],#Every six seconds
[
(try_for_agents,":cur_horse"),
(agent_is_alive,":cur_horse"),
(agent_get_item_id,":horse_type",":cur_horse"),
(is_between,":horse_type",camels_begin,camels_end),
(agent_get_position,pos2,":cur_horse"),
(agent_get_rider,":cur_rider",":cur_horse"), # Store rider info from camel
(gt, ":cur_rider", -1), # Camel has rider (greater thn -1)
(agent_get_team,":agent_team",":cur_rider"), # Store camel rider info, what team is he?
(try_for_agents,":enemy_horse"), # Then check enemy horse
(agent_is_alive,":enemy_horse"),#Make sure he's not dead
(neg|agent_is_human, ":enemy_horse"),
(agent_get_item_id,":enemy_horse_type",":enemy_horse"),
(neg|is_between, ":enemy_horse_type", camels_begin,camels_end),
(agent_get_position, pos1,":enemy_horse"),
(get_distance_between_positions,":dist",pos1,pos2),#In CM
(le,":dist",3500),#Within 35m
(store_random_in_range,":chance",1,11),
(try_begin), # Check if opposing team, apply horse spook. If not, don't
(agent_get_rider,":enemy_rider",":enemy_horse"),
(gt, ":enemy_rider", -1),
(agent_get_team,":enemy_team",":enemy_rider"),
(try_begin),
(teams_are_enemies,":agent_team",":enemy_team"),
(agent_get_troop_id,":enemy_rider",":enemy_rider"),
(store_skill_level,":riding","skl_riding",":enemy_rider"),
(else_try),
(assign,":riding", 99),
(try_end),
(val_add,":chance",":riding"),
(try_end),
(lt, ":chance", 10),
(agent_play_sound, ":enemy_horse", "snd_horse_low_whinny"), # gives sound
(agent_set_animation,":enemy_horse","anim_horse_rear"),
(try_end), # try_for_agents enemy_horse
(try_end),
]
)
SCRIPT ERROR ON OPCODE 1671: Invalid Party ID: -1; LINE NO: 10
At Mission Template mst_lead_charge trigger no:0 consequences
(try_for_agents,":cur_horse"),
(agent_is_alive,":cur_horse"),
(agent_get_item_id,":horse_type",":cur_horse"),
(is_between,":horse_type",camels_begin,camels_end),
(agent_get_position,pos2,":cur_horse"),
(agent_get_rider,":cur_rider",":cur_horse"),
(try_begin), # check if camel has rider
(gt, ":cur_rider", -1), # if it has, go process
(agent_get_team,":agent_team",":cur_rider"), # get rider's team
(try_for_agents,":enemy_horse"), # then check enemy's horse
(agent_is_alive,":enemy_horse"),#Make sure he's not dead
(neg|agent_is_human, ":enemy_horse"),
(agent_get_item_id,":enemy_horse_type",":enemy_horse"),
(neg|is_between, ":enemy_horse_type", camels_begin,camels_end),
(agent_get_position, pos1,":enemy_horse"),
(get_distance_between_positions,":dist",pos1,pos2),#In CM
(le,":dist",3500),#Within 35m
(store_random_in_range,":chance",1,11),
(try_begin),
(agent_get_rider,":enemy_rider",":enemy_horse"),
(gt, ":enemy_rider", -1),
(agent_get_team,":enemy_team",":enemy_rider"),
(try_begin),
(teams_are_enemies,":agent_team",":enemy_team"),
(agent_get_troop_id,":enemy_rider",":enemy_rider"),
(store_skill_level,":riding","skl_riding",":enemy_rider"),
(else_try),
(assign,":riding", 99),
(try_end),
(val_add,":chance",":riding"),
(try_end),
(lt, ":chance", 10),
(agent_set_animation,":enemy_horse","anim_horse_rear"),
(try_end), # == end of enemy horse check condition
(else_try), # if camel has no rider, then...
# nothing happens?
(try_end),
(try_end),
[code]
(store_random_in_range,":chance",1,11),
(try_begin),
(agent_get_rider,":enemy_rider",":enemy_horse"),
(gt, ":enemy_rider", -1),
(agent_get_team,":enemy_team",":enemy_rider"),
(agent_get_rider,":cur_rider",":cur_horse"),
(agent_get_team,":agent_team",":cur_rider"),
(try_begin),
(teams_are_enemies,":agent_team",":enemy_team"),
(agent_get_troop_id,":enemy_rider",":enemy_rider"),
(store_skill_level,":riding","skl_riding",":enemy_rider"),
(else_try),
(assign,":riding", 99),
(try_end),
(val_add,":chance",":riding"),
(try_end),
(lt, ":chance", 10),
(agent_set_animation,":enemy_horse","anim_horse_rear"),
Somebody said:
(store_random_in_range,":chance",1,11),
(try_begin),
(agent_get_rider,":enemy_rider",":enemy_horse"),
(gt, ":enemy_rider", -1),
(agent_get_troop_id,":enemy_rider",":enemy_rider"),
(store_skill_level,":riding","skl_riding",":enemy_rider"),
(val_add,":chance",":riding"),
(else_try),
(assign,":chance",0),
(try_end),
(lt, ":chance", 10),
(agent_set_animation,":enemy_horse","anim_horse_rear"),