sms plugin error

Forumas skirtas spręsti problemas iškilusias su CS 1.6 serveriais.
Post Reply
Neh
Ar galit patikėti? Jis jau parašė 20 žinučių
Posts: 27
Joined: 2013 Jan 10 14:49
Skype: nfktom

sms plugin error

Post 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.
Last edited by Neh on 2013 Jan 10 16:19, edited 1 time in total.

User avatar
laimiukas3
Moderatorius
Posts: 4569
Joined: 2012 Aug 03 01:12
Skype: laimiukas3
Location: Vilnius
Contact:

Re: sms plugin error

Post by laimiukas3 »

Sms.amxx debug darasyta?
Image
Image
Image

Neh
Ar galit patikėti? Jis jau parašė 20 žinučių
Posts: 27
Joined: 2013 Jan 10 14:49
Skype: nfktom

Re: sms plugin error

Post 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?

User avatar
laimiukas3
Moderatorius
Posts: 4569
Joined: 2012 Aug 03 01:12
Skype: laimiukas3
Location: Vilnius
Contact:

Re: sms plugin error

Post by laimiukas3 »

Tikriausei sma koda reiktu cia paroditi jei nori kad kas padetu :-D
Image
Image
Image

Neh
Ar galit patikėti? Jis jau parašė 20 žinučių
Posts: 27
Joined: 2013 Jan 10 14:49
Skype: nfktom

Re: sms plugin error

Post 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 }*/ 

User avatar
beast
AMX Mod X ekspertai
Posts: 509
Joined: 2011 Jan 08 18:44
Skype: thefurious4
Contact:

Re: sms plugin error

Post by beast »

Code: Select all

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

Code: Select all

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

Post Reply

Who is online

Users browsing this forum: Ahrefs [Bot] and 10 guests