Может просто присваивать игрокам любой флаг и на этот флаг через админ овверидес привязать что нужно?Можно ли через плагин убрать доступ к команде администраторам, Чтобы их могли использовать игроки без админ прав ?
Надо именно сделать чтобы все могли использоватьМожет просто присваивать игрокам любой флаг и на этот флаг через админ овверидес привязать что нужно?
Встречал плагины автовыдачи флага при заходе на сервер.Если найдете его,дело за малым присвоить нужные команды на этот флаг и все.Надо именно сделать чтобы все могли использовать
Есть несколько путей выхода из этой ситуации:Можно ли через плагин убрать доступ к команде администраторам, Чтобы их могли использовать игроки без админ прав ?
Overrides
{
// Команда Флаг
"sm_ungag" ""
"sm_unmute" ""
"sm_unsilence" ""
"sm_ballset" ""
"sm_balL_reload" ""
"sm_ballsetcredits" ""
"sm_respawnsk" ""
"sm_respawntype" ""
"sm_respawntimer" ""
"sm_respawnlives" ""
"sm_ballset" ""
"sm_respawntimer" ""
"sm_respawnlives" ""
}
Groups
{
"Default"
{
"flags" "" // Сюда нужные флаги
"immunity" "1"
}
}
[Любая игра] - SwapTeamНашел на просторах интернета, плагин под CS:S.
Из данного плагина нужна возможность перемещать игроков в спектора.
Можно ли изменить под CS:GO?
Есть несколько путей выхода из этой ситуации:
1. Как писал @Oligarx1488, можно через addons\sourcemod\configs\admin_overrides.cfg выставить на нужные команды флаги (пустые) для доступа игрокам:
2. Через файл addons\sourcemod\configs\admin_groups.cfg (не проверено) , вставляя нужные флаги доступаPHP:Overrides { // Команда Флаг "sm_ungag" "" "sm_unmute" "" "sm_unsilence" "" "sm_ballset" "" "sm_balL_reload" "" "sm_ballsetcredits" "" "sm_respawnsk" "" "sm_respawntype" "" "sm_respawntimer" "" "sm_respawnlives" "" "sm_ballset" "" "sm_respawntimer" "" "sm_respawnlives" "" }
PHP:Groups { "Default" { "flags" "" // Сюда нужные флаги "immunity" "1" } }
1 вариант повнимательнее ознакомься,это не махинацииМожно ли как-то временно прописать игроку админа если у него его нету ? И потом забрать ? Просто эта махинация с админ флагами через плагин не понятна
Для добавления нужного игрока в админы, пропишите его в admins.cfg, там можете и убирать когда понадобится...Можно ли как-то временно прописать игроку админа если у него его нету ? И потом забрать ? Просто эта махинация с админ флагами через плагин не понятна
Перекомпилировать плагин не требуется, просто в overrides пропишите те команды, которые нужно открыть в свободный доступ, игрок при этом не становится админом!Мне надо прописать временного админа, чтобы игрок после выхода перестал быть админом автоматически. Мне что нужно то. Мне надо чтобы чудом команды которые требуют админ права, игрок мог выполнить вообще не находясь в админах и не перекомпилируя сами плагины с командами, прописывать overrides
#pragma semicolon 1
#include <sourcemod>
#include <sdktools>
#include <csgo_colors>
#define PLUGIN_NAME "Stop Map Music"
#define PLUGIN_VERSION "1.0.0"
#define MAX_EDICTS 2048
new Float:g_fCmdTime[MAXPLAYERS+1];
new g_iSoundEnts[MAX_EDICTS];
new g_iNumSounds;
new bool:disabled[MAXPLAYERS + 1];
public Plugin:myinfo =
{
name = PLUGIN_NAME,
author = "GoD-Tony [Fixed by The Count]",
description = "Allows clients to stop ambient sounds played by the map",
version = PLUGIN_VERSION,
url = "http://www.sourcemod.net/"
};
public OnPluginStart()
{
CreateConVar("sm_stopmusic_version", PLUGIN_VERSION, "Stop Map Music", FCVAR_PLUGIN|FCVAR_NOTIFY|FCVAR_DONTRECORD);
HookEvent("round_start", Event_RoundStart, EventHookMode_PostNoCopy);
RegConsoleCmd("sm_music", Command_StopMusic, "Toggles map music");
CreateTimer(10.0, Post_Start, _, TIMER_REPEAT);
}
public OnClientDisconnect_Post(client)
{
g_fCmdTime[client] = 0.0;
disabled[client] = false;
}
public Event_RoundStart(Handle:event, const String:name[], bool:dontBroadcast)
{
g_iNumSounds = 0;
UpdateSounds();
CreateTimer(0.8, Post_Start);
}
public OnEntityCreated(entity, const String:classname[]){
if(!StrEqual(classname, "ambient_generic", false)){
return;
}
new String:sSound[PLATFORM_MAX_PATH];
GetEntPropString(entity, Prop_Data, "m_iszSound", sSound, sizeof(sSound));
new len = strlen(sSound);
if (len > 4 && (StrEqual(sSound[len-3], "mp3") || StrEqual(sSound[len-3], "wav"))){
g_iSoundEnts[g_iNumSounds++] = EntIndexToEntRef(entity);
}else{
return;
}
new ent = -1;
for(new i=1;i<=MaxClients;i++){
if(!disabled[i] || !IsClientInGame(i)){ continue; }
for (new u=0; u<g_iNumSounds; u++){
ent = EntRefToEntIndex(g_iSoundEnts[u]);
if (ent != INVALID_ENT_REFERENCE){
GetEntPropString(ent, Prop_Data, "m_iszSound", sSound, sizeof(sSound));
Client_StopSound(i, ent, SNDCHAN_STATIC, sSound);
}
}
}
}
UpdateSounds(){
new String:sSound[PLATFORM_MAX_PATH];
new entity = INVALID_ENT_REFERENCE;
while ((entity = FindEntityByClassname(entity, "ambient_generic")) != INVALID_ENT_REFERENCE)
{
GetEntPropString(entity, Prop_Data, "m_iszSound", sSound, sizeof(sSound));
new len = strlen(sSound);
if (len > 4 && (StrEqual(sSound[len-3], "mp3") || StrEqual(sSound[len-3], "wav")))
{
g_iSoundEnts[g_iNumSounds++] = EntIndexToEntRef(entity);
}
}
}
public Action:Post_Start(Handle:timer){
if(GetClientCount() <= 0){
return Plugin_Continue;
}
new String:sSound[PLATFORM_MAX_PATH];
new entity = INVALID_ENT_REFERENCE;
for(new i=1;i<=MaxClients;i++){
if(!disabled[i] || !IsClientInGame(i)){ continue; }
for (new u=0; u<g_iNumSounds; u++){
entity = EntRefToEntIndex(g_iSoundEnts[u]);
if (entity != INVALID_ENT_REFERENCE){
GetEntPropString(entity, Prop_Data, "m_iszSound", sSound, sizeof(sSound));
Client_StopSound(i, entity, SNDCHAN_STATIC, sSound);
}
}
}
return Plugin_Continue;
}
public Action:Command_StopMusic(client, args)
{
if (!client || g_fCmdTime[client] > GetGameTime())
return Plugin_Handled;
if(disabled[client]){
disabled[client] = false;
CGOPrintToChat(client, "[SM]: Музыка {GREEN}включиться {DEFAULT}на следующем треке...");
return Plugin_Handled;
}
g_fCmdTime[client] = GetGameTime() + 5.0;
CGOPrintToChat(client, "[SM]: Музыка на карте {RED}выключена{DEFAULT}...");
new String:sSound[PLATFORM_MAX_PATH], entity;
for (new i = 0; i < g_iNumSounds; i++)
{
entity = EntRefToEntIndex(g_iSoundEnts[i]);
if (entity != INVALID_ENT_REFERENCE)
{
GetEntPropString(entity, Prop_Data, "m_iszSound", sSound, sizeof(sSound));
Client_StopSound(client, entity, SNDCHAN_STATIC, sSound);
}
}
disabled[client] = true;
return Plugin_Handled;
}
stock Client_StopSound(client, entity, channel, const String:name[])
{
EmitSoundToClient(client, name, entity, channel, SNDLEVEL_NONE, SND_STOP, 0.0, SNDPITCH_NORMAL, _, _, _, true);
}
Попробуй это: [ANY] Block / Limit Chat (1.0.2) - AlliedModdersРебят,есть ли плагин отключает игрокам чат и оставляют право писать в чат только админу с флагом a?
Ребят,есть ли плагин отключает игрокам чат и оставляют право писать в чат только админу с флагом a?
#pragma semicolon 1
#define DEBUG
#include <sourcemod>
#include <sdktools>
//#pragma newdecls required
public void OnPluginStart()
{
}
public Action:OnClientSayCommand(author, const String:command[], const String:message[])
{
if (!CheckAdminChar(author, "a")){
PrintToChat(author, "Говорить может только администратор");
return Plugin_Handled;
}
}
stock bool CheckAdminChar(int client, const char[] cflag)
{
if(GetUserAdmin(client)==INVALID_ADMIN_ID)
return false;
new AdminFlag:flag;
if(FindFlagByChar(cflag[0], flag))
return GetAdminFlag(GetUserAdmin(client), flag);
return false;
}
Работает,спасибо большое =)C-подобный:#pragma semicolon 1 #define DEBUG #include <sourcemod> #include <sdktools> //#pragma newdecls required public void OnPluginStart() { } public Action:OnClientSayCommand(author, const String:command[], const String:message[]) { if (!CheckAdminChar(author, "a")){ PrintToChat(author, "Говорить может только администратор"); return Plugin_Handled; } } stock bool CheckAdminChar(int client, const char[] cflag) { if(GetUserAdmin(client)==INVALID_ADMIN_ID) return false; new AdminFlag:flag; if(FindFlagByChar(cflag[0], flag)) return GetAdminFlag(GetUserAdmin(client), flag); return false; }
Хз, не проверял...Кто может чутка переписать плагин, по дефолту чтобы включить показ хп нужно прописать команду !bhud, нужно чтобы по умолчанию она уже была включена без прописывания команды.