mirror of
https://github.com/SWG-Source/dsrc.git
synced 2026-07-31 00:15:54 -04:00
71 lines
1.9 KiB
Plaintext
71 lines
1.9 KiB
Plaintext
const string CHEATER_SCRIPT = "csr.cheater";
|
|
const string CHEATER_OBJVAR = "cheater";
|
|
const string DURATION_OBJVAR = "cheater_days";
|
|
|
|
const int DEFAULT_DURATION = 7;
|
|
const int MAX_DURATION = 30;
|
|
|
|
trigger OnAttach() {
|
|
|
|
if(!isPlayer(self)) {
|
|
|
|
detachScript(self, CHEATER_SCRIPT);
|
|
CustomerServiceLog("SuspectedCheaterChannel", "Script Attach Failed: Tried to attach script '" + CHEATER_SCRIPT + "' to a non-player object (" + self + ")");
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
setObjVar(self, CHEATER_OBJVAR, getGameTime());
|
|
CustomerServiceLog("SuspectedCheaterChannel", "Begin Tracking: " + getName(self) + " (" + self + ") has been flagged as a suspected cheater");
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
trigger OnInitialize() {
|
|
|
|
if(!hasObjVar(self, CHEATER_OBJVAR)) {
|
|
|
|
detachScript(self, CHEATER_SCRIPT);
|
|
CustomerServiceLog("SuspectedCheaterChannel", "Script Clean-up: Script '" + CHEATER_SCRIPT + "' attached to player " + getName(self) + " (" + self + ") without " + CHEATER_OBJVAR + " obj var -- detaching script");
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
int startTrackingTime;
|
|
int deltaTime;
|
|
|
|
int days;
|
|
|
|
if(hasObjVar(self, DURATION_OBJVAR)) {
|
|
|
|
days = getIntObjVar(self, DURATION_OBJVAR);
|
|
|
|
if(days > MAX_DURATION) {
|
|
|
|
days = MAX_DURATION;
|
|
|
|
setObjVar(self, DURATION_OBJVAR, MAX_DURATION);
|
|
}
|
|
|
|
} else {
|
|
|
|
days = DEFAULT_DURATION;
|
|
}
|
|
|
|
startTrackingTime = getIntObjVar(self, CHEATER_OBJVAR);
|
|
deltaTime = days * 86400; // 86400 seconds in a day
|
|
|
|
if(getGameTime() > (startTrackingTime + deltaTime)) {
|
|
|
|
if(hasObjVar(self, DURATION_OBJVAR)) {
|
|
|
|
removeObjVar(self, DURATION_OBJVAR);
|
|
}
|
|
|
|
removeObjVar(self, CHEATER_OBJVAR);
|
|
detachScript(self, CHEATER_SCRIPT);
|
|
CustomerServiceLog("SuspectedCheaterChannel", "End Tracking: " + getName(self) + " (" + self + ") was tracked for " + days + " day(s) and is no longer flagged as a suspected cheater");
|
|
}
|
|
|
|
return SCRIPT_CONTINUE;
|
|
} |