Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //-----Clan-Stats System -----
- FUNCTION GetTag( strPlayer )
- {
- LOCAL
- D_DELIM = REGEXP(@"([\[(=^<]+\w+[\])=^>]+)"),
- S_DELIM = REGEXP(@"(\w.+[.*=]+)"),
- D_DELIM_res = D_DELIM.capture(strPlayer),
- S_DELIM_res = S_DELIM.capture(strPlayer);
- IF ( D_DELIM_res != NULL )
- {
- RETURN strPlayer.slice( D_DELIM_res[ 0 ].BEGIN + 1, D_DELIM_res[ 0 ].END - 1 );
- }
- ELSE IF ( S_DELIM_res != NULL )
- {
- RETURN strPlayer.slice( S_DELIM_res[ 0 ].BEGIN, S_DELIM_res[ 0 ].END - 1 );
- }
- ELSE RETURN NULL;
- }
- FUNCTION IncClanKills( Clan )
- {
- IF ( Clan != NULL )
- {
- Clan = Clan;
- LOCAL Kills = ClanKills( Clan );
- IF ( Kills != NULL )
- {
- LOCAL Calc = Kills.tointeger() + 1;
- LOCAL query1 = format( "UPDATE ClanStats SET Kills=%i WHERE Clan='" + Clan + "'",
- Calc );
- ::QuerySQL( sDB, query1 );
- }
- ELSE
- {
- LOCAL Calc = 0 + 1;
- LOCAL query1 = format( "UPDATE ClanStats SET Kills=%i WHERE Clan='" + Clan + "'",
- Calc );
- ::QuerySQL( sDB, query1 );
- }
- }
- }
- FUNCTION IncClanDeaths( Clan )
- {
- IF ( Clan != NULL )
- {
- Clan = Clan;
- LOCAL Deaths = ClanDeaths( Clan );
- IF ( Deaths != NULL )
- {
- LOCAL Calc = Deaths.tointeger() + 1;
- LOCAL query1 = format( "UPDATE ClanStats SET Deaths=%i WHERE Clan='" + Clan + "'",
- Calc );
- ::QuerySQL( sDB, query1 );
- }
- ELSE
- {
- LOCAL Calc = 0 + 1;
- LOCAL query1 = format( "UPDATE ClanStats SET Deaths=%i WHERE Clan='" + Clan + "'",
- Calc );
- ::QuerySQL( sDB, query1 );
- }
- }
- }
- FUNCTION IncClanDeads( Clan )
- {
- IF ( Clan != NULL )
- {
- Clan = Clan;
- LOCAL Deads = ClanDeads( Clan );
- IF ( Deads != NULL )
- {
- LOCAL Calc = Deads.tointeger() + 1;
- LOCAL query1 = format( "UPDATE ClanStats SET Deads=%i WHERE Clan='" + Clan + "'",
- Calc );
- ::QuerySQL( sDB, query1 );
- }
- ELSE
- {
- LOCAL Calc = 0 + 1;
- LOCAL query1 = format( "UPDATE ClanStats SET Deads=%i WHERE Clan='" + Clan + "'",
- Calc );
- ::QuerySQL( sDB, query1 );
- }
- }
- }
- FUNCTION ClanKills( Clan )
- {
- IF ( Clan != NULL )
- {
- Clan = Clan;
- LOCAL Answer = ::QuerySQL( sDB, "SELECT Kills FROM ClanStats WHERE Clan='" + Clan + "' COLLATE NOCASE" );
- LOCAL Kills = ::GetSQLColumnData( Answer, 0 );
- IF ( !Kills ) RETURN NULL;
- ELSE RETURN Kills.tointeger();
- FreeSQLQuery( Answer );
- }
- ELSE RETURN NULL;
- }
- FUNCTION ClanDeaths( Clan )
- {
- IF ( Clan != NULL )
- {
- Clan = Clan;
- LOCAL Answer = ::QuerySQL( sDB, "SELECT Deaths FROM ClanStats WHERE Clan='" + Clan + "' COLLATE NOCASE" );
- LOCAL Deaths = ::GetSQLColumnData( Answer, 0 );
- IF ( !Deaths ) RETURN NULL;
- ELSE RETURN Deaths.tointeger();
- FreeSQLQuery( Answer );
- }
- ELSE RETURN NULL;
- }
- FUNCTION ClanDeads( Clan )
- {
- IF ( Clan != NULL )
- {
- Clan = Clan;
- LOCAL Answer = ::QuerySQL( sDB, "SELECT Deads FROM ClanStats WHERE Clan='" + Clan + "' COLLATE NOCASE" );
- LOCAL Deads = ::GetSQLColumnData( Answer, 0 );
- IF ( !Deads ) RETURN NULL;
- ELSE RETURN Deads.tointeger();
- }
- ELSE RETURN NULL;
- }
- /////
- ELSE IF ( ( cmd == "cstat" ) || ( cmd == "cstats" ) || ( cmd == "clanstats" ) )
- {
- (text) ? text = text : text = GetTag( plr.Name );
- IF ( !text ) ::Client_Rojo( "Error, Absent ID/Name/Clan-Name", player );
- ELSE
- {
- LOCAL q = ::QuerySQL( sDB, "SELECT Clan, Kills, Deaths, Deads FROM ClanStats WHERE Clan='" + text + "' COLLATE NOCASE" );
- IF ( !::GetSQLColumnData( q, 0 ) ) ::Client_Rojo( "Error, " + text + "'s clan is not listed.", player );
- ELSE
- {
- LOCAL PKills = ::GetSQLColumnData( q, 1 ).tofloat(), PDeaths = ::GetSQLColumnData( q, 2 ).tofloat(), PDeads = ::GetSQLColumnData( q, 3 ).tofloat(), Ratio;
- IF ( ( PKills > 0 ) && ( PDeaths > 0 ) ) Ratio = PKills / PDeaths;
- IF ( Ratio ) Ratio = format ( "%.2f", Ratio );
- IF ( Ratio ) EMessage( "** " + text + "'s ClanStats - (Kills: " + PKills + ") (Deaths: " + PDeaths + ") (Deads: " + PDeads + ") (Ratio: " + Ratio + ")" );
- ELSE EMessage( "** " + text + "'s ClanStats - (Kills: " + PKills + ") (Deaths: " + PDeaths + ") (Deads: " + PDeads + ")" );
- }
- FreeSQLQuery( q );
- }
- }
- FUNCTION onPlayerJoin( player )
- {
- IF ( GetTag( player.Name ) ) Client_RojoB( "** Clan: " + GetTag( player.Name ), player );
- }
- FUNCTION onPlayerKill( killer, player, weapon, bodypart )
- }
- LOCAL KTag = GetTag( killer.Name ), DTag = GetTag( player.Name );
- IF ( KTag ) IncClanKills( KTag );
- IF ( DTag ) IncClanDeaths( DTag );
- }
- FUNCTION onPlayerDeath( player, reason )
- {
- LOCAL Tag = GetTag( player.Name );
- IF ( Tag ) IncClanDeads( Tag );
- }
- ::QuerySQL( sDB, "CREATE TABLE IF NOT EXISTS ClanStats ( Clan TEXT, Kills LONG DEFAULT 0, Deaths LONG DEFAULT 0, Deads LONG DEFAULT 0 )" );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement