Jump to content
  • 0

pomoc Premenná


DeNisKo

Dotaz

Popis problému:


Ahojky,

Chcem sa spýtať či by sa nedalo nejak ulahčiť prácu s premenným.
Mám na mysli niečo také aby som nemusel vytvárať 17 premenných a na každú premennú dal = 0;

( Test[playerid] = 0; Test1[playerid] = 0; atď až do 17)

Mám spravené new Test[17] = {0,...};

A či by sa nedalo napríklad spraviť takto Test[playerid][1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17] = 0; (Nefunguje :c)

Ďakujem za každú pomoc.


Chyby/varování kompilátoru a při běhu:
--

Kód:

 

--

 




Dodatečné poznámky:
--

Edited by Weed
Link to comment
Share on other sites

6 odpovědí na tuto otázku

Recommended Posts

  • 0
new Test[17];

//Třeba v OnGameModeInit()
for(new i = 0; i < sizeof(Test); i++)
{
    Test[i] = 0;
} 

Co vidíš nahoře je cyklus. První co děláš že vytváříš proměnnou s kterou bude cyklus for pracovat. Za středníkem potém udáváš podmínku kolikrát má cyklus běžet - sizeof ti vrátí velikost pole v závorkách. tzn, že i může dosahovat maximálně hodnot 0 - 16. jelikož i musí být menší než 17 a první hodnota v i je 0. Za dalším středníkem určuješ co se má po vykonání kódu v cyklu stát - buď navýšit hodnotu i o jednu (i++) nebo snížit (i--), můžeš samozřejmě navyšovat i o více... a v hranatých závorkách je vlastně to co ti nahraje do všech indexů pole hodnotu 0. 

 

První průběh: i = 0, Test[0] = 0; druhý: i++ takže i = 1, Test[1] = 0, a takhle až do 16. průběhu, pak se zvýší hodnota a i bude 17, poté se zkontroluje podmínka, ale zjistí se že již nevyhovuje a tak se cyklus ukončí. Rozhodně ti doporučuji si něco o cyklech přečíst v programování se využívají o pravdu často, je to základ.. icon_e_wink.gif

 

Jinak v pawn když vytváříš proměnnou, tak v ní defaultně 0 je. icon_e_wink.gif

 

//Edit: špatně přečtený kód... :/

#define ARR_SIZE 17;
new Test[MAX_PLAYERS][ARR_SIZE];

for(new i = 0; i < MAX_PLAYERS; i++) //nebo sizeof(Test)
{
    for(new j = 0; j < ARR_SIZE; j++) //nebo odstranit definici ARR_SIZE a použít také sizeof(Test[])
    {
        Test[i][j] = 0;
    }
}

Tohle je to samé, akorát máš vícerozměrné pole, takže potřebuješ vnořit cyklus do sebe. icon_e_wink.gif

Edited by GaRGoyLeS
  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

  • 0
new Test[17];

//Třeba v OnGameModeInit()
for(new i = 0; i < sizeof(Test); i++)
{
    Test[i] = 0;
} 

Co vidíš nahoře je cyklus. První co děláš že vytváříš proměnnou s kterou bude cyklus for pracovat. Za středníkem potém udáváš podmínku kolikrát má cyklus běžet - sizeof ti vrátí velikost pole v závorkách. tzn, že i může dosahovat maximálně hodnot 0 - 16. jelikož i musí být menší než 17 a první hodnota v i je 0. Za dalším středníkem určuješ co se má po vykonání kódu v cyklu stát - buď navýšit hodnotu i o jednu (i++) nebo snížit (i--), můžeš samozřejmě navyšovat i o více... a v hranatých závorkách je vlastně to co ti nahraje do všech indexů pole hodnotu 0. 

 

První průběh: i = 0, Test[0] = 0; druhý: i++ takže i = 1, Test[1] = 0, a takhle až do 16. průběhu, pak se zvýší hodnota a i bude 17, poté se zkontroluje podmínka, ale zjistí se že již nevyhovuje a tak se cyklus ukončí. Rozhodně ti doporučuji si něco o cyklech přečíst v programování se využívají o pravdu často, je to základ.. icon_e_wink.gif

 

Jinak v pawn když vytváříš proměnnou, tak v ní defaultně 0 je. icon_e_wink.gif

 

//Edit: špatně přečtený kód... :/

#define ARR_SIZE 17;
new Test[MAX_PLAYERS][ARR_SIZE];

for(new i = 0; i < MAX_PLAYERS; i++)
{
    for(new j = 0; j < ARR_SIZE; j++)
    {
        Test[i][j] = 0;
    }
}

Tohle je to samé, akorát máš vícerozměrné pole, takže potřebuješ vnořit cyklus do sebe. icon_e_wink.gif

 

Ďakujem pekne ;) 

 

Nevím, to jsem četl na nějakém serveru, kde jsi dělal/děláš pawnera icon_e_biggrin.gif

Neviem, já mám servery uzamknuté :) 

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
×
×
  • Create New...