Xeno Posted December 1, 2011 Share Posted December 1, 2011 Im making a gate, that will only open for a certain team, the gate opens but it seems to open for all teams, here is the code, function gateOpen() if getTeamFromName("Subway Clan(2)") and getTeamFromName("Beginners(1)") then moveObject ( gate, 1000, 808, -1342, 7 ) setTimer( moveObject,3000,1,gate, 1000,808,-1342,15.-- s8) --> else end end addEventHandler("onMarkerHit", marker1, gateOpen) addEventHandler("onMarkerHit", marker2, gateOpen) I would appreciate it if someone help me, thanks. Link to comment
mjau Posted December 1, 2011 Share Posted December 1, 2011 eh ok you put that he had to be in 2 teams and where ois the markers defined ? Wich team you want it for ? Link to comment
Xeno Posted December 1, 2011 Author Share Posted December 1, 2011 eh ok you put that he had to be in 2 teams and where ois the markers defined ?Wich team you want it for ? I had them already, but didn't put them in the script, local marker1 = createMarker(810, -1341, 13, 'cylinder', 3.0, 0, 0, 0, 0) local marker2 = createMarker(806, -1341, 13, 'cylinder', 3.0, 0, 0, 0, 0) Link to comment
Castillo Posted December 1, 2011 Share Posted December 1, 2011 You are just checking if these teams exists, not if the player team is one of these. function gateOpen(hitElement) if (getElementType(hitElement) == "player") then hitPlayer = hitElement elseif (getElementType(hitElement) == "vehicle") then hitPlayer = getVehicleController(hitElement) end local playerTeam = getPlayerTeam(hitPlayer) if (not playerTeam) then return end local teamName = getTeamName(playerTeam) if (teamName == "Subway Clan(2)" or teamName == "Beginners(1)") then moveObject ( gate, 1000, 808, -1342, 7 ) setTimer( moveObject, 3000, 1, gate, 1000, 808, -1342, 15) end end addEventHandler("onMarkerHit", marker1, gateOpen) addEventHandler("onMarkerHit", marker2, gateOpen) Link to comment
Xeno Posted December 1, 2011 Author Share Posted December 1, 2011 You are just checking if these teams exists, not if the player team is one of these. function gateOpen(hitElement) if (getElementType(hitElement) == "player") then hitPlayer = hitElement elseif (getElementType(hitElement) == "vehicle") then hitPlayer = getVehicleController(hitElement) end local playerTeam = getPlayerTeam(hitPlayer) if (not playerTeam) then return end local teamName = getTeamName(playerTeam) if (teamName == "Subway Clan(2)" or teamName == "Beginners(1)") then moveObject ( gate, 1000, 808, -1342, 7 ) setTimer( moveObject, 3000, 1, gate, 1000, 808, -1342, 15) end end addEventHandler("onMarkerHit", marker1, gateOpen) addEventHandler("onMarkerHit", marker2, gateOpen) Thats fantastic and it works great. Would this also work? function setposOnLogin() local teamName = getTeamName(playerTeam) if (teamName == "Subway Clan(2)") then spawnPlayer(...ect) end addEventHandler("onPlayerLogin", getRootElement(), setposOnLogin) Link to comment
Castillo Posted December 1, 2011 Share Posted December 1, 2011 function setposOnLogin() local playerTeam = getPlayerTeam(source) -- This was missing. if (not playerTeam) then return end local teamName = getTeamName(playerTeam) if (teamName == "Subway Clan(2)") then spawnPlayer(...ect) end -- this was missing. end addEventHandler("onPlayerLogin", getRootElement(), setposOnLogin) Link to comment
Xeno Posted December 1, 2011 Author Share Posted December 1, 2011 function setposOnLogin() local playerTeam = getPlayerTeam(source) -- This was missing. if (not playerTeam) then return end local teamName = getTeamName(playerTeam) if (teamName == "Subway Clan(2)") then spawnPlayer(...ect) end -- this was missing. end addEventHandler("onPlayerLogin", getRootElement(), setposOnLogin) Thanks mate. I owe you one. Link to comment
qaisjp Posted December 2, 2011 Share Posted December 2, 2011 (edited) function gateOpen(hitElement) local hitPlayer = (getElementType(hitElement) == "player" and hitElement ) or (getElementType(hitElement) == "vehicle" and getVehicleController(hitElement)) local playerTeam = getPlayerTeam(hitPlayer) if (not playerTeam) then return end local teamName = getTeamName(playerTeam) if (teamName == "Subway Clan(2)" or teamName == "Beginners(1)") then moveObject ( gate, 1000, 808, -1342, 7 ) setTimer( moveObject, 3000, 1, gate, 1000, 808, -1342, 15) end end addEventHandler("onMarkerHit", marker1, gateOpen) addEventHandler("onMarkerHit", marker2, gateOpen) Optimised code, it should work. Not tested. Edited December 2, 2011 by Guest Link to comment
Deltanic Posted December 2, 2011 Share Posted December 2, 2011 Good grief, do you never learn to indent scripts properly Solidsnake14? Link to comment
Xeno Posted December 2, 2011 Author Share Posted December 2, 2011 function gateOpen(hitElement) local hitPlayer = (getElementType(hitElement) == "player" and hitElement ) or (getElementType(hitElement) == "vehicle" and getVehicleController(hitElement)) local playerTeam = getPlayerTeam(hitPlayer) if (not playerTeam) then return end local teamName = getTeamName(playerTeam) if (teamName == "Subway Clan(2)" or teamName == "Beginners(1)") then moveObject ( gate, 1000, 808, -1342, 7 ) setTimer( moveObject, 3000, 1, gate, 1000, 808, -1342, 15) end end addEventHandler("onMarkerHit", marker1, gateOpen) addEventHandler("onMarkerHit", marker2, gateOpen) Optimised code, it should work. Not tested. Thanks muchly Link to comment
unknooooown Posted December 2, 2011 Share Posted December 2, 2011 Good grief, do you never learn to indent scripts properly Solidsnake14? Good grief, do you ever learn to read scripts that doesnt have the same indentation as yours? Link to comment
Castillo Posted December 2, 2011 Share Posted December 2, 2011 Remi-X, at least the script himself works fine, wrong indentation doesn't kill people, does it? 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