do zmiennych globalnych (na samej górze pluginu już po #include ale przed pierwszym public)
#define MAX_PKT 100 enum umiejetnosci{ eInteligencja, eZdrowie, eWytrzymalosc, eKondycja } new umiejetnosci:iModePrzydziel[33];
#define MAX_PKT 100 - tutaj ustawiamy maksymalny level umiejętności
do plugin_init
register_clcmd("wprowadz_ilosc_pkt","iDodaj")
w dowolne miejsce
public iDodaj(id) { new szDodaj[196]; read_args(szDodaj,charsmax(szDodaj)) remove_quotes(szDodaj) if(is_str_num(szDodaj)) { new iIle = str_to_num(szDodaj) if(iIle > punkty_gracza[id]){ ColorChat(id, GREEN, "[COD:MW]^x01 Masz za malo punktow"); if(punkty_gracza[id]>0) PrzydzielPunkty(id); return PLUGIN_CONTINUE; } switch(iModePrzydziel){ case eInteligencja:{ if(inteligencja_gracza[id] + iIle > MAX_PKT){ iIle = MAX_PKT - inteligencja_gracza[id]; } inteligencja_gracza[id] += iIle; punkty_gracza[id] -= iIle; ColorChat(id, GREEN, "[COD:MW]^x01 Dodales %d punktow w inteligencje. %s", iIle,inteligencja_gracza[id] >= 100 ? "Maksymalny poziom osiagniety":""); } case eZdrowie:{ if(zdrowie_gracza[id] + iIle > MAX_PKT){ iIle = MAX_PKT - zdrowie_gracza[id]; } zdrowie_gracza[id] += iIle; punkty_gracza[id] -= iIle; ColorChat(id, GREEN, "[COD:MW]^x01 Dodales %d punktow w zycie. %s", iIle,zdrowie_gracza[id] >= 100 ? "Maksymalny poziom osiagniety":""); } case eWytrzymalosc:{ if(wytrzymalosc_gracza[id] + iIle > MAX_PKT){ iIle = MAX_PKT - wytrzymalosc_gracza[id] } wytrzymalosc_gracza[id] += iIle; punkty_gracza[id] -= iIle; ColorChat(id, GREEN, "[COD:MW]^x01 Dodales %d punktow w wytrzymalosc %s", iIle,wytrzymalosc_gracza[id] >= 100 ? "Maksymalny poziom osiagniety":""); } case eKondycja:{ if(kondycja_gracza[id] + iIle > MAX_PKT){ iIle = MAX_PKT - kondycja_gracza[id]; } kondycja_gracza[id] += iIle; punkty_gracza[id] -= iIle; ColorChat(id, GREEN, "[COD:MW]^x01 Dodales %d punktow w kondycje. %s", iIle,kondycja_gracza[id] >= 100 ? "Maksymalny poziom osiagniety":""); } } if(punkty_gracza[id]>0) PrzydzielPunkty(id); } else{ ColorChat(id, GREEN, "[COD:MW]^x01 Tylko cyfry!"); if(punkty_gracza[id]>0) PrzydzielPunkty(id); return PLUGIN_CONTINUE; } return PLUGIN_CONTINUE; }
Standardowe funkcje PrzydzielPunkty i PrzydzielPunkty_Handler podmieniamy na
public PrzydzielPunkty(id) { new inteligencja[65]; new zdrowie[60]; new wytrzymalosc[60]; new kondycja[60]; new tytul[25]; format(inteligencja, 64, "Inteligencja: \r%i \y(Zwieksza obrazenia zadawane przedmiotami)", inteligencja_gracza[id]); format(zdrowie, 59, "Zycie: \r%i \y(Zwieksza zycie)", zdrowie_gracza[id]); format(wytrzymalosc, 59, "Wytrzymalosc: \r%i \y(Zmniejsza obrazenia)", wytrzymalosc_gracza[id]); format(kondycja, 59, "Kondycja: \r%i \y(Zwieksza tempo chodu)", kondycja_gracza[id]); format(tytul, 24, "Przydziel Punkty(\r%i):", punkty_gracza[id]); new menu = menu_create(tytul, "PrzydzielPunkty_Handler"); menu_additem(menu, inteligencja); menu_additem(menu, zdrowie); menu_additem(menu, wytrzymalosc); menu_additem(menu, kondycja); menu_additem(menu,"Dodaj X punktow w Inteligencje"); menu_additem(menu,"Dodaj X punktow w Zycie"); menu_additem(menu,"Dodaj X punktow w Wytrzymalosc"); menu_additem(menu,"Dodaj X punktow w Kondycje"); menu_display(id, menu); #if defined BOTY if(is_user_bot2(id)) PrzydzielPunkty_Handler(id, menu, random(4)); #endif } public PrzydzielPunkty_Handler(id, menu, item) { client_cmd(id, "spk QTM_CodMod/select"); if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; } switch(item) { case 0: { if(inteligencja_gracza[id]<MAX_PKT) inteligencja_gracza[id]++; else ColorChat(id, GREEN, "[COD:MW]^x01 Maxymalny poziom inteligencji osiagniety"); } case 1: { if(zdrowie_gracza[id]<MAX_PKT) zdrowie_gracza[id]++; else ColorChat(id, GREEN, "[COD:MW]^x01 Maxymalny poziom sily osiagniety"); } case 2: { if(wytrzymalosc_gracza[id]<MAX_PKT) wytrzymalosc_gracza[id]++; else ColorChat(id, GREEN, "[COD:MW]^x01 Maxymalny poziom zrecznosci osiagniety"); } case 3: { if(kondycja_gracza[id]<MAX_PKT) kondycja_gracza[id]++; else ColorChat(id, GREEN, "[COD:MW]^x01 Maxymalny poziom zwinnosci osiagniety"); } case 4: { if(inteligencja_gracza[id]<MAX_PKT){ client_cmd(id, "messagemode wprowadz_ilosc_pkt"); iModePrzydziel[id] = eInteligencja; return PLUGIN_HANDLED; } } case 5: { if(punkty_gracza[id]){ client_cmd(id, "messagemode wprowadz_ilosc_pkt"); iModePrzydziel[id] = eZdrowie; return PLUGIN_HANDLED; } } case 6: { if(punkty_gracza[id]){ client_cmd(id, "messagemode wprowadz_ilosc_pkt"); iModePrzydziel[id] = eWytrzymalosc; return PLUGIN_HANDLED; } } case 7: { if(punkty_gracza[id]){ client_cmd(id, "messagemode wprowadz_ilosc_pkt"); iModePrzydziel[id] = eKondycja; return PLUGIN_HANDLED; } } } punkty_gracza[id]--; if(punkty_gracza[id]>0) PrzydzielPunkty(id); return PLUGIN_CONTINUE; }to wszystko
zostałem o to poproszony pomysł należy do Frajer'a [CoD Stary] Pewna funkcja - AMXX.pl: Support AMX Mod X