Caba`drin said:Dermeister said:thats a long script is there a way to copy and past it so that it pasted exacly how you wrote it because me ity pastes it in 1 line O_O! even though i selected it all and did control C control V
That's odd. Have you tried editing the module_*.py files with Notepad++ ? That should ease your pain.
For single player only.SonKidd said:for single player only?
would it be possible for it to work for AI under command for multilayer by adding triggers to the appropriate mission templates?
thanks!
I've not ever dealt with multiplayer coding...I honestly don't know what (if anything) may be required to make this work for bots.
I just tested adding this script to multiplayer battle.
The shield command works.
However, the other commands don't work.
Anyone have any idea wht modifications are needed?
EDIT
I deleted the "Check if Hero" part and it works fine. However, there is one problem, the code works for ALL troops of that class. Not only the ones you are commanding and I can't seem to find the operation for "check whether troop is under your command in multiplayer". Does anyone know it?
Code:
# script_order_weapon_type_switch
# Input: Order Type
# Output: Nothing
# On key depression, try to switch division to appropriate weapon
("order_weapon_type_switch", [
(store_script_param_1, ":ordertype"),
(get_player_agent_no, ":player"),
(agent_get_team, ":playerteam", ":player"),
(try_for_agents, ":agent"),
(agent_is_alive, ":agent"),
(agent_is_human, ":agent"),
(agent_is_non_player, ":agent"),
(agent_get_team, ":team", ":agent"),
(eq, ":team", ":playerteam"), #On Player's side?
(agent_get_division, ":class", ":agent"),
(try_begin), #Mark class as in battle
(eq, ":class", 0),
(assign, ":group0_in_battle", 1),
(else_try),
(eq, ":class", 1),
(assign, ":group1_in_battle", 1),
(else_try),
(eq, ":class", 2),
(assign, ":group2_in_battle", 1),
(else_try),
(eq, ":class", 3),
(assign, ":group3_in_battle", 1),
(else_try),
(eq, ":class", 4),
(assign, ":group4_in_battle", 1),
(else_try),
(eq, ":class", 5),
(assign, ":group5_in_battle", 1),
(else_try),
(eq, ":class", 6),
(assign, ":group6_in_battle", 1),
(else_try),
(eq, ":class", 7),
(assign, ":group7_in_battle", 1),
(else_try),
(eq, ":class", 8),
(assign, ":group8_in_battle", 1),
(try_end),
(class_is_listening_order, ":team", ":class"), #Is the agent's team selected?
(try_begin), #Mark class as selected
(eq, ":class", 0),
(assign, ":group0_is_selected", 1),
(else_try),
(eq, ":class", 1),
(assign, ":group1_is_selected", 1),
(else_try),
(eq, ":class", 2),
(assign, ":group2_is_selected", 1),
(else_try),
(eq, ":class", 3),
(assign, ":group3_is_selected", 1),
(else_try),
(eq, ":class", 4),
(assign, ":group4_is_selected", 1),
(else_try),
(eq, ":class", 5),
(assign, ":group5_is_selected", 1),
(else_try),
(eq, ":class", 6),
(assign, ":group6_is_selected", 1),
(else_try),
(eq, ":class", 7),
(assign, ":group7_is_selected", 1),
(else_try),
(eq, ":class", 8),
(assign, ":group8_is_selected", 1),
(try_end),
(agent_get_troop_id, ":troop",":agent"),
#regular troops
(troop_get_inventory_capacity,":cap",":troop"),
(try_for_range, ":i", 0, ":cap"),#(slots < 10)?
(troop_get_inventory_slot,":item",":troop",":i"),
(gt, ":item", 0),
(item_get_type, ":weapontype", ":item"),
(try_begin),
(eq, ":ordertype", ranged),
(str_store_string, s1, "@ready bows and missiles"),
(this_or_next|eq, ":weapontype", itp_type_bow),
(this_or_next|eq, ":weapontype", itp_type_crossbow),
(eq, ":weapontype", itp_type_thrown),
(agent_has_item_equipped, ":agent", ":item"),
(agent_set_wielded_item, ":agent", ":item"),
(assign, ":cap", 0),#loop breaker
(else_try),
(eq, ":ordertype", onehand),
(str_store_string, s1, "@ready side arms"),
(eq, ":weapontype", itp_type_one_handed_wpn),
(agent_has_item_equipped, ":agent", ":item"),
(agent_set_wielded_item, ":agent", ":item"),
(assign, ":cap", 0),#loop breaker
(else_try),
(eq, ":ordertype", bothhands),
(str_store_string, s1, "@ready two-handers and polearms"),
(this_or_next|eq, ":weapontype", itp_type_two_handed_wpn),
(eq, ":weapontype", itp_type_polearm),
(agent_has_item_equipped, ":agent", ":item"),
(agent_set_wielded_item, ":agent", ":item"),
(assign, ":cap", 0),#loop breaker
(else_try),
(eq, ":ordertype", shield),
(agent_get_wielded_item, ":shield", ":agent", 1),
(try_begin),
(gt, ":shield", 0),
(agent_unequip_item, ":agent", ":shield"),
(agent_equip_item, ":agent", ":shield"), #Moves shield to back
(str_store_string, s1, "@doff your shields"),
(assign, ":cap", 0),#loop breaker
(else_try),
(eq, ":weapontype", itp_type_shield),
(agent_has_item_equipped, ":agent", ":item"),
(agent_set_wielded_item, ":agent", ":item"), #Moves shield from back to hand
(str_store_string, s1, "@brandish shields"),
(assign, ":cap", 0),#loop breaker
(try_end),
(try_end),
(try_end),
(try_end), #Agent Loop
(str_clear, s2),
(str_clear, s3),
(assign, ":count_possible", 0),
(assign, ":count_selected", 0),
(try_begin),
(eq, ":group0_in_battle", 1),
(val_add, ":count_possible", 1),
(eq, ":group0_is_selected", 1),
(val_add, ":count_selected", 1),
(str_store_class_name, s2, 0),
(try_end),
(try_begin),
(eq, ":group1_in_battle", 1),
(val_add, ":count_possible", 1),
(eq, ":group1_is_selected", 1),
(val_add, ":count_selected", 1),
(try_begin),
(neg|str_is_empty, s2),
(str_store_class_name, s3, 1),
(str_store_string, s2, "@{!}{s2}, {s3}"),
(else_try),
(str_store_class_name, s2, 1),
(try_end),
(try_end),
(try_begin),
(eq, ":group2_in_battle", 1),
(val_add, ":count_possible", 1),
(eq, ":group2_is_selected", 1),
(val_add, ":count_selected", 1),
(try_begin),
(neg|str_is_empty, s2),
(str_store_class_name, s3, 2),
(str_store_string, s2, "@{!}{s2}, {s3}"),
(else_try),
(str_store_class_name, s2, 2),
(try_end),
(try_end),
(try_begin),
(eq, ":group3_in_battle", 1),
(val_add, ":count_possible", 1),
(eq, ":group3_is_selected", 1),
(val_add, ":count_selected", 1),
(try_begin),
(neg|str_is_empty, s2),
(str_store_class_name, s3, 3),
(str_store_string, s2, "@{!}{s2}, {s3}"),
(else_try),
(str_store_class_name, s2, 3),
(try_end),
(try_end),
(try_begin),
(eq, ":group4_in_battle", 1),
(val_add, ":count_possible", 1),
(eq, ":group4_is_selected", 1),
(val_add, ":count_selected", 1),
(try_begin),
(neg|str_is_empty, s2),
(str_store_class_name, s3, 4),
(str_store_string, s2, "@{!}{s2}, {s3}"),
(else_try),
(str_store_class_name, s2, 4),
(try_end),
(try_end),
(try_begin),
(eq, ":group5_in_battle", 1),
(val_add, ":count_possible", 1),
(eq, ":group5_is_selected", 1),
(val_add, ":count_selected", 1),
(try_begin),
(neg|str_is_empty, s2),
(str_store_class_name, s3, 5),
(str_store_string, s2, "@{!}{s2}, {s3}"),
(else_try),
(str_store_class_name, s2, 5),
(try_end),
(try_end),
(try_begin),
(eq, ":group6_in_battle", 1),
(val_add, ":count_possible", 1),
(eq, ":group6_is_selected", 1),
(val_add, ":count_selected", 1),
(try_begin),
(neg|str_is_empty, s2),
(str_store_class_name, s3, 6),
(str_store_string, s2, "@{!}{s2}, {s3}"),
(else_try),
(str_store_class_name, s2, 6),
(try_end),
(try_end),
(try_begin),
(eq, ":group7_in_battle", 1),
(val_add, ":count_possible", 1),
(eq, ":group7_is_selected", 1),
(val_add, ":count_selected", 1),
(try_begin),
(neg|str_is_empty, s2),
(str_store_class_name, s3, 7),
(str_store_string, s2, "@{!}{s2}, {s3}"),
(else_try),
(str_store_class_name, s2, 7),
(try_end),
(try_end),
(try_begin),
(eq, ":group8_in_battle", 1),
(val_add, ":count_possible", 1),
(eq, ":group8_is_selected", 1),
(val_add, ":count_selected", 1),
(try_begin),
(neg|str_is_empty, s2),
(str_store_class_name, s3, 8),
(str_store_string, s2, "@{!}{s2}, {s3}"),
(else_try),
(str_store_class_name, s2, 8),
(try_end),
(try_end),
(try_begin),
(eq, ":count_selected", ":count_possible"),
(str_store_string, s2, "@Everyone"),
(try_end),
(try_begin),
(gt, ":count_selected", 0),
(display_message, "@{!}{s2}, {s1}!", 0xFFDDDD66),
(try_end),
(str_clear, s2),
(str_clear, s3),
]),