Jeśli chodzi ci o coś takiego że:
gdy gracz który ma tą klasę wyceluje w swojego to ten w którego on celuje będzie dostawać powiedzmy co sekunde 1 armoru to jest to możliwe, oczywiście
To równanie zostało stworzone przy pomocy kodu LaTeX:
Edytor LaTeX online: CodeCogs.com/latex/eqneditor.php
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|




Mężczyzna
Napisane przez Mlodzik
w 01.05.2013 10:54
Napisane przez Mlodzik
w 01.05.2013 10:52
Proszę
codperk_sekretszpiega.sma 1,4 KB 72 Ilość pobrań
codperk_sekretszpiega.amxx
codperk_superpower.sma 710 bajtów 39 Ilość pobrań
codperk_superpower.amxx
Napisane przez Mlodzik
w 20.04.2013 10:14
Witam!
Wymyśliłem jak zrobić, aby po wybraniu klasy pokazywało nam opis klasy i pytanie czy chcemy ją wybrać(dla pewności).
Postanowiłem że się z Wami tym podzielę.
A więc po kolei:
1. Tworzymy nową zmienną pomiędzy:
new bool:freezetime = true;
a:
public plugin_init()
o nazwie wybrana_klasa, czyli będzie to wyglądać tak:
new bool:freezetime = true; new wybrana_klasa[33] public plugin_init()
2.Odszukujemy funkcję
public WybierzKlase_Handle(id, menu, item)
3.Zamieniamy:
if(item == klasa_gracza[id] && !nowa_klasa_gracza[id])
return PLUGIN_CONTINUE;
na:
if(item == klasa_gracza[id])
return PLUGIN_CONTINUE;
4. Usuwamy:
nowa_klasa_gracza[id] = item;
i w miejsce tego dodajemy:
wybrana_klasa[id] = item
5. Tworzymy nowe menu, które w tytule będzie miało opis wybranej klasy i pytanie czy chcemy ją wybrać, czyli tuż pod poprzednim dopisujemy:
new text[513]
new bronie[320];
for(new i=1, n=1; i <= 32; i++)
{
if((1<<i) & bronie_klasy[item])
{
new weaponname[22];
get_weaponname(i, weaponname, 21);
replace_all(weaponname, 21, "weapon_", " ");
if(n > 1)
add(bronie, charsmax(bronie), ",");
add(bronie, charsmax(bronie), weaponname);
n++;
}
}
format(text, 512, "\rNazwa: \w%s ^n\rOpis: \w%s^n\rBronie: \w%s^n\rInteligencja: \w%i^n\rZdrowie: \w%i^n\rWytrzymalosc: \w%i^n\rKondycja: \w%i^n^n\yCzy chcesz wybrac te klase?",nazwy_klas[item], opisy_klas[item], bronie, inteligencja_klas[item], zdrowie_klas[item], wytrzymalosc_klas[item], kondycja_klas[item])
new nmenu = menu_create(text, "WybierzKlase_Handler")
menu_additem(nmenu, "Tak")
menu_additem(nmenu, "Nie")
menu_display(id, nmenu)
Czyli ostatecznie funkcja WybierzKlase_Handle będzie wyglądała tak:
{
client_cmd(id, "spk QTM_CodMod/select");
if(item++ == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
if(item == klasa_gracza[id])
return PLUGIN_CONTINUE;
wybrana_klasa[id] = item
new text[513]
new bronie[320];
for(new i=1, n=1; i <= 32; i++)
{
if((1<<i) & bronie_klasy[item])
{
new weaponname[22];
get_weaponname(i, weaponname, 21);
replace_all(weaponname, 21, "weapon_", " ");
if(n > 1)
add(bronie, charsmax(bronie), ",");
add(bronie, charsmax(bronie), weaponname);
n++;
}
}
format(text, 512, "\rNazwa: \w%s ^n\rOpis: \w%s^n\rBronie: \w%s^n\rInteligencja: \w%i^n\rZdrowie: \w%i^n\rWytrzymalosc: \w%i^n\rKondycja: \w%i^n^n\yCzy chcesz wybrac te klase?",nazwy_klas[item], opisy_klas[item], bronie, inteligencja_klas[item], zdrowie_klas[item], wytrzymalosc_klas[item], kondycja_klas[item])
new nmenu = menu_create(text, "WybierzKlase_Handler")
menu_additem(nmenu, "Tak")
menu_additem(nmenu, "Nie")
menu_display(id, nmenu)
return PLUGIN_CONTINUE
}
6. Tuż pod funkcją WybierzKlase_Handle tworzymy nową WybierzKlase_Handler, w ten sposób:
public WybierzKlase_Handler(id, menu, item)
7. Do tej nowej funkcji wrzucamy:
client_cmd(id, "spk QTM_CodMod/select"); //aby byl dzwiek przy wybraniu tak/nie if(wybrana_klasa[id] == klasa_gracza[id] && !nowa_klasa_gracza[id]) //aby nie wybierało nam nowej klasy jesli ta nowa to ta sama co juz mamy return PLUGIN_CONTINUE;
8.Sprawdzamy co wybrał gracz czyli:
switch(item)
{
case 0: //jesli wybral TAK...
{
nowa_klasa_gracza[id] = wybrana_klasa[id]; //to ustawiamy mu nowa klase taka co wybral
if(klasa_gracza[id]) //jesli juz ma klase to zmieni mu sie w next rundzie
client_print(id, print_chat, "[COD:MW] Klasa zostanie zmieniona w nastepnej rundzie.");
else //jesli nie ma...
{
UstawNowaKlase(id);
DajBronie(id);
ZastosujAtrybuty(id); //automatycznie ustawi mu sie
}
}
case 1: //Jesli wybral NIE...
{
WybierzKlase(id) //To wraca do menu wyboru klasy
}
}
9. Na koniec do funkcji dopisujemy jeszcze tylko:
return PLUGIN_CONTINUE
Czyli funkcja WybierzKlase_Handler, będzie wyglądać tak:
public WybierzKlase_Handler(id, menu, item)
{
client_cmd(id, "spk QTM_CodMod/select");
if(wybrana_klasa[id] == klasa_gracza[id] && !nowa_klasa_gracza[id])
return PLUGIN_CONTINUE;
switch(item)
{
case 0:
{
nowa_klasa_gracza[id] = wybrana_klasa[id];
if(klasa_gracza[id])
client_print(id, print_chat, "[COD:MW] Klasa zostanie zmieniona w nastepnej rundzie.");
else
{
UstawNowaKlase(id);
DajBronie(id);
ZastosujAtrybuty(id);
}
}
case 1:
{
WybierzKlase(id)
}
}
return PLUGIN_CONTINUE;
}
A całość:
public WybierzKlase(id)
{
new menu = menu_create("Wybierz klase:", "WybierzKlase_Handle");
new klasa[50];
for(new i=1; i <= ilosc_klas; i++)
{
WczytajDane(id, i);
format(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");
}
public WybierzKlase_Handle(id, menu, item)
{
client_cmd(id, "spk QTM_CodMod/select");
if(item++ == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
if(item == klasa_gracza[id])
return PLUGIN_CONTINUE;
wybrana_klasa[id] = item
new text[513]
new bronie[320];
for(new i=1, n=1; i <= 32; i++)
{
if((1<<i) & bronie_klasy[item])
{
new weaponname[22];
get_weaponname(i, weaponname, 21);
replace_all(weaponname, 21, "weapon_", " ");
if(n > 1)
add(bronie, charsmax(bronie), ",");
add(bronie, charsmax(bronie), weaponname);
n++;
}
}
format(text, 512, "\rNazwa: \w%s ^n\rOpis: \w%s^n\rBronie: \w%s^n\rInteligencja: \w%i^n\rZdrowie: \w%i^n\rWytrzymalosc: \w%i^n\rKondycja: \w%i^n^n\yCzy chcesz wybrac te klase?",nazwy_klas[item], opisy_klas[item], bronie, inteligencja_klas[item], zdrowie_klas[item], wytrzymalosc_klas[item], kondycja_klas[item])
new nmenu = menu_create(text, "WybierzKlase_Handler")
menu_additem(nmenu, "Tak")
menu_additem(nmenu, "Nie")
menu_display(id, nmenu)
return PLUGIN_CONTINUE
}
public WybierzKlase_Handler(id, menu, item)
{
client_cmd(id, "spk QTM_CodMod/select");
if(wybrana_klasa[id] == klasa_gracza[id] && !nowa_klasa_gracza[id])
return PLUGIN_CONTINUE;
switch(item)
{
case 0:
{
nowa_klasa_gracza[id] = wybrana_klasa[id];
if(klasa_gracza[id])
client_print(id, print_chat, "[COD:MW] Klasa zostanie zmieniona w nastepnej rundzie.");
else
{
UstawNowaKlase(id);
DajBronie(id);
ZastosujAtrybuty(id);
}
}
case 1:
{
WybierzKlase(id)
}
}
return PLUGIN_CONTINUE;
}
Mam nadzieję, że się przyda, napisałem to bo mówiono mi że jeszcze nikt poprawnie tego nie zrobił, więc chyba jestem pierwszy
Działać na pewno działa, bo testowałem już to u siebie.



Moja zawartość