Заказать Сервер Заказать Плагин Контакты Поиск

[ вход ]
[ последние сообщения ]

Страница 1 из 212»
Форум » SourceMod - Counter Strike Source && CS GO » Обсуждение » Префикс
Префикс
toritsinanton2 Дата: Пятница, 01.01.2016, 20:29:30 | Сообщение # 1
Сообщений: 42
Репутация: 0 [ +/- ]
Доброго времени суток, мне нужен код, который позволить ставить перед ником префикс. ПРИМЕР: [ИГРОК]ник: Сообщение, он довольно прост.
 
Jon4ik Дата: Пятница, 01.01.2016, 23:51:11 | Сообщение # 2
Сообщений: 279
Репутация: 7 [ +/- ]
toritsinanton2, Ну так напиши если он прост ☺
 
toritsinanton2 Дата: Суббота, 02.01.2016, 00:24:19 | Сообщение # 3
Сообщений: 42
Репутация: 0 [ +/- ]
Цитата Jon4ik ()
Ну так напиши если он прост ☺

Если бы мог, написал бы.


Сообщение отредактировал toritsinanton2 - Суббота, 02.01.2016, 00:24:53
 
Jon4ik Дата: Суббота, 02.01.2016, 02:11:54 | Сообщение # 4
Сообщений: 279
Репутация: 7 [ +/- ]
toritsinanton2, Самый простой вариант

Код
#include <sourcemod>
#include <csgo_colors>
#include <basecomm>

public OnPluginStart()
{    
    AddCommandListener(Command_Say, "say");
}

public Action:Command_Say(client, const String:command[], argc)
{
    if(client == client && client != 0 && IsClientInGame(client))
    {
    new String:szText[256];
    szText[0] = '\0';
    GetCmdArg(1, szText, sizeof(szText));

    if(szText[0] == '/' || szText[0] == '@'    || !szText[0] && BaseComm_IsClientGagged(client)) { return Plugin_Handled; }

    if(GetUserFlagBits(client) & ADMFLAG_CUSTOM6)
    {
    if(IsClientInGame(client) && IsPlayerAlive(client) && GetClientTeam(client) == 2)
    {
    CGOPrintToChatAll("{OLIVE}[Администратор] {RED}%N : {LIME}%s",client, szText);
    return Plugin_Handled;
    }
    if(IsClientInGame(client) && IsPlayerAlive(client) && GetClientTeam(client) == 3)
    {
    CGOPrintToChatAll("{OLIVE}[Администратор] {BLUE}%N : {LIME}%s",client, szText);
    return Plugin_Handled;
    }
    if(IsClientInGame(client) && !IsPlayerAlive(client) && GetClientTeam(client) == 1)
    {
    CGOPrintToChatAll("*Наблюдатель* {OLIVE}[Администратор] {LIGHTPURPLE}%N : {LIME}%s", client, szText);
    return Plugin_Handled;
    }
    if(IsClientInGame(client) && !IsPlayerAlive(client) && GetClientTeam(client) == 2)
    {
    CGOPrintToChatAll("*Убит* {OLIVE}[Администратор] {RED}%N : {LIME}%s", client, szText);
    return Plugin_Handled;
    }
    if(IsClientInGame(client) && !IsPlayerAlive(client) && GetClientTeam(client) == 3)
    {
    CGOPrintToChatAll("*Убит* {OLIVE}[Администратор] {BLUE}%N : {LIME}%s", client, szText);
    return Plugin_Handled;
    }
    }

    }
    
    return Plugin_Continue;
}



Сообщение отредактировал Jon4ik - Суббота, 02.01.2016, 02:13:05
 
toritsinanton2 Дата: Суббота, 02.01.2016, 02:33:29 | Сообщение # 5
Сообщений: 42
Репутация: 0 [ +/- ]
Спасибо большое.
 
Scarface_slv Дата: Суббота, 02.01.2016, 14:12:25 | Сообщение # 6
Сообщений: 749
Репутация: 61 [ +/- ]
Jon4ik, мне кажется не зачем было добавлять столько проверок одних и тех же. Можно было так

Прикрепления: 6351571.txt(1Kb)


Сообщение отредактировал Scarface_slv - Суббота, 02.01.2016, 14:14:09
 
Jon4ik Дата: Суббота, 02.01.2016, 15:42:48 | Сообщение # 7
Сообщений: 279
Репутация: 7 [ +/- ]
Scarface_slv, Можно так, но я уже привык делать как написано выше)

Добавлено (02.01.2016, 15:42:48)
---------------------------------------------
И в твоем варианте есть недочет. GetUserFlagBits(client) & ADMFLAG_CUSTOM6 надо в другое место поставить, чтобы потом можно было ещё и на другие флаги проверки делать :)

 
Scarface_slv Дата: Суббота, 02.01.2016, 16:40:24 | Сообщение # 8
Сообщений: 749
Репутация: 61 [ +/- ]
Jon4ik, Просто я думаю не зачем грузить сервер лишними проверками, а так это конечно твое право как писать)
Почему недочет? Лучше ведь сразу проверить админ это или нет. Если он не админ то остальной код бессмысленный.
А проверку админов и вынести можно хотя бы так, если для удобства)

Прикрепления: 5570555.txt(1Kb)
 
Jon4ik Дата: Суббота, 02.01.2016, 17:07:19 | Сообщение # 9
Сообщений: 279
Репутация: 7 [ +/- ]
Scarface_slv, Ну а если ещё игрокам надо будет поставить?Поэтому как недочет -_-
 
toritsinanton2 Дата: Суббота, 02.01.2016, 19:30:21 | Сообщение # 10
Сообщений: 42
Репутация: 0 [ +/- ]
Да, только 1 НО, как сделать чтобы был игнор админов, те на них не одевалась окраска.

#include <sourcemod>
#include <csgo_colors>
#include <basecomm>

public OnPluginStart()
{
AddCommandListener(Command_Say, "say");
}

public Action:Command_Say(client, const String:command[], argc)
{
decl String:szText[256]; szText[0] = '\0';
GetCmdArg(1, szText, sizeof(szText));
if(szText[0] == '/' || szText[0] == '@' || !szText[0]) return Plugin_Continue;
new iTeam = GetClientTeam(client);
if(iTeam < 2) Format(szText, sizeof(szText), "{LIME}*Наблюдатель* {BLUE}%N : {DEFAULT}%s",client, szText);
else Format(szText, sizeof(szText), "{LIME}%s{BLUE} %s%N : {DEFAULT}%s", IsPlayerAlive(client) ? "":"*Убит* ", iTeam == 2 ? "{RED}":"{BLUE}",client, szText);
CGOPrintToChatAll(szText);
return Plugin_Handled;
}
 
Jon4ik Дата: Суббота, 02.01.2016, 19:34:22 | Сообщение # 11
Сообщений: 279
Репутация: 7 [ +/- ]
toritsinanton2,

Код
public Action:Command_Say(client, const String:command[], argc)
{
    if(client != 0 && !IsImmune(client) && !BaseComm_IsClientGagged(client))
    {
  decl String:szText[256]; szText[0] = '\0';
  GetCmdArg(1, szText, sizeof(szText));
  if(szText[0] == '/' || szText[0] == '@' || !szText[0]) return Plugin_Continue;
  new iTeam = GetClientTeam(client);
  if(iTeam < 2) Format(szText, sizeof(szText), "{LIME}*Наблюдатель* {OLIVE}{LIGHTPURPLE}%N : {LIME}%s",client, szText);
  else Format(szText, sizeof(szText), "{LIME}%s{OLIVE} %s%N : {LIME}%s", IsPlayerAlive(client) ? "":"*Убит* ", iTeam == 2 ? "{RED}":"{BLUE}",client, szText);
  CGOPrintToChatAll(szText);
  return Plugin_Handled;
    }
    return Plugin_Continue;
}

public IsImmune(client)
{
    new bool:immune = false;
    if(GetUserAdmin(client) != INVALID_ADMIN_ID)
    {
    immune = true;
    }
    return immune;
}
}


Сообщение отредактировал Jon4ik - Суббота, 02.01.2016, 19:35:08
 
Scarface_slv Дата: Воскресенье, 03.01.2016, 11:43:06 | Сообщение # 12
Сообщений: 749
Репутация: 61 [ +/- ]
Код

bool:IsImmune(client)
{
    if(GetUserAdmin(client) != INVALID_ADMIN_ID) return true;
    return false;
}

А вообще достаточно
Код

if(client != 0 && GetUserAdmin(client) == INVALID_ADMIN_ID && !BaseComm_IsClientGagged(client))


Сообщение отредактировал Scarface_slv - Воскресенье, 03.01.2016, 11:44:19
 
Jon4ik Дата: Воскресенье, 03.01.2016, 13:01:56 | Сообщение # 13
Сообщений: 279
Репутация: 7 [ +/- ]
Scarface_slv, Опять же как кому нравится)
 
Scarface_slv Дата: Понедельник, 04.01.2016, 10:57:36 | Сообщение # 14
Сообщений: 749
Репутация: 61 [ +/- ]
Jon4ik, Дело не в нравится или нравится, дело в оптимизации плагина.
 
Sallcom Дата: Понедельник, 04.01.2016, 20:26:01 | Сообщение # 15
Сообщений: 206
Репутация: 31 [ +/- ]
Scarface_slv, можно еще вот так, но смысл кода не изменится)
Код

public OnClientPostAdminCheck(client)
    g_bAdmin[client] = GetUserAdmin(client) != INVALID_ADMIN_ID;


Сообщение отредактировал Sallcom - Понедельник, 04.01.2016, 20:26:49
 
Форум » SourceMod - Counter Strike Source && CS GO » Обсуждение » Префикс
Страница 1 из 212»
Поиск: