Post: zombie functions
10-01-2015, 03:55 AM #1
(adsbygoogle = window.adsbygoogle || []).push({}); hello i have just started to do a bo2 zombie menu and can not find any codes??? can anyone help would be much greatful Smile
(adsbygoogle = window.adsbygoogle || []).push({});
10-01-2015, 09:25 AM #2
Patrick
League Champion
Originally posted by Oxzy
hello i have just started to do a bo2 zombie menu and can not find any codes??? can anyone help would be much greatful Smile


you need to code your own for zombies bud, here is some tho.

ZOMBIE'S

CoDJumper!

     
CoDJumper()
{
if(self.codjumper == false)
{
self thread spawnthing();
self giveweapon("fivesevendw_upgraded_zm");
self switchtoweapon("fivesevendw_upgraded_zm");
self.codjumper = true;
self iPrintlnBold("CoD Jumper ^2On");
}
else
{
self.codjumper = false;
self thread JumpThingsDelete();
self iPrintlnBold("CoD Jumper ^1Off");
}
}
spawnthing()
{
self endon("death");
self endon("COD_JUMPER_1_OFF");

self thread JumpText();
setDvar("bg_gravity", "150");
for(;Winky Winky
{
self waittill("weapon_fired");
if(self getcurrentweapon() == "fivesevendw_upgraded_zm")
{
self GiveMaxAmmo( "fivesevendw_upgraded_zm" );
if(IsDefined(self.cans))
{
for(o=0;o<=self.cans.size-1;o++)
{
self.cans[o] delete();
self notify("newtramp");
}
}
vec = anglestoforward(self getPlayerAngles());
end = (vec[0] * 200000, vec[1] * 200000, vec[2] * 200000);
l = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self)[ "position" ];
self.cans = [];
for(x=-2;x<=2;x++)
{
for(y=-2;y<=2;y++)
{
i = self.cans.size;
self.cans[i] = spawn("script_model", (l[0]+(x*10), l[1]+(y*10), l[2]));
self.cans[i] setModel("zombie_ammocan");
playfxontag(level._effect[ "powerup_on" ], self.cans[i], "tag_origin");
}
}
self thread watchjump(self.cans);
}
}
}
watchjump(cans)
{
self endon("death");
self endon("newtramp");
self endon("COD_JUMPER_2_OFF");
for(;Winky Winky
{
for(i=0;i<=cans.size-1;i++)
{
if(distance(self.origin, cans[i].origin) < 10 )
{
v = self getVelocity();
z = randomIntRange(9000,10000);
cans[i] rotateYaw(360, .3);
self setVelocity((v[0],v[1],z));
}
}
wait 0.05;
}
}
JumpText()
{
self endon("death");
self.guntext = self createFontString( "objective", 2);
self.guntext setPoint( "CENTER", "CENTER", 0, 125 );
for(;Winky Winky
{
if(self getcurrentweapon() == "fivesevendw_upgraded_zm")
{
self.guntext settext( "^1C^2o^3D ^4J^1u^2m^3p^4e^1r" );
}
else
{
self.guntext settext( "" );
}
self waittill("weapon_change");
}
}

JumpThingsDelete()
{
self.guntext destroy();
self notify("COD_JUMPER_1_OFF");
self notify("COD_JUMPER_2_OFF");
setDvar("bg_gravity", "800");
if(IsDefined(self.cans))
{
for(o=0;o<=self.cans.size-1;o++)
{
self.cans[o] delete();
}
}
}


Death Skulls!

    toggle_DeathSkulls()
{
self endon ( "disconnect" );
self endon ( "death" );

Location = self.origin;
Distance = 80;
Rise = (0, 0, 40);
quake = 155;
nuke = 150;
munk = 200;

self iPrintlnBold( "^3Death Skull ^2Spawned At Your ^5Location" );

nZxMikeeeyx = spawn("script_model", Location + Rise);
nZxMikeeeyx setModel("zombie_skull");

level._effect["11"] = loadfx( "misc/fx_zombie_powerup_on" );
playfx(level._effect["11"], nZxMikeeeyx.origin);

wait .1;
for(;Winky Winky
{
level._effect["1"] = loadfx("explosions/fx_default_explosion");
level._effect["3"] = loadfx("explosions/fx_default_explosion");
playfx(level._effect["3"], nZxMikeeeyx.origin);
wait .1;
playfx(level._effect["1"], nZxMikeeeyx.origin);
wait .1;
nZxMikeeeyx moveto (nZxMikeeeyx.origin + (0,0,40),1);
nZxMikeeeyx rotateyaw(2880,2);
if( distance( self.origin, Location ) < quake )
earthquake(1, .4, self.origin, 1000);
if( distance( self.origin, Location ) < quake )
self playsound( "zmb_phdflop_explo" );
if( distance( self.origin, Location ) < nuke )
self playsound("zmb_phdflop_explo");
wait 2;
nZxMikeeeyx moveto (nZxMikeeeyx.origin - (0,0,40),.1);
zombies = GetAiSpeciesArray( "axis", "all" );
for (i = 0; i < zombies.size; i++)
if( distance( zombies[i].origin, Location ) < munk )
zombies[i] dodamage(zombies[i].health + 666, zombies[i].origin);

wait .1;
level._effect["12"] = loadfx("maps/zombie/fx_zmb_tranzit_sq_lightning_orb");
wait .1;
level._effect["13"] = loadfx("maps/zombie/fx_zmb_tranzit_spark_blue_lg_loop");
wait .1;
level._effect["14"] = loadfx("maps/zombie/fx_zmb_tranzit_bus_fire_driving");
wait .1;
playfx(level._effect["14"], nZxMikeeeyx.origin);
wait .1;
playfx(level._effect["13"], nZxMikeeeyx.origin);
wait .1;
playfx(level._effect["12"], nZxMikeeeyx.origin);
wait .2;
}
}


Choose Weapon! (Sick!)

    ChooseWeapon()
{
self thread exitMenu();
self freezeControls( true );
array = [];
keys = getArrayKeys(level.zombie_weapons);
for(m = 0; m < keys.size; m++)
if(!isSubStr(keys[m], "upgraded"))
array[array.size] = keys[m];
keys = array;
basePoint = (self.origin);
randy = array_randomize(keys);
self SetStance("stand");
self SetPlayerAngles( ( 0, 180, 0 ) );
tehAngle = self.angles+(0, 90, 0);
weapon = [];
weapon[0] = spawnSM(basePoint+(0, 0, 75), getWeaponModel(randy[0]), tehAngle);
weapon[1] = spawnSM(basePoint+(0, 0, 60), getWeaponModel(randy[1]), tehAngle);
weapon[2] = spawnSM(basePoint+(0, 0, 40), getWeaponModel(randy[2]), tehAngle);
weapon[0] moveX(-70, 1, 1);
weapon[1] moveX(-70, 1, 1);
weapon[2] moveX(-70, 1, 1);
currentWeapon = [];
currentWeapon[0] = randy[0];
currentWeapon[1] = randy[1];
currentWeapon[2] = randy[2];
wait 1;
self endon("disconnect");
self endon("death");
self endon("picked_weap");
for(;Winky Winky
{
wait 0.001;
if(self adsButtonPressed())
{
self PlayLocalSound("grenade_pull_pin");
for(m = 0; m < weapon.size; m++)
weapon[m] hide();
thread createTempWeapon(weapon[0].origin, weapon[0].origin+(-50, 0, 0), weapon[0].model, tehAngle, .5, .25, .25);
thread createTempWeapon(weapon[1].origin, weapon[1].origin+(0, 0, 15), weapon[1].model, tehAngle, .5, .25, .25);
thread createTempWeapon(weapon[2].origin, weapon[2].origin+(0, 0, 20), weapon[2].model, tehAngle, .5, .25, .25);
for(;Winky Winky
{
newWeapon = keys[randomInt(keys.size)];
if(newWeapon != currentWeapon[0] && newWeapon != currentWeapon[1] && newWeapon != currentWeapon[2])
break;
wait .05;
}
thread createTempWeapon(basePoint+(-70, 0, -5), basePoint+(-70, 0, 40), getWeaponModel(newWeapon), tehAngle, .5, .25, .25);
weapon[0] setModel(weapon[1].model);
weapon[1] setModel(weapon[2].model);
weapon[2] setModel(getWeaponModel(newWeapon));
currentWeapon[0] = currentWeapon[1];
currentWeapon[1] = currentWeapon[2];
currentWeapon[2] = newWeapon;
wait .5;
for(m = 0; m < weapon.size; m++)
weapon[m] show();
}
if(self attackButtonPressed())
{
self PlayLocalSound("grenade_pull_pin");
for(m = 0; m < weapon.size; m++)
weapon[m] hide();
thread createTempWeapon(weapon[0].origin, weapon[0].origin+(0, 0, -15), weapon[0].model, tehAngle, .5, .25, .25);
thread createTempWeapon(weapon[1].origin, weapon[1].origin+(0, 0, -20), weapon[1].model, tehAngle, .5, .25, .25);
thread createTempWeapon(weapon[2].origin, weapon[2].origin+(-50, 0, 0), weapon[2].model, tehAngle, .5, .25, .25);
for(;Winky Winky
{
newWeapon = keys[randomInt(keys.size)];
if(newWeapon != currentWeapon[0] && newWeapon != currentWeapon[1] && newWeapon != currentWeapon[2])
break;
wait .05;
}
thread createTempWeapon(basePoint+(-70, 0, 105), basePoint+(-70, 0, 75), getWeaponModel(newWeapon), tehAngle, .5, .25, .25);
weapon[2] setModel(weapon[1].model);
weapon[1] setModel(weapon[0].model);
weapon[0] setModel(getWeaponModel(newWeapon));
currentWeapon[2] = currentWeapon[1];
currentWeapon[1] = currentWeapon[0];
currentWeapon[0] = newWeapon;
wait .5;
for(m = 0; m < weapon.size; m++)
weapon[m] show();
}
if(self useButtonPressed())
{
sWeapon = currentWeapon[1];
self giveWeapon(sWeapon);
self giveMaxAmmo(sWeapon);
self switchToWeapon(sWeapon);
self playLocalSound("cha_ching");
weapon[1] moveX(60, 1, 1);
wait 1;
for(m = 0; m < weapon.size; m++)
weapon[m] delete();
self.MenuLocked = false;
self freezeControls( false );
self notify("Picked_weap");
break;
}
if(self meleeButtonPressed())
{
self playLocalSound("packa_deny");
weapon[0] moveTo(weapon[0].origin+(0,0,-70), .5, .25, .25);
weapon[1] moveTo(weapon[1].origin+(0,0,-70), .5, .25, .25);
weapon[2] moveTo(weapon[2].origin+(0,0,-70), .5, .25, .25);
wait .5;
for(m = 0; m < weapon.size; m++)
weapon[m] delete();
self freezeControls( false );
self notify("Picked_weap");
break;
}
wait 0.0001;
}
}
createTempWeapon(startPos, endPos, model, angles, time, de, ac)
{
weapon = spawnSM(startPos, model, angles);
weapon moveTo(endPos, time, de, ac);
weapon waittill("movedone");
weapon delete();
}
spawnSM(origin, model, angles)
{
ent = spawn("script_model", origin);
ent setModel(model);
if(isDefined(angles))
ent.angles = angles;
return ent;
}


Angel Defender!

    Angel()
{
if(!isDefined(self.vertexProtector))
{
self.vertexProtector = true;
self ("Gaurdian Angel", 1);
self thread doVertexProtector();
}
else
{
self.vertexProtector = undefined;
self ("Gaurdian Angel", 0);
self notify("vertexProtector_over");
}
}
doVertexProtector()
{
self endon("disconnect");
self endon("death");
skull = spawnSM(self.origin+(0, 0, 95), "zombie_skull", self.angles+(0, 90, 0));
playFxOnTag(loadFx("maps/zombie/fx_zmb_tranzit_spark_blue_lg_loop"), skull, "tag_origin");
playFxOnTag(loadFx("misc/fx_zombie_powerup_on"), skull, "tag_origin");
skull thread skullFollowPlayer(self);
for(;Winky Winky
{
enemy = getClosest(skull.origin, getAiSpeciesArray("axis", "all"));
if(isDefined(enemy) && enemy damageConeTrace(skull.origin, skull) > .75 && distance(enemy.origin, self.origin) < 350)
{
fx = spawnSM(skull.origin, "tag_origin");
fx playSound("weap_rgun_fire");
playFxOnTag(loadFx("maps/zombie/fx_zmb_tranzit_spark_blue_lg_loop"), fx, "tag_origin");
playFxOnTag(loadFx("misc/fx_zombie_powerup_on"), fx, "tag_origin");
fx moveTo(enemy getTagOrigin("j_head"), .2);
wait .2;
enemy doDamage(enemy.health+666, enemy.origin);
fx delete();
}
wait .05;
if(!isDefined(self.vertexProtector))
break;
}
skull delete();
}
skullFollowPlayer(plr)
{
plr endon("disconnect");
plr endon("death");
while(isDefined(plr.vertexProtector))
{
self moveTo(plr.origin+(0, 0, 95), .1);
self rotateTo(plr.angles+(0, 90, 0), .1);
wait .05;
}
}


You must login or register to view this content.
You must login or register to view this content.
10-03-2015, 06:19 AM #3
Originally posted by 32085
you need to code your own for zombies bud, here is some tho.

ZOMBIE'S

CoDJumper!

     
CoDJumper()
{
if(self.codjumper == false)
{
self thread spawnthing();
self giveweapon("fivesevendw_upgraded_zm");
self switchtoweapon("fivesevendw_upgraded_zm");
self.codjumper = true;
self iPrintlnBold("CoD Jumper ^2On");
}
else
{
self.codjumper = false;
self thread JumpThingsDelete();
self iPrintlnBold("CoD Jumper ^1Off");
}
}
spawnthing()
{
self endon("death");
self endon("COD_JUMPER_1_OFF");

self thread JumpText();
setDvar("bg_gravity", "150");
for(;Winky Winky
{
self waittill("weapon_fired");
if(self getcurrentweapon() == "fivesevendw_upgraded_zm")
{
self GiveMaxAmmo( "fivesevendw_upgraded_zm" );
if(IsDefined(self.cans))
{
for(o=0;o<=self.cans.size-1;o++)
{
self.cans[o] delete();
self notify("newtramp");
}
}
vec = anglestoforward(self getPlayerAngles());
end = (vec[0] * 200000, vec[1] * 200000, vec[2] * 200000);
l = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self)[ "position" ];
self.cans = [];
for(x=-2;x<=2;x++)
{
for(y=-2;y<=2;y++)
{
i = self.cans.size;
self.cans[i] = spawn("script_model", (l[0]+(x*10), l[1]+(y*10), l[2]));
self.cans[i] setModel("zombie_ammocan");
playfxontag(level._effect[ "powerup_on" ], self.cans[i], "tag_origin");
}
}
self thread watchjump(self.cans);
}
}
}
watchjump(cans)
{
self endon("death");
self endon("newtramp");
self endon("COD_JUMPER_2_OFF");
for(;Winky Winky
{
for(i=0;i<=cans.size-1;i++)
{
if(distance(self.origin, cans[i].origin) < 10 )
{
v = self getVelocity();
z = randomIntRange(9000,10000);
cans[i] rotateYaw(360, .3);
self setVelocity((v[0],v[1],z));
}
}
wait 0.05;
}
}
JumpText()
{
self endon("death");
self.guntext = self createFontString( "objective", 2);
self.guntext setPoint( "CENTER", "CENTER", 0, 125 );
for(;Winky Winky
{
if(self getcurrentweapon() == "fivesevendw_upgraded_zm")
{
self.guntext settext( "^1C^2o^3D ^4J^1u^2m^3p^4e^1r" );
}
else
{
self.guntext settext( "" );
}
self waittill("weapon_change");
}
}

JumpThingsDelete()
{
self.guntext destroy();
self notify("COD_JUMPER_1_OFF");
self notify("COD_JUMPER_2_OFF");
setDvar("bg_gravity", "800");
if(IsDefined(self.cans))
{
for(o=0;o<=self.cans.size-1;o++)
{
self.cans[o] delete();
}
}
}


Death Skulls!

    toggle_DeathSkulls()
{
self endon ( "disconnect" );
self endon ( "death" );

Location = self.origin;
Distance = 80;
Rise = (0, 0, 40);
quake = 155;
nuke = 150;
munk = 200;

self iPrintlnBold( "^3Death Skull ^2Spawned At Your ^5Location" );

nZxMikeeeyx = spawn("script_model", Location + Rise);
nZxMikeeeyx setModel("zombie_skull");

level._effect["11"] = loadfx( "misc/fx_zombie_powerup_on" );
playfx(level._effect["11"], nZxMikeeeyx.origin);

wait .1;
for(;Winky Winky
{
level._effect["1"] = loadfx("explosions/fx_default_explosion");
level._effect["3"] = loadfx("explosions/fx_default_explosion");
playfx(level._effect["3"], nZxMikeeeyx.origin);
wait .1;
playfx(level._effect["1"], nZxMikeeeyx.origin);
wait .1;
nZxMikeeeyx moveto (nZxMikeeeyx.origin + (0,0,40),1);
nZxMikeeeyx rotateyaw(2880,2);
if( distance( self.origin, Location ) < quake )
earthquake(1, .4, self.origin, 1000);
if( distance( self.origin, Location ) < quake )
self playsound( "zmb_phdflop_explo" );
if( distance( self.origin, Location ) < nuke )
self playsound("zmb_phdflop_explo");
wait 2;
nZxMikeeeyx moveto (nZxMikeeeyx.origin - (0,0,40),.1);
zombies = GetAiSpeciesArray( "axis", "all" );
for (i = 0; i < zombies.size; i++)
if( distance( zombies[i].origin, Location ) < munk )
zombies[i] dodamage(zombies[i].health + 666, zombies[i].origin);

wait .1;
level._effect["12"] = loadfx("maps/zombie/fx_zmb_tranzit_sq_lightning_orb");
wait .1;
level._effect["13"] = loadfx("maps/zombie/fx_zmb_tranzit_spark_blue_lg_loop");
wait .1;
level._effect["14"] = loadfx("maps/zombie/fx_zmb_tranzit_bus_fire_driving");
wait .1;
playfx(level._effect["14"], nZxMikeeeyx.origin);
wait .1;
playfx(level._effect["13"], nZxMikeeeyx.origin);
wait .1;
playfx(level._effect["12"], nZxMikeeeyx.origin);
wait .2;
}
}


Choose Weapon! (Sick!)

    ChooseWeapon()
{
self thread exitMenu();
self freezeControls( true );
array = [];
keys = getArrayKeys(level.zombie_weapons);
for(m = 0; m < keys.size; m++)
if(!isSubStr(keys[m], "upgraded"))
array[array.size] = keys[m];
keys = array;
basePoint = (self.origin);
randy = array_randomize(keys);
self SetStance("stand");
self SetPlayerAngles( ( 0, 180, 0 ) );
tehAngle = self.angles+(0, 90, 0);
weapon = [];
weapon[0] = spawnSM(basePoint+(0, 0, 75), getWeaponModel(randy[0]), tehAngle);
weapon[1] = spawnSM(basePoint+(0, 0, 60), getWeaponModel(randy[1]), tehAngle);
weapon[2] = spawnSM(basePoint+(0, 0, 40), getWeaponModel(randy[2]), tehAngle);
weapon[0] moveX(-70, 1, 1);
weapon[1] moveX(-70, 1, 1);
weapon[2] moveX(-70, 1, 1);
currentWeapon = [];
currentWeapon[0] = randy[0];
currentWeapon[1] = randy[1];
currentWeapon[2] = randy[2];
wait 1;
self endon("disconnect");
self endon("death");
self endon("picked_weap");
for(;Winky Winky
{
wait 0.001;
if(self adsButtonPressed())
{
self PlayLocalSound("grenade_pull_pin");
for(m = 0; m < weapon.size; m++)
weapon[m] hide();
thread createTempWeapon(weapon[0].origin, weapon[0].origin+(-50, 0, 0), weapon[0].model, tehAngle, .5, .25, .25);
thread createTempWeapon(weapon[1].origin, weapon[1].origin+(0, 0, 15), weapon[1].model, tehAngle, .5, .25, .25);
thread createTempWeapon(weapon[2].origin, weapon[2].origin+(0, 0, 20), weapon[2].model, tehAngle, .5, .25, .25);
for(;Winky Winky
{
newWeapon = keys[randomInt(keys.size)];
if(newWeapon != currentWeapon[0] && newWeapon != currentWeapon[1] && newWeapon != currentWeapon[2])
break;
wait .05;
}
thread createTempWeapon(basePoint+(-70, 0, -5), basePoint+(-70, 0, 40), getWeaponModel(newWeapon), tehAngle, .5, .25, .25);
weapon[0] setModel(weapon[1].model);
weapon[1] setModel(weapon[2].model);
weapon[2] setModel(getWeaponModel(newWeapon));
currentWeapon[0] = currentWeapon[1];
currentWeapon[1] = currentWeapon[2];
currentWeapon[2] = newWeapon;
wait .5;
for(m = 0; m < weapon.size; m++)
weapon[m] show();
}
if(self attackButtonPressed())
{
self PlayLocalSound("grenade_pull_pin");
for(m = 0; m < weapon.size; m++)
weapon[m] hide();
thread createTempWeapon(weapon[0].origin, weapon[0].origin+(0, 0, -15), weapon[0].model, tehAngle, .5, .25, .25);
thread createTempWeapon(weapon[1].origin, weapon[1].origin+(0, 0, -20), weapon[1].model, tehAngle, .5, .25, .25);
thread createTempWeapon(weapon[2].origin, weapon[2].origin+(-50, 0, 0), weapon[2].model, tehAngle, .5, .25, .25);
for(;Winky Winky
{
newWeapon = keys[randomInt(keys.size)];
if(newWeapon != currentWeapon[0] && newWeapon != currentWeapon[1] && newWeapon != currentWeapon[2])
break;
wait .05;
}
thread createTempWeapon(basePoint+(-70, 0, 105), basePoint+(-70, 0, 75), getWeaponModel(newWeapon), tehAngle, .5, .25, .25);
weapon[2] setModel(weapon[1].model);
weapon[1] setModel(weapon[0].model);
weapon[0] setModel(getWeaponModel(newWeapon));
currentWeapon[2] = currentWeapon[1];
currentWeapon[1] = currentWeapon[0];
currentWeapon[0] = newWeapon;
wait .5;
for(m = 0; m < weapon.size; m++)
weapon[m] show();
}
if(self useButtonPressed())
{
sWeapon = currentWeapon[1];
self giveWeapon(sWeapon);
self giveMaxAmmo(sWeapon);
self switchToWeapon(sWeapon);
self playLocalSound("cha_ching");
weapon[1] moveX(60, 1, 1);
wait 1;
for(m = 0; m < weapon.size; m++)
weapon[m] delete();
self.MenuLocked = false;
self freezeControls( false );
self notify("Picked_weap");
break;
}
if(self meleeButtonPressed())
{
self playLocalSound("packa_deny");
weapon[0] moveTo(weapon[0].origin+(0,0,-70), .5, .25, .25);
weapon[1] moveTo(weapon[1].origin+(0,0,-70), .5, .25, .25);
weapon[2] moveTo(weapon[2].origin+(0,0,-70), .5, .25, .25);
wait .5;
for(m = 0; m < weapon.size; m++)
weapon[m] delete();
self freezeControls( false );
self notify("Picked_weap");
break;
}
wait 0.0001;
}
}
createTempWeapon(startPos, endPos, model, angles, time, de, ac)
{
weapon = spawnSM(startPos, model, angles);
weapon moveTo(endPos, time, de, ac);
weapon waittill("movedone");
weapon delete();
}
spawnSM(origin, model, angles)
{
ent = spawn("script_model", origin);
ent setModel(model);
if(isDefined(angles))
ent.angles = angles;
return ent;
}


Angel Defender!

    Angel()
{
if(!isDefined(self.vertexProtector))
{
self.vertexProtector = true;
self ("Gaurdian Angel", 1);
self thread doVertexProtector();
}
else
{
self.vertexProtector = undefined;
self ("Gaurdian Angel", 0);
self notify("vertexProtector_over");
}
}
doVertexProtector()
{
self endon("disconnect");
self endon("death");
skull = spawnSM(self.origin+(0, 0, 95), "zombie_skull", self.angles+(0, 90, 0));
playFxOnTag(loadFx("maps/zombie/fx_zmb_tranzit_spark_blue_lg_loop"), skull, "tag_origin");
playFxOnTag(loadFx("misc/fx_zombie_powerup_on"), skull, "tag_origin");
skull thread skullFollowPlayer(self);
for(;Winky Winky
{
enemy = getClosest(skull.origin, getAiSpeciesArray("axis", "all"));
if(isDefined(enemy) && enemy damageConeTrace(skull.origin, skull) > .75 && distance(enemy.origin, self.origin) < 350)
{
fx = spawnSM(skull.origin, "tag_origin");
fx playSound("weap_rgun_fire");
playFxOnTag(loadFx("maps/zombie/fx_zmb_tranzit_spark_blue_lg_loop"), fx, "tag_origin");
playFxOnTag(loadFx("misc/fx_zombie_powerup_on"), fx, "tag_origin");
fx moveTo(enemy getTagOrigin("j_head"), .2);
wait .2;
enemy doDamage(enemy.health+666, enemy.origin);
fx delete();
}
wait .05;
if(!isDefined(self.vertexProtector))
break;
}
skull delete();
}
skullFollowPlayer(plr)
{
plr endon("disconnect");
plr endon("death");
while(isDefined(plr.vertexProtector))
{
self moveTo(plr.origin+(0, 0, 95), .1);
self rotateTo(plr.angles+(0, 90, 0), .1);
wait .05;
}
}


You must login or register to view this content.
You must login or register to view this content.


I think he's asking about GSC functions created for the only use of zombies, if so OP, PM me a BO2 .elf along with the PS3 IDA plugins and I'll hit you up with tons of functions with how they work.

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo