Проблема в информере AES

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
50
Реакции
1
Помог
1 раз(а)
Ошибка
В логах ничего нет.
ОС
Linux
Amx Mod X
AMX Mod X 1.9.0.5294
Билд
Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
ReHLDS version: 3.13.0.788-dev
Build date: 07:36:33 Jul 12 2023 (3378)
Build from: https://github.com/dreamstalker/rehlds/commit/f955b07
ReGamedll
ReGameDLL version: 5.22.0.593-dev
Build date: 03:10:30 Jul 11 2023
Версия 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]
[ 2] Reunion RUN - reunion_mm_i386. v0.1.92d ini Start Never
[ 3] AMX Mod X RUN - amxmodx_mm_i386. v1.9.0.5 ini Start ANY
[ 4] ReSemiclip RUN - resemiclip_mm_i3 v2.3.9 ini Chlvl ANY
[ 5] WHBlocker RUN - whblocker_mm_i38 v1.5.697 ini Chlvl ANY
[ 6] ReSRDetector RUN - resrdetector_mm_ v0.1.0 ini Chlvl ANY
[ 7] Rechecker RUN - rechecker_mm_i38 v2.7 ini Chlvl ANY
[ 8] VoiceTranscoder RUN - VoiceTranscoder. v2017RC5 ini ANY ANY
[ 9] MySQL RUN - mysql_amxx_i386. v1.9.0.5 pl3 ANY ANY
[10] FakeMeta RUN - fakemeta_amxx_i3 v1.9.0.5 pl3 ANY ANY
[11] ReAPI RUN - reapi_amxx_i386. v5.22.0. pl3 ANY Never
[12] CSX RUN - csx_amxx_i386.so v1.9.0.5 pl3 ANY ANY
[13] Ham Sandwich RUN - hamsandwich_amxx v1.9.0.5 pl3 ANY ANY
[14] Engine RUN - engine_amxx_i386 v1.9.0.5 pl3 ANY ANY
[15] CStrike RUN - cstrike_amxx_i38 v1.9.0.5 pl3 ANY ANY
[16] Fun RUN - fun_amxx_i386.so v1.9.0.5 pl3 ANY ANY
[17] ReAimDetector RUN - reaimdetector_am v0.2.2 pl3 ANY Never
17 plugins, 16 running
Список плагинов
[  1] FreshBans               1.4.8b      kanagava          fresh_bans_148-  running  
[ 2] Admin Loader 3.5 neygomon admin_loader.am running
[ 3] Admin Base 1.9.0.5294 AMXX Dev Team admin.amxx running
[ 4] Admin Commands 1.9.0.5294 AMXX Dev Team admincmd.amxx running
[ 5] Admin Help 1.9.0.5294 AMXX Dev Team adminhelp.amxx running
[ 6] Slots Reservation 1.9.0.5294 AMXX Dev Team adminslots.amxx running
[ 7] Multi-Lingual System 1.9.0.5294 AMXX Dev Team multilingual.am running
[ 8] Commands Menu 1.9.0.5294 AMXX Dev Team cmdmenu.amxx running
[ 9] Players Menu 1.9.0.5294 AMXX Dev Team plmenu.amxx running
[ 10] Maps Menu 1.9.0.5294 AMXX Dev Team mapsmenu.amxx running
[ 11] Admin Chat 1.9.0.5294 AMXX Dev Team adminchat.amxx running
[ 12] Anti Flood 1.9.0.5294 AMXX Dev Team antiflood.amxx running
[ 13] Scrolling Message 1.9.0.5294 AMXX Dev Team scrollmsg.amxx running
[ 14] Info. Messages 1.9.0.5294 AMXX Dev Team imessage.amxx running
[ 15] Admin Votes 1.9.0.5294 AMXX Dev Team adminvote.amxx running
[ 16] NextMap 1.9.0.5294 AMXX Dev Team nextmap.amxx stopped
[ 17] Nextmap Chooser 1.9.0.5294 AMXX Dev Team mapchooser.amxx stopped
[ 18] TimeLeft 1.9.0.5294 AMXX Dev Team timeleft.amxx running
[ 19] Pause Plugins 1.9.0.5294 AMXX Dev Team pausecfg.amxx running
[ 20] Stats Configuration 1.9.0.5294 AMXX Dev Team statscfg.amxx running
[ 21] AES: StatsX 0.5+1 serfreeman1337 aes_statsx_cstr running
[ 22] CSStatsX SQL 0.7.4+2 serfreeman1337 csstatsx_sql.am running
[ 23] CSXSQL: Onlinetime Awa 0.2 serfreeman1337 csstatsx_playti running
[ 24] Molotov Grenade 1.0.3 medusa molotov_grenade running
[ 25] Knife Models 3.1.1 OciXCrom crx_knife_model running
[ 26] Bhop Menu 1.2a gyxoBka BhopMenu.amxx running
[ 27] Colored FITH ReAPI 1.2 CHEL74 colored_fith_re running
[ 28] Online Helper 2.1.3 Nordic Warrior online_helper.a running
[ 29] Advanced Kill Assists 1.3c Xelson next21_kill_ass running
[ 30] SpecList 1.2a FatalisDK speclist_rus.am running
[ 31] SF Bets 0.1.6 serfreeman1337 sf_bets.amxx running
[ 32] Team Semiclip 2.0.0 schmurgel1983 cs_team_semicli running
[ 33] Info Rank 0.1 by CepeH9 INFO_RANK_V0.1. running
[ 34] DHud Win Status 1.0.2 BiZaJe DhudWinStatus.a running
[ 35] Knife kill 1.0.1 MurLemur knife_kill_soun running
[ 36] [Customizable] AmxModM 0.0.5 Albertio amxmodmenu.amxx running
[ 37] Weapon Icon 1.2 hoboman313/Zenix weapon_icon.amx running
[ 38] Back Weapons 1.1 Cheap_Suit backweapons.amx running
[ 39] First Person Death 1.0 Numb first_person_de running
[ 40] Kills Counter 1.0 Safety1st killscounter.am running
[ 41] GameName 1.0 Lonkura GameName.amxx running
[ 42] Info After Death 0.0.3 Albertio info_after_deat running
[ 43] Parachute for ALL [ReA 3.0 Leo_[BH] parachute_for_a running
[ 44] Killa HP 1.0 jas0n killa_hp.amxx running
[ 45] Team Flash Control 1.1 Tender Team_Flash_Cont running
[ 46] C4 CD Voice 1.1 TTuCTOH c4cdvoice.amxx running
[ 47] Autoresponder/Advertis 0.5 MaximusBrood ad_manager.amxx running
[ 48] online_play 1 A1v anew.amxx running
[ 49] IDEAL VIP 3 c xepoM] 15% oT Ba/lePa ideal_vip_gold. running
[ 50] Custom Smoke 1.07 bionext custom_smoke.am running
[ 51] Mode 2x2 1.9 s1lent mode.amxx running
[ 52] [ReAPI] Healthnade 0.0.13f DEV-CS.RU Commun reapi_healthnad running
[ 53] Join/Leave Message 1.2 BigBaller WhoVistServer.a running
[ 54] Grenade Trail 1.0 Jim grenade_trail.a running
[ 55] CSNadeDrops 0.14 Avalanche csnadedrops.amx running
[ 56] Reset_Score 1.0 9 rpamm!? Resetscore.amxx running
[ 57] Models Replacement 0.0.2 ConnorMcLeod | V models_replacem running
[ 58] Bullet Damage 0.0.1 ConnorMcLeod bullet_damage.a running
[ 59] Crux Ansata 1.0 DUKKHAZ0R crux_ansata.amx running
[ 60] [GM] VIP Test 1.2.0 [GM] NWC gm_vip_test.amx running
[ 61] Auto-Give Privileges 1.0 SerGrib night_vips.amxx stopped
[ 62] Auto recording demo 2.0 IzI | Bonaqua (R amx_autodemorec running
[ 63] Top Round Damage 1.0.4 ReAP Dager* *.* -G- top_round_damag running
[ 64] Block Unknown Command Alpha WPMG PRoSToTeM@ BlockUnknownCom running
[ 65] Lite Translit 2.8 neygomon lite_translit_s running
[ 66] unknown unknown unknown stats.amxx bad load
[ 67] Admin Spectator ESP 1.3 KoST admin_spec_esp. running
[ 68] Team Balance Control 1.3.9 gyxoBka TeamBalanceCont running
[ 69] ReAimDetector API 0.2.2 ReHLDS Team reaimdetector.a running
[ 70] Ultimate Chats Control 5.2(c) neygomon ucc.amxx running
[ 71] unknown unknown unknown ucc_api_example running
[ 72] UCC Addon: VoteGAG 1.2 neygomon ucc_votegag.amx running
[ 73] Map Manager 2.5.61 Mistrick mapmanager.amxx running
[ 74] Map Manager: Sub Plugi 0.1 Mistrick mapmanager_subp running
[ 75] Custom Player Models T 0.2.1 BlackSignature custom_player_m debug
[ 76] Custom Player Models C 0.2.2 BlackSignature custom_player_m debug
[ 77] Custom Player Models A 0.2.4 F@nt0M & BlackSi custom_player_m debug
[ 78] Weather System 2.9c UFPS.Team sneg.amxx running
[ 79] SnowMan 1.0 OverGame snow_man.amxx running
[ 80] Christmas_C4 1.0 MANCHIMOCYRUS Christmas_C4.am running
[ 81] Santa Hat + Snow 1.3 xPaw SantaHat.amxx running
[ 82] unknown unknown unknown ak47_VIP_G.amxx running
[ 83] unknown unknown unknown m4a1_G.amxx running
[ 84] unknown unknown unknown ak47_VIP_F.amxx running
[ 85] unknown unknown unknown m4a1_VIP_F.amxx running
[ 86] unknown unknown unknown m4a1_premium.am running
[ 87] unknown unknown unknown ak47_premium.am running
[ 88] ServerMenu 1.0 Fl1pping menu.amxx running
[ 89] PremMenu 1.0 Fl1pping premmenu.amxx running
[ 90] Privilegii 1.0 Fl1pping privmenu.amxx running
[ 91] Gl.AdminMenu 1.0 Fl1pping gladmin.amxx running
[ 92] VIPFMENU 1.0 Fl1pping vipfmenu.amxx running
[ 93] New Plug-In 1.0 author girlmenu.amxx running
[ 94] Revive Teammates: Core 1.1.6 ufame & Albertio rt_core.amxx running
[ 95] Revive Teammates: Plan 1.1.6 ufame & Albertio rt_planting.amx running
[ 96] Revive Teammates: Rest 1.1.6 ufame & Albertio rt_restrictions running
[ 97] Revive Teammates: Time 1.1.6 ufame & Albertio rt_timer.amxx running
[ 98] Revive Teammates: Effe 1.1.6 ufame & Albertio rt_effects.amxx running
[ 99] Revive Teammates: Soun 1.1.6 ufame & Albertio rt_sounds.amxx running
[100] Revive Teammates: Bonu 1.1.6 ufame & Albertio rt_bonus.amxx running
[101] Advanced Experience Sy 0.5.9 [REA serfreeman1337/s aes_main.amxx running
[102] AES: CStrike Addon 0.5.9 [REA serfreeman1337/s aes_exp_cstrike running
[103] AES: Informer 0.5 Vega serfreeman1337 aes_informer.am running
[104] AES: Admin Tools 0.5.9 [REA serfreeman1337/s aes_exp_editor. running
[105] AES: Bonus System 0.5.9 Vega serfreeman1337/s aes_bonus_syste running
[106] AES: Bonus CSTRIKE 0.5.9.1 [R serfreeman1337/s aes_bonus_cstri running
[107] Death Gift 2.1.1 ArKaNeMaN DeathGift.amxx running
[108] [DG] Misc Bonuses 1.0.0 ArKaNeMaN DG_Misc.amxx running
[109] [DG] More Bonuses 2.1.1 ArKaNeMaN DG_MoreBonuses. running
[110] [DG] More Funcs 2.1.1 ArKaNeMaN DG_MoreFuncs.am running
( 66) Load fails: Plugin file open error (plugin "stats.amxx")
110 plugins, 106 running
Автор плагина
serfreeman1337
Версия плагина
0.5
Исходный код
/* 
Advanced Experience System
by serfreeman1337 http://gf.hldm.org/
*/

/*
HUD Informer
*/

#include <amxmodx>
#include <amxmisc>

#include <engine>

#if AMXX_VERSION_NUM < 183
#include <colorchat>

#define print_team_default DontChange
#define print_team_grey Grey
#define print_team_red Red
#define print_team_blue Blue

#define MAX_NAME_LENGTH 32
#define MAX_PLAYERS 32

#define client_disconnected client_disconnect
#endif

#include <aes_v>

#define PLUGIN "AES: Informer"
#define VERSION "0.5 Vega"
#define AUTHOR "serfreeman1337"

#define PLAYER_HUD_OFFSET 86444

/* - CVARS - */

enum _:cvars_num {
CVAR_HUD_UPDATE,
CVAR_HUD_INFO_DEFAULT,
CVAR_HUD_INFO_TYPE,
CVAR_HUD_INFO_COLOR,
CVAR_HUD_INFO_POS,
CVAR_HUD_INFO_TYPE_D,
CVAR_HUD_INFO_COLOR_D,
CVAR_HUD_INFO_POS_D,
CVAR_TPL_MODE,
CVAR_HUD_ANEW_TYPE,
CVAR_HUD_ANEW_POS,
CVAR_HUD_ANEW_COLOR,
CVAR_CHAT_NEW_LEVEL
}

new cvar[cvars_num]

/* - CACHED VALUES - */

// кеш от души
new Float:hudUpdateInterval
new bool:hudInfoOn, Float:hudInfoxPos,Float:hudInfoyPos,hudInfoColor[3],bool:hudInfoColorRandom
new bool:hudDeadOn, Float:hudDeadxPos, Float:hudDeadyPos,hudDeadColor[3],bool:hudDeadColorRandom
new bool:hudaNewOn, Float:hudaNewxPos,Float:hudaNewyPos,hudaNewColor[3]
new chatLvlUpStyle,bonusEnabledPointer,bool:isTplMode,aesMaxLevel,g_trackmode
new playerLevel[33][64],playerWatchLevel[33]

/* - SYNC HUD OBJ - */
new informerSyncObj,aNewSyncObj

/* - FILE STORAGE - */

new Trie:g_DisabledInformer

#if AMXX_VERSION_NUM < 183
new Array:g_ADisabledInformer
#endif

enum _:tplInfo {
INF_EXP,
INF_LEVELEXP,
INF_NEEDEXP,
INF_LEVEL,
INF_MAXLEVEL,
INF_RANK,
INF_NAME,
INF_STEAMID,
INF_BONUS,

INF_EXF,
INF_LXF,
INF_NXF
}

new const tplKeys[tplInfo][] = {
"<exp>",
"<levelexp>",
"<needexp>",
"<level>",
"<maxlevel>",
"<rank>",
"<name>",
"<steamid>",
"<bonus>",

"<exf>",
"<lxf>",
"<nxf>"
}

enum _:tplVario {
TPL_INF,
TPL_INF_D,
TPL_UP,
TPL_UP_ALL
}

new tplBitSum[tplVario]

new const teamColor[] = {
print_team_grey,
print_team_red,
print_team_blue
}

public plugin_init(){
register_plugin(PLUGIN, VERSION, AUTHOR)

cvar[CVAR_TPL_MODE] = register_cvar("aes_informer_tpl","0")
cvar[CVAR_HUD_UPDATE] = register_cvar("aes_hud_update","1.5")
cvar[CVAR_HUD_INFO_DEFAULT] = register_cvar("aes_hud_info_default","1")
cvar[CVAR_HUD_INFO_TYPE] = register_cvar("aes_hud_info_type","1")
cvar[CVAR_HUD_INFO_COLOR] = register_cvar("aes_hud_info_color","100 100 100")
cvar[CVAR_HUD_INFO_POS] = register_cvar("aes_hud_info_pos","0.01 0.13")
cvar[CVAR_HUD_ANEW_TYPE] = register_cvar("aes_hud_anew_type","1")
cvar[CVAR_HUD_ANEW_COLOR] = register_cvar("aes_hud_anew_color","100 100 100")
cvar[CVAR_HUD_ANEW_POS] = register_cvar("aes_hud_anew_pos","-1.0 0.90")
cvar[CVAR_CHAT_NEW_LEVEL] = register_cvar("aes_newlevel_chat","2")

cvar[CVAR_HUD_INFO_TYPE_D] = register_cvar("aes_hud_info_default_d","1")
cvar[CVAR_HUD_INFO_COLOR_D] = register_cvar("aes_hud_info_color_d","60 60 60")
cvar[CVAR_HUD_INFO_POS_D] = register_cvar("aes_hud_info_pos_d","0.01 0.15")

register_clcmd("say /aenable","Informer_Switch",0,"- switch experience informer on/off")
}

public plugin_cfg(){
bonusEnabledPointer = get_cvar_pointer("aes_bonus_enable")

hudUpdateInterval = get_pcvar_float(cvar[CVAR_HUD_UPDATE])
hudInfoOn = get_pcvar_num(cvar[CVAR_HUD_INFO_DEFAULT]) > 0 ? true : false
hudDeadOn = get_pcvar_num(cvar[CVAR_HUD_INFO_TYPE_D]) > 0 ? true : false
hudaNewOn = get_pcvar_num(cvar[CVAR_HUD_ANEW_TYPE]) > 0 ? true : false
chatLvlUpStyle = get_pcvar_num(cvar[CVAR_CHAT_NEW_LEVEL])
isTplMode = get_pcvar_num(cvar[CVAR_TPL_MODE]) > 0 ? true : false

if(!bonusEnabledPointer)
hudaNewOn = false

new temp[15],sColor[3][6]

if(hudInfoOn){
get_pcvar_string(cvar[CVAR_HUD_INFO_COLOR],temp,14)

if(strcmp(temp,"random") != 0){
parse(temp,sColor[0],3,sColor[1],3,sColor[2],3)

hudInfoColor[0] = str_to_num(sColor[0])
hudInfoColor[1] = str_to_num(sColor[1])
hudInfoColor[2] = str_to_num(sColor[2])
}else
hudInfoColorRandom = true

get_pcvar_string(cvar[CVAR_HUD_INFO_POS],temp,14)
parse(temp,sColor[0],5,sColor[1],5)

hudInfoxPos = str_to_float(sColor[0])
hudInfoyPos = str_to_float(sColor[1])

informerSyncObj = CreateHudSyncObj()

if(isTplMode){ // sum
new tplString[256]
formatex(tplString,charsmax(tplString),"%L",LANG_SERVER,"AES_HUD_TPL")

for(new i ; i < tplInfo ; i++){
if(contain(tplString,tplKeys[i]) != -1)
tplBitSum[TPL_INF] |= (1<<i)
}
}
}

if(hudDeadOn){
get_pcvar_string(cvar[CVAR_HUD_INFO_COLOR_D],temp,14)

if(strcmp(temp,"random") != 0){
parse(temp,sColor[0],3,sColor[1],3,sColor[2],3)

hudDeadColor[0] = str_to_num(sColor[0])
hudDeadColor[1] = str_to_num(sColor[1])
hudDeadColor[2] = str_to_num(sColor[2])
}else
hudDeadColorRandom = true

get_pcvar_string(cvar[CVAR_HUD_INFO_POS_D],temp,14)
parse(temp,sColor[0],5,sColor[1],5)

hudDeadxPos = str_to_float(sColor[0])
hudDeadyPos = str_to_float(sColor[1])

if(!informerSyncObj)
informerSyncObj = CreateHudSyncObj()

if(isTplMode){ // sum
new tplString[256]
formatex(tplString,charsmax(tplString),"%L",LANG_SERVER,"AES_HUD_TPL_D")

for(new i ; i < tplInfo ; i++){
if(contain(tplString,tplKeys[i]) != -1)
tplBitSum[TPL_INF_D] |= (1<<i)
}
}
}

if(isTplMode){ // bit sum for chat notify messages
switch(chatLvlUpStyle ){
case 1:{
new tplString[256]
formatex(tplString,charsmax(tplString),"%L",LANG_SERVER,"AES_NEWLEVEL_TPL")

for(new i ; i < tplInfo ; i++){
if(contain(tplString,tplKeys[i]) != -1)
tplBitSum[TPL_UP] |= (1<<i)
}

}
case 2:{
new tplString[256]
formatex(tplString,charsmax(tplString),"%L",LANG_SERVER,"AES_NEWLEVEL_TPL")

for(new i ; i < tplInfo ; i++){
if(contain(tplString,tplKeys[i]) != -1)
tplBitSum[TPL_UP] |= (1<<i)
}

formatex(tplString,charsmax(tplString),"%L",LANG_SERVER,"AES_NEWLEVEL_ALL_TPL")

for(new i ; i < tplInfo ; i++){
if(contain(tplString,tplKeys[i]) != -1)
tplBitSum[TPL_UP_ALL] |= (1<<i)
}
}
}
}

if(hudaNewOn){
get_pcvar_string(cvar[CVAR_HUD_ANEW_COLOR],temp,14)
parse(temp,sColor[0],3,sColor[1],3,sColor[2],3)

hudaNewColor[0] = str_to_num(sColor[0])
hudaNewColor[1] = str_to_num(sColor[1])
hudaNewColor[2] = str_to_num(sColor[2])

get_pcvar_string(cvar[CVAR_HUD_ANEW_POS],temp,14)
parse(temp,sColor[0],5,sColor[1],5)

hudaNewxPos = str_to_float(sColor[0])
hudaNewyPos = str_to_float(sColor[1])

aNewSyncObj = CreateHudSyncObj()
}

aesMaxLevel = aes_get_max_level() - 1

g_trackmode = get_cvar_num("aes_track_mode")
g_DisabledInformer = TrieCreate()

#if AMXX_VERSION_NUM < 183
g_ADisabledInformer = ArrayCreate(36)
#endif

new fPath[256],len

// TODO: directory autocreate
len += get_datadir(fPath,charsmax(fPath))
len += formatex(fPath[len],charsmax(fPath) - len,"/aes/informer.ini")

new f = fopen(fPath,"r")

if(f){
new buffer[512]

while(!feof(f)){
fgets(f,buffer,511)
trim(buffer)

if(!strlen(buffer) || buffer[0] == ';')
continue

remove_quotes(buffer)

TrieSetCell(g_DisabledInformer,buffer,true)

#if AMXX_VERSION_NUM < 183
ArrayPushString(g_ADisabledInformer,buffer)
#endif
}

fclose(f)

}
}

public plugin_end(){
new fPath[256],len
len += get_datadir(fPath,charsmax(fPath))
len += formatex(fPath[len],charsmax(fPath) - len,"/aes/informer.ini")

#if AMXX_VERSION_NUM < 183
if(ArraySize(g_ADisabledInformer)){
new f = fopen(fPath,"w+")

fprintf(f,"; %s^n; by %s^n^n; Disable informer for SteamID^n",PLUGIN,AUTHOR)

new trackId[36]

for(new i ; i < ArraySize(g_ADisabledInformer) ; ++i){
ArrayGetString(g_ADisabledInformer,i,trackId,35)

if(!TrieKeyExists(g_DisabledInformer,trackId))
continue

fprintf(f,"^n^"%s^"",trackId)
}

fclose(f)
}
#else
new Snapshot:trieIterator = TrieSnapshotCreate(g_DisabledInformer)

if(TrieSnapshotLength(trieIterator)){
new f = fopen(fPath,"w+")
fprintf(f,"; %s^n; by %s^n^n; Disable informer for SteamID^n",PLUGIN,AUTHOR)

new trackId[36]

for(new i,trieSize = TrieSnapshotLength(trieIterator) ; i < trieSize ; i++){
TrieSnapshotGetKey(trieIterator,i,trackId,charsmax(trackId))
fprintf(f,"^n^"%s^"",trackId)
}

fclose(f)
}
#endif

else{
if(file_exists(fPath))
delete_file(fPath)
}

#if AMXX_VERSION_NUM >= 183
TrieSnapshotDestroy(trieIterator)
#endif
}

public Informer_Switch(id){
if(!hudInfoOn && !hudDeadOn)
return 0

new trackId[36]

if(!get_player_trackid(id,trackId,charsmax(trackId)))
return 0

if(!TrieKeyExists(g_DisabledInformer,trackId)){
TrieSetCell(g_DisabledInformer,trackId,1)

#if AMXX_VERSION_NUM < 183
if(!CheckStringInArray(g_ADisabledInformer,trackId))
ArrayPushArray(g_ADisabledInformer,trackId)
#endif

client_print_color(id,print_team_red,"%L %L",
id,"AES_TAG",id,"AES_INFORMER_DISABLED")

remove_task(PLAYER_HUD_OFFSET + id)
}else{
TrieDeleteKey(g_DisabledInformer,trackId)
set_task(hudUpdateInterval,"Show_Hud_Informer",PLAYER_HUD_OFFSET + id,.flags="b")

client_print_color(id,print_team_blue,"%L %L",
id,"AES_TAG",id,"AES_INFORMER_ENABLED")
}

return 0
}

#if AMXX_VERSION_NUM < 183
CheckStringInArray(Array:which,string[]){
new str[64]

for(new i,arrSize = ArraySize(which) ; i < arrSize ; ++i){
ArrayGetString(which,i,str,charsmax(str))

if(strcmp(string,str) == 0)
return true
}

return false
}
#endif

public client_putinserver(id){
if((hudInfoOn || hudaNewOn) && !is_user_bot(id)){
new trackId[36]
get_player_trackid(id,trackId,charsmax(trackId))

if(!TrieKeyExists(g_DisabledInformer,trackId))
set_task(hudUpdateInterval,"Show_Hud_Informer",PLAYER_HUD_OFFSET + id,.flags="b")
}
}

public client_disconnected(id){
if((hudInfoOn || hudaNewOn) &&!is_user_bot(id)){
remove_task(PLAYER_HUD_OFFSET + id)
}
}

public aes_player_levelup(id,newlevel,oldlevel){
new levelName[64]

switch(chatLvlUpStyle){
case 1: {
aes_get_level_name(newlevel,levelName,charsmax(levelName),id)

if(!isTplMode){
client_print_color(id,print_team_default,"%L %L",id,"AES_TAG",id,"AES_NEWLEVEL_ID",levelName)
}else{
new msg[191],len
tplFormatNewLevel(id,msg,len,"AES_NEWLEVEL_TPL",id,TPL_UP)

client_print_color(id,print_team_default,msg)
}
}
case 2:{
new pls[32],pnum,name[32]
get_players(pls,pnum,"c")
get_user_name(id,name,charsmax(name))

new upTeam = get_user_team(id)

if(!(0 <= upTeam < sizeof teamColor))
upTeam = 0

for(new i,player; i < pnum ; ++i){
player = pls[i]

aes_get_level_name(newlevel,levelName,charsmax(levelName),player)

if(player != id){
if(!isTplMode){
client_print_color(player,teamColor[upTeam],"%L %L",player,"AES_TAG",player,"AES_NEWLEVEL_ALL",name,levelName)
}else{
new msg[191],len
tplFormatNewLevel(id,msg,len,"AES_NEWLEVEL_ALL_TPL",player,TPL_UP_ALL)

client_print_color(player,teamColor[upTeam],msg)
}
}else{
if(!isTplMode){
client_print_color(id,teamColor[upTeam],"%L %L",id,"AES_TAG",id,"AES_NEWLEVEL_ID",levelName)
}else{
new msg[191],len
tplFormatNewLevel(id,msg,len,"AES_NEWLEVEL_TPL",id,TPL_UP)

client_print_color(id,teamColor[upTeam],msg)
}
}
}
}
default: return
}
}

public tplFormatNewLevel(id,msg[],len,tplKey[],idLang,tplType){
new Float:player_exp = aes_get_player_exp(id)
new Float:player_reqexp = aes_get_player_reqexp(id)
new player_level = aes_get_player_level(id)
new player_bonus = aes_get_player_bonus(id)

len = formatex(msg[len],190-len,"%L ",idLang,"AES_TAG")

len += parse_informer_tpl(
id,id,msg,len,190,tplKey,tplType,idLang,

player_exp,
player_level,
player_reqexp,
player_bonus
)

return len
}

public Show_Hud_Informer(taskId){
new id = taskId - PLAYER_HUD_OFFSET
new watchId = id
new isAlive = is_user_alive(id)

if(informerSyncObj != 0)
ClearSyncHud(id,informerSyncObj)

if(!isAlive){
watchId = entity_get_int(id,EV_INT_iuser2)

if(!watchId)
return
}

new hudMessage[256],len

new Float:player_exp = aes_get_player_exp(watchId)
new Float:player_reqexp = aes_get_player_reqexp(watchId)
new player_level = aes_get_player_level(watchId)
new player_bonus = aes_get_player_bonus(watchId)

new bool:status = true

if(player_exp == -1.0)
{
status = false
}

if(hudInfoOn){
ClearSyncHud(id,informerSyncObj)

if(status){
if(!isTplMode){
if(playerWatchLevel[id] != player_level || !playerLevel[id][0]){
aes_get_level_name(player_level,playerLevel[id],charsmax(playerLevel[]),id)
playerWatchLevel[id] = player_level
}

if(watchId != id){
new watchName[32]
get_user_name(watchId,watchName,charsmax(watchName))

len += formatex(hudMessage[len],charsmax(hudMessage) - len,"%L^n",id,"AES_INFORMER0",watchName)
}

len += formatex(hudMessage[len],charsmax(hudMessage) - len,"%L^n",id,"AES_INFORMER1",playerLevel[id])

if(player_reqexp != -1.0){
len += formatex(hudMessage[len],charsmax(hudMessage) - len,"%L",id,"AES_INFORMER2",player_exp,player_reqexp)
}else
len += formatex(hudMessage[len],charsmax(hudMessage) - len,"%L",id,"AES_PLAYER_XP_MAX")
}else{
if(isAlive)
{
len += parse_informer_tpl(
id,watchId,
hudMessage,len,charsmax(hudMessage),"AES_HUD_TPL",TPL_INF,id,

player_exp,
player_level,
player_reqexp,
player_bonus
)
}
else if(!isAlive && hudDeadOn)
{
len += parse_informer_tpl(
id,watchId,
hudMessage,len,charsmax(hudMessage),"AES_HUD_TPL_D",TPL_INF_D,id,

player_exp,
player_level,
player_reqexp,
player_bonus
)
}
}

}else
len += formatex(hudMessage[len],charsmax(hudMessage) - len,"%L",id,"AES_INFORMER_FAIL")

if(isAlive){
if(hudInfoColorRandom){
// рандом такой рандом
hudInfoColor[0] = random(25500) / 100
hudInfoColor[1] = random(25500) / 100
hudInfoColor[2] = random(25500) / 100
}

set_hudmessage(hudInfoColor[0], hudInfoColor[1], hudInfoColor[2], hudInfoxPos , hudInfoyPos,.holdtime = hudUpdateInterval,.channel = 3)
}else if(!isAlive && hudDeadOn){
if(hudDeadColorRandom){
hudDeadColor[0] = random(25500) / 100
hudDeadColor[1] = random(25500) / 100
hudDeadColor[2] = random(25500) / 100
}

set_hudmessage(hudDeadColor[0],hudDeadColor[1],hudDeadColor[2],hudDeadxPos,hudDeadyPos,0,.holdtime = hudUpdateInterval,.channel = 3)
}

replace_all(hudMessage,charsmax(hudMessage),"\n","^n")
ShowSyncHudMsg(id,informerSyncObj,hudMessage)

len = 0
hudMessage[0] = 0
}

if(hudaNewOn && get_pcvar_num(bonusEnabledPointer) == 1 && player_bonus > 0 && watchId == id){
ClearSyncHud(id,aNewSyncObj)

len += formatex(hudMessage[len],charsmax(hudMessage) - len,"%L",id,"AES_ANEW_HUD",player_bonus)
replace_all(hudMessage,charsmax(hudMessage),"\n","^n")

set_hudmessage(hudaNewColor[0],hudaNewColor[1],hudaNewColor[2],hudaNewxPos,hudaNewyPos,0,.holdtime = hudUpdateInterval)
ShowSyncHudMsg(id,aNewSyncObj,hudMessage)
}
}

public parse_informer_tpl(id,watchId,string[],len,maxLen,tplKey[],tplType,idLang,Float:player_exp,player_level,Float:player_reqexp,player_bonus){
static tpl[256],tmp[32],i

tpl[0] = 0
tmp[0] = 0

formatex(tpl,charsmax(tpl),"%L",idLang,tplKey)

player_exp = _:player_exp >= 0 ? player_exp + 0.005 : player_exp - 0.005
player_reqexp = _:player_reqexp >= 0 ? player_reqexp + 0.005 : player_reqexp - 0.005

for(i = 0; i < tplInfo ; i++){
if(tplBitSum[tplType] & (1 << i)){
tmp[0] = 0

switch(i){
case INF_EXP: formatex(tmp,charsmax(tmp),"%.0f",player_exp)
case INF_LEVELEXP: formatex(tmp,charsmax(tmp),"%.0f",player_reqexp)
case INF_NEEDEXP: formatex(tmp,charsmax(tmp),"%.0f",player_reqexp - player_exp)
case INF_LEVEL: formatex(tmp,charsmax(tmp),"%d",player_level + 1)
case INF_MAXLEVEL: formatex(tmp,charsmax(tmp),"%d",aesMaxLevel)
case INF_RANK: {
if(playerWatchLevel[id] != player_level || !playerLevel[id][0]){
aes_get_level_name(player_level,playerLevel[id],charsmax(playerLevel[]),idLang)
playerWatchLevel[id] = player_level
}

copy(tmp,charsmax(tmp),playerLevel[id])
}
case INF_NAME: get_user_name(watchId,tmp,charsmax(tmp))
case INF_STEAMID: get_user_authid(watchId,tmp,charsmax(tmp))
case INF_BONUS: formatex(tmp,charsmax(tmp),"%d",player_bonus)
case INF_EXF: formatex(tmp,charsmax(tmp),"%.2f",player_exp)
case INF_LXF: formatex(tmp,charsmax(tmp),"%.2f",player_reqexp)
case INF_NXF: formatex(tmp,charsmax(tmp),"%.2f",player_reqexp - player_exp)
}

if(tmp[0])
replace(tpl,charsmax(tpl),tplKeys[i],tmp)
}
}

len += formatex(string[len],maxLen-len,tpl)

return len
}

get_player_trackid(id,trackId[],trackLen){
switch(g_trackmode){
case 0: get_user_name(id,trackId,trackLen)
case 1: {
get_user_authid(id,trackId,trackLen)

if(!strcmp(trackId,"STEAM_ID_LAN") || !strcmp(trackId,"VALVE_ID_LAN") || !strcmp(trackId,"BOT")
|| !strcmp(trackId,"HLTV"))
return 0
}
case 2: get_user_ip(id,trackId,trackLen,1)
}

return 1
}
Привет всем. Ошибка такая: В информере рядом со скиллом пишет <skill>. Что и как сделать ,я уже не знаю.

Раньше был информер, в котором всё было хорошо. В итоге я хотел добавить ТОП в информер, но забыл сохранить пред. исходник и всё потерялось.
Заранее спасибо!
 
В этой теме было размещено решение! Перейти к решению.
Сообщения
670
Реакции
143
Помог
11 раз(а)
Почему ты не исправил ошибки, на которые тебе раньше указывали?

Семиклип модуль и семиклип плагин - зачем?
[ 66] unknown unknown unknown stats.amxx bad load
 
Сообщения
313
Реакции
21
Помог
7 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Mem4ik, ковырять файл .txt плагина
 
Сообщения
265
Реакции
0
Предупреждения
2
Помог
5 раз(а)
Mem4ik, Держи, только убери лишний перевод в aes.txt и оставь русский если используешь сервер на русском. Также в amxx.cfg не забудь перевести сервер на русский

AES_INFORMER0 = Ник: %s
AES_INFORMER1 = Ранг: %s
AES_INFORMER2 = Опыт: [%.0f/%.0f]\n
SKILL = Скилл: %s

AES_HUD_TPL = Опыт: [<exp>|<levelexp>]\nЗвание: <rank>\nСкилл: [<skill>]
AES_HUD_TPL_D = Опыт: [<exp>|<levelexp>]\nЗвание: <rank>\nСкилл: [<skill>]
 
Сообщения
892
Реакции
149
Помог
25 раз(а)
Mem4ik, нужно выставлять в нужную ланг ячейку.
Там есть tpl мод, нужно смотреть квар
C++:
// Режим форматирования.
aes_informer_tpl "0"
И от него отталкиваться.
C++:
// Используется, если aes_informer_tpl "0"
AES_HUD_TPL = Опыт: [<exp>|<levelexp>]\nЗвание: <rank>\nСкилл: [<skill>]
C++:
// Используется, если aes_informer_tpl "1"
AES_HUD_TPL_D = Опыт: [<exp>|<levelexp>]\nЗвание: <rank>\nСкилл: [<skill>]
 
Последнее редактирование:
Сообщения
50
Реакции
1
Помог
1 раз(а)
Mem4ik,
C++:
// Используется, если aes_informer_tpl "0"
AES_HUD_TPL = Опыт: [<exp>|<levelexp>]\nЗвание: <rank>\nСкилл: [<skill>]
C++:
// Используется, если aes_informer_tpl "1"
AES_HUD_TPL_D = Опыт: [<exp>|<levelexp>]\nЗвание: <rank>\nСкилл: [<skill>]
Насколько я знаю, то они оба работают от aes_informer_tpl "1"
23 Дек 2023
lol cek, В amxx.cfg уже стоит "ru" и всё, что ты прописал ниже, уже прописано ) Но при таких условиях, выводит: Скилл: [<skill>]Скилл: M+

1703311054316.png
 

Вложения

Сообщения
50
Реакции
1
Помог
1 раз(а)
Проблема решена. Нашёл другой исходник из форума, в нём всё работает!
 

Вложения

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

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

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