fixed packa punch

This commit is contained in:
JezuzLizard 2020-03-02 16:10:40 -08:00
parent 4095ee731a
commit 180b32cf59

View File

@ -64,3 +64,120 @@ turn_tombstone_on()
}
}
}
perk_machine_spawn_init()
{
match_string = "";
location = level.scr_zm_map_start_location;
if ( location != "default" && location == "" && isDefined( level.default_start_location ) )
{
location = level.default_start_location;
}
match_string = ( level.scr_zm_ui_gametype + "_perks_" ) + location;
pos = [];
if ( isDefined( level.override_perk_targetname ) )
{
structs = getstructarray( level.override_perk_targetname, "targetname" );
}
else
{
structs = getstructarray( "zm_perk_machine", "targetname" );
}
_a3578 = structs;
_k3578 = getFirstArrayKey( _a3578 );
while ( isDefined( _k3578 ) )
{
struct = _a3578[ _k3578 ];
if ( isDefined( struct.script_string ) )
{
tokens = strtok( struct.script_string, " " );
_a3583 = tokens;
_k3583 = getFirstArrayKey( _a3583 );
while ( isDefined( _k3583 ) )
{
token = _a3583[ _k3583 ];
if ( token == match_string )
{
pos[ pos.size ] = struct;
}
_k3583 = getNextArrayKey( _a3583, _k3583 );
}
}
else pos[ pos.size ] = struct;
_k3578 = getNextArrayKey( _a3578, _k3578 );
}
if ( !isDefined( pos ) || pos.size == 0 )
{
return;
}
precachemodel( "zm_collision_perks1" );
i = 0;
while ( i < pos.size )
{
perk = pos[ i ].script_noteworthy;
if ( isDefined( perk ) && isDefined( pos[ i ].model ) )
{
use_trigger = spawn( "trigger_radius_use", pos[ i ].origin + vectorScale( ( 0, -1, 0 ), 30 ), 0, 40, 70 );
use_trigger.targetname = "zombie_vending";
use_trigger.script_noteworthy = perk;
use_trigger triggerignoreteam();
perk_machine = spawn( "script_model", pos[ i ].origin );
perk_machine.angles = pos[ i ].angles;
perk_machine setmodel( pos[ i ].model );
if ( isDefined( level._no_vending_machine_bump_trigs ) && level._no_vending_machine_bump_trigs )
{
bump_trigger = undefined;
}
else
{
bump_trigger = spawn( "trigger_radius", pos[ i ].origin, 0, 35, 64 );
bump_trigger.script_activated = 1;
bump_trigger.script_sound = "zmb_perks_bump_bottle";
bump_trigger.targetname = "audio_bump_trigger";
if ( perk != "specialty_weapupgrade" )
{
bump_trigger thread thread_bump_trigger();
}
}
collision = spawn( "script_model", pos[ i ].origin, 1 );
collision.angles = pos[ i ].angles;
collision setmodel( "zm_collision_perks1" );
collision.script_noteworthy = "clip";
collision disconnectpaths();
use_trigger.clip = collision;
use_trigger.machine = perk_machine;
use_trigger.bump = bump_trigger;
if ( isDefined( pos[ i ].blocker_model ) )
{
use_trigger.blocker_model = pos[ i ].blocker_model;
}
if ( isDefined( pos[ i ].script_int ) )
{
perk_machine.script_int = pos[ i ].script_int;
}
if ( isDefined( pos[ i ].turn_on_notify ) )
{
perk_machine.turn_on_notify = pos[ i ].turn_on_notify;
}
if ( perk == "specialty_scavenger" || perk == "specialty_scavenger_upgrade" )
{
use_trigger.script_sound = "mus_perks_tombstone_jingle";
use_trigger.script_string = "tombstone_perk";
use_trigger.script_label = "mus_perks_tombstone_sting";
use_trigger.target = "vending_tombstone";
perk_machine.script_string = "tombstone_perk";
perk_machine.targetname = "vending_tombstone";
if ( isDefined( bump_trigger ) )
{
bump_trigger.script_string = "tombstone_perk";
}
}
if ( isDefined( level._custom_perks[ perk ] ) && isDefined( level._custom_perks[ perk ].perk_machine_set_kvps ) )
{
[[ level._custom_perks[ perk ].perk_machine_set_kvps ]]( use_trigger, perk_machine, bump_trigger, collision );
}
}
i++;
}
}