PL/onClientClick

From Multi Theft Auto: Wiki
Revision as of 09:49, 22 July 2016 by ThePiotrek (talk | contribs)
Jump to navigation Jump to search

To zdarzenie wywołuje się za każdym razem gdy gracz kliknie myszką. To zdarzenie jest połączone ze światem GTA, w przeciwieństwie do zdarzenia onClientGUIClick które jest używane do GUI. To zdarzenie pozwala na detekcję pozycji kliknięć w świecie 3D.

Parametry

string button, string state, int absoluteX, int absoluteY, float worldX, float worldY, float worldZ, element clickedWorld
  • button: Nazwa przycisku myszy którym kliknięto, może to być left, right, lub middle
  • state: Stan myszy. up jeśli przycisk jest zwolniony, lub down jeśli przycisk jest kliknięty.
  • absoluteX: Ten argument odnosi się do współrzędnej X w 2D miejsca w którym kliknął użytkownik na ekranie i jest to pozycja absolutna w pikselach.
  • absoluteY: Ten argument odnosi się do współrzędnej Y w 2D miejsca w którym kliknął użytkownik na ekranie i jest to pozycja absolutna w pikselach.
  • worldX: Ten argument odnosi się do współrzędnej X w 3D miejsca w którym kliknął użytkownik na ekranie i jest relatywny do świata GTA.
  • worldY: Ten argument odnosi się do współrzędnej Y w 3D miejsca w którym kliknął użytkownik na ekranie i jest relatywny do świata GTA.
  • worldZ: Ten argument odnosi się do współrzędnej Z w 3D miejsca w któym kliknął użytkownik na ekranie i jest relatywny do świata GTA.
  • clickedWorld: Ten argument reprezentuje jakikolwiek fizyczny byt który został kliknięty. Jeśli gracz kliknął na elemencie który nie należy do MTA, ten argument wynosi false.

Źródło

Źródłem tego zdarzenia jest element główny klienta.

Przykład

Ten przykład tworzy etykietę, która po kliknięciu na element należący do MTA wyświetla jego rodzaj. Znika po pięciu sekundach.

local myLabel = guiCreateLabel  ( 0, 0, 1, 1, "", true )

function addLabelOnClick ( button, state, absoluteX, absoluteY, worldX, worldY, worldZ, clickedElement )
        --jeśli element został kliknięty na ekranie
        if ( clickedElement ) then
                --pobierzmy jego typ
                local elementType = getElementType ( clickedElement )
                --zmieńmy tekst etykiety na ten typ
                guiSetText ( myLabel, elementType )
                --i dajmy ją w miejsce na ekranie gdzie jest element
                guiSetPosition ( myLabel, absoluteX, absoluteY, false )
                --schowajmy tekst po pięciu sekundach
                setTimer ( guiSetText, 5000, 1, myLabel, "" )
        end
end
addEventHandler ( "onClientClick", getRootElement(), addLabelOnClick )

Zobacz także

Zdarzenia GUI

Input

GUI


Funkcje zdarzeń po stronie klienta