[CS: Source] Простой Resetscore.

Сообщения
15
Реакции
4
Простой Resetscore с проверкой присутствия игрока на сервере, ибо я слышал, что можно крашануть сервер таким способом.
PHP:
#pragma semicolon 1
#include <sourcemod>
#include <sdktools>

public Plugin:myinfo = 
{
	name = "Resetscore",
	author = "Sniper",
	description = "Плагин для сброса счёта",
	version = "1.2",
	url = "hlmod.ru"
}

public OnPluginStart()
{
	RegConsoleCmd( "say", Command_RS );
	RegConsoleCmd( "say_team", Command_RS );
}

public Action:Command_RS(client, args)
{
	decl String:Said[ 128 ];
	GetCmdArgString( Said, sizeof( Said ) - 1 );
	StripQuotes( Said );
	TrimString( Said );
	
	if( StrEqual( Said, "!resetscore" ) || StrEqual( Said, "!rs" ) || StrEqual( Said, "!rdk" ) || StrEqual( Said, "!кы" ) || StrEqual( Said, "!квл" ) )
	{
	  if(!IsValidClient(client))
	  {
		  return Plugin_Continue;
	  }
	  
	  if( GetClientDeaths( client ) == 0 && GetClientFrags( client ) == 0 )
	  {
	    PrintToChat( client, "\x03Ваш счёт и так равен 0" );
	    
	    return Plugin_Continue;
	  }
	  
	  ResetsCore(client);
	  PrintToChat( client, "\x03Вы обнулили свой счёт" );
	}
	
	return Plugin_Continue;
}

stock bool:IsValidClient(client, bool:alive = false)
{
	return (client >= 1 && client <= MaxClients && IsClientConnected(client) && IsClientInGame(client) && (alive == false || IsPlayerAlive(client)));
}

ResetsCore(client)
{
    SetEntProp(client, Prop_Data, "m_iFrags", 0);
    SetEntProp(client, Prop_Data, "m_iDeaths", 0);
}
 

Вложения

  • Resetscore.smx
    4.6 КБ · Просмотры: 60
Последнее редактирование:

SourceSamil

Мошенник
Сообщения
121
Реакции
28
Эм, код вроде бы wS, если не ошибаюсь.
И довольно много узлесс кода.
Вот самый простой способ:
C-подобный:
#pragma semicolon 1 
#include <sourcemod> 
#include <sdktools> 

public OnPluginStart() 
{ 
	RegConsoleCmd("rs",ResetScore);
	RegConsoleCmd("resetscore",ResetScore);
} 

public Action:ResetScore(iClient,iArgs) 
{
	if(iClient)
	{
		if(GetClientDeaths(iClient)==GetClientFrags(iClient)==0) 
		{
			PrintToChat(iClient,"\x03Ваш счёт и так равен 0"); 
		}
		else
		{
			SetEntProp(iClient,Prop_Data,"m_iFrags",0); 
			SetEntProp(iClient,Prop_Data,"m_iDeaths",0); 
			ResetsCore(iClient); 
			PrintToChat(iClient,"\x03Вы обнулили свой счёт"); 
		}
	}
	return Plugin_Continue; 
}
 
Сверху Снизу