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] Deathrun VIP (ADEPT_Deathrun_VIP)

Recommended Posts

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!

 

  • Lubię to! 7

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