Jump to content
  • 0

Problema textdraw


Blacks.

Question

Problema intalnita (descriere): Cand apas click imi apare textdraw-ul "DailyInfo[11]" si daca il apas dispare. Eu vreau ca atunci cand tastez o comanda, sa imi apara niste textdraw-uri(ceea ce functioneaza), iar cand apas pe un anumit buton din textdraw sa dispara toate. Problema e ca la mine oricand apas click, imi apare acel textdraw.
Ero(area / rile) / warning-(ul / urile): -
Liniile de cod / sursa / script-ul(obligatoriu):

if(newkeys == KEY_FIRE)
    {
        if(TextDrawShowForPlayer(playerid, DailyInfo[11]))
        {
            SelectTextDraw(playerid, DailyInfo[11]);
        }
    }
Imagini / Video (optional): -
Ati incercat sa rezolvati singur?: Nu, deoarece nu am stiut ce ar putea fi gresit in script-ul de mai sus.

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0
  • 0

Am folosit functia OnPlayerClickTextDraw, uitati aici:

public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
    if(clickedid == DailyInfo[11])
    {
         TextDrawHideForPlayer(playerid, DailyInfo[0]), TextDrawHideForPlayer(playerid, DailyInfo[1]), TextDrawHideForPlayer(playerid, DailyInfo[2]), TextDrawHideForPlayer(playerid, DailyInfo[3]), TextDrawHideForPlayer(playerid, DailyInfo[4]), TextDrawHideForPlayer(playerid, DailyInfo[5]), TextDrawHideForPlayer(playerid, DailyInfo[6]), TextDrawHideForPlayer(playerid, DailyInfo[7]), TextDrawHideForPlayer(playerid, DailyInfo[8]), TextDrawHideForPlayer(playerid, DailyInfo[9]), TextDrawHideForPlayer(playerid, DailyInfo[10]), TextDrawHideForPlayer(playerid, DailyInfo[11]), TextDrawHideForPlayer(playerid, DailyInfo[12]);
         CancelSelectTextDraw(playerid);
         return cmd_daily(playerid, "");
    }
    return 1;
}

Si functioneaza corespunzator. Problema mea este ca daca apas click in orice imprejurare, nu neaparat cand am folosit comanda /dailyinfo, imi apare acel textdraw - "DailyInfo[11]" si trebuie sa apas pe el ca sa dispara.

Priviti poza de mai jos:

CATma1c.jpg

 

Am apasat click pur si simplu, fara sa fi tastat comanda aceea inainte, si a aparut td-ul, pe care pot apasa si dispare. Problema e ca nu e ok sa apara asa oricand apas click, eu vreau sa-l pot apasa doar atunci cand trebuie sa inchida celelalte td-uri, exact ca in script-ul de mai sus.

Link to comment
Share on other sites

  • 0

Nu-ti voi rezolva problema, pentru ca nu vei intelege nimic. Dar iti voi explica cum functioneaza codul tau.

Citat

if(newkeys == KEY_FIRE)

Aceasta conditie verifica daca jucatorul apasa 'ATTACK', mai exact 'Click stanga'.

Citat

if(TextDrawShowForPlayer(playerid, DailyInfo[11]))

Aici e o problema majora. "TextDrawShowForPlayer" e o functie care iti returneaza valoarea '1' in cazul in care a reusit, si '0' in cazul in care a esuat.

Mai pe intelesul tau, "TextDrawShowForPlayer(playerid, DailyInfo[11])" face sa apara TD-ul pe ecranul jucatorului. Daca-l pui intr-o conditie e total aiurea, pentru ca se ruleaza oriunde ar fi. Teoretic, tu nu verifici daca jucatorul are pe ecran TD-ul "DailyInfo", ci i-l pui pe ecran.

Poftim ajutor: https://wiki.sa-mp.com/wiki/TextDrawShowForPlayer

Citat

SelectTextDraw(playerid, DailyInfo[11]);

O alta problema majora. Functia "SelectTextDraw" activeaza cursorul jucatorului pentru a putea selecta un TextDraw. Primul parametru este, asa cum ai scris si tu, id-ul jucatorului. Insa cel de-al doilea parametru nu este un TextDraw, ci o culoare.

Poftim ajutor: https://wiki.sa-mp.com/wiki/SelectTextdraw

 

Sper ca ti-am fost de folos. Am incercat sa fiu cat mai explicit.

Succes.

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.