Poll error

Сообщения
96
Реакции
84
Помог
2 раз(а)
Ошибка
L 03/17/2019 - 22:35:12: [AMXX] Plugin ("poll.amxx") is setting itself as failed.
L 03/17/2019 - 22:35:12: [AMXX] Plugin says: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'KY-OTAMAN', 'STEAM_0:1:225978971', 'Сменить название ссылки' at line 1
L 03/17/2019 - 22:35:12: [AMXX] Run time error 1 (plugin "poll.amxx") - forced exit
ОС
Linux
Amx Mod X
AMX Mod X 1.9.0.5236 (http://www.amxmodx.org)
Authors:
	David "BAILOPAN" Anderson, Pavol "PM OnoTo" Marko
	Felix "SniperBeamer" Geyer, Jonny "Got His Gun" Bergstrom
	Lukasz "SidLuke" Wlasinski, Christian "Basic-Master" Hammacher
	Borja "faluco" Ferrer, Scott "DS" Ehlert
Compiled: Jan 24 2019 12:12:36
Built from: https://github.com/alliedmodders/amxmodx/commit/70d822e
Build ID: 5236:70d822e
Core mode: JIT+ASM32
C++
Билд
Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
ReHLDS version: 3.4.0.668-dev
Build date: 09:47:42 Sep 29 2018 (1631)
Build from: https://github.com/dreamstalker/rehlds/commit/89be216
C++
ReGamedll
ReGameDLL version: 5.7.0.322-dev
Build date: 11:41:14 Jan 13 2019
Build from: https://github.com/s1lentq/ReGameDLL_CS/commit/7398bb7
C++
Версия Metamod
Metamod-r v1.3.0.128, API (5:13)
Metamod-r build: 17:47:54 Aug 24 2018
Metamod-r from: https://github.com/theAsmodai/metamod-r/commit/0cf2f70
C++
Список метамодулей
Currently loaded plugins:
      description      stat pend  file                        vers            src  load  unload
 [ 1] Reunion          RUN   -    reunion_mm_i386.so          v0.1.0.133      ini  Start Never
 [ 2] ReAuthCheck      RUN   -    reauthcheck_mm_i386.so      v0.1.6          ini  Start Never
 [ 3] Rechecker        RUN   -    rechecker_mm_i386.so        v2.5            ini  Chlvl ANY  
 [ 4] VoiceTranscoder  RUN   -    VoiceTranscoder.so          v2017RC3        ini  ANY   ANY  
 [ 5] WHBlocker        RUN   -    whblocker_mm_i386.so        v1.5.695        ini  Chlvl ANY  
 [ 6] ReSemiclip       RUN   -    resemiclip_mm_i386.so       v2.3.9          ini  Chlvl ANY  
 [ 7] AMX Mod X        RUN   -    amxmodx_mm_i386.so          v1.9.0.5236     ini  Start ANY  
 [ 8] ReSRDetector     RUN   -    resrdetector_mm_i386.so     v0.1.0          ini  Chlvl ANY  
 [ 9] ReAimDetector    RUN   -    reaimdetector_amxx_i386.so  v0.2.2          pl7  ANY   Never
 [10] ReAPI            RUN   -    reapi_amxx_i386.so          v5.8.0.163-dev  pl7  ANY   Never
 [11] MySQL            RUN   -    mysql_amxx_i386.so          v1.9.0.5236     pl7  ANY   ANY  
 [12] Engine           RUN   -    engine_amxx_i386.so         v1.9.0.5236     pl7  ANY   ANY  
 [13] Ham Sandwich     RUN   -    hamsandwich_amxx_i386.so    v1.9.0.5236     pl7  ANY   ANY  
 [14] FakeMeta         RUN   -    fakemeta_amxx_i386.so       v1.9.0.5236     pl7  ANY   ANY  
 [15] SxGeo            RUN   -    sxgeo_amxx_i386.so          v2.2            pl7  ANY   Never
15 plugins, 15 running
C++
Список плагинов
Currently loaded plugins:
       name                    version     author            file             status   
 [  1] Admin Loader            3.5         neygomon          re_adminloader.  running  
 [  2] Lite Bans               2.2         neygomon          lite_bans.amxx   running  
 [  3] ScreenMaker             1.1         neygomon          screen_maker.am  running  
 [  4] ReAimDetector API       0.2.2       ReHLDS Team       reaimdetector.a  running  
 [  5] Advanced Client Checke  0.3.6       Mistrick          cmdchecker.amxx  running  
 [  6] amx_who                 1.0         Yami Kaitou       amx_who.amxx     running  
 [  7] ReChecker Logging       1.0         phe               rc_logging.amxx  running  
 [  8] SF Warn Menu            0.1.4g      serfreeman1337    sf_admin_warns.  running  
 [  9] Private Message         0.8         Denzer            pm.amxx          running  
 [ 10] Ultimate Chats Control  5.2(c)      neygomon          ucc.amxx         running  
 [ 11] Maps Admin Menu         1.2.1       d3m37r4           mapsmenu.amxx    running  
 [ 12] [ReAPI] AdminFreeLook   1.0         ReHLDS Team       re_adminfreeloo  running  
 [ 13] Invisible Spectator     1.0         ReHLDS Team       re_invisible_sp  running  
 [ 14] Lite Admin ESP          1.1         neygomon, AcE     admin_esp.amxx   running  
 [ 15] Players Menu            1.7         neugomon          re_playersmenu.  running  
 [ 16] Menus Front-End         1.5         neugomon          menufront_end.a  running  
 [ 17] CSStatsX SQL            0.7.4+1     serfreeman1337    csstatsx_sql.am  running  
 [ 18] AES: StatsX             0.5.5 Vega  serfreeman1337/s  aes_statsx_cstr  running  
 [ 19] AES: StatsX Info Rank   0.1         serfreeman1337    aes_statsx_rank  running  
 [ 20] Say me and Say hp       1.4 reAPI   neygomon          re_saymehp.amxx  running  
 [ 21] Stats Configuration     1.9.0.5236  AMXX Dev Team     statscfg.amxx    running  
 [ 22] StatsX                  1.9.0.5236  AMXX Dev Team     statsx.amxx      running  
 [ 23] [ReAPI] Team Balancer   1.2         neugomon          round_balancer.  running  
 [ 24] MapBalance              0.4         mx?!              MapBalance.amxx  running  
 [ 25] GameName Changer        1.0         neugomon          re_gamenamechan  running  
 [ 26] [ReAPI] Block 'Fire in  0.0.1       sergrib           re_blockfith_hu  running  
 [ 27] [ReAPI] Flasher Punish  0.0.2b      Vaqtincha         re_noteamflashs  running  
 [ 28] Fall Damage HP Restore  0.0.1       Vaqtincha         re_falldmghpres  running  
 [ 29] resetscore(ReAPI)       1.0         Phantom           re_resetscore.a  running  
 [ 30] Items Restrict Ultimat  0.0.4       Vaqtincha         re_itemsrestric  running  
 [ 31] Advertising Manager     2.0         Javekson          adverts.amxx     running  
 [ 32] Demo Recorder           2.4.0       F@nt0M            demo_recorder.a  running  
 [ 33] AFK Control             1.4.1 [Rnd  neygomon          re_afkcontrol.a  running  
 [ 34] Ping Control            1.31        neygomon          ping_control.am  running  
 [ 35] Team Select             1.5.0       F@nt0M            teamselect.amxx  running  
 [ 36] Spec Money Save         0.2         F@nt0M            spec_money_save  running  
 [ 37] Simple Damager          1.0         mforce            re_damager_star  running  
 [ 38] Refill Weapon On Kill   0.0.1       Vaqtincha         re_vip_vampire_  running  
 [ 39] Killer ScreenFade       0.0.5       Vaqtincha         re_killer_scree  running  
 [ 40] [ReAPI] Admin Models    0.0.2       Vaqtincha         re_adminmodels.  running  
 [ 41] Chat Manager            1.1.1-11    Mistrick          chatmanager.amx  running  
 [ 42] Chat Manager: Addon     0.0.4-70    Mistrick          chatmanager_add  running  
 [ 43] Lite Kill Assist        1.17        neygomon          kill_assist.amx  running  
 [ 44] V.I.P Environment       2.1.1       Vaqtincha         vip_environment  running  
 [ 45] [ReAPI] AWPoff          1.4.3       PAffAEJIkA :3     re_awpoff.amxx   running  
 [ 46] C4 Timer on roundtime   0.3.3a      neygomon          c4timer.amxx     running  
 [ 47] In-Game Ads(MastaMan E  1.83 (Edit  stupok            in_game_ads.amx  running  
 [ 48] [SxGeo] Connect Info    1.0         s1lent            sxgeo_connect_i  running  
 [ 49] Voice Flood Blocker     1.0.1       d3m37r4           voice_flood_blo  running  
 [ 50] Announcer Killstreak    2.1         Jumper & mx?!     announcer_kills  running  
 [ 51] Advanced MUTE           2.0.0       neygomon+   re_mute_time_in  running  
 [ 52] [ReAPI] Random Weapons  2.4.9       neugomon/h1k3     re_warmup.amxx   running  
 [ 53] Bomb Taker              0.0.1b      Vaqtincha         bomb_taker.amxx  running  
 [ 54] mp_spawnprotectiontime  0.1         wopox1337         re_spawnprotect  running  
 [ 55] Poll                    1.1         Nunfy             poll.amxx        running  
 [ 56] Map Manager: Core       3.0.4       Mistrick          map_manager_cor  running  
 [ 57] Map Manager: Scheduler  0.1.2       Mistrick          map_manager_sch  running  
 [ 58] Map Manager: Rtv        0.1.0       Mistrick          map_manager_rtv  running  
 [ 59] Map Manager: Nominatio  0.1.0       Mistrick          map_manager_nom  running  
 [ 60] Map Manager: Online so  0.0.2       Mistrick          map_manager_onl  running  
 [ 61] Map Manager: Effects    0.0.8       Mistrick          map_manager_eff  running  
 [ 62] Map Manager: Informer   0.0.5       Mistrick          map_manager_inf  running  
 [ 63] Map Manager: Advanced   0.0.5       Mistrick          map_manager_adv  running  
63 plugins, 63 running
C++
Автор плагина
Nunfy
Версия плагина
1.1
Исходный код
#include <amxmodx>
#include <reapi>
#include <util_parser>
#include <sqlx>
#include <csstatsx_sql>

#define PLUGIN  "Poll"
#define VERSION "1.1"
#define AUTHOR  "Nunfy"

#define MYSQL_HOSTNAME    "localhost"
#define MYSQL_USERNAME    "root"
#define MYSQL_PASSWORD    ""
#define MYSQL_DATABASE    "up"
#define MYSQL_TABLE        "table_name"

#define MAX_MENU_SIZE            512        // Максимальный размер меню
#define MAX_ITEM_LENGHT            200     // Максимальный длинна пункта меню
#define MAX_POLLS                4        // Максимальное количество опросов
#define MAX_NICKNAME_LENGHT        30         // Максимальная длинна никнейма
#define MAX_STEAM_ID_LENGHT        35         // Максимальная длинна стим ид
#define MAX_MAP_LENGHT            30         // Максимальная длинна названия карты
#define MIN_USER_GAME_TIME        900    // Минимальное время нахождения игрока на сервере(в секундах)

#define register_menu(%0,%1,%2) register_menucmd(register_menuid(%0), %1, %2)

enum user_data
{
    bool: uMenu,
    uPoll,
    bool: uAnswered
};

static     config_file_dir[] = "addons/amxmodx/configs/poll.ini"; // путь к ini файлу
new polls[MAX_POLLS][5][MAX_ITEM_LENGHT],
    polls_items[MAX_POLLS],
    ud[MAX_PLAYERS + 1][user_data];

new Handle: mysql_turple;
new Handle: mysql_connection;

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
    RegisterHookChain(RG_CBasePlayer_Killed, "user_killed", true);
    RegisterHookChain(RG_CSGameRules_RestartRound, "restart_round", true);
    register_menu("\r[\wОпрос\r]", 1023, "main_menu_handler");
    new file_id = UTIL_ParserLoadFile(config_file_dir);
    for(new p; p < MAX_POLLS; p++)
    {
        new string[10];
        format(string, charsmax(string), "[POLL_%d]", p);
        console_print(0, "%s", string);
        for(new i; i < UTIL_ParserGetLines(file_id, string); i++)
        {
            UTIL_ParserGetContent(file_id, i, polls[p][i], MAX_ITEM_LENGHT + 1, string);
            polls_items[p] = i;
            console_print(0, "%s", polls[p][i]);
        }
    }
    mysql_connect();
    new Handle: query = SQL_PrepareQuery(mysql_connection, "UPDATE %s SET map = ''", MYSQL_TABLE);
    if(!SQL_Execute(query))
    {
        new error[512];
        SQL_QueryError(query, error, charsmax(error));
        set_fail_state(error);
    }
    SQL_FreeHandle(query);
}

public client_putinserver(id)
{
    load_data(id);
}

public client_disconnected(id, bool:drop, message[], maxlen)
{
    ud[id][uMenu] = false;
    ud[id][uPoll] = 0;
    ud[id][uAnswered] = false;
}

public user_killed(const this, pevAttacker, iGib)
{
    if(ud[this][uAnswered] == true)
    {
        return;
    }
    else if(get_user_gametime(this) < MIN_USER_GAME_TIME)
    {
        return;
    }
    new string[MAX_MENU_SIZE], keys = MENU_KEY_7;
    switch(polls_items[ud[this][uPoll]])
    {
        case 1:
        {
            format(string, charsmax(string), "\r[\wОпрос\r]\
            ^n^n%s\
            ^n^n\r7. \w%s",
            polls[ud[this][uPoll]][0],
            polls[ud[this][uPoll]][1]);
            keys = MENU_KEY_7;
        }
        case 2:
        {
            format(string, charsmax(string), "\r[\wОпрос\r]\
            ^n^n%s\
            ^n^n\r7. \w%s\
            ^n\r8. \w%s",
            polls[ud[this][uPoll]][0],
            polls[ud[this][uPoll]][1],
            polls[ud[this][uPoll]][2]);
            keys = MENU_KEY_7|MENU_KEY_8;
        }
        case 3:
        {
            format(string, charsmax(string), "\r[\wОпрос\r]\
            ^n^n%s\
            ^n^n\r7. \w%s\
            ^n\r8. \w%s\
            ^n\r9. \w%s",
            polls[ud[this][uPoll]][0],
            polls[ud[this][uPoll]][1],
            polls[ud[this][uPoll]][2],
            polls[ud[this][uPoll]][3]);
            keys = MENU_KEY_7|MENU_KEY_8|MENU_KEY_9;
        }
        case 4:
        {
            format(string, charsmax(string), "\r[\wОпрос\r]\
            ^n^n%s\
            ^n^n\r7. \w%s\
            ^n\r8. \w%s\
            ^n\r9. \w%s\
            ^n\r0. \w%s",
            polls[ud[this][uPoll]][0],
            polls[ud[this][uPoll]][1],
            polls[ud[this][uPoll]][2],
            polls[ud[this][uPoll]][3],
            polls[ud[this][uPoll]][4]);
            keys = MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0;
        }
    }
    ud[this][uMenu] = true;
    show_menu(this, keys, string);
}

public restart_round()
{
    new users_ids[MAX_PLAYERS], users_num;
    get_players(users_ids, users_num, "h");
    for(new i; i < users_num; i++)
    {
        if(ud[users_ids[i]][uMenu] == true)
        {
            show_menu(users_ids[i], MENU_KEY_0, "^n", 1);
        }
    }
}

public main_menu_handler(id, key)
{
    switch(key)
    {
        case 6..9:
        {
            ud[id][uAnswered] = true;
            new nickname[MAX_NICKNAME_LENGHT + 1], steam_id[MAX_STEAM_ID_LENGHT + 1], map[MAX_MAP_LENGHT + 1];
            get_user_name(id, nickname, charsmax(nickname));
            get_user_authid(id, steam_id, charsmax(steam_id));
            get_mapname(map, charsmax(map));
            new Handle: query = SQL_PrepareQuery(mysql_connection, "INSERT INTO %s (nickname, steam_id, question, answer, next_poll_id, map) \
            VALUES ('%s', '%s', '%s', '%s', '%d', '%s')",
            MYSQL_TABLE,
            nickname,
            steam_id,
            polls[ud[id][uPoll]][0],
            polls[ud[id][uPoll]][key - 5],
            ud[id][uPoll] + 1,
            map);
            if(!SQL_Execute(query))
            {
                new error[512];
                SQL_QueryError(query, error, charsmax(error));
                set_fail_state(error);
            }
            SQL_FreeHandle(query);
        }
    }
}

stock mysql_connect()
{
    new error, string[512];
    mysql_turple = SQL_MakeDbTuple(MYSQL_HOSTNAME, MYSQL_USERNAME, MYSQL_PASSWORD, MYSQL_DATABASE);
    SQL_SetCharset(mysql_turple, "utf8");
    mysql_connection = SQL_Connect(mysql_turple, error, string, charsmax(string));
    if(mysql_connection == Empty_Handle)
    {
        set_fail_state(string);
    }
}

stock load_data(id)
{
    new steam_id[MAX_STEAM_ID_LENGHT + 1];
    get_user_authid(id, steam_id, charsmax(steam_id));
    new Handle: query = SQL_PrepareQuery(mysql_connection, "SELECT * FROM %s WHERE steam_id = '%s' AND next_poll_id = (SELECT MAX(next_poll_id) FROM %s) LIMIT 1",
    MYSQL_TABLE,
    steam_id,
    MYSQL_TABLE);
    if(!SQL_Execute(query))
    {
        new error[512];
        SQL_QueryError(query, error, charsmax(error));
        set_fail_state(error);
    }
    else if(SQL_NumResults(query))
    {
        ud[id][uPoll] = SQL_ReadResult(query, 5);
        new map[MAX_MAP_LENGHT + 1];
        get_mapname(map, charsmax(map));
        query = SQL_PrepareQuery(mysql_connection, "SELECT * FROM %s WHERE steam_id = '%s' AND map = '%s' LIMIT 1",
        MYSQL_TABLE,
        steam_id,
        map);
        if(!SQL_Execute(query))
        {
            new error[512];
            SQL_QueryError(query, error, charsmax(error));
            set_fail_state(error);
        }
        else if(SQL_NumResults(query))
        {
            ud[id][uAnswered] = true;
        }
    }
    SQL_FreeHandle(query);
}
C++
Кроме этой ошибки так же заметил что в бд есть несколько записей ответа на один и тот же вопрос, от одного и того же игрока. Таких записей 30%. Стим ид одинаковый.
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу