[ROZWIĄZANE] Warukni IF - Filozofia ...
Itachi
25.06.2012
Troche siedze nad czym si mysle, jak zrobic takie cos:
Jak jestem poza respem, a ma admin level B, to leci dalej, a jak jestem poza respem to nic sie nie robi?
Ja tak to widze:
If admin_level_b{
return plugin_continue
}else if (!g_bresp || !admin_level_b ){
return plugin_handle
}
client_print(id, print_center, "Masz dostepne opcje dla admina z flaga n, niedostepne na respie")
Zadziala takie cos?
Czy wystarczy tak:
If admin_level_b{
return plugin_continue
}else if (!g_bresp){
return plugin_handle
}
?
Czytalem troche o petlach, ale srednio rozumiem, wiec sie pytam czy tak to dziala mniejwiecejze jestem adminem, i poza respe mi to wyswietla, a jak jestem normalnym userem to na respie mi wyswietla, ale poza respem juz nie??
Użytkownik Itachi edytował ten post 25.06.2012 11:44
Jak jestem poza respem, a ma admin level B, to leci dalej, a jak jestem poza respem to nic sie nie robi?
Ja tak to widze:
If admin_level_b{
return plugin_continue
}else if (!g_bresp || !admin_level_b ){
return plugin_handle
}
client_print(id, print_center, "Masz dostepne opcje dla admina z flaga n, niedostepne na respie")
Zadziala takie cos?
Czy wystarczy tak:
If admin_level_b{
return plugin_continue
}else if (!g_bresp){
return plugin_handle
}
?
Czytalem troche o petlach, ale srednio rozumiem, wiec sie pytam czy tak to dziala mniejwiecejze jestem adminem, i poza respe mi to wyswietla, a jak jestem normalnym userem to na respie mi wyswietla, ale poza respem juz nie??
Użytkownik Itachi edytował ten post 25.06.2012 11:44
Gość_21977_* 25.06.2012
Pętle to np. while(), for()
if() jest jedynie funkcją, zwracającą true lub false.
return przerywa wykonanie kodu, zwracając pewną wartość.
Jeśli wykonane zostanie polecenie return, to nic dalej za nim nie zostanie już wykonane w danej np. funkcji.
if() jest jedynie funkcją, zwracającą true lub false.
return przerywa wykonanie kodu, zwracając pewną wartość.
Jeśli wykonane zostanie polecenie return, to nic dalej za nim nie zostanie już wykonane w danej np. funkcji.
Napisz jeszcze raz, jaki rezultat chcesz uzyskać, bo nie bardzo zrozumiałem.Jak jestem poza respem, a ma admin level B, to leci dalej, a jak jestem poza respem to nic sie nie robi?
Itachi
25.06.2012
@up
Mi chodzilo o return plugin_handle i continue, gdzies czytalem ze sa one do zawracania petli jakos tak.
Jestem na respie, mam admin_level_b, wyswietla mi sietekst , wychodze z respa - dalej pokazuje mi tekst
jestem normalnym graczem, jestem na respie pokazuje mi sie tekst, wychodze z respa - tekstu juz nie widze
Myslalem ze da sie jakos tak to zrobic
Ale zapewne nadpisalem troche za duzo, i pare jest bezsensu dopisana
Użytkownik Itachi edytował ten post 25.06.2012 12:25
Mi chodzilo o return plugin_handle i continue, gdzies czytalem ze sa one do zawracania petli jakos tak.
Jestem na respie, mam admin_level_b, wyswietla mi sietekst , wychodze z respa - dalej pokazuje mi tekst
jestem normalnym graczem, jestem na respie pokazuje mi sie tekst, wychodze z respa - tekstu juz nie widze
Myslalem ze da sie jakos tak to zrobic
if (!(get_user_flags(id) & ADMIN_LEVEL_B ))
{
if(!g_resp[id])
{
if(!(get_user_flags(id) & ADMIN_LEVEL_)
{
//tutaj przestaje pokazywac opcji poza respem bo to zwykly gracz
return PLUGIN_HANDLED
}else
if (get_user_flags(id) & ADMIN_LEVEL_B && !g_resp[id])
{
client_print(id, print_center, "Jestes adminem, masz takie same opcje dostepne takze poza respem")
return PLUGIN_CONTINUE
}
}
}
//opcje dostepne na respem dla admina, i opcje dostepne na respie dla admina i gracza
Ale zapewne nadpisalem troche za duzo, i pare jest bezsensu dopisana
Użytkownik Itachi edytował ten post 25.06.2012 12:25
Gość_21977_* 25.06.2012
OK, już rozumiem, jaki efekt chcesz uzyskać.
Tutaj masz opisane użycie returnów, nie będę powielał tematu.
Jeśli pierwszy warunek sprawdził, że gracz nie jest na respie, to ponowne sprawdzanie go wewnątrz tego ifa jest zbędne.
Jeśli warunek
Tutaj masz opisane użycie returnów, nie będę powielał tematu.
if(!g_resp[id]){Taki kod w zupełności wystarczy.
if(get_user_flags(id) & ADMIN_LEVEL_{
client_print(id, print_center, "Jestes adminem, masz opcje dostepne poza respem")
return PLUGIN_CONTINUE;
} else {
return PLUGIN_HANDLED;
}
}
Jeśli pierwszy warunek sprawdził, że gracz nie jest na respie, to ponowne sprawdzanie go wewnątrz tego ifa jest zbędne.
Jeśli warunek
!(get_user_flags(id) & ADMIN_LEVEL_nie został spełniony, to nie musisz na nowo sprawdzać
if (get_user_flags(id) & ADMIN_LEVEL_Bbo wynika to z niespełnienia poprzedniego warunku, zatem z całego
else if (get_user_flags(id) & ADMIN_LEVEL_B && !g_resp[id])wystarczy samo if.
MarWit
26.06.2012
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL