Raised This Month: $12 Target: $400
 3% 

Remove Sql :)


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
Alber9091
Veteran Member
Join Date: Jun 2014
Location: Karachi, Pakistan
Old 06-14-2018 , 17:12   Remove Sql :)
Reply With Quote #1

Can Anyone Please Remove Sql From It.

PHP Code:
/*

      Playerinfo a plugin for Half-Life modifications
    Copyright (C) 2006  Christer Johansson

        This file is part of Playerinfo.

    Playerinfo is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    Playerinfo is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Playerinfo; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    
    Changelog
    - v1.0 Initial realese
    - v1.1 Fixed - spelling error on pi_roundend_save.
    - v1.2 Added - The users ip is updated in the database everytime they connect
    - v1.3 Added - option to choose between print_chat and hud message for advertising /myinfo and when players join
           Fixed - Some code optimization and a few small fixed
    - v1.4 Removed some global variables
    
    Webfiles changelog
           Added - extra cvar in config.php to set how many uses that needs to be on a nick before it show in the info page
*/

#include <amxmodx>
#include <amxmisc>
#include <sqlx>

new AUTH[] = "Gizmo"
new PLUGIN_NAME[] = "Playerinfo"
new VERSION[] = "1.4"

new Handle:g_SqlX
new g_table[32]
new 
g_table2[32]

new 
g_menuPosition[33]
new 
g_menuPlayers[33][32]
new 
g_menuPlayersNum[33]
new 
g_coloredMenus

new MyMsgSync

// pcvar globals
new pi_hudmsg
new pi_show_who
new pi_joinmsg
new pi_prunedb
new pi_prune_days
new pi_myinfo
new pi_roundend_save
new pi_debug

public plugin_init()
{
    
register_plugin(PLUGIN_NAMEVERSIONAUTH)
    
register_cvar(PLUGIN_NAMEVERSIONFCVAR_SERVER FCVAR_SPONLY)

    
// MySql settings
    
register_cvar("pi_sql_host""127.0.0.1")
    
register_cvar("pi_sql_user""root")
    
register_cvar("pi_sql_pass""")
    
register_cvar("pi_sql_db""amx")
    
register_cvar("pi_sql_table1""playerinfo_1")
    
register_cvar("pi_sql_table2""playerinfo_2")

    
// url to playerinfo.php
    
register_cvar("playerinfo_url""http://www.yourhost.com/playerinfo/playerinfo.php?authid=%s")

    
// Pruning of database, 1 = pruning on, 0 = pruning off
    
pi_prunedb register_cvar("pi_prunedb""0")

    
// How many days before old entries in the database is deleted, default is 30
    
pi_prune_days register_cvar("pi_days_before_delete""30")
    
    
// If set to 1 joinmessage is on, 0 = off
    
pi_joinmsg register_cvar("pi_joinmsg""1")
    
    
// If set to 1 only admins see joinmessages, 0 = everyone see joinmessages
    
pi_show_who register_cvar("pi_show_who_joinmsg""1")
    
    
// Set if joinmessages should print in chat or as hud message, 0 = client print, 1 = hud message
    
pi_hudmsg register_cvar("pi_hud_joinmsg""0")
    
    
// Set if player can say /myinfo to se info on themself, 0 = off, 1 = on
    
pi_myinfo register_cvar("pi_myinfo""1")
    
    
// Set this to 1 to enable debug printing
    
pi_debug register_cvar("pi_debug""0")

    
// Menu stuff
    
register_concmd("pi_menu""cmdPlayerinfomenu"ADMIN_MENU"- Displays playerinfo menu")
    
register_menucmd(register_menuid("Playerinfo Menu") , 1023"actionPlayerinfoMenu")

    
g_coloredMenus colored_menus()
    
MyMsgSync CreateHudSyncObj()

    
// Saycommand
    
register_clcmd("say /myinfo""showmotd")
    
register_clcmd("say_team /myinfo""showmotd")

    
// Language files
    
register_dictionary("playerinfo.txt")
    
register_dictionary("common.txt")
    
    
// Check what mod the server is running
    
pi_roundend_save register_cvar("pi_roundend_save""0")
    new 
modname[32]
    
get_modname(modname,31)
    
    if(
equali("cstrike"modname) || equali("ns"modname) || equali("dod"modname))
    {
        
set_pcvar_num(pi_roundend_save1)
        
        if(
get_pcvar_num(pi_debug) == 1)
            
log_amx("Mod %s setting cvar pi_roundend_save to %d"modnameget_pcvar_num(pi_roundend_save))

        
// Register event if the mod is cstrike
        
if(equali("cstrike"modname))
        {
            
register_logevent("RoundEnd"2"0=World triggered""1=Round_End")
        }
        
        
// Register event if the mod is ns
        
else if(equali("ns"modname))
        {
            
register_event("GameStatus""RoundEnd""ab""1=2")
        }
        
        
// Register event if the mod is dod
        
else if(equali("dod"modname))
        {
            
register_event("RoundState","RoundEnd","a","1=3","1=4")
        }
    }

    
// Execute configfile for playerinfo
    
new configsDir[64]
    
get_configsdir(configsDir63)

    
server_cmd("exec %s/playerinfo.cfg"configsDir)
    
server_exec()
}

public 
plugin_cfg()
{
    new 
host[64], user[64], pass[64], db[64]

    
get_cvar_string("pi_sql_host"host63)
    
get_cvar_string("pi_sql_user"user63)
    
get_cvar_string("pi_sql_pass"pass63)
    
get_cvar_string("pi_sql_db"db63)

    
g_SqlX SQL_MakeDbTuple(hostuserpassdb)

    
set_task(0.1"create_table")
}

////////////////////////////////////////////////////////////////
//
//  Creates the tables where playerdata is stored
//

public create_table()
{
    new 
errnumerror[255]

    
get_cvar_string("pi_sql_table1"g_table31)
    
get_cvar_string("pi_sql_table2"g_table231)

    new 
Handle:db SQL_Connect(g_SqlXerrnumerror254)
    if (!
db)
    {
        
log_amx("%L"LANG_SERVER"CONNECTION_FAILED"errnumerror)
        return
    }

    new 
Handle:query SQL_PrepareQuery(db"CREATE TABLE IF NOT EXISTS `%s` (`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , `authid` VARCHAR(32) NOT NULL DEFAULT '0', `nick` VARCHAR(32) NOT NULL DEFAULT 'Unknown', `date` timestamp NOT NULL on update CURRENT_TIMESTAMP default CURRENT_TIMESTAMP , `uses` INT(10) UNSIGNED NOT NULL DEFAULT '0', `ip` VARCHAR(100) NOT NULL DEFAULT '0') ENGINE = MYISAM"g_table)
    if (!
SQL_Execute(query))
    {
        
errnum SQL_QueryError(queryerror254)
        
log_amx("%L"LANG_SERVER"QUERY_FAILED"errnumerror)
        
SQL_FreeHandle(query)
        
SQL_FreeHandle(db)
        return
    }
    
    new 
Handle:query2 SQL_PrepareQuery(db"CREATE TABLE IF NOT EXISTS `%s` ( `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , `authid` VARCHAR(32) NOT NULL DEFAULT '0' , `time` INT(20) UNSIGNED NOT NULL DEFAULT '0' , `connects` INT(10) UNSIGNED NOT NULL DEFAULT '0' , `rounds` INT(10) UNSIGNED NOT NULL DEFAULT '0' , `date` timestamp NOT NULL on update CURRENT_TIMESTAMP default CURRENT_TIMESTAMP ) ENGINE = MYISAM" g_table2)
    if (!
SQL_Execute(query2))
    {
        
errnum SQL_QueryError(query2error254)
        
log_amx("%L"LANG_SERVER"QUERY_FAILED"errnumerror)
        
SQL_FreeHandle(query2)
        
SQL_FreeHandle(db)
        return
    }
    
SQL_FreeHandle(query)
    
SQL_FreeHandle(query2)
    
SQL_FreeHandle(db)
}

////////////////////////////////////////////////////////////////
//
//   Start client_putinserver querys for both tables
//

public client_putinserver(id)
{
    new 
steamid[32]
    
get_user_authid(idsteamid31)
    
    if(
get_pcvar_num(pi_debug) == 1)
        
log_amx("[Putinserver]Steamid: %s"steamid)

    if(
containi(steamid,"BOT") != -1)
    {
        return 
PLUGIN_HANDLED
    
}

    if(
containi(steamid,"STEAM_ID_PENDING") != -1)
    {
        
client_cmd(id"reconnect")
    }

    if(
get_pcvar_num(pi_myinfo) == 1)
    {
        
set_task(6.0"myinfo"id)
    }

    
join_msg(id)
    
client_putinserver_1a(id)
    
client_putinserver_2a(id)
    
client_putinserver_3a(id)
    return 
PLUGIN_CONTINUE
}

public 
myinfo(id)
{
    if(
get_pcvar_num(pi_hudmsg) == 0)
    {
        
client_print(idprint_chat"%L"LANG_PLAYER"MYINFO")
    }
    else
    {
        new 
name[32]
        
get_user_name(idname31)
        
        if(
get_pcvar_num(pi_debug) == 1)
            
log_amx("[myinfo]Name: %s"name)

        new 
message[192]
        
format(message191"%L"id"MYINFO"name)
        
set_hudmessage(025500.050.3006.05.0 0.50.15, -1)
        
ShowSyncHudMsg(idMyMsgSync"%s"message)
    }
    return 
PLUGIN_HANDLED
}

////////////////////////////////////////////////////////////////
//
//   Save client_putinserver querys for table 1
//

public client_putinserver_1a(id)
{
    new 
steamid[32], name[32]
    
get_user_name(idname31)
    
get_user_authid(idsteamid31)
    
    if(
get_pcvar_num(pi_debug) == 1)
        
log_amx("[cp 1a]Steamid: %s, Name: %s"steamidname)
    
    new 
query[512]
    
format(query511"SELECT nick FROM `%s` WHERE `authid` = '%s' AND `nick` = '%s'"g_tablesteamidname)
    
    new 
data[1]
    
data[0] = id
    SQL_ThreadQuery
(g_SqlX"client_putinserver_1b"querydata1)
    return
}

public 
client_putinserver_1b(failstateHandle:queryerror[], errnumdata[], size)
{
    new 
id data[0]
    
    if (
failstate)
    {
        new 
szQuery[256]
        
MySqlX_ThreadErrorszQueryerrorerrnumfailstate)
    }
    else
    {
        new 
steamid[32], ip[32], name[32]
        
get_user_name(idname31)
        
get_user_authid(idsteamid31)
        
get_user_ip(idip311)
        
        
replaceall(name31"'""")
        
replaceall(name31"\", "")
        replaceall(name, 31, "
<", "(")
        
        if(get_pcvar_num(pi_debug) == 1)
            log_amx("
[cp 1b]Steamid: %sName: %sip: %s", steamid, name, ip)

        if(equal(steamid, ""))
        {
            if(get_pcvar_num(pi_debug) == 1)
                log_amx("
no steamid on user %s", name)
            
            return PLUGIN_HANDLED
        }
        
        if(!SQL_NumResults(query))
        {
            new query[512], data[1]

            format(query, 511, "
INSERT INTO `%s` ( `id` , `authid` , `nick` , `date` , `uses` , `ip`) VALUES NULL '%s''%s'CURRENT_TIMESTAMP '1''%s')", g_table, steamid, name, ip)

            data[0] = id
            SQL_ThreadQuery(g_SqlX, "
client_putinserver_1_insert", query, data, 1)
        }
        else
        {
            new query[512], data[1]

            format(query, 511, "
UPDATE `%sSET `uses`=`uses`+1 WHERE `nick`='%s' AND `authid`='%s'", g_table, name, steamid)

            data[0] = id
            SQL_ThreadQuery(g_SqlX, "
client_putinserver_1_update", query, data, 1)
        }
    }
    return PLUGIN_HANDLED
}

public client_putinserver_1_insert(failstate, Handle:query, error[], errnum, data[], size)
{
    if (failstate)
    {
        new szQuery[256]
        MySqlX_ThreadError(szQuery, error, errnum, failstate, 2)
    }
}

public client_putinserver_1_update(failstate, Handle:query, error[], errnum, data[], size)
{
    if (failstate)
    {
        new szQuery[256]
        MySqlX_ThreadError(szQuery, error, errnum, failstate, 3)
    }
}


////////////////////////////////////////////////////////////////
//
//  Save client_putinserver querys for table 2
//

public client_putinserver_2a(id)
{
    new steamid[32]
    get_user_authid(id, steamid, 31)
    
    if(get_pcvar_num(pi_debug) == 1)
        log_amx("
[cp 2a]Steamid: %s", steamid)
    
    new query[512]
    format(query, 511, "
SELECT authid FROM `%sWHERE `authid` = '%s'", g_table2, steamid)
    
    new data[1]
    data[0] = id

    SQL_ThreadQuery(g_SqlX, "
client_putinserver_2b", query, data, 1)
    return
}

public client_putinserver_2b(failstate, Handle:query, error[], errnum, data[], size)
{
    new id = data[0]

    if (failstate)
    {
        new szQuery[256]
        MySqlX_ThreadError(szQuery, error, errnum, failstate, 4)
    }
    else
    {    
        new steamid[32]
        get_user_authid(id, steamid, 31)
        
        if(get_pcvar_num(pi_debug) == 1)
            log_amx("
[cp 2b]Steamid: %s", steamid)

        if(!SQL_NumResults(query))
        {
            new query[512], data[1]

            format(query, 511, "
INSERT INTO `%s` ( `authid` , `time` , `connects` , `rounds`) VALUES '%s''0''1' '0' )", g_table2, steamid)

            data[0] = id
            SQL_ThreadQuery(g_SqlX, "
client_putinserver_2_insert", query, data, 1)
        }
        else
        {
            new query[512], data[1]

            format(query, 511, "
UPDATE `%sSET `connects`=connects+1 WHERE `authid`='%s'", g_table2, steamid)

            data[0] = id
            SQL_ThreadQuery(g_SqlX, "
client_putinserver_2_update", query, data, 1)
        }
    }
}

public client_putinserver_2_insert(failstate, Handle:query, error[], errnum, data[], size)
{
    if (failstate)
    {
        new szQuery[256]
        MySqlX_ThreadError(szQuery, error, errnum, failstate, 5)
    }
}

public client_putinserver_2_update(failstate, Handle:query, error[], errnum, data[], size)
{
    if (failstate)
    {
        new szQuery[256]
        MySqlX_ThreadError(szQuery, error, errnum, failstate, 6)
    }
}

////////////////////////////////////////////////////////////////
//
//  Updates ip on clients when they connect if their ip is diffrent from last time
//

public client_putinserver_3a(id)
{
    new steamid[32], name[32]
    get_user_name(id, name, 31)
    get_user_authid(id, steamid, 31)
    
    if(get_pcvar_num(pi_debug) == 1)
        log_amx("
[cp 3a]Steamid: %sName: %s", steamid, name)

    new query[512]
    format(query, 511, "
SELECT ip FROM `%sWHERE `authid` = '%s' AND `nick` = '%s'", g_table, steamid, name)
    
    new data[1]
    data[0] = id
    
    SQL_ThreadQuery(g_SqlX, "
client_putinserver_3b", query, data, 1)
    return
}

public client_putinserver_3b(failstate, Handle:query, error[], errnum, data[], size)
{
    new id = data[0]
    
    if (failstate)
    {
        new szQuery[256]
        MySqlX_ThreadError( szQuery, error, errnum, failstate, 12 )
    }
    else
    {
        new steamid[32], ip[32]
        get_user_authid(id, steamid, 31)
        get_user_ip(id, ip, 31, 1)
        
        if(get_pcvar_num(pi_debug) == 1)
            log_amx("
[cp 3b]Steamid: %sip: %s", steamid, ip)

        if(!SQL_NumResults(query))
        {
            return PLUGIN_HANDLED
        }
        else
        {
            new query_ip[32]
            SQL_ReadResult(query, 0, query_ip, 31)
            if(equali(query_ip, ip))
            {
                return PLUGIN_HANDLED
            }
            else
            {
                new query[512], data[1]

                format(query, 511, "
UPDATE `%sSET `ip`='%s' WHERE `authid`='%s'", g_table, ip, steamid)
    
                data[0] = id
                SQL_ThreadQuery(g_SqlX, "
client_putinserver_3_update", query, data, 1)
            }
        }
    }
    return PLUGIN_CONTINUE
}

public client_putinserver_3_update(failstate, Handle:query, error[], errnum, data[], size)
{
    if (failstate)
    {
        new szQuery[256]
        MySqlX_ThreadError(szQuery, error, errnum, failstate, 3)
    }
}


////////////////////////////////////////////////////////////////
//
//  Saves number of rounds the players has played
//

public RoundEnd()
{
    if(get_pcvar_num(pi_roundend_save) == 0)
        return PLUGIN_HANDLED

    new Player[32]
    new playerCount, i
    get_players(Player, playerCount)
    for (i = 0; i < playerCount; i++)
    {
        new id = Player[i]
        if(is_user_connected(id))
        {
            EndofRound_1(id)
        }
    }
    return PLUGIN_CONTINUE
}

public EndofRound_1(id)
{
    new query[512], data[1], steamid[32]
    get_user_authid(id, steamid, 31)
    
    if(get_pcvar_num(pi_debug) == 1)
        log_amx("
[Endround save]Steamid: %s", steamid)

    format(query, 511, "
UPDATE `%sSET `rounds`=rounds+1 WHERE `authid`='%s'", g_table2, steamid)

    data[0] = id
    SQL_ThreadQuery(g_SqlX, "
EndofRound_2", query, data, 1)
}

public EndofRound_2(failstate, Handle:query, error[], errnum, data[], size)
{
    if (failstate)
    {
        new szQuery[256]
        MySqlX_ThreadError(szQuery, error, errnum, failstate, 7)
    }
}

////////////////////////////////////////////////////////////////
//
//  Adds or updates data when player change name
//

public client_infochanged(id)
{
    if(is_user_connected(id))
    {
        new oldname[32], newname[32], steamid[32]
        get_user_info(id, "
name", newname, 31)
        get_user_name(id, oldname, 31)
        get_user_authid(id, steamid, 31)
        
        if(get_pcvar_num(pi_debug) == 1)
            log_amx("
[infochanged]Steamid: %sOldname: %sNewname: %s", steamid, oldname, newname)

        if(!equal(oldname, newname))
        {
            if(containi(steamid, "
BOT") != -1)
                return PLUGIN_HANDLED

            client_infochanged_1(id, newname)
        }
    }
    return PLUGIN_CONTINUE
}

public client_infochanged_1(id, newname[])
{
    new steamid[32]
    get_user_authid(id, steamid, 31)
    
    if(get_pcvar_num(pi_debug) == 1)
        log_amx("
[ci 1]Steamid: %sNewname: %s", steamid, newname)

    new query[512]
    format(query, 511, "
SELECT nick FROM `%sWHERE `authid` = '%s' AND `nick` = '%s'", g_table, steamid, newname)
    
    new data[2]
    data[0] = id
    
    SQL_ThreadQuery(g_SqlX, "
client_infochanged_2", query, data, 1)
    return
}

public client_infochanged_2(failstate, Handle:query, error[], errnum, data[], size)
{
    new id = data[0]
    new name[32]
    get_user_name(id, name, 31)
    
    if(get_pcvar_num(pi_debug) == 1)
        log_amx("
[ci 2(1)]Newname: %s", name)
    
    new steamid[32], ip[32]
    get_user_authid(id, steamid, 31)
    get_user_ip(id, ip, 31, 1)

    replaceall(name, 31, "'", "")
    replaceall(name, 31, "\", "")
    replaceall(name, 31, "<", "(")
    
    if(get_pcvar_num(pi_debug) == 1)
        log_amx("[ci 2(2)]Steamid: %s, newname: %s, ip: %s", steamid, name, ip)

    if (failstate)
    {
        new szQuery[256]
        MySqlX_ThreadError(szQuery, error, errnum, failstate, 8)
    }
    else
    {
        new result = SQL_NumResults(query)
        if(result == 0)
        {
            new query[512], data[1]
            format(query, 511, "INSERT INTO `%s` ( `id` , `authid` , `nick` , `date` , `uses` , `ip` ) VALUES ( NULL , '
%s', '%s', CURRENT_TIMESTAMP , '1', '%s')", g_table, steamid, name, ip)

            data[0] = id
            SQL_ThreadQuery(g_SqlX, "client_infochanged_insert", query, data, 1)
        }
        else
        {
            new query[512], data[1]
            format(query, 511, "UPDATE `%s` SET `uses`=`uses`+1 WHERE `nick`='
%s' AND `authid`='%s'", g_table, name, steamid)
            
            data[0] = id
            SQL_ThreadQuery(g_SqlX, "client_infochanged_update", query, data, 1)
        }
    }
}

public client_infochanged_insert(failstate, Handle:query, error[], errnum, data[], size)
{
    if (failstate)
    {
        new szQuery[256]
        MySqlX_ThreadError(szQuery, error, errnum, failstate, 9)
    }
}

public client_infochanged_update(failstate, Handle:query, error[], errnum, data[], size)
{
    if (failstate)
    {
        new szQuery[256]
        MySqlX_ThreadError(szQuery, error, errnum, failstate, 10)
    }
}



////////////////////////////////////////////////////////////////
//
//    Prints join message in chat when player gets steamid
//

public join_msg(id)
{
    if(get_pcvar_num(pi_joinmsg) == 0)
    {
        return PLUGIN_HANDLED
    }
    new steamid[32]
    get_user_authid(id, steamid, 31)
    
    if(get_pcvar_num(pi_debug) == 1)
        log_amx("[joinmsg]Steamid: %s", steamid)

    new query[512]
    format(query, 511, "SELECT nick FROM `%s` WHERE `authid`='
%s' ORDER BY uses DESC LIMIT 1", g_table, steamid)
    
    new data[1]
    data[0] = id

    SQL_ThreadQuery(g_SqlX, "_join_msg", query, data, 1)
    return PLUGIN_CONTINUE
}

public _join_msg(failstate, Handle:query, error[], errnum, data[], size)
{
    new id = data[0]

    if (failstate)
    {
        new szQuery[256]
        MySqlX_ThreadError(szQuery, error, errnum, failstate, 11)
    }
    else
    {
        new name[32]
        get_user_name(id, name, 31)
        
        if(get_pcvar_num(pi_debug) == 1)
            log_amx("[joinmsg 2]Name: %s",name)

        if(!SQL_NumResults(query))
        {
            if(get_pcvar_num(pi_show_who) == 1)
            {
                new players[32], playersnum
                get_players(players, playersnum, "ch")
                for(new i = 0; i < playersnum; i++)
                {
                    new player = players[i]
                    if(is_user_admin(player))
                    {
                        if(get_pcvar_num(pi_hudmsg) == 0)
                        {
                            client_print(player, print_chat, "%L", LANG_PLAYER, "JOIN_MSG", name)
                        }
                        else
                        {
                            new message[192]
                            format(message, 191, "%L", LANG_PLAYER, "JOIN_MSG", name)
                            set_hudmessage(0, 255, 0, 0.05, 0.30, 0, 6.0, 5.0 , 0.5, 0.15, -1)
                            ShowSyncHudMsg(player, MyMsgSync, "%s", message)
                        }
                    }
                }
            }
            else
            {
                if(get_pcvar_num(pi_hudmsg) == 0)
                {
                    client_print(0, print_chat, "%L", LANG_PLAYER, "JOIN_MSG", name)
                }
                else
                {
                    new message[192]
                    format(message, 191, "%L", LANG_PLAYER, "JOIN_MSG", name)
                    set_hudmessage(0, 255, 0, 0.05, 0.30, 0, 6.0, 5.0 , 0.5, 0.15, -1)
                    ShowSyncHudMsg(0, MyMsgSync, "%s", message)
                }
            }
        }
        else
        {
            new str[32]
            SQL_ReadResult(query, 0, str, 31)
    
            if(get_pcvar_num(pi_show_who) == 1)
            {
                new players[32], playersnum
                get_players(players, playersnum, "ch")
                for(new i = 0; i < playersnum; i++)
                {
                    new player = players[i]
                    if(is_user_admin(player))
                    {
                        if(get_pcvar_num(pi_hudmsg) == 0)
                        {
                            client_print(player, print_chat, "%L", LANG_PLAYER, "JOIN_MSG", name)
                            client_print(player, print_chat, "%L", LANG_PLAYER, "JOIN_MSG2", str)
                        }
                        else
                        {
                            new message[192]
                            format(message, 191, "%L", LANG_PLAYER, "JOIN_HUDMSG", name , str)
                            set_hudmessage(0, 255, 0, 0.05, 0.30, 0, 6.0, 5.0 , 0.5, 0.15, -1)
                            ShowSyncHudMsg(player, MyMsgSync, "%s", message)
                        }
                    }
                }
            }
            else
            {
                if(get_pcvar_num(pi_hudmsg) == 0)
                {
                    client_print(0, print_chat, "%L", LANG_PLAYER, "JOIN_MSG", name)
                    client_print(0, print_chat, "%L", LANG_PLAYER, "JOIN_MSG2", str)
                }
                else
                {
                    new message[192]
                    format(message, 191, "%L", LANG_PLAYER, "JOIN_HUDMSG", name, str)
                    set_hudmessage(0, 255, 0, 0.05, 0.30, 0, 6.0, 5.0 , 0.5, 0.15, -1)
                    ShowSyncHudMsg(0, MyMsgSync, "%s", message)
                }
            }
        }
    }
    return PLUGIN_HANDLED
}

////////////////////////////////////////////////////////////////
//
//  Save the amount of time the players has played on the server
//

public client_disconnect(id)
{
    new steamid[32], errnum, error[255]
    new playtime = get_user_time(id)

    get_user_authid(id, steamid, 31)
    
    if(get_pcvar_num(pi_debug) == 1)
        log_amx("[cd]Steamid: %s", steamid)

    new Handle:db = SQL_Connect(g_SqlX, errnum, error, 254)
    if (!db)
    {
        server_print("Connection failed [%d] %s", errnum, error)
        return
    }

    new Handle:query = SQL_PrepareQuery(db, "UPDATE `%s` SET `time`=time+%i WHERE `authid`='
%s'", g_table2, playtime, steamid)
    if (!SQL_Execute(query))
    {
        errnum = SQL_QueryError(query, error, 254)
        server_print("Query failed [%d] %s", errnum, error)
        SQL_FreeHandle(query)
        SQL_FreeHandle(db)
        return
    }
    SQL_FreeHandle(query)
    SQL_FreeHandle(db)
}

////////////////////////////////////////////////////////////////
//
//   Menu functions
//

public cmdPlayerinfomenu(id, level, cid)
{
    if (!cmd_access(id, level, cid, 1))
        return PLUGIN_HANDLED

    displayPlayerinfoMenu(id, g_menuPosition[id] = 0)

    return PLUGIN_HANDLED
}

displayPlayerinfoMenu(id, pos)
{
    if (pos < 0)
        return

    get_players(g_menuPlayers[id], g_menuPlayersNum[id])

    new menuBody[512]
    new b = 0
    new i
    new name[32]
    new start = pos * 7

    if (start >= g_menuPlayersNum[id])
        start = pos = g_menuPosition[id] = 0

    new len = format(menuBody, 511, g_coloredMenus ? "\y%L\R%d/%d^n\w^n" : "%L %d/%d^n^n", id, "PLAYERINFOMENU", pos + 1, (g_menuPlayersNum[id] / 7 + ((g_menuPlayersNum[id] % 7) ? 1 : 0)))
    new end = start + 7
    new keys = MENU_KEY_0|MENU_KEY_8

    if (end > g_menuPlayersNum[id])
        end = g_menuPlayersNum[id]

    for (new a = start; a < end; ++a)
    {
        i = g_menuPlayers[id][a]
        get_user_name(i, name, 31)

        if (is_user_bot(i))// || access(i, ADMIN_IMMUNITY)
        {
            ++b
            
            if (g_coloredMenus)
                len += format(menuBody[len], 511-len, "\d%d. %s^n\w", b, name)
            else
                len += format(menuBody[len], 511-len, "#. %s^n", name)
        }
        else
        {
                keys |= (1<<b)
                len += format(menuBody[len], 511-len, "%d. %s^n", ++b, name)
        }
    }

    if (end != g_menuPlayersNum[id])
    {
        format(menuBody[len], 511-len, "^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT")
        keys |= MENU_KEY_9
    }
    else
        format(menuBody[len], 511-len, "^n0. %L", id, pos ? "BACK" : "EXIT")

    show_menu(id, keys, menuBody, -1, "Playerinfo Menu")
}

public actionPlayerinfoMenu(id, key)
{
    switch (key)
    {
        case 8: displayPlayerinfoMenu(id, ++g_menuPosition[id])
        case 9: displayPlayerinfoMenu(id, --g_menuPosition[id])
        default:
        {
            new player = g_menuPlayers[id][g_menuPosition[id] * 7 + key]
            new Authid[32], info_url[256], msg[2048]
            get_user_authid(player, Authid, 31)
            
            get_cvar_string("playerinfo_url", info_url, 255)
            format(msg, 2047, info_url, Authid)
            show_motd(id, msg, "Playerinfo")
            
            displayPlayerinfoMenu(id, g_menuPosition[id])
        }
    }

    return PLUGIN_HANDLED
}


////////////////////////////////////////////////////////////////
//
//  Function for showing the players their own info in motd
//

public showmotd(id)
{
    if(get_pcvar_num(pi_myinfo) == 0)
    {
        client_print(id, print_chat, "%L", LANG_PLAYER, "MYINFO_DISABLED")
        return PLUGIN_HANDLED
    }
    else
    {
        new Authid[32], msg[2048], info_url[256]
        get_user_authid(id, Authid, 31)
        get_cvar_string("playerinfo_url", info_url, 255)
        format(msg, 2047, info_url, Authid)
        show_motd(id, msg, "Playerinfo")
    }
    return PLUGIN_HANDLED
}

////////////////////////////////////////////////////////////////
//
//  Delets players older than sv_days_before_delete from the database
//

prune_db()
{
    new errnum, error[255]
    new prunedb = get_pcvar_num(pi_prune_days)
    
    new Handle:db = SQL_Connect(g_SqlX, errnum, error, 254)
    if (!db)
    {
        log_amx("%L", LANG_SERVER, "CONNECTION_FAILED", errnum, error)
        return
    }

    new Handle:query = SQL_PrepareQuery(db, "DELETE FROM `%s` WHERE DATE_SUB(CURDATE(),INTERVAL %d DAY) > date", g_table, prunedb)
    
    if (!SQL_Execute(query))
    {
        errnum = SQL_QueryError(query, error, 254)
        log_amx("%L", LANG_SERVER, "QUERY_FAILED", errnum, error)
        SQL_FreeHandle(query)
        SQL_FreeHandle(db)
        return
    }
    
    new Handle:query2 = SQL_PrepareQuery(db, "DELETE FROM `%s` WHERE DATE_SUB(CURDATE(),INTERVAL %d DAY) > date", g_table2, prunedb)
    
    if (!SQL_Execute(query2))
    {
        errnum = SQL_QueryError(query, error, 254)
        log_amx("%L", LANG_SERVER, "QUERY_FAILED", errnum, error)
        SQL_FreeHandle(query2)
        SQL_FreeHandle(db)
        return
    }
    SQL_FreeHandle(query)
    SQL_FreeHandle(query2)
    SQL_FreeHandle(db)

    server_print("%L", LANG_SERVER, "PRUNE_DB", prunedb)
}

////////////////////////////////////////////////////////////////

public plugin_end()
{
    if(get_pcvar_num(pi_prunedb) == 1)
    {
        prune_db()
    }
    SQL_FreeHandle(g_SqlX)
    return
}

////////////////////////////////////////////////////////////////

MySqlX_ThreadError(szQuery[], error[], errnum, failstate, id)
{
    
    if (failstate == TQUERY_CONNECT_FAILED)
    {
        log_amx("%L", LANG_SERVER, "TCONNECTION_FAILED")
    }
    else if (failstate == TQUERY_QUERY_FAILED)
    {
        log_amx("%L", LANG_SERVER, "TQUERY_FAILED")
    }
    log_amx("%L", LANG_SERVER, "TQUERY_ERROR", id)
    log_amx("%L", LANG_SERVER, "TQUERY_MSG", error, errnum)
    log_amx("%L", LANG_SERVER, "TQUERY_STATEMENT", szQuery)
}

stock replaceall(text[], const LEN, const WHAT[], const WITH[])
{
    while (contain(text, WHAT) != -1)
    {
        replace(text, LEN, WHAT, WITH)
    }

Alber9091 is offline
 


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 04:37.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode