Jump to content
assignment_ind Existing user? Sign In

Sign In



person_add Sign Up
Go-Code.pl - Support SourceMod i Pluginy CS:GO
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! 2

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.


O NAS Jesteśmy społecznością łączącą ludzi, którzy dzielą pasję poznawania CS:GO od strony programistycznej. Posiadamy duże zaplecze merytoryczne i zawsze cieszymy się, gdy dołączają do nas osoby gotowe do nauki. Gwarantujemy, że z odrobiną wytrwałości i otwartym umysłem bardzo szybko napiszesz swój pierwszy plugin. Zapraszamy! 🙂
Szablon wykonany z dużą ilością przez cyberpixelz / Mesharsky / Sitefuture
Forum dumnie napędzane przez: Invision Power Services, Inc.
×
×
  • Create New...