-
Sziasztok, belekezdtem egy számomra nagyobb scriptbe mégpedig egy TD-ből álló telefonba.
Szerettem volna egy extra dolgot beletenni mégpedig egy GPS-t. Viszont nem vagyok egy nagy scripter, most kezdtem el a TD-kel is foglalkozni. A másik pedig már egy komplikáltabb dolog lenne, van egy \"számpanel\" amibe kiszeretném íratni a számokat hogy lehessen tárcsázni, ez eddig csak addig ment, hogy 1 karatert sikerült kiíratni. Ha másikat nyom le akkor az előzőt kitörli és az újat beírja, lejeb kifejtem bővebben.
Szóval a segítségeteket kérném.
Ha meg van egy TD amit átszeretnék íratni, akkor utána mi a teendő? Hogyan is fog ez most kinézni?
Esetleg ha valakinek van ilyen TD je a map felett, és eltudná nekem a scriptet és a TD-t küldeni azt megköszönném, de ha csak elmagyarázni a dolgot azt is megköszönném :)
A másik dolog pedig: Ahogy feljebb is leírtam sikerült addig eljutni hogy 1 karaktert kilehessen írni de amikor lenyom egy másik számot akkor az előzőt kitörli és újat tesz be helyette. Nekem ez úgy kéne, hogy konkrétan annyi kellene, hogy 4 számot esetleg 7-et ki legesen írni, úgy hogy a másikat ne cserélje fel.
El is lett kezdve ez viszont eléggé sikerült elakadni.
Hogyan változtassak globális változó értékén if-else függvényen belül?
new gombErtekeToString[18];
new hossz = 0;
if(clickedid == szam0)
{
if (hossz >= 1) {
format(gombErtekeToString, sizeof(gombErtekeToString), \"0\" );
strcat(gombErtekeToString, \"0\");
TextDrawSetString(szampanel, gombErtekeToString);
TextDrawShowForPlayer(playerid, szampanel);
} else {
format(gombErtekeToString, sizeof(gombErtekeToString), \"0\" );
TextDrawSetString(szampanel, gombErtekeToString);
TextDrawShowForPlayer(playerid, szampanel);
}
A felső hosz változót ami = 0 azt szeretném ha az elsen belül átírná 1 re pl. Ez az ami nem megy.
Előre is köszönöm a válaszotokat/segítségnyújtásotokat.
-
A 2. Elsehez rakj egy hossz++ -t
format(gombErtekeToString, sizeof(gombErtekeToString), \"%s0\",gomErtekeToString );
Asszem így jó lesz de nem tudod és akkor így ha számításaim helyesek akkor ha nyomod mindig rak egy +0at mögé
Ha cink van irj privátat nyugodtan
-
Nem oldódott még meg a problémám, ha esetleg valakinek van valami más ötlete meghallgatom azt is szívesen :)
Ha valaki valamilyen másik megoldást tud rá, hogy ki lehessen íratni egymás után a \"kijelzőre\" a számokat szóval ha lenyomom az 1 akkor kiírja oda ha a 2 est nyomom le akkor az egyes után ír kettest és így tovább. Feljebb leírtam már, jelenleg azt csinálja, hogy hogy ha lenyomom az egyes gombot akkor kiírja de ha lenyomom a kettes gombot akkor az egyes eltűnik és egy kettes lesz belőle. Magyarul átcseréli. De nekem ez így nem jó.
-
egyszerű...
tömbbel kell megoldanod
szam0
gondolom ez egészen 9 ig szerepel nálad \"szam0=>szam9\"
ez így rossz lesz mert a string érték az előző szám mindig átíródik az újra...
tömbösen kell megoldani
szam[0]
szam[1]
szam[2]
bla bla bla
majd ott is észre vettem hibát oké h ellenőrzöd h
hossz >= 1
de a hossz értéke 0 mert nem adsz neki értéket, nem látok olyan h
hossz += 1; vagy hossz ++;
így mindig az else rész lesz igaz. :shocking:
valamint érték problémád is lesz.
hossz >= 1
ez neked így nem lesz jó mert nem egyben kell hanem külön... mert textdraw klicked van gondolom
ergó mindnél le kell ifelned a 9 értéket.
if(hossz == 1) {bla bla}else if(hossz ==2){blabla} else {bla bla}
és úgy már működni fog az előbbi segítség a %s megoldás
-
if(clickedid == szam[9])
{
if (hossz == 0) {
format(gombErtekeToString, sizeof(gombErtekeToString), \"%s0\",gomErtekeToString );
strcat(gombErtekeToString, \"0\");
TextDrawSetString(szampanel, gombErtekeToString);
TextDrawShowForPlayer(playerid, szampanel);
}
else if (hossz == 1)
{
format(gombErtekeToString, sizeof(gombErtekeToString), \"%s1\",gomErtekeToString );
TextDrawSetString(szampanel, gombErtekeToString);
TextDrawShowForPlayer(playerid, szampanel);
}
else if (hossz == 2)
{
format(gombErtekeToString, sizeof(gombErtekeToString), \"%s2\",gomErtekeToString );
TextDrawSetString(szampanel, gombErtekeToString);
TextDrawShowForPlayer(playerid, szampanel);
}
így érted 0-tól 9-ig? Ha ezt megcsinálom akkor elég lesz 1 textdraw klicked igaz?
-
Asszem elég a %s és nem lesz jó mert egy értéke %s ha kettőnél jársz dupla kell
Teloról írok de a 2 3 4 már az előzőt is ki kell írnod %s%s el és + változó kell ha nem mented..
Ajánlom a hossz nál is a tömböt vagy ha nem akarsz tömbbel cicózni akkor úgy értéket ami menti mert különbwnen az előzőt felülírja
Dupla hozzászólás automatikusan összefûzve. ( [time]2016. február 03. 18:33:55[/time] )
Pardon elírtam nem láttam h stringes [18] ezzel kell majd jászanod [ 0] => [17]
-
Megkérhetlek, hogy ezt leírd forráskódban is? Így kicsit kacifántos nekem.
-
new string[18],globalstring[128];
new gombErtekeToString[18];
new hossz = 0;
if(clickedid == szam[9])
{
if(hossz < 10)
{
hossz += 1;
if (hossz == 0) {
format(string,18, \"%s\",gomErtekeToString[9]);
strcat(gombErtekeToString[9],\"0\");
} else if(hossz == 1) {
format(string,18, \"%s\",gomErtekeToString[9]);
strcat(gombErtekeToString[9],\"1\");
}/*bla bla*/
}
format(globalstring,128,\"%s%s%s%s%s%s%s%s%s\",gomErtekeToString[/*1-9*/]);
}
elvileg ennek jónak kell lennie szamoktól visszafele meg a %s és értékeket csökkented, de remélem hogy a \"hossz=0\" értéket növeled aszerint mindig h melyik számra kattint... a szam[9] én úgy értelmeztem h 9. gombról van szó az az 1-9 ig. A hossz pedig a gomb értéke.a hossz +1 növelődik ha valamelyiket leütöd a 9 közül de ha eléri 10. et megtíltod h többet írjon be, amit csináltam.
valamint ha úgy akarod h van egy szám kiírja majd ha 2 szám van csak 2 írjon ki ne mind a 9et és úgy 0-at
pl.: 1: 1 2: 15 3: 280000000
ez a sika %s 1. opció
ez a global a 3. opció
a 2. opcióhoz le kell menteni mert ez így kiírhatatlan.
ez így hiányos ugyebár ahogyan szeretnéd.
ha úgy akarod akkor más megoldás kell.
A fő bajod a
\"hossz\"
érték lesz. Mert a számoknál \"szám[9]\" átt kell állítanod a hossz értékét a száméra.
értelmezés:
szám[0] = hossz(x) /*értékkel*/
szám[1] = hossz(x) /*nem lesz 0 mert nem 0-zódik*/
helyesen + változó kell
szám[0] = hossz[0];
hossz[0] = (szamod);
if(clickedid == szam[0])
{
if (hossz[0] == 0) {
format(string,18, \"%s\",gomErtekeToString[0]);
strcat(gombErtekeToString[0],\"0\");
hossz[0] = 0;
} else if(hossz[0] == 1) {
format(string,18, \"%s\",gomErtekeToString[0]);
strcat(gombErtekeToString[0],\"1\");
hossz[0] = 1;
}/*bla bla*/
ertek += 1;
//format(globalstring,128,\"%s%s%s%s%s%s%s%s%s\",gomErtekeToString[/*1-9*/]);
}
stb. viszont nagyon nem ajánlom ezt \"if(hossz[0] == 1)\" ugyan is ez nem a legmegfelelőbb gombértékelés azt is mentened kéne, nem tudom hogy van neked a teljes kódod. Azonban ha valami máshogyan van neked mint ahogyan gondoltam/ írtam akkor nem fog működni!!
ajánlom figyelmedbe ezt a scriptet :-)
http://www.mediafire.com/download/fq1mzomggv6wt2r/GalaxyS3.rar
nem tudom a teljes scriptedet így én is tippként írtam a script kódokat, de ez egy működő értékes textdrawos script.