Jump to content

Duda de la Linea de un script


DarkAruna97

Recommended Posts

  • MTA Team

Por lo pronto te esta diciendo que "needengine" esta devolviendo un booleano, por lo que deduzco que es false.Recuerda que bool solo tiene dos datos lógicos posibles, true y false. Podría estar también devolviendo true, para eso agrega tostring(needengine) al dxDrawText.

PD: De igual modo comprobaría que todo este devolviendo lo que debe devolver.

Link to comment
Por lo pronto te esta diciendo que "needengine" esta devolviendo un booleano, por lo que deduzco que es false.Recuerda que bool solo tiene dos datos lógicos posibles, true y false. Podría estar también devolviendo true, para eso agrega tostring(needengine) al dxDrawText.

PD: De igual modo comprobaría que todo este devolviendo lo que debe devolver.

De todos modos no creo que el sirva que salga true o false , por eso decía del or

Link to comment
  • MTA Team

En verdad si, ya que poner un or anularia completamente el elementData devolviendo lo que le quieras poner, para eso directamente define una variable como tal y no compruebes nada, la idea es buscar la causa del por que esta devolviendo un bool. :P

Link to comment
probablemente "needengine" esté devolviendo "false"

Debe ser ese el problema, agrega un "or" a la variable needengine para solucionarlo.

En donde le coloco el "or"

    local veh = getPedOccupiedVehicle(getLocalPlayer()) 
    if veh then 
      local maxfuel = getElementData(veh, "maxfuel") 
      local fuel = getElementData(getElementData(veh, "parent"), "fuel") 
      local needengine = getElementData(veh, "needengines") 
      local needtires = getElementData(veh, "needtires") 
      local needparts = getElementData(veh, "needparts") 
      local engine = getElementData(getElementData(veh, "parent"), "Engine_inVehicle") or 0 
      local tires = getElementData(getElementData(veh, "parent"), "Tire_inVehicle") or 0 
      local parts = getElementData(getElementData(veh, "parent"), "Parts_inVehicle") or 0 
      local offset = dxGetFontHeight(1.02, "default-bold") 
      local w = dxGetTextWidth(engine .. "/" .. needengine .. " Engine", 1.02, "default-bold") 
      if engine == needengine then 
        r, g, b = 0, 255, 0 
      else 
        r, g, b = 255, 0, 0 
      end 
      dxDrawText(engine .. "/" .. needengine .. " Engine", screenWidth * 0.5 - w / 2, screenHeight * 0, screenWidth * 0.5 - w / 2, screenHeight * 0, tocolor(r, g, b, 220), 1.02, "default-bold") 
      local w = dxGetTextWidth(tires .. "/" .. needtires .. " Tires", 1.02, "default-bold") 
      if tires == needtires then 
        r, g, b = 0, 255, 0 
      else 
        r, g, b = 255, 0, 0 
      end 
      dxDrawText(tires .. "/" .. needtires .. " Tires", screenWidth * 0.5 - w / 2, screenHeight * 0 + offset, screenWidth * 0.5 - w / 2, screenHeight * 0 + offset, tocolor(r, g, b, 220), 1.02, "default-bold") 
      local w = dxGetTextWidth(parts .. "/" .. needparts .. " Tank Parts", 1.02, "default-bold") 
      if parts == needparts then 
        r, g, b = 0, 255, 0 
      else 
        r, g, b = 255, 0, 0 
      end 

Link to comment
En verdad si, ya que poner un or anularia completamente el elementData devolviendo lo que le quieras poner, para eso directamente define una variable como tal y no compruebes nada, la idea es buscar la causa del por que esta devolviendo un bool. :P

Pero el no dijo que el problema ocurra siempre, quizás sólo ocurría en casos puntuales.

Link to comment
  • MTA Team

Para eso, verificar el origen del problema antes de invalidar todo el elementData.

Para que entiendas:

Esto:

  
local err = getElementData(source,"money")or 0 
  

Es lo mismo que poner(solo si el elementData devuelve bool):

  
local err = 0 
  

Si el elementData es un booleano pasa otro argumento. Por lo tanto seria definir un valor por default lo que tu dices, el problema es que de que te sirve tener un valor al default si para algo estas obteniendo un elementData.

Link to comment
  • Recently Browsing   0 members

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