Autofire Script (cdvader's)

Users who are viewing this thread

The Shadow

Recruit
cdvader messaged me on another site a while ago, asking me to post this.  Never got around to it, download link expired, so kudos to mr.master to actually sending me his mod's source code to extract it from.

It does autofire all right, it just lacks proper hitboxes, and ammunition consumption.  (Feedback from WEe)

I took a look, and couldn't crack the nut, but then again, I'm not all that great.  So for now, it's partially functional, if you can improve it, and make it fully functional, the community will love you. 

For now, the code:
header_common.py

Code:
#Vader begin
autofire_event_damage_enemy = 121
#Vader end

module_items.py
(Under the last line of imodbits)

Code:
#Vader begin
imodbits_smg = 0
#Vader end

(At the bottom)

Code:
#Vader begin
["smg_1", "SMG-1", [("crossbow_a", 0)], itp_type_crossbow|itp_primary|itp_two_handed, itcf_shoot_crossbow|itcf_carry_crossbow_back, 100, weight(1)|difficulty(0)|spd_rtng(50)|shoot_speed(999999)|thrust_damage(20, pierce)|max_ammo(30), imodbits_smg],
["smg_2", "SMG-2", [("crossbow_a", 0)], itp_type_crossbow|itp_primary|itp_two_handed, itcf_shoot_crossbow|itcf_carry_crossbow_back, 100, weight(1)|difficulty(0)|spd_rtng(50)|shoot_speed(999999)|thrust_damage(50, pierce)|max_ammo(30), imodbits_smg],
["smg_end", "smg_end", [("crossbow_a", 0)], itp_type_crossbow|itp_primary|itp_two_handed, itcf_shoot_crossbow|itcf_carry_crossbow_back, 100, weight(1)|difficulty(0)|spd_rtng(50)|shoot_speed(999999)|thrust_damage(1, pierce)|max_ammo(30), imodbits_smg],

["shotgun_1", "Shotgun", [("crossbow_a", 0)], itp_type_crossbow|itp_primary|itp_two_handed, itcf_shoot_crossbow|itcf_carry_crossbow_back, 100, weight(1)|difficulty(0)|spd_rtng(50)|shoot_speed(999999)|thrust_damage(20, pierce)|max_ammo(7), imodbits_smg],
["shotgun_2", "Shotgun", [("crossbow_a", 0)], itp_type_crossbow|itp_primary|itp_two_handed, itcf_shoot_crossbow|itcf_carry_crossbow_back, 100, weight(1)|difficulty(0)|spd_rtng(50)|shoot_speed(999999)|thrust_damage(50, pierce)|max_ammo(7), imodbits_smg],
["shotgun_end", "shotgun_end", [("crossbow_a", 0)], itp_type_crossbow|itp_primary|itp_two_handed, itcf_shoot_crossbow|itcf_carry_crossbow_back, 100, weight(1)|difficulty(0)|spd_rtng(50)|shoot_speed(999999)|thrust_damage(1, pierce)|max_ammo(7), imodbits_smg],
#Vader end

module_mission_templates.py

Code:
#Vader begin

### Notes ###
# I wanted to create near-perfect collision detection with props,
# but I couldn't test it because my damn dedicated server
# won't just display my server in the master list (ports forwarded etc).
# So, I couldn't debug! I've commented anything related to the prop 
# collision detection out. You can de-comment it and test it, but
# I don't guarantee it will work.
# The rest of the code should work anyway.

# I've created two types of weapons. The SMG (automatic) weapon and
# the Shotgun type. As I said before, I couldn't test either one so
# it's up to you to do something with this code base I've given you.

# Anyway, I wish you good luck with your mod! It sounds awesome.
# Maybe you can finish what I left unfinished.

autofire_smg1 = (
    0.025, 0.05, 0,
    [
        #Check if we have the buttons down.
        (game_key_is_down, gk_attack),
        #(game_key_is_down, key_f),
     
        #Get the player and make sure it's agent exists.
        (multiplayer_get_my_player, ":player"),
        (player_get_agent_id, ":agent", ":player"),
        (ge, ":agent", 0),
     
        #Check if the player has the right weapons..
        (call_script, "script_autofire_check_items_equipped", ":agent", "itm_suomikp", "itm_saloranta"),
        (eq, reg0, 1),
     
        #Make sure the player is able to fire.
        (agent_is_alive, ":agent"),
        (agent_get_attack_action, ":action", ":agent"),
        (eq, ":action", 1), #Readying attack.
   ],
   [
       #Get the player and agent again.
      (multiplayer_get_my_player, ":player"),
      (player_get_agent_id, ":agent", ":player"),
      (ge, ":agent", 0),
      (agent_get_wielded_item, ":gun", ":agent", 0), #get currently wielded item
     
      #The shoot position.
      (agent_get_look_position, pos1, ":agent"),
      (position_move_z, pos1, 220),
     
        #Make the agents list for better performance & handling.
        (assign, ":agent_list", -1),
        (try_for_agents, reg1),
            (val_add, ":agent_list", 1),
      (try_end),
      
      #Remove bullets.
      (agent_get_slot, ":bullet_count", ":agent", slot_agent_suomikp_bullet_count),
      (gt, ":bullet_count", 0), #Don't fire at all when the bullet count is less than or equal to 0.
      (val_sub, ":bullet_count", 1),
      (agent_set_ammo, ":agent", "itm_cartridges", ":bullet_count"),
      (agent_set_slot, ":agent", slot_agent_suomikp_bullet_count, ":bullet_count"), #SINISTERIUS -- This must be here as well.   
	  
      #Play sound.
      (try_begin),
            (item_get_slot, ":sound", ":gun", slot_item_sound), #define and assign a sound to this slot
            (gt, ":sound", 0), #if a sound was assigned (0 is default)
            (multiplayer_send_int_to_server,multiplayer_event_sound_at_player,":sound"),
        (try_end),
     
      #Fire the bullet.
      (assign, ":end_cond", 75),
      (try_for_range, reg1, 1, ":end_cond"),
         (position_move_y, pos1, 40),
         
         #Calculate rotation.
         (store_random_in_range, ":rand_x", -10, 11),
         (store_random_in_range, ":rand_z", -10, 11),
         (position_move_x, pos1, ":rand_x"),
         (position_move_z, pos1, ":rand_z"),
         
         #Check if the bullet has hit the ground.
         (try_begin),
            (position_get_distance_to_ground_level, ":distance", pos1),
            (le, ":distance", 10),
            (particle_system_burst, "psys_gourd_smoke", pos1, 20),
           
            #End the loops.
            (assign, ":end_cond", 0),
         (try_end),
         
         #Check if the bullet has hit an agent.
         (try_for_range, ":enemy_agent", 0, ":agent_list"),
            (agent_is_active, ":enemy_agent"),
            (agent_is_alive, ":enemy_agent"),
           
            #Get the distance between the bullet and the possible enemy agent.
            (agent_get_position, pos2, ":enemy_agent"),
            (get_distance_between_positions, ":distance", pos1, pos2),
           
            #Damage agent if distance is sufficient and end the loops.
            (le, ":distance", 100), #75
            (multiplayer_send_int_to_server, autofire_event_damage_enemy, ":enemy_agent"),
            (particle_system_burst, "psys_gourd_smoke", pos1, 20),
           
            #End the loops.
            (assign, ":agent_list", 0),
            (assign, ":end_cond", 0),
         (try_end),
      (try_end),
   ])
	
autofire_smg2 = (
    0.025, 0.05, 0,
    [
        #Check if we have the buttons down.
        (game_key_is_down, gk_attack),
        #(game_key_is_down, key_f),
     
        #Get the player and make sure it's agent exists.
        (multiplayer_get_my_player, ":player"),
        (player_get_agent_id, ":agent", ":player"),
        (ge, ":agent", 0),
     
        #Check if the player has the right weapons..
        (call_script, "script_autofire_check_items_equipped", ":agent", "itm_saloranta", "itm_ppsh"),
        (eq, reg0, 1),
     
        #Make sure the player is able to fire.
        (agent_is_alive, ":agent"),
        (agent_get_attack_action, ":action", ":agent"),
        (eq, ":action", 1), #Readying attack.
   ],
   [
       #Get the player and agent again.
      (multiplayer_get_my_player, ":player"),
      (player_get_agent_id, ":agent", ":player"),
      (ge, ":agent", 0),
      (agent_get_wielded_item, ":gun", ":agent", 0), #get currently wielded item
     
      #The shoot position.
      (agent_get_look_position, pos1, ":agent"),
      (position_move_z, pos1, 220),
     
        #Make the agents list for better performance & handling.
        (assign, ":agent_list", -1),
        (try_for_agents, reg1),
            (val_add, ":agent_list", 1),
      (try_end),
      
      #Remove bullets.
      (agent_get_slot, ":bullet_count", ":agent", slot_agent_saloranta_bullet_count),
      (gt, ":bullet_count", 0), #Don't fire at all when the bullet count is less than or equal to 0.
      (val_sub, ":bullet_count", 1),
      (agent_set_ammo, ":agent", ":gun", ":bullet_count"),
	  (agent_set_slot, ":agent", slot_agent_saloranta_bullet_count, ":bullet_count"), #SINISTERIUS -- This must be here as well.
      
      #Play sound.
      (try_begin),
            (item_get_slot, ":sound", ":gun", slot_item_sound), #define and assign a sound to this slot
            (gt, ":sound", 0), #if a sound was assigned (0 is default)
            (multiplayer_send_int_to_server,multiplayer_event_sound_at_player,":sound"),
        (try_end),
     
      #Fire the bullet.
      (assign, ":end_cond", 75),
      (try_for_range, reg1, 1, ":end_cond"),
         (position_move_y, pos1, 40),
         
         #Calculate rotation.
         (store_random_in_range, ":rand_x", -10, 11),
         (store_random_in_range, ":rand_z", -10, 11),
         (position_move_x, pos1, ":rand_x"),
         (position_move_z, pos1, ":rand_z"),
         
         #Check if the bullet has hit the ground.
         (try_begin),
            (position_get_distance_to_ground_level, ":distance", pos1),
            (le, ":distance", 10),
            (particle_system_burst, "psys_gourd_smoke", pos1, 20),
           
            #End the loops.
            (assign, ":end_cond", 0),
         (try_end),
         
         #Check if the bullet has hit an agent.
         (try_for_range, ":enemy_agent", 0, ":agent_list"),
            (agent_is_active, ":enemy_agent"),
            (agent_is_alive, ":enemy_agent"),
           
            #Get the distance between the bullet and the possible enemy agent.
            (agent_get_position, pos2, ":enemy_agent"),
            (get_distance_between_positions, ":distance", pos1, pos2),
           
            #Damage agent if distance is sufficient and end the loops.
            (le, ":distance", 100), #75
            (multiplayer_send_int_to_server, autofire_event_damage_enemy, ":enemy_agent"),
            (particle_system_burst, "psys_gourd_smoke", pos1, 20),
           
            #End the loops.
            (assign, ":agent_list", 0),
            (assign, ":end_cond", 0),
         (try_end),
      (try_end),
   ])
   
autofire_smg3 = (
    0.025, 0.05, 0,
    [
        #Check if we have the buttons down.
        (game_key_is_down, gk_attack),
        #(game_key_is_down, key_f),
     
        #Get the player and make sure it's agent exists.
        (multiplayer_get_my_player, ":player"),
        (player_get_agent_id, ":agent", ":player"),
        (ge, ":agent", 0),
     
        #Check if the player has the right weapons..
        (call_script, "script_autofire_check_items_equipped", ":agent", "itm_ppsh", "itm_dp27"),
        (eq, reg0, 1),
     
        #Make sure the player is able to fire.
        (agent_is_alive, ":agent"),
        (agent_get_attack_action, ":action", ":agent"),
        (eq, ":action", 1), #Readying attack.
   ],
   [
       #Get the player and agent again.
      (multiplayer_get_my_player, ":player"),
      (player_get_agent_id, ":agent", ":player"),
      (ge, ":agent", 0),
      (agent_get_wielded_item, ":gun", ":agent", 0), #get currently wielded item
     
      #The shoot position.
      (agent_get_look_position, pos1, ":agent"),
      (position_move_z, pos1, 220),
     
        #Make the agents list for better performance & handling.
        (assign, ":agent_list", -1),
        (try_for_agents, reg1),
            (val_add, ":agent_list", 1),
      (try_end),
      
      #Remove bullets.
      (agent_get_slot, ":bullet_count", ":agent", slot_agent_ppsh_bullet_count),
      (gt, ":bullet_count", 0), #Don't fire at all when the bullet count is less than or equal to 0.
      (val_sub, ":bullet_count", 1),
      (agent_set_ammo, ":agent", ":gun", ":bullet_count"),
	  (agent_set_slot, ":agent", slot_agent_ppsh_bullet_count, ":bullet_count"), #SINISTERIUS -- This must be here as well.
      
      #Play sound.
      (try_begin),
            (item_get_slot, ":sound", ":gun", slot_item_sound), #define and assign a sound to this slot
            (gt, ":sound", 0), #if a sound was assigned (0 is default)
            (multiplayer_send_int_to_server,multiplayer_event_sound_at_player,":sound"),
        (try_end),
     
      #Fire the bullet.
      (assign, ":end_cond", 75),
      (try_for_range, reg1, 1, ":end_cond"),
         (position_move_y, pos1, 40),
         
         #Calculate rotation.
         (store_random_in_range, ":rand_x", -10, 11),
         (store_random_in_range, ":rand_z", -10, 11),
         (position_move_x, pos1, ":rand_x"),
         (position_move_z, pos1, ":rand_z"),
         
         #Check if the bullet has hit the ground.
         (try_begin),
            (position_get_distance_to_ground_level, ":distance", pos1),
            (le, ":distance", 10),
            (particle_system_burst, "psys_gourd_smoke", pos1, 20),
           
            #End the loops.
            (assign, ":end_cond", 0),
         (try_end),
         
         #Check if the bullet has hit an agent.
         (try_for_range, ":enemy_agent", 0, ":agent_list"),
            (agent_is_active, ":enemy_agent"),
            (agent_is_alive, ":enemy_agent"),
           
            #Get the distance between the bullet and the possible enemy agent.
            (agent_get_position, pos2, ":enemy_agent"),
            (get_distance_between_positions, ":distance", pos1, pos2),
           
            #Damage agent if distance is sufficient and end the loops.
            (le, ":distance", 100), #75
            (multiplayer_send_int_to_server, autofire_event_damage_enemy, ":enemy_agent"),
            (particle_system_burst, "psys_gourd_smoke", pos1, 20),
           
            #End the loops.
            (assign, ":agent_list", 0),
            (assign, ":end_cond", 0),
         (try_end),
      (try_end),
   ])
   
autofire_smg4 = (
    0.025, 0.05, 0,
    [
        #Check if we have the buttons down.
        (game_key_is_down, gk_attack),
        #(game_key_is_down, key_f),
     
        #Get the player and make sure it's agent exists.
        (multiplayer_get_my_player, ":player"),
        (player_get_agent_id, ":agent", ":player"),
        (ge, ":agent", 0),
     
        #Check if the player has the right weapons..
        (call_script, "script_autofire_check_items_equipped", ":agent", "itm_dp27", "itm_peltiheikki"),
        (eq, reg0, 1),
     
        #Make sure the player is able to fire.
        (agent_is_alive, ":agent"),
        (agent_get_attack_action, ":action", ":agent"),
        (eq, ":action", 1), #Readying attack.
   ],
   [
       #Get the player and agent again.
      (multiplayer_get_my_player, ":player"),
      (player_get_agent_id, ":agent", ":player"),
      (ge, ":agent", 0),
      (agent_get_wielded_item, ":gun", ":agent", 0), #get currently wielded item
     
      #The shoot position.
      (agent_get_look_position, pos1, ":agent"),
      (position_move_z, pos1, 220),
     
        #Make the agents list for better performance & handling.
        (assign, ":agent_list", -1),
        (try_for_agents, reg1),
            (val_add, ":agent_list", 1),
      (try_end),
      
      #Remove bullets.
      (agent_get_slot, ":bullet_count", ":agent", slot_agent_dp27_bullet_count),
      (gt, ":bullet_count", 0), #Don't fire at all when the bullet count is less than or equal to 0.
      (val_sub, ":bullet_count", 1),
      (agent_set_ammo, ":agent", ":gun", ":bullet_count"),
	  (agent_set_slot, ":agent", slot_agent_dp27_bullet_count, ":bullet_count"), #SINISTERIUS -- This must be here as well.
      
      #Play sound.
      (try_begin),
            (item_get_slot, ":sound", ":gun", slot_item_sound), #define and assign a sound to this slot
            (gt, ":sound", 0), #if a sound was assigned (0 is default)
            (multiplayer_send_int_to_server,multiplayer_event_sound_at_player,":sound"),
        (try_end),
     
      #Fire the bullet.
      (assign, ":end_cond", 75),
      (try_for_range, reg1, 1, ":end_cond"),
         (position_move_y, pos1, 40),
         
         #Calculate rotation.
         (store_random_in_range, ":rand_x", -10, 11),
         (store_random_in_range, ":rand_z", -10, 11),
         (position_move_x, pos1, ":rand_x"),
         (position_move_z, pos1, ":rand_z"),
         
         #Check if the bullet has hit the ground.
         (try_begin),
            (position_get_distance_to_ground_level, ":distance", pos1),
            (le, ":distance", 10),
            (particle_system_burst, "psys_gourd_smoke", pos1, 20),
           
            #End the loops.
            (assign, ":end_cond", 0),
         (try_end),
         
         #Check if the bullet has hit an agent.
         (try_for_range, ":enemy_agent", 0, ":agent_list"),
            (agent_is_active, ":enemy_agent"),
            (agent_is_alive, ":enemy_agent"),
           
            #Get the distance between the bullet and the possible enemy agent.
            (agent_get_position, pos2, ":enemy_agent"),
            (get_distance_between_positions, ":distance", pos1, pos2),
           
            #Damage agent if distance is sufficient and end the loops.
            (le, ":distance", 100), #75
            (multiplayer_send_int_to_server, autofire_event_damage_enemy, ":enemy_agent"),
            (particle_system_burst, "psys_gourd_smoke", pos1, 20),
           
            #End the loops.
            (assign, ":agent_list", 0),
            (assign, ":end_cond", 0),
         (try_end),
      (try_end),
   ])
   
autofire_smg5 = (
    0.025, 0.05, 0,
    [
        #Check if we have the buttons down.
        (game_key_is_down, gk_attack),
        #(game_key_is_down, key_f),
     
        #Get the player and make sure it's agent exists.
        (multiplayer_get_my_player, ":player"),
        (player_get_agent_id, ":agent", ":player"),
        (ge, ":agent", 0),
     
        #Check if the player has the right weapons..
        (call_script, "script_autofire_check_items_equipped", ":agent", "itm_peltiheikki", "itm_ppsh_42"),
        (eq, reg0, 1),
     
        #Make sure the player is able to fire.
        (agent_is_alive, ":agent"),
        (agent_get_attack_action, ":action", ":agent"),
        (eq, ":action", 1), #Readying attack.
   ],
   [
       #Get the player and agent again.
      (multiplayer_get_my_player, ":player"),
      (player_get_agent_id, ":agent", ":player"),
      (ge, ":agent", 0),
      (agent_get_wielded_item, ":gun", ":agent", 0), #get currently wielded item
     
      #The shoot position.
      (agent_get_look_position, pos1, ":agent"),
      (position_move_z, pos1, 220),
     
        #Make the agents list for better performance & handling.
        (assign, ":agent_list", -1),
        (try_for_agents, reg1),
            (val_add, ":agent_list", 1),
      (try_end),
      
      #Remove bullets.
      (agent_get_slot, ":bullet_count", ":agent", slot_agent_ppsh_42_bullet_count),
      (gt, ":bullet_count", 0), #Don't fire at all when the bullet count is less than or equal to 0.
      (val_sub, ":bullet_count", 1),
      (agent_set_ammo, ":agent", ":gun", ":bullet_count"),
	  (agent_set_slot, ":agent", slot_agent_ppsh_42_bullet_count, ":bullet_count"), #SINISTERIUS -- This must be here as well.
      
      #Play sound.
      (try_begin),
            (item_get_slot, ":sound", ":gun", slot_item_sound), #define and assign a sound to this slot
            (gt, ":sound", 0), #if a sound was assigned (0 is default)
            (multiplayer_send_int_to_server,multiplayer_event_sound_at_player,":sound"),
        (try_end),
     
      #Fire the bullet.
      (assign, ":end_cond", 75),
      (try_for_range, reg1, 1, ":end_cond"),
         (position_move_y, pos1, 40),
         
         #Calculate rotation.
         (store_random_in_range, ":rand_x", -10, 11),
         (store_random_in_range, ":rand_z", -10, 11),
         (position_move_x, pos1, ":rand_x"),
         (position_move_z, pos1, ":rand_z"),
         
         #Check if the bullet has hit the ground.
         (try_begin),
            (position_get_distance_to_ground_level, ":distance", pos1),
            (le, ":distance", 10),
            (particle_system_burst, "psys_gourd_smoke", pos1, 20),
           
            #End the loops.
            (assign, ":end_cond", 0),
         (try_end),
         
         #Check if the bullet has hit an agent.
         (try_for_range, ":enemy_agent", 0, ":agent_list"),
            (agent_is_active, ":enemy_agent"),
            (agent_is_alive, ":enemy_agent"),
           
            #Get the distance between the bullet and the possible enemy agent.
            (agent_get_position, pos2, ":enemy_agent"),
            (get_distance_between_positions, ":distance", pos1, pos2),
           
            #Damage agent if distance is sufficient and end the loops.
            (le, ":distance", 100), #75
            (multiplayer_send_int_to_server, autofire_event_damage_enemy, ":enemy_agent"),
            (particle_system_burst, "psys_gourd_smoke", pos1, 20),
           
            #End the loops.
            (assign, ":agent_list", 0),
            (assign, ":end_cond", 0),
         (try_end),
      (try_end),
   ])
 

(Code continued in next message.  I hit the character limit.)






 
Directly under the last mission_templates entry:

Code:
autofire_smg6 = (
    0.025, 0.05, 0,
    [
        #Check if we have the buttons down.
        (game_key_is_down, gk_attack),
        #(game_key_is_down, key_f),
     
        #Get the player and make sure it's agent exists.
        (multiplayer_get_my_player, ":player"),
        (player_get_agent_id, ":agent", ":player"),
        (ge, ":agent", 0),
     
        #Check if the player has the right weapons..
        (call_script, "script_autofire_check_items_equipped", ":agent", "itm_mp40", "itm_stg44"),
        (eq, reg0, 1),
     
        #Make sure the player is able to fire.
        (agent_is_alive, ":agent"),
        (agent_get_attack_action, ":action", ":agent"),
        (eq, ":action", 1), #Readying attack.
   ],
   [
       #Get the player and agent again.
      (multiplayer_get_my_player, ":player"),
      (player_get_agent_id, ":agent", ":player"),
      (ge, ":agent", 0),
      (agent_get_wielded_item, ":gun", ":agent", 0), #get currently wielded item
     
      #The shoot position.
      (agent_get_look_position, pos1, ":agent"),
      (position_move_z, pos1, 220),
     
        #Make the agents list for better performance & handling.
        (assign, ":agent_list", -1),
        (try_for_agents, reg1),
            (val_add, ":agent_list", 1),
      (try_end),
      
      #Remove bullets.
      (agent_get_slot, ":bullet_count", ":agent", slot_agent_mp40_bullet_count),
      (gt, ":bullet_count", 0), #Don't fire at all when the bullet count is less than or equal to 0.
      (val_sub, ":bullet_count", 1),
      (agent_set_ammo, ":agent", ":gun", ":bullet_count"),
	  (agent_set_slot, ":agent", slot_agent_mp40_bullet_count, ":bullet_count"), #SINISTERIUS -- This must be here as well.
      
      #Play sound.
      (try_begin),
            (item_get_slot, ":sound", ":gun", slot_item_sound), #define and assign a sound to this slot
            (gt, ":sound", 0), #if a sound was assigned (0 is default)
            (multiplayer_send_int_to_server,multiplayer_event_sound_at_player,":sound"),
        (try_end),
     
      #Fire the bullet.
      (assign, ":end_cond", 75),
      (try_for_range, reg1, 1, ":end_cond"),
         (position_move_y, pos1, 40),
         
         #Calculate rotation.
         (store_random_in_range, ":rand_x", -10, 11),
         (store_random_in_range, ":rand_z", -10, 11),
         (position_move_x, pos1, ":rand_x"),
         (position_move_z, pos1, ":rand_z"),
         
         #Check if the bullet has hit the ground.
         (try_begin),
            (position_get_distance_to_ground_level, ":distance", pos1),
            (le, ":distance", 10),
            (particle_system_burst, "psys_gourd_smoke", pos1, 20),
           
            #End the loops.
            (assign, ":end_cond", 0),
         (try_end),
         
         #Check if the bullet has hit an agent.
         (try_for_range, ":enemy_agent", 0, ":agent_list"),
            (agent_is_active, ":enemy_agent"),
            (agent_is_alive, ":enemy_agent"),
           
            #Get the distance between the bullet and the possible enemy agent.
            (agent_get_position, pos2, ":enemy_agent"),
            (get_distance_between_positions, ":distance", pos1, pos2),
           
            #Damage agent if distance is sufficient and end the loops.
            (le, ":distance", 100), #75
            (multiplayer_send_int_to_server, autofire_event_damage_enemy, ":enemy_agent"),
            (particle_system_burst, "psys_gourd_smoke", pos1, 20),
           
            #End the loops.
            (assign, ":agent_list", 0),
            (assign, ":end_cond", 0),
         (try_end),
      (try_end),
   ])
   
autofire_smg7 = (
    0.025, 0.05, 0,
    [
        #Check if we have the buttons down.
        (game_key_is_down, gk_attack),
        #(game_key_is_down, key_f),
     
        #Get the player and make sure it's agent exists.
        (multiplayer_get_my_player, ":player"),
        (player_get_agent_id, ":agent", ":player"),
        (ge, ":agent", 0),
     
        #Check if the player has the right weapons..
        (call_script, "script_autofire_check_items_equipped", ":agent", "itm_stg44", "itm_mg42"),
        (eq, reg0, 1),
     
        #Make sure the player is able to fire.
        (agent_is_alive, ":agent"),
        (agent_get_attack_action, ":action", ":agent"),
        (eq, ":action", 1), #Readying attack.
   ],
   [
       #Get the player and agent again.
      (multiplayer_get_my_player, ":player"),
      (player_get_agent_id, ":agent", ":player"),
      (ge, ":agent", 0),
      (agent_get_wielded_item, ":gun", ":agent", 0), #get currently wielded item
     
      #The shoot position.
      (agent_get_look_position, pos1, ":agent"),
      (position_move_z, pos1, 220),
     
        #Make the agents list for better performance & handling.
        (assign, ":agent_list", -1),
        (try_for_agents, reg1),
            (val_add, ":agent_list", 1),
      (try_end),
      
      #Remove bullets.
      (agent_get_slot, ":bullet_count", ":agent", slot_agent_stg44_bullet_count),
      (gt, ":bullet_count", 0), #Don't fire at all when the bullet count is less than or equal to 0.
      (val_sub, ":bullet_count", 1),
      (agent_set_ammo, ":agent", ":gun", ":bullet_count"),
	  (agent_set_slot, ":agent", slot_agent_stg44_bullet_count, ":bullet_count"), #SINISTERIUS -- This must be here as well.
      
      #Play sound.
      (try_begin),
            (item_get_slot, ":sound", ":gun", slot_item_sound), #define and assign a sound to this slot
            (gt, ":sound", 0), #if a sound was assigned (0 is default)
            (multiplayer_send_int_to_server,multiplayer_event_sound_at_player,":sound"),
        (try_end),
     
      #Fire the bullet.
      (assign, ":end_cond", 75),
      (try_for_range, reg1, 1, ":end_cond"),
         (position_move_y, pos1, 40),
         
         #Calculate rotation.
         (store_random_in_range, ":rand_x", -10, 11),
         (store_random_in_range, ":rand_z", -10, 11),
         (position_move_x, pos1, ":rand_x"),
         (position_move_z, pos1, ":rand_z"),
         
         #Check if the bullet has hit the ground.
         (try_begin),
            (position_get_distance_to_ground_level, ":distance", pos1),
            (le, ":distance", 10),
            (particle_system_burst, "psys_gourd_smoke", pos1, 20),
           
            #End the loops.
            (assign, ":end_cond", 0),
         (try_end),
         
         #Check if the bullet has hit an agent.
         (try_for_range, ":enemy_agent", 0, ":agent_list"),
            (agent_is_active, ":enemy_agent"),
            (agent_is_alive, ":enemy_agent"),
           
            #Get the distance between the bullet and the possible enemy agent.
            (agent_get_position, pos2, ":enemy_agent"),
            (get_distance_between_positions, ":distance", pos1, pos2),
           
            #Damage agent if distance is sufficient and end the loops.
            (le, ":distance", 100), #75
            (multiplayer_send_int_to_server, autofire_event_damage_enemy, ":enemy_agent"),
            (particle_system_burst, "psys_gourd_smoke", pos1, 20),
           
            #End the loops.
            (assign, ":agent_list", 0),
            (assign, ":end_cond", 0),
         (try_end),
      (try_end),
   ])
   
autofire_smg8 = (
    0.025, 0.05, 0,
    [
        #Check if we have the buttons down.
        (game_key_is_down, gk_attack),
        #(game_key_is_down, key_f),
     
        #Get the player and make sure it's agent exists.
        (multiplayer_get_my_player, ":player"),
        (player_get_agent_id, ":agent", ":player"),
        (ge, ":agent", 0),
     
        #Check if the player has the right weapons..
        (call_script, "script_autofire_check_items_equipped", ":agent", "itm_mg42", "itm_lahti"),
        (eq, reg0, 1),
     
        #Make sure the player is able to fire.
        (agent_is_alive, ":agent"),
        (agent_get_attack_action, ":action", ":agent"),
        (eq, ":action", 1), #Readying attack.
   ],
   [
       #Get the player and agent again.
      (multiplayer_get_my_player, ":player"),
      (player_get_agent_id, ":agent", ":player"),
      (ge, ":agent", 0),
      (agent_get_wielded_item, ":gun", ":agent", 0), #get currently wielded item
     
      #The shoot position.
      (agent_get_look_position, pos1, ":agent"),
      (position_move_z, pos1, 220),
     
        #Make the agents list for better performance & handling.
        (assign, ":agent_list", -1),
        (try_for_agents, reg1),
            (val_add, ":agent_list", 1),
      (try_end),
      
      #Remove bullets.
      (agent_get_slot, ":bullet_count", ":agent", slot_agent_mg42_bullet_count),
      (gt, ":bullet_count", 0), #Don't fire at all when the bullet count is less than or equal to 0.
      (val_sub, ":bullet_count", 1),
      (agent_set_ammo, ":agent", ":gun", ":bullet_count"),
	  (agent_set_slot, ":agent", slot_agent_mg42_bullet_count, ":bullet_count"), #SINISTERIUS -- This must be here as well.
      
      #Play sound.
      (try_begin),
            (item_get_slot, ":sound", ":gun", slot_item_sound), #define and assign a sound to this slot
            (gt, ":sound", 0), #if a sound was assigned (0 is default)
            (multiplayer_send_int_to_server,multiplayer_event_sound_at_player,":sound"),
        (try_end),
     
      #Fire the bullet.
      (assign, ":end_cond", 75),
      (try_for_range, reg1, 1, ":end_cond"),
         (position_move_y, pos1, 40),
         
         #Calculate rotation.
         (store_random_in_range, ":rand_x", -10, 11),
         (store_random_in_range, ":rand_z", -10, 11),
         (position_move_x, pos1, ":rand_x"),
         (position_move_z, pos1, ":rand_z"),
         
         #Check if the bullet has hit the ground.
         (try_begin),
            (position_get_distance_to_ground_level, ":distance", pos1),
            (le, ":distance", 10),
            (particle_system_burst, "psys_gourd_smoke", pos1, 20),
           
            #End the loops.
            (assign, ":end_cond", 0),
         (try_end),
         
         #Check if the bullet has hit an agent.
         (try_for_range, ":enemy_agent", 0, ":agent_list"),
            (agent_is_active, ":enemy_agent"),
            (agent_is_alive, ":enemy_agent"),
           
            #Get the distance between the bullet and the possible enemy agent.
            (agent_get_position, pos2, ":enemy_agent"),
            (get_distance_between_positions, ":distance", pos1, pos2),
           
            #Damage agent if distance is sufficient and end the loops.
            (le, ":distance", 100), #75
            (multiplayer_send_int_to_server, autofire_event_damage_enemy, ":enemy_agent"),
            (particle_system_burst, "psys_gourd_smoke", pos1, 20),
           
            #End the loops.
            (assign, ":agent_list", 0),
            (assign, ":end_cond", 0),
         (try_end),
      (try_end),
   ])
   
autofire_shotgun = (
    0.025, 0.5, 0,
	[
	    #Check if we have the buttons down.
	    (game_key_is_down, gk_attack),
		(game_key_is_down, gk_action),
		
		#Get the player and make sure it's agent exists.
		(multiplayer_get_my_player, ":player"),
		(player_get_agent_id, ":agent", ":player"),
		(ge, ":agent", 0),
		
		#Check if the player has the right weapons..
		(call_script, "script_autofire_check_items_equipped", ":agent", "itm_shotgun_1", "itm_shotgun_end"),
		(eq, reg0, 1),
		
		#Make sure the player is able to fire.
		(agent_is_alive, ":agent"),
		(agent_get_attack_action, ":action", ":agent"),
		(eq, ":action", 2), #Releasing attack.
	],
	[
	    #Get the player and agent again.
		(multiplayer_get_my_player, ":player"),
		(player_get_agent_id, ":agent", ":player"),
		(ge, ":agent", 0),
		
		#The shoot position.
		(agent_get_look_position, pos1, ":agent"),
		(position_move_z, pos1, 220),
		
		#Make the agents list for better performance.
		(assign, ":agent_list", -1),
		(try_for_agents, ":agent"),
		    (agent_is_active, ":agent"),
			(val_add, ":agent_list", 1),
		(try_end),
		
#		#Spawn the bullet prop OR use existing one if possible.
#		(assign, ":using_existing_bullet_prop", 0),
#		(try_begin),
#		    (neg|player_slot_ge, ":player", autofire_slot_bullet_prop, 0),
#        	(set_spawn_position, pos1),
#    		(spawn_scene_prop, "spr_bullet_prop", 0),
#		(else_try),
#		    (assign, ":using_existing_bullet_prop", 1),
#		(try_end),
#
#		#Since TaleWorlds STILL HASN'T GOD DAMN FIXED PROP SPAWNING, a hacky workaround ensumes!
#		(assign, ":bullet_prop_instance", -1),
#		(try_begin),
#		    (scene_prop_get_num_instances, ":num_instances", "spr_bullet_prop"),
#			(ge, ":num_instances", 0),
#			
#			#Loop through every bullet prop.
#			(assign, ":prop_end_cond", ":num_instances"),
#			(try_for_range, ":current_instance", 0, ":prop_end_cond"),
#			    (neq, ":prop_end_cond", 0),
#			    (scene_prop_get_instance, ":instance", "spr_bullet_prop", ":current_instance"),
#				
#				#Make sure we can proceed.
#				(this_or_next|player_slot_eq, ":player", autofire_slot_bullet_prop, ":instance"),
#				(             neg|scene_prop_slot_ge, ":instance", autofire_slot_bullet_prop_used, 1),
#				
#				#Check our current state and do stuff.
#				(try_begin),
#				    (eq, ":using_existing_bullet_prop", 0),
#					(player_set_slot, ":player", autofire_slot_bullet_prop, ":instance"),
#					(scene_prop_set_slot, ":instance", autofire_slot_bullet_prop_used, 1),
#				(try_end),
#				
#				#End the loop.
#				(assign, ":prop_end_cond", 0),
#			(try_end),
#			
#			(prop_instance_set_position, ":instance", pos1),
#			(assign, ":bullet_prop_instance", ":instance"),
#		(try_end),
#		(neq, ":bullet_prop_instance", -1),
		
		#Fire the weapon.
		(assign, ":end_cond", 250),
		(try_for_range, reg1, 1, ":end_cond"),
		    (position_move_y, pos1, 50),
			
			#Loop through each bullet.
			(try_for_range, reg2, 0, 5), #5 bullets.
    			#Calculate rotation.
    			(store_random_in_range, ":rand_x", -5, 6),
    			(store_random_in_range, ":rand_z", -5, 6),
    			(position_move_x, pos1, ":rand_x"),
    			(position_move_z, pos1, ":rand_z"),
#    			(prop_instance_set_position, ":instance", pos1),
	   		
	    		#Check if the bullet has hit the ground.
	    		(try_begin),
	    		    (position_get_distance_to_ground_level, ":distance", pos1),
	    			(le, ":distance", 10),
	    			(particle_system_burst, "psys_gourd_smoke", pos1, 20),
	    			
	    			#End the loops.
	    			(assign, ":agent_end_cond", 0),
    				(assign, ":end_cond", 0),
    			(try_end),
    			(neq, ":end_cond", 0),
    			
    			#Check if the bullet has hit an agent.
    			(assign, ":agent_end_cond", ":agent_list"),
    			(try_for_range, ":enemy_agent", 0, ":agent_end_cond"),
    			    (neq, ":agent_end_cond", 0),
    			    (agent_is_active, ":enemy_agent"),
    				(agent_is_alive, ":enemy_agent"),
    				
    				#Get the distance between the bullet and the possible enemy agent.
    				(agent_get_position, pos2, ":enemy_agent"),
    				(get_distance_between_positions, ":distance", pos1, pos2),
    				
    				#Damage agent if distance is sufficient and end the loops.
    				(le, ":distance", 75),
    				(multiplayer_send_int_to_server, autofire_event_damage_enemy, ":enemy_agent"),
    				(particle_system_burst, "psys_gourd_smoke", pos1, 20),
    				
    				#End the loops.
    				(assign, ":agent_end_cond", 0),
    				(assign, ":end_cond", 0),
    			(try_end),
#		    	(neq, ":end_cond", 0),
#			
#	    		#Check if the bullet has hit an prop.
#	    		(assign, ":spr_end_cond", "spr_city_swad_05"),
#	    		(try_for_range, ":current_prop", "spr_shelves", ":spr_end_cond"),
#	    		    (neq, ":spr_end_cond", 0),
#	    		    (scene_prop_get_num_instances, ":num_instances", ":current_prop"),
#	    			(ge, ":num_instances", 0),
#	     			
#	    			#Loop and check.
#	    			(try_for_range, ":current_instance", 0, ":num_instances"),
#	    			    (scene_prop_get_instance, ":instance", ":current_prop", ":current_instance"),
#	     				(prop_instance_intersects_with_prop_instance, ":bullet_prop_instance", ":instance"),
#	    				(particle_system_burst, "psys_gourd_smoke", pos1, 20),
#	    				
#	     	    		#End the loops.
#		         		(assign, ":spr_end_cond", 0),
#		         		(assign, ":end_cond", 0),
#			    	(try_end),
#	    		(try_end),
    		(try_end),
		(try_end),
	])

#Vader end

module_scripts.py
(with the rest of the item_set_slot scripts)

Code:
    #Vader begin
	
	### Notes ###
	# You MUST give each automatic weapon a low and high modifier.
	
	#(assign, "$autofire_prop_linked_list", -1),
	
	#(item_set_slot, "itm_smg", slot_item_multiplayer_item_class, multi_item_class_type_bow), #do this for each autofire gun!

             #Vader end

After the first "try_begin" in game_receive_network_message

Code:
		#Vader begin
		
		### Notes ###
		# The rest of the stuff is done client-side,
		# but damage-dealing and sounds MUST be done
		# on the server. Thus, this event surfaced.
		
		    (eq, ":event_type", autofire_event_damage_enemy),
			(store_script_param, ":enemy_agent", 3),
			(ge, ":enemy_agent", 0),
			
			#Get the necessary data.
			(player_get_agent_id, ":agent_no", ":player_no"),
			(ge, ":agent_no", 0),
			(agent_get_wielded_item, ":wielded_item", ":agent_no", 0),
			(store_agent_hit_points, ":hit_points", ":enemy_agent", 1),
			(item_get_slot, ":damage_modifier_low", ":wielded_item", autofire_slot_damage_modifier_low),
			(item_get_slot, ":damage_modifier_high", ":wielded_item", autofire_slot_damage_modifier_high),
			(store_random_in_range, ":rand", ":damage_modifier_low", ":damage_modifier_high"),
			
			#Play firing sound at shooter.
			#(agent_play_sound, ":agent_no", "snd_pistol_shot"),
			
			#Damage the agent.
			(store_agent_hit_points, ":hit_points", ":enemy_agent", 1),
			(item_get_slot, ":damage_modifier_low", ":wielded_item", autofire_slot_damage_modifier_low),
			(item_get_slot, ":damage_modifier_high", ":wielded_item", autofire_slot_damage_modifier_high),
			(store_random_in_range, ":rand", ":damage_modifier_low", ":damage_modifier_high"),
			(val_add, ":rand", ":damage_modifier_low"),
			(val_sub, ":hit_points", ":rand"),
			(val_max, ":hit_points", 0),
			(agent_set_hit_points, ":enemy_agent", ":hit_points", 1),
			
			#Check if we killed the agent.
			(try_begin),
			    (eq, ":hit_points", 0),
				(agent_deliver_damage_to_agent, ":agent_no", ":enemy_agent"),
			(try_end),
		(else_try),
		#Vader end

And that's everything I have.  Hope someone can get it to work. 
 
The most important thing of this system that I absolutely do not like:
Hit detection is client side. (imagine the hacks of people killing everyone in the server)

I know there is no other system right now but It might be better to send a message to the server when you hold down your firing button and another one when you release it, to move the whole autofire + hit detection server side.

Also the agent_play_sound needs to be broadcasted to the clients because all sound ops only work when run client side.

The agent_set_ammo operation is fixed in the next Warband patch. It will set the ammo to the exact value, This needs to be run server side, not client side.
Make sure you set the ammo for the ammo item and not the gun item.

For hit detection I suggest you make a system with transforming the position to local between the bullet and the agent position, to create a hitbox for the agent. you could even convert this into a x parts system for head/body/legs. This might be a laggy system, but i used it for my cannon system in M&M, If you add some checks for it and have a Mission template with a 0.25 interval you should be fine.

Good luck!
 
What happened to my mod? Mine has accurate hitboxes, works with the player, NPC's, and theoretically with multiplayer and bots.
 
WE are waiting for it D: This was done along time ago as osp to be freely used by anyone. This is just if someone wants to work on this. Personally, I hope you get yours ready, as your our only hope :razz:
 
I get this error:
Traceback (most recent call last):
  File "process_init.py", line 2, in <module>
    from process_operations import *
  File "C:\Program Files\Mount&Blade Warband\Modules\Calradia 2015 Ms\process_op
erations.py", line 20, in <module>
    from module_scripts import *
  File "C:\Program Files\Mount&Blade Warband\Modules\Calradia 2015 Ms\module_scr
ipts.py", line 8815, in <module>
    (item_get_slot, ":damage_modifier_low", ":wielded_item", autofire_slot_damag
e_modifier_low),
NameError: name 'autofire_slot_damage_modifier_low' is not defined
Traceback (most recent call last):
  File "process_global_variables.py", line 12, in <module>
    from process_operations import *
  File "C:\Program Files\Mount&Blade Warband\Modules\Calradia 2015 Ms\process_op
erations.py", line 20, in <module>
    from module_scripts import *
  File "C:\Program Files\Mount&Blade Warband\Modules\Calradia 2015 Ms\module_scr
ipts.py", line 8815, in <module>
    (item_get_slot, ":damage_modifier_low", ":wielded_item", autofire_slot_damag
e_modifier_low),
NameError: name 'autofire_slot_damage_modifier_low' is not defined
Exporting strings...
Exporting skills...
Exporting tracks...
Exporting animations...
Exporting meshes...
Exporting sounds...
Exporting skins...
Traceback (most recent call last):
  File "process_map_icons.py", line 6, in <module>
    from process_operations import *
  File "C:\Program Files\Mount&Blade Warband\Modules\Calradia 2015 Ms\process_op
erations.py", line 20, in <module>
    from module_scripts import *
  File "C:\Program Files\Mount&Blade Warband\Modules\Calradia 2015 Ms\module_scr
ipts.py", line 8815, in <module>
    (item_get_slot, ":damage_modifier_low", ":wielded_item", autofire_slot_damag
e_modifier_low),
NameError: name 'autofire_slot_damage_modifier_low' is not defined
Exporting faction data...
Exporting item data...
Traceback (most recent call last):
  File "process_items.py", line 66, in <module>
    from process_operations import *
  File "C:\Program Files\Mount&Blade Warband\Modules\Calradia 2015 Ms\process_op
erations.py", line 20, in <module>
    from module_scripts import *
  File "C:\Program Files\Mount&Blade Warband\Modules\Calradia 2015 Ms\module_scr
ipts.py", line 8815, in <module>
    (item_get_slot, ":damage_modifier_low", ":wielded_item", autofire_slot_damag
e_modifier_low),
NameError: name 'autofire_slot_damage_modifier_low' is not defined
Exporting scene data...
Traceback (most recent call last):
  File "process_scenes.py", line 15, in <module>
    from process_operations import *
  File "C:\Program Files\Mount&Blade Warband\Modules\Calradia 2015 Ms\process_op
erations.py", line 20, in <module>
    from module_scripts import *
  File "C:\Program Files\Mount&Blade Warband\Modules\Calradia 2015 Ms\module_scr
ipts.py", line 8815, in <module>
    (item_get_slot, ":damage_modifier_low", ":wielded_item", autofire_slot_damag
e_modifier_low),
NameError: name 'autofire_slot_damage_modifier_low' is not defined
Exporting troops data
Exporting particle data...
Traceback (most recent call last):
  File "process_scene_props.py", line 7, in <module>
    from process_operations import *
  File "C:\Program Files\Mount&Blade Warband\Modules\Calradia 2015 Ms\process_op
erations.py", line 20, in <module>
    from module_scripts import *
  File "C:\Program Files\Mount&Blade Warband\Modules\Calradia 2015 Ms\module_scr
ipts.py", line 8815, in <module>
    (item_get_slot, ":damage_modifier_low", ":wielded_item", autofire_slot_damag
e_modifier_low),
NameError: name 'autofire_slot_damage_modifier_low' is not defined
Traceback (most recent call last):
  File "process_tableau_materials.py", line 8, in <module>
    from process_operations import *
  File "C:\Program Files\Mount&Blade Warband\Modules\Calradia 2015 Ms\process_op
erations.py", line 20, in <module>
    from module_scripts import *
  File "C:\Program Files\Mount&Blade Warband\Modules\Calradia 2015 Ms\module_scr
ipts.py", line 8815, in <module>
    (item_get_slot, ":damage_modifier_low", ":wielded_item", autofire_slot_damag
e_modifier_low),
NameError: name 'autofire_slot_damage_modifier_low' is not defined
Traceback (most recent call last):
  File "process_presentations.py", line 8, in <module>
    from process_operations import *
  File "C:\Program Files\Mount&Blade Warband\Modules\Calradia 2015 Ms\process_op
erations.py", line 20, in <module>
    from module_scripts import *
  File "C:\Program Files\Mount&Blade Warband\Modules\Calradia 2015 Ms\module_scr
ipts.py", line 8815, in <module>
    (item_get_slot, ":damage_modifier_low", ":wielded_item", autofire_slot_damag
e_modifier_low),
NameError: name 'autofire_slot_damage_modifier_low' is not defined
Exporting party_template data...
Traceback (most recent call last):
  File "process_parties.py", line 6, in <module>
    from process_operations import *
  File "C:\Program Files\Mount&Blade Warband\Modules\Calradia 2015 Ms\process_op
erations.py", line 20, in <module>
    from module_scripts import *
  File "C:\Program Files\Mount&Blade Warband\Modules\Calradia 2015 Ms\module_scr
ipts.py", line 8815, in <module>
    (item_get_slot, ":damage_modifier_low", ":wielded_item", autofire_slot_damag
e_modifier_low),
NameError: name 'autofire_slot_damage_modifier_low' is not defined
Exporting quest data...
Exporting info_page data...
Traceback (most recent call last):
  File "process_scripts.py", line 4, in <module>
    from module_scripts import *
  File "C:\Program Files\Mount&Blade Warband\Modules\Calradia 2015 Ms\module_scr
ipts.py", line 8815, in <module>
    (item_get_slot, ":damage_modifier_low", ":wielded_item", autofire_slot_damag
e_modifier_low),
NameError: name 'autofire_slot_damage_modifier_low' is not defined
Traceback (most recent call last):
  File "process_mission_tmps.py", line 5, in <module>
    from module_mission_templates import *
  File "C:\Program Files\Mount&Blade Warband\Modules\Calradia 2015 Ms\module_mis
sion_templates.py", line 15115
    autofire_smg6 = (
                  ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "process_game_menus.py", line 8, in <module>
    from process_operations import *
  File "C:\Program Files\Mount&Blade Warband\Modules\Calradia 2015 Ms\process_op
erations.py", line 20, in <module>
    from module_scripts import *
  File "C:\Program Files\Mount&Blade Warband\Modules\Calradia 2015 Ms\module_scr
ipts.py", line 8815, in <module>
    (item_get_slot, ":damage_modifier_low", ":wielded_item", autofire_slot_damag
e_modifier_low),
NameError: name 'autofire_slot_damage_modifier_low' is not defined
Traceback (most recent call last):
  File "process_simple_triggers.py", line 5, in <module>
    from process_operations import *
  File "C:\Program Files\Mount&Blade Warband\Modules\Calradia 2015 Ms\process_op
erations.py", line 20, in <module>
    from module_scripts import *
  File "C:\Program Files\Mount&Blade Warband\Modules\Calradia 2015 Ms\module_scr
ipts.py", line 8815, in <module>
    (item_get_slot, ":damage_modifier_low", ":wielded_item", autofire_slot_damag
e_modifier_low),
NameError: name 'autofire_slot_damage_modifier_low' is not defined
Traceback (most recent call last):
  File "process_dialogs.py", line 9, in <module>
    from process_operations import *
  File "C:\Program Files\Mount&Blade Warband\Modules\Calradia 2015 Ms\process_op
erations.py", line 20, in <module>
    from module_scripts import *
  File "C:\Program Files\Mount&Blade Warband\Modules\Calradia 2015 Ms\module_scr
ipts.py", line 8815, in <module>
    (item_get_slot, ":damage_modifier_low", ":wielded_item", autofire_slot_damag
e_modifier_low),
NameError: name 'autofire_slot_damage_modifier_low' is not defined
Traceback (most recent call last):
  File "process_global_variables_unused.py", line 3, in <module>
    from process_operations import *
  File "C:\Program Files\Mount&Blade Warband\Modules\Calradia 2015 Ms\process_op
erations.py", line 20, in <module>
    from module_scripts import *
  File "C:\Program Files\Mount&Blade Warband\Modules\Calradia 2015 Ms\module_scr
ipts.py", line 8815, in <module>
    (item_get_slot, ":damage_modifier_low", ":wielded_item", autofire_slot_damag
e_modifier_low),
NameError: name 'autofire_slot_damage_modifier_low' is not defined
Exporting postfx_params...

______________________________

Script processing has ended.
Press any key to exit. . .
 
Back
Top Bottom