save_money

Статус
В этой теме нельзя размещать новые ответы.

ifx

Сообщения
331
Реакции
153
Помог
4 раз(а)
Ошибка
L 07/27/2018 - 16:12:33: [ReAPI] rg_add_account: player 11 is not connected
L 07/27/2018 - 16:12:33: [AMXX] Displaying debug trace (plugin "save_money.amxx")
L 07/27/2018 - 16:12:33: [AMXX] Run time error 10: native error (native "rg_add_account")
L 07/27/2018 - 16:12:33: [AMXX] [0] save_money.sma::SQL_HandlerLoad (line 56)
ОС
Linux
Amx Mod X
AMX Mod X 1.8.2 (http://www.amxmodx.org)
Authors:
<TAB>David "BAILOPAN" Anderson, Pavol "PM OnoTo" Marko
<TAB>Felix "SniperBeamer" Geyer, Jonny "Got His Gun" Bergstrom
<TAB>Lukasz "SidLuke" Wlasinski, Christian "Basic-Master" Hammacher
<TAB>Borja "faluco" Ferrer, Scott "DS" Ehlert
Compiled: Feb 14 2013, 00:55:09
Build ID: 1.8.2 61:2ae84f7c0a97
Core mode: JIT+ASM32
Билд
Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
ReHLDS version: 3.4.0.633-dev
Build date: 10:34:06 Jan 24 2018 (1383)
Build from: https://github.com/dreamstalker/rehlds/commit/82ee1b0
ReGamedll
ReGameDLL version: 5.7.0.312-dev
Build date: 07:53:34 May 31 2018
Build from: https://github.com/s1lentq/ReGameDLL_CS/commit/26db32e
Версия Metamod
Metamod v1.21p37  2013/05/30 (5:13)
by Will Day
http://www.metamod.org/
Patch: Metamod-P (mm-p) v37
by Jussi Kivilinna
http://metamod-p.sourceforge.net/
compiled: May 30 2013, 11:41:16 EET (optimized)
Список метамодулей
[ 1] VoiceTranscoder  RUN   -    VoiceTranscoder.  v2017RC3  ini   ANY   ANY  
[ 2] AMX Mod X RUN - amxmodx_mm_i386. v1.8.2 ini Start ANY
[ 3] Reunion RUN - reunion_mm_i386. v0.1.0.8 ini Start Never
[ 4] ReSemiclip RUN - resemiclip_mm_i3 v2.3.9 ini Chlvl ANY
[ 5] WHBlocker RUN - whblocker_mm_i38 v1.5.695 ini Chlvl ANY
[ 6] ReAuthCheck RUN - reauthcheck_mm_i v0.1.6 ini Start Never
[ 7] Rechecker RUN - rechecker_mm_i38 v2.5 ini Chlvl ANY
[ 8] ReSRDetector RUN - resrdetector_mm_ v0.1.0 ini Chlvl ANY
[ 9] Ultimate Unprec RUN - unprecacher_i386 vBeta 2. ini Chlvl Chlvl
[10] Fun RUN - fun_amxx_i386.so v1.8.2 pl2 ANY ANY
[11] Engine RUN - engine_amxx_i386 v1.8.2 pl2 ANY ANY
[12] FakeMeta RUN - fakemeta_amxx_i3 v1.8.2 pl2 ANY ANY
[13] CStrike RUN - cstrike_amxx_i38 v1.8.2 pl2 ANY ANY
[14] CSX RUN - csx_amxx_i386.so v1.8.2 pl2 ANY ANY
[15] Ham Sandwich RUN - hamsandwich_amxx v1.8.2 pl2 ANY ANY
[16] CSSB RUN - cssb_amxx_i386.s v5.0.0 pl2 ANY ANY
[17] ReAPI RUN - reapi_amxx_i386. v5.6.0.1 pl2 ANY Never
[18] MySQL RUN - mysql_amxx_i386. v1.8.2 pl2 ANY ANY
[19] ReAimDetector RUN - reaimdetector_am v0.2.2 pl2 ANY Never
[20] ReCSDM RUN - csdm_amxx_i386.s v3.6 pl2 ANY ANY
Список плагинов
unknown                 unknown     unknown           save_money.a  debug
Автор плагина
neugomon
Версия плагина
unknown
Исходный код
#include amxmodx
#include reapi
#include sqlx

/* Mysql Data */
new Handle:g_sql_tuple, szQuery[512], data[2];

/* Player Data */
new g_pSteamId[33][25];

public plugin_init()
set_task(1.0, "PluginCfg");

public PluginCfg()
{
new szHost[64], szUser[32], szPasswd[32], szDb[32];
get_cvar_string("lb_sql_host", szHost, charsmax(szHost));
get_cvar_string("lb_sql_user", szUser, charsmax(szUser));
get_cvar_string("lb_sql_pass", szPasswd, charsmax(szPasswd));
get_cvar_string("lb_sql_db", szDb, charsmax(szDb));

g_sql_tuple = SQL_MakeDbTuple(szHost, szUser, szPasswd, szDb);

formatex(szQuery, charsmax(szQuery),
"CREATE TABLE IF NOT EXISTS `money_manager` ( \
`id` int(11) NOT NULL AUTO_INCREMENT, \
`steamid` varchar(25) NOT NULL, \
`money` int(11) NOT NULL, \
PRIMARY KEY (`id`), \
UNIQUE KEY `steamid` (`steamid`) \
) ENGINE=MyISAM DEFAULT CHARSET=utf8;");
SQL_ThreadQuery(g_sql_tuple, "SQL_HandlerSave", szQuery, data, sizeof(data));
}

public client_putinserver(id)
{
get_user_authid(id, g_pSteamId[id], charsmax(g_pSteamId[]));
formatex(szQuery, charsmax(szQuery), "SELECT `money` FROM `money_manager` WHERE `steamid` = '%s'", g_pSteamId[id]);
data[0] = id; SQL_ThreadQuery(g_sql_tuple, "SQL_HandlerLoad", szQuery, data, sizeof(data));
}


#if AMXX_VERSION_NUM < 183
#define client_disconnected client_disconnect
#endif
public client_disconnected(id)
{
new money = get_member(id, m_iAccount);
formatex(szQuery, charsmax(szQuery), "INSERT INTO `money_manager` (`steamid`, `money`) VALUES ('%s', '%d') ON DUPLICATE KEY UPDATE `money` = '%d'", g_pSteamId[id], money, money);
data[0] = id; SQL_ThreadQuery(g_sql_tuple, "SQL_HandlerSave", szQuery, data, sizeof(data));
}

public SQL_HandlerLoad(failstate, Handle:query, err[], errcode, data[], datasize)
{
if(SQL_NumResults(query))
rg_add_account(data[0], SQL_ReadResult(query, 0), AS_SET);

return PLUGIN_CONTINUE;
}

public SQL_HandlerSave(failstate, Handle:query, err[], errcode, data[], datasize)
return PLUGIN_CONTINUE;

public plugin_end()
SQL_FreeHandle(g_sql_tuple);
Спамит в консоль эту ошибку при вкл дебаге. Я так понимаю, что игрок покинул сервер, а табл не успела записаться
ибо коннект к бд есть, деньги сохраняются\загружаются, но спамит ошибка часто очень, еррор-логи до 1мб набегают за сутки
 
В этой теме было размещено решение! Перейти к решению.

d3m37r4

111111
Сообщения
1,454
Реакции
1,194
Помог
10 раз(а)
ifx, перед добавлением денег надо проверить игрока на коннект.
 

ifx

Сообщения
331
Реакции
153
Помог
4 раз(а)
d3m37r4, а откуда мне id игрока выцепить для проверки? не могу сообразить
Код:
public SQL_HandlerLoad(failstate, Handle:query, err[], errcode, data[], datasize)
{
    if(is_user_connected(id)){
   
    if(SQL_NumResults(query))
        rg_add_account(data[0], SQL_ReadResult(query, 0), AS_SET);
       
    return PLUGIN_CONTINUE;
                                }
}
при таком варианте пишет, что не найден id
явно что-то упускаю)

по идее же, id должен подцепляться из public client_putinserver(id), я его по аналогии и добавил
 

ifx

Сообщения
331
Реакции
153
Помог
4 раз(а)
d3m37r4, правильно сделал? вроде скомпилилось :)
Код:
public SQL_HandlerLoad(failstate, Handle:query, err[], errcode, data[], datasize)
{

    if(SQL_NumResults(query) & (is_user_connected(data[0])))
        rg_add_account(data[0], SQL_ReadResult(query, 0), AS_SET);
    
    return PLUGIN_CONTINUE;
}
Minni, спасибо да, потихоньку изучаю это все
----
блин, неа, так и пишет туже самую ошибку :(
 
Последнее редактирование:

d3m37r4

111111
Сообщения
1,454
Реакции
1,194
Помог
10 раз(а)
ifx,
Diff:
public SQL_HandlerLoad(failstate, Handle:query, err[], errcode, data[], datasize)
{

-    if(SQL_NumResults(query) & (is_user_connected(data[0])))
+    if(is_user_connected(data[0]))
+    {
+        if(SQL_NumResults(query)
            rg_add_account(data[0], SQL_ReadResult(query, 0), AS_SET);
+    }     
    return PLUGIN_CONTINUE;
}
 

ifx

Сообщения
331
Реакции
153
Помог
4 раз(а)
d3m37r4, спасибо большое за помощь!
я сам дурак, у меня на сервере еще боты бегают и ошибка из-за них видимо возникала
с вот таким кодом все работает без ошибок

Код:
public SQL_HandlerLoad(failstate, Handle:query, err[], errcode, data[], datasize)
{
    if(is_user_bot(data[0]))
    {
    return PLUGIN_CONTINUE;
    }
    if(is_user_connected(data[0]))
    {
    if(SQL_NumResults(query))
    rg_add_account(data[0], SQL_ReadResult(query, 0), AS_SET);
    }   
    return PLUGIN_CONTINUE;
}
 
Статус
В этой теме нельзя размещать новые ответы.

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

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