Сыпет в лог ошибки плагин BestAes

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
460
Реакции
68
Помог
7 раз(а)
Ошибка
L 06/11/2018 - 09:54:55: [AMXX] Displaying debug trace (plugin "BestAes.amxx", version "1.0")
L 06/11/2018 - 09:54:55: [AMXX] Run time error 4: index out of bounds
L 06/11/2018 - 09:54:55: [AMXX] [0] BestAes.sma::hook_TakeDamage (line 73)
ОС
Windows
Билд
Protocol version 48
Exe version 1.1.2.7 (cstrike)
ReHLDS version: 3.4.0.651-dev
Build date: 18:24:21 May 7 2018 (1486)
Build from: https://github.com/dreamstalker/rehlds/commit/87a10a1
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
Список метамодулей
[ 1] VoiceTranscoder  RUN   -    voicetranscoder.dll     v2017RC3         ini  ANY   ANY  
[ 2] Reunion RUN - reunion_mm.dll v0.1.0.92 ini Start Never
[ 3] ReSemiclip RUN - resemiclip_mm.dll v2.3.9 ini Chlvl ANY
[ 4] AMX Mod X RUN - amxmodx_mm.dll v1.8.3-dev+5154 ini Start ANY
[ 5] WHBlocker RUN - whblocker_mm.dll v1.5.695 ini Chlvl ANY
[ 6] Rechecker RUN - rechecker_mm.dll v2.5 ini Chlvl ANY
[ 7] ReAuthCheck RUN - reauthcheck_mm.dll v0.1.6 ini Start Never
[ 8] CStrike RUN - cstrike_amxx.dll v1.8.3-dev+5154 pl4 ANY ANY
[ 9] SQLite RUN - sqlite_amxx.dll v1.8.3-dev+5154 pl4 ANY ANY
[10] Fun RUN - fun_amxx.dll v1.8.3-dev+5154 pl4 ANY ANY
[11] hackdetector RUN - hackdetector_amxx.dll v0.15.328.lite pl4 ANY ANY
[12] ReAPI RUN - reapi_amxx.dll v5.6.0.156-dev pl4 ANY Never
[13] FakeMeta RUN - fakemeta_amxx.dll v1.8.3-dev+5154 pl4 ANY ANY
[14] Engine RUN - engine_amxx.dll v1.8.3-dev+5154 pl4 ANY ANY
[15] Ham Sandwich RUN - hamsandwich_amxx.dll v1.8.3-dev+5154 pl4 ANY ANY
[16] ReAimDetector RUN - reaimdetector_amxx.dll v0.2.2 pl4 ANY Never
16 plugins, 16 running
Список плагинов
[  1] Anticheat               3.1.6       ctr52             anticheat.amxx   running  
[ 2] ReAimDetector API 0.2.2 ReHLDS Team reaimdetector.a running
[ 3] Aliases checker 1.0.3 kanagava alias_detector. running
[ 4] CSStatsX SQL 0.7.4 serfreeman1337 csstatsx_sql.am running
[ 5] [ReAPI] Random Weapons 2.4.6 neugomon random_weapons_ running
[ 6] FreshBans 1.3.9b kanagava fresh_bans_139_ running
[ 7] ScreenMaker 1.1 neygomon screen_maker.am running
[ 8] RC BaseChanger 1.0 phe rc_basechanger. stopped
[ 9] ReChecker Logging 1.0 phe rc_logging.amxx running
[ 10] Lite Admin ESP 1.0 neygomon admin_esp.amxx running
[ 11] Admin Base 1.8.2 AMXX Dev Team admin.amxx running
[ 12] Ping Control 1.4 neygomon Ping_Control.am running
[ 13] AFK Control 1.4.1 [Rnd neygomon afk_control.amx running
[ 14] AES: StatsX 0.6 Dev-CS serfreeman1337/s aes_statsx_cstr running
[ 15] Stats Configuration 1.8.2 AMXX Dev Team statscfg.amxx running
[ 16] Advanced Gag 1.9.0 neygomon amx_gag.amxx running
[ 17] Advanced MapChooser 1.4 neygomon map_chooser.amx running
[ 18] Lite Translit 2.8 neygomon lite_translit_c running
[ 19] [ReAPI] No Team Flash 0.0.2 Vaqtincha no_team_flash.a running
[ 20] Menus Front-End 1.5 neugomon menufront.amxx running
[ 21] Items Restrict 1.0 s1lent items_restrict. running
[ 22] resetscore(ReAPI) 1.0 Phantom resetscore.amxx running
[ 23] Maps Menu 1.4.1 neugomon mapsmenu.amxx running
[ 24] Radio Hudmsg Block 1.0 AcE radio_hudmsg_bl running
[ 25] Server Menu [INI] 1.0 Leo_[BH] server_menu.amx running
[ 26] SF Bets 0.1.5 serfreeman1337 sf_bets.amxx running
[ 27] Parachute for ALL [ReA 3.0 Leo_[BH] parachute.amxx running
[ 28] Lite C4 Timer 1.0.0 neygomon lite_c4timer.am running
[ 29] Plugins Controller 1.0 neygomon plugins_control stopped
[ 30] DemoRecoder 1.1 neygomon amx_demorec.amx running
[ 31] Rock to Ban 1.02 Safety1st rock2ban.amxx running
[ 32] [ReAPI] AWPoff 1.4.3 PAffAEJIkA :3 awp_off.amxx running
[ 33] Players Menu 1.7 neugomon players_menu.am running
[ 34] SF Warn Menu 0.1.4g serfreeman1337 sf_admin_warns. running
[ 35] Steam Models 0.1b+mod.l Freedo.m steam_models.am running
[ 36] Team Grenade Trail 1.2 Numb team_grenade_tr running
[ 37] [ReAPI] Team Balancer 1.2 neugomon round_balancer. running
[ 38] Kills Counter 0.3 serfreeman1337 kills_counter.a running
[ 39] Killer ScreenFade 0.0.5 Vaqtincha reapi_killer_sc running
[ 40] SpecList 1.2a FatalisDK speclist_rus.am running
[ 41] Adverts 1.0 pUzzlik adverts_message running
[ 42] Grab 2.5 Support123 grab_new.amxx running
[ 43] Ultimate KillStreak Ad 0.7 SAMURAI ut_killstreak_a running
[ 44] Nick Change Menu 0.1.1 serfreeman1337 nickchange_menu running
[ 45] ProKreedz Hook v2.3 vato loco [GE-S] dr_hook.amxx stopped
[ 46] BestAes 1.0 BestAes.amxx debug
[ 47] Super Bunny Hopper 1.2 Cheesy Peteza bunnyhop.amxx stopped
[ 48] [Reapi] Block Advert 1.4 neygomon block_advert.am running
[ 49] V.I.P Custom Weapons 1.0.0 Vaqtincha vip_custom.amxx running
[ 50] V.I.P Custom DEAGLE 1.0.0 Vaqtincha custom_deagle.a debug
[ 51] V.I.P Custom M4A1 1.0.0 Vaqtincha custom_m4a1.amx debug
[ 52] V.I.P Custom AK-47 1.0.0 Vaqtincha custom_ak47.amx debug
[ 53] V.I.P Custom AWP 1.0.0 Vaqtincha custom_awp.amxx debug
[ 54] Advanced Experience Sy 0.5.9 [REA serfreeman1337/s aes_main.amxx running
[ 55] AES: CStrike Addon 0.5.9 [REA serfreeman1337/s aes_exp_cstrike running
[ 56] AES: Informer 0.5.9 [REA serfreeman1337/s aes_informer.am running
[ 57] AES: Admin Tools 0.5.9 [REA serfreeman1337/s aes_exp_editor. running
[ 58] AES: Bonus System 0.5.9 Vega serfreeman1337/s aes_bonus_syste running
[ 59] AES: Bonus CSTRIKE 0.5.9 [REA serfreeman1337/s aes_bonus_cstri running
59 plugins, 55 running
Исходный код
#include < amxmodx >
#include < amxmisc >
#include < cstrike >
#include < hamsandwich >
#include < fakemeta >
#include < ColorChat >
#include < aes_main >

enum _:score
{
frags,
Float:dmg,
hs
}

new niceP[33][score]

new Aesopt
new g_iMaxPlayers

public plugin_init()
{
register_plugin("BestAes", "1.0", "") //Исходник [*J*]

RegisterHam(Ham_TakeDamage, "player", "hook_TakeDamage")
register_event("DeathMsg", "Event_DeathMessage", "a")
register_logevent("event_round_end", 2, "1=Round_End")
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
Aesopt = register_cvar("nkiller_aes", "10")
g_iMaxPlayers = get_maxplayers()
return 0;

}

public event_round_end ()
{
new Players[32], num, tmpf, Float:tmpd, tmpid
get_players( Players, num )

for( new i; i < 32; i++)
{
if ( niceP[i][frags] > tmpf )
{
tmpid = i
tmpf = niceP[i][frags]
tmpd = niceP[i][dmg]
}
else if ( niceP[i][frags] == tmpf && niceP[i][dmg] > tmpd)
{
tmpid = i
tmpf = niceP[i][frags]
tmpd = niceP[i][dmg]
}
}

if ( tmpf > 0 )
{
new name[32]
get_user_name(tmpid, name, 31);

aes_add_player_exp(tmpid, tmpf*get_pcvar_num(Aesopt) )
for(new ids = 1; ids <= g_iMaxPlayers; ids++)
{
ColorChat( ids, NORMAL, "[^x4Сервер^x1] Самый лучший игрок раунда ^x3%s^x1 получил^x4 %d^x1 опыта, убив ^x4%d^x1 игроков!", name, tmpf * get_pcvar_num(Aesopt), tmpf)
}

}
}

public hook_TakeDamage(Victim, inflictor, Attacker, Float:damage, damagebits)
{
if( inflictor == Attacker )
niceP[Attacker][dmg] += damage
else
{
static classname[32]
pev (inflictor, pev_classname, classname, 31)
if( equal (classname, "grenade") )
niceP[Attacker][dmg] += damage
}

if ( get_pdata_int(Victim, 75, 5) == HIT_HEAD )
niceP[Attacker][hs]++

return HAM_IGNORED
}

public Event_DeathMessage()
niceP[read_data(1)][frags]++

public event_round_start ( )
for (new i; i < 32; i++)
for ( new j; j < 3; j++)
niceP[i][j] = 0

public client_disconnected(id)
for ( new j; j < 3; j++)
niceP[id][j] = 0
Помогите поправить заранее спасибо.
 
В этой теме было размещено решение! Перейти к решению.

d3m37r4

111111
Сообщения
1,451
Реакции
1,175
Помог
10 раз(а)
Best777, Attacker невалидный может быть, добавь проверку на коннект атакующего.
 
Сообщения
460
Реакции
68
Помог
7 раз(а)
d3m37r4, я просто не шурупаю в скриптинге( подскажите пж как её добавить.
 

d3m37r4

111111
Сообщения
1,451
Реакции
1,175
Помог
10 раз(а)
Best777, а не, стоп. Затупил. Ham_TakeDamage для валидной ентити вызывается, в данном случае игрока.
 
Сообщения
460
Реакции
68
Помог
7 раз(а)
d3m37r4, спасибо за подсказку щя попробую поправить сам)
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
Затупил. Ham_TakeDamage для валидной ентити вызывается, в данном случае игрока.
нет все верно. Attaker может быть как World если это падение с высоты например, так и другая enity не игрок. Потому там надо добавить проверку на is_user_connected
 

d3m37r4

111111
Сообщения
1,451
Реакции
1,175
Помог
10 раз(а)
fantom, даже если хук зареган для игрока?
11 Июн 2018
А всё, понял. Не сразу уловил принцип вызова takedamage в ham.
 
Сообщения
460
Реакции
68
Помог
7 раз(а)
Ребят подскажите то это надо тип так добавить
PHP:
|| !is_user_connected(Victim))
 

d3m37r4

111111
Сообщения
1,451
Реакции
1,175
Помог
10 раз(а)
Best777, для атакующего только. Для жертвы не нужно.
 
Сообщения
460
Реакции
68
Помог
7 раз(а)
А ещё забыл сказать что при комилировани варн вылазит такой

1528708828976.png

Не могу понять что там использовать нужно
 

d3m37r4

111111
Сообщения
1,451
Реакции
1,175
Помог
10 раз(а)
Best777, инклуды aes обновлены в компиляторе?
 

d3m37r4

111111
Сообщения
1,451
Реакции
1,175
Помог
10 раз(а)
Best777, нужно натив
Код:
aes_add_player_exp(tmpid, tmpf*get_pcvar_num(Aesopt) )
использовать из последних версий. На скрине видно, что это aes_add_player_exp_f. Посмотрите синтаксис данного натива и замените его. Предупреждение пропадет.
 

d3m37r4

111111
Сообщения
1,451
Реакции
1,175
Помог
10 раз(а)
Best777,
Diff:
-aes_add_player_exp(tmpid, tmpf*get_pcvar_num(Aesopt) )
+aes_add_player_exp_f(tmpid, tmpf*get_pcvar_num(Aesopt) )
 
Сообщения
460
Реакции
68
Помог
7 раз(а)
d3m37r4, не получается чот у меня каша какаето)
PHP:
#include < amxmodx >
#include < amxmisc >
#include < cstrike >
#include < hamsandwich >
#include < fakemeta >
#include < ColorChat >
#include < aes_main >

enum _:score
{
    frags,
    Float:dmg,
    hs
}

new niceP[33][score]

new Aesopt
new g_iMaxPlayers

public plugin_init()
{
    register_plugin("BestAes", "1.0", "") //Исходник [*J*]

    RegisterHam(Ham_TakeDamage, "player", "hook_TakeDamage")
    register_event("DeathMsg", "Event_DeathMessage", "a")
    register_logevent("event_round_end", 2, "1=Round_End")
    register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
    Aesopt    = register_cvar("nkiller_aes", "10")
    g_iMaxPlayers = get_maxplayers()
    return 0;
    
}

public event_round_end ()
{
    new Players[32], num, tmpf, Float:tmpd, tmpid
    get_players( Players, num )

    for( new i; i < 32; i++)
    {
        if ( niceP[i][frags] > tmpf )
        {
            tmpid = i
            tmpf = niceP[i][frags]
            tmpd = niceP[i][dmg]
        }
        else if ( niceP[i][frags] == tmpf && niceP[i][dmg] > tmpd)
        {
            tmpid = i
            tmpf = niceP[i][frags]
            tmpd = niceP[i][dmg]
        }
    }

    if ( tmpf > 0 )
    {
        new name[32]
        get_user_name(tmpid, name, 31);
        
        aes_add_player_exp_f(tmpid, tmpf*get_pcvar_num(Aesopt) )
        for(new ids = 1; ids <= g_iMaxPlayers; ids++)
        {
        ColorChat( ids, NORMAL, "[^x4Сервер^x1] Самый лучший игрок раунда ^x3%s^x1 получил^x4 %d^x1 опыта, убив ^x4%d^x1 игроков!", name, tmpf * get_pcvar_num(Aesopt), tmpf)
        }
        
    }
}

public hook_TakeDamage(Victim, inflictor, Attacker, Float:damage, damagebits)
{
    if(!is_user_connected(Attacker))
        niceP[Attacker][dmg] += damage
    else
    {
        static classname[32]
        pev (inflictor, pev_classname, classname, 31)
        if( equal (classname, "grenade") )
            niceP[Attacker][dmg] += damage
    }

    if ( get_pdata_int(Victim, 75, 5) == HIT_HEAD )
        niceP[Attacker][hs]++

    return HAM_IGNORED
}

public Event_DeathMessage()
    niceP[read_data(1)][frags]++

public event_round_start ( )
    for (new i; i < 32; i++)
        for ( new j; j < 3; j++)
            niceP[i][j] = 0

public client_disconnected(id)
    for ( new j; j < 3; j++)
        niceP[id][j] = 0
1528709968216.png
 
Сообщения
460
Реакции
68
Помог
7 раз(а)
d3m37r4, спасибо большое вам добрый человек
 
Статус
В этой теме нельзя размещать новые ответы.

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

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