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
Folosire :
Folosire:
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.
Folosire:
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
Folosire:
Rezulta:
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.
Folosire:
Rezulta:
Folosire:
Sa zicem ca setam stringul "OMG" in "String".
Acum ca sa preluam valoarea din "String" (Care este "OMG") vom face asa
Rezulta:
SendUsage va v-a ajuta!
Folosire:
Rezulta:
Folosire:
Rezulta:
Color = -1 reprezinta, ca daca nu ai setat culoarea, ea va fi setata pe alb.
Folosire:
Toti adminii vor primi mesajul scris, in culoare rosie.
Iar daca facem asa:
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.
Folosire:
Rezulta:
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!
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[ ] );
- 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" );
- 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[ ] )
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[ ] )
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!