Results 1 to 10 of 69

Thread: Saving a variable client-side (persistently)

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #19
    Private
    Join Date
    Apr 2020
    Posts
    66
    Thanks
    28
    Thanked 14 Times in 13 Posts
    Ok so i made a basic hud for displaying some of the player stats i use. It's probably not the most efficient one (especially the part with the rank names) but i want to share it anyways. Suggestions and corrections are welcome.

    Code:
    #include maps\mp\gametypes\_stattracking;
    
    init1()
    {
    
    	game["deaths"] = &"^6Total Deaths: ^7";
    	game["kills"] = &"^3Total kills: ^7";
    	game["headshots"] = &"^3Headshots: ^7";
    	game["suicides"] = &"^6Suicides: ^7";
    	game["rank"] = &"^8Rank: ^5";
    	game["killstreak"] = &"^3Longest Killstreak: ^7";
    	game["melee"] = &"^3Melee kills: ^7";
    	game["teamkills"] = &"^6Team kills: ^7";
    
    	precacheShader("white");
    	precacheString(game["deaths"]);
    	precacheString(game["kills"]);
    	precacheString(game["headshots"]);
    	precacheString(game["melee"]);
    	precacheString(game["suicides"]);
    	precacheString(game["rank"]);
    	precacheString(game["killstreak"]);
    	precacheString(game["teamkills"]);
    
    
    	level thread onPlayerConnect();
    	level thread ranknamesinit();
    }
    
    onPlayerConnect()
    {
    	for(;;)
    	{
    		level waittill("connecting", player);
    
    		player thread onPlayerSpawned();
    		player thread onJoinedTeam();
    		player thread onJoinedSpectators();
    		player thread onUpdatePlayerScoreHUD();
    		
    	}
    }
    
    onJoinedTeam()
    {
    	self endon("disconnect");
    	
    	for(;;)
    	{
    		self waittill("joined_team");
    		self thread removePlayerHUD();
    	}
    }
    
    onJoinedSpectators()
    {
    	self endon("disconnect");
    	
    	for(;;)
    	{
    		self waittill("joined_spectators");
    		self thread removePlayerHUD();
    	}
    }
    
    onPlayerSpawned()
    {
    	self endon("disconnect");
    		offset=0;
    	gametype = getCvar("g_gametype");
    	frf="0";
    	frf= getCvar("scr_friendlyfire");
    	if(gametype == "tdm")
    		offset=25;
    	
    	for(;;)
    	{
    		self waittill("spawned_player");
    		
    		if(!isdefined(self.hud_kills))
    		{
    		    self.hud_kills = newClientHudElem(self);
    		    self.hud_kills.horzAlign = "left";
    		    self.hud_kills.vertAlign = "top";
    		    self.hud_kills.x = 10;
    		    self.hud_kills.y = 50 + offset;
    		    self.hud_kills.font = "default";
    		    self.hud_kills.fontscale = .8;
    		    self.hud_kills.archived = false;
    			self.hud_kills.label = game["kills"];
    		}
    		
    		if(!isdefined(self.hud_deaths))
    		{
    		    self.hud_deaths = newClientHudElem(self);
    		    self.hud_deaths.horzAlign = "left";
    		    self.hud_deaths.vertAlign = "top";
    		    self.hud_deaths.x = 10;
    		    self.hud_deaths.y = 58 + offset;
    		    self.hud_deaths.font = "default";
    		    self.hud_deaths.fontscale = .8;
    		    self.hud_deaths.archived = false;
    			self.hud_deaths.label = game["deaths"];
    		}
    		
    		if(!isdefined(self.hud_suicides))
    		{
    		    self.hud_suicides = newClientHudElem(self);
    		    self.hud_suicides.horzAlign = "left";
    		    self.hud_suicides.vertAlign = "top";
    		    self.hud_suicides.x = 10;
    		    self.hud_suicides.y = 66 + offset;
    		    self.hud_suicides.font = "default";
    		    self.hud_suicides.fontscale = .8;
    		    self.hud_suicides.archived = false;
    			self.hud_suicides.label = game["suicides"];
    		}
    		
    		if(!isdefined(self.hud_headshots))
    		{
    		    self.hud_headshots = newClientHudElem(self);
    		    self.hud_headshots.horzAlign = "left";
    		    self.hud_headshots.vertAlign = "top";
    		    self.hud_headshots.x = 10;
    		    self.hud_headshots.y = 74 + offset;
    		    self.hud_headshots.font = "default";
    		    self.hud_headshots.fontscale = .8;
    		    self.hud_headshots.archived = false;
    			self.hud_headshots.label = game["headshots"];
    		}
    		
    		if(!isdefined(self.hud_melee))
    		{
    		    self.hud_melee = newClientHudElem(self);
    		    self.hud_melee.horzAlign = "left";
    		    self.hud_melee.vertAlign = "top";
    		    self.hud_melee.x = 10;
    		    self.hud_melee.y = 82 + offset;
    		    self.hud_melee.font = "default";
    		    self.hud_melee.fontscale = .8;
    		    self.hud_melee.archived = false;
    			self.hud_melee.label = game["melee"];
    		}
    		
    		if(!isdefined(self.hud_lkillstr))
    		{
    		    self.hud_lkillstr = newClientHudElem(self);
    		    self.hud_lkillstr.horzAlign = "left";
    		    self.hud_lkillstr.vertAlign = "top";
    		    self.hud_lkillstr.x = 10;
    		    self.hud_lkillstr.y = 90 + offset;
    		    self.hud_lkillstr.font = "default";
    		    self.hud_lkillstr.fontscale = .8;
    		    self.hud_lkillstr.archived = false;
    			self.hud_lkillstr.label = game["killstreak"];
    		}
    		
    		if(!isdefined(self.hud_rank))
    		{
    		    self.hud_rank = newClientHudElem(self);
    		    self.hud_rank.horzAlign = "left";
    		    self.hud_rank.vertAlign = "top";
    		    self.hud_rank.x = 10;
    		    self.hud_rank.y = 98 + offset;
    		    self.hud_rank.font = "default";
    		    self.hud_rank.fontscale = .8;
    		    self.hud_rank.archived = false;
    			self.hud_rank.label = game["rank"];
    		}
    		
    		if(!isdefined(self.hud_teamkills) && gametype=="tdm" && frf=="1")
    		{
    		    self.hud_teamkills = newClientHudElem(self);
    		    self.hud_teamkills.horzAlign = "left";
    		    self.hud_teamkills.vertAlign = "top";
    		    self.hud_teamkills.x = 10;
    		    self.hud_teamkills.y = 106 + offset;
    		    self.hud_teamkills.font = "default";
    		    self.hud_teamkills.fontscale = .8;
    		    self.hud_teamkills.archived = false;
    			self.hud_teamkills.label = game["teamkills"];
    		}
    		
    		
    		
    		self thread updatePlayerScoreHUD();
    	}
    }
    
    onUpdatePlayerScoreHUD()
    {
    	for(;;)
    	{
    		self waittill("update_playerscore_hud");
    		self thread updatePlayerScoreHUD();
    	}
    }
    
    updatePlayerScoreHUD()
    {
    	if(isDefined(self.hud_deaths))
    	{
    		deaths = self getstat("deaths");
    		self.hud_deaths setValue(deaths);
    	}
    		
    	if(isDefined(self.hud_headshots))
    	{
    		headshots = self getstat("headshots");
    		self.hud_headshots setValue(headshots);
    	}
    	
    	if(isDefined(self.hud_kills))
    	{
    		kills= self getstat("kills");
    		self.hud_kills setValue(kills);
    	}
    	
    	if(isdefined(self.hud_suicides))
    	{
    		suicides= self getstat("suicides");
    		self.hud_suicides setValue(suicides);
    	}
    	
    	if(isdefined(self.hud_melee))
    	{
    		melee= self getstat("meleekills");
    		self.hud_melee setValue(melee);
    	}
    	
    	if(isdefined(self.hud_lkillstr))
    	{
    		lkillstr= self getstat("longest_killstreak");
    		self.hud_lkillstr setValue(lkillstr);
    	}
    	
    	if(isdefined(self.hud_rank))
    	{
    		rank= self getstat("rank");
    		self getrankname(rank);
    	}
    	
    	if(isdefined(self.hud_teamkills))
    	{
    		teamkills= self getstat("teamkills");
    		self.hud_teamkills setValue(teamkills);
    	}
    }
    
    removePlayerHUD()
    {
    
    
    	if(isDefined(self.hud_deaths))
    		self.hud_deaths destroy();
    		
    	if(isDefined(self.hud_headshots))
    		self.hud_headshots destroy();
    	
    	if(isDefined(self.hud_kills))
    		self.hud_kills destroy();
    	
    	if(isdefined(self.hud_suicides))
    		self.hud_suicides destroy();
    	
    	
    	if(isdefined(self.hud_melee))
    		self.hud_melee destroy();
    	
    	
    	if(isdefined(self.hud_lkillstr))
    		self.hud_lkillstr destroy();
    
    	
    	if(isdefined(self.hud_rank))
    		self.hud_rank destroy();
    		
    	if(isdefined(self.hud_teamkills))
    		self.hud_teamkills destroy();
    	
    }
    
    getrankname(rank)
    {
    	switch(rank)
    	{
    	case 0:
    		self.hud_rank setText(game["0"]);
    		break;
    		
    	case 1:
    		self.hud_rank setText(game["1"]);
    		break;
    	
    	case 2:
    		self.hud_rank setText(game["2"]);
    		break;
    	
    	case 3:
    		self.hud_rank setText(game["3"]);
    		break;
    	
    	case 4:
    		self.hud_rank setText(game["4"]);
    		break;	
    		
    	case 5:
    		self.hud_rank setText(game["5"]);
    		break;
    		
    	case 6:
    		self.hud_rank setText(game["6"]);
    		break;
    	
    	case 7:
    		self.hud_rank setText(game["7"]);
    		break;
    
    	case 8:
    		self.hud_rank setText(game["8"]);
    		break;
    		
    	case 9:
    		self.hud_rank setText(game["9"]);
    		break;
    		
    	case 10:
    		self.hud_rank setText(game["10"]);
    		break;
    		
    	case 11:
    		self.hud_rank setText(game["11"]);
    		break;
    		
    	case 12:
    		self.hud_rank setText(game["12"]);
    		break;
    		
    	case 13:
    		self.hud_rank setText(game["13"]);
    		break;
    		
    	case 14:
    		self.hud_rank setText(game["14"]);
    		break;
    		
    	case 15:
    		self.hud_rank setText(game["15"]);
    		break;
    
    	case 16:
    		self.hud_rank setText(game["16"]);
    		break;
    				
    	case 17:
    		self.hud_rank setText(game["17"]);
    		break;
    		
    	case 18:
    		self.hud_rank setText(game["18"]);
    		break;
    
    	case 19:
    		self.hud_rank setText(game["19"]);
    		break;
    
    	case 20:
    		self.hud_rank setText(game["20"]);
    		break;
    
    	case 21:
    		self.hud_rank setText(game["21"]);
    		break;
    				
    	case 22:
    		self.hud_rank setText(game["22"]);
    		break;
    		
    	case 23:
    		self.hud_rank setText(game["23"]);
    		break;
    
    	case 24:
    		self.hud_rank setText(game["24"]);
    		break;
    	
    	case 25:
    		self.hud_rank setText(game["25"]);
    		break;
    		
    	case 26:
    		self.hud_rank setText(game["26"]);
    		break;
    	
    	case 27:
    		self.hud_rank setText(game["27"]);
    		break;
    	
    	case 28:
    		self.hud_rank setText(game["28"]);
    		break;
    	
    	case 29:
    		self.hud_rank setText(game["29"]);
    		break;	
    		
    	case 30:
    		self.hud_rank setText(game["30"]);
    		break;
    		
    	case 31:
    		self.hud_rank setText(game["31"]);
    		break;
    	
    	case 32:
    		self.hud_rank setText(game["32"]);
    		break;
    
    	case 33:
    		self.hud_rank setText(game["33"]);
    		break;
    		
    	case 34:
    		self.hud_rank setText(game["34"]);
    		break;
    		
    	case 35:
    		self.hud_rank setText(game["35"]);
    		break;
    		
    	case 36:
    		self.hud_rank setText(game["36"]);
    		break;
    		
    	case 37:
    		self.hud_rank setText(game["37"]);
    		break;
    		
    	case 38:
    		self.hud_rank setText(game["38"]);
    		break;
    		
    	case 39:
    		self.hud_rank setText(game["39"]);
    		break;
    		
    	case 40:
    		self.hud_rank setText(game["40"]);
    		break;
    
    	case 41:
    		self.hud_rank setText(game["41"]);
    		break;
    				
    	case 42:
    		self.hud_rank setText(game["42"]);
    		break;
    		
    	case 43:
    		self.hud_rank setText(game["43"]);
    		break;
    
    	case 44:
    		self.hud_rank setText(game["44"]);
    		break;
    
    	case 45:
    		self.hud_rank setText(game["45"]);
    		break;
    
    	case 46:
    		self.hud_rank setText(game["46"]);
    		break;
    				
    	case 47:
    		self.hud_rank setText(game["47"]);
    		break;
    		
    	case 48:
    		self.hud_rank setText(game["48"]);
    		break;
    
    	case 49:
    		self.hud_rank setText(game["49"]);
    		break;
    		
    	case 50:
    		self.hud_rank setText(game["50"]);
    		break;
    		
    	case 51:
    		self.hud_rank setText(game["51"]);
    		break;
    
    	case 52:
    		self.hud_rank setText(game["52"]);
    		break;
    
    	case 53:
    		self.hud_rank setText(game["53"]);
    		break;
    
    	case 54:
    		self.hud_rank setText(game["54"]);
    		break;
    				
    	}
    }
    	
    	
    ranknamesinit()
    {
    game["0"] = &"Private First Class";
    game["1"] = &"Private First Class I"; 
    game["2"] = &"Private First Class II";
    game["3"] = &"Lance Corporal";
    game["4"] = &"Lance Corporal I";
    game["5"] = &"Lance Corporal II";
    game["6"] = &"Corporal";
    game["7"] = &"Corporal I";
    game["8"] = &"Corporal II";
    game["9"] = &"Sergeant";
    game["10"] = &"Sergeant I";
    game["11"] = &"Sergeant II";
    game["12"] = &"Staff Sergeant";
    game["13"] = &"Staff Sergeant I";
    game["14"] = &"Staff Sergeant II";
    game["15"] = &"Gunnery Sergeant";
    game["16"] = &"Gunnery Sergeant I";
    game["17"] = &"Gunnery Sergeant II";
    game["18"] = &"Master Sergeant";
    game["19"] = &"Master Sergeant I";
    game["20"] = &"Master Sergeant II";
    game["21"] = &"Master Gunnery Sergeant";
    game["22"] = &"Master Gunnery Sergeant I";
    game["23"] = &"Master Gunnery Sergeant II";
    game["24"] = &"2nd Lieutenant";
    game["25"] = &"2nd Lieutenant I";
    game["26"] = &"2nd Lieutenant II";
    game["27"] = &"1st Lieutenant";
    game["28"] = &"1st Lieutenant I";
    game["29"] = &"1st Lieutenant II";
    game["30"] = &"Captain";
    game["31"] = &"Captain I";
    game["32"] = &"Captain II";
    game["33"] = &"Major";
    game["34"] = &"Major I";
    game["35"] = &"Major II";
    game["36"] = &"Lt. Colonel";
    game["37"] = &"Lt. Colonel I";
    game["38"] = &"Lt. Colonel II";
    game["39"] = &"Colonel";
    game["40"] = &"Colonel I";
    game["41"] = &"Colonel II";
    game["42"] = &"Brigadier General";
    game["43"] = &"Brigadier General I";
    game["44"] = &"Brigadier General II";
    game["45"] = &"Major General";
    game["46"] = &"Major General I";
    game["47"] = &"Major General II";
    game["48"] = &"Lieutenant General";
    game["49"] = &"Lieutenant General I";
    game["50"] = &"Lieutenant General II";
    game["51"] = &"General";
    game["52"] = &"General I";
    game["53"] = &"General II";
    game["54"] = &"Commander";
    precacheString(game["0"]);
    precacheString(game["1"]);
    precacheString(game["2"]);
    precacheString(game["3"]);
    precacheString(game["4"]);
    precacheString(game["5"]);
    precacheString(game["6"]);
    precacheString(game["7"]);
    precacheString(game["8"]);
    precacheString(game["9"]);
    precacheString(game["10"]);
    precacheString(game["11"]);
    precacheString(game["12"]);
    precacheString(game["13"]);
    precacheString(game["14"]);
    precacheString(game["15"]);
    precacheString(game["16"]);
    precacheString(game["17"]);
    precacheString(game["18"]);
    precacheString(game["19"]);
    precacheString(game["20"]);
    precacheString(game["21"]);
    precacheString(game["22"]);
    precacheString(game["23"]);
    precacheString(game["24"]);
    precacheString(game["25"]);
    precacheString(game["26"]);
    precacheString(game["27"]);
    precacheString(game["28"]);
    precacheString(game["29"]);
    precacheString(game["30"]);
    precacheString(game["31"]);
    precacheString(game["32"]);
    precacheString(game["33"]);
    precacheString(game["34"]);
    precacheString(game["35"]);
    precacheString(game["36"]);
    precacheString(game["37"]);
    precacheString(game["38"]);
    precacheString(game["39"]);
    precacheString(game["40"]);
    precacheString(game["41"]);
    precacheString(game["42"]);
    precacheString(game["43"]);
    precacheString(game["44"]);
    precacheString(game["45"]);
    precacheString(game["46"]);
    precacheString(game["47"]);
    precacheString(game["48"]);
    precacheString(game["49"]);
    precacheString(game["50"]);
    precacheString(game["51"]);
    precacheString(game["52"]);
    precacheString(game["53"]);
    precacheString(game["54"]);
    
    }
    Last edited by agribilos; 22nd May 2020 at 16:42. Reason: I forgot to add the teamkills parts.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •