mirror of
https://github.com/JezuzLizard/Recompilable-gscs-for-BO2-zombies-and-multiplayer.git
synced 2025-06-07 17:37:50 -05:00
added _zm_perk_random.gsc to noknownerrors
This commit is contained in:
parent
230cfd1fb4
commit
ce21933816
@ -4,7 +4,7 @@
|
||||
|
||||
### The following scripts compile and run successfully with major errors:
|
||||
```
|
||||
zm_highrise_patch/maps/mp/zombies/_zm_weap_slipgun.gsc
|
||||
zm_highrise_patch/maps/mp/zombies/MajorErrors/_zm_weap_slipgun.gsc
|
||||
```
|
||||
### The following scripts compile and run serverside but clients cannot join due to exe_client_field_mismatch
|
||||
|
||||
|
701
zm_tomb_patch/maps/mp/zombies/NoKnownErrors/_zm_perk_random.gsc
Normal file
701
zm_tomb_patch/maps/mp/zombies/NoKnownErrors/_zm_perk_random.gsc
Normal file
@ -0,0 +1,701 @@
|
||||
#include maps/mp/zombies/_zm_perks;
|
||||
#include maps/mp/zombies/_zm_audio;
|
||||
#include maps/mp/zombies/_zm_unitrigger;
|
||||
#include maps/mp/animscripts/zm_utility;
|
||||
#include maps/mp/zombies/_zm_stats;
|
||||
#include maps/mp/zombies/_zm_score;
|
||||
#include maps/mp/zombies/_zm_utility;
|
||||
#include maps/mp/_utility;
|
||||
#include common_scripts/utility;
|
||||
|
||||
init() //checked 100% parity
|
||||
{
|
||||
level thread onPlayerConnect(); //this is new code added to define player
|
||||
level._random_zombie_perk_cost = 1500;
|
||||
level thread precache();
|
||||
level thread init_machines();
|
||||
registerclientfield( "scriptmover", "perk_bottle_cycle_state", 14000, 2, "int" );
|
||||
registerclientfield( "scriptmover", "turn_active_perk_light_red", 14000, 1, "int" );
|
||||
registerclientfield( "scriptmover", "turn_active_perk_light_green", 14000, 1, "int" );
|
||||
registerclientfield( "scriptmover", "turn_on_location_indicator", 14000, 1, "int" );
|
||||
registerclientfield( "scriptmover", "turn_active_perk_ball_light", 14000, 1, "int" );
|
||||
registerclientfield( "scriptmover", "zone_captured", 14000, 1, "int" );
|
||||
level._effect[ "perk_machine_light" ] = loadfx( "maps/zombie_tomb/fx_tomb_dieselmagic_light" );
|
||||
level._effect[ "perk_machine_light_red" ] = loadfx( "maps/zombie_tomb/fx_tomb_dieselmagic_light_red" );
|
||||
level._effect[ "perk_machine_light_green" ] = loadfx( "maps/zombie_tomb/fx_tomb_dieselmagic_light_green" );
|
||||
level._effect[ "perk_machine_steam" ] = loadfx( "maps/zombie_tomb/fx_tomb_dieselmagic_steam" );
|
||||
level._effect[ "perk_machine_location" ] = loadfx( "maps/zombie_tomb/fx_tomb_dieselmagic_identify" );
|
||||
level._effect[ "perk_machine_activation_electric_loop" ] = loadfx( "maps/zombie_tomb/fx_tomb_dieselmagic_on" );
|
||||
flag_init( "machine_can_reset" );
|
||||
|
||||
}
|
||||
|
||||
onPlayerConnect()
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
level waittill("connected", player);
|
||||
level.players_wunderfizz = player;
|
||||
}
|
||||
}
|
||||
|
||||
init_machines()
|
||||
{
|
||||
machines = getentarray("random_perk_machine", "targetname");
|
||||
foreach(machine in machines)
|
||||
{
|
||||
machine.artifact_glow_setting = 1;
|
||||
machine.machinery_glow_setting = 0;
|
||||
machine.is_current_ball_location = 0;
|
||||
machine.unitrigger_stub = spawnstruct();
|
||||
machine.unitrigger_stub.origin = machine.origin + AnglesToRight(machine.angles) * 22.5;
|
||||
machine.unitrigger_stub.angles = machine.angles;
|
||||
machine.unitrigger_stub.script_unitrigger_type = "unitrigger_box_use";
|
||||
machine.unitrigger_stub.script_width = 64;
|
||||
machine.unitrigger_stub.script_height = 64;
|
||||
machine.unitrigger_stub.script_length = 64;
|
||||
machine.unitrigger_stub.trigger_target = machine;
|
||||
unitrigger_force_per_player_triggers(machine.unitrigger_stub, 1);
|
||||
machine.unitrigger_stub.prompt_and_visibility_func = ::wunderfizztrigger_update_prompt;
|
||||
level thread maps/mp/zombies/_zm_unitrigger::register_static_unitrigger(machine.unitrigger_stub, ::wunderfizz_unitrigger_think);
|
||||
}
|
||||
}
|
||||
|
||||
wunderfizztrigger_update_prompt( player ) //checked 100% parity
|
||||
{
|
||||
can_use = self wunderfizzstub_update_prompt( player );
|
||||
if ( isDefined( self.hint_string ) )
|
||||
{
|
||||
if ( isDefined( self.hint_parm1 ) )
|
||||
{
|
||||
self sethintstring( self.hint_string, self.hint_parm1 );
|
||||
}
|
||||
else
|
||||
{
|
||||
self sethintstring( self.hint_string );
|
||||
}
|
||||
}
|
||||
return can_use;
|
||||
}
|
||||
|
||||
wunderfizzstub_update_prompt( player ) //checked 100% parity
|
||||
{
|
||||
self setcursorhint( "HINT_NOICON" );
|
||||
if ( !self trigger_visible_to_player( player ) )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
self.hint_parm1 = undefined;
|
||||
if ( isDefined( self.stub.trigger_target.is_locked ) && self.stub.trigger_target.is_locked )
|
||||
{
|
||||
self.hint_string = &"ZM_TOMB_RPU";
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( self.stub.trigger_target.is_current_ball_location )
|
||||
{
|
||||
if ( isDefined( self.stub.trigger_target.machine_user ) )
|
||||
{
|
||||
if ( isDefined( self.stub.trigger_target.grab_perk_hint ) && self.stub.trigger_target.grab_perk_hint )
|
||||
{
|
||||
n_purchase_limit = player get_player_perk_purchase_limit();
|
||||
if ( player.num_perks >= n_purchase_limit )
|
||||
{
|
||||
self.hint_string = &"ZM_TOMB_RPT";
|
||||
self.hint_parm1 = n_purchase_limit;
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
self.hint_string = &"ZM_TOMB_RPP";
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
n_purchase_limit = player get_player_perk_purchase_limit();
|
||||
if ( player.num_perks >= n_purchase_limit )
|
||||
{
|
||||
self.hint_string = &"ZM_TOMB_RPT";
|
||||
self.hint_parm1 = n_purchase_limit;
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
self.hint_string = &"ZM_TOMB_RPB";
|
||||
self.hint_parm1 = level._random_zombie_perk_cost;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
self.hint_string = &"ZM_TOMB_RPE";
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
trigger_visible_to_player( player ) //checked 100% parity
|
||||
{
|
||||
self setinvisibletoplayer(player);
|
||||
visible = 1;
|
||||
if(isdefined(self.stub.trigger_target.machine_user))
|
||||
{
|
||||
if(player != self.stub.trigger_target.machine_user || is_placeable_mine(self.stub.trigger_target.machine_user getcurrentweapon()))
|
||||
{
|
||||
visible = 0;
|
||||
}
|
||||
}
|
||||
else if(!player can_buy_perk())
|
||||
{
|
||||
visible = 0;
|
||||
}
|
||||
if(!visible)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
self setvisibletoplayer(player);
|
||||
return 1;
|
||||
}
|
||||
|
||||
can_buy_perk() //checked 100% parity
|
||||
{
|
||||
if ( isDefined( self.is_drinking ) && self.is_drinking > 0 )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
current_weapon = self getcurrentweapon();
|
||||
if ( is_placeable_mine( current_weapon ) || is_equipment_that_blocks_purchase( current_weapon ) )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
if ( self in_revive_trigger() )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
if ( current_weapon == "none" )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
init_animtree() //checked 100% parity
|
||||
{
|
||||
scriptmodelsuseanimtree( -1 );
|
||||
}
|
||||
|
||||
start_random_machine() //checked 100% parity
|
||||
{
|
||||
level thread machines_setup();
|
||||
level thread machine_selector();
|
||||
}
|
||||
|
||||
precache() //checked 100% parity
|
||||
{
|
||||
precachemodel( "p6_zm_vending_diesel_magic" );
|
||||
precachemodel( "t6_wpn_zmb_perk_bottle_bear_world" );
|
||||
}
|
||||
|
||||
|
||||
machines_setup() //checked 100% parity
|
||||
{
|
||||
wait(0.5);
|
||||
level.perk_bottle_weapon_array = arraycombine(level.machine_assets, level._custom_perks, 0, 1);
|
||||
start_machines = getentarray("start_machine", "script_noteworthy");
|
||||
machines = getentarray("random_perk_machine", "targetname");
|
||||
//level.random_perk_start_machine = machines[5];
|
||||
/*
|
||||
notes
|
||||
gen1 is machines[5]
|
||||
gen2 is machines[0]
|
||||
gen3 is machines[1]
|
||||
gen4 is machines[2]
|
||||
gen5 is machines[3]
|
||||
gen6 is machines[4]
|
||||
|
||||
*/
|
||||
|
||||
|
||||
if(start_machines.size == 1)
|
||||
{
|
||||
level.random_perk_start_machine = start_machines[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
level.random_perk_start_machine = start_machines[randomint(start_machines.size)];
|
||||
}
|
||||
|
||||
|
||||
foreach(machine in machines)
|
||||
{
|
||||
spawn_location = spawn("script_model", machine.origin);
|
||||
spawn_location setmodel("tag_origin");
|
||||
spawn_location.angles = machine.angles;
|
||||
forward_dir = AnglesToRight(machine.angles);
|
||||
spawn_location.origin = spawn_location.origin + VectorScale( 0, 0, 1, 65);
|
||||
machine.bottle_spawn_location = spawn_location;
|
||||
machine useanimtree(-1);
|
||||
//broken currently
|
||||
machine thread machine_power_indicators();
|
||||
if(machine != level.random_perk_start_machine)
|
||||
{
|
||||
machine hidepart("j_ball");
|
||||
machine.is_current_ball_location = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
level.wunderfizz_starting_machine = machine;
|
||||
level notify("wunderfizz_setup");
|
||||
machine thread machine_think();
|
||||
}
|
||||
wait_network_frame();
|
||||
}
|
||||
}
|
||||
|
||||
machine_power_indicators() //checked 100% parity
|
||||
{
|
||||
self setclientfield( "zone_captured", 1 );
|
||||
wait 1;
|
||||
self setclientfield( "zone_captured", 0 );
|
||||
while ( 1 )
|
||||
{
|
||||
self conditional_power_indicators();
|
||||
while ( isDefined( self.is_locked ) && self.is_locked )
|
||||
{
|
||||
wait 1;
|
||||
}
|
||||
self conditional_power_indicators();
|
||||
while ( !isDefined( self.is_locked ) || !self.is_locked )
|
||||
{
|
||||
wait 1;
|
||||
}
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
|
||||
conditional_power_indicators() //checked 100% parity
|
||||
{
|
||||
if(isdefined(self.is_locked) && self.is_locked)
|
||||
{
|
||||
self setclientfield("turn_active_perk_light_red", 0);
|
||||
self setclientfield("turn_active_perk_light_green", 0);
|
||||
self setclientfield("turn_active_perk_ball_light", 0);
|
||||
self setclientfield("zone_captured", 0);
|
||||
}
|
||||
else if(self.is_current_ball_location)
|
||||
{
|
||||
self setclientfield("turn_active_perk_light_red", 0);
|
||||
self setclientfield("turn_active_perk_light_green", 1);
|
||||
self setclientfield("turn_active_perk_ball_light", 1);
|
||||
self setclientfield("zone_captured", 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
self setclientfield("turn_active_perk_light_red", 1);
|
||||
self setclientfield("turn_active_perk_light_green", 0);
|
||||
self setclientfield("turn_active_perk_ball_light", 0);
|
||||
self setclientfield("zone_captured", 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
wunderfizz_unitrigger_think( player ) //checked 100% parity
|
||||
{
|
||||
self endon( "kill_trigger" );
|
||||
while ( 1 )
|
||||
{
|
||||
self waittill( "trigger", player );
|
||||
self.stub.trigger_target notify( "trigger" );
|
||||
}
|
||||
}
|
||||
|
||||
machine_think() //checked 80% parity
|
||||
{
|
||||
level notify("machine_think");
|
||||
level endon("machine_think");
|
||||
self thread machine_sounds();
|
||||
self show();
|
||||
self.num_time_used = 0; //0 normally
|
||||
self.num_til_moved = randomintrange(4, 7);
|
||||
self.is_current_ball_location = 1;
|
||||
self setclientfield("turn_on_location_indicator", 1);
|
||||
self showpart("j_ball");
|
||||
self thread update_animation("start");
|
||||
while(isdefined(self.is_locked) && self.is_locked)
|
||||
{
|
||||
wait(1);
|
||||
}
|
||||
self conditional_power_indicators();
|
||||
while(1)
|
||||
{
|
||||
self waittill("trigger", level.players_wunderfizz);
|
||||
flag_clear("machine_can_reset");
|
||||
//level notify("pmmove");
|
||||
//broken
|
||||
player = level.players_wunderfizz;
|
||||
if(player.score < level._random_zombie_perk_cost)
|
||||
{
|
||||
self playsound("evt_perk_deny");
|
||||
player maps/mp/zombies/_zm_audio::create_and_play_dialog("general", "perk_deny", undefined, 0);
|
||||
continue;
|
||||
}
|
||||
//working
|
||||
if(self.num_time_used >= self.num_til_moved)
|
||||
{
|
||||
level notify("pmmove");
|
||||
self thread update_animation("shut_down");
|
||||
level notify("random_perk_moving");
|
||||
self setclientfield("turn_on_location_indicator", 0);
|
||||
self.is_current_ball_location = 0;
|
||||
self conditional_power_indicators();
|
||||
self hidepart("j_ball");
|
||||
return;
|
||||
}
|
||||
//working
|
||||
self.machine_user = player;
|
||||
self.num_time_used++;
|
||||
player maps/mp/zombies/_zm_stats::increment_client_stat("use_perk_random");
|
||||
player maps/mp/zombies/_zm_stats::increment_player_stat("use_perk_random");
|
||||
|
||||
//broken
|
||||
player maps/mp/zombies/_zm_score::minus_to_player_score(level._random_zombie_perk_cost);
|
||||
|
||||
|
||||
self thread update_animation("in_use");
|
||||
if(isdefined(level.perk_random_vo_func_usemachine) && isdefined(player))
|
||||
{
|
||||
player thread [[level.perk_random_vo_func_usemachine]]();
|
||||
}
|
||||
|
||||
while(1)
|
||||
{
|
||||
//working
|
||||
thread maps/mp/zombies/_zm_unitrigger::unregister_unitrigger(self.unitrigger_stub);
|
||||
|
||||
//broken
|
||||
random_perk = get_weighted_random_perk(player);
|
||||
|
||||
self setclientfield("perk_bottle_cycle_state", 1);
|
||||
level notify("pmstrt");
|
||||
wait(1);
|
||||
self thread start_perk_bottle_cycling();
|
||||
self thread perk_bottle_motion();
|
||||
model = get_perk_weapon_model(random_perk);
|
||||
wait(3);
|
||||
self notify("done_cycling");
|
||||
if(self.num_time_used >= self.num_til_moved)
|
||||
{
|
||||
self.bottle_spawn_location setmodel("t6_wpn_zmb_perk_bottle_bear_world");
|
||||
level notify("pmmove");
|
||||
self thread update_animation("shut_down");
|
||||
wait(3);
|
||||
player maps/mp/zombies/_zm_score::add_to_player_score(level._random_zombie_perk_cost);
|
||||
self.bottle_spawn_location setmodel("tag_origin");
|
||||
level notify("random_perk_moving");
|
||||
self setclientfield("perk_bottle_cycle_state", 0);
|
||||
self setclientfield("turn_on_location_indicator", 0);
|
||||
self.is_current_ball_location = 0;
|
||||
self conditional_power_indicators();
|
||||
self hidepart("j_ball");
|
||||
self.machine_user = undefined;
|
||||
thread maps/mp/zombies/_zm_unitrigger::register_static_unitrigger(self.unitrigger_stub, ::wunderfizz_unitrigger_think);
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
self.bottle_spawn_location setmodel(model);
|
||||
}
|
||||
self.grab_perk_hint = 1;
|
||||
thread maps/mp/zombies/_zm_unitrigger::register_static_unitrigger(self.unitrigger_stub, ::wunderfizz_unitrigger_think);
|
||||
//broken
|
||||
self thread grab_check(player, random_perk);
|
||||
|
||||
self thread time_out_check();
|
||||
self waittill_either("grab_check", "time_out_check");
|
||||
self.grab_perk_hint = 0;
|
||||
thread maps/mp/zombies/_zm_unitrigger::unregister_unitrigger(self.unitrigger_stub);
|
||||
thread maps/mp/zombies/_zm_unitrigger::register_static_unitrigger(self.unitrigger_stub, ::wunderfizz_unitrigger_think);
|
||||
level notify("pmstop");
|
||||
if(player.num_perks >= player get_player_perk_purchase_limit())
|
||||
{
|
||||
player maps/mp/zombies/_zm_score::add_to_player_score(level._random_zombie_perk_cost);
|
||||
}
|
||||
self setclientfield("perk_bottle_cycle_state", 0);
|
||||
self.machine_user = undefined;
|
||||
self.bottle_spawn_location setmodel("tag_origin");
|
||||
self thread update_animation("idle");
|
||||
break;
|
||||
}
|
||||
flag_wait("machine_can_reset");
|
||||
}
|
||||
}
|
||||
|
||||
grab_check( player, random_perk ) //checked 100% parity
|
||||
{
|
||||
self endon("time_out_check");
|
||||
perk_is_bought = 0;
|
||||
while(!perk_is_bought)
|
||||
{
|
||||
self waittill("trigger", e_triggerer);
|
||||
if(e_triggerer == player)
|
||||
{
|
||||
while ( isDefined( player.is_drinking ) && player.is_drinking > 0 )
|
||||
{
|
||||
wait 0.1;
|
||||
}
|
||||
if(player.num_perks < level.perk_purchase_limit )
|
||||
{
|
||||
perk_is_bought = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
self playsound("evt_perk_deny");
|
||||
player maps/mp/zombies/_zm_audio::create_and_play_dialog("general", "sigh");
|
||||
self notify("time_out_or_perk_grab");
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
player maps/mp/zombies/_zm_stats::increment_client_stat("grabbed_from_perk_random");
|
||||
player maps/mp/zombies/_zm_stats::increment_player_stat("grabbed_from_perk_random");
|
||||
player thread monitor_when_player_acquires_perk();
|
||||
self notify("grab_check");
|
||||
self notify("time_out_or_perk_grab");
|
||||
gun = player maps/mp/zombies/_zm_perks::perk_give_bottle_begin(random_perk);
|
||||
evt = player waittill_any_return("fake_death", "death", "player_downed", "weapon_change_complete");
|
||||
|
||||
if(evt == "weapon_change_complete")
|
||||
{
|
||||
player thread maps/mp/zombies/_zm_perks::wait_give_perk(random_perk, 1);
|
||||
}
|
||||
|
||||
player maps/mp/zombies/_zm_perks::perk_give_bottle_end(gun, random_perk);
|
||||
|
||||
if( isDefined( player.has_drunk_wunderfizz ) && !player.has_drunk_wunderfizz )
|
||||
{
|
||||
player do_player_general_vox("wunderfizz", "perk_wonder", undefined, 100);
|
||||
player.has_drunk_wunderfizz = 1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
monitor_when_player_acquires_perk() //checked 100% parity
|
||||
{
|
||||
self waittill_any( "perk_acquired", "death_or_disconnect", "player_downed" );
|
||||
flag_set( "machine_can_reset" );
|
||||
}
|
||||
|
||||
time_out_check() //checked 100% parity
|
||||
{
|
||||
self endon( "grab_check" );
|
||||
wait 10;
|
||||
self notify( "time_out_check" );
|
||||
flag_set( "machine_can_reset" );
|
||||
}
|
||||
|
||||
machine_selector() //fixed has 100% parity
|
||||
{
|
||||
while ( 1 )
|
||||
{
|
||||
level waittill( "random_perk_moving" );
|
||||
machines = getentarray( "random_perk_machine", "targetname" );
|
||||
if(machines.size == 1)
|
||||
{
|
||||
new_machine = machines[0];
|
||||
new_machine thread machine_think();
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
new_machine = machines[ randomint( machines.size ) ];
|
||||
level.random_perk_start_machine = new_machine;
|
||||
}
|
||||
wait 10;
|
||||
new_machine thread machine_think();
|
||||
}
|
||||
}
|
||||
|
||||
include_perk_in_random_rotation( perk ) //checked 100% parity
|
||||
{
|
||||
if ( !isDefined( level._random_perk_machine_perk_list ) )
|
||||
{
|
||||
level._random_perk_machine_perk_list = [];
|
||||
}
|
||||
level._random_perk_machine_perk_list = add_to_array( level._random_perk_machine_perk_list, perk );
|
||||
}
|
||||
|
||||
get_weighted_random_perk( player ) //checked 100% parity
|
||||
{
|
||||
keys = array_randomize(getarraykeys(level._random_perk_machine_perk_list));
|
||||
if(isdefined(level.custom_random_perk_weights))
|
||||
{
|
||||
keys = player [[level.custom_random_perk_weights]]();
|
||||
}
|
||||
i = 0;
|
||||
while ( i < keys.size )
|
||||
{
|
||||
if ( player hasperk( level._random_perk_machine_perk_list[ keys[ i ] ] ) )
|
||||
{
|
||||
i++;
|
||||
continue;
|
||||
}
|
||||
return level._random_perk_machine_perk_list[ keys[ i ] ];
|
||||
i++;
|
||||
}
|
||||
return level._random_perk_machine_perk_list[ keys[ 0 ] ];
|
||||
}
|
||||
perk_bottle_motion() //checked 100% parity
|
||||
{
|
||||
putouttime = 3;
|
||||
putbacktime = 10;
|
||||
v_float = anglesToForward( self.angles - ( 0, 90, 0 ) ) * 10;
|
||||
self.bottle_spawn_location.origin = self.origin + ( 0, 0, 53 );
|
||||
self.bottle_spawn_location.angles = self.angles;
|
||||
self.bottle_spawn_location.origin -= v_float;
|
||||
self.bottle_spawn_location moveto( self.bottle_spawn_location.origin + v_float, putouttime, putouttime * 0.5 );
|
||||
self.bottle_spawn_location.angles += ( 0, 0, 10 );
|
||||
self.bottle_spawn_location rotateyaw( 720, putouttime, putouttime * 0.5 );
|
||||
self waittill( "done_cycling" );
|
||||
self.bottle_spawn_location.angles = self.angles;
|
||||
self.bottle_spawn_location moveto( self.bottle_spawn_location.origin - v_float, putbacktime, putbacktime * 0.5 );
|
||||
self.bottle_spawn_location rotateyaw( 90, putbacktime, putbacktime * 0.5 );
|
||||
}
|
||||
|
||||
start_perk_bottle_cycling() //checked 100% parity
|
||||
{
|
||||
self endon("done_cycling");
|
||||
array_key = getarraykeys(level.perk_bottle_weapon_array);
|
||||
timer = 0;
|
||||
while(1)
|
||||
{
|
||||
for(i = 0; i < array_key.size; i++)
|
||||
{
|
||||
perk_bottle_list = array_key[i];
|
||||
if(isdefined(level.perk_bottle_weapon_array[perk_bottle_list].weapon))
|
||||
{
|
||||
model = getweaponmodel(level.perk_bottle_weapon_array[perk_bottle_list].weapon);
|
||||
}
|
||||
else
|
||||
{
|
||||
model = getweaponmodel(level.perk_bottle_weapon_array[perk_bottle_list].perk_bottle);
|
||||
}
|
||||
self.bottle_spawn_location setmodel(model);
|
||||
wait(0.2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
get_perk_weapon_model( perk ) //checked 100% parity
|
||||
{
|
||||
switch( perk )
|
||||
{
|
||||
case " _upgrade":
|
||||
case "specialty_armorvest":
|
||||
weapon = level.machine_assets[ "juggernog" ].weapon;
|
||||
break;
|
||||
case "specialty_quickrevive":
|
||||
case "specialty_quickrevive_upgrade":
|
||||
weapon = level.machine_assets[ "revive" ].weapon;
|
||||
break;
|
||||
case "specialty_fastreload":
|
||||
case "specialty_fastreload_upgrade":
|
||||
weapon = level.machine_assets[ "speedcola" ].weapon;
|
||||
break;
|
||||
case "specialty_rof":
|
||||
case "specialty_rof_upgrade":
|
||||
weapon = level.machine_assets[ "doubletap" ].weapon;
|
||||
break;
|
||||
case "specialty_longersprint":
|
||||
case "specialty_longersprint_upgrade":
|
||||
weapon = level.machine_assets[ "marathon" ].weapon;
|
||||
break;
|
||||
case "specialty_flakjacket":
|
||||
case "specialty_flakjacket_upgrade":
|
||||
weapon = level.machine_assets[ "divetonuke" ].weapon;
|
||||
break;
|
||||
case "specialty_deadshot":
|
||||
case "specialty_deadshot_upgrade":
|
||||
weapon = level.machine_assets[ "deadshot" ].weapon;
|
||||
break;
|
||||
case "specialty_additionalprimaryweapon":
|
||||
case "specialty_additionalprimaryweapon_upgrade":
|
||||
weapon = level.machine_assets[ "additionalprimaryweapon" ].weapon;
|
||||
break;
|
||||
case "specialty_scavenger":
|
||||
case "specialty_scavenger_upgrade":
|
||||
weapon = level.machine_assets[ "tombstone" ].weapon;
|
||||
break;
|
||||
case "specialty_finalstand":
|
||||
case "specialty_finalstand_upgrade":
|
||||
weapon = level.machine_assets[ "whoswho" ].weapon;
|
||||
break;
|
||||
}
|
||||
if ( isDefined( level._custom_perks[ perk ] ) && isDefined( level._custom_perks[ perk ].perk_bottle ) )
|
||||
{
|
||||
weapon = level._custom_perks[ perk ].perk_bottle;
|
||||
}
|
||||
return getweaponmodel( weapon );
|
||||
}
|
||||
|
||||
update_animation( animation )
|
||||
{
|
||||
switch( animation )
|
||||
{
|
||||
case "start":
|
||||
self clearanim( %root, 0.2 );
|
||||
self setanim( %o_zombie_dlc4_vending_diesel_turn_on, 1, 0.2, 1 );
|
||||
break;
|
||||
case "shut_down":
|
||||
self clearanim( %root, 0.2 );
|
||||
self setanim( %o_zombie_dlc4_vending_diesel_turn_off, 1, 0.2, 1 );
|
||||
break;
|
||||
case "in_use":
|
||||
self clearanim( %root, 0.2 );
|
||||
self setanim( %o_zombie_dlc4_vending_diesel_ballspin_loop, 1, 0.2, 1 );
|
||||
break;
|
||||
case "idle":
|
||||
self clearanim( %root, 0.2 );
|
||||
self setanim( %o_zombie_dlc4_vending_diesel_on_idle, 1, 0.2, 1 );
|
||||
break;
|
||||
default:
|
||||
self clearanim( %root, 0.2 );
|
||||
self setanim( %o_zombie_dlc4_vending_diesel_on_idle, 1, 0.2, 1 );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
machine_sounds() //checked 100% parity
|
||||
{
|
||||
level endon( "machine_think" );
|
||||
while ( 1 )
|
||||
{
|
||||
level waittill( "pmstrt" );
|
||||
rndprk_ent = spawn( "script_origin", self.origin );
|
||||
rndprk_ent stopsounds();
|
||||
rndprk_ent playsound( "zmb_rand_perk_start" );
|
||||
rndprk_ent playloopsound( "zmb_rand_perk_loop", 0.5 );
|
||||
state_switch = level waittill_any_return( "pmstop", "pmmove" );
|
||||
rndprk_ent stoploopsound( 1 );
|
||||
if ( state_switch == "pmstop" )
|
||||
{
|
||||
rndprk_ent playsound( "zmb_rand_perk_stop" );
|
||||
}
|
||||
else
|
||||
{
|
||||
rndprk_ent playsound( "zmb_rand_perk_leave" );
|
||||
}
|
||||
rndprk_ent delete();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
12
zm_tomb_patch/readme.md
Normal file
12
zm_tomb_patch/readme.md
Normal file
@ -0,0 +1,12 @@
|
||||
### The following gscs compile and run successfully with no known errors:
|
||||
```
|
||||
zm_tomb_patch/maps/mp/zombies/NoKnownErrors/_zm_perk_random.gsc
|
||||
```
|
||||
### The following scripts compile and run successfully with minor errors:
|
||||
|
||||
### The following scripts compile and run successfully with major errors:
|
||||
|
||||
### The following scripts compile and run serverside but clients cannot join due to exe_client_field_mismatch
|
||||
|
||||
### The following scripts compile but cause a minidump or other severe error:
|
||||
|
@ -1,17 +1,17 @@
|
||||
### The following gscs compile and run successfully with no known errors:
|
||||
```
|
||||
zm_transit_patch/maps/mp/zm_transit_utility.gsc
|
||||
zm_transit_patch/maps/mp/NoKnownErrors/zm_transit_utility.gsc
|
||||
```
|
||||
### The following scripts compile and run successfully with minor errors:
|
||||
|
||||
```
|
||||
zm_transit_patch/maps/mp/gametypes_zm/zgrief.gsc
|
||||
zm_transit_patch/maps/mp/MinorErrors/gametypes_zm/zgrief.gsc
|
||||
```
|
||||
|
||||
### The following scripts compile and run successfully with major errors:
|
||||
|
||||
```
|
||||
zm_transit_patch/maps/mp/zombies/_zm_weap_jetgun.gsc
|
||||
zm_transit_patch/maps/mp/zombies/MajorErrors/_zm_weap_jetgun.gsc
|
||||
```
|
||||
|
||||
### The following scripts compile and run serverside but clients cannot join due to exe_client_field_mismatch
|
||||
|
Loading…
x
Reference in New Issue
Block a user