Префикс
toritsinanton2
Дата: Пятница, 01.01.2016, 20:29:30 | Сообщение # 1
Сообщений: 42
Репутация: 0 [ +/- ]
Доброго времени суток, мне нужен код, который позволить ставить перед ником префикс. ПРИМЕР: [ИГРОК]ник: Сообщение, он довольно прост.
Jon4ik
Дата: Пятница, 01.01.2016, 23:51:11 | Сообщение # 2
Сообщений: 278
Репутация: 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
Сообщений: 278
Репутация: 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
Сообщений: 737
Репутация: 61 [ +/- ]
Jon4ik, мне кажется не зачем было добавлять столько проверок одних и тех же. Можно было так
Гости не могут скачивать файлы
Сообщение отредактировал Scarface_slv - Суббота, 02.01.2016, 14:14:09
Jon4ik
Дата: Суббота, 02.01.2016, 15:42:48 | Сообщение # 7
Сообщений: 278
Репутация: 7 [ +/- ]
Scarface_slv, Можно так, но я уже привык делать как написано выше)Добавлено (02.01.2016, 15:42:48) --------------------------------------------- И в твоем варианте есть недочет. GetUserFlagBits(client) & ADMFLAG_CUSTOM6 надо в другое место поставить, чтобы потом можно было ещё и на другие флаги проверки делать :)
Scarface_slv
Дата: Суббота, 02.01.2016, 16:40:24 | Сообщение # 8
Сообщений: 737
Репутация: 61 [ +/- ]
Jon4ik, Просто я думаю не зачем грузить сервер лишними проверками, а так это конечно твое право как писать) Почему недочет? Лучше ведь сразу проверить админ это или нет. Если он не админ то остальной код бессмысленный. А проверку админов и вынести можно хотя бы так, если для удобства)
Гости не могут скачивать файлы
Jon4ik
Дата: Суббота, 02.01.2016, 17:07:19 | Сообщение # 9
Сообщений: 278
Репутация: 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
Сообщений: 278
Репутация: 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
Сообщений: 737
Репутация: 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
Сообщений: 278
Репутация: 7 [ +/- ]
Scarface_slv, Опять же как кому нравится)
Scarface_slv
Дата: Понедельник, 04.01.2016, 10:57:36 | Сообщение # 14
Сообщений: 737
Репутация: 61 [ +/- ]
Jon4ik, Дело не в нравится или нравится, дело в оптимизации плагина.
Например зачем постоянно проверять админ игрок или нет при написание в чат.
Лучше же будет если при заходе игрока проверить один раз и записать в переменную.
А потом через переменную уже узнавать админ или нет.
Код
OnClientPostAdminCheck(client) { if(GetUserAdmin(client) != INVALID_ADMIN_ID) g_bAdmin[client] = true; else g_bAdmin[client] = false; }
Sallcom
Дата: Понедельник, 04.01.2016, 20:26:01 | Сообщение # 15
Сообщений: 205
Репутация: 31 [ +/- ]
Scarface_slv, можно еще вот так, но смысл кода не изменится)Код
public OnClientPostAdminCheck(client) g_bAdmin[client] = GetUserAdmin(client) != INVALID_ADMIN_ID;
Сообщение отредактировал Sallcom - Понедельник, 04.01.2016, 20:26:49