Wychwycenie najwiekszego levelu danej klasy
Yakashi 10.03.2013
Witam.. chcialbym sie dowiedziec jak zrobic aby co Respawn sprawdzalo graczy z CT ktorzy maja klase Rambo kto ma najwiekszy level (oczywiscie tylko graczy ktorzy sa na serwerze)
Probowalem zrobic petle lecz mialem problem wlasnie aby to tylko szukalo graczy z CT ktorzy maja klase Rambo (tylko z tej klasy ma wyszukiwac)
Bylbym bardzo wdzieczny za pomoc badz wyjasnienie
Probowalem zrobic petle lecz mialem problem wlasnie aby to tylko szukalo graczy z CT ktorzy maja klase Rambo (tylko z tej klasy ma wyszukiwac)
Bylbym bardzo wdzieczny za pomoc badz wyjasnienie
d0naciak
10.03.2013
new best_level, best_id; for(new i = 1; i <= get_maxplayers(); i++) { if(is_user_connected(i) && klasa_gracza[i] == Rambo && get_user_team(i) == 2 && poziom_gracza[i] > best_level) { best_level = poziom_gracza[i]; best_id = i; } } client_print(0, print_chat, "Najwiekszy poziom ma gracz o indexie %d (%d poziom)", best_id, best_level);
Yakashi 10.03.2013
wszystko ladnie dziala.. ale powiedz mi jeszcze jak zrobic .. bo gdy bedzie 3 graczy ktorzy beda mieli ten sam level to co wtedy sie stanie ? bo np chcialbym do tego dodac ze kto ma najwiekszy poziom to dostanie expa albo hp na na start.. i wlasnie moje pytanie brzmi czy jezeli te 3 osoby beda mialy ten sam level to dostana pewnie te 3 osoby tak ?
Klakier
10.03.2013
Ja stworzyłem coś takiego
i do
public przydziel(id)
{
if (!is_user_connected(id))
return
const ROZMIAR = 1024
static msg[ROZMIAR + 1], len; len = 0
new players[32], pnum, player, sortCT[16], counterCT
get_players(players, pnum)
for (new i = 0; i < pnum; i++)
{
player = players[i]
switch(get_user_team(player))
{
case 2:
{
sortCT[counterCT] = player
counterCT++
}
}
}
bubble_sort_by_lvl(sortCT, counterCT)
for (new ct = 0; ct < counterCT; ct++)
{
player = sortCT[ct]
if(klasa_gracza[player] != Rambo || get_user_team(player) != 2)
continue;
len += formatex(msg[len], ROZMIAR - len, "[ %s ... %i lvl ]^n", nazwa_gracza[player], poziom_gracza[player])
}
set_hudmessage(25, 125, 225, 0.3, 0.3, 0, 6.0, 1.1, 0.0, 0.0, 1)
ShowSyncHudMsg(id, CreateHudSyncObj(), msg)
}
public bubble_sort_by_lvl(list[16], liczba)
{
if(liczba < 2)
return
static temp, a, b
for (a = 0; a < liczba; a++)
{
for (b = a + 1; b < liczba; b++)
{
if (poziom_gracza[list[a]] < poziom_gracza[list[b]])
{
temp = list[a]
list[a] = list[b]
list[b] = temp
}
}
}
}
i do
public odrodzeniewystarczy dodac
przydziel(id)
d0naciak
10.03.2013
Tylko jeden dostanie, jak chcesz dla kilku to łapwszystko ladnie dziala.. ale powiedz mi jeszcze jak zrobic .. bo gdy bedzie 3 graczy ktorzy beda mieli ten sam level to co wtedy sie stanie ? bo np chcialbym do tego dodac ze kto ma najwiekszy poziom to dostanie expa albo hp na na start.. i wlasnie moje pytanie brzmi czy jezeli te 3 osoby beda mialy ten sam level to dostana pewnie te 3 osoby tak ?
new best_levels[33], best_ids[33], best_players_num; for(new i = 1; i <= get_maxplayers(); i++) { if(is_user_connected(i) && klasa_gracza[i] == Rambo && get_user_team(i) == 2 && poziom_gracza[i] > best_level) { best_players_num++; best_levels[best_players_num] = poziom_gracza[i]; best_ids[best_players_num] = i; } } for(new i = 1; i <= best_players_num; i++) { client_print(0, print_chat, "Najlepszy gracz nr %d to gracz o indexie %d (%d poziom)", i, best_levels[i], best_ids[i] }
Edited by d0n tHe Pr0oo, 10.03.2013 17:34.
Yakashi 10.03.2013
okej.. a w tym pierwszym jak będę mialy przykladowo 2 osoby taki sam level to ktora osoba bedzie miala najwyzszy level ? Ta ktora wczesniej sprawdzi petla czyli z nizszym id ?