1
Diplomacy / Re: Clan-less Players Applications
« on: June 28, 2014, 04:55:35 am »
Full Ingame Nickname: [MK]Rocky
Ping on Sky-City: < 250
Team (Red/Blue): Red
Accepted.
Ping on Sky-City: < 250
Team (Red/Blue): Red
Accepted.
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Thanks wilson. I can assure you I want no drama. Ferrari, if you have any doubts please be kind to send a private message to me.
were you in freestyle ? are you the Thomas I know ? a.k.a Big[H]? Answer these questions please.
Haven't seen you in a while, but you used to be a great guy ;P
Well u know what do i think about u
so do i need to explain? ..
Plr <- { };
function GetTop3( player )
{
local t, ta,i,j,k=0;
for(i=0;i<GetMaxPlayers();i++)
{
if( FindPlayer( i ) )
{
Plr[ i ] <- { };
Plr[ i ].Nick <- player.Name.tostring();
Plr[ i ].Money <- FindPlayer( i ).Cash;
k++;
}
}
//Player1: 2 p2: 3 p3: 4
for(j=0;j<GetMaxPlayers();j++)
{
for(i=0;i<GetMaxPlayers()-1-j;i++)
{
if( Plr.rawin( i ) && Plr.rawin( i + 1 ) && Plr[ i ].Money < Plr[ i + 1 ].Money )
{
t = Plr[ i + 1 ].Nick;
ta = Plr[ i + 1 ].Money;
Plr[ i + 1 ].Nick <- Plr[ i ].Nick;
Plr[ i + 1 ].Money <- Plr[ i ].Money;
Plr[ i ].Nick <- t;
Plr[ i ].Money <- ta;
}
}
}
PrivMessage("Richest Players Online:",player );
for(i=0,j=1;i<k;i++,j++)
PrivMessage( j + ". " + Plr[ i ].Nick + " - " + Plr[ i ].Money,player );
}
/*
[RBG] Rocky's Temp-Ban system (v0.1)
This is completly made by me,
You are free to use, modify it for your own use.
Put my name on credits list only if you like my work.
*/
//Events ->
function onScriptLoad()
{
LoadModule( "sq_lite" );
database <- ConnectSQL( "Data.sqlite" );
QuerySQL( database, "CREATE TABLE IF NOT EXISTS Banned( ban_nick TEXT, ban_ip TEXT, ban_time TEXT, ban_expire TEXT, ban_expireratio TEXT, ban_admin TEXT, ban_reason TEXT )" );
print("[RBAN] Rocky's Ban system Loaded (v0.1)");
}
function onPlayerCommand( player, cmd, text )
{
cmd = cmd.tolower();
if ( cmd == "tempban" )
{
local txt_Split;
if( !player.IsAdmin ) PrivMessage("[RBAN] You are not a admin.", player );
else if( !text ) PrivMessage("[RBAN] /c tempban <player> <day:hour:min> <reason>", player);
else
{
if( NumTok( text, " " ) == 2 )
{
txt_Split = split( text, " " );
local plr = FindPlayer( txt_Split[ 0 ] ), expire = txt_Split[ 1 ];
if( plr ) AddBan( player, plr, expire );
else PrivMessage("[RBAN] No such player.", player );
}
else if( NumTok( text, " " ) >= 3 )
{
txt_Split = split( text, " " );
local plr = FindPlayer( txt_Split[ 0 ] ), expire = txt_Split[ 1 ], reason = txt_Split[ 2 ];
if( plr ) AddBan( player, plr, expire, reason );
else PrivMessage("[RBAN] No such player.", player );
}
else PrivMessage("[RBAN] /c tempban <player> <day:hour:min> <reason>", player);
}
}
}
function onPlayerJoin( player )
{
Banned( player );
}
//Functions ->
//Everyone is familiar with this function. :P
function NumTok(string, separator)
{
local tokenized = split(string, separator);
return tokenized.len();
}
//This basically stores the ban info into database reason for ban is optional.
function AddBan( admin, player, expire, reason = "Not Specified" )
{
//Equation = (DAYS*24*60*60) + (HOUR*60*60) + (MIN*60)
local ban_Expire = split( expire, ":" ); //days:hours:minutes
if( NumTok( expire, ":" ) == 3 )
{
if( IsNum( ban_Expire[ 0 ] ) && IsNum( ban_Expire[ 1 ] ) && IsNum( ban_Expire[ 2 ] ) )
{
if( ban_Expire[ 0 ].tointeger() <= 31 && ban_Expire[ 1 ].tointeger() <= 24 && ban_Expire[ 2 ].tointeger() <= 60 )
{
local ban_Expires = ( (ban_Expire[ 0 ].tointeger()*24*60*60) + (ban_Expire[ 1 ].tointeger()*60*60) + (ban_Expire[ 2 ].tointeger()*60) ),
Calc = ban_Expire[ 0 ] + " Day(s), " + ban_Expire[ 1 ] + " Hour(s), " + ban_Expire[ 2 ] + " Minute(s).",
query = QuerySQL( database, "INSERT INTO Banned( ban_nick, ban_ip, ban_time, ban_expire, ban_expireratio, ban_admin, ban_reason ) VALUES ( '"+ player.Name.tostring() +"','"+ player.IP.tostring() +"','"+ time().tostring() +"', '"+ ban_Expires.tostring() +"', '" + expire.tostring() + "', '"+ admin.Name.tostring() +"', '"+ reason.tostring() +"')");
FreeSQLQuery( query );
PrivMessage("[RBAN] You have been temporarily banned by " + admin.Name, player);
PrivMessage("[RBAN] Your ban is set to expire in: " + Calc, player);
KickPlayer( player );
}
}
else PrivMessage("[RBAN] Time should be numeric (day:hour:min)", admin );
}
else PrivMessage("[RBAN] Wrong format, day:hour:min (Numeric)", admin );
}
//Check if player is banned and Kick him/her.
function Banned( player )
{
local query = QuerySQL( database, "SELECT * FROM Banned WHERE ban_nick='" + player.Name + "' COLLATE NOCASE" ), Ip = player.IP.tostring();
if( GetSQLColumnData( query, 0 ) )
{
if( ( time() - GetSQLColumnData( query, 2 ).tointeger() ) >= GetSQLColumnData( query, 3 ).tointeger() )
{
local query2 = QuerySQL( database, "DELETE FROM Banned WHERE ban_nick='" + player.Name.tostring() + "'" );
FreeSQLQuery( query2 );
PrivMessage("[RBAN] Your ban has been expired.", player );
PrivMessage("[RBAN] Stick to the rules or you will get permanently banned.", player );
}
else
{
local Time_Left = TimeRem( GetSQLColumnData( query, 2 ).tointeger(), GetSQLColumnData( query, 4 ) );
//local splitban = split( GetSQLColumnData( query, 4 ), ":" ), Calc = splitban[ 0 ] + " Day(s), " + splitban[ 1 ] + " Hour(s), " + splitban[ 2 ] + " Minute(s).";
PrivMessage("[RBAN] Your ban has not expired.", player );
PrivMessage("[RBAN] Your ban is set to expire in. " + Time_Left, player );
KickPlayer( player );
}
}
else if( GetSQLColumnData( QuerySQL( database, "SELECT * FROM Banned WHERE ban_ip='" + Ip + "'" ), 0 ) )
{
local query = QuerySQL( database, "SELECT * FROM Banned WHERE ban_ip='" + Ip + "'" );
if( ( time() - GetSQLColumnData( query, 2 ).tointeger() ) >= GetSQLColumnData( query, 3 ).tointeger() )
{
local query2 = QuerySQL( database, "DELETE FROM Banned WHERE ban_ip='" + player.IP.tostring() + "'" );
FreeSQLQuery( query2 );
PrivMessage("[RBAN] Your ban has been expired.", player );
PrivMessage("[RBAN] Stick to the rules or you will get permanently banned.", player );
}
else
{
local Time_Left = TimeRem( GetSQLColumnData( query, 2 ).tointeger(), GetSQLColumnData( query, 4 ).tostring() );
//local splitban = split( GetSQLColumnData( query, 4 ), ":" ), Calc = splitban[ 0 ] + " Day(s), " + splitban[ 1 ] + " Hour(s), " + splitban[ 2 ] + " Minute(s).";
PrivMessage("[RBAN] Your ban has not expired.", player );
PrivMessage("[RBAN] Your ban is set to expire in. " + Time_Left , player );
KickPlayer( player );
}
}
FreeSQLQuery( query );
}
//This returns the time left for ban in Day:hour:minute format.
function TimeRem( bantime, banratio )
{
local ban_current = time()-bantime, sp = split(banratio,":"), ban_Days, ban_Hours, ban_Minutes,
ban_Day = sp[ 0 ].tointeger(),
ban_Hour = sp[ 1 ].tointeger(),
ban_Minute = sp[ 2 ].tointeger();
ban_Days = ban_current/86400;
ban_current = ban_current%86400;
ban_Hours = ban_current/3600;
ban_current = ban_current%3600;
ban_Minutes = ban_current/60;
ban_current = ban_current%60;
print( ban_Days + ":" + ban_Hours + ":" + ban_Minutes );
ban_Day -= ban_Days;
ban_Hour -= ban_Hours;
ban_Minute -= ban_Minutes;
return ban_Day + " Day(s), " + ban_Hour + " Hour(s), " + ban_Minute + " Minutes.";
}
/*
~End of the code~
*/