←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

losowanie gracza w 31 rundzie

Oporowiec - zdjęcie Oporowiec 18.08.2014

siema :)

mógłby mi ktoś podać przykładowy plugin, który będzie losował w 31 rundzie jednego gracza i przerzucał go do CT a pozostałych graczy do TT ?

Odpowiedz

  • +
  • -
Wielkie Jol - zdjęcie Wielkie Jol 18.08.2014

REJESTRACJA ZMIENNEJ
REJESTRACJA EVENTU_HLTV
...
EVENT_HLTV ()
ZWIEKSZ ZMIENNA O 1
JEŻELI ZMIENNA WYNOSI 31 TO :
WYLOSUJ GRACZA 
SPRAWDŹ CZY SĄ ZYWI
PĘTLA PRZENIES WSZYSTKICH DO CT ZA POMOCĄ CS_SET_USER_TEAM
PO WYKONANIU SIĘ PĘTLI PRZENIEŚ WYLOSOWANEGO GRACZA DO TT.
Koniec.
Odpowiedz

Oporowiec - zdjęcie Oporowiec 18.08.2014

jaśniej? :D

Odpowiedz

  • +
  • -
Drago36 - zdjęcie Drago36 18.08.2014

Zrób zmienną, która będzie odliczać rundy;

czyli w funkcji nowej rundy dodawaj +1 do zmiennej

nazwa_zmiennej += 1

oraz sprawdzaj czy zmienna wynosi już (w twoim wypadku) 31.

if(nazwa_zmiennej == 31)

A w tym warunku losuj gracza i przydzielaj ich do drużyn.

 

Jeden ze sposobów losowania gracza

Spoiler

speedkill (19.08.2014 09:28):
Sprawdź pętle jeszcze raz.
Odpowiedz

  • +
  • -
GwynBleidD - zdjęcie GwynBleidD 18.08.2014

EVENT_HLTV ()


Do uwzględnienia jest jeszcze game connecting (przed którym potrafi się nabić na start mapy nawet 10 nowych rund, jeśli gracze "wolno" wchdzą, bo np nowa mapa) w którym należy licznik wyzerować i tak samo w restarcie.

Poza tym czy event HLTV to na pewno jest nowa runda?
Odpowiedz

  • +
  • -
Wielkie Jol - zdjęcie Wielkie Jol 18.08.2014

Event hltv wykonuje się Tuż po zmianie rundy, czyli chyba można to zaliczyć jako nową runde. Moim zdaniem nie można używać eventu nowej rundy tej związanej z freezetime, gdyż wylosowanie gracza x powinno się odbyć jeszcze przed jego wystartowaniem , by gracze wiedzieli, kto został wylosowany i wszystko nie działo się na ostatnią chwilę
Odpowiedz

  • +
  • -
szelbi - zdjęcie szelbi 19.08.2014

Moim zdaniem nie można używać eventu nowej rundy tej związanej z freezetime, gdyż wylosowanie gracza x powinno się odbyć jeszcze przed jego wystartowaniem , by gracze wiedzieli, kto został wylosowany i wszystko nie działo się na ostatnią chwilę

Liczenie rund po ich zakończeniu + task na 2 sekundy na przenoszenie?

Odpowiedz

  • +
  • -
Wielkie Jol - zdjęcie Wielkie Jol 19.08.2014

Po co miałby w takim razie używać taska jak jest zbędny?
Odpowiedz

Oporowiec - zdjęcie Oporowiec 20.08.2014

STOP !!

mam coś takiego:

stock Boss_Round(g_Team)
{
new id_gracza[33],
g_Value;
 
for(new i = 1; i <= MaxPlayers; i++)
{
if(is_user_alive(i) && get_user_team(i) == g_Team)
{
id_gracza[g_Value] = i;
g_Value++;
}
}
return id_gracza[random(g_Value)];
}
Odpowiedz