Agon Posted August 8, 2012 Share Posted August 8, 2012 I made this and hope you understand what i'm trying to make. local nukeMarker = createMarker(-345.10000610352, 1612.8000488281, 74.599998474121, "cylinder", 2, 255, 0, 0, 170) local boltMarker = createMarker(-2368, 1550.8000488281, 1.1000000238419, "cylinder", 2, 255, 255, 0, 170) local invisibleMarker = createMarker(585.09997558594, 870.20001220703, -43.5, "cylinder", 2, 255, 255, 255, 170) local powerAccount = getPlayerAccount(source) local myNukePower = getAccountData(powerAccount, "player.nuke") local myBoltPower = getAccountData(powerAccount, "player.bolt") local myInvisiblePower = getAccountData(powerAccount, "player.invisible") local speed = getGameSpeed() function bindTheKeys(source, commandName) bindKey ( source, "R", "down", togglePowers ) end addEventHandler( "onPlayerLogin", getRootElements(), bindTheKeys ) function makeMePowerless() setAccountData(powerAccount, "player.nuke", 0) setAccountData(powerAccount, "player.bolt", 0) setAccountData(powerAccount, "player.invisible", 0) end addEventHandler("onPlayerLogin", getRootElement(), makeMePowerless) function nukeMarkerHit(source, matchingDimension) if (myNukePower == 0) then if (myBoltPower == 1) or (myBoltPower == 0) then if (myInvisiblePower == 1) or (myInvisiblePower == 0) then setAccountData(powerAccount, "player.nuke", 1) setAccountData(powerAccount, "player.bolt", 0) setAccountData(powerAccount, "player.invisible", 0) outputChatBox("Nuke Marker", source, 0, 255, 0) end end end end addEventHandler("onMarkerHit", nukeMarker, nukeMarkerHit) function BoltMarkerHit(source, matchingDimension) if (myBoltPower == 0) then if (myNukePower == 1) or (myNukePower == 0) then if (myInvisiblePower == 1) or (myInvisiblePower == 0) then setAccountData(powerAccount, "player.nuke", 0) setAccountData(powerAccount, "player.bolt", 1) setAccountData(powerAccount, "player.invisible", 0) outputChatBox("Bolt Marker", source, 0, 255, 0) end end end end addEventHandler("onMarkerHit", nukeMarker, BoltMarkerHit) function invisibleMarkerHit(source, matchingDimension) if (myInvisiblePower == 0) then if (myBoltPower == 1) or (myBoltPower == 0) then if (myNukePower == 1) or (myNukePower == 0) then setAccountData(powerAccount, "player.nuke", 0) setAccountData(powerAccount, "player.bolt", 0) setAccountData(powerAccount, "player.invisible", 1) outputChatBox("Invisible Marker", source, 0, 255, 0) end end end end addEventHandler("onMarkerHit", nukeMarker, invisibleMarkerHit) function togglePowers(source) if (myBoltPower == 1) and (speed == 1) then setGameSpeed(3) else setGameSpeed(1) end if (myNukePower == 1) then local blowMarker = createMarker(0, 0, 0, "corona", 1, 255, 255, 0, 255) attachElements(blowMarker, source, 0, 0, 0, 0, 0, 0) function setTheAnim(source) setPedAnimation(source, "BOMBER", "BOM_Plant_Loop", 1000, false, false, false, true) x, y, z = getElementPosition(source) createExplosion(x+x, y-y, z, 10) end setTimer(setTheAnim, 2000, 1) end if (myInvisiblePower == 1) and isPlayerNametagShowing(source) then setPlayerNametagShowing(source, false) setElementAlpha(source, 0) else setPlayerNametagShowing(source, true) setElementAlpha(source, 255) end end Everything is fine. Markers are spawned but when i start the script it says: Starting powers WARNING: powers\power.lua:4: Bad argument @ 'getPlayerAccount' [Expected element at argument 1, got nil] WARNING: powers\power.lua:5: Bad argument @ 'getAccountData' [Expected account at argument 1, got boolean] WARNING: powers\power.lua:6: Bad argument @ 'getAccountData' [Expected account at argument 1, got boolean] WARNING: powers\power.lua:7: Bad argument @ 'getAccountData' [Expected account at argument 1, got boolean] ERROR: powers\power.lua:13: attempt to call global 'getRootElements' (a nil value) powers restarted successfully and it doesnt output the messages. Can you help me? Link to comment
albers14 Posted August 8, 2012 Share Posted August 8, 2012 any help ? Who is source when its not putted in a function that is triggered of a player ? Line 13 is getRootElement() not Elements Link to comment
Agon Posted August 8, 2012 Author Share Posted August 8, 2012 oh fixed line 13 and made this but getting errors again function createEverything(source) local nukeMarker = createMarker(-345.10000610352, 1612.8000488281, 74.599998474121, "cylinder", 2, 255, 0, 0, 170) local boltMarker = createMarker(-2368, 1550.8000488281, 1.1000000238419, "cylinder", 2, 255, 255, 0, 170) local invisibleMarker = createMarker(585.09997558594, 870.20001220703, -43.5, "cylinder", 2, 255, 255, 255, 170) local powerAccount = getPlayerAccount(source) local myNukePower = getAccountData(powerAccount, "player.nuke") local myBoltPower = getAccountData(powerAccount, "player.bolt") local myInvisiblePower = getAccountData(powerAccount, "player.invisible") local speed = getGameSpeed() end addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), createEverything) ERRORS: WARNING: powers\power.lua:37: Bad argument @ 'addEventHandler' [Expected element at argument 2, got nil] WARNING: powers\power.lua:51: Bad argument @ 'addEventHandler' [Expected element at argument 2, got nil] WARNING: powers\power.lua:65: Bad argument @ 'addEventHandler' [Expected element at argument 2, got nil] WARNING: powers\power.lua:5: Bad argument @ 'getPlayerAccount' [Expected element at argument 1, got resource-data] WARNING: powers\power.lua:6: Bad argument @ 'getAccountData' [Expected account at argument 1, got boolean] WARNING: powers\power.lua:7: Bad argument @ 'getAccountData' [Expected account at argument 1, got boolean] WARNING: powers\power.lua:8: Bad argument @ 'getAccountData' [Expected account at argument 1, got boolean] powers restarted successfully Link to comment
Castillo Posted August 8, 2012 Share Posted August 8, 2012 local powerAccount = getPlayerAccount(source) local myNukePower = getAccountData(powerAccount, "player.nuke") local myBoltPower = getAccountData(powerAccount, "player.bolt") local myInvisiblePower = getAccountData(powerAccount, "player.invisible") These should go inside "togglePowers" function. Link to comment
Agon Posted August 8, 2012 Author Share Posted August 8, 2012 Here is the current code function createEverything(source) local nukeMarker = createMarker(-345.10000610352, 1612.8000488281, 74.599998474121, "cylinder", 2, 255, 0, 0, 170) local boltMarker = createMarker(-2368, 1550.8000488281, 1.1000000238419, "cylinder", 2, 255, 255, 0, 170) local invisibleMarker = createMarker(585.09997558594, 870.20001220703, -43.5, "cylinder", 2, 255, 255, 255, 170) local speed = getGameSpeed() end addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), createEverything) function bindTheKeys(source, commandName) bindKey ( source, "R", "down", togglePowers ) end addEventHandler( "onPlayerLogin", getRootElement(), bindTheKeys ) function makeMePowerless() setAccountData(powerAccount, "player.nuke", 0) setAccountData(powerAccount, "player.bolt", 0) setAccountData(powerAccount, "player.invisible", 0) end addEventHandler("onPlayerLogin", getRootElement(), makeMePowerless) function nukeMarkerHit(source, matchingDimension) if (myNukePower == 0) then if (myBoltPower == 1) or (myBoltPower == 0) then if (myInvisiblePower == 1) or (myInvisiblePower == 0) then setAccountData(powerAccount, "player.nuke", 1) setAccountData(powerAccount, "player.bolt", 0) setAccountData(powerAccount, "player.invisible", 0) outputChatBox("Nuke Marker", source, 0, 255, 0) end end end end addEventHandler("onMarkerHit", nukeMarker, nukeMarkerHit) function BoltMarkerHit(source, matchingDimension) if (myBoltPower == 0) then if (myNukePower == 1) or (myNukePower == 0) then if (myInvisiblePower == 1) or (myInvisiblePower == 0) then setAccountData(powerAccount, "player.nuke", 0) setAccountData(powerAccount, "player.bolt", 1) setAccountData(powerAccount, "player.invisible", 0) outputChatBox("Bolt Marker", source, 0, 255, 0) end end end end addEventHandler("onMarkerHit", nukeMarker, BoltMarkerHit) function invisibleMarkerHit(source, matchingDimension) if (myInvisiblePower == 0) then if (myBoltPower == 1) or (myBoltPower == 0) then if (myNukePower == 1) or (myNukePower == 0) then setAccountData(powerAccount, "player.nuke", 0) setAccountData(powerAccount, "player.bolt", 0) setAccountData(powerAccount, "player.invisible", 1) outputChatBox("Invisible Marker", source, 0, 255, 0) end end end end addEventHandler("onMarkerHit", nukeMarker, invisibleMarkerHit) function togglePowers(source) local powerAccount = getPlayerAccount(source) local myNukePower = getAccountData(powerAccount, "player.nuke") local myBoltPower = getAccountData(powerAccount, "player.bolt") local myInvisiblePower = getAccountData(powerAccount, "player.invisible") if (myBoltPower == 1) and (speed == 1) then setGameSpeed(3) else setGameSpeed(1) end if (myNukePower == 1) then local blowMarker = createMarker(0, 0, 0, "corona", 1, 255, 255, 0, 255) attachElements(blowMarker, source, 0, 0, 0, 0, 0, 0) function setTheAnim(source) setPedAnimation(source, "BOMBER", "BOM_Plant_Loop", 1000, false, false, false, true) x, y, z = getElementPosition(source) createExplosion(x+x, y-y, z, 10) end setTimer(setTheAnim, 2000, 1) end if (myInvisiblePower == 1) and isPlayerNametagShowing(source) then setPlayerNametagShowing(source, false) setElementAlpha(source, 0) else setPlayerNametagShowing(source, true) setElementAlpha(source, 255) end end and current errors: WARNING: powers\power.lua:33: Bad argument @ 'addEventHandler' [Expected element at argument 2, got nil] WARNING: powers\power.lua:47: Bad argument @ 'addEventHandler' [Expected element at argument 2, got nil] WARNING: powers\power.lua:61: Bad argument @ 'addEventHandler' [Expected element at argument 2, got nil] and i couldn't get my powers doesnt "local" mean i can use it anyline in the script? Link to comment
Castillo Posted August 8, 2012 Share Posted August 8, 2012 No, it's vice versa of what you said: https://wiki.multitheftauto.com/wiki/Local function createEverything() local nukeMarker = createMarker(-345.10000610352, 1612.8000488281, 74.599998474121, "cylinder", 2, 255, 0, 0, 170) local boltMarker = createMarker(-2368, 1550.8000488281, 1.1000000238419, "cylinder", 2, 255, 255, 0, 170) local invisibleMarker = createMarker(585.09997558594, 870.20001220703, -43.5, "cylinder", 2, 255, 255, 255, 170) speed = getGameSpeed() addEventHandler("onMarkerHit", nukeMarker, nukeMarkerHit) addEventHandler("onMarkerHit", nukeMarker, BoltMarkerHit) addEventHandler("onMarkerHit", nukeMarker, invisibleMarkerHit) end addEventHandler("onResourceStart", resourceRoot, createEverything) function bindTheKeys(source, commandName) bindKey ( source, "R", "down", togglePowers ) end addEventHandler( "onPlayerLogin", getRootElement(), bindTheKeys ) function makeMePowerless() setAccountData(powerAccount, "player.nuke", 0) setAccountData(powerAccount, "player.bolt", 0) setAccountData(powerAccount, "player.invisible", 0) end addEventHandler("onPlayerLogin", getRootElement(), makeMePowerless) function nukeMarkerHit(source, matchingDimension) if (myNukePower == 0) then if (myBoltPower == 1) or (myBoltPower == 0) then if (myInvisiblePower == 1) or (myInvisiblePower == 0) then setAccountData(powerAccount, "player.nuke", 1) setAccountData(powerAccount, "player.bolt", 0) setAccountData(powerAccount, "player.invisible", 0) outputChatBox("Nuke Marker", source, 0, 255, 0) end end end end function BoltMarkerHit(source, matchingDimension) if (myBoltPower == 0) then if (myNukePower == 1) or (myNukePower == 0) then if (myInvisiblePower == 1) or (myInvisiblePower == 0) then setAccountData(powerAccount, "player.nuke", 0) setAccountData(powerAccount, "player.bolt", 1) setAccountData(powerAccount, "player.invisible", 0) outputChatBox("Bolt Marker", source, 0, 255, 0) end end end end function invisibleMarkerHit(source, matchingDimension) if (myInvisiblePower == 0) then if (myBoltPower == 1) or (myBoltPower == 0) then if (myNukePower == 1) or (myNukePower == 0) then setAccountData(powerAccount, "player.nuke", 0) setAccountData(powerAccount, "player.bolt", 0) setAccountData(powerAccount, "player.invisible", 1) outputChatBox("Invisible Marker", source, 0, 255, 0) end end end end function togglePowers(source) local powerAccount = getPlayerAccount(source) local myNukePower = getAccountData(powerAccount, "player.nuke") local myBoltPower = getAccountData(powerAccount, "player.bolt") local myInvisiblePower = getAccountData(powerAccount, "player.invisible") if (myBoltPower == 1) and (speed == 1) then setGameSpeed(3) else setGameSpeed(1) end if (myNukePower == 1) then local blowMarker = createMarker(0, 0, 0, "corona", 1, 255, 255, 0, 255) attachElements(blowMarker, source, 0, 0, 0, 0, 0, 0) function setTheAnim(source) setPedAnimation(source, "BOMBER", "BOM_Plant_Loop", 1000, false, false, false, true) x, y, z = getElementPosition(source) createExplosion(x+x, y-y, z, 10) end setTimer(setTheAnim, 2000, 1) end if (myInvisiblePower == 1) and isPlayerNametagShowing(source) then setPlayerNametagShowing(source, false) setElementAlpha(source, 0) else setPlayerNametagShowing(source, true) setElementAlpha(source, 255) end end Link to comment
Agon Posted August 8, 2012 Author Share Posted August 8, 2012 Thank you but I can't get my powers btw no errors are shown Link to comment
Castillo Posted August 8, 2012 Share Posted August 8, 2012 You know that when you use setGameSpeed server side you are doing it globally? not just for you. Link to comment
Agon Posted August 8, 2012 Author Share Posted August 8, 2012 damn. i should have make it client side i tried other markers but there is neither powers nor messages... Link to comment
Castillo Posted August 8, 2012 Share Posted August 8, 2012 That's because you got these checks: if (myNukePower == 0) then if (myBoltPower == 1) or (myBoltPower == 0) then if (myInvisiblePower == 1) or (myInvisiblePower == 0) then But you don't have defined these variables. Link to comment
Agon Posted August 8, 2012 Author Share Posted August 8, 2012 but they are in togglePowers function. do i have to define them? if so, how? Link to comment
Castillo Posted August 8, 2012 Share Posted August 8, 2012 You have to define them on the marker functions as well. Link to comment
Agon Posted August 9, 2012 Author Share Posted August 9, 2012 This is the code (I defined them in marker functions as well and hope did it right ) and I also defined powerAccount in makeMePowerless function function createEverything() local nukeMarker = createMarker(-345.10000610352, 1612.8000488281, 74.599998474121, "cylinder", 2, 255, 0, 0, 170) local boltMarker = createMarker(-2368, 1550.8000488281, 1.1000000238419, "cylinder", 2, 255, 255, 0, 170) local invisibleMarker = createMarker(585.09997558594, 870.20001220703, -43.5, "cylinder", 2, 255, 255, 255, 170) speed = getGameSpeed() addEventHandler("onMarkerHit", nukeMarker, nukeMarkerHit) addEventHandler("onMarkerHit", nukeMarker, BoltMarkerHit) addEventHandler("onMarkerHit", nukeMarker, invisibleMarkerHit) end addEventHandler("onResourceStart", resourceRoot, createEverything) function bindTheKeys(source, commandName) bindKey ( source, "R", "down", togglePowers ) end addEventHandler( "onPlayerLogin", getRootElement(), bindTheKeys ) function makeMePowerless(powerAccount) setAccountData(powerAccount, "player.nuke", 0) setAccountData(powerAccount, "player.bolt", 0) setAccountData(powerAccount, "player.invisible", 0) end addEventHandler("onPlayerLogin", getRootElement(), makeMePowerless) function nukeMarkerHit(source, matchingDimension, myNukePower, myBoltPower, myInvisiblePower, powerAccount) if (myNukePower == 0) then if (myBoltPower == 1) or (myBoltPower == 0) then if (myInvisiblePower == 1) or (myInvisiblePower == 0) then setAccountData(powerAccount, "player.nuke", 1) setAccountData(powerAccount, "player.bolt", 0) setAccountData(powerAccount, "player.invisible", 0) outputChatBox("Nuke Marker", source, 0, 255, 0) end end end end function BoltMarkerHit(source, matchingDimension, myNukePower, myBoltPower, myInvisiblePower, powerAccount) if (myBoltPower == 0) then if (myNukePower == 1) or (myNukePower == 0) then if (myInvisiblePower == 1) or (myInvisiblePower == 0) then setAccountData(powerAccount, "player.nuke", 0) setAccountData(powerAccount, "player.bolt", 1) setAccountData(powerAccount, "player.invisible", 0) outputChatBox("Bolt Marker", source, 0, 255, 0) end end end end function invisibleMarkerHit(source, matchingDimension, myNukePower, myBoltPower, myInvisiblePower, powerAccount) if (myInvisiblePower == 0) then if (myBoltPower == 1) or (myBoltPower == 0) then if (myNukePower == 1) or (myNukePower == 0) then setAccountData(powerAccount, "player.nuke", 0) setAccountData(powerAccount, "player.bolt", 0) setAccountData(powerAccount, "player.invisible", 1) outputChatBox("Invisible Marker", source, 0, 255, 0) end end end end function togglePowers(source, myNukePower, myBoltPower, myInvisiblePower, powerAccount) local powerAccount = getPlayerAccount(source) local myNukePower = getAccountData(powerAccount, "player.nuke") local myBoltPower = getAccountData(powerAccount, "player.bolt") local myInvisiblePower = getAccountData(powerAccount, "player.invisible") if (myBoltPower == 1) and (speed == 1) then setGameSpeed(3) else setGameSpeed(1) end if (myNukePower == 1) then local blowMarker = createMarker(0, 0, 0, "corona", 1, 255, 255, 0, 255) attachElements(blowMarker, source, 0, 0, 0, 0, 0, 0) function setTheAnim(source) setPedAnimation(source, "BOMBER", "BOM_Plant_Loop", 1000, false, false, false, true) x, y, z = getElementPosition(source) createExplosion(x+x, y-y, z, 10) end setTimer(setTheAnim, 2000, 1) end if (myInvisiblePower == 1) and isPlayerNametagShowing(source) then setPlayerNametagShowing(source, false) setElementAlpha(source, 0) else setPlayerNametagShowing(source, true) setElementAlpha(source, 255) end end I defined them (imo) but when i log in it says: WARNING: powers\power.lua:13: Bad 'player' pointer @ 'bindKey'(1) Link to comment
Guest Guest4401 Posted August 9, 2012 Share Posted August 9, 2012 Change function bindTheKeys(source, commandName) bindKey ( source, "R", "down", togglePowers ) end addEventHandler( "onPlayerLogin", getRootElement(), bindTheKeys ) to function bindTheKeys() bindKey ( source, "R", "down", togglePowers ) end addEventHandler( "onPlayerLogin", getRootElement(), bindTheKeys ) Link to comment
Agon Posted August 9, 2012 Author Share Posted August 9, 2012 no errors and i can't get the powers I think it doesn't make anything when i get into marker or the problem is in the powers Link to comment
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