crwk78 Posted October 23, 2018 Report Posted October 23, 2018 Hi, I'm trying to write a LUA to turn off AI traffic when airborne. So far I have this which doesn't seem to be working. function trafficoff(offset, value) if value == 0 then ipc.control(1009) end event.offset("0336", "UB", "trafficoff") Any ideas where the problem is? CK
John Dowson Posted October 23, 2018 Report Posted October 23, 2018 (edited) I think you want offset 0366, not 0336. Try with event.offset(0x0366, "UW", "trafficoff") John *update* You are also missing an end statement for the if: function trafficoff(offset, value) if value == 0 then ipc.control(1009) ipc.log("AI traffic turned off") end end event.offset(0x0366, "UW", "trafficoff") Edited October 23, 2018 by John Dowson
John Dowson Posted October 23, 2018 Report Posted October 23, 2018 Also i'm not sure that this will do what you want it to do. Control 1009 is the Traffic Density Toggle. Toggling this only works in one session, and if there is no known initial state then this will set/toggle the density to 100%. You may therefore want to add a 0 parameter or use control 1008 instead. There is a similar lua example included that may be useful - this freezes taxi-out AI traffic when you lower gear (or lower flaps) and releases when you land: -- NOTE: For use with FSUIPC 5 only -- This small plug in, which should be pre-loaded: for example, by adding -- [Auto] -- 1=Lua AIfreezer -- to your FSUIPC5.INI file. -- It freezes taxi-out AI traffic when you lower your gear, -- and releases them when you touch down. -- For aircraft with non-retractable gear, it checks the state of -- the Flaps instead, expecting full flaps for landing. (amend where -- noted for other flap settings). function GroundCheck(off, val) if ipc.val ~= 0 then ipc.control(1149) -- Freeze AI off if user landed ipc.log("AI taxiout traffic released") end end function GearCheck(off, val) if val >= 16383 and ipc.readUW(0x0366) == 0 then ipc.control(1150) -- Freeze AI on if gear just lowered (whilst in the air) ipc.log("AI taxiout traffic frozen") end end function FlapsCheck(off, val) -- See if gear is fixed first: if ipc.readUB(0x060C) == 0 then if val >= 16383 and ipc.readUW(0x0366) == 0 then ipc.control(1150) -- Freeze AI on if now full flaps set when in the air ipc.log("AI taxiout traffic frozen") end end end event.offset(0x0366, "UW", "GroundCheck") event.offset(0x0BE8, "UD", "GearCheck") event.offset(0x0BDC, "UD", "FlapsCheck") John
crwk78 Posted October 23, 2018 Author Report Posted October 23, 2018 Thanks John, very helpful. Your first suggestion worked. I also hadn't prefixed the filename with 'lua' in the [AUTO] section of fsuipc.ini. I think it'll work because I always start with traffic on, so it should always go off when I rotate, which is exactly what I need. PSXSeeconTraffic (through it's own settings) will turn its own AI on when I get airborne, so I should get a seamless switch, avoiding the live traffic when on the ground as it's not always very realistic and the default AI in the air for the same reason! 1008 with 0 might be a more robust option though. I'll look into your post above to see if I can adapt it to what I need. You have given me a good idea to use the gear up event (I'm assuming there is one) rather than the airborne one, as my pitch up attitude will mean I won't see the transition between AI modes. Many thanks again, Charlie
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