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).
É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;
} //