Kydoimos 916 Posted February 17, 2015 Ok, thanks man! Yes, I've trawled through my description.ext too, to see if anything has been duplicated - but alas, no joy! I'm going to take another look and double check I haven't done anything majorly stupid (It's been my MO this week!) :p ---------- Post added at 11:46 ---------- Previous post was at 11:35 ---------- Here we go: https://www.dropbox.com/s/l8bg4jb7ezphymj/cfgORBAT.fsm?dl=0 - I'm well and truly stumped! Share this post Link to post Share on other sites
Nathan423 10 Posted February 18, 2015 I had to completely restart the .FSM in order for it to work with 1.2.1. I recommend trying to create a fresh .FSM and see what happens. Share this post Link to post Share on other sites
Kydoimos 916 Posted February 18, 2015 (edited) @Nathan424 - ok, I'll give that a go! ---------- Post added at 11:42 ---------- Previous post was at 10:59 ---------- Ok, here we go: https://www.dropbox.com/s/3xr0heu32yg7op7/TEST.fsm?dl=0 That is a blank FSM with numbered States and Conditions - still receiving 'Member already defined' error message (Line 24 in this case)! Really can't fathom what the problem is. Here's a picture and a read-out too, in case anyone's curious!: https://www.dropbox.com/s/bs015n1udchxpip/Test.png?dl=0 /*%FSM<COMPILE "C:\Program Files (x86)\Steam\SteamApps\steamapps\common\Arma 3 Tools\FSMEditor\ORBAT.cfg, TEST">*//*%FSM<HEAD>*//*item0[] = {"__",2,250,225.000000,-725.000000,325.000000,-675.000000,0.000000,"1"};item1[] = {"__A",4,218,225.000000,-625.000000,325.000000,-575.000000,0.000000,"1A"};item2[] = {"___1",2,250,225.000000,-525.000000,325.000000,-475.000000,0.000000,"2"};item3[] = {"___2",2,250,225.000000,-425.000000,325.000000,-375.000000,0.000000,"3"};item4[] = {"__A_3",4,218,225.000000,-325.000000,325.000000,-275.000000,0.000000,"3A"};item5[] = {"___3",2,250,225.000000,-225.000000,325.000000,-175.000000,0.000000,"5"};item6[] = {"__A",4,218,375.000000,-325.000000,475.000000,-275.000000,0.000000,"4A"};item7[] = {"__A_1",4,218,75.000000,-325.000000,175.000000,-275.000000,0.000000,"2A"};item8[] = {"__A_2",4,218,525.000000,-325.000000,625.000000,-275.000000,0.000000,"5A"};item9[] = {"___4",2,250,375.000000,-225.000000,475.000000,-175.000000,0.000000,"6"};item10[] = {"___5",2,250,525.000000,-225.000000,625.000000,-175.000000,0.000000,"7"};item11[] = {"___6",2,250,75.000000,-225.000000,175.000000,-175.000000,0.000000,"4"};item12[] = {"__A_3",4,218,225.000000,-125.000000,325.000000,-75.000000,0.000000,"7A"};item13[] = {"__A",4,218,375.000000,-125.000000,475.000000,-75.000000,0.000000,"8A"};item14[] = {"__A_1",4,218,525.000000,-125.000000,625.000000,-75.000000,0.000000,"9A"};item15[] = {"__A_2",4,218,75.000000,-125.000000,175.000000,-75.000000,0.000000,"6A"};item16[] = {"___7",2,250,75.000000,-25.000000,175.000000,25.000000,0.000000,"8"};item17[] = {"___8",2,250,225.000000,-25.000000,325.000000,25.000000,0.000000,"9"};item18[] = {"__0",2,250,375.000000,-25.000000,475.000000,25.000000,0.000000,"10"};item19[] = {"__1",2,250,525.000000,-25.000000,625.000000,25.000000,0.000000,"11"};item20[] = {"__2",2,250,225.000000,75.000000,325.000000,125.000000,0.000000,"12"};item21[] = {"__1A",4,218,225.000000,175.000000,325.000000,225.000000,0.000000,"11A"};item22[] = {"__4",2,250,225.000000,275.000000,325.000000,325.000000,0.000000,"14"};item23[] = {"__5",2,250,375.000000,275.000000,475.000000,325.000000,0.000000,"15"};item24[] = {"__3",2,250,75.000000,275.000000,175.000000,325.000000,0.000000,"13"};item25[] = {"__0A",4,218,75.000000,175.000000,175.000000,225.000000,0.000000,"10A"};item26[] = {"__2A",4,218,375.000000,175.000000,475.000000,225.000000,0.000000,"12A"};link0[] = {0,1};link1[] = {1,2};link2[] = {3,4};link3[] = {3,6};link4[] = {3,7};link5[] = {3,8};link6[] = {4,5};link7[] = {5,12};link8[] = {5,13};link9[] = {5,14};link10[] = {5,15};link11[] = {6,9};link12[] = {7,11};link13[] = {8,10};link14[] = {12,17};link15[] = {13,18};link16[] = {14,19};link17[] = {15,16};link18[] = {20,21};link19[] = {20,25};link20[] = {20,26};link21[] = {21,22};link22[] = {25,24};link23[] = {26,23};globals[] = {25.000000,1,0,0,0,640,480,1,28,6316128,1,-505.161133,972.840149,584.810669,-875.557373,922,911,1};window[] = {2,-1,-1,-32000,-32000,1042,250,1530,250,3,940};*//*%FSM</HEAD>*/class TEST{ /*%FSM<STATE "__">*/ class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/ { /*%FSM<STATEINIT>*/ /*%FSM</STATEINIT>*/ subordinates[] = { /*%FSM<LINK "__A">*/ , /*%FSM</LINK>*/ }; }; /*%FSM</STATE>*/ /*%FSM<STATE "___1">*/ class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/ { /*%FSM<STATEINIT>*/ /*%FSM</STATEINIT>*/ subordinates[] = { }; }; /*%FSM</STATE>*/ /*%FSM<STATE "___2">*/ class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/ { /*%FSM<STATEINIT>*/ /*%FSM</STATEINIT>*/ subordinates[] = { /*%FSM<LINK "__A">*/ , /*%FSM</LINK>*/ /*%FSM<LINK "__A_1">*/ , /*%FSM</LINK>*/ /*%FSM<LINK "__A_2">*/ , /*%FSM</LINK>*/ /*%FSM<LINK "__A_3">*/ , /*%FSM</LINK>*/ }; }; /*%FSM</STATE>*/ /*%FSM<STATE "___3">*/ class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/ { /*%FSM<STATEINIT>*/ /*%FSM</STATEINIT>*/ subordinates[] = { /*%FSM<LINK "__A">*/ , /*%FSM</LINK>*/ /*%FSM<LINK "__A_1">*/ , /*%FSM</LINK>*/ /*%FSM<LINK "__A_2">*/ , /*%FSM</LINK>*/ /*%FSM<LINK "__A_3">*/ , /*%FSM</LINK>*/ }; }; /*%FSM</STATE>*/ /*%FSM<STATE "___4">*/ class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/ { /*%FSM<STATEINIT>*/ /*%FSM</STATEINIT>*/ subordinates[] = { }; }; /*%FSM</STATE>*/ /*%FSM<STATE "___5">*/ class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/ { /*%FSM<STATEINIT>*/ /*%FSM</STATEINIT>*/ subordinates[] = { }; }; /*%FSM</STATE>*/ /*%FSM<STATE "___6">*/ class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/ { /*%FSM<STATEINIT>*/ /*%FSM</STATEINIT>*/ subordinates[] = { }; }; /*%FSM</STATE>*/ /*%FSM<STATE "___7">*/ class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/ { /*%FSM<STATEINIT>*/ /*%FSM</STATEINIT>*/ subordinates[] = { }; }; /*%FSM</STATE>*/ /*%FSM<STATE "___8">*/ class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/ { /*%FSM<STATEINIT>*/ /*%FSM</STATEINIT>*/ subordinates[] = { }; }; /*%FSM</STATE>*/ /*%FSM<STATE "__0">*/ class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/ { /*%FSM<STATEINIT>*/ /*%FSM</STATEINIT>*/ subordinates[] = { }; }; /*%FSM</STATE>*/ /*%FSM<STATE "__1">*/ class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/ { /*%FSM<STATEINIT>*/ /*%FSM</STATEINIT>*/ subordinates[] = { }; }; /*%FSM</STATE>*/ /*%FSM<STATE "__2">*/ class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/ { /*%FSM<STATEINIT>*/ /*%FSM</STATEINIT>*/ subordinates[] = { /*%FSM<LINK "__0A">*/ , /*%FSM</LINK>*/ /*%FSM<LINK "__2A">*/ , /*%FSM</LINK>*/ /*%FSM<LINK "__1A">*/ , /*%FSM</LINK>*/ }; }; /*%FSM</STATE>*/ /*%FSM<STATE "__4">*/ class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/ { /*%FSM<STATEINIT>*/ /*%FSM</STATEINIT>*/ subordinates[] = { }; }; /*%FSM</STATE>*/ /*%FSM<STATE "__5">*/ class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/ { /*%FSM<STATEINIT>*/ /*%FSM</STATEINIT>*/ subordinates[] = { }; }; /*%FSM</STATE>*/ /*%FSM<STATE "__3">*/ class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/ { /*%FSM<STATEINIT>*/ /*%FSM</STATEINIT>*/ subordinates[] = { }; }; /*%FSM</STATE>*/};/*%FSM</COMPILE>*/[/Code][color=silver][size=1]---------- Post added at 11:45 ---------- Previous post was at 11:42 ----------[/size][/color]Maybe it's an error caused by something I [i]haven't [/i]done - like something that needs to be added to the States? (Obviously the actual ORBAT details are missing, thus far) Edited February 18, 2015 by Kydoimos Share this post Link to post Share on other sites
Kydoimos 916 Posted February 18, 2015 (edited) So, this is what it looks like: There's nothing inside the States yet. Somehow, something's causing a conflict - I've used BIS' cfgORBAT.fsm as a kind of guide - but when I compile this, a 'member is already defined' apparently. Can't really see what I've done different. I tried adding States with BaseWest, BaseEast etc. - but then I got another error message saying 'BaseWest not defined'. I must be missing something completely! :P Is there another method of defining States, other than naming them? Edited February 19, 2015 by Kydoimos Share this post Link to post Share on other sites
Kydoimos 916 Posted February 19, 2015 Anyone out there successfully created a working ORBAT fsm? Please PM, I'm in dire need of your brain! Share this post Link to post Share on other sites
IndeedPete 1038 Posted February 19, 2015 Hm, a blank FSM with empty states might not be the best idea; I'm not even sure if numerical classnames are allowed. Anyway, have you tried to #include BI's original FSM and see what happens? Share this post Link to post Share on other sites
Kydoimos 916 Posted February 19, 2015 Ah, I'll try re-naming the States and adding some basic details - see if I can avoid a CTD :) Yeah, interestingly BIS' cfgORBAT.fsm works fine - but as soon as I add a State or make any changes, I'm getting the 'member already defined' error. I'll try editing the test fsm, while keeping it simple! Thanks for the advice, matey! I will suss this out eventually! Share this post Link to post Share on other sites
Kydoimos 916 Posted February 20, 2015 Ok, new attempt - here's an updated ORBAT fsm - now getting undefined base class for 'BaseWest': https://www.dropbox.com/s/rms1ybfg3sbd0bv/ORBAT_Test.fsm?dl=0 In this new ORBAT I've changed the numeric names of each State and added some basic info! Share this post Link to post Share on other sites
dissaifer 10 Posted February 20, 2015 Look, I know it's been a hot minute since I posted but I think this is one of the main issues with the game. With many parts of the engine we (the users) don't know how it works in detail, which leads to us tripping over the development until it works. I would hope the BIS hires someone that either has a job explaining each part of the game (and code) in detail or just writes the most comprehensive script guide known to man. Share this post Link to post Share on other sites
IndeedPete 1038 Posted February 20, 2015 Look, I know it's been a hot minute since I posted but I think this is one of the main issues with the game. With many parts of the engine we (the users) don't know how it works in detail, which leads to us tripping over the development until it works. I would hope the BIS hires someone that either has a job explaining each part of the game (and code) in detail or just writes the most comprehensive script guide known to man. But... but, it's part of the fun to fiddle around! ;) No, I agree, documentation of script commands, event scripts and such is pretty good but information about how some things / sub-systems / technologies interact with each other - that could be optimised. To be fair though, Kydoimos could have saved himself a lot of time by just doing it as plain config instead of going the FSM way.^^ Share this post Link to post Share on other sites
Kydoimos 916 Posted February 21, 2015 But... but, it's part of the fun to fiddle around! ;) No, I agree, documentation of script commands, event scripts and such is pretty good but information about how some things / sub-systems / technologies interact with each other - that could be optimised. To be fair though, Kydoimos could have saved himself a lot of time by just doing it as plain config instead of going the FSM way.^^ Ah, I totally forgot to mention why I didn't go with doing the ORBAT via the description.ext! Which would be a million times easier! :D Trouble is, I've noticed that when you load a saved game, the ORBAT menu doesn't work properly (for some reason, when you click on the icons, they don't appear). However, BIS' ORBAT.fsm works flawlessly. I'm thinking after a load, the description.ext file isn't getting read properly? And besides, it really is part of the fun fiddling around with things. It's a wonderful feeling when you get something to work! My next plan is to go back to BIS' ORBAT fsm and see if I can edit the entries in a manner that doesn't lead to States being duplicated (defined twice) or not defined at all (still not quite sure where I'm going wrong there!). Share this post Link to post Share on other sites
Kydoimos 916 Posted February 21, 2015 (edited) Aha! For some reason, FSM state names are not saved correctly. Current: Code: /*%FSM<STATE "BaseWestGuer">*/ class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/ { ... }; Expected (after re-saving it at my PC using FSM editor in Steam default A3 tools): Code: /*%FSM<STATE "BaseWestGuer">*/ class BaseWestGuer/*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/ { ... }; Honestly, I have no idea why is it happening, all other FSM data e.g., links, inits, etc.) are correct. Moricky's first response was spot on (naturally!) - just I didn't quite realise how to manually correct the fsm. Basically, all the class names were turning blank after saving. Opening the FSM with notepad, entering the class names, then saving, has enabled me to load the FSM without a CTD. I feel the end is in sight! :) Very odd though - maybe my version of the FSM editor is not working right? Ah well, guess at least I think I've figured what needs to happen. Just had to get my head around the coding first! ---------- Post added at 21:09 ---------- Previous post was at 20:38 ---------- Cool - all working! As outlined above - just needed to manually edit the FSM with the notepad! @IndeedPete - again, thanks for your help, matey! You're a legend! Edited February 21, 2015 by Kydoimos Share this post Link to post Share on other sites
IndeedPete 1038 Posted February 21, 2015 That's odd. But glad you made it.^^ Share this post Link to post Share on other sites
Kydoimos 916 Posted February 22, 2015 Also, to anyone interested, sublinks are also lost on saving and need to be defined via notepad! :) Share this post Link to post Share on other sites