Русское сообщество по скриптингу

Ошибка на сервере Run time error 25: parameter

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Ошибка на сервере Run time error 25: parameter

Сообщение Lil270 » 26 авг 2019, 14:28

Всем привет, у меня произошла ошибка на сервере с Sql
L 08/26/2019 - 13:46:43: [AMXX] Run time error 25: parameter error
L 08/26/2019 - 13:46:43: [AMXX] [0] jbe_prison.sma::SQL_QueryConnection (line 497)

Вот строка где пишет что есть ошибка


Код: Выделить всё
public SQL_QueryConnection(iState, Handle:hQuery, szError[], iErrcode, iParams[] , iParamsSize) 
{
    switch(iState) 
    
{
        case TQUERY_CONNECT_FAILED: log_amx ( "Load - Could not connect to SQL database. [%d] %s" , iErrcode , szError );
        case TQUERY_QUERY_FAILED: log_amx ( "Load Query failed. [%d] %s" , iErrcode , szError );
    }
    new pPlayer = iParams[0];
    if(SQL_NumResults(hQuery) < 1) 
    
{
        if(equal(g_szSteamID[pPlayer], "ID_PENDING"))
        return PLUGIN_HANDLED;
        g_iLevel[pPlayer] = 0;
        g_iExpName[pPlayer] = 0;
        format                          //Вот тут указывает что есть ошибка
        (
            g_szQuery, charsmax(g_szQuery),
            
            
"INSERT INTO `%s`(`SteamID`, `level_kills`, `kills`) VALUES ('%s' ,'%i' ,'%i', '%i' ,'%i');",
            g_szRankTable, g_szSteamID[pPlayer],  
            g_iLevel
[pPlayer], g_iExpName[pPlayer]
        );
        SQL_ThreadQuery(g_hDBTuple, "ThreadQueryHandler", g_szQuery);
        return PLUGIN_HANDLED;
    }
    else 
    
{
        g_iLevel[pPlayer] = SQL_ReadResult(hQuery, 1);
        g_iExpName[pPlayer] = SQL_ReadResult(hQuery, 2);
    }
    return PLUGIN_HANDLED;
}
 


И еще в информере ошибка

L 08/26/2019 - 13:51:48: [AMXX] Run time error 4: index out of bounds
L 08/26/2019 - 13:51:48: [AMXX] [0] jbe_prison.sma::jbe_main_informer (line 7158)
L 08/26/2019 - 13:51:49: [AMXX] Displaying debug trace (plugin "jbe_zapad.amxx")

Код: Выделить всё
    if(g_iDayMode == 1) update_list_free();
    
    pPlayer 
-= TASK_SHOW_INFORMER;
    
    if
(!g_iInfoStatus[pPlayer][0])             //Вот тут указывыает ошибку
    {
        if(g_iDayMode == 2) set_hudmessage(0, 255, 0, 0.01, 0.1, 0, 0.0, 0.8, 0.2, 0.2, -1);
        else set_hudmessage(str_to_num(g_szInfoColor[g_iInfoColor[pPlayer]][1]), str_to_num(g_szInfoColor[g_iInfoColor[pPlayer]][2]), str_to_num(g_szInfoColor[g_iInfoColor[pPlayer]][3]), 0.01, 0.1, 0, 0.0, 0.8, 0.2, 0.2, -1);
        
        new szInformer
[512], pPlayer, iLen, szLastPrisoner[32];
        iLen = format(szInformer, 511, "%L | %L^n^n", pPlayer, g_szDaysWeek[g_iDayWeek], pPlayer, "JBE_HUD_GAME_MODE", pPlayer, g_szDayMode);
        iLen += format(szInformer[iLen], 511 - iLen, "%L^n", pPlayer, "JBE_HUD_CHIEF", pPlayer, g_szChiefStatus[g_iChiefStatus], g_szChiefName);
        iLen += format(szInformer[iLen], 511 - iLen, "%L^n", pPlayer, "JBE_HUD_GUARD", g_iAlivePlayersNum[2], g_iPlayersNum[2]);
        iLen += format(szInformer[iLen], 511 - iLen, "%L^n", pPlayer, "JBE_HUD_PRISONERS", g_iAlivePlayersNum[1], g_iPlayersNum[1]);
        if(g_bRestartGame && (g_iAlivePlayersNum[1] >= 1 || g_iAlivePlayersNum[2] >= 1))
        {
            iLen += format(szInformer[iLen], 511 - iLen, "^n%L^n", pPlayer, "JBE_HUD_RESTART_GAME");
            iLen += format(szInformer[iLen], 511 - iLen, "^n%L^n", pPlayer, "JBE_HUD_RESTART_END", g_szDayModeTimer);
        }
        if(g_iDayMode == 2)
        {
            iLen += format(szInformer[iLen], 511 - iLen, "^n%L^n", pPlayer, "JBE_HUD_FREE_DAY_END", g_szDayModeTimer);
        }
        if(g_iDayMode == 3)
        {
            iLen += format(szInformer[iLen], 511 - iLen, "^n%L^n", pPlayer, "JBE_HUD_GAME_END", g_szDayModeTimer);
        }
        if(g_iLastPnId && !g_iDuelStatus && g_iAlivePlayersNum[1] == 1)
        {
            get_user_name(g_iLastPnId, szLastPrisoner, charsmax(szLastPrisoner));
            iLen += format(szInformer[iLen], 511 - iLen, "^n%L^n", pPlayer, "JBE_HUD_LAST_PRISONER", szLastPrisoner, g_iLastPnTimer);
        }
        if(task_exists(TASK_COUNT_DOWN_QUEST))
        {
            if(--g_iCountDownQuest)
            {
                iLen += format(szInformer[iLen], 511 - iLen, "^n%L^n", pPlayer, "JBE_HUD_QUEST", g_szMath, g_iCountDownQuest);
            }
            else if(g_iCountDownQuest < 1)
            {
                g_iCountDownQuest = 0;
                client_cmd(0, "spk jb_engine/quest/start_end.wav");
                set_task(QUEST_TIME, "jbe_create_quest");
                UTIL_SayText(0, "%L %L", LANG_PLAYER, "JBE_CHAT_PREFIX", LANG_PLAYER, "JBE_CHAT_ALL_NO_ANSWER", g_iAnswer);
                remove_task(TASK_COUNT_DOWN_QUEST);
            }
        }
        ShowSyncHudMsg(pPlayer, g_iSyncMainInformer, szInformer);
    }
    if(g_szWantedNames[0])
    {
        set_hudmessage(255, 0, 0, 0.7, 0.1, 0, 0.0, 0.8, 0.2, 0.2, -1);
        show_hudmessage(pPlayer, "%L%s", pPlayer, g_szWantedLang[g_iWantedLang], g_szWantedNames);
    }
    if(g_szFreeNames[0])
    {
        set_hudmessage(0, 255, 0, 0.8, 0.1, 0, 0.0, 0.8, 0.2, 0.2, -1);
        show_hudmessage(pPlayer, "%L%s", pPlayer, g_szFreeLang[g_iFreeLang], g_szFreeNames);
    }


Пожалуйста подскажите мне как их исправить
____________________________________________________________________________
я не все понимаю в скриптерстве, но я не сдаюсь и учусь! :-)
____________________________________________________________________________
Аватара пользователя
Lil270
 
Сообщения: 5
Зарегистрирован: 15 фев 2019, 15:06
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше недели
Языки программирования: учусь на Counter Strike

Re: Ошибка на сервере Run time error 25: parameter

Сообщение Fedcomp » 02 сен 2019, 15:31

Ну для начала надо по одному вопросу на тему создавать.
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4936
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 815 раз.
Поблагодарили: 1317 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust

Re: Ошибка на сервере Run time error 25: parameter

Сообщение Leonidddd » 25 сен 2019, 10:19

Код: Выделить всё
"INSERT INTO `%s`(`SteamID`, `level_kills`, `kills`) VALUES ('%s' ,'%i' ,'%i', '%i' ,'%i');",
            
g_szRankTableg_szSteamID[pPlayer],  
            
g_iLevel[pPlayer], g_iExpName[pPlayer

И так, смотрим, какое кол-во аргументов ожидает от нас код:
%s - название таблицы
%s - стим айди игрока
%i - уровень игрока(целое число)
%i - похоже, кол-во экспы для уровня, но я могу ошибаться судя по названию массива(целое число)
%i - магия(целое число)
%i - ещё одна магия (целое число)

Целых 2 аргумента непонятно чего ждущие заполнения для форматирования текста, вот причина первой проблемы.


Код не полон, но в принципе, понятно, что здесь не так

Код: Выделить всё
    pPlayer -= TASK_SHOW_INFORMER;
    
    if(!
g_iInfoStatus[pPlayer][0])             //Вот тут указывыает ошибку 


Здесь просто проверку на коннект/жив ли игрок достаточно добавить, если же нет - возвращаем функцию/удаляем, тут как уж душе угодно, вот ответ на второй.
Аватара пользователя
Leonidddd
Модератор
 
Сообщения: 2557
Зарегистрирован: 08 апр 2012, 18:13
Откуда: г. Запорожье
Благодарил (а): 192 раз.
Поблагодарили: 718 раз.


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6