Jump to content

sunski34

Members
  • Posts

    753
  • Joined

  • Last visited

Everything posted by sunski34

  1. Yes I noticed such a problem on that event a few month ago when writing the very early version of ATME ; same for S_EVENT_PLAYER_LEAVE_UNIT in last 2016 but now fixed by ED. So I think the best way is to have another approach than using thoses events. Here is my thread : https://forums.eagle.ru/showthread.php?t=173505
  2. When M2000C was released in alpha version late 2015, compatible KC130 was already in the announced road map.... Now reported with Harrier.... Hope it's just a question of weeks or months !
  3. sunski34

    Out of beta?

    Perfect +++ . I hope that will be done ASAP ! RAZBAM M2000C is a very good module but somes bugs must be fixed and bombs like BLG-66 and FAP-100 have to be full implemented too. I'm very interesting by future modules of RAZBAM (Harrier) but as a customer I need to be sure that all will be done for the first RAZBAM module I bought on Q3 2015 during presales. I have a little question about KC130 : can the mirage refuel with that plane now ?
  4. Ok. So there no difference between longitudes 115°W, 115°E, 15°E and 15°W. That's right?
  5. I don't understand. When LOLA is selected, and swich turned to IN, we can write 12 digits, 6 per coordonate. So when do you enter 14 ou 114?
  6. Ok how to enter a W longitude for nevada map ?
  7. Hi, ATME V1.2.0 is in test. Some classes et functions are going to change a little bit to be more efficient and a lot of optimizations or bug fixed has been done. When this version is ready to be published, with its documentation and examples up to date, I will help people who have problems between old versions and last one if needed. Enjoy ATME Sunski
  8. Hi, I tested that small basic code : local zoneTest = trigger.misc.getZone("zone") coalition.addStaticObject(country.id.USA, { ["name"] = "Montest", ["groupId"] = 100, ["dead"] = true, ["canCargo"] = false, ["category"] = "Unarmed", ["livery_id"] = "GRC_autumn", ["type"] = "Stinger comm", ["unitId"] = 100, ["rate"] = 1, ["y"] = zoneTest.point.z, ["x"] = zoneTest.point.x, ["heading"] = 0, }) I have a stinger comm man at the position but he isn't dead (its 3D object when mission starts). Same for other static object types, in DCS 1.5.6.3930 and DCS open alpha last version too. Another problem on event S_EVENT_BIRTH with static objects. In that particular case of Unarmed category, even.initiator:getName always returns "static", not the good name. With Cargos or fortifications it's ok, name is good.
  9. not for me.. Up to 70 FPS upon Vegas, extreme vision... no stutter... But I changed anisotrop filter from 16x to 8x because I had a stutters (small and bad FPS less then 40 Strange with a 1080)... with all planes and helicopters ! Now perfect ;)
  10. Hi, sorry I worked on new version of ATME... As promise, the lua example and the mission. https://forums.eagle.ru/showpost.php?p=3098546&postcount=64 Sunski
  11. Litte mission example with sounds Hi, please find a little mission. The ATME_SoundInAreas lua script contains all sounds to be played. Each sound file (and duration of the sound) is associated to a key in myAreas table. That key is the name of a DCS Zone defined in mission, here Z1 and Z2 like this : local myAreas = { ["Z1"] = { file = "fifteen.ogg", duration = 2, }, ["Z2"] = { file = "thousand.ogg", duration = 2, }, } You have a sound file when out of zone : local outOfArea = { file = "squelsh.ogg", duration = -1, } if duration is 0 or less than 0, the sound file is played once. To have no sound, you have to create a sound file with no noise, and put duration to 0 or less. Here you will ear squelsh once. You can change the files of course. Finally, see mission for DCS 1.5 , ME, triggers.. all sound files have to load in mission. You can add players and run mono or multiplayer ;) Of course, other module like rescue can be used. Have fun sunski ATME_SoundInAreas.lua soundInAreas_model.miz
  12. Hi, I understand... I will send you a such a module and write in comments where to modify. Regards Sunski
  13. Ok, here is a little mission and its script. Birds when on floor, squelsh when take off. As you see in lua file, just 6 lines of code, and sound of birds are repeated every 85s. Sunski. ATME_module1a.miz ATME_HelloWorld.lua
  14. Hi, Yes but trigger.action.outSoundForGroup is for real sounds, not sounds over radio. ATME can send messages over radio too but it's another function. One of my friend made a mission with birds on floor and traffic radio messages when in air. That works fine. You can create playlist too. Another guy made a misson with differents sounds depending on context. ATME can be used with only few functions and basics approach. But of course you have to know basics of lua and have to understand ATME basic approach. The biggest advantage of ATME is its multiplayer simple management : Player enters a mission : module function assigned to onCreatePlayerHandler is called by ATME Player changes slot : module function assigned to onDeletePlayerHandler then onCreatePlayerHandler are called by ATME Player is dead : module function assigned to onDeletePlayerHandler is called by ATME For a regular update (1 per second) : module function assigned to onUpdatePlayerHandler is called by ATME To assign a function to an handler you just have to replace nil by function name like in this example : (see line with onCreatePlayerHandler = onCreatePlayer), onCreatePlayer is the module function. -- Advanced Tools for Mission Editor local thisModule local function onCreatePlayer(player) player:display("Hello World ... " .. player:getPseudo(), 10) end -- MAIN do local newHandlers = { onCreatePlayerHandler = onCreatePlayer, onDeletePlayerHandler = nil, onUpdatePlayerHandler = nil, onTakeoffPlayerHandler = nil, onLandingPlayerHandler = nil, onStartEnginePlayerHandler = nil, onStopEnginePlayerHandler = nil, onCreateAIUnitHandler = nil, onDeleteAIUnitHandler = nil, onDisableAIUnitHandler = nil, onTakeoffAIUnitHandler = nil, onLandingAIUnitHandler = nil, onStartEngineAIUnitHandler = nil, onStopEngineAIUnitHandler = nil, onCreateGroupHandler = nil, onSpawnGroupHandler = nil, onDeleteGroupHandler = nil, onDisableGroupHandler = nil, onCreateStaticObjectHandler = nil, onDeleteStaticObjectHandler = nil, onTimerHandler = nil, onModuleStartHandler = nil, } thisModule = ATME.C_Module("HelloWorld", newHandlers, true) end In that example, the only specific function is : local function onCreatePlayer(player) player:display("Hello World ... " .. player:getPseudo(), 10) end So if you want to use only onUpdatePlayerHandler (update every second), replace handlers initialisation with : ... onCreatePlayerHandler = nil, onDeletePlayerHandler = nil, onUpdatePlayerHandler = onUpdatePlayer, ... then rename specific function local function onCreatePlayer(player) into : local function onUpdatePlayer(player) than each second, for each player, a new message is display for 10 seconds Then, if you replace ATME display function by a sound function , and add a sound file in your mission with the mission editor and triggers you can have your first sound. You can use or add : player:soundOnce("myfile.ogg") so your function becomes : local function onUpdatePlayerPlayer(player) player:display("Hello World ... " .. player:getPseudo(), 10) player:soundOnce("myFile.ogg") end where myFile.ogg is the sound file (replace name with your file name). Of course, in that case, be sure that play duration is less than 1 second ;) This is a first simple approach. See documentation to have informations about the trigger creation to start ATME in ME. You just have to load ATME_CoreV111.lua file script first, then this lua file script and your sound ogg file (associate to country Urkraine if you don't use it in your mission, another country not used is good too), then add and enter ATME.run("EN") in execute script trigger in ME. ATME have modules approach, so you've right, a way can be the creation of a generic sounds module like rescue exists to embark/disembark troops. I know that english documentation isn't very clear sometimes and I work on it. I have to add more examples and videos with a logic of progress. If you want informations about ATME or help, ask me. Sunski
  15. Hi, See an ATME example here : https://forums.eagle.ru/showpost.php?p=3093232&postcount=63 Ask me if you want explanations. Sunski
  16. Spawn infantry and rescue group : embark/disembark Hi, here is a new small mission using ATME_Rescue.lua standard module. This module supports French and English messages for F10 menus. In that case, ATME starts in English. This mission has 2 clients helicopters (you can add more if you want), multiplayer compatible of course. 2 infantry groups has been created too, "rescue 1" and "origin". "origin" is late activation because it is spawned as "rescue 2" group when ATME starts. 2 DCS zones one for the pickup zone "myZone" and one for the spawn zone "spawnZone". So "rescue 2" is spawned somewhere in zone "spawnZone". If you look at triggers, you will see that ATME generic modules ATME_CoreV111.lua and ATME_Rescue.lua are loaded. Then ATME_testRescue.lua, the mission module is loaded. When starting mission, you will see a F10 submenu "Personnel carrier". Then inside an item "Load group" to load a group. A group can embark only if : it's an infantry group only the distance between group and helicopter is less than 200m the group is ready to board A group is ready to board when : using changeReadToBoard(true) function of ATME.C_Group using setPickupZone(zoneName, random) function of ATME.C_Group like in this mission (see lines 38 to 43 in ATME_testRescue.lua file) : local function onCreateGroup(_group) if _group:getName() == "rescue1" or _group:getName() == "rescue2" then _group:setPickupZone("myZone", 0.7) _group:setSignal(200, "SIGNAL_SMOKE RED") _group:setWaypointsTracking(true) end end in fact just the function above is necessary for embark/disembark. the function setSignal of ATME.C_Group is useful to activate a smoke if helicopter is less then 200m in that case (but you can change it of course). If several groups have the same pickup zone and signal activated too, only one smoke is fired until at a time. If group is destroy or loaded, another group then fire new smoke. You can fire flares too. Be careful, the route of the infantry groups have to pass through the pickup zone like in this mission. You will see that waypoint tracking is activated... messages will appear when groups pass waypoints. You can delete the line 42 to desactivate waypoint tracking This function below is just necessary to send messages when groups pass waypoints : local function onTimer(events) for _id, _ in events:pairs() do if events:isCoreEvent(_id) == true then thisModule:output(events:getCoreEventType(_id), 1) if events:getCoreEventType(_id) == "TRACKING_WAYPOINT" or events:getCoreEventType(_id) == "TRACKING_LAST_WAYPOINT" then local datas = events:getCoreEventDatas(_id) if events:getCoreEventType(_id) == "TRACKING_WAYPOINT" then thisModule:output("Group " .. datas.group:getName() .. " passe au waypoint..." .. datas.idWaypoint,1) else thisModule:output("Group " .. datas.group:getName() .. " est au dernier waypoint...",1) end local pos = datas.point if ATME.isPoint(pos) ~= POINT_BAD then local lat, lon, alt = ATME.convertPointToLL(pos) local dirlat, dlat, mlat, slat = ATME.convertToDMS(lat, false) local dirlon, dlon, mlon, slon = ATME.convertToDMS(lon, false) local dirtextlat = "E" if dirlat == -1 then dirtextlat = "W" end local dirtextlon = "N" if dirlon == -1 then dirtextlon = "S" end thisModule:output("lon = " .. string.format("%s%02d.%02d.%02d", dirtextlon, dlon, mlon, slon) .. "\nlat = " .. string.format("%s%03d.%02d.%02d", dirtextlat, dlat, mlat, slat), 1) end end end end end So now, start the mission, take an helicopter. Wait groups stop, then they are ready to board. F10 "Personnel carrier" then "Load group". You can load several groups depending of their nb of units (see doc for further informations, load fonction of ATME.C_Player class). You can load a second group if you want. Then after message "Group xxx on board", you will see 2 menu items "Unload rescue 1" and "Unload rescue 2", choose the group to disembark... That all, then the groups cannot be reload and follow their route because they aren't ready to board. Of course you can set that again by script. If you want to test more, put groups, dcs zones "myZone" and "spawnZone" in another place, not too far, augment the radius of signal zone to 5000 (5km). the distance between groups and helicopter must be > 5km if you want to see when the smoke starts. If less, the smoke starts when helicopter takes off. It's the same if you take off before boarding groups in my mission. Hope that help. Enjoy ATME Sunski ATME_testRescue.lua test newRescue.miz
  17. Bonjour, j'ai mis à jour une version ATME ce jour. Il s'agit d'une version majeure V1.1.X. La description en français a été mise à jour https://forums.eagle.ru/showpost.php?p=3001633&postcount=1 avec le lien associé pour le téléchargement, il reste encore à faire la documentation associée en français. Vous pouvez cependant aller sur le lien en anglais pour plus d'infos. Je reste disponible pour toute question. Sunski
  18. Hi, today a new version of ATME. This version fixed some problems but the more important is that ATME.C_Polygon class has been implemented. Now, you can create non crossed polygons, add them to areas, test if unit or other references are inside. A polygon can be defined with points (2D ou 3D) or center of DCS zones or mix of them. You can get a random position in the polygon. Of course, isInZone2D function of ATME.C_Group, ATME.C_AIUnit or ATME.C_Player, getGroupsInZone2DForAll or getGroupsInZone2DForCoalition class function of ATME.C_Group class now support polygons. ATME.C_Area class offers new functions like getInsideZones which return zones where a reference as a unit for example is. You can get areas by their name (see example mission and lua file below) or get a zone in an area by its name. English documentation has been updated with a lot of corrections in the reference part (classes and functions descriptions). You can now create ring with a DCS Zone and a delta radius (if negative radius of DCS Zone is external limit, if positive, radius of DCS Zone is internal limit). Enjoy ATME and have fun ;) Sunski ATME_ZoneTest.lua test zone.miz
  19. Je n'ai rien reçu, je t'envoie un message en privé de mon côté. Nous volons effectivement Samedi vers 15h. Sunski
  20. Yes and no... I have de trackball on left hand, I have switches (2 and 3 states), rotary encoder and buttons too.... But I think that binds have to exist. In the first versions of Mig21b that was possible with a little modification of default lua file for joystick. Other switches have their bind so why not ;) Of course not, just one three state switch is enough .... But three commands : -> Two down commands for each state of the switch -> 1 up for the neutral position of the switch Default lua file can be modify if binds exists. The two kind of binding may exit ; all people doesn't want a single push button to activate a 3 state switch... For example, this can be done for flaps, IR/Neutral/SAR switches ! Binds are defined in default lua file.
  21. @Henri1a : Oui, nous sommes quelques uns dans ce cas, sans être une escradrille . Pour ma part, les WE en après midi et en semaine si je suis en congés. Si intéressé, me laisser un message privé. War bird et Map Normandy précommandée par certains d'entre nous. Hélicos, map nevada et la plupart des avions. A bientôt Sunski
  22. Yes excellent module... Just a little remark ... Why can't we have three joystick binds, one for taxi Light, one for landing light and one for light off. In mig21 it's a three state switch and actually bind is limited to a cycle push button ! Hope that can be done one day Regards
  23. New major version V.1.1.0 Hi, today, a new version of ATME V1.1.0. This version has some important changes like : -> Optimizations of ATME.C_F10Menu and some critical modifications (see below) -> Modifications on Zone 2D : now new classes ATME.C_Ring and ATME.C_Circle (and in future version ATME.C_Polygon). All that new classes can be used in "Zone2D" functions (like player:isInZone2D). Old syntax with center and radius, limited to circles, isn't supported anymore. -> Event Core "SPAWN_GROUP" has been removed to prepare new versions. Now a new callback has been create onSpawnGroupCallbackHandler. You can see all news here : https://forums.eagle.ru/showpost.php?p=3001608&postcount=1 Management of F10 menus changes like this : player:getF10MenuRoot() becomes now player:getF10MenuRoot(thisModule) where thisModule is the instance of your module. ATME.C_F10Menu(player, label, parent)to create a submenu in parent menu/submenu. You can optimize when create a submenu in root F10 menu : local menu = player:getF10MenuRoot(thisModule) local subMenu = ATME.C_F10Menu(player, "My submenu", menu) can be written like this : local subMenu = ATME.C_F10Menu(player, "My submenu", thisModule)You can find ATME_module1e example below. I join lua code and mission for spawn Handler too , and below example : local newHandlers = { onCreatePlayerHandler = onCreatePlayer, onDeletePlayerHandler = nil, onUpdatePlayerHandler = onUpdatePlayer, onTakeoffPlayerHandler = nil, onLandingPlayerHandler = nil, onStartEnginePlayerHandler = nil, onStopEnginePlayerHandler = nil, onCreateAIUnitHandler = nil, onDeleteAIUnitHandler = nil, onDisableAIUnitHandler = nil, onTakeoffAIUnitHandler = nil, onLandingAIUnitHandler = nil, onStartEngineAIUnitHandler = nil, onStopEngineAIUnitHandler = onUnitStopEngine, onCreateGroupHandler = nil, [b]onSpawnGroupHandler = onSpawn, [/b] onDeleteGroupHandler = nil, onDisableGroupHandler = nil, onCreateStaticObjectHandler = nil, onDeleteStaticObjectHandler = nil, onTimerHandler = nil, onModuleStartHandler = nil, } and onSpawn function example : local function onSpawn(group) local player = ATME.C_Player.getByName("Pilot #002") player:display("Spawn group ".. group:getName(),5) if group:getName() == "new A10A" then local unit = group:getFirstUnit() while unit ~= nil do local name, id1, id2 = unit:getCallsign() if name ~= nil then if id1 ~= nil then -- Blue coalition player:display("Callsign spawn " .. unit:getName() .. " = " .. name .. " " .. id1 .. "-" .. id2, 5) else -- Red coalition player:display("Callsign spawn " .. unit:getName() .. " = " .. name, 5) end end unit = group:getNextUnit() end end endonSpawnGroupHandler is called after onCreateGroupHandler. So all is initialized, and you can of course change route for example. Note that functions like setRoute need a delay when new DCS group is created. onSpawnGroupHandler is the best way to do that, onCreateGroupHandler not (called too early after DCS group creation so the route change may not work, I will optimise that in future version). ATME_Rescue has been updated too for compatibility. So, do not forgot to modify your code if necessary. If not, you will have ATME errors. Documentation will be updated soon. Enjoy ATME Ask me for any question. Sunski34 test new spawn A10A.miz ATME_spawnA10A basic.lua ATME_module1e.lua ATME_module1e.miz
  24. May be a solution here embark/disembark ... https://forums.eagle.ru/showpost.php?p=3058448&postcount=10 Ask me if you need help. Sunski
×
×
  • Create New...