Dodanie Frakcji

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;
}

Dodaj komentarz

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.