Проблема с кастомным меню Round Balancer 1.1

Сообщения
391
Реакции
106
Помог
2 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Ошибка
Не корректно работает меню
#define REPLACED_MENU // Кастомное меню с 2-мя пунктами.
ОС
Linux
Amx Mod X
1.9.0.5263
Билд
3.7.0.695
ReGamedll
5.14.0.453
Версия Metamod
Metamod-r v1.3.0.128
Список метамодулей
[ 1] SafeNameAndChat      RUN   -    SafeNameAndChat.so          v1.1               ini   ANY  
[ 2] Reunion RUN - reunion_mm_i386_92.so v0.1.0.92c ini Start Never
[ 3] WHBlocker RUN - whblocker_mm_i386.so v1.5.696 ini ANY
[ 4] VoiceTranscoder RUN - VoiceTranscoder.so v2017RC5 ini ANY
[ 5] ReSemiclip RUN - resemiclip.so v2.3.9 ini ANY
[ 6] Rechecker RUN - rechecker_mm_i386.so v2.5 ini ANY
[ 7] ReAuthCheck RUN - reauthcheck.so v0.1.6 ini Start Never
[ 8] ReSRDetector RUN - resrdetector_mm_i386.so v0.1.0 ini ANY
[ 9] AMX Mod X RUN - amxmodx_mm_i386.so v1.9.0.5263 ini Start ANY
[10] Yet Another POD-Bot RUN - yapb.so v2.10 ini Chlvl ANY
[11] MySQL RUN - mysql_amxx_i386.so v1.9.0.5259 pl9 ANY ANY
[12] ReAPI RUN - reapi_amxx_i386.so v5.12.0.192-dev pl9 ANY Never
[13] ReAimDetector RUN - reaimdetector_amxx_i386.so v0.2.2 pl9 ANY Never
[14] FakeMeta RUN - fakemeta_amxx_i386.so v1.9.0.5259 pl9 ANY ANY
[15] Ham Sandwich RUN - hamsandwich_amxx_i386.so v1.9.0.5259 pl9 ANY ANY
[16] Engine RUN - engine_amxx_i386.so v1.9.0.5259 pl9 ANY ANY
[17] AuthEmu RUN - authemu_amxx_i386.so v4.2.12.311-dev+m pl9 ANY Never
[18] CStrike RUN - cstrike_amxx_i386.so v1.9.0.5259 pl9 ANY ANY
[19] CSX RUN - csx_amxx_i386.so v1.9.0.5259 pl9 ANY ANY
[20] Fun RUN - fun_amxx_i386.so v1.9.0.5259 pl9 ANY ANY
[21] GeoIP RUN - geoip_amxx_i386.so v1.9.0.5259 pl9 ANY ANY
21 plugins, 21 running
Список плагинов
[  1] KnifeDuel               v08.02.2020  81x08             knifeduel_impro  debug    
[ 2] CSStatsX SQL v0.7.4+2 serfreeman1337 csstatsx_sql.am debug
[ 3] Advanced Experience Sy v0.5.9 [REA serfreeman1337/s aes_main.amxx running
[ 4] DevMsCore v1.2 gyxoBka devms_core.amxx running
[ 5] DevMs CSSTATS v0.1.1 AlexandrFiner devcsru.amxx running
[ 6] AuthEmu API v1.0 Dev-MS Team authemu.amxx debug
[ 7] Admin Loader v3.5 neygomon admin_loader.am running
[ 8] DevMs PlayerMenu v1.0 gyxoBka DevMs_PlayerMen running
[ 9] DevMs BlackList v1.5.1 gyxoBka DevMs_BlackList debug
[ 10] [190] Ultimate Weapons v19.11.29 SKAJIbnEJIb ultimate_weapon running
[ 11] [190] Replace Weapons v19.12.09 SKAJIbnEJIb replace_weapons running
[ 12] [GS] Models Replacemen v1.14041 AlexandrFiner gs_usermodels.a running
[ 13] [ReAPI] Custom Models v1.6 neugomon custom_models_f running
[ 14] AES: StatsX v0.5+1 serfreeman1337 aes_statsx_cstr running
[ 15] Ultimate Chats Control v5.2(b) neygomon ucc.amxx debug
[ 16] UCC Addon: VoteGAG v1.2 neygomon ucc_votegag.amx running
[ 17] [190] NewYear RBS v19.12.23 SKAJIbnEJIb newyear_rbs.amx running
[ 18] Time for info v1.0 neugomon time_for_info.a running
[ 19] Knife WarnUP v2.0 Alik & Inline & knife_warnupAli running
[ 20] Advanced Client Checke v0.3.7 Mistrick cmdchecker.amxx debug
[ 21] ReAimDetector API v0.2.2 ReHLDS Team reaimdetector.a debug
[ 22] FreshBans v1.4.0b kanagava fresh_bans_140_ running
[ 23] [183] Screen Player v19.11.04 SKAJIbnEJIb screen_player.a running
[ 24] [CS] Dead Alltalk v0.1 Allied dead_alltalk.am running
[ 25] Check Players Online v1.0 breakt cpo2.amxx running
[ 26] [190] VIP RBS v19.12.12 SKAJIbnEJIb vip_rbs.amxx running
[ 27] Vampire v1.0 AlexandrFiner vampire_pro.amx running
[ 28] Maps Menu v1.4.1 neugomon mapsmenu.amxx running
[ 29] Map Manager v2.5.61 Mistrick mapmanager.amxx running
[ 30] menu_votemap_admin v1.0 stalin_alex menu_mapm_start running
[ 31] [183] Blind RBS v19.11.04 SKAJIbnEJIb blind_rbs.amxx running
[ 32] TimeProjector v0.1 ST4life timeprojector.a running
[ 33] LBZ v1.0 ill lbz2.amxx debug
[ 34] Admin Chat v1.8.3-dev+ AMXX Dev Team adminchat.amxx running
[ 35] Admin Commands v1.8.3-Re AMXX Dev Team admincmd.amxx running
[ 36] CS Misc. Stats v1.9.0.5221 AMXX Dev Team miscstats.amxx running
[ 37] CSXSQL: Onlinetime Awa v0.2 serfreeman1337 csstatsx_playra running
[ 38] CSXSQL: Onlinetime Awa v0.2 serfreeman1337 csstatsx_playti running
[ 39] Lite Kill Assist v1.17 neygomon lite_kill_assis running
[ 40] Say me and Say hp v1.4 neygomon sayme_reapi.amx running
[ 41] Commands Menu v1.8.3-Re AMXX Dev Team cmdmenu.amxx running
[ 42] Menus Front-End v1.5 untest neugomon menufront_end.a running
[ 43] Players Menu v1.7 neugomon players_menu.am running
[ 44] Restrict Weapons v1.8.3-Re AMXX Dev Team restmenu.amxx running
[ 45] Admin Votes v1.9.0.5234 AMXX Dev Team adminvote.amxx running
[ 46] Lite Admin ESP v1.0 neygomon admin_esp.amxx running
[ 47] DemoRecoder v1.1 neygomon amx_demorec.amx running
[ 48] Advert Messages v1.2.2 neygomon adverts_dead.am running
[ 49] GameName Changer v1.0 neugomon gamename_change running
[ 50] LogsRemove v1.0 melo4 logsremove.amxx running
[ 51] Rock to Ban v1.02 Safety1st rock2ban.amxx running
[ 52] [183] AfkKicker RBS v19.08.28 SKAJIbnEJIb afkkicker_rbs.a running
[ 53] DHUD_Adverts_Deads v1.3.1 pUzzlik dhud_message_de running
[ 54] [183] Damager RBS v19.08.30 SKAJIbnEJIb damager_rbs.amx running
[ 55] Slots Reservation v1.2 pUzzlik admin_slots_gs_ running
[ 56] Proxy Detetor vHackForums.Ru proxy_detector. running
[ 57] Block grande info v1.0 neygomon BlockGrenadeInf running
[ 58] Ping Control v1.31 neygomon Ping_Control.am running
[ 59] Chat Manager v1.1.2-16 Mistrick chatmanager_ski running
[ 60] Chat Manager: Addon v0.0.4-70 Mistrick chatmanager_add running
[ 61] [ReAPI] No Team Flash v0.0.3 Vaqtincha no_team_flash.a running
[ 62] FM ResetScore v0.1 neygomon fm_rs.amxx running
[ 63] Kill Knife ADMIN v1.0 Seroff killadmin.amxx paused
[ 64] Parachute v1.3 Fixed KRoT@L/JTP10181 parachute.amxx running
[ 65] Block Spawn For Reconn v0.3 Bos93, Subb98 block_spawn_for running
[ 66] precashe v1.0 stalin precashe.amxx running
[ 67] End Round Music v2.0 Sho0ter endroundmusic.a running
[ 68] MySQL Settings v1.0 AlexandrFiner mysql_save.amxx debug
[ 69] Stats Configuration v1.8.3-dev+ AMXX Dev Team statscfg.amxx running
[ 70] Mode 2x2 v2.5re s1lent mode.amxx running
[ 71] Spectator Banner Ads v0.1.16 iG_os spec_banner_ads running
[ 72] In-Game Ads(MastaMan E v1.83 (Edit stupok in_game_ads_Mas running
[ 73] [ReAPI] AWPoff v1.4.3 PAffAEJIkA :3 awp_off.amxx running
[ 74] GameRules Info v1.2 shadow GameRulesInfo.a running
[ 75] SlayNoobs v1.0 neygomon slay_noobs.amxx running
[ 76] Bomb Taker v0.0.1b Vaqtincha bomb_taker.amxx running
[ 77] sky by mapname v0.2 mx?! sky_by_mapname. running
[ 78] MENU v1.5 AmFeTaM1n menu.amxx running
[ 79] Kills Counter v1.0 No KillsCounter.am running
[ 80] SF Bets v0.1.5 serfreeman1337 sf_bets.amxx running
[ 81] ReTalisman v1.4.2 gyxoBka ReTalisman.amxx running
[ 82] Nice Killer v1.7 Got Milk? / HoHo nice_killer.amx running
[ 83] [183] Analizator v19.11.04 SKAJIbnEJIb analizator.amxx running
[ 84] PM v0.01b AlexandrFiner PrivateMessage. running
[ 85] Name History v1.0 AlexandrFiner name_history.am debug
[ 86] No Players Map v1.03 neygomon no_players_map. running
[ 87] Master Servers Check v4.8 Javekson ms_check.amxx running
[ 88] Auto-Give Privileges v1.0 SerGrib night_vips.amxx stopped
[ 89] [ReAPI] Round Balancer v1.1 neygomon round_balancer_ running
[ 90] Chat Additions Core v1.0.0-beta Sergey Shorokhov ChatAdditions_C debug
[ 91] [CA] Mute menu v1.0.0-beta Sergey Shorokhov CA_Mute.amxx debug
[ 92] AES: CStrike Addon v0.5.9 [REA serfreeman1337/s aes_exp_cstrike running
[ 93] AES: Informer v0.5.9 [REA serfreeman1337/s aes_informer.am running
[ 94] AES: Admin Tools v0.5.9 [REA serfreeman1337/s aes_exp_editor. running
[ 95] AES: Bonus System v0.5.9 Vega serfreeman1337/s aes_bonus_syste running
[ 96] AES: Bonus CSTRIKE v0.5.9.1 [R serfreeman1337/s aes_bonus_cstri debug
[ 97] DevMs Flag v1.0 gyxoBka DevMs_Flag.amxx running
97 plugins, 95 running
Автор плагина
neygomon
Версия плагина
Round Balancer 1.1
Исходный код
// *************************************************************************************//
// Плагин загружен с www.neugomon.ru //
// Автор: Neygomon [ https://neugomon.ru/members/1/ ] //
// Официальная тема поддержки: https://neugomon.ru/threads/104/ //
// При копировании материала ссылка на сайт www.neugomon.ru ОБЯЗАТЕЛЬНА! //
// *************************************************************************************//

#include amxmodx
#include reapi

#define ADMIN_FLAG_TILDE (1 << 29) //объявляем флаг flag "~"
#define ACCESS_IMMUNITY ADMIN_FLAG_TILDE // Иммунитет для админов при балансе (Админы игнорируются любым балансом(по числу/по скиллу))
//#define REPLACED_MENU // Кастомное меню с 2-мя пунктами.
#define SCORE_DIFF 2 // Разница в счете между командами (Вкл. аланс по скиллу, если одна команда перееигрывает другую на n раундов)
#define MIN_PLAYERS 8 // Минимальное кол-во игроков на сервере для баланса по силам ()
#define ROUND_BSKILL 3 // Каждые n раундов баланс по скиллу (Ну а че, нахер каждый раунд по скиллу то уравнивать?)
#define PL_IGNORE_NUM 3 // Каждые n перемещений в командах для одного игрока (баланс по кол-ву игроков) (Чтобы не кидало одного и того же)
#define PL_IGNORE_SKILL 3 // Каждые n замен по скиллу игрока может перемещать (Чтобы не кидало одного и того же)

/* Словарь плагина */
#define MSG_TRANSFER "^1[^4LTB^1] ^3%s ^4будет перенеcён за команду ^3%s ^4в новом раунде."
#define MSG_TRANSFER_CT "Counter-Terrorist"
#define MSG_TRANSFER_T "Terrorist"
#define MSG_REPLACE "^1[^4LTB^1] ^4Сильный ^3%s ^4будет заменён на слабого ^3%s ^4в новом раунде."

#define HUD_TRANSFER "Вы были перемещены за %s"
#define HUD_TRANSFER_CT "Counter-Terrorist"
#define HUD_TRANSFER_T "Terrorist"
#define HUD_REPLACE "Вы были перемещены за %s"
/* Конец словаря */

#if !defined MAX_PLAYERS
#define MAX_PLAYERS 32
#endif

new g_iNumTt, g_iNumCt;
new g_iSkipNPl[MAX_PLAYERS+1], g_iSkipSPl[MAX_PLAYERS+1];
new g_iNewTeam[MAX_PLAYERS+1];

#define msgSayText 76
#define msgTeamInfo 86
#define msgShowOldMenu 96
#define msgShowVGUIMenu 114

public plugin_init()
{
register_plugin("[ReAPI] Round Balancer", "1.1", "neygomon");

RegisterHookChain(RG_CBasePlayer_Spawn, "fwdPlayerSpawnPre", false);
RegisterHookChain(RG_RoundEnd, "fwdRoundEnd", true);
#if defined REPLACED_MENU
register_clcmd("chooseteam", "ShowMenu");

register_menucmd(register_menuid("Team Menu"), MENU_KEY_1|MENU_KEY_6|MENU_KEY_0, "TeamMenuHandler");
register_message(msgShowOldMenu, "mShowMenu");
register_message(msgShowVGUIMenu, "mShowMenu");
#endif
set_task(1.0, "ChangeServerCvars");
}

public ChangeServerCvars()
{
set_cvar_num("mp_autoteambalance", 0);
#if defined REPLACED_MENU
set_cvar_num("mp_limitteams", 0);
#endif
}

public client_putinserver(id)
g_iNewTeam[id] = g_iSkipSPl[id] = g_iSkipNPl[id] = 0;

public fwdRoundEnd()
{
new players[32], pnum, szName[32], iTransferNum;

GetUsersInTeam(g_iNumTt, g_iNumCt);
iTransferNum = abs(g_iNumTt - g_iNumCt) / 2;

if(iTransferNum > 0)
{
get_players(players, pnum, "e", (g_iNumTt > g_iNumCt) ? "TERRORIST" : "CT");
for(new i; i < pnum; i++)
{
if(g_iSkipNPl[players[i]]-- || get_user_flags(players[i]) & ACCESS_IMMUNITY)
continue;

get_user_name(players[i], szName, charsmax(szName));

if(g_iNumTt > g_iNumCt)
ChatColor(MSG_TRANSFER, szName, MSG_TRANSFER_CT), g_iNewTeam[players[i]] = 2;
else ChatColor(MSG_TRANSFER, szName, MSG_TRANSFER_T), g_iNewTeam[players[i]] = 1;

g_iSkipNPl[players[i]] = PL_IGNORE_NUM;
if(--iTransferNum < 1) break;
}
}

new iCtWins, iTtWins;
iCtWins = get_member_game(m_iNumCTWins);
iTtWins = get_member_game(m_iNumTerroristWins);

if(get_member_game(m_iTotalRoundsPlayed) % ROUND_BSKILL || MIN_PLAYERS > get_playersnum() || SCORE_DIFF > abs(iTtWins - iCtWins))
return;
new iTeam, iLeader = (iTtWins > iCtWins) ? 1 : 2;
new iRatio[MAX_PLAYERS+1];
new pEnt1, pEnt2;

get_players(players, pnum);
for(new i; i < pnum; i++)
{
if(g_iSkipSPl[players[i]]-- || get_user_flags(players[i]) & ACCESS_IMMUNITY)
continue;

iTeam = get_member(players[i], m_iTeam);
switch(iTeam)
{
case 1, 2:
{
iRatio[players[i]] = get_user_frags(players[i]) - get_user_deaths(players[i]);
if(iTeam == iLeader)
{
if(iRatio[players[i]] > iRatio[pEnt1])
pEnt1 = players[i];
}
else if(iRatio[pEnt2] > iRatio[players[i]])
pEnt2 = players[i];
}
}
}
if(!pEnt1 || !pEnt2) return;

static szName1[32], szName2[32];
get_user_name(pEnt1, szName1, charsmax(szName1));
get_user_name(pEnt2, szName2, charsmax(szName2));

ChatColor(MSG_REPLACE, szName1, szName2);

switch(iLeader)
{
case 1: g_iNewTeam[pEnt1] = 2, g_iNewTeam[pEnt2] = 1;
case 2: g_iNewTeam[pEnt1] = 1, g_iNewTeam[pEnt2] = 2;
}
g_iSkipSPl[pEnt1] = g_iSkipSPl[pEnt2] = PL_IGNORE_SKILL;
}

public fwdPlayerSpawnPre(const id)
{
if(g_iNewTeam[id])
{
rg_set_user_team(id, g_iNewTeam[id]);
g_iNewTeam[id] = 0;

set_dhudmessage(244, 118, 88, -1.0, 0.6, 2, _, 5.0, 0.07);
show_dhudmessage(id, "Автобаланс ^nВы были перемещены");
client_cmd(id, "spk misc/move_balans.wav");
}
}
#if defined REPLACED_MENU
new bool:g_bRecursion = false;
public mShowMenu(msgId, msgDest, msgEnt)
{
if(msgId == msgShowOldMenu)
{
static szArg4[20]; get_msg_arg_string(4, szArg4, charsmax(szArg4));
if(contain(szArg4, "Team_Select") == -1)
return PLUGIN_CONTINUE;
}
else if(get_msg_arg_int(1) != 2)
return PLUGIN_CONTINUE;

if(g_bRecursion)
{
g_bRecursion = false;
return PLUGIN_HANDLED;
}

g_bRecursion = true;
ShowMenu(msgEnt);
g_bRecursion = false;

return PLUGIN_HANDLED;
}

public ShowMenu(id)
return show_menu(id, MENU_KEY_0|MENU_KEY_1|MENU_KEY_6, "\d[\rLTB\d] \yВыберите действие:^n^n\y1. \rВойти в игру^n\y6. \wНаблюдение^n^n\y0. \wВыход", -1, "Team Menu");

public TeamMenuHandler(id, iKey)
{
switch(iKey)
{
case 0:
{
GetUsersInTeam(g_iNumTt, g_iNumCt);
set_member(id, m_bTeamChanged, false);
engclient_cmd(id, "jointeam", (g_iNumTt > g_iNumCt) ? "2" : "1");
}
case 5: user_silentkill(id), engclient_cmd(id, "jointeam", "6");
}
return PLUGIN_HANDLED;
}
#endif
stock ChatColor(const szMessage[], any:...)
{
static players[32], pnum; get_players(players, pnum, "c");
static szMsg[190]; vformat(szMsg, charsmax(szMsg), szMessage, 2);

for(new i; i < pnum; i++)
{
message_begin(MSG_ONE_UNRELIABLE, msgSayText, .player = players[i]);
write_byte(players[i]);
write_string(szMsg);
message_end();
}
}

stock GetUsersInTeam(&tt, &ct, players[32]="", pnum=0)
{
tt = ct = 0;
get_players(players, pnum);

for(new i; i < pnum; i++)
{
switch(get_member(players[i], m_iTeam))
{
case 1: tt++;
case 2: ct++;
}
}
}
Плагин неугомона Round Balancer 1.1
#define REPLACED_MENU // Кастомное меню с 2-мя пунктами
При включении этого пункта, меню работает некорректно.

Меню состоит из 2 пунктов
"Войти в игру"
"Наблюдатели"

При включении этого пункта, игрокам не даётся возможность выбирать себе желаемую команду, если баланс не соответствует правильному. И есть возможность выбрать только лишь модель игрока той команды, куда разрешает зайти плагин

Так вот баг состоит в том, что если выбрать пункт "Войти в игру", то далее при открытии 4 пунктов моделек игроков , в зависимости от нажатия 1 или 2 выберется не модель, а команда игрока. То есть благодаря ограничению этого дефайна мы наоборот , даже будучи мёртвым можем неограниченное количество раз выбирать себе команду.
 

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

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