vip advantage run time error 4 index out of bounds

Ако имате затруднения при изработката/преработката на даден плъгин - пишете тук, ще се опитаме да ви помогнем!
Аватар
Buzdrev
Извън линия
Потребител
Потребител
Мнения: 247
Регистриран на: 12 Окт 2016, 16:45
Се отблагодари: 5 пъти
Получена благодарност: 1 път
Обратна връзка:

vip advantage run time error 4 index out of bounds

Мнение от Buzdrev » 03 Мар 2017, 14:24

Здравейте използвам vip advantage плъгина, но дава някакви ерори и крашва сървъра. Ето грешките:

Код за потвърждение: Избери целия код

L 03/03/2017 - 12:07:59: [AMXX] Displaying debug trace (plugin "vip_advantage.amxx")
L 03/03/2017 - 12:07:59: [AMXX] Run time error 4: index out of bounds 
L 03/03/2017 - 12:07:59: [AMXX]    [0] colorchat.inc::ColorChat (line 76)
L 03/03/2017 - 12:07:59: [AMXX]    [1] vip_advantage.sma::process_money (line 63)
L 03/03/2017 - 12:07:59: [AMXX]    [2] vip_advantage.sma::Team_Win (line 53)
Искам да подчертая, че не всеки път се случва това, ами например като се смени картата 9-10 пъти чак тогава. Използвам Amxmodx 1.8.2 rehlds build 1054

Ето плъгина:
vip_advantage.sma
(2.01 KiB) Свалено 130 пъти
vip_advantage.sma
(2.01 KiB) Свалено 130 пъти
Последно промяна от Buzdrev на 03 Мар 2017, 14:39, променено общо 1 път.

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Re: vip advantage

Мнение от OciXCrom » 03 Мар 2017, 14:32

Качи плъгина и пиши по-подробни заглавия. Същото се отнася и за предишната ти тема. Редактирай залгавията и на двете!

Аватар
Buzdrev
Извън линия
Потребител
Потребител
Мнения: 247
Регистриран на: 12 Окт 2016, 16:45
Се отблагодари: 5 пъти
Получена благодарност: 1 път
Обратна връзка:

Re: vip advantage run time error 4 index out of bounds

Мнение от Buzdrev » 03 Мар 2017, 14:40

Опрваих ги.

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Re: vip advantage run time error 4 index out of bounds

Мнение от OciXCrom » 03 Мар 2017, 14:49

Грешката се показва когато сървърът е празен, защото плъгинът се опитва да изпрати чат съобщение до никого. Това обаче няма как да е причина за краш.

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <fakemeta>
#include < colorchat >

#define OFFSET_TEAM 114
#define OFFSET_MONEY 115
#define MAX_MONEY 16000

#define cs_get_user_money(%1) get_pdata_int(%1, OFFSET_MONEY)

new g_iMaxPlayers
new g_iStreak[2]
new g_pcvarStreak, g_pcvarMoney

public plugin_init()
{
    register_plugin("Team Advantage", "0.1", "ConnorMcLeod")

    g_pcvarStreak = register_cvar("team_advantage_streak", "3")
    g_pcvarMoney = register_cvar("team_advantage_money", "1000")
    
    register_event("TextMsg", "eRestart", "a", "2&#Game_C", "2&#Game_w")
    register_logevent("Team_Win", 6, "0=Team")
}

public plugin_cfg()
{
    g_iMaxPlayers = get_maxplayers()
}

public eRestart()
{
    arrayset(g_iStreak, 0, sizeof(g_iStreak))
}

public Team_Win()
{
    static szTeam[3]
    read_logargv(1, szTeam, 2)
    
    switch(szTeam[0])
    {
        case 'T':
        {
            g_iStreak[1]++
            g_iStreak[0] = 0
            process_money(2)
        }
        case 'C':
        {
            g_iStreak[1] = 0
            g_iStreak[0]++
            process_money(1)
        }
    }
}

process_money(iTeam)
{
    static id, iMoneyBonus, iNewMoney
    if(!( iMoneyBonus = get_pcvar_num(g_pcvarMoney) * (g_iStreak[iTeam-1] / get_pcvar_num(g_pcvarStreak)) )) return
    
    for(id = 1; id <= g_iMaxPlayers; id++)
    {
        if( !is_user_connected( id ) ) continue;
        if( !( get_user_flags( id ) & ADMIN_LEVEL_E ) ) continue;
        if( pev_valid( id ) != 2 ) continue;
        if( get_pdata_int( id, OFFSET_TEAM ) != iTeam ) continue;
        if( cs_get_user_money( id ) >= MAX_MONEY ) continue;
        
        iNewMoney = min( cs_get_user_money( id ) + iMoneyBonus, MAX_MONEY );
        cs_set_user_money( id, iNewMoney );
        ColorChat( id, RED, "^1[^4Control-Game^1] ^1VIP players ^1of loser team ^3%s ^1will receive^4 $%d^1 because their team lost^4 %d^1 rounds.", iTeam == 1 ? "[T]" : "[CT]", iMoneyBonus,  g_iStreak[ iTeam - 1 ] );
    }
}

stock cs_set_user_money(index, iMoney, iFlash = 1)
{
    if(!is_user_connected(index)) return 0;

    set_pdata_int(index, OFFSET_MONEY, iMoney);

    message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("Money"), _, index);
    write_long(iMoney);
    write_byte(iFlash ? 1 : 0);
    message_end();

    return 1;
}

Аватар
Buzdrev
Извън линия
Потребител
Потребител
Мнения: 247
Регистриран на: 12 Окт 2016, 16:45
Се отблагодари: 5 пъти
Получена благодарност: 1 път
Обратна връзка:

Re: vip advantage run time error 4 index out of bounds

Мнение от Buzdrev » 03 Мар 2017, 15:19

Ок, благодаря за помощта, може да заключвате.

Заключено
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Помощ в скриптирането”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 4 госта