Skocz do zawartości
terrorist0p

Szukam pluginy na broń w rundzie

Rekomendowane odpowiedzi

Szukam pluginu dzięki któremu będzie np.

 

4x rundy same pistole

4x rundy same PM'y

4x rundy same Primary guns

4x rundy same snajperki

 

Miałem taki plugin na starym pendrive, ale niestety uległ uszkodzeniu i straciłem jego zawartość.

Proszę o pomoc.

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość

Ale że mają być dostępne do kupienia tylko pistole, czy mają się pojawiać w menu do wyboru?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dla każdego gracza ma być automatycznie dawany randomowy pistolet?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
2 minuty temu, Yamakashi napisał:

Dla każdego gracza ma być automatycznie dawany randomowy pistolet?

Tak, tzn mogą być np. tt glocki ct uspy i m4 i ak

Edytowane przez terrorist0p

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
1 minutę temu, Yamakashi napisał:

Czy kupowanie broni ma być zablokowane?

Tak, to już bym ogarnął ale jeśli jesteś w stanie mi pomóc to dziękuje

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Pamiętaj, aby ustawić limit rund na mapę. Plugin powinien działać.

 

Kod:

Spoiler
/* [ Includes ] */
#include <sourcemod>
#include <sdktools>
#include <multicolors>
#include <cstrike>

/* [ Compiler Options ] */
#pragma newdecls required
#pragma semicolon 1

/* [ Defines ] */
#define PluginTag_Info		"★{darkred}[ {lightred}Random Rounds{darkred} --> {lightred} Informacja{darkred} ]{default}"
#define LoopClients(%1)		for(int %1 = 1; %1 < MaxClients; %1++) if(IsValidClient(%1))
#define Pistols 			10
#define Smgs				12
#define Rifles				7
#define Snipers				4

/* [ Integers ] */
int g_iPistolRound, g_iSmgsRound, g_iRiflesRound, g_iSnipersRound;

/* [ Booleans ] */
bool g_bPistolRound, g_bSmgRound, g_bRifleRound, g_bSniperRound;

/* [ Chars ] */
char g_sPistols[Pistols][] =
{
	"weapon_glock", "weapon_usp_silencer", "weapon_hkp2000", 
	"weapon_p250", "weapon_tec9", "weapon_fiveseven", "weapon_cz75a",
	"weapon_deagle", "weapon_revolver", "weapon_elite"
};
char g_sSmgs[Smgs][] =
{
	"weapon_p90", "weapon_nova", "weapon_xm1014", "weapon_mag7",
	"weapon_mac10", "weapon_mp7", "weapon_mp9", "weapon_bizon",
	"weapon_ump45", "weapon_m249", "weapon_sawedoff", "weapon_negev"
};
char g_sRifles[Rifles][] =
{
	"weapon_m4a1_silencer", "weapon_ak47", "weapon_m4a1", "weapon_famas",
	"weapon_aug", "weapon_galilar", "weapon_sg556"
};
char g_sSnipers[Snipers][] = 
{
	"weapon_awp", "weapon_scar20", "weapon_g3sg1", "weapon_ssg08"
};

/* [ Plugin Author And Informations ] */
public Plugin myinfo = 
{
	name = "[CS:GO] Yamakashi - [ Random Rounds ]", 
	author = "Yamakashi", 
	description = "Autorski plugin by Yamakashi.", 
	version = "1.0", 
	url = "https://steamcommunity.com/id/yamakashisteam"
};

/* [ Plugin Startup ] */
public void OnPluginStart()
{
	/* [ Hooks ] */
	HookEvent("round_start", Event_RoundStart, EventHookMode_Pre);
	HookEvent("player_spawn", Event_PlayerSpawn);
}

/* [ Standart Actions ] */
public void OnMapStart()
{
	Reset(1);
}

/* [ Events ] */
public Action Event_RoundStart(Event event, const char[] name, bool dontBroadcast)
{
	GameRules_SetProp("m_bTCantBuy", true, _, _, true);
	GameRules_SetProp("m_bCTCantBuy", true, _, _, true);
	
	Reset(2);
	RandomRoundSet();
}

public Action Event_PlayerSpawn(Event event, const char[] name, bool dontBroadcast)
{
	LoopClients(i)
		CreateTimer(1.0, GiveWeapons, i, TIMER_FLAG_NO_MAPCHANGE);
}

/* [ Timers ] */
public Action GiveWeapons(Handle timer, any client)
{
	if(IsPlayerAlive(client))
	{
		RemoveWeapons(client);
		if(g_bPistolRound)
			GiveWeapon(client, 1);
		if(g_bSmgRound)
			GiveWeapon(client, 2);
		if(g_bRifleRound)
			GiveWeapon(client, 3);
		if(g_bSniperRound)
			GiveWeapon(client, 4);
	}
}

/* [ Helpers ] */
public void RandomRoundSet()
{
	int random = GetRandomInt(1, 4);
	switch(random)
	{
		case 1:
		{
			if(g_iPistolRound == 4)
				RandomRoundSet();
			else
			{
				g_bPistolRound = true;
				g_iPistolRound++;
				CPrintToChatAll("%s Gramy rundę {lime}pistoletową{default}!", PluginTag_Info);
			}
		}
		case 2:
		{
			if(g_iSmgsRound == 4)
				RandomRoundSet();
			else
			{
				g_bSmgRound = true;
				g_iSmgsRound++;
				CPrintToChatAll("%s Gramy rundę {lime}smg{default}!", PluginTag_Info);
			}
		}
		case 3:
		{
			if(g_iRiflesRound == 4)
				RandomRoundSet();
			else
			{
				g_bRifleRound = true;
				g_iRiflesRound++;
				CPrintToChatAll("%s Gramy rundę {lime}karabinową{default}!", PluginTag_Info);
			}
		}
		case 4:
		{
			if(g_iSnipersRound == 4)
				RandomRoundSet();
			else
			{
				g_bSniperRound = true;
				g_iSnipersRound++;
				CPrintToChatAll("%s Gramy rundę {lime}snajperską{default}!", PluginTag_Info);
			}
		}
	}
}

public void GiveWeapon(int client, int type)
{
	// 1 - Pistols  2 - SMG  3 - Rifles  4 - Snipers
	if(type == 1)
	{
		int random = GetRandomInt(0, Pistols - 1);
		GivePlayerItem(client, g_sPistols[random]);
	}
	if(type == 2)
	{
		int random = GetRandomInt(0, Smgs - 1);
		GivePlayerItem(client, g_sSmgs[random]);
	}
	if(type == 3)
	{
		int random = GetRandomInt(0, Rifles - 1);
		GivePlayerItem(client, g_sRifles[random]);
	}
	if(type == 4)
	{
		int random = GetRandomInt(0, Snipers - 1);
		GivePlayerItem(client, g_sSnipers[random]);
	}
}
	
public void RemoveWeapons(int client)
{
	int weapon;
	if ((weapon = GetPlayerWeaponSlot(client, CS_SLOT_PRIMARY)) != -1 || (weapon = GetPlayerWeaponSlot(client, CS_SLOT_SECONDARY)))
	{
		RemovePlayerItem(client, weapon);
		AcceptEntityInput(weapon, "Kill");
	}
}

public void Reset(int type)
{
	if(type == 1)
	{
		g_iPistolRound = 0;
		g_iSmgsRound = 0;
		g_iRiflesRound = 0;
		g_iSnipersRound = 0;
		g_bPistolRound = false;
		g_bSmgRound = false;
		g_bRifleRound = false;
		g_bSniperRound = false;
	}
	if(type == 2)
	{
		g_bPistolRound = false;
		g_bSmgRound = false;
		g_bRifleRound = false;
		g_bSniperRound = false;
	}
}

stock bool IsValidClient(int client)
{
	if (client <= 0)return false;
	if (client > MaxClients)return false;
	if (!IsClientConnected(client))return false;
	if (IsFakeClient(client))return false;
	return IsClientInGame(client);
}

 

 

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