cześć.
możecie mi poprawić ten kod? Nie chce się skompilować
public Losowanie(id) { losuj = random_num(1, 32); if(!is_user_alive(losuj)) losuj() wylosuj_bonus(id) }
zmienna:
new losuj;
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Napisano 31.08.2014 21:15
cześć.
możecie mi poprawić ten kod? Nie chce się skompilować
public Losowanie(id) { losuj = random_num(1, 32); if(!is_user_alive(losuj)) losuj() wylosuj_bonus(id) }
zmienna:
new losuj;
Aktualny projekt: Dokumentacja Offline || [ 10% ]
Napisano 31.08.2014 21:19
If you can dream it, you can do it.
Napisano 31.08.2014 21:19
NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
Napisano 31.08.2014 21:30
public Losowanie() { losuj = random_num(1, 32); if(!is_user_alive(losuj)) Losowanie() wylosuj_bonus(losuj) }
Napisano 31.08.2014 21:32
Losowanie jest złe, użyj tego: http://amxx.pl/topic...gracza-z-teamu/
dlaczego złe ?
public Losowanie() { losuj = random_num(1, 32); if(!is_user_alive(losuj)) Losowanie() wylosuj_bonus(losuj) }
zaraz sprawdzę i dam znać
@edit
xenos, Twoja wersja się kompiluje // zaraz dam znać czy działa
@edit 2
xenos, Twoja wersja działa jednak "losuje kilka razy"
dasz radę ogarnąć ?
Użytkownik RPK. Macior edytował ten post 31.08.2014 21:42
Aktualny projekt: Dokumentacja Offline || [ 10% ]
Napisano 31.08.2014 21:44
If you can dream it, you can do it.
Napisano 31.08.2014 21:47
domyślam się - crash ?
13249 a jest możliwość żeby w moim kodzie nie było tego bugu gdy serwer jest pusty?
chodzi mi o jakieś dopracowanie go.
Aktualny projekt: Dokumentacja Offline || [ 10% ]
Napisano 31.08.2014 21:53
public Losowanie() { if(get_playersnum()!=0) { losuj = random_num(1, 32); if(!is_user_alive(losuj)) Losowanie(); else wylosuj_bonus(losuj) } }
Napisano 31.08.2014 21:53
Tutaj nie ma co dopracowywać, bo po prostu ten sposób jest bardzo nieoptymalny, skorzystaj z kodu, który został Ci podany.domyślam się - crash ?
13249 a jest możliwość żeby w moim kodzie nie było tego bugu gdy serwer jest pusty?
chodzi mi o jakieś dopracowanie go.
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
Napisano 31.08.2014 21:56
W tym przypadku rekurencja bardziej jest opłacalna niż pętla z użyciem tablicy.Tutaj nie ma co dopracowywać, bo po prostu ten sposób jest bardzo nieoptymalny, skorzystaj z kodu, który został Ci podany.
Napisano 31.08.2014 22:03
W tym przypadku rekurencja bardziej jest opłacalna niż pętla z użyciem tablicy.Tutaj nie ma co dopracowywać, bo po prostu ten sposób jest bardzo nieoptymalny, skorzystaj z kodu, który został Ci podany.
A sposób zabezpieczenia wystarczy pobrać czy na serwerze jest więcej niż 0 graczy i tyle
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
Napisano 31.08.2014 22:10
W tym przypadku rekurencja bardziej jest opłacalna niż pętla z użyciem tablicy.Tutaj nie ma co dopracowywać, bo po prostu ten sposób jest bardzo nieoptymalny, skorzystaj z kodu, który został Ci podany.
A sposób zabezpieczenia wystarczy pobrać czy na serwerze jest więcej niż 0 graczy i tyle
Gdy na serwerze będzie mało graczy (a szczególnie gdy będzie jeden) to losowanie na sztywno liczby od 1 do 32 nie jest czymś optymalnym, bo poprawne id może wylosować się dopiero po X razie (przy jednym graczu jest 1/32 szansy na to), więc żadna rekurencja nie będzie tutaj bardziej opłacalna. A pętla i tablica? To w żaden sposób nie przeciąży serwera, a średnio na pewno będzie wymagać mniejszych zasobów niż taka rekurencja.
Napisano 31.08.2014 22:11
dobra, dzięki wszystkim za odpowiedzi / podpowiedzi
wezmę kod który podał 13249.
temat do zamknięcia.
Aktualny projekt: Dokumentacja Offline || [ 10% ]
Napisano 31.08.2014 22:15
O ile w ostatnim zdaniu masz rację, o tyle id gracza może być większe od "get_playersnum", jak już można tam wstawić "get_maxplayers" (a najlepiej pobrać to tylko raz), wtedy nie wiem co będzie bardziej optymalne/opłacalne, ale według mnie ta rekurencja i tak jest tutaj najgorszym sposobem losowania, mimo że sam kiedyś coś podobnego zrobiłem.O pluginie wiemy jedynie że ma losować gracza,nie ma informacji w jakich warunkach.
Może losowanie odbywać się przy pełnym serwerze.
Zawsze wartość 32 można zamienić na get_playersnum() czyli na aktualną ilość osób.
A z tego co kiedyś uczyli na algorytmice, pętla+tablica -> rząd N
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
Napisano 31.08.2014 22:16
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
0 użytkowników, 0 gości, 0 anonimowych