Jump to content
  • Chmurka
  • Boróweczka
  • Jabłuszko
  • Limonka
  • Czekoladka
  • Węgielek
Sign in to follow this  
Brum Brum

[CS:GO] Blokowanie zmiany teamu (ADEPT_BlockTeamChange)

Recommended Posts

Opis

Plugin blokuje zmianę teamu dla zwykłych graczy, natomiast admin może normalnie zmieniać team.

 

Kod

Spoiler

#include <cstrike>

#pragma semicolon 1
#pragma newdecls required

ConVar gc_Enable, gc_AllowAdmin, gc_MOD_TAG, gc_ChangeTeamNotification;

char MOD_TAG[64];

public Plugin myinfo = 
{
	name = "ADEPT --> BlockTeamChange", 
	description = "Autorski Plugin StudioADEPT.net", 
	author = "Brum Brum", 
	version = "1.0", 
	url = "http://www.StudioADEPT.net/forum", 
};

public void OnPluginStart()
{
	gc_Enable = CreateConVar("sm_blockteamchange_enable", "1", "1-Zakazuje zmiany teamu po wybraniu 0-Zezwala na zmianę teamu", _, true, 0.0, true, 1.0);
	gc_AllowAdmin = CreateConVar("sm_blockteamchange_admin", "0", "1-Zezwala na zmiane teamu adminom", _, true, 0.0, true, 1.0);
	gc_ChangeTeamNotification = CreateConVar("sm_blockteamchange_notification", "1", "0-off 1-chat 2-hint", _, true, 0.0, true, 2.0);
	gc_MOD_TAG = CreateConVar("sm_blockteamchange_mod_tag", "ADEPT", "TAG pokazywany na czacie/hudzie");
	gc_MOD_TAG.AddChangeHook(MOD_TAGNameChanged);
	gc_MOD_TAG.GetString(MOD_TAG, sizeof(MOD_TAG));
	AddCommandListener(JoinTeam, "jointeam");
	AddCommandListener(JoinTeam, "spectate");
	AutoExecConfig(true, "ADEPT_BlockTeamChange");
}

public void MOD_TAGNameChanged(ConVar convar, const char[] oldValue, const char[] newValue)
{
	Format(MOD_TAG, sizeof(MOD_TAG), newValue);
}

public Action JoinTeam(int client, const char[] command, int args)
{
	if (!gc_Enable.BoolValue)return Plugin_Continue;
	
	if (GetClientTeam(client) == CS_TEAM_NONE || GetClientTeam(client) == CS_TEAM_SPECTATOR)return Plugin_Continue;
	
	if (gc_AllowAdmin.BoolValue && IsPlayerAdmin(client))return Plugin_Continue;
	
	NotifyClient(client);
	return Plugin_Handled;
}

void NotifyClient(int client)
{
	if (!IsValidClient(client))return;
	if (!gc_ChangeTeamNotification.BoolValue)return;
	
	switch (gc_ChangeTeamNotification.IntValue)
	{
		case 1:PrintToChat(client, "\x01\x0B★ \x07[%s -> BlockTeamChange]\x04 Zmiana teamu została zablokowana!", MOD_TAG);
		case 2:PrintHintText(client, "<font color='#ff0000'>[%s -> BlockTeamChange]\n<font color='#00ff00'>Zmiana teamu została zablokowana!</font>", MOD_TAG);
	}
	return;
}

bool IsPlayerAdmin(int client)
{
	if (GetUserFlagBits(client) & ADMFLAG_GENERIC)return true;
	if (GetUserFlagBits(client) & ADMFLAG_ROOT)return true;
	
	return false;
}

bool IsValidClient(int client)
{
	if (!(1 <= client <= MaxClients) || !IsClientInGame(client) || !IsClientConnected(client) || IsFakeClient(client) || IsClientSourceTV(client))
		return false;
	
	return true;
} 

 

 

 

ADEPT_BlockTeamChange.sp
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!

Edited by Brum Brum
update
  • Lubię to! 1
  • Kocham to! 1

Share this post


Link to post
Share on other sites

@Update
Przepisanie tego kodu, bo był słaby ;/ 
Dodano ConVar, który pozwala włączyć/wyłączyć opcję przechodzenia adminom.
Dodano ConVar do wyboru pokazywania informacji o zablokowanej zmianie drużyny chat/hud oraz opcja wyłączenia
Dodano ConVar z którego można zmieniać TAG, który jest w wiadomości/hudzie

  • Lubię to! 3

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

Nasza historia

Na początku byliśmy małą grupą internetowych znajomych, którzy stwierdzili, że potrzebne jest solidne forum, na którym znajdą się ludzie z dużą wiedzą programistyczną ukierunkowaną na CS:GO. Pomysł powstał na początku 2018 roku, a parę miesięcy później, 19 kwietnia, powstała ta strona internetowa. Jako alternatywna odpowiedź na inne tego typu miejsca, poważnie podeszliśmy do tematu, najpierw tłumacząc angielską dokumentację SourceMod'a na język polski, a potem pisząc rozległe poradniki i wypełniając forum najpotrzebniejszymi rzeczami dla właścicieli serwerów i programistów. Cała nasza Ekipa jest dumna z pracy jaką w to włożyliśmy i cieszymy się że zbierają się wokół nas zarówno ludzie znający tematy sourcepawn'a i konfiguracji, jak i również nowe twarze w tym "biznesie", którym z chęcią niesiemy wiedzę oraz pomoc w rozwiązywaniu problemów.

Największe modyfikacje serwerowe

×
×
  • Create New...