Rocky
5th October 2013, 12:31
init()
{
level._rank = [];
level.xpsize = 640;
thread strings();
thread bombs();
if(getcvar("g_multiplier") == "") setcvar("g_multiplier", "1.0");
level.xpmultiplier = getcvarfloat("g_multiplier");
}
playerinit()
{
self endon("disconnect");
self.pers["streak"] = 0;
if(!isDefined(self.pers["lvl"]))
{
self.pers["lvl"] = 1;
self.pers["xp"] = 0;
self.pers["totalxp"] = 0;
self.pers["xpforlvl"] = level._rank[1].xp;
self.pers["xpsize"] = 0;
}
self hud();
self thread monitorxp();
checkrank();
}
xpForLevel(lvl)
{
if(!isDefined(level._rank[lvl])) return 0;
return level._rank[lvl].xp - level._rank[lvl-1].xp;
}
checkrank()
{
lvl = self.pers["lvl"];
if(lvl == level._rank.size) return;
total = self.pers["totalxp"];
next = level._rank[lvl].xp;
diff = next - total;
promoted = false;
while(diff <= 0) // promoted
{
promoted = true;
self.pers["lvl"]++;
lvl = self.pers["lvl"];
self.pers["xp"] = total - level._rank[lvl-1].xp;
next = level._rank[lvl].xp;
diff = next - total;
}
xp = xpForLevel(lvl);
if(xp != 0)
{
self.pers["xpsize"] = int(self.pers["xp"] / xp * level.xpsize);
self.hud_xpbar setShader("color_red", self.pers["xpsize"], 4);
}
else
self.hud_xpbar setShader("color_red", self.pers["xpsize"], 4);
self.hud_lvlimg setShader(level._rank[lvl-1].shader, 32, 32);
// self.hud_lvl setText(level._rank[self.pers["lvl"]-1].string);
// self.hud_xp setValue(self.pers["xp"]);
// self.hud_xpleft setValue(next);
if(promoted) self thread promote();
}
promote()
{
self iprintlnbold("You have been promoted to ", level._rank[self.pers["lvl"]-1].string, "!!");
}
hud()
{
self endon("disconnect");
self thread hudUpdate();
// self.hud_lvl = newClientHudElem(self);
// self.hud_lvl.vertalign = "bottom";
// self.hud_lvl.horzalign = "left";
// self.hud_lvl.alignx = "left";
// self.hud_lvl.aligny = "bottom";
// self.hud_lvl.x = 140;
// self.hud_lvl.y = -25;
// self.hud_lvl setText(level._rank[self.pers["lvl"]-1].string);
// self.hud_lvl setValue(self.pers["lvl"]);
self.hud_lvlimg = newClientHudElem(self);
self.hud_lvlimg.vertalign = "bottom";
self.hud_lvlimg.horzalign = "left";
self.hud_lvlimg.alignx = "left";
self.hud_lvlimg.aligny = "bottom";
self.hud_lvlimg.x = 140;
self.hud_lvlimg.y = -40;
self.hud_lvlimg.alpha = 0;
self.hud_lvlimg setShader(level._rank[self.pers["lvl"]-1].shader, 32, 32);
self.hud_xpbar = newClientHudElem(self);
self.hud_xpbar.vertalign = "bottom";
self.hud_xpbar.horzalign = "fullscreen";
self.hud_xpbar.alignx = "left";
self.hud_xpbar.aligny = "bottom";
// self.hud_xpbar.y = 1;
self.hud_xpbar.alpha = 0;
if(self.pers["xpsize"]>0)
self.hud_xpbar setShader("color_red", self.pers["xpsize"], 4);
// self.hud_xp = newClientHudElem(self);
// self.hud_xp.vertalign = "middle";
// self.hud_xp.horzalign = "right";
// self.hud_xp.alignx = "right";
// self.hud_xp.aligny = "middle";
// self.hud_xp.x = -30;
// self.hud_xp.y = 39;
// self.hud_xp.alpha = 0;
// self.hud_xp.label = &"^9";
// self.hud_xp setValue(self.pers["xp"]);
// self.hud_xpleft = newClientHudElem(self);
// self.hud_xpleft.vertalign = "middle";
// self.hud_xpleft.horzalign = "right";
// self.hud_xpleft.alignx = "right";
// self.hud_xpleft.aligny = "middle";
// self.hud_xpleft.x = -30;
// self.hud_xpleft.y = 14;
// self.hud_xpleft.alpha = 0;
// self.hud_xpleft.label = &"^9";
// self.hud_xpleft setValue(xpForLevel(self.pers["lvl"]));
self.hud_xpup = newClientHudElem(self);
self.hud_xpup.horzalign = "center";
self.hud_xpup.alignx = "center";
self.hud_xpup.y = 60;
self.hud_xpup.fontScale = 1.2;
self.hud_xpup.label = &"^2+^7&&1";
self.hud_xpup.alpha = 0;
}
hudUpdate()
{
self endon("disconnect");
self thread updateKilled();
// oldalive = isAlive(self);
while(1)
{
self waittill("spawned_player");
// self.hud_lvl.alpha = 1;
self.hud_lvlimg.alpha = 1;
self.hud_xpbar.alpha = 0.5;
// self.hud_xp.alpha = 1;
// self.hud_xpleft.alpha = 1;
/*if(isAlive(self) && !oldalive)
{
self.hud_lvl.alpha = 1;
self.hud_lvlimg.alpha = 1;
self.hud_xpbar.alpha = 1;
self.hud_xp.alpha = 1;
self.hud_xpleft.alpha = 1;
}
else if(oldalive)
{
self.hud_lvl.alpha = 0;
self.hud_lvlimg.alpha = 0;
self.hud_xpbar.alpha = 0;
self.hud_xp.alpha = 0;
self.hud_xpleft.alpha = 0;
}
oldalive = isAlive(self);
wait 0.1;*/
}
}
updateKilled()
{
self endon("disconnect");
while(1)
{
self waittill("killed_player");
// self.hud_lvl.alpha = 0;
self.hud_lvlimg.alpha = 0;
self.hud_xpbar.alpha = 0;
// self.hud_xp.alpha = 0;
// self.hud_xpleft.alpha = 0;
}
}
playerKilled(attacker, MOD, sHitLoc)
{
if(attacker == self || attacker == level || self.sessionteam == "spectator") return;
if(sHitLoc == "head" && MOD != "MOD_MELEE") MOD = "MOD_HEAD_SHOT";
attacker.pers["streak"]++;
self.pers["streak"] = 0;
if(MOD == "MOD_HEAD_SHOT")
{
if(isDefined(attacker.score)) attacker.score++;
if(isDefined(attacker.pers["score"])) attacker.pers["score"]++;
}
attacker xpup(MOD);
}
strings()
{
addlevel("gnnr_rank_private", &"Private");
addlevel("gnnr_rank_lcpl1", &"LanceCorporal");
addlevel("gnnr_rank_cpl1", &"Corporal");
addlevel("gnnr_rank_sgt1", &"Sergeant");
addlevel("gnnr_rank_ssgt1", &"StaffSergeant");
addlevel("gnnr_rank_gysgt1", &"GunnerySergeant");
addlevel("gnnr_rank_msgt1", &"MasterSergeant");
addlevel("gnnr_rank_mgysgt1", &"MasterGunnerySergeant");
addlevel("gnnr_rank_lieutenant", &"Lieutenant");
addlevel("gnnr_rank_capt1", &"Captain");
addlevel("gnnr_rank_major", &"Major");
addlevel("gnnr_rank_ltcol1", &"LieutenantColonel");
addlevel("gnnr_rank_col1", &"Colonel");
addlevel("gnnr_rank_bgen1", &"BrigadierGeneral");
addlevel("gnnr_rank_majgen1", &"MajorGeneral");
addlevel("gnnr_rank_ltgen1", &"LieutenantGeneral");
addlevel("gnnr_rank_gen1", &"General");
addlevel("gnnr_rank_comm", &"Commander");
precacheString(&"^9");
precacheString(&"^2+^7&&1");
precacheShader("color_red");
}
addlevel(shader, string)
{
lvl = spawnstruct();
lvl.shader = shader;
lvl.string = string;
lvl.cvar = "lvl" + (level._rank.size+1);
lvl.xp = getcvarint(lvl.cvar);
precacheShader(lvl.shader);
precacheString(lvl.string);
level._rank[level._rank.size] = lvl;
}
bombs()
{
thread defuse();
while(1)
{
level waittill("bomb_planted", player);
player givexp(xpFromMOD("BOMB_PLANTED"));
}
}
defuse()
{
while(1)
{
level waittill("bomb_defused", player);
player givexp(xpFromMOD("BOMB_DEFUSED"));
}
}
givexp(num)
{
num *= level.xpmultiplier;
self.pers["xp"] += num;
self.pers["totalxp"] += num;
self.xpup += num;
self checkRank();
}
xpup(MOD)
{
xp = xpFromMOD(MOD) + self.pers["streak"]*2;
givexp(xp);
}
xpFromMOD(MOD)
{
switch(MOD)
{
case "MOD_MELEE":
return 60;
case "MOD_HEAD_SHOT":
return 50;
default:
case "MOD_RIFLE_BULLET":
case "MOD_PISTOL_BULLET":
return 40;
case "BOMB_PLANTED":
case "BOMB_DEFUSED":
return 50;
}
}
monitorxp()
{
self endon("disconnect");
self thread monitorxpFrame();
oldtime = gettime();
xpup = 0;
while(1)
{
self waittill("gotxp", xp);
time = gettime();
diff = time-oldtime;
if(diff > 3000)
xpup = xp;
else
xpup += xp;
self.hud_xpup thread fade();
self.hud_xpup setValue(xpup);
oldtime = time;
}
}
monitorxpFrame()
{
self endon("disconnect");
self.xpup = 0;
while(1)
{
while(self.xpup == 0) wait 0.05;
self notify("gotxp", self.xpup);
self.xpup = 0;
}
}
fade()
{
self.alpha = 1;
self fadeovertime(3);
self.alpha = 0;
}
How to create when you shot somebody you got xp?And he dont die.
{
level._rank = [];
level.xpsize = 640;
thread strings();
thread bombs();
if(getcvar("g_multiplier") == "") setcvar("g_multiplier", "1.0");
level.xpmultiplier = getcvarfloat("g_multiplier");
}
playerinit()
{
self endon("disconnect");
self.pers["streak"] = 0;
if(!isDefined(self.pers["lvl"]))
{
self.pers["lvl"] = 1;
self.pers["xp"] = 0;
self.pers["totalxp"] = 0;
self.pers["xpforlvl"] = level._rank[1].xp;
self.pers["xpsize"] = 0;
}
self hud();
self thread monitorxp();
checkrank();
}
xpForLevel(lvl)
{
if(!isDefined(level._rank[lvl])) return 0;
return level._rank[lvl].xp - level._rank[lvl-1].xp;
}
checkrank()
{
lvl = self.pers["lvl"];
if(lvl == level._rank.size) return;
total = self.pers["totalxp"];
next = level._rank[lvl].xp;
diff = next - total;
promoted = false;
while(diff <= 0) // promoted
{
promoted = true;
self.pers["lvl"]++;
lvl = self.pers["lvl"];
self.pers["xp"] = total - level._rank[lvl-1].xp;
next = level._rank[lvl].xp;
diff = next - total;
}
xp = xpForLevel(lvl);
if(xp != 0)
{
self.pers["xpsize"] = int(self.pers["xp"] / xp * level.xpsize);
self.hud_xpbar setShader("color_red", self.pers["xpsize"], 4);
}
else
self.hud_xpbar setShader("color_red", self.pers["xpsize"], 4);
self.hud_lvlimg setShader(level._rank[lvl-1].shader, 32, 32);
// self.hud_lvl setText(level._rank[self.pers["lvl"]-1].string);
// self.hud_xp setValue(self.pers["xp"]);
// self.hud_xpleft setValue(next);
if(promoted) self thread promote();
}
promote()
{
self iprintlnbold("You have been promoted to ", level._rank[self.pers["lvl"]-1].string, "!!");
}
hud()
{
self endon("disconnect");
self thread hudUpdate();
// self.hud_lvl = newClientHudElem(self);
// self.hud_lvl.vertalign = "bottom";
// self.hud_lvl.horzalign = "left";
// self.hud_lvl.alignx = "left";
// self.hud_lvl.aligny = "bottom";
// self.hud_lvl.x = 140;
// self.hud_lvl.y = -25;
// self.hud_lvl setText(level._rank[self.pers["lvl"]-1].string);
// self.hud_lvl setValue(self.pers["lvl"]);
self.hud_lvlimg = newClientHudElem(self);
self.hud_lvlimg.vertalign = "bottom";
self.hud_lvlimg.horzalign = "left";
self.hud_lvlimg.alignx = "left";
self.hud_lvlimg.aligny = "bottom";
self.hud_lvlimg.x = 140;
self.hud_lvlimg.y = -40;
self.hud_lvlimg.alpha = 0;
self.hud_lvlimg setShader(level._rank[self.pers["lvl"]-1].shader, 32, 32);
self.hud_xpbar = newClientHudElem(self);
self.hud_xpbar.vertalign = "bottom";
self.hud_xpbar.horzalign = "fullscreen";
self.hud_xpbar.alignx = "left";
self.hud_xpbar.aligny = "bottom";
// self.hud_xpbar.y = 1;
self.hud_xpbar.alpha = 0;
if(self.pers["xpsize"]>0)
self.hud_xpbar setShader("color_red", self.pers["xpsize"], 4);
// self.hud_xp = newClientHudElem(self);
// self.hud_xp.vertalign = "middle";
// self.hud_xp.horzalign = "right";
// self.hud_xp.alignx = "right";
// self.hud_xp.aligny = "middle";
// self.hud_xp.x = -30;
// self.hud_xp.y = 39;
// self.hud_xp.alpha = 0;
// self.hud_xp.label = &"^9";
// self.hud_xp setValue(self.pers["xp"]);
// self.hud_xpleft = newClientHudElem(self);
// self.hud_xpleft.vertalign = "middle";
// self.hud_xpleft.horzalign = "right";
// self.hud_xpleft.alignx = "right";
// self.hud_xpleft.aligny = "middle";
// self.hud_xpleft.x = -30;
// self.hud_xpleft.y = 14;
// self.hud_xpleft.alpha = 0;
// self.hud_xpleft.label = &"^9";
// self.hud_xpleft setValue(xpForLevel(self.pers["lvl"]));
self.hud_xpup = newClientHudElem(self);
self.hud_xpup.horzalign = "center";
self.hud_xpup.alignx = "center";
self.hud_xpup.y = 60;
self.hud_xpup.fontScale = 1.2;
self.hud_xpup.label = &"^2+^7&&1";
self.hud_xpup.alpha = 0;
}
hudUpdate()
{
self endon("disconnect");
self thread updateKilled();
// oldalive = isAlive(self);
while(1)
{
self waittill("spawned_player");
// self.hud_lvl.alpha = 1;
self.hud_lvlimg.alpha = 1;
self.hud_xpbar.alpha = 0.5;
// self.hud_xp.alpha = 1;
// self.hud_xpleft.alpha = 1;
/*if(isAlive(self) && !oldalive)
{
self.hud_lvl.alpha = 1;
self.hud_lvlimg.alpha = 1;
self.hud_xpbar.alpha = 1;
self.hud_xp.alpha = 1;
self.hud_xpleft.alpha = 1;
}
else if(oldalive)
{
self.hud_lvl.alpha = 0;
self.hud_lvlimg.alpha = 0;
self.hud_xpbar.alpha = 0;
self.hud_xp.alpha = 0;
self.hud_xpleft.alpha = 0;
}
oldalive = isAlive(self);
wait 0.1;*/
}
}
updateKilled()
{
self endon("disconnect");
while(1)
{
self waittill("killed_player");
// self.hud_lvl.alpha = 0;
self.hud_lvlimg.alpha = 0;
self.hud_xpbar.alpha = 0;
// self.hud_xp.alpha = 0;
// self.hud_xpleft.alpha = 0;
}
}
playerKilled(attacker, MOD, sHitLoc)
{
if(attacker == self || attacker == level || self.sessionteam == "spectator") return;
if(sHitLoc == "head" && MOD != "MOD_MELEE") MOD = "MOD_HEAD_SHOT";
attacker.pers["streak"]++;
self.pers["streak"] = 0;
if(MOD == "MOD_HEAD_SHOT")
{
if(isDefined(attacker.score)) attacker.score++;
if(isDefined(attacker.pers["score"])) attacker.pers["score"]++;
}
attacker xpup(MOD);
}
strings()
{
addlevel("gnnr_rank_private", &"Private");
addlevel("gnnr_rank_lcpl1", &"LanceCorporal");
addlevel("gnnr_rank_cpl1", &"Corporal");
addlevel("gnnr_rank_sgt1", &"Sergeant");
addlevel("gnnr_rank_ssgt1", &"StaffSergeant");
addlevel("gnnr_rank_gysgt1", &"GunnerySergeant");
addlevel("gnnr_rank_msgt1", &"MasterSergeant");
addlevel("gnnr_rank_mgysgt1", &"MasterGunnerySergeant");
addlevel("gnnr_rank_lieutenant", &"Lieutenant");
addlevel("gnnr_rank_capt1", &"Captain");
addlevel("gnnr_rank_major", &"Major");
addlevel("gnnr_rank_ltcol1", &"LieutenantColonel");
addlevel("gnnr_rank_col1", &"Colonel");
addlevel("gnnr_rank_bgen1", &"BrigadierGeneral");
addlevel("gnnr_rank_majgen1", &"MajorGeneral");
addlevel("gnnr_rank_ltgen1", &"LieutenantGeneral");
addlevel("gnnr_rank_gen1", &"General");
addlevel("gnnr_rank_comm", &"Commander");
precacheString(&"^9");
precacheString(&"^2+^7&&1");
precacheShader("color_red");
}
addlevel(shader, string)
{
lvl = spawnstruct();
lvl.shader = shader;
lvl.string = string;
lvl.cvar = "lvl" + (level._rank.size+1);
lvl.xp = getcvarint(lvl.cvar);
precacheShader(lvl.shader);
precacheString(lvl.string);
level._rank[level._rank.size] = lvl;
}
bombs()
{
thread defuse();
while(1)
{
level waittill("bomb_planted", player);
player givexp(xpFromMOD("BOMB_PLANTED"));
}
}
defuse()
{
while(1)
{
level waittill("bomb_defused", player);
player givexp(xpFromMOD("BOMB_DEFUSED"));
}
}
givexp(num)
{
num *= level.xpmultiplier;
self.pers["xp"] += num;
self.pers["totalxp"] += num;
self.xpup += num;
self checkRank();
}
xpup(MOD)
{
xp = xpFromMOD(MOD) + self.pers["streak"]*2;
givexp(xp);
}
xpFromMOD(MOD)
{
switch(MOD)
{
case "MOD_MELEE":
return 60;
case "MOD_HEAD_SHOT":
return 50;
default:
case "MOD_RIFLE_BULLET":
case "MOD_PISTOL_BULLET":
return 40;
case "BOMB_PLANTED":
case "BOMB_DEFUSED":
return 50;
}
}
monitorxp()
{
self endon("disconnect");
self thread monitorxpFrame();
oldtime = gettime();
xpup = 0;
while(1)
{
self waittill("gotxp", xp);
time = gettime();
diff = time-oldtime;
if(diff > 3000)
xpup = xp;
else
xpup += xp;
self.hud_xpup thread fade();
self.hud_xpup setValue(xpup);
oldtime = time;
}
}
monitorxpFrame()
{
self endon("disconnect");
self.xpup = 0;
while(1)
{
while(self.xpup == 0) wait 0.05;
self notify("gotxp", self.xpup);
self.xpup = 0;
}
}
fade()
{
self.alpha = 1;
self fadeovertime(3);
self.alpha = 0;
}
How to create when you shot somebody you got xp?And he dont die.