Pokaże w tym tutku jak dodać frakcje do coda starego 😉
Pierwsze co robimy to dodajemy nową tablicę np. pod:
new const nazwy_klas[][] = {"Brak", "Snajper", "Komandos", "Strzelec wyborowy", "Obronca", "Medyk", "Wsparcie ogniowe", "Saper", "Demolitions", "Rusher", "Rambo (Klasa Premium)" };
dodajemy
new const frakcje[][]={ "Brak", "Polacy", "Rosjanie" }
zawsze pierwsze musi być Brak potem po przecinkach podajemy nazwy frakcji po ostaniej frakcji przecinka nie ma ilość jest dowolna ale nie przesadzajmy bo potem będzie dużo roboty 😉
dobrze idziemy dalej
dodajemy
enum { NONE = 0,polacy,rosjanie}
dodajemy tablice :
new const nalezy_do[]={ NONE, polacy, rosjanie, polacy, rosjanie, polacy, polacy, rosjanie, polacy, polacy, rosjanie }
to tutaj ustalamy do której frakcji należy klasa i tak w tym przykładzie Snajper należy do polaków a Komandos do Rosjan
Następnie musimy podmienić funkcje
public WybierzKlase(id)
na tą
public WybierzKlase(id) { new menu = menu_create("Wybierz frakcje:", "Wybierzfrakcje_Handle"); for(new i = 1;i<sizeof(frakcje);i++){ menu_additem(menu, frakcje[i]); } menu_display(id, menu); }
i dodać tą
public Wybierzfrakcje_Handle(id, menu2, item) { if(item == MENU_EXIT) { menu_destroy(menu2); return PLUGIN_CONTINUE; } item++; frakcja_gracza[id] = item; new menu = menu_create("Wybierz klase:", "WybierzKlase_Handle"); new klasa[50]; for(new i=1; i<sizeof nazwy_klas; i++) { if(nalezy_do[i] == item){ WczytajDane(id, i); format(klasa, 49, "%s \yPoziom: %i", nazwy_klas[i], poziom_gracza[id]); menu_additem(menu, klasa); } } WczytajDane(id, klasa_gracza[id]); menu_setprop(menu, MPROP_EXITNAME, "Wyjdz"); menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona"); menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona"); menu_display(id, menu); client_cmd(id, "spk QTM_CodMod/select"); #if defined BOTY if(is_user_bot2(id)) WybierzKlase_Handle(id, menu, random(sizeof nazwy_klas-1)); #endif return PLUGIN_CONTINUE; }
w zmiennych globalnych (np. przed new const nalezy_do[]) musimy jeszcze dodać
new frakcja_gracza[33]
i na koniec musimy podmienić funkcje
WybierzKlase_Handle(id, menu, item)
na
public WybierzKlase_Handle(id, menu, item) { client_cmd(id, "spk QTM_CodMod/select"); if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; } item++; new ile = 0; for(new i=1; i<sizeof nazwy_klas; i++) { if(nalezy_do[i] == frakcja_gracza[id]){ ile++; } if(ile == item){ item = i; break; } } if(item == klasa_gracza[id]) return PLUGIN_CONTINUE; if(item == Rambo && !(get_user_flags(id) & ADMIN_LEVEL_H)) { client_print(id, print_chat, "[COD:MW] Nie masz uprawnien aby kozystac z klasy premium."); WybierzKlase(id); return PLUGIN_CONTINUE; } if(klasa_gracza[id]) { nowa_klasa_gracza[id] = item; client_print(id, print_chat, "[COD:MW] Klasa zostanie zmieniona w nastepnej rundzie."); } else { klasa_gracza[id] = item; WczytajDane(id, klasa_gracza[id]); Odrodzenie(id); } return PLUGIN_CONTINUE; }