Jump to content

madrussian

Member
  • Content Count

    1025
  • Joined

  • Last visited

  • Medals

Everything posted by madrussian

  1. madrussian

    allowFleeing default value?

    Hey thanks for the idea! Let's see, I just found this related thread: If I'm reading this right, looks like somebody tried this very thing (courage subskill) and didn't see a correlation: Not to say I won't test this (courage correlation to fleeing) out myself, but seems fleeing is a pretty difficult thing to test. Would be nice to get a definitive answer from the devs. Anyhow two things would really come in handy: Knowing default value for allowFleeing A getter function for allowFleeing Bit more rationale for anyone interested:
  2. Blasting away the limitations of classic Group Respawn, taking mission dynamics and customization to the next level, I proudly present “Fight Back!” My goal was to create a dynamic mission that would completely surprise on every playthrough, and I got a little carried away. Fast forward 3 years... Well long story short, please try it out and let me know what you think! Major Features Battle a vicious & cunning enemy AI, hell bent on your destruction. Customize your playthrough with easy & flexible Start Menu. Locate and Enlist Fighters who join your group and give life to your cause. Strike Back and complete Major Objectives, awarding you essential Assets & Manpower. Build a small army (if you can), and marshal your forces in a desperate struggle against the odds. Command your newly acquired army via a simple & intuitive map-based system. Optimize your own personal squad with essential Voiced Commands (optional). Call in devastating Supports, including brutal WW2 style Bomb Runs. Win a stunning Total Victory or suffer a crippling Total Defeat. Wage the entire epic battle (playthrough) in one sitting (~50 min or less). Minor Features Play in SP and MP (works equally well in SP, Hosted Server, & Dedicated Server), all with a single mission file. Defend your hidden base. Lose your base, and all is lost! Activate the Home Guard, which will defend your base to the last man. Engage in Asymmetric War. The players and the AI enemy have surprisingly different objectives, creating a dynamic and deadly battlespace bursting with possibilities. Survive (if you can) with Limited Lives using my custom flexible Group Linked Respawn system. Engage a fully integrated and voiced Custom Supports system. Importantly, your supports persist upon your death and takeover as a new unit (even if you were killed mid-way through calling them!) Track, locate, and dispatch a quick and wily collaborator who will run like hell. Free civilian captives & rescue vulnerable colonists, who will gift you important vehicles. Steal enemy supplies, and transport them home for base defense. Experience a dynamic & fluid enemy AI with direction and purpose. Fight Back and defeat the blitz (or die trying). This mission is similar to CTI (on a smaller scale), only you “build” by winning. Please read through the briefing 1st time before playing, as the respawn system is pretty ground-breaking (in a positive way) and probably quite different from anything you’ve played before. This mission plays better with content mods! It’s geared for CUP, RHS, IFA3, FOW (supplemental to IFA3), Unsung (including Unsung’s DSAI), and OPTRE. Update: Global Mobilization fully supported! When playing with GM, please see notes below on how to properly select support faction, to ensure your air assets are as “era appropriate” as possible. All of these mods & DLCs are optional of course. It should work with any unit and vehicle mods (as it scans the configs for unit and vehicle types), but if you’re having an issue with a particular mod, please let me know and I’ll see what I can do. Also, it might have issues with mods that use the custom radio script commands (mere speculation based on my use of those commands). ATTENTION – Please do NOT run with AI mods installed. I love AI mods too! But this mission relies on completely fluid AI and every AI mod I’ve tried has caused big problems. If you’re not convinced, please read this: Once johnnyboy finishes his “JBOY AI Scripted CQB Path” and we have most of the buildings in the game mapped out, I definitely hope to include the combined system here in this mission (maintaining AI’s fluidity, etc). Porting to New Terrains Again, this mission relies on completely fluid AI. It takes thorough playtesting and knowhow to set this mission up for particular terrains. It works beautifully on certain terrains (once set up), while on other terrains it simply does not work at all. I have a very good handle on which are which, and have this mission working on 50+ terrains so far (certainly more than I have released), and can always release more. Also, some were quick to set up (~3 minutes), while some took forever. For instance, latest Lingor took me 10+ hours to set up and is bat-shit crazy to look at in the editor, but it sure works great now! If you’re curious on whether this mission will work on a terrain or not, simply ask and I’ll do my best to let you know. Anyhow enough talk, please try it out! Have fun and if you have feedback, I’m very interested in hearing! Gameplay Screenshots "Choose Your Adventure"  "Catching Some Air on the way to First Objective" "Say Hello to my Little Friend" "Nazis, I hate these guys..." "Truck?!? What truck?" "On the Move" "Here Come the Bombers" "Knockout" "Lone Survivor" "Quick, he's getting away!" "You can run..." "But you can't hide." "Ambush" "All Quiet on the Western Front" "Hold the Line" "Let's get these civilians to safety" "Did someone order Napalm?" "War is Hell" "Inside Dante's Inferno" "The Bitter End"  The Briefing Required Addons 1. Community Based Addons – Don't forget this one! 2. MRU Mission Assets – Contains all the sound effects (plus small ammo type the bombs need to work properly) Highly Recommended Addons (Optional) 1. Flashpoint Music Pack – Gotta love that old OFP music! Don’t know about you, but every time I listen it speaks to my very soul. When this addon is detected, a random track will automatically play on mission startup (customizable in Start Menu) 2. MRU IFA3 Revert Soldier FOVs – Re-adjusts IFA3 soldier FOVs back to vanilla levels. This mission was created and adjusted for difficulty prior to IFA3 introducing limited soldier FOVs, and this addon helps restore mission difficulty to intended levels. 3. MRU IFA3 Reduce Soldier Armor – Same thing as IFA3 “Revert Soldier FOVs”, but with soldier armor protections. Imo, makes this mission more enjoyable & fair. Of course, to each his own! 4. MRU Animation Fix – If you have your ArmA3 keybinds setup like mine and try to go from stopped and kneeling with rifle directly to sprint with rifle, you’ll see a broken animation transition. This addon fixes that! (CUP used to fix this broken animation transition, but not anymore due to one of their recent updates, so I created this little fix addon.) Mission Downloads Subscribe on Steam, with 52 terrains now and counting! Note - For the best initial experience, consider playing first on a BIS terrain or the excellent Isla Duala. These terrains have towns & buildings mostly spread out evenly and always make for a great run. Note - I developed this mission on Chernarus (Summer). Here are all the mission links (by terrain): Altis Chernarus (Summer) Chernarus (Winter) Malden Takistan Tanoa United Sahrani Zargabad Aachen Outskirts Afghan Villiage Aliabad Anizay Bariga Beketov Caribou Frontier Crossroads Bocage Fallujah Fata Hazar Kot Hellanmaa Helvantis Ihantala Ihantala (Winter) Isla Abramia Isla Duala Kranorus Kujari Kunduz Leskovets Lingor Lingor (Desert) Lythium Napf Napf (Winter) Neaville Neaville (Winter) Palau Panthera Panthera (Winter) Pecher Porquerolles Roche Ruha Saint Kapaulio Summa Summa (Winter) Thirsk Thirsk (Winter) Trava Vidda VT5 Zarzibash
  3. Hey thanks, and good to hear! Glad you are having fun. 😄 Let's see... I don't know about fair, but if you are looking for a serious challenge maybe try one of these: Play as FFI (French Forces of the Interior) vs enemy Wehrmacht. You will start outgunned big time. [Load with IFA3] Play as Takistani Locals vs enemy Armed Forces of the Russian Federation (perhaps on a fitting Old But Gold desert map... PR FATA comes to mind). [Load with CUP] Play as Syndikat (Bandits) vs enemy UNSCEF or Insurrectionists (perhaps on Tanoa), so you are fighting futuristic heavily armed & armored troops. [Load with Apex and OPTRE] Also, playing as IFA3 Red Army can be challenging because all the other major IFA3 factions start out with quick transportation (Jeeps or Kubelwagens). With Red Amy you'll get slower Studebaker & sluggish ZIS trucks, so it can be difficult to keep pace. (I could have given the Red Army US made Jeeps, but wanted them to feel different.) Also the Red Army's weapons seem to be outclassed by the Wehrmacht's, for most out the available maps, as Red Army has lots of PPSH submachine guns... great for CQC but not so much at longer range. To increase difficulty, consider playing on a terrain where the AI can more easily move it's vehicles around. For instance Tanoa is wonderful, but the AI vehicles get stuck back in the jungle on those dirt trails sometimes. So maybe pick a more fluid A2 terrain. Also, don't forget to fine tune the AI's SKILL and PRECISION under Settings -> Game Options -> Difficulty. This mission piggy-backs on these settings. For all those playing, curious what Player Faction / Enemy Faction / Terrain combos have you found particularly fun & interesting? 💡 If you're handy with scripts, in the mission folder open up "init.sqf" and add one or more of these variables at the top: // Use these to supplement the enemies' normal config-scanned man & vehicle types: //BUB_Mod_Occ_ExtraTroopTypes = []; //BUB_Mod_Res_ExtraTroopTypes = []; //BUB_Mod_Res_ExtraTroopTypes2 = []; //BUB_Mod_Sup_ExtraTroopTypes = []; //BUB_Mod_Civ_ExtraManTypes = []; //BUB_Mod_Occ_ExtraAA_Types = []; //BUB_Mod_Occ_ExtraTankTypes = []; //BUB_Mod_Occ_ExtraAPC_Types = []; //BUB_Mod_Occ_ExtraIFV_Types = []; //BUB_Mod_Occ_ExtraMRAP_Types = []; //BUB_Mod_Occ_ExtraArmedCarTypes = []; //BUB_Mod_Occ_ExtraTransportTypes = []; <- Troop Transports //BUB_Mod_Occ_ExtraFuelTruckTypes = []; // Use these to OVERRIDE the enemies' normal config-scanned man & vehicle types (and will also override the Extras above): //BUB_Mod_Occ_TroopTypes = []; //BUB_Mod_Res_TroopTypes = []; //BUB_Mod_Res_TroopTypes2 = []; //BUB_Mod_Sup_TroopTypes = []; //BUB_Mod_Civ_ManTypes = []; //BUB_Mod_Occ_LowThreatTypes = []; //BUB_Mod_Occ_MedThreatTypes = []; //BUB_Mod_Occ_HighThreatTypes = []; //BUB_Mod_Occ_TruckTypes = []; // <- Troop Transports //BUB_Mod_Occ_FuelTruckTypes = []; ^ Occ stands for Occupation (aka "enemy"), Res stands for Resistance (aka "player"), and Sup stands for Support. Thus... BUB_Mod_Occ_LowThreatTypes will override enemy's Armed Cars and MRAPs. BUB_Mod_Occ_MedThreatTypes will override enemy's APCs and IFVs. BUB_Mod_Occ_HighThreatTypes will override enemy's Tanks and AAs. So to address example of wanting more trucks with mounted weapons, you could eliminate APCs, IFVS, Tanks, and AAs completely, by setting all three of these variables to include only trucks with mounted weapons. ^ You won't technically get more enemy vehicles this way, but at least you can make the types fit your desired theme. Btw - Lol, you are the first person to mention this mission being too easy sometimes. If you'd like an option to up the pace of enemy vehicle deployment, I'll certainly add this in the next update. (Just say the word!) Also there are a whole lot more mod variables to tweak, if you're so inclined. Please see "Mods\_Reference\_ExampleMod.sqf" for a complete list. If you need any help figuring out how to make any of these mods work, just ask and we'll get it sorted.
  4. madrussian

    JBOY Bang Stick script

    Jungle time! I'm off to go track, hunt, and stick some spear hurlin' primitive natives with my new Bang Stick. Thanks j-boy!
  5. Putting the finishing touches on my dynamic mission (release hopefully today or within mere days now!) OK, so I read through Mission Presentation page, and learned I needed to created proper overview and loading screens (1024 x 512 res), which I did (and they look nice and professional, if I do say so). Then I read through "description.ext" page and I set all the appropriate variables in my "description.ext" (as far as I can tell). Note that I'd like to make all my Overview and Loading screen changes inside "description.ext" and change nothing in the Eden Editor (via "Attributes" -> "General") if possible, because I have perhaps 30 terrains I've ported my mission to, and keeping these updates to Overview and Loading inside "description.ext" (only) will keep the porting process to a simple copy/paste! Now in editor I reload the mission, and perform "Export to Single Player" and "Export to Multiplayer". At this point, I exit editor and try opening mission from Main Menu, to inspect my changes. In MP Browser, I see my new Overview screen with the title and description (and author), and everything looks correct! Good so far, so I select mission and fire it up, and see my new Loading screen with the title and description, and again everything looks correct! So good to go for MP. Now I go back to Main Menu and check out SP (via Single Player -> Scenarios). I see my exported mission, but the name is not my chosen mission name, and is (unfortunately) simply the file name of the mission file. I select it and there's no overview picture (static only), and the author says "Unknown Community Author". In my "description.ext", I have set all these related variables: author, briefingName, overviewPicture, overviewText, overviewTextLocked, onLoadName, loadScreen, and onLoadMission. Again it's working for MP... so kinda stumped atm. So the question is: How do I get the Overview screen to work correctly in Single Player -> Scenarios? I welcome any and all help, even simple things I may have missed, thanks.
  6. @kremator - Sounds good & will keep you in the loop! OK you should have a PM with those missions. 😉
  7. @johnnyboy - Thanks man! Glad you like. Yeah I recommend new players just jump in and leave any reading or whatnot for later. @kremator - Sure thing, I think I can manage that later today. Look for a PM. In my experience, everything works great on DS. 🙂 Quick Lambs update So I created an internal version a while back that works as well as possible with Lambs, and the verdict is... sorry bros it's just not going to happen. I absolutely love Lambs for most missions (and many thanks to Lambs team for their wonderful work), but here it simply disrupts the flow way too much. So my advise remains the same for now, please enjoy this mission responsibly... with no AI mods just yet. But there is a silver lining. I am midway through creating my own AI mod which (by design) will work splendidly with this mission. (Btw - No ETA, there is still a ton to do.) Thanks @froggyluv and @johnnyboy for all the ideas and technical expertise so far on that endeavor.
  8. I understand how this is suppose to work, but the result I'm getting is quite perplexing! According to CfgWeapons reference: (^ This also implies that if cfgWeapons initSpeed is 0, you simply use the cfgMagazines initSpeed.) So my vehicle is "B_Mortar_01_F". My weapon is "mortar_82mm". Checking config, initSpeed for this weapon is 0. cfgWeapons >> "mortar_82mm" >> "initSpeed" = 0 My magazine is "8Rnd_82mm_Mo_shells". Checking config, initSpeed for this mag is 200. cfgMagazines >> "8Rnd_82mm_Mo_shells" >> "initSpeed" = 200 Thus the initial speed of this mortar round (per instructions in the ref) should be 200 mps. However, when I test the actual speed for this mortar round in the editor, I get a very different result. Simple test mission with me and an unmanned "B_Mortar_01_F" mortar tube (named TEST_Vehic), with a fired EH on the mortar tube. Start mission, board vehic, fire! Here the code for "init.sqf": _vehic = TEST_Vehic; TEST_Fired = { params ["_unit","_weapon","_muzzle","_mode","_ammo","_magazine","_projectile","_gunner"]; _initSpeedWeapon = 0; _initSpeedMagazine = 0; _initSpeedWeaponCfg = configFile >> "CfgWeapons" >> _weapon >> "initSpeed"; if (isNumber _initSpeedWeaponCfg) then { _initSpeedWeapon = getNumber _initSpeedWeaponCfg }; _initSpeedMagazineCfg = configFile >> "CfgMagazines" >> _magazine >> "initSpeed"; if (isNumber _initSpeedMagazineCfg) then { _initSpeedMagazine = getNumber _initSpeedMagazineCfg }; _projectedSpeedMPS = _initSpeedMagazine; if (_initSpeedWeapon > 0) then { _projectedSpeedMPS = _initSpeedWeapon; } else { if (_initSpeedWeapon < 0) then { _projectedSpeedMPS = abs (_initSpeedMagazine * _initSpeedWeapon); }; }; _actualSpeedMPS = vectorMagnitude (velocity _projectile); hint format ["_weapon: %1\n_initSpeedWeapon: %2\n_magazine: %3\n_initSpeedMagazine:%4\n\n_projectedSpeedMPS:%5\n_actualSpeedMPS:%6", _weapon, _magazine, _initSpeedWeapon, _initSpeedMagazine, _projectedSpeedMPS, _actualSpeedMPS]; }; _vehic addEventHandler ["fired", { _this call TEST_Fired }]; Test results: Projected speed is 200 meters per second (as expected per the config). Actual speed in ~70.0 (meters per second). Anyone have any clue... why the discrepancy? I'm sure it's something simple, please I welcome any help understanding this.
  9. madrussian

    LAMBS Improved Danger.fsm

    That sounds awesome, looking forward to it! Related requests here:
  10. madrussian

    LAMBS Improved Danger.fsm

    Thanks for the response, here's my take. So obviously to you Lambs team guys (but not so obvious to non fsm-folks): Danger causes are presented (for a particular unit) at the start of the fsm, and also via the _queue variable for use while the danger fsm is running. Once danger fsm is running (on a particular unit), it cannot restart until the danger fsm completes. Thus during this time (while danger fsm running), the only way to monitor new danger causes would be via that _queue variable. Lambs regularly delays inside the danger fsm (via timeouts), so likewise any new danger happening during those times could only be monitored via the _queue variable. But Lambs also regularly wipes out that _queue variable. Thus the way Lambs is structured currently, we'd have to get creative to allow for continuous passthrough of danger causes. How about this: Store _queue variable on the unit (optionally per unit), so we can monitor this array in real time (as whatever rate we wish). Anytime you go to delete the _queue, (also optionally) store what's getting deleted (also on the unit), so we don't miss anything. Then we (mission creators & mod makers) can detect all those bullet impacts, whizzes, can fires, everything! All while Lambs up and running (doing it's many things).
  11. madrussian

    LAMBS Improved Danger.fsm

    Basically, by overriding the vanilla danger fsm, you get access to these extremely powerful and efficient Danger Causes: Also: ^ Based on my testing, DCExplosion detects nearby bullet impacts. But if you override the danger fsm, you lose the (somewhat obscure) vanilla danger fsm functionality, so you might also then want/need to create your own AI mod. That's why I advocate for Lambs team to pass all the "danger cause" info through for mission and mod creators. There are many ways to accomplish this. Imo, ideally it could be passed (optionally per unit) via BIS_fnc_CallScriptedEventHandler every time a new danger happens, so we can capture it via BIS_fnc_AddScriptedEventHandler. Alternately, Lambs could provide continuous access to the fsm local _queue variable, which would then need to be preserved (otherwise not wiped out) somehow.
  12. Wow, great update & huge list of fixes and improvements! This one in particular very much appreciated (helping keep that vehicle AI fluid): (Click fixes link to see them all, quite extensive/impressive.)
  13. Looking for a new gaming headset, but recall hearing many Arma3 players running into trouble with crashes when using certain USB devices, specifically with gaming headsets. Their crashes were Unusual Process Exit (0xC0000005) if memory serves. I've had that particular Exit Code give me plenty of fits already (unrelated to USB), though thankfully I've resolved all those issues now. So for those of you using headsets, should I steer clear of UBS (and thus wireless) headsets all-together for Arma3? Or alternately if just certain known headset models cause that problem, which ones (so I may avoid)? Thanks!
  14. madrussian

    Gaming Headsets safe (and unsafe) for ArmA3

    Good info @old_painless, many thanks. Nice to know if that USB gives me crash trouble, I can simply unplug and play that way (minus surround sound). Ok pulling the trigger now, to make purchase. 🙂
  15. madrussian

    Gaming Headsets safe (and unsafe) for ArmA3

    So after a bit of research... I find myself gravitating towards the HyperX - Cloud Alpha S. That top band from Cloud 2 model up (which Alpha S has) looks comfy for longer sessions! And the Alpha has 2 drivers, as opposed to 1 on Cloud 2 (& Stinger). Cloud Alpha S is on sale right now too. ($99 US down from regular $129) It's a wired headset (which ok by me), but it does have a small USB controller which makes my worry for Arma3 memory crash (see OP). Do you guys suppose that USB controller is optional? Would call HyperX right now, except it's Saturday. Also looked at HyperX Cloud Orbit, which has advanced head-tracking surround sound. But probably not looking to shell out quite so much $ on my 1st headset (not truly knowing which features are most important yet, etc).
  16. madrussian

    Gaming Headsets safe (and unsafe) for ArmA3

    Thanks all, good tips so far. Most interested now in this surround sound aspect. Sounds like you find yourself leaving this off? Is fake surround sound generally not so great? Curious, which headsets you guys found where the (fake) surround sound was pretty good?
  17. madrussian

    LAMBS Improved Danger.fsm

    Hi @nkenny, thanks again. A while back I asked: to which you responded: Again, I think this is 100% the right approach and is much appreciated. Unfortunately, I found a spot in Lambs where you guys indeed alter existing WPs. It's this line of code in "fnc_leadermanoeuvre.sqf": (group _unit) move ([_overwatch, _target] select (_overwatch isEqualto [])); So in my dynamic mission, I noticed that often while playing with Lambs, groups were losing their WPs (whereas when playing without Lambs that never happens). This is a huge problem, because these AI groups never reach their objective. After extensive research, low and behold I discovered this move command as the culprit. To confirm my recollection of how the move command operates, I did some quick independent testing in the editor and turns out indeed: The move command will effectively cause the group to skip their current WP. Test is pretty simple: 1. Create an AI group give them a handful of new WPs, and watch for a moment as they move out towards first of these new WPs. 2. Midway through their travel towards first WP, call this: _group move (getPos player); 3. Watch as they redirect towards the player, and eventually reach his position. 4. Observe this group now moves on to second WP, completely skipping first WP. In my mission, every time I order a group to a new objective, I delete all existing WPs and give them one new WP, but I do this all over the place within my mission code. So it would be quite tough to try to somehow mitigate all this WP skipping (to play nice with Lambs). Now of course I can simply disable leader manoeuvres in the Lambs settings, but wanted to make you guys aware in you are indeed altering WPs (currently) in this case. My suggestion for leadermanoeuvre: Perhaps simply doMove all units in the group at once instead? (Turns out doMove does accept an array of multiple units.) Anyhow love your mod, please keep it going! 😄
  18. madrussian

    Gaming Headsets safe (and unsafe) for ArmA3

    OK, let's try this another way: What headset do you you guys recommend for Arma3?
  19. madrussian

    Quick Dedicated Server question

    I found a great video which very concisely and precisely shows how to port forward Arma 3. Includes exactly which IPs to put where, at each step along the way (which was apparently my stumbling block). Highly recommended!
  20. Doing my best to get a quick Dedicated Server up and running. Small problem, not seeing my game on the Server Browser. Here's everything I did: (I have 3 PCs with ArmA3, using 2 of them in this case.) First, I read through the instructions here: https://community.bistudio.com/wiki/Arma_3_Dedicated_Server https://community.bistudio.com/wiki/server.cfg I'm able to set up a local Dedicated Server (which works great!) like this: 1. On PC #1, fire up A3 normally. 2. On PC #2, check Server box in Launcher, fire up A3. 3. On PC #1, go to Server Browser -> SERVERS -> LAN. I see my Dedicated Server game, join game, everything good to go. 4. Create a CONFIG_server.cfg on PC #2, provide hostname and admins[] parameters (included PC #1's UID as admin) , restart both games, verify host name and admin works. Again, everything good so far! Now I'm ready to get Dedicated Server working online. 1. Log into router, I set up port forwarding for PC #2 for ports 2302-2305. 2. On PC #1, fire up A3 normally. 3. On PC #2, check Server box in Launcher, fire up A3. 4. On PC #1, go to Server Browser -> SERVERS -> INTERNET. I don't see my Dedicated Server game. At this point seems like I should check Windows 10 network settings. On PC #2, I open Windows Control Panel, go to System and Security -> Windows Firewall -> "Allow an App or Feature through Firewall". I see five instances of Arma 3. I click "Details" on each one, and see the following: Two instances of "arma3.exe" (one with private checked, one public checked), two instance of "arma 3_x64.exe" (one with private checked, one with public checked), one instance of "arma3launcher.exe" (with both private and public checked). I enable (check the box to the left) for all 5 items. Strangely, I don't see "D:\steam\steamapps\common\arma 3\arma3server_x64.exe" in the list (which I do see on PC #1). I add "D:\steam\steamapps\common\arma 3\arma3server_x64.exe" to PC #2, check the boxes for both private and public, and enable (checking the box to the left). I then retry the steps above (online attempt) with same result, I don't see my game on Server Browser -> Servers -> Internet. Anyone know what I'm probably missing?
  21. I’m quite inspired by LAMBS game-altering capabilities lately, and have become aware of the power of Native FSMs, which I’d like to harness for an upcoming Lambs (optional) compatible addon. Quick questions for y’all: So I’ve created a test FSM, specifically a Native (not Scripted) fsm to run on the AIs. Question #1: In BIS FSM editor, to save as “.fsm”, apparently we first have to select a compile config (via FsmAttributes -> Compile config). There are several choices (many of which are obviously incorrect). My guess (for Native FSMs) would be “entityFSM.cfg”. Is this correct, and if so do other compile configs apply to Native FSMs (to get/process engine feed on AI) as well? Question #2: My test addon looks like this: Upon firing up the game I sneak up on an enemy AI and shoot him, and get this error: ^ So good news and bad. Seems it's trying to run my danger fsm, but my fsmDanger paths are messed up (or similar). I double check, and my addon folder "BUB_DangerFSM" does indeed contain my "Danger.fsm" file. (Thinking briefly perhaps I used the wrong compile config?) At this point, I look to Lambs to see how it’s done. In Lambs “cfgvehicles.hpp”, I see this for fsmDanger paths: Seems “PATHTOF2_SYS” is the key (to resolve my issue), but I search Lambs (directory structure) for this snippet and only these 4 instances (all in this single file "cfgvehicles.hpp") come up. Fast forward… Tried a few things, fairly stuck now, can someone help? Specifically, how to get the path working. Thanks!
  22. madrussian

    Quick Native FSM question(s)

    Good info, many thanks. 🙂 So if I understand, those 5 fsm files in "a3\characters_f\scripts" (or at least "danger.fsm" and "formationentity.fsm" in there) used to be run by the engine, but have now been superseded by the "config-based fsms" located in cfgFSM... correct? Roger that, with the those functions (in particular) inaccessible to seeing or editing. Curious though, can they be called (somehow)? Right, via "fsmDanger" and "fsmFormation" config settings. Would be nice to know exactly which of the "config-based fsms" are running normally, so we know explicitly what we are overriding when we change these. In CfgFSMs, I see 4 entries: Butterfly Dragonfly Formation HoneyBee Looking again at "B_Soldier_F" config: About how all this ties together, it would seem that vanilla "fsmFormation" is referencing CfgFSMs' "Formation" entry. But I'm still having trouble making sense of what vanilla "fsmDanger" is referencing with that "-". Butterfly, Dragonfly, or HoneyBee perhaps? Or perhaps all of these 3 (or a combination) is running simultaneously? Also, are we sure we're actually overriding anything when setting config entry "fsmDanger", or is it possible we are simply supplementing whats going on? I realize much of what I'm asking is probably unknowable (except to specific devs), but please correct if I've got anything explicitly wrong here. It's nice to finally get some insight on how all this fsm stuff works. Thanks @nkenny for sharing your expertise.
  23. madrussian

    Quick Native FSM question(s)

    Hi all, so I've got some time on my hands and would like to try my hand at a quick passthrough version of the vanilla FSMs. I took a quick look in the config at "B_Soldier_F" (and a bunch of other man types), and unfortunately don't see fsm file paths: Anyone know off-hand where to find the vanilla native danger and formation FSMs? Thanks! Edit: OK, in "characters_f.pbo", I found these 7 files: Hmmm... Quick questions: Anyone know why "B_Soldier_F" config entries "fsmDanger" and "fsmFormation" don't explicitly reference any of these 5 fsm files? Anyone know if any of these 5 fsm files are actually used by vanilla game? Otherwise, are the actual vanilla danger and formation fsms simply hard-coded (or otherwise located elsewhere)?
  24. madrussian

    Faster alternatives to isKindOf?

    I think @gc8 was pointing out that I could potentially optimize that code slightly by losing the typeOf command. As in, isKindOf will take a string or an obj (as 1st parameter). So if I had an array of objs (instead of types), the code might look something like: _objs = _objs select { ! (_x isKindOf "Man") }; Edit: And actually my original code (where I had obj types) wasn't quite right, should be: _objTypes = _objTypes select { ! (_x isKindOf "Man") };
×