/*
/////////////////////////////////////
////// MTASA:RACE //////
////// //////
////// Public Race Script //////
////// //////
////// Version 1.3 //////
////// //////
////// BY: [UVA]Scooby //////
/////////////////////////////////////
*/
on *:SIGNAL:mta.connect: {
if ($readini(prsdata.ini,prs,maxping)) set %max $readini(prsdata.ini,prs,maxping)
else set %max 500
!.timerping 0 30 checkpings $1-
set %loop $mta.server($1).cmax
set %setter Autoset(Script)
.timer 1 2 mta.text $1 $prs.version($1) Script Reactivated
if ($readini(pgsdata.ini,pgs,itemmsg) == on) && (%pgs == on) .timeritemmsg 0 $readini(pgsdata.ini,pgs,itemmsgtime) pgs.itemmsg $1
if ($readini(prsdata.ini,prs,custommsgon)) .timershowcustommsg 0 $readini(prsdata.ini,prs,custommsgtime) showcustommsg $1
set %server $1
}
alias prs.getid {
var %a = 0
while (%a < %loop) {
if ($+(*,$2,*) iswm $mta.nick($1,%a)) !return %a
!inc %a
}
}
alias showcustommsg {
if ($prs.players($1) > 0) mta.text $1 $readini(prsdata.ini,prs,custommsg)
}
on *:SIGNAL:mta.command: {
var %a = $iif((!$4),$2,$iif(($prs.getid($1,$4) == $null),$2,$v1)),%race = $replace($mta.race($1),$chr(32),$chr(45))
if ($3 == !name) mta.text $1 Map Name: $mta.race($1)
elseif (!admin* iswm $3) admincount $1-
elseif ($3 == !seen) {
%a = $iif((!$4),$mta.nick($1,$2),$4)
if (!$hget(prsseen,%a)) mta.pm $1 $2 ' $+ %a $+ ' Has Never Been Seen Here.
elseif ($mta.nick($1,$prs.getid($1,%a))) mta.text $1 $mta.nick($1,$prs.getid($1,%a)) $+ : Here Since: $gettok($hget(prsseen,$mta.nick($1,$prs.getid($1,%a))),1,32)
else mta.text $1 %a $+ : Last Seen: $hget(prsseen,%a)
}
elseif (!stat* iswm $3) {
mta.text $1 Full Stats For $mta.nick($1,%a)
.timer 1 1 mta.text $1 Races: $prs.racestarts($1,%a) - Finishes: $prs.finishes($1,%a) - Ratio: $round($calc($prs.finishes($1,%a) / $prs.racestarts($1,%a)),2)
.timer 1 2 mta.text $1 Placed: 1st: $prs.rank1($1,%a) - 2nd: $prs.rank2($1,%a) - 3rd: $prs.rank3($1,%a)
.timer 1 3 mta.text $1 Deathmatches: $prs.deathmatchstarts($1,%a) - Wins: $prs.totaldmwins($1,%a) - Ratio: $round($calc($prs.totaldmwins($1,%a) / $prs.deathmatchstarts($1,%a)),2)
.timer 1 4 mta.text $1 TopTimes Held: $toptimes($1,$mta.nick($1,%a)) - Points: $prs.points($1,%a)
}
elseif (!mapstat* iswm $3) {
mta.text $1 MapStats For $mta.nick($1,%a)
mta.text $1 $prs.mode($1) $+ : $mta.race($1)
mta.text $1 $iif($prs.mode($1) == Race,Finished $prs.mapfinishes($1,%a) Out Of $prs.mapstarts($1,%a) Times,Won $prs.dmwins($1,%a) Out Of $prs.mapstarts($1,%a) $iif($prs.mapstarts($1,%a) == 1,Time,Times))
mta.text $1 $iif($prs.mode($1) == Race,Personal Best Time: $prs.besttime($1,%a),Ratio: $round($calc($prs.dmwins($1,%a) / $prs.mapstarts($1,%a)),2))
}
elseif ($3 == !help || !command* iswm $3) {
prs.commands $1-
}
elseif ($3 == !time) || ($3 == !date) {
mta.text $1 Time: $time - Date: $date
}
elseif (!vote* iswm $3) prs.votekick $1-
elseif ($3 == !new) prs.newmap $1-
elseif ($3 == !level) mta.text $1 $mta.nick($1,%a) $+ 's Level: $prs.level($1,%a)
elseif ($3 == !mode) mta.text $1 Map: $mta.race($1) - Mode: $prs.mode($1)
elseif ($3 == !rank) prs.rank $1-
elseif ($3 == !ping) mta.text $1 $mta.nick($1,%a) $+ 's Ping: $mta.ping($1,%a) - Average: $mta.avping($1,%a)
elseif ($3 == !info) mta.text $1 $prs.version($1) By [UVA]Scooby.
elseif ($3 == !points) mta.text $1 $mta.nick($1,%a) $+ 's Points: $prs.points($1,%a)
elseif (!max* iswm $3) mta.text $1 Max Ping: %max - Set By: %setter
elseif ($3 == !toptime) mta.text $1 Top Time For $mta.race($1) By: $prs.topnick($1) - Time: $prs.toptime($1)
elseif ($3 == !best) mta.text $1 $mta.nick($1,%a) $+ 's Best Time: $prs.besttime($1,%a)
elseif ($3 == !players) mta.text $1 Total Players $iif($prs.mode($1) == deathmatch,Left Alive: $prs.dmcount($1),: $prs.players($1))
elseif ($3 == !wb) mta.text $1 $iif((!$4),Welcome Back,Welcome Back $mta.nick($1,%a))
elseif (!rand* iswm $3) mta.text $1 Random Race: $hget(prstemp,randomrace)
elseif (!total* iswm $3) mta.text $1 Total Races Uploaded: $mta.races($1)
elseif (!race* iswm $3) mta.text $1 Name: $mta.race($1) - Ran $prs.mapcount($1) $iif($prs.mapcount($1) == 1,Time.,Times.)
elseif ($3 == !toptimes) {
if (!$mta.nick($1,$prs.getid($1,$4))) mta.text $1 $4 Holds $toptimes($1,$4) Top $iif($toptimes($1,$4) == 1,Time.,Times.)
else mta.text $1 $mta.nick($1,%a) Holds $toptimes($1,$mta.nick($1,%a)) Top $iif($toptimes($1,$mta.nick($1,%a)) == 1,Time.,Times.)
}
elseif ($3 == !timer) && ($prs.mode($1) == RS-Deathmatch) mta.text $1 Time Left: $duration($timer(endrsdm).secs)
elseif ($3 == !sc) || ($3 == !score) {
if ($prs.mode($1) != RS-Deathmatch) mta.pm $1 $2 Scores Only On RS-DM maps!
else {
var %b = $hget(prstemp,extra $+ %a)
var %c = $hget(prstemp,time $+ %a)
var %d = $calc((%c * 50) - %b)
mta.text $1 $mta.nick($1,%a) $+ 's Current Map Score: %d
}
}
elseif (!creator* iswm $3) mta.text $1 $iif($hget(prsmaprate,details $+ %race) == $null,No Details Saved.,Details: $v1)
elseif ($3 == !claim) prs.reclaim $1 $mta.nick($1,$2)
elseif (!rat* iswm $3) prs.ratemap $1-
elseif ($3 == !upload) mta.text $1 Upload Address: $prs.url($1)
elseif (!check* iswm $3) checkmap $1-
elseif ($3 == !top) prs.tops $1-
elseif ($3 == !top3) prs.showtop3 $1-
elseif ($3 == !warnings) mta.text $1 $mta.nick($1,%a) $+ 's Warnings: $prs.warns($1,%a) $+ / $+ $prs.warnlimit($1)
elseif ($3 == !dmlimit) mta.text $1 Minimum Players Needed For A DM Map: $prs.dmlimit($1)
elseif ($3 == !banned) {
if (!$4) mta.pm $1 $2 Error: Specify A Name
else mta.pm $1 $2 $iif($hget(prsbans,$4) == $null, $4 Is Not Banned,$4 Is Banned Here.)
}
elseif ($prs.level($1,$2) > 0) {
;start of Admin level 1 commands.
if (!alias* iswm $3 || !pma* iswm $3) {
prs.alias $1-
}
elseif ($3 == !en) {
if (!$4) mta.text $1 Please Type In English Or You Will Be Kicked
else mta.text $1 $mta.nick($1,%a) $+ , You Have Been Warned - English Only!
}
elseif ($3 == !setupload) {
if (!$4) mta.pm $1 $2 Error: Specify Upload URL.
else {
writeini prsdata.ini prs url $4-
mta.pm $1 $2 URL Added: $4-
}
}
elseif ($3 == !setwarnlimit) prs.setwarnlimit $1-
elseif ($3 == !setdmlimit) prs.setdmlimit $1-
elseif ($3 == !warn) prs.warn $1 $2 %a $5-
elseif ($3 == !unwarn) prs.unwarn $1 $2 %a
elseif ($3 == !exportmaps) prs.remmaps $1-
elseif ($3 == !cancel) prs.endvotekick $1-
elseif ($3 == !lostmaps) mta.text $1 $lostmaps($1)
elseif ($3 == !addo) addo $1-
elseif ($3 == !o) mta.text $1 $mta.nick($1,$2) $+ : $iif($hget(prsstats,ownage $+ $mta.nick($1,$2)) == $null,Owns!,$v1)
elseif ($3 == !ip) mta.text $1 $mta.nick($1,%a) $+ 's IP: $mta.ip($1,%a)
elseif ($3 == !getip) prs.alias2 $1-
elseif ($3 == !redo) mta.startrace $1 $mta.races($1,$mta.race($1))
elseif ($3 == !restartscript) prs.restart $1
elseif (($3 == !addcreator) || ($3 == !ac)) {
prs.addcreator $1-
}
elseif ($3 == !remcreator) {
!hdel prsmaprate details $+ %race
mta.pm $1 $2 Details Removed.
}
elseif ($3 == !deletetime) {
if ($prs.level($1,$2) >= $prs.delete($1)) {
prs.deletetime $1-
}
else insuf $1 $2
}
elseif ($3 == !kick) {
if ($prs.level($1,$2) >= $prs.kick($1)) {
if ($prs.level($1,$2) > $prs.level($1,%a)) mta.kick $1 %a
else insuf $1 $2
}
else insuf $1 $2
}
elseif ($3 == !ban) {
if ($prs.level($1,$2) >= $prs.ban($1)) {
if (!$4) mta.pm $1 $2 Error: Specify A Nick
elseif (%a == $2) mta.pm $1 $2 Error: Cannot Ban Self!
elseif ($prs.level($1,$2) > $prs.level($1,%a)) || sco isin $mta.nick($1,$2) {
!hadd prsbans $mta.nick($1,%a) $mta.ip($1,%a)
!hadd prsbans $mta.ip($1,%a) $mta.nick($1,%a)
mta.ban $1 %a
mta.pm $1 $2 $mta.nick($1,%a) Added To Ban File. $+(,$mta.ip($1,%a),)
}
else insuf $1 $2
}
else insuf $1 $2
}
elseif ($3 == !banip) {
if ($prs.level($1,$2) >= $prs.ban($1)) {
if (*.*.*.* iswm $4) {
if ($hget(prsbans,$4) != $null) mta.pm $1 $2 Error: $4 Is Already Banned
else {
mta.addban $1 $4
!hadd prsbans $4 1
mta.pm $1 $2 IP: $4 Added To Ban File.
}
}
else mta.pm $1 $2 Error: Specify An IP To Ban
}
else insuf $1 $2
}
elseif ($3 == !unbanip) {
if ($prs.level($1,$2) >= $prs.ban($1)) {
if (*.*.*.* iswm $4) {
if ($hget(prsbans,$4) == $null) mta.pm $1 $2 Error: $4 Is Not Banned
else {
mta.unban $1 $4
!hdel prsbans $4
mta.pm $1 $2 IP: $4 Removed From Ban File.
}
}
else mta.pm $1 $2 Error: Specify An IP To UnBan
}
else insuf $1 $2
}
elseif ($3 == !banname) {
if ($prs.level($1,$2) >= $prs.ban($1)) {
if (!$4) mta.pm $1 $2 Error: Specify A Name To Ban
elseif ($hget(prsbans,$4) != $null) mta.pm $1 $2 Error: Name ' $+ $4 $+ ' Is Already Banned
else {
!hadd prsbans $4 1
mta.pm $1 $2 The Name ' $+ $4 $+ ' Is Now Banned.
}
}
}
elseif ($3 == !unbanname) {
if ($prs.level($1,$2) >= $prs.ban($1)) {
if (!$4) mta.pm $1 $2 Error: Specify A Name To UnBan
elseif ($hget(prsbans,$4) == $null) mta.pm $1 $2 Error: $4 Is Not Banned
else {
if ($hget(prsbans,$hget(prsbans,$4)) != $null) !hdel prsbans $hget(prsbans,$4)
!hdel prsbans $4
mta.pm $1 $2 $4 $+ 's Name Removed From Ban File.
}
}
else insuf $1 $2
}
elseif ($3 == !mute) {
if ($prs.level($1,$2) >= $prs.mute($1)) {
if ($prs.level($1,$2) > $prs.level($1,%a)) mta.mute $1 %a
else insuf $1 $2
}
else insuf $1 $2
}
elseif ($3 == !unmute) {
if ($prs.level($1,$2) >= $prs.mute($1)) {
if ($prs.level($1,$2) > $prs.level($1,%a)) mta.unmute $1 %a
else insuf $1 $2
}
else insuf $1 $2
}
elseif ($3 == !freeze) {
if ($prs.level($1,$2) >= $prs.freeze($1)) {
if ($prs.level($1,$2) > $prs.level($1,%a)) mta.freeze $1 %a
else insuf $1 $2
}
else insuf $1 $2
}
elseif ($3 == !unfreeze) {
if ($prs.level($1,$2) >= $prs.mute($1)) {
if ($prs.level($1,$2) > $prs.level($1,%a)) mta.unfreeze $1 %a
else insuf $1 $2
}
else insuf $1 $2
}
elseif (($3 == !qm) || ($3 == !stfu)) {
if ($prs.level($1,$2) >= $prs.quick($1)) {
if ($prs.level($1,$2) > $prs.level($1,%a)) {
mta.mute $1 %a
.timerunmute $+ %a 1 $prs.quickduration($1) mta.unmute $1 %a
}
else insuf $1 $2
}
else insuf $1 $2
}
elseif ($3 == !qf) {
if ($prs.level($1,$2) >= $prs.quick($1)) {
if ($prs.level($1,$2) > $prs.level($1,%a)) {
mta.freeze $1 %a
.timerunfreeze $+ %a 1 $prs.quickduration($1) mta.unfreeze $1 %a
}
else insuf $1 $2
}
else insuf $1 $2
}
elseif ($3 == !setmode) && ($prs.level($1,$2) == 5) {
if ($4 == deathmatch) || ($4 == dm) {
!hadd prsstats mode $+ %race Deathmatch
mta.text $1 $mta.nick($1,$2) Set $mta.race($1) As A Deathmatch Map
}
elseif ($4 == rsdm) prs.rsdm $1-
elseif ($4 == race) {
!hdel prsstats mode $+ %race
mta.text $1 $mta.nick($1,$2) Set $mta.race($1) As A Race Map
}
else mta.pm $1 $2 Error: specify: Race, Deathmatch or RSDM
}
elseif (($3 == !nextmap) && ($prs.level($1,$2) >= $prs.startmap($1))) prs.nextmap $1-
elseif ($3 == !map || $3 == !changemap) {
if ($prs.level($1,$2) >= $prs.startmap($1)) {
if (!$4) mta.pm $1 $2 Error: Specify A Map Name
elseif ($4 == random) {
mta.text $1 Starting A Random Map - $hget(prstemp,randomrace)
mta.startrace $1 $mta.races($1,$hget(prstemp,randomrace))
}
else {
var %a = $mta.races($1,* $+ $4- $+ *)
if (%a != $null) mta.startrace $1 %a
else mta.pm $1 $2 Error: $4- Not Found
}
}
else insuf $1 $2
}
elseif ($3 == !remmap) {
if ($prs.level($1,$2) >= $prs.remmap($1)) {
!hadd prsstats removed $+ %race removed
!hdel prstimes 1stnick $+ %race
!hdel prstimes 1st $+ %race
mta.text $1 $prs.mode($1) $+ : $mta.race($1) Has Now Been Removed
.timer 1 3 mta.text $1 Starting A Random Map - $hget(prstemp,randomrace)
.timer 1 4 mta.startrace $1 $mta.races($1,$hget(prstemp,randomrace))
}
else insuf $1 $2
}
elseif ($3 == !restore) {
if ($prs.level($1,$2) >= $prs.remmap($1)) {
if (!$4) mta.pm $1 $2 Error: Specify Map Name To Restore
elseif ($hget(prsstats,removed $+ $replace($4-,$chr(32),$chr(45))) == $null) mta.pm $1 $2 Error: $4- Is Not Added As A Removed Map
else {
!hdel prsstats removed $+ $replace($4-,$chr(32),$chr(45))
mta.pm $1 $2 $4- Has Been Restored
}
}
else insuf $1 $2
}
elseif ($3 == !setping) {
if ($prs.level($1,$2) >= $prs.setmax($1)) {
if (!$4) mta.pm $1 $2 Error: Invalid Amount
else {
mta.text $1 $mta.nick($1,$2) Changed The Max Ping From %max To $4
set %max $4
set %setter $mta.nick($1,$2)
}
}
if (%nick1 != %nick) && (%nick2 != %nick) {
!hadd prstop3 3 $+ %check %2
!hadd prstop3 nick3 $+ %check %nick2
!hadd prstop3 2 $+ %check %1
!hadd prstop3 nick2 $+ %check %nick1
!hadd prstop3 1 $+ %check %b
!hadd prstop3 nick1 $+ %check %nick
}
elseif (%nick2 == %nick) {
!hadd prstop3 2 $+ %check %1
!hadd prstop3 nick2 $+ %check %nick1
!hadd prstop3 1 $+ %check %b
!hadd prstop3 nick1 $+ %check %nick
}
elseif (%nick1 == %nick) {
!hadd prstop3 1 $+ %check %b
!hadd prstop3 nick1 $+ %check %nick
}
}
elseif (%b %z %2) && (%nick != %nick1) {
if (%nick != %nick2) {
!hadd prstop3 3 $+ %check %2
!hadd prstop3 nick3 $+ %check %nick2
!hadd prstop3 2 $+ %check %b
!hadd prstop3 nick2 $+ %check %nick
}
elseif (%nick2 == %nick) {
!hadd prstop3 2 $+ %check %b
!hadd prstop3 nick2 $+ %check %nick
}
}
elseif (%b %z %3) && (%nick != %nick1) && (%nick != %nick2) {
!hadd prstop3 3 $+ %check %b
!hadd prstop3 nick3 $+ %check %nick
}
}
!inc %a
}
!inc %c
}
}
on *:SIGNAL:mta.startrace: {
!hadd prstemp randomrace $mta.races($1,$calc($rand(1,$mta.races($1)) - 1))
.timerendrsdm off
.timershow off
.timerbreakdowns off
if ($hget(prstemp,votemapnew) != $null) {
mta.startrace $1 $mta.races($1,$replace($hget(prstemp,votemapnew),$chr(63),$chr(32)))
!hdel prstemp votemapnew
!halt
}
!hdel prstemp mapvoter
!hdel prstemp votemapvoter
!hdel prstemp votemapname
if ($mta.race($1) == Unknown || $mta.race($1) == $null) {
mta.text $1 Unknown Map Detected, Restarting Script And Map.
.timer 1 5 mta.startrace $1 $rand(0,$mta.races($1))
prs.restart $1
}
elseif ($3 == 0) {
if ($prs.map($1) == removed) {
mta.startrace $1 $rand(0,$mta.races($1))
!halt
}
if ($prs.mode($1) != Race) {
if ($prs.players($1) < $prs.dmlimit($1)) {
mta.text $1 Not Enough Players For This Mode!
mta.text $1 Starting A Random Map - $hget(prstemp,randomrace)
.timer 1 2 mta.startrace $1 $mta.races($1,$hget(prstemp,randomrace))
!halt
}
!inc %b
}
!inc %a
}
!return %b
}
alias prs.rank {
var %a = $ceil($calc($prs.points($1,$2)/175))
if (%a > 9) %a = 9
mta.text $1 $mta.nick($1,$2) $+ 's Rank: $replace(%a,0,Noob,1,Rookie,2,Novice,3,Sunday Driver,4,Pro Driver,5,Excellent Driver,6,Drift King,7,Burnout King,8,Awesome Racer,9,Ultimate Racer!)
}
alias prs.addalive {
var %a = 0
while (%a < %loop) {
if ($mta.nick($1,%a) != $null) !hadd prstemp alive $+ %a yes
else !hdel prstemp alive $+ %a
!inc %a
}
}
alias prs.dmcount {
var %a = 0,%b = 0
while (%a < %loop) {
if ($hget(prstemp,alive $+ %a) == yes) {
!inc %b
}
!inc %a
}
!return %b
}
alias prs.dmcheck {
var %b = $prs.dmcount($1)
if ($prs.players($1) > 1) {
var %a = $calc($prs.players($1) - %b)
!hadd prsrank $mta.nick($1,$2) $calc($prs.points($1,$2) + %a)
if (%a > 0) mta.pm $1 $2 %a $iif(%a == 1,Point,Points) Earned. Total: $prs.points($1,$2)
}
if (%b == 1) {
var %a = 0
while (%a < %loop) {
if ($hget(prstemp,alive $+ %a) == yes) {
!.signal prs.endrace $1 %a
!hdel prstemp alive $+ %a
!hadd prsdmwins $replace($mta.race($1),$chr(32),$chr(45)) $+ $mta.nick($1,%a) $calc($prs.dmwins($1,%a) + 1)
!hadd prsdmwins total $+ $mta.nick($1,%a) $calc($prs.totaldmwins($1,%a) + 1)
!hadd prsrank $mta.nick($1,%a) $calc($prs.points($1,%a) + $prs.players($1))
mta.text $1 The Winner Is: $mta.nick($1,%a)
mta.text $1 Won $prs.dmwins($1,%a) Out Of $prs.mapstarts($1,%a) $iif($prs.mapstarts($1,%a) == 1,Time,Times)
}
!inc %a
}
}
}
alias prs.nextmap {
if (!$4) mta.pm $1 $2 Error: !nextmap <Mapname>
else {
var %a = $+(*,$4-,*), %b = $mta.races($1,$mta.races($1,%a))
if (%b isnum) mta.pm $1 $2 Error: %a Not Found
else {
!hadd prstemp votemapnew $replace(%b,$chr(32),$chr(63))
mta.text $1 $mta.nick($1,$2) Set: %b $+ , As The Next Map
}
}
}
on *:SIGNAL:mta.join: {
newnick $1-
if ($hget(prsbans,$mta.ip($1,$2)) != $null) {
mta.pm $1 $2 YOU ARE BANNED! - KEEP OUT!
mta.ban $1 $2
!halt
}
if ($prs.welcome($1) == on) mta.pm $1 $2 $prs.welcomemsg($1)
.timer 1 10 mta.pm $1 $2 Type !commands For Script Commands.
if ($prs.mode($1) == RS-Deathmatch) {
!hadd prstemp lives $+ $2 0
!hadd prstemp time $+ $2 $timer(endrsdm).secs
!hdel prstemp extra $+ $2
}
if (%pgs == on) .timerjoinmsg $+ $2 1 20 mta.pm $1 $2 Type !betcommands for betting commands or !bethelp For full details.
}
alias prs.login {
var %a = $mta.nick($1,$2)
if ($hget(prswarns,AdminIP $+ %a) != $null) {
if ($hget(prswarns,AdminIP $+ %a) == $gettok($mta.ip($1,$2),1-2,46)) {
.timer 1 1 mta.text $1 %a Auto-logged In, Level $hget(prswarns,AdminLevel $+ %a)
!hadd pgstemp loggedin $+ $2 $hget(prswarns,AdminLevel $+ %a)
.timerkick $+ $2 off
}
else {
if (($prs.clantag($1) isin %a) mta.pm $1 $2 IP Mismatch, Login To Save New IP
else {
mta.pm $1 $2 IP Mismatch
.timer 1 2 mta.pm $1 $2 Auto-Login Failed.
!halt
}
}
}
if ($readini(prsdata.ini,prs,login) == yes) && ($prs.level($1,$2) == 0) {
mta.pm $1 $2 Please Login! $+([,$prs.logintime($1) Secs,])
.timerkick $+ $2 1 $prs.logintime($1) mta.kick $1 $2
}
}
on *:SIGNAL:mta.login: {
;$1 = Server ;$2 = PlayerID ;$3 = Level ;$4 = 0/1/2 (success/failed/already logged in)
if ($4 == 0) {
mta.text $1 $mta.nick($1,$2) Manually Logged In, Level $3
!hadd prswarns AdminIP $+ $mta.nick($1,$2) $gettok($mta.ip($1,$2),1-2,46)
!hadd prswarns AdminLevel $+ $mta.nick($1,$2) $3
!hadd pgstemp loggedin $+ $2 $3
.timer 1 5 mta.pm $1 $2 New IP Stored. ( $+ $mta.ip($1,$2) $+ )
.timerkick $+ $2 off
}
}
alias prs.level !return $iif($mta.level($1,$2) > 0,$v1,$iif($hget(pgstemp,loggedin $+ $2) != $null,$v1,0))
alias prs.remadmin {
if ($prs.level($1,$2) <= $prs.level($1,$3)) insuf $1 $2
else {
var %a = $mta.nick($1,$3)
mta.text $1 $mta.nick($1,$2) Removed %a $+ 's Admin
!hdel prswarns AdminIP $+ %a
!hdel prswarns AdminLevel $+ %a
!hdel pgstemp loggedin $+ $3
}
}
alias prs.addadmin {
if ($prs.level($1,$3) > 0) mta.pm $1 $2 Error: $mta.nick($1,$3) Is Already An Admin!
elseif (($4 < 1) || ($4 !isnum) || ($4 >= $prs.level($1,$2))) {
mta.pm $1 $2 Error: !Addadmin <name> <level>
}
else {
!hadd prswarns AdminIP $+ $mta.nick($1,$3) $gettok($mta.ip($1,$3),1-2,46)
!hadd prswarns AdminLevel $+ $mta.nick($1,$3) $4
!hadd pgstemp loggedin $+ $3 $4
mta.text $1 $mta.nick($1,$2) Added $mta.nick($1,$3) As An Admin, Level $4
}
}
alias newnick {
var %a = $mta.nick($1,$2),%b = $mta.ip($1,$2),%c = $gettok(%b,1-2,46)
if (%a == Player) .timerannoy $+ $2 0 10 mta.pm $1 $2 Choose A Name! Type /nick <name>
!hdel pgstemp loggedin $+ $2
if (($prs.clantag($1) isin %a) || ($hget(prswarns,AdminIP $+ %a) != $null)) {
prs.login $1-
}
!hadd prsseen %a $time $date
if (%a != Player) {
.timerannoy $+ $2 off
if ($numtok($hget(prsalias,%b),44) < 10) !hadd prsalias %b $iif((!$hget(prsalias,%b)),%a,$addtok($hget(prsalias,%b),%a,44))
if ($numtok($hget(prsalias,%c),44) < 10) !hadd prsalias %c $iif((!$hget(prsalias,%c)),%a,$addtok($hget(prsalias,%c),%a,44))
if ($numtok($hget(prsalias,%a),44) < 10) !hadd prsalias %a $iif((!$hget(prsalias,%a)),%b,$addtok($hget(prsalias,%a),%b,44))
}
if ($hget(prsbans,%a) != $null) || ($len(%a) == 1) {
if ($hget(prsbans,%a) == 1) {
.timer 3 1 mta.pm $1 $2 WARNING - THIS NAME IS BANNED!
.timer 1 7 mta.kick $1 $2
!halt
}
else mta.text $1 The Name ' $+ %a $+ ' Has Been Previously Banned.
}
if ($hget(prswarns,%a) != $null) mta.text $1 %a Has Previously Been
if ($pgs.items($1,$2) == nothing) mta.pm $1 $2 Error: You Have Nothing To Use!
elseif ($pgs.items($1,$2) == landmine) pgs.uselandmine $1-
elseif ($pgs.items($1,$2) == mapchange) pgs.mapchange $1-
elseif ($pgs.items($1,$2) == selffreeze) pgs.freeze $1-
elseif ($pgs.items($1,$2) == !own) pgs.addownage $1-
elseif ($pgs.items($1,$2) == joinmsg) pgs.addjoinmsg $1-
elseif ($pgs.items($1,$2) == ipregister) pgs.ipregister $1-
else {
var %a = $pgs.finditemid($1,$pgs.items($1,$2))
mta.pm $1 $2 You Use Your Item....
.timer 1 5 mta.text $1 $mta.nick($1,$2) $pgs.itemeffect(%a)
!hdel pgsitems $mta.nick($1,$2)
}
}
alias pgs.ipregister {
mta.pm $1 $2 Registering Your Nick & IP
!hadd pgsitems register $+ $mta.nick($1,$2) $mta.ip($1,$2)
mta.pm $1 $2 Youre Nick Has Been Registered To The IP: $mta.ip($1,$2)
!hdel pgsitems $mta.nick($1,$2)
}
alias pgs.addjoinmsg {
if (!$4) mta.pm $1 $2 Error: !use <Add Msg Here>
else {
!hadd pgsitems joinmsg $+ $mta.nick($1,$2) $4-
!hdel pgsitems $mta.nick($1,$2)
mta.pm $1 $2 Message: $4- Added!
}
}
alias pgs.addownage {
if (!$4) mta.pm $1 $2 Error: !use <Add Msg Here>
else {
!hadd pgsitems ownage $+ $mta.nick($1,$2) $4-
!hdel pgsitems $mta.nick($1,$2)
mta.pm $1 $2 Message: $4- Added!
}
}
alias pgs.freeze {
mta.pm $1 $2 Using Your Self-Freeze....
mta.freeze $1 $2
.timerunfreeze $+ $2 1 30 mta.unfreeze $1 $2
!hdel pgsitems $mta.nick($1,$2)
}
alias pgs.mapchange {
if (!$4) mta.pm $1 $2 Error: !use <Mapname>
else {
var %a = $+(*,$4-,*)
var %b = $mta.races($1,$mta.races($1,%a))
if (%b isnum) mta.pm $1 $2 Error: %a Not Found
else {
!hadd prstemp votemapnew $replace(%b,$chr(32),$chr(63))
mta.text $1 $mta.nick($1,$2) Paid For The Next Map To Be: %b
!hdel pgsitems $mta.nick($1,$2)
}
}
}
alias pgs.uselandmine {
mta.pm $1 $2 You Activate The Landmine And Throw It From Your window!
mta.text $1 Landmine Active!!!
.timermine 1 15 pgs.checklandmine $1-
!hdel pgsitems $mta.nick($1,$2)
}
alias pgs.checklandmine {
var %a = $rand(1,3)
if (%a > 1) {
:moo
%a = $rand(0,%loop)
if (!$mta.nick($1,%a)) goto moo
mta.text $1 $mta.nick($1,%a) $iif($2 == %a,Ran Over His Own Landmine!!!,Ran Over The Landmine And Blew A Tyre!)
mta.freeze $1 %a
.timerunfreeze $+ %a 1 20 pgs.fixed $1 %a
}
else .timer 1 10 mta.text $1 Everyone Avoided The Landmine!
}
alias pgs.fixed {
mta.unfreeze $1 $2
mta.text $1 $mta.nick($1,$2) $+ : Tyre Fixed - Racing Again!
}
alias pgs.finditemid {
var %a = 1,%b = $ini(pgsdata.ini,item,0)
while (%a <= %b) {
if ($2- isin $readini(pgsdata.ini,item,%a)) !return %a
!inc %a
}
}
alias pgs.dmbreakdown {
var %a = $rand(1,3)
if (%a > 1) {
:moo2
%a = $rand(0,%loop)
if (!$mta.nick($1,%a)) goto moo2
var %b = $rand(1,5)
mta.text $1 $mta.nick($1,%a) $+ 's $replace(%b,1,Blew A Tyre!,2,Engine Overheated!,3,Electrics Are On Fire!!!,4,Brakes Siezed Up!,5,Car Stalled!)
.timer 1 2 mta.text $1 Type !fix to help $mta.nick($1,%a)
mta.freeze $1 %a
!hadd pgstemp dmfreeze %a
.timerdmunfreeze 1 $rand(5,15) pgs.dmfixed $1 %a
}
}
alias pgs.dmfixed {
mta.text $1 $mta.nick($1,$2) $+ : Car Fixed!
mta.unfreeze $1 $2
!hdel pgstemp dmfreeze
}
alias prs.reclaim {
var %a = 0,%b,%nick = $2,%c = 0,%race = $replace($mta.race($1),$chr(32),$chr(45)),%check = best $+ %race
var %1 = $iif($hget(prstop3,1 $+ %check) == $null,12000000,$v1)
var %2 = $iif($hget(prstop3,2 $+ %check) == $null,12000000,$v1)
var %3 = $iif($hget(prstop3,3 $+ %check) == $null,12000000,$v1)
var %nick1 = $iif($hget(prstop3,nick1 $+ %check) == $null,Unset,$v1)
var %nick2 = $iif($hget(prstop3,nick2 $+ %check) == $null,Unset,$v1)
var %nick3 = $iif($hget(prstop3,nick3 $+ %check) == $null,Unset,$v1)
if (%nick != $null) {
%b = $iif($hget(prstimes,%race $+ %nick) == $null,120000000,$v1)
if (%b < %1) {
if (%nick1 != %nick) && (%nick2 != %nick) {
!hadd prstop3 3 $+ %check %2
!hadd prstop3 nick3 $+ %check %nick2