Jump to content

OzDeaDMeaT

Members
  • Posts

    151
  • Joined

  • Last visited

Posts posted by OzDeaDMeaT

  1. This has been a problem since the very first version of DCS World. Colour me shocked that you were unaware of this problem. It is incredibly well known in the DCS World content creator corners of the internet. I have attached two missions showing the issue, the AI doesnt even make it over the bridge one. No Scripts, just DCS Ground AI doing its best, hopefully now that we have brought it to your attention we can get this fixed. If anyone has simple examples of these AI Bridge problems please post your examples here. Try not to use scripts, keep the missions as simple as possible.

    BridgeStuck_01.miz BridgeStuck.miz

    • Like 3
  2. Quote
    On 1/2/2024 at 4:24 AM, cfrag said:

    Not to be too subtle about this: wouldn't that require a proper, maintained API and API documentation first? What we have is an (excellent) third-party API documentation, and an ED-supplied "API" of unknown quality that apparently is poorly maintained (example: the country enum lists 19 countries (that's pre DCS 1.5 time). The privately maintained (at great effort, thank you so much, @Grimes!) Hoggitworld lists some 90 countries and appears to be current. I can't find any info on the (existing) outTextForUnit() method in ED's documentation. The new warehouse class isn't documented there at all (or rather: I was not able to find it in their class documentation). Neither are the new airbase methods to control ownership. 

    What good would a bug report form do if ED's underlying API documentation itself can't be relied upon? Currently, anyone who would want to do some non-trivial mission development cannot trust the information provided by ED - which is something that I find lamentable.

    So my wish-list item to ED: please provide an up-to-date and accurate API. And an on-line bug-report form (if possible with status tracking) so that we can contribute when we discover discrepancies.  

     

     

    I completely agree that the team over at Hoggit do a fantastic job. To my understanding, they do rely on information from Eagle Dynamics developers on changes or new features like the warehousing system. (I understand @Grimes was involved in the development of these features as well which is a fantastic nod to someone so dedicated to the DCS scripting community). 

    I also agree that the documentation supplied by Eagle Dynamics (ED) is subpar, out of date and in dire need of some love and possibly a restructure. We can all get on the "Please suck less at documentation ED" train but frankly I don't think it's constructive and will change nothing. I love this sim, I taught myself Lua over the last 6 months with a laser focus on getting good at DCS Scripting so I could make my idea of what a persistent mission should look like.(with patience from the Hoggit guys and other people in the DCS API community)

    We also need to acknowledge the elephant in the room. Writing DCS API documentation does not make ED any money. We have "managed" with what we have been given, and it has been deemed "good enough" for 15 years now. It is up to us to show we are mature enough to provide meaningful and productive feedback. I believe the best way to do this is with a centralized forum location for us all (including ED Staff) to have these conversations.

    I have also experienced first hand several times the inconsistency between patches of API commands. This is quite frustrating but lets be honest, mistakes happen and bugs are introduced. One of the big things I think a Forum could help us with is calling out undocumented API changes that break functionality. There are API inconsistencies, the EventHandlers are a fantastic example of what I can only describe as Russian Roulette every time a patch comes out. This really does need to be addressed, but those are internal engineering and code versioning issues, not really the scope of what I am trying to put forward.

    This also isn't my first rodeo, I was a community contributor with Bohemia Interactive from the Operation Flashpoint days all the way through to Arma 3 and even did work for my Government using the Military Simulation product VBS and VBS2 and VBS3, all are amazing success stories. Bohemia IMO are the benchmark in community interaction and support with both great documentation but even more critical to that, they listened to their community when shortfalls and gaps where discovered in their API. It's important to remember that Bohemia Interactive didn't have a wiki for their commands in the beginning and the company produced Command Reference wiki really only came online around Arma 2 's release. The early 'command references' were maintained by us 'the community' for YEARS before they saw the value in it maintaining it themselves.

    Long story short, lets start an honest dialogue and get some support from Eagle Dynamics to make the DCS API environment(s) better for everyone. Better documentation, code examples, open up some conversations with developers about some of the holes in the current API's that us as a community would like to be filled or fixed. 

    • Thanks 1
  3. As we see more and more multicrew modules become available, it is becoming apparent that there is a gap in the DCS API that does not allow individual players (in a multicrew aircraft) to interact with the game.

    I would like to propose a SLOT based commands. The purpose of this is so it would allow an individual player to have various aspects of the user interaction experience with DCS be customizable to that specific user.

    I propose a variant for the following DCS Mission Scripting Environment API commands:

    Adds a command to the "F10 Other" radio menu allowing players to run specified scripting functions for a specific player

    missionCommands.addCommandForSlot(number slotId , string name , table/nil path , function functionToRun , any anyArguement)

    missionCommands.addSubMenuForSlot(number slotId , string name , table path)

    missionCommands.removeItemForSlot(number slotId , table/nil path )

     

    add / remove OtherCommandForSlot would allow specific players to interact and customize the game or request information specific to them.
    trigger.action.addOtherCommandForSlot(number slotId , string name , string userFlagName , number userFlagValue )

    trigger.action.removeOtherCommandForSlot(number slotId , string name )

     

    outTextForSlot would be amazingly useful to allow specific players to receive information from the game and not interrupt other members of the crew.
    trigger.action.outTextForSlot(number slotId , string text , number displayTime , boolean clearview)

     

    outSoundForSlot would be very handy, if a member of a crew wanted to get notifications for something that other crew members would not be interested in.

    trigger.action.outSoundForSlot(number slotId , string soundfile )

     

    markToSlot would allow for marks specific to a player be available.

    trigger.action.markToSlot(number id , string text , table vec3 , number slotId , boolean readOnly, string message)


     

  4. Hi,

    I am not sure how long this has been a bug for but it appears that the S_EVENT_REFUELING event in DCS is not reporting the unit receiving the fuel. The documentation HERE appears to be missing quite a considerable amount of information regarding events but I have been able to find more information on other sources through the internet. 

    The reason for my reporting the bug is due to the S_EVENT_REFUELING_STOP reporting the event for both the tanker AND the aircraft receiving fuel but the S_EVENT_REFUELING does not. Can you please fix this?

    Log evidence that the S_EVENT_REFUELING is not triggering for the refuelling aircraft.

    Spoiler

    2023-12-30 17:52:45.600 INFO    Scripting (Main): event:type=refuel,initiatorPilotName=KC135MPRS,t=1895.057,initiator_unit_type=KC135MPRS,initiator_object_id=16826881,linked_event_id=0,event_id=168,initiator_coalition=2,initiator_ws_type1=1,initiatorMissionID=1002114,
    2023-12-30 17:52:45.600 INFO    APP (Main): wcTanker::onEvent:6
    2023-12-30 17:53:26.866 INFO    Scripting (Main): event:type=refuel stop,initiatorPilotName=KC135MPRS,t=1936.322,initiator_unit_type=KC135MPRS,initiator_object_id=16826881,linked_event_id=0,event_id=169,initiator_coalition=2,initiator_ws_type1=1,initiatorMissionID=1002114,
    2023-12-30 17:53:26.866 INFO    APP (Main): wcTanker::onEvent:7
    2023-12-30 17:53:26.866 INFO    Scripting (Main): event:type=refuel stop,initiatorPilotName=OzDeaDMeaT,t=1936.322,initiator_unit_type=FA-18C_hornet,initiator_object_id=16777474,linked_event_id=0,event_id=170,initiator_coalition=2,initiator_ws_type1=1,initiatorMissionID=102,
    2023-12-30 17:53:26.866 INFO    EDCORE (Main): (wcTanker::Channel)enterToState_:1

     

    Possible Enhancements to S_EVENT_REFUELING & S_EVENT_REFUELING_STOP

    Spoiler

    Also, if you are reviewing events with the DCS API, please consider the following 'upgrades' to the refuelling events


    1. Make it a single event that reports both the tanker and the aircraft receiving fuel.

    2. Add a refuelling duration for the S_EVENT_REFUELING_STOP as this information would be very useful for this event.


    Here is a possible data structure:


    world.event.S_EVENT_REFUELING = {
        id = 7,
          time = Time,
          initiator = Unit, --This would be the aircraft recieving fuel
        tanker = Unit,    --This would be the tanker aircraft giving the fuel
        }

    world.event.S_EVENT_REFUELING_STOP = {
        id = 14,
          time = Time,
          initiator = Unit, --This would be the aircraft recieving fuel
        tanker = Unit,    --This would be the tanker aircraft giving the fuel
        duration = Number --This would be the period (in seconds) that the refuelling aircraft and the tanker would be connected for
        }

    • Like 1
  5. Can we please have a complete UI overhaul for the Combined Arms User Interface. It is clunky, requires 'tricks' to get basic functionality to work and is very limited in working functionality. If feels like it has slipped into disrepair almost immediately after launch. Please give this module some love, it has so much potential to be awesome.

    • Like 6
  6. I am trying to automate unit placement on DCS maps and I am continually met with the same issue across all of the terrains. I can check for buildings, etc when placing a unit, but I can not check for trees or bushes. Here is a basic run down of what I am trying to do.

    This is the location checklist executed every time a unit is going to be placed.

    1. Is the terrain flat or near flat (i.e. not a cliff)
    2. Is the location NOT in a building or object. (was hoping this element would work for trees etc)
    3. Is the location surface land.SurfaceType.LAND

    What I am getting is units NOT spawning in buildings (good thing) but units spawning all throughout forested areas, sometimes HEAVILY forested areas. Now there is an element of realism to be found by parking tanks under trees etc, but it does negatively affect the userbase playing the missions as they need to look for hours to find a single target.

    What I am hoping for is for someone to tell me if there is a way at all to tell the game to not consider locations under tree cover as viable spawn locations.

    Ideally there would be a way to make other terrain SurfaceTypes like Forest, Heavy Forest, swamp etc etc like terrain developers have access to while generating terrains (I have some professional experience in Terrain development) and making those terrain types available to us scripters and mission makers through the Mission Scripting Environment API so we can better distinguish where we want units to spawn.

    Any help or clarification would be greatly appreciated and if there is no way to do this currently, I hope that we can start a discussion with ED to make the DCS API's more powerful for us scripters.

     

  7. On 10/22/2023 at 12:26 AM, Mistermann said:

    Okay.  So I am brand new to this dedicated server business and want to host several servers for my squadron.  I installed the OB Dedicated server and it is running perfectly.  What I don't understand is how to add a second, third, etc.

    So far, I am tracking with what Maverick said.  Install and don't change anything after the install.  CHECK.

    Here's where I get confused.  The shortcut to start the server was created in the installation.  It calls "DCS_server.exe"  Are you saying that I need to copy that and create one for every server I want using the command line option -w DCS.server1 where the name after the switch is the name of the server?

    Where do I establish the ports for these servers?

    Is there a separate folder structure under the saved games for each -w server I start?

    Sorry for the complete newb questions.  If there's a guide for how to do this please point me in that direction.  Thank you.

    EDIT:  Found this resource that helped me out tremendously.  https://docs.google.com/document/d/1a9QKMhSPMF-gS4rAH-mWc45ziD1mooleQGQnwa9JoDs/edit?pli=1

     

    Hey mate, 

    So definition of ports for your various instances of a DCS server are done via the server profile. When you run a server with a -w in your Saved Games it will create a folder of that name. So for your example, there should be a folder called "DCS.server1". You put your configuration into that folder for that instances ports. If you have any further questions hit me up on the ED Discord or the Hoggit Discord and I can hopefully clear up any additional questions you have.

    • Thanks 1
  8. On 7/16/2022 at 12:11 AM, PravusJSB said:

    Here is how I add zone's using the SSE 'addZone' function, hope this helps;

    local function add_zone(name, x, y, radius)
      if trigger.misc.getZone(name) then return trigger.misc.getZone(name) end
      return trigger.misc.addZone
      {
        ["name"] = name,
        ["y"] = y,
        ["x"] = x,
        ["radius"] = radius,
        ["properties"] =
        {
          [1] =
          {
            ["key"] = name,
            ["value"] = "",
          },
        },
        ["color"] = {0,0,0,1},
        ["hidden"] = false,
      }
    end
    
    local new_zone = add_zone(zone.name, zone_position.x, zone_position.z, zone.size)

     

     

    Awesome function mate. Is there a removeZone as well?

    Also, what is "SSE"?

×
×
  • Create New...