Jump to content

Re-Worked WAI 0.173 - Supported System


Recommended Posts

Ah okay, nah don't like that. There's already heli crashes that spawn with the disabled military chopper missions.

 

--

*Need to setup a testserver, been waiting all day for people to finally get offline to test new stuff :P*

Link to comment
Share on other sites

Hi.

I have still those rpt errors after arma steam update.

20:37:31 Error in expression <Magazine _magazine;};
_para addBackpack _aipack;
{_para addMagazine _x} forEach >
20:37:31   Error position: <_aipack;
{_para addMagazine _x} forEach >
20:37:31   Error Undefined variable in expression: _aipack
20:37:31 File z\addons\dayz_server\WAI\compile\heli_para.sqf, line 137

Anyone know how to fix this?

Link to comment
Share on other sites

Ah okay, nah don't like that. There's already heli crashes that spawn with the disabled military chopper missions.

 

--

*Need to setup a testserver, been waiting all day for people to finally get offline to test new stuff :P*

 

Do you still need a test server?

Link to comment
Share on other sites

Hi Havoc302,
 

Setup one just yesterday. Made myself a nice developing area, should've done that earlier lol. Have been working on other scripts the past few days but i'll get to this one soon enough. Still some minor issues that needs fixing although i already did most of them. You can keep track of what i've done over @ the github commit page. Please tell me if you encounter any problems :)

Link to comment
Share on other sites

I am also working on instead of markers on the map a mission list and description window that pops up whenever u press a certain key. Only if u have a radio on u r u even notified there is a mission available at all. Map markers are too easy. I prefer a simple description with a nearby town named to give a rough idea of where it is. Map markers allow people to snipe missions without having range finders easily by marking the map and adjusting for that range

Link to comment
Share on other sites

I am also working on instead of markers on the map a mission list and description window that pops up whenever u press a certain key. Only if u have a radio on u r u even notified there is a mission available at all. Map markers are too easy. I prefer a simple description with a nearby town named to give a rough idea of where it is. Map markers allow people to snipe missions without having range finders easily by marking the map and adjusting for that range

true but at least on our server we have AAA and SAMs so it is pretty nice to be able to avoid them if you can.

Link to comment
Share on other sites

@Meowzors: I really have no clue who the official author/authors of WAI is/are. By now i quess so many people have worked on it it's safe to call it a community project. What i do know is that williamjbrown is no longer working on WAI and thus we must move on in order to keep this alive and working.

 

It would be a shame if you'd be redoing what i've already done Meowzors. I'd rather have that we work together and you can maybe fork my github and work from there?

 

---

 

@hambeast: I wasn't planning on integrating multiple mission support. But i guess it can be done. I think DZMS does something like divide the missions into difficulty categories and have multiple timers on that. Something like that should'nt be too hard and would be a nice add-on. We could even set markers accordingly like:

  • Green = Easy (spawn and clean every 30 minutes) [Everything with no 50 cal]
  • Yellow = Medium (spawn and clean every 45 minutes) [Everything with =< 2 50 cal]
  • Red = Hard (spawn and clean every hour) [Everything with > 2 50 cal]

The thing is, if we do this, then we definitely need more missions. I was thinking about a mission where bandits capture a town [Cherno / Elektro / Berezino] (paradropping in) and securing some kind of loot in the middle of town square. All with short / medium ranged weapons and reasonable skill sets, but thats just one extra. We need more :P

 

--

 

About the markers and stuff. Those should be configurable options left open for server owners to decide. I like the markers simply because i don't want new players to get overwhelmed and also to make sure the "who killed me" drama is being held at an absolute minimum.

Link to comment
Share on other sites

I think it's great you guys are updating this system as I love this system with it's custom spawn capabilities. I run this alongside DZMS at the moment.

 

I really like the sound of some missions in towns. That really would be new..! Maybe with some missions, the ones without buildings or large objects could also spawn in forests, similar to the idea of spawning in towns as this would use more of the map

 

I also second Davidoss's request earlier to have the ability to loop heli patrols but, would prefer this to be expanded to all custom spawn types. Also, preferably with a switch and a time to set so you can configure some to loop, some not, some to respawn after 10 mins, others after 45 mins etc.

 

With the heli paras you can configure them to be triggered once a player hits a certain radius from the centre of the mission, it would be good if this could be added to other spawn types as well, although I like mine set 'RED' & 'STEALTH' so I'm not sure how they would get to their objective without getting distracted on the way.....maybe that's why they weren't in the original system.

 

Personally, I think there are a couple of things that would be very beneficial updates for this system:

1/ Blacklist areas (like with DZMS) so you can control where you definitely don't want missions, like within 500m of  Stary.

2/ Player check so the missions don't spawn on top of players, although this could be difficult with high pop servers. (but I have a feeling DZMS may already do this...?)

3/ Water check, if it is there currently (sorry I can't read code) it may be a bit broken as some spawn on the shore on Chernarus, which is great, but then the AI often end up in the water, which is not so great (unless it put them in a gun boat.... :))

 

Keep up the superb work! :)

Link to comment
Share on other sites

@RedBaron  I actually made a alternate helipatrol script that you can send multiple waypoints to and it will follow those waypoints and begin the cycle again.  Here is an example spawn of a heli that patrols the main Island of Tavi...

 

[[[16207,13753.5,0],[17319,7482.74,0.001],[10022.2,18632.4,0.001],[13857,19278.1,0.001],[15394.2,16309.1,0.001]],    //Martin,Byeluv,Kameni,Khotanavisk,Sevastopl
[22203.9,19823,212],                 // Position to spawn chopper at (Sector B)
200,                    //Radius of patrol
5,                     //Number of waypoints to give
"UH1H_DZ",                //Classname of vehicle (make sure it has driver and two gunners)
1                        //Skill level of units
] spawn heli_patrol_multi;

 

Added inside of WAI\init.sqf

spawn_groupMulti = compile preprocessFileLineNumbers "\z\addons\dayz_server\WAI\compile\SpawnGroupMulti.sqf";

And here is the code that it calls...

/*
This script will spawn a heli patrol using multiple way points passed to it repeating the route when complete

Proper use: [[way points..[x,y,z],[x,y,z]...],[x,y,z..starting position],N/A,N/A,heli type,skill 0-1
*/

if (!isServer)exitWith{};
private ["_wpnum","_radius","_gunner2","_gunner","_skillarray","_startingpos","_heli_class","_startPos","_helicopter","_unitGroup","_pilot","_skill","_position","_wp"];
_position = _this select 0;
_startingpos = _this select 1;
_radius = _this select 2;
_wpnum = _this select 3;
_heli_class = _this select 4;
_skill = _this select 5;

_skillarray = ["aimingAccuracy","aimingShake","aimingSpeed","endurance","spotDistance","spotTime","courage","reloadSpeed","commanding","general"];

_unitGroup = createGroup east;
_pilot = _unitGroup createUnit ["Bandit1_DZ", [0,0,0], [], 1, "NONE"];
[_pilot] joinSilent _unitGroup;
ai_air_units = (ai_air_units +1);

_helicopter = createVehicle [_heli_class, [(_startingpos select 0),(_startingpos select 1), 200], [], 0, "FLY"];
_helicopter setFuel 1;
_helicopter engineOn true;
_helicopter setVehicleAmmo 1;
_helicopter flyInHeight 150;
_helicopter lock true;
_helicopter addEventHandler ["GetOut",{(_this select 0) setFuel 0;(_this select 0) setDamage 1;}];

_pilot assignAsDriver _helicopter;
_pilot moveInDriver _helicopter;

_gunner = _unitGroup createUnit ["Bandit1_DZ", [0,0,0], [], 1, "NONE"];
_gunner assignAsGunner _helicopter;
_gunner moveInTurret [_helicopter,[0]];
[_gunner] joinSilent _unitGroup;
ai_air_units = (ai_air_units +1);

_gunner2 = _unitGroup createUnit ["Bandit1_DZ", [0,0,0], [], 1, "NONE"];
_gunner2 assignAsGunner _helicopter;
_gunner2 moveInTurret [_helicopter,[1]];
[_gunner2] joinSilent _unitGroup;
ai_air_units = (ai_air_units +1);

{_pilot setSkill [_x,1]} forEach _skillarray;
{_gunner setSkill [_x,_skill]} forEach _skillarray;
{_gunner2 setSkill [_x,_skill]} forEach _skillarray;
{_x addweapon "Makarov";_x addmagazine "8Rnd_9x18_Makarov";_x addmagazine "8Rnd_9x18_Makarov";} forEach (units _unitgroup);
{_x addEventHandler ["Killed",{[_this select 0, _this select 1, "air"] call on_kill;}];} forEach (units _unitgroup);
PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_helicopter];
[_helicopter] spawn veh_monitor;

_unitGroup allowFleeing 0;
_unitGroup setBehaviour "AWARE";
_unitGroup setSpeedMode "FULL";
_unitGroup setCombatMode "RED";

_position2 = [];
{_position2 = _x;
_wp = _unitGroup addWaypoint [[(_position2 select 0),(_position2 select 1),0],200];
_wp setWaypointType "MOVE";
_wp setWaypointCompletionRadius 200;
} forEach _position;

_position1=_position select 0;
_wp = _unitGroup addWaypoint [[(_position1 select 0),(_position1 select 1),0],100];
_wp setWaypointType "CYCLE";
_wp setWaypointCompletionRadius 200;
 

 

I THINK this is what you want? Heli that goes in a circle of points of your choosing.

Link to comment
Share on other sites

@RedBaron  I actually made a alternate helipatrol script that you can send multiple waypoints to and it will follow those waypoints and begin the cycle again.  Here is an example spawn of a heli that patrols the main Island of Tavi...

 

[[[16207,13753.5,0],[17319,7482.74,0.001],[10022.2,18632.4,0.001],[13857,19278.1,0.001],[15394.2,16309.1,0.001]],    //Martin,Byeluv,Kameni,Khotanavisk,Sevastopl

[22203.9,19823,212],                 // Position to spawn chopper at (Sector B)

200,                    //Radius of patrol

5,                     //Number of waypoints to give

"UH1H_DZ",                //Classname of vehicle (make sure it has driver and two gunners)

1                        //Skill level of units

] spawn heli_patrol_multi;

 

Added inside of WAI\init.sqf

spawn_groupMulti = compile preprocessFileLineNumbers "\z\addons\dayz_server\WAI\compile\SpawnGroupMulti.sqf";

And here is the code that it calls...

/*

This script will spawn a heli patrol using multiple way points passed to it repeating the route when complete

Proper use: [[way points..[x,y,z],[x,y,z]...],[x,y,z..starting position],N/A,N/A,heli type,skill 0-1

*/

if (!isServer)exitWith{};

private ["_wpnum","_radius","_gunner2","_gunner","_skillarray","_startingpos","_heli_class","_startPos","_helicopter","_unitGroup","_pilot","_skill","_position","_wp"];

_position = _this select 0;

_startingpos = _this select 1;

_radius = _this select 2;

_wpnum = _this select 3;

_heli_class = _this select 4;

_skill = _this select 5;

_skillarray = ["aimingAccuracy","aimingShake","aimingSpeed","endurance","spotDistance","spotTime","courage","reloadSpeed","commanding","general"];

_unitGroup = createGroup east;

_pilot = _unitGroup createUnit ["Bandit1_DZ", [0,0,0], [], 1, "NONE"];

[_pilot] joinSilent _unitGroup;

ai_air_units = (ai_air_units +1);

_helicopter = createVehicle [_heli_class, [(_startingpos select 0),(_startingpos select 1), 200], [], 0, "FLY"];

_helicopter setFuel 1;

_helicopter engineOn true;

_helicopter setVehicleAmmo 1;

_helicopter flyInHeight 150;

_helicopter lock true;

_helicopter addEventHandler ["GetOut",{(_this select 0) setFuel 0;(_this select 0) setDamage 1;}];

_pilot assignAsDriver _helicopter;

_pilot moveInDriver _helicopter;

_gunner = _unitGroup createUnit ["Bandit1_DZ", [0,0,0], [], 1, "NONE"];

_gunner assignAsGunner _helicopter;

_gunner moveInTurret [_helicopter,[0]];

[_gunner] joinSilent _unitGroup;

ai_air_units = (ai_air_units +1);

_gunner2 = _unitGroup createUnit ["Bandit1_DZ", [0,0,0], [], 1, "NONE"];

_gunner2 assignAsGunner _helicopter;

_gunner2 moveInTurret [_helicopter,[1]];

[_gunner2] joinSilent _unitGroup;

ai_air_units = (ai_air_units +1);

{_pilot setSkill [_x,1]} forEach _skillarray;

{_gunner setSkill [_x,_skill]} forEach _skillarray;

{_gunner2 setSkill [_x,_skill]} forEach _skillarray;

{_x addweapon "Makarov";_x addmagazine "8Rnd_9x18_Makarov";_x addmagazine "8Rnd_9x18_Makarov";} forEach (units _unitgroup);

{_x addEventHandler ["Killed",{[_this select 0, _this select 1, "air"] call on_kill;}];} forEach (units _unitgroup);

PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_helicopter];

[_helicopter] spawn veh_monitor;

_unitGroup allowFleeing 0;

_unitGroup setBehaviour "AWARE";

_unitGroup setSpeedMode "FULL";

_unitGroup setCombatMode "RED";

_position2 = [];

{_position2 = _x;

_wp = _unitGroup addWaypoint [[(_position2 select 0),(_position2 select 1),0],200];

_wp setWaypointType "MOVE";

_wp setWaypointCompletionRadius 200;

} forEach _position;

_position1=_position select 0;

_wp = _unitGroup addWaypoint [[(_position1 select 0),(_position1 select 1),0],100];

_wp setWaypointType "CYCLE";

_wp setWaypointCompletionRadius 200;

 

 

I THINK this is what you want? Heli that goes in a circle of points of your choosing.

Thanks for sharing Meowzers, I will definitely use this. But, when I said loop, I think I used the wrong words, what I meant is that if the heli gets shot down, you could set it somehow so it respawns after a configurable time...

 

But thanks again for the above, this actually covers off something else I'm trying to do just nicely :D

Link to comment
Share on other sites

Completely untested code and from my phone here...

Add one more field to the heli spawn script which is the time in seconds before a respawn (my example is 300 which is 5 minutes)

At top of heliSpawn script somewhere...

_respawn=_this select 6;

At bottom of heliSpawn script...

_helicopter addEventHandler ["Killed",{ Call spawnOnDeath; }];

spawnOnDeath =

{

Sleep _respawn;

[[[16207,13753.5,0],[17319,7482.74,0.001],[10022.2,18632.4,0.001],[13857,19278.1,0.001],[15394.2,16309.1,0.001]], //Martin,Byeluv,Kameni,Khotanavisk,Sevastopl

[22203.9,19823,212], // Position to spawn chopper at (Sector

200, //Radius of patrol

5, //Number of waypoints to give

"UH1H_DZ", //Classname of vehicle (make sure it has driver and two gunners)

1, //Skill level of units

300

] spawn heli_patrol_multi;

};

[\spoiler]

Link to comment
Share on other sites

I have run reworked WAI with  EMS at once.

Working awesome there are  only one error in rpt causing spawning paradroped units without backpack.

That can be ignored.

Anyway if anyone knew some fix i would be pleased.

20:37:31 Error in expression <Magazine _magazine;};
_para addBackpack _aipack;
{_para addMagazine _x} forEach >
20:37:31   Error position: <_aipack;
{_para addMagazine _x} forEach >
20:37:31   Error Undefined variable in expression: _aipack
20:37:31 File z\addons\dayz_server\WAI\compile\heli_para.sqf, line 137

I cant use f3cuk WAI because i need customspawn.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
×
×
  • Create New...