How to create when you shot somebody you got xp?And he dont die.Code: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; }