Duke49th 1 Posted November 12, 2009 or just"Its done when its done" I heared this text is "free for use" since Duke is gone loooooooooooool No it's not!:coop: Share this post Link to post Share on other sites
Kikuchiyo 0 Posted November 13, 2009 I crossed all my 12 fingers too :D Very nice. This means you can code even faster then people with ten fingers. :D Keep up the good work mate. Share this post Link to post Share on other sites
silola 1087 Posted November 18, 2009 Hi :) There are minor news ... As I had indicated earlier, it is now also possible to create zones in the form of an ellipse, as it appears on the following image: Another news is that the DAC can now generate objects within a zone instead of waypoints. For example, to place random empty vehicles into a specific area. Of course there are many other potential applications for this feature. I made a few extreme attempts, just to illustrate the possibilities a little bit better ;-) Here the result: Greeting Silola Share this post Link to post Share on other sites
KeyCat 131 Posted November 18, 2009 Cool stuff! For example, to place random empty vehicles into a specific area. Of course there are many other potential applications for this feature. Good feature and will help creating minefields, now I just wish we had some more AP mines types to pick from. /KC Share this post Link to post Share on other sites
Kikuchiyo 0 Posted November 19, 2009 You will get some AP mines in ACE. Keep plugging away at it Silola. Its groovy baby. Share this post Link to post Share on other sites
dmarkwick 261 Posted November 19, 2009 (edited) Fantastic news about the new placement functionality Silola. Looks like this iteration is worthy of more than a mere version 0.1 increase :) As a discussion point, is it at all possible to add in user-defined criteria to object/waypoint placement in the same way that it's already possible to add in AI enhancement to DAC? For example: say I use the above new functionality to return a position, I might like to add in my own function over the top of that, say find a tree around the point, or find an internal building position or something. Any function that might return a position let's say. As an example to help visualise this, imagine that I use DAC to return a potential position, then my own function is called. It has a 75% chance of returning the original DAC position, and a 25% chance of returning a new position based on a search for an internal building position (if any), at which point I will place an ammo box, so that there is both a waypoint and an ammo box at this position. Now, by careful observation of the patrolling group, I can see that there is a "suspicious" building and if I search it, I might find something interesting :) Edited November 19, 2009 by DMarkwick Share this post Link to post Share on other sites
mcpxxl 2 Posted November 19, 2009 :butbut: Du bist krank echt loool Share this post Link to post Share on other sites
cross 1 Posted November 19, 2009 -3DE it is blocked ATM :-( :( .... I was looking forward to it. I hope you release it someday.. I hate Visitor GUI. as for DAC... :bounce3: .. Great news. Share this post Link to post Share on other sites
mattxr 9 Posted November 19, 2009 :( .... I was looking forward to it. I hope you release it someday..I hate Visitor GUI. as for DAC... :bounce3: .. Great news. How do you mean blocked? - Hmm very nice Silola, the concept for the random placement of objects is awesome. i also see many uses for it, DAC will sure be must have for mission editors, i just keep thinking of creating missions with this :P The configs/triggers/ units patrolling:rolleyes: dream lol Share this post Link to post Share on other sites
An Fiach 10 Posted November 20, 2009 Thanks for trying to explain, though I can't seem to get my head around it. Regardless, thanks for contributing. Share this post Link to post Share on other sites
TRexian 0 Posted November 20, 2009 An idea, but perhaps not a good one. :) This would be an extension of the group-communication/hunting scenario. If a group detects a significantly larger enemy group, and if there are artillery pieces placed (or maybe even if not), then the AI troops could call in an artillery or mortar barrage? Just thinking out loud. Share this post Link to post Share on other sites
mcpxxl 2 Posted November 20, 2009 Arty is implementet since the first DAC Version ;-) Share this post Link to post Share on other sites
TRexian 0 Posted November 20, 2009 Hrmrmh? For the AI?! Dammit, this thing needs a manual! :D (I guess it was a good idea, though!) Share this post Link to post Share on other sites
mcpxxl 2 Posted November 20, 2009 Just take DAC for ARMA I there you have a Documentation. Then you only need to speculate about the new features :-) Share this post Link to post Share on other sites
silola 1087 Posted November 20, 2009 Hi :) @anfiach Thanks for trying to explain, though I can't seem to get my head around it. Regardless, thanks for contributing. Sorry, but what do u mean exactly? @DMarkwick As an example to help visualise this, imagine that I use DAC to return a potential position, then my own function is called. It has a 75% chance of returning the original DAC position, and a 25% chance of returning a new position based on a search for an internal building position (if any), at which point I will place an ammo box, so that there is both a waypoint and an ammo box at this position.Now, by careful observation of the patrolling group, I can see that there is a "suspicious" building and if I search it, I might find something interesting I like that idea :) I think the main problem is that the waypoints are unknown, which are used by the groups. For example, if DAC is generated in a zone 50 waypoints and 2 infantry groups, and each group gets 10 waypoints at random from the waypoint pool, then it is only known that minimum 10 and maximum 20 waypoints are used from the pool. Nothing else. But there is a simple solution to determine the correct waypoints, if someone knows the internal data of DAC, as I do :D I have prepared a small example which you can try with the old DAC version. First you need a global array to save all the waypoints that are actually used (for example from Zone "Z1"): WpFromZone1 = []; The next step is to put a magic string into the "DAC_Config_Events" and load this event with your zone: _Events_Unit_S = [ ["{if(!(_x in WpFromZone1)) then {WpFromZone1 = WpFromZone1 + [_x]}}foreach _wparray"], [], [], [], [], [] ]; This entry takes the waypoints from each group and stores them in the global array "WpFromZone1". You notice the local Var "_wparray"? Before a group is generated, the waypoints are already chosen and are cached in this array. After a group is generated, the array is passed along with the group information to the main movement script. The waypoints are saved as string and the array WpFromZone1 looks like this: WpFromZone1 = ["DAC_WP_Pool_S select 4","DAC_WP_Pool_S select 12","DAC_WP_Pool_S select 27","DAC_WP_Pool_S select 31"....] The last step is to start a script that processes all the positions (waypoints). The following script looks at each position for a building within a radius of 100 meters (as in your example), and generates (if possible) a random weaponbox at a random positions, with a probability of 70% Hint: the script is not tested. private ["_buildings","_positions","_weaponBoxes","_nextWP","_nextBuilding","_posLogic","_i","_c","_randomPos","_randomUse","_randomBox","_newObj","_countObj"]; _buildings = [];_positions = [];_nextWP = [];_nextBuilding = objNull;_i = 0;_c = 0;_newObj = objNull; _posLogic = "logic" createvehiclelocal [0,0,0];_randomPos = 1;_randomUse = 70;_countObj = 0; _weaponBoxes ["USBasicWeaponsBox","USLaunchersBox","USSpecialWeaponsBox"]; while{_i < count WpFromZone1} do { _nextWP = call compile (WpFromZone1 select _i); _posLogic setpos _nextWP; _nextBuilding = nearestBuilding _posLogic; if(((!(isNull _nextBuilding)) && (!(_nextBuilding in _buildings)) && ((_nextBuilding distance _posLogic) < 100)) then { if(((_nextBuilding buildingpos 1) select 0) == 0) then { _i = _i + 1; } else { _buildings = _buildings + [_nextBuilding]; if((random 100) < _randomUse) then { _c = 1; while{(((_nextBuilding buildingpos _c) select 0) > 0)} do {_positions = _positions + [_c];_c = _c + 1}; _randomPos = (random ((count _positions) - 1));_randomBox = (random ((count _weaponBoxes) - 1)); _newobj = (_weaponBoxes select _randomBox) createvehicle (_nextBuilding buildingpos _randomPos); _newobj setpos (_nextBuilding buildingpos _randomPos);_countObj = _countObj + 1; }; _i = _i + 1; }; } else { _i = _i + 1; }; }; player sidechat format["%1 weaponboxes created.",_countObj]; Maybe u can test this solution and give me some feedback ;-) Greeting Silola ---------- Post added at 06:57 PM ---------- Previous post was at 05:32 PM ---------- Hi and sorry, I found 3 bugs within the script (after my first test @home) :p Here the final version: private ["_buildings","_positions","_weaponBoxes","_nextWP","_nextBuilding","_posLogic","_i","_c","_randomPos","_randomUse","_randomBox","_newObj","_countObj"]; _buildings = [];_positions = [];_nextWP = [];_nextBuilding = objNull;_i = 0;_c = 0;_newObj = objNull; _posLogic = "logic" createvehiclelocal [0,0,0];_randomPos = 1;_randomUse = 70;_countObj = 0; _weaponBoxes = ["USBasicWeaponsBox","USLaunchersBox","USSpecialWeaponsBox"]; while{_i < count WpFromZone1} do { _nextWP = call compile (WpFromZone1 select _i); _posLogic setpos _nextWP; _nextBuilding = nearestBuilding _posLogic; if((!(isNull _nextBuilding)) && (!(_nextBuilding in _buildings)) && ((_nextBuilding distance _posLogic) < 100)) then { if(((_nextBuilding buildingpos 1) select 0) == 0) then { _i = _i + 1; } else { _buildings = _buildings + [_nextBuilding]; if((random 100) < _randomUse) then { _c = 1;_positions = []; while{(((_nextBuilding buildingpos _c) select 0) > 0)} do { _positions = _positions + [_c];_c = _c + 1; }; player sidechat format["%1",_positions]; _randomPos = (random ((count _positions) - 1));_randomBox = (random ((count _weaponBoxes) - 1)); _newobj = (_weaponBoxes select _randomBox) createvehicle (_nextBuilding buildingpos _randomPos); _newobj setpos (_nextBuilding buildingpos _randomPos);_countObj = _countObj + 1; }; _i = _i + 1; }; } else { _i = _i + 1; }; }; player sidechat format["%1 weaponboxes created.",_countObj]; Greeting Silola Share this post Link to post Share on other sites
mattxr 9 Posted November 20, 2009 wow man u are a genius, god of scripting lol I'm going to have a test of this in Arma 1 although guessing by your last post you already have. I guess one more test wont hurt. Share this post Link to post Share on other sites
silola 1087 Posted November 21, 2009 Hi :-) I've made again a small test ... The initial situation consists of 3 zones and the following area I have chosen for the test: In the first zone, different types of buildings will be generated. These buildings should not touch any roads, and should maintain a certain distance between each other. The second zone should generate different trees, bushes and rocks. These objects should also not hit any road. In addition, they should not come into contact with the buildings. In the last zone finally some DAC groups will be generated. These groups should then patrol in this area and the generated buildings will be recognized by the AI, and can be occupied by them. Here 2 pictures from the zones configuration: As you can see, there is a road in the middle of the area. In the small zone, the buildings will be created. In the polygon zone the natural objects will be generated, and in the rectangular zone, the units are produced. The next picture shows you where the buildings were placed: You see that the road is untouched and between the buildings enough distance is remained. Ok, now the natural objects. The next picture shows you the result: Also here you can see that the roads remain unaffected and no object hits a building. The last step is to generate some units within this area: http://yfrog.com/5vsetup5pj Now consider only whether the units properly recognize these buildings: http://yfrog.com/5varma22009112122023151j Another few pics: http://yfrog.com/j4setup6j http://yfrog.com/7dsetup7j http://yfrog.com/j8setup8j I know, these buildings looks not like as the visitor placed ones, but anyway the possibilities with the DAC will continue to grow. I hope u like it :-) Bye Share this post Link to post Share on other sites
TRexian 0 Posted November 22, 2009 Incredible. Just amazing. Share this post Link to post Share on other sites
Kikuchiyo 0 Posted November 22, 2009 Agree TRexian. Incredibly sweet. Share this post Link to post Share on other sites
silola 1087 Posted November 22, 2009 Hi again :-) I just wanted to give the info, that I have finished the new DAC function for generating random objects within a zone. For the object generation, there will be 2 versions. The fast variant identified a position within the zone, and then placed an object without further examination. The slower version, checked each position according to the criteria of the waypoint generation, and places the object only if the position meets all criteria. On the next picture you see on the left side a zone that has been generated with the fast version. The objects were placed without consideration of visitor placed objects... The right zone was generated with the slow version. As you can see there, the visitor placed objects were taken into account. In addition, for example, in the forest areas are also no objects placed. Both versions can be launched within one or two instances. This means that for one zone the script can starts 2 times, and generate the objects in parallel mode. The following picture shows you a zone wich are running in single mode, and there were 586 objects are generated. The other zone is running in parallel mode and there were 957 objects are generated in the same time... There are also 2 ways to generate no objects at certain positions within a zone. In the first way, you can simply add some objects with their names (and a specify radius) in the script call. The second way is to tell the script call a valid logic which has at least one waypoint. Then the positions from each waypoint of that logic unit will be taken into account. The next picture shows you this two methods: Above, the method with the logic and waypoints to keep the railroad free from some objects. Below, the method with the objects. Two tanks, whose names were used in the script call. Roads are generally free from objects (optional). Greeting Silola Share this post Link to post Share on other sites
Uglyboy 10 Posted November 22, 2009 Words cannot describe :eek: Share this post Link to post Share on other sites
andersson 285 Posted November 22, 2009 I would like to write something, but I dont know what.. Maybe flabbergastling is the word? Share this post Link to post Share on other sites
Razor91 17 Posted November 22, 2009 why do you not release it as DAC3 with all these features? :D btw really nice work! Share this post Link to post Share on other sites
buliwyf 4 Posted November 22, 2009 Very very very nice work Silola! :eek: We need DACv2.1 so much... :bounce3: Share this post Link to post Share on other sites