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

12 answers to this question

Recommended Posts

  • 0

Într-adevăr este un textdraw. Tot ce trebuie să faci este să setezi acel CheckPoint la destinatie, după aceea folosești:

GetPlayerDistanceFromPoint(playerid, Float:X, Float:Y, Float:Z);

Asta returnează distanța în metri dintre player și punctul aflat la coordonatele X,Y,Z (în cazul tău, x,y,z unde se află checkpointul)

Link to comment
Share on other sites

  • 0

Într-adevăr este un textdraw. Tot ce trebuie să faci este să setezi acel CheckPoint la destinatie, după aceea folosești:

GetPlayerDistanceFromPoint(playerid, Float:X, Float:Y, Float:Z);

Asta returnează distanța în metri dintre player și punctul aflat la coordonatele X,Y,Z (în cazul tău, x,y,z unde se află checkpointul)

​Voi crea textdraw-urile dupa care voi veni cu edit sau post în caz că nu mă descurc.

Mersi pentru ajutorul acordat.

Link to comment
Share on other sites

  • 0

Am creat textdraw-urile însă nu știu cum să fac ca să își facă update și să îmi arate locația și km (să se calculeze câți km mai sunt și să îmi arate), mă poate ajuta cineva?

​Pentru asta ai nevoie de "TextDrawSetString". Click!

Si ca sa se updateze km, etc, ai nevoie de un timer. Click!

 

Invatati-va sa lucrati cu wiki, e simplu, usor si acumulati mai multe cunostiinte.

242086.png

Link to comment
Share on other sites

  • 0

​Pentru asta ai nevoie de "TextDrawSetString". Click!

Si ca sa se updateze km, etc, ai nevoie de un timer. Click!

 

Invatati-va sa lucrati cu wiki, e simplu, usor si acumulati mai multe cunostiinte.

​Astea sunt textdraw-urile.. 

 

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, "Ganton (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);

 

Tot nu știu cum să fac să arate numărul de km rămași..

Edited by Gawitkkk
Link to comment
Share on other sites

  • 0

fa un timer, in care se actualizeaza textdraw-ul. Sau, il poti pune in timer-ul de la ceas..

Si, cred ca trebuie CreatePlayerTextDraw. Cel putin eu asa am, si merge treaba.

P.S. cand il actualizezi, foloseste un format(..);

Chestia asta nu merge, dar ca idee dupa cum m-as ghida eu.

public SyncTime()
{
    if(conditia unde verifici daca lucreaza ca tirist, e intr-un tir)
    {
        new text[50], Float:variabila_distanta =  GetPlayerDistanceFromPoint(playerid, x, y, z);
        format(text, sizeof(text), "%s - %0.2f", variabila_destinatie, variabila_distanta);
        TextDrawSetString(Trucker2, text);   
        TextDrawShowForPlayer(playerid, Trucker2);
    } 
}

 

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

fa un timer, in care se actualizeaza textdraw-ul. Sau, il poti pune in timer-ul de la ceas..

Si, cred ca trebuie CreatePlayerTextDraw. Cel putin eu asa am, si merge treaba.

P.S. cand il actualizezi, foloseste un format(..);

Chestia asta nu merge, dar ca idee dupa cum m-as ghida eu.

public SyncTime()
{
    if(conditia unde verifici daca lucreaza ca tirist, e intr-un tir)
    {
        new text[50], Float:variabila_distanta =  GetPlayerDistanceFromPoint(playerid, x, y, z);
        format(text, sizeof(text), "%s - %0.2f", variabila_destinatie, variabila_distanta);
        TextDrawSetString(Trucker2, text);   
        TextDrawShowForPlayer(playerid, Trucker2);
    } 
}

 

​Chiar nu am înțeles...

 

Uite ce am încercat să fac:

 

public SyncTime(playerid)
{
    if(PlayerInfo[playerid][pJob] == 10 && IsWorkTrucking[playerid] == 1)
    {
        new text[50], Float: distance = GetPlayerDistanceFromPoint(playerid, 0,0,0);
        TextDrawShowForPlayer(playerid, Trucker2);
        format(text, sizeof(text), "Ganton (LS) - %0.2f",distance);
        TextDrawSetString(Trucker2, text);
        SendClientMessage(playerid, COLOR_WHITE, "Te pup, pa pa !");
        return 1;
    }
    return 1;
}
 
Uite ce erori am primit:
D:\Scripting\Server\gamemodes\excessrp.pwn(14690) : error 025: function heading differs from prototype
D:\Scripting\Server\gamemodes\excessrp.pwn(14695) : error 035: argument type mismatch (argument 2)
D:\Scripting\Server\gamemodes\excessrp.pwn(14697) : error 035: argument type mismatch (argument 1)
Pawn compiler 3.2.3664              Copyright (c) 1997-2006, ITB CompuPhase

3 Errors.

Scuză-mă, știu că sunt cam greu de cap, însă niciodată nu am mai făcut (sau încercat) ceva de genul, de accea sunt așa greu de cap..

Edited by Gawitkkk
Link to comment
Share on other sites

  • 0

arata forward-ul de la SyncTime, si unde-l folosesti.

 

Pentru acele erori la textdraw, nu-mi dau seama de ce le primesti, dar pune intai ala cu SetString, si dupa ShowForPlayer :)

 

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

arata forward-ul de la SyncTime, si unde-l folosesti.

 

Pentru acele erori la textdraw, nu-mi dau seama de ce le primesti, dar pune intai ala cu SetString, si dupa ShowForPlayer :)

 

E doar un forward la inceputul gamemode-ului.

Link to comment
Share on other sites

  • 0

Ok. Ai pornit acel timer?

 

Daca vei folosi acel timer doar pentru treaba cu TextDraw-ul acela, pune-i un nume mai sugestiv, cand ai nevoie de el sa stii unde sa-l cauti.

Si, vezi cand incepe munca, porneste si timer-ul SetTimerEx("SyncTime", 1000, true, "i", playerid);. Si, sa nu uiti sa opresti timer-ul cand ajunge la destinatie: KillTimer(SyncTime);

 

Stii ce reprezinta fiecare parametru de la SetTimerEx, da?

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

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.