Pawn Directives

Post Reply
RoberTo
Global Moderator
Global Moderator
Posts: 1380
Joined: Sun Dec 26, 2010 9:31 pm
Jucator SA:MP ?: Da
Nick:: RoberTo
Jucator CS ?: Da
Location: Craiova
Contact:

Pawn Directives

Post by RoberTo »

Salut.

In acest tutorial va voi prezenta toate directivele folosite in pawno.

Sa incepem..

[font=courier]#assert
- Aceasta directiva verifica daca ceva este adevarat si daca nu opreste compilarea.

#define MOO 10
#assert MOO > 5

Aceasta se va compila fara probleme deoarece este adevarat ( 10 este mai mare ( > ) ca 5 )

#define MOO 1
#assert MOO > 5

Acest exemplu va da eroare deoarece 1 nu este mai mare ( > ) decat 5.
Este similar cu

#define MOO 1
#if MOO <= 5
#error Moo check failed
#endif


In caz ca nu este adevarat assert va da o eroare:

Code: Select all

"Assertation failed: 1 > 5"
In cazul al 2-lea asserts va da eroare:

Code: Select all

"User error: Moo check failed"
[hr]

[font=courier]#define
- Aceasta directiva defineste un simbol si oriunde este gasit simbolul define-ului va fi gasit va fii inlocuit.

#define MOO 7
printf( "%d", MOO );

E acelasi lucru cu:
printf( "%d", 7 );

De aceea toate define-urile sunt pierdute in decompilare pentru ca ele nu exista ( toate directivele sunt pre-processor ).
Define-urile nu trebuie sa contina numere.
#define Loop new i = 0; i < MAX_PLAYERS; i++ ) if ( IsPlayerConnected( i )

for ( Loop )
{
printf( "%d connected", i );
}

[hr]

[font=courier]#else
- #else is like else, dar #if in loc de if

[hr]

[font=courier]#elseif
- #elseif is like else, dar pentru #if

#define MOO 10

#if MOO == 9
printf("if") ;
#else
#if MOO == 8
printf("else if");
#else
printf("else");
#endif
#endif


[hr]

[font=courier]#emit
- Acest directiv nu este in tabelul pawn-lang.pdf dar totusi exista. Acest este un inline compiler, daca sti AMX poti folosi asta pentru a pune opcoduri AMX in codul tau.

[hr]

[font=courier]#endif
- #endif este ca o paranteza inchis pentru #if

[hr]

[font=courier]#endinput
- Acesta opreste includerea unei singure file. Este folosit pentru a impiedica compilarea include-urilor de 2 ori accidental.

#include "bla.inc"
#include "bla.inc"


bla.inc

#if defined _BLA_INC
#endinput
#endif
#define _BLA_INC


[hr]

[font=courier]#error
- Acesta opreste compilarea si arata o eroare setat de user.( Uitate la #assert pentru un exemplu )

[hr]

[font=courier]#file
- Seteaza numele filei. Este o functie inutila.

[hr]

[font=courier]#if
- Poti alege exact ce vrei sa se compileze si ce nu de aici.

#define LIMIT 10

if ( LIMIT < 10 )
{
printf("Limit too low");
}

Se va compila ca:
if ( 10 < 10 )
{
printf("Limit too low");
}[/font]


Am tradus aceste chestii de AICI.
Tutorialul este incomplet, deoarece nu am mai avut chef sa mai tradus, am ramas la [font=courier]#pragma[/font], cine vrea poate continua si voi pune in main post cu credite ;)



SIGNATURE:
[ R.S.F. ] in Development..
Vrei un host de calitate si serios pentru serverul tau?
VEZI SERVERE HOSTATE LA NOI : http://www.zonek.ro/index.php?option=com_lgsl&Itemid=5
0763.55.9997 Comanda ACUMA OFERTA LIMITATA
Y: zonek_telecom | http://www.zonek.ro
- Nu te baga in pat nervos, stai treaz si "lupta". http://forum.zonek.ro inscrie-te si vezi cum se manifesta...
- Pentru schimb de Linkuri Intra AICi : linkex
Image
- Pentru cereri de Parteneriate prin Bannere Intra AICI
Image
Image
Post Reply

Return to “Tutoriale”