auto unrestrict hyperscrollers make sm_stats more useful only do stats after streak ended (aka on next jump) totally untested lmao
		
			
				
	
	
		
			194 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			SourcePawn
		
	
	
	
	
	
			
		
		
	
	
			194 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			SourcePawn
		
	
	
	
	
	
| #if defined _class_cplayer_
 | |
|   #endinput
 | |
| #endif
 | |
| #define _class_cplayer_
 | |
| 
 | |
| methodmap CPlayer < Basic
 | |
| {
 | |
| 	public CPlayer(int client)
 | |
| 	{
 | |
| 		Basic myclass = new Basic();
 | |
| 
 | |
| 		myclass.SetInt("iClient", client);
 | |
| 		myclass.SetBool("bHackGlobal", false);
 | |
| 		myclass.SetBool("bHyperGlobal", false);
 | |
| 		myclass.SetInt("iHackFlagged", 0);
 | |
| 		myclass.SetInt("iHyperFlagged", 0);
 | |
| 
 | |
| 		myclass.SetInt("iJumps", 0);
 | |
| 		myclass.SetInt("iHyperJumps", 0);
 | |
| 		myclass.SetInt("iHackJumps", 0);
 | |
| 		myclass.SetArray("aJumps", {0, 0, 0}, 3);
 | |
| 
 | |
| 		myclass.SetInt("iLastStreakTick", -1);
 | |
| 		myclass.SetHandle("hStreak", new CStreak());
 | |
| 		myclass.SetHandle("hStreaks", new ArrayList(1));
 | |
| 
 | |
| 		return view_as<CPlayer>(myclass);
 | |
| 	}
 | |
| 
 | |
| 	property int iClient
 | |
| 	{
 | |
| 		public get()
 | |
| 		{
 | |
| 			return this.GetInt("iClient");
 | |
| 		}
 | |
| 		public set(int value)
 | |
| 		{
 | |
| 			this.SetInt("iClient", value);
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	property bool bHackGlobal
 | |
| 	{
 | |
| 		public get()
 | |
| 		{
 | |
| 			return this.GetBool("bHackGlobal");
 | |
| 		}
 | |
| 		public set(bool value)
 | |
| 		{
 | |
| 			this.SetBool("bHackGlobal", value);
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	property bool bHyperGlobal
 | |
| 	{
 | |
| 		public get()
 | |
| 		{
 | |
| 			return this.GetBool("bHyperGlobal");
 | |
| 		}
 | |
| 		public set(bool value)
 | |
| 		{
 | |
| 			this.SetBool("bHyperGlobal", value);
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	property int iHackFlagged
 | |
| 	{
 | |
| 		public get()
 | |
| 		{
 | |
| 			return this.GetInt("iHackFlagged");
 | |
| 		}
 | |
| 		public set(int value)
 | |
| 		{
 | |
| 			this.SetInt("iHackFlagged", value);
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	property int iHyperFlagged
 | |
| 	{
 | |
| 		public get()
 | |
| 		{
 | |
| 			return this.GetInt("iHyperFlagged");
 | |
| 		}
 | |
| 		public set(int value)
 | |
| 		{
 | |
| 			this.SetInt("iHyperFlagged", value);
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	property int iJumps
 | |
| 	{
 | |
| 		public get()
 | |
| 		{
 | |
| 			return this.GetInt("iJumps");
 | |
| 		}
 | |
| 		public set(int value)
 | |
| 		{
 | |
| 			this.SetInt("iJumps", value);
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	property int iHyperJumps
 | |
| 	{
 | |
| 		public get()
 | |
| 		{
 | |
| 			return this.GetInt("iHyperJumps");
 | |
| 		}
 | |
| 		public set(int value)
 | |
| 		{
 | |
| 			this.SetInt("iHyperJumps", value);
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	property int iHackJumps
 | |
| 	{
 | |
| 		public get()
 | |
| 		{
 | |
| 			return this.GetInt("iHackJumps");
 | |
| 		}
 | |
| 		public set(int value)
 | |
| 		{
 | |
| 			this.SetInt("iHackJumps", value);
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	property int iLastStreakTick
 | |
| 	{
 | |
| 		public get()
 | |
| 		{
 | |
| 			return this.GetInt("iLastStreakTick");
 | |
| 		}
 | |
| 		public set(int value)
 | |
| 		{
 | |
| 			this.SetInt("iLastStreakTick", value);
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	public void GetJumps(int value[3])
 | |
| 	{
 | |
| 		this.GetArray("aJumps", value, sizeof(value));
 | |
| 	}
 | |
| 
 | |
| 	public void SetJumps(const int value[3])
 | |
| 	{
 | |
| 		this.SetArray("aJumps", value, sizeof(value));
 | |
| 	}
 | |
| 
 | |
| 	property CStreak hStreak
 | |
| 	{
 | |
| 		public get()
 | |
| 		{
 | |
| 			return view_as<CStreak>(this.GetHandle("hStreak"));
 | |
| 		}
 | |
| 		public set(CStreak value)
 | |
| 		{
 | |
| 			this.SetHandle("hStreak", value);
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	property ArrayList hStreaks
 | |
| 	{
 | |
| 		public get()
 | |
| 		{
 | |
| 			return view_as<ArrayList>(this.GetHandle("hStreaks"));
 | |
| 		}
 | |
| 		public set(ArrayList value)
 | |
| 		{
 | |
| 			this.SetHandle("hStreaks", value);
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	public void Dispose(bool disposemembers=true)
 | |
| 	{
 | |
| 		if(disposemembers)
 | |
| 		{
 | |
| 			ArrayList hStreaks = this.hStreaks;
 | |
| 
 | |
| 			CStreak hStreak;
 | |
| 			for(int i = 0; i < hStreaks.Length; i++)
 | |
| 			{
 | |
| 				hStreak = view_as<CStreak>(hStreaks.Get(i));
 | |
| 				hStreak.Dispose();
 | |
| 			}
 | |
| 
 | |
| 			delete hStreaks;
 | |
| 
 | |
| 			if(this.hStreak != hStreak)
 | |
| 				this.hStreak.Dispose();
 | |
| 		}
 | |
| 
 | |
| 		delete this;
 | |
| 	}
 | |
| }
 |