kremator 1064 Posted August 29, 2013 Using some of the character animations, like the repair one, for civilians would be nice, or ambient animals within the player's radius. Yes I'd like to see them stroke a pussy (cat!) Damn no cats in ... why der no cats or dogs ? Share this post Link to post Share on other sites
tortuosit 485 Posted August 29, 2013 TPW, you are my hero again. Looking forward to a addon version. Share this post Link to post Share on other sites
tpw 2311 Posted August 29, 2013 (edited) MP (but not Dedicated) compatible test scripts: MP testers urgently required OK guys I'm getting closer to an addon release but before I do I'd really appreciate if some of you MP afficionados could test these scripts in an MP environment: Ambient Civs (SP/MP): /* AMBIENT CIVILIAN SCRIPT - MP COMPATIBLE tpw 20130829 - This script will gradually spawn civilians into houses within a specified radius of the player. - Civilian density (how many houses per civilian) can be specified. - Civilian density will halve at night. - Civilians will then wander from house to house, with a specified number of waypoints - If a civilian is killed another will spawn - Civs are removed if more than the specified radius from the player Disclaimer: Feel free to use and modify this code, on the proviso that you post back changes and improvements so that everyone can benefit from them, and acknowledge the original author (tpw) in any derivative works. To use: 1 - Save this script into your mission directory as eg tpw_civ.sqf 2 - Call it with 0 = [200,15,10] execvm "tpw_civ.sqf", where 200 = radius, 5 = number of waypoints, 10 = how many houses per civilian */ if (isDedicated) exitWith {}; private ["_civlist","_sqname","_centree","_centrew","_centrec","_centrer"]; // READ IN VARIABLES tpw_civ_radius = _this select 0; tpw_civ_waypoints = _this select 1; tpw_civ_density = _this select 2; // VARIABLES _civlist = ["Civilian_F","C_man_1","C_man_1_1_F","C_man_1_2_F","C_man_1_3_F","C_man_polo_1_F","C_man_polo_2_F","C_man_polo_3_F","C_man_polo_4_F","C_man_polo_5_F","C_man_polo_6_F"]; tpw_civ_civarray = []; // array holding spawned civs tpw_civ_civnum = 0; // number of civs to spawn // CREATE AI CENTRES SO SPAWNED UNITS KNOW WHO'S AN ENEMY _centerC = createCenter civilian; // CREATE ARRAY OF EMPTY SQUADS TO SPAWN CIVS INTO tpw_civ_civsquadarray = []; for "_z" from 1 to 100 do { _sqname = creategroup civilian; tpw_civ_civsquadarray set [count tpw_civ_civsquadarray,_sqname]; }; // WAYPOINTS AT DIFFERENT HOUSES tpw_civ_fnc_waypoint = { private ["_grp","_house","_m","_pos","_wp"]; //Pick random position within random house _grp = _this select 0; _house = tpw_civ_houses select (floor (random (count tpw_civ_houses))); _wp = getposasl _house; _grp addWaypoint [_wp, 0]; [_grp, (tpw_civ_waypoints - 1)] setWaypointType "CYCLE"; }; // SPAWN CIV INTO EMPTY GROUP tpw_civ_fnc_civspawn = { private ["_civ","_spawnpos","_i","_ct","_sqname"]; // Pick a random house for civ to spawn into _spawnpos = getposasl (tpw_civ_houses select (floor (random (count tpw_civ_houses)))); _civ = _civlist select (floor (random (count _civlist))); //Find the first empty civ squad to spawn into for "_i" from 1 to (count tpw_civ_civsquadarray) do { _ct = _i - 1; _sqname = tpw_civ_civsquadarray select _ct; if (count units _sqname == 0) exitwith { //Spawn civ into empty group _civ createUnit [_spawnpos, _sqname]; //Mark it as owned by this player (leader _sqname) setvariable ["tpw_civ_owner", [player],true]; //Add it to the array of civs for this player tpw_civ_civarray set [count tpw_civ_civarray,leader _sqname]; //Speed and behaviour _sqname setspeedmode "LIMITED"; _sqname setBehaviour "SAFE"; //Assign waypoints for "_i" from 1 to tpw_civ_waypoints do { 0 = [_sqname] call tpw_civ_fnc_waypoint; }; [_sqname, (tpw_civ_waypoints - 1)] setWaypointType "CYCLE"; }; }; }; // SEE IF ANY CIVS OWNED BY OTHER PLAYERS ARE WITHIN RANGE, WHICH CAN BE USED INSTEAD OF SPAWNING A NEW CIV tpw_civ_fnc_nearciv = { private ["_owner"]; { if (isMultiplayer) then { // Live units within range if (_x distance vehicle player < tpw_civ_radius && alive _x) then { _owner = _x getvariable ["tpw_civ_owner",[]]; //Units with owners, but not this player if ((count _owner > 0) && !(player in _owner)) exitwith { _owner set [count _owner,player]; // add player as another owner of this civ _x setvariable ["tpw_civ_owner",_owner,true]; // update ownership tpw_civ_civarray set [count tpw_civ_civarray,_x]; // add this civ to the array of civs for this player }; }; } foreach allunits; }; //Otherwise, spawn a new civ [] call tpw_civ_fnc_civspawn; }; // PERIODICALLY UPDATE POOL OF ENTERABLE HOUSES NEAR PLAYER, DETERMINE MAX CIVILIAN NUMBER, DISOWN CIVS FROM DEAD PLAYERS IN MP 0 = [] spawn { while {true} do { private ["_allhouses","_civarray","_deadplayer"]; _allhouses = nearestObjects [position vehicle player,["House"],tpw_civ_radius]; tpw_civ_houses = []; { if (((_x buildingpos 0) select 0) != 0) then { tpw_civ_houses set [count tpw_civ_houses,_x]; } } foreach _allhouses; tpw_civ_civnum = floor ((count tpw_civ_houses) / tpw_civ_density); // Fewer civs at night if (daytime < 5 || daytime > 20) then { tpw_civ_civnum = floor (tpw_civ_civnum / 2); }; // Check if any players have been killed and disown their civs if (isMultiplayer) then { { if ((isplayer _x) && !(alive _x)) then { _deadplayer = _x; _civarray = _x getvariable ["tpw_civarray"]; { _x setvariable ["tpw_civ_owner",(_x getvariable "tpw_civ_owner") - [_deadplayer],true]; } foreach _civarray; }; } foreach allunits; }; sleep 10; }; }; // MAIN LOOP - ADD AND REMOVE CIVS AS NECESSARY while {true} do { tpw_civ_removearray = []; //hintsilent format ["%1 of %2",count tpw_civ_civarray,tpw_civ_civnum]; // Add civs if there are less than the calculated civilian density for the player's current location if (count tpw_civ_civarray < tpw_civ_civnum) then { [] call tpw_civ_fnc_nearciv; }; { // Remove dead civ from players array (but leave body) if !(alive _x) then { tpw_civ_removearray set [count tpw_civ_removearray,_x]; } else { // Check if civ is out of range and not visible to player. If so, disown it and remove it from players civ array if (_x distance vehicle player > tpw_civ_radius && ((lineintersects [eyepos player,getposasl _x]) || (terrainintersectasl [eyepos player,getposasl _x]))) then { _x setvariable ["tpw_civ_owner", (_x getvariable "tpw_civ_owner") - [player],true]; tpw_civ_removearray set [count tpw_civ_removearray,_x]; }; // Delete the live civ and its waypoints if it's not owned by anyone if (count (_x getvariable ["tpw_civ_owner",[]]) == 0) then { while {(count (waypoints( group _x))) > 0} do { deleteWaypoint ((waypoints (group _x)) select 0); }; deletevehicle _x; }; }; } foreach tpw_civ_civarray; //Update players civ array tpw_civ_civarray = tpw_civ_civarray - tpw_civ_removearray; player setvariable ["tpw_civarray",tpw_civ_civarray,true]; sleep random 10; }; Ambient Cars (SP/MP): /* AMBIENT CIVILIAN TRAFFIC SCRIPT - MP COMPATIBLE tpw 20130829 - This script will gradually spawn civilian traffic, up to a maximum specified, onto roads within a specified radius of the player. - Cars will then drive, with a specified number of waypoints. - If a civilian driver is killed or car damaged another will spawn. - Cars are removed if more than the specified radius from the player. Disclaimer: Feel free to use and modify this code, on the proviso that you post back changes and improvements so that everyone can benefit from them, and acknowledge the original author (tpw) in any derivative works. To use: 1 - Save this script into your mission directory as eg tpw_cars.sqf 2 - Call it with 0 = [1000,15,4] execvm "tpw_cars.sqf", where 1000 = radius, 15 = number of waypoints, 4 = max cars */ if (isDedicated) exitWith {}; private ["_civlist","_carlist","_sqname","_centerC"]; // READ IN VARIABLES tpw_car_radius = _this select 0; tpw_car_waypoints = _this select 1; tpw_car_num = _this select 2; // VARIABLES _civlist = ["Civilian_F","C_man_1","C_man_1_1_F","C_man_1_2_F","C_man_1_3_F","C_man_polo_1_F","C_man_polo_2_F","C_man_polo_3_F","C_man_polo_4_F","C_man_polo_5_F","C_man_polo_6_F"]; _carlist = ["C_Offroad_01_F","C_Offroad_01_F","C_Offroad_01_F","C_Offroad_01_F","C_Quadbike_01_F"]; // more cars than quadbikes tpw_car_cararray = []; // array holding spawned cars tpw_car_farroads = []; // roads > 250m from unit tpw_car_roadlist = []; // roads near unit // CREATE AI CENTRE _centerC = createCenter civilian; // CREATE ARRAY OF EMPTY SQUADS TO SPAWN CARS INTO tpw_car_squadarray = []; for "_z" from 1 to 100 do { _sqname = creategroup civilian; tpw_car_squadarray set [count tpw_car_squadarray,_sqname]; }; // WAYPOINTS tpw_car_fnc_waypoint = { private ["_grp","_road","_wp"]; //Pick random position within random house _grp = _this select 0; _road = tpw_car_roadlist select (floor (random (count tpw_car_roadlist))); _wp = getposasl _road; _grp addWaypoint [_wp, 0]; [_grp,(tpw_car_waypoints - 1)] setWaypointType "CYCLE"; }; // SPAWN CIV/CAR INTO EMPTY GROUP tpw_car_fnc_carspawn = { private ["_civ","_car","_roadseg","_spawnpos","_spawndir","_i","_ct","_sqname"]; // Pick a random road segment to spawn car and civ [] call tpw_car_fnc_roadpos; _roadseg = tpw_car_farroads select (floor (random (count tpw_car_farroads))); _spawnpos = getposasl _roadseg; _spawndir = getdir _roadseg; _civ = _civlist select (floor (random (count _civlist))); _car = _carlist select (floor (random (count _carlist))); //Find the first empty civ squad to spawn into for "_i" from 1 to (count tpw_car_squadarray) do { _ct = _i - 1; _sqname = tpw_car_squadarray select _ct; if (count units _sqname == 0) exitwith { _spawncar = _car createVehicle _spawnpos; _spawncar setdir _spawndir; _civ createunit [_spawnpos,_sqname,"this moveindriver _spawncar;this setbehaviour 'CARELESS'"]; //Mark it as owned by this player _spawncar setvariable ["tpw_car_owner", [player],true]; //Add car to the array of spawned civs tpw_car_cararray set [count tpw_car_cararray,_spawncar]; //Assign waypoints for "_i" from 1 to tpw_car_waypoints do { 0 = [_sqname] call tpw_car_fnc_waypoint; }; [_sqname, (tpw_car_waypoints - 1)] setWaypointType "CYCLE"; }; }; }; // SEE IF ANY CARS OWNED BY OTHER PLAYERS ARE WITHIN RANGE, WHICH CAN BE USED INSTEAD OF SPAWNING A NEW CIV tpw_car_fnc_nearcar = { private ["_owner","_nearcars"]; if (isMultiplayer) then { // Array of near cars _nearcars = (position player) nearEntities [["Car"], tpw_car_radius]; // Live units within range if (_x distance vehicle player < tpw_car_radius && alive _x) then { { _owner = _x getvariable ["tpw_car_owner",[]]; //Units with owners, but not this player if ((count _owner > 0) && !(player in _owner)) exitwith { _owner set [count _owner,player]; // add player as another owner of this car _x setvariable ["tpw_car_owner",_owner,true]; // update ownership tpw_car_cararray set [count tpw_car_cararray,_x]; // add this car to the array of cars for this player }; } foreach _nearcars; }; }; //Otherwise, spawn a new car [] call tpw_car_fnc_carspawn; }; // POOL OF ROAD POSTIONS NEAR PLAYER tpw_car_fnc_roadpos = { tpw_car_roadlist = (position player) nearRoads tpw_car_radius; tpw_car_farroads = []; { if (vehicle player distance position _x > 250) then { tpw_car_farroads set [count tpw_car_farroads,_x]; }; } foreach tpw_car_roadlist; }; sleep 3; // MAIN LOOP - ADD AND REMOVE CARS AS NECESSARY, CHECK IF OTHER PLAYERS HAVE DIED (MP) while {true} do { //hintsilent format ["%1 of %2",count tpw_car_cararray,tpw_car_num]; private ["_driver","_cararray","_deadplayer"]; tpw_car_removearray = []; // Add cars if (count tpw_car_cararray < tpw_car_num) then { 0 = [] call tpw_car_fnc_nearcar; }; //Check if car is out of range and not visible to player. If so, disown it and remove it from players car array { if (_x distance vehicle player > tpw_car_radius && ((lineintersects [eyepos player,getposasl _x]) || (terrainintersectasl [eyepos player,getposasl _x]))) then { _x setvariable ["tpw_car_owner", (_x getvariable "tpw_car_owner") - [player],true]; tpw_car_removearray set [count tpw_car_removearray,_x]; }; // Delete the car, driver and waypoints if it's not owned by anyone if (count (_x getvariable ["tpw_car_owner",[]]) == 0) then { _driver = driver _x; while {(count (waypoints( group _driver))) > 0} do { deleteWaypoint ((waypoints (group _driver)) select 0); }; moveout _driver; deletevehicle _driver; deletevehicle _x; }; } foreach tpw_car_cararray; // Update player's car array tpw_car_cararray = tpw_car_cararray - tpw_car_removearray; player setvariable ["tpw_cararray",tpw_car_cararray,true]; // If MP, check if any other players have been killed and disown their cars if (isMultiplayer) then { { if ((isplayer _x) && !(alive _x)) then { _deadplayer = _x; _cararray = _x getvariable ["tpw_cararray"]; { _x setvariable ["tpw_car_owner",(_x getvariable "tpw_car_owner") - [_deadplayer],true]; } foreach _cararray; }; } foreach allunits; }; sleep random 10; }; What I've done is introduce "ownership" of any spawned civs and cars. The idea being that rather than all players in MP each spawning their own set of ambient civs and cars (which would lead to CPU-straining civ/car counts if there were lots of player units all in one town), a player will share another players spawned civs/cars, and only spawn their own if their are none to share. So if there were 10 players in the town, each set to have 5 ambient civs and 4 cars, the total number of spawned civs would still be 5 or so (not 50), and 4 or so cars (not 40). Cars and civs are only "despawned" when their ownership count drops to 0 (ie no player has them in their civ list). Additionally, each player will periodically scan the other players, and if a player dies, his ownership will be removed for any civs/cars. This should prevent "orphaned" civs/cars. It all sounds good on paper and works just fine in SP, but I really need a few of you to test it out in MP and/or look over the code. If it passes muster then I can attempt to make a dedi version, and pack the whole thing up as an addon. Thanks in advance. Edited August 29, 2013 by tpw Share this post Link to post Share on other sites
dale0404 5 Posted August 29, 2013 Hi mate, brilliant work. Quick question, as alluded to earlier in the thread, when you shoot a civvie in a car does the car still disappear immediately or does the car stay in game? Share this post Link to post Share on other sites
tpw 2311 Posted August 29, 2013 Hi mate, brilliant work.Quick question, as alluded to earlier in the thread, when you shoot a civvie in a car does the car still disappear immediately or does the car stay in game? Thanks dale404. I modified it slightly, so that the car will remain until you move out of range and lose line of sight with it. Share this post Link to post Share on other sites
dale0404 5 Posted August 29, 2013 Awesome! Updating my missions now! Err, which scipt / d/l for the new please? Share this post Link to post Share on other sites
tpw 2311 Posted August 29, 2013 Awesome!Updating my missions now! Err, which scipt / d/l for the new please? These ones Share this post Link to post Share on other sites
piXel 0 Posted August 29, 2013 (edited) Nice work and I like reading good scripts. :) I will have a look at it. With regards to multiplay. I am a bit concerned about the ownersip of the player. It could work if script is run on the clientSide but I am unsure when run on the serverside then player might be undifined. And (lineintersects [eyepos player... is good thinking but doen't it behave erratic in Arma? Maybe just distance is enough to delete out of range civs. Maybe we can TS and have a little chat. Cheers. Edited August 29, 2013 by piXel Share this post Link to post Share on other sites
friznit2 350 Posted August 29, 2013 For MP, you're going to run into similar problems of CPU overload if players aren't in the same location (10 players across different parts of the map will spawn a total of 50 civs), and you need to account for disconnects and Join In Progress. On the plus side, a lot of this has already been learnt the hard way by the MSO team (e.g. Highhead's CQB module is a similar concept) and the BIS Module Improvement project from zGuba and Wolffy.au, albeit for ArmA2 but the lessons remain the same. If you're keen to make this a fully supportable MP mod I would strongly encourage you to tap up the ALIVE team on Skype for their experience with coding this sort of thing in MP (including dedi & headless client support). It may save you a lot of heartache! (and personally I would appreciate it too, because I'd love to use a lot more of your scripts in an MP environment!) Share this post Link to post Share on other sites
horrorview 10 Posted August 29, 2013 Hehehehe...this mod is the balls!! Love it! I especially get a kick out of how the civilians get curious and converge upon areas where there's been a firefight. I had a bit of a skirmish outside of one of the medium-sized towns and, once done, I had a bunch of offroad vehicles and cowering civilians approach and surround the perimeter, as if to say "we want to see CSAT burn!". I've got civs set to friendly-to-all, however, so maybe they're all just psychopaths. :P ---------- Post added at 14:41 ---------- Previous post was at 13:21 ---------- Oh man. Now I have a problem. Seems that, when I combine this script with an existing mission, the CSAT guys go nuts and start targeting each other, as well as random items (Lantern! Sleeping bag! Tent!). When I remove the script, everything's copacetic. I AM running it from my player's init, however, as follows: 0 = [200,15,10] execVM "tpw_civ.sqf"; 0 = [200,15,10] execVM "tpw_cars.sqf"; I've read about the Game Logics, but have no idea how to implement one using the script. Anyone feel like helping out a noob? I'd really love to incorporate this into my large Altis missions. Share this post Link to post Share on other sites
piXel 0 Posted August 29, 2013 (edited) I took a look at it. Besides a few typos I think for MP the scripts need to be serverSide. you could use a playableUnits array to evaluate distance with the civilians and cars to keep or delete them. Typos I noticed in the cars script: // SEE IF ANY CARS OWNED BY OTHER PLAYERS ARE WITHIN RANGE, WHICH CAN BE USED INSTEAD OF SPAWNING A NEW CIV tpw_car_fnc_nearcar = { private ["_owner","_nearcars"]; if (isMultiplayer) then { // Array of near cars _nearcars = (position player) nearEntities [["Car"], _tpw_car_radius]; // Live units within range if (_x distance vehicle player < tpw_car_radius && alive _x) then { { _owner = _x getvariable ["tpw_car_owner",[]]; //Units with owners, but not this player if ((count _owner > 0) && !(player in _owner)) exitwith { _owner set [count _owner,player]; // add player as another owner of this car _x setvariable ["tpw_car_owner",_owner,true]; // update ownership tpw_car_cararray set [count tpw_ccar_cararray,_x]; // add this car to the array of cars for this player }; } foreach _nearcars; }; }; Hope it helps a bit. Keep up the good work! Edited August 29, 2013 by piXel Share this post Link to post Share on other sites
Woodpeckersam 18 Posted August 29, 2013 TPW, it's me ArmASalt3, as you may notice I have a different Username. This is the one I used when I was in OFP, thank god i got it back. No problems mate about using the script, even if you make the script even better, theres no shortage of brilliance in you mate. Just have to find a way to get ALL civilian clothes from the config rather than type each name individually. Great work on the latest update =) Share this post Link to post Share on other sites
tpw 2311 Posted August 29, 2013 Nice work and I like reading good scripts. :)I will have a look at it. With regards to multiplay. I am a bit concerned about the ownersip of the player. It could work if script is run on the clientSide but I am unsure when run on the serverside then player might be undifined. And (lineintersects [eyepos player... is good thinking but doen't it behave erratic in Arma? Maybe just distance is enough to delete out of range civs. At the moment I am interested in client MP just to see if the concept of sharing civs actually works. The dedi version is a whole different can of worms regarding players. lineintersects actually works really well, I use it without issues in my TPW LOS scripts. For MP, you're going to run into similar problems of CPU overload if players aren't in the same location (10 players across different parts of the map will spawn a total of 50 civs), and you need to account for disconnects and Join In Progress. On the plus side, a lot of this has already been learnt the hard way by the MSO team (e.g. Highhead's CQB module is a similar concept) and the BIS Module Improvement project from zGuba and Wolffy.au, albeit for ArmA2 but the lessons remain the same. If you're keen to make this a fully supportable MP mod I would strongly encourage you to tap up the ALIVE team on Skype for their experience with coding this sort of thing in MP (including dedi & headless client support). It may save you a lot of heartache! (and personally I would appreciate it too, because I'd love to use a lot more of your scripts in an MP environment!) Thanks mate, I appreciate the input. To my mind there's no way around the fact that if there are different players at different locations then they are all going to require their own civs. For MP client, which is what the current test scripts are for, then the civs are clientside and the load is mainly network load. Part of the reason for giving civs and cars absolutely minimal waypoint behaviour is to keep CPU use low. Keen might be too strong a word for my MP aspirations. I don't play MP and have zero interest in it and, but every time I release something the MP people demand an MP version. I do this for fun, and once MP is involved the fun seems to disappear to be replaced by responsibility. Hehehehe...this mod is the balls!! Love it! I especially get a kick out of how the civilians get curious and converge upon areas where there's been a firefight. I had a bit of a skirmish outside of one of the medium-sized towns and, once done, I had a bunch of offroad vehicles and cowering civilians approach and surround the perimeter, as if to say "we want to see CSAT burn!". I've got civs set to friendly-to-all, however, so maybe they're all just psychopaths. :P---------- Post added at 14:41 ---------- Previous post was at 13:21 ---------- Oh man. Now I have a problem. Seems that, when I combine this script with an existing mission, the CSAT guys go nuts and start targeting each other, as well as random items (Lantern! Sleeping bag! Tent!). When I remove the script, everything's copacetic. I AM running it from my player's init, however, as follows: 0 = [200,15,10] execVM "tpw_civ.sqf"; 0 = [200,15,10] execVM "tpw_cars.sqf"; I've read about the Game Logics, but have no idea how to implement one using the script. Anyone feel like helping out a noob? I'd really love to incorporate this into my large Altis missions. It's fine to run from the player init. You problem is related to these lines, which you can comment out: //west setFriend [east, 0]; //east setFriend [west, 0]; //east setFriend [resistance, 0]; //east setFriend [civilian, 0]; //civilian setFriend [east, 0]; //resistance setFriend [east, 0]; I took a look at it. Besides a few typos I think for MP the scripts need to be serverSide. you could use a playableUnits array to evaluate distance with the civilians and cars to keep or delete them. Typos I noticed in the cars script: // SEE IF ANY CARS OWNED BY OTHER PLAYERS ARE WITHIN RANGE, WHICH CAN BE USED INSTEAD OF SPAWNING A NEW CIV tpw_car_fnc_nearcar = { private ["_owner","_nearcars"]; if (isMultiplayer) then { // Array of near cars _nearcars = (position player) nearEntities [["Car"], _tpw_car_radius]; // Live units within range if (_x distance vehicle player < tpw_car_radius && alive _x) then { { _owner = _x getvariable ["tpw_car_owner",[]]; //Units with owners, but not this player if ((count _owner > 0) && !(player in _owner)) exitwith { _owner set [count _owner,player]; // add player as another owner of this car _x setvariable ["tpw_car_owner",_owner,true]; // update ownership tpw_car_cararray set [count tpw_ccar_cararray,_x]; // add this car to the array of cars for this player }; } foreach _nearcars; }; }; Hope it helps a bit. Keep up the good work! Thanks again PiXel, I have fixed that typo. As explained above, the scripts are clientside while I evaluate whether civ sharing works. Server side comes later if the whole thing doesn't end up pissing me off too much! ---------- Post added at 08:09 ---------- Previous post was at 08:08 ---------- TPW, it's me ArmASalt3, as you may notice I have a different Username. This is the one I used when I was in OFP, thank god i got it back.No problems mate about using the script, even if you make the script even better, theres no shortage of brilliance in you mate. Just have to find a way to get ALL civilian clothes from the config rather than type each name individually. Great work on the latest update =) Glad you got your name back! I tried your uniform idea and it seems to work OK, except for the hats. For some reason you can't put hats on civs. Share this post Link to post Share on other sites
jumpinghubert 48 Posted August 29, 2013 please can someone make a demo mission for a noob (=me) till there is a addon-version out? Share this post Link to post Share on other sites
tpw 2311 Posted August 29, 2013 please can someone make a demo mission for a noob (=me) till there is a addon-version out? Just hold tight, I will release the addon tonight! Share this post Link to post Share on other sites
jumpinghubert 48 Posted August 29, 2013 yes sir! :p sorry for my impatience.. Share this post Link to post Share on other sites
tpw 2311 Posted August 29, 2013 yes sir! :p sorry for my impatience.. Keine probleme! Share this post Link to post Share on other sites
sttosin 67 Posted August 30, 2013 Tpw, it looks like the car script throws error when I spawn on an island with no room for cars to spawn. I spawned on Atsalis island north of the main island with the following in my init: 0 = [200,15,10] execvm "tpw_civ.sqf"; 0 = [2000,15,10] execvm "tpw_cars.sqf". Got in a chopper and flew out to sea. As soon as I was in the middle of nowhere I got the "error in undefined" line 136. Thanks for this script/soon to be mod. It makes the map come alive. Share this post Link to post Share on other sites
OrLoK 20 Posted August 30, 2013 Hello there Really looking forward to the addon version. Glad to hear there are others who mainly SP as well. I mainly play some form of dynamic mission with Arma and having an empty island just feels wrong, no matter the civvie AI intelligence. I also feel oddly bad when a civvie is killed during one of my operations and forces me naturally to play more carefully rather than saturating the area with arty etc. Good stuff, hope the animals come soon. Rgds LoK Share this post Link to post Share on other sites
tpw 2311 Posted August 30, 2013 Tpw, it looks like the car script throws error when I spawn on an island with no room for cars to spawn. I spawned on Atsalis island north of the main island with the following in my init: 0 = [200,15,10] execvm "tpw_civ.sqf"; 0 = [2000,15,10] execvm "tpw_cars.sqf". Got in a chopper and flew out to sea. As soon as I was in the middle of nowhere I got the "error in undefined" line 136.Thanks for this script/soon to be mod. It makes the map come alive. Nice one, thanks for that observation. You are right too. I will add a road segment count check Share this post Link to post Share on other sites
horrorview 10 Posted August 30, 2013 It's fine to run from the player init. You problem is related to these lines, which you can comment out: //west setFriend [east, 0]; //east setFriend [west, 0]; //east setFriend [resistance, 0]; //east setFriend [civilian, 0]; //civilian setFriend [east, 0]; //resistance setFriend [east, 0]; Ah! Cheers, TPW!! :) I'll give it a go! Share this post Link to post Share on other sites
Azza FHI 50 Posted August 30, 2013 do u plan on doing a dedi server version? Share this post Link to post Share on other sites
tortuosit 485 Posted August 30, 2013 please can someone make a demo mission for a noob (=me) till there is a addon-version out? Dale's mission(s?), for sure "Rescue the doctor", has cars and civilians. It's on Steam Workshop. Share this post Link to post Share on other sites
dale0404 5 Posted August 30, 2013 Dale's mission(s?), for sure "Rescue the doctor", has cars and civilians. It's on Steam Workshop. Indeed it does! Please feel free to de-PBO it if you want. (Its the one on Altis)! Share this post Link to post Share on other sites