User
Pass
2FA
 
 

Folosirea comenzilor de tip "if" #1 [AMXX]

 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Freakz Forum Index -> Trash Bin -> CS 2006-2019 (Archived) -> Tutorials
Author Message4886
DarkSider

[Mentally Stable]



Status: Offline
(since 13-08-2010 16:58)
Joined: 01 Aug 2006
Posts: 347, Topics: 28
Location: Iasi

Reputation: 120.8
Votes: 4

 
Post Posted: 10-12-2006, 21:06:40 | Translate post to: ... (Click for more languages)

Folosirea comenzilor de tip "if" #1



In acest Tutorial va fi explicata folosirea comenzilor de tip "if" , in traducere "daca" . Dupa cum cred ca ati dedus deja , aceste comenzi vor specifica intr-un fel "cand" este executata o anumita comanda . Spre exemplu , cu ajutorul acestei comenzi putem seta un Plugin sa execute o comanda asupra unui Player NUMAI cand acesta este / nu este (Depinde de cum setam noi) in viata .
Pentru a folosi cele explicate mai jos , trebuie sa aveti deja cateva cunostinte despre scripting . Va recomand sa cititi inainte de a pune in aplicare ce este mai jos celelalte Tutoriale pentru incepatori din categoria "Tutoriale Scripting" .


Intr-o comanda de gen "if" , vor fi folosite in + si alte functii ale unor diferite module . In acest Tutorial voi folosi ca exemple functii din "AmxMoDX Module" .
Sa incepem prin definirea modulelor folosite :

Code:
#include <amxmodx>


Acum , va trebui sa creem un public . Exemplu :

Code:
public screenshot(id){


Pe urmatoarea linie , apasam butonul "tab" (Pentru evitarea erorii "loose identitation") , dupa care adaugam :

Code:
if(is_user_alive(id)){


Asta inseamna ca daca user-ul respectiv este in viata , va executa urmatoarele comenzi pe el . Ne ducem pe urmatorul rand si apasam inca de 2 ori tasta "tab" , dupa care putem adauga (Eu folosesc ca exemplu) :

Code:
client_cmd(id, "snapshot")


Server-ul va trebui sa primeasca inapoi o valoare . In cazul nostru , pe urmatoarea linie , dupa ce apasam inca de 2 ori butonul "tab" , vom adauga :

Code:
return PLUGIN_HANDLED


Acum , pentru a incheia "if"-ul , ne ducem pe urmatorul rand , apasam o data tasta "tab" , dupa care adaugam :

Code:
}


Mai departe , putem sa mai adaugam si alte texte in acest public , dar in cazul nostru nu vom mai continua , deci trecem pe urmatorul rand , si de aceasta data fara sa apasam "tab" , adaugam :

Code:
}


Pana acum , Plugin-ul ar trebui sa arate cam asa :

Code:
#include <amxmodx>

public snapshot(id){
     if(is_user_alive(id)){
          client_cmd(id, "snapshot")
     }
}


Pentru a folosi exact "opusul" functiei folosite , adaugam "!" (Fara ghilimele) in fata acestuia . De exemplu :

Code:
if(!is_user_alive(id))


Va semnifica "daca Player-ul este mort" .

Mai departe , in Plugin , va trebui sa adaugam un plugin_init .

Exemplu :

Code:
public plugin_init()
{
register_plugin("Snapshot","0.1","Ultimate Empire")
register_concmd("amx_snapshot","snapshot",ADMIN_LEVEL_C,"It takes a snapshot to selected Player , ONLY if he is alive .")
}


Si iata ce am obtinut :

Code:
#include <amxmodx>


public snapshot(id){
     if(is_user_alive(id)){
          client_cmd(id, "snapshot")
     }
}


public plugin_init()
{
register_plugin("Snapshot","0.1","Ultimate Empire")
register_concmd("amx_snapshot","snapshot",ADMIN_LEVEL_C,"It takes a snapshot to selected Player , ONLY if he is alive .")
}


Ce va face acest Plugin ? La executarea comenzii amx_snapshot <Player> , i se va face un Snapshot Player-ului specificat DOAR DACA ESTE IN VIATA . Adminul va trebui sa aiba litera "C" in acces pentru a avea acces la comanda .

Exemple de alte functii care ar putea fi folosite cu comanda "if" (Din amxmodx module) :

is_user_connected => Executa comanda daca user-ul respectiv este conectat .
is_user_connecting => Executa comanda daca user-ul se conecteaza .
is_user_bot => Executa comanda daca player-ul specificat este un bot .

Pentru mai multe functii vizitati ACEST SITE (In engleza) => Contine functii pentru toate modulele folosite de amxmodx .

Aceasta este doar prima parte , cea mai usoara . Voi reveni cu inca un Tutorial in care voi explica mai multe , folosirea comenzilor "else" , "else if" si multe altele !
Pana atunci , sper ca v-a fost de ajutor ce v-am explicat in acest Tutorial !
Daca aveti intrebari , astept posturi .

0 0
  
Back to top
View user's profile Send private message Yahoo! Messenger ID
SAMURAI

[Mentally Stable]



Status: Offline
(since 07-10-2009 17:11)
Joined: 08 Dec 2006
Posts: 16, Topics: 4
Location: Shinjukashi-ku,Tokyo,Japan

Reputation: 111.5
Votes: 5

Post Posted: 10-12-2006, 23:12:26 | Translate post to: ... (Click for more languages)

nice tut ! good job man
0 0
  
Back to top
View user's profile Send private message
anakin_cstrike

[Mentally Stable]



Status: Offline
(since 08-02-2012 07:25)
Joined: 08 Apr 2008
Posts: 17, Topics: None
Location: Romania

Reputation: 166.1
Votes: 4

Post Posted: 09-04-2008, 14:16:16 | Translate post to: ... (Click for more languages)

Se pot folosi si 2 sau mai multe if-uri intr-unul singur -

1.|| - "or" adica sau ...exemplu :

Code:
if(!is_user_alive(id) || !is_user_admin(id)){
}

-> doar daca nu este in viata sau nu este admin !

2.&& - "and" adica si...exemplu :

Code:
if(is_user_alive(id) && !is_user_bot(id)){
}

-> doar daca este in viata si nu este bot !

0 0
  
Back to top
View user's profile Send private message
Shocker

[Freakz owner]



Status: Offline
(since 08-02-2020 12:17)
Joined: Momentul zero
Posts: 33986, Topics: 1350
Location: localhost

Reputation: 6485.6
Votes: 829

   
Post Posted: 09-04-2008, 15:54:24 | Translate post to: ... (Click for more languages)

! fiind caracterul folosit la negatie

FREAKZ COMMUNITY @ Facebook
WOW FREAKZ @ Facebook
0 0
  
Back to top
View user's profile Send private message
anakin_cstrike

[Mentally Stable]



Status: Offline
(since 08-02-2012 07:25)
Joined: 08 Apr 2008
Posts: 17, Topics: None
Location: Romania

Reputation: 166.1
Votes: 4

Post Posted: 09-04-2008, 17:45:52 | Translate post to: ... (Click for more languages)

Shocker wrote:
! fiind caracterul folosit la negatie

exact...este opusul functiei -

0 0
  
Back to top
View user's profile Send private message
Shocker

[Freakz owner]



Status: Offline
(since 08-02-2020 12:17)
Joined: Momentul zero
Posts: 33986, Topics: 1350
Location: localhost

Reputation: 6485.6
Votes: 829

   
Post Posted: 09-04-2008, 18:07:25 | Translate post to: ... (Click for more languages)

anakin_cstrike wrote:
Shocker wrote:
! fiind caracterul folosit la negatie

exact...este opusul functiei -

E oarecum impropriu spus "opusul functiei", poate opusul rezultatului functiei, operatorul ! neaga intreaga valoarea returnata de functie (daca e false ! returneaza true, daca e true ! returneaza false). Chiar daca functia ar returna ca rezultat un numar de tip intreg, ! returneaza true daca functia a returnat 0 (echivalentul lui false), sau returneaza false daca functia a returnat orice alta valoare diferita de 0.

Mai exista si operatorul ~, care efectueaza o operatie logica de negatie la nivelul bitilor din valoarea respectiva si inverseaza fiecare bit din valoarea respectiva.

In general lumea foloseste ! pentru simple operatii de negare logica a intregii valori, dar daca cineva chiar are nevoie de negare logica la nivel de biti, va folosi ~


FREAKZ COMMUNITY @ Facebook
WOW FREAKZ @ Facebook
0 0
  
Back to top
View user's profile Send private message
anakin_cstrike

[Mentally Stable]



Status: Offline
(since 08-02-2012 07:25)
Joined: 08 Apr 2008
Posts: 17, Topics: None
Location: Romania

Reputation: 166.1
Votes: 4

Post Posted: 09-04-2008, 19:02:04 | Translate post to: ... (Click for more languages)

Shocker wrote:
anakin_cstrike wrote:
Shocker wrote:
! fiind caracterul folosit la negatie

exact...este opusul functiei -

E oarecum impropriu spus "opusul functiei", poate opusul rezultatului functiei, operatorul ! neaga intreaga valoarea returnata de functie (daca e false ! returneaza true, daca e true ! returneaza false). Chiar daca functia ar returna ca rezultat un numar de tip intreg, ! returneaza true daca functia a returnat 0 (echivalentul lui false), sau returneaza false daca functia a returnat orice alta valoare diferita de 0.

Mai exista si operatorul ~, care efectueaza o operatie logica de negatie la nivelul bitilor din valoarea respectiva si inverseaza fiecare bit din valoarea respectiva.

In general lumea foloseste ! pentru simple operatii de negare logica a intregii valori, dar daca cineva chiar are nevoie de negare logica la nivel de biti, va folosi ~
True -

0 0
  
Back to top
View user's profile Send private message
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Freakz Forum Index -> Trash Bin -> CS 2006-2019 (Archived) -> Tutorials  


The time now is 25-04-2024, 00:30:01
Copyright info

Based on phpBB ro/com
B

 
 
 







I forgot my password


This message appears only once, so
like us now until it's too late ! :D
x