Jacobob14 Posted February 14, 2014 Share Posted February 14, 2014 as I can do that by executing a command leave me in chat if the door is open or closed forgive my bad English this is the script I use local objeto1 = createObject ( 980, 1460.6999511719, 802.70001220703, 15.199999809265, 0, 0, 0) local state = false local objeto11 = createObject ( 980, 1441.4000244141, 802.70001220703, 15.199999809265, 0, 0, 0) local state = false function Funcion ( thePlayer ) local accName = getAccountName ( getPlayerAccount ( thePlayer ) ) if isObjectInACLGroup ("user."..accName, aclGetGroup ( "|LTN|" ) ) then if ( not state ) then moveObject ( objeto1, 2000, 1460.6999511719, 802.70001220703, 22, 0, 0, 0) state = true moveObject ( objeto11, 2000, 1441.4000244141, 802.70001220703, 22, 0, 0, 0) state = true outputChatBox ( "#00bbff[base LTN] => #0000ffAbriendo #00ff00Entry", thePlayer, 255, 255, 255, true ) else moveObject ( objeto1, 2000, 1460.6999511719, 802.70001220703, 15.199999809265, 0, 0, 0) state = false moveObject ( objeto11, 2000, 1441.4000244141, 802.70001220703, 15.199999809265, 0, 0, 0) state = false outputChatBox ( "#00bbff[base LTN] => #0000ffCerrando #00ff00 Entry", thePlayer, 255, 255, 255, true ) end end end addCommandHandler ( "ltnentry", Funcion ) Link to comment
Deepu Posted February 14, 2014 Share Posted February 14, 2014 i dint understand can you explain? Link to comment
Moderators Citizen Posted February 14, 2014 Moderators Share Posted February 14, 2014 I'm pretty sure he want's a command that says in the chat if the gate is currently opened or closed: function gateStateChecker(thePlayer) local accName = getAccountName ( getPlayerAccount ( thePlayer ) ) if isObjectInACLGroup ("user."..accName, aclGetGroup ( "|LTN|" ) ) then if ( not state ) then outputChatBox("The gate is opened !", thePlayer) else outputChatBox("The gate is closed !", thePlayer) end end end addCommandHandler("checkgate", false, false) Is that what you were looking for ? Regards, Citizen Link to comment
Jacobob14 Posted February 14, 2014 Author Share Posted February 14, 2014 thank you very much I have another question is possible that if the door is in motion can not close until the end of open or you can not open until the end of closing forgive my bad English Link to comment
Moderators Citizen Posted February 14, 2014 Moderators Share Posted February 14, 2014 Sure you can, but you need to use a third state (and not true or false) so we will likely do like this: local states = { closed = 1, moving = 2, opened = 3 } local state = false --variable that will hold the current state of our gates local objeto1 = createObject ( 980, 1460.6999511719, 802.70001220703, 15.199999809265, 0, 0, 0) local objeto11 = createObject ( 980, 1441.4000244141, 802.70001220703, 15.199999809265, 0, 0, 0) function openLTNGate( thePlayer ) --Please use better function names like this one (even if this one is not that accurate) local movingTime = 2000 --time the gates will take to move entirely (in ms) local accName = getAccountName ( getPlayerAccount ( thePlayer ) ) if isObjectInACLGroup("user."..accName, aclGetGroup ( "|LTN|" ) ) then if state == states.closed then --if gates are closed moveObject( objeto1, movingTime, 1460.6999511719, 802.70001220703, 22, 0, 0, 0) moveObject( objeto11, movingTime, 1441.4000244141, 802.70001220703, 22, 0, 0, 0) outputChatBox ( "#00bbff[base LTN] => #0000ffAbriendo #00ff00Entry", thePlayer, 255, 255, 255, true ) state = states.moving --set the current state as moving to prevent someone to close before setTimer(function () state = states.opened end, movingTime, 1) --set as opened after 2secs in our case elseif state == states.opened then --if gates are opened moveObject ( objeto1, movingTime, 1460.6999511719, 802.70001220703, 15.199999809265, 0, 0, 0) moveObject ( objeto11, movingTime, 1441.4000244141, 802.70001220703, 15.199999809265, 0, 0, 0) outputChatBox ( "#00bbff[base LTN] => #0000ffCerrando #00ff00 Entry", thePlayer, 255, 255, 255, true ) state = states.moving --set the current state as moving to prevent someone to open before setTimer(function () state = states.closed end, movingTime, 1) --set as closed after 2secs in our case end end end addCommandHandler ( "ltnentry", openLTNGate ) Please ask if you don't understand a part of this code. Regards, Citizen Link to comment
Jacobob14 Posted February 14, 2014 Author Share Posted February 14, 2014 Sure you can, but you need to use a third state (and not true or false) so we will likely do like this: local states = { closed = 1, moving = 2, opened = 3 } local state = false --variable that will hold the current state of our gates local objeto1 = createObject ( 980, 1460.6999511719, 802.70001220703, 15.199999809265, 0, 0, 0) local objeto11 = createObject ( 980, 1441.4000244141, 802.70001220703, 15.199999809265, 0, 0, 0) function openLTNGate( thePlayer ) --Please use better function names like this one (even if this one is not that accurate) local movingTime = 2000 --time the gates will take to move entirely (in ms) local accName = getAccountName ( getPlayerAccount ( thePlayer ) ) if isObjectInACLGroup("user."..accName, aclGetGroup ( "|LTN|" ) ) then if state == states.closed then --if gates are closed moveObject( objeto1, movingTime, 1460.6999511719, 802.70001220703, 22, 0, 0, 0) moveObject( objeto11, movingTime, 1441.4000244141, 802.70001220703, 22, 0, 0, 0) outputChatBox ( "#00bbff[base LTN] => #0000ffAbriendo #00ff00Entry", thePlayer, 255, 255, 255, true ) state = states.moving --set the current state as moving to prevent someone to close before setTimer(function () state = states.opened end, movingTime, 1) --set as opened after 2secs in our case elseif state == states.opened then --if gates are opened moveObject ( objeto1, movingTime, 1460.6999511719, 802.70001220703, 15.199999809265, 0, 0, 0) moveObject ( objeto11, movingTime, 1441.4000244141, 802.70001220703, 15.199999809265, 0, 0, 0) outputChatBox ( "#00bbff[base LTN] => #0000ffCerrando #00ff00 Entry", thePlayer, 255, 255, 255, true ) state = states.moving --set the current state as moving to prevent someone to open before setTimer(function () state = states.closed end, movingTime, 1) --set as closed after 2secs in our case end end end addCommandHandler ( "ltnentry", openLTNGate ) Please ask if you don't understand a part of this code. Regards, Citizen I've tried it and the door does not open Link to comment
Moderators Citizen Posted February 15, 2014 Moderators Share Posted February 15, 2014 Yeah my bad, sorry. Just change the line 6 to this: local state = states.closed Link to comment
Jacobob14 Posted February 15, 2014 Author Share Posted February 15, 2014 Yeah my bad, sorry. Just change the line 6 to this: local state = states.closed thanks works for me very well Link to comment
Moderators Citizen Posted February 15, 2014 Moderators Share Posted February 15, 2014 You're welcome 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