Szerző Téma: egy értékû változó  (Megtekintve 505 alkalommal)

egy értékû változó
« Dátum: 2012. december 16. - 20:56:25 »
0 Show voters
Hali
Pár dolog nem tiszta nekem...
Kéne egy olyan változó, aminek ha megváltoztatom az értékét, akkor a használata után visszaáll az eredeti értékére.
Például parancsoknál...
Használok egy változót, aminek ha értéket adok, akkor a következõ parancsnál az elõzõ parancsban megadott értéket veszi fel.
Írok példát, mert furcsán fogalmaztam.
 
#include <a_samp>
new variable_1;
public OnFilterScriptInit() {
print(\"default value\");
printf(\"%d\\n\", variable_1); // alap értéke 0
print(\"starting test_1\");
test_1();
print(\"test_1 done\");
printf(\"%d\\n\", variable_1); // most 2 az értéke
print(\"starting test_2\");
test_2();
print(\"test_2 done\");
printf(\"%d\\n\", variable_1); // most 13, de nekem 11 kéne
return 1;
}
stock test_1() {
variable_1 += 2; // hozzáadok az értékéhez 2t
return 1;
}
stock test_2() {
variable_1 += 11; // hozzáadok az értékéhez 11et
return 1;
}

Nem elérhető Casamiro

  • 1046
    • Profil megtekintése
egy értékû változó
« Válasz #1 Dátum: 2012. december 16. - 21:00:52 »
0 Show voters
stock test_1() {
variable_1 += 2; // hozzáadok az értékéhez 2t
return 1;
}
stock test_2() {
variable_1 = 11; // hozzáadok az értékéhez 11et
return 1;
}

Erre gondolsz?

egy értékû változó
« Válasz #2 Dátum: 2012. december 16. - 21:28:24 »
0 Show voters
Idézetet írta: Casamiro date=1355688052\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"31035\" data-ipsquote-contentclass=\"forums_Topic

stock test_1() {
variable_1 += 2; // hozzáadok az értékéhez 2t
return 1;
}
stock test_2() {
variable_1 = 11; // hozzáadok az értékéhez 11et
return 1;
}

Erre gondolsz?
 
ez igy tiszta.
akkor írok másik példát
van egy globális változóm, például \'temp\' néven
használom sscanf érték beolvasására.
utána egy másik helyen számolásra
 

new temp;
CMD:mittomén(playerid, params[]) {
    if(sscanf(params, \"d\", temp)) return 1;
    printf(\"%d\", temp);
    return 1;
}
CMD:pontaz(playerid, params[]) {
    for(new i = 0; i < MAX_PLAYERS;i++) if(IsPlayerConnected(i)) temp++;
    printf(\"%d\", temp);
    return 1;
}

 
szoval a másodiknál az elõzõ parancsban megadott értékkel folytatja a számolást, nekem pedig az kéne, hogy a létrehozásnál felvett értéktõl (0) kezdje, anélkül, hogy minden \'temp\' változó használat elé kéne írnom ezt a sort
 
temp = 0;

 
remélem így érthetõbb.

egy értékû változó
« Válasz #3 Dátum: 2012. december 16. - 23:18:34 »
0 Show voters
Olyan nincs, csak akkor fog kezdeti értéket felvenni ha te megadod neki a kódodban.
Egy globál változó megtartja az értékét ha megváltoztatásra kerül futás közben, amíg nincs újraindítva a szerver vagy amíg te nem változtatod meg a programkódban.

egy értékû változó
« Válasz #4 Dátum: 2012. december 17. - 06:35:42 »
0 Show voters
pedig reméltem hogy van valaki trükk erre.
köszöntem.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal