dd698bcc73
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;
|
|
}
|
|
}
|