PTB do modów gdzie występuje lvl
sebul
16.08.2011
Witam. Ostatnio myślałem nad zrobieniem własnego PTB, który brałby także pod uwagę lvl gracza (natyw), bo jak wiadomo zwykłe PTB tego nie robi i często źle balansuje drużyny. Ogólnie pomysł na plugin już mam i myślę, że nie będzie to aż tak bardzo trudne, ale nie wiem jak napisać jedną dosyć ważną (jak nie najważniejszą) funkcję. Plugin działał by na zasadzie, że po każdej rundzie do globalnej tablicy
przypisywał by jakąś tam ilość punktów, np. na 200 lvl
no i na podstawie tej tablicy, odbywały by się wszystkie akcje wykonywane przez PTB. Jeśli jakaś drużyna prowadziła by przynajmniej 3 rundami, ale jednocześnie mniej niż 5 rundami, to plugin równał by drużyny tak (przenosił, zamieniał graczy), aby suma tej globalnej tablicy w każdej drużynie była jak najbardziej przybliżona do siebie, dopiero jeśli przewaga wygranych rund wynosiła by 5, albo więcej, wtedy przenosiło by najlepszego gracza, albo zamieniało by go z najgorszym. Oczywiście trzeba będzie dodać też blokadę co do maksymalnej wielkości drużyny, czy też maksymalnej różnicy w ilościach graczy w drużynach oraz jakieś cvary do tego co napisałem, itp. ale z tym raczej bym sobie poradził. No i skoro proszę tutaj o pomoc, to jakbym skończył pisać plugin, to bym go tutaj udostępnił. Mam nadzieje, że ktoś wie jak napisać tą funkcję opisaną wyżej i mi tutaj pomoże.
Dodano 16 sierpień 2011 - 17:21:
Pomyślałem trochę nad tym i już wiem jak napisać tą funkcję, ale teraz mam pytanie czy jest już jakaś funkcja, która będzie zwracać różnicę pomiędzy dwoma liczbami? Mogę ją też samemu napisać, ale może jest już coś takiego w dokumentacji.
new Float:punkty_gracza[33];
przypisywał by jakąś tam ilość punktów, np. na 200 lvl
punkty_gracza[id] = (fragi*2-śmierci)*(lvl gracza/400+0.5);
no i na podstawie tej tablicy, odbywały by się wszystkie akcje wykonywane przez PTB. Jeśli jakaś drużyna prowadziła by przynajmniej 3 rundami, ale jednocześnie mniej niż 5 rundami, to plugin równał by drużyny tak (przenosił, zamieniał graczy), aby suma tej globalnej tablicy w każdej drużynie była jak najbardziej przybliżona do siebie, dopiero jeśli przewaga wygranych rund wynosiła by 5, albo więcej, wtedy przenosiło by najlepszego gracza, albo zamieniało by go z najgorszym. Oczywiście trzeba będzie dodać też blokadę co do maksymalnej wielkości drużyny, czy też maksymalnej różnicy w ilościach graczy w drużynach oraz jakieś cvary do tego co napisałem, itp. ale z tym raczej bym sobie poradził. No i skoro proszę tutaj o pomoc, to jakbym skończył pisać plugin, to bym go tutaj udostępnił. Mam nadzieje, że ktoś wie jak napisać tą funkcję opisaną wyżej i mi tutaj pomoże.
Dodano 16 sierpień 2011 - 17:21:
Pomyślałem trochę nad tym i już wiem jak napisać tą funkcję, ale teraz mam pytanie czy jest już jakaś funkcja, która będzie zwracać różnicę pomiędzy dwoma liczbami? Mogę ją też samemu napisać, ale może jest już coś takiego w dokumentacji.
DarkGL
16.08.2011
różnice ? w sensie odejmowanie :F
Dokumentacja AMXX.pl: Core >> float > floatsub
Dokumentacja AMXX.pl: Core >> float > floatsub
sebul
16.08.2011
Ogólnie różnicę pomiędzy liczbami, nie odejmowanie, bo przy odejmowaniu może zwrócić liczbę ujemną, a tutaj właśnie jak wpiszę "floatsub(2.0,5.0)" to zwróci -3. W sumie można to teraz napisać tak
ale może jednak jest coś takiego co od razu tak robi...?
stock Float:roznica(Float:num1, Float:num2) {
if(num1 > num2)
return floatsub(num1,num2);
else
return floatsub(num2,num1);
}
ale może jednak jest coś takiego co od razu tak robi...?
A może sma?
16.08.2011
if(różnica <0)
różnica*(-1)
Prawda, że genialne?
Użytkownik A może sma? edytował ten post 16.08.2011 18:18
sebul
16.08.2011
Nie pytałem o inny sposób ^ ^ ale Twój i tak wydaje się gorszy, bo za każdym razem, gdy różnica będzie < 0 to będę musiał mnożyć przez ją -1, a chyba jednak lepiej omijać mnożenia, a tym bardziej dzielenia, jak się oczywiście tylko da.
sebul
16.08.2011
Chodzi o to, że przy mnożeniu (tutaj nie jestem pewny), a tym bardziej przy dzieleniu, serwer potrzebuje więcej pamięci, czyli jeśli można coś zrobić bez mnożenia/dzielenia, to czemu mam serwer bardziej przeciążać? Oczywiście przy takich wyliczeniach tej pamięci dużo nie potrzeba, ale jeśli miały by to być jakieś długie wyliczenia, to różnica w użyciu tej pamięci pewnie była by spora.
Robi się już nie potrzebny bałagan...
Robi się już nie potrzebny bałagan...
DarkGL
16.08.2011
twoj stock jest ok nie widziałem funkcji amxx która działa by w ten sposób ale gdyby była robiła by to pewnie podobnie do twojego stocka
sebul
17.08.2011
Zamknąć można, plugin zrobiony, jest aktualnie u mnie na testach ;] Ogólnie wyszło na to, że zrobiłem przeróbkę normalnego PTB...
Adminek AMXX.PL 17.08.2011
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: problem rozwiązany
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Ten temat został zamknięty przez moderatora.
Powód: problem rozwiązany
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL