Я сначала думал думал, но в голову ничего не приходило) Вроде оно просто, но и запутаться в этом легко, сейчас добил (а то покоя не давало), вроде такой вариант нормальный:
Код
enum Tovar
{
Sahar,
Maslo,
Banan,
Myaso
}
new const TovarPercent[Tovar] =
{
40, // чаще
25, // реже
15, // реже
10 // очень редко
};
new const String:TovarName[Tovar][] =
{
"Сахар",
"Масло",
"Банан",
"Мясо"
};
public OnPluginStart() {
RegConsoleCmd("q", qqq);
}
public Action:qqq(client, args)
{
PrintToConsole(client, TovarName[Tovar:GetRandomTovar()]);
return Plugin_Handled;
}
stock GetRandomTovar()
{
new CurrPercent = GetRandomInt(1, 100), x = 0, tvr = 4;
while (tvr--)
{
x += TovarPercent[Tovar:tvr];
if (x >= CurrPercent)
{
PrintToServer("CurrPercent: %d, tvr: %d", CurrPercent, tvr);
return tvr;
}
}
return tvr;
}