Jump to content
  • 0

Întrebare legată de TextDraw


Gawitkkk

Question

Problema intalnita (descriere): Nu este o problemă, ci o întrebare. Am creat un nou job (Trucker), cum fac ca după ce aleg licitația să îmi arate ceva de genul (ca în imaginea de jos)?
Ero(area / rile) / warning-(ul / urile): Nu există.
Liniile de cod / sursa / script-ul(obligatoriu): -
Imagini / Video (optional): http://i.imgur.com/FZ5WpMW.jpg
Ati incercat sa rezolvati singur?: Da, prima dată credeam că este un GameTextForPlayer, însă deabea dupaia am realizat faptul că este un TextDraw. 

Link to comment
Share on other sites

Recommended Posts

  • 0

Arata-mi cum ai facut.

 

new Text:Trucker1[MAX_PLAYERS];
new Text:Trucker2[MAX_PLAYERS];
Trucker1[i] = TextDrawCreate(218.000000, 342.125000, "Drive the truck to the checkpoint.");
        TextDrawLetterSize(Trucker1[i], 0.348499, 1.582500);
        TextDrawAlignment(Trucker1[i], 1);
        TextDrawColor(Trucker1[i], -1);
        TextDrawSetShadow(Trucker1[i], 0);
        TextDrawSetOutline(Trucker1[i], 1);
        TextDrawBackgroundColor(Trucker1[i], 51);
        TextDrawFont(Trucker1[i], 1);
        TextDrawSetProportional(Trucker1[i], 1);
        Trucker2[i] = TextDrawCreate(231.000000, 367.937500, "(Ocean Dock's (LS) - %d km)");
        TextDrawLetterSize(Trucker2[i], 0.449999, 1.600000);
        TextDrawAlignment(Trucker2[i], 1);
        TextDrawColor(Trucker2[i], -1);
        TextDrawSetShadow(Trucker2[i], 0);
        TextDrawSetOutline(Trucker2[i], 1);
        TextDrawBackgroundColor(Trucker2[i], 51);
        TextDrawFont(Trucker2[i], 1);
        TextDrawSetProportional(Trucker2[i], 1);

Atâta am făcut, în rest.. nu am definit nimic la OnPlayerConnected sau altundeva.

Edited by Gawitkkk
Link to comment
Share on other sites

  • 0

Arata-mi tot ce tine de ele, unde le creezi si cum le folosesti, etc..

Le-am definit la începutul gamemode-ului:

new Text:Trucker1[MAX_PLAYERS];
new Text:Trucker2[MAX_PLAYERS];
  După care le-am creat la public-ul OnGameModeInit:
Trucker1[i] = TextDrawCreate(218.000000, 342.125000, "Drive the truck to the checkpoint.");
        TextDrawLetterSize(Trucker1[i], 0.348499, 1.582500);
        TextDrawAlignment(Trucker1[i], 1);
        TextDrawColor(Trucker1[i], -1);
        TextDrawSetShadow(Trucker1[i], 0);
        TextDrawSetOutline(Trucker1[i], 1);
        TextDrawBackgroundColor(Trucker1[i], 51);
        TextDrawFont(Trucker1[i], 1);
        TextDrawSetProportional(Trucker1[i], 1);
        Trucker2[i] = TextDrawCreate(231.000000, 367.937500, "(Ocean Dock's (LS) - %d km)");
        TextDrawLetterSize(Trucker2[i], 0.449999, 1.600000);
        TextDrawAlignment(Trucker2[i], 1);
        TextDrawColor(Trucker2[i], -1);
        TextDrawSetShadow(Trucker2[i], 0);
        TextDrawSetOutline(Trucker2[i], 1);
        TextDrawBackgroundColor(Trucker2[i], 51);
        TextDrawFont(Trucker2[i], 1);
        TextDrawSetProportional(Trucker2[i], 1);

 

Iar acum, urmează să fie adăugate la job-uri.

După ce selectez ruta, trebuie (trebuia.. ) să apară textdraw-urile.

 

Link to comment
Share on other sites

  • 0

Deci problema era ca tu nu ai creat textdraw-ul.

O marcam ca inchisa sau care mai este problema?

Tot nu am reușit să fac ca să îmi arate numărul de km rămași... să își facă update și toate cele, nu știu cum.. am tot încercat..

Link to comment
Share on other sites

  • 0

Tot nu am reușit să fac ca să îmi arate numărul de km rămași... să își facă update și toate cele, nu știu cum.. am tot încercat..

Trebuie sa actualizezi text-ul intr-un timer, foloseste-te de https://wiki.sa-mp.com/wiki/SetPlayerTime si https://wiki.sa-mp.com/wiki/GetPlayerDistanceFromPoint.

Link to comment
Share on other sites

  • 0

Trebuie sa actualizezi text-ul intr-un timer, foloseste-te de https://wiki.sa-mp.com/wiki/SetPlayerTime si https://wiki.sa-mp.com/wiki/GetPlayerDistanceFromPoint.

Am tot încercat toate prostiile, tot nu îmi iasă.. m-am folosit și de TextDrawSetString, toate prostiile.. tot nu am înțeles cum să fac..

Link to comment
Share on other sites

  • 0

Arata-mi cum ai facut.

 

                TextDrawShowForPlayer(playerid, Trucker1[playerid]);
                new
                Float: fDistance = GetPlayerDistanceFromPoint(playerid, 237.9, 115.6, 1010.2),
                string[44];
                format(string, sizeof(string), "Ocean Dock's (LS) %d km", fDistance);
                TextDrawShowForPlayer(playerid, string[playerid]);
Edited by Gawitkkk
Link to comment
Share on other sites

  • 0

 

                TextDrawShowForPlayer(playerid, Trucker1[playerid]);
                new
                Float: fDistance = GetPlayerDistanceFromPoint(playerid, 237.9, 115.6, 1010.2),
                string[44];
                format(string, sizeof(string), "Ocean Dock's (LS) %d km", fDistance);
                TextDrawShowForPlayer(playerid, string[playerid]);

Incearca sa pui asta in acel timer..

 

TextDrawHideForPlayer(playerid, Trucker1[playerid]);
TextDrawHideForPlayer(playerid, Trucker2[playerid]);
TextDrawShowForPlayer(playerid, Trucker1[playerid]);
new Float: fDistance = GetPlayerDistanceFromPoint(playerid, 237.9, 115.6, 1010.2);
new string[44];
format(string, sizeof(string), "Ocean Dock's (LS) %d km", fDistance);
TextDrawSetString(Trucker2[playerid], string);   
TextDrawShowForPlayer(playerid, Trucker2[playerid]);

 

Edited by Punct.

Nu mai deschideti in pu*a mea servere de SA:MP !

Jucati-va pe cele care sunt !   Sunt suficiente !

Reguli de bun simt:

1. Nu faceti reclama unde nu trebuie !

2. Nu injurati ca la usa cortului !

3. Daca esti analfabeti, taci din gura !

4. Nu abuza de 'scuze', 'din greseala' !

 

My work ::: http://pastebin.com/VRNRcaAs

Link to comment
Share on other sites

  • 0

@Punct. astea

TextDrawHideForPlayer(playerid, Trucker1[playerid]);
TextDrawHideForPlayer(playerid, Trucker2[playerid]);
TextDrawShowForPlayer(playerid, Trucker1[playerid]);
TextDrawShowForPlayer(playerid, Trucker2[playerid]);


Nu e nevoie sa fie in timer, poate sa le foloseasca doar o data.

Link to comment
Share on other sites

  • 0

Pai daca se executa TextDrawShowForPlayer de mai multe ori, apare o singura data? Adica nu apare ca si cum ar fi mai multe?

 

Daca pun TextDrawSetSting, se modifica scrisul fara sa sterg textdraw-ul si sa-l fac sa apara din nou?

Nu mai deschideti in pu*a mea servere de SA:MP !

Jucati-va pe cele care sunt !   Sunt suficiente !

Reguli de bun simt:

1. Nu faceti reclama unde nu trebuie !

2. Nu injurati ca la usa cortului !

3. Daca esti analfabeti, taci din gura !

4. Nu abuza de 'scuze', 'din greseala' !

 

My work ::: http://pastebin.com/VRNRcaAs

Link to comment
Share on other sites

  • 0

Incearca sa pui asta in acel timer..

 

TextDrawHideForPlayer(playerid, Trucker1[playerid]);
TextDrawHideForPlayer(playerid, Trucker2[playerid]);
TextDrawShowForPlayer(playerid, Trucker1[playerid]);
new Float: fDistance = GetPlayerDistanceFromPoint(playerid, 237.9, 115.6, 1010.2);
new string[44];
format(string, sizeof(string), "Ocean Dock's (LS) %d km", fDistance);
TextDrawSetString(Trucker2[playerid], string);   
TextDrawShowForPlayer(playerid, Trucker2[playerid]);

 

Am făcut cum ai spus tu, uite rezultatul: http://i.imgur.com/9XSupPI.png

 

1. Nu își face update numărul de km rămași.

2. Nu îmi arată în km, ci în metrii (cred).

 

@Punct. astea

TextDrawHideForPlayer(playerid, Trucker1[playerid]);
TextDrawHideForPlayer(playerid, Trucker2[playerid]);
TextDrawShowForPlayer(playerid, Trucker1[playerid]);
TextDrawShowForPlayer(playerid, Trucker2[playerid]);


Nu e nevoie sa fie in timer, poate sa le foloseasca doar o data.

Am făcut cum a spus Punct., mai sus am scris problemele rămase.

Edited by Gawitkkk
Link to comment
Share on other sites

  • 0

Pai daca se executa TextDrawShowForPlayer de mai multe ori, apare o singura data? Adica nu apare ca si cum ar fi mai multe?

 

Daca pun TextDrawSetSting, se modifica scrisul fara sa sterg textdraw-ul si sa-l fac sa apara din nou?

Daca nu il ascunzi sau distrugi dupa ce l-ai aratat pe ecran jucatorului foloseste TextDrawSetString sa ii modifici scrisul.

format(string, sizeof(string), "Ocean Dock's (LS) %d km", fDistance);

Aici in loc de %d trebuie %f, este float.

L-ai pus macar intr-un timer? :|

Link to comment
Share on other sites

  • 0

Daca nu il ascunzi sau distrugi dupa ce l-ai aratat pe ecran jucatorului foloseste TextDrawSetString sa ii modifici scrisul.

format(string, sizeof(string), "Ocean Dock's (LS) %d km", fDistance);

Aici in loc de %d trebuie %f, este float.

L-ai pus macar intr-un timer? :|

Nu, nu i-am setat timer.. 

 

Uite cum îmi arată acum: http://i.imgur.com/PmC6Bzx.png

Linia script-ului:

    if(listitem == 0)
            {
                TextDrawHideForPlayer(playerid, Trucker1[playerid]);
                TextDrawHideForPlayer(playerid, Trucker2[playerid]);
                TextDrawShowForPlayer(playerid, Trucker1[playerid]);
                new Float: fDistance = GetPlayerDistanceFromPoint(playerid, 237.9, 115.6, 1010.2),
                string[44];
                format(string, sizeof(string), "(Ocean Dock's (LS) %f km)", fDistance);
                TextDrawSetString(Trucker2[playerid], string);
                TextDrawShowForPlayer(playerid, Trucker2[playerid]);
            }
Edited by Gawitkkk
Link to comment
Share on other sites

  • 0

...

format(string, sizeof(string), "(Ocean Dock's (LS) %f km)", fDistance / 100.0);

Daca vrei sa afisezi doar 2 decimale pui %.2f in loc de %f.

Totul funcționează corect și perfect.

 

Îți mulțumesc FOARTE mult și frumos pentru tot timpul acordat. Îmi cer scuze dacă te-am deranjat stresându-te cu prostiile mele, încă învăț.. Mulțumesc WoopS, mulțumesc sa-mp.ro !

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.