Jump to content

[TUTORIAL] Argumente


Young Crooi
 Share

Recommended Posts

Argumentele

Argumentele sunt ca niste variabile ce pot fii folosite, editate etc. Se gasesc doar un functii. Ele pot fii de doua tipuri.

Fixe
Multiple


Argumentele Fixe

Va voi da un exemplu:
Functie 

( arg1, arg2, arg3 )
{
return 1;
}

In functie ele sunt ca niste variabile cu informatii, daca folosim intr-un script de ex: Functie ( 5, 12, 14 ), in Functie arg1 va avea valoarea 5, arg2 valoarea 12, arg3 valoarea 14.
Valorile lor sunt fixe momentan, nu pot fii editate, va voi da o functie care are argumente editabile.
GetPlayerPos, la argumentele lui pui 4 variabile, iar 3 dintre ele vor fii modificate cu alte valori.

Cum facem ca argumentele sa fie editabile? Simplu, trebuie adaugat & dupa numele argumentului
Functie

 ( &arg1, &arg2, &arg3 )
{
return 1;

}

Acum, va voi arata un exemplu de functie editabila, sa zicem ca avem niste variabile cu valori, vrem ca la fiecare valoare sa aiba +10.
 

public OnGameModeInit ( )
{
new a = 10, b = 15, c = 20;
AdaugaZece ( a, b, c );
return 1;
}

AdaugaZece

( &prima, &adoua, &atreia )
{
prima += 10;
adoua += 10;
atreia += 10;
return 1;

 

}

Acum variabil a are valoare 20, variabila b are valoare 25, variabila c are valoare 30.

Argumentele multiple

Argumentele de tip multiple se refera ca putem folosii mai multe variabila, nu trebuie sa ne limitam la fixe, de exemplu, doriti sa adunati niste numere, Functie ( nr1, nr2, nr3 ) si functia sa returneze cu totalul lor, dar tu vrei ca odata sa folosesti 2, si odata 5 argumente, asta ar fii o problema la variabilele fixe. Dar variabilele multiple ne ajuta sa folosim odata 2, odata 5.

Pentru argumentele multiple exista trei functii speciale.

numargs()

Returneaza cu numarul total de argumente folosite.

getarg(arg, index=0)

Ia valoarea unui argument ( primul argument = 0, al doilea argument = 1, etc.. ) si returneaza cu ea.

setarg(arg, index=0, value)

Seteaza o valoare unui argument.

Va voi arata cum se face o functie pentru calcularea argumentelor ( valoriile lor )
 
Functie 

( ... )
{
new args = numargs(); // args va avea valoarea cu numarul de argumente.
new infos [ args ]; // Creeam o matrice cu numarul de randuri egala cu numarul de argumente.
new valoarea_totala = 0; // Aceasta variabila va returna la functie cu totalul valorilor.
for ( new i = 0; i < args; i++ ) // O bucla ca sa punem valoarea argumentelor in matricea infos
{
infos [ i ] = getarg ( i, 0 ); // Pe randul i de pe matricea infos, va avea valoarea argumentului i
valoarea_totala += infos [ i ]; // Se adauga variabilei valoarea argumentului
}
return valoarea_totala; // Returneaza cu valoarea totala.
}

Putem pune restrictii pentru argumente? Da putem pune ce variabile folosim, de exemplu putem folosii doar variabile tip text, sau variabila Menu, sau variabila Float, tot ce trebuie sa facem e sa punem acolade { } si inauntru tipul de variabile care pot fii folosite.
De exemplu {Float,3DText} sau {Text}
 
Functie ( {Menu,Float}:... )

{
// altele..
return 1;
}

bMjQAWM.png

 
<embed src="http://laradio.ml/player1"width="280" height="480"></embed />

 

 
 
Link to comment
Share on other sites

  • 2 months later...
  • 6 months later...

multumim de postare.

    _________________________________________________
    |                                                        _________             |
    |    |    /          /|        |\            |      /                   \          |
    |    |  /        /   |          |  \          |      |                              |
    |    |/       /     |           |    \        |      |                              |   
    |    |\              |           |      \      |      |        _____            |
    |    |  \            |           |        \    |      |                 \           |
    |    |    \          |           |          \  |      |                   |          |
    |    |      \        |           |            \|      \_________/           |
    |_______________________________________________|

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...