Szerző Téma: Textdraw-ra kattintás  (Megtekintve 3385 alkalommal)

Textdraw-ra kattintás
« Dátum: 2014. Április 19. - 11:49:51 »
0 Show voters
Sziasztok, hogyan tudnám megcsinálni, hogy ha egy textdrawra rákattintok akkor elõhozzon egy input dialogot? OnPlayerClickTextDraw-al már próbáltam, de nem jó :S

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
Textdraw-ra kattintás
« Válasz #1 Dátum: 2014. Április 19. - 12:05:15 »
0 Show voters
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

Textdraw-ra kattintás
« Válasz #2 Dátum: 2014. Április 19. - 12:15:45 »
0 Show voters
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);

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
Textdraw-ra kattintás
« Válasz #3 Dátum: 2014. Április 19. - 12:29:52 »
0 Show voters
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ó.
« Utoljára szerkesztve: 2014. Április 19. - 12:56:18 írta Dfoglalo »

Textdraw-ra kattintás
« Válasz #4 Dátum: 2014. Április 19. - 12:46:23 »
0 Show voters
Kösz, akkor újracsinálom középpontosan a bejelentkezõ rendszert. Hanyas felbontással készítsem szerinted, hogy jó legyen mindenkinek?

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
Textdraw-ra kattintás
« Válasz #5 Dátum: 2014. Április 19. - 12:54:33 »
0 Show voters
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.

Textdraw-ra kattintás
« Válasz #6 Dátum: 2014. Április 19. - 17:59:26 »
0 Show voters
megpróbálom, azt esetleg nem tudod, hogyan kell pont a képernyõ közepére tenni egy textdrawot?

Nem elérhető doboka98

  • 1002
    • Profil megtekintése
Textdraw-ra kattintás
« Válasz #7 Dátum: 2014. Április 19. - 18:06:56 »
0 Show voters
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.

Textdraw-ra kattintás
« Válasz #8 Dátum: 2014. Április 19. - 19:17:05 »
0 Show voters
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);
« Utoljára szerkesztve: 2014. Április 19. - 19:29:34 írta Campe3r »

Nem elérhető doboka98

  • 1002
    • Profil megtekintése
Textdraw-ra kattintás
« Válasz #9 Dátum: 2014. Április 19. - 20:12:31 »
0 Show voters
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;
}

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
Textdraw-ra kattintás
« Válasz #10 Dátum: 2014. Április 19. - 21:09:33 »
0 Show voters
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.

Nem elérhető doboka98

  • 1002
    • Profil megtekintése
Textdraw-ra kattintás
« Válasz #11 Dátum: 2014. Április 19. - 21:11:03 »
0 Show voters
Ezt õ már bemérte a TD editorba..

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
Textdraw-ra kattintás
« Válasz #12 Dátum: 2014. Április 19. - 21:17:03 »
0 Show voters
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.

Nem elérhető doboka98

  • 1002
    • Profil megtekintése
Textdraw-ra kattintás
« Válasz #13 Dátum: 2014. Április 19. - 21:28:27 »
0 Show voters
\"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.

Textdraw-ra kattintás
« Válasz #14 Dátum: 2014. Április 19. - 22:17:21 »
0 Show voters
hanyasra állítsam be az alignmentet?

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal