bangabob 45 Posted April 2, 2014 (edited) COS Civilian Occupation SystemCivilian Occupation System efficiently populates all towns and villages with realistic AI civilians and vehicles when needed and removes them when not needed. COS features v0.5 (11/04/14) - Fully automatic. Simply add COS into your mission to populate the map - Quickly populate towns and villages with civilians, vehicles and parked cars - Civilians act realistically and run from combat - Add your own civilian occupation zones easily - Blacklist towns to stop auto-population - Dedicated for civilians. Can be used in conjunction with EOS - Easily add your own scripts to all civilians and vehicles Instructions 1. Copy COS folder into your mission folder 2. Open editor and place an object named SERVER 3. Copy this into the SERVER initialization box: null=[] execVM "cos\cosInit.sqf"; Download below and open Read Me to get started Build 0.5 Download COS ArmaHolic Mirror Previous Builds Build 0.41 Download COS Build 0.4 Download COS Build 0.3 Download COS Build 0.2 Download COS Build 0.1 Download COS ChangeLog Version 0.5 - Aerial activation option added - Town labels now local to players in vicinity of town (Dedicated servers) - Fixed debug feature - Spawn cycle efficiency is improved - Replaced random functions with shuffle outside of loop - Road is not removed from roadlist array in each loop - Count gets unique road from roadlist - Only required road positions are stored - Added notes to scripts for reference - COS should now be called using the Server - Game Logic (See example mission) Version 0.41 - Fixed COS whiteList markers Version 0.4 - Removed useless format operation from cosInit.sqf - MarkerID is now unique for COS to avoid conflict with other scripts - COS now gets marker description from Whitelist markers for COS labels - Added Hatchbacks into COS unit pool - Improved spawning efficiency by moving patrol script outside loop - Patrol script is now run via ExecVM instead of function - Several code optimisations in spawning cylce - Blacklist towns are now removed from COS Version 0.3 - Modular options for Pedestrians/cars/parked - COS now sequentially spawns towns - Set Maximum group limit for COS at any one time (If limit is hit then civilians will be placed into a single group for each town) - COS will now exit spawn loop if player leaves during spawn - Show town label and debug messages now work on dedicated servers Version 0.2 (Updated : 00.25am) - Each towns population is pre-calculated and stored - Each towns Near roads are pre-calculated and stored. - Simple Patrol script uses stored near roads variable instead of generating its own - Patrol script saved as function - Fired-near EV script saved as function - Groups now deleted properly Version 0.1 -Original Build By BangaBob Edited April 12, 2014 by BangaBob 3 Share this post Link to post Share on other sites
Guest Posted April 2, 2014 (edited) Release frontpaged on the Armaholic homepage. Civilian Occupation System (COS) v0.2 ================================================ We have also "connected" these pages to your account on Armaholic. This means in the future you will be able to maintain these pages yourself if you wish to do so. Once this new feature is ready we will contact you about it and explain how things work and what options you have. When you have any questions already feel free to PM or email me! Edited April 2, 2014 by Guest updated to latest version Share this post Link to post Share on other sites
alexsegen 17 Posted April 2, 2014 Woah mate, I will try it when I get home tonight annnnnd give my feedback ^^ Share this post Link to post Share on other sites
bangabob 45 Posted April 2, 2014 (edited) Sorry. I realised shortly after releasing that there was a serious performance bug. This is now resolved in v0.2. Please update if you havn't already Version 0.2 (Updated : 00.25am) - Each towns population is pre-calculated and stored - Each towns Near roads are pre-calculated and stored. - Simple Patrol script uses stored near roads variable instead of generating its own - Patrol script saved as function - Fired-near EV script saved as function - Groups now deleted properly Edited April 2, 2014 by BangaBob Share this post Link to post Share on other sites
Anjan-Riot 10 Posted April 3, 2014 (edited) Hi there, Nice script but I found a tiny error in the debug. cosCore.sqf line 47: _grp=createGroup DefaultSide; _unit = _grp createUnit [_tempUnit, _tempPos, [], 0, "NONE"]; IF (debugCOS) then { _txt=format["INF%1,MKR%2",_counter,_mkr]; _debugMkr=createMarker [_txt,getpos _unit]; _debugMkr setMarkerShape "ICON"; _debugMkr setMarkerType "hd_dot"; _debugMkr setMarkerText "Civ Spawn"; }; player sidechat format ["civilians%1",_grp]; _civilianArray set [count _civilianArray,_grp]; null =[_grp,_roadlist2] call Patrol_FNC; null =[_unit] execVM "cos\addScript_Unit.sqf"; }; I thought it should like this: _grp=createGroup DefaultSide; _unit = _grp createUnit [_tempUnit, _tempPos, [], 0, "NONE"]; IF (debugCOS) then { _txt=format["INF%1,MKR%2",_counter,_mkr]; _debugMkr=createMarker [_txt,getpos _unit]; _debugMkr setMarkerShape "ICON"; _debugMkr setMarkerType "hd_dot"; _debugMkr setMarkerText "Civ Spawn"; player sidechat format ["civilians%1",_grp]; }; _civilianArray set [count _civilianArray,_grp]; null =[_grp,_roadlist2] call Patrol_FNC; null =[_unit] execVM "cos\addScript_Unit.sqf"; }; Edith: It would also very nice if you can make it more modular Civilians = True; Cars = False; Parked_Cars = True; what do you think? anjan Edited April 3, 2014 by Anjan-Riot Share this post Link to post Share on other sites
Tankbuster 1747 Posted April 3, 2014 I've downloaded this and had a quick look through the scripts. Looks nice and lightweight. It appears to be MP compatible if I run it server side only? Share this post Link to post Share on other sites
bangabob 45 Posted April 3, 2014 Everything i change in these early builds is important for reliability, functionality and performance. I feel like i am getting close to the finished version of this script because spawning civilians is all i want this script to do. Simpler the better IMO. Please let me know if you encounter any problems and i will do my best to fix them in the next patch. Version 0.3 changelog - Modular options for Pedestrians/cars/parked - COS now sequentially spawns towns - Set Maximum group limit for COS at any one time (If limit is hit then civilians will be placed into a single group for each town) - COS will now exit spawn loop if player leaves during spawn - Show town label and debug messages now work on dedicated servers ---------- Post added at 17:09 ---------- Previous post was at 17:08 ---------- It appears to be MP compatible if I run it server side only? I have tested it on my dedicated server and it appears to run good. ---------- Post added at 17:10 ---------- Previous post was at 17:09 ---------- Edith: It would also very nice if you can make it more modular Civilians = True; Cars = False; Parked_Cars = True; Thanks for the tip. And that code was left over from my testing (doh). Modular spawning is now available in the latest version. Share this post Link to post Share on other sites
kremator 1065 Posted April 3, 2014 Hey BB, Have you thought about a mod version? Share this post Link to post Share on other sites
bangabob 45 Posted April 3, 2014 Hey BB,Have you thought about a mod version? I dont know, what are the benefits of using a mod version? Currently all the mission creator needs to do is copy the COS folder into his missions and run the execVM in the init.sqf. Share this post Link to post Share on other sites
Grumpy Old Man 3546 Posted April 3, 2014 I dont know, what are the benefits of using a mod version?Currently all the mission creator needs to do is copy the COS folder into his missions and run the execVM in the init.sqf. I'm curious about this too. To use a mod you need to: 1.: Download the mission 2.: Download the mod 3.: Copy the mod into a folder 4.: Edit the startup parameters of A3 5.: repeat steps 1-3 everytime the mod is getting updated 6.: every player who wants to play a mission using this mod has to do steps 1-4 vs. 1.: Download and play the mission It's obvious that you need mods to add vehicles etc. but other than that? 1 Share this post Link to post Share on other sites
fn_Quiksilver 1636 Posted April 3, 2014 Thanks BB I have some applications in mind for COS .. Just have to try to fit it within the ever-present performance budget for MP. Share this post Link to post Share on other sites
jcae2798 132 Posted April 3, 2014 Cool stuff man, keep up the great work Share this post Link to post Share on other sites
Guest Posted April 3, 2014 New version frontpaged on the Armaholic homepage. Civilian Occupation System (COS) v0.3 ================================================ We have also "connected" these pages to your account on Armaholic. This means in the future you will be able to maintain these pages yourself if you wish to do so. Once this new feature is ready we will contact you about it and explain how things work and what options you have. When you have any questions already feel free to PM or email me! Share this post Link to post Share on other sites
kremator 1065 Posted April 3, 2014 Sorry BB. You are right. I thought it was going to be more complicated to get running. I was wrong. I have put in my mission without any problems. Good work mate. Share this post Link to post Share on other sites
Tankbuster 1747 Posted April 4, 2014 If only the civilian drivers didn't keep running the pedestrians down! lol It's carnage out there. Share this post Link to post Share on other sites
Tankbuster 1747 Posted April 4, 2014 Is there anything that can be done to reduce the levels of road deaths? Watch how this fuel truck driver swerves to kill two civilians walking by the side of the road. I think this particular driver might not be typical, though there's no reason for him to make this maneuver, there is nothing else in the road to distract him, and there's no junction there. In testing this, the number of run downs was surprising. We all know the AI drivers can't drive for toffee, but was wondering if there's anything we can do to reduce it, other than not having moving cars? ---------- Post added at 14:02 ---------- Previous post was at 13:53 ---------- And here. Is it possible this is just about fuel truck drivers? Share this post Link to post Share on other sites
kremator 1065 Posted April 4, 2014 Top video is crazy. And BIS wonder why we complain about the AI ! Shocking. Share this post Link to post Share on other sites
Tankbuster 1747 Posted April 4, 2014 Top video is crazy. And BIS wonder why we complain about the AI ! Shocking. It is shocking. The driver actually swerves onto the pavement to run those two guys down. Share this post Link to post Share on other sites
rtek 10 Posted April 4, 2014 this script is greatness. went into one of my missions with ease. gonna put it in all my missions tonight. thanks for making this. Share this post Link to post Share on other sites
katipo66 94 Posted April 4, 2014 Thanks for this BangaBob, Especially this update: Version 0.3 changelog- Modular options for Pedestrians/cars/parked Share this post Link to post Share on other sites
1para{god-father} 105 Posted April 4, 2014 Great work love it :) Share this post Link to post Share on other sites
Tankbuster 1747 Posted April 4, 2014 Problem here; aside from the appalling driving of the AI, which isn't down to this script. :) In Domination, none of the main target markers appear. I think (though I can't be sure) that the marker based technique cosInit uses to find towns and put triggers on them is obliterating the Domination main target marker. Everything works.... The Domi target assets and enemies are there, as well as the civilians, but the marker Domi makes isn't there. :( ---------- Post added at 21:38 ---------- Previous post was at 20:31 ---------- Aha, I have worked out why it's not working in Domi. COS and Domi both use the name of the town as their marker name and marker names must be unique. So the last one created survives, in this case the COS one. Share this post Link to post Share on other sites
KevsNoTrev 44 Posted April 6, 2014 Hey bangabob, quality work as usual, thanks for this. Nice way to populate Civilians - tried EOS but wasn't the same seeing them 'patrolling' a town instead of random wandering. @Tankbuster try this as a replacement for the COS marker creation - line 63 in cosInit.sqf now you'll have unique marker names _foo = createmarker [_markerID, _pos]; The code is already there, it might have been overlooked by Bangabob....:D Share this post Link to post Share on other sites
luckylegs 19 Posted April 6, 2014 To edit population of Zones open COS/cosCore.sqf. I had a look through the script but it wasn't clear to me how to do this. Could someone provide a clearer explanation please? Share this post Link to post Share on other sites