Skocz do zawartości
SUPER TIMOR

[Rozwiązane] Przerobienie pluginu na komendę

Rekomendowane odpowiedzi

Heja!

Prosiłbym o przerobienie tego pluginu pod komendę z targetem, bądź @all, albo @me. Dostęp dla flagi F. Jeśli ktoś nie ma uprawnień, to po wpisaniu na kogoś efekt będzie zawsze ten sam - wyskoczy temu, co wpisał. O, tak byłoby cudownie. Dzięki z góry ?

 

https://forums.alliedmods.net/showthread.php?p=2466597
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
 

#include <sourcemod>
#include <emitsoundany>
#include <sdktools>
#include <sdkhooks>

#pragma semicolon 1
#pragma newdecls required 

#define MOD_TAG "[TAG]"
public Plugin myinfo =
{
	name = "Surprise!",
	author = "8GuaWong edit by Yamakashi",
	description = "Give Your Players A Scare!!",
	version = "1.0",
	url = "http://www.blackmarke7.com"
};


public void OnPluginStart()
{
	RegAdminCmd("sm_suprise", Suprise_CMD, ADMFLAG_SLAY);
}

public void OnMapStart()
{
	PrecacheDecal("materials/sprites/hello.vtf");
	PrecacheSoundAny("hello.mp3");
	
	AddFileToDownloadsTable("materials/sprites/hello.vtf");
	AddFileToDownloadsTable("materials/sprites/hello.vmt");	
	AddFileToDownloadsTable("sound/hello.mp3");
}

public Action Suprise_CMD(int client, int args)
{
    if(!(GetUserFlagBits(client) & ADMFLAG_SLAY))
    {
        PrintToChat(client, "%s O, tak byłoby cudownie.", MOD_TAG);
        return Plugin_Handled;
    }
	
	char arg1[64];
	GetCmdArg(1, arg1, sizeof(arg1));
	int target = FindTarget(0, arg1);
	
	if(IsClientValid(target))
	{
		SetClientOverlay(target, "sprites/hello");
		EmitSoundToClientAny(target, "hello.mp3");
		CreateTimer(6.0, RemoveScare, GetClientUserId(client));
	}
	else
	{
		PrintToConsole(client, "%s Nie odnaleziono wybranego gracza!", MOD_TAG);
	}

	return Plugin_Continue;
}

public Action RemoveScare(Handle timer, int userid)
{
	int client = GetClientOfUserId(userid);
	if (!IsClientValid(client))
		return Plugin_Stop;
	SetClientOverlay(client, "");
	return Plugin_Stop;
}

bool SetClientOverlay(int client, char [] strOverlay)
{
	if (IsClientValid(client))
	{
		int iFlags = GetCommandFlags("r_screenoverlay") & (~FCVAR_CHEAT);
		SetCommandFlags("r_screenoverlay", iFlags);	
		ClientCommand(client, "r_screenoverlay \"%s\"", strOverlay);
		return true;
	}
	return false;
}

bool IsClientValid(int client)
{
	if(client > 0 && client <= MaxClients && IsClientInGame(client))
		return true;
	return false;
}

 

 

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

Edytowane przez Yamakashi

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dzięki ? miałem na myśli jednak to, że osoba bez flagi próbująca strzelić komuś jumpscare, sama zostanie nim uraczona. "O, tak byłoby cudownie", to tylko takie wtrącenie ? ale oka, ja sobie przerobię. Chodziło mi o targetowanie głównie, bo mi coś nie śmigało ?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Najwyraźniej nie zauważyłem tego fragmentu. Masz tu poprawiony kod.

 

#include <sourcemod>
#include <emitsoundany>
#include <sdktools>
#include <sdkhooks>

#pragma semicolon 1
#pragma newdecls required 

#define MOD_TAG "[TAG]"
public Plugin myinfo =
{
	name = "Surprise!",
	author = "8GuaWong edit by Yamakashi",
	description = "Give Your Players A Scare!!",
	version = "1.0",
	url = "http://www.blackmarke7.com"
};


public void OnPluginStart()
{
	RegAdminCmd("sm_suprise", Suprise_CMD, ADMFLAG_SLAY);
}

public void OnMapStart()
{
	PrecacheDecal("materials/sprites/hello.vtf");
	PrecacheSoundAny("hello.mp3");
	
	AddFileToDownloadsTable("materials/sprites/hello.vtf");
	AddFileToDownloadsTable("materials/sprites/hello.vmt");	
	AddFileToDownloadsTable("sound/hello.mp3");
}

public Action Suprise_CMD(int client, int args)
{
	if(!(GetUserFlagBits(client) & ADMFLAG_SLAY))
	{
		SetClientOverlay(client, "sprites/hello");
		EmitSoundToClientAny(client, "hello.mp3");
		CreateTimer(3.0, RemoveScare2, GetClientUserId(client));
		PrintToChat(client, "%s Coś Ci nie wyszło kolego :/.", MOD_TAG);
		return Plugin_Handled;
	}


	char arg1[64];
	GetCmdArg(1, arg1, sizeof(arg1));
	int target = FindTarget(0, arg1);
	
	if(IsClientValid(target))
	{
		SetClientOverlay(target, "sprites/hello");
		EmitSoundToClientAny(target, "hello.mp3");
		CreateTimer(6.0, RemoveScare, GetClientUserId(client));
	}
	else
	{
		PrintToConsole(client, "%s Nie odnaleziono wybranego gracza!", MOD_TAG);
	}

	return Plugin_Continue;
}

public Action RemoveScare(Handle timer, int userid)
{
	int client = GetClientOfUserId(userid);
	if (!IsClientValid(client))
		return Plugin_Stop;
	SetClientOverlay(client, "");
	return Plugin_Stop;
}
public Action RemoveScare2(Handle timer, int userid)
{
	int client = GetClientOfUserId(userid);
	if (!IsClientValid(client))
		return Plugin_Stop;
	SetClientOverlay(client, "");
	return Plugin_Stop;
}

bool SetClientOverlay(int client, char [] strOverlay)
{
	if (IsClientValid(client))
	{
		int iFlags = GetCommandFlags("r_screenoverlay") & (~FCVAR_CHEAT);
		SetCommandFlags("r_screenoverlay", iFlags);	
		ClientCommand(client, "r_screenoverlay \"%s\"", strOverlay);
		return true;
	}
	return false;
}

bool IsClientValid(int client)
{
	if(client > 0 && client <= MaxClients && IsClientInGame(client))
		return true;
	return false;
}

 

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

Edytowane przez Yamakashi

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Na razie zamykam. Gdyby pojawiły się jakieś problemy, zgłoś ten temat, lub PW

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ę...