GHOSTKILLER1546 Posted May 28, 2016 Share Posted May 28, 2016 (edited) Nose porque marca esto en el server, pero en el juego funciona bien, porfavor me podrian decir porque marca este error. WARNING: BACKPACK.lua: 28 : Bad argument @ 'createObject' [excepted number at argument 1, got boolean] WARNING: BACKPACK.lua: 29 : Bad argument @ 'setObjectScale' [excepted number at argument 1, got boolean] WARNING: BACKPACK.lua: 38 : Bad argument @ 'DestroyElement' [excepted number at argument 1, got boolean] elementWeaponbBack = {} function weaponSwitchbBack ( previousWeaponID, currentWeaponID ) local weapon2 = getElementData(source,"currentweapon_2") if not weapon2 then return end local ammoData1,weapID1 = getWeaponAmmoFromName(weapon2) local x,y,z = getElementPosition(source) local rx,ry,rz = getElementRotation(source) if previousWeaponID == weapID1 then if elementWeaponbBack[source] then detachElementFromBone(elementWeaponbBack[source]) destroyElement(elementWeaponbBack[source]) elementWeaponbBack[source] = false end if weapon2 == "Baseball Bat" then elementWeaponbBack[source] = createObject(336,x,y,z) setObjectScale(elementWeaponbBack[source],0.875) elseif weapon2 == "Shovel" then elementWeaponbBack[source] = createObject(337,x,y,z) setObjectScale(elementWeaponbBack[source],0.875) elseif weapon2 == "Crowbar" then elementWeaponbBack[source] = createObject(333,x,y,z) setObjectScale(elementWeaponbBack[source],0.875) elseif weapon2 == "Hunting Knife" then elementWeaponbBack[source] = createObject(335,x,y,z) setObjectScale(elementWeaponbBack[source],0.875) elseif weapon2 == "--" then else elementWeaponbBack[source] = createObject(getWeaponObjectID(weapID1),x,y,z) setObjectScale(elementWeaponbBack[source],0.875) end if elementBackpack[source] then attachElementToBone(elementWeaponbBack[source],source,3,-0.18,-0.05,-0.1,-0.1,0,260) else attachElementToBone(elementWeaponbBack[source],source,3,-0.18,-0.05,-0.1,-0.1,0,260) end elseif currentWeaponID == weapID1 then detachElementFromBone(elementWeaponbBack[source]) destroyElement(elementWeaponbBack[source]) elementWeaponbBack[source] = false end end addEventHandler ( "onPlayerWeaponSwitch", getRootElement(), weaponSwitchbBack ) Edited May 30, 2016 by Guest Link to comment
Enargy, Posted May 28, 2016 Share Posted May 28, 2016 Postea la función getWeaponObjectID. Link to comment
Bc# Posted May 28, 2016 Share Posted May 28, 2016 En la linea 28 se crea una reaccion en cadena para que las otras no funcionen bien, el problema esta en la variable getWeaponObjectID(weapID1), tienes que ver que pasa con esa funcion por que por lo que veo no existe en la wiki. O bien ver que ocurre con la variable weapID1 Link to comment
Tomas Posted May 28, 2016 Share Posted May 28, 2016 En la linea 28 se crea una reaccion en cadena para que las otras no funcionen bien, el problema esta en la variable getWeaponObjectID(weapID1), tienes que ver que pasa con esa funcion por que por lo que veo no existe en la wiki. O bien ver que ocurre con la variable weapID1 Es una función del mismo script. Link to comment
Bc# Posted May 29, 2016 Share Posted May 29, 2016 En la linea 28 se crea una reaccion en cadena para que las otras no funcionen bien, el problema esta en la variable getWeaponObjectID(weapID1), tienes que ver que pasa con esa funcion por que por lo que veo no existe en la wiki. O bien ver que ocurre con la variable weapID1 Es una función del mismo script. Por lo mismo, el error tiene que estar ahi, y si no lo muestra tampoco somos adivinos Link to comment
GHOSTKILLER1546 Posted May 29, 2016 Author Share Posted May 29, 2016 Postea la función getWeaponObjectID. La funcion es esta function getWeaponObjectID (weaponID) for i,weaponData in ipairs(weaponIDtoObjectID) do if weaponID == weaponData[1] then return weaponData[2] end end end Link to comment
Bc# Posted May 29, 2016 Share Posted May 29, 2016 Postea la función getWeaponObjectID. La funcion es esta function getWeaponObjectID (weaponID) for i,weaponData in ipairs(weaponIDtoObjectID) do if weaponID == weaponData[1] then return weaponData[2] end end end La funcion parece bien pero no sabemos que es weaponIDtoObjectID Link to comment
aka Blue Posted May 29, 2016 Share Posted May 29, 2016 Es una tabla con las id's de las armas y la id que tienen como objeto en el map editor. Link to comment
Bc# Posted May 29, 2016 Share Posted May 29, 2016 Pensandolo 2 veces, creo que el problema esta en que no tiene un retorno para cuando no entra al if, deberia quedar asi para el debug. function getWeaponObjectID (weaponID) for i,weaponData in ipairs(weaponIDtoObjectID) do if weaponID == weaponData[1] then return weaponData[2] end end outputDebugString("No se encontro "..weaponID) return false end Link to comment
Tomas Posted May 29, 2016 Share Posted May 29, 2016 Pensandolo 2 veces, creo que el problema esta en que no tiene un retorno para cuando no entra al if, deberia quedar asi para el debug. function getWeaponObjectID (weaponID) for i,weaponData in ipairs(weaponIDtoObjectID) do if weaponID == weaponData[1] then return weaponData[2] end end outputDebugString("No se encontro "..weaponID) return false end Es lo mismo, no se puede crear un objeto con ID booleana. else if (getWeaponObjectID(weapID)) then elementWeaponbBack[source] = createObject(getWeaponObjectID(weapID1),x,y,z) setObjectScale(elementWeaponbBack[source],0.875) end end Link to comment
Bc# Posted May 29, 2016 Share Posted May 29, 2016 Claro, pero dije que era para hacer el debug, al menos yo uso eso para encontrar errores en códigos muy extensos. Link to comment
GHOSTKILLER1546 Posted May 29, 2016 Author Share Posted May 29, 2016 Pensandolo 2 veces, creo que el problema esta en que no tiene un retorno para cuando no entra al if, deberia quedar asi para el debug. function getWeaponObjectID (weaponID) for i,weaponData in ipairs(weaponIDtoObjectID) do if weaponID == weaponData[1] then return weaponData[2] end end outputDebugString("No se encontro "..weaponID) return false end Es lo mismo, no se puede crear un objeto con ID booleana. else if (getWeaponObjectID(weapID)) then elementWeaponbBack[source] = createObject(getWeaponObjectID(weapID1),x,y,z) setObjectScale(elementWeaponbBack[source],0.875) end end Por ahora agrege lo que pusiste: elementWeaponbBack = {} function weaponSwitchbBack ( previousWeaponID, currentWeaponID ) local weapon2 = getElementData(source,"currentweapon_2") if not weapon2 then return end local ammoData1,weapID1 = getWeaponAmmoFromName(weapon2) local x,y,z = getElementPosition(source) local rx,ry,rz = getElementRotation(source) if previousWeaponID == weapID1 then if elementWeaponbBack[source] then detachElementFromBone(elementWeaponbBack[source]) destroyElement(elementWeaponbBack[source]) elementWeaponbBack[source] = false end if weapon2 == "Baseball Bat" then elementWeaponbBack[source] = createObject(336,x,y,z) setObjectScale(elementWeaponbBack[source],0.875) elseif weapon2 == "Shovel" then elementWeaponbBack[source] = createObject(337,x,y,z) setObjectScale(elementWeaponbBack[source],0.875) elseif weapon2 == "Crowbar" then elementWeaponbBack[source] = createObject(333,x,y,z) setObjectScale(elementWeaponbBack[source],0.875) elseif weapon2 == "Hunting Knife" then elementWeaponbBack[source] = createObject(335,x,y,z) setObjectScale(elementWeaponbBack[source],0.875) elseif weapon2 == "--" then else if (getWeaponObjectID(weapID)) then elementWeaponbBack[source] = createObject(getWeaponObjectID(weapID1),x,y,z) setObjectScale(elementWeaponbBack[source],0.875) end end if elementBackpack[source] then attachElementToBone(elementWeaponbBack[source],source,3,-0.18,-0.05,-0.1,-0.1,0,260) else attachElementToBone(elementWeaponbBack[source],source,3,-0.18,-0.05,-0.1,-0.1,0,260) end elseif currentWeaponID == weapID1 then detachElementFromBone(elementWeaponbBack[source]) destroyElement(elementWeaponbBack[source]) elementWeaponbBack[source] = false end end addEventHandler ( "onPlayerWeaponSwitch", getRootElement(), weaponSwitchbBack ) Arreglo los dos primeros, pero sigue dando el error en la linea 40 destroyElement, no entiendo porque Link to comment
Bc# Posted May 29, 2016 Share Posted May 29, 2016 Linea 38, reemplaza elseif currentWeaponID == weapID1 and elementWeaponbBack[source] then Asi no entrara a la linea si es que no hay una arma Link to comment
GHOSTKILLER1546 Posted May 30, 2016 Author Share Posted May 30, 2016 Linea 38, reemplaza elseif currentWeaponID == weapID1 and elementWeaponbBack[source] then Asi no entrara a la linea si es que no hay una arma Gracias, ya fuciona bien Link to comment
Recommended Posts