OnlineGames Community
Am revenit ! Very Happy
OnlineGames Community
Am revenit ! Very Happy
OnlineGames Community
Doriți să reacționați la acest mesaj? Creați un cont în câteva clickuri sau conectați-vă pentru a continua.

OnlineGames Community


 
AcasaPortalUltimele imaginiÎnregistrareConectare

[TUTORIAL] Prescurtare Functie (Any Mod) Vezi subiectul anterior Vezi subiectul urmator In jos
AutorMesaj
aLecS;x
[TUTORIAL] Prescurtare Functie (Any Mod)   Icon_user_offline
aLecS;x

Moderator

Sex Sex : masculin
Mesaje Mesaje : 34
Data de inscriere : 16/06/2012

[TUTORIAL] Prescurtare Functie (Any Mod)   Empty
[TUTORIAL] Prescurtare Functie (Any Mod) [TUTORIAL] Prescurtare Functie (Any Mod)   EmptyDum Iun 17, 2012 12:16 am

Deci aici am sa va invat cum sa faceti o prescurtare la o functie, ca sa va fie mai usoara viata de scripting.

De exemplu, va este lene sa tot scrieti SendClientMessage( playerid, COLOR, "Mesaj"); de fiecare data?

Cu un mic #define se poate rezolva!

Uitati un exemplu de prescurtare de comanda(FOLOSITI ACEASTA PRESCRUTARE DACA FOLOSIT ACEASI CULOARE SI PARAMETRU DE PLAYERID)

Cod:
#define SCML(%0) SendClientMessage( playerid, 0x8BA7FBFF, %0);


%0 are rol ca un string, si cand vei folosi SCML(" Mesaj"); prin definitie, deoarece ai pus un %0, vei trimite un mesaj.

Exemplu de folosire:

Cod:
if( strcmp( cmdtext, "/kill", true) == 0 )
{
SetPlayerHealth(playerid, 0.0);
SCML("Te-ai omorat!");
return 1;
}


Sau uite un alt exemplu care iti va economisi randuri.

Cod:
if( strcmp( cmdtext, "/kill", true) == 0 ) return SetPlayerHealth(playerid, 0.0),SCML("Te-ai omorat!");


Punand o virgula dupa o functie poti executa un sir de functii cand dai return sau else

Uite un alt exemplu de prescurtare.Eu am luato de la Y_Less din topicul lui "Code Optimizations"Si am modificat.

Cod:
#if !defined FALSE
stock
bool:FALSE = false;
#endif
#define FormMessage(%0,%1,%2,%3)\
do\
{\
new str[130];\
format(str, sizeof (str), (%2), %3);\
SendClientMessage((%0),(%1), str);\
}\
while ( FALSE )

#define FormMessageForAll(%0,%1,%2)\
do\
{\
new str[ 130 ];\
format( str, sizeof ( str ), ( %1 ), %2);\
SendClientMessageToAll( ( %0 ), str);\
}\
while ( FALSE )


Aceasta functie te va ajuta sa economisesti destule randuri!Deoarece cand formatezi un string trebuie sa ai vreo 3-5 randuri ocupate. E, asa faci mai usor.
Ca sa nu mai folosest format(string(...) )
Vei folosi

Cod:
FormMessage( playerid, 0xFD2F17FF, "Ai %d bani scor %d", GetPlayerMoney( playerid ), GetPlayerSore( playerid ) );


Daca pui asta intr-o comanda de gen /stats si o dezvolti, vai avea succes si performanta.
Eu am trecut de la stilul vechi la cel modern si sofisticat.
mere ca prin minune, este chiar bun.

Mai puteti face MULTE alte prescurtati uitati un alt exemplu

Cod:
#define COMMAND(%0) if( strcmp( cmdtext, %0, true) == 0 )


Si se va putea folosi in acest caz

Cod:
COMMAND("/kill")
{
new Nume[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nume, sizeof( Nume) );
SetPlayerHealth( playerid, 0.0 );
//Si acuma folosind prescurtarea de deasupra
SCML("Te-ai omorat");
FormMessageForAll( playerid, 0xFD2F17FF, "Playerul %s s-a sinucis!",Nume);
return 1;
}
Sus In jos

[TUTORIAL] Prescurtare Functie (Any Mod)

Vezi subiectul anterior Vezi subiectul urmator Sus

Subiecte similare

-
ť [TUTORIAL]FPS
ť [TUTORIAL]UnBan
ť [TUTORIAL]TextDraw
ť [TUTORIAL] Cum sa adaugi un NPC (Any Mod)
ť [TUTORIAL] Cum sa creezi un Textdraw(Any Mod)
Pagina 1 din 1
OnlineGames Community :: SA:MP Zone :: Tutoriale SA:MP