Skocz do zawartości
Zerfet

Nie działa klikanie TextDrawu

Rekomendowane odpowiedzi

Witam. Zrobiłem klikalny textdraw. I po wpisaniu komendy na pokazanie tego texdrawu i po najechaniu na ten textdraw powinien on się podświetlić na szaro a tak niestety się nie dzieje. Również po kliknięciu w ten textdraw nic się nie dzieje. Oto kod:

CMD:test(playerid, params[])
{
TextDrawShowForPlayer(playerid, logowanie);
SelectTextDraw(playerid, Szary);
return 1;
}


Co powinno się dzieć po kliknięciu:



public OnPlayerClickTextDraw(playerid, Text:clickedid)
{

    for(new i; i < MAX_PLAYERS; i++)
    {

        if(clickedid == logowanie)
        {
            new Query[80],string[164];
            format(Query,sizeof(Query),"SELECT `nick` FROM `users` WHERE `nick` = '%s' LIMIT 1;",PlayerName(playerid));
            mysql_query(Query);
            mysql_store_result();
            if(mysql_num_rows() != 0)
            {
                format(string, sizeof(string), ""NIEBIESKIHEX"Witaj "BIALYHEX"%s "NIEBIESKIHEX"na serwerze. \nTwoje konto jest zarejestrowane. \nWpisz ponizej swoje haslo.", PlayerName(playerid));
                ShowPlayerDialog(playerid, Logowanie, DIALOG_STYLE_PASSWORD, "Logowanie", string, "Loguj", "Anuluj");
            }
            else
            {
                SendClientMessage(playerid, Czerwony, "Musisz sie najpierw zarejestrowac!");
            }
            mysql_free_result();
        }


}

return 1;

}

Proszę o szybką pomoc.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dlaczego robisz foreach? Spróbuj PlayerText'ów, jeśli to ma być logowanie, wyjdzie lepiej. Obecnie jeśli będzie np. 2 graczy to będą widzieć to samo.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Po co używasz w tym kodzie pętli? Ona jest nie potrzebna

public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
        if(clickedid == logowanie)
        {
            new Query[80],string[164];
            format(Query,sizeof(Query),"SELECT `nick` FROM `users` WHERE `nick` = '%s' LIMIT 1;",PlayerName(playerid));
            mysql_query(Query);
            mysql_store_result();
            if(mysql_num_rows() != 0)
            {
                format(string, sizeof(string), ""NIEBIESKIHEX"Witaj "BIALYHEX"%s "NIEBIESKIHEX"na serwerze. \nTwoje konto jest zarejestrowane. \nWpisz ponizej swoje haslo.", PlayerName(playerid));
                ShowPlayerDialog(playerid, Logowanie, DIALOG_STYLE_PASSWORD, "Logowanie", string, "Loguj", "Anuluj");
            }
            else
            {
                SendClientMessage(playerid, Czerwony, "Musisz sie najpierw zarejestrowac!");
            }
            mysql_free_result();
        }
	
	return 1;
}

pokaż jeszcze jak tworzysz ten td

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
7 godzin temu, Skipper napisał:

pokaż jeszcze jak tworzysz ten td

    logowanie = TextDrawCreate(267.000000, 149.333282, "Logowanie");
            TextDrawLetterSize(logowanie, 0.514500, 1.954666);
            TextDrawTextSize(logowanie, 7.000000, -0.622222);
            TextDrawAlignment(logowanie, 1);
            TextDrawColor(logowanie, -65281);
            TextDrawSetShadow(logowanie, 0);
            TextDrawSetOutline(logowanie, 2);
            TextDrawBackgroundColor(logowanie, 51);
            TextDrawFont(logowanie, 1);
            TextDrawSetProportional(logowanie, 1);
            TextDrawSetSelectable(logowanie, true);



			
		

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
  TextDrawTextSize(logowanie, 7.000000, -0.622222);

 

tak nie może być

spróbuj tak

 

  TextDrawTextSize(logowanie, 7.000000, 0.622222);

 

Aby TD mógł być klikalny, jego parametry Size muszą być > 0

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×