Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

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.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Mister Silenzo - zdjęcie

Mister Silenzo

Rejestracja: 12.09.2013
Aktualnie: Nieaktywny
Poza forum Ostatnio: 12.02.2021 05:00
*****

#620905 TP Game + RR

Napisane przez glut w 27.02.2014 22:33

opis
Modyfikacja polega na tym, że gra rozpoczyna się od 90 sek rozgrzewki z USP,GLOCKIEM lub DEAGLEM (menu z wyborem). Po niej następuje wybór zwycięskiej drużyny czy chce pozostać w swoim Team'ie czy chce przejść do przeciwnego. Logicznie jeżeli wygra opcja w swoim to zostają u siebie, jeżeli w przeciwnym przenosi ich do przeciwnego Team'u.

Na czas rozgrzewki są zatrzymane 2 pluginy

Plugin TeamPlay Game odpowiada za to, że drużyny grają 15 rund po czym zmiana stron, a po 16 wygranych rundach przez 1 drużynę zmiana mapy na kolejną z cyklu

teamplay.amxx oraz M_Antirusher.amxx

instalacja

Podstawowa

wymagane moduly
 

amxmodx
amxmisc
cstrike
fun
fakemeta
hamsandwich
dhudmessage
colorchat

cvary

Brak

konfiguracja

Czas rozgrzewki zmieniamy w pliku rr.sma
 

new czas = 90 // czas w sek

Po czym ponownie kompilujemy :)

Załączone pliki


  • +
  • -
  • 16


#619720 [ROZWIĄZANE] Coś więcej o: "?" i ":"

Napisane przez MAGNET w 24.02.2014 12:55

Po krótce to taki inny rodzaj warunku

jakis warunek ? Operacja, gdy warunek = true : Operacja, gdy warunek = false
get_user_team(id) == 1 ? client_print(id, print_center, "Jestes terro") : client_print(id, print_center, "Jestes CT lub Spect")

@EDIT hehe no racja, dałem inny przykład O.o


  • +
  • -
  • 4


#209264 Dodawanie frakcji - 2 sposoby

Napisane przez DarkGL w 25.01.2011 17:44

Witam
poradnik napisany w szkole także będę go jeszcze poprawiał ;)
pokaże tu dwa sposoby dodania frakcji do nowego coda
I sposób jest bardziej czasochłonny ale daje potem łatwiejszą rozbudowę (chyba)
II sposób jest chyba prostszy ale tylko chyba ;)

I sposób

Spoiler


II sposób

Spoiler



Zrobione przez DarkGL dla AMXX.PL
Zakaz używanie, kopiowania i innego wykorzystywania treści bez zgody autora. Wszelkie prawa zastrzeżone. ©

  • +
  • -
  • 126


#594453 [ROZWIĄZANE] Wytłumaczenie działania tablic

Napisane przez Gość w 19.12.2013 03:13

#include <amxmodx>

new HudSyncObj

new kills[33];	// tablica posiada 33 komórki o indeksach od 0 do 32 włącznie.
		// odwołujemy się do nich poprzez podanie indexu, np. kills[5] dla komórki o indexie 5
		// komórki o id od 1 do 32 odpowiadają wartościom zabójstw dla graczy o tym id
		// przy czym id 0 pozostaje niezmienione (nie chcemy za każdym razem odejmować jedynki, to kosztuje)

public plugin_init() {
	register_plugin("asd", "1.0", "Mister Silenzo")
	
	HudSyncObj = CreateHudSyncObj()
	
	register_clcmd("say /dodaj", "dodaj_h")
	
	set_task(0.1, "test", .flags="b")
}

public dodaj_h(id)
{
	if(is_user_connected(id))	// sprawdzamy, czy dany gracz jest jeszcze na serwerze, profilaktyka
	kills[id] += 50			// zwiekszamy pole tablicy dla tego jednego danego gracza
}

public test()				// id tutaj zbędne, patrz: definicja taska
{
	for(new i=1; i<=32; ++i){	// pętla po graczach
					// każdemu pokazujemy jego własny poziom
		if(is_user_connected(i)){
			set_hudmessage(255, 0, 0, 0.45, 0.55, 0, 0.0, 0.0, 0.1, 0.1, 69);
			ShowSyncHudMsg(i, HudSyncObj, "Wartosc zmiennej: %i", kills[i]);
		}
	}
}



#591538 [ROZWIĄZANE] Wyłączenie obrażeń od upadku w klasie.

Napisane przez RasiaQ w 08.12.2013 19:06

Include:

#include <engine>

pod includami:
#define FALL_VELOCITY 350.0

Zmienne:
new bool:ma_klase[33];
new bool:falling[33];

cod_class_enabled/disabled jeśli nie masz

I na koncu sma:
public client_PreThink(id) {
if(ma_klase[id] && is_user_alive(id) && is_user_connected(id))
{
if(entity_get_float(id, EV_FL_flFallVelocity) >= FALL_VELOCITY) {
falling[id] = true;
}
else
{
falling[id] = false;
}
}
}

public client_PostThink(id) {
if(ma_klase[id] && is_user_alive(id) && is_user_connected(id))
{
if(falling[id]) {
entity_set_int(id, EV_INT_watertype, -3);
}
}

  • +
  • -
  • 1


#189630 Call of Duty: MW Mod [UPDATE]

Napisane przez QTM. Peyote w 18.11.2010 18:56

testyq.png

Nowa wersja modyfikacji Call of Duty: MW.
Główną zmianą jest budowa moda.
Teraz wszystkie perki(przedmioty) i klasy są oddzielnymi pluginami.

Podziękowania dla:
MieTeK - za grafa.
Szyfrant - za testa.
testbs.png

say /klasa - Otwiera menu wyboru klasy.
say /klasy - Otwiera menu opisów klas.
say /perk - Pokazuje informacje o posiadanym perku.
say /perki - Otwiera menu opisów perków.
say /wyrzuc - Wyrzuca aktualny perk.
say /reset - Resetuje statystyki.
say /statystyki - Pokazuje aktualne statystyki.
say /pomoc - Tajne.
testue.png

cod_killxp 10 - Doswiadczenie za zabojstwo.
cod_winxp 50 - Doswiadczenie za wygrana.
cod_damagexp 1 - Doswiadczenie za 20 obrazen.
cod_savetype 1 - Typ zapisu 1- Nick 2-SteamID 3-IP.
cod_maxlevel 200 - Maksymalny poziom.
cod_levelratio 35 - Ustawia ile doswiadczenia potrzebne do zdobycia 1 poziomu.
cod_weaponsblocking 1 - blokowanie podnoszenia broni
testhm.png

Kopiujemy zawartość folderu cstrike z CodMod.rar do folderu cstrike na serwerze.
Nic nie trzeba dopisywać do plugins.ini!

testdi.png
(Tylko dla skrypterów)

forward cod_perk_changed(id, perk);
/*------------------------------
Forward wysylany do wszystkich pluginów w momencie zmiany perku
------------------------------*/


forward cod_class_changed(id, klasa);
/*------------------------------
Forward wysylany do wszystkich pluginów w momencie zmiany klasy
------------------------------*/


forward cod_perk_enabled(id, wartosc);
/*------------------------------
Forward wysylany do pluginu z ktorego zarejestrowany jest perk w momencie aktywacji
------------------------------*/


forward cod_perk_disabled(id);
/*------------------------------
Forward wysylany do pluginu z ktorego zarejestrowany jest perk w momencie dezaktywacji
------------------------------*/


forward cod_perk_used(id);
/*------------------------------
Forward wysylany do pluginu z ktorego zarejestrowany jest perk w momencie uzycia perku
------------------------------*/


forward cod_class_enabled(id);
/*------------------------------
Forward wysylany do pluginu z ktorego zarejestrowana jest kasa w momencie aktywacji
------------------------------*/


forward cod_class_disabled(id);
/*------------------------------
Forward wysylany do pluginu z ktorego zarejestrowana jest kasa w momencie dezaktywacji
------------------------------*/
testkdr.png
(Tylko dla skrypterów)

native cod_get_user_xp(id);
/*------------------------------
Zwraca doswiadczenie gracza
------------------------------*/


native cod_get_user_level(id);
/*------------------------------
Zwraca poziom gracza
------------------------------*/


native cod_get_user_points(id)
/*------------------------------
Zwraca punkty gracza
------------------------------*/


native cod_set_user_xp(id, wartosc);
/*------------------------------
Ustawia doswiadczenie gracza
------------------------------*/


native cod_get_user_class(id);
/*------------------------------
Zwraca klase gracza
------------------------------*/


native cod_set_user_class(id, klasa, zmien=0);
/*------------------------------
Ustawia klase gracza,
jezeli zmien=1 zmienia ja natychmiast
------------------------------*/


native cod_get_user_perk(id, &wartosc=0);
/*------------------------------
Zwraca perk gracza,
oraz przypisuje zmiennej wartosc wartosc perku
------------------------------*/


native cod_set_user_perk(id, perk, wartosc=-1, pokaz_info=1);
/*------------------------------
Ustawia perk gracza.
Jezeli wartosc = -1,
wartosc perku bedzie losowa.
Jezeli perk = -1 perk
bedzie losowy
------------------------------*/


native cod_get_user_health(id, zdrowie_zdobyte=1, zdrowie_klasy=1, zdrowie_bonusowe=1);
/*------------------------------
Zwraca punkty statystyki zdrowie
------------------------------*/


native cod_set_user_bonus_health(id, wartosc);
/*------------------------------
Ustawia dodatkowe punkty statystyki zdrowie
------------------------------*/


native cod_get_user_intelligence(id, inteligencja_zdobyta=1, inteligencja_klasy=1, inteligencja_bonusowa=1);
/*------------------------------
Zwraca punkty statystyki inteligencja
------------------------------*/


native cod_set_user_bonus_intelligence(id, wartosc);
/*------------------------------
Ustawia dodatkowe punkty statystyki inteligencja
------------------------------*/


native cod_get_user_trim(id, kondycja_zdobyta=1, kondycja_klasy=1, kondycja_bonusowa=1);
/*------------------------------
Zwraca punkty statystyki kondycja
------------------------------*/


native cod_set_user_bonus_trim(id, wartosc);
/*------------------------------
Ustawia dodatkowe punkty statystyki kondycja
------------------------------*/


native cod_get_user_stamina(id, wytrzymalosc_zdobyta=1, wytrzymalosc_klasy=1, wytrzymalosc_bonusowa=1);
/*------------------------------
Zwraca punkty statystyki wytrzymalosc
------------------------------*/


native cod_set_user_bonus_stamina(id, wartosc);
/*------------------------------
Ustawia dodatkowe punkty statystyki wytrzymalosc
------------------------------*/


native cod_points_to_health(id, ilosc);
/*------------------------------
Przydziela punkty do statystyki zdrowie
------------------------------*/


native cod_points_to_intelligence(id, ilosc);
/*------------------------------
Przydziela punkty do statystyki inteligencja
------------------------------*/


native cod_points_to_trim(id, ilosc);
/*------------------------------
Przydziela punkty do statystyki kondycja
------------------------------*/


native cod_points_to_stamina(id, ilosc);
/*------------------------------
Przydziela punkty do statystyki wytrzymalosc
------------------------------*/


native cod_inflict_damage(atakujacy, ofiara, Float:obrazenia, Float:czynnik_inteligencji=1.0, byt_uszkadzajacy=0, dodatkowe_flagi=0);
/*------------------------------
Zadaje obrazenia z uwzglednieniem inteligencji
------------------------------*/


native cod_get_perkid(const nazwa_perku[]);
/*------------------------------
Zwaca numer perku o podanej nazwie
------------------------------*/


native cod_get_perks_num();
/*------------------------------
Zwaca ilosc perkow
------------------------------*/


native cod_get_perk_name(perk, Return[], len);
/*------------------------------
Kopiuje nazwe perku do Return
------------------------------*/


native cod_get_perk_desc(perk, Return[], len);
/*------------------------------
Kopiuje opis perku do Return
------------------------------*/


native cod_get_classid(const nazwa_klasy[]);
/*------------------------------
Zwaca numer klasy o podanej nazwie
------------------------------*/


native cod_get_classes_num();
/*------------------------------
Zwaca ilosc klas
------------------------------*/

native cod_get_class_name(perk, Return[], len);
/*------------------------------
Kopiuje nazwe klasy do Return
------------------------------*/


native cod_get_class_desc(perk, Return[], len);
/*------------------------------
Kopiuje opis klasy do Return
------------------------------*/


native cod_give_weapon(id, bron);
/*------------------------------
Daje okreslona bron oraz pozwala na jej posiadanie
------------------------------*/


native cod_take_weapon(id, bron);
/*------------------------------
Zabiera okreslona bron oraz zabrania jej posiadania
------------------------------*/


native cod_set_user_shield(id, wartosc);
/*------------------------------
Ustawia tarcze gracza.
------------------------------*/


native cod_set_user_nightvision(id, wartosc);
/*------------------------------
Ustawia noktowizor gracza.
------------------------------*/


native cod_register_perk(const nazwa[], const opis[], min_wartosc=0, max_wartosc=0);
/*------------------------------
Rejestruje nowy perk oraz zwraca jego numer
------------------------------*/


native cod_register_class(const nazwa[], const opis[], bronie, punkty_zdrowia, punkty_kondycji, punkty_inteligencji, punkty_wytrzymalosci);
/*------------------------------
Rejestruje nowa klase oraz zwraca jej numer
------------------------------*/    


native cod_get_level_xp(poziom);
/*------------------------------
Zwraca ilosc potrzebnego doswiadczenia do przejscia danego poziomu
------------------------------*/
testpx.png testyi.png
----------------> Link
Załączony plik  CodMod.rar   965,15 KB  39662 Ilość pobrań

Poprawiona wersja zapisu do pliku vault -> [cod nowy] Call of Duty: MW Mod %5BUPDATE%5D - post #328

Ostatnie zmiany:
  • Naprawione natywy cod_get_class_name i cod_get_class_desc i błąd z pojawiającą się informacją o zdobyciu poziomu.05.01.11-17:03
  • Usunięte bugi crashujące serwer, dodane 5 nowych natyw&#243;w, blokowanie podnoszenia broni w stylu starego CodModa12.12.10-17:00
  • Dodane param_convert do get_perk_name/desc i get_class_name/desc oraz dodane poprzednie zmiany do *.amxx24.11.10-20:03
  • Naprawiony błąd z brakiem fraga za zabicie z rakiety, miny i dynamitu21.11.10-19:07
  • Usunięty client_cmd z pętli i dodany natyw cod_get_user_level21.11.10-12:07
  • Naprawiony perk notatki sapera i poprawiona funkcja UstawPerk19.11.10-12:35
  • Naprawiony natyw cod_get_perkid19.11.10-21:44
  • Usunięty bug z niewłaściwą losową wartością perku. Od teraz cod_perk_enabled wysyła numer perku, a cod_class_enabled numer klasy19.11.10-18:51
  • Dodana klasa Admirał(dawny Rambo) i naprawiony perk Tajemnica Generała.[sup]19.11.10-16:06
  • Poprawiony plik "codmod.inc" i małe zmiany. [sup]19.11.10-15:00
Zgłaszajcie bugi i zaglądajcie co jakiś czas czy nie ma łatek.
  • +
  • -
  • 323


#588205 [ROZWIĄZANE] Jak stworzyc menu z listą graczy?

Napisane przez Droso w 24.11.2013 22:09

O co chodzi z przypisaniem zmiennej data jako info itemu w pętli (To jest potrzebne do menu_item_getinfo, tak?)?

Tak, parametr info w menu_additem - jest bardzo przydatny - możesz umieścić tam ID gracza (tylko najpierw trzeba zamienić liczbę na string num_to_str) i wiele innych rzeczy.

Właściwie ty chciałeś tylko nick gracza, ale ja jeszcze w handlerze pobrałem Ci ID gracza właśnie dzięki temu służy info.

Funkcją menu_item_getinfo pobierasz informacje o wybranej opcji (itemie) z menu - ja pobrałem zawartość tekstową opcji czyli nick oraz info - czyli ID w stringu (jeszcze pobrałem callbacka i dostęp - ale o tym poczytaj w poradniku w dziale Turtoriale)

Następnie zamieniłem string na liczbę (str_to_num) - następnie sprawdziłem, czy ten gracz jest jeszcze na serwerze :).

Tak podałem Ci jeszcze ID gracza mimo iż prosiłeś tylko o nick - ale jak wiemy mając ID możemy też pobrać nick :), więc ID daje nam więcej możliwości.

 

 

 

Czy funkcja menu_handler stała się jedną dla wszystkich itemów?

Zawsze tak jest - tylko zmienia się parametr item w funkcji (trzeci parametr).

ITEM nie jest równe ID gracza wybranego - dlatego to info między innymi :).

 

 

 

Mam rozumieć, że wartość "data" w "new id2 = num_to_str(data)" jest pobierana z powyższego "item_menu_getinfo"?

Tak - wyżej zgrubsza to wyjaśniłem w dokumentacji powinno być to bardziej opisane. -> menu_item_getinfo

 

 

PS.

[..]a nie chcę wzorować się na gotowcach, bo tak się nic nie nauczę i nie chcę też dostawać tutaj gotowych odpowiedzi, a raczej proszę o naprowadzenie mnie na właściwe rozwiązanie.

Ale i tak dzięki za szybką reakcję :P

 

 

Sorki, ale cięzko to przedstawić bez dokładnych przykładów itd., lepiej podać tak niż bez żadnych moich komentarzy ^^


  • +
  • -
  • 2


#588187 [ROZWIĄZANE] Jak stworzyc menu z listą graczy?

Napisane przez Droso w 24.11.2013 21:08

Myślę, że łatwiej będzie Ci to zrozumieć:

 

Najpierw tworzymy jakby uchwyt i nazwę naszego menu:

new menu = menu_create("Lista Graczy:", "menu_handler");

Następnie przystępujemy to pętli, ty użyłeś do tego jeszcze funkcji get_players, ale ja osobiście jej nie lubię :D, bo zawiera błędy itd.

Dlatego użyjemy samej pętli :)

Najpierw zmienne

new maxplayers = get_maxplayers(); // ile osob moze byc maksymalnie na serwerze
new name[32] // zmienna przechowujaca nick gracza
new data[6] // to bedzie ID gracza, ktore wysylamy w info :)

Teraz pętla:

for(new i=1; i<=maxplayers; i++)  // pętla od 1 DO MAKSYMALNEJ LICZBY GRACZY
{
     if(!is_user_connected(i))
          continue;      // jezeli gracz o danym ID (i) nie jest polaczony to go pomijamy uzwajać "continue"
 
     if(is_user_hltv(i) || is_user_bot(i))
          continue;    // jezeli dane ID to HLTV/BOT - pomijamy!

     num_to_str(i, data, 5);
     get_user_name(id, name, 31);  // pobieramy nick
     menu_additem(menu, name, data);  // dodajemy do menu gracza.
}


Zakończenie menu, czyli wyświetlelnie:

menu_display(id, menu, item);

Teraz funkcja menu_handler :)


public menu_handler(id, menu, item)
{
	if(item == MENU_EXIT)  // jezeli gracz wyszedl z MENU - nic nie robimy :)
	return;
	
	if(!is_user_connected(id))  // jezeli gracz, ktory wybieral cos z menu nie jest polaczony to konczymy interakcje :D
	return; 
	
	// zmienne sa wymagane ;(
	new name[32]; // ta zmienna bedzie przechowywala nick gracza, a inaczej tekst wybranej czesci menu.
	new callback; // to jest callback na razie Ci nie potrzebny nie zwracaj uwagi
	new data[6]; // to będzie ID gracza ;)
	new dostep; // to Ci nie potrzebne;
	
	menu_item_getinfo(menu, item, dostep, data, 5, name, 31, callback); // pobieramy dane wybranego/ej itemu/opcji z menu!
	
	new id2 = str_to_num(data);
	
	if(!is_user_connected(id2))
	return;
	
	
	// id2 - to id gracza wybranego z menu :)
	// name - to jego nick.
	
	client_print(id, print_chat, "Wybrales gracza: %s o ID: %d", name, id2); :)
}

Proszę.

Nie rozumiesz, pisz - wytłumaczymy w tym temacie.

 


  • +
  • -
  • 5


#280659 Inne dodawanie punktów

Napisane przez Goliath w 10.08.2011 10:49

Cholera, miałem zrobione u siebie praktycznie to samo i zastanawiałem się, kiedy to wstawić. Jak widać, trochę zbyt długo się zastanawiałem xD.

Co do tematu: zauważyłem taką niedogodność - gdy ma się np. 85 punktów w danej statystyce, a limit wynosi 100, to przy próbie dodania w statystykę np. 16 punktów wyświetli się, że "maksymalny poziom statystyki osiągnięty". Oto kod, który powinien to naprawić:
public PrzydzielPunkty_Handler(id, menu, item) {
client_cmd(id, "spk QTM_CodMod/select");

if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_CONTINUE;
}

if(punkty_gracza[id] < 1)
return PLUGIN_CONTINUE;

new limit_poziomu = get_pcvar_num(cvar_limit_poziomu);
new ilosc = (co_ile[szybkosc_rozdania[id]] > punkty_gracza[id]) ? punkty_gracza[id] : co_ile[szybkosc_rozdania[id]]

switch(item) {
case 0: {
if(szybkosc_rozdania[id] < charsmax(co_ile)) szybkosc_rozdania[id]++;
else szybkosc_rozdania[id] = 0;
}
case 1: {
if(inteligencja_gracza[id] < limit_poziomu/2) {
if(ilosc > limit_poziomu/2 - inteligencja_gracza[id])
ilosc = limit_poziomu/2 - inteligencja_gracza[id];
inteligencja_gracza[id]+=ilosc;
punkty_gracza[id]-=ilosc;
} else client_print(id, print_chat, "[COD:MW] Maxymalny poziom inteligencji osiagniety");
}
case 2: {
if(zdrowie_gracza[id] < limit_poziomu/2) {
if(ilosc > limit_poziomu/2 - zdrowie_gracza[id])
ilosc = limit_poziomu/2 - zdrowie_gracza[id];
zdrowie_gracza[id]+=ilosc;
punkty_gracza[id]-=ilosc;
} else client_print(id, print_chat, "[COD:MW] Maxymalny poziom sily osiagniety");
}
case 3: {
if(wytrzymalosc_gracza[id] < limit_poziomu/2) {
if(ilosc > limit_poziomu/2 - wytrzymalosc_gracza[id])
ilosc = limit_poziomu/2 - wytrzymalosc_gracza[id];
wytrzymalosc_gracza[id]+=ilosc;
punkty_gracza[id]-=ilosc;
} else client_print(id, print_chat, "[COD:MW] Maxymalny poziom zrecznosci osiagniety");
}
case 4: {
if(kondycja_gracza[id] < limit_poziomu/2) {
if(ilosc > limit_poziomu/2 - kondycja_gracza[id])
ilosc = limit_poziomu/2 - kondycja_gracza[id];
kondycja_gracza[id]+=ilosc;
punkty_gracza[id]-=ilosc;
} else client_print(id, print_chat, "[COD:MW] Maxymalny poziom kondycji osiagniety");
}
}

if(punkty_gracza[id] > 0)
PrzydzielPunkty(id);

return PLUGIN_CONTINUE;
}

A dla tych, którzy chcą dodawanie wszystkiego w daną statystykę: zmieniamy:
new const co_ile[] = { 1, 4, 8, 16, 24 }

Na:
new const co_ile[] = { 1, 4, 8, 16, 24, -1 }

Zmieniamy funkcję PrzydzielPunkty na:
public PrzydzielPunkty(id)
{
new szybkosc[60];
new inteligencja[65];
new zdrowie[60];
new wytrzymalosc[60];
new kondycja[60];
new tytul[25];

if(co_ile[szybkosc_rozdania[id]] == -1)
format(szybkosc, charsmax(szybkosc), "Ile dodawac: \rwszystko \y(Ile pkt dodac do statow)");
else format(szybkosc, charsmax(szybkosc), "Ile dodawac: \r%d \y(Ile pkt dodac do statow)", co_ile[szybkosc_rozdania[id]]);
format(inteligencja, charsmax(inteligencja), "Inteligencja: \r%i \y(Zwieksza sile perkow i umiejetnosci klasy)", PobierzInteligencje(id, 1, 1, 1));
format(zdrowie, charsmax(zdrowie), "Zdrowie: \r%i \y(Zwieksza zdrowie)", PobierzZdrowie(id, 1, 1, 1));
format(wytrzymalosc, charsmax(wytrzymalosc), "Wytrzymalosc: \r%i \y(Zmniejsza obrazenia)", PobierzWytrzymalosc(id, 1, 1, 1));
format(kondycja, charsmax(kondycja), "Kondycja: \r%i \y(Zwieksza tempo chodu)", PobierzKondycje(id, 1, 1, 1));
format(tytul, charsmax(tytul), "Przydziel Punkty(%i):", punkty_gracza[id]);
new menu = menu_create(tytul, "PrzydzielPunkty_Handler");
menu_additem(menu, szybkosc);
menu_addblank(menu, 0);
menu_additem(menu, inteligencja);
menu_additem(menu, zdrowie);
menu_additem(menu, wytrzymalosc);
menu_additem(menu, kondycja);
menu_setprop(menu, MPROP_EXIT, 0);
menu_display(id, menu);
}

A funkcję PrzydzielPunkty_Handler na:
public PrzydzielPunkty_Handler(id, menu, item) {
client_cmd(id, "spk QTM_CodMod/select");

if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_CONTINUE;
}

if(punkty_gracza[id] < 1)
return PLUGIN_CONTINUE;

new limit_poziomu = get_pcvar_num(cvar_limit_poziomu);
new ilosc;
if(co_ile[szybkosc_rozdania[id]] == -1)
ilosc = punkty_gracza[id];
else ilosc = (co_ile[szybkosc_rozdania[id]] > punkty_gracza[id]) ? punkty_gracza[id] : co_ile[szybkosc_rozdania[id]]

switch(item) {
case 0: {
if(szybkosc_rozdania[id] < charsmax(co_ile)) szybkosc_rozdania[id]++;
else szybkosc_rozdania[id] = 0;
}
case 1: {
if(inteligencja_gracza[id] < limit_poziomu/2) {
if(ilosc > limit_poziomu/2 - inteligencja_gracza[id])
ilosc = limit_poziomu/2 - inteligencja_gracza[id];
inteligencja_gracza[id]+=ilosc;
punkty_gracza[id]-=ilosc;
} else client_print(id, print_chat, "[COD:MW] Maxymalny poziom inteligencji osiagniety");
}
case 2: {
if(zdrowie_gracza[id] < limit_poziomu/2) {
if(ilosc > limit_poziomu/2 - zdrowie_gracza[id])
ilosc = limit_poziomu/2 - zdrowie_gracza[id];
zdrowie_gracza[id]+=ilosc;
punkty_gracza[id]-=ilosc;
} else client_print(id, print_chat, "[COD:MW] Maxymalny poziom sily osiagniety");
}
case 3: {
if(wytrzymalosc_gracza[id] < limit_poziomu/2) {
if(ilosc > limit_poziomu/2 - wytrzymalosc_gracza[id])
ilosc = limit_poziomu/2 - wytrzymalosc_gracza[id];
wytrzymalosc_gracza[id]+=ilosc;
punkty_gracza[id]-=ilosc;
} else client_print(id, print_chat, "[COD:MW] Maxymalny poziom zrecznosci osiagniety");
}
case 4: {
if(kondycja_gracza[id] < limit_poziomu/2) {
if(ilosc > limit_poziomu/2 - kondycja_gracza[id])
ilosc = limit_poziomu/2 - kondycja_gracza[id];
kondycja_gracza[id]+=ilosc;
punkty_gracza[id]-=ilosc;
} else client_print(id, print_chat, "[COD:MW] Maxymalny poziom kondycji osiagniety");
}
}

if(punkty_gracza[id] > 0)
PrzydzielPunkty(id);

return PLUGIN_CONTINUE;
}

Powyższych kodów nie testowałem, ale myślę, że będą działać.
  • +
  • -
  • 23