Ea7gign

Problème d'affichage

Recommended Posts

Salut,

J'ai créer un système ou quand on appui sur "m" une  fenêtre Dx s'ouvre avec les infos du véhicule.

Le problème est que si j'appui sur "m", même si je suis dans un véhicule sa écris : "Tu doit être dans un véhicule".

Voici le code :

https://pastebin.com/CL2hRy0t

Share this post


Link to post
function show_dx()
    if(isPedInVehicle(thePlayer)) then
        local theVehicle = getPedOccupiedVehicle(thePlayer)
        if(handlerExist) then
            removeEventHandler("onClientRender", getRootElement(), dxDraw)
            handlerExist = false
        else
            addEventHandler("onClientRender", getRootElement(), dxDraw)
            handlerExist = true
        end
    else
        outputChatBox("Tu doit être dans un véhicule !", thePlayer)
    end
end
bindKey("m", "down", show_dx)

Ici la variable thePlayer n'est pas définie ! Donc tu iras toujours dans le else car isPedInVehicle(nil) retournera toujours false.

Comme c'est un script client, et qu'un script client s'exécute pour un joueur à la fois (chaque joueur en récupère une copie à la connexion et l'exécutent pour eux-même) il est possible de récupérer directement le joueur actuel via getLocalPlayer() ou le raccourci très pratique: localPlayer.

-- Version 1: via getLocalPlayer()
function show_dx()
  	local thePlayer = getLocalPlayer() -- on défini thePlayer
    if(isPedInVehicle(thePlayer)) then
        local theVehicle = getPedOccupiedVehicle(thePlayer)
        if(handlerExist) then
            removeEventHandler("onClientRender", getRootElement(), dxDraw)
            handlerExist = false
        else
            addEventHandler("onClientRender", getRootElement(), dxDraw)
            handlerExist = true
        end
    else
        outputChatBox("Tu doit être dans un véhicule !", thePlayer)
    end
end
bindKey("m", "down", show_dx)

-- Version2: directement via localPlayer
function show_dx()
    if(isPedInVehicle(localPlayer)) then
        local theVehicle = getPedOccupiedVehicle(thePlayer)
        if(handlerExist) then
            removeEventHandler("onClientRender", getRootElement(), dxDraw)
            handlerExist = false
        else
            addEventHandler("onClientRender", getRootElement(), dxDraw)
            handlerExist = true
        end
    else
        outputChatBox("Tu doit être dans un véhicule !", localPlayer)
    end
end
bindKey("m", "down", show_dx)

 

Edited by Citizen

Share this post


Link to post

Pour connaître la liste des raccourcis mis à disposition:

 

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.