Page 1 of 5

Ce sunt if-urile? [Amxx]

Posted: 27 Aug 2007, 17:08
by FireW@ll
If-urile sunt niste comenzii care arata daca acel if = daca executa o comanda pe un jucator sau face altceva.
Comenziile de tip if sunt diferite pentru toate modulele.

Uitati un exemplu de script in care trebuie sa verificati daca userul este in viata.

Code: Select all

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "New Plugin"
#define VERSION "1.0"
#define AUTHOR "Author"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_concmd("amx_ss","ss",ADMIN_KICK,"- <nume> snapshot a player")
	
}

public ss(id){
	if(is_user_alive(id))
	client_cmd(id,"snapshot")
	else
	client_print(id, print_console,"Nu e in viata acel user")
}
mai sunt si multe cu is_user
ex. is_user_admin, is_user_connect si altele :)

Daca userul nu ii in viata o sa va zica "Nu e in viata acel user", daca e in viata va face snapshot la jucator. :)
Sper ca ati inteles ceva. :P

Re: Ce sunt if-urile? [Amxx]

Posted: 18 Dec 2007, 16:15
by aNNakin
Traducerea IF -urilor este "daca"


1. a). if(is_user_alive(id)) -> executa o comanda doar daca user-ul este in viata
b). if!(is_user_alive(id)) -> executa o comanda doar daca user-ul nu este in viata

2. a). if(is_user_admin(id)) -> executa o comanda doar daca user-ul este admin
b). if(!is_user_admin(id))-> executa o comanda doar daca user-ul nu este admin

3. a). if(!(get_user_flags(id) & ACCESS)) -> un mod de a verifica daca user-ul este admin,aceasta este doar daca nu este admin
b). if(get_user_flags(id) & ACCESS) -> un mod de a verifica daca user-ul este admin,aceasta este doar daca este admin

4. if(is_user_connected(id) -> Executa comanda doar daca user-ul respectiv este conectat

5. if(is_user_connecting(id) -> Executa comanda doar daca user-ul se conecteaza

6. if(!cmd_access(id,level,cid,2)) -> un alt mod de a verifica daca user-ul este admin,aceasta este doar daca nu este admin

7. a). if(!player) -> Executa o comanda doar daca user-ul acela exista
b). if(!target) -> Executa o comanda doar daca user-ul acela exista( ex 2)

ex : if(!target)
{
client_print(id,print_chat,"Player not found!")
return PLUGIN_HANDLED
}

Re: Ce sunt if-urile? [Amxx]

Posted: 18 Dec 2007, 16:24
by Digi
anakin, ti-a iesit fraza [Traducerea IF -urilor este "daca"] prea mica si nu prea putem sa o citim :))

plus ca e mai bine sa explicati inca ceva....

daca aveti un if si o singura chestie care sa ruleze nu este necesar {} ,ex:

Code: Select all

if(is_user_alive(id)){
    client_print(blabla)
    client_cmd(blabla)
}else
    client_print(altceva)

Code: Select all

if(!is_user_alive(id))
    client_print(altceva)
else{
    client_print(blabla)
    client_cmd(blabla)
}

Code: Select all

if(!is_user_alive(id)){
    client_print(altceva)
    server_cmd("quit")
}else{
    client_print(blabla)
    client_cmd(blabla)
}
dar recomandarea mea este sa folositi mereu {} deoarece nu stiti cand ve-ti adauga ceva nou si nu stiti dupa aia de ce nu merge cum trebuie :) si sunt mai multe motive de ce va recomand asta :)

Re: Ce sunt if-urile? [Amxx]

Posted: 18 Dec 2007, 21:05
by aNNakin
Este adevarat :)

Re: Ce sunt if-urile? [Amxx]

Posted: 18 Dec 2007, 22:46
by FireW@ll
7. a). if(!player) -> Executa o comanda doar daca user-ul acela exista
b). if(!target) -> Executa o comanda doar daca user-ul acela exista( ex 2)
?
si hunter faza cu {} se aplica tuturor nu numai la if...daca ai 1 nu neaparat trebuie {} daca ai 2 sau mai multe atunci trebuia sau un new, static ca trebuie cu {}

Re: Ce sunt if-urile? [Amxx]

Posted: 19 Dec 2007, 05:59
by Digi
da mai sunt cateva care trebuie {} , la for, foreach (nu stiu daca e si in amxx dar in php e :) ) ... si inca cateva care nu-mi vin in minte acu :)
dar... la NEW iti trebuie {} ? de cand ? :)) in ce plugin ai vazut tu new cu {} ? la new daca ai mai multe scrii:
new userid[2], ip[14], name[32]
:)

Re: Ce sunt if-urile? [Amxx]

Posted: 20 Dec 2007, 11:02
by FireW@ll
Error: Declaration of a local variable must appear in a compound block on line 19
adica cu {}

Re: Ce sunt if-urile? [Amxx]

Posted: 05 Jan 2008, 03:19
by hip_hop_x
if-urile sunt folositoare mereu, mai ales in optimizarea codurilor.
Voi explica putin mai clar, si mai detaliat ce-s cu if-urile acestea.
Exemple de if-uri

if(comanda){} este echivalenta cu if(comanda == true){}, insa in prima varianta este mai optimizata deoarece sunt redusi cativa biti.
if(!comanda){} unde ! este opusul comenzii.
Intre {} adaugam codul, cum ar fi { new string }

Ce ne facem in caz ca vrem sa verificam 2 comenzi :-/
In loc de if(comanda1){} si apoi if(comanda2){} vom folosi if(comanda1 && comanda2){}
&& inseamna and in limba engleza, iar in limba romana si. Trebuie sa ganditi putin logic la treaba asta, adica comanda1 si comanda2, in acelasi timp tb sa fie adevarate, altfel vei obtine o eroare.
Se traduce astfel: daca(comanda1 si comadna2){}

In caz ca vrem sa verificam doar o comanda, din cele 2, fiind posibil ca una sa nu fie adevarata, cum sa verificam ?
Vom folosi if(comanda1 || comanda2){}
|| inseamna in limba engleza or, iar in limba romana inseamna sau
Se traduce astfel: daca(comanda1 sau comanda2){}

In caz de prima e adevarata si a doua falsa?
Vom folosi if(comanda1 && !comanda2){}
In caz de prima e adevarata sau a doua falsa?
Vom folosi if(comanda1 || !comanda2){}

Aceste lucruri pot fi aplicate la un nr infinit de comenzi!(eu am folosit doar 2, ca sa nu scriu prea mult :P)

Re: Ce sunt if-urile? [Amxx]

Posted: 05 Jan 2008, 17:05
by aNNakin
Foarte bun hip_hop_x GG ;) .....f bine explicat

Re: Ce sunt if-urile? [Amxx]

Posted: 05 Jan 2008, 23:06
by hip_hop_x
,s ;)) e bine sa mai stie si lumea cu ce se mananca.

Re: Ce sunt if-urile? [Amxx]

Posted: 06 Jan 2008, 01:00
by Ronny
Ati uitat else if()

Code: Select all

if(is_user_admin(id) {
client_print("E admin ");
} else if(is_user_bot(id) {
client_print("E bot");
} else {
client_print("E jucator normal");
}

Ce face else if() ? Stabileste valoarea reala si o returneaza. Pe romaneste: daca nu am avea instructiunea else if() si am avea un bot atunci am avea returnat "e jucator normal".

Am explicat bine?

Re: Ce sunt if-urile? [Amxx]

Posted: 06 Jan 2008, 01:09
by aNNakin
Ronny wrote:Ati uitat else if()

Code: Select all

if(is_user_admin(id) {
client_print("E admin ");
} else if(is_user_bot(id) {
client_print("E bot");
} else {
client_print("E jucator normal");
}

Ce face else if() ? Stabileste valoarea reala si o returneaza. Pe romaneste: daca nu am avea instructiunea else if() si am avea un bot atunci am avea returnat "e jucator normal".Am explicat bine?
mda, e bine....s-ar traduce : "altfel daca"....deci daca este admin(blabla) altfel daca este bot(bla bla)