Hát pont ezt használom :D Na m1 úgy ahogy középre raktam, thx a segítséget
Dupla hozzászólás automatikusan összefûzve. ( 2014. április 19. - 19:29:34 )
Mégsem sikerült bemérni a kattintás helyét. Tudnál segíteni?
Textdraw5[playerid] = CreatePlayerTextDraw(playerid, 291.555511, 186.666793, \"Beiras(katt)\");
PlayerTextDrawLetterSize(playerid, Textdraw5[playerid], 0.449999, 1.500000);
PlayerTextDrawAlignment(playerid, Textdraw5[playerid], 2);
PlayerTextDrawColor(playerid, Textdraw5[playerid], -1);
PlayerTextDrawSetShadow(playerid, Textdraw5[playerid], 0);
PlayerTextDrawSetOutline(playerid, Textdraw5[playerid], 1);
PlayerTextDrawBackgroundColor(playerid, Textdraw5[playerid], 51);
PlayerTextDrawFont(playerid, Textdraw5[playerid], 1);
PlayerTextDrawSetProportional(playerid, Textdraw5[playerid], 1);
PlayerTextDrawSetSelectable(playerid, Textdraw5[playerid], true);
Textdraw8[playerid] = CreatePlayerTextDraw(playerid, 292.444335, 239.431060, \"Beiras(katt)\");
PlayerTextDrawLetterSize(playerid, Textdraw8[playerid], 0.449999, 1.600000);
PlayerTextDrawAlignment(playerid, Textdraw8[playerid], 2);
PlayerTextDrawColor(playerid, Textdraw8[playerid], -1);
PlayerTextDrawSetShadow(playerid, Textdraw8[playerid], 0);
PlayerTextDrawSetOutline(playerid, Textdraw8[playerid], 1);
PlayerTextDrawBackgroundColor(playerid, Textdraw8[playerid], 51);
PlayerTextDrawFont(playerid, Textdraw8[playerid], 1);
PlayerTextDrawSetProportional(playerid, Textdraw8[playerid], 1);
PlayerTextDrawSetSelectable(playerid, Textdraw8[playerid], true);
Textdraw9[playerid] = CreatePlayerTextDraw(playerid, 319.288879, 277.561096, \"Bejelentkezes\");
PlayerTextDrawLetterSize(playerid, Textdraw9[playerid], 0.449999, 1.600000);
PlayerTextDrawTextSize(playerid, Textdraw9[playerid], 206.666595, -129.422180);
PlayerTextDrawAlignment(playerid, Textdraw9[playerid], 2);
PlayerTextDrawColor(playerid, Textdraw9[playerid], -1);
PlayerTextDrawUseBox(playerid, Textdraw9[playerid], true);
PlayerTextDrawBoxColor(playerid, Textdraw9[playerid], 343134940);
PlayerTextDrawSetShadow(playerid, Textdraw9[playerid], 0);
PlayerTextDrawSetOutline(playerid, Textdraw9[playerid], 1);
PlayerTextDrawBackgroundColor(playerid, Textdraw9[playerid], 51);
PlayerTextDrawFont(playerid, Textdraw9[playerid], 1);
PlayerTextDrawSetProportional(playerid, Textdraw9[playerid], 1);
PlayerTextDrawSetSelectable(playerid, Textdraw9[playerid], true);
Nem is kell bemérni. Csak annyit kell tenned, hogy ahol szeretnéd használni kattinthatóvá teszed (megjelenik az egér) a következõ függvénnyel:
SelectTextDraw(playerid, 0x00FF00FF);
Itt a második paraméter (ami a playerid után jön) az azt a színt jelöli, amivé váljon a TD, ha fölé viszed az egeret.
Ez után jön a \"bemérés\" rész, amire te gondolsz, azaz mi történjen ha rákattolsz a TD-re:
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
if(clickedid == Textdraw5[playerid]) //ugyanaz az elv, mint a dialog responsenál
{
SendClientMessage(playerid, 0xFFFFFFAA, \"Rákattintottál a TD-re!\");
CancelSelectTextDraw(playerid); //az egér eltûntetése
}
return 1;
}
Doboka, hülyeséget ne írj. Be kell mérni. Különben a képernyõ sarkán is kijelelõdik a textdraw, holott csak akkor kéne, ha rajta van az egér.
PlayerTextDrawTextSize(playerid, textdrawid, 50.00, 15.00); // Radnom beírtam valamit, próbálgasd te is, asszem ez a függvény az. Elsõnek próbáld meg ezzel, és nézd meg, hova kell húznod az egeret, hogy a TD-re kattolhass. haladj a TD középpontja felé a kurzorral. Ha a feliraton kívül is tudsz kattintani, csökkentsd a megfelelõ értékeket, ha pedig csak nagyon a közepén tudsz, növeld õket. Valahogy ki is lehet mérni, de szerintem felesleges vacakolni vele. Én általában szemmértékre, találgatva rá szoktam jönni a megfelelõ értékekre, percek alatt.
TD editorban (legalábbis a z akárkijében) nem lehet bemérni. Amúgy egy helyen \"mérte be\":
PlayerTextDrawTextSize(playerid, Textdraw9[playerid], 206.666595, -129.422180);
PlayerTextDrawAlignment(playerid, Textdraw9[playerid], 2);
[/quote]
Ez viszont 2-es aligmenttel azt fogja eredményezni, hogy a TD körül k*va nagy távolságokra is kattintani lehet majd az adott TD-re.
TextDrawSetSelectable(); // A TD-t kiválaszthatóvá, kattinthatóvá teszed
SelectTextDraw(); // Engedélyezed a kiválasztást (megjelenik az egér, és kattinthatsz)
CancelSelectTextDraw(); // Törlöd a kiválasztást (eltûnik az egér, ami alapból csak ESC gombbal tûnne el)
public OnPlayerClickPlayerTextDraw // Ha jól tudom, neked most PlayerTextDrawhoz kell (legalábbis az elõzõ témádból ítélve), amelyekhez viszont ez a callback szükséges, nem pedig a sima OnPlayerClickTextDraw callback
Mûködik, csak elcsúszik. Egy régebbi témában láttam, hogy TextDrawTextSize kell hozzá, hogy ne csússzon el. Na azzal próbáltam most, de hibát jelez.
Hiba:
warning 213: tag mismatch
Kód:
TextDrawTextSize(Textdraw6[playerid], 1, 1);
Ezt azért jelzi, mert a Textraw6[playerid] változó sima TD, nem pedig Player TD változója. Ugyanis erre is van külön függvény, mármint a Player TD-k méretéhez. Nem egyszer fordult már elõ a mai nap során a témáidban, hogy azért volt probléma, mert a Player TD-hez nem Player TD-s függvényeket alkalmaztál. Tehát most a PlayerTextDrawTextSize függvény kell neked. Én egyébként úgy szoktam csinálni, hogy középpontos TD-t készítek, amely segítségével nagyon egyszerû meghatározni a TD méretét, akár néhány próbálkozással, szemmértékre is. Valami féle kis példa szerûség a középpontosra, kóddal:
PlayerTextDrawTextSize(Textdraw6[playerid], 10.25, 1.225); // Ha jól tudom, csak a középpontól számítva kell megadni a koordinátákat, tehát ha az X tengely 20.50 hosszú, akkor csak 10.25-öt kell megadni, de lehet, hogy mégis a 20.50-re és a 2.55-re lesz szükséged. Bár ki tudja. Úgyis szemmértékre fogod megcsinálni szerintem, én is úgy szoktam, 2 perc az egész. :D
Melynek eredménye:
[hs width=333]
http://www.kephost.com/images4/2014/4/19/a1_2014_4_19_z7ejujy1r1.png[/hs]
A zölddel bekeretezett részen lesz kattintható.
Kösz, akkor újracsinálom középpontosan a bejelentkezõ rendszert. Hanyas felbontással készítsem szerinted, hogy jó legyen mindenkinek?
A legkisebben, elvégre arra van tervezve, de igazából lényegtelen, mivel alig lesz eltérés. Akkor viszont nagyobb eltérés várható, ha nem 4:3-as képaránnyal, illetve ezzel arányos felbontással dolgozol. A 0.3z verzióban asszem\' már van lehetõség a játékos képernyõjének felbontásának lekérésére, hogy neki megfelelõen állítsd be az õ TD-jeinek a koordinátáit, de szerintem felesleges, mert ki az anyám fog vele vacakolni? Na meg amúgy is csak minimális lesz az eltérés.
megpróbálom, azt esetleg nem tudod, hogyan kell pont a képernyõ közepére tenni egy textdrawot?
Ajánlom figyelmedbe az iPleomax IG TextDraw Editor -t. Azzal kényelmesen tudod elhelyezni a td-idet, bár erre más TD editor is megfelel.
Hát pont ezt használom :D Na m1 úgy ahogy középre raktam, thx a segítséget
Dupla hozzászólás automatikusan összefûzve. ( 2014. április 19. - 19:29:34 )
Mégsem sikerült bemérni a kattintás helyét. Tudnál segíteni?
Textdraw5[playerid] = CreatePlayerTextDraw(playerid, 291.555511, 186.666793, \"Beiras(katt)\");
PlayerTextDrawLetterSize(playerid, Textdraw5[playerid], 0.449999, 1.500000);
PlayerTextDrawAlignment(playerid, Textdraw5[playerid], 2);
PlayerTextDrawColor(playerid, Textdraw5[playerid], -1);
PlayerTextDrawSetShadow(playerid, Textdraw5[playerid], 0);
PlayerTextDrawSetOutline(playerid, Textdraw5[playerid], 1);
PlayerTextDrawBackgroundColor(playerid, Textdraw5[playerid], 51);
PlayerTextDrawFont(playerid, Textdraw5[playerid], 1);
PlayerTextDrawSetProportional(playerid, Textdraw5[playerid], 1);
PlayerTextDrawSetSelectable(playerid, Textdraw5[playerid], true);
Textdraw8[playerid] = CreatePlayerTextDraw(playerid, 292.444335, 239.431060, \"Beiras(katt)\");
PlayerTextDrawLetterSize(playerid, Textdraw8[playerid], 0.449999, 1.600000);
PlayerTextDrawAlignment(playerid, Textdraw8[playerid], 2);
PlayerTextDrawColor(playerid, Textdraw8[playerid], -1);
PlayerTextDrawSetShadow(playerid, Textdraw8[playerid], 0);
PlayerTextDrawSetOutline(playerid, Textdraw8[playerid], 1);
PlayerTextDrawBackgroundColor(playerid, Textdraw8[playerid], 51);
PlayerTextDrawFont(playerid, Textdraw8[playerid], 1);
PlayerTextDrawSetProportional(playerid, Textdraw8[playerid], 1);
PlayerTextDrawSetSelectable(playerid, Textdraw8[playerid], true);
Textdraw9[playerid] = CreatePlayerTextDraw(playerid, 319.288879, 277.561096, \"Bejelentkezes\");
PlayerTextDrawLetterSize(playerid, Textdraw9[playerid], 0.449999, 1.600000);
PlayerTextDrawTextSize(playerid, Textdraw9[playerid], 206.666595, -129.422180);
PlayerTextDrawAlignment(playerid, Textdraw9[playerid], 2);
PlayerTextDrawColor(playerid, Textdraw9[playerid], -1);
PlayerTextDrawUseBox(playerid, Textdraw9[playerid], true);
PlayerTextDrawBoxColor(playerid, Textdraw9[playerid], 343134940);
PlayerTextDrawSetShadow(playerid, Textdraw9[playerid], 0);
PlayerTextDrawSetOutline(playerid, Textdraw9[playerid], 1);
PlayerTextDrawBackgroundColor(playerid, Textdraw9[playerid], 51);
PlayerTextDrawFont(playerid, Textdraw9[playerid], 1);
PlayerTextDrawSetProportional(playerid, Textdraw9[playerid], 1);
PlayerTextDrawSetSelectable(playerid, Textdraw9[playerid], true);
Nem is kell bemérni. Csak annyit kell tenned, hogy ahol szeretnéd használni kattinthatóvá teszed (megjelenik az egér) a következõ függvénnyel:
SelectTextDraw(playerid, 0x00FF00FF);
Itt a második paraméter (ami a playerid után jön) az azt a színt jelöli, amivé váljon a TD, ha fölé viszed az egeret.
Ez után jön a \"bemérés\" rész, amire te gondolsz, azaz mi történjen ha rákattolsz a TD-re:
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
if(clickedid == Textdraw5[playerid]) //ugyanaz az elv, mint a dialog responsenál
{
SendClientMessage(playerid, 0xFFFFFFAA, \"Rákattintottál a TD-re!\");
CancelSelectTextDraw(playerid); //az egér eltûntetése
}
return 1;
}
Doboka, hülyeséget ne írj. Be kell mérni. Különben a képernyõ sarkán is kijelelõdik a textdraw, holott csak akkor kéne, ha rajta van az egér.
PlayerTextDrawTextSize(playerid, textdrawid, 50.00, 15.00); // Radnom beírtam valamit, próbálgasd te is, asszem ez a függvény az. Elsõnek próbáld meg ezzel, és nézd meg, hova kell húznod az egeret, hogy a TD-re kattolhass. haladj a TD középpontja felé a kurzorral. Ha a feliraton kívül is tudsz kattintani, csökkentsd a megfelelõ értékeket, ha pedig csak nagyon a közepén tudsz, növeld õket. Valahogy ki is lehet mérni, de szerintem felesleges vacakolni vele. Én általában szemmértékre, találgatva rá szoktam jönni a megfelelõ értékekre, percek alatt.
Ezt õ már bemérte a TD editorba..
TD editorban (legalábbis a z akárkijében) nem lehet bemérni. Amúgy egy helyen \"mérte be\":
PlayerTextDrawTextSize(playerid, Textdraw9[playerid], 206.666595, -129.422180);
PlayerTextDrawAlignment(playerid, Textdraw9[playerid], 2);
[/quote]
Ez viszont 2-es aligmenttel azt fogja eredményezni, hogy a TD körül k*va nagy távolságokra is kattintani lehet majd az adott TD-re.
\"2-es aligmenttel azt fogja eredményezni, hogy a TD körül k*va nagy távolságokra is kattintani lehet majd az adott TD-re.\"
Ezt nem tudtam.
hanyasra állítsam be az alignmentet?
Az jó, ahogy van, 2-es a centered. Gondolom editorban is azt adtad meg, ezért 2 most.
igen. Na mindegy, majd valahogy megoldom, köszi aki írt.
Csak csökkentsd a sizét és egyszer csak jó lesz, nah :D