Ce sunt if-urile? [Amxx]

Tutoriale scripting, cod si portiuni de cod.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

User avatar
FireW@ll
Membru, skill +2
Membru, skill +2
Posts: 668
Joined: 08 Apr 2007, 16:29
Detinator Steam: Nu
Reputatie: Fost moderator ajutator
Fost Scripter eXtreamCS
Fost Membru Club eXtreamCS (3 luni)
Has thanked: 3 times
Been thanked: 39 times

27 Aug 2007, 17:08

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
User avatar
aNNakin
Fost administrator
Fost administrator
Posts: 10464
Joined: 17 Dec 2007, 21:42
Detinator Steam: Da
CS Status: a iubi - necesar si suficient
Detinator server CS: romania.cs16.ro
SteamID: anakin_cstrike16
Reputatie: Membru Club eXtreamCS
Fost Contribuitor
Fost Scripter eXtreamCS
Fost Lider Echipa eXtreamCS
Fost Administrator
Location: di.fm
Has thanked: 230 times
Been thanked: 787 times
Contact:

18 Dec 2007, 16:15

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
}
User avatar
Digi
Fost moderator
Fost moderator
Posts: 932
Joined: 03 Nov 2007, 21:17
Detinator Steam: Nu
CS Status: bored
Reputatie: Fost moderator
Location: In The Game
Been thanked: 15 times
Contact:

18 Dec 2007, 16:24

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 :)
TheHunters.ro - Gaming & Programing
HGaming - Jocuri PC in LAN - joaca si altceva decat CS!

Cateva jocuri care se pot juca in HGaming: Left 4 Dead 2, Garry's Mod, Alien Swarm.
User avatar
aNNakin
Fost administrator
Fost administrator
Posts: 10464
Joined: 17 Dec 2007, 21:42
Detinator Steam: Da
CS Status: a iubi - necesar si suficient
Detinator server CS: romania.cs16.ro
SteamID: anakin_cstrike16
Reputatie: Membru Club eXtreamCS
Fost Contribuitor
Fost Scripter eXtreamCS
Fost Lider Echipa eXtreamCS
Fost Administrator
Location: di.fm
Has thanked: 230 times
Been thanked: 787 times
Contact:

18 Dec 2007, 21:05

Este adevarat :)
User avatar
FireW@ll
Membru, skill +2
Membru, skill +2
Posts: 668
Joined: 08 Apr 2007, 16:29
Detinator Steam: Nu
Reputatie: Fost moderator ajutator
Fost Scripter eXtreamCS
Fost Membru Club eXtreamCS (3 luni)
Has thanked: 3 times
Been thanked: 39 times

18 Dec 2007, 22:46

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 {}
User avatar
Digi
Fost moderator
Fost moderator
Posts: 932
Joined: 03 Nov 2007, 21:17
Detinator Steam: Nu
CS Status: bored
Reputatie: Fost moderator
Location: In The Game
Been thanked: 15 times
Contact:

19 Dec 2007, 05:59

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]
:)
TheHunters.ro - Gaming & Programing
HGaming - Jocuri PC in LAN - joaca si altceva decat CS!

Cateva jocuri care se pot juca in HGaming: Left 4 Dead 2, Garry's Mod, Alien Swarm.
User avatar
FireW@ll
Membru, skill +2
Membru, skill +2
Posts: 668
Joined: 08 Apr 2007, 16:29
Detinator Steam: Nu
Reputatie: Fost moderator ajutator
Fost Scripter eXtreamCS
Fost Membru Club eXtreamCS (3 luni)
Has thanked: 3 times
Been thanked: 39 times

20 Dec 2007, 11:02

Error: Declaration of a local variable must appear in a compound block on line 19
adica cu {}
hip_hop_x
Membru, skill 0
Membru, skill 0
Posts: 9
Joined: 05 Jan 2008, 03:01
Detinator Steam: Da
Contact:

05 Jan 2008, 03:19

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)
Sper ca va place ce fac.
User avatar
aNNakin
Fost administrator
Fost administrator
Posts: 10464
Joined: 17 Dec 2007, 21:42
Detinator Steam: Da
CS Status: a iubi - necesar si suficient
Detinator server CS: romania.cs16.ro
SteamID: anakin_cstrike16
Reputatie: Membru Club eXtreamCS
Fost Contribuitor
Fost Scripter eXtreamCS
Fost Lider Echipa eXtreamCS
Fost Administrator
Location: di.fm
Has thanked: 230 times
Been thanked: 787 times
Contact:

05 Jan 2008, 17:05

Foarte bun hip_hop_x GG ;) .....f bine explicat
hip_hop_x
Membru, skill 0
Membru, skill 0
Posts: 9
Joined: 05 Jan 2008, 03:01
Detinator Steam: Da
Contact:

05 Jan 2008, 23:06

,s ;)) e bine sa mai stie si lumea cu ce se mananca.
Sper ca va place ce fac.
Ronny
Membru, skill 0
Membru, skill 0
Posts: 1
Joined: 05 Jan 2008, 11:26
Detinator Steam: Nu
Location: Romania
Contact:

06 Jan 2008, 01:00

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?
User avatar
aNNakin
Fost administrator
Fost administrator
Posts: 10464
Joined: 17 Dec 2007, 21:42
Detinator Steam: Da
CS Status: a iubi - necesar si suficient
Detinator server CS: romania.cs16.ro
SteamID: anakin_cstrike16
Reputatie: Membru Club eXtreamCS
Fost Contribuitor
Fost Scripter eXtreamCS
Fost Lider Echipa eXtreamCS
Fost Administrator
Location: di.fm
Has thanked: 230 times
Been thanked: 787 times
Contact:

06 Jan 2008, 01:09

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)
Post Reply

Return to “Scripting”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 1 guest