Szerző Téma: SetObjectMaterialText frissülése probléma  (Megtekintve 734 alkalommal)

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
SetObjectMaterialText frissülése probléma
« Dátum: 2013. május 16. - 17:40:55 »
0 Show voters
Szaiasztok!
Olyan problémával szembesültem, amit sehogyan sem tudok megfejteni. Van egy kis alap timerem, ami kiír egy több perces visszaszámlálást, Percben:Másodpercben. A timert simán aktiválja egy parancs, azzal nem kell foglalkozni. Meg van adva egy alap másodperc, ami a VSZErteke. Ha nagyobb, mint 0, akkor másodpercenként csökken egyel az értéke, és minden másodpercben elosztja DIV-el a VSZErteke-t, megkapva a Perceket, MOD-al elosztja a VSZErteket, megkapva a Másodperceket, majd ezeket kiírja egy Objectre. Eddig nincs is vele gond, el is kezd számolni, majd XPerc:45-nél leáll. Fontos tudni, hogy magával a timer nincs baj, az frissül tovább, tehát látom, hogy az object frissül (másodpercenként villan, bár ne villanna, szebb is lenne), de a számok XPerc:45-nél mégsem mennek tovább. Próbálgattam, 2x oda írtam a SetObjectMaterialText-et, és így már XPerc:52-nél állt meg a Visszaszámláló. Ha jól emlékszem, 5, vagy 6 kiíráskor már XPerc:58-nál megállt a VSZ. Tudom, elég egyszer beírni, de kísérletezõs kedvemben voltam, és így megtudtam, hogy valami a SetObjectMaterialText-tel lehet. Netán korlátozva van a frissülése? Itt van maga a timer, ha segít, de ebben nincs hiba.
 
forward VSZ();
public VSZ()
{
if(VSZErtek > 0)
{
                VSZErtek--;
Perc = VSZErtek/60;
Masodperc = VSZErtek%60;
format(string, sizeof(string), \"%i:%i\", Perc, Masodperc);
SetObjectMaterialText(VSZMT, string, 0, 30, \"Arial\", 24, 1, -1, 0, 1);
}
else
{
SetObjectMaterialText(VSZMT, \"Lejárt a számláló\", 0, 30, \"Arial\", 24, 1, -1, 0, 1);
}
}

 
Kicsit hosszúra sikeredett, de remélem, valaki elolvasta, és akár még tud segíteni is, akár itt, vagy esetleg Skypeon, beszélgetve.
Üdv: Dfoglalo
« Utoljára szerkesztve: 2013. május 16. - 17:54:34 írta Dfoglalo »

SetObjectMaterialText frissülése probléma
« Válasz #1 Dátum: 2013. május 16. - 17:53:57 »
0 Show voters
Próbáld nem global string-el, hanem helyi string-el alkalmazni.
 
                new str[24];
                VSZErtek--;
                Perc = VSZErtek/60;
                Masodperc = VSZErtek%60;
                format(str, sizeof(str), \"%i:%i\", Perc, Masodperc);
                SetObjectMaterialText(VSZMT, str, 0, 30, \"Arial\", 24, 1, -1, 0, 1);

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
SetObjectMaterialText frissülése probléma
« Válasz #2 Dátum: 2013. május 16. - 17:57:12 »
0 Show voters
Idézetet írta: ɐʞzssǝlosz date=1368719637\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"37436\" data-ipsquote-contentclass=\"forums_Topic
Próbáld nem global string-el, hanem helyi string-el alkalmazni.
 
                new str[24];
                VSZErtek--;
                Perc = VSZErtek/60;
                Masodperc = VSZErtek%60;
                format(str, sizeof(str), \"%i:%i\", Perc, Masodperc);
                SetObjectMaterialText(VSZMT, str, 0, 30, \"Arial\", 24, 1, -1, 0, 1);

 

Szerintem nem lesz jó...


Edit: megcsináltam így is, de sajnos nem jó.

SetObjectMaterialText frissülése probléma
« Válasz #3 Dátum: 2013. május 16. - 21:15:14 »
0 Show voters
Küld el az objectet is melyikre próbálod írni, majd kipróbálom én is nálam is akad-e.

SetObjectMaterialText frissülése probléma
« Válasz #4 Dátum: 2013. május 19. - 23:26:19 »
+1 Show voters
Arra jutottam hogy nálam is megakad de egy kis barbárkodással úgy oldottam meg hogy töröltem az objectet majd újra létrehoztam és akkor szépen végig számolt. (Igaz lusta voltam kivárni teljesen, privibe küldöm a kódot)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal