Jump to content

Wrecking Crew

  • Posts

  • Joined

  • Last visited

Everything posted by Wrecking Crew

  1. I appreciate all the assistance with the code. This new Boxcutter Aleppo mission is ready and attached to enjoy. Currently it has A-10s, F-16s and F-14s. Feel free to add more a/c. ------------------------------- Boxcutter Aleppo Ground attack. This mission requires map coordinates input to the aircraft computer. Mission times out after eight hours. Radio F10 Menu has mission options. --- Summary Blue Liberation Forces are defending Aleppo from the Red Democratic Republic scud missile attacks. Red to win: Destroy all of the Blue at Aleppo Airbase Blue to win: Destroy the Red Scud and armor in the designated killbox --- Designer Notes Mission action is initiated when ... ... a Client takes off; or use F10 Radio Menu. The mission times out eight hours after action is initiated. Use the Radio F10 Menu to restart the mission. The killbox coordinates are generated at mission startup. The killbox is within ~25 miles of Aleppo Airbase. Up to three killboxes can be attacked in this mission. After a killbox win, a new killbox objective may be selected using the Radio F10 Menu. Note that Red could win the mission before Blue completes the next objective. Boxcutter Aleppo 278S1a.miz
  2. The MGRS coordinates are displaying correctly. Now I am trying to display the LL coordinates. I thought I could change/strip off the mist.tostringMGRS & coord.LLtoMGRS. I have tried various things such as: do local coordsLL = (coord.LOtoLL(Unit.getByName('BLF Killbox 1 NW'):getPoint())) trigger.action.outText("Killbox NW coordinates: " .. mist.tostringLL(coordsLL, 4), 60) end ..but I only get errors. I also tried mist.getLLString. How can I display the LL coordinates of unit 'BLF Killbox 1 NW'?
  3. Yes ^^^ That Perform Command -> Start is a Triggered Action for the aircraft. Then add an Event with Condition of your choice (time based, flag based, could be a Radio Add thing), and an Action of AI Task Push (or Set, I use Push). You should see the "Start" as an available Action to select. This is different from Group Activate. I will name my event with "Start" or "Activate" in the description to designate which method is used: Blue AGrp30 F-117A Start Blue AGrp30 F-117A Activate With the Uncontrolled the aircraft is visible on the tarmac. With Activate the aircraft appears on the tarmac when it gets activated.
  4. I am trying to run adapted script to also display LL coords. The code below is adapted from the https://wiki.hoggitworld.com/view/MIST_tostringMGRS in the Usage Examples section - do local mgrs = coord.LLtoMGRS(coord.LOtoLL(Unit.getByName('BLF Killbox 10 NW'):getPosition.p)) trigger.action.outText("BLF Killbox 10 NW coordinates: " .. mist.tostringMGRS(mgrs, 4)", 60) end I get an error box - I did play around with the quotes (") in the outText line - looks like there is an extra one?
  5. Hi Grimes, I have been away from this mission development, and just getting back to it. Happily I am seeing that the mist.msgMGRS is no longer repeating from a CA slot. Thank you and everyone else who helped for fixing this. I actually do want the individual coordinates of the corner units. In this mission the clients must search the box to find the target, and the box/target location will be randomized.
  6. Thank you Grimes The Mist approach gave the MGRS coords spot on. I will try it from an a/c client slot. We tried .. DCS functions LOtoLL and LOtoMGRS functions and got coordinates in the YE box instead of BV
  7. I am using the mist.msgMGRS in a Switched Condition event that is triggered by an F10 Radio command. The displayed text repeats for the duration of the DisplayTime, but I want it to only run once. I am in the mission as a Blue Game Master. I did wrap the mist.msgMGRS in a Do .. End and also in a While loop to try to limit the text out to just once. I am loading Mist 4.1.61. Here is the current Do Script - idx = 0 while (idx < 1) do mist.msgMGRS{ units = {'BLF Killbox 10 NW'}, acc = 5, displayTime = 2, msgFor = {coa = {'all'}}, text = "BLF Killbox 10 NW coordinates: ", } idx = idx + 1 end How can I get the mist.msgMGRS text out to show just once for the DisplayTime duration? The mission is attached. Boxcutter 274S0a.miz
  8. Static Object Unit Name Shows In Red Text Create a a Static Object Enter a unique Name for it Copy the Name and Paste it into the Unit Name field Problem - the Unit Name shows in Red Text. Click on the map somewhere Click back on the Static Object Problem - the Unit Name is the desired, pasted name, but includes a '-1'. The '-1' has no reason to be there and is not necessary. Please fix so that the Unit Name is accepted when it is Pasted in, as is.
  9. Map Object Destroyed Fail Multiplayer DCS v2.7.3.8494 The attached Caucasus mission, Back Of The Hand, has two events with Conditions of Map Object Destroyed. The events detect when the tunnel entrance object is destroyed. These conditions use a zone at each of the Roki tunnel entrances, Roki Tunnel East (N 42 36 35, E 44 11 6) and Roki Tunnel West (N 42 37 30 E 44 9 29). In Single Player this works fine. I takes a GBU-31/1 on top of the tunnel entrance to destroy it. But this does not work in Multiplayer. We have dropped tons of GBU-31/1 & -31/3 on both entrances to no avail. We tried different platforms - A-10C II, F-16C, F/A-18C. In this mission there is a Radio Menu F10 option to "Explode" Roki Tunnel East and that does destroy the tunnel entrance using a 1,000 Volume explosion on the same zone used for the Map Object Destroyed condition. The tunnel entrances can be destroyed from the Server side but not from a Client. Please note that Other map objects are working OK in Multiplayer (in a different mission) with the new Map Object Destroyed condition, such as the automobile river bridge at Zugdidi. So there seems to be something at issue with the Roki Tunnel entrances and network/multiplayer. Also, when the tunnel entrances are hit with a good strike in Multiplayer, the structure will burst into flames and burn for a while, like it was destroyed. But when the fire goes out, the structure is intact. This screenshot is in Single Player. One GBU-31/1 was all it took to trigger the Map Object Destroyed event condition. This is from Multiplayer, after multiple hits on the tunnel entrance. The Map Object Destroyed is not detected. Back Of The Hand 273C2x.miz
  10. Thank you Grimes The Back Of The Hand mission is running on Hollo Pointe, using the older version of Mist 4.1.61. I appreciate all of your work with Mist. I use it muchly!
  11. An older mission, Back Of The Hand, was updated to MIST 4.4.90 from MIST 4.1.61. With the newer Mist there is an error displayed and the mission will not start. See the screen shot of the error. I looked at the error details for the file and line number but I could not figure it out. Two mission files are attached, for each Mist version. The file with Mist 4.4.90 results in the error, while the mission file with the older Mist 4.1.61 runs OK. Why does this mission with Mist 4.4.90 give this error? Back Of The Hand 270C2s Mist 4490.miz Back Of The Hand 270C2s Mist 4161.miz
  12. Buildings need to be straight up. See the screenshot for an example. The buildings look bad with these angles.
  13. OK, it is all working. This code creates two tables of Blue Client Names from the Unit field, like 'Blue A-10C 01' and 'Blue FA-18C 39'. One table, aircraftClientBlueCASNames, holds the pilot names for CAS aircraft type roles and the other for CAP aircraft types, aircraftClientBlueCAPNames. I have to define which aircraft go with which type roles in the CAS and CAP library tables. So, if I add a Client aircraft to the mission and I have not put the aircraft type into the code then when the mission starts the 'missing' type(s) will be displayed. With the Blue Client names in tables, I can use those tables as conditions in Mist functions, such as: --- code.Blue A/C In Jebel Zone mist.flagFunc.units_in_zones{ units = aircraftClientBlueCAPNames, zones = {'02 Jebel Zone'}, flag = 90256, toggle = true, } Now, here is the code to create the tables of Blue Client names, and warn me if I forget to add a new aircraft to the definition libraries for CAP and CAS. -- MS, code.Create Client Tables -- aircraftClientBlueCASTypesLibrary = {'A-10A','A-10C','A-10C2','AV8BNA'} -- missing Ground Attack CAS -- aircraftClientBlueCAPTypesLibrary = {'F-15C','FA-18C_hornet','F-14B','F-16C_50'} -- missing CAP aircraftClientBlueCASTypesLibrary = {'A-10A','A-10C','A-10C_2','AV8BNA'} -- Ground Attack CAS aircraftClientBlueCAPTypesLibrary = {'F-15C','FA-18C_hornet','F-14B','F-16C_50','F-14A-135-GR'} -- CAP aircraftClientBlueNames = {} aircraftClientBlueCASNames = {} aircraftClientBlueCAPNames = {} aircraftClientBlueTypes = {} aircraftClientBlueCASTypes = {} aircraftClientBlueCAPTypes = {} missingClientBlueTypes = {} aircraftClientRedNames = {} intMatches = 0 intMatchesStart = 0 intClientTypes = 0 do local function contains(tbl, val) for _,v in ipairs(tbl) do if v == val then return true end end return false end for uName, uData in pairs(mist.DBs.humansByName) do if(contains({'red'}, uData.coalition)) then if not(contains(aircraftClientRedNames, uName)) then table.insert(aircraftClientRedNames, uName) end end if(contains({'blue'}, uData.coalition)) then if not(contains(aircraftClientBlueNames, uName)) then table.insert(aircraftClientBlueNames, uName) if not(contains(aircraftClientBlueTypes, uData.type)) then table.insert(aircraftClientBlueTypes, uData.type) end if(contains(aircraftClientBlueCASTypesLibrary, uData.type)) then table.insert(aircraftClientBlueCASNames, uName) if not(contains(aircraftClientBlueCASTypes, uData.type)) then table.insert(aircraftClientBlueCASTypes, uData.type) end end -- Ground Attack Client if(contains(aircraftClientBlueCAPTypesLibrary, uData.type)) then table.insert(aircraftClientBlueCAPNames, uName) if not(contains(aircraftClientBlueCAPTypes, uData.type)) then table.insert(aircraftClientBlueCAPTypes, uData.type) end end -- CAP Client end end end for i = 1, #aircraftClientBlueTypes do intClientTypes = intClientTypes +1 end for i = 1, #aircraftClientBlueTypes do intMatchesStart = intMatches for j = 1, #aircraftClientBlueCAPTypesLibrary do if aircraftClientBlueTypes[i] == aircraftClientBlueCAPTypesLibrary[j] then intMatches = intMatches + 1 break end end for k = 1, #aircraftClientBlueCASTypesLibrary do if aircraftClientBlueTypes[i] == aircraftClientBlueCASTypesLibrary[k] then intMatches = intMatches + 1 break end end if intMatchesStart == intMatches then if not(contains(missingClientBlueTypes, aircraftClientBlueTypes[i])) then table.insert(missingClientBlueTypes, aircraftClientBlueTypes[i]) end end end end if intClientTypes ~= intMatches then trigger.action.outText('There are missing Blue Client Types in the Libraries.', 20) trigger.action.outText('Missing Blue Client Types', 20) table.sort(missingClientBlueTypes) for index, data in pairs(missingClientBlueTypes) do trigger.action.outText(tostring(data), 20, false) end trigger.action.outText('\n aircraftClientBlueCASTypesLibrary', 20) table.sort(aircraftClientBlueCASTypesLibrary) for index, data in pairs(aircraftClientBlueCASTypesLibrary) do trigger.action.outText(tostring(data), 20, false) end trigger.action.outText('\n aircraftClientBlueCAPTypesLibrary', 20) table.sort(aircraftClientBlueCAPTypesLibrary) for index, data in pairs(aircraftClientBlueCAPTypesLibrary) do trigger.action.outText(tostring(data), 20, false) end end Test ClientNamesByType 256S1e.miz
  14. Thank you Grimes. I have the table aircraftClientBlueCAPTypes and I want to know if everything in here is in aircraftClientBlueCAPTypesLibrary. The Library table can have more types in it. I will work on the code and get back with the result.
  15. I have two tables and need to compare, for instance: aircraftClientBlueCAPTypesLibrary = {'F-15C','FA-18C_hornet','F-14B','F-16C_50'} aircraftClientBlueCAPTypes = {'F-15C','F-14B'} What is the lua code that I can use in a Do Script action to return either: trigger.action.outText('aircraftClientBlueCAPTypes are matched', 20) or, trigger.action.outText('aircraftClientBlueCAPTypes are NOT MATCHED'), 20) ? TIA! I tried a simple 'if a == b then', and a 'function do_tables_match( aircraftClientBlueCAPTypesLibrary , aircraftClientBlueCAPTypes )' but I don't know how...
  16. All Of Coalition Out Of Zone, should not consider FARPs v256.59625.1 For the Event Condition of 'All Of Coalition Out Of Zone' a Static Object FARP is considered in the evaluation. This is a mistake. A Static Object should not be considered. My examination shows that only a Static Object FARP is; other Static Objects and coalition airfields are not. I have included two mission files that have: a FARP within the Mezzeh Airbase zone, and one with the FARP out of the zone. There are Radio F10 Menu options to Deactivate the regular group which should give a All Of Coalition Out Of Zone result of True. When the FARP is in the zone then the condition is not True. From the DCS User Manual, Page 121: The bug is that Static Object FARPs are inhibitors in the evaluation of All Of Coalition Out Of Zone. The manual says "aircraft, vehicles, ships". Also, please update the manual. See the two attached missions. --- additional information I added Static Object "aircraft, vehicles, ships" in the zone; respectively AN-26B, 2B11 mortar, speedboat, so that the conditions of the manual are considered in my complaint. The Static Object AN-26B and Static Object speedboat are not inhibitors, but the Static Object 2B11 mortar is. Fix this stuff. It is ridiculous. I have made missions for >20 years and spending >twoo weeks running down these bugs is really frustrating. Test SO Coalition Out Of Zone v01 FARP in Zone.miz Test SO Coalition Out Of Zone v02 FARP Out of Zone.miz
  17. Thank you for posting this idea Tom_ I have been voicing this idea for a while to my friends. I call it a Universal Client Slot. Airfield parking slots are already restricted to aircraft. The very large aircraft can only go in certain slots. Only very small fighters can fit in the reinforced covered slots on the Syria map. There are helicopter-only slots. There is already built-in logic for parking slot and aircraft compatibility. So if there is a Blue airfield with Universal Client Slots then a client should be able to choose one of those slots and choose a Blue-coalition aircraft from their library (same goes for Red airfields and aircraft). The aircraft would spawn as a (cold) Ramp Start. The client would then need to bring up the Load Weapons window to select the loadout and livery options. Weapons availability would be dependant upon that airfield's resources.
  18. Ahh - same issue a little bit further south on the 4 lane, at N 35 35 22 , E 35 56 50
  19. This is from a few years ago. This script is called when a helicopter lands for 2 seconds, and then a MANPADS team is spawned at the location. It uses MIST to get the position and heading info - --- Stinger Drop Vulcans vs Sharks --- triggered by an event that detects landing -- for Clients: -- UH-1H 01 Nalchik Cold Start, BLF VGrp90 Stinger -- UH-1H 02 Nalchik Cold Start -- UH-1H 03 FARP London Cold Start -- UH-1H 04 FARP London Cold Start -- UH-1H 05 FARP London Cold Start -- UH-1H 06 FARP London Cold Start -- UH-1H 11 Stinger Teams Cold Start, BLF VGrp04 MANPADS local grpNameHelicopter = 'UH-1H 11 Stinger Teams Cold Start' local grpNameTeam = 'BLF VGrp04 MANPADS' local unitNameHelicopter = Group.getByName(grpNameHelicopter):getUnit(1):getName() local basePos = mist.getLeadPos(grpNameHelicopter) local baseHeadingRad = mist.getHeading(Unit.getByName(unitNameHelicopter)) local baseHeadingDeg = baseHeadingRad * 180 / math.pi local newGroupTeam = mist.getGroupData(grpNameTeam) local newCoords = { [1] = { x = basePos.x + ((75 * math.cos(baseHeadingDeg)) - (0 * math.sin(baseHeadingDeg))), y = basePos.z + ((75 * math.sin(baseHeadingDeg)) + (0 * math.cos(baseHeadingDeg))), heading = baseHeadingDeg, }, [2] = { x = basePos.x + ((-75 * math.cos(baseHeadingDeg)) - (75 * math.sin(baseHeadingDeg))), y = basePos.z + ((-75 * math.sin(baseHeadingDeg)) + (75 * math.cos(baseHeadingDeg))), heading = baseHeadingDeg + 40, }, [3] = { x = basePos.x + ((-75 * math.cos(baseHeadingDeg)) - (-75 * math.sin(baseHeadingDeg))), y = basePos.z + ((-75 * math.sin(baseHeadingDeg)) + (-75 * math.cos(baseHeadingDeg))), heading = baseHeadingDeg - 40, } } for i = 1, #newGroupTeam.units do newGroupTeam.units[i].x = newCoords[i].x newGroupTeam.units[i].y = newCoords[i].y newGroupTeam.units[i].heading = newCoords[i].heading end newGroupTeam.clone = true mist.dynAdd(newGroupTeam) local unitNameHelicopterPlayer = Group.getByName(grpNameHelicopter):getUnit(1):getPlayerName() trigger.action.outText(unitNameHelicopterPlayer .. ' just dropped off a Stinger team!', 20) --- end of Stinger Drop Vulcans vs Sharks
  20. Syria map. Broken Road Intersection, N 35 38 0, E 36 0 19 Broken intersection from the 4-lane highway to the east road. See the screen shot.
  21. Why can't I sort the Trigger Zones List yet?
  22. ME Briefing incorrect ASCII Alt-248 When entering text into the Mission Briefing, Alt-248 should enter the 'degree' symbol of ° Instead, it brings up this - Φ Please fix Alt-248 to show the degree symbol °
  23. The new automatic Pilot Naming is the worst. Where is the setting to turn it off?
  • Create New...