Nudziło mi się, więc edytowałem losowego vipa by Hanys na komendę :)
Kod się prezentuje tak:
#include <sourcemod>
public Plugin:myinfo =
{
name = "LosowyVip",
author = "Hanys Edited by dec1sive",
description = "Plugin losuje osobe ktora otrzyma flage",
version = "0.19",
};
bool dostepne;
public OnPluginStart()
{
RegConsoleCmd("sm_freevip", LosujVIP);
RegConsoleCmd("sm_darmowyvip", LosujVIP);
}
public OnMapStart()
{
CreateTimer(60.0, Dostepne);
}
public Action Dostepne(Handle timer)
{
dostepne = false;
PrintToChatAll(" \x04•VIP• \x01Losowanie na VIP'a jest dostepne: \x04!freevip");
}
public Action NieDostepne(Handle timer)
{
dostepne = true;
}
public Action LosujVIP(int client, int args)
{
new zwyciezca = LosowyGracz(3);
if(!dostepne)
{
if (zwyciezca == -1)
{
PrintToChat(client, " \x04•VIP• \x01Na serwerze znajduje sie zbyt malo graczy do losowania VIP'a.");
return Plugin_Handled;
}
AddUserFlags(zwyciezca, Admin_Custom2);
PrintToChatAll(" \x04•VIP• \x01Gracz\x0B %N \x01ma chrapke na darmowego VIP'a!", client);
PrintToChatAll(" \x04•VIP• \x01Trwa Przygotowanie...");
PrintToChatAll(" \x04•VIP• \x01Rozpoczynam Losowanie...");
PrintToChatAll(" \x04•VIP• \x01Trwa Losowanie...");
PrintToChatAll(" \x04•VIP• \x01VIP'a na mape otrzymuje \x0B%N\x01! Gratulacje!", zwyciezca);
CreateTimer(0.1, NieDostepne);
return Plugin_Handled;
}
else
{
PrintToChat(client, " \x04•VIP• \x07%N \x03Poczekaj, aż losowanie będzie dostępne", client);
}
return Plugin_Continue;
}
stock LosowyGracz(team)
{
new osoby[MaxClients + 1], clientCount;
for (new i = 1; i <= MaxClients; i++)
if (IsClientInGame(i) && !IsFakeClient(i) && !GetAdminFlag(GetUserAdmin(i), Admin_Custom2 & Admin_Ban))
osoby[clientCount++] = i;
if (clientCount <= 2)
return -1;
return osoby[GetRandomInt(0, clientCount - 1)];
}
Admin_Custom2 zamieniacie sobie na własną flagę VIP'a :)