GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: TengeriMalac - 2012. december 16. - 20:56:25

Cím: egy értékû változó
Írta: TengeriMalac - 2012. december 16. - 20:56:25
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;
}
Cím: egy értékû változó
Írta: Casamiro - 2012. december 16. - 21:00:52
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?
Cím: egy értékû változó
Írta: TengeriMalac - 2012. december 16. - 21:28:24
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.
Cím: egy értékû változó
Írta: Zsolesszka - 2012. december 16. - 23:18:34
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.
Cím: egy értékû változó
Írta: TengeriMalac - 2012. december 17. - 06:35:42
pedig reméltem hogy van valaki trükk erre.
köszöntem.