Jump to content

Problema con GUI y reparar vehiculos


Recommended Posts

Hola, recopilando codigo que encontre del foro, estube haciendo un car shop, todo bien, hasta que me encuentro con las GUIS(Si esto es un problema para mi),

Bueno al grano, cuando yo reparo con el vehiculo spawneado todo bien, pero si, spawneo un vehiculo y selecciono otro vehiculo, no me lo repara, osea bien, pero me tira un debug

addEvent("FixMyVehicle", true) 
addEventHandler("FixMyVehicle", root, 
function(id) 
    if  isPedInVehicle (source) then  
        if getPlayerMoney(source) >= tonumber(5000) then 
            local vehicle = getVehicleByID(id) 
            local vHealth = getElementHealth(vehicle) 
            if( vHealth == 1000) then  exports.sidechat:outputSideChat ( "El vehiculo tiene 100% de HP", source, 255, 255, 0) return end 
            if isElement(vehicle) then 
                takePlayerMoney ( source, 5000 ) 
               fixVehicle(vehicle) 
               if isVehicleDamageProof(vehicle) then 
                setVehicleDamageProof(vehicle, false) 
                setVehicleEngineState(vehicle, true) 
               exports.sidechat:outputSideChat ( "Tu vehiculo "..getVehicleNameFromModel(getElementModel(vehicle)).." ha sido reparado con éxito.", source, 255, 255, 0) 
                dbExec(db, "UPDATE VehicleList SET HP = ? WHERE Account = ? AND ID = ?", 1000, getAccountName(getPlayerAccount(source)), id) 
                updateVehicleInfo(source) 
                end 
            else 
                exports.sidechat:outputSideChat ( "El vehiculo no está creado", source, 255, 255, 0) 
            end 
        else 
            exports.sidechat:outputSideChat ( "No tienes el suficiente dinero para traer este vehiculo.", source, 255, 255, 0) 
        end 
     else 
            exports.sidechat:outputSideChat ( "Debes estar en el interior del vehiculo para repararlo o el auto tiene 100% HP", source, 255, 255, 0) 
    end 
  
end) 

  
 WARNING: CarShop\server.lua:306: Bad argument @ 'getElementHealth' [Expected element at argument 1, got boolean] 
La linea es 
if( vHealth == 1000) then  exports.sidechat:outputSideChat ( "El vehiculo tiene 100% de HP", source, 255, 255, 0) return end 
  

y como dije solo pasa cuando creo un vehiculo, y a otro lo selecciono para repararlo, no encuentro la forma :S, gracias

Link to comment
  • MTA Team

Línea 6 es:

local vehicle = getVehicleByID(id) 

y debería ser:

local vehicle = getElementByID(id) 

(Suponiendo que no tenes una funcion custom que maneje los ID's de los vehiculos en cuyo caso deberías comprobar el ID que estas recibiendo en los argumentos del evento.)

Tambien cambia la línea que te da el error por esta:

if vHealth and ( vHealth == 1000) then  exports.sidechat:outputSideChat ( "El vehiculo tiene 100% de HP", source, 255, 255, 0) return end 

Link to comment
Línea 6 es:
local vehicle = getVehicleByID(id) 

y debería ser:

local vehicle = getElementByID(id) 

(Suponiendo que no tenes una funcion custom que maneje los ID's de los vehiculos en cuyo caso deberías comprobar el ID que estas recibiendo en los argumentos del evento.)

Tambien cambia la línea que te da el error por esta:

if vHealth and ( vHealth == 1000) then  exports.sidechat:outputSideChat ( "El vehiculo tiene 100% de HP", source, 255, 255, 0) return end 

si la funcion para manejar ids es esta

  
function getVehicleByID(id) 
    v = false 
    for i, veh in ipairs (getElementsByType("vehicle")) do 
        if getElementData(veh, "ID") == id then 
            v = veh 
            break 
        end 
    end 
    return v 
end 
  

Me sigue tirando boolean :/

Link to comment

Al parecer te muestra booleano porque no hay ningún dato almacenado.

function getVehicleByID(id) 
    local v = false 
    for i, veh in ipairs (getElementsByType("vehicle")) do 
        if ( getVehicleID( veh ) == tonumber( id ) ) then 
            v = veh 
            break 
        end 
    end 
    return v 
end 

Link to comment
Al parecer te muestra booleano porque no hay ningún dato almacenado.
function getVehicleByID(id) 
    local v = false 
    for i, veh in ipairs (getElementsByType("vehicle")) do 
        if ( getVehicleID( veh ) == tonumber( id ) ) then 
            v = veh 
            break 
        end 
    end 
    return v 
end 

La función getVehicleID ya no existe, el quiere obtener el vehículo según su ID, no su modelo.

Link to comment
Al parecer te muestra booleano porque no hay ningún dato almacenado.
function getVehicleByID(id) 
    local v = false 
    for i, veh in ipairs (getElementsByType("vehicle")) do 
        if ( getVehicleID( veh ) == tonumber( id ) ) then 
            v = veh 
            break 
        end 
    end 
    return v 
end 

La función getVehicleID ya no existe, el quiere obtener el vehículo según su ID, no su modelo.

Exacto, pero al parecer cuando hay otro ID creado me tira el booleano, pero no se como repararlo :/

Edit:

Ya lo repare al parecer era problema de la variable local, saque las variables y puse la funcion directamente y andubo joya, Gracias, por la ayuda igual :wink:

Link to comment
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...