286
Warhammer; Total War / Map Screenies
« on: April 01, 2010, 01:52:07 AM »
God damn!
B) The sun is shining on the night here to me now
B) The sun is shining on the night here to me now
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
automatic_fire_init = (
ti_before_mission_start, 0, ti_once, [],
[
(call_script, "script_autofire_reset_values"),
])
automatic_fire_test = (
0.2, 0, 0,
[
(key_is_down, key_left_mouse_button),
(neg|key_is_down, key_right_mouse_button),
(assign, "$has_item_equipped", 0),
(get_player_agent_no, ":player"),
(call_script, "script_autofire_agent_try_for_items_equipped", ":player", "itm_amer_ar", "itm_union_smg"),
(eq, "$has_item_equipped", 1),
(agent_is_alive, ":player"),
(neg|agent_is_wounded, ":player"),
(eq, "$autofire_lock", 0),
],
[
(assign, "$autofire_lock", 1),
(try_begin),
(gt, "$ammunition", 0),
(try_for_agents, ":agent"),
(get_player_agent_no, ":player"),
(agent_get_position, pos3, ":player"),
(position_move_x, pos3, 1),
(position_move_y, pos3, 96),
(position_move_z, pos3, 125),
(particle_system_burst, "psys_muzzle_flash", pos3, 1), #You'll need to make your own muzzle flash particle system, it's rather simple.
(play_sound, "snd_fullautotest"), #Change the sound to your liking
(call_script, "script_autofire_get_agent_positions", ":player", ":agent"),
(try_begin),
(eq, "$autofire_damage", 1),
(call_script, "script_autofire_damage_agent", ":player", ":agent", "psys_game_blood", 15, 10, 17), #Particle system not working yet
(try_end),
(val_sub, "$ammunition", 1),
(try_end),
(else_try),
(eq, "$ammunition", 0),
(agent_set_animation, ":player", "anim_reload_crossbow"), #Change the animation to your liking
(assign, "$ammunition", 180),
(try_end),
(assign, "$autofire_lock", 0),
])
autofire_ammo_init = ( #also needed, or you will enter scenes with no ammo.
ti_before_mission_start, 0, ti_once, [],
[(get_player_agent_no, ":player"),
(agent_has_item_equipped, "itm_cartridges"),
(assign, "$ammunition", 180),
])
#Autofire script by cdvader and Rize---------------------------------------------------------
#script_autofire_damage_agent
#Input 1: Damager.
#Input 2: Agent.
#Input 3: Particle System Burst.
#Input 4: Particle System Burst Power.
#Input 5: Random damage value BEGIN.
#Input 6: Random damage value END.
#Output: Damage.
("autofire_damage_agent",
[
(store_script_param, ":player", 1),
(store_script_param, ":agent", 2),
(store_script_param, ":psys", 3),
(store_script_param, ":psys_power", 4),
(store_script_param, ":l_range", 5),
(store_script_param, ":h_range", 6),
(try_begin),
(agent_get_position, pos1, ":agent"),
(agent_get_position, pos2, ":player"),
(neg|position_is_behind_position, pos1, pos2),
(particle_system_burst, ":psys", pos1, ":psys_power"),
(store_agent_hit_points, ":hp", ":agent", 1),
(store_random_in_range, ":rand", ":l_range", ":h_range"),
(val_sub, ":hp", ":rand"),
(val_max, ":hp", 0),
(neq, ":agent", ":player"),
(agent_is_alive, ":agent"),
(agent_set_hit_points, ":agent", ":hp", 1),
(assign, reg1, ":hp"),
(try_begin),
(gt, reg1, 0),
(display_message, "@Delivered {reg1} damage."),
(try_end),
(try_begin),
(lt, ":hp", 1),
(agent_deliver_damage_to_agent, ":player", ":agent"),
(try_end),
(try_end),
]),
#script_autofire_agent_has_item_equipped
#Input 1: Agent.
#Input 2: Weapon item.
#Output: $has_item_equipped variable.
("autofire_agent_has_item_equipped",
[
(store_script_param, ":agent", 1),
(store_script_param, ":item", 2),
(try_begin),
(agent_get_wielded_item, ":w_item", ":agent", 0),
(eq, ":w_item", ":item"),
(assign, "$has_item_equipped", 1),
(else_try),
(assign, "$has_item_equipped", 0),
(try_end),
]),
#script_autofire_agent_try_for_items_equipped
#Input 1: Agent.
#Input 2: Weapon item BEGIN.
#Input 3: Weapon item END.
#Output: $has_item_equipped variable.
("autofire_agent_try_for_items_equipped",
[
(store_script_param, ":agent", 1),
(store_script_param, ":item_begin", 2),
(store_script_param, ":item_end", 3),
(try_for_range, ":all_items", ":item_begin", ":item_end"),
(agent_get_wielded_item, ":w_item", ":agent", 0),
(is_between, ":w_item", ":all_items"),
(assign, "$has_item_equipped", 1),
(else_try),
(agent_get_wielded_item, ":w_item", ":agent", 0),
(eq, ":w_item", ":item_begin"),
(assign, "$has_item_equipped", 1),
(else_try),
(agent_get_wielded_item, ":w_item", ":agent", 0),
(eq, ":w_item", ":item_end"),
(assign, "$has_item_equipped", 1),
(else_try),
(troop_get_type, ":walker", ":agent"),
(eq, ":walker", tf_walker),
(assign, "$has_item_equipped", 1),
(else_try),
(assign, "$has_item_equipped", 0),
(try_end),
]),
#script_autofire_reset_values
#Input: None.
#Output: Resetted values.
("autofire_reset_values",
[
#(assign, "$dist_val", 100),
(assign, "$autofire_lock", 0),
(assign, "$autofire_damage", 0),
(assign, "$has_item_equipped", 0),
]),
#script_autofire_get_agent_positions
#Input 1: Shooter.
#Input 2: Agent.
#Output: Positions.
("autofire_get_agent_positions",
[
(store_script_param, ":player", 1),
(store_script_param, ":agent", 2),
(agent_get_look_position, pos1, ":player"),
(agent_get_position, pos2, ":agent"),
(agent_get_position, pos3, ":player"),
(get_distance_between_positions, ":dist", pos1, pos2),
#(assign, "$dist_val", 100),
(get_distance_between_positions, ":range", pos2, pos3),
(lt, ":range", 2000), #Increase range here
(try_begin),
(neq, ":agent", ":player"),
(lt, ":dist", 100),
(assign, "$autofire_damage", 1),
(else_try), #TODO: Fix this try_for_range loop to drastically decrease the size of the script.
#(try_for_range, reg2, 0, 250),
# (neq, ":agent", ":player"),
# (position_move_y, pos1, 100),
# (position_move_z, pos1, -100),
# (get_distance_between_positions, ":dist", pos1, pos2),
# (val_add, "$dist_val", 100),
# (lt, ":dist", "$dist_val"),
# (assign, "$autofire_damage", 1),
#(try_end),
(neq, ":agent", ":player"),
(position_move_y, pos1, 100),
(position_move_z, pos1, -100),
(get_distance_between_positions, ":dist", pos1, pos2),
(neg|position_is_behind_position, pos2, pos1),
(lt, ":dist", 200),
(assign, "$autofire_damage", 1),
(else_try),
(neq, ":agent", ":player"),
(position_move_y, pos1, 100),
(position_move_z, pos1, -100),
(get_distance_between_positions, ":dist", pos1, pos2),
(neg|position_is_behind_position, pos2, pos1),
(lt, ":dist", 300),
(assign, "$autofire_damage", 1),
(else_try),
(neq, ":agent", ":player"),
(position_move_y, pos1, 100),
(position_move_z, pos1, -100),
(get_distance_between_positions, ":dist", pos1, pos2),
(neg|position_is_behind_position, pos2, pos1),
(lt, ":dist", 400),
(assign, "$autofire_damage", 1),
(else_try),
(neq, ":agent", ":player"),
(position_move_y, pos1, 100),
(position_move_z, pos1, -100),
(get_distance_between_positions, ":dist", pos1, pos2),
(lt, ":dist", 500),
(neg|position_is_behind_position, pos2, pos1),
(assign, "$autofire_damage", 1),
(else_try),
(neq, ":agent", ":player"),
(position_move_y, pos1, 100),
(position_move_z, pos1, -100),
(get_distance_between_positions, ":dist", pos1, pos2),
(neg|position_is_behind_position, pos2, pos1),
(lt, ":dist", 600),
(assign, "$autofire_damage", 1),
(else_try),
(neq, ":agent", ":player"),
(position_move_y, pos1, 100),
(position_move_z, pos1, -100),
(get_distance_between_positions, ":dist", pos1, pos2),
(neg|position_is_behind_position, pos2, pos1),
(lt, ":dist", 700),
(assign, "$autofire_damage", 1),
(else_try),
(neq, ":agent", ":player"),
(position_move_y, pos1, 100),
(position_move_z, pos1, -100),
(get_distance_between_positions, ":dist", pos1, pos2),
(neg|position_is_behind_position, pos2, pos1),
(lt, ":dist", 800),
(assign, "$autofire_damage", 1),
(else_try),
(neq, ":agent", ":player"),
(position_move_y, pos1, 100),
(position_move_z, pos1, -100),
(get_distance_between_positions, ":dist", pos1, pos2),
(neg|position_is_behind_position, pos2, pos1),
(lt, ":dist", 900),
(assign, "$autofire_damage", 1),
(else_try),
(neq, ":agent", ":player"),
(position_move_y, pos1, 100),
(position_move_z, pos1, -100),
(get_distance_between_positions, ":dist", pos1, pos2),
(neg|position_is_behind_position, pos2, pos1),
(lt, ":dist", 1000),
(assign, "$autofire_damage", 1),
(else_try),
(assign, "$autofire_damage", 0),
(try_end),
]),
#---------------------------------------------------------