Jump to content

NOWY SZABLON NA FORUM

Wprowadziliśmy nowy szablon na forum!

Prosimy o zgłaszanie znalezionych błędów.

Przejdź do tematu

NABÓR DO ADMINISTRACJI

Z dniem 20.04.2020 został otwarty nabór do Administracji forum.

Jeżeli chcesz nam pomóc w rozwoju nie zwlekaj, złóz podanie już teraz!

Przejdź do tematu

VIP ZA FREE!

Grasz na naszych serwerach i chcesz dostać darmowego VIP'a?

Odwiedź dział "Odbierz darmowego VIP'a" na wybranym przez Ciebie serwerze !

Przejdź do tematu
# Nickname Score Time Played
Sahito🧠 33 kills 46 minutes and 10 seconds
n3LLy // Rzeznia.pro 27 kills 46 minutes and 56 seconds
Adelay 15 kills 25 minutes and 12 seconds
xSmQ 14 kills 35 minutes and 41 seconds
ziabol 12 kills 12 minutes and 11 seconds
NeoN Rzeznia.Pro 11 kills 49 minutes and 35 seconds
♥Amelka♥ Rzeznia.Pro 10 kills 13 minutes and 26 seconds
Jakubeaw Key-drop.com.pl 9 kills 49 minutes and 35 seconds
BartoszPL 7 kills 9 minutes and 55 seconds
Shu 7 kills 33 minutes and 23 seconds
ścibas Rzeznia.Pro 7 kills 49 minutes and 36 seconds
rurzowo włosy 6 kills 48 minutes and 53 seconds
Lisu 5 kills 19 minutes and 50 seconds
Adrian ♥999♥ 4 kills 23 minutes and 20 seconds
F Rzeznia.Pro Rzeznia.Pro 4 kills 49 minutes and 35 seconds
pyrax_omen 3 kills 7 minutes and 55 seconds
Jabłkowy Cymes 1 kill 14 minutes and 3 seconds
D1YaN 0 kills 33 minutes and 21 seconds
Death__3 Rzeznia.Pro 0 kills 36 minutes and 21 seconds
KusiaK 0 kills 48 minutes and 10 seconds
Rzeznia.Pro - GOTV 0 kills 15 hours, 2 minutes and 29 seconds
Xsereczek Rzeznia.Pro 0 kills 2 minutes and 33 seconds
kaktusRzeznia.ProRzeznia.Pro 0 kills 29 minutes and 9 seconds
de_mirage
# Nickname Score Time Played
Czasoumilacz 0 kills
TS3Gamer.pl \p @BOT #1 0 kills
â ª Witaj na TS3Gamer.pl â ª 0 kills
TS3Gamer.pl \p @BOT #2 0 kills
TS3Gamer.pl \p Impreza 0 kills
TS3Gamer.pl \p Disco Polo 0 kills
TS3Gamer.pl \p Rap&Hip-Hop 0 kills
MÅ ody Boss 0 kills
TomyShell 0 kills
Takuto 0 kills
dzej317 0 kills
Adam MaÅ ysz 0 kills
Tooful 0 kills
Wladimir Kliczko 0 kills
JPoly 0 kills
Matiks 0 kills
niemiec 0 kills
n/a
Sign in to follow this  
FareN

[CS:GO] Losowy VIP

Recommended Posts

Właściciel

Losowy VIP po X rundach.

  • Po X rundach losuje osobę, która dostanie darmowego vipa do końca mapy. Możemy ustawić od ilu graczy od której rundy. Możemy również dać większą szansę graczom, którzy posiadają daną nazwę w nicku (wszystko zmieniamy w cvarach). Możemy również dać daną flagę.

 

Kod:


#include <sdktools>

#pragma semicolon 1
#pragma newdecls required

ConVar gc_RandomVIP, gc_VIPFlag, gc_MinPlayers, gc_MOD_TAG;
ConVar gc_EnableWebsite, gc_Website;
char MOD_TAG[64], WEB[64];

int g_iRound;

ArrayList pula_graczy;

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

public void OnPluginStart()
{
	pula_graczy = new ArrayList();
	gc_RandomVIP = CreateConVar("sm_vip_random_round", "5", "Runda w której ma wylosować vipa (rozgrzewka nie jest brana pod uwagę)");
	gc_VIPFlag = CreateConVar("sm_vip_random_flag", "o", "Flaga którą ma otrzymać vip");
	gc_MinPlayers = CreateConVar("sm_vip_random_player", "2", "Minimalna ilość graczy do wylosowania vipa");
	gc_EnableWebsite = CreateConVar("sm_vip_random_website_enable", "1", "Zwiększa szanse graczom, który zawierają nazwe sieci w nicku(Wymagany cvar niżej)");
	gc_Website = CreateConVar("sm_vip_random_website_name", "StudioADEPT.net", "Nazwa sieci zwiększająca szanse na losowego vipa");
	gc_MOD_TAG = CreateConVar("sm_vip_random_tag", "ADEPT", "TAG pokazywany na czacie");
	gc_MOD_TAG.AddChangeHook(MOD_TAGNameChanged);
	gc_MOD_TAG.GetString(MOD_TAG, sizeof(MOD_TAG));
	gc_Website.AddChangeHook(WEBNameChanged);
	gc_Website.GetString(WEB, sizeof(WEB));
	HookEvent("round_start", Event_RoundStart);
	HookEvent("cs_win_panel_match", RestartRound);
	AutoExecConfig(true, "ADEPT_LosowyVIP");
}

public void MOD_TAGNameChanged(ConVar convar, const char[] oldValue, const char[] newValue)
{
	Format(MOD_TAG, sizeof(MOD_TAG), newValue);
}
public void WEBNameChanged(ConVar convar, const char[] oldValue, const char[] newValue)
{
	Format(WEB, sizeof(WEB), newValue);
}

public Action Event_RoundStart(Event event, const char[] name, bool dontBroadcast)
{
	if (IsWarmup())return;
	
	int Runda = gc_RandomVIP.IntValue;
	int MinPlayers = gc_MinPlayers.IntValue;
	int Players = GetPlayerCount();
	
	g_iRound++;
	if (g_iRound == Runda) {	
		if (Players >= MinPlayers)GetRandomVIP();
		else PrintToChatAll("\x01\x0B★ \x07[%s -> Losowy VIP]\x04 Jest zbyt mało graczy aby wylosować VIPa!", MOD_TAG);
	}
}

public Action RestartRound(Event event, const char[] name, bool dontBroadcast)
{
	g_iRound = 0;
}

void GetRandomVIP()
{
	int Random = GetRandomPlayer();
	PrintToChatAll("\x01\x0B★ \x07[%s -> Losowy VIP]\x04 Trwa losowanie VIP'a...", MOD_TAG);
	PrintToChatAll("\x01\x0B★ \x07[%s -> Losowy VIP]\x04 Trwa losowanie VIP'a...", MOD_TAG);
	PrintToChatAll("\x01\x0B★ \x07[%s -> Losowy VIP]\x04 Trwa losowanie VIP'a...", MOD_TAG);
	if (Random)
	{
		PrintToChatAll("\x01\x0B★ \x07[%s -> Losowy VIP]\x04 Losowym VIP'em zostaje \x02%N\x04 Gratulujemy!", MOD_TAG, Random);
		SetUserFlagBits(Random, GetUserFlagBits(Random) | GetFlag());
	}
	else PrintToChatAll("\x01\x0B★ \x07[%s -> Losowy VIP]\x04 Nie można wylosować VIP`a ponieważ na serwerze są same VIPY!", MOD_TAG);
}

bool HaveFlag(int client)
{
	int flag = GetFlag();
	
	if (GetUserFlagBits(client) & flag)return true;
	else return false;
}

int GetRandomPlayer()
{
	
	pula_graczy.Clear();
	for (int i = 1; i < MaxClients; i++)
	{
		if (IsValidClient(i))
		{
			if (gc_EnableWebsite.BoolValue) {
				if (!HaveFlag(i) && HaveWebSite(i)) {
					pula_graczy.Push(i);
					pula_graczy.Push(i);
				}
				else if (!HaveFlag(i) && !HaveWebSite(i))pula_graczy.Push(i);
			}
			else
			{
				if (!HaveFlag(i))pula_graczy.Push(i);
			}
		}
	}
	if (pula_graczy.Length == 0)return 0;
	
	return pula_graczy.Get(GetRandomInt(0, pula_graczy.Length - 1));
}

bool HaveWebSite(int client)
{
	if (!IsValidClient(client))return false;
	
	char name[MAX_NAME_LENGTH];
	GetClientName(client, name, sizeof(name));
	
	if (StrContains(name, WEB, true) != -1)return true;
	else return false;
}

int GetPlayerCount()
{
	int count;
	for (int i = 1; i <= MaxClients; i++) {
		if (IsValidClient(i))count++;
	}
	
	return count;
}

int GetFlag()
{
	char flag[10];
	gc_VIPFlag.GetString(flag, sizeof(flag));
	
	return ReadFlagString(flag);
}

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

bool IsWarmup()
{
	int warmup = GameRules_GetProp("m_bWarmupPeriod", 4, 0);
	if (warmup == 1)return true;
	else return false;
} 

 

Download:

ADEPT_LosowyVIP.sp

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

Pamiętaj CS-Hejdz.pl to nie tylko forum !

Dołącz do nas na:

×
×
  • Create New...