Skocz do zawartości
  • Chmurka
  • Boróweczka
  • Jabłuszko
  • Limonka
  • Czekoladka
  • Węgielek
Zaloguj się, aby obserwować  
Mesharsky

[CSGO] Vip by Mesharsky (Updated)

Polecane posty

Wylaczylem 😞 to jest najgorsze jutro się pobawie Jeszcze moze cos wymysle

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

@Mesharsky powiem tak, że przepraszam może miałem starszą wersje vipa ale już działa jak ściągnąłem z tego tematu.. nie wiem co się stało.

  • Lubię to! 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jeżeli ktoś chce z obecnego vipa zrobić mVipa bo widziałem że o to były dymy to tutaj daje mVipa, pamiętaj by nie ustawiać tej samej flagi co zwykły Vip czyli zamiast domyślnie o tam dodaj "S".

 

KOD ŹRÓDŁOWY

 

Spoiler

/*	Copyright (C) 2019 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/>.
*/

/*================ Aktualizacje ================

~ Wersja "0.1" >> Pierwsze wydanie pluginu.
~ Wersja "0.2" >> Przepisanie pluginy na nowy syntax.
~ Wersja "0.3" >> Poprawiono większość kodu, pieniądze za rozbrojenie oraz podłożenie bomby już działają.
~ Wersja "0.4" >> Dodano cvary.
~ Wersja "0.5" >> Dodano więcej cvarów oraz poprawiono kilka błędów.
~ Wersja "0.6" >> Naprawiono błąd który powodował że menu broni dla vip'a wyświetlało się przy starcie rundy jak się zmieniały drużyny, dodano więcej cvarów.
~ Wersja "0.7" >> Dodano pieniądze za wygranie rundy, poprawiono kod na zakończenie rundy.
~ Wersja "0.8" >> Dodano przywitanie/pożegnanie dla vip'a na czacie oraz w HINT BOX, dodano więcej cvarów oraz poprawiono kod. // USUNIĘTE
~ Wersja "0.9" >> Dodano tag [VIP] w cvarach.
~ Wersja "1.0" >> Zmieniono kolor wiadomości na czacie, dodano cvar dotyczący działaniu podwójnego skoku.
~ Wersja "1.1" >> Dodano nowy cvar oraz poprawiono kod na podwójny skok.
~ Wersja "1.2" >> Teraz granaty nie spadają na ziemie przy nowej rundzie.
~ Wersja "1.3" >> Dodano darmowego vip'a od do danej godziny.
~ Wersja "1.4" >> Poprawki i sporo nowych rzeczy.

TODO

~ Zjeść coś i dupnąć monsterka.
~ Uga buga
~ Buga uga

==============================================*/

/* << Includy >> */
#include <cstrike>
#include <sourcemod>
#include <sdktools>
#include <sdkhooks>

/* << Define >> */
#define NAZWA_PLUGINU "[CSGO] Zaawansowany system VIP na serwery CSGO"
#define OPIS_PLUGINU "[CSGO] Zaawansowany system VIP na serwery CSGO"
#define AUTOR_PLUGINU "Mesharsky"
#define WERSJA_PLUGINU "1.4"

#define VIP_PREFIX " ★ \x02[mVIP]\x04"

/* << Pragma >> */
#pragma newdecls required
#pragma semicolon 1

/* << Macro >> */
#define LoopClients(%1) for(int %1 = 1; %1 <= MaxClients; %1++)\
if(IsClientInGame(%1))

/* << ConVary >> */
ConVar g_cvmWiadomosciChat;
ConVar g_cvmVipyOnline;
ConVar g_cvmPrzywitanieVip;
ConVar g_cvmPozegnanieVip;
ConVar g_cvmVipPisanieWHud;
ConVar g_cvmVipHP;
ConVar g_cvmMaxHP;
ConVar g_cvmVipHeadShotHP;
ConVar g_cvmVipKillHP;
ConVar g_cvmPredkoscGracza;
ConVar g_cvmGrawitacja;
ConVar g_cvmVipArmor;
ConVar g_cvmVipHelm;
ConVar g_cvmGranatyRunda;
ConVar g_cvmHEGranat;
ConVar g_cvmFlashGranat;
ConVar g_cvmSmokeGranat;
ConVar g_cvmDecoyGranat;
ConVar g_cvmHealGranat;
ConVar g_cvmIncGranat;
ConVar g_cvmMolotovGranat;
ConVar g_cvmTaGranat;
ConVar g_cvmVipPieniadzeNaStart;
ConVar g_cvmVipPieniadzePodlozenie;
ConVar g_cvmVipPieniadzeRozbrojenie;
ConVar g_cvmVipHeadShotPieniadze;
ConVar g_cvmVipKillPieniadze;
ConVar g_cvmVipKillKnifePieniadze;
ConVar g_cvmVipWygranaPieniadze;
ConVar g_cvmTagTabela;
ConVar g_cvmVipTagTabela;
ConVar g_cvmPodwojnySkok;
ConVar g_cvmMenuBroni;
ConVar g_cvmRundaMenuBroni;
ConVar g_cvmDarmowyVip;
ConVar g_cvmVipOdGodziny;
ConVar g_cvmVipDoGodziny;

/* << Inty >> */
int LiczbaRund = 0;
int DarmowyVip = 0;
int g_iaGrenadeOffsets[] =  { 15, 17, 16, 14, 18, 17 };

/* << Boole >> */
bool g_bWiadomoscHud[MAXPLAYERS+1];


/* << Informacje o pluginie >> */
public Plugin myinfo =
{
	name = NAZWA_PLUGINU,
	author = AUTOR_PLUGINU,
	description = OPIS_PLUGINU,
	version = WERSJA_PLUGINU,
	url = "http://steamcommunity.com/id/MesharskyH2K"
}

public void OnPluginStart()
{
	HookEvent("round_start", Event_RoundStart);
	HookEvent("player_spawn", Event_TagTable);
	HookEvent("player_spawn", Event_PlayerSpawn);
	HookEvent("player_death", Event_PlayerDeath);
	HookEvent("bomb_planted", Event_BombPlanted);
	HookEvent("bomb_defused", Event_BombDefused);
	HookEvent("round_end", Event_RoundEnd);
	HookEvent("announce_phase_end", ResetPoZmianie);
	HookEvent("cs_intermission", ResetPoZmianie);
	
	RegConsoleCmd("sm_vips", PokazVipyOnline);
	RegConsoleCmd("sm_vipy", PokazVipyOnline);
	RegConsoleCmd("sm_vipsay", Komenda_Hud);

	/* << ConVary >> */
	g_cvmWiadomosciChat = CreateConVar("mvip_wiadomosci_chat", "1", "Czy pokazywać różne wiadomości na chacie np za zabicie.");
	g_cvmVipyOnline = CreateConVar("mvip_vipy_online", "1", "Czy włączyć funkcje Vipy Online?");
	g_cvmPrzywitanieVip = CreateConVar("mvip_przywitanie", "1", "Czy włączyć przywitanie Vipa?");
	g_cvmPozegnanieVip = CreateConVar("mvip_pozegnanie", "1", "Czy włączyć pożegnanie Vipa");
	g_cvmVipPisanieWHud = CreateConVar("mvip_hud_message", "1", "Czy pozwolić vipowi na pisanie w HUD?");
	g_cvmVipHP = CreateConVar("zycie_mvip", "105", "Ile zdrowia ma posiadać vip na start rundy?");
	g_cvmMaxHP = CreateConVar("zycie_max_mvip", "130", "Maksymalna ilość zdrowia jaką gracz może osiągnąć?");
	g_cvmVipKillHP = CreateConVar("kill_hp_mvip", "5", "Ile zdrowia ma dostawać vip za zabicie gracza?");
	g_cvmVipHeadShotHP = CreateConVar("hs_hp_mvip", "10", "Ile zdrowia ma dostawać vip za zabójstwo z HeadShot'a");
	g_cvmPredkoscGracza = CreateConVar("mvip_predkosc_ruchu", "1.0", "Prędkość ruchu vip'a (1.0 - standardowo)");
	g_cvmGrawitacja = CreateConVar("mvip_grawitacja", "1.0", "Grawitacja dla vip'a (1.0 - standardowo)");
	g_cvmVipArmor = CreateConVar("armor_mvip", "100", "Punkty kamizelki dla vipa? (od 1 - 100)");
	g_cvmVipHelm = CreateConVar("helm_mvip", "1", "Czy vip ma posiadać darmowy hełm? (0/1)");
	g_cvmVipPieniadzeNaStart = CreateConVar("mvip_dodatkowe_Pieniadze", "0", "Ilość dodatkowego Pieniadzeu na start rundy jaki ma vip dostawać.");
	g_cvmVipKillPieniadze = CreateConVar("pieniadze_kill_mvip", "200", "Ile vip ma dostawać pieniędzy za zabójstwo ?");
	g_cvmVipKillKnifePieniadze = CreateConVar("pieniadze_kill_knife_mvip", "200", "Ile vip ma dostawać pieniędzy za zabójstwo z noża ?");
	g_cvmVipHeadShotPieniadze = CreateConVar("pieniadze_hs_mvip", "500", "Ile vip ma dostawać pieniędzy za zabójstwo w głowę?");
	g_cvmVipPieniadzePodlozenie = CreateConVar("pieniadze_podlozenie_mvip", "1000", "Ile Pieniadzeu ma dostawać vip za podłożenie bomby?");
	g_cvmVipPieniadzeRozbrojenie = CreateConVar("pieniadze_rozbrojenie_mvip", "1000", "Ile Pieniadzeu ma dostawać vip za rozbrojenie bomby?");
	g_cvmVipWygranaPieniadze = CreateConVar("pieniadze_wygranie_rundy", "500", "Ile Pieniadzeu ma dostawać vip za wygranie rundy?");
	g_cvmGranatyRunda = CreateConVar("mvip_nades_round", "1", "Od której rundy ma przyznawać darmowe granaty vipowi?");
	g_cvmHEGranat = CreateConVar("mvip_he", "1", "Czy vip ma dostawać granat HE na start rundy?");
	g_cvmFlashGranat = CreateConVar("mvip_flash", "1", "Czy vip ma dostawać granat Flash na start rundy?");
	g_cvmSmokeGranat = CreateConVar("mvip_smoke", "1", "Czy vip ma dostawać granat Smoke na start rundy?");
	g_cvmDecoyGranat = CreateConVar("mvip_decoy", "0", "Czy vip ma dostawać granat Decoy na start rundy?");
	g_cvmHealGranat = CreateConVar("mvip_heal", "0", "Czy vip ma dostawać granat Leczący na start rundy?");
	g_cvmIncGranat = CreateConVar("mvip_inc", "0", "Czy vip ma dostawać granat Podpalający (CT) na start rundy?");
	g_cvmMolotovGranat = CreateConVar("mvip_molotov", "0", "Czy vip ma dostawać granat Podpalający (TT) na start rundy?");
	g_cvmTaGranat = CreateConVar("mvip_tactic", "0", "Czy vip ma dostawać granat Taktyczny na start rundy?");
	g_cvmTagTabela = CreateConVar("mvip_tag", "0", "Czy w tabeli ma widniec tag dla vip'a?");
	g_cvmVipTagTabela = CreateConVar("sm_clantagm", "[VIP]", "Jaki tag w tabeli ma posiadać VIP?");
	g_cvmPodwojnySkok = CreateConVar("mdouble_jump", "1", "Czy vip ma posiadać podwójny skok?");
	g_cvmMenuBroni = CreateConVar("mvip_menu_broni", "1", "Czy ma być menu broni dla vip'a?");
	g_cvmRundaMenuBroni = CreateConVar("mvip_runda_menubroni", "3", "Od ktorej rundy ma pokazywac menu broni dla vip'a?");
	g_cvmDarmowyVip = CreateConVar("mvip_od_danej_godzint", "1", "Czy ma być włączony VIP dla graczy w nocy od x do x godziny?");
	g_cvmVipOdGodziny = CreateConVar("mvip_od_godziny", "24", "Od ktorej godziny ma byc darmowy vip?");
	g_cvmVipDoGodziny = CreateConVar("mvip_do_godziny", "6", "Do ktorej godziny ma byc darmowy vip?");
	
	
	AutoExecConfig(true, "H2K_mVip_conf");
}

public void OnMapStart()
{
	LiczbaRund = 0;
}

public void OnClientPutInServer(int client)
{
	g_bWiadomoscHud[client] = true;
}

public void OnClientPostAdminCheck(int client)
{
	if (GetConVarBool(g_cvmPrzywitanieVip))
	{
		if (IsPlayermVIP(client))
		{
			PrintToChatAll("╔════════════════════════════════════════╗");
			PrintToChatAll("%s %N dołączył do gry", VIP_PREFIX, client);
			PrintToChatAll("╚════════════════════════════════════════╝");
		}
	}
}

public void OnClientDisconnect(int client)
{
	if (GetConVarBool(g_cvmPozegnanieVip))
	{
		if (IsPlayermVIP(client))
		{
			PrintToChatAll("╔════════════════════════════════════════╗");
			PrintToChatAll("%s %N wyszedł z gry", VIP_PREFIX, client);
			PrintToChatAll("╚════════════════════════════════════════╝");
		}
	}
}

public Action Komenda_Hud(int client, int args)
{
	if (!g_cvmVipPisanieWHud.BoolValue)
	{
		PrintToChat(client, "Ta funkcja została wyłączona przez administratora serwera");
		return Plugin_Handled;
	}
	
	if (!IsPlayermVIP(client))
	{
		PrintToChat(client, "Tylko vip może użyć tej komendy");
		return Plugin_Handled;
	}
	
	if (args < 1)
	{
		ReplyToCommand(client, "[SM] Użycie: sm_hudsay <tekst>");
		return Plugin_Handled;
	}
	
	char text[192];
	GetCmdArgString(text, sizeof(text));
	
	for (int i = 1; i <= MaxClients; i++)
	{
		if (IsClientInGame(i) && !IsFakeClient(i))
		{
			SetHudTextParams(0.35, 0.225, 10.0, 0, 255, 0, 1, 0, 2.5, 2.0); //Tutaj se edytujemy tak o beka.
			ShowHudText(i, 5, "VIP: %N napisał:\n%s", client, text); 
		}
	}

	g_bWiadomoscHud[client] = false;
	CreateTimer(120.0, Timer_EnableMessage, client);
	
	return Plugin_Handled;
}

public Action Timer_EnableMessage(Handle timer, any client)
{
	if(client)
		g_bWiadomoscHud[client] = true;
}

public Action MenuGlowne(int client)
{
	if (IsValidClient(client)) {
		if (IsPlayermVIP(client)) {
			Menu menu = new Menu(MenuHandler1);
			menu.SetTitle("VIP : Wybierz Broń");
			menu.AddItem("weapon_ak47", "AK-47");
			menu.AddItem("weapon_m4a1", "M4A4");
			menu.AddItem("weapon_m4a1_silencer", "M4A1-S");
			menu.AddItem("weapon_awp", "AWP");
			menu.AddItem("weapon_ssg08", "SCOUT");
			menu.AddItem("weapon_xm1014", "XM1014");
			menu.AddItem("weapon_famas", "FAMAS");
			menu.ExitButton = true;
			menu.Display(client, 15);
		}
	}
}

public int MenuHandler1(Menu menu, MenuAction action, int client, int itemNum)
{
	if (action == MenuAction_Select)
	{
		char info[32];
		GetMenuItem(menu, itemNum, info, sizeof(info));

		if (IsPlayerAlive(client))
		{
			StripAllWeapons(client);
			GivePlayerItem(client, "weapon_knife");
			GivePlayerItem(client, info);
			MenuBroni(client);
		}
	}

	else if (action == MenuAction_End) {
		CloseHandle(menu);
	}
}

public Action MenuBroni(int client)
{
	if (IsValidClient(client)) {
		if (IsPlayermVIP(client)) {
			Menu menusec = new Menu(MenuHandler2);
			menusec.SetTitle("VIP : Wybierz Pistolet");
			menusec.AddItem("weapon_deagle", "Deagle");
			menusec.AddItem("weapon_revolver", "R8 Revolver");
			menusec.AddItem("weapon_fiveseven", "Five-Seven");
			menusec.AddItem("weapon_tec9", "Tec-9");
			menusec.AddItem("weapon_cz75a", "CZ7a");
			menusec.AddItem("weapon_elite", "Dual Elites");
			menusec.AddItem("weapon_p250", "p250");
			menusec.ExitButton = true;
			menusec.Display(client, 15);
		}
	}
}

public int MenuHandler2(Menu menusec, MenuAction action, int client, int itemNum)
{

	if (action == MenuAction_Select)
	{
		char info[32];
		GetMenuItem(menusec, itemNum, info, sizeof(info));

		if (IsPlayerAlive(client)) {
			GivePlayerItem(client, info);
		}
	}

	else if (action == MenuAction_End) {
		CloseHandle(menusec);
	}
}

public Action Event_RoundStart(Handle hEvent, const char[] chName, bool bDontBroadcast)
{
	if (GetConVarBool(g_cvmDarmowyVip))
	{
		int od_godziny = GetConVarInt(g_cvmVipOdGodziny);
		int do_godziny = GetConVarInt(g_cvmVipDoGodziny);
		if(od_godziny || do_godziny)
		{
			char godzina_str[8];
			FormatTime(godzina_str, sizeof(godzina_str), "%H", GetTime());
			int godzina = StringToInt(godzina_str);
			if(od_godziny > do_godziny)
				DarmowyVip = (godzina >= od_godziny || godzina < do_godziny)? 1: 0;
			else
				DarmowyVip = (godzina >= od_godziny && godzina < do_godziny)? 1: 0;
		}
		else
			DarmowyVip = 0;
	}

	if (GameRules_GetProp("m_bWarmupPeriod") != 1)
		LiczbaRund = LiczbaRund + 1;
}

public Action ResetPoZmianie(Handle hEvent, const char[] chName, bool bDontBroadcast)
{
	LiczbaRund = 0;
}

public Action Event_PlayerSpawn(Handle hEvent, const char[] chName, bool bDontBroadcast)
{
	int client = GetClientOfUserId(GetEventInt(hEvent, "userid"));

	if (GameRules_GetProp("m_bWarmupPeriod") == 1)
		return;

	if (IsPlayermVIP(client))
	{
		SetEntityHealth(client, GetConVarInt(g_cvmVipHP));
		SetEntProp(client, Prop_Send, "m_ArmorValue", GetConVarInt(g_cvmVipArmor));
		SetEntProp(client, Prop_Send, "m_bHasHelmet", GetConVarInt(g_cvmVipHelm));
		SetEntProp(client, Prop_Send, "m_iAccount", GetEntProp(client, Prop_Send, "m_iAccount") + GetConVarInt(g_cvmVipPieniadzeNaStart));
		SetEntPropFloat(client, Prop_Send, "m_flLaggedMovementValue", GetConVarFloat(g_cvmPredkoscGracza));
		SetEntityGravity(client, GetConVarFloat(g_cvmGrawitacja));
		if (GetClientTeam(client) == CS_TEAM_CT && GetEntProp(client, Prop_Send, "m_bHasDefuser") == 0)GivePlayerItem(client, "item_defuser");
		if (LiczbaRund >= GetConVarInt(g_cvmGranatyRunda))
		{
			if (GetConVarBool(g_cvmHEGranat))GivePlayerItem(client, "weapon_hegrenade");
			if (GetConVarBool(g_cvmFlashGranat))GivePlayerItem(client, "weapon_flashbang");
			if (GetConVarBool(g_cvmSmokeGranat))GivePlayerItem(client, "weapon_smokegrenade");
			if (GetConVarBool(g_cvmDecoyGranat))GivePlayerItem(client, "weapon_decoy");
			if (GetConVarBool(g_cvmHealGranat))GivePlayerItem(client, "weapon_healthshot");
			if (GetConVarBool(g_cvmIncGranat))GivePlayerItem(client, "weapon_incgrenade");
			if (GetClientTeam(client) == CS_TEAM_CT)
			{
				if (GetConVarBool(g_cvmMolotovGranat))GivePlayerItem(client, "weapon_molotov");
			}
			if (GetConVarBool(g_cvmTaGranat))GivePlayerItem(client, "weapon_tagrenade");
		}
	}

	if (GetConVarBool(g_cvmMenuBroni))
	{
		if (LiczbaRund >= GetConVarInt(g_cvmRundaMenuBroni))
		{
			MenuGlowne(client);
		}
	}
}

public Action Event_PlayerDeath(Event hEvent, const char[] chName, bool bDontBroadcast)
{
	int attacker = GetClientOfUserId(hEvent.GetInt("attacker"));
	int victim = GetClientOfUserId(hEvent.GetInt("userid"));
	
	char weapon[64];
	GetEventString(hEvent, "weapon", weapon, sizeof(weapon));
	ReplaceString(weapon, sizeof(weapon), "weapon_", "");
	
	if (StrEqual(weapon, "knife_default_ct") || StrEqual(weapon, "knife_default_t") || StrEqual(weapon, "knife_t") || StrEqual(weapon, "knifegg") || StrEqual(weapon, "knife_flip") || StrEqual(weapon, "knife_gut") || StrEqual(weapon, "knife_karambit") || StrEqual(weapon, "bayonet") || StrEqual(weapon, "knife_m9_bayonet") || StrEqual(weapon, "knife_butterfly") || StrEqual(weapon, "knife_tactical") || StrEqual(weapon, "knife_falchion") || StrEqual(weapon, "knife_push") || StrEqual(weapon, "knife_survival_bowie")) {
		weapon = "knife";
	}

	if (IsPlayermVIP(attacker))
	{
		if (!IsValidClient(attacker)) {
			return;
		}

		if (GetClientTeam(attacker) != GetClientTeam(victim))
		{
			bool headshot = GetEventBool(hEvent, "headshot");
			int PieniadzeGracza = GetEntProp(attacker, Prop_Send, "m_iAccount");
			int HP = GetClientHealth(attacker);

			if (headshot) 
			{
				SetEntProp(attacker, Prop_Send, "m_iAccount", GetConVarInt(g_cvmVipHeadShotPieniadze) + PieniadzeGracza);
				if (HP + GetConVarInt(g_cvmVipHeadShotHP) > GetConVarInt(g_cvmMaxHP))SetEntityHealth(attacker, GetConVarInt(g_cvmMaxHP));
				if (HP + GetConVarInt(g_cvmVipHeadShotHP) <= GetConVarInt(g_cvmMaxHP))SetEntityHealth(attacker, HP + GetConVarInt(g_cvmVipHeadShotHP));
			}
			else 
			{
				SetEntProp(attacker, Prop_Send, "m_iAccount", GetConVarInt(g_cvmVipKillPieniadze) + PieniadzeGracza);
				if (HP + GetConVarInt(g_cvmVipKillHP) > GetConVarInt(g_cvmMaxHP))SetEntityHealth(attacker, GetConVarInt(g_cvmMaxHP));
				if (HP + GetConVarInt(g_cvmVipKillHP) <= GetConVarInt(g_cvmMaxHP))SetEntityHealth(attacker, HP + GetConVarInt(g_cvmVipKillHP));
			}
			
			if (StrEqual(weapon, "knife"))
			{
				SetEntProp(attacker, Prop_Send, "m_iAccount", GetConVarInt(g_cvmVipKillKnifePieniadze) + PieniadzeGracza);
				if (GetConVarBool(g_cvmWiadomosciChat))
				{
					PrintToChat(attacker, "%s Jako VIP otrzymałeś %i punktów za zabójstwo z noża", VIP_PREFIX);
				}
			}
		}
	}
}

public Action Event_BombPlanted(Event hEvent, const char[] chName, bool bDontBroadcast)
{
	int client = GetClientOfUserId(hEvent.GetInt("userid"));
	int PieniadzeGracza = GetEntProp(client, Prop_Send, "m_iAccount");

	if (IsPlayermVIP(client)) {

		if (GetConVarBool(g_cvmWiadomosciChat))
		{
			PrintToChat(client, "%s Własnie otrzymałeś %i pieniążków za podłożenie bomby!", VIP_PREFIX, GetConVarInt(g_cvmVipPieniadzePodlozenie));
		}
		SetEntProp(client, Prop_Send, "m_iAccount", GetConVarInt(g_cvmVipPieniadzePodlozenie) + PieniadzeGracza);
	}
}

public Action Event_BombDefused(Handle hEvent, const char[] chName, bool bDontBroadcast)
{
	int client = GetClientOfUserId(GetEventInt(hEvent, "userid"));
	int PieniadzeGracza = GetEntProp(client, Prop_Send, "m_iAccount");

	if (IsPlayermVIP(client))
	{
		if (GetConVarBool(g_cvmWiadomosciChat))
		{
			PrintToChat(client, "%s Własnie otrzymałeś %i pieniążków za rozbrojenie bomby!", VIP_PREFIX, GetConVarInt(g_cvmVipPieniadzeRozbrojenie));
		}
		SetEntProp(client, Prop_Send, "m_iAccount", GetConVarInt(g_cvmVipPieniadzeRozbrojenie) + PieniadzeGracza);
	}
}

public Action Event_RoundEnd(Event hEvent, const char[] chName, bool bDontBroadcast)
{
	int WygranaDruzyna = GetEventInt(hEvent, "winner");

	for (int client = 1; client < MAXPLAYERS + 1; client++)
	{
		if (IsPlayermVIP(client) && IsValidClient(client))
		{
			RemoveNades(client);

			if (GetClientTeam(client) == WygranaDruzyna)
			{
				SetEntProp(client, Prop_Send, "m_iAccount", GetConVarInt(g_cvmVipWygranaPieniadze) + GetEntProp(client, Prop_Send, "m_iAccount"));
			}
		}
	}
}

public Action Event_TagTable(Event hEvent, const char[] chName, bool bDontBroadcast)
{
	int client = GetClientOfUserId(hEvent.GetInt("userid"));

	char TagTabela[128];
	g_cvmVipTagTabela.GetString(TagTabela, sizeof(TagTabela));

	if (IsPlayermVIP(client))
	{
		if (GetConVarBool(g_cvmTagTabela))CS_SetClientClanTag(client, TagTabela);
	}
}

public Action OnPlayerRunCmd(int client, int &buttons, int &impulse, float vel[3], float angles[3], int &weapon)
{
	if (!g_cvmPodwojnySkok.BoolValue)
		return Plugin_Handled;

	if (IsPlayermVIP(client) && IsPlayerAlive(client))
	{
		static int g_fLastButtons[MAXPLAYERS + 1], g_fLastFlags[MAXPLAYERS + 1], g_iJumps[MAXPLAYERS + 1], fCurFlags, fCurButtons;
		fCurFlags = GetEntityFlags(client);
		fCurButtons = GetClientButtons(client);
		if (g_fLastFlags[client] & FL_ONGROUND && !(fCurFlags & FL_ONGROUND) && !(g_fLastButtons[client] & IN_JUMP) && fCurButtons & IN_JUMP)g_iJumps[client]++;
		else if (fCurFlags & FL_ONGROUND)g_iJumps[client] = 0;
		else if (!(g_fLastButtons[client] & IN_JUMP) && fCurButtons & IN_JUMP && g_iJumps[client] == 1)
		{
			g_iJumps[client]++;
			float vVel[3];
			GetEntPropVector(client, Prop_Data, "m_vecVelocity", vVel);
			vVel[2] = 250.0;
			TeleportEntity(client, NULL_VECTOR, NULL_VECTOR, vVel);
		}

		g_fLastFlags[client] = fCurFlags;
		g_fLastButtons[client] = fCurButtons;
	}
	return Plugin_Continue;
}

public Action PokazVipyOnline(int client, int args)
{
	if (!g_cvmVipyOnline.BoolValue)
	{
		PrintToChat(client, "Ta funkcja została wyłączona przez administratora serwera");
		return Plugin_Handled;
	}
	
	int iCount = 0;
	Menu menu = new Menu(Menu_Handler);
	menu.SetTitle("Gracze VIP którzy aktualnie znajdują się na serwerze");
	
	for (int i = 1; i < MaxClients; i++)
	{
		if (IsPlayermVIP(i) && IsValidClient(i) && IsClientInGame(i))
		{
			char format[128];
			char cid[16];
			IntToString(i, cid, sizeof cid);
			char name[MAX_NAME_LENGTH + 1];
			GetClientName(i, name, sizeof name);
			Format(format, sizeof format, "[VIP] » %s", name);
			menu.AddItem(cid, format, ITEMDRAW_DISABLED);
			iCount++;
		}
	}
	
	if(iCount == 0)
		menu.AddItem("ITEMDRAW_DISABLED", "Ups, wygląda na to, że nie ma graczy online, którzy posiadają usługę VIP.");
	
	menu.ExitButton = true;
	menu.Display(client, 0);
	
	return Plugin_Handled;
}

public int Menu_Handler(Menu menu, MenuAction action, int client, int itemNum)
{
	if (action == MenuAction_End)CloseHandle(menu);
}

stock void StripAllWeapons(int client)
{
	int iEnt;
	for (int i = 0; i <= 2; i++)
	{
		while ((iEnt = GetPlayerWeaponSlot(client, i)) != -1)
		{
			RemovePlayerItem(client, iEnt);
			AcceptEntityInput(iEnt, "Kill");
		}
	}
}

stock void RemoveNades(int client)
{
	while (RemoveWeaponBySlot(client, 3)) {  }
	for (int i = 0; i < 6; i++)
	SetEntProp(client, Prop_Send, "m_iAmmo", 0, _, g_iaGrenadeOffsets[i]);
}

stock bool RemoveWeaponBySlot(int client, int iSlot)
{
	int iEntity = GetPlayerWeaponSlot(client, iSlot);
	if (IsValidEdict(iEntity)) {
		RemovePlayerItem(client, iEntity);
		AcceptEntityInput(iEntity, "Kill");
		return true;
	}
	return false;
}

bool IsPlayermVIP(int client)
{
	if (CheckCommandAccess(client, "sm_mVip", 0, true) || DarmowyVip)
		return true;
	
	return false;
}

bool IsValidClient(int client)
{
	if (client <= 0 || client > MaxClients) {
		return false;
	}

	if (!IsClientInGame(client)) {
		return false;
	}

	if (IsFakeClient(client)) {
		return false;
	}

	return true;
}

 

 

Konfiguracja WAŻNE
Taka sama jak w zwykłym vipie tylko że zamiast tutaj:

 

Do pliku admin_overrides.cfg dopisz sm_mVip "flaga"

Twój plik powinien wyglądać mniej więcej tak.

Overrides
{
	sm_mVip "s"
}

Plik konfiguracyjny utworzy się po załadowaniu pluginu na serwer.

Ścieżka: csgo/cfg/sourcemod/H2K_mVip_Conf.cfg

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

to mój overrides

Overrides
{
"sm_Vip" "a"
"sm_mVip" "p"
"sm_ws" "a"
"sm_gloves" "a"
"sm_glove" "a"
}

konsola: Unknown command: sm_mVip

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

znalazłem błąd. Tym błędem jest double jump. A konkretniej gdy się włącza aby vip miał double jumpa wszystko jest ok ale jak się wyłacza tą opcje to widzisz co się dzieje

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 21.03.2019 o 14:28, .:PaPaSmerf:. napisał:

Mam ten sam problem buguje sie respawn. kod mam z generatora

Vip działa na starszej wersji vipa ""[CSGO] Vip by Mesharsky 1.3""

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 21.03.2019 o 14:28, .:PaPaSmerf:. napisał:

Mam ten sam problem buguje sie respawn. kod mam z generatora

 

Generator nie jest przystosowany pod najnowszego vipa czyli tego co mam aktualnie

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się
Zaloguj się, aby obserwować  

  • Kto przegląda   0 użytkowników

    Brak zalogowanych użytkowników przeglądających tę stronę.

×