sunski34 Posted December 30, 2016 Posted December 30, 2016 (edited) Advanced Tools for Mission Editor or ATME is a set of lua classes and functions which intend to simplify DCS World mission editor lua script implementation. ATME aim is to simplify the creation of single and multiplayer compatible missions, without limiting the number of players. Players entering, destruction or exit mission, the ability of changing slots are fully implemented. ATME is based on a module concept, the basic module is called ATME Core and have to be loaded imperatively first. Each additional module or ATME User Module created can be generic or dedicated to a mission. Future generic modules will provide additional functionalities. This concept offers great flexibility, allowing users who are not comfortable with lua to create complex interactiv missions with few code. The Core ATME module brings all the necessary abstraction and interfaces with many of DCS World's functions. These functions organization is primarily oriented towards mission designers. An object approach provides the necessary clarity. ATME Core brings together the following major features: · Providing global functions including DCS functions (encapsulation), generic (conversions, etc ...) or mathematics (3D vectors, 2D lines, relative positioning, etc.) · Referencing mission based FARP & Airfields for a theater operation (NEVADA or CAUCASUS for the moment). · Player objects, AI units, groups and static objects management. Spawn ability, roads or recoveries of route from a given waypoint association etc ... · Adding specific objects to facilitate mission and interactiv management (radio players menu, smoke, flares, etc ...) · Multiplayer races with 1/100th, intermediate, lap, total time and rankings, complete management. Creating raids with several races ability. · Infantry units with dynamic climb in the vehicle, embarkation / disembarkation complete management. Transport of troops (personnel carrier) concept, authorizing the AI unit embarkation on board (ground or helicopters) or player unit (helicopters). Able to creating embarkation zones with smoke or flare position reports. · Core events triggering which can be processed in the modules (end of embarkation, race events, reporting zone entry into, etc.). · Complete task management for groups. · Alarms creation and management allowing triggering of a single or repeated event at a "T" time which can be defined in absolute time, or relative to a flag. This alarm Event will only be available to the module that created the trigger. · Multi-language support: French, English, German and Russian. Available currently for message and label. Multi-language implementation is the module creator choice &responsibility. ATME is DCS 1.5.5 (and later) & DCS 2.0.4(and later) compatible. This tools took more than 6 months to develop and test.... The first beta version was V1.0.0 uploaded on 12/31/16. A great thank to snowsniper for his ideas, help on multiplayer tests and translation. This thread is only for future new versions of ATME. If you have problems or questions use https://forums.eagle.ru/showthread.php?p=3001625#post3001625 New version on 03/30/18 : V1.4.0 Be careful, some functions have changed ... Lots of bugs fixed, tested with DCS 2.5. Complete dynamic spawn now works fine. New function ATME.getRandomPlayerFromCoalition to get a player randomly New functions ATME.isPoint2D and ATME.isPoint3D return boolean Complete task management for groups and route. New class ATME.C_Task Add new function addTaskToWaypoint to ATME.C_Route class Add new functions setTask, resetTask, pushTask and popTask to ATME.C_Group class Add new functions addInitialWaypointsFrom and addWaypointsFrom for waypoints copy from another group. Add new function setOption to ATME.C_Group class replacing old functions (one per option before). Modify parameters of function load of ATME.C_AIUnit and ATME.C_Player classes Add a new possibility to unload function of ATME.C_AIUnit and ATME.C_Player classes. Automatic troop disembark when transport vehicle stops. Renamme functions setAircraftTracking and resetAircraftTracking of ATME.C_Area class into setTracking and resetTracking Rename core events AREA_AIRCRAFT_ENTERS and AREA_AIRCRAFT_LEAVES into AREA_ENTERS and AREA_LEAVES Rename functions setAircraftsGroupTracking and resetAircraftsGroupTracking of ATME.C_Area class into setGroupTracking and resetGroupTracking Rename core events AREA_AIRCRAFTS_GROUP_ENTERS and AREA_AIRCRAFTS_GROUP_LEAVES into AREA_GROUP_ENTERS anf AREA_GROUP_LEAVES New version on 04/01/18 : V1.4.1 Bug on FAC_ENGAGE_GROUP and FAC_ATTACK_GROUP tasks fixed Add FORMATION option for aircrafts groups New version on 04/22/18 : V1.4.2 (Be careful : some functions have been renammed) Add ATME.C_Stack class for stack management (FIFO and LIFO) Rename ATME.getRandomPlayerFromCoalition into ATME.C_Player.getRandomFromCoalition Remove getBarycentre function of ATME.C_Group Add getPosition to ATME.C_Group to get the group first unit position . Add getRandomUnitPosition function in ATME.C_Group to get a group random unit position Rename setCrossingMultiSegmentTracking function of ATME.C_AIUnit and ATME.C_Player classes into setMultiSegmentTracking Rename resetCrossingMultiSegmentTracking function of ATME.C_AIUnit and ATME.C_Player classes into resetMultiSegmentTracking Add zone extension to "ATTACK_GROUP" and "FAC_ENGAGE_GROUP" to clean a ATME 2D zone. New version on 05/13/18 : V1.4.3 New optimizations Several bugs fixed for ATME.C_Route class and for mark functions Add new countries : ALGERIA, KUWEIT, QATAR, OMAN, UNITED_ARAB_EMIRATES Add new readOnly and message parameters to ATME.markToAll and ATME.markToCoalition functions Add new readOnly and message parameters to mark function of ATME.C_Player class All ATME and ATME.C_Player mark creation functions now returns an ID which can be used for remove it when needed Add new ATME.markRemove function to remove a mark by its ID even for player's one Remove soundChange function in ATME.C_Player class Remove ATME.createUserDatas to create proxy table Replace all userDatas proxy table by simple lua table New version on 20/05/18 : V1.4.4 New optimizations for players Several bug fixed on signals End of mission handler "onEndMissionHandler" of ATME.C_Module classe works now "EJECTION" event core is removed and replaced with a new parameter named "cause" in onDeletePlayerHandler and onDeleteAIUnitHandler of ATME.C_Module class. New version on 09/09/18 : V1.4.5 New optimizations Crash when respawn after a plane destruction fixed Bad waypoint altitude when create new waypoints on a route fixed Several bugs fixed New isPilotDead function for ATME.C_AIUnit and ATME.C_Player classes New isPilotEjected function for ATME.C_AIUnit et ATME.C_Player classes Zip file contains lua ATME core file, link to download : https://forums.eagle.ru/showpost.php?p=3001633&postcount=1 Thank you and enjoy ATME Edited September 9, 2018 by sunski34
sunski34 Posted December 30, 2016 Author Posted December 30, 2016 (edited) English documentation Attach English documentation updated for ATME_Core V1.2.0ATME_referenceManual_EN.pdf Edited July 2, 2017 by sunski34
sunski34 Posted December 30, 2016 Author Posted December 30, 2016 (edited) And a little video... You can find a little video which explains ATME general functionalities.... If you want an idea just have a look !!! Edited January 1, 2017 by sunski34
snowsniper Posted December 30, 2016 Posted December 30, 2016 (edited) As an occasional mission maker, and lua noob, I enjoy multiplayer mission making, with randomized events to have fun with my friends, and to keep some "surprise" and unknow events doing stuff like that in original mission editor, can be long and repetitive. the more aircraft player you allow the more conditions you have to trigger. With ATME it was so fun to devellop new module and missions. It's an Awesome tool ! Just give it a try, you can now do complex mission easily. Not matter your level in Lua, noobs like me or more advanced lua user will find here some incredible function and stuff, event handler to personalize, and give some "life" to their Multiplayer missions. basic lua knowledge like table or logical operator still needed but it's easy now to learn on the way, once you anderstood the ATME simple logic ( handler events --> specific action in your user module event relative defined ) HAVE FUN ! Hope to see quickly a lot of new modules and mission develloped with this awesome tool. Thanks a lot to Sunski34 for this great and faboulous contribution to the DCS flight sim community. thanks for the amount of work given to this. Long life to ATME ! :thumbup::thumbup::thumbup::D Edited December 31, 2016 by snowsniper 1 i7-10700KF CPU 3.80GHz - 32 GO Ram - - nVidia RTX 2070 - SSD Samsung EVO with LG TV screen 40" in 3840x2150 - cockpit scale 1:1 - MS FFB2 Joystick - COUGAR F16 throttle - Saitek Pro Flight Rudder Pedals
DArt Posted December 31, 2016 Posted December 31, 2016 I have briefly check the doc (en français ;) ), very complete and well done. it seems an awesome work! I will test that but thanks for sharing! [ https://www.lotatc.com ]
Pikey Posted December 31, 2016 Posted December 31, 2016 Could you perhaps do an overview of the functions not available or improved upon against the MIST script? ___________________________________________________________________________ SIMPLE SCENERY SAVING * SIMPLE GROUP SAVING * SIMPLE STATIC SAVING *
sunski34 Posted December 31, 2016 Author Posted December 31, 2016 (edited) @Pikey : It's very difficult because my approach is completely different. ATME is based on callbacks when for example players enter or leave a mission... So you create the function, assign it to have a callback and then your function will be called when event occurs (like player enter -> callback onCreatePlayer). ATME is oriented object too. You will find several examples in that thread (lua code and missions) and full documentation for informations. Edited December 31, 2016 by sunski34
sunski34 Posted January 1, 2017 Author Posted January 1, 2017 Video training - spawn groups Here is a video explains how to spawn groups with ATME.
sunski34 Posted January 1, 2017 Author Posted January 1, 2017 (edited) New version of ATME_Core.lua -> V1.0.2 No impact on documentations or external functions. Support spawning of all new cargos available in 1.5.5 download here https://forums.eagle.ru/showthread.php?p=3001608#post3001608 Edited January 2, 2017 by sunski34
Scooternutz Posted January 2, 2017 Posted January 2, 2017 I like it and will really check it out. It does seem as complicated as any other scripting though. I looked at the rescue mission and really couldn't figure it out. I will keep trying. [sIGPIC]https://drive.google.com/file/d/16rUBmmJR7A3YGZVGPGskxG1XtvulGojJ/view?usp=sharing[/sIGPIC]
sunski34 Posted January 3, 2017 Author Posted January 3, 2017 (edited) The concept is different. The rescue mission uses ATME_Rescue.lua module which is optimized with ATME abilities of C_F10Menu Class. So it isn't the best way to discover ATME. I will make a video to explain how Rescue works soon. I suggest you to start with basic examples you can find at the beginning of that post. In fact there's two cases if you want a comparison : In other scripts, you have to write code for multiplayer management. In ATME, it's already realised. So writing a mission for mono or multiplayer is quite simple but of course you have to understand the callback concept. Here is the particular approach of ATME. No need to rewrite the world. ATME has a lot of functions and some classes. Here of course, no real difference between ATME and other scripts. Reading documentation is a must. Important : Using Rescue needs C_Group:changeReadyToBoard function (then group will be ready to embark) and a group must be in the good distance to be loaded (<200m) . Hope that explanation helps you. Regards Edited January 3, 2017 by sunski34
sunski34 Posted January 3, 2017 Author Posted January 3, 2017 (edited) Update today English documentation. See above to download Edited January 3, 2017 by sunski34
SUNTSAG Posted January 5, 2017 Posted January 5, 2017 This User module is to give some sound ambiance for any DCS mission build with ATME, no matter the number of player. It makes it more immersive. it's like a brick you can add to other. main features : -- ATC chat simulated and randomized in Air ( some silent part too, from real atc ogg files ) -- specific DCS zone with ground sound ( forest ambiance, meadow , skylark loop ) (engine should be off to listen to it ) -- specific DCS zone in Air, triggerring specific sound (for exemple fly over Kutaisi airport) debuglevel is set to 3 so you can see on screen what is triggered. you can set debuglevel to 0 in mission editor to have no messages change slot to try each situation. ;-) ... Hi Snowsniper, I too am a big fan for including ambient sounds in the missions I build for the groups I fly with regularly and the feed back is always positive. I have been using your excellent script as the base for my general in mission sounds to great effect....so thank you for that. Now I am a complete novice where Lua is concerned but I have managed to incorporate my preferred sound files with loop durations but i am encountering difficulty when it comes to the files being played when returning to a specific sound file zone eg ZS4. My ZS4 plays an ocean sound as my FARP is close to the shore. I take off and fly out of the zone and the InAir element kicks in which is great. on returning to the FARP and landing I expected the ocean sound to be replayed but instead the standard ground meadow file plays. Any advise as to how to fix that at all? Your help would be greatly appreciated....:helpsmilie::thumbup: Callsign: NAKED My YouTube Channel [sIGPIC][/sIGPIC]
SUNTSAG Posted January 5, 2017 Posted January 5, 2017 (edited) @SUNTAG send me your miz file only, I'll give it a try tomorrow afternoon. Probably a logic cleverless bug from my own scripting ;-) mybe on event landing I forgot to test if player is inside a ZS zone or not so it plays the defaut file. yeah, that's it. corrected. Open mission editor and remplace sound script V1 by sound script V1.1 Ok I tested it with hot helo, defaut demonstration mission from point Airport to WP2 ( kneeboard) I have the correct specific sound (forest) once landed. Hi Snowsniper, Thank you for the quick response it was very much appreciated..... I tried your revised lua file but it didnt work for me as intended. I looked at the changes you made and I then made a slight amendment. Following that minor change it now works perfectly...but without your assistance i would not have had a clue where to start.....So thank you very much and I have attached an updated version of your script Edited January 7, 2017 by SUNTSAG Callsign: NAKED My YouTube Channel [sIGPIC][/sIGPIC]
sunski34 Posted January 7, 2017 Author Posted January 7, 2017 How to use C_Group:setRoute Here a short video : Remark : If a group is "late activation" then it exists but it's not visible. So other groups may drive around that group. (it's the case on video, second example, ramdom = 1). Try it ! Regards
Chafer Posted January 7, 2017 Posted January 7, 2017 Hello there, I am a total noob regarding the mission editor and I need help. I posted something about my problems : https://forums.eagle.ru/showthread.php?t=180450 May ATME be the solution for me ? Thanks, C. Dome display I7 6700k (HT deactivated), 16go drr4, GTX 1080 TI, SSD, 4*1080 display @50hz (resolution 7680*1080), warping software
snowsniper Posted January 7, 2017 Posted January 7, 2017 (edited) Here an other user module brick. [ EN language lua and miz joined] the aim of this user module is to give some usefull information about ATC, active runway, and airport around for Caucasus Theatre it's not in any case cheating because it's like having in cockpit some paper kneeboard information you'll still have to turn the knob.;-) but without losing time to search data no matter the Aircraft used. on Airfield ground, the script with the F10 user menu will gives you 1 airport information in flight you'll have the choice for nearest airport in a specific NM radius ( see adjustable module variable ) If anyone want to improve it to work also on NTTR and retrieve all necessary airfield data in an other data table in var , feel free to give it a try ;-). So far it works only for CAUCASUS theatre thanks to Lino germany data.ATME_airportkneeboardhelp_V1.luamoduleairportinfo_demo.miz Edited January 7, 2017 by snowsniper i7-10700KF CPU 3.80GHz - 32 GO Ram - - nVidia RTX 2070 - SSD Samsung EVO with LG TV screen 40" in 3840x2150 - cockpit scale 1:1 - MS FFB2 Joystick - COUGAR F16 throttle - Saitek Pro Flight Rudder Pedals
sunski34 Posted January 8, 2017 Author Posted January 8, 2017 (edited) New version of ATME_Rescue, a error message problem with did not display. You can dowload it above. Thanks Edited January 9, 2017 by sunski34
sunski34 Posted January 15, 2017 Author Posted January 15, 2017 (edited) Hi everybody, today a new version of ATME_Core, V1.0.3. This version fixed several bugs and add tracking waypoints ability. download here : https://forums.eagle.ru/showthread.php?t=179992 I will update documentation soon. Enjoy ATME.... Edited January 15, 2017 by sunski34
sunski34 Posted January 15, 2017 Author Posted January 15, 2017 (edited) New abilities in Tracking waypoints ATME V1.0.3 adds 3 new core event for waypoints tracking and spawn of groups and 4 new functions in ATME.C_Group Class to manage tracking Waypoints. New Event core : "TRACKING_WAYPOINT" Tracking of the waypoints from 1 to last - 1 (same sequence of numbers than in Mission Editor, so 0 is the first) events:getCoreEventDatas(id) to get datas : -> datas.group for the group instance (object of ATME.C_Group class) -> datas.idWaypoint is the number of waypoint -> datas.point point in x,y,z of the waypoint "TRACKING_LAST_WAYPOINT" Tracking of the last waypoint of a route events:getCoreEventDatas(id) to get datas : -> datas.group for the group instance (object of ATME.C_Group class) -> datas.point point in x,y,z of the waypoint "GROUP_SPAWN" when spawning a new group events:getCoreEventDatas(id) to get datas : -> datas.group for the group instance (object of ATME.C_Group class) 4 new functions for ATME_C_Group: Object:setWaypointsTracking(true or false) : false if only the last waypoint is tracked, true for full waypoints tracking Object:resetWaypointsTracking() -> stop the tracking Object:isFullWaypointsTracking() -> return true or false if full tracking or not Object:isWaypointsTracking -> return true or false if tacking (true full or not full tracking, false no tracking). Edited January 15, 2017 by sunski34
sunski34 Posted January 15, 2017 Author Posted January 15, 2017 (edited) 3 missions to test... Here is 3 test missions to understand how it's easy to do. If you have question or need help, ask me... You can find specific lua modules for those missions too. Try and enjoy :lol:test setRoute.mizRescueTest.miztest spawn.mizATME_setRoute.luaATME_spawnTest1.luaATME_testRescue.lua Edited January 16, 2017 by sunski34
sunski34 Posted January 16, 2017 Author Posted January 16, 2017 ATME_Rescue Hi, if you want to see how to use the ATME_Rescue ATME generic module, have a look on the RescueTest.miz mission and ATME_testRescue.lua juste above. I hope that help Enjoy ATME.
SUNTSAG Posted January 16, 2017 Posted January 16, 2017 Repeat Vehicle Spawn Action Hi All, Let me start by saying I am a complete noob when it comes to lua and I learn by trial and error. I am trying to spawn a group of vehicles using a flag function associated with an F10 radio command, which I have managed to achieve. My problem is that I want to make this repeatable on selection of the radio menu action on multiple occasions. So in essence the second third or fourth time the action is selected I want to delete the initial spawned group "copy0" and respawn the group "copy0". Is there an easy way to do this at all??? Many thanks Callsign: NAKED My YouTube Channel [sIGPIC][/sIGPIC]
sunski34 Posted January 16, 2017 Author Posted January 16, 2017 (edited) @SUNTSAG : mission and script Hi SUNTSAG, I never done that but you can see 2 files attached : -> Mission and lua file. The lua file is the basic file (just Handler définition after "--MAIN " in file) and the interesting part to do what you want is between lines 6 and 39 (including blank lines)... To do what you want : -> Create an Handler onCreatePlayer so menu will be created -> Add menu and its function F10SpawnCommand -> spawn and disable group If you add players and change slot, or play in mutiplayer that will work directly. I need to change the name of the group for each spawn/disable. I will do more tests. Thanks for your interest in ATME. Regard Sunskitest menu spawn and destroy.mizATME_menu_spawn_destroy.lua Edited January 16, 2017 by sunski34
snowsniper Posted January 16, 2017 Posted January 16, 2017 (edited) essential function to clean the land after spawn is : group:disable() ( see also manual ) be aware you can spawn an other "Unit" from a Unit Template only if you gives it an other name If name already exist i think it won't works. "group" in group:disable() is the group name retrieved from the name, for exemple, main spawn code : local err, var1 = ATME.C_GroupSpawnDatas.duplicateFromMissionDatas("origin", "copy #" .. id) -- duplicate the template "origin" to a new unit called "copy #" var1:spawn(pos6) -- spawn function pos6 can be randomised with math.random around initial point. if you give each time an other name, to make all disapear you can do a "for to" like that : mass disable : aitab is a table aitab = {unitname1,unitname2,unitname3,unitname4,unitname5} -- table created in the same time you create a spawn unit ( add a value "name" in the table for the new unit) i is the index of the name in the table from 1 to 5 in this exemple for i=1,5 do if aitab ~= nil then -- check if index exists local Groupx = ATME.C_Group.getByName(aitab) -- retrieve the group from the name ( in lua a group or unit is not his name ) if Groupx ~= nil -- check if Groupx exist then Groupx:disable() -- disable this one table = nil -- reset the index in table to nil ( empty) end end -- will do next i in "for to" end PS : this thread is intented to be for new version annoucement of main ATME script Engine. for bugs, assistance, Question and answers, and help like that please use this one https://forums.eagle.ru/showthread.php?p=3001625#post3001625 have fun. Edited January 16, 2017 by snowsniper i7-10700KF CPU 3.80GHz - 32 GO Ram - - nVidia RTX 2070 - SSD Samsung EVO with LG TV screen 40" in 3840x2150 - cockpit scale 1:1 - MS FFB2 Joystick - COUGAR F16 throttle - Saitek Pro Flight Rudder Pedals
Recommended Posts