LosowyVIP dla jednego gracza
// This file was auto-generated by SourceMod (v1.7.3-dev+5280)
// ConVars for plugin "LosowyVip.smx"
// Ile osob wymaganych jest do wylosowania losowego vip'a
// -
// Default: "0"
random_player "0"
// W ktorej rundzie ma losowac losowego vip'a (Uwaga: Rozgrzewka liczona jest jako 1 runda!) 0:Losowy vip wylaczony
// -
// Default: "0"
random_round "2"
Oraz plik SM
#include <sourcemod>
public Plugin:myinfo =
{
name = "LosowyVip",
author = "KatowADRE",
description = "Plugin losuje losowa osobe ktora otrzyma flage",
version = "1.0",
url = "http://StrefaSkilla.pl"
}
new Handle:Random_round;
new Handle:Random_player;
new Rounds = 0;
public OnPluginStart()
{
CreateConVar("sm_randomvip", "1.0", "Losowy VIP", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY|FCVAR_DONTRECORD);
Random_round = CreateConVar("random_round", "0", "W ktorej rundzie ma losowac losowego vip'a (Uwaga: Rozgrzewka liczona jest jako 1 runda!) 0:Losowy vip wylaczony", FCVAR_NOTIFY);
Random_player = CreateConVar("random_player", "0", "Ile osob wymaganych jest do wylosowania losowego vip'a", FCVAR_NOTIFY);
AutoExecConfig(true, "sm_vip_random");
HookEvent("round_start", Event_RoundStart);
HookEvent("cs_win_panel_match", RestartRound);
}
public Event_RoundStart(Handle:event, const String:name[], bool:dontBroadcast)
{
new winner = GetRandomPlayer(3);
new g_random_round = GetConVarInt(Random_round);
Rounds = Rounds + 1;
if (Rounds == g_random_round)
{
if (winner == -1)
{
PrintToChatAll("\x04[\x04V.I.P\x01] \x06Na serwerze znajduje sie za malo graczy do wylosowania losowego VIP'a\x01");
}
AddUserFlags(winner, Admin_Reservation);
PrintToChatAll("[\x04V.I.P\x01] \x06Trwa losowanie VIP'a...\x01");
PrintToChatAll("[\x04V.I.P\x01] \x06-----\x01");
PrintToChatAll("[\x04V.I.P\x01] \x06-----\x01");
PrintToChatAll("[\x04V.I.P\x01] \x06-----\x01");
PrintToChatAll("[\x04V.I.P\x01] \x06Losowym VIP'em zostaje \x02%N\x01\x06! Gratulujemy!\x01", winner);
PrintToChatAll("[\x04V.I.P\x01] \x07Wylosowany Gracz otrzymal VIP'a do konca mapy!");
}
}
public Action:RestartRound(Handle:event, const String:name[], bool:dontBroadcast)
{
Rounds = 0;
}
stock GetRandomPlayer(team)
{
new g_random_player = GetConVarInt(Random_player);
new clients[MaxClients + 1], clientCount;
for (new i = 1; i <= MaxClients; i++)
if (IsClientInGame(i))
clients[clientCount++] = i;
if (clientCount <= g_random_player)
return -1;
return clients[GetRandomInt(0, clientCount - 1)];
}