Exiled - Gaming Romania este o comunitate bazata pe gaming-ul profesionist.


Functii Folositoare

 



Vezi subiectul anterior Vezi subiectul urmator In jos   Mesaj • Pagina 1 din 1

Dyzzy
#1

Sam Ian 19, 2013 10:38 pm

Dyzzy
Exiled Skill +2
Exiled Skill +2
Functii folositoare

Aici trebuie sa postati numai functii care sa aiba un rol de viteza, si de ingrijirea scriptului vostru, si sa mai scadeti din liniile scriptului.
CustomError( playerid, error );
Cu aceasta functie poti trimite un mesaj printr-un simplu integer, trebuie doar sa setezi tu mai jos diferitele erori pe care le vrei.

Sursa: LAdmin
Poster: Dyzzi

Cod:
forward CustomError( playerid, error );
public CustomError( playerid, error )
{
if( error == 1 ) return SendClientMessage( playerid, COLOR_RED, "Prima eroare");
if( error == 2 ) return SendClientMessage( playerid, COLOR_RED, "A doua eroare");
if( error == 3 ) return SendClientMessage( playerid, COLOR_RED, "A treia eroare");
//.....poate continua....
return 1;
}

Folosire :
Cod:
CMD:testerror( playerid, params[ ] )
{
CustomError( playerid, 1 );
return 1;
}

Cod:
SendClientMessageToAllEX( ex, color, msg[ ] );
Cu aceasta functie poti trimite un mesaj la tot serverul dar cu exceptia jucatorului principal, De exemplu tu faci ceva, sa zicem ca il omori pe X cu arma Y, v-a trimite un mesaj la tot serverul, dar u nu vei vedea deoarece esti pus ca exceptie de parametrul ex.
Cod:
Quote from: pawn

stock SendClientMessageToAllEX( ex, color, msg[ ] )
{
new p = 0;
for ( p != MAX_PLAYERS; p++ )
{
if ( p != ex )
{
SendClientMessage( ex, color, msg[ ] );
}
}
return 1;
}

Folosire:
Cod:
Quote from: pawn

SendClientMessageToAlEX( playerid, 0xFFFFFFFF, "Ala care a trimis acest mesaj nu il v-a vedea!" );

FormatNumber( number );
Cu aceasta functie putem transforma atunci cand arata banii de exemplu: 15999454, nu se prea intelege cate ce si cum, cu ajutorul acestei functii vei putea transforma 15999454 in 15.999.454. Nu e neaparat folositor numai la bani si si atunci cand vrei sa arati diferite statistici, adica kills, deaths, mesaje trimise etc.

Cod:
Quote from: pawn

FormatNumber( number )
{
new Str[ 15 ];
format( Str, 15, "%d", number );

if ( strlen( Str ) < sizeof( Str ) )
{
if ( number >= 1000 && number < 10000 )
strins( Str, ".", 1, sizeof( Str ) );

else if ( number >= 10000 && number < 100000 )
strins( Str, ".", 2, sizeof( Str ) );

else if ( number >= 100000 && number < 1000000 )
strins( Str, ".", 3, sizeof( Str ) );

else if ( number >= 1000000 && number < 10000000 )
strins( Str, ".", 1, sizeof( Str ) ),strins( Str, ".", 5, sizeof( Str ) );

else if ( number >= 10000000 && number < 100000000)
strins( Str, ".", 2, sizeof( Str ) ),strins( Str, ".", 6, sizeof( Str ) );

else if ( number >= 100000000 && number < 1000000000 )
strins( Str, ".", 3, sizeof( Str ) ),strins( Str, ".", 7, sizeof( Str ) );

else if ( number >= 1000000000 && number < 10000000000 )
strins( Str, ".", 1, sizeof( Str ) ),
strins( Str, ".", 5, sizeof( Str ) ),
strins( Str, ".", 9, sizeof( Str ) );
else format( Str, 10, "%d", number );
}
else format( Str, 15, "" );
return Str;
}


Folosire:

Cod:
Quote from: pawn


new Str[ 256 ],
zMoney = GetPlayerMoney( playerid ) ;

format( Str, sizeof (Str), "Ai $%s", FormatNumber( zMoney );

SendClientMessage( playerid, 0xFF00FFFF, Str );

Date();
In loc sa folositi mereu si mereu getdate si gettime si sa luati din spatiul scriptului, mai bine faceti asta cu usurinta.
Tineti minte: Are nevoie de un %s nu %d deoarece returneaza un STRING


Cod:
Date( Sec = false)
{
new zStr[ 30 ];
if ( Sec )
{
new Date[ 6 ];
getdate( Date[ 0 ], Date[ 1 ], Date[ 2 ] );
gettime( Date[ 3 ], Date[ 4 ], Date[ 5 ] );
format( zStr, 30, "%d/%d/%d %d:%d:%d", Date[ 2 ], Date[ 1 ], Date[ 0 ], Date[ 3 ], Date[ 4 ], Date[ 5 ] );
}
else
{
new Date[ 5 ];
getdate( Date[ 0 ], Date[ 1 ], Date[ 2 ] );
gettime( Date[ 3 ], Date[ 4 ] );
format( zStr, 30, "%d/%d/%d %d:%d", Date[ 2 ], Date[ 1 ], Date[ 0 ], Date[ 3 ], Date[ 4 ]);
}
return zStr;
}

Folosire:


Cod:
printf("Data si ora actuala: %s", Date( ) );

Rezulta:


Data si ora actuala: 19/3/2011 10:26


Dar daca vreti sa arata si secundele, doar puneti un true intre ( ).



Name( playerid );
Multi dintre voi folosesc vechea metoda de a prelua numele, adica new name; GetPlayerName etc.
Dar cu functia asta va trebuie doar sa puneti Name( playerid ) < - Depinde ce id vreti sa ia numele.



Cod:
Name( playerid )
{
new zName[ MAX_PLAYER_NAME ];
GetPlayerName( playerid, zName, MAX_PLAYER_NAME );
return zName;
}

Folosire:


Cod:
new Str[ 50 ];
format( Str, 50, "Numele tau: %s", Name( playerid ) );
SendClientMessage( playerid, -1, Str );


Rezulta:


Numele tau: (SRC)Zh3r0




Cod:
GetPVarStringEx( playerid, "String" );
Multi folosesc GetPVarString intr-un fel mai ne-eficient desi asa ar trebui sa fie, voi folositi new String[30]; GetPVarString( playerid, "String", String, 30 ); cea ce este mai greu de folosit si ia spatiu.Am dezvoltat o functie care va ajuta sa o folositi intr-o singura linie!


Cod:
GetPVarStringEx( playerid, string[ ] )
{
new Str[ 129 ];
GetPVarString( playerid, string, Str, 129 );
return Str;
}


Folosire:
Sa zicem ca setam stringul "OMG" in "String".

Cod:

SetPVarString( playerid, "String", "OMG" );

Acum ca sa preluam valoarea din "String" (Care este "OMG") vom face asa


Cod:
new String[ 40 ];
format( String, 40, "GetPVarStringEx : \"%s\"", GetPVarStringEx( playerid, "String" ) );
SendClientMessage( playerid, -1, String );


Rezulta:


GetPVarStringEx : "OMG"




Cod:
SendUsage( playerid, usage[ ] )
Va este greu sa faceti, SendClientMessage( playerid, -1, "USAGE: /kick [reason]" ); etc, la orice comanda a voastra?
SendUsage va v-a ajuta!



Cod:
SendUsage( playerid, usage[ ] )
{
new Str[ 256 ];
format( Str, 256, "USAGE: {FFFFFF}%s", usage );
SendClientMessage( playerid, 0x30FF30FF, Str );
return 1;
}


Folosire:


Cod:
SendUsage( playerid, "/kick [reason]");


Rezulta:


USAGE: /kick [reason]




Cod:
SendError( playerid, error[ ] )
la fel ca SendUsage doar ca asta da "EROARE" cum s-ar zice, zicandui jucatorului ca nu are voie la X la Y sau sa faca Z.
Quote

SendError( playerid, error[ ] )
{
new Str[ 256 ];
format( Str, 256, "ERROR: {FFFFFF} %s", error );
SendClientMessage( playerid, 0xFF0000FF, Str );
return 1;
}


Folosire:


Cod:
SendError( playerid, "Nu ai voie ba idiotule, comanda asta este pentru cocalari!" );


Rezulta:


ERROR: Nu ai voie ba idiotule, comanda asta este pentru cocalari!



Cod:
SendAdminMessage( Color = -1, Message[ ] )
Aceasta functie va trimite un mesaj la toti adminii RCON logati si conectati la joc!
Color = -1 reprezinta, ca daca nu ai setat culoarea, ea va fi setata pe alb.


Cod:
SendAdminMessage( Color = -1, Message[ ] )
{
for ( new A = 0; A < MAX_PLAYERS; A ++ )
{
if ( IsPlayerConnected( A ) && IsPlayerAdmin( A ) )
{
SendClientMessage( A, Color, Message );
}
}
return 1;
}


Folosire:

Cod:
SendAdminMessage( 0xFF2020FF, "Sunteti niste prosti, incluti, dava-n... :)" );

Toti adminii vor primi mesajul scris, in culoare rosie.

Iar daca facem asa:


Cod:
SendAdminMessage( .Message = "Sunteti Misto!");

Adminii vor primi un mesaj ca sunt misto in culoare alba deoarece "Culoare" nu a fost setat.



FormatMSG
Cu acest macro, putem trimite un mesaj, formatat direct la jucator, fara sa mai facem noi, new String[ 30 ], format(...), SendClientMessage.
Aceasta metod este simpla si este totu intr-un simplu macro, poate fi dezvoltata sa trimita la toti jucatorii, adminii, VIP membri etc.


Cod:
stock
bool:False = false,

#define FormatMSG(%0,%1,%2,%3)\
do\
{\
format(_S_T_R_, sizeof (_S_T_R_), (%2), %3);\
SendClientMessage((%0),(%1), _S_T_R_);\
}\
while ( False )


Folosire:

Cod:
FormatMSG( playerid, 0x20FF20, "Ai $%d bani, %d scor, si %d idiotenie", GetPLayerMoney( playerid ), GetPlayerScore( playerid ), 9999 );


Rezulta:

Ai $56000 bani, 16000 scor, si 9999 idiotenie


Cam atata! Mai veniti si voi cu d'ale voastre, folositoare! Postati doar FUNCTII nu comenzi, sau eu stiu ce.
Sa fie folositoare, sa fie mai rapide, sa fie mai usoare de folosit, sa fie mai misto!

NOTICE: Daca tot postati o functie, explicati, cum se foloseste, cum functioneaza, si de ce este mai folositoare! Iar eu daca consider ca este buna, folositoare, o voi adauga in main post cu cuvintele voastre, asa ca, ca sa nu va faceti de ras, fiti creativi!

Vezi subiectul anterior Vezi subiectul urmator Sus   Mesaj • Pagina 1 din 1