Skocz do zawartości
Brum Brum

[CS:GO] Deathrun VIP (ADEPT_Deathrun_VIP)

Rekomendowane odpowiedzi

Opis: Dodaje jeden respawn na rundę dla vipa [!respawn] pozwala vipowi zmienić grawitację [!g] oraz przywitanie przy wejściu VIP`a na serwer.

VIP jest przygotowany pod -> 

KOD:

Spoiler

#include <deathrun>
#include <cstrike>
#include <clientprefs>
#pragma semicolon 1
#pragma newdecls required

#define MOD_TAG "\x01\x0B★ \x07[ADEPT -> DR VIP]\x04 "
Handle g_gravity;
bool Used[MAXPLAYERS + 1];
bool LowGravity[MAXPLAYERS + 1];

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

public void OnPluginStart()
{
	g_gravity = RegClientCookie("sm_adept_gravity", "Zapisuje dane o grawitacji", CookieAccess_Protected);
	RegConsoleCmd("sm_respawn", CMD_Respawn);
	RegConsoleCmd("sm_g", CMD_G);
	HookEvent("round_start", Event_RoundStart);
	HookEvent("player_spawn", Event_PlayerSpawn);
}

public Action Event_RoundStart(Event event, const char[] name, bool dontBroadcast)
{
	for (int i = 1; i < MaxClients; i++)
	{
		if (IsValidClient(i))
		{
			Used[i] = false;
		}
	}
}

public Action Event_PlayerSpawn(Event event, const char[] name, bool dontBroadcast)
{
	int client = GetClientOfUserId(event.GetInt("userid"));
	if (IsPlayerVIP(client) && !dr_IsPlayerTerrorist(client))
	{
		if (LowGravity[client])SetEntityGravity(client, 0.65);
		else SetEntityGravity(client, 1.0);
	}
}

public Action CMD_Respawn(int client, int args)
{
	if (IsPlayerVIP(client))
	{
		if (!IsPlayerAlive(client))
		{
			if (!Used[client])
			{
				CS_RespawnPlayer(client);
				Used[client] = true;
			}
			else PrintToChat(client, "%s Użyłeś już jednego respawnu na rudnę!", MOD_TAG);
		}
		else PrintToChat(client, "%s Musisz być martwy aby się zrespić!", MOD_TAG);
	}
	else PrintToChat(client, "%s Musisz mieć VIP`a aby się zrespić", MOD_TAG);
}

public Action CMD_G(int client, int args)
{
	if (IsPlayerVIP(client))
	{
		if (!dr_IsPlayerTerrorist(client))
		{
			Menu menu = new Menu(Menu_Handler);
			menu.SetTitle("ADEPT -> Wybierz grawitację!");
			menu.AddItem("", "Normalna grawitacja");
			menu.AddItem("", "65% grawitacji");
			menu.Display(client, 30);
		}
		else PrintToChat(client, "%s Tylko CT może zmienić grawitację!", MOD_TAG);
	}
	else PrintToChat(client, "%s Musisz mieć VIP`a aby zmienić swoją grawitację!", MOD_TAG);
}

public int Menu_Handler(Menu menu, MenuAction action, int client, int item)
{
	switch (action)
	{
		case MenuAction_Select:
		{
			switch (item)
			{
				case 0:
				{
					SetEntityGravity(client, 1.0);
					LowGravity[client] = false;
					PrintToChat(client, "%s Wybrałeś standardową grawitację!", MOD_TAG);
				}
				case 1:
				{
					SetEntityGravity(client, 0.65);
					LowGravity[client] = true;
					PrintToChat(client, "%s Wybrałeś niską grawitację!", MOD_TAG);
				}
			}
		}
		case MenuAction_End:delete menu;
	}
}

public void OnClientCookiesCached(int client)
{
	char value[11];
	GetClientCookie(client, g_gravity, value, sizeof(value));
	LowGravity[client] = StringToInt(value);
}

public void OnClientDisconnect(int client)
{
	if (AreClientCookiesCached(client))
	{
		char value[11];
		Format(value, sizeof(value), "%d", LowGravity[client]);
		SetClientCookie(client, g_gravity, value);
	}
	LowGravity[client] = false;
}

public void OnClientPostAdminCheck(int client)
{
	if (IsPlayerVIP(client))
	{
		SetHudTextParams(-1.0, 0.125, 5.0, 0, 255, 0, 255, 0, 0.25, 1.5, 0.5);
		for (int i = 1; i <= MaxClients; i++)
		{
			if (IsValidClient(i))
			{
				ShowHudText(i, -1, "Właśnie na serwer wchodzi\nVIP %N", client);
			}
		}
	}
}

public bool IsPlayerVIP(int client)
{
	if (IsValidClient(client) && GetUserFlagBits(client) & ADMFLAG_CUSTOM1 || GetUserFlagBits(client) & ADMFLAG_ROOT)return true;
	else return false;
}

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

 

 

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

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