Проблема с информером

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
105
Реакции
6
Ошибка
Когда наблюдаю за игроком в спектрах, отображение [топ] игрока в информере моё(а не этого игрока)
ОС
Linux
Amx Mod X
AMX Mod X 1.9.0.5294
Билд
ReHLDS version: 3.12.0.780-dev
ReGamedll
ReGameDLL version: 5.21.0.556-dev
Версия Metamod
Metamod-r v1.3.0.131, API (5:13)
Metamod-r build: 18:51:02 Jul 11 2022
Список метамодулей
[ 1] Reunion       RUN   -    reunion.so                v0.1.0.137       ini  Start Never
[ 2] AMX Mod X RUN - amxmodx.so v1.9.0.5294 ini Start ANY
[ 3] ReAuthCheck RUN - reauthcheck.so v0.1.6 ini Start Never
[ 4] ReSemiclip RUN - resemiclip.so v2.3.9 ini ANY
[ 5] ReSRDetector RUN - resrdetector.so v0.1.0 ini ANY
[ 6] Revoice RUN - revoice.so v0.1.0.34 ini Start Never
[ 7] CStrike RUN - cstrike_amxx_i386.so v1.9.0.5294 pl2 ANY
[ 8] CSX RUN - csx_amxx_i386.so v1.9.0.5294 pl2 ANY
[ 9] ReAPI RUN - reapi_amxx_i386.so v5.22.0.254-dev pl2 ANY Never
[10] FakeMeta RUN - fakemeta_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
[11] MySQL RUN - mysql_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
[12] Ham Sandwich RUN - hamsandwich_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
[13] Fun RUN - fun_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
[14] Engine RUN - engine_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
Список плагинов
[  1] Admin Loader            3.5         neygomon          admin_loader.am  running  
[ 2] CSStatsX SQL 0.7.4+2 serfreeman1337 aes_csstatsx_sq running
[ 3] Map Manager: Core 3.1.5 Mistrick map_manager_cor running
[ 4] Map Manager: Nominatio 0.2.1 Mistrick map_manager_nom running
[ 5] Map Manager: Scheduler 0.1.10 Mistrick map_manager_sch running
[ 6] Map Manager: Rtv 0.1.1 Mistrick map_manager_rtv running
[ 7] Auto VIP [ Steаm] 1.1 Jack Daniel`s auto_steam_vip. running
[ 8] Admin Chat 1.9.0.5294 AMXX Dev Team adminchat.amxx running
[ 9] Admin Commands 1.9.0.5294 AMXX Dev Team admincmd.amxx running
[ 10] Anti Flood 1.9.0.5294 AMXX Dev Team antiflood.amxx running
[ 11] Commands Menu 1.9.0.5294 AMXX Dev Team cmdmenu.amxx running
[ 12] Info. Messages 1.9.0.5294 AMXX Dev Team imessage.amxx running
[ 13] Maps Menu 1.9.0.5294 AMXX Dev Team mapsmenu.amxx running
[ 14] NextMap 1.9.0.5294 AMXX Dev Team nextmap.amxx running
[ 15] Players Menu 1.9.0.5294 AMXX Dev Team plmenu.amxx running
[ 16] Plugin Menu 1.9.0.5294 AMXX Dev Team pluginmenu.amxx running
[ 17] Restrict Weapons 1.9.0.5294 AMXX Dev Team restmenu.amxx running
[ 18] TimeLeft 1.9.0.5294 AMXX Dev Team timeleft.amxx running
[ 19] Scrolling Message 1.9.0.5263 AMXX Dev Team scrollmsg.amxx running
[ 20] Admin Votes 1.9.0.5294 AMXX Dev Team adminvote.amxx running
[ 21] CS Misc. Stats 1.9.0.5294 AMXX Dev Team miscstats.amxx running
[ 22] CS Stats Logging 1.9.0.5294 AMXX Dev Team stats_logging.a running
[ 23] Stats Configuration 1.9.0.5294 AMXX Dev Team statscfg.amxx running
[ 24] FreshBans 1.4.7b kanagava fresh_bans.amxx running
[ 25] Knife kill 1.0.1 MurLemur knife_kill_soun running
[ 26] Menu 1.0 WaT_1 menu.amxx running
[ 27] amxmodmenu_new 1.12 Russian MaFi9 menu2.amxx running
[ 28] amxmodmenu_new 1.12 Russian MaFi9 amxmodmenu.amxx running
[ 29] New Plug-In 1.0 Kpoxa premium_menu.am running
[ 30] Weapon Icon 1.2 hoboman313/Zenix weapon_icon.amx running
[ 31] GameName Changer 1.0.0 Nordic Warrior GameNameChanger running
[ 32] Reset Score 1.0 Silenttt resetscore.amxx running
[ 33] say /me and /hp 0.3 neygomon say_me_and_hp.a running
[ 34] Teleport Menu 1.9.0.5235 AMXX Dev Team telemenu.amxx running
[ 35] Night VIPs 1.1.1 szawesome night_vips.amxx running
[ 36] Connect Info 1.0 Hypa_[KZ] connect_info.am running
[ 37] Bullet Damage 0.0.1 ConnorMcLeod damage.amxx running
[ 38] [190] SlayLosers RBS 20.06.06 SKAJIbnEJIb & d3 slaylosers_rbs. running
[ 39] No Team Flash 0.03 neygomon no_team_flash.a running
[ 40] Screen Shot Menu 1.2 Bonaqua | DimaS ss_menu.amxx running
[ 41] Killa HP 1.6 jas0n killa_hp.amxx running
[ 42] Weapon Use Pickup 1.4 fl0wer & Purpose weapon_use_pick running
[ 43] unknown unknown unknown show_changer_na running
[ 44] Admin-Check 5.5 p1Mp & S1n[L]Ss Admin-Check.amx running
[ 45] Lite VoteBan 1.4 neygomon lite_voteban.am running
[ 46] [ReAPI] Refill Ammo on 0.0.2 steelzzz refill_ammo_on_ running
[ 47] SF Warn Menu 0.1.3 serfreeman1337 sf_admin_warns. running
[ 48] Anti steamid changer 1.0.4 m4ts anti_steamidcha running
[ 49] Lite Translit 2.8 neygomon lite_translit_c running
[ 50] [FB] CSBANS Tools 0.0.2 uMk0 fb_csbans_tools running
[ 51] fb_forwards 0.1.4 Kanagava & Realu fb_forwards.amx running
[ 52] HUD Timeleft 1.0.4 BiZaJe hud_timeleft.am running
[ 53] Advanced Ultimate Weap 0.1.0b steelzzz auw.amxx running
[ 54] Weapon Storage 1.1 KinSprite weaponstorage.a running
[ 55] [AUW] Weapons On Maps 0.0.1 Albertio auw_weapons_on_ running
[ 56] Hud_info 2.1 h1k3 hud_info.amxx running
[ 57] Killer ScreenFade 0.0.5 Vaqtincha reapi_killer_sc running
[ 58] Parachute Lite [ReAPI] 11.0 Leo_[BH] parachute_lite. running
[ 59] Announcer Killstreak 2.1 Jumper & mx?! announcer_kills running
[ 60] Mode 2x2 2.5re s1lent mode.amxx running
[ 61] Ban Sound: Fresh Bans 1.0 Leo_[BH] ban_sound_fresh running
[ 62] Give Menu 1.0 ko2 new_give.amxx running
[ 63] Simple HUD Adverts 1.0 Oli Desu simple_hud_adve running
[ 64] Auto Demo Recorder 2.3 F@nt0M auto_demo_recor running
[ 65] Block 'Fire in the hol 0.1 Safety1st block_fire_in_t running
[ 66] Erotic Bomb 0.4 8dp & Spection erotic_bomb.amx running
[ 67] Grenade Trail 1.0 Jim grenade_trail.a running
[ 68] No Players Map 1.03 neygomon no_players_map. stopped
[ 69] [ReAPI] Healthnade 0.0.10f DEV-CS.RU Commun reapi_healthnad running
[ 70] ACS injection med-kit 1.0.6.2 DEV-CS.RU acs_injection.a running
[ 71] Custom Smoke 1.06 bionext custom_smoke.am running
[ 72] Team Select 1.6.0 F@nt0M teamselect.amxx running
[ 73] Style C4 Timer 3.1 OciXCrom style_c4_timer. running
[ 74] BHOP BLOCK 1.6 Leo_[BH] bhop_block.amxx running
[ 75] Frags Counter 1.0 CHEL74 frags_counter.a running
[ 76] Models Replacement 0.0.2+fix ConnorMcLeod | V models_replacem running
[ 77] [ReAPI] Best player of 1.1.2 F@nt0M best_player_of_ running
[ 78] Time for info 1.0 neugomon time_for_info.a running
[ 79] Advanced Gag 1.9.0 neygomon amx_gag.amxx running
[ 80] AES: StatsX Info Rank 0.1 serfreeman1337 aes_statsx_info running
[ 81] Rcon Shop 0.3b b0t. RconShop.amxx running
[ 82] [GM] VIP Test 1.2.0 [GM] NWC vip_test.amxx running
[ 83] [AUW] ANew Func 1.0.0 ArKaNeMaN AUW-ANewFunc.am running
[ 84] ExItem: MegaGrenade 1.5 mx?! exitem_megagren running
[ 85] Advanced Experience Sy 0.5.9 [REA serfreeman1337/s aes_main.amxx running
[ 86] AES: StatsX 0.5.9 [REA serfreeman1337/s aes_statsx.amxx running
[ 87] AES: CStrike Addon 0.5.9 [REA serfreeman1337/s aes_exp_cstrike running
[ 88] AES: Informer 0.5.9 [REA serfreeman1337/s aes_informer.am running
[ 89] AES: Admin Tools 0.5.9 [REA serfreeman1337/s aes_exp_editor. running
[ 90] AES: Bonus System 0.5.9 Vega serfreeman1337/s aes_bonus_syste running
[ 91] AES: Bonus CSTRIKE 0.5.9.1 [R serfreeman1337/s aes_bonus_cstri running
[ 92] [ReVIP] System Core 2.5 free pUzzlik re_vip_core.amx running
[ 93] [ReVIP] Menu 2.5 free pUzzlik re_vip_menu.amx running
[ 94] [ReVIP] Tab Info 2.5 free pUzzlik re_vip_tab_info running
[ 95] [ReVIP] Add HP 2.5 free pUzzlik re_vip_hp_add.a running
[ 96] Map Manager: BlockList 0.0.4 Mistrick map_manager_blo running
[ 97] Map Manager: Online so 0.0.4 Mistrick map_manager_onl running
[ 98] Map Manager: Effects 0.1.1 Mistrick map_manager_eff running
[ 99] Map Manager: Informer 0.0.5 Mistrick map_manager_inf running
[100] Map Manager: Sounds 0.0.2 Mistrick map_manager_sou running
[101] Revive Teammates: Core 1.1.0 ufame & Albertio rt_core.amxx running
[102] Revive Teammates: Plan 1.1.0 ufame & Albertio rt_planting.amx running
[103] Revive Teammates: Rest 1.1.0 ufame & Albertio rt_restrictions running
[104] Revive Teammates: Time 1.1.0 ufame & Albertio rt_timer.amxx running
[105] Revive Teammates: Soun 1.1.0 ufame & Albertio rt_sounds.amxx running
[106] Revive Teammates: Bonu 1.1.0 ufame & Albertio rt_bonus.amxx running
106 plugins, 105 running
Автор плагина
serfreeman1337/sonyx
Версия плагина
0.5.9 [REAPI]
Исходный код
/*
Advanced Experience System
by serfreeman1337 http://gf.hldm.org/
*/

/*
HUD Informer
*/

#include <amxmodx>
#include <amxmisc>
#include <reapi>

#define CSSTATSX_SQL // расскомментируйте для поддержки CSstatsX SQL (http://1337.uz/csstatsx-sql/)


#include <aes_v>
#if defined CSSTATSX_SQL
#include <csstatsx_sql>

#endif

#define PLUGIN "AES: Informer"
#define VERSION "0.5.9 [REAPI]"
#define AUTHOR "serfreeman1337/sonyx"
#define LASTUPDATE "12, March (03), 2018"

#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

#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[MAX_PLAYERS + 1][AES_MAX_LEVEL_LENGTH],playerWatchLevel[MAX_PLAYERS + 1];

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

/* - FILE STORAGE - */

new Trie:g_DisabledInformer;

#if AMXX_VERSION_NUM < 183
new Array:g_ADisabledInformer;
#endif

#if defined CSSTATSX_SQL
new const g_skill_letters[][] = {
"L-",
"L",
"L+",
"M-",
"M",
"M+",
"H-",
"H",
"H+",
"P-",
"P",
"P+",
"G"
}

new g_cvar_skill;
new Float:g_skill_opt[sizeof g_skill_letters];
#endif

enum _:tplInfo {
INF_EXP,
INF_LEVELEXP,
INF_NEEDEXP,
INF_LEVEL,
INF_MAXLEVEL,
INF_RANK,
INF_NAME,
INF_STEAMID,
INF_BONUS,
#if defined CSSTATSX_SQL
INF_SKILL,
INF_TOP_ME,
INF_TOP,
#endif

INF_EXF,
INF_LXF,
INF_NXF
}

new const tplKeys[tplInfo][] = {
"<exp>",
"<levelexp>",
"<needexp>",
"<level>",
"<maxlevel>",
"<rank>",
"<name>",
"<steamid>",
"<bonus>",
#if defined CSSTATSX_SQL
"<skill>",
"<top_me>",
"<top>",
#endif

"<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");
#if defined CSSTATSX_SQL
g_cvar_skill = register_cvar("aes_statsx_skill","60.0 75.0 85.0 100.0 115.0 130.0 140.0 150.0 165.0 180.0 195.0 210.0");
#endif

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

public plugin_cfg()
{
#if defined CSSTATSX_SQL
new levelString[512], stPos, ePos, rawPoint[20], cnt;
get_pcvar_string(g_cvar_skill, levelString, charsmax(levelString));

// парсер значений для скилла
do {
ePos = strfind(levelString[stPos], " ");

formatex(rawPoint, ePos, levelString[stPos]);
g_skill_opt[cnt] = str_to_float(rawPoint);

stPos += ePos + 1;

cnt++;

// narkoman wole suka
if(cnt > charsmax(g_skill_letters))
break;
} while (ePos != -1)
#endif
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[AES_MAX_LEVEL_LENGTH];

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 = get_entvar(id, var_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(255);
hudInfoColor[1] = random(255);
hudInfoColor[2] = random(255);
}

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

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[AES_MAX_LEVEL_LENGTH],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;

#if defined CSSTATSX_SQL
new stats[8], bodyhits[8];
new iRank = get_user_stats_sql(id, stats, bodyhits);

new iNumRank = get_statsnum_sql();
#endif

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:
{
if(player_reqexp >= 0)
formatex(tmp,charsmax(tmp),"%.0f",player_reqexp);
else
formatex(tmp,charsmax(tmp),"MAX");
}
case INF_NEEDEXP:
{
if(player_reqexp >= 0)
formatex(tmp,charsmax(tmp),"%.0f",player_reqexp - player_exp);
else
formatex(tmp,charsmax(tmp),"-");
}
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);
#if defined CSSTATSX_SQL
case INF_SKILL: statsx_get_user_skill_name(watchId, tmp, charsmax(tmp));
case INF_TOP_ME: formatex(tmp,charsmax(tmp),"%d",iRank)
case INF_TOP: formatex(tmp,charsmax(tmp),"%d", iNumRank)
#endif
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;
}
#if defined CSSTATSX_SQL
statsx_get_user_skill_name(id, name[], len)
{
new tmp[10],Float:skill;
get_user_skill(id, skill);

new skill_id = statsx_get_skill_id(skill);
formatex(tmp,charsmax(tmp),"%s %.f",g_skill_letters[skill_id], skill);
copy(name, len, tmp);
}

statsx_get_skill_id(Float:skill)
{
for(new i = 0; i < sizeof(g_skill_opt); i++)
{
if(skill < g_skill_opt[i])
return i;
}
return charsmax(g_skill_opt);
}
#endif
Решил добавить ТОП в информер, всё работает когда ты жив, но когда я наблюдаю за другим игроком у меня показывается мой топ, не могу понять в чём дело.
 
В этой теме было размещено решение! Перейти к решению.
Сообщения
365
Реакции
9
Помог
5 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Dau84, ланг файл приложи как прописывал
 
Сообщения
105
Реакции
6
Dau84, ланг файл приложи как прописывал
20 Июл 2023
[ru]
LVL_1 = Плесень
LVL_2 = Курага
LVL_3 = Мясо
LVL_4 = Уже Не Мясо
LVL_5 = Малолетка
LVL_6 = Школьник
LVL_7 = Бандит
LVL_8 = Авторитет
LVL_9 = Нагибатор
LVL_10 = Ветеран
LVL_11 = Ученик Бати
LVL_12 = Батя
LVL_13 = Мастер
LVL_14 = Тащер
LVL_15 = Геймер
LVL_16 = Задрот
LVL_17 = Скиловый Малый
LVL_18 = Про Игрок
LVL_19 = Читер
LVL_20 = Элита

AES_TAG = ^1[^4Сервер^1]
AES_TAG_MENU = \r[\yAES\r]\w
AES_TAG_CON = [AES]

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

AES_HUD_TPL = Звания : <rank> | Уровень: [<level>/<maxlevel>] \nОпыт : [<exp>/<levelexp>] (+<needexp>)\nTOP: [<top_me> / <top>] | Скилл: [<skill>]\nБонусы: [<bonus>] | Команда: /anew\nМеню сервера - N\nПоднять тиммейта - E
AES_HUD_TPL_D = Звания : <rank> | Уровень: [<level>/<maxlevel>] \nОпыт : [<exp>/<levelexp>] (+<needexp>)\nTOP: [<top_me> / <top>] | Скилл: [<skill>]\nБонусы: [<bonus>] | Команда: /anew\nГруппа сервера: vk.com/localbelarus

AES_NEWLEVEL_TPL = Поздравляем, <name>, вы достигли <level>ого уровня - Следующий уровень: <levelexp> XP - Нужно: <needexp> XP
AES_NEWLEVEL_ALL_TPL = <name> достиг <level>ого уровня [ <rank> ]

AES_INFORMER_FAIL = Статистика не учитывается
AES_PLAYER_XP_MAX = Достигнут максимум развития
AES_PLAYER_LEVEL_MAX = ^4%s достиг максимального уровня!

AES_INFORMER_ENABLED = HUD сообщение с текущим званием ^3Включено^1.
AES_INFORMER_DISABLED = HUD сообщение с текущим званием ^3Выключено^1.

AES_NEWLEVEL_ALL = Солдат ^3%s^1 достиг ранга ^4%s^1. Поздравляем!
AES_NEWLEVEL_ID = Вы заслужили повышение - ^4%s^1. Поздравляем!

AES_BONUS_MENU = Что вы выберите?\n\wУ вас \r<p>\w бонусов
AES_BONUS_M4A1 = M4A1 \y+патроны
AES_BONUS_AK47 = AK47 \y+патроны
AES_BONUS_AWP = AWP \y+патроны
AES_BONUS_10000M = 10000\r$
AES_BONUS_200HP = 200\rHP
AES_BONUS_200CP = 200\rCP
AES_BONUS_MEGAGRENADE = ULTRA-HE |\rx2 damage\w|
AES_BONUS_MEGADEAGLE = МегаДигл \r(\y200%% \wурона\r)

AES_BONUS_NADE = Граната
AES_BONUS_FLASHBANG = Флешка
AES_BONUS_SMOKENADE = Смок
AES_BONUS_DEFKIT = Дефьюз
AES_BONUS_NV = Найтвижен
AES_BONUS_ARMOR = Броня
AES_BOUNS_HP = Хп

AES_ANEW_INFO1 = \w[\r%d бон.\w]
AES_ANEW_INFO2 = \w[\r%.2f оп.\w]
AES_ANEW_INFO3 = \w[\r%d уров.\w]
AES_ANEW_INFO4 = \w[\r%d рнд.\w]
AES_ANEW_INFO5 = \w[\rВремя\w]
AES_ANEW_INFO6 = \w[\rНет флага\w]
AES_ANEW_INFO7 = \w[\rЗапрешенный флаг\w]
AES_ANEW_INFO8 = Ваши бонусы:
AES_ANEW_INFO9 = и %d других.

AES_BONUS_GET_MEGADEAGLE = Ваш ^3дигл^1 наносит в ^42.0^1 больше урона!
AES_BONUS_GET_MEGAGRENADE = Ваша ^3граната^1 наносит ^4x2^1 урона!

AES_ANEW_GAIN = Вы ^3заработали^1 ^4%d^1 бонус очко(в)!
AES_ANEW_HUD = У вас %d бонус очков\nВведите /anew в чат

AES_ANEW_DISABLE = ^3Система бонусов отключена!
AES_ANEW_BLOCKED = ^3Система бонусов на этой карте отключена!
AES_ANEW_ROUND = ^3Доступно с ^4%d^3 раунда!
AES_ANEW_NOTENG = ^3У вас недостаточно бонус очков!
AES_ANEW_NOT = ^3У вас нет бонус очков!
AES_ANEW_ALIVE = ^3Только для живых игроков!
AES_ANEW_BUYTIME = %d секунд вышло. Покупка запрещена!
AES_ANEW_GIVE = Вы взяли ^3%s^1 за ^4%d^1 бонусов.
AES_ANEW_CALL_PROBLEM = ^3Ошибка:^1 Что-то не так!

AES_BONUS_GIVE_FLAGS = Купить VIP (3 дня)
AES_BONUS_GIVE_FLAGS2 = Купить Premium (1 день)

[en]
LVL_1 = Плесень
LVL_2 = Курага
LVL_3 = Мясо
LVL_4 = Уже Не Мясо
LVL_5 = Малолетка
LVL_6 = Школьник
LVL_7 = Бандит
LVL_8 = Авторитет
LVL_9 = Нагибатор
LVL_10 = Ветеран
LVL_11 = Ученик Бати
LVL_12 = Батя
LVL_13 = Мастер
LVL_14 = Тащер
LVL_15 = Геймер
LVL_16 = Задрот
LVL_17 = Скиловый Малый
LVL_18 = Про Игрок
LVL_19 = Читер
LVL_20 = Элита

AES_TAG = ^1[^4Сервер^1]
AES_TAG_MENU = \r[\yAES\r]\w
AES_TAG_CON = [AES]

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

AES_HUD_TPL = Звания : <rank> | Уровень: [<level>/<maxlevel>] \nОпыт : [<exp>/<levelexp>] (+<needexp>)\nTOP: [<top_me> / <top>] | Скилл: [<skill>]\nБонусы: [<bonus>] | Команда: /anew\nМеню сервера - N\nПоднять тиммейта - E
AES_HUD_TPL_D = Звания : <rank> | Уровень: [<level>/<maxlevel>] \nОпыт : [<exp>/<levelexp>] (+<needexp>)\nTOP: [<top_me> / <top>] | Скилл: [<skill>]\nБонусы: [<bonus>] | Команда: /anew\nГруппа сервера: vk.com/localbelarus

AES_NEWLEVEL_TPL = Поздравляем, <name>, вы достигли <level>ого уровня - Следующий уровень: <levelexp> XP - Нужно: <needexp> XP
AES_NEWLEVEL_ALL_TPL = <name> достиг <level>ого уровня [ <rank> ]

AES_INFORMER_FAIL = Статистика не учитывается
AES_PLAYER_XP_MAX = Достигнут максимум развития
AES_PLAYER_LEVEL_MAX = ^4%s достиг максимального уровня!

AES_INFORMER_ENABLED = HUD сообщение с текущим званием ^3Включено^1.
AES_INFORMER_DISABLED = HUD сообщение с текущим званием ^3Выключено^1.

AES_NEWLEVEL_ALL = Солдат ^3%s^1 достиг ранга ^4%s^1. Поздравляем!
AES_NEWLEVEL_ID = Вы заслужили повышение - ^4%s^1. Поздравляем!

AES_BONUS_MENU = Что вы выберите?\n\wУ вас \r<p>\w бонусов
AES_BONUS_M4A1 = M4A1 \y+патроны
AES_BONUS_AK47 = AK47 \y+патроны
AES_BONUS_AWP = AWP \y+патроны
AES_BONUS_10000M = 10000\r$
AES_BONUS_200HP = 200\rHP
AES_BONUS_200CP = 200\rCP
AES_BONUS_MEGAGRENADE = ULTRA-HE |\rx2 damage\w|
AES_BONUS_MEGADEAGLE = МегаДигл \r(\y200%% \wурона\r)

AES_BONUS_NADE = Граната
AES_BONUS_FLASHBANG = Флешка
AES_BONUS_SMOKENADE = Смок
AES_BONUS_DEFKIT = Дефьюз
AES_BONUS_NV = Найтвижен
AES_BONUS_ARMOR = Броня
AES_BOUNS_HP = Хп

AES_ANEW_INFO1 = \w[\r%d бон.\w]
AES_ANEW_INFO2 = \w[\r%.2f оп.\w]
AES_ANEW_INFO3 = \w[\r%d уров.\w]
AES_ANEW_INFO4 = \w[\r%d рнд.\w]
AES_ANEW_INFO5 = \w[\rВремя\w]
AES_ANEW_INFO6 = \w[\rНет флага\w]
AES_ANEW_INFO7 = \w[\rЗапрешенный флаг\w]
AES_ANEW_INFO8 = Ваши бонусы:
AES_ANEW_INFO9 = и %d других.

AES_BONUS_GET_MEGADEAGLE = Ваш ^3дигл^1 наносит в ^42.0^1 больше урона!
AES_BONUS_GET_MEGAGRENADE = Ваша ^3граната^1 наносит ^4x2^1 урона!

AES_ANEW_GAIN = Вы ^3заработали^1 ^4%d^1 бонус очко(в)!
AES_ANEW_HUD = У вас %d бонус очков\nВведите /anew в чат

AES_ANEW_DISABLE = ^3Система бонусов отключена!
AES_ANEW_BLOCKED = ^3Система бонусов на этой карте отключена!
AES_ANEW_ROUND = ^3Доступно с ^4%d^3 раунда!
AES_ANEW_NOTENG = ^3У вас недостаточно бонус очков!
AES_ANEW_NOT = ^3У вас нет бонус очков!
AES_ANEW_ALIVE = ^3Только для живых игроков!
AES_ANEW_BUYTIME = %d секунд вышло. Покупка запрещена!
AES_ANEW_GIVE = Вы взяли ^3%s^1 за ^4%d^1 бонусов.
AES_ANEW_CALL_PROBLEM = ^3Ошибка:^1 Что-то не так!


[ua]
LVL_1 = Плесень
LVL_2 = Курага
LVL_3 = Мясо
LVL_4 = Уже Не Мясо
LVL_5 = Малолетка
LVL_6 = Школьник
LVL_7 = Бандит
LVL_8 = Авторитет
LVL_9 = Нагибатор
LVL_10 = Ветеран
LVL_11 = Ученик Бати
LVL_12 = Батя
LVL_13 = Мастер
LVL_14 = Тащер
LVL_15 = Геймер
LVL_16 = Задрот
LVL_17 = Скиловый Малый
LVL_18 = Про Игрок
LVL_19 = Читер
LVL_20 = Элита

AES_TAG = ^1[^4Сервер^1]
AES_TAG_MENU = \r[\yAES\r]\w
AES_TAG_CON = [AES]

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

AES_HUD_TPL = Звания : <rank> | Уровень: [<level>/<maxlevel>] \nОпыт : [<exp>/<levelexp>] (+<needexp>)\nTOP: [<top_me> / <top>] | Скилл: [<skill>]\nБонусы: [<bonus>] | Команда: /anew\nМеню сервера - N\nПоднять тиммейта - E
AES_HUD_TPL_D = Звания : <rank> | Уровень: [<level>/<maxlevel>] \nОпыт : [<exp>/<levelexp>] (+<needexp>)\nTOP: [<top_me> / <top>] | Скилл: [<skill>]\nБонусы: [<bonus>] | Команда: /anew\nГруппа сервера: vk.com/localbelarus

AES_NEWLEVEL_TPL = Поздравляем, <name>, вы достигли <level>ого уровня - Следующий уровень: <levelexp> XP - Нужно: <needexp> XP
AES_NEWLEVEL_ALL_TPL = <name> достиг <level>ого уровня [ <rank> ]

AES_INFORMER_FAIL = Статистика не учитывается
AES_PLAYER_XP_MAX = Достигнут максимум развития
AES_PLAYER_LEVEL_MAX = ^4%s достиг максимального уровня!

AES_INFORMER_ENABLED = HUD сообщение с текущим званием ^3Включено^1.
AES_INFORMER_DISABLED = HUD сообщение с текущим званием ^3Выключено^1.

AES_NEWLEVEL_ALL = Солдат ^3%s^1 достиг ранга ^4%s^1. Поздравляем!
AES_NEWLEVEL_ID = Вы заслужили повышение - ^4%s^1. Поздравляем!

AES_BONUS_MENU = Что вы выберите?\n\wУ вас \r<p>\w бонусов
AES_BONUS_M4A1 = M4A1 \y+патроны
AES_BONUS_AK47 = AK47 \y+патроны
AES_BONUS_AWP = AWP \y+патроны
AES_BONUS_10000M = 10000\r$
AES_BONUS_200HP = 200\rHP
AES_BONUS_200CP = 200\rCP
AES_BONUS_MEGAGRENADE = ULTRA-HE |\rx2 damage\w|
AES_BONUS_MEGADEAGLE = МегаДигл \r(\y200%% \wурона\r)

AES_BONUS_NADE = Граната
AES_BONUS_FLASHBANG = Флешка
AES_BONUS_SMOKENADE = Смок
AES_BONUS_DEFKIT = Дефьюз
AES_BONUS_NV = Найтвижен
AES_BONUS_ARMOR = Броня
AES_BOUNS_HP = Хп

AES_ANEW_INFO1 = \w[\r%d бон.\w]
AES_ANEW_INFO2 = \w[\r%.2f оп.\w]
AES_ANEW_INFO3 = \w[\r%d уров.\w]
AES_ANEW_INFO4 = \w[\r%d рнд.\w]
AES_ANEW_INFO5 = \w[\rВремя\w]
AES_ANEW_INFO6 = \w[\rНет флага\w]
AES_ANEW_INFO7 = \w[\rЗапрешенный флаг\w]
AES_ANEW_INFO8 = Ваши бонусы:
AES_ANEW_INFO9 = и %d других.

AES_BONUS_GET_MEGADEAGLE = Ваш ^3дигл^1 наносит в ^42.0^1 больше урона!
AES_BONUS_GET_MEGAGRENADE = Ваша ^3граната^1 наносит ^4x2^1 урона!

AES_ANEW_GAIN = Вы ^3заработали^1 ^4%d^1 бонус очко(в)!
AES_ANEW_HUD = У вас %d бонус очков\nВведите /anew в чат

AES_ANEW_DISABLE = ^3Система бонусов отключена!
AES_ANEW_BLOCKED = ^3Система бонусов на этой карте отключена!
AES_ANEW_ROUND = ^3Доступно с ^4%d^3 раунда!
AES_ANEW_NOTENG = ^3У вас недостаточно бонус очков!
AES_ANEW_NOT = ^3У вас нет бонус очков!
AES_ANEW_ALIVE = ^3Только для живых игроков!
AES_ANEW_BUYTIME = %d секунд вышло. Покупка запрещена!
AES_ANEW_GIVE = Вы взяли ^3%s^1 за ^4%d^1 бонусов.
AES_ANEW_CALL_PROBLEM = ^3Ошибка:^1 Что-то не так!
 

Вложения

  • 12.3 KB Просмотры: 82
Сообщения
3,593
Реакции
1,576
Помог
141 раз(а)
Проверьте квар aes_hud_update
 

Garey

ninjaCow
Сообщения
441
Реакции
1,096
Помог
11 раз(а)
get_user_stats_sql индекс watchId похоже надо использовать а не id
 
Сообщения
105
Реакции
6
get_user_stats_sql индекс watchId похоже надо использовать а не id
Спасибо большое, помогло!

Ребят кто хочет можете пользоваться в информер добавлен вывод ТОП игрока.
В aes.txt: TOP: [<top_me> / <top>]
20 Июл 2023
get_user_stats_sql индекс watchId похоже надо использовать а не id
Если можешь, то объясни пожалуйста почему именно так?
 

Вложения

Сообщения
3,593
Реакции
1,576
Помог
141 раз(а)
Dau84, потому что watchId это тот, за кем наблюдаем.
 
Сообщения
105
Реакции
6
Nordic Warrior, Не знал(хотя очень логично), буду иметь ввиду, спасибо)
 
Статус
В этой теме нельзя размещать новые ответы.

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

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