Иконка ресурса

ChangeTeamPlayer 1.0

Нет прав для скачивания

Drumanid

Не все так как мы 'думаем'
Сообщения
1,708
Реакции
1,293
Пользователь Lisoh разместил новый ресурс:

ChangeTeamPlayer - Позволяет переместить игрока и команды, сделать автобаланс команд.

Позволяет переместить игрока и команды, сделать автобаланс команд.
Как использовать? В админ меню > управление игроками.

Посмотреть скриншоты:






...
Узнать больше об этом ресурсе...
 

Крузяра

Супермодератор
Сообщения
6,916
Реакции
5,297
Ну что ж, начнём.

Имена глобальных переменных сложно читаются...

PHP:
hMenu.SetTitle("Выберите игрока: \n \n");
Тут \n последний - лишний.
PHP:
hMenu.SetTitle("Выберите игрока: \n ");
PHP:
char id[15]
Компилятор слегка изменяет размеры массивов. В случае со строками, увеличивает, чтобы размер делился на 4 без остатка.
Со всеми другими типами - чтобы делился на 2 без остатка.
PHP:
char id[16]
PHP:
       hMenu.AddItem("спекторы", "За спекторы");
       hMenu.AddItem("террористы", "За террористов");
       hMenu.AddItem("контр-террористы", "За контр-террористов");
Т.к. в каллбеке не проверяется info-строка, можно оставить её пустой.
PHP:
       hMenu.AddItem("", "За спекторы");
       hMenu.AddItem("", "За террористов");
       hMenu.AddItem("", "За контр-террористов");
PHP:
void DeleteInfo(int iClient)
{
   g_sQueue[iClient] = "";
   g_sTeam[iClient] = "";
-->
PHP:
void DeleteInfo(int iClient)
{
   g_sQueue[iClient][0] = 0;
   g_sTeam[iClient][0] = 0;
И непонятно, зачем глобально хранятся строки, которые выводятся в меню/чате.
 

Drumanid

Не все так как мы 'думаем'
Сообщения
1,708
Реакции
1,293
И так погнали :ab:

Тут \n последний - лишний.
Не лишний, я всегда так делаю, по своим чувствам. Чекай мои плагины.

Компилятор слегка изменяет размеры массивов. В случае со строками, увеличивает, чтобы размер делился на 4 без остатка.
Со всеми другими типами - чтобы делился на 2 без остатка.
Приму к сведению.

Т.к. в каллбеке не проверяется info-строка, можно оставить её пустой.
Серьезно? А ну попробуй)
PHP:
hMenu.GetItem(option, g_sTeam[g_iTarget[iClient]], sizeof(g_sTeam[]));
void DeleteInfo(int iClient)
{
g_sQueue[iClient][0] = 0;
g_sTeam[iClient][0] = 0;
Такое чувство как будто ты все из пальца высосал :glare:
По моему это ничего не меняет.

И непонятно, зачем глобально хранятся строки, которые выводятся в меню/чате.
Информацию в меню я как по твоему получаю? Есть другие варианты?:flood:
 

R1KO

всё тлен
Супермодератор
Сообщения
8,401
Реакции
5,839
Не лишний, я всегда так делаю, по своим чувствам. Чекай мои плагины.
лишний. \n не работает если он последний символ в строке. Так что пробела после него достаточно.
 

Drumanid

Не все так как мы 'думаем'
Сообщения
1,708
Реакции
1,293
лишний. \n не работает если он последний символ в строке. Так что пробела после него достаточно.
об этом не знал...

Кое что забыл вписать, маленькие поправки внесу.
 

Крузяра

Супермодератор
Сообщения
6,916
Реакции
5,297
Не заметил, но всё равно. Можно там захардкодить нормально имя команды в зависимости от номера.
PHP:
               switch(option)
               {
                   case 0: g_iTeam[g_iTarget[iClient]] = 1, g_sTeam[g_iTarget[iClient]] = "спекторы";
                   case 1: g_iTeam[g_iTarget[iClient]] = 2, g_sTeam[g_iTarget[iClient]] = "террористы";
                   case 2: g_iTeam[g_iTarget[iClient]] = 3, g_sTeam[g_iTarget[iClient]] = "контр-террористы";
               }
Информацию в меню я как по твоему получаю?
У тебя везде хранятся индексы команд, игрока и выборов. Так не проще по этим номерам и выводить нужную строку, а не хранить глобально в нескольких количествах одну и ту же информацию?
 

Drumanid

Не все так как мы 'думаем'
Сообщения
1,708
Реакции
1,293
Сообщения
404
Реакции
72
Баланс только в ручном режиме? Или автобаланс тоже присутствует при:
mp_autoteambalance "0"
 

Drumanid

Не все так как мы 'думаем'
Сообщения
1,708
Реакции
1,293
У тебя везде хранятся индексы команд, игрока и выборов. Так не проще по этим номерам и выводить нужную строку, а не хранить глобально в нескольких количествах одну и ту же информацию?
Сделай доброе дело, захардкорь пользователям оптимизацию, а я поучусь :acute:
Не в коем случае не стеб, мне с гуру спорить нет смысла, в дураках останусь. :buba:

Баланс только в ручном режиме? Или автобаланс тоже присутствует при:
mp_autoteambalance "0"
Баланс не зависит от каких то кваров, сделает команды идентичными, если это возможно.
 
Сообщения
404
Реакции
72
@Lisoh, я немного другое имел ввиду)) сделает ли Ваш плагин автобаланс сам, без участия админа, если в одной команде будет 3 игрока а в другой 5.
 

Drumanid

Не все так как мы 'думаем'
Сообщения
1,708
Реакции
1,293
@Lisoh, я немного другое имел ввиду)) сделает ли Ваш плагин автобаланс сам, без участия админа, если в одной команде будет 3 игрока а в другой 5.
Special Team Balancer

Опять наверное не понял, ну да ладно... Если вы спрашиваете так...
Если я установлю ваш плагин - он будет делать автобаланс автоматически? - Нет, не будет, пока сам администратор не сделает этого.
 
Последнее редактирование модератором:
Сообщения
404
Реакции
72
Special Team Balancer

Опять наверное не понял, ну да ладно... Если вы спрашиваете так...
Если я установлю ваш плагин - он будет делать автобаланс автоматически? - Нет, не будет, пока сам администратор не сделает этого.
Понял, стоит на сервере указанный плагин и swapteam, думал может Ваш плагин заменит их. Спасибо за ответ.
 

Drumanid

Не все так как мы 'думаем'
Сообщения
1,708
Реакции
1,293
Не играл, точнее не создавал там свои сервера... Скидывайте лог ошибок, попробую поправить.
 
Сообщения
233
Реакции
16
@Lisoh, чуток позже, я ещё не ставил, нет возможности. Может кто другой потестит раньше
--- Добавлено позже ---
@Lisoh, всё работает на css, хотелось бы изменений:
В спекторы на позиции 3. а не 1.
Раскрасить все сообщения {blue}
 
Последнее редактирование:
Сообщения
72
Реакции
10
Не хочешь добавить еще функцию для рандомного перемешивания команд?)
 
Сообщения
110
Реакции
2
На какой флаг этот плагин привязан? И как изменить его?
 
Сообщения
92
Реакции
51
На какой флаг этот плагин привязан? И как изменить его?
Код:
        g_hAdminMenu.AddItem("ChangeTeamPlayerItem", hAdminMenuChangeTeam, hCategory, "ChangeTeamPlayer", ADMFLAG_KICK);
        g_hAdminMenu.AddItem("ChangeTeamPlayerAllItem", hAdminMenuChangeTeamAll, hCategory, "ChangeTeamPlayerAll", ADMFLAG_KICK);
        g_hAdminMenu.AddItem("AutoBalanceItem", hAdminMenuAutoBalance, hCategory, "AutoBalance", ADMFLAG_KICK);
На данный момент привязан ADMFLAG_KICK, который равняется флагу "c". Можешь изменить по примеру ниже:
#define ADMFLAG_RESERVATION (1<<0) /**< Convenience macro for Admin_Reservation as a FlagBit */
#define ADMFLAG_GENERIC (1<<1) /**< Convenience macro for Admin_Generic as a FlagBit */
#define ADMFLAG_KICK (1<<2) /**< Convenience macro for Admin_Kick as a FlagBit */
#define ADMFLAG_BAN (1<<3) /**< Convenience macro for Admin_Ban as a FlagBit */
#define ADMFLAG_UNBAN (1<<4) /**< Convenience macro for Admin_Unban as a FlagBit */
#define ADMFLAG_SLAY (1<<5) /**< Convenience macro for Admin_Slay as a FlagBit */
#define ADMFLAG_CHANGEMAP (1<<6) /**< Convenience macro for Admin_Changemap as a FlagBit */
#define ADMFLAG_CONVARS (1<<7) /**< Convenience macro for Admin_Convars as a FlagBit */
#define ADMFLAG_CONFIG (1<<8) /**< Convenience macro for Admin_Config as a FlagBit */
#define ADMFLAG_CHAT (1<<9) /**< Convenience macro for Admin_Chat as a FlagBit */
#define ADMFLAG_VOTE (1<<10) /**< Convenience macro for Admin_Vote as a FlagBit */
#define ADMFLAG_PASSWORD (1<<11) /**< Convenience macro for Admin_Password as a FlagBit */
#define ADMFLAG_RCON (1<<12) /**< Convenience macro for Admin_RCON as a FlagBit */
#define ADMFLAG_CHEATS (1<<13) /**< Convenience macro for Admin_Cheats as a FlagBit */
#define ADMFLAG_ROOT (1<<14) /**< Convenience macro for Admin_Root as a FlagBit */
#define ADMFLAG_CUSTOM1 (1<<15) /**< Convenience macro for Admin_Custom1 as a FlagBit */
#define ADMFLAG_CUSTOM2 (1<<16) /**< Convenience macro for Admin_Custom2 as a FlagBit */
#define ADMFLAG_CUSTOM3 (1<<17) /**< Convenience macro for Admin_Custom3 as a FlagBit */
#define ADMFLAG_CUSTOM4 (1<<18) /**< Convenience macro for Admin_Custom4 as a FlagBit */
#define ADMFLAG_CUSTOM5 (1<<19) /**< Convenience macro for Admin_Custom5 as a FlagBit */
#define ADMFLAG_CUSTOM6 (1<<20) /**< Convenience macro for Admin_Custom6 as a FlagBit */
 
Сообщения
110
Реакции
2
Код:
        g_hAdminMenu.AddItem("ChangeTeamPlayerItem", hAdminMenuChangeTeam, hCategory, "ChangeTeamPlayer", ADMFLAG_KICK);
        g_hAdminMenu.AddItem("ChangeTeamPlayerAllItem", hAdminMenuChangeTeamAll, hCategory, "ChangeTeamPlayerAll", ADMFLAG_KICK);
        g_hAdminMenu.AddItem("AutoBalanceItem", hAdminMenuAutoBalance, hCategory, "AutoBalance", ADMFLAG_KICK);
На данный момент привязан ADMFLAG_KICK, который равняется флагу "c". Можешь изменить по примеру ниже:
#define ADMFLAG_RESERVATION (1<<0) /**< Convenience macro for Admin_Reservation as a FlagBit */
#define ADMFLAG_GENERIC (1<<1) /**< Convenience macro for Admin_Generic as a FlagBit */
#define ADMFLAG_KICK (1<<2) /**< Convenience macro for Admin_Kick as a FlagBit */
#define ADMFLAG_BAN (1<<3) /**< Convenience macro for Admin_Ban as a FlagBit */
#define ADMFLAG_UNBAN (1<<4) /**< Convenience macro for Admin_Unban as a FlagBit */
#define ADMFLAG_SLAY (1<<5) /**< Convenience macro for Admin_Slay as a FlagBit */
#define ADMFLAG_CHANGEMAP (1<<6) /**< Convenience macro for Admin_Changemap as a FlagBit */
#define ADMFLAG_CONVARS (1<<7) /**< Convenience macro for Admin_Convars as a FlagBit */
#define ADMFLAG_CONFIG (1<<8) /**< Convenience macro for Admin_Config as a FlagBit */
#define ADMFLAG_CHAT (1<<9) /**< Convenience macro for Admin_Chat as a FlagBit */
#define ADMFLAG_VOTE (1<<10) /**< Convenience macro for Admin_Vote as a FlagBit */
#define ADMFLAG_PASSWORD (1<<11) /**< Convenience macro for Admin_Password as a FlagBit */
#define ADMFLAG_RCON (1<<12) /**< Convenience macro for Admin_RCON as a FlagBit */
#define ADMFLAG_CHEATS (1<<13) /**< Convenience macro for Admin_Cheats as a FlagBit */
#define ADMFLAG_ROOT (1<<14) /**< Convenience macro for Admin_Root as a FlagBit */
#define ADMFLAG_CUSTOM1 (1<<15) /**< Convenience macro for Admin_Custom1 as a FlagBit */
#define ADMFLAG_CUSTOM2 (1<<16) /**< Convenience macro for Admin_Custom2 as a FlagBit */
#define ADMFLAG_CUSTOM3 (1<<17) /**< Convenience macro for Admin_Custom3 as a FlagBit */
#define ADMFLAG_CUSTOM4 (1<<18) /**< Convenience macro for Admin_Custom4 as a FlagBit */
#define ADMFLAG_CUSTOM5 (1<<19) /**< Convenience macro for Admin_Custom5 as a FlagBit */
#define ADMFLAG_CUSTOM6 (1<<20) /**< Convenience macro for Admin_Custom6 as a FlagBit */
То есть ток по группе могу вписать?
 
Сообщения
92
Реакции
51
То есть ток по группе могу вписать?
Не по группе, а по уровню доступа. У тебя в папке /sourcemod/configs/ лежит файлик admin_levels.cfg. Вот в нем и прописаны все дефолтные настройки уровня доступа. Если ты хочешь, чтобы доступ к этим командам был только у главного админа сервера, то поставь ADMFLAG_ROOT.
 
Сверху