Skocz do zawartości
Ruzio

[Rozwiązane] Prosba o przerobienie pluginu

Rekomendowane odpowiedzi

Witam wszystkich

Chcialbym aby ten kod przerobic, tak by dzialal on pod komenda "!wycisz" [ON/OFF] i mogl on wlaczac i wylaczac to tylko admin

Po wlaczeniu tej komendy pisalo by na chacie

"Komenda wlaczona" tylko dla osoby wywolujaca ta komende

Po wylaczeniu

"Komenda wlaczona" tylko dla osoby wywolujaca ta komende

 

#pragma semicolon 1

#define DEBUG

#define PLUGIN_AUTHOR "NWayne"
#define PLUGIN_VERSION "1.00"

#include <sourcemod>
#include <cstrike>
#include <sdkhooks>
#include <sdktools>
#include <basecomm>
#include <voiceannounce_ex>

#pragma newdecls required

public Plugin myinfo = 
{
    name = "[CS:GO/CS:S] When admin talks better stay quiet",
    author = PLUGIN_AUTHOR,
    description = "The plugin mutes all of player when admin's talking!",
    version = PLUGIN_VERSION,
    url = "https://www.nwayne.eu/"
};

ConVar Notify_Enabled;

bool g_playersnotify[MAXPLAYERS + 1];

public void OnPluginStart()
{
    Notify_Enabled = CreateConVar("Is_Notify_Enabled", "1", "1 - Player will see the notification | Diffrent value makes it off");
    RegConsoleCmd("sm_powiadomienia", Cmd_Notify);
}

public void OnClientPutInServer(int client)
{
    g_playersnotify[client] = true;
}

public void OnClientDisconnect(int client)
{
    g_playersnotify[client] = false;
}

public Action Cmd_Notify(int client, int args)
{
    if(IsClientInGame(client))
    {
        if(g_playersnotify[client] == true)
        {
            g_playersnotify[client] = false;
            PrintHintText(client, "Powiadomienia zostaly<span color='#FF0000'> Wylaczone</span>!");
            
        } else {
        
            g_playersnotify[client] = true;
            PrintHintText(client, "Powiadomienia zostaly<span color='#00FF00'> Wlaczone</span>!");
            
        }    
    }
}

public void OnClientSpeakingEx(int client)
{
    if (GetAdminFlag(GetUserAdmin(client), Admin_Ban))
    {
        for (int i = 1; i <= MaxClients; i++)
        {
            if (IsClientInGame(i))
            {
                /* < - Wysyla Powiadomienie - > */
                PrintNotify(i);
                /* < - Wycisza Wszystkich Wszystkich - > */
                SetClientListeningFlags(i, VOICE_MUTED);
                /* <- Sprawdza czy gracz posiada flage admina i czy nie byl wczesniej mutowany! -> */
                if (GetAdminFlag(GetUserAdmin(i), Admin_Ban) && !BaseComm_IsClientMuted(i))
                {
                    /* <- Jesli wszystko jest okej, pozwala mu mowic -> */
                    SetClientListeningFlags(i, VOICE_NORMAL);
                }
            }
        }
    }
}

public void OnClientSpeakingEnd(int client)
{
    for (int i = 1; i <= MaxClients; i++)
    {
        if(IsClientInGame(i))
        {
            if (!BaseComm_IsClientMuted(i))
            {
                SetClientListeningFlags(i, VOICE_NORMAL);
            }
        }
    }
}

public Action PrintNotify(int client)
{
    if (GetConVarInt(Notify_Enabled) == 1) 
        return Plugin_Continue;
        
    if(g_playersnotify[client] == true && !GetAdminFlag(GetUserAdmin(client), Admin_Ban))
    {
        PrintHintText(client, "%N zostales wyciszony! Przemawia<span color='#FF0000'> Admin</span>!", client);
    }
    return Plugin_Handled;
}

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wiadomość wygenerowana automatycznie

 

Problem został rozwiązany

Jeżeli się z tym nie zgadzasz, raportuj ten post

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

×
×
  • Dodaj nową pozycję...