1
0
mirror of https://github.com/JezuzLizard/BO2-Reimagined.git synced 2025-06-09 23:02:53 -05:00

Encounter on Nuketown: all perks drop at once

This commit is contained in:
Jbleezy
2024-01-15 01:59:26 -08:00
parent 29cef959a0
commit 2b1ed925a3
2 changed files with 185 additions and 0 deletions

View File

@ -5694,6 +5694,51 @@
"guid" "7A119D3A" "guid" "7A119D3A"
} }
{ {
"classname" "script_vehicle"
"vehicletype" "defaultvehicle"
"model" "defaultvehicle"
"origin" "-1511.5 -579 -52"
"targetname" "grief_perk_arrival_vehicle"
"spawnflags" "0"
"guid" "7A119D3A"
}
{
"classname" "script_vehicle"
"vehicletype" "defaultvehicle"
"model" "defaultvehicle"
"origin" "-1511.5 -579 -52"
"targetname" "grief_perk_arrival_vehicle"
"spawnflags" "0"
"guid" "7A119D3A"
}
{
"classname" "script_vehicle"
"vehicletype" "defaultvehicle"
"model" "defaultvehicle"
"origin" "-1511.5 -579 -52"
"targetname" "grief_perk_arrival_vehicle"
"spawnflags" "0"
"guid" "7A119D3A"
}
{
"classname" "script_vehicle"
"vehicletype" "defaultvehicle"
"model" "defaultvehicle"
"origin" "-1511.5 -579 -52"
"targetname" "grief_perk_arrival_vehicle"
"spawnflags" "0"
"guid" "7A119D3A"
}
{
"classname" "script_vehicle"
"vehicletype" "defaultvehicle"
"model" "defaultvehicle"
"origin" "-1511.5 -579 -52"
"targetname" "grief_perk_arrival_vehicle"
"spawnflags" "0"
"guid" "7A119D3A"
}
{
"target" "pf15_auto2911" "target" "pf15_auto2911"
"angles" "0 197.8 0" "angles" "0 197.8 0"
"targetname" "pf15_auto2903" "targetname" "pf15_auto2903"

View File

@ -98,6 +98,18 @@ perks_from_the_sky()
machine_triggers[4] trigger_off(); machine_triggers[4] trigger_off();
flag_wait("initial_blackscreen_passed"); flag_wait("initial_blackscreen_passed");
if (level.scr_zm_ui_gametype == "zgrief")
{
grief_bring_random_perks(machines, machine_triggers);
}
else
{
bring_random_perks(machines, machine_triggers);
}
}
bring_random_perks(machines, machine_triggers)
{
wait(randomintrange(10, 20)); wait(randomintrange(10, 20));
bring_random_perk(machines, machine_triggers); bring_random_perk(machines, machine_triggers);
@ -116,4 +128,132 @@ perks_from_the_sky()
wait_for_round_range(20, 21); wait_for_round_range(20, 21);
wait(randomintrange(60, 120)); wait(randomintrange(60, 120));
bring_random_perk(machines, machine_triggers); bring_random_perk(machines, machine_triggers);
}
grief_bring_random_perks(machines, machine_triggers)
{
level.grief_perk_arrival_vehicles = getentarray("grief_perk_arrival_vehicle", "targetname");
level.grief_perk_arrival_vehicles_ind = 0;
foreach (grief_perk_arrival_vehicle in level.grief_perk_arrival_vehicles)
{
grief_perk_arrival_vehicle setmodel("tag_origin");
}
level waittill("restart_round_start");
wait(randomintrange(10, 20));
grief_bring_random_perk(machines, machine_triggers);
grief_bring_random_perk(machines, machine_triggers);
grief_bring_random_perk(machines, machine_triggers);
grief_bring_random_perk(machines, machine_triggers);
grief_bring_random_perk(machines, machine_triggers);
}
grief_bring_random_perk(machines, machine_triggers)
{
count = machines.size;
if (count <= 0)
return;
index = randomintrange(0, count);
level thread grief_bring_perk(machines[index], machine_triggers[index]);
arrayremoveindex(machines, index);
arrayremoveindex(machine_triggers, index);
}
grief_bring_perk(machine, trigger)
{
initial_perk = level.grief_perk_arrival_vehicles_ind == 0;
perk_arrival_vehicle = level.grief_perk_arrival_vehicles[level.grief_perk_arrival_vehicles_ind];
level.grief_perk_arrival_vehicles_ind++;
if (initial_perk)
{
playsoundatposition("zmb_perks_incoming_quad_front", (0, 0, 0));
playsoundatposition("zmb_perks_incoming_alarm", (-2198, 486, 327));
}
is_doubletap = 0;
is_sleight = 0;
is_revive = 0;
is_jugger = 0;
machine setclientfield("clientfield_perk_intro_fx", 1);
machine.fx = spawn("script_model", machine.origin);
machine.fx playloopsound("zmb_perks_incoming_loop", 6);
machine.fx thread perk_incoming_sound();
machine.fx.angles = machine.angles;
machine.fx setmodel("tag_origin");
machine.fx linkto(machine);
machine linkto(perk_arrival_vehicle, "tag_origin", (0, 0, 0), (0, 0, 0));
start_node = getvehiclenode("perk_arrival_path_" + machine.script_int, "targetname");
perk_arrival_vehicle perk_follow_path(start_node);
machine unlink();
offset = (0, 0, 0);
if (issubstr(machine.targetname, "doubletap"))
{
forward_dir = anglestoforward(machine.original_angles + vectorscale((0, -1, 0), 90.0));
offset = vectorscale(forward_dir * -1, 20);
is_doubletap = 1;
}
else if (issubstr(machine.targetname, "sleight"))
{
forward_dir = anglestoforward(machine.original_angles + vectorscale((0, -1, 0), 90.0));
offset = vectorscale(forward_dir * -1, 5);
is_sleight = 1;
}
else if (issubstr(machine.targetname, "revive"))
{
forward_dir = anglestoforward(machine.original_angles + vectorscale((0, -1, 0), 90.0));
offset = vectorscale(forward_dir * -1, 10);
trigger.blocker_model hide();
is_revive = 1;
}
else if (issubstr(machine.targetname, "jugger"))
{
forward_dir = anglestoforward(machine.original_angles + vectorscale((0, -1, 0), 90.0));
offset = vectorscale(forward_dir * -1, 10);
is_jugger = 1;
}
if (!is_revive)
trigger.blocker_model delete();
machine.original_pos = machine.original_pos + (offset[0], offset[1], 0);
machine.origin = machine.original_pos;
machine.angles = machine.original_angles;
if (is_revive)
{
level.quick_revive_final_pos = machine.origin;
level.quick_revive_final_angles = machine.angles;
}
machine.fx stoploopsound(0.5);
machine setclientfield("clientfield_perk_intro_fx", 0);
playsoundatposition("zmb_perks_incoming_land", machine.origin);
trigger trigger_on();
machine thread bring_perk_landing_damage();
machine.fx unlink();
machine.fx delete();
machine notify(machine.turn_on_notify);
level notify(machine.turn_on_notify);
machine vibrate(vectorscale((0, -1, 0), 100.0), 0.3, 0.4, 3);
machine playsound("zmb_perks_power_on");
machine maps\mp\zombies\_zm_perks::perk_fx(undefined, 1);
if (is_revive)
{
level.revive_machine_spawned = 1;
machine thread maps\mp\zombies\_zm_perks::perk_fx("revive_light");
}
else if (is_jugger)
machine thread maps\mp\zombies\_zm_perks::perk_fx("jugger_light");
else if (is_doubletap)
machine thread maps\mp\zombies\_zm_perks::perk_fx("doubletap_light");
else if (is_sleight)
machine thread maps\mp\zombies\_zm_perks::perk_fx("sleight_light");
} }