Page 1 of 1

sms plugin error

Posted: 2013 Jan 10 16:13
by Neh

Code: Select all

L 01/10/2013 - 16:10:45: [MySQL] Invalid handle: 0L 01/10/2013 - 16:10:45: [AMXX] Run time error 10 (plugin "sms.amxx") (native "SQL_FreeHandle") - debug not enabled!L 01/10/2013 - 16:10:45: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes). 
Nesuprantu niekaip... Naudoju "senaje vpsnet sms sistema" pluginas iš kitos sms sistemos. Gal dėl to? Dabar bandau su admin_dproto pluginu (Buvo tarp sms failų) .
Tas pats ir su tos sistemos pluginu.

Re: sms plugin error

Posted: 2013 Jan 10 16:19
by laimiukas3
Sms.amxx debug darasyta?

Re: sms plugin error

Posted: 2013 Jan 10 16:20
by Neh

Code: Select all

L 01/10/2013 - 16:20:35: [MySQL] Invalid handle: 0L 01/10/2013 - 16:20:35: [AMXX] Displaying debug trace (plugin "admin_dproto.amxx")L 01/10/2013 - 16:20:35: [AMXX] Run time error 10: native error (native "SQL_FreeHandle")L 01/10/2013 - 16:20:35: [AMXX]    [0] admin_dproto.sma::plugin_end (line 117) 
Tai kaip suprantu toi eilutėją yra error'as? Ar kas?

Re: sms plugin error

Posted: 2013 Jan 10 16:31
by laimiukas3
Tikriausei sma koda reiktu cia paroditi jei nori kad kas padetu :-D

Re: sms plugin error

Posted: 2013 Jan 10 16:34
by Neh
Atsiprašau . :D Štai default jis.

Code: Select all

/* AMX Mod X script.*   Admin Base Plugin** by the AMX Mod X Development Team*  originally developed by OLO** This file is part of AMX Mod X.***  This program 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.**  This program 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 this program; if not, write to the Free Software Foundation,*  Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA**  In addition, as a special exception, the author gives permission to*  link the code of this program with the Half-Life Game Engine ("HL*  Engine") and Modified Game Libraries ("MODs") developed by Valve,*  L.L.C ("Valve"). You must obey the GNU General Public License in all*  respects for all of the code used other than the HL Engine and MODs*  from Valve. If you modify this file, you may extend this exception*  to your version of the file, but you are not obligated to do so. If*  you do not wish to do so, delete this exception statement from your*  version.***  Updated to code from admin.sma AMXX 1.8.1.3746 (|PJ|ShOrTy)*/ #include <amxmodx>#include <amxmisc>#include <sqlx> #define VERSION_AMXX "1.8.1.3746"#define VERSION_AMXBANS "AMXBans Admin rc5.1" new AdminCount; #define ADMIN_LOOKUP    (1<<0)#define ADMIN_NORMAL    (1<<1)#define ADMIN_STEAM (1<<2)#define ADMIN_IPADDR    (1<<3)#define ADMIN_NAME  (1<<4) new g_cmdLoopback[16]  // pcvarsnew amx_mode;new amx_password_field;new amx_default_access; new Handle:info public plugin_init(){        register_plugin(VERSION_AMXBANS, VERSION_AMXX, "AMXBans Dev Team")    register_dictionary("admin.txt")    register_dictionary("common.txt")    amx_mode=register_cvar("amx_mode", "1")    amx_password_field=register_cvar("amx_password_field", "_pw")    amx_default_access=register_cvar("amx_default_access", "")     register_cvar("amx_vote_ratio", "0.02")    register_cvar("amx_vote_time", "10")    register_cvar("amx_vote_answers", "1")    register_cvar("amx_vote_delay", "60")    register_cvar("amx_last_voting", "0")    register_cvar("amx_show_activity", "2")    register_cvar("amx_votekick_ratio", "0.40")    register_cvar("amx_voteban_ratio", "0.40")    register_cvar("amx_votemap_ratio", "0.40")     set_cvar_float("amx_last_voting", 0.0)     register_srvcmd("amx_sqladmins", "adminSql")    register_cvar("amx_sql_table", "admins")    register_cvar("amx_sql_host", "127.0.0.1")    register_cvar("amx_sql_user", "root")    register_cvar("amx_sql_pass", "")    register_cvar("amx_sql_db", "amx")    register_cvar("amx_sql_type", "mysql")     register_concmd("amx_reloadadmins", "cmdReload", ADMIN_CFG)        format(g_cmdLoopback, 15, "amxauth%c%c%c%c", random_num('A', 'Z'), random_num('A', 'Z'), random_num('A', 'Z'), random_num('A', 'Z'))     register_clcmd(g_cmdLoopback, "ackSignal")     remove_user_flags(0, read_flags("z"))       // Remove 'user' flag from server rights} public plugin_cfg(){    new configsDir[64]    get_configsdir(configsDir, 63)        server_cmd("exec %s/amxx.cfg", configsDir)  // Execute main configuration file    server_cmd("exec %s/sql.cfg", configsDir)        set_task(0.1,"sql_init",101)    //server_cmd("amx_sqladmins")        set_task(6.1, "delayed_load",102)}public plugin_end() {    if(info==Empty_Handle)        SQL_FreeHandle(info)}public delayed_load(){    new configFile[128], curMap[64], configDir[128]     get_configsdir(configDir, sizeof(configDir)-1)    get_mapname(curMap, sizeof(curMap)-1)     new i=0;        while (curMap[i] != '_' && curMap[i++] != '^0') {/*do nothing*/}        if (curMap[i]=='_')    {        // this map has a prefix        curMap[i]='^0';        formatex(configFile, sizeof(configFile)-1, "%s/maps/prefix_%s.cfg", configDir, curMap);         if (file_exists(configFile))        {            server_cmd("exec %s", configFile);        }    }     get_mapname(curMap, sizeof(curMap)-1)         formatex(configFile, sizeof(configFile)-1, "%s/maps/%s.cfg", configDir, curMap)     if (file_exists(configFile))    {        server_cmd("exec %s", configFile)    }    }loadSettings(szFilename[]){    new File=fopen(szFilename,"r");        if (File)    {        new Text[512];        new Flags[32];        new Access[32]        new AuthData[44];        new Password[32];                while (!feof(File))        {            fgets(File,Text,sizeof(Text)-1);                        trim(Text);                        // comment            if (Text[0]==';')             {                continue;            }                        Flags[0]=0;            Access[0]=0;            AuthData[0]=0;            Password[0]=0;                        // not enough parameters            if (parse(Text,AuthData,sizeof(AuthData)-1,Password,sizeof(Password)-1,Access,sizeof(Access)-1,Flags,sizeof(Flags)-1) < 2)            {                continue;            }                        admins_push(AuthData,Password,read_flags(Access),read_flags(Flags));             AdminCount++;        }                fclose(File);    }     if (AdminCount == 1)    {        server_print("[AMXX] %L", LANG_SERVER, "LOADED_ADMIN");    }    else    {        server_print("[AMXX] %L", LANG_SERVER, "LOADED_ADMINS", AdminCount);    }        return 1;}public sql_init() {    //new type    //SQL_GetAffinity(type, 11)    SQL_SetAffinity("mysql")    info = SQL_MakeStdTuple()        adminSql()}public adminSql(){    new table[32], error[128], type[12], errno        new Handle:info = SQL_MakeDbTuple("127.0.0.1","root","pw","db")  // mysql duomenis    new Handle:sql = SQL_Connect(info, errno, error, 127)        get_cvar_string("amx_sql_table", table, 31)        SQL_GetAffinity(type, 11)        if (sql == Empty_Handle)    {        server_print("[AMXX] %L", LANG_SERVER, "SQL_CANT_CON", error)                //backup to users.ini        new configsDir[64]                get_configsdir(configsDir, 63)        format(configsDir, 63, "%s/users.ini", configsDir)        loadSettings(configsDir) // Load admins accounts from users.ini                return PLUGIN_HANDLED    }        new Handle:query        // Sqlite is removed as amxbans dont use that.        SQL_QueryAndIgnore(sql, "CREATE TABLE IF NOT EXISTS `amx_amxadmins` (`id` int(12) NOT NULL auto_increment, `username` varchar(32) default NULL, `password` varchar(32) default NULL, `access` varchar(32) default NULL, `flags` varchar(32) default NULL, `steamid` varchar(32) default NULL, `nickname` varchar(32) NOT NULL default '', PRIMARY KEY (`id`))")    query = SQL_PrepareQuery(sql,"SELECT amx_amxadmins.username, amx_amxadmins.password, amx_amxadmins.access, amx_amxadmins.flags FROM amx_amxadmins")     if (!SQL_Execute(query))    {        SQL_QueryError(query, error, 127)        server_print("[AMXX] %L", LANG_SERVER, "SQL_CANT_LOAD_ADMINS", error)    } else if (!SQL_NumResults(query)) {        server_print("[AMXX] %L", LANG_SERVER, "NO_ADMINS")    } else {                AdminCount = 0                /** do this incase people change the query order and forget to modify below */        new qcolAuth = SQL_FieldNameToNum(query, "username")        new qcolPass = SQL_FieldNameToNum(query, "password")        new qcolAccess = SQL_FieldNameToNum(query, "access")        new qcolFlags = SQL_FieldNameToNum(query, "flags")                new AuthData[44];        new Password[44];        new Access[32];        new Flags[32];                while (SQL_MoreResults(query))        {            SQL_ReadResult(query, qcolAuth, AuthData, sizeof(AuthData)-1);            SQL_ReadResult(query, qcolPass, Password, sizeof(Password)-1);            SQL_ReadResult(query, qcolAccess, Access, sizeof(Access)-1);            SQL_ReadResult(query, qcolFlags, Flags, sizeof(Flags)-1);                admins_push(AuthData,Password,read_flags(Access),read_flags(Flags));                ++AdminCount;            SQL_NextRow(query)        }            if (AdminCount == 1)        {            server_print("[AMXX] %L", LANG_SERVER, "SQL_LOADED_ADMIN")        }        else        {            server_print("[AMXX] %L", LANG_SERVER, "SQL_LOADED_ADMINS", AdminCount)        }    }    SQL_FreeHandle(query)    SQL_FreeHandle(sql)     return PLUGIN_HANDLED} public cmdReload(id, level, cid){    if (!cmd_access(id, level, cid, 1))        return PLUGIN_HANDLED     //strip original flags (patch submitted by mrhunt)    remove_user_flags(0, read_flags("z"))        admins_flush();     AdminCount = 0    adminSql()     if (id != 0)    {        if (AdminCount == 1)            console_print(id, "[AMXX] %L", LANG_SERVER, "SQL_LOADED_ADMIN")        else            console_print(id, "[AMXX] %L", LANG_SERVER, "SQL_LOADED_ADMINS", AdminCount)    }     new players[32], num, pv    new name[32]    get_players(players, num)    for (new i=0; i<num; i++)    {        pv = players[i]        get_user_name(pv, name, 31)        accessUser(pv, name)    }     return PLUGIN_HANDLED} getAccess(id, name[], authid[], ip[], password[]){    new index = -1    new result = 0        static Count;    static Flags;    static Access;    static AuthData[44];    static Password[32];        Count=admins_num();    for (new i = 0; i < Count; ++i)    {        Flags=admins_lookup(i,AdminProp_Flags);        admins_lookup(i,AdminProp_Auth,AuthData,sizeof(AuthData)-1);                if (Flags & FLAG_AUTHID)        {            if (equal(authid, AuthData))            {                index = i                break            }        }        else if (Flags & FLAG_IP)        {            new c = strlen(AuthData)                        if (AuthData[c - 1] == '.')     /* check if this is not a xxx.xxx. format */            {                if (equal(AuthData, ip, c))                {                    index = i                    break                }            }                   /* in other case an IP must just match */            else if (equal(ip, AuthData))            {                index = i                break            }        }         else         {            if (Flags & FLAG_TAG)            {                if (containi(name, AuthData) != -1)                {                    index = i                    break                }            }            else if (equali(name, AuthData))            {                index = i                break            }        }    }     if (index != -1)    {        Access=admins_lookup(index,AdminProp_Access);         if (Flags & FLAG_NOPASS)        {            result |= 8            new sflags[32]                        get_flags(Access, sflags, 31)            set_user_flags(id, Access)                        log_amx("Login: ^"%s<%d><%s><>^" became an admin (account ^"%s^") (access ^"%s^") (address ^"%s^")", name, get_user_userid(id), authid, AuthData, sflags, ip)        }        else         {                    admins_lookup(index,AdminProp_Password,Password,sizeof(Password)-1);             if (equal(password, Password))            {                result |= 12                set_user_flags(id, Access)                                new sflags[32]                get_flags(Access, sflags, 31)                                log_amx("Login: ^"%s<%d><%s><>^" became an admin (account ^"%s^") (access ^"%s^") (address ^"%s^")", name, get_user_userid(id), authid, AuthData, sflags, ip)            }             else             {                result |= 1                                if (Flags & FLAG_KICK)                {                    result |= 2                    log_amx("Login: ^"%s<%d><%s><>^" kicked due to invalid password (account ^"%s^") (address ^"%s^")", name, get_user_userid(id), authid, AuthData, ip)                }            }        }    }    else if (get_pcvar_float(amx_mode) == 2.0)    {        result |= 2    }     else     {        new defaccess[32]                get_pcvar_string(amx_default_access, defaccess, 31)                if (!strlen(defaccess))        {            copy(defaccess, 32, "z")        }                new idefaccess = read_flags(defaccess)                if (idefaccess)        {            result |= 8            set_user_flags(id, idefaccess)        }    }        return result} accessUser(id, name[] = ""){    remove_user_flags(id)        new userip[32], userauthid[32], password[32], passfield[32], username[32]        get_user_ip(id, userip, 31, 1)    get_user_authid(id, userauthid, 31)        if (name[0])    {        copy(username, 31, name)    }    else    {        get_user_name(id, username, 31)    }        get_pcvar_string(amx_password_field, passfield, 31)    get_user_info(id, passfield, password, 31)        new result = getAccess(id, username, userauthid, userip, password)        if (result & 1)    {        client_cmd(id, "echo ^"* %L^"", id, "INV_PAS")    }        if (result & 2)    {        client_cmd(id, "%s", g_cmdLoopback)        return PLUGIN_HANDLED    }        if (result & 4)    {        client_cmd(id, "echo ^"* %L^"", id, "PAS_ACC")    }        if (result & 8)    {        client_cmd(id, "echo ^"* %L^"", id, "PRIV_SET")    }        return PLUGIN_CONTINUE} public client_infochanged(id){    if (!is_user_connected(id) || !get_pcvar_num(amx_mode))    {        return PLUGIN_CONTINUE    }     new newname[32], oldname[32]        get_user_name(id, oldname, 31)    get_user_info(id, "name", newname, 31)     if (!equali(newname, oldname))    {        accessUser(id, newname)    }     return PLUGIN_CONTINUE} public ackSignal(id){    server_cmd("kick #%d ^"%L^"", get_user_userid(id), id, "NO_ENTRY")} public client_authorized(id)    return get_cvar_num("amx_mode") ? accessUser(id) : PLUGIN_CONTINUE public client_putinserver(id){    if (!is_dedicated_server() && id == 1)        return get_cvar_num("amx_mode") ? accessUser(id) : PLUGIN_CONTINUE        return PLUGIN_CONTINUE} /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }*/ 

Re: sms plugin error

Posted: 2013 Jan 10 18:02
by beast

Code: Select all

public plugin_end() {    if(info==Empty_Handle)
>>>

Code: Select all

public plugin_end() {    if(info!=Empty_Handle)