ERRORas..

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
Post Reply
User avatar
Caramba
O taip. Jis jau surinko 50 žinučių!
Posts: 65
Joined: 2015 Jan 24 13:51

ERRORas..

Post by Caramba »

Sveiki, kas padies isiaiskinti sita errora ?

Code: Select all

L 01/25/2015 - 17:13:33: [MySQL] Invalid info tuple handle: 0L 01/25/2015 - 17:13:33: [AMXX] Displaying debug trace (plugin "VA_vu.amxx", version "1.3.1")L 01/25/2015 - 17:13:33: [AMXX] Run time error 10: native error (native "SQL_Connect")L 01/25/2015 - 17:13:33: [AMXX]    [0] Va_vu.sma::client_infochanged (line 746)

Code: Select all

public client_infochanged(id){new newname[32],oldname[32]get_user_info(id, "name", newname,31)get_user_name(id,oldname,31)if(!is_user_connected(id) || is_user_bot(id)) return PLUGIN_CONTINUE if(!equali(newname, oldname)){new szTemp[512],szTable[64];get_pcvar_string(gTableName,szTable,63);format(szTemp,charsmax(szTemp),"UPDATE `%s` SET `name`='%s' WHERE `id`='%d';",szTable,newname,UserData[id][gId]);SQL_ThreadQuery(g_SqlTuple,"QueryHandler",szTemp) <--- 746  eilute}return PLUGIN_CONTINUE
Last edited by Caramba on 2015 Jan 25 17:40, edited 3 times in total.

User avatar
hleV
AMX Mod X ekspertai
Posts: 875
Joined: 2011 Apr 02 11:23
Skype: hlev.lt
Location: Šiauliai

Re: ERRORas..

Post by hleV »

g_SqlTuple kintamajam priskyrei SQL_MakeDbTuple() ar SQL_MakeStdTuple() reikšmę?
Image ← RIP best userbar
DISKUSIJA: KIETAS PLUGIN'O UŽSAKOVAS
Privačios pagalbos neteikiu!

User avatar
Caramba
O taip. Jis jau surinko 50 žinučių!
Posts: 65
Joined: 2015 Jan 24 13:51

Re: ERRORas..

Post by Caramba »

hleV wrote:g_SqlTuple kintamajam priskyrei SQL_MakeDbTuple() ar SQL_MakeStdTuple() reikšmę?
SQL_MakeDbTuple priskirta.
Ta errora susitvarkiau, dabar tokia nesamone kad prisijunges zaidejas i serveri biski pasaudo ten gauna exp isejas is serverio jam tas exp updatinas i mysql duomenu baze, bet updatas vyksta blogai.
Concolei rodo:
"UPDATE `army_ranks` SET `exp`='6',`level`='1' WHERE `id`='0' Kaip matai ID reiksme lygi - 0
prisijungus sekanti karta zaidejui, ir pasaudzius viel ten pora exp , tad isejus is zaidimo - concolei rodo jau gerai. ( zaidejui prisideda taskai i duomenu baze)
Pvz.
"UPDATE `army_ranks` SET `exp`='6',`level`='1' WHERE `id`='34'

Tai va KODEL TAIP YRA? Kodel pati pirma karta prisijungius zaidejui ir isejus is zaidimo jam tas pakeltas lygis neisisaugo duomenu bazei...

Naudoju army rank 1.3 ( Internete nieko neradau apie ta klaida. Kodel taip yra as nezinau ) , gal turit jus kokiu nuomoniu?

Code: Select all

/*         Îáåùàííîãî òðè ãîäà æäóò ;)*/#include <amxmodx>#include <amxmisc>#include <colorchat>#include <fun>#include <cstrike>#include <nvault>#include <sqlx>#include <fakemeta> //#define PLUGIN "Army Ranks"#define VERSION "1.3.1"#define AUTHOR "Arctic"#pragma tabsize 0#define ADM_MENU     ADMIN_IMMUNITY // menu access flag//new g_vault;new Handle:g_SqlTuple;new g_Error[512]; enum _:PlData{    gId,gExp,gLevel,gTempKey};new UserData[33][PlData];new gMessage[256];                                new g_MsgHud,MaxPlayers,levelUp[33],gSayText,gStatusTextnew bool:restr_blocked;new const gRankNames[][] = {    "I_0","I_1","I_2","I_3","I_4","I_5","I_6","I_7","I_8","I_9","I_10","I_11","I_12","I_13","I_14",            "I_15","I_16","I_17","I_18","I_19","I_20"};new const gLevels[] = {    0,15,30,60,100,180,350,750,999,1500,2200,2800,3200,3900,4500,5000,5500,6000,7000,8000};new const gNades[][] ={    {0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},    {0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1},    {0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1}}new const restrict_bonus[][] ={    "35hp",    "most_wanted",    "ka_wintershank"};new gRestrictMaps,gAdminGMsg,gBonusLevel,gFlash,gSmoke,gHe,gHpbylevel,gApbylevel,gArmyChat,gSaveType,gTableName,gHost,gUser,gPassword,gDbName,gSlash,gTk,gLostXpTk,gLevelUpmsg,gAllChat,gProgressBar,gBombDefuseXp,gBombPlantXp,gBomb, gMinPlayers//public plugin_init(){    register_plugin(PLUGIN, VERSION, AUTHOR);    register_cvar("army_ranks",VERSION, FCVAR_SERVER | FCVAR_SPONLY);    set_cvar_string("army_ranks",VERSION);//    gRestrictMaps     = register_cvar( "restrict_maps",         "0");// âêë çàïðåò áîíóñîâ íà êàðòå.        gBonusLevel    = register_cvar( "level_bonus",         "0");// âêë îðóæèå ïðè ïîëó÷åíèè óðîâíÿ.    gFlash        = register_cvar( "flash_nades",         "0");// âêë áîíóñà ôëåøåê    gSmoke        = register_cvar( "smoke_nades",         "1");// âêë áîíóñà äûìîâûõ    gHe        = register_cvar( "he_nades",         "1");// âêë áîíóñà îñêîëî÷íûõ    gHpbylevel    = register_cvar( "hp_by_level",         "3");// êîë-âî õï, êîòîðîå äàåòñÿ çà ëâë, åñëè = 0 - òî âûêë    gApbylevel    = register_cvar( "ap_by_level",         "5");// êîë-âî áðîíè, êîòîðîå äàåòñÿ çà ëâë, åñëè = 0 - òî âûêë    gArmyChat    = register_cvar( "army_chat",         "1");// èñïîëüçîâàòü ÷àò ïëàãèíà, òî åñòü ïðèñòàâêà â ÷àòå, öâåò ñîîáù. äëÿ àäìèíà    gAdminGMsg    = register_cvar( "admin_color",        "1");// 1 = ñîîáù.àäìèíà çåëåíîå,0 = æåëòîå, 2 = öâåòà êîìàíäû    gSaveType     = register_cvar( "save_type",         "1");// 0 - nvault, 1- mysql.    gSlash         = register_cvar( "slash_messages",         "1");// íå îòîáðàæàòü êîìàíäû ñî ñëýøåì    gTk         = register_cvar( "team_kill_lost_xp",       "1");// òåðÿòü exp ïðè òèìêèëëå    gLostXpTk     = register_cvar( "lost_xp_val",         "3");// êîë-âî òåðÿåìûõ exp ïðè òê    gLevelUpmsg    = register_cvar( "level_up_msg",         "1");// ñîîáùåíèå ïðè ëâë-àïå èãðîêà : 1- âêë (âñåì), 2 - òîëüêî èãðîêó    gAllChat    = register_cvar( "all_chat",         "0");// 1 - ÷àò äëÿ âñåõ(ìåòâûå è æèâûå), 0-æèâûå íå âèäÿò ÷àò ìåðòâûõ è íàîáîðîò    gProgressBar    = register_cvar( "progress_bar_pos",       "0");// ðàñïîëîæåíèå äàííûõ èãðîêà: 0 - hud(ïîä ðàäàðîì), 1 - ïîä ÷àòîì    gMinPlayers    = register_cvar( "min_players",         "4");// ìèí.êîë-âî èãðîêîâ äëÿ ïîëó÷åíèÿ îïûòà çà äåéñòâèÿ ñ áîìáîé    gBomb        = register_cvar( "bomb_xp",             "1");// âêë ïîëó÷åíèÿ îïûòà íàä äåéñòâèÿìè ñ áîìáîé    gBombDefuseXp    = register_cvar( "bdefuse_xp",         "5");// êîë-âî ïîëó÷àåìûõ exp ïðè ðàçìèíèðîâàíèè áîìáû    gBombPlantXp    = register_cvar( "bplant_xp",         "4");// êîë-âî ïîëó÷àåìûõ exp ïðè ìèíèðîâàíèè áîìáû// äëÿ mysql        gHost        = register_cvar( "mysql_host",         "localhost");     // host    gUser        = register_cvar( "mysql_user",         "root");    // username    gPassword    = register_cvar( "mysql_password",     "qwerty");     // password    gDbName        = register_cvar( "mysql_db_name",     "database");     // database name    gTableName    = register_cvar( "mysql_table_name",     "army_ranks");     // íàçâàíèå òàáëèöû mysql//    register_logevent( "EventRoundStart", 2, "1=Round_Start" );    register_forward(FM_Sys_Error, "fw_ServerDown");    register_forward(FM_GameShutdown, "fw_ServerDown");    register_forward(FM_ServerDeactivate, "fw_ServerDown");    register_event( "DeathMsg","EventDeath","a");    if(get_pcvar_num(gProgressBar) != 0){        set_task(1.0,"StatusText",_,_,_, "b");            } else {         set_task(1.0,"Info",_,_,_, "b");    }//    register_message(get_user_msgid("SayText"), "msg_SayText");    gStatusText = get_user_msgid("StatusText");    gSayText = get_user_msgid ("SayText");//    g_MsgHud = CreateHudSyncObj();    MaxPlayers = get_maxplayers();    register_dictionary("army.txt" );//    if(get_pcvar_num(gRestrictMaps))    {        new szMapName[64];        get_mapname(szMapName,63);        for(new a = 0; a < sizeof restrict_bonus; a++)        {            if(equal(szMapName, restrict_bonus[a]))            {                restr_blocked = true;                log_amx("[army ranks] weapon menu is blocked on map [%s].",restrict_bonus[a]);                break;            } else {                restr_blocked = false;            }            }    }//    switch(get_pcvar_num(gSaveType))    {        case 0:         {            g_vault = nvault_open("army_ranks");        }        case 1:         {            set_task(0.1, "sql_init");        }        default:         {            g_vault = nvault_open("army_ranks");        }    }//    if(get_pcvar_num(gArmyChat))    {        register_clcmd("say", "hookSay")         register_clcmd("say_team", "hookSayTeam");    }    register_clcmd("add_exp", "add_exp_post")    register_clcmd("amx_setlevel", "admin_menu")}public plugin_cfg(){    new szCfgDir[64], szFile[192];    get_configsdir(szCfgDir, charsmax(szCfgDir));    formatex(szFile,charsmax(szFile),"%s/army_ranks.cfg",szCfgDir);    if(file_exists(szFile))        server_cmd("exec %s", szFile);}public bomb_defused(id){    if(!is_user_connected(id)|| !is_user_alive(id) || get_user_team(id) != 2 || get_pcvar_num(gBombDefuseXp) < 1 || get_pcvar_num(gBomb) !=1)        return     if(get_playersnum() <= get_pcvar_num(gMinPlayers))    {        ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"MIN_PLAYERS")    } else {        UserData[id][gExp] += get_pcvar_num(gBombDefuseXp);        ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"DEFUSE_XP",get_pcvar_num(gBombDefuseXp))    }}public bomb_planted(id){    if(!is_user_connected(id)|| !is_user_alive(id) || get_user_team(id) != 1 || get_pcvar_num(gBombPlantXp) < 1 || get_pcvar_num(gBomb) !=1)        return     if(get_playersnum() <= get_pcvar_num(gMinPlayers))    {        ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"MIN_PLAYERS")    } else {        UserData[id][gExp] += get_pcvar_num(gBombPlantXp);        ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"PLANT_XP",get_pcvar_num(gBombPlantXp))    }}//public sql_init(){    new szTableName[64],szHost[64],szUser[64],szPassword[64],szDbName[64],ErrorCode;    get_pcvar_string(gTableName,szTableName,63);    get_pcvar_string(gHost,szHost,63);    get_pcvar_string(gUser,szUser,63);    get_pcvar_string(gPassword,szPassword,63);    get_pcvar_string(gDbName,szDbName,63);    g_SqlTuple = SQL_MakeDbTuple(szHost,szUser,szPassword,szDbName);    new Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,511)    if(SqlConnection == Empty_Handle)        set_fail_state(g_Error);     new Handle:Queries = SQL_PrepareQuery(SqlConnection,"CREATE TABLE IF NOT EXISTS `%s`(`id` INT(10) NOT NULL AUTO_INCREMENT,`name` VARCHAR(32) NOT NULL,`exp` INT(10) NOT NULL,`level` INT(10) NOT NULL,PRIMARY KEY (id));", szTableName)    if(!SQL_Execute(Queries))    {        SQL_QueryError(Queries,g_Error,charsmax(g_Error))        set_fail_state(g_Error);    }    SQL_FreeHandle(Queries)    SQL_FreeHandle(SqlConnection);}//public plugin_end(){    switch(get_pcvar_num(gSaveType))    {        case 0:         {            nvault_close(g_vault);        }        case 1:         {            if(g_SqlTuple != Empty_Handle)                SQL_FreeHandle(g_SqlTuple);        }        default:         {            nvault_close(g_vault);        }    }}//public client_putinserver(id) // ïóòèíñåðâåð){    for(new i = 0; i<PlData ; i++)        UserData[id][i] = 0;        load_data(id);}//public client_disconnect(id){    save_usr(id);    for(new i = 0; i<PlData ; i++)        UserData[id][i] = 0;}//public check_level(id){    if(UserData[id][gLevel] <= 0)        UserData[id][gLevel] = 1;            if(UserData[id][gExp] < 0)        UserData[id][gExp] = 0;     while(UserData[id][gExp] >= gLevels[UserData[id][gLevel]])     {        UserData[id][gLevel]++;        levelUp[id] = 1;        switch(get_pcvar_num(gLevelUpmsg))        {            case 1:             {                new szName[33];                get_user_name(id, szName, 32);                static buffer[192],len;                len = format(buffer, charsmax(buffer), "^4[^3Army Ranks^4]^1 %L ^4%s^1",LANG_PLAYER,"PLAYER",szName);                len += format(buffer[len], charsmax(buffer) - len, " %L",LANG_PLAYER,"NEW_LEVEL");                 len += format(buffer[len], charsmax(buffer) - len, " ^4%L^1.",LANG_PLAYER,gRankNames[UserData[id][gLevel]]);                len += format(buffer[len], charsmax(buffer) - len, "%L",LANG_PLAYER,"CONTR");                ColorChat(0,NORMAL,buffer);            }            case 2:            {                new szName[33];                get_user_name(id, szName, 32);                static buffer[192],len;                len = format(buffer, charsmax(buffer), "^4[^3Army Ranks^4]^1 %L ^4%s^1",LANG_PLAYER,"PLAYER",szName);                len += format(buffer[len], charsmax(buffer) - len, " %L",LANG_PLAYER,"NEW_LEVEL");                 len += format(buffer[len], charsmax(buffer) - len, " ^4%L^1.",LANG_PLAYER,gRankNames[UserData[id][gLevel]]);                len += format(buffer[len], charsmax(buffer) - len, "%L",LANG_PLAYER,"CONTR");                ColorChat(id,NORMAL,buffer);            }        }    }}public EventDeath(){    new iKiller = read_data(1);    new iVictim = read_data(2);    new head = read_data(3);    if(iKiller != iVictim && is_user_connected(iKiller) && is_user_connected(iVictim) && UserData[iKiller][gLevel] <= 19)    {        // if tk?        if(get_pcvar_num(gTk) && get_user_team(iKiller) == get_user_team(iVictim))        {            UserData[iKiller][gExp] -= get_pcvar_num(gLostXpTk);            return PLUGIN_CONTINUE;        }        new weapon = get_user_weapon(iKiller);        UserData[iKiller][gExp] += 1;        if(weapon == CSW_KNIFE)            UserData[iKiller][gExp] += 3;                    if(head)            UserData[iKiller][gExp] += 2;         if(weapon == CSW_HEGRENADE)            UserData[iKiller][gExp] += 1;         check_level(iKiller);    }    return PLUGIN_CONTINUE;}public EventRoundStart(){    for(new id = 0; id <= MaxPlayers; id++)    {        if(is_user_alive(id) && is_user_connected(id))        {            if(restr_blocked)                return PLUGIN_CONTINUE;                        if(get_pcvar_num(gFlash) && gNades[0][UserData[id][gLevel]])                give_item(id,"weapon_flashbang");                        if(get_pcvar_num(gSmoke) && gNades[1][UserData[id][gLevel]])                give_item(id,"weapon_smokegrenade");                            if(get_pcvar_num(gHe) && gNades[2][UserData[id][gLevel]])                give_item(id,"weapon_hegrenade");                        if(get_pcvar_num(gHpbylevel) != 0)                set_user_health(id,get_user_health(id)+get_pcvar_num(gHpbylevel)*UserData[id][gLevel]);                            if(get_pcvar_num(gApbylevel) != 0)                set_user_armor(id,get_user_armor(id)+get_pcvar_num(gApbylevel)*UserData[id][gLevel]);                                if(levelUp[id] == 1 && get_pcvar_num(gBonusLevel))            {                GetWeapon(id);                levelUp[id] = 0;            }        }    }    return PLUGIN_CONTINUE;}////////// savepublic load_data(id){    new szName[33];    get_user_name(id,szName,32);    switch(get_pcvar_num(gSaveType))    {        case 0:         {            static data[256], timestamp;            if(nvault_lookup(g_vault, szName, data, sizeof(data) - 1, timestamp) )            {                next_load_data(id, data, sizeof(data) - 1);                return;            } else {                register_player(id,"");            }        }        case 1:         {            new szTableName[32],ErrorCode;            new Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,511)            SQL_QuoteString(SqlConnection, szName, 32, szName);            get_pcvar_string(gTableName,szTableName,31);            if(SqlConnection == Empty_Handle)            {                log_amx(g_Error);                return ;            }            new Handle:Query = SQL_PrepareQuery(SqlConnection,"SELECT id FROM %s WHERE name = '%s';",szTableName,szName)            if(!SQL_Execute(Query))            {                SQL_QueryError(Query,g_Error,511);                log_amx(g_Error);                return ;            }            if(SQL_NumResults(Query) > 0 )            {                next_load_data(id, "", 0);            } else {                register_player(id,"");            }            SQL_FreeHandle(Query);            SQL_FreeHandle(SqlConnection);        }        default:         {            static data[256], timestamp;            if(nvault_lookup(g_vault, szName, data, sizeof(data) - 1, timestamp) )            {                next_load_data(id, data, sizeof(data) - 1);                return;            } else {                register_player(id,"");            }        }    }}public next_load_data(id,data[],len){    new szName[33];    get_user_name(id,szName,32);    switch(get_pcvar_num(gSaveType))    {        case 0:         {            replace_all(data,len,"|"," ");            new exp[5],level[5];            parse(data,exp,4,level,4);            UserData[id][gExp]= str_to_num(exp);            UserData[id][gLevel]= str_to_num(level);        }        case 1:         {            new szTableName[32],ErrorCode;            new Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,511)            SQL_QuoteString(SqlConnection, szName, 32, szName);            get_pcvar_string(gTableName,szTableName,31);            if(SqlConnection == Empty_Handle)            {                log_amx(g_Error);                return ;            }            new Handle:Query = SQL_PrepareQuery(SqlConnection,"SELECT id,exp,level FROM %s WHERE name = '%s';",szTableName,szName)            if(!SQL_Execute(Query))            {                SQL_QueryError(Query,g_Error,511)                log_amx(g_Error)            }            if( SQL_NumResults(Query) > 0)            {                UserData[id][gId]= SQL_ReadResult(Query,0);                 UserData[id][gExp]= SQL_ReadResult(Query,1);                 UserData[id][gLevel]= SQL_ReadResult(Query,2);             }            SQL_FreeHandle(Query);            SQL_FreeHandle(SqlConnection);        }        default:         {            replace_all(data,len,"|"," ");            new exp[5],level[5];            parse(data,exp,4,level,4);            UserData[id][gExp]= str_to_num(exp);            UserData[id][gLevel]= str_to_num(level);        }    }// mini-check lvl_up    if(UserData[id][gLevel] <= 0)        UserData[id][gLevel] = 1;     while(UserData[id][gExp] >= gLevels[UserData[id][gLevel]])         UserData[id][gLevel]++;}public register_player(id,data[]){    new szName[33];    get_user_name(id,szName,32);    switch(get_pcvar_num(gSaveType))    {        case 0:         {            UserData[id][gExp]= 0            UserData[id][gLevel]= 1;        }        case 1:         {            new szTableName[32],ErrorCode;            new Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,511)            SQL_QuoteString(SqlConnection, szName, 32, szName);            get_pcvar_string(gTableName,szTableName,31);            if(SqlConnection == Empty_Handle)            {                log_amx(g_Error);                return ;            }            new Handle:Query = SQL_PrepareQuery(SqlConnection,"INSERT INTO %s (`id`,`name`,`exp`,`level`) VALUES (NULL,'%s','5','1');",szTableName,szName);            if(!SQL_Execute(Query))            {                                                            SQL_QueryError(Query,g_Error,511)                log_amx(g_Error)            }            SQL_FreeHandle(Query);            SQL_FreeHandle(SqlConnection);            UserData[id][gExp] = 5;            UserData[id][gLevel] = 1;            get_user_id(id);        }                                                                     default:         {            UserData[id][gExp]= 5;            UserData[id][gLevel]= 1;                       }    }}public save_usr(id){    new szName[33];    get_user_name(id,szName,32);    switch(get_pcvar_num(gSaveType))    {        case 0:                                                                                                                              {            static data[256];            formatex(data, 255, "|%i|%i|", UserData[id][gExp],UserData[id][gLevel]);            nvault_set(g_vault, szName, data);        }        case 1:                                        {            new szTemp[512],szTable[64];            get_pcvar_string(gTableName,szTable,63);            format(szTemp,charsmax(szTemp),"UPDATE `%s` SET `exp`='%d',`level`='%d' WHERE `id`='%d';",szTable,UserData[id][gExp],UserData[id][gLevel],UserData[id][gId]);            SQL_ThreadQuery(g_SqlTuple,"QueryHandler",szTemp)                        server_print("==========================================");            server_print("UPDATE `%s` SET `exp`='%d',`level`='%d' WHERE `id`='%d';",szTable,UserData[id][gExp],UserData[id][gLevel],UserData[id][gId]);                                                                         }        default:         {            static data[256];            formatex(data, 255, "|%i|%i|", UserData[id][gExp],UserData[id][gLevel]);            nvault_set(g_vault, szName, data);        }    }}stock get_user_id(id){    new szName[33],ErrorCode;    get_user_name(id,szName,32);    new Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,511)    SQL_QuoteString(SqlConnection, szName, 32, szName);    if(SqlConnection == Empty_Handle)    {        log_amx(g_Error);        return;    }    new Handle:Query = SQL_PrepareQuery(SqlConnection,"SELECT id FROM hmm WHERE name = '%s';",szName)    if(!SQL_Execute(Query))    {        SQL_QueryError(Query,g_Error,511);        log_amx(g_Error);        return;    }    if(SQL_NumResults(Query) > 0 )        UserData[id][gId]= SQL_ReadResult(Query,0);    SQL_FreeHandle(Query);    SQL_FreeHandle(SqlConnection);}///////// chat eventpublic hookSay(id){    if(is_user_hltv(id) || is_user_bot(id) || !is_user_connected(id))        return PLUGIN_CONTINUE;     new message[192],Len;    read_args(message, 191);    remove_quotes(message);    if(is_admin_msg(message))        return PLUGIN_CONTINUE;        if(is_empty_message(message))    {        ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"EMPTY_MSG")        return PLUGIN_HANDLED    }    if(get_pcvar_num(gSlash))    {        if(is_has_slash(message))            return PLUGIN_HANDLED_MAIN    }    new szName[32];    get_user_name(id,szName,31);    if(is_user_admin(id))    {        Len = format(gMessage[Len], charsmax(gMessage) - 1, "^4[^3%L^4] ",LANG_PLAYER,gRankNames[UserData[id][gLevel]]);        switch(get_pcvar_num(gAdminGMsg))        {            case 1:            {                Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^4 : ",szName);                Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message);            }            case 2:            {                Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^4 : ",szName);                Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s",message);            }            default:            {                Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^4 : ",szName);                Len += format(gMessage[Len], charsmax(gMessage) - 1, "^1%s",message);            }        }        Chat(id,0,get_pcvar_num(gAllChat));    }    else     {        Len = format(gMessage[Len], charsmax(gMessage) - 1, "^4[^3%L^4] ",LANG_PLAYER,gRankNames[UserData[id][gLevel]]);        Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^4 : ",szName);        Len += format(gMessage[Len], charsmax(gMessage) - 1, "^1%s",message);        Chat(id,0,get_pcvar_num(gAllChat));    }    return PLUGIN_HANDLED_MAIN}public hookSayTeam(id){    if(is_user_hltv(id) || is_user_bot(id) || !is_user_connected(id))        return PLUGIN_CONTINUE;     new message[192],Len;    read_args(message, 191);    remove_quotes(message);    if(is_admin_msg(message))        return PLUGIN_CONTINUE;            if(is_empty_message(message))    {        ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"EMPTY_MSG");        return PLUGIN_HANDLED    }    if(get_pcvar_num(gSlash))    {        if(is_has_slash(message))            return PLUGIN_HANDLED_MAIN    }    new szName[32];    get_user_name(id,szName,31);    if(is_user_admin(id))    {        Len = format(gMessage[Len], charsmax(gMessage) - 1, "^3%L^1 ^4[^3%L^4] ^3%s^4 : ",LANG_PLAYER,"SEND_TEAM",LANG_PLAYER,gRankNames[UserData[id][gLevel]],szName);                switch(get_pcvar_num(gAdminGMsg))        {            case 1:            {                Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message);            }            case 2:            {                Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s",message);            }            default:            {                Len += format(gMessage[Len], charsmax(gMessage) - 1, "^1%s",message);            }        }        Chat(id,1,get_pcvar_num(gAllChat));    }    else     {        Len = format(gMessage[Len], charsmax(gMessage) - 1, "^3%L^1 ^4[^3%L^4] ",LANG_PLAYER,"SEND_TEAM",LANG_PLAYER,gRankNames[UserData[id][gLevel]]);        Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^4 : ",szName);        Len += format(gMessage[Len], charsmax(gMessage) - 1, "^1%s",message);        Chat(id,1,get_pcvar_num(gAllChat));    }    return PLUGIN_HANDLED_MAIN}stock is_admin_msg(const Message[]){    if(Message[0] == '@')        return true;            return false;}stock is_empty_message(const Message[]){    if(equal(Message, "") || !strlen(Message))        return true;            return false;}stock Chat(id,team,chat_type){    if(team)    {        if(chat_type)        {            for(new i = 0; i <= MaxPlayers; i++)            {                if(!is_user_connected(i))                    continue                            if(get_user_team(id) == get_user_team(i))                    send_message(gMessage, id, i);            }        } else {            if(is_user_alive(id))            {                for(new i = 0; i <= MaxPlayers; i++)                {                    if(!is_user_connected(i) || !is_user_alive(i))                        continue                                    if(get_user_team(id) == get_user_team(i))                        send_message(gMessage, id, i);                }            } else if(!is_user_alive(id)){                for(new i = 0; i <= MaxPlayers; i++)                {                    if(!is_user_connected(i) || is_user_alive(i))                        continue                                    if(get_user_team(id) == get_user_team(i))                        send_message(gMessage, id, i);                }            }        }    } else{        if(chat_type)        {            for(new i = 0; i <= MaxPlayers; i++)            {                if(!is_user_connected(i))                    continue                            send_message(gMessage, id, i);            }        } else {            if(is_user_alive(id))            {                for(new i = 0; i <= MaxPlayers; i++)                {                    if(!is_user_connected(i) || !is_user_alive(i))                        continue                                    send_message(gMessage, id, i);                }            } else if(!is_user_alive(id)){                for(new i = 0; i <= MaxPlayers; i++)                {                    if(!is_user_connected(i) || is_user_alive(i))                        continue                                    send_message(gMessage, id, i);                }            }        }    }}stock send_message(const message[], const id, const i){    message_begin(MSG_ONE, gSayText, {0, 0, 0}, i)    write_byte(id)    write_string(message)    message_end()}stock is_has_slash(const Message[]){    if(Message[0] == '/')        return true;            return false;} public client_infochanged(id){    new newname[32],oldname[32]    get_user_info(id, "name", newname,31)    get_user_name(id,oldname,31)    if(!is_user_connected(id) || is_user_bot(id))         return PLUGIN_CONTINUE            if(!equali(newname, oldname))    {        new szTemp[512],szTable[64];        get_pcvar_string(gTableName,szTable,63);        format(szTemp,charsmax(szTemp),"UPDATE `%s` SET `name`='%s' WHERE `id`='%d';",szTable,newname,UserData[id][gId]);        SQL_ThreadQuery(g_SqlTuple,"QueryHandler",szTemp)        }    return PLUGIN_CONTINUE}public msg_SayText(){    new arg[32]    get_msg_arg_string(2, arg, 31)    if(containi(arg,"name")!=-1)        return PLUGIN_HANDLED     return PLUGIN_CONTINUE}/////////// nativespublic plugin_natives(){    register_native("get_user_exp", "native_get_user_exp", 1);    register_native("get_user_lvl", "native_get_user_lvl", 1);    register_native("set_user_exp", "native_set_user_exp", 1);    register_native("set_user_lvl", "native_set_user_lvl", 1);    register_native("get_user_rankname", "native_get_user_rankname", 1);}public native_set_user_exp(id,num){    UserData[id][gExp] = num;}public native_set_user_lvl(id,num){    UserData[id][gLevel] = num;}public native_get_user_exp(id){    return UserData[id][gExp];}public native_get_user_lvl(id){    return UserData[id][gLevel];}public native_get_user_rankname(id){    static szRankName[64];    format(szRankName, charsmax(szRankName), "%L",LANG_PLAYER,gRankNames[UserData[id][gLevel]]);    return szRankName;}//////// informerpublic Info(){    for(new id = 0; id <= MaxPlayers; id++)    {        if(!is_user_bot(id) && is_user_connected(id))        {            set_hudmessage(100, 100, 100, 0.01, 0.13, 0, 1.0, 1.0, _, _, -1)                        static buffer[192], len;            len = format(buffer, charsmax(buffer), "^n^n%L",LANG_PLAYER,"ZVANIE");            len += format(buffer[len], charsmax(buffer) - len, " %L",LANG_PLAYER,gRankNames[UserData[id][gLevel]]);            if(UserData[id][gLevel] <= 19)            {                len += format(buffer[len], charsmax(buffer) - len, "^n%L",LANG_PLAYER,"PL_XP",UserData[id][gExp],gLevels[UserData[id][gLevel]]);            } else {                len += format(buffer[len], charsmax(buffer) - len, "^n%L",LANG_PLAYER,"PL_MAX");            }            ShowSyncHudMsg(id, g_MsgHud, "%s", buffer);        }    }    return PLUGIN_CONTINUE}public StatusText(){    for(new id = 0; id <= MaxPlayers; id++)    {        if(!is_user_bot(id) && is_user_connected(id) && is_user_alive(id))        {            static buffer[100], len;            len = format(buffer, charsmax(buffer), "%L",LANG_PLAYER,gRankNames[UserData[id][gLevel]]);            if(UserData[id][gLevel] <= 19)            {                len += format(buffer[len], charsmax(buffer) - len, " | %L",LANG_PLAYER,"PL_XP_STEXT",UserData[id][gExp],gLevels[UserData[id][gLevel]]);            } else {                len += format(buffer[len], charsmax(buffer) - len, " | %L",LANG_PLAYER,"PL_MAX");            }            message_begin(MSG_ONE_UNRELIABLE, gStatusText, _, id)            write_byte(0)            write_string(buffer)            message_end();        }    }}/////// weap menu per lvlpublic GetWeapon(id){    new szText[700 char];    formatex( szText, charsmax( szText ), "%L", id, "GW_TITLE");    new menu = menu_create( szText, "gw_menu" );//    formatex( szText, charsmax( szText ), "awp");    menu_additem( menu, szText, "1", 0 );//    formatex( szText, charsmax( szText ), "ak-47");    menu_additem( menu, szText, "2", 0 );//    formatex( szText, charsmax( szText ), "m4a1");    menu_additem( menu, szText, "3", 0 );//    formatex( szText, charsmax( szText ), "famas");    menu_additem( menu, szText, "4", 0 );//    menu_setprop( menu, MPROP_EXIT, MEXIT_ALL );    menu_display( id, menu,0);    return PLUGIN_CONTINUE;}public gw_menu(id,menu,item){    if( item == MENU_EXIT )    {        return PLUGIN_HANDLED;    }        new data[ 6 ], iName[ 64 ], access, callback;    menu_item_getinfo( menu, item, access, data, charsmax( data ), iName, charsmax( iName ), callback );    new key = str_to_num( data );    switch( key )    {        case 1:        {            give_item(id,"weapon_awp");            cs_set_user_bpammo( id, CSW_AWP, 100);        }        case 2:        {            give_item(id,"weapon_ak47");            cs_set_user_bpammo( id, CSW_AK47, 200);        }        case 3:        {            give_item(id,"weapon_m4a1");            cs_set_user_bpammo( id, CSW_M4A1, 200);        }        case 4:        {            give_item(id,"weapon_famas");            cs_set_user_bpammo( id, CSW_FAMAS, 200);        }    }        return PLUGIN_HANDLED;}public QueryHandler(FailState,Handle:Query,Error[],Errcode,Data[],DataSize){    switch(FailState)    {        case -2: log_amx("[Army Ranks] Failed to connect (%d): %s", Errcode, Error);        case -1: log_amx("[Army Ranks] (%d): %s", Errcode, Error);    }    return PLUGIN_HANDLED}public fw_ServerDown() {     for(new i = 0; i <= MaxPlayers; i++)    {        if(is_user_connected(i))            save_usr(i)    }}public admin_menu(id){    new szText[700 char];    formatex( szText, charsmax( szText ), "%L", id, "ARMY_MENU");    new menu = menu_create( szText, "admin_menu_hl" );//    formatex( szText, charsmax( szText ), "%L", id, "ADD_EXP");    menu_additem( menu, szText, "1", 0 );    formatex( szText, charsmax( szText ), "%L", id, "SET_LVL");    menu_additem( menu, szText, "2", 0 );//    menu_setprop( menu, MPROP_EXIT, MEXIT_ALL );    menu_display( id, menu,0);    return PLUGIN_CONTINUE;}public admin_menu_hl(id,menu,item){    if( item == MENU_EXIT )    {        return PLUGIN_HANDLED;    }        new data[ 6 ], iName[ 64 ], access, callback;    menu_item_getinfo( menu, item, access, data, charsmax( data ), iName, charsmax( iName ), callback );    new key = str_to_num( data );    switch( key )    {        case 1:        {            give_exp_menu(id);        }        case 2:        {            set_level_menu(id)        }    }        return PLUGIN_HANDLED;}public give_exp_menu(id){    if(get_user_flags(id) & ADM_MENU)    {        new players[32], num;        get_players(players, num)        new tempname[32], info[10];        new players_menu = menu_create("Выберите игрока :", "give_exp_hl")        for(new i = 0; i < num; i++)        {            get_user_name(players[i], tempname, 31);            num_to_str(players[i], info, 9);            menu_additem(players_menu, tempname, info, 0);        }        menu_setprop(players_menu, MPROP_EXIT, MEXIT_ALL);        menu_display(id, players_menu, 0);    }    return PLUGIN_CONTINUE}public give_exp_hl(id, players_menu, item){    if(item == MENU_EXIT)    {        menu_destroy(players_menu)        return PLUGIN_HANDLED    }    new data[6],accessmenu, iName[64], callback;    menu_item_getinfo(players_menu, item, accessmenu, data, charsmax(data), iName, charsmax(iName), callback)    new player = str_to_num(data)    client_cmd(id, "messagemode ^"add_exp %i^"", player);    ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"TYPE_AMOUNT");    return PLUGIN_CONTINUE} public add_exp_post(id){    if(get_user_flags(id) & ADM_MENU)    {        new param[10]        read_argv(2, param, charsmax(param))        for (new x; x < strlen(param); x++)        {            if(!isdigit(param[x]))            {                 ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"MUST_NUM")                give_exp_menu(id)                return PLUGIN_HANDLED            }        }        new amount = str_to_num(param);        if (amount < 1)        {            ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"MIN_EXP")             give_exp_menu(id)            return PLUGIN_HANDLED        }        if (amount > 999)        {            ColorChat(id,NORMAL,"^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"MAX_EXP")              give_exp_menu(id)            return PLUGIN_HANDLED        }        read_argv(1, param, charsmax(param))        new player = str_to_num(param)    //        UserData[player][gExp] += amount;        if(UserData[player][gLevel] <= 0)            UserData[player][gLevel] = 1;            while(UserData[player][gExp] >= gLevels[UserData[player][gLevel]])             UserData[player][gLevel]++;//                new names[2][32]        get_user_name(id, names[0], 31)        get_user_name(player, names[1], 31)        ColorChat(0, NORMAL, "^4[^3Army Ranks^4]^1 %L",LANG_PLAYER,"ADMIN_ADD", names[0], amount, names[1]);        save_usr(player);    }    return PLUGIN_HANDLED}public set_level_menu(id){    if(get_user_flags(id) & ADM_MENU)    {        UserData[id][gTempKey] = 0;        new players[32], num;        get_players(players, num)        new tempname[32], info[10];        new players_menu = menu_create("Выберите игрока :", "set_level_hl")        for(new i = 0; i < num; i++)        {            get_user_name(players[i], tempname, 31);            num_to_str(players[i], info, 9);            menu_additem(players_menu, tempname, info, 0);        }        menu_setprop(players_menu, MPROP_EXIT, MEXIT_ALL);        menu_display(id, players_menu, 0);    }    return PLUGIN_CONTINUE}public set_level_hl(id, menu, item){    if(item == MENU_EXIT)    {        menu_destroy(menu);        return PLUGIN_HANDLED;    }    new data[6], _access, callback;    menu_item_getinfo( menu, item, _access, data, charsmax(data), _, _, callback);    UserData[id][gTempKey] = str_to_num(data);    set_level_pl(id);    return PLUGIN_CONTINUE}public set_level_pl(id){    static szText[1024];    formatex(szText,charsmax(szText), "%L", id, "CHOOSE_RANKN");    new menu = menu_create( szText, "set_level_phl");    //======    for(new i = 1; i < sizeof(gRankNames); i++)    {        new szItem[100],lang[10],num[5];        format(lang,9,"I_%d",i);        format(num,4,"%d",i);        formatex(szItem,charsmax(szItem),"%L",id,lang);        menu_additem(menu,szItem,num);    }    //======    menu_setprop(menu, MPROP_BACKNAME, "Назад ");    menu_setprop(menu, MPROP_NEXTNAME, "Далее ");    menu_setprop(menu, MPROP_EXITNAME, "Выход ");    menu_display( id, menu,0);    return PLUGIN_CONTINUE;}public set_level_phl(id,menu,item){    if(item == MENU_EXIT)    {        menu_destroy(menu);        return PLUGIN_HANDLED;    }    new data[6], _access, callback;    menu_item_getinfo( menu, item, _access, data, charsmax(data), _, _, callback);    new level = str_to_num(data);    if(UserData[id][gTempKey] >= 1 && UserData[id][gTempKey] <= 32)    {        UserData[UserData[id][gTempKey]][gLevel] = level;        UserData[UserData[id][gTempKey]][gExp] = gLevels[level-1];        new szName[2][32];        get_user_name(id, szName[0], 31);        get_user_name(UserData[id][gTempKey], szName[1], 31);        ColorChat(0, NORMAL, "^4[^3Army Ranks^4]^1 %L %L %s",LANG_PLAYER,"ADMIN_LEVEL", szName[0],LANG_PLAYER,gRankNames[level],szName[1])        save_usr(UserData[id][gTempKey]);        } else {        set_level_menu(id);    }    UserData[id][gTempKey] = 0;    return PLUGIN_HANDLED;}/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE*{\\ rtf1\\ ansi\\ ansicpg1252\\ deff0{\\ fonttbl{\\ f0\\ fnil\\ fcharset0 Tahoma;}}\n{\\ colortbl ;\\ red0\\ green0\\ blue0;}\n\\ viewkind4\\ uc1\\ pard\\ cf1\\ lang1033\\ f0\\ fs16 \n\\ par }*/
Last edited by Caramba on 2015 Jan 25 22:14, edited 1 time in total.

InvIs2
Jau po truputį tampa savu
Posts: 149
Joined: 2013 Sep 29 12:47
Skype: pksoldierlt

Re: ERRORas..

Post by InvIs2 »

Nes pirmą kartą turi kažką neupdatint, o insertint į duomenų bazę. Kaip tau updatins pagal id, jei tas id net nesukurtas.

Code: Select all

PRIMARY KEY (id)

EDIT:

Peržvelgiau kodą, tai kai žaidėjas prisijungia pirmą kartą, užregistruoja jį, bet jo ID kintamajam nepriskiriama reikšmė, todėl taip yra.

Code: Select all

new Handle:Query = SQL_PrepareQuery(SqlConnection,"INSERT INTO %s (`id`,`name`,`exp`,`level`) VALUES (NULL,'%s','5','1');",szTableName,szName);
O

Code: Select all

UserData[id][gId]
paliekamas tuščias (0)
Last edited by InvIs2 on 2015 Jan 27 19:54, edited 1 time in total.

Post Reply

Who is online

Users browsing this forum: No registered users and 5 guests