Создание автобаланса VIP/ADMIN |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
Создание автобаланса VIP/ADMIN |
JekaPro |
21.1.2017, 16:58
Сообщение
|
|
Всем привет, нужно сделать плагин для автобаланса випов и админов.
так как любят играть 5-7 админов против 1 Есть знающие люди которые помогут? |
|
|
Affl |
21.1.2017, 20:11
Сообщение
|
|
PTB в помощь - автобаланс всех игроков в принципе - не то, что нужно?
WAR3FT Пивка для Рывка 202 lvl
|
|
|
JekaPro |
21.1.2017, 20:49
Сообщение
|
|
PTB в помощь - автобаланс всех игроков в принципе - не то, что нужно? нет, автобаланс игроков стоит,это одно) у меня например за кт играет 6 админов, за тт 2 мне нужно их балансиваровать, что бы за кт и тт было равное количество админов, ну или приближенное количество к балансу, 3 на 2 4 на 3 ит.д ну или по равному. есть какие то плагины на автобаланс випов админов? |
|
|
bruk |
22.1.2017, 0:34
Сообщение
|
|
|
dialyabev |
22.1.2017, 7:14
Сообщение
|
|
Могу помочь, топик в подписи
|
|
|
JekaPro |
22.1.2017, 15:43
Сообщение
|
|
|
|
|
bruk |
22.1.2017, 16:05
Сообщение
|
JekaPro,
Cкрытый текст #include <amxmodx> #include <cstrike> #include <csdm> #if AMXX_VERSION_NUM < 183 #include <colorchat> #else #define DontChange print_team_default #endif new bool:g_bConnected[33], bool:g_bAdmin[33]; new g_iPlayers, CsTeams:g_iNewTeam[33]; public plugin_init() register_plugin("CSDM Auto Balance", "1.1", "incognito"); public client_putinserver(id) { if(get_user_flags(id) & ADMIN_IMMUNITY ) g_bAdmin[id] = true; g_iNewTeam[id] = CS_TEAM_UNASSIGNED; g_bConnected[id] = true; g_iPlayers++; } public client_disconnect(id) { g_bConnected[id] = g_bAdmin[id] = false; g_iPlayers--; } public csdm_PostDeath(iKiller, id, HeadShot, const szWeapon[]) { if(g_iPlayers < 4 || iKiller == id || !g_bConnected[id]) return; set_task(0.5, "check_teams_and_transfer", id); } public csdm_PostSpawn(id, bool:bFake) { if(g_iNewTeam[id] > CS_TEAM_UNASSIGNED) { static szName[32]; get_user_name(id, szName, charsmax(szName)); client_print_color(0, DontChange, "^4[Balance] ^1%s ^3%s ^1был перемещен за команду ^3%s", g_bAdmin[id] ? "Админ" : "Игрок", szName, g_iNewTeam[id] == CS_TEAM_T ? "Террористов" : "Контр-Террористов"); static iMsgScreenFade; if(!iMsgScreenFade) iMsgScreenFade = get_user_msgid("ScreenFade"); message_begin( MSG_ONE_UNRELIABLE, iMsgScreenFade, _, id ); write_short(2000); write_short(2000); write_short(0); write_byte(g_iNewTeam[id] == CS_TEAM_T ? 175 : 0); write_byte(0); write_byte(g_iNewTeam[id] == CS_TEAM_CT ? 175 : 0); write_byte(175); message_end(); g_iNewTeam[id] = CS_TEAM_UNASSIGNED; } } public check_teams_and_transfer(id) { static players[32], pnum, iNumCT, iNumTT; if(g_bAdmin[id]) { iNumCT = iNumTT = 0; get_players(players, pnum); for(new i; i < pnum; i++) { if(!g_bAdmin[players[i]]) continue; switch(cs_get_user_team(players[i])) { case CS_TEAM_T: iNumTT++; case CS_TEAM_CT: iNumCT++; } } } else { get_players(players, iNumCT, "e", "CT"); get_players(players, iNumTT, "e", "TERRORIST"); } OpersNumsPL(id, iNumCT, iNumTT); } OpersNumsPL(const id, const CT, const TT) { if(!is_user_connected(id)) return true static CsTeams:NewTeam, iDiff; iDiff = CT - TT; if(iDiff > 0) NewTeam = CS_TEAM_T; else if(iDiff < 0) NewTeam = CS_TEAM_CT; else return true; if(abs(iDiff) >= 2 && cs_get_user_team(id) != NewTeam) { cs_set_user_team(id, NewTeam); g_iNewTeam[id] = NewTeam; csdm_respawn(id); } return true } JekaPro, давно им пользуюсь ,работает нормально, хотя у знакомого на сервере бывает баланс иногда чудит, балансирует отдельно игроков с флагом иммунитета и отдельно игроков. |
|
Поблагодарили 1 раз
|
|
JekaPro |
22.1.2017, 19:02
Сообщение
|
|
|
|
|
bruk |
22.1.2017, 20:03
Сообщение
|
|
|