Jump to content

Ayuda con un error


Rayzer

Recommended Posts

Hola, soy relativamente "nuevo" en esto del scripting! Tengo en esta linea del Script me da error!

El error es este attempt to compare number with boolean

Y la linea en la que me salta este codigo es

if getElementData(source, "blood") > 0 and not getElementData(source, "animal") then 

Espero me puedan ayudar (: Muchas gracias!

Link to comment

El error quiere decir que no es posible comparar un booleano (seguramente false) con un número, puedes agregar esto para fixearlo:

  
if getElementData(source, "blood") or 0 > 0 and not getElementData(source, "animal") then 
  

Link to comment
El error quiere decir que no es posible comparar un booleano (seguramente false) con un número, puedes agregar esto para fixearlo:
  
if getElementData(source, "blood") or 0 > 0 and not getElementData(source, "animal") then 
  

OOh ya (: se soluciono el error! Muchas gracias!

Tengo un warning Bad argument @ 'destroyElement' [Expected element at argument 1, got nil]

Estube buscando en google y wiki de mta, encontre un post donde tu le ayudas a un chico que tiene este mismo problema, y en la wiki encontre que destroyElement se usa así: destroyElement(Lo que quieres destruir), revise y esta colocado correctamente, solo queria saber si tiene alguna solucion al warning, aunque como ya lo dijiste en el post donde le ayudas a un chico diciendole que es raro, ya que esta puesto correctamente! pero bueno quizas ya le encontraste solucion Cx o algo jaja bueno gracias (:

function weaponSwitchBack(previousWeaponID, currentWeaponID) 
  local weapon1 = getElementData(source, "currentweapon_1") 
  if not weapon1 then 
    return 
  end 
  local ammoData1, weapID1 = getWeaponAmmoType(weapon1) 
  local x, y, z = getElementPosition(source) 
  local rx, ry, rz = getElementRotation(source) 
  if previousWeaponID == weapID1 then 
    if elementWeaponBack[source] then 
      setElementID(player, "elementWeaponBack[source]") 
      detachElementFromBone(elementWeaponBack[source]) 
      destroyElement(elementWeaponBack[source]) 
      elementWeaponBack[source] = false 
    end 
    elementWeaponBack[source] = createObject(getWeaponObjectID(weapID1), x, y, z) 
    setObjectScale(elementWeaponBack[source], 0.875) 
    if elementBackpack[source] then 
      attachElementToBone(elementWeaponBack[source], source, 3, 0.19, -0.31, -0.1, 0, 270, -90) 
    else 
      attachElementToBone(elementWeaponBack[source], source, 3, 0.19, -0.11, -0.1, 0, 270, 10) 
    end 
  elseif currentWeaponID == weapID1 then 
    setElementID(source, tostring(elementWeaponBack[source])) 
    detachElementFromBone(elementWeaponBack[source]) 
    destroyElement(elementWeaponBack[source]) 
    elementWeaponBack[source] = false 
  end 
end 

Link to comment
El error quiere decir que no es posible comparar un booleano (seguramente false) con un número, puedes agregar esto para fixearlo:
  
if getElementData(source, "blood") or 0 > 0 and not getElementData(source, "animal") then 
  

OOh ya (: se soluciono el error! Muchas gracias!

Tengo un warning Bad argument @ 'destroyElement' [Expected element at argument 1, got nil]

Estube buscando en google y wiki de mta, encontre un post donde tu le ayudas a un chico que tiene este mismo problema, y en la wiki encontre que destroyElement se usa así: destroyElement(Lo que quieres destruir), revise y esta colocado correctamente, solo queria saber si tiene alguna solucion al warning, aunque como ya lo dijiste en el post donde le ayudas a un chico diciendole que es raro, ya que esta puesto correctamente! pero bueno quizas ya le encontraste solucion Cx o algo jaja bueno gracias (:

function weaponSwitchBack(previousWeaponID, currentWeaponID) 
  local weapon1 = getElementData(source, "currentweapon_1") 
  if not weapon1 then 
    return 
  end 
  local ammoData1, weapID1 = getWeaponAmmoType(weapon1) 
  local x, y, z = getElementPosition(source) 
  local rx, ry, rz = getElementRotation(source) 
  if previousWeaponID == weapID1 then 
    if elementWeaponBack[source] then 
      setElementID(player, "elementWeaponBack[source]") 
      detachElementFromBone(elementWeaponBack[source]) 
      destroyElement(elementWeaponBack[source]) 
      elementWeaponBack[source] = false 
    end 
    elementWeaponBack[source] = createObject(getWeaponObjectID(weapID1), x, y, z) 
    setObjectScale(elementWeaponBack[source], 0.875) 
    if elementBackpack[source] then 
      attachElementToBone(elementWeaponBack[source], source, 3, 0.19, -0.31, -0.1, 0, 270, -90) 
    else 
      attachElementToBone(elementWeaponBack[source], source, 3, 0.19, -0.11, -0.1, 0, 270, 10) 
    end 
  elseif currentWeaponID == weapID1 then 
    setElementID(source, tostring(elementWeaponBack[source])) 
    detachElementFromBone(elementWeaponBack[source]) 
    destroyElement(elementWeaponBack[source]) 
    elementWeaponBack[source] = false 
  end 
end 

¿Podrías especificar cuál es la línea del error? Una simple forma de arreglarlo es comprobar si el objeto existe antes de intentar destruirlo.

Link to comment
  
function weaponSwitchBack(previousWeaponID, currentWeaponID) 
  local weapon1 = getElementData(source, "currentweapon_1") 
  if not weapon1 then 
    return 
  end 
  local ammoData1, weapID1 = getWeaponAmmoType(weapon1) 
  local x, y, z = getElementPosition(source) 
  local rx, ry, rz = getElementRotation(source) 
  if previousWeaponID == weapID1 then 
    if elementWeaponBack[source] then 
      setElementID(player, "elementWeaponBack[source]") 
      detachElementFromBone(elementWeaponBack[source]) 
      destroyElement(elementWeaponBack[source]) 
      elementWeaponBack[source] = false 
    end 
    elementWeaponBack[source] = createObject(getWeaponObjectID(weapID1), x, y, z) 
    setObjectScale(elementWeaponBack[source], 0.875) 
    if elementBackpack[source] then 
      attachElementToBone(elementWeaponBack[source], source, 3, 0.19, -0.31, -0.1, 0, 270, -90) 
    else 
      attachElementToBone(elementWeaponBack[source], source, 3, 0.19, -0.11, -0.1, 0, 270, 10) 
    end 
  elseif currentWeaponID == weapID1 then 
    setElementID(source, tostring(elementWeaponBack[source])) 
    detachElementFromBone(elementWeaponBack[source]) 
        if isElement(elementWeaponBack[source]) then 
            destroyElement(elementWeaponBack[source]) 
        end 
    elementWeaponBack[source] = false 
  end 
end 
  

Link to comment
  • Recently Browsing   0 members

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