Szerző Téma: 3DText bug?  (Megtekintve 495 alkalommal)

3DText bug?
« Dátum: 2013. július 07. - 11:14:59 »
0 Show voters
Sziasztok!
Csináltam egy olyat, hogy amikor mozgatok egy objectet mozogjon vele együtt a 3DText is(aztán töröltem, mert bugos volt). Ez abból állt, hogy az objectek betöltésekor létrehoztam minden objectnek egy 3DTextet. Valahogy így:
Objectek[forloop változója][oDDText] = Create3DTextLabel(...)

 
Ez ugye mindegyiknek csinált egyet. Majd amikor mozgattam az objectet és mentettem, bizonyos mentések után olyan történt, hogy egy másik object 3DText-je átbugolt arra, amit módosítottam. Amit tettem: Mentéskor kitöröltem az akkori 3DTextet(enumos változóból is) és létrehoztam egy újat neki arra a helyre ahová mozgattam. Sajnos nincs már meg a kód, ezért megköszönném ha valaki leírná hogy is kellene egy ilyet megcsinálni(milyen logika alapján).

3DText bug?
« Válasz #1 Dátum: 2013. július 07. - 16:25:13 »
+1 Show voters
És hogyan akartad mozgatni? Mert objecthez kötni nem lehet. Maximum ha az object mozgatásánál letörlöd és újracsinálod.
Egy módszert elgondoltam itt, callbacket használva.
 

public OnObjectMoved(objectid) // mivel ez a MoveObject VÉGÉN hívódik meg, így sajnos olyan textdrawt ami megy az objectel nehéz csinálni
// vagy legalább is nem célszerû (rövid timer újra és újra).
{ // Viszont ott volt a baj szerintem nálad, hogy a forloop az 0-ától kezdte el a \'slotokat\' létrehozni, az objectek idje viszont 1tõl kezdõdik.
    Delete3DTextLabel(Objectek[objectid][oDDText] );
    new Float:X, Float:Y, Float:Z;
    GetObjectPos(objectid, X, Y, Z);
    Objectek[objectid][oDDText] = Create3DTextLabel(\"Blabla\",SZIN, X,Y,Z...); // csak itt le is kell kérni az új pozíciót
    return 1;
} //
« Utoljára szerkesztve: 2013. július 07. - 16:38:11 írta Norbivar »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal