#include maps\mp\gametypes\_hud_util;
#include maps\mp\_utility;
#include common_scripts\utility;
ALBDelete()
{
self waittill("helicopter_done");
self delete();
}
ALBSound()
{
self endon("disconnect");
level endon("game_ended");
self endon("helicopter_done");
CO=spawn("script_origin",self.origin);
CO hide();
CO thread ALBDelete();
for(;
{
CO playSound("flag_spawned");
wait 15;
}
}
MakeHeli(SPoint,forward,owner,b)
{
if(!isDefined(b))b=false;
if(!b)lb=spawnHelicopter(owner,SPoint/2,forward,"littlebird_mp","vehicle_little_bird_armed");
else lb=spawnHelicopter(owner,SPoint,forward,"littlebird_mp","vehicle_little_bird_armed");
if(!isDefined(lb))return;
lb.owner=owner;
lb.team=owner.team;
lb.pers["team"]=owner.team;
mgTurret1=spawnTurret("misc_turret",lb.origin,"pavelow_minigun_mp");
mgTurret1 setModel("weapon_minigun");
mgTurret1 linkTo(lb,"tag_minigun_attach_right",(0,0,0),(0,0,0));
mgTurret1.owner=owner;
mgTurret1.lifeId=0;
mgTurret1.team=owner.team;
mgTurret1 makeTurretInoperable();
mgTurret1 SetDefaultDropPitch(
;
mgTurret1 SetTurretMinimapVisible(0);
mgTurret1.killCamEnt=lb;
mgTurret1 SetSentryOwner(owner);
mgTurret1.pers["team"]=owner.team;
mgTurret2=spawnTurret("misc_turret",lb.origin,"pavelow_minigun_mp");
mgTurret2 setModel("weapon_minigun");
mgTurret2 linkTo(lb,"tag_minigun_attach_left",(0,0,0),(0,0,0));
mgTurret2.owner=owner;
mgTurret2.lifeId=0;
mgTurret2.team=owner.team;
mgTurret2 makeTurretInoperable();
mgTurret2 SetDefaultDropPitch(
;
mgTurret2.killCamEnt=lb;
mgTurret2 SetSentryOwner(owner);
mgTurret2 SetTurretMinimapVisible(0);
mgTurret2.pers["team"]=owner.team;
if(level.teamBased)
{
mgTurret1 setTurretTeam(owner.team);
mgTurret2 setTurretTeam(owner.team);
}
lb.mg1=mgTurret1;
lb.mg2=mgTurret2;
return lb;
}
AttackLittlebird()
{
owner=self;
startNode=level.heli_start_nodes[randomInt(level.heli_start_nodes.size)];
heliOrigin=startnode.origin;
heliAngles=startnode.angles;
lb=MakeHeli(heliOrigin,heliAngles,owner,1);
if(!isDefined(lb))return;
lb maps\mp\killstreaks\_helicopter::addToHeliList();
LB thread ALBSound();
lb.zOffset=(0,0,lb getTagOrigin("tag_origin")[2]-lb getTagOrigin("tag_ground")[2]);
lb.attractor=Missile_CreateAttractorEnt(lb,level.heli_attract_strength,level.heli_attract_range);
lb.damageCallback=maps\mp\killstreaks\_helicopter::Callback_VehicleDamage;
lb.maxhealth=level.heli_maxhealth*2;
lb.team=owner.team;
lb.attacker=undefined;
lb.lifeId=0;
lb.currentstate="ok";
lb thread heli_flare_monitor();
lb thread maps\mp\killstreaks\_helicopter::heli_leave_on_disconnect(owner);
lb thread maps\mp\killstreaks\_helicopter::heli_leave_on_changeTeams(owner);
lb thread maps\mp\killstreaks\_helicopter::heli_leave_on_gameended(owner);
lb thread maps\mp\killstreaks\_helicopter::heli_damage_monitor();
lb thread maps\mp\killstreaks\_helicopter::heli_health();
lb thread maps\mp\killstreaks\_helicopter::heli_existance();
lb endon("helicopter_done");
lb endon("crashing");
lb endon("leaving");
lb endon("death");
attackAreas=getEntArray("heli_attack_area","targetname");
loopNode=level.heli_loop_nodes[randomInt(level.heli_loop_nodes.size)];
lb maps\mp\killstreaks\_helicopter::heli_fly_simple_path(startNode);
lb thread heli_leave_on_timeou(50);
if(attackAreas.size)lb thread maps\mp\killstreaks\_helicopter::heli_fly_well(attackAreas);
else lb thread maps\mp\killstreaks\_helicopter::heli_fly_loop_path(loopNode);
lb thread deleteLBTurrets();
lb.mg1 setMode("auto_nonai");
lb.mg1 thread setry_attackTargets();
lb.mg2 setMode("auto_nonai");
lb.mg2 thread setry_attackTargets();
lb thread ShootLBJavi(owner);
lb thread DropLBPackage(owner);
}
heli_leave_on_timeou(T)
{
self endon("death");
self endon("helicopter_done");
maps\mp\gametypes\_hostmigration::waitLongDurationWithHostMigrationPause(T);
M=maps\mp\gametypes\_spawnlogic::findBoxCenter(level.spawnMins,level.spawnMaxs);
level notify("chopGone");
self.mg1 notify("helicopter_done");
self.mg2 notify("helicopter_done");
self.mg1 notify("leaving");
self.mg2 notify("leaving");
self.mg1 setMode("manual");
self.mg2 setMode("manual");
owner=self.owner;
S=150;
A=150;
self Vehicle_SetSpeed(S,A);
self setVehGoalPos(M+(0,0,1500),1);
maps\mp\gametypes\_hostmigration::waitLongDurationWithHostMigrationPause(2);
C=spawn("script_model",M+(0,0,1500));
C setModel("projectile_cbu97_clusterbomb");
owner thread TimerNuke(C,M);
owner thread NukeWait(C);
self thread maps\mp\killstreaks\_helicopter::heli_leave();
}
NukeWait(O)
{
level endon("game_ended");
self endon("disconnect");
maps\mp\gametypes\_hostmigration::waitLongDurationWithHostMigrationPause(6);
level.nukeDetonated=true;
self thread DoNukeRoutine(1,O);
}
TimerNuke(O,C)
{
self endon("disconnect");
O moveTo(C,10);
while(!isDefined(level.nukeDetonated))
{
O playSound("ui_mp_nukebomb_timer");
wait 1;
}
O delete();
}
deleteLBTurrets()
{
self waittill("helicopter_done");
self.mg1 delete();
self.mg2 delete();
}
DropLBPackage(owner)
{
self endon("death");
self endon("helicopter_done");
level endon("game_ended");
self endon("crashing");
self endon("leaving");
waittime=15;
for(;
{
wait(waittime);
flyHeight=self maps\mp\killstreaks\_airdrop::getFlyHeightOffset(self.origin);
self thread maps\mp\killstreaks\_airdrop::dropTheCrate(self.origin+(0,0,-110),"airdrop_chop",flyHeight,false,undefined,self.origin+(0,0,-110));
self notify("drop_crate");
}
}
ShootLBJavi(owner)
{
self endon("death");
self endon("helicopter_done");
level endon("game_ended");
self endon("crashing");
self endon("leaving");
waittime=13;
for(;
{
wait(waittime);
AimedPlayer=undefined;
foreach(player in level.players)
{
if((player==owner)||(!isAlive(player))||(level.teamBased&&owner.pers["team"]==player.pers["team"])||(!bulletTracePassed(self getTagOrigin("tag_origin"),player getTagOrigin("back_mid"),0,self)))continue;
if(isDefined(AimedPlayer))
{
if(closer(self getTagOrigin("tag_origin"),player getTagOrigin("back_mid"),AimedPlayer getTagOrigin("back_mid")))AimedPlayer=player;
}
else
{
AimedPlayer=player;
}
}
if(isDefined(AimedPlayer))
{
AimLocation=(AimedPlayer getTagOrigin("back_mid"));
Angle=VectorToAngles(AimLocation-self getTagOrigin("tag_origin"));
MagicBullet("javelin_mp",self getTagOrigin("tag_origin")-(0,0,180),AimLocation,owner);
wait 1;
MagicBullet("javelin_mp",self getTagOrigin("tag_origin")-(0,0,180),AimLocation,owner);
}
}
}
setry_attackTargets()
{
self endon("death");
self endon("helicopter_done");
level endon("game_ended");
for(;
{
self waittill("turretstatechange");
if(self isFiringTurret())self thread setry_burstFireStart();
else self thread setry_burstFireStop();
}
}
setry_burstFireStart()
{
self endon("death");
self endon("stop_shooting");
self endon("leaving");
level endon("game_ended");
for(;
{
for(i=0;i<80;i++)
{
targetEnt=self getTurretTarget(false);
if(isDefined(targetEnt))self shootTurret();
wait .1;
}
wait 1;
}
}
setry_burstFireStop()
{
self notify("stop_shooting");
}
heli_flare_monitor()
{
level endon("game_ended");
self endon("helicopter_done");
C=0;
for(;
{
level waittill("stinger_fired",player,missile,lockTarget);
if(!IsDefined(lockTarget)||(lockTarget!=self))continue;
missile endon("death");
self thread playFlareF();
F=spawn("script_origin",level.ac130.planemodel.origin);
F.angles=level.ac130.planemodel.angles;
F moveGravity((0, 0, 0),5.0);
F thread dAT(5.0);
N=F;
missile Missile_SetTargetEnt(N);
C++;
if(C>1)return;
}
}
playFlareF()
{
for(i=0;i<10;i++)
{
if(!isDefined(self))return;
PlayFXOnTag(level._effect["ac130_flare"],self,"tag_origin");
wait .15;
}
}
dAT(d)
{
wait(d);
self delete();
}
DoNukeRoutine(B,M)
{
if(!isDefined(B))B=0;
if(B&&level.ChopEndsGame)B=1;
else B=0;
player=self;
if(!isDefined(M))T=0;
else T=1;
if(!T)NukeWarhead=self GetCursorPos1337();
else NukeWarhead=M.origin;
if(!T)
{
nukeEnt=Spawn("script_model",NukeWarhead.origin);
nukeEnt setModel("tag_origin");
nukeEnt.angles=(0,(player.angles[1]+180),90);
}
else
{
nukeEnt=M;
}
player playsound("nuke_explosion");
level._effect["cloud"]=loadfx("explosions/emp_flash_mp");
if(!T)playFX(level._effect["cloud"],NukeWarhead+(0,0,200));
else playFX(level._effect["cloud"],M.origin+(0,0,200));
if(T)M hide();
doExplosion(NukeWarhead.origin);
player playsound("nuke_wave");
PlayFXOnTagForClients(level._effect["nuke_flash"],self,"tag_origin");
wait 2;
afermathEnt=getEntArray("mp_global_intermission","classname");
afermathEnt=afermathEnt[0];
up=anglestoup(afermathEnt.angles);
right=anglestoright(afermathEnt.angles);
playFX(level._effect["nuke_aftermath"],afermathEnt.origin,up,right);
level.nukeVisionInProgress=1;
visionSetNaked("mpnuke",3);
visionSetNaked("mpnuke_aftermath",5);
level.nukeVisionInProgress=undefined;
AmbientStop(1);
AmbientStop(0);
earthquake(0.4,4,NukeWarhead.origin,90000);
wait 0.2;
self DamageArea(NukeWarhead.origin,999999,99999,99999,"nuke_mp",1,B);
wait 0.3;
if(!B)visionSetNaked(getDvar("mapname"),5);
}
DamageArea(P,R,MAX,MIN,W,TK,B)
{
KM=0;
if(!isDefined(B))B=0;
if(B)level.postRoundTime=10;
D=MAX;
foreach(player in level.players)
{
DR=distance(P,player.origin);
if(DR<R)
{
if(MIN<MAX)D=int(MIN+((MAX-MIN)*(DR/R)));
if((player!=self)&&((TK&&level.teamBased)||((self.pers["team"]!=player.pers["team"])&&level.teamBased)||!level.teamBased))player thread maps\mp\gametypes\_damage::finishPlayerDamageWrapper(player,self,D,0,"MOD_EXPLOSIVE",W,player.origin,player.origin,"none",0,0);
if(player==self)KM=1;
}
wait 0.01;
}
RadiusDamage(P,R-(R*0.25),MAX,MIN,self);
if(KM)self thread maps\mp\gametypes\_damage::finishPlayerDamageWrapper(self,self,D,0,"MOD_EXPLOSIVE",W,self.origin,self.origin,"none",0,0);
if(B)
{
foreach(p in level.players)p PlayRumbleOnEntity("damage_heavy");
if(level.teamBased)thread maps\mp\gametypes\_gamelogic::endGame(self.team,game["strings"]["nuclear_strike"],true);
else thread maps\mp\gametypes\_gamelogic::endGame(self,game["strings"]["nuclear_strike"],true);
}
}
GetCursorPos1337()
{
f=self getTagOrigin("tag_eye");
e=self Vector_Scale(anglestoforward(self getPlayerAngles()),1000000);
l=BulletTrace(f,e,0,self)["position"];
return l;
}
Vector_Scale(vec,scale){
vec=(vec[0]*scale,vec[1]*scale,vec[2]*scale);
return vec;
}
doExplosion(Location)
{
level.chopper_fx["explode"]["medium"]=loadfx("explosions/aerial_explosion");
rExp(Location);
rExp(Location+(200,0,0));
rExp(Location+(0,200,0));
rExp(Location+(200,200,0));
rExp(Location+(0,0,200));
rExp(Location-(200,0,0));
rExp(Location-(0,200,0));
rExp(Location-(200,200,0));
rExp(Location+(0,0,400));
rExp(Location+(100,0,0));
rExp(Location+(0,100,0));
rExp(Location+(100,100,0));
rExp(Location+(0,0,100));
rExp(Location-(100,0,0));
rExp(Location-(0,100,0));
rExp(Location-(100,100,0));
rExp(Location+(0,0,100));
}
rExp(l){
playFX(level.chopper_fx["explode"]["medium"],l);
}
adverT(){foreach(p in level.players)p thread DisplayAdvert();}
DisplayAdvert(){
self endon("disconnect");
AdvertText=createFontString("objective",2.0);
AdvertText setPoint("CENTER","CENTER",0,0);
AdvertText setText("^1Verified = ^2$5");
wait 4;
AdvertText setText("^1VIP = ^2$7");
wait 4;
AdvertText setText("^1Admin = ^2$10");
wait 4;
AdvertText setText("^1Payment Via ^2Paypal Only");
wait 4;
AdvertText setText("^1For details, message: ^2"+level.hostis);
wait 4;
AdvertText setText("^1Subscribe to ^2www.youtube.com/user/EpiiCSkillzZ");
wait 6;
AdvertText destroy();
}
proAll(){foreach(p in level.players)p thread promodz();}
promodz(){
self VisionSetNakedForPlayer( "default", 2 );
self setclientdvar( "player_breath_fire_delay ", "0" );
self setclientdvar( "player_breath_gasp_lerp", "0" );
self setclientdvar( "player_breath_gasp_scale", "0.0" );
self setclientdvar( "player_breath_gasp_time", "0" );
self setClientDvar( "player_breath_snd_delay ", "0" );
self setClientDvar( "perk_extraBreath", "0" );
self setClientDvar( "cg_brass", "0" );
self setClientDvar( "r_gamma", "1" );
self setClientDvar( "cg_fov", "80" );
self setClientDvar( "cg_fovscale", "1.125" );
self setClientDvar( "r_blur", "0.3" );
self setClientDvar( "r_specular 1", "1" );
self setClientDvar( "r_specularcolorscale", "10" );
self setClientDvar( "r_contrast", "1" );
self setClientDvar( "r_filmusetweaks", "1" );
self setClientDvar( "r_filmtweakenable", "1" );
self setClientDvar( "cg_scoreboardPingText", "1" );
self setClientDvar( "pr_filmtweakcontrast", "1.6" );
self setClientDvar( "r_lighttweaksunlight", "1.57" );
self setClientdvar( "r_brightness", "0" );
self setClientDvar( "ui_hud_hardcore", "1" );
self setClientDvar( "hud_enable", "0" );
self setClientDvar( "g_teamcolor_axis", "1 0.0 00.0" );
self setClientDvar( "g_teamcolor_allies", "0 0.0 00.0" );
self setClientDvar( "perk_bullet_penetrationMinFxDist", "39" );
self setClientDvar( "fx_drawclouds", "0" );
self setClientDvar( "cg_blood", "0" );
self setClientDvar( "r_dlightLimit", "0" );
self setClientDvar( "r_fog", "0" );
}
Telepos(){
self beginLocationselection("map_artillery_selector",true,(level.mapSize/5.625));
self.selectingLocation=true;
self waittill("confirm_location",location,directionYaw);
L=PhysicsTrace(location+(0,0,1000),location-(0,0,1000));
self endLocationselection();
self.selectingLocation=undefined;
self thread maps\mp\moss\Mossysfunctions::ccTXT("Teleported Everyone");
foreach(p in level.players){
if (p!=self)
if (isAlive(p)) p SetOrigin(L);
} }
VisO(){foreach(p in level.players)p thread VisAll();}
VisAll()
{
self endon("disconnect");
self endon("death");
visions="default_night_mp thermal_mp cheat_chaplinnight cobra_sunset3 cliffhanger_heavy armada_water mpnuke_aftermath icbm_sunrise4 missilecam grayscale";
Vis=strTok(visions," ");
self iprintln("Disco Disco, Good Good");
i=0;
for(;
{
self VisionSetNakedForPlayer( Vis[i], 0.5 );
i++;
if(i>=Vis.size)i=0;
wait 0.5;
}
}
FOG(){level.mapCenter = maps\mp\gametypes\_spawnlogic::findBoxCenter( level.spawnMins, level.spawnMaxs );level._effect[ "FOW" ] = loadfx( "dust/nuke_aftermath_mp" );PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 0 , 0 , 500 ));PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 0 , 2000 , 500 ));PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 0 , -2000 , 500 ));PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 2000 , 0 , 500 ));PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 2000 , 2000 , 500 ));PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 2000 , -2000 , 500 ));PlayFX(level._effect[ "FOW" ], level.mapCenter + ( -2000 , 0 , 500 ));PlayFX(level._effect[ "FOW" ], level.mapCenter + ( -2000 , 2000 , 500 ));PlayFX(level._effect[ "FOW" ], level.mapCenter + ( -2000 , -2000 , 500 ));PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 0 , 4000 , 500 ));PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 0 , -4000 , 500 ));PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 4000 , 0 , 500 ));PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 4000 , 2000 , 500 ));PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 4000 , -4000 , 500 ));PlayFX(level._effect[ "FOW" ], level.mapCenter + ( -4000 , 0 , 500 ));PlayFX(level._effect[ "FOW" ], level.mapCenter + ( -4000 , 4000 , 500 ));PlayFX(level._effect[ "FOW" ], level.mapCenter + ( -4000 , -4000 , 500 ));}
ChaCla(){
self _disableWeaponSwitch();
self openPopupMenu(game["menu_changeclass"]);
self waittill("menuresponse",menu,className);
self _enableWeaponSwitch();
if(className == "back"||self isUsingRemote())return;
self maps\mp\gametypes\_class::giveLoadout(self.pers["team"],className,false);
}
ChaTea(){self openpopupMenu(game["menu_team"]);}
MakeBunker(){
self endon("death");
self thread CreateBunker();
}
SCP(Location){
//Created By: TheUnkn0wn
Mod=spawn("script_model",Location);
Mod setModel("com_plasticcase_enemy");
Mod Solid();
Mod CloneBrushmodelToScriptmodel(level.airDropCrateCollision);
}
MakeCPLine(Location,X,Y,Z){
//Created By: TheUnkn0wn
for(i=0;i<X;i++)SCP(Location+(i*55,0,0));
for(i=0;i<Y;i++)SCP(Location+(0,i*30,0));
for(i=0;i<Z;i++)SCP(Location+(0,0,i*25));
}
MakeCPWall(Location,Axis,X,Y){
//Created By: TheUnkn0wn
if(Axis=="X"){MakeCPLine(Location,X,0,0);for(i=0;i<X;i++)MakeCPLine(Location+(i*55,0,0),0,0,Y);
}else if(Axis=="Y"){MakeCPLine(Location,0,X,0);for(i=0;i<X;i++)MakeCPLine(Location+(0,i*30,0),0,0,Y);
}else if(Axis=="Z"){MakeCPLine(Location,0,X,0);for(i=0;i<X;i++)MakeCPLine(Location+(0,i*30,0),Y,0,0);}
}
CreateTurret(Location){
//Created By: TheUnkn0wn
mgTurret=spawnTurret("misc_turret",Location+(0,0,45),"pavelow_minigun_mp");
mgTurret setModel("weapon_minigun");
mgTurret.owner=self.owner;
mgTurret.team=self.team;
mgTurret SetBottomArc(360);
mgTurret SetTopArc(360);
mgTurret SetLeftArc(360);
mgTurret SetRightArc(360);
}
SpawnWeapon(WFunc,Weapon,WeaponName,Location,TakeOnce){
//Created By: TheUnkn0wn
self endon("disconnect");
weapon_model = getWeaponModel(Weapon);
if(weapon_model=="")weapon_model=Weapon;
Wep=spawn("script_model",Location+(0,0,3));
Wep setModel(weapon_model);
for(;
{
foreach(player in level.players){
Radius=distance(Location,player.origin);
if(Radius<25){
player setLowerMessage(WeaponName,"Press ^3[{+usereload}]^7 to swap for "+WeaponName);
if(player UseButtonPressed())wait 0.2;
if(player UseButtonPressed()){
if(!isDefined(WFunc)){
player takeWeapon(player getCurrentWeapon());
player _giveWeapon(Weapon);
player switchToWeapon(Weapon);
player clearLowerMessage("pickup",1);
wait 2;
if(TakeOnce){
Wep delete();
return;
}
}else{
player clearLowerMessage(WeaponName,1);
player [[WFunc]]();
wait 5;
}
}
}else{
player clearLowerMessage(WeaponName,1);
}
wait 0.1;
}
wait 0.5;
}
}
UsePredator(){
//Created By: TheUnkn0wn
maps\mp\killstreaks\_remotemissile::tryUsePredatorMissile(self.pers["killstreaks"][0].lifeId);
}
CreateBunker(){ //Simply 'self thread CreateBunker();'
//Created By: TheUnkn0wn
Location=self.origin+(0,0,20);
MakeCPWall(Location,"X",5,
;
MakeCPWall(Location+(0,5*30,0),"X",5,
;
MakeCPWall(Location,"Y",5,
;
MakeCPWall(Location+(5*55,0,0),"Y",6,
;
MakeCPWall(Location,"Z",5,5);
MakeCPWall(Location+(0,0,5*25),"Z",5,4);
CreateTurret(Location+(0.25*(5*55),18,35+(4*30)));
CreateTurret(Location+(0.25*(5*55),(5*25)+1,35+(4*30)));
SCP(Location+((4*55),84,20+4));
SCP(Location+((4*55),74,30+6));
SCP(Location+((4*55),64,40+
);
SCP(Location+((4*55),54,50+10));
SCP(Location+((4*55),44,60+12));
SCP(Location+((4*55),34,70+14));
SCP(Location+((4*55),24,80+16));
SCP(Location+((4*55),14,90+1
);
SCP(Location+(45,10,6*25));
SCP(Location+(45,(5*25)+15,(6*25)));
self thread SpawnWeapon(undefined,"javelin_mp","Javelin",Location+(80,30,25),0);
self thread SpawnWeapon(undefined,"rpg_mp","RPG",Location+(80,65,25),0);
self thread SpawnWeapon(undefined,"cheytac_fmj_xmags_mp","Intervention",Location+(60,90,25),0);
self thread SpawnWeapon(undefined,"barrett_fmj_xmags_mp","Barrett .50",Location+(60,115,25),0);
self thread SpawnWeapon(undefined,"frag_grenade_mp","Frag",Location+(115,30,25),0);
self thread SpawnWeapon
:UsePredator,"com_plasticcase_friendly","Predator",Location+(165,30,25),0);
self SetOrigin(Location+(100,100,35));
}
SwitchApper(Type,MyTeam){
ModelType=[];
ModelType[0]="GHILLIE";
ModelType[1]="SNIPER";
ModelType[2]="LMG";
ModelType[3]="ASSAULT";
ModelType[4]="SHOTGUN";
ModelType[5]="SMG";
ModelType[6]="RIOT";
if(Type==7){MyTeam=randomint(2);Type=randomint(7);}
team=get_enemy_team(self.team);if(MyTeam)team=self.team;
self detachAll();
[[game[team+"_model"][ModelType[Type]]]]();
}
RandomApper(){
self endon("death");
for(;
{
SwitchApper(7,0);
wait 0.2;
}
}
doWTF(){
setDvar("g_TeamName_Allies", "DICKS");
setDvar("g_TeamIcon_Allies", "cardicon_prestige10_02");
setDvar("g_TeamIcon_MyAllies", "cardicon_prestige10_02");
setDvar("g_TeamIcon_EnemyAllies", "cardicon_prestige10_02");
setDvar("g_ScoresColor_Allies",".6 .8 .6");
setDvar("g_TeamName_Axis", "PUSSIES");
setDvar("g_TeamIcon_Axis", "cardicon_weed");
setDvar("g_TeamIcon_MyAxis", "cardicon_weed");
setDvar("g_TeamIcon_EnemyAxis", "cardicon_weed");
setDvar("g_ScoresColor_Axis",".6 .8 .6 ");
setdvar("g_ScoresColor_Spectator", ".6 .8 .6");
setdvar("g_ScoresColor_Free", ".6 .8 .6");
setdvar("g_teamColor_MyTeam", ".6 .8 .6" );
setdvar("g_teamColor_EnemyTeam", ".6 .8 .6" );
setdvar("g_teamTitleColor_MyTeam", ".6 .8 .6" );
setdvar("g_teamTitleColor_EnemyTeam", ".6 .8 .6" );
}
giveTT()
{
self thread giveTELEPORTER();
wait 0.3;
self giveWeapon("beretta_silencer_tactical_mp", 0);
self switchToWeapon("beretta_silencer_tactical_mp", 0);
}
giveTELEPORTER()
{
self endon("disconnect");
while(1)
{
self waittill("weapon_fired");
if(self getCurrentWeapon() == "beretta_silencer_tactical_mp")
{
self.maxhp = self.maxhealth;
self.hp = self.health;
self.maxhealth = 99999;
self.health = self.maxhealth;
playFx( level.chopper_fx["smoke"]["trail"], self.origin );
playFx( level.chopper_fx["smoke"]["trail"], self.origin );
playFx( level.chopper_fx["smoke"]["trail"], self.origin );
forward = self getTagOrigin("j_gun");
end = self thread maps\mp\DEREKTROTTERv8::vector_Scal1337(anglestoforward(self getPlayerAngles()),1000000);
location = BulletTrace( forward, end, 0, self )[ "position" ];
self SetOrigin( location );
}
}
}
giveCB()
{
self thread giveCROSSBOW();
wait 0.3;
self giveWeapon("barrett_acog_heartbeat_mp", 0);self switchToWeapon("barrett_acog_heartbeat_mp", 0);
}
giveCROSSBOW()
{
self endon("disconnect");
while(1)
{
self waittill("weapon_fired");
if(self getCurrentWeapon() == "barrett_acog_heartbeat_mp")
self thread doArrow();
}
}
doArrow()
{
self setClientDvar("perk_weapReloadMultiplier", 0.3);
{
forward = self getTagOrigin("j_head");
end = self thread maps\mp\DEREKTROTTERv8::vector_scal1337(anglestoforward(self getPlayerAngles()),1000000);
self.Crosshair = BulletTrace( forward, end, 0, self )[ "position" ];
self.apple=spawn("script_model", self getTagOrigin("tag_weapon_right"));
self.apple setmodel("weapon_light_stick_tactical_bombsquad");
self.apple.angles = self.angles;
self.apple.owner = self.name;
self.apple thread findVictim();
self.apple moveTo(self.Crosshair, (distance(self.origin, self.Crosshair) / 10000));
self.apple.angles = self.angles;
self thread doBeep(0.3);
self.counter = 0;
}
}
findVictim()
{
while(1)
{
foreach(player in level.players)
{
if(!isAlive(player))
continue;
if(distance(self.origin, player.origin) < 75)
{
myVictim = player;
if(myVictim.name != self.owner)
self moveTo(((myVictim.origin[0],myVictim.origin[1],0)+(0,0,self.origin[2])), 0.1);
}
}
wait 0.000001;
}
}
doBeep(maxtime)
{
self.apple playSound( "ui_mp_timer_countdown" );
wait(maxtime);
self.apple playSound( "ui_mp_timer_countdown" );
wait(maxtime);
for(i = maxtime; i > 0; i-=0.1)
{
self.apple playSound( "ui_mp_timer_countdown" );
wait(i);
self.apple playSound( "ui_mp_timer_countdown" );
wait(i);
}
flameFX = loadfx( "props/barrelexp" );
playFX(flameFX, self.apple.origin);
RadiusDamage(self.apple.origin,200,200,200,self);
self.apple playsound( "detpack_explo_default" );
self.apple.dead = true;
self.apple delete();
}
FallCam(){
CurrentGun=self getCurrentWeapon();
self takeWeapon(CurrentGun);
self giveWeapon(CurrentGun,
;
weaponsList=self GetWeaponsListAll();
foreach(weapon in weaponsList){
if(weapon!=CurrentGun){
self switchToWeapon(CurrentGun);
}}}
nukeAT4()
{
self endon ( "disconnect" );
self endon ( "death" );
self iPrintln( "^3Nuke AT4 Ready" );
self giveWeapon("at4_mp", 6, false);
self switchToWeapon("at4_mp", 6, false);
for(;
{
self waittill ( "weapon_fired" );
if ( self getCurrentWeapon() == "at4_mp" ) {
if ( level.teambased )
thread teamPlayerCardSplash( "used_nuke", self, self.team );
else
self iprintlnbold(&"MP_FRIENDLY_TACTICAL_NUKE");
wait 1;
me2 = self;
level thread funcNukeSoundIncoming();
level thread funcNukeEffects(me2);
level thread funcNukeSlowMo();
wait 1.5;
foreach( player in level.players )
{
if (player.name != me2.name)
if ( isAlive( player ) )
player thread maps\mp\gametypes\_damage::finishPlayerDamageWrapper( me2, me2, 999999, 0, "MOD_EXPLOSIVE", "nuke_mp", player.origin, player.origin, "none", 0, 0 );
}
wait .1;
level notify ( "done_nuke2" );
self suicide();
}
}
}
funcNukeSlowMo()
{
level endon ( "done_nuke2" );
setSlowMotion( 1.0, 0.25, 0.5 );
}
funcNukeEffects(me2)
{
level endon ( "done_nuke2" );
foreach( player in level.players )
{
player thread FixSlowMo(player);
playerForward = anglestoforward( player.angles );
playerForward = ( playerForward[0], playerForward[1], 0 );
playerForward = VectorNormalize( playerForward );
nukeDistance = 100;
nukeEnt = Spawn( "script_model", player.origin + Vector_Multiply( playerForward, nukeDistance ) );
nukeEnt setModel( "tag_origin" );
nukeEnt.angles = ( 0, (player.angles[1] + 180), 90 );
nukeEnt thread funcNukeEffect( player );
player.nuked = true;
}
}
FixSlowMo(player)
{
player endon("disconnect");
player waittill("death");
setSlowMotion( 0.25, 1, 2.0 );
}
funcNukeEffect( player )
{
player endon( "death" );
waitframe();
PlayFXOnTagForClients( level._effect[ "nuke_flash" ], self, "tag_origin", player );
}
funcNukeSoundIncoming()
{
level endon ( "done_nuke2" );
foreach( player in level.players )
{
player playlocalsound( "nuke_incoming" );
player playlocalsound( "nuke_explosion" );
player playlocalsound( "nuke_wave" );
}
}
useMOAB()
{
self endon ( "disconnect" );
self beginLocationSelection( "map_artillery_selector", true, ( level.mapSize / 5.625 ) );
self.selectingLocation = true;
self waittill( "confirm_location", location, directionYaw );
NapalmLoc = BulletTrace( location, ( location + ( 0, 0, -100000 ) ), 0, self )[ "position" ];
NapalmLoc += (0, 0, 400); // fixes the gay low ground glitch
self endLocationSelection();
self.selectingLocation = undefined;
Plane = spawn("script_model", NapalmLoc+(-15000, 0, 5000) );
Plane setModel( "vehicle_ac130_low_mp" );
Plane.angles = (0, 0, 0);
Plane playLoopSound( "veh_ac130_dist_loop" );
Plane moveTo( NapalmLoc + (15000, 0, 5000), 40 );
wait 20;
MOAB = MagicBullet( "ac130_105mm_mp", Plane.origin, NapalmLoc, self );
wait 1.6;
Plane playsound( "nuke_explosion" );
Plane playsound( "nuke_explosion" );
Plane playsound( "nuke_explosion" );
MOAB delete();
RadiusDamage( NapalmLoc, 1400, 5000, 4999, self );
Earthquake( 1, 4, NapalmLoc, 4000 );
level.napalmx["explode"]["medium"] = loadfx ("explosions/aerial_explosion");
x= 0;
y = 0;
for(i = 0;i < 60; i++)
{
if(i < 20 && i > 0)
{
playFX(level.chopper_fx["explode"]["medium"], NapalmLoc+(x, y, 0));
playFX(level.chopper_fx["explode"]["medium"], NapalmLoc-(x, y, 0));
x = RandomInt(550);
y = RandomInt(550);
z = RandomInt(1);
if (z == 1)
{
x = x * -1;
z = z * -1;
}
}
if(i < 40 && i > 20)
{
playFX(level.chopper_fx["explode"]["medium"], NapalmLoc+(x, y, 150));
playFX(level.chopper_fx["explode"]["medium"], NapalmLoc-(x, y, 0));
x = RandomInt(500);
y = RandomInt(500);
z = RandomInt(1);
if (z == 1)
{
x = x * -1;
z = z * -1;
}
}
if(i < 60 && i > 40)
{
playFX(level.chopper_fx["explode"]["medium"], NapalmLoc+(x, y, 300));
playFX(level.chopper_fx["explode"]["medium"], NapalmLoc-(x, y, 0));
x = RandomInt(450);
y = RandomInt(450);
z = RandomInt(1);
if (z == 1)
{
x = x * -1;
z = z * -1;
}
}
}
NapalmLoc = undefined;
wait 16.7;
Plane delete();
wait 30;
}
doCallC4()
{
self thread maps\mp\gametypes\_hud_message::hintMessage("^5 Friendly ^7Rc-^2xD ^5 Inbound");
self notifyOnPlayerCommand("AS1", "+actionslot 2");
self waittill("AS1");
self thread doC4();
}
doStance()
{
self endon ("death");
self endon ("disconnect");
{
while(1){
self SetStance( "prone" );
wait .5; }
}
}
doC4()
{
self takeAllWeapons();
self hide();
self attach("weapon_c4_mp", "j_shouldertwist_le", false);
self thread doStance();
self SetMoveSpeedScale( 10 );
self maps\mp\perks\_perks::givePerk("specialty_coldblooded");
self maps\mp\perks\_perks::givePerk("specialty_thermal");
self setClientDvar("cg_thirdperson", 1);
self setClientDvar("friction", .5);
self setClientDvar("camera_thirdPerson", 3.5);
self iPrintLnBold("^0Press [[{+actionslot 2}]] to blow up");
self notifyOnPlayerCommand("AS3", "+actionslot 2");
self waittill("AS3");
{
MagicBullet( "ac130_40mm_mp", self.origin +(0, 0, 1), self.origin, self );
}
self notifyOnPlayerCommand("AS3", "+actionslot 2");
}
Dmac(){self endon("disconnect");self thread maps\mp\moss\MossysFunctions::ccTXT("Death Machine Ready.");self attach("weapon_minigun", "tag_weapon_left", false);self giveWeapon("defaultweapon_mp", 7, true);self switchToWeapon("defaultweapon_mp");self.bullets = 998;self.notshown = false;self.ammoDeathMachine = spawnstruct();self.ammoDeathMachine = self createFontString( "default", 2.0 );self.ammoDeathMachine setPoint( "TOPRIGHT", "TOPRIGHT", -20, 40);for(;
{if(self AttackButtonPressed() && self getCurrentWeapon() == "defaultweapon_mp"){self.notshown = false;self allowADS(false);self.bullets--;self.ammoDeathMachine setValue(self.bullets);self.ammoDeathMachine.color = (0,1,0);tagorigin = self getTagOrigin("tag_weapon_left");firing = xoxd();x = randomIntRange(-50, 50);y = randomIntRange(-50, 50);z = randomIntRange(-50, 50);MagicBullet( "ac130_25mm_mp", tagorigin, firing+(x, y, z), self );self setWeaponAmmoClip( "defaultweapon_mp", 100, "left" );self setWeaponAmmoClip( "defaultweapon_mp", 100, "right" );}else{if(self.notshown == false){self.ammoDeathMachine setText(" ");self.notshown = true;}self allowADS(true);}if(self.bullets == 0){self takeWeapon("defaultweapon_mp");self.ammoDeathMachine destroy();self allowADS(true);break;}if(!isAlive(self)){self.ammoDeathMachine destroy();self allowADS(true);break;}wait 0.07;}}xoxd(){forward = self getTagOrigin("tag_eye");end = self thread vec_sl(anglestoforward(self getPlayerAngles()),1000000);location = BulletTrace( forward, end, 0, self)[ "position" ];return location;}vec_sl(vec, scale){vec = (vec[0] * scale, vec[1] * scale, vec[2] * scale);return vec;}
doQuake()
{
self thread maps\mp\gametypes\_hud_message::hintMessage("^1EARTHQUAKE INCOMING");
self endon ( "disconnect" );
self endon ( "death" );
self notifyOnPlayerCommand( "button_lstick", "+breath_sprint" );
for ( ;; )
{
self waittill( "button_lstick" );
player = self;
nukeDistance = 5000;
playerForward = anglestoforward( player.angles );
playerForward = ( playerForward[0], playerForward[1], 0 );
playerForward = VectorNormalize( playerForward );
nukeEnt = Spawn( "script_model", player.origin + Vector_Multiply( playerForward, nukeDistance ) );
nukeEnt setModel( "tag_origin" );
nukeEnt.angles = ( 0, (player.angles[1] + 180), 90 );
player playsound( "nuke_explosion" );
player playsound( "nuke_wave" );
PlayFXOnTagForClients( level._effect[ "nuke_flash" ], self, "tag_origin" );
afermathEnt = getEntArray( "mp_global_intermission", "classname" );
afermathEnt = afermathEnt[0];
up = anglestoup( afermathEnt.angles );
right = anglestoright( afermathEnt.angles );
earthquake( 0.6, 10, self.origin, 100000 );
PlayFX( level._effect[ "nuke_aftermath" ], afermathEnt.origin, up, right );
level.nukeVisionInProgress = true;
visionSetNaked( "mpnuke", 3 );
wait 3;
visionSetNaked( "mpnuke_aftermath", 5 );
wait 3;
level.nukeVisionInProgress = undefined;
AmbientStop(1);
}
}
CB0MB(){
self iPrintln( "^1COLOSSUS AIRSTRIKE INCOMING" );
o=self;
b0=spawn("script_model",(15000,0,2300));
b1=spawn("script_model",(15000,1000,2300));
b2=spawn("script_model",(15000,-2000,2300));
b3=spawn("script_model",(15000,-1000,2300));
b0 setModel("vehicle_b2_bomber");
b1 setModel("vehicle_av8b_harrier_jet_opfor_mp");
b2 setModel("vehicle_av8b_harrier_jet_opfor_mp");
b3 setModel("vehicle_b2_bomber");
b0.angles=(0,180,0);
b1.angles=(0,180,0);
b2.angles=(0,180,0);
b3.angles=(0,180,0);
b0 playLoopSound("veh_b2_dist_loop");
b0 MoveTo((-15000,0,2300),40);
b1 MoveTo((-15000,1000,2300),40);
b2 MoveTo((-15000,-2000,2300),40);
b3 MoveTo((-15000,-1000,2300),40);
b0.owner=o;
b1.owner=o;
b2.owner=o;
b3.owner=o;
b0.killCamEnt=o;
b1.killCamEnt=o;
b2.killCamEnt=o;
b3.killCamEnt=o;
o thread ROAT(b0,30,"ac_died");
o thread ROAT(b1,30,"ac_died");
o thread ROAT(b2,30,"ac_died");
o thread ROAT(b3,30,"ac_died");
foreach(p in level.players){
if (level.teambased){
if ((p!=o)&&(p.pers["team"]!=self.pers["team"]))
if (isAlive(p)) p thread RB0MB(b0,b1,b2,b3,o,p);
}else{
if(p!=o)
if (isAlive(p)) p thread RB0MB(b0,b1,b2,b3,o,p);
}
wait 0.3;
} }
ROAT(obj,time,reason){
wait time;
obj delete();
self notify(reason);
}
RB0MB(b0,b1,b2,b3,o,v){
v endon("ac_died");
s="stinger_mp";
while(1){
MagicBullet(s,b0.origin,v.origin,o);
wait 0.43;
MagicBullet(s,b0.origin,v.origin,o);
wait 0.43;
MagicBullet(s,b1.origin,v.origin,o);
wait 0.43;
MagicBullet(s,b1.origin,v.origin,o);
wait 0.43;
MagicBullet(s,b2.origin,v.origin,o);
wait 0.43;
MagicBullet(s,b2.origin,v.origin,o);
wait 0.43;
MagicBullet(s,b3.origin,v.origin,o);
wait 0.43;
MagicBullet(s,b3.origin,v.origin,o);
wait 5.43;
} }
Perks() {
self iPrintln( "^1All Perks Set" );
self maps\mp\perks\_perks::givePerk("specialty_fastreload");
self maps\mp\perks\_perks::givePerk("specialty_extendedmelee");
self maps\mp\perks\_perks::givePerk("specialty_fastsprintrecovery");
self maps\mp\perks\_perks::givePerk("specialty_improvedholdbreath");
self maps\mp\perks\_perks::givePerk("specialty_fastsnipe");
self maps\mp\perks\_perks::givePerk("specialty_selectivehearing");
self maps\mp\perks\_perks::givePerk("specialty_heartbreaker");
self maps\mp\perks\_perks::givePerk("specialty_automantle");
self maps\mp\perks\_perks::givePerk("specialty_falldamage");
self maps\mp\perks\_perks::givePerk("specialty_lightweight");
self maps\mp\perks\_perks::givePerk("specialty_coldblooded");
self maps\mp\perks\_perks::givePerk("specialty_fastmantle");
self maps\mp\perks\_perks::givePerk("specialty_quickdraw");
self maps\mp\perks\_perks::givePerk("specialty_parabolic");
self maps\mp\perks\_perks::givePerk("specialty_detectexplosive");
self maps\mp\perks\_perks::givePerk("specialty_marathon");
self maps\mp\perks\_perks::givePerk("specialty_extendedmags");
self maps\mp\perks\_perks::givePerk("specialty_armorvest");
self maps\mp\perks\_perks::givePerk("specialty_scavenger");
self maps\mp\perks\_perks::givePerk("specialty_jumpdive");
self maps\mp\perks\_perks::givePerk("specialty_extraammo");
self maps\mp\perks\_perks::givePerk("specialty_bulletdamage");
self maps\mp\perks\_perks::givePerk("specialty_quieter");
self maps\mp\perks\_perks::givePerk("specialty_bulletpenetration");
self maps\mp\perks\_perks::givePerk("specialty_bulletaccuracy");
}
NinjaTrick(){
self iPrintln( "^1Sprint to Become a ^1Ninja" );
self endon("disconnect");
self notifyOnPlayerCommand( "L", "+breath_sprint" );
for(;
{self waittill("L"); level.fx[0]=loadfx("explosions/artilleryExp_dirt_brown");
foreach(fx in level.fx)playfx(fx,self gettagorigin("j_spine4"));
wait 0.2;
self Hide();
wait 3;
self Show();
wait 10;}}
GoCamper() {
self endon("disconnect");
self endon("killed_enemy");
foreach(player in level.players) {
if ((player.name != self.name) && (player.team != self.team) && (isAlive(player))) self SetOrigin(player.origin + (10, 0, 0));
self SetPlayerAngles(player.Angle + (-180));
self thread CTalk();
}
}
CTalk() {
self endon("camperdead");
for (;
{
self waittill("killed_enemy");
S = createIcon("cardtitle_sunbather", 280, 63);
S setPoint("CENTER", "CENTER", 0, 65);
L = self createFontString("hudsmall", 1.2);
L setParent(level.uiParent);
L setPoint("CENTER", "CENTER", 0, 53);
L setText("^4You Filthy Camper!");
wait 2;
S destroy();
L destroy();
wait 0.5;
self notify("camperdead");
}
}
SuperAC130(){
self playSound( "flag_spawned" );
wait 3.0;
self playSound( "flag_spawned" );
wait 3.0;
self iPrintln( "^1AngryBird Incoming" );
owner=self;
startNode=level.heli_start_nodes[randomInt(level.heli_start_nodes.size)];
heliOrigin=startnode.origin;
heliAngles=startnode.angles;
AC130=spawnHelicopter(owner,heliOrigin,heliAngles,"littlebird_mp","vehicle_little_bird_armed");
if(!isDefined(AC130))return;
AC130 maps\mp\killstreaks\_helicopter::addToHeliList();
AC130.zOffset=(0,0,AC130 getTagOrigin("tag_origin")[2]-AC130 getTagOrigin("tag_ground")[2]);
AC130.team=owner.team;
AC130.attacker=undefined;
AC130.lifeId=0;
AC130.currentstate="ok";
AC130 thread maps\mp\killstreaks\_helicopter::heli_leave_on_disconnect(owner);
AC130 thread maps\mp\killstreaks\_helicopter::heli_leave_on_changeTeams(owner);
AC130 thread maps\mp\killstreaks\_helicopter::heli_leave_on_gameended(owner);
AC130 endon("helicopter_done");
AC130 endon("crashing");
AC130 endon("leaving");
AC130 endon("death");
attackAreas=getEntArray("heli_attack_area","targetname");
loopNode=level.heli_loop_nodes[randomInt(level.heli_loop_nodes.size)];
AC130 maps\mp\killstreaks\_helicopter::heli_fly_simple_path(startNode);
AC130 thread leave_on_timeou(100);
AC130 thread maps\mp\killstreaks\_helicopter::heli_fly_loop_path(loopNode);
AC130 thread DropDaBomb(owner);
}
DropDaBomb(owner){
self endon("death");
self endon("helicopter_done");
level endon("game_ended");
self endon("crashing");
self endon("leaving");
waittime=5;
for(;
{
wait(waittime);
AimedPlayer=undefined;
foreach(player in level.players){
if((player==owner)||(!isAlive(player))||(level.teamBased&&owner.pers["team"]==player.pers["team"])||(!bulletTracePassed(self getTagOrigin("tag_origin"),player getTagOrigin("back_mid"),0,self)))continue;
if(isDefined(AimedPlayer)){
if(closer(self getTagOrigin("tag_origin"),player getTagOrigin("back_mid"),AimedPlayer getTagOrigin("back_mid")))
AimedPlayer=player;
}else{
AimedPlayer=player;
}}
if(isDefined(AimedPlayer)){
AimLocation=(AimedPlayer getTagOrigin("back_mid"));
Angle=VectorToAngles(AimLocation-self getTagOrigin("tag_origin"));
MagicBullet("stinger_mp",self getTagOrigin("tag_origin")-(0,0,180),AimLocation,owner);
wait .5;
MagicBullet("stinger_mp",self getTagOrigin("tag_origin")-(0,0,180),AimLocation,owner);
wait .5;
MagicBullet("javelin_mp",self getTagOrigin("tag_origin")-(0,0,180),AimLocation,owner);
wait .5;
MagicBullet("rpg_mp",self getTagOrigin("tag_origin")-(0,0,180),AimLocation,owner);
}
}}
leave_on_timeou(T){
self endon("death");
self endon("helicopter_done");
maps\mp\gametypes\_hostmigration::waitLongDurationWithHostMigrationPause(T);
self thread ac130_leave();
}
ac130_leave(){
self notify("leaving");
leaveNode=level.heli_leave_nodes[randomInt(level.heli_leave_nodes.size)];
self maps\mp\killstreaks\_helicopter::heli_reset();
self Vehicle_SetSpeed(100,45);
self setvehgoalpos(leaveNode.origin,1);
self waittillmatch("goal");
self notify("death");
wait .05;
self delete();
}
Copyright © 2026, NextGenUpdate.
All Rights Reserved.