-
Sziasztok!
Azt szeretném megoldani hogy pl OnPlayerSpawnnál bejönne egy dialog és abba lehetne írni szöveget ha meg rámegyek pl a tovább gombra akkor amit a dialogba írtam szöveget azt megjeleníteni textdraw formában valahol a képernyõn.
Levezetés:
Bejön egy dialog ha lespawnol a játékos-->Belelehet írni egy szöveget-->Rámegyünk a tovább gombra-->Amit beírtunk szöveget azt megjeleníti a szerver textdraw formába a képernyõn valahol.
Próbáltam érthetõ lenni remélem értitek :D
Elõre is köszönöm a segítséget! :)
Szerkesztetem a kérdésemet mer rosszul írtam le azt amit szerettem volna kéri!
Elnézéseteket kérem!
-
Ezt keresed:
PlayerTextDrawTextSize
SelectTextDraw
CancelSelectTextDraw
PlayerTextDrawTextSize
TextDrawSetString
-
Ezzel nem adtál választ a kérdésemre :(
-
Dehogynem, te azt kérdezted hogyan lehetne megoldani, ezek függvény használatával lehet megoldani a problémád.
-
Egy példa scriptet kérhetek ? :D
Mer ezekbõl nem tudtam összetenni :(
Dupla hozzászólás automatikusan összefûzve. ( 2014. június 20. - 19:14:46 )
Am rosszúl fogalmaztam :wall:
Úgy akarom ha egy szöveget dialogba beleírok és pl rámegyek hogy tovább akkor amit oda beírtam szöveget azt textdrawként jelenítse meg a képernyõn valahol.
-
OnDialogResponse eljárásnál az inputtextre állítsd a textdrawod értékét.
TextDrawSetString(TextDrawod, inputtext);
-
PMbe kérted, itt van:
#include <a_samp>
#invlude <fixchars>
new PlayerText:kiiras[MAX_PLAYERS];
#define dialog 555 // csak hogy a módban semmivel se ütközzön.
#define aaaaf ShowPlayerDialog(playerid, dialog, DIALOG_STYLE_INPUT, \"Szöveg\",\"Írj be valami finomságot, amita képernyõ allján látni akarsz!\",\"Választ\",\"\") // ide írtam neked, hogyha át szeretnéd írni, csak egy helyen kell!
#define aaaafHIBA ShowPlayerDialog(playerid, dialog, DIALOG_STYLE_INPUT, \"Szöveg\",\"Muszáj beírnod, enélkül nem mehetsz tovább! (max 128 karakter)\",\"Választ\",\"\") // ez ugyanaz, csak akkor adja elõ ha elgépelt valamit
public OnFilterScriptInit() { return 1; }
public OnFilterScriptExit() { return 1; }
public OnPlayerSpawn(playerid)
{
aaaaf;
kiiras[playerid] = CreatePlayerTextDraw(playerid, 260.000000, 433.000000, \" \");
PlayerTextDrawBackgroundColor(playerid, kiiras[playerid], 255);
PlayerTextDrawFont(playerid, kiiras[playerid], 3);
PlayerTextDrawLetterSize(playerid, kiiras[playerid], 0.509999, 1.200000);
PlayerTextDrawColor(playerid, kiiras[playerid], -1);
PlayerTextDrawSetOutline(playerid, kiiras[playerid], 0);
PlayerTextDrawSetProportional(playerid, kiiras[playerid], 1);
PlayerTextDrawSetShadow(playerid, kiiras[playerid], 2);
PlayerTextDrawShow(playerid, kiiras[playerid]);
return 1;
}
public OnPlayerDeath(playerid) { PlayerTextDrawHide(playerid, kiiras[playerid]); return 1; }
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case dialog:
{
if(!response) return aaaafHIBA;
if(response)
{
if(!strlen(inputtext)) return aaaafHIBA;
new str[128];
format(str, sizeof(str), \"%s\", inputtext);
PlayerTextDrawSetString(playerid, kiiras[playerid], str);
PlayerTextDrawShow(playerid, kiiras[playerid]);
}
}
}
return 1;
}
Teszteltem, mûködik. Hogyha a fixchars-t kiveszed akkor nem lehet ékezetet írni. (a fórumon megtalálod azt az incet)
-
És pont ahogy szerettem volna :D
Köszönöm BackUP! :)
-
Próbáltam a módba tenni és ezt írja ki:
error 036: empty statement
OnPlayerClickTextdrawhoz tettem így nézki:
Mód elején ez:
#define aaaaf ShowPlayerDialog(playerid,1,DIALOG_STYLE_PASSWORD,\"{00A5FF}Bejelentkezés\",\"{FFFFFF}Köszöntelek a szerveren!\\nTe már regisztrálva vagy!\\nKérlek írd be a jelszavad a belépéshez!\",\"Belépek\",\"\");
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
if(_:clickedid != 65535)
{
if(clickedid == Belepes5)//mmmmmmmmmmBEJELENTKEZÉSmmmmmmm
{
aaaaf;
kiiras[playerid] = CreatePlayerTextDraw(playerid, 260.000000, 433.000000, \" \");
PlayerTextDrawBackgroundColor(playerid, kiiras[playerid], 255);
PlayerTextDrawFont(playerid, kiiras[playerid], 3);
PlayerTextDrawLetterSize(playerid, kiiras[playerid], 0.509999, 1.200000);
PlayerTextDrawColor(playerid, kiiras[playerid], -1);
PlayerTextDrawSetOutline(playerid, kiiras[playerid], 0);
PlayerTextDrawSetProportional(playerid, kiiras[playerid], 1);
PlayerTextDrawSetShadow(playerid, kiiras[playerid], 2);
PlayerTextDrawShow(playerid, kiiras[playerid]);
TextDrawHideForPlayer(playerid, Belepes5);
TextDrawShowForPlayer(playerid, Belepes7);
return 1;
}
return 1;
}
return 0;
}
A hibát a 7. sorba találta.
aaaafHIBA cuccot azért nem tettem be mert a belépés eleve úgy van megcsinálva hogy kénytelen beírni valamit. De mégis mi az amit elrontottam ? :(
-
Amikor a definiálod az \'aaaaf\'-t, akkor fent a mód tetején a kék szöveg mögött töröld ki a pontosvesszõt[;]. Mert amikor használod, így fordítja le:
ShowPlayerDialog(playerid,1,DIALOG_STYLE_PASSWORD,\"{00A5FF}Bejelentkezés\",\"{FFFFFF}Köszöntelek a szerveren!\\nTe már regisztrálva vagy!\\nKérlek írd be a jelszavad a belépéshez!\",\"Belépek\",\"\");;
-
És valóba :D
Thx :)