#include <amxmodx>
#include <fun>
#include <hamsandwich>
#include <colorchat>
#define PLUGIN "Kalosze Murzyna"
#define VERSION "1.2.0"
#define AUTHOR "MuFFes"
new losowygracz;
new cvar_maxspeed;
new cvar_mingraczy;
new cvar_maxgraczy;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_logevent("roundstart", 2, "1=Round_Start")
RegisterHam(Ham_Item_PreFrame, "player", "HamItemPreFramePost", 1)
cvar_mingraczy=register_cvar("amx_kaloszeminplayers","4")
cvar_maxgraczy=register_cvar("amx_kaloszemaxplayers","32")
cvar_maxspeed=register_cvar("amx_kaloszespeed","1.3")
}
public roundstart() {
new gracze[32], liczba;
get_players(gracze, liczba, "ah")
if(liczba>=get_pcvar_float(cvar_mingraczy) && liczba<=get_pcvar_float(cvar_maxgraczy))
{
losowygracz = gracze[random(liczba)+1];
if(is_user_alive(losowygracz))
{
new szName[33];
get_user_name(losowygracz, szName, 32);
ColorChat(0, GREEN, "[Losowanie]^x01 Gracz ^x03%s^x01 znalazl kalosze murzyna i^x04 biega szybciej^x01 !",szName);
}
else set_task(2.0, "roundstart")
}
else losowygracz = 0;
return PLUGIN_CONTINUE;
}
public HamItemPreFramePost(this)
{
if(this == losowygracz && is_user_alive(this))
set_user_maxspeed(losowygracz, get_user_maxspeed(losowygracz) * get_pcvar_float(cvar_maxspeed));
}
Nie testowałem.
Gracz o najmniejszym id nie zostanie wylosowany nigdy, a wylosowanie gracza o największym id skończy się bardzo nieprzyjemnym błędem, oczywiście prędkości mu także nie dodając.
losowygracz = gracze[random(ilosc)+1];
Ta jedynka nie powinna być dodawana.
Śmiem się nie zgodzić, przecież random(max) zwraca liczbę z przedziału od 0 do max-1, więc w Twoim przypadku gracz z najwyższym id nie zostanie wylosowany, więc po dodaniu 1 dostaniemy przedział od 1 do max.
I jeszcze jedno, przyjmijmy, że na serwerze znajdowało się 32 graczy, jeżeli 10 pierwszych, którzy pierwsi połączyli się z serwerem (pierwsze numery id) rozłączyli się z serwerem czyli zostaną id 11-32, przy losowaniu pobieramy liczbę graczy (22) wylosujemy np. 5 i nic się nie stanie, no chyba że się mylę i po każdym opuszczeniu serwera przez gracza id zmieniają właścicieli, ale jak kiedyś sprawdzałem tak się nie dzieje, więc trzeba sprawdzać czy wylosowany znajduje się na serwerze.
jeżeli się mylę to MuFFes możesz usunąć to sprawdzanie i else z set taskiem.