Jak to działa?
Na początku rundy wyszukuje na serwerze gracza który ma największy level. Jego Lvl mnoży przez ustawiony procent (w zmiennej) i przy spawnie gdy gracz ma mniejszy lvl niż obliczony - dostaje go. Rzecz ta dzieje się co rundę. Przykład działania.
Gracz A - Komandos 80 Lvl.
Gracz B - Rambo 2 lvl.
------- gracz a ma największy lvl więc 20 % (domyślnie ustawiony procent najwyzszego którego gracze mają dostać) więc Gracz B Dostanie 16 lvli.
Gracz A Zmieia z Komandosa (80 Lvli) na Rambo gdzie ma 1 lvl.
Gracz B Gra Rambo z 16 LVLem.
------- po odrodzeniu Największym Lvlem na serwerze jest 16 lvl więc Gracz A dostanie jego 20%.
Ilość procentów można ustawić.
Otwieramy Silnik Coda i dodajemy przed plugin_init
new min_lvl = 0; new Float:procent = 0.20; // liczba 0.20 oznacza 20 % max lvl'u. Dajac 0.5 damy 50 % a 1.0 - 100 % lvlu
Szukamy public NowaRunda() i przed
freezetime = true;dodajemy
FindMaxLvl();Szukamy Odrodzenie(id) i przed
if(punkty_gracza[id] > 0) PrzydzielPunkty(id);
dodajemy
if(poziom_gracza[id] < min_lvl) { client_print(id,print_chat,"[Balans Cod] Wykrylem duze problemy z balansem lvli na serwerze"); client_print(id,print_chat,"[Balans Cod] W ramach tego dostales %i na start",min_lvl); UstawDoswiadczenie(id,PobierzDoswiadczeniePoziomu(min_lvl)+1); poziom_gracza[id] = min_lvl; SprawdzPoziom(id); }
Do pluginu dodajemy funkcje.
public FindMaxLvl() { min_lvl = 0; new max_lvl=0; for(new id=1;id<=32;id++) { if(poziom_gracza[id] > max_lvl) max_lvl = poziom_gracza[id]; } min_lvl = floatround(max_lvl*procent); }
Kod nie jest Młody - kilka miechów temu zrobiłem go dla Siebie ale Widząc prośby o "lvl na star" postanowiłem opublikować. Jak jakieś błędy są proszę o napisanie. Ta wersja działała na moim serwerze.