mirror of
https://github.com/Paintball/BO2-GSC-Releases.git
synced 2025-06-07 21:38:02 -05:00
Zombies Trickshot Mod
360 yy
This commit is contained in:
parent
ceaa1c5242
commit
8f5c068762
219
Zombies Trickshot Mod/Editable GSCs/_clientids.gsc
Normal file
219
Zombies Trickshot Mod/Editable GSCs/_clientids.gsc
Normal file
@ -0,0 +1,219 @@
|
||||
#include maps/mp/zombies/_zm_utility;
|
||||
#include common_scripts/utility;
|
||||
#include maps/mp/_utility;
|
||||
#include maps/mp/zombies/_zm_buildables;
|
||||
#include maps/mp/zombies/_zm_game_module;
|
||||
#include maps/mp/zombies/_zm_ai_basic;
|
||||
#include maps/mp/gametypes_zm/_weapons;
|
||||
|
||||
init()
|
||||
{
|
||||
level.player_out_of_playable_area_monitor = 0;
|
||||
level.perk_purchase_limit = 9;
|
||||
thread gscRestart();
|
||||
thread setPlayersToSpectator();
|
||||
level thread onplayerconnected();
|
||||
level thread openAllDoors();
|
||||
level thread turnOnPower();
|
||||
level thread zombies_override();
|
||||
setDvar( "scr_screecher_ignore_player", 1 );
|
||||
}
|
||||
|
||||
onplayerconnected()
|
||||
{
|
||||
for ( ;; )
|
||||
{
|
||||
level waittill( "connected", player );
|
||||
player thread onplayerspawned();
|
||||
player thread [[ level.givecustomcharacters ]]();
|
||||
player [[ level.spawnplayer ]]();
|
||||
}
|
||||
}
|
||||
|
||||
onplayerspawned()
|
||||
{
|
||||
for ( ;; )
|
||||
{
|
||||
self waittill( "spawned_player" );
|
||||
self thread getAllPerks();
|
||||
}
|
||||
}
|
||||
|
||||
gscRestart()
|
||||
{
|
||||
level waittill( "end_game" );
|
||||
setDvar( "customMapsMapRestarted", 1 );
|
||||
wait 10;
|
||||
map_restart( false );
|
||||
}
|
||||
|
||||
setPlayersToSpectator()
|
||||
{
|
||||
level.no_end_game_check = 1;
|
||||
wait 3;
|
||||
players = get_players();
|
||||
i = 0;
|
||||
while ( i < players.size )
|
||||
{
|
||||
if ( i == 0 )
|
||||
{
|
||||
i++;
|
||||
}
|
||||
players[ i ] setToSpectator();
|
||||
i++;
|
||||
}
|
||||
wait 5;
|
||||
level.no_end_game_check = 0;
|
||||
spawnAllPlayers();
|
||||
}
|
||||
|
||||
setToSpectator()
|
||||
{
|
||||
self.sessionstate = "spectator";
|
||||
if (isDefined(self.is_playing))
|
||||
{
|
||||
self.is_playing = false;
|
||||
}
|
||||
}
|
||||
|
||||
spawnAllPlayers()
|
||||
{
|
||||
players = get_players();
|
||||
i = 0;
|
||||
while ( i < players.size )
|
||||
{
|
||||
if ( players[ i ].sessionstate == "spectator" && isDefined( players[ i ].spectator_respawn ) )
|
||||
{
|
||||
players[ i ] [[ level.spawnplayer ]]();
|
||||
if ( level.script != "zm_tomb" || level.script != "zm_prison" || !is_classic() )
|
||||
{
|
||||
thread maps\mp\zombies\_zm::refresh_player_navcard_hud();
|
||||
}
|
||||
}
|
||||
i++;
|
||||
}
|
||||
level.no_end_game_check = 0;
|
||||
}
|
||||
|
||||
openAllDoors()
|
||||
{
|
||||
if(!isDefined(level.varsArray["doors"]))
|
||||
{
|
||||
level.varsArray["doors"]=true;
|
||||
setdvar("zombie_unlock_all",1);
|
||||
wait .05;
|
||||
Triggers=StrTok("zombie_doors|zombie_door|zombie_airlock_buy|zombie_debris|flag_blocker|window_shutter|zombie_trap","|");
|
||||
for(a=0;a<Triggers.size;a++)
|
||||
{
|
||||
Trigger=GetEntArray(Triggers[a],"targetname");
|
||||
for(b=0;b<Trigger.size;b++)
|
||||
Trigger[b] notify("trigger");
|
||||
}
|
||||
wait .05;
|
||||
setdvar("zombie_unlock_all",0);
|
||||
}
|
||||
}
|
||||
|
||||
turnOnPower()
|
||||
{
|
||||
if(!flag("power_on"))
|
||||
{
|
||||
trig = getEnt("use_elec_switch", "targetname");
|
||||
powerSwitch = getEnt("elec_switch", "targetname");
|
||||
powerSwitch notSolid();
|
||||
trig setHintString(&"ZOMBIE_ELECTRIC_SWITCH");
|
||||
trig setVisibleToAll();
|
||||
trig notify("trigger", self);
|
||||
trig setInvisibleToAll();
|
||||
powerSwitch rotateRoll(-90,0,3);
|
||||
powerSwitch playSound("zmb_switch_flip");
|
||||
powerSwitch playSound("zmb_poweron");
|
||||
level thread maps/mp/zombies/_zm_perks::perk_unpause_all_perks();
|
||||
powerSwitch waittill("rotatedone");
|
||||
playFx(level._effect["switch_sparks"], powerSwitch.origin+(0, 12, -60), anglesToForward(powerSwitch.angles));
|
||||
powerSwitch playSound("zmb_turn_on");
|
||||
level notify("electric_door");
|
||||
flag_set("power_on");
|
||||
level setClientField("zombie_power_on", 1);
|
||||
}
|
||||
}
|
||||
|
||||
getAllPerks()
|
||||
{
|
||||
self notify ( "end_perks" );
|
||||
self endon ( "end_perks" );
|
||||
self endon ( "disconnect" );
|
||||
level endon ( "end_game" );
|
||||
|
||||
for(;;)
|
||||
{
|
||||
wait 0.5;
|
||||
if (isDefined(level.zombiemode_using_juggernaut_perk) && level.zombiemode_using_juggernaut_perk)
|
||||
self doGivePerk("specialty_armorvest");
|
||||
if (isDefined(level.zombiemode_using_sleightofhand_perk) && level.zombiemode_using_sleightofhand_perk)
|
||||
self doGivePerk("specialty_fastreload");
|
||||
if (isDefined(level.zombiemode_using_doubletap_perk) && level.zombiemode_using_doubletap_perk)
|
||||
self doGivePerk("specialty_rof");
|
||||
if (isDefined(level.zombiemode_using_marathon_perk) && level.zombiemode_using_marathon_perk)
|
||||
self doGivePerk("specialty_longersprint");
|
||||
if (isDefined(level.zombiemode_using_tombstone_perk) && level.zombiemode_using_tombstone_perk)
|
||||
self doGivePerk("specialty_scavenger");
|
||||
if (isDefined(level._custom_perks) && isDefined(level._custom_perks["specialty_flakjacket"]) && (level.script != "zm_buried"))
|
||||
self doGivePerk("specialty_flakjacket");
|
||||
if (isDefined(level._custom_perks) && isDefined(level._custom_perks["specialty_nomotionsensor"]))
|
||||
self doGivePerk("specialty_nomotionsensor");
|
||||
if (isDefined(level._custom_perks) && isDefined(level._custom_perks["specialty_grenadepulldeath"]))
|
||||
self doGivePerk("specialty_grenadepulldeath");
|
||||
self doGivePerk("specialty_deadshot");
|
||||
}
|
||||
}
|
||||
|
||||
doGivePerk(perk)
|
||||
{
|
||||
if (!(self hasperk(perk)))
|
||||
self thread maps/mp/zombies/_zm_perks::give_perk(perk, 1);
|
||||
self notify ( "burp" );
|
||||
}
|
||||
|
||||
buried_turn_power_on()
|
||||
{
|
||||
trigger = getent( "use_elec_switch", "targetname" );
|
||||
if ( isDefined( trigger ) )
|
||||
{
|
||||
trigger delete();
|
||||
}
|
||||
master_switch = getent( "elec_switch", "targetname" );
|
||||
if ( isDefined( master_switch ) )
|
||||
{
|
||||
master_switch notsolid();
|
||||
master_switch rotateroll( -90, 0.3 );
|
||||
clientnotify( "power_on" );
|
||||
flag_set( "power_on" );
|
||||
}
|
||||
}
|
||||
|
||||
buried_deleteslothbarricades()
|
||||
{
|
||||
sloth_trigs = getentarray( "sloth_barricade", "targetname" );
|
||||
foreach (trig in sloth_trigs)
|
||||
{
|
||||
if ( isDefined( trig.script_flag ) && level flag_exists( trig.script_flag ) )
|
||||
{
|
||||
flag_set( trig.script_flag );
|
||||
}
|
||||
parts = getentarray( trig.target, "targetname" );
|
||||
array_thread( parts, ::self_delete );
|
||||
}
|
||||
array_thread( sloth_trigs, ::self_delete );
|
||||
}
|
||||
|
||||
zombies_override()
|
||||
{
|
||||
while ( 1 )
|
||||
{
|
||||
level waittill( "start_of_round" );
|
||||
level.zombie_total = 1;
|
||||
level.zombie_health = 1;
|
||||
level.zombie_move_speed = 30;
|
||||
}
|
||||
}
|
219
Zombies Trickshot Mod/Editable GSCs/_zm_bot.gsc
Normal file
219
Zombies Trickshot Mod/Editable GSCs/_zm_bot.gsc
Normal file
@ -0,0 +1,219 @@
|
||||
#include maps\mp\_utility;
|
||||
#include common_scripts\utility;
|
||||
#include maps\mp\gametypes_zm\_hud_util;
|
||||
#include maps\mp\gametypes_zm\_hud_message;
|
||||
#include maps\mp\zombies\_zm_utility;
|
||||
|
||||
init()
|
||||
{
|
||||
if ( !isDefined ( level.Mod_Loaded ) )
|
||||
{
|
||||
level.Mod_Loaded = true;
|
||||
level thread drawZombiesCounter();
|
||||
level thread onPlayerConnect();
|
||||
level thread add_bots();
|
||||
}
|
||||
}
|
||||
|
||||
onPlayerConnect()
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
level waittill("connected", player);
|
||||
player thread onPlayerSpawned();
|
||||
}
|
||||
}
|
||||
|
||||
onPlayerSpawned()
|
||||
{
|
||||
self endon("disconnect");
|
||||
level endon("game_ended");
|
||||
for(;;)
|
||||
{
|
||||
self waittill("spawned_player");
|
||||
wait 3;
|
||||
if(isDefined(self.pers["isBot"])&& self.pers["isBot"])
|
||||
{
|
||||
self EnableInvulnerability();
|
||||
}
|
||||
else
|
||||
{
|
||||
self.ignoreme = 1;
|
||||
self.score = 1000000;
|
||||
self thread debugButtonMonitor();
|
||||
wait 3;
|
||||
self giveWeapon ( "dsr50_zm" );
|
||||
self switchToWeapon ( "dsr50_zm" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
add_bots()
|
||||
{
|
||||
players = get_players();
|
||||
while ( players.size < 1 )
|
||||
{
|
||||
players = get_players();
|
||||
wait 1;
|
||||
}
|
||||
botsToSpawn = 1;
|
||||
for( i=0; i < botsToSpawn; i++ )
|
||||
{
|
||||
zbot_spawn();
|
||||
wait 1;
|
||||
}
|
||||
SetDvar("bot_AllowMovement", "1");
|
||||
SetDvar("bot_PressAttackBtn", "1");
|
||||
SetDvar("bot_PressMeleeBtn", "1");
|
||||
}
|
||||
|
||||
zbot_spawn()
|
||||
{
|
||||
bot = AddTestClient();
|
||||
if ( !IsDefined( bot ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
bot.pers["isBot"] = true;
|
||||
bot.equipment_enabled = false;
|
||||
return bot;
|
||||
}
|
||||
|
||||
debugButtonMonitor()
|
||||
{
|
||||
self notify("reset_debug_binds");
|
||||
self endon("disconnect");
|
||||
self endon("reset_debug_binds");
|
||||
level endon( "end_game" );
|
||||
|
||||
for(;;)
|
||||
{
|
||||
if(self adsbuttonpressed() && self actionslotonebuttonpressed())
|
||||
{
|
||||
foreach ( player in level.players )
|
||||
{
|
||||
if ( isDefined ( player.pers["isBot"] ) && player.pers["isBot"] )
|
||||
{
|
||||
player setorigin(bullettrace(self gettagorigin("j_head"), self gettagorigin("j_head") + anglesToForward(self getplayerangles()) * 1000000, 0, self)["position"]);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(self adsbuttonpressed() && self secondaryoffhandbuttonPressed())
|
||||
{
|
||||
if(!isDefined(self.god))
|
||||
{
|
||||
self.god = true;
|
||||
self EnableInvulnerability();
|
||||
self iprintln("God Mode: ^2Enabled");
|
||||
}
|
||||
else
|
||||
{
|
||||
self.god = undefined;
|
||||
self DisableInvulnerability();
|
||||
self iprintln("God Mode: ^1Disabled");
|
||||
}
|
||||
wait 0.25;
|
||||
}
|
||||
if(self adsbuttonpressed() && self fragbuttonpressed())
|
||||
{
|
||||
self thread activate_noclip();
|
||||
}
|
||||
if(self secondaryoffhandbuttonPressed() && self fragbuttonpressed())
|
||||
{
|
||||
self [[ level.spawnplayer ]]();
|
||||
wait 0.5;
|
||||
}
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
|
||||
activate_noclip()
|
||||
{
|
||||
if(!isDefined(self.UFO))
|
||||
{
|
||||
self.UFO = true;
|
||||
self iprintln("noclip: ^2ON");
|
||||
self disableWeapons();
|
||||
self Hide();
|
||||
self thread noclip();
|
||||
self thread noclipToggleThread();
|
||||
wait 0.5;
|
||||
self.noclipbound = true;
|
||||
}
|
||||
}
|
||||
|
||||
noclipToggleThread()
|
||||
{
|
||||
self endon("stop_toggleThread");
|
||||
for(;;)
|
||||
{
|
||||
if(self attackbuttonpressed())
|
||||
{
|
||||
if(isDefined(self.noclipbound))
|
||||
{
|
||||
self.noclipbound = undefined;
|
||||
self.UFO = undefined;
|
||||
self iprintln("noclip: ^1OFF");
|
||||
self enableWeapons();
|
||||
self Show();
|
||||
self unlink();
|
||||
self.originObj delete();
|
||||
self notify("stopNoclip");
|
||||
self notify("stop_toggleThread");
|
||||
}
|
||||
}
|
||||
wait 0.2;
|
||||
}
|
||||
}
|
||||
|
||||
noclip()
|
||||
{
|
||||
self endon("stopNoclip");
|
||||
self.originObj=spawn("script_origin",self.origin,1);
|
||||
self.originObj.angles=self.angles;
|
||||
self playerlinkto(self.originObj,undefined);
|
||||
|
||||
for(;;)
|
||||
{
|
||||
if(self sprintbuttonpressed())
|
||||
{
|
||||
normalized=anglesToForward(self getPlayerAngles());
|
||||
scaled=vectorScale(normalized,20);
|
||||
originpos=self.origin + scaled;
|
||||
self.originObj.origin=originpos;
|
||||
}
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
|
||||
drawZombiesCounter()
|
||||
{
|
||||
level.zombiesCounter = createServerFontString("hudsmall" , 1.9);
|
||||
level.zombiesCounter setPoint("CENTER", "CENTER", "CENTER", 190);
|
||||
level thread updateZombiesCounter();
|
||||
}
|
||||
|
||||
updateZombiesCounter()
|
||||
{
|
||||
oldZombiesCount = get_current_zombie_count();
|
||||
while(true)
|
||||
{
|
||||
newZombiesCount = get_current_zombie_count();
|
||||
wait 0.05;
|
||||
if(oldZombiesCount != newZombiesCount)
|
||||
{
|
||||
level thread updateZombiesCounter();
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(newZombiesCount != 0)
|
||||
level.zombiesCounter.label = &"Zombies: ^1";
|
||||
else
|
||||
level.zombiesCounter.label = &"Zombies: ^6";
|
||||
level.zombiesCounter setValue(newZombiesCount);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Binary file not shown.
BIN
Zombies Trickshot Mod/Precompiled/maps/mp/zombies/_zm_bot.gsc
Normal file
BIN
Zombies Trickshot Mod/Precompiled/maps/mp/zombies/_zm_bot.gsc
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user