Skocz do zawartości
Mesharsky

[CSGO] Mesharsky - Reset Score

Rekomendowane odpowiedzi

Mesharsky - Reset Score

 

Plugin polega na resetowaniu statystyk w tabeli graczom po wpisaniu danej komendy. Uproszczona wersja typu Abner ResetScore bez zbędnych funkcji.


Komendy:

!rs - Resetuje statystyki
!resetscore - Resetuje statystyki
!resets - Resetuje statystyki

Cvary:

Plik konfiguracyjny pluginu znajdziesz w csgo/cfg/sourcemod/Mesharsky_ResetScore.cfg

Instalacja:

Standardowa:

.smx do > addons/sourcemod/plugins

Kod źródłowy

 

Spoiler
/*	Copyright (C) 2020 Mesharsky
	This program is free software: you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation, either version 3 of the License, or
	(at your option) any later version.
	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.
	
	You should have received a copy of the GNU General Public License
	along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#include <sourcemod>
#include <sdktools>
#include <cstrike>
#include <multicolors>

#pragma newdecls required
#pragma semicolon 1

ConVar g_cvVipReset;
ConVar g_cvEnablePlugin;
ConVar g_cvRSVipFlag;
ConVar g_cvAnnounceAll;

public Plugin myinfo =
{
	name = "[CSGO] Mesharsky Simple Reset Score",
	author = "Mesharsky",
	description = "Resetuje statystyki gracza",
	version = "0.1",
	url = "https://go-code.pl"
};

public void OnPluginStart()
{
	RegConsoleCmd("sm_rs", Command_ResetScore);
	RegConsoleCmd("sm_resetscore", Command_ResetScore);
	RegConsoleCmd("sm_resets", Command_ResetScore);

	g_cvEnablePlugin = CreateConVar("resetscore_enable", "1", "1 = Pozostawia plugin włączony, 0 = wyłącza całkowicie funkcjonowanie pluginu", _, true, 0.0, true, 1.0);
	g_cvVipReset = CreateConVar("resetscore_viponly", "0", "1 = Zresetować statystyki może tylko gracz vip, 0 = Każdy może zresetować swoje statystyki", _, true, 0.0, true, 1.0);
	g_cvRSVipFlag = CreateConVar("resetscore_vipflag", "o", "Flaga którą posiada gracz VIP");
	g_cvAnnounceAll = CreateConVar("resetscore_announce", "1", "Powiadamiać na czacie wszystkich graczy kto zresetował statystyki? 1 = Tak, 0 = Nie", _, true, 0.0, true, 1.0);

	RS_DisableBackupScore(); /* Inaczej statystyki będą powracać w każdej rundzie */

	AutoExecConfig(true, "Mesharsky_ResetScore");
}

public void OnMapStart() 
{
    RS_DisableBackupScore(); /* Inaczej statystyki będą powracać w każdej rundzie */
}

public Action Command_ResetScore(int client, int args)
{
	if (!g_cvEnablePlugin.BoolValue)
		return Plugin_Handled;	

	if (g_cvVipReset.BoolValue && !IsPlayerVip(client))
	{
		CPrintToChat(client, "[ResetStatystyk] Ta funkcja jest dostępna tylko dla graczy [VIP]");
		return Plugin_Handled;
	}	

	if (IsValidClient(client))
	{
		SetEntProp(client, Prop_Data, "m_iFrags", 0);
    	SetEntProp(client, Prop_Data, "m_iDeaths", 0);

		CS_SetClientAssists(client, 0);
		CS_SetClientContributionScore(client, 0);
		CS_SetMVPCount(client, 0);

		CPrintToChat(client, "{lightred}[ResetStatystyk] {yellow}Pomyślnie zresetowałeś swoje statystyki w tabeli!");

		if (g_cvAnnounceAll.BoolValue)
		{
			char name[64];
			GetClientName(client, name, sizeof(name));
			
			CPrintToChatAll("{lightred}[ResetStatystyk] {yellow}Gracz {darkred}%s{yellow}, właśnie zresetował swoje statystyki w tabeli!", name);
		}

		return Plugin_Continue;	
	}

	return Plugin_Handled;
}

void RS_DisableBackupScore()
{
	ServerCommand("mp_backup_round_file \"\"");
    ServerCommand("mp_backup_round_file_last \"\"");
    ServerCommand("mp_backup_round_file_pattern \"\"");
    ServerCommand("mp_backup_round_auto 0");
}

stock bool IsPlayerVip(int client)
{
	char flag[32];
	g_cvRSVipFlag.GetString(flag, sizeof(flag));
	
	if (GetUserFlagBits(client) & ReadFlagString(flag) || GetAdminFlag(GetUserAdmin(client), Admin_Root))
		return true;
	return false;
}

stock bool IsValidClient(int client)
{
	if (client <= 0)return false;
	if (client > MaxClients)return false;
	if (!IsClientConnected(client))return false;
	if (IsClientReplay(client))return false;
	if (IsFakeClient(client))return false;
	if (IsClientSourceTV(client))return false;
	return IsClientInGame(client);
} 

/* © 2020 Coded with ❤ for Rias		  */
/* © 2020 Coded with ❤ for Akame			 */
/* © 2020 Coded with ❤ for Est		   */
/* © 2020 Coded with ❤ for Yoshino	   */
/* © 2020 Coded with ❤ for Koneko			*/
/* © 2020 Coded with ❤ for Erina			 */
/* © 2020 Coded with ❤ for Megumi			*/
/* © 2020 Coded with ❤ for Akeno			 */
/* © 2020 Coded with ❤ for Mero		  */
/* © 2020 Coded with ❤ for Papi		  */
/* © 2020 Coded with ❤ for Suu		   */
/* © 2020 Coded with ❤ for Lilith			*/
/* © 2020 Coded with ❤ for Mitsuha	   */
/* © 2020 Coded with ❤ for Matsuzaka	 */
/* © 2020 Coded with ❤ for Maki		  */
/* © 2020 Coded with ❤ for Alice			 */
/* © 2020 Coded with ❤ for Konno Yuuki   (*) Arigato! :< */

 

 

Do pobrania w załączniku ^.^

 

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

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
3 godziny temu, Jack122 napisał:

Plugin crashuje serwer. @Mesharsky

Właśnie wgrałem na serwer, przetestowałem. Żadnego crasha. 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić obrazków. Dodaj lub załącz obrazki z adresu URL.


×
×
  • Dodaj nową pozycję...