Jump to content

diwako

Member
  • Content Count

    286
  • Joined

  • Last visited

  • Medals

Everything posted by diwako

  1. We have some code snippet pinned in our discord to add new mags to AI. Just need to put that into init.sqf ["CAManBase", "Reloaded", { params ["_unit", "", "", "", "_oldMagazine"]; if (isPlayer _unit) exitWith {}; _oldMagazine params ["_type", "_roundsLeft"]; if (isNil "_type" || {_roundsLeft > 0}) exitWith {}; (_type call BIS_fnc_ItemType) params ["_magType", "_magLoadedWith"]; if (_magType != "Magazine" || {!(_magLoadedWith in ["Bullet", "ShotgunShell"])}) exitWith {}; _unit addMagazine _type; }, true, [], true] call CBA_fnc_addClassEventHandler;
  2. This is based on current master branch, so version 2.5.1 Some wording explanation "Last known position of target" This is the position the AI THINKS the enemy currently is. This means if they lose sight of the enemy that position can be wildly in accurate. AI also is predicting enemy movement, this is a vanilla feature btw, so that position can wander on for some hundred meters. Again, this position is NOT accurate unless AI have direct line of sight, a squad member told them where the enemy is OR another friendly squad shared their information to them with way more accurate position information. DANGER_ENEMYDETECTED Internal value when danger is detected and AIs latest danger type pool contains that they just detected a new enemy DANGER_CANFIRE Type in the danger type pool which indicates that the AI can fires its weapon. AI will SELF identify this (Base vanilla behaviour) When does lambs danger use suppression when no direct line of sight? Here is a list of functions that invoke any kind of suppressive behavior and condition when suppression is called lambs_danger_fnc_brainEngage -> less than 500 meters distance of last known position of target, not suppressed and danger type is DANGER_CANFIRE or DANGER_ENEMYDETECTED lambs_main_fnc_doGroupFlank -> none flanking unit will suppress area of last known position of target lambs_main_fnc_assaultMemory -> within 65 distance of last known position of target or 10% chance used to get ai closer under "shelter" of suppressive fire lambs_wp_fnc_taskHunt -> when in combat and target is within 25 meters of any building lambs_danger_fnc_tacticsSuppress -> calls lambs_main_fnc_doGroupSuppress when last known position of target is not obstructed by terrain LOD and if another line-of-sight check (3 bounce check) does not hit an object inheriting from class "BUILDING". All from LEADER UNIT POSITION lambs_main_fnc_doGroupSuppress -> has no checks as it is called by lambs_danger_fnc_tacticsSuppress. Is ONLY called by lambs_danger_fnc_tacticsSuppress. All squad members will fire at position even if one squad member is standing right infront of a barn When does lambs danger use suppression when direct line-of-sight? lambs_wp_fnc_taskCQB -> when no building or object is obstructing the enemy lambs_danger_fnc_tacticsSuppress explanation We only check from leader position if the path to the last known position is obstructed by terrain LOD or by a 3 bounce check. Why? Performance. Simple as that. Cannot check on every unit, that would slow things down considerably if it was some soviet mega squad constellation. We assume if the leader can see the position then it is good enough. 3 bounce check explanation and why it is not that easy That name is btw made up by me, could have named it "eye beam laser of inspection" as well. In reality we make a lineIntersectsSurfaces check starting at the AI's position going towards the last known position of the enemy. That check is allowed to pierce 3 objects total before stopping. why only 3? Performance. Cannot reasonably allow 100 objects to be probed without causing some performance issue along the way. After the objects are returned from the lineIntersectsSurfaces command we check them if they are a (simple) object. Then we can query if that object is inheriting from the base class "building". We also may get a "super simple object". That object is as the name implies so simple it does not even have a class, it is just a model, nothing more. Why check for inheritance of building only? Any building in Arma is inheriting from it, at least in the base game. No tree or bush is inheriting from it, again, at least in the base game. We still want suppression in forests as many many playtests has shown it is pretty damn fun. With all that info we then check the returned objects if one of them is an object inheriting from "building". Scenario 1: One object is inheriting from class building. We do not call suppression. Scenario 2: No objects returned. We suppress. Scenario 3: Only super simple objects returned. We suppress Scenario 4: All object do not inherit from building. We suppress Scenario 3 is the MAIN issue. We cannot reasonably know what kind of object this is. We only know its file path. As you probably noticed in the illustration, I used some funny looking file paths. The reason is simple, mods and... Czech. It is nigh impossible to figure out what an object actually is without curating a databank of models and what those are for all of base Arma AND ALL MODIFICATION! This is the part that seemed superfluous to you. Nkenny is the philosopher in the team, so he described it to you on a very high level that AI cannot understand what they are looking at most of the times, same with ammo etc etc etc. Since that failed, here i am, one of the tech guys going on with technical terms. I tell you the ai can look at an object, not understand what that is and still do something. It will not make sense from a human perspective as for us we look at thing, neurons fire in a black box (the brain) and we understand that thing is actually a building. It is really hard for simulated AND ""true"" ai to figure out what anything is, that is why there is so much approximation and tricks to keep things quick. After all, an object for AI is some GEOM mesh, a bounding box and maybe some other thing. For them a colorful house is nothing but some gray box that maybe blocks their sight. I could go deeper into thing, but the I would probably need to get some talk session at the GDC, which frankly won't happen, ever. That said, we still try to improve things along the way. It is just hard to make the AI do things any player would do in that situation. We had people really liking the frankly too suppressive AI, praising them as what they saw during combat or during drills. Then we have others that say it is unrealistic. So we got 2, probably more, extremes that we need to tip toe between. That is why we follow some design philosophies which may make no sense in certain combat situation. One of them being: Rather spend the bullet than just stand around and get shot.
  3. diwako

    DUI - Squad Radar

    Hey everyone, As Arma 3 2.04 just dropped it also added sqf byte code support. That means the sqf code can be packaged precompiled into the mod. Well that sounds alright so far but why do we want that anyways? It also means the code itself can run a little faster. In general a boost in ~10% performance can be expected. 10% does not sound much, but as DUI has components that run every frame, that is kind of a huge deal. SQF bytecode is still pretty "new" (testing was already done last Arma 3 version on the profiling branch), so I am cautious to just throw the update directly to the stable branch. So I am running small RC for DUI version 1.9.2. Downloads are here, as usual the mod is signed with the same key, so you can join any server that allows that key and is not running DUI itself (pbo file hashes are also checked to ensure same version): https://github.com/diwako/diwako_dui/releases/tag/1.9.2_rc https://steamcommunity.com/sharedfiles/filedetails/?id=1617125729
  4. diwako

    RHS Escalation (AFRF and USAF)

    For transparency, the issue seems to stem from the NIARMS compatibility mod (CfgPatches HLC_COMPAT_RHS_AK). Either wait for an update for that or remove the compat pbo in the mean time.
  5. diwako

    DUI - Squad Radar

    Version 1.9.1 has been released. This is a bugfix release, as it looks like some issues snuck in Fixed: Radar - Fix speaking icon being stuck for TFAR beta (#182) Nametags - Fix not showing UAVs with names (#183) by @DomT602 Nametags - use fire instead of view for lineIntersectsSurfaces (#185) Download: https://github.com/diwako/diwako_dui/releases/tag/1.9.1 https://steamcommunity.com/sharedfiles/filedetails/?id=1638341685
  6. diwako

    DUI - Squad Radar

    Without further ado Version 1.9.0 has been released Changelog: Added: General - Setting to show DUI during open dialogs (#175) General - Add TFAR 0.9.12 support (#167) by mikehudak Radar - Setting for Bearing outline (#174) Radar - Setting to show bearing numbers only when driver/pilot of vehicle (#177) Nametags - Custom Group name support (#170) by BrettMayson Nametags - Add LIS check to see names inside and outside vehicles (#172) by jokoho48 Fixed: Radar - Fix ACE EOD status when integer is used (#173) Nametags - Don't show on uav (#162) Nametags - Fixed issue with fast moving vehicles and new in vehicle LIS check (#177) by jokoho48 Changed: General - Add consolidated support for custom names (see: https://github.com/diwako/diwako_dui/wiki/Custom-unit-specific-(group)-names) (#176) General - Improve spectator detection for none ACE or EGS spectators (#169) by jokoho48 Radar - Increase Proiority of Medic, Engineer and EOD for Icons (#180) by jokoho48 Translations: Chinese Simplified and Chinese Traditional Translation (#161) by YRUSoPractised Download: https://github.com/diwako/diwako_dui/releases/tag/1.9.0 https://steamcommunity.com/sharedfiles/filedetails/?id=1638341685
  7. Update incoming *wink wink*
  8. diwako

    DUI - Squad Radar

    Hey everyone, 1.9.0 is almost ready. I need some people that use TFAR to test if everything is working as expected. One of the new features is, any TFAR old or new should work now! Change log is added to workshop item! https://steamcommunity.com/sharedfiles/filedetails/?id=1617125729
  9. More of a question to the acre devs 😉 A short look into the function and its documentation, seems it is returning a list of racks. Not sure what exactly is returned, but I can imagine it is a like of strings, each string being a rack class + id.
  10. Cannot really test it myself, but i think it was like this private _txData = [_txRadioId, "getCurrentChannelData"] call ace_sys_data_fnc_dataEvent; private _txFreq = _txData getVariable "frequencyTX"; _txRadioId is the radio class with id. _txFreq is resulting frequency, but not channel.
  11. Hey, its been a while. Just wanted to say I updated the custom signal calculation function to work with the current acre version. It is not a large change by itself but a small fix 🙂 Script version is now: 1.1.1
  12. Hey everyone, we released an update to the current release candidate. Version 2.5.0 RC2 - convinced AI to not shoot friendlies because they got annoyed by them shooting their guns - fixes for debug draw - Polish translations Download: https://github.com/nk3nny/LambsDanger/releases/tag/2.5.0_RC2 https://steamcommunity.com/sharedfiles/filedetails/?id=2434257231
  13. Hey, there are 3 authors of this mod. Thanks for the translations. Usually we take pull requests directly on our repo over at the GitHub. https://github.com/nk3nny/LambsDanger/pulls
  14. Hey there, this is somewhat of a side project of mine. I wanted to create a mission with stalker elements and searched for anomalies and didn't really find anything too useful. I decided to make them myself in the end and share them so people can use them as well. Plus put them on GitHub so the code is preserved AND that it might get updated by people besides me via pull requests. This project is aiming to be compatible with the addons CBA and ACE. It should work in single and multiplayer. It tries to use as much vanilla content as possible, so this project can be implemented on mission basis and does not need any other addons (besides CBA and ACE). Requirements: CBA (Hard requirement) ACE (soft requirement) Hard requirement: Script cannot work without Soft requirement: Some parts will not work or show up without it (Burner effect will not show without ace right now) Current features: Anomaly detector script Bolt throwing Springboard anomaly Meatgrinder anomaly Electra anomaly Burner anomaly Teleport anomaly Particle sources of idle anomalies that are too far away will not play Anomalies do have a cool down period before before being active again Usage: The mission in the GitHub repo has everything set up to work. It is important that the function "anomaly_fnc_init" is called from withing init.sqf. Otherwise you will not be able see idle anomalies. Spawning anomalies can be done with calling the following command either on all machines or on server. [_pos] call anomaly_fnc_createMeatgrinder; //Meatgrinder [_pos] call anomaly_fnc_createElectra; // Electra [_pos] call anomaly_fnc_createSpringboard; //Springboard [_pos] call anomaly_fnc_createBurner; //Burner [_pos, _id] call anomaly_fnc_createTeleport //Teleport, _id is used to link teleports with matching _id's [_pos, _radius, _isRectangle] call anomaly_fnc_createFog // create fog anomaly [[_pos, _radiusA, _radusB, _andlge, _isRectangle],_howManySpringboards,_howManyElectras,_howManyBurners,_howManyMeatGrínders] call anomaly_fnc_createAnomalyField // create anomaly field with randomly placed anomalies Anomaly detector can be enabled in Ace self interaction -> Equipment. If Ace inter actions is not installed, then it will be an add action (mouse wheel). Some Media: Springboard https://i.imgur.com/ftjEsdN.gifv Meatgrinder https://i.imgur.com/a25OGBs.gifv Electra https://i.imgur.com/SicHdcp.gifv Burner https://steamuserimages-a.akamaihd.net/ugc/902274230650430383/D9E7D3937D4A7167E90198F29F1F348EC31DB88D/ Teleport https://i.imgur.com/C84EIBI.gifv https://i.imgur.com/eEBL8Zb.gifv Fog https://steamuserimages-a.akamaihd.net/ugc/912422351864279847/74FA084ACE8A8F585E0827E09C7C8FD7686E82D5/ Download Steam workshop (Mod version) https://steamcommunity.com/sharedfiles/filedetails/?id=1383903166 Armaholic - !Out of date! http://www.armaholic.com/page.php?id=33602 I hope you like and use them. I also hope for people contributing 😉
  15. Huh, I wonder why I did not get a notification of a new post in this thread. First of thanks for replying. I do have made some emission scripts, yet never released them as they did not really encompass everything, merely just the player side of things. AI so far was a none concern and the way the emission worked was as well a none concern. E.g. not every building would work as shelter, just specific ones as these blow outs were part of a mission theme and to drive players to a certain point during the mission. Besides, it would probably break a lot of AI behavior if I were to make them try and seek shelter. So I doubt there will be a script that will do exactly what everyone want it to do. Also, Drongo made the vampires, not me, I made other agent/ai things that i never bothered to show or release 😉
  16. Looking forward to this. Have not found a good solution to make this work in MP on my end.
  17. Should not interfere.
  18. Just to clear things up in case there are some misunderstandings what "danger.fsm" means. It means the behavior logic the AI will use when they do detect danger or in general a threat. The actual detection part is not part of the danger.fsm itself and is handled in vanilla Arma, which then executes the danger.fsm as a result. Another result of that threat detection is often (basically always really) that AI will go into combat mode. This mod's main goal is to provide a custom and "improved" danger.fsm without cutting too deep into the vanilla AI behavior such as waypoints. Hence why we keep saying it is out of scope. We currently do not intend to change how AI do detect threats and what they see as a threat. The modules and waypoints we added are basically just a bonus on top to give mission makers some more options what they can do with the AI, they are in fact NOT the main focus of this mod. So in short: Will we support stealth gameplay: No, as that means we need to change the threat detection, which is out of scope Will we create a task for stealth gameplay: No, as this is such a mission specific thing and every stealth mission works differently, no way to please everyone Is it even possible to make a stealth task, yes, been there done that, made a metal gear solid op, but then again, very mission specific.
  19. From my experience with consumer level suppressors and .308 rounds, You can still hear them from 450 meters away, but the sound itself is more of whip crack sound than a small explosion or your regular gunshot sound. Yet, changing how well AI can hear and see is just not in the scope of this mod. It is something you should do on mission level. You can use "setSkill" for spotting distance and such. "setUnitTrait" on player with "audibleCoef" and also "camouflageCoef" lowered.
  20. There might be an RC for the new version soon. This will then go for 2 weeks to find issues with that version itself before we actually release it. The reason why it took so long for anything happening is simply real life just happens plus we restructured ALOT in the backend of the fsm and the addon. So the next release is more of a restructure and getting rid of technical debt than full on new feature release. To answer some of your findings with suppressors and such. We do not modify detection of AI in any way, other than the "radio" and call out feature. Not sure how a "task" can help here. You'd need to lobotomize the AI for this to work properly, suppressors are usually only used for hearing protection and the gun shot itself is still audible through several hundred meters. Tweaking the AI for stealth does not really work for us as we want a general AI improvement when they react to danger.
  21. diwako

    CBRN Script

    There will not really be an easy way sadly, the whole thing was made without the removal part. I can imagine that this might work: Note down where you are creating the zones on server. Send the position to your clients to search for a trigger at that position, make them delete the trigger. Triggers are created only locally on the players machine, so every player has their own copy of the "zone" trigger. On top of that, for JIP support it uses the cba event frame work, so, if someone jips in mid mission and after the zone was removed, it will be still there for them as it will be created when they join. You would need to remove the JIP event for that using CBA_fnc_removeGlobalEventJIP. https://github.com/CBATeam/CBA_A3/blob/master/addons/events/fnc_removeGlobalEventJIP.sqf However, you currently do not receive the ID of that event back and need to modify the createZone script so that the event raise function is at the very bottom.
  22. diwako

    CBRN Script

    I meant it as this, the example only use markers, but it is possible to pass an object as well. For example you place down a barrel object and you name it "chemical_barrel". then you can do it as such as wel in initServer.sqf [chemical_barrel, 2.5, 25, 25] call cbrn_fnc_createZone; This will create a chemical zone around "chemical_barrel" with a total radius of 50 and strength of 2.5. You also wanted to know the height of the zone. The height equals the radius, in this case, it is also 50. This script does not make it possible to have it attached to a vehicle, e.g. make it move around. It is possible to do, but not realized in this version.
  23. diwako

    CBRN Script

    Yup. It uses cba's getPos in the background. so you can pass anything really. Object, markername, trigger, module, etc. It will convert it to the center pos of the new zone.
  24. diwako

    DUI - Squad Radar

    For DUI, you can add the cba settings to disable its features inside the mission. Then just set it for the mission to overwrite the settings of the clients.
  25. A feature as such would add a whole new layer of what AI needs to handle. The main issue is the behavior how an empty vehicle that no one ever sat in is seen as. Lambs danger uses the vanilla way to spot enemies, which as mentioned already, is not intended or supported. We would need to tag every vehicle that can be seen as enemy in some way or another, then need to add more assessment stages to manually fire on said target, depending if the group is even, which adds even more overhead as we now need to query over all enemy tagged vehicles, determine if they are a threat, determine if the group can even deal with that target and so on and only then we can script wise order it to deal with that target, taking away all other features until this target has been dealt with. In short a lot of work, maybe without any pay off and very much new behavior which can be seen as bugs by many people. Imo it would be easier to add a scripted module to zeus/script for mission makers can use for this kind of feature.
×