Wanted Open models and scripts for Warband

Users who are viewing this thread

Was looking at the header_triggers file today trying to see if there was an It_on_item_drop.  Sadly, I did not find anything.  Then I saw It_on_scene_prop_use.    Got thinking.  Maybe a way around not being able to "set down" the keg could be fixed by making the item have a shoot speed of like 2. Then making changing the script to it_on_scene_prop_use and/or on scene_prop_hit.  That way you have to activate the keg/light the fuse, and if someone shoots it can set it off prematurely.    Just a thought.  I am working on a better particle effect for the explosion and a poison gas arrow script I will post tomorrow evening hopefully.
 
tbox said:
Also note you will have to also make  a scene prop for each.  Just copy and paste the empty scene prop rename and add a mesh to it.  I would suggest the same one as the item mesh you choose.  If anyone else needs help with this stuff message me and I can try to help as best I can.

Hmm? The script automatically spawns a model, you don't need to do that. Also, if you don't want the weapons to be picked up, increase the item's difficulty to 100. Like this: difficulty(100) (Thanks to Yoshi).

This should go to module_scene_props.
Code:
	("keg", 0, "barrel", "0", #No collision mesh.
	[
	    (ti_on_scene_prop_hit,
		[
		    (store_trigger_param_1, ":instance"),
			(party_get_slot, ":time", "p_keg", ":instance"),
			(gt, ":time", 0),
			(val_sub, ":time", 7), #Decrease the kegs exploding time by 45%.
			(party_set_slot, "p_keg", ":instance", ":time"),
		]),
	]),

By the way, I suggest you use a very small object with no collision mesh for the item itself.
 
I thought because the ammo pack and medic pack v1 needed a scene prop so did the keg.  Sorry about that.    it_on_scene_prop_hit  does "hit" mean a weapon or missile hits  it or anything like as in you bump into it?
 
A weapon or missile hits. Oh, and you need to make a collision mesh for that. Replace the "0" with "bobarrel".
 
There's a ti_on_missile_hit in warband....

*cries tears of joy*

I LOVE YOU ARMAGAN...


Anyways, this stuff is pretty l33t cdvader. Its pretty neat to look through and see how you did everything.
 
Only problem with It_on_missile_hit is that when it "hits" a shield it is not considered a "hit". Everything else seems to trigger a "hit" land and people just not shields.    :sad:
 
Hey guys I was wondering if coder/scripter can let me know if this alteration to the keg code is correct in terms of what I am trying to do.  The intent was to change the damage calc to do two different damage calcs depending on a players range to the item.  Directly below is the original code and below that is my altered code look for the -> to see where the changes begin.  Thanks.  Keep in mind the animate commands are not spaced right. The rest I believe are spaced correctly if not let me know.

ORIGINAL CODE
Code:
keg_2 = (
    0.75, 0, 0, [],
	[
	    (multiplayer_is_server),
		(scene_prop_get_num_instances, ":max", "spr_keg"),
		(try_for_range, ":prop", 0, ":max"),
		    (scene_prop_get_instance, ":instance", "spr_keg", ":prop"),
			(prop_instance_get_position, pos1, ":instance"),
			(try_begin),
			    (party_get_slot, ":time", "p_keg", ":instance"),
				(le, ":time", 0),
				(party_get_slot, ":lock", "p_keg_locked", ":instance"),
				(neq, ":lock", 1),
				#(play_sound, "snd_kaboom"),
				(particle_system_burst, "psys_village_fire_big1", pos1, 100),
			    (get_max_players, ":max"),
			    (try_for_range, ":i", 1, ":max"),
			        (player_is_active, ":i"),
				    (player_get_agent_id, ":agent", ":i"),
				    (ge, ":agent", 0),
				    (agent_is_alive, ":agent"),
				    (agent_get_position, pos2, ":agent"),
				    (position_move_z, pos2, 50),
				    (get_distance_between_positions, ":dist", pos1, pos2),
				    (try_begin),
				        (lt, ":dist", 600),
					    (try_begin),
					        (neg|position_is_behind_position, pos1, pos2),
					        (multiplayer_send_2_int_to_server, multiplayer_event_animation_server, "anim_keg_chest_front", ":i"),
					    (else_try),
					        (multiplayer_send_2_int_to_server, multiplayer_event_animation_server, "anim_keg_body_back", ":i"),
					    (try_end),
					    (store_agent_hit_points, ":hp", ":agent", 1),
					    (store_random_in_range, ":rand", 45, 75),
					    (val_sub, ":hp", ":rand"),
					    (val_max, ":hp", 0),
					    (agent_set_hit_points, ":agent", ":hp", 1),
					    (try_begin),
					        (eq, ":hp", 0),
						    (agent_deliver_damage_to_agent, ":agent", ":agent"),
					    (try_end),
				    (try_end),
			    (try_end),
				(position_move_z, pos1, -750),
				(prop_instance_set_position, ":instance", pos1),
				(party_set_slot, "p_keg_locked", ":instance", 1),
			(try_end),
		(try_end),
	])

Altered Code

Code:
blah blah
              (multiplayer_is_server),
		(scene_prop_get_num_instances, ":max", "spr_keg"),
		(try_for_range, ":prop", 0, ":max"),
		    (scene_prop_get_instance, ":instance", "spr_keg", ":prop"),
			(prop_instance_get_position, pos1, ":instance"),
			(try_begin),
			    (party_get_slot, ":time", "p_keg", ":instance"),
				(le, ":time", 0),
				(party_get_slot, ":lock", "p_keg_locked", ":instance"),
				(neq, ":lock", 1),
				#(play_sound, "snd_kaboom"),
				(particle_system_burst, "psys_village_fire_big1", pos1, 100),
			    (get_max_players, ":max"),
			    (try_for_range, ":i", 1, ":max"),
			        (player_is_active, ":i"),
				    (player_get_agent_id, ":agent", ":i"),
				    (ge, ":agent", 0),
				    (agent_is_alive, ":agent"),
				    (agent_get_position, pos2, ":agent"),
				    (position_move_z, pos2, 50),
				    (get_distance_between_positions, ":dist", pos1, pos2),
    Changes begin	->	      (try_begin),
				        (lt, ":dist", 600),
					    (try_begin),
					        (neg|position_is_behind_position, pos1, pos2),
					        (multiplayer_send_2_int_to_server, multiplayer_event_animation_server, "anim_keg_chest_front", ":i"),
					    (else_try),
					        (multiplayer_send_2_int_to_server, multiplayer_event_animation_server, "anim_keg_body_back", ":i"),
					    (try_end),
						(try_begin), 
						  (lt, ":dist", 300),
					          (store_agent_hit_points, ":hp", ":agent", 1),
					          (store_random_in_range, ":rand", 58, 78),
					          (val_sub, ":hp", ":rand"),
					          (val_max, ":hp", 0),
					          (agent_set_hit_points, ":agent", ":hp", 1),
					        (else_try),
						 (is_between, ":dist", 300, 600),
						 (store_agent_hit_points, ":hp", ":agent", 1),
					         (store_random_in_range, ":rand", 38, 48),
					         (val_sub, ":hp", ":rand"),
					         (val_max, ":hp", 0),
					         (agent_set_hit_points, ":agent", ":hp", 1),
						(try_begin),
					         (eq, ":hp", 0),
						    (agent_deliver_damage_to_agent, ":agent", ":agent"),
					        (try_end),
				    (try_end),
			    (try_end),
				(position_move_z, pos1, -750),
				(prop_instance_set_position, ":instance", pos1),
				(party_set_slot, "p_keg_locked", ":instance", 1),
			(try_end),
		(try_end),
	])
 
Here, take a look at this. I belive it's self-explanatory.

PS: my keg animations don't work. Other animations (already in the game) work, though.

Code:
				    (try_begin),
					    (assign, ":rand", 0),
                          (assign, ":anim_ok", 0),
						(try_begin),
						    (lt, ":dist", 600),
							(store_random_in_range, ":rand", 5, 10),
							(assign, ":anim_ok", 1),
						(else_try),
						    (lt, ":dist", 400),
							(store_random_in_range, ":rand", 10, 15),
							(assign, ":anim_ok", 1),
						(else_try),
						    (lt, ":dist", 200),
							(store_random_in_range, ":rand", 10, 15),
							(assign, ":anim_ok", 1),
						(else_try),
						    (lt, ":dist", 100),
							(assign, ":rand", 100), #Insta-kill.
							(assign, ":anim_ok", 1),
						(try_end),
						(try_begin),
						    (eq, ":anim_ok", 1),
							(try_begin),
					            (neg|position_is_behind_position, pos1, pos2),
					            (multiplayer_send_2_int_to_server, multiplayer_event_animation_server, "anim_keg_chest_front", ":i"),
					        (else_try),
					            (multiplayer_send_2_int_to_server, multiplayer_event_animation_server, "anim_keg_body_back", ":i"),
					        (try_end),
						(try_end),
					    (store_agent_hit_points, ":hp", ":agent", 1),
					    (val_sub, ":hp", ":rand"),
					    (val_max, ":hp", 0),
					    (agent_set_hit_points, ":agent", ":hp", 1),
					    (try_begin),
					        (eq, ":hp", 0),
						    (agent_deliver_damage_to_agent, ":agent", ":agent"),
					    (try_end),
				    (try_end),
 
Ok so I tried it out but have a problem I tried to fix it myself first and could not.  Seems it just keeps on exploding (particles burst) and checking those distances and doing damage. I tried adding a try end in a few spots but to no avail. 

2ndly I converted the medic pack code into a poison gas arrow. Which works just fine. I would like to increase the duration. I looked around the code sections for some kind of time value outside of 1 and 0  and could not find it. I recall you saying that is lasts 15 secs and can see you set it below the ground after the time. I am just wondering where it reads to wait 15 secs so I can change it to 20 secs or 25. 

Thanks again for your help.  Once I get these polished up I am going to work on the audio. I post the particles and audio when the are in decent quality. Keg particles look really good now. I just need to polish up the poison gas arrow particles.
 
tbox said:
Ok so I tried it out but have a problem I tried to fix it myself first and could not.  Seems it just keeps on exploding (particles burst) and checking those distances and doing damage. I tried adding a try end in a few spots but to no avail.
This should be the full code.
Code:
keg_2 = (
    0.75, 0, 0, [],
	[
	    (multiplayer_is_server),
		(scene_prop_get_num_instances, ":max", "spr_keg"),
		(try_for_range, ":prop", 0, ":max"),
		    (scene_prop_get_instance, ":instance", "spr_keg", ":prop"),
			(prop_instance_get_position, pos1, ":instance"),
			(try_begin),
			    (party_get_slot, ":time", "p_keg", ":instance"),
				(le, ":time", 0),
				(party_get_slot, ":lock", "p_keg_locked", ":instance"),
				(neq, ":lock", 1),
				#(play_sound, "snd_kaboom"),
				(particle_system_burst, "psys_village_fire_big", pos1, 100),
			    (get_max_players, ":max"),
			    (try_for_range, ":i", 1, ":max"),
			        (player_is_active, ":i"),
				    (player_get_agent_id, ":agent", ":i"),
				    (ge, ":agent", 0),
				    (agent_is_alive, ":agent"),
				    (agent_get_position, pos2, ":agent"),
				    (position_move_z, pos2, 50),
				    (get_distance_between_positions, ":dist", pos1, pos2),
					(assign, ":anim_ok", 0),
				    (try_begin),
					    (assign, ":rand", 0),
						(try_begin),
						    (lt, ":dist", 600),
							(store_random_in_range, ":rand", 5, 10),
							(assign, ":anim_ok", 1),
						(else_try),
						    (lt, ":dist", 400),
							(store_random_in_range, ":rand", 10, 15),
							(assign, ":anim_ok", 1),
						(else_try),
						    (lt, ":dist", 200),
							(store_random_in_range, ":rand", 10, 15),
							(assign, ":anim_ok", 1),
						(else_try),
						    (lt, ":dist", 100),
							(assign, ":rand", 100), #Insta-kill.
							(assign, ":anim_ok", 1),
						(try_end),
						(try_begin),
						    (eq, ":anim_ok", 1),
							(try_begin),
					            (neg|position_is_behind_position, pos1, pos2),
					            (multiplayer_send_2_int_to_server, multiplayer_event_animation_server, "anim_keg_chest_front", ":i"),
					        (else_try),
					            (multiplayer_send_2_int_to_server, multiplayer_event_animation_server, "anim_keg_body_back", ":i"),
					        (try_end),
						(try_end),
					    (store_agent_hit_points, ":hp", ":agent", 1),
					    (val_sub, ":hp", ":rand"),
					    (val_max, ":hp", 0),
					    (agent_set_hit_points, ":agent", ":hp", 1),
					    (try_begin),
					        (eq, ":hp", 0),
						    (agent_deliver_damage_to_agent, ":agent", ":agent"),
					    (try_end),
				    (try_end),
			    (try_end),
				(position_move_z, pos1, -750),
				(prop_instance_set_position, ":instance", pos1),
				(party_set_slot, "p_keg_locked", ":instance", 1),
			(try_end),
		(try_end),
	])

tbox said:
2ndly I converted the medic pack code into a poison gas arrow. Which works just fine. I would like to increase the duration. I looked around the code sections for some kind of time value outside of 1 and 0  and could not find it. I recall you saying that is lasts 15 secs and can see you set it below the ground after the time. I am just wondering where it reads to wait 15 secs so I can change it to 20 secs or 25.
Modify the triggers check interval. Change this...

keg_1 = (
    0.50, 0, 0, [],

To this...

keg_1 = (
    1.25, 0, 0, [],

1.25 is the check interval. That means it'll be 25 seconds because 1.25*20 (We did (party_set_slot, "p_keg", ":instance", 20), on the ti_on_missile_hit trigger with the item, that's the base value) is 25. If you want it to be 20 seconds then change the check interval to 1. Each 0.05 points added to the check interval increases the time by 1 second. Each 0.025 points added to the check interval increases the time by 0.5 seconds.. etc etc. It's a simple formula.

Of course, there's a much easier way. Simply change the triggers check interval to 1 and then set the time what you want to be using (party_set_slot, "p_keg", ":instance", 10), in the items initialization. The only downside is that you cannot make the number rational (have a point after the number, e.g (party_set_slot, "p_keg", ":instance", 10.5),)
 
If you have implemented the Medic and Ammo packs and also the Kegs, then you probably also want to use this mission template. It removes all the scene props moved under ground after the round ends.

Code:
medic_keg_ammo_end = (
    0, 0, 10, [(eq, "$g_round_ended", 1)],
	[
	    (multiplayer_is_server),
		(scene_prop_get_num_instances, ":prop", "spr_medic_pack"),
		(try_for_range, ":i", 0, ":prop"),
		    (scene_prop_get_instance, ":instance", "spr_medic_pack", ":i"),
			(party_set_slot, "p_medic", ":instance", 0),
			(party_set_slot, "p_medic_active", ":instance", 0),
			(party_set_slot, "p_medic_locked", ":instance", 0),
		(try_end),
		(replace_scene_props, "spr_medic_pack", "spr_empty"),
		(scene_prop_get_num_instances, ":prop", "spr_ammo_pack"),
		(try_for_range, ":i", 0, ":prop"),
		    (scene_prop_get_instance, ":instance", "spr_ammo_pack", ":i"),
			(party_set_slot, "p_ammo", ":instance", 0),
			(party_set_slot, "p_ammo_active", ":instance", 0),
			(party_set_slot, "p_ammo_locked", ":instance", 0),
		(try_end),
		(replace_scene_props, "spr_ammo_pack", "spr_empty"),
		(scene_prop_get_num_instances, ":prop", "spr_keg"),
		(try_for_range, ":i", 0, ":prop"),
		    (scene_prop_get_instance, ":instance", "spr_keg", ":i"),
			(party_set_slot, "p_keg", ":instance", 0),
			(party_set_slot, "p_keg_active", ":instance", 0),
			(party_set_slot, "p_keg_locked", ":instance", 0),
		(try_end),
		(replace_scene_props, "spr_keg", "spr_empty"),
	])
 
Alright, here's a slightly altered version of the Keg. It's like a terrorist suicide bomb. You "throw it" then you explode and everyone nearby you gets damaged/dies.

Here's the code.

Code:
 	#cdvader begin
	["keg_suicide", "Suicide Keg", [("invisible_mesh_with_no_collision_mesh", 0)], itp_type_thrown|itp_primary, itcf_throw_knife, 0, weight(3.5)|difficulty(100)|spd_rtng(50)|shoot_speed(10)|thrust_damage(0, blunt)|max_ammo(1)|weapon_length(0), imodbits_thrown,
    [
	    (ti_on_weapon_attack,
		[
		    (multiplayer_is_server),
			(particle_system_burst, "psys_village_fire_big", pos1, 100),
			(get_max_players, ":max"),
			(try_for_range, ":i", 1, ":max"),
			    (player_is_active, ":i"),
				(player_get_agent_id, ":agent", ":i"),
				(ge, ":agent", 0),
			    (agent_is_alive, ":agent"),
				#(neg|agent_is_ally, ":agent"), #Uncomment this to deal no damage to allies.
				(agent_get_position, pos2, ":agent"),
				(position_move_z, pos2, 50),
				(get_distance_between_positions, ":dist", pos1, pos2),
				(assign, ":damage", 0),
				(assign, ":anim_ok", 0),
				(try_begin),
				    (lt, ":dist", 500),
					(store_random_in_range, ":damage", 5, 10),
					(assign, ":anim_ok", 1),
				(else_try),
				    (lt, ":dist", 300),
					(store_random_in_range, ":damage", 10, 20),
					(assign, ":anim_ok", 1),
				(else_try),
				    (lt, ":dist", 100),
					(assign, ":damage", 100), #Insta-kill
					(assign, ":anim_ok", 1),
				(try_end),
				(try_begin),
				    (eq, ":anim_ok", 1),
					(try_begin),
					    (neg|position_is_behind_position, pos1, pos2),
					    (multiplayer_send_2_int_to_server, multiplayer_event_animation_server, "anim_fall_front", ":i"),
					(else_try),
					    (multiplayer_send_2_int_to_server, multiplayer_event_animation_server, "anim_fall_back", ":i"),
					(try_end),
 				(try_end),
				(store_agent_hit_points, ":hp", ":agent", 1),
				(val_sub, ":hp", ":damage"),
				(val_max, ":hp", 0),
				(agent_set_hit_points, ":agent", ":hp", 1),
				(try_begin),
				    (eq, ":hp", 0),
					(deliver_damage_to_agent, ":agent", ":agent"),
				(try_end),
			(try_end),
		]),
	]],
 	#cdvader end
 
Ok, here's something new. Instead of insta-exploding terrorist suicide bomb, you plant one on the ground and have to activate it with the F key. Then it explodes after 5 seconds.

Code:
#cdvader begin
	["bomb", "Bomb", [("invisible_mesh_with_no_collision_mesh", 0)], itp_type_thrown|itp_primary, itcf_throw_knife, 0, weight(3.5)|difficulty(100)|spd_rtng(50)|shoot_speed(10)|thrust_damage(0, blunt)|max_ammo(1)|weapon_length(0), imodbits_thrown,
    [
	    (ti_on_weapon_attack,
		[
		    (multiplayer_is_server),
			(position_set_z_to_ground_level, pos1),
			(spawn_scene_prop, "spr_bomb", 0),
			(scene_prop_get_num_instances, ":max", "spr_bomb"),
			(try_for_range, ":prop", 0, ":max"),
			    (scene_prop_get_instance, ":instance", "spr_bomb", ":prop"),
				(troop_get_slot, ":active", "trp_bomb_active", ":instance"),
				(neq, ":active", 1),
				(troop_set_slot, "trp_bomb", ":instance", 0),
				(troop_set_slot, "trp_bomb_active", ":instance", 1),
				(troop_set_slot, "trp_bomb_armed", ":instance", 0),
				(troop_set_slot, "trp_bomb_used", ":instance", 0),
			(try_end),
		]),
	]],
#cdvader end

Code:
    #cdvader begin
	("bomb", spr_use_time(3), "barrel", "0",
	[
	    (ti_on_scene_prop_hit,
		[
            (store_trigger_param_1, ":instance"),
            (troop_get_slot, ":time", "trp_bomb", ":instance"),
            (val_sub, ":time", 1), #Decrease the kegs exploding time by 10% (if initial value is 10).
            (troop_set_slot, "trp_bomb", ":instance", ":time"),
		]),
		
	    (ti_on_scene_prop_use,
		[
		    (store_trigger_param_2, ":instance"),
			#(troop_get_slot, ":armed", "trp_bomb_armed", ":instance"),
			#(try_begin),
			#    (eq, ":armed", 1),
		    #    (troop_set_slot, "trp_bomb_armed", ":instance", 0),
			#(else_try),
			    (troop_set_slot, "trp_bomb", ":instance", 10),
			    (troop_set_slot, "trp_bomb_armed", ":instance", 1),
			#(try_end),
		]),
	]),
	#cdvader end

Code:
#cdvader begin
bomb_1 = (
    1, 0, 0, [],
	[
	    (multiplayer_is_server),
		(scene_prop_get_num_instances, ":prop", "spr_bomb"),
		(try_for_range, ":i", 0, ":prop"),
		    (scene_prop_get_instance, ":instance", "spr_bomb", ":i"),
			(troop_get_slot, ":used", "trp_bomb_used", ":instance"),
			(neq, ":used", 1),
			(troop_get_slot, ":armed", "trp_bomb_armed", ":instance"),
			(eq, ":armed", 1),
			(troop_get_slot, ":time", "trp_bomb", ":instance"),
			(val_sub, ":time", 1),
			(troop_set_slot, "trp_bomb", ":instance", ":time"),
		(try_end),
	]),
	
bomb_2 = (
    0.75, 0, 0, [],
	[
	    (multiplayer_is_server),
		(scene_prop_get_num_instances, ":prop", "spr_bomb"),
		(try_for_range, ":i", 0, ":prop"),
		    (scene_prop_get_instance, ":instance", "spr_bomb", ":i"),
			(troop_get_slot, ":used", "trp_bomb_used", ":instance"),
			(neq, ":used", 1),
			(troop_get_slot, ":armed", "trp_bomb_armed", ":instance"),
			(eq, ":armed", 1),
			(troop_get_slot, ":time", "trp_bomb", ":instance"),
			(le, ":time", 0),
			(troop_set_slot, "trp_bomb_used", ":instance", 1),
			(prop_instance_get_position, pos1, ":instance"),
			(particle_system_burst, "psys_village_fire_big", pos1, 100),
			#(play_sound, "snd_kaboom"),
			(get_max_players, ":max"),
			(try_for_range, ":i", 1, ":max"),
			    (player_is_active, ":i"),
				(player_get_agent_id, ":agent", ":i"),
				(ge, ":agent", 0),
				(agent_is_alive, ":agent"),
				#(neg|agent_is_ally, ":agent"), #Uncomment this to deal no damage to allies.
				(agent_get_position, pos2, ":agent"),
				(position_move_z, pos2, 50),
				(get_distance_between_positions, ":dist", pos1, pos2),
				(assign, ":damage", 0),
				(assign, ":anim_ok", 0),
				(try_begin),
				    (lt, ":dist", 500),
					(store_random_in_range, ":damage", 5, 10),
					(assign, ":anim_ok", 1),
				(else_try),
				    (lt, ":dist", 300),
					(store_random_in_range, ":damage", 10, 20),
					(assign, ":anim_ok", 1),
				(else_try),
				    (lt, ":dist", 100),
					(assign, ":damage", 100), #Insta-kill
					(assign, ":anim_ok", 1),
				(try_end),
				(try_begin),
				    (eq, ":anim_ok", 1),
					(try_begin),
					    (neg|position_is_behind_position, pos1, pos2),
					    (multiplayer_send_2_int_to_server, multiplayer_event_animation_server, "anim_fall_front", ":i"),
						(multiplayer_send_2_int_to_server, multiplayer_event_sound_server, ":agent", "snd_man_grunt"),
					(else_try),
					    (multiplayer_send_2_int_to_server, multiplayer_event_animation_server, "anim_fall_back", ":i"),
						(multiplayer_send_2_int_to_server, multiplayer_event_sound_server, ":agent", "snd_man_grunt"),
					(try_end),
 				(try_end),
				(store_agent_hit_points, ":hp", ":agent", 1),
				(val_sub, ":hp", ":damage"),
				(val_max, ":hp", 0),
				(agent_set_hit_points, ":agent", ":hp", 1),
				(try_begin),
				    (eq, ":hp", 0),
					(deliver_damage_to_agent, ":agent", ":agent"),
				(try_end),
			(try_end),
			(position_move_z, pos1, -750),
			(prop_instance_set_position, ":instance", pos1),
		(try_end),
	]),
#cdvader end

Code:
	["bomb",    "bomb",    "bomb",    tf_hero|tf_inactive, 0,reserved,  fac_neutral,[],def_attrib|level(18),wp(60),knows_common, 0],
    ["bomb_active",    "bomb_active",    "bomb_active",    tf_hero|tf_inactive, 0,reserved,  fac_neutral,[],def_attrib|level(18),wp(60),knows_common, 0],
    ["bomb_armed",    "bomb_armed",    "bomb_armed",    tf_hero|tf_inactive, 0,reserved,  fac_neutral,[],def_attrib|level(18),wp(60),knows_common, 0],
    ["bomb_used",    "bomb_used",    "bomb_used",    tf_hero|tf_inactive, 0,reserved,  fac_neutral,[],def_attrib|level(18),wp(60),knows_common, 0],
 
Could not agree more amazing ****.  Totally amazing.... He needs a paypal donation link.  And he secretly put a enemy defuse ability if you remove the #" comments.  But it's untested and totally non-guaranteed to work.
 
Back
Top Bottom