Added all the remaining scripts not previously included.

This commit is contained in:
JezuzLizard
2021-08-07 11:29:26 -07:00
parent cf8d60b2d0
commit 98bfc67831
1001 changed files with 239603 additions and 0 deletions

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_chrest_gap", undefined, "zm_traverse_dierise" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_chrest_interior_high_to_low", undefined, "zm_traverse_dierise" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_chrest_interior_alt_down", undefined, "zm_traverse_dierise" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_chrest_interior_low_to_high", undefined, "zm_traverse_dierise" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_chrest_interior_alt_up", undefined, "zm_traverse_dierise" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_round_counter_from_stools", undefined, "zm_traverse_dierise" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_round_counter_to_stools", undefined, "zm_traverse_dierise" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_escape_elevator_hallway", undefined, "zm_traverse_dierise" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap10_high_to_low" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap10_low_to_high" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap14a_high_to_low" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap14b_high_to_low" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap14c_high_to_low" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap14c_low_to_high" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap14d_high_to_low" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap14d_low_to_high" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap14e_high_to_low" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap14e_low_to_high" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap14f_high_to_low" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap14f_low_to_high" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap14g_high_to_low" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap14g_low_to_high" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap14h_high_to_low" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap14h_low_to_high" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap15a_from_girder" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap15b_from_girder" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap15f_high_to_low" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap15f_low_to_high" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap15g_high_to_low" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap15g_low_to_high" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap16a_high_to_low", undefined, "zm_traverse_dierise" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap16a_low_to_high", undefined, "zm_traverse_dierise" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap16b_high_to_low", undefined, "zm_traverse_dierise" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap16b_low_to_high", undefined, "zm_traverse_dierise" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap17a_high_to_low", undefined, "zm_traverse_dierise" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap17a_low_to_high", undefined, "zm_traverse_dierise" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap17c_high_to_low", undefined, "zm_traverse_dierise" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap17c_low_to_high", undefined, "zm_traverse_dierise" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap18_high_to_low", undefined, "zm_traverse_dierise" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap19_from_railing", undefined, "zm_traverse_dierise" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap19_to_railing", undefined, "zm_traverse_dierise" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap1_from_antenna" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap1_to_antenna" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap4a_slide_down_beam" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap4b_from_roof" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap4b_to_roof" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap5a_from_conference" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap5a_to_conference" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap5b_from_conference" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap5b_to_conference" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap6_high_to_low" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap6_low_to_high" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap7_from_top_ledge" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap7_to_top_ledge" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap8_high_to_low" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap8_low_to_high" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap9_high_to_low" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_gap9_low_to_high" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_blue_ac_unit", undefined, "zm_traverse_dierise" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_traverse_1_high_to_low" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_traverse_1_low_to_high" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_traverse_2_high_to_low" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_traverse_2_low_to_high" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_traverse_3_high_to_low" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_traverse_3_low_to_high" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_traverse_4_high_to_low" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_traverse_4_low_to_high" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_traverse_5_high_to_low" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_traverse_5_low_to_high" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_traverse_6_high_to_low", undefined, "zm_traverse_dierise" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_traverse_6_low_to_high", undefined, "zm_traverse_dierise" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_traverse_7_high_to_low", undefined, "zm_traverse_dierise" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "dierise_traverse_7_low_to_high", undefined, "zm_traverse_dierise" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "gap2_to_roof" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "jump_down_120" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "jump_down_127" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "jump_down_176" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "jump_down_184" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "jump_down_190" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "jump_down_222" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "jump_down_286" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "jump_down_40" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "jump_down_48" );
}

View File

@ -0,0 +1,14 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
if ( isDefined( self.isdog ) && self.isdog )
{
dog_jump_down( 96, 7 );
}
else
{
dosimpletraverse( "jump_down_96" );
}
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "zm_jump_down_to_elevator_top", undefined, "zm_traverse_elevator" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "jump_up_127" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "jump_up_175" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "jump_up_222" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "jump_up_antenna", undefined, "zm_traverse_dierise" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "zm_jump_up_from_elevator_top", undefined, "zm_traverse_elevator" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "jump_up_grabbed_190" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "jump_up_grabbed_48" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "jump_up_sewing", undefined, "zm_traverse_dierise" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
self dosimpletraverse( "mantle_over_40_hurdle" );
}

View File

@ -0,0 +1,7 @@
#include maps/mp/animscripts/traverse/zm_shared;
#include maps/mp/animscripts/traverse/shared;
main()
{
dosimpletraverse( "traverse_48" );
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,592 @@
#include maps/mp/zombies/_zm_buildables;
#include maps/mp/zombies/_zm_power;
#include maps/mp/zombies/_zm_unitrigger;
#include maps/mp/zombies/_zm;
#include maps/mp/gametypes_zm/_weaponobjects;
#include maps/mp/zombies/_zm_equipment;
#include maps/mp/zombies/_zm_utility;
#include maps/mp/_utility;
#include common_scripts/utility;
#using_animtree( "zombie_springpad" );
init( pickupstring, howtostring )
{
if ( !maps/mp/zombies/_zm_equipment::is_equipment_included( "equip_springpad_zm" ) )
{
return;
}
level.springpad_name = "equip_springpad_zm";
init_animtree();
maps/mp/zombies/_zm_equipment::register_equipment( "equip_springpad_zm", pickupstring, howtostring, "zom_hud_trample_steam_complete", "springpad", undefined, ::transferspringpad, ::dropspringpad, ::pickupspringpad, ::placespringpad );
maps/mp/zombies/_zm_equipment::add_placeable_equipment( "equip_springpad_zm", "p6_anim_zm_buildable_view_tramplesteam" );
level thread onplayerconnect();
maps/mp/gametypes_zm/_weaponobjects::createretrievablehint( "equip_springpad", pickupstring );
level._effect[ "springpade_on" ] = loadfx( "maps/zombie_highrise/fx_highrise_trmpl_steam_os" );
if ( -1 )
{
setdvar( "player_useRadius_zm", 96 );
}
thread wait_init_damage();
}
wait_init_damage()
{
while ( !isDefined( level.zombie_vars ) || !isDefined( level.zombie_vars[ "zombie_health_start" ] ) )
{
wait 1;
}
level.springpad_damage = maps/mp/zombies/_zm::ai_zombie_health( 50 );
}
onplayerconnect()
{
for ( ;; )
{
level waittill( "connecting", player );
player thread onplayerspawned();
}
}
onplayerspawned()
{
self endon( "disconnect" );
self thread setupwatchers();
for ( ;; )
{
self waittill( "spawned_player" );
self thread watchspringpaduse();
}
}
setupwatchers()
{
self waittill( "weapon_watchers_created" );
watcher = maps/mp/gametypes_zm/_weaponobjects::getweaponobjectwatcher( "equip_springpad" );
watcher.onspawnretrievetriggers = ::maps/mp/zombies/_zm_equipment::equipment_onspawnretrievableweaponobject;
}
watchspringpaduse()
{
self notify( "watchSpringPadUse" );
self endon( "watchSpringPadUse" );
self endon( "death" );
self endon( "disconnect" );
for ( ;; )
{
self waittill( "equipment_placed", weapon, weapname );
if ( weapname == level.springpad_name )
{
self cleanupoldspringpad();
self.buildablespringpad = weapon;
self thread startspringpaddeploy( weapon );
}
}
}
cleanupoldspringpad()
{
if ( isDefined( self.buildablespringpad ) )
{
if ( isDefined( self.buildablespringpad.stub ) )
{
thread maps/mp/zombies/_zm_unitrigger::unregister_unitrigger( self.buildablespringpad.stub );
self.buildablespringpad.stub = undefined;
}
self.buildablespringpad delete();
self.springpad_kills = undefined;
}
if ( isDefined( level.springpad_sound_ent ) )
{
level.springpad_sound_ent delete();
level.springpad_sound_ent = undefined;
}
}
watchforcleanup()
{
self notify( "springpad_cleanup" );
self endon( "springpad_cleanup" );
self waittill_any( "death", "disconnect", "equip_springpad_zm_taken", "equip_springpad_zm_pickup" );
cleanupoldspringpad();
}
placespringpad( origin, angles )
{
item = self maps/mp/zombies/_zm_equipment::placed_equipment_think( "p6_anim_zm_buildable_tramplesteam", "equip_springpad_zm", origin, angles, 96, -32 );
if ( isDefined( item ) )
{
item.springpad_kills = self.springpad_kills;
item.requires_pickup = 1;
item.zombie_attack_callback = ::springpad_add_fling_ent;
}
self.springpad_kills = undefined;
return item;
}
dropspringpad()
{
item = self maps/mp/zombies/_zm_equipment::dropped_equipment_think( "p6_anim_zm_buildable_tramplesteam", "equip_springpad_zm", self.origin, self.angles, 96, -32 );
if ( isDefined( item ) )
{
item.springpad_kills = self.springpad_kills;
item.requires_pickup = 1;
}
self.springpad_kills = undefined;
return item;
}
pickupspringpad( item )
{
self.springpad_kills = item.springpad_kills;
item.springpad_kills = undefined;
}
transferspringpad( fromplayer, toplayer )
{
buildablespringpad = toplayer.buildablespringpad;
toarmed = 0;
if ( isDefined( buildablespringpad ) )
{
if ( isDefined( buildablespringpad.is_armed ) )
{
toarmed = buildablespringpad.is_armed;
}
}
springpad_kills = toplayer.springpad_kills;
fromarmed = 0;
if ( isDefined( fromplayer.buildablespringpad ) )
{
if ( isDefined( fromplayer.buildablespringpad.is_armed ) )
{
fromarmed = fromplayer.buildablespringpad.is_armed;
}
}
toplayer.buildablespringpad = fromplayer.buildablespringpad;
toplayer.buildablespringpad.original_owner = toplayer;
toplayer.buildablespringpad.owner = toplayer;
toplayer notify( "equip_springpad_zm_taken" );
toplayer.springpad_kills = fromplayer.springpad_kills;
toplayer thread startspringpaddeploy( toplayer.buildablespringpad, fromarmed );
fromplayer.buildablespringpad = buildablespringpad;
fromplayer.springpad_kills = springpad_kills;
fromplayer notify( "equip_springpad_zm_taken" );
if ( isDefined( fromplayer.buildablespringpad ) )
{
fromplayer thread startspringpaddeploy( fromplayer.buildablespringpad, toarmed );
fromplayer.buildablespringpad.original_owner = fromplayer;
fromplayer.buildablespringpad.owner = fromplayer;
}
else
{
fromplayer maps/mp/zombies/_zm_equipment::equipment_release( "equip_springpad_zm" );
}
}
springpad_in_range( delta, origin, radius )
{
if ( distancesquared( self.target.origin, origin ) < ( radius * radius ) )
{
return 1;
}
return 0;
}
springpad_power_on( origin, radius )
{
/#
println( "^1ZM POWER: trap on\n" );
#/
if ( !isDefined( self.target ) )
{
return;
}
self.target.power_on = 1;
self.target.power_on_time = getTime();
}
springpad_power_off( origin, radius )
{
/#
println( "^1ZM POWER: trap off\n" );
#/
if ( !isDefined( self.target ) )
{
return;
}
self.target.power_on = 0;
}
startspringpaddeploy( weapon, armed )
{
self endon( "death" );
self endon( "disconnect" );
self endon( "equip_springpad_zm_taken" );
self thread watchforcleanup();
electricradius = 45;
if ( isDefined( self.springpad_kills ) )
{
weapon.springpad_kills = self.springpad_kills;
self.springpad_kills = undefined;
}
if ( !isDefined( weapon.springpad_kills ) )
{
weapon.springpad_kills = 0;
}
if ( isDefined( weapon ) )
{
/#
weapon thread debugspringpad( electricradius );
#/
if ( isDefined( level.equipment_springpad_needs_power ) && level.equipment_springpad_needs_power )
{
weapon.power_on = 0;
maps/mp/zombies/_zm_power::add_temp_powered_item( ::springpad_power_on, ::springpad_power_off, ::springpad_in_range, ::maps/mp/zombies/_zm_power::cost_high, 1, weapon.power_on, weapon );
}
else
{
weapon.power_on = 1;
}
if ( !weapon.power_on )
{
self iprintlnbold( &"ZOMBIE_NEED_LOCAL_POWER" );
}
self thread springpadthink( weapon, electricradius, armed );
if ( isDefined( level.equipment_springpad_needs_power ) && !level.equipment_springpad_needs_power )
{
}
self thread maps/mp/zombies/_zm_buildables::delete_on_disconnect( weapon );
weapon waittill( "death" );
if ( isDefined( level.springpad_sound_ent ) )
{
level.springpad_sound_ent playsound( "wpn_zmb_electrap_stop" );
level.springpad_sound_ent delete();
level.springpad_sound_ent = undefined;
}
self notify( "springpad_cleanup" );
}
}
init_animtree()
{
scriptmodelsuseanimtree( -1 );
}
springpad_animate( weapon, armed )
{
self endon( "death" );
self endon( "disconnect" );
self endon( "equip_springpad_zm_taken" );
weapon endon( "death" );
weapon useanimtree( -1 );
f_animlength = getanimlength( %o_zombie_buildable_tramplesteam_reset_zombie );
r_animlength = getanimlength( %o_zombie_buildable_tramplesteam_reset );
l_animlength = getanimlength( %o_zombie_buildable_tramplesteam_launch );
weapon thread springpad_audio();
prearmed = 0;
if ( isDefined( armed ) && armed )
{
prearmed = 1;
}
fast_reset = 0;
while ( isDefined( weapon ) )
{
if ( !prearmed )
{
if ( fast_reset )
{
weapon setanim( %o_zombie_buildable_tramplesteam_reset_zombie );
weapon thread playspringpadresetaudio( f_animlength );
wait f_animlength;
}
else
{
weapon setanim( %o_zombie_buildable_tramplesteam_reset );
weapon thread playspringpadresetaudio( r_animlength );
wait r_animlength;
}
}
else
{
wait 0,05;
}
prearmed = 0;
weapon notify( "armed" );
fast_reset = 0;
if ( isDefined( weapon ) )
{
weapon setanim( %o_zombie_buildable_tramplesteam_compressed_idle );
weapon waittill( "fling", fast );
fast_reset = fast;
}
if ( isDefined( weapon ) )
{
weapon setanim( %o_zombie_buildable_tramplesteam_launch );
wait l_animlength;
}
}
}
playspringpadresetaudio( time )
{
self endon( "springpadAudioCleanup" );
ent = spawn( "script_origin", self.origin );
ent playloopsound( "zmb_highrise_launcher_reset_loop" );
self thread deleteentwhensounddone( time, ent );
self waittill( "death" );
ent delete();
}
deleteentwhensounddone( time, ent )
{
self endon( "death" );
wait time;
self notify( "springpadAudioCleanup" );
ent delete();
}
springpad_audio()
{
loop_ent = spawn( "script_origin", self.origin );
loop_ent playloopsound( "zmb_highrise_launcher_loop" );
self waittill( "death" );
loop_ent delete();
}
springpad_fx( weapon )
{
weapon endon( "death" );
self endon( "equip_springpad_zm_taken" );
while ( isDefined( weapon ) )
{
playfxontag( level._effect[ "springpade_on" ], weapon, "tag_origin" );
wait 1;
}
}
springpadthink( weapon, electricradius, armed )
{
self endon( "death" );
self endon( "disconnect" );
self endon( "equip_springpad_zm_taken" );
weapon endon( "death" );
radiussquared = electricradius * electricradius;
trigger = spawn( "trigger_box", weapon getcentroid(), 1, 48, 48, 32 );
trigger.origin += anglesToForward( flat_angle( weapon.angles ) ) * -15;
trigger.angles = weapon.angles;
trigger enablelinkto();
trigger linkto( weapon );
weapon.trigger = trigger;
/#
trigger.extent = ( 24, 24, 16 );
#/
weapon thread springpadthinkcleanup( trigger );
direction_forward = anglesToForward( flat_angle( weapon.angles ) + vectorScale( ( 0, 0, 1 ), 60 ) );
direction_vector = vectorScale( direction_forward, 1024 );
direction_origin = weapon.origin + direction_vector;
home_angles = weapon.angles;
weapon.is_armed = 0;
self thread springpad_fx( weapon );
self thread springpad_animate( weapon, armed );
weapon waittill( "armed" );
weapon.is_armed = 1;
weapon.fling_targets = [];
self thread targeting_thread( weapon, trigger );
while ( isDefined( weapon ) )
{
wait_for_targets( weapon );
if ( isDefined( weapon.fling_targets ) && weapon.fling_targets.size > 0 )
{
weapon notify( "fling" );
weapon.is_armed = 0;
weapon.zombies_only = 1;
_a520 = weapon.fling_targets;
_k520 = getFirstArrayKey( _a520 );
while ( isDefined( _k520 ) )
{
ent = _a520[ _k520 ];
if ( isplayer( ent ) )
{
ent thread player_fling( weapon.origin + vectorScale( ( 0, 0, 1 ), 30 ), weapon.angles, direction_vector );
}
else
{
if ( isDefined( ent ) )
{
if ( !isDefined( self.num_zombies_flung ) )
{
self.num_zombies_flung = 0;
}
self.num_zombies_flung++;
self notify( "zombie_flung" );
if ( !isDefined( weapon.fling_scaler ) )
{
weapon.fling_scaler = 1;
}
if ( isDefined( weapon.direction_vec_override ) )
{
direction_vector = weapon.direction_vec_override;
}
ent dodamage( ent.health + 666, ent.origin );
ent startragdoll();
ent launchragdoll( ( direction_vector / 4 ) * weapon.fling_scaler );
weapon.springpad_kills++;
}
}
_k520 = getNextArrayKey( _a520, _k520 );
}
if ( weapon.springpad_kills >= 28 )
{
self thread springpad_expired( weapon );
}
weapon.fling_targets = [];
weapon waittill( "armed" );
weapon.is_armed = 1;
continue;
}
else
{
wait 0,1;
}
}
}
wait_for_targets( weapon )
{
weapon endon( "hi_priority_target" );
while ( isDefined( weapon ) )
{
if ( isDefined( weapon.fling_targets ) && weapon.fling_targets.size > 0 )
{
wait 0,15;
return;
}
wait 0,05;
}
}
targeting_thread( weapon, trigger )
{
self endon( "death" );
self endon( "disconnect" );
self endon( "equip_springpad_zm_taken" );
weapon endon( "death" );
weapon.zombies_only = 1;
while ( isDefined( weapon ) )
{
if ( weapon.is_armed )
{
zombies = getaiarray( level.zombie_team );
_a594 = zombies;
_k594 = getFirstArrayKey( _a594 );
while ( isDefined( _k594 ) )
{
zombie = _a594[ _k594 ];
if ( !isDefined( zombie ) || !isalive( zombie ) )
{
}
else
{
if ( isDefined( zombie.ignore_spring_pad ) && zombie.ignore_spring_pad )
{
break;
}
else
{
if ( zombie istouching( trigger ) )
{
weapon springpad_add_fling_ent( zombie );
}
}
}
_k594 = getNextArrayKey( _a594, _k594 );
}
players = get_players();
_a622 = players;
_k622 = getFirstArrayKey( _a622 );
while ( isDefined( _k622 ) )
{
player = _a622[ _k622 ];
if ( is_player_valid( player ) && player istouching( trigger ) )
{
weapon springpad_add_fling_ent( player );
weapon.zombies_only = 0;
}
_k622 = getNextArrayKey( _a622, _k622 );
}
if ( !weapon.zombies_only )
{
weapon notify( "hi_priority_target" );
}
}
wait 0,05;
}
}
springpad_add_fling_ent( ent )
{
self.fling_targets = add_to_array( self.fling_targets, ent, 0 );
}
springpad_expired( weapon )
{
weapon maps/mp/zombies/_zm_equipment::dropped_equipment_destroy( 1 );
self maps/mp/zombies/_zm_equipment::equipment_release( "equip_springpad_zm" );
self.springpad_kills = 0;
}
player_fling( origin, angles, velocity )
{
torigin = ( self.origin[ 0 ], self.origin[ 1 ], origin[ 2 ] );
self setorigin( ( origin + torigin ) * 0,5 );
wait_network_frame();
self setvelocity( velocity );
}
springpadthinkcleanup( trigger )
{
self waittill( "death" );
if ( isDefined( trigger ) )
{
trigger delete();
}
}
debugspringpad( radius )
{
/#
color_armed = ( 0, 0, 1 );
color_unarmed = vectorScale( ( 0, 0, 1 ), 0,65 );
while ( isDefined( self ) )
{
if ( getDvarInt( #"EB512CB7" ) )
{
if ( isDefined( self.trigger ) )
{
color = color_unarmed;
if ( isDefined( self.is_armed ) && self.is_armed )
{
color = color_armed;
}
vec = self.trigger.extent;
box( self.trigger.origin, vec * -1, vec, self.trigger.angles[ 1 ], color, 1, 0, 1 );
}
color = ( 0, 0, 1 );
text = "";
if ( isDefined( self.springpad_kills ) )
{
text = "" + self.springpad_kills + "";
}
else
{
if ( isDefined( self.owner.springpad_kills ) )
{
text = "[" + self.owner.springpad_kills + "]";
}
}
print3d( self.origin + vectorScale( ( 0, 0, 1 ), 30 ), text, color, 1, 0,5, 1 );
}
wait 0,05;
#/
}
}

View File

@ -0,0 +1,556 @@
#include maps/mp/zombies/_zm_audio;
#include maps/mp/zombies/_zm_score;
#include maps/mp/zombies/_zm_laststand;
#include maps/mp/zombies/_zm_weapons;
#include maps/mp/zombies/_zm_utility;
#include maps/mp/_utility;
#include common_scripts/utility;
init( weapon_name, flourish_weapon_name, ballistic_weapon_name, ballistic_upgraded_weapon_name, cost, wallbuy_targetname, hint_string, vo_dialog_id, has_weapon, give_weapon, take_weapon, flourish_fn )
{
precacheitem( weapon_name );
precacheitem( flourish_weapon_name );
add_melee_weapon( weapon_name, flourish_weapon_name, ballistic_weapon_name, ballistic_upgraded_weapon_name, cost, wallbuy_targetname, hint_string, vo_dialog_id, has_weapon, give_weapon, take_weapon );
melee_weapon_triggers = getentarray( wallbuy_targetname, "targetname" );
i = 0;
while ( i < melee_weapon_triggers.size )
{
knife_model = getent( melee_weapon_triggers[ i ].target, "targetname" );
if ( isDefined( knife_model ) )
{
knife_model hide();
}
melee_weapon_triggers[ i ] thread melee_weapon_think( weapon_name, cost, has_weapon, give_weapon, flourish_fn, vo_dialog_id, flourish_weapon_name, ballistic_weapon_name, ballistic_upgraded_weapon_name );
melee_weapon_triggers[ i ] sethintstring( hint_string, cost );
melee_weapon_triggers[ i ] setcursorhint( "HINT_NOICON" );
melee_weapon_triggers[ i ] usetriggerrequirelookat();
i++;
}
melee_weapon_structs = getstructarray( wallbuy_targetname, "targetname" );
i = 0;
while ( i < melee_weapon_structs.size )
{
prepare_stub( melee_weapon_structs[ i ].trigger_stub, weapon_name, flourish_weapon_name, ballistic_weapon_name, ballistic_upgraded_weapon_name, cost, wallbuy_targetname, hint_string, vo_dialog_id, has_weapon, give_weapon, take_weapon, flourish_fn );
i++;
}
register_melee_weapon_for_level( weapon_name );
if ( !isDefined( level.ballistic_weapon_name ) )
{
level.ballistic_weapon_name = [];
}
level.ballistic_weapon_name[ weapon_name ] = ballistic_weapon_name;
if ( !isDefined( level.ballistic_upgraded_weapon_name ) )
{
level.ballistic_upgraded_weapon_name = [];
}
level.ballistic_upgraded_weapon_name[ weapon_name ] = ballistic_upgraded_weapon_name;
}
prepare_stub( stub, weapon_name, flourish_weapon_name, ballistic_weapon_name, ballistic_upgraded_weapon_name, cost, wallbuy_targetname, hint_string, vo_dialog_id, has_weapon, give_weapon, take_weapon, flourish_fn )
{
if ( isDefined( stub ) )
{
stub.hint_string = hint_string;
stub.cost = cost;
stub.weapon_name = weapon_name;
stub.has_weapon = has_weapon;
stub.give_weapon = give_weapon;
stub.take_weapon = take_weapon;
stub.vo_dialog_id = vo_dialog_id;
stub.flourish_weapon_name = flourish_weapon_name;
stub.ballistic_weapon_name = ballistic_weapon_name;
stub.ballistic_upgraded_weapon_name = ballistic_upgraded_weapon_name;
stub.trigger_func = ::melee_weapon_think;
stub.flourish_fn = flourish_fn;
}
}
add_stub( stub, weapon_name )
{
melee_weapon = undefined;
i = 0;
while ( i < level._melee_weapons.size )
{
if ( level._melee_weapons[ i ].weapon_name == weapon_name )
{
melee_weapon = level._melee_weapons[ i ];
break;
}
else
{
i++;
}
}
if ( isDefined( stub ) && isDefined( melee_weapon ) )
{
prepare_stub( stub, melee_weapon.weapon_name, melee_weapon.flourish_weapon_name, melee_weapon.ballistic_weapon_name, melee_weapon.ballistic_upgraded_weapon_name, melee_weapon.cost, melee_weapon.wallbuy_targetname, melee_weapon.hint_string, melee_weapon.vo_dialog_id, melee_weapon.has_weapon, melee_weapon.give_weapon, melee_weapon.take_weapon, melee_weapon.flourish_fn );
}
}
give_melee_weapon_by_name( weapon_name )
{
melee_weapon = undefined;
i = 0;
while ( i < level._melee_weapons.size )
{
if ( level._melee_weapons[ i ].weapon_name == weapon_name )
{
melee_weapon = level._melee_weapons[ i ];
break;
}
else
{
i++;
}
}
if ( isDefined( melee_weapon ) )
{
self thread give_melee_weapon( melee_weapon.vo_dialog_id, melee_weapon.flourish_weapon_name, melee_weapon.weapon_name, melee_weapon.ballistic_weapon_name, melee_weapon.ballistic_upgraded_weapon_name, melee_weapon.give_weapon, melee_weapon.flourish_fn, undefined );
}
}
add_melee_weapon( weapon_name, flourish_weapon_name, ballistic_weapon_name, ballistic_upgraded_weapon_name, cost, wallbuy_targetname, hint_string, vo_dialog_id, has_weapon, give_weapon, take_weapon, flourish_fn )
{
melee_weapon = spawnstruct();
melee_weapon.weapon_name = weapon_name;
melee_weapon.flourish_weapon_name = flourish_weapon_name;
melee_weapon.ballistic_weapon_name = ballistic_weapon_name;
melee_weapon.ballistic_upgraded_weapon_name = ballistic_upgraded_weapon_name;
melee_weapon.cost = cost;
melee_weapon.wallbuy_targetname = wallbuy_targetname;
melee_weapon.hint_string = hint_string;
melee_weapon.vo_dialog_id = vo_dialog_id;
melee_weapon.has_weapon = has_weapon;
melee_weapon.give_weapon = give_weapon;
melee_weapon.take_weapon = take_weapon;
melee_weapon.flourish_fn = flourish_fn;
if ( !isDefined( level._melee_weapons ) )
{
level._melee_weapons = [];
}
level._melee_weapons[ level._melee_weapons.size ] = melee_weapon;
}
spectator_respawn_all()
{
i = 0;
while ( i < level._melee_weapons.size )
{
self [[ level._melee_weapons[ i ].take_weapon ]]();
i++;
}
i = 0;
while ( i < level._melee_weapons.size )
{
self spectator_respawn( level._melee_weapons[ i ].wallbuy_targetname, level._melee_weapons[ i ].take_weapon, level._melee_weapons[ i ].has_weapon );
i++;
}
}
spectator_respawn( wallbuy_targetname, take_weapon, has_weapon )
{
melee_triggers = getentarray( wallbuy_targetname, "targetname" );
players = get_players();
i = 0;
while ( i < melee_triggers.size )
{
melee_triggers[ i ] setvisibletoall();
while ( isDefined( level._allow_melee_weapon_switching ) && !level._allow_melee_weapon_switching )
{
j = 0;
while ( j < players.size )
{
if ( players[ j ] [[ has_weapon ]]() )
{
melee_triggers[ i ] setinvisibletoplayer( players[ j ] );
}
j++;
}
}
i++;
}
}
trigger_hide_all()
{
i = 0;
while ( i < level._melee_weapons.size )
{
self trigger_hide( level._melee_weapons[ i ].wallbuy_targetname );
i++;
}
}
trigger_hide( wallbuy_targetname )
{
melee_triggers = getentarray( wallbuy_targetname, "targetname" );
i = 0;
while ( i < melee_triggers.size )
{
melee_triggers[ i ] setinvisibletoplayer( self );
i++;
}
}
has_any_ballistic_knife()
{
if ( self hasweapon( "knife_ballistic_zm" ) )
{
return 1;
}
if ( self hasweapon( "knife_ballistic_upgraded_zm" ) )
{
return 1;
}
i = 0;
while ( i < level._melee_weapons.size )
{
if ( self hasweapon( level._melee_weapons[ i ].ballistic_weapon_name ) )
{
return 1;
}
if ( self hasweapon( level._melee_weapons[ i ].ballistic_upgraded_weapon_name ) )
{
return 1;
}
i++;
}
return 0;
}
has_upgraded_ballistic_knife()
{
if ( self hasweapon( "knife_ballistic_upgraded_zm" ) )
{
return 1;
}
i = 0;
while ( i < level._melee_weapons.size )
{
if ( self hasweapon( level._melee_weapons[ i ].ballistic_upgraded_weapon_name ) )
{
return 1;
}
i++;
}
return 0;
}
give_ballistic_knife( weapon_string, upgraded )
{
current_melee_weapon = self get_player_melee_weapon();
if ( isDefined( current_melee_weapon ) )
{
if ( upgraded && isDefined( level.ballistic_upgraded_weapon_name ) && isDefined( level.ballistic_upgraded_weapon_name[ current_melee_weapon ] ) )
{
weapon_string = level.ballistic_upgraded_weapon_name[ current_melee_weapon ];
}
if ( !upgraded && isDefined( level.ballistic_weapon_name ) && isDefined( level.ballistic_weapon_name[ current_melee_weapon ] ) )
{
weapon_string = level.ballistic_weapon_name[ current_melee_weapon ];
}
}
return weapon_string;
}
change_melee_weapon( weapon_name, current_weapon )
{
current_melee_weapon = self get_player_melee_weapon();
if ( isDefined( current_melee_weapon ) )
{
self takeweapon( current_melee_weapon );
unacquire_weapon_toggle( current_melee_weapon );
}
self set_player_melee_weapon( weapon_name );
had_ballistic = 0;
had_ballistic_upgraded = 0;
ballistic_was_primary = 0;
primaryweapons = self getweaponslistprimaries();
i = 0;
while ( i < primaryweapons.size )
{
primary_weapon = primaryweapons[ i ];
if ( issubstr( primary_weapon, "knife_ballistic_" ) )
{
had_ballistic = 1;
if ( primary_weapon == current_weapon )
{
ballistic_was_primary = 1;
}
self notify( "zmb_lost_knife" );
self takeweapon( primary_weapon );
unacquire_weapon_toggle( primary_weapon );
if ( issubstr( primary_weapon, "upgraded" ) )
{
had_ballistic_upgraded = 1;
}
}
i++;
}
if ( had_ballistic )
{
if ( had_ballistic_upgraded )
{
new_ballistic = level.ballistic_upgraded_weapon_name[ weapon_name ];
if ( ballistic_was_primary )
{
current_weapon = new_ballistic;
}
self giveweapon( new_ballistic, 0, self maps/mp/zombies/_zm_weapons::get_pack_a_punch_weapon_options( new_ballistic ) );
}
else
{
new_ballistic = level.ballistic_weapon_name[ weapon_name ];
if ( ballistic_was_primary )
{
current_weapon = new_ballistic;
}
self giveweapon( new_ballistic, 0 );
}
}
return current_weapon;
}
melee_weapon_think( weapon_name, cost, has_weapon, give_weapon, flourish_fn, vo_dialog_id, flourish_weapon_name, ballistic_weapon_name, ballistic_upgraded_weapon_name )
{
self.first_time_triggered = 0;
while ( isDefined( self.stub ) )
{
self endon( "kill_trigger" );
if ( isDefined( self.stub.first_time_triggered ) )
{
self.first_time_triggered = self.stub.first_time_triggered;
}
weapon_name = self.stub.weapon_name;
cost = self.stub.cost;
has_weapon = self.stub.has_weapon;
give_weapon = self.stub.give_weapon;
flourish_fn = self.stub.flourish_fn;
vo_dialog_id = self.stub.vo_dialog_id;
flourish_weapon_name = self.stub.flourish_weapon_name;
ballistic_weapon_name = self.stub.ballistic_weapon_name;
ballistic_upgraded_weapon_name = self.stub.ballistic_upgraded_weapon_name;
players = getplayers();
while ( isDefined( level._allow_melee_weapon_switching ) && !level._allow_melee_weapon_switching )
{
i = 0;
while ( i < players.size )
{
if ( players[ i ] [[ has_weapon ]]() )
{
self setinvisibletoplayer( players[ i ] );
}
i++;
}
}
}
for ( ;; )
{
self waittill( "trigger", player );
if ( !is_player_valid( player ) )
{
player thread ignore_triggers( 0,5 );
continue;
}
else if ( player in_revive_trigger() )
{
wait 0,1;
continue;
}
else if ( player isthrowinggrenade() )
{
wait 0,1;
continue;
}
else if ( player.is_drinking > 0 )
{
wait 0,1;
continue;
}
else if ( player hasweapon( weapon_name ) || player has_powerup_weapon() )
{
wait 0,1;
continue;
}
else
{
if ( player isswitchingweapons() )
{
wait 0,1;
break;
}
else current_weapon = player getcurrentweapon();
if ( !is_placeable_mine( current_weapon ) || is_equipment( current_weapon ) && player has_powerup_weapon() )
{
wait 0,1;
break;
}
else
{
if ( player maps/mp/zombies/_zm_laststand::player_is_in_laststand() || isDefined( player.intermission ) && player.intermission )
{
wait 0,1;
break;
}
else
{
player_has_weapon = player [[ has_weapon ]]();
if ( !player_has_weapon )
{
if ( player.score >= cost )
{
if ( self.first_time_triggered == 0 )
{
model = getent( self.target, "targetname" );
if ( isDefined( model ) )
{
model thread melee_weapon_show( player );
}
else
{
if ( isDefined( self.clientfieldname ) )
{
level setclientfield( self.clientfieldname, 1 );
}
}
self.first_time_triggered = 1;
if ( isDefined( self.stub ) )
{
self.stub.first_time_triggered = 1;
}
}
player maps/mp/zombies/_zm_score::minus_to_player_score( cost );
bbprint( "zombie_uses", "playername %s playerscore %d round %d cost %d name %s x %f y %f z %f type %s", player.name, player.score, level.round_number, cost, weapon_name, self.origin, "weapon" );
player thread give_melee_weapon( vo_dialog_id, flourish_weapon_name, weapon_name, ballistic_weapon_name, ballistic_upgraded_weapon_name, give_weapon, flourish_fn, self );
}
else
{
play_sound_on_ent( "no_purchase" );
player maps/mp/zombies/_zm_audio::create_and_play_dialog( "general", "no_money_weapon", undefined, 1 );
}
break;
}
else
{
if ( isDefined( level._allow_melee_weapon_switching ) && !level._allow_melee_weapon_switching )
{
self setinvisibletoplayer( player );
}
}
}
}
}
}
}
melee_weapon_show( player )
{
player_angles = vectorToAngle( player.origin - self.origin );
player_yaw = player_angles[ 1 ];
weapon_yaw = self.angles[ 1 ];
yaw_diff = angleClamp180( player_yaw - weapon_yaw );
if ( yaw_diff > 0 )
{
yaw = weapon_yaw - 90;
}
else
{
yaw = weapon_yaw + 90;
}
self.og_origin = self.origin;
self.origin += anglesToForward( ( 0, yaw, 0 ) ) * 8;
wait 0,05;
self show();
play_sound_at_pos( "weapon_show", self.origin, self );
time = 1;
self moveto( self.og_origin, time );
}
give_melee_weapon( vo_dialog_id, flourish_weapon_name, weapon_name, ballistic_weapon_name, ballistic_upgraded_weapon_name, give_weapon, flourish_fn, trigger )
{
if ( isDefined( flourish_fn ) )
{
self thread [[ flourish_fn ]]();
}
gun = self do_melee_weapon_flourish_begin( flourish_weapon_name );
self maps/mp/zombies/_zm_audio::create_and_play_dialog( "weapon_pickup", vo_dialog_id );
self waittill_any( "fake_death", "death", "player_downed", "weapon_change_complete" );
self do_melee_weapon_flourish_end( gun, flourish_weapon_name, weapon_name, ballistic_weapon_name, ballistic_upgraded_weapon_name );
if ( self maps/mp/zombies/_zm_laststand::player_is_in_laststand() || isDefined( self.intermission ) && self.intermission )
{
return;
}
self [[ give_weapon ]]();
if ( isDefined( level._allow_melee_weapon_switching ) && !level._allow_melee_weapon_switching )
{
if ( isDefined( trigger ) )
{
trigger setinvisibletoplayer( self );
}
self trigger_hide_all();
}
}
do_melee_weapon_flourish_begin( flourish_weapon_name )
{
self increment_is_drinking();
self disable_player_move_states( 1 );
gun = self getcurrentweapon();
weapon = flourish_weapon_name;
self giveweapon( weapon );
self switchtoweapon( weapon );
return gun;
}
do_melee_weapon_flourish_end( gun, flourish_weapon_name, weapon_name, ballistic_weapon_name, ballistic_upgraded_weapon_name )
{
/#
assert( !is_zombie_perk_bottle( gun ) );
#/
/#
assert( gun != level.revive_tool );
#/
self enable_player_move_states();
weapon = flourish_weapon_name;
if ( self maps/mp/zombies/_zm_laststand::player_is_in_laststand() || isDefined( self.intermission ) && self.intermission )
{
self takeweapon( weapon );
self.lastactiveweapon = "none";
return;
}
self takeweapon( weapon );
self giveweapon( weapon_name );
gun = change_melee_weapon( weapon_name, gun );
if ( self hasweapon( "knife_zm" ) )
{
self takeweapon( "knife_zm" );
}
if ( self is_multiple_drinking() )
{
self decrement_is_drinking();
return;
}
else if ( gun == "knife_zm" )
{
self switchtoweapon( weapon_name );
self decrement_is_drinking();
return;
}
else if ( gun != "none" && !is_placeable_mine( gun ) && !is_equipment( gun ) )
{
self switchtoweapon( gun );
}
else
{
primaryweapons = self getweaponslistprimaries();
if ( isDefined( primaryweapons ) && primaryweapons.size > 0 )
{
self switchtoweapon( primaryweapons[ 0 ] );
}
}
self waittill( "weapon_change_complete" );
if ( !self maps/mp/zombies/_zm_laststand::player_is_in_laststand() && isDefined( self.intermission ) && !self.intermission )
{
self decrement_is_drinking();
}
}

View File

@ -0,0 +1,278 @@
#include maps/mp/zombies/_zm_stats;
#include common_scripts/utility;
#include maps/mp/_utility;
init()
{
if ( isDefined( level._uses_retrievable_ballisitic_knives ) && level._uses_retrievable_ballisitic_knives == 1 )
{
precachemodel( "t5_weapon_ballistic_knife_projectile" );
precachemodel( "t5_weapon_ballistic_knife_blade_retrieve" );
}
}
on_spawn( watcher, player )
{
player endon( "death" );
player endon( "disconnect" );
player endon( "zmb_lost_knife" );
level endon( "game_ended" );
self waittill( "stationary", endpos, normal, angles, attacker, prey, bone );
isfriendly = 0;
if ( isDefined( endpos ) )
{
retrievable_model = spawn( "script_model", endpos );
retrievable_model setmodel( "t5_weapon_ballistic_knife_blade_retrieve" );
retrievable_model setowner( player );
retrievable_model.owner = player;
retrievable_model.angles = angles;
retrievable_model.name = watcher.weapon;
if ( isDefined( prey ) )
{
if ( isplayer( prey ) && player.team == prey.team )
{
isfriendly = 1;
}
else
{
if ( isai( prey ) && player.team == prey.team )
{
isfriendly = 1;
}
}
if ( !isfriendly )
{
retrievable_model linkto( prey, bone );
retrievable_model thread force_drop_knives_to_ground_on_death( player, prey );
}
else
{
if ( isfriendly )
{
retrievable_model physicslaunch( normal, ( randomint( 10 ), randomint( 10 ), randomint( 10 ) ) );
normal = ( 0, 0, 1 );
}
}
}
watcher.objectarray[ watcher.objectarray.size ] = retrievable_model;
if ( isfriendly )
{
retrievable_model waittill( "stationary" );
}
retrievable_model thread drop_knives_to_ground( player );
if ( isfriendly )
{
player notify( "ballistic_knife_stationary" );
}
else
{
player notify( "ballistic_knife_stationary" );
}
retrievable_model thread wait_to_show_glowing_model( prey );
}
}
wait_to_show_glowing_model( prey )
{
level endon( "game_ended" );
self endon( "death" );
wait 2;
self setmodel( "t5_weapon_ballistic_knife_blade_retrieve" );
}
on_spawn_retrieve_trigger( watcher, player )
{
player endon( "death" );
player endon( "disconnect" );
player endon( "zmb_lost_knife" );
level endon( "game_ended" );
player waittill( "ballistic_knife_stationary", retrievable_model, normal, prey );
if ( !isDefined( retrievable_model ) )
{
return;
}
trigger_pos = [];
if ( isDefined( prey ) || isplayer( prey ) && isai( prey ) )
{
trigger_pos[ 0 ] = prey.origin[ 0 ];
trigger_pos[ 1 ] = prey.origin[ 1 ];
trigger_pos[ 2 ] = prey.origin[ 2 ] + 10;
}
else
{
trigger_pos[ 0 ] = retrievable_model.origin[ 0 ] + ( 10 * normal[ 0 ] );
trigger_pos[ 1 ] = retrievable_model.origin[ 1 ] + ( 10 * normal[ 1 ] );
trigger_pos[ 2 ] = retrievable_model.origin[ 2 ] + ( 10 * normal[ 2 ] );
}
pickup_trigger = spawn( "trigger_radius_use", ( trigger_pos[ 0 ], trigger_pos[ 1 ], trigger_pos[ 2 ] ) );
pickup_trigger setcursorhint( "HINT_NOICON" );
pickup_trigger.owner = player;
retrievable_model.retrievabletrigger = pickup_trigger;
hint_string = &"WEAPON_BALLISTIC_KNIFE_PICKUP";
if ( isDefined( hint_string ) )
{
pickup_trigger sethintstring( hint_string );
}
else
{
pickup_trigger sethintstring( &"GENERIC_PICKUP" );
}
pickup_trigger setteamfortrigger( player.team );
player clientclaimtrigger( pickup_trigger );
pickup_trigger enablelinkto();
if ( isDefined( prey ) )
{
pickup_trigger linkto( prey );
}
else
{
pickup_trigger linkto( retrievable_model );
}
if ( isDefined( level.knife_planted ) )
{
[[ level.knife_planted ]]( retrievable_model, pickup_trigger, prey );
}
retrievable_model thread watch_use_trigger( pickup_trigger, retrievable_model, ::pick_up, watcher.weapon, watcher.pickupsoundplayer, watcher.pickupsound );
player thread watch_shutdown( pickup_trigger, retrievable_model );
}
debug_print( endpos )
{
/#
self endon( "death" );
while ( 1 )
{
print3d( endpos, "pickup_trigger" );
wait 0,05;
#/
}
}
watch_use_trigger( trigger, model, callback, weapon, playersoundonuse, npcsoundonuse )
{
self endon( "death" );
self endon( "delete" );
level endon( "game_ended" );
while ( 1 )
{
trigger waittill( "trigger", player );
while ( !isalive( player ) )
{
continue;
}
while ( !player isonground() )
{
continue;
}
if ( isDefined( trigger.triggerteam ) && player.team != trigger.triggerteam )
{
continue;
}
if ( isDefined( trigger.claimedby ) && player != trigger.claimedby )
{
continue;
}
if ( player usebuttonpressed() && !player.throwinggrenade && !player meleebuttonpressed() )
{
if ( isDefined( playersoundonuse ) )
{
player playlocalsound( playersoundonuse );
}
if ( isDefined( npcsoundonuse ) )
{
player playsound( npcsoundonuse );
}
player thread [[ callback ]]( weapon, model, trigger );
return;
}
else
{
}
}
}
pick_up( weapon, model, trigger )
{
current_weapon = self getcurrentweapon();
if ( current_weapon != weapon )
{
clip_ammo = self getweaponammoclip( weapon );
if ( !clip_ammo )
{
self setweaponammoclip( weapon, 1 );
}
else
{
new_ammo_stock = self getweaponammostock( weapon ) + 1;
self setweaponammostock( weapon, new_ammo_stock );
}
}
else
{
new_ammo_stock = self getweaponammostock( weapon ) + 1;
self setweaponammostock( weapon, new_ammo_stock );
}
self maps/mp/zombies/_zm_stats::increment_client_stat( "ballistic_knives_pickedup" );
self maps/mp/zombies/_zm_stats::increment_player_stat( "ballistic_knives_pickedup" );
model destroy_ent();
trigger destroy_ent();
}
destroy_ent()
{
if ( isDefined( self ) )
{
if ( isDefined( self.glowing_model ) )
{
self.glowing_model delete();
}
self delete();
}
}
watch_shutdown( trigger, model )
{
self waittill_any( "death", "disconnect", "zmb_lost_knife" );
trigger destroy_ent();
model destroy_ent();
}
drop_knives_to_ground( player )
{
player endon( "death" );
player endon( "zmb_lost_knife" );
for ( ;; )
{
level waittill( "drop_objects_to_ground", origin, radius );
if ( distancesquared( origin, self.origin ) < ( radius * radius ) )
{
self physicslaunch( ( 0, 0, 1 ), vectorScale( ( 0, 0, 1 ), 5 ) );
self thread update_retrieve_trigger( player );
}
}
}
force_drop_knives_to_ground_on_death( player, prey )
{
self endon( "death" );
player endon( "zmb_lost_knife" );
prey waittill( "death" );
self unlink();
self physicslaunch( ( 0, 0, 1 ), vectorScale( ( 0, 0, 1 ), 5 ) );
self thread update_retrieve_trigger( player );
}
update_retrieve_trigger( player )
{
self endon( "death" );
player endon( "zmb_lost_knife" );
if ( isDefined( level.custom_update_retrieve_trigger ) )
{
self [[ level.custom_update_retrieve_trigger ]]( player );
return;
}
self waittill( "stationary" );
trigger = self.retrievabletrigger;
trigger.origin = ( self.origin[ 0 ], self.origin[ 1 ], self.origin[ 2 ] + 10 );
trigger linkto( self );
}

View File

@ -0,0 +1,53 @@
#include maps/mp/zombies/_zm_weapons;
#include maps/mp/zombies/_zm_utility;
#include maps/mp/_utility;
#include common_scripts/utility;
init()
{
if ( isDefined( level.bowie_cost ) )
{
cost = level.bowie_cost;
}
else
{
cost = 3000;
}
maps/mp/zombies/_zm_melee_weapon::init( "bowie_knife_zm", "zombie_bowie_flourish", "knife_ballistic_bowie_zm", "knife_ballistic_bowie_upgraded_zm", cost, "bowie_upgrade", &"ZOMBIE_WEAPON_BOWIE_BUY", "bowie", ::has_bowie, ::give_bowie, ::take_bowie, ::bowie_flourish );
maps/mp/zombies/_zm_weapons::add_retrievable_knife_init_name( "knife_ballistic_bowie" );
maps/mp/zombies/_zm_weapons::add_retrievable_knife_init_name( "knife_ballistic_bowie_upgraded" );
}
spectator_respawn()
{
maps/mp/zombies/_zm_melee_weapon::spectator_respawn( "bowie_upgrade", ::take_bowie, ::has_bowie );
}
has_bowie()
{
if ( is_true( level._allow_melee_weapon_switching ) )
{
return 0;
}
if ( !is_true( self._sickle_zm_equipped ) || is_true( self._bowie_zm_equipped ) && is_true( self._tazer_zm_equipped ) )
{
return 1;
}
return 0;
}
give_bowie()
{
self._bowie_zm_equipped = 1;
self._sickle_zm_equipped = undefined;
self._tazer_zm_equipped = undefined;
}
take_bowie()
{
self._bowie_zm_equipped = undefined;
}
bowie_flourish()
{
}

Some files were not shown because too many files have changed in this diff Show More