Skocz do zawartości
Brum Brum

[CS:GO] Głosowanie na czas mapy

Rekomendowane odpowiedzi

Opis: Po 60-ciu sekundach od startu mapy włącza się głosowanie na czas trwania mapy.

Kod:
 

Spoiler

ConVar times[5];
int Time[5];
#define MOD_TAG "\x01\x0B★ \x07[ADEPT-Czas Mapy]\x04 "

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

public void OnPluginStart()
{
	times[0] = CreateConVar("sm_firsttimeoption", "10", "Opcja czasowa z głosowania");
	times[1] = CreateConVar("sm_secondtimeoption", "15", "Opcja czasowa z głosowania");
	times[2] = CreateConVar("sm_thirdtimeoption", "20", "Opcja czasowa z głosowania");
	times[3] = CreateConVar("sm_fourtimeoption", "25", "Opcja czasowa z głosowania");
	times[4] = CreateConVar("sm_fivetimeoption", "30", "Opcja czasowa z głosowania");
	AutoExecConfig(true, "ADEPT_CzasMapy");
}

public void OnConfigsExecuted()
{
	for (int i = 0; i < sizeof(times); i++)
	{
		Time[i] = times[i].IntValue;
	}
}

public void OnMapStart()
{
	CreateTimer(60.0, RetryGlosowanie, _, TIMER_FLAG_NO_MAPCHANGE);
}

public int Handle_VoteMenu(Menu menu, MenuAction action, int param1, int param2)
{
	switch (action)
	{
		case MenuAction_End:
		CloseHandle(menu);
		case MenuAction_VoteEnd:
		{
			int value;
			switch (param1)
			{
				case 0:
				value = Time[0];
				case 1:
				value = Time[1];
				case 2:
				value = Time[2];
				case 3:
				value = Time[3];
				case 4:
				value = Time[4];
			}
			ServerCommand("mp_timelimit %d", value);
			PrintToChatAll("%s Ustawiono czas mapy na \x07%d minut!", MOD_TAG, value);
		}
	}
}

public void GlosowanieNaCzasMapy()
{
	if (IsVoteInProgress())
	{
		CreateTimer(5.0, RetryGlosowanie);
	}
	Menu menu = new Menu(Handle_VoteMenu);
	menu.SetTitle("ADEPT -> Czas mapy");
	for (int i = 0; i < sizeof(Time); i++)
	{
		char buffer[64];
		Format(buffer, sizeof(buffer), "%d Minut mapy", Time[i]);
		menu.AddItem("", buffer);
	}
	menu.ExitButton = false;
	menu.DisplayVoteToAll(20);
}

public Action RetryGlosowanie(Handle timer)
{
	GlosowanieNaCzasMapy();
	return Plugin_Continue;
}

 

 

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

Mam takie pytanie dotyczące pluginu, a konkretnie jego zastosowania jak zrobić, aby działał on tylko na 1 mapie oraz jeżeli chcę, aby posiadał on tylko 3 opcje do wyboru 15/20/25min to wystarczy zmienić początek pluginu, a konkretnie usunąć to: 

Spoiler

    times[3] = CreateConVar("sm_fourtimeoption", "10", "Opcja czasowa z głosowania");
    times[4] = CreateConVar("sm_fivetimeoption", "30", "Opcja czasowa z głosowania");

czy coś dodatkowo trzeba zrobić? 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

w 34 linijce zmieniasz nazwę mapy i powinno działać
 

Spoiler

ConVar times[3];
int Time[3];
#define MOD_TAG "\x01\x0B★ \x07[ADEPT-Czas Mapy]\x04 "

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

public void OnPluginStart()
{
	times[0] = CreateConVar("sm_firsttimeoption", "10", "Opcja czasowa z głosowania");
	times[1] = CreateConVar("sm_secondtimeoption", "15", "Opcja czasowa z głosowania");
	times[2] = CreateConVar("sm_thirdtimeoption", "20", "Opcja czasowa z głosowania");
	AutoExecConfig(true, "ADEPT_CzasMapy");
}

public void OnConfigsExecuted()
{
	for (int i = 0; i < sizeof(times); i++)
	{
		Time[i] = times[i].IntValue;
	}
}

public void OnMapStart()
{
	char sMapName[256];
	GetCurrentMap(sMapName, sizeof(sMapName));
	if (StrEqual(sMapName, "de_dust2", true))
	{
		CreateTimer(60.0, RetryGlosowanie, _, TIMER_FLAG_NO_MAPCHANGE);
	}
}

public int Handle_VoteMenu(Menu menu, MenuAction action, int param1, int param2)
{
	switch (action)
	{
		case MenuAction_End:
		CloseHandle(menu);
		case MenuAction_VoteEnd:
		{
			int value;
			switch (param1)
			{
				case 0:value = Time[0];
				case 1:value = Time[1];
				case 2:value = Time[2];
			}
			ServerCommand("mp_timelimit %d", value);
			PrintToChatAll("%s Ustawiono czas mapy na \x07%d minut!", MOD_TAG, value);
		}
	}
}

public void GlosowanieNaCzasMapy()
{
	if (IsVoteInProgress())
	{
		CreateTimer(5.0, RetryGlosowanie);
	}
	Menu menu = new Menu(Handle_VoteMenu);
	menu.SetTitle("ADEPT -> Czas mapy");
	for (int i = 0; i < sizeof(Time); i++)
	{
		char buffer[64];
		Format(buffer, sizeof(buffer), "%d Minut mapy", Time[i]);
		menu.AddItem("", buffer);
	}
	menu.ExitButton = false;
	menu.DisplayVoteToAll(20);
}

public Action RetryGlosowanie(Handle timer)
{
	GlosowanieNaCzasMapy();
	return Plugin_Continue;
} 

 

 

4 godziny temu, Derko napisał:

Mam takie pytanie dotyczące pluginu, a konkretnie jego zastosowania jak zrobić, aby działał on tylko na 1 mapie oraz jeżeli chcę, aby posiadał on tylko 3 opcje do wyboru 15/20/25min to wystarczy zmienić początek pluginu, a konkretnie usunąć to: 

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

    times[3] = CreateConVar("sm_fourtimeoption", "10", "Opcja czasowa z głosowania");
    times[4] = CreateConVar("sm_fivetimeoption", "30", "Opcja czasowa z głosowania");

 czy coś dodatkowo trzeba zrobić? 

Musiałeś jeszcze zmienić ConVar times[5]; na ConVar times[3]; int Time[5]; na int Time[3];
oraz sprawdzić nazwę mapy czy jest taka jaką potrzebujesz
 

public void OnMapStart()
{
	char sMapName[256];
	GetCurrentMap(sMapName, sizeof(sMapName));
	if (StrEqual(sMapName, "de_dust2", true))
	{
		CreateTimer(60.0, RetryGlosowanie, _, TIMER_FLAG_NO_MAPCHANGE);
	}
}

 

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