stefutz101 Posted December 4, 2015 Posted December 4, 2015 function weaponDelete(dataName,oldValue) if getElementType(source) == "player" then -- check if the element is a player local weapon1 = getElementData(source,"currentweapon_1") local weapon2 = getElementData(source,"currentweapon_2") local weapon3 = getElementData(source,"currentweapon_3") if dataName == weapon1 or dataName == weapon2 or dataName == weapon3 then if getElementData (source,dataName) == 0 then local ammoData,weapID = getWeaponAmmoType(dataName) takeWeapon (source,weapID) end end local weapon1 = getElementData(source,"currentweapon_1") local weapon2 = getElementData(source,"currentweapon_2") local weapon3 = getElementData(source,"currentweapon_3") local ammoData1,weapID1 = getWeaponAmmoType(weapon1) local ammoData2,weapID2 = getWeaponAmmoType(weapon2) local ammoData3,weapID3 = getWeaponAmmoType(weapon3) if dataName == ammoData1 then local newammo = oldValue - getElementData (source,dataName) if newammo == 1 then return end if getElementData (source,dataName) < oldValue then takeWeapon (source,weapID1,newammo) if elementWeaponBack[source] then detachElementFromBone(elementWeaponBack[source]) destroyElement(elementWeaponBack[source]) elementWeaponBack[source] = false end elseif getElementData (source,dataName) > oldValue then giveWeapon(source,weapID1,getElementData (source,dataName)-oldValue,true) end end if dataName == ammoData2 then local newammo = oldValue - getElementData (source,dataName) if newammo == 1 then return end if getElementData (source,dataName) < oldValue then takeWeapon (source,weapID2,newammo) elseif getElementData (source,dataName) > oldValue then giveWeapon(source,weapID2,getElementData (source,dataName)-oldValue,false) end end if dataName == ammoData3 then local newammo = oldValue - getElementData (source,dataName) if newammo == 1 then return end if getElementData (source,dataName) < oldValue then takeWeapon (source,weapID3,newammo) elseif getElementData (source,dataName) > oldValue then giveWeapon(source,weapID3,getElementData (source,dataName)-oldValue,false) end end end end addEventHandler("onElementDataChange",getRootElement(),weaponDelete) Error : attempt to perform arithmetic on local "oldValue" a nil value at line : local newammo = oldValue - getElementData (source,dataName) How can i fix that ? I think i can put an if like this " if oldValue ~= nil then " but i don't know exactlly where i must put it . Can I try like this ? function weaponDelete(dataName,oldValue) if oldValue == nil then return end --rest of the script Thanks in advance !
Moderators IIYAMA Posted December 4, 2015 Moderators Posted December 4, 2015 local result = tonumber(getElementData (source,dataName)) if result then Do you want to improve your Lua programming skills and make less mistakes? Start with Lua Language Server! Useful functions 3x Spoiler checkPassiveTimer getScreenStartPositionFromBox getPedGender Tutorials 4x Spoiler Scaling DX Events Attach an addEventHandler on a group of elements Debugging
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now