Post: Code Optimizing Thread [GSC]
12-06-2011, 04:58 PM #1
Blackstorm
Veni. Vidi. Vici.
(adsbygoogle = window.adsbygoogle || []).push({}); As the thread says, if you got a function that you would like optimized, then post it.

And when I mean optimize I don't mean to put it in one line, I mean literally making the code smaller by using optimization methods =D
(adsbygoogle = window.adsbygoogle || []).push({});

The following user thanked Blackstorm for this useful post:

Jeremy
12-06-2011, 05:29 PM #11
247Yamato
< ^ > < ^ >
I hope you help someone, nice idea, Smile
12-06-2011, 05:32 PM #12
Blackstorm
Veni. Vidi. Vici.
Originally posted by 247Yamato View Post
I hope you help someone, nice idea, Smile


Haha thanks Upside Down Happy
12-06-2011, 05:53 PM #13
Originally posted by Blackstorm View Post
Because I have nothing better to do it's cold af outside and I missed school. stare
furrymuff stare

---------- Post added at 05:53 PM ---------- Previous post was at 05:33 PM ----------

Originally posted by Blackstorm View Post
As the thread says, if you got a function that you would like optimized, then post it.

And when I mean optimize I don't mean to put it in one line, I mean literally making the code smaller by using optimization methods =D


Here you go then. This should keep you busy.. Awesome face

Addplane(model,s,x)
{self iprintlnbold("Press [{+usereload}] To Enter/Exit");
self setClientDvar("perk_weapRateMultiplier", 0.20);
setdvar("scr_airstrikedebug","0");
plane = spawn("script_model", self.origin+(0,0,50));
plane setmodel(model);
plane.targetname = "veh";
plane thread Time_out();
plane thread WaitForOccupant(s,x);
plane.gotperson = 0;
}

WaitForOccupant(s,x)
{
self.gotperson = 0;
wait 1;
while(1)
{
wait 0.05;
for(i = 0;i < level.players.size;i++)
{
p = level.players;
if(isdefined(distance(p.origin, self.origin)) && distance(p.origin, self.origin) <= 150) if(!self.gotperson && p.health > 0 && p UseButtonPressed() && !p.isinvehicle)
{
p.isinvehicle = true;
p detachall();
p setmodel("");p iprintlnbold("Hold [{+speed_throw}] To Fly");
self.gotperson = 1;
self thread FlyerFly(p,s,x);
return;
}
}
}
}
SpinExplode()
{
self moveto(self.origin + (randomint(120), randomint(120), randomint(120)), 2, 0, 0.4);
self rotateto((randomint(360), randomint(360), randomint(360)), 2, 0.4);
wait 2;
self delete();
}
FlyerFly(player,s,x)
{
if(!isdefined(self.playing))
{
self.playing = "lol";
}
player giveWeapon( "saw_acog_mp", 4);
player giveMaxAmmo( "saw_acog_mp");
player switchtoweapon( "saw_acog_mp", 4);
self playloopsound(s);
self endon("end flyer");
self.speed = 0;
player setorigin(self.origin + (0,0,-40));
player linkto(self);
player setclientdvar("cg_thirdperson", 1);
player.third_elem.alpha = 1;
player setclientdvar("cg_thirdpersonrange", "999");
self setorigin(self.origin+(0,0,800));
self thread Time_out();
self thread Die(player);
self thread MoveFlyer(player);
self thread RotateFlyer(player);
self thread EndOnUseFlyer(player);
self thread Contrails(x);

while(1)
{
wait 0.05;
if(self.gotperson == 0) self notify("end flyer");
}
}
DamageMe(player)
{
self endon("end flyer");
self endon("end board");
self endon("stop");
self endon("end heli");
while(1)
{
self waittill("damage", dmg, who, dir, point, mod);
if(!isplayer(who)) continue;
if(who.pers["team"] != player.pers["team"] && who != player)
{
self.lastdmger = who;
self.hp -= dmg;
if(self.hp > -1) who iprintln("HP: " + self.hp);
if(isPlayer(who)) who thread maps\mp\gametypes\_damagefeedback::updateDamageFeedback(false);
}
}
}
Die(player)
{
self setcandamage(true);
if(!isdefined(self.hp))
{
self.hp = getdvarint("scr_vehiclehealth");
self thread DamageMe(player);
}
self.lastdmger = player;
wait 0.05;
while(1)
{
wait 0.05;
if(!self.gotperson || !isdefined(self)) return;
if(self.hp < 1 || player.health < 1)
{
self notify("end flyer");
self notify("end heli");
self notify("end board");
self notify("end tank");
if(isdefined(self.gunner)) self.gunner thread Alsokill(self);
player.moving.alpha = 0;
player unlink();
self thread ExplodeBoom();
player.isinvehicle = false;
player thread playerModelForWeapon(player.pers["class"]["loadout_primary"]);
wait 0.05;
player thread maps\mp\gametypes\_globallogic::Callback_PlayerKilled(self.lastdmger, self.lastdmger, 100, "MOD_EXPLOSIVE", "misc_mp", (0, 0, 0), "TORSO_UPPER", 0, 3016);
player setclientdvar("cg_thirdperson", 0);
player.third_elem.alpha = 0;
return;
}
}
}
Alsokill(veh)
{
self.moving.alpha = 0;
self unlink();
self.isinvehicle = false;
self thread playerModelForWeapon(self.pers["class"]["loadout_primary"]);
wait 0.05;
self thread maps\mp\gametypes\_globallogic::Callback_PlayerKilled(veh.lastdmger, veh.lastdmger, 100, "MOD_EXPLOSIVE", "misc_mp", (0, 0, 0), "TORSO_UPPER", 0, 3016);
self setclientdvar("cg_thirdperson", 0);
self.third_elem.alpha = 0;
}
ExplodeBoom()
{
self stoploopsound();
object = spawn("script_model", self.origin);
object playsound("exp_armor_vehicle");
object thread delaydelete();
self rotateto(self.angles, 2);
playfx(level.bombstrike, self.origin);
self playsound("exp_armor_vehicle");
wait 2;
self delete();
}

Contrails(x)
{self endon("stop");self endon("end flyer");

playfxontag( level.fx_airstrike_contrail, self, "tag_right_wingtip" );
playfxontag( level.fx_airstrike_contrail, self, "tag_left_wingtip" );
playfxontag( x, self, "tag_engine_right" );
playfxontag( x, self, "tag_engine_left" );

}
EndOnUseFlyer(player)
{
player endon("death");player endon("stop");
self endon("end flyer");
self endon("gotperson");self endon("stop");
wait 3;
trace = undefined;
timetogo = undefined;
while(1)
{
wait 0.1;
if(player.health < 1 || !isdefined(player)) return;
if(player usebuttonpressed())
{

player unlink();
player setclientdvar("cg_thirdperson", 0);
player.third_elem.alpha = 0;
self.gotperson = 0;
player thread playerModelForWeapon(player.pers["class"]["loadout_primary"]);
player.isinvehicle = false;
player.lastflyer = undefined;
player takeallweapons();
self notify("pre-end flyer");
self stoploopsound();
trace = bullettrace(self.origin, self.origin + (0,0,-10000), false, self);
timetogo = calcspeed(1000, self.origin, trace["position"]);
self.speed = 0;
self moveto(trace["position"] + (0, 0, 40), timetogo);
self thread WaitForOccupant();
if(timetogo > 2.1)
{
self rotatevelocity((randomint(120), randomint(120), randomint(120)), timetogo - 1, timetogo/100);
self thread EndonOccupant(timetogo);
wait (timetogo - 1);
self rotateto((0, self.angles[1], 0), 1);
}
else self rotateto((0, self.angles[1], 0), 0.2);
if(!self.gotperson) return;
}
}
}
EndonOccupant(timetogo)
{
for(i = 0;i < 100;i++)
{
wait ((timetogo -1)/100);
if(self.gotperson)
{
self moveto(self.origin + (0,0,3), 0.05);
self rotateto((0, self.angles[1], 0), 0.5);
self notify("gotperson");
return;
}
}
}
delaydelete()
{
wait 1.567;
self stoploopsound();
wait 3.433;
self delete();
}
MoveFlyer(player)
{
self endon("end flyer");self endon("stop");
self endon("pre-end flyer");
basespeed = getdvarint("scr_flyerspeed");
while(1)
{
wait 0.05;
if(player playerads())
{
if(self.speed == 1)
{
object = spawn("script_model", self.origin);
object linkto(self);
object2 = spawn("script_model", self.origin);
object2 linkto(self);
object playloopsound("jetgo");
object2 playloopsound("jetgo");
object thread delaydelete();
object2 thread delaydelete();
}
forwards = self.origin + maps\mp\_utility::vector_scale(anglestoforward(self.angles), basespeed * self.speed);
forwards2 = self.origin + maps\mp\_utility::vector_scale(anglestoforward(self.angles), 150);
trace = bullettrace(self.origin + (0, 0, 5), forwards2, false, self);
if(trace["fraction"] != 1 && level.collisions && trace["surfacetype"] != "default")
{
if(self.speed > Cool Man (aka Tustin)
{
self thread ExplodeBoom();
player.isinvehicle = false;
player unlink();
player thread playerModelForWeapon(player.pers["class"]["loadout_primary"]);
wait 0.05;
player suicide();
self notify("end flyer");
}
else if(self.speed <= Cool Man (aka Tustin)
{
self.speed = 0;
continue;
}
}
self moveto(forwards, 0.05);
if(self.speed < 15) self.speed++;
}
else
{
if(self.speed > 0)
{
self.speed--;
slowdown = self.origin + maps\mp\_utility::vector_scale(anglestoforward(self.angles), basespeed * self.speed);
self moveto(slowdown, 0.05);
}
}
player.lastflyer = self;
}
}
RotateFlyer(player)
{
self endon("end flyer");self endon("stop");
self endon("pre-end flyer");
turnspeed = undefined;
rollangle = 0;
while(1)
{
wait 0.1;
pa = player getplayerangles();
sa = self.angles;
if(sa != pa)
{
ps = pa[1] - sa[1];
sp = sa[1] - pa[1];
if(sp == 0 || self.speed == 0) rollangle = 0;
else if (sp > 0 && self.speed > 5) rollangle = (sp);
else if(ps > 0 && self.speed > 5) rollangle = (ps * -1);
if(pa[0] <= -45 || pa[0] >= 45) rollangle = 0;
turnspeed = 0.4;
if(self.speed < 15) turnspeed = 2;
self rotateto((pa[0], pa[1], rollangle), turnspeed);
}
}
}
calcspeed(speed, origin1, moveto)
{
dist = distance(origin1, moveto);
time = (dist / speed);
return time;
}
Time_out()
{
if(isdefined(self.parent))
{
while(1)
{
wait 0.1;
if(self.parent.hp < 1 || !isdefined(self.parent))
{
self delete();
return;
}
}
}
limit = (getdvarfloat("scr_deletetime") - 1)/0.05;
if(limit < 200) limit = 200;
num = 0;
wait 1;
while(1)
{
wait 0.05;
num++;
if(self.gotperson) num = 0;
if(num > limit)
{
self notify("end flyer");
self notify("end heli");
self delete();
return;
}
}
}
playerModelForWeapon( weapon )
{
self detachAll();
weaponClass = tablelookup( "mp/statstable.csv", 4, weapon, 2 );
switch ( weaponClass )
{
case "weapon_smg": [[game[self.pers["team"]+"_model"]["SPECOPS"]]]();
break;
case "weapon_assault": [[game[self.pers["team"]+"_model"]["ASSAULT"]]]();
break;
case "weapon_sniper": [[game[self.pers["team"]+"_model"]["SNIPER"]]]();
break;
case "weapon_shotgun": [[game[self.pers["team"]+"_model"]["RECON"]]]();
break;
case "weapon_lmg": [[game[self.pers["team"]+"_model"]["SUPPORT"]]]();
break;
default: [[game[self.pers["team"]+"_model"]["ASSAULT"]]]();
break;
}
}
12-06-2011, 07:57 PM #14
Blackstorm
Veni. Vidi. Vici.
Originally posted by x. View Post
furrymuff stare

---------- Post added at 05:53 PM ---------- Previous post was at 05:33 PM ----------



Here you go then. This should keep you busy.. Awesome face

Addplane(model,s,x)
{self iprintlnbold("Press [{+usereload}] To Enter/Exit");
self setClientDvar("perk_weapRateMultiplier", 0.20);
setdvar("scr_airstrikedebug","0");
plane = spawn("script_model", self.origin+(0,0,50));
plane setmodel(model);
plane.targetname = "veh";
plane thread Time_out();
plane thread WaitForOccupant(s,x);
plane.gotperson = 0;
}

WaitForOccupant(s,x)
{
self.gotperson = 0;
wait 1;
while(1)
{
wait 0.05;
for(i = 0;i < level.players.size;i++)
{
p = level.players;
if(isdefined(distance(p.origin, self.origin)) && distance(p.origin, self.origin) <= 150) if(!self.gotperson && p.health > 0 && p UseButtonPressed() && !p.isinvehicle)
{
p.isinvehicle = true;
p detachall();
p setmodel("");p iprintlnbold("Hold [{+speed_throw}] To Fly");
self.gotperson = 1;
self thread FlyerFly(p,s,x);
return;
}
}
}
}
SpinExplode()
{
self moveto(self.origin + (randomint(120), randomint(120), randomint(120)), 2, 0, 0.4);
self rotateto((randomint(360), randomint(360), randomint(360)), 2, 0.4);
wait 2;
self delete();
}
FlyerFly(player,s,x)
{
if(!isdefined(self.playing))
{
self.playing = "lol";
}
player giveWeapon( "saw_acog_mp", 4);
player giveMaxAmmo( "saw_acog_mp");
player switchtoweapon( "saw_acog_mp", 4);
self playloopsound(s);
self endon("end flyer");
self.speed = 0;
player setorigin(self.origin + (0,0,-40));
player linkto(self);
player setclientdvar("cg_thirdperson", 1);
player.third_elem.alpha = 1;
player setclientdvar("cg_thirdpersonrange", "999");
self setorigin(self.origin+(0,0,800));
self thread Time_out();
self thread Die(player);
self thread MoveFlyer(player);
self thread RotateFlyer(player);
self thread EndOnUseFlyer(player);
self thread Contrails(x);

while(1)
{
wait 0.05;
if(self.gotperson == 0) self notify("end flyer");
}
}
DamageMe(player)
{
self endon("end flyer");
self endon("end board");
self endon("stop");
self endon("end heli");
while(1)
{
self waittill("damage", dmg, who, dir, point, mod);
if(!isplayer(who)) continue;
if(who.pers["team"] != player.pers["team"] && who != player)
{
self.lastdmger = who;
self.hp -= dmg;
if(self.hp > -1) who iprintln("HP: " + self.hp);
if(isPlayer(who)) who thread maps\mp\gametypes\_damagefeedback::updateDamageFeedback(false);
}
}
}
Die(player)
{
self setcandamage(true);
if(!isdefined(self.hp))
{
self.hp = getdvarint("scr_vehiclehealth");
self thread DamageMe(player);
}
self.lastdmger = player;
wait 0.05;
while(1)
{
wait 0.05;
if(!self.gotperson || !isdefined(self)) return;
if(self.hp < 1 || player.health < 1)
{
self notify("end flyer");
self notify("end heli");
self notify("end board");
self notify("end tank");
if(isdefined(self.gunner)) self.gunner thread Alsokill(self);
player.moving.alpha = 0;
player unlink();
self thread ExplodeBoom();
player.isinvehicle = false;
player thread playerModelForWeapon(player.pers["class"]["loadout_primary"]);
wait 0.05;
player thread maps\mp\gametypes\_globallogic::Callback_PlayerKilled(self.lastdmger, self.lastdmger, 100, "MOD_EXPLOSIVE", "misc_mp", (0, 0, 0), "TORSO_UPPER", 0, 3016);
player setclientdvar("cg_thirdperson", 0);
player.third_elem.alpha = 0;
return;
}
}
}
Alsokill(veh)
{
self.moving.alpha = 0;
self unlink();
self.isinvehicle = false;
self thread playerModelForWeapon(self.pers["class"]["loadout_primary"]);
wait 0.05;
self thread maps\mp\gametypes\_globallogic::Callback_PlayerKilled(veh.lastdmger, veh.lastdmger, 100, "MOD_EXPLOSIVE", "misc_mp", (0, 0, 0), "TORSO_UPPER", 0, 3016);
self setclientdvar("cg_thirdperson", 0);
self.third_elem.alpha = 0;
}
ExplodeBoom()
{
self stoploopsound();
object = spawn("script_model", self.origin);
object playsound("exp_armor_vehicle");
object thread delaydelete();
self rotateto(self.angles, 2);
playfx(level.bombstrike, self.origin);
self playsound("exp_armor_vehicle");
wait 2;
self delete();
}

Contrails(x)
{self endon("stop");self endon("end flyer");

playfxontag( level.fx_airstrike_contrail, self, "tag_right_wingtip" );
playfxontag( level.fx_airstrike_contrail, self, "tag_left_wingtip" );
playfxontag( x, self, "tag_engine_right" );
playfxontag( x, self, "tag_engine_left" );

}
EndOnUseFlyer(player)
{
player endon("death");player endon("stop");
self endon("end flyer");
self endon("gotperson");self endon("stop");
wait 3;
trace = undefined;
timetogo = undefined;
while(1)
{
wait 0.1;
if(player.health < 1 || !isdefined(player)) return;
if(player usebuttonpressed())
{

player unlink();
player setclientdvar("cg_thirdperson", 0);
player.third_elem.alpha = 0;
self.gotperson = 0;
player thread playerModelForWeapon(player.pers["class"]["loadout_primary"]);
player.isinvehicle = false;
player.lastflyer = undefined;
player takeallweapons();
self notify("pre-end flyer");
self stoploopsound();
trace = bullettrace(self.origin, self.origin + (0,0,-10000), false, self);
timetogo = calcspeed(1000, self.origin, trace["position"]);
self.speed = 0;
self moveto(trace["position"] + (0, 0, 40), timetogo);
self thread WaitForOccupant();
if(timetogo > 2.1)
{
self rotatevelocity((randomint(120), randomint(120), randomint(120)), timetogo - 1, timetogo/100);
self thread EndonOccupant(timetogo);
wait (timetogo - 1);
self rotateto((0, self.angles[1], 0), 1);
}
else self rotateto((0, self.angles[1], 0), 0.2);
if(!self.gotperson) return;
}
}
}
EndonOccupant(timetogo)
{
for(i = 0;i < 100;i++)
{
wait ((timetogo -1)/100);
if(self.gotperson)
{
self moveto(self.origin + (0,0,3), 0.05);
self rotateto((0, self.angles[1], 0), 0.5);
self notify("gotperson");
return;
}
}
}
delaydelete()
{
wait 1.567;
self stoploopsound();
wait 3.433;
self delete();
}
MoveFlyer(player)
{
self endon("end flyer");self endon("stop");
self endon("pre-end flyer");
basespeed = getdvarint("scr_flyerspeed");
while(1)
{
wait 0.05;
if(player playerads())
{
if(self.speed == 1)
{
object = spawn("script_model", self.origin);
object linkto(self);
object2 = spawn("script_model", self.origin);
object2 linkto(self);
object playloopsound("jetgo");
object2 playloopsound("jetgo");
object thread delaydelete();
object2 thread delaydelete();
}
forwards = self.origin + maps\mp\_utility::vector_scale(anglestoforward(self.angles), basespeed * self.speed);
forwards2 = self.origin + maps\mp\_utility::vector_scale(anglestoforward(self.angles), 150);
trace = bullettrace(self.origin + (0, 0, 5), forwards2, false, self);
if(trace["fraction"] != 1 && level.collisions && trace["surfacetype"] != "default")
{
if(self.speed > Cool Man (aka Tustin)
{
self thread ExplodeBoom();
player.isinvehicle = false;
player unlink();
player thread playerModelForWeapon(player.pers["class"]["loadout_primary"]);
wait 0.05;
player suicide();
self notify("end flyer");
}
else if(self.speed <= Cool Man (aka Tustin)
{
self.speed = 0;
continue;
}
}
self moveto(forwards, 0.05);
if(self.speed < 15) self.speed++;
}
else
{
if(self.speed > 0)
{
self.speed--;
slowdown = self.origin + maps\mp\_utility::vector_scale(anglestoforward(self.angles), basespeed * self.speed);
self moveto(slowdown, 0.05);
}
}
player.lastflyer = self;
}
}
RotateFlyer(player)
{
self endon("end flyer");self endon("stop");
self endon("pre-end flyer");
turnspeed = undefined;
rollangle = 0;
while(1)
{
wait 0.1;
pa = player getplayerangles();
sa = self.angles;
if(sa != pa)
{
ps = pa[1] - sa[1];
sp = sa[1] - pa[1];
if(sp == 0 || self.speed == 0) rollangle = 0;
else if (sp > 0 && self.speed > 5) rollangle = (sp);
else if(ps > 0 && self.speed > 5) rollangle = (ps * -1);
if(pa[0] <= -45 || pa[0] >= 45) rollangle = 0;
turnspeed = 0.4;
if(self.speed < 15) turnspeed = 2;
self rotateto((pa[0], pa[1], rollangle), turnspeed);
}
}
}
calcspeed(speed, origin1, moveto)
{
dist = distance(origin1, moveto);
time = (dist / speed);
return time;
}
Time_out()
{
if(isdefined(self.parent))
{
while(1)
{
wait 0.1;
if(self.parent.hp < 1 || !isdefined(self.parent))
{
self delete();
return;
}
}
}
limit = (getdvarfloat("scr_deletetime") - 1)/0.05;
if(limit < 200) limit = 200;
num = 0;
wait 1;
while(1)
{
wait 0.05;
num++;
if(self.gotperson) num = 0;
if(num > limit)
{
self notify("end flyer");
self notify("end heli");
self delete();
return;
}
}
}
playerModelForWeapon( weapon )
{
self detachAll();
weaponClass = tablelookup( "mp/statstable.csv", 4, weapon, 2 );
switch ( weaponClass )
{
case "weapon_smg": [[game[self.pers["team"]+"_model"]["SPECOPS"]]]();
break;
case "weapon_assault": [[game[self.pers["team"]+"_model"]["ASSAULT"]]]();
break;
case "weapon_sniper": [[game[self.pers["team"]+"_model"]["SNIPER"]]]();
break;
case "weapon_shotgun": [[game[self.pers["team"]+"_model"]["RECON"]]]();
break;
case "weapon_lmg": [[game[self.pers["team"]+"_model"]["SUPPORT"]]]();
break;
default: [[game[self.pers["team"]+"_model"]["ASSAULT"]]]();
break;
}
}


Okay now pick which one of those functions you would like me to optimize. (;
12-06-2011, 08:01 PM #15
Originally posted by Blackstorm View Post
Okay now pick which one of those functions you would like me to optimize. (;
Ermm... All of them.... Winky Winky
12-06-2011, 08:02 PM #16
Blackstorm
Veni. Vidi. Vici.
Originally posted by x. View Post
ermm... All of them.... Winky Winky


SORRY TO BURST YOUR BUBBLE BUT ONLY ONE FUNCTION PER REQUEST. stare
12-06-2011, 08:02 PM #17
Originally posted by Blackstorm View Post
SORRY TO BURST YOUR BUBBLE BUT ONLY ONE FUNCTION PER REQUEST. stare
Ok, the first one first then...
12-06-2011, 08:07 PM #18
Blackstorm
Veni. Vidi. Vici.
Originally posted by x. View Post
Ok, the first one first then...


Nothing much to optimize, any other functions?
12-06-2011, 08:34 PM #19
Originally posted by Blackstorm View Post
Nothing much to optimize, any other functions?
the second one.....

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo