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