Awanse Klas co zrobić by zaczynać od 1 po...
PAKOV9 07.01.2013
Witam.
Ostatnio zainteresowałem się awansem klas ale mam pewien problem.
Dodałem to ,że bo wbiciu 60lvla nie awansujesz automatycznie na kolejna klase tylko ją odblokowujesz.
Niestety kiedy wbije np. 60 lvl snajperem to odblokowuje mi sie Elitarny Sniper i na niego przechodzi lvl i staty czyli tez ma 60 automatycznie.
Chciałbym żeby po odblokowaniu nowej klasy miala ona 1 lvl iyp.
Przypominam ,że by zmienić automatyczne awansowanie na odblokowanie innej klasy musiałem zmienić
to:
na to:
to:
na to:
i usunać to co odpowiadało za automatyczne awansowanie i zaczynanie z 1 lvlem ! ! !
Próbowałem zrobić to sam ale mi nie wychodzi. Proszę o pomoc ! !
Użytkownik PAKOV9 edytował ten post 07.01.2013 21:03
Ostatnio zainteresowałem się awansem klas ale mam pewien problem.
Dodałem to ,że bo wbiciu 60lvla nie awansujesz automatycznie na kolejna klase tylko ją odblokowujesz.
Niestety kiedy wbije np. 60 lvl snajperem to odblokowuje mi sie Elitarny Sniper i na niego przechodzi lvl i staty czyli tez ma 60 automatycznie.
Chciałbym żeby po odblokowaniu nowej klasy miala ona 1 lvl iyp.
Przypominam ,że by zmienić automatyczne awansowanie na odblokowanie innej klasy musiałem zmienić
to:
public WybierzKlase(id)
{
new menu = menu_create("Wybierz klase:", "WybierzKlase_Handle");
new klasa[50], dana_klasa, numer[10];
for(new i=1; i <= ilosc_klas; i++)
{
if(JestAwansem(i))
continue;
WczytajDane(id, i);
dana_klasa = i;
for(;
{
if(awansuje_do[dana_klasa] && poziom_gracza[id] >= awanse[ZnajdzAwans(dana_klasa, awansuje_do[dana_klasa])][2])
{
dana_klasa = awansuje_do[dana_klasa];
WczytajDane(id, dana_klasa);
}
else break;
}
formatex(klasa, charsmax(klasa), "%s \yPoziom: %i", nazwy_klas[dana_klasa], poziom_gracza[id]);
num_to_str(dana_klasa, numer, 9);
menu_additem(menu, klasa, numer);
}
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");
}
na to:
public WybierzKlase(id)
{
new menu = menu_create("Wybierz klase:", "WybierzKlase_Handle");
new klasa[50];
for(new i=1; i <= ilosc_klas; i++)
{
if(awansuje_z[i])
{
new bool:moze = false;
WczytajDane(id, awansuje_z[i]);
if(poziom_gracza[id] >= awanse[ZnajdzAwans(awansuje_z[i], i)][2])
moze = true;
WczytajDane(id, i);
if(moze) formatex(klasa, charsmax(klasa), "%s \yPoziom: %i", nazwy_klas[i], poziom_gracza[id]);
else formatex(klasa, charsmax(klasa), "\r%s \yPoziom: %i", nazwy_klas[i], poziom_gracza[id]);
}
else
{
WczytajDane(id, i);
formatex(klasa, charsmax(klasa), "%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");
}
to:
public WybierzKlase_Handle(id, menu, item)
{
client_cmd(id, "spk QTM_CodMod/select");
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
new data[65], name[65], acces, callback
menu_item_getinfo(menu, item, acces, data, 64, name, 64, callback)
item = str_to_num(data);
if(item == klasa_gracza[id] && !nowa_klasa_gracza[id])
return PLUGIN_CONTINUE;
nowa_klasa_gracza[id] = item;
if(klasa_gracza[id])
client_print(id, print_chat, "[COD:MW] Klasa zostanie zmieniona w nastepnej rundzie.");
else
{
UstawNowaKlase(id);
DajBronie(id);
ZastosujAtrybuty(id);
}
return PLUGIN_CONTINUE;
}
na to:
public WybierzKlase_Handle(id, menu, item)
{
client_cmd(id, "spk QTM_CodMod/select");
if(item++ == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
if(awansuje_z[item])
{
WczytajDane(id, awansuje_z[item]);
new bool:moze, a = ZnajdzAwans(awansuje_z[item], item)
if(poziom_gracza[id] >= awanse[a][2])
moze = true;
WczytajDane(id, klasa_gracza[id]);
if(!moze)
{
client_print(id, print_chat, "[COD:MW] Aby uzywac tej klasy musisz zdobyc %i poziom na klasie %s!", awanse[a][2], nazwy_klas[awansuje_z[item]]);
return PLUGIN_CONTINUE;
}
}
if(item == klasa_gracza[id] && !nowa_klasa_gracza[id])
return PLUGIN_CONTINUE;
nowa_klasa_gracza[id] = item;
if(klasa_gracza[id])
client_print(id, print_chat, "[COD:MW] Klasa zostanie zmieniona w nastepnej rundzie.");
else
{
UstawNowaKlase(id);
DajBronie(id);
ZastosujAtrybuty(id);
}
return PLUGIN_CONTINUE;
}
i usunać to co odpowiadało za automatyczne awansowanie i zaczynanie z 1 lvlem ! ! !
if(awansuje_do[klasa_gracza[id]])
{
if(poziom_gracza[id] >= awanse[ZnajdzAwans(klasa_gracza[id], awansuje_do[klasa_gracza[id]])][2])
{
set_hudmessage(212, 255, 85, 0.31, 0.32, 0, 6.0, 5.0);
ShowSyncHudMsg(id, SyncHudObj2,"Osiagajac poziom %i, awansowales do klasy %s!", poziom_gracza[id], nazwy_klas[awansuje_do[klasa_gracza[id]]]);
nowa_klasa_gracza[id] = awansuje_do[klasa_gracza[id]];
UstawNowaKlase(id);
DajBronie(id);
ZastosujAtrybuty(id);
ZapiszDane(id);
}
}
Próbowałem zrobić to sam ale mi nie wychodzi. Proszę o pomoc ! !
Użytkownik PAKOV9 edytował ten post 07.01.2013 21:03
Piro_0 08.01.2013
Jeśli all zrobiłeś dobrze zamień W publicu SprawdzPoziom, po ZapiszDane(id), na :
Widzę że masz tak daj sma silnika.
Tu masz świetny poradnik jak tak zrobisz będzie all dobrze. Ale sma możesz podać
http://amxx.pl/topic...63-awanse-klas/
Użytkownik Piro_0 edytował ten post 08.01.2013 20:05
Widzę że masz tak daj sma silnika.
if(awansuje_do[klasa_gracza[id]]) { if(poziom_gracza[id] >= awanse[ZnajdzAwans(klasa_gracza[id], awansuje_do[klasa_gracza[id]])][2]) { set_hudmessage(212, 255, 85, 0.31, 0.32, 0, 6.0, 5.0); ShowSyncHudMsg(id, SyncHudObj2,"Osiagajac poziom %i, awansowales do klasy %s!", poziom_gracza[id], nazwy_klas[awansuje_do[klasa_gracza[id]]]); nowa_klasa_gracza[id] = awansuje_do[klasa_gracza[id]]; UstawNowaKlase(id); DajBronie(id); ZastosujAtrybuty(id); ZapiszDane(id); } }
Tu masz świetny poradnik jak tak zrobisz będzie all dobrze. Ale sma możesz podać
http://amxx.pl/topic...63-awanse-klas/
Użytkownik Piro_0 edytował ten post 08.01.2013 20:05