Jump to content
xeno

co30 Domination! One Team

Recommended Posts

Xeno, in Domination 3.03 I noticed that every player could use artillery strikes. Has this been fixed?

Did you play the AI version ? If so then that is intended.

Quote[/b] ]if(!((_this select 2) hasWeapon "MAP_Radio_W")) exitWith {

    [playerSide,"HQ"] sideChat "Funkgeraet ist nicht vorhanden...";

};

Try this instead:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

if(!(player hasWeapon "MAP_Radio_W")) exitWith {

    [playerSide,"HQ"] sideChat "Funkgeraet ist nicht vorhanden...";

};

Xeno

Share this post


Link to post
Share on other sites
When I join my own dedi server, select the mission and start it, my player doesn't have anything:

No actions

No missions are recieved

No player ammocrate

Try this:

remove the following two lines from init.sqf:

Quote[/b] ]

waitUntil {local player};

[] execVM "x_scripts\x_jip.sqf";

Now add a trigger, condition: local player, on activation: xhandle = [] execVM "x_scripts\x_jip.sqf"

That should solve it (I'm going back to that older system)

As you can see from the target names list, I've added random sizes to some of those not located near water or too steep hills.

Good idea... smile_o.gif

The changes that I've made so far are:

Quote[/b] ]

- changed number of spawned air defense groups from 14 to 3 (if you want more edit d_with_airdefense in init.sqf)

- fixed: air defense shilkas do not spawn in or near your base anymore

- fixed arti target height

- added random height for HE artillery

- changed JIP again

- player AI now gets deleted if the player creates a new group or joins another group (AI version only)

- players now do not get transfered to their (human) leader if the leader parajumps or teleports (AI version only)

- added d_do_delete_empty_main_target_vecs option in init.sqf. If set to false empty vehicles at cleared main targets will not get

 deleted after 25-30 minutes (default = true)

- fixed: player did stay captive (setCaptive true) if he was killed during the intro

- fixed: stupid copy and paste error in x_helilift_wreck (now the wreck chopper is able to pick up destroyed bonus vehicles again)

- increased the range for helilift (means, action menu entry appears earlier now)

- a marker now shows up where a bonus vehicle got destroyed (gets removed once it will be transported to wreck repair, not JIPd)

- increased the range for the repair wreck point

- no "Waiting for new orders..." will appear once the last target is cleared (and no parajump flag will get created)

- added d_no_sabotage option. If set to true no enemy AI specops will attack the base (default = false)

- boats do now only respawn if they are destroyed

- more paratroopers will now appear over the main target as long as the main target radio tower is still up

- no teleport or respawn to mobile respawns when they are driving

- vehicles in spawned vehicle groups do not spawn on top of each other anymore

- enemy patrols near sidemissions now

- fixed: you now really get your weapons back if you loose them while swimming

- fixed: if a player is in a vehicle markers don't have the correct direction

Don't have that much time currently otherwise I would have done more allready...

Xeno

Share this post


Link to post
Share on other sites

@Xeno:

Thanks for the hint. It was indeed the AI version. But does it make sense to have the artillery call avaiable for every player? crazy_o.gif Guess I'll connect it to the mapfact radio operator stuff.

Share this post


Link to post
Share on other sites

I'm actually considering going even further with this. Not only should the artillery operator (I'm calling them platoon leader and platoon sergeant though) be the only ones that can make the calls, but also restrict them similar to the Mando stuff in that they have to use the radio inside the MHQ vehicles. Same thing with air drops. Let the MHQ be the radio vehicle.

I've also added check against friendly units in the area, so nobody in the role should be able to go bananas causing teamkills using artillery. On the pluss side, it is more damaging with my setup, using more guns per round. I'm considering using two rounds, but triple the wait time.

This makes him more in charge of the MHQ as a HQ unit would be, instead of running around on the battlefield getting shot. Air threats would have to be dealt with before entering the MHQ, but in my setup they are waaaay less frequent. Sorry, but my head starts hurting if there are too much airunits going on constantly  whistle.gif

@Xeno: (deleted old text, fixed self induced problem in init.sqf, your "new way" appears to work ok, no trigger needed).

Noticed a rather crazy bug that I think needs adressing. When static units are placed, i.e. D-30s, they more than often appear in a star shaped formation destroying themselves and killing the crew (again, placed on top of eachother). I checked the mando version which also does this, and I haven't hacked that one to pieces yet smile_o.gif

Share this post


Link to post
Share on other sites

Xeno,

One of the joys of this mission is that it is so configurable and to be honest, I've learnt an awful lot by reading your code and fiddling with stuff. I had never dePBO'd anything until you rolled up! smile_o.gif

So, now that I've got my hands dirty with code, I want to know if it'll be possible to modify this mission by other means.

At the moment, in the status menu, we can turn player markers on and off; I think it'd be cool to see many many more options changeable from inside the game, just for example, I'd like to have a screen that we can specify what vehicles can be picked up by UH #4. I know these can all be done by code, but it'd be cool if we could do this either by dialogues inside the game or maybe by a setup application ran outside of the game, maybe a web interface or something?

The reason I ask now that if 3.05 is to be the last version, then the light modders like me would really like to get to work on this and change it so that it's just so.

Another example, we play West AI mostly, but I think it improves the teamwork aspect to have only arty operators being able to call in the 'Nine Mile Snipers' as they are called in the British Army. That said, having all of that available from an MHQ is cool too.

There's so much stuff I'd love to graft onto this mission I just cannot remember it all!

Share this post


Link to post
Share on other sites

Can anyone point me in the right direction of scaling down the main targets for say a 4 man squad? I looked through as much of this thread as I could and screened some of the scripts, just looking for a helpful pointer. Thanks smile_o.gif

Share this post


Link to post
Share on other sites
Quote[/b] ]Air threats would have to be dealt with before entering the MHQ, but in my setup they are waaaay less frequent. Sorry, but my head starts hurting if there are too much airunits going on constantly whistle.gif

biggrin_o.gif I know what you mean. But have you ever dealed with a Mig-15 chasing your blackhawk while you sit in it? It's amazing how the AI handles this plane - sometimes even better than the Su-34B.

Share this post


Link to post
Share on other sites

x_scripts\x_createguardpatrolscripts.sqf is probably a good start. A four man squad? That's not much. You should maybe try to remove most if not all the heavies such as tanks and shilkas, scale down many smaller armored and statics, and instead have a go against mostly infantry.

The sidemissions would need to be scaled too, done in x_scripts\getsidemission.sqf, but there is quite a bit of editing involved since every sidemission has different numbers.

@Xeno: I have trouble with the drop script, in that the drop chopper will not either reach its final waypoint (I've had problems with this due to flyInHeight before), or not reaching the area. Not sure what goes on here, but I'm getting "heli still in the air" message.

Also, the AH-6 will have its magazines removed, but not refilled. Probably fixeable with setAmmo as before.

@Legislator: No I haven't smile_o.gif I'm an infantry fan, and I'm not very much into flying. I do it if I must.

Btw, Xeno has changed "Airdefence" from 14 way down. Here is a suggestion, in code format wink_o.gif

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

for "_i" from 1 to (d_with_airdefense select 4) do {

waitUntil {sleep random 0.3;can_create_group};

_agrp = [d_enemy_side] call x_creategroup;

_xpos = _wp_array select ([count _wp_array] call x_getrandom);

_rand = random 1;

if (_rand < 0.1) then {

_unit_array = ["shilka", d_enemy_side] call x_getunitliste;

}

else {

if (_rand >=0.1 && _rand < 0.7) then {

_unit_array = ["brdm", d_enemy_side] call x_getunitliste;

}

else {

_unit_array = ["basic", d_enemy_side] call x_getunitliste;

};

};

You'll get red on the radar, but not knowing what's there. Even "brdm"s can shoot down choppers, but you can also outmanouver their shooting, making MH-6 flying enjoyable and demanding and knowing that this might even be surviveable. Adding in "basic" won't show up in radar, but you know you're in trouble when AA guys are firing missiles your way. So with this code, I went from 14 to 20 insetead biggrin_o.gif May go back to 10, was a bit too much. But purely Shilkas was waaay too dangerous, but it's cool to know there *might* be one in there somewhere.

Share this post


Link to post
Share on other sites

No, I'm trying with AH-6 and I'm getting nowhere. The vehicleChat says FFARs are reloading, but they aren't added. Before the x_reload script is run, setVehicleAmmo works from a radiotrigger, but not after it has been run.

The odd thing is that the M134 minigun is still reloaded...

Edit: Have tried to fix and improve the script, here is what I came up with. Note that I'm considering air vehicles much more complex, they will take longer time to service. Your small error was adding and removing within the same forEach _magazines. My version will also gradually repair and refuel vehicles instead of instantly. Will test in multiplayer now.

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

// by Xeno

private ["_config","_count","_i","_magazines","_object","_type","_type_name","_fuel"];

_object = _this select 0;

_type = typeof _object;

_fuel = fuel _object;

if (_object isKindOf "ParachuteBase") exitWith {};

if (isNil "x_reload_time_factor") then {x_reload_time_factor = 4;};

if (_object isKindOf "Air") then {

   x_reload_time_factor = 20;

}

else {

   x_reload_time_factor = 4;

};

if (d_reload_engineoff) then {

_object action ["engineOff", _object];

};

if (!alive _object) exitWith {};

_object setFuel 0;

_type_name = getText(configFile>>"CfgVehicles" >> _type >> "displayName");

_object vehiclechat format ["Servicing %1... Please stand by...", _type_name];

sleep (1 * x_reload_time_factor);

_magazines = getArray(configFile>>"CfgVehicles" >> _type >> "magazines");

if (count _magazines > 0) then {

_removed = [];

{

if (!(_x in _removed)) then {

_object removeMagazines _x;

_removed = _removed + [_x];

};

} forEach _magazines;

{

  _object vehiclechat format ["Reloading %1", _x];

sleep (1 * x_reload_time_factor);

if (!alive _object) exitWith {};

_object addMagazine _x;

} forEach _magazines;

};

_count = count (configFile>>"CfgVehicles" >> _type >> "Turrets");

if (_count > 0) then {

for "_i" from 0 to (_count - 1) do {

scopeName "xx_reload2_xx";

_config = (configFile>>"CfgVehicles" >> _type >> "Turrets") select _i;

_magazines = getArray(_config >> "magazines");

_removed = [];

{

if (!(_x in _removed)) then {

_object removeMagazines _x;

_removed = _removed + [_x];

};

} forEach _magazines;

{

_object vehiclechat format ["Reloading %1", _x];

sleep (1 * x_reload_time_factor);

if (!alive _object) then {breakOut "xx_reload2_xx"};

_object addMagazine _x;

} forEach _magazines;

};

};

_object setVehicleAmmo 1; //Gives at least one magazine back to multiturret vehicles such as MBTs. Affects commanders turret.

if (damage _object > 0.04) then {

   _object vehiclechat "Repairing...";

   while {damage _object >0} do {

       sleep (0.01 * x_reload_time_factor);

       _object setDamage (damage _object) - 0.01;

       if (!alive _object) exitWith {};

   };

};

_object setDamage 0;

_object setFuel _fuel;

sleep 0.123;

if (fuel _object < 0.96) then {

   _object vehiclechat "Refueling...";

   while {(fuel _object <1) && (getPos _object select 2)<0.2} do {

       sleep (0.01 * x_reload_time_factor);

       _object setFuel (fuel _object) + 0.01;

       if (!alive _object) exitWith {};

   };

};

_object setFuel 1;

_object vehiclechat format ["%1 is ready...", _type_name];

if (true) exitWith {};

Edit2: I noticed that gunners of static weapons now have had the hud removed, which is ok since the information provided there didn't make any sense to them. Why not make a special hud only for static occupants?

Especially the direction they are watching is completely unknown to them (especially newcommers). If they also are given a direction, it is always in the form of north, east-southeast etc in which a regular number if available would have to be interpreted and acted upon. A bitch for static users who has no compass access or anything etc. Modern static with radar doesn't even have access to direction.

So I made changed your script into the following, where also drivers now get direction. It should provide static gunners (not gunners in vehicles) and drivers with some nice information, maybe you want to implement it.

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

// by Xeno

private ["_control","_dam_str","_fuel_str","_speed_str","_vec","_vec_string","_dir_str","_type_weap","_dirtmp","_gendir","_gendirlist"];

_speed_str = "Speed: %1 km/h";

_fuel_str =  "Fuel: %1";

_dam_str =   "Dam: %1";

_dir_str =   "Dir: %1";

_gendirlist = ["N","N-NE","NE","E-NE","E","E-SE","SE","S-SE","S","S-SW","SW","W-SW","W","W-NW","NW","N-NW","N"];

while {true} do {

   waitUntil {sleep random 0.2;vehicle player != player};

   _vec = vehicle player;

   if (_vec isKindOf "LandVehicle" && !(_vec isKindOf "StaticWeapon")) then {

       while {vehicle player != player} do {

           if (player == driver _vec) then {

               _type_name = getText(configFile>>"CfgVehicles" >> (typeOf _vec) >> "displayName");

               _vec_string = format ["Vec: %1", _type_name];

               while {vehicle player != player && alive player && player == driver _vec} do {

                   cutRsc["vehicle_hud", "PLAIN"];

                   _control = DVEC_HUD displayCtrl 64432;

                   _control ctrlSetText _vec_string;

                   _control = DVEC_HUD displayCtrl 64433;

                   _control ctrlSetText format [_speed_str, round (speed _vec)];

                   _control = DVEC_HUD displayCtrl 64434;

                   _control ctrlSetText format [_fuel_str, round (fuel _vec * 100)];

                   _control = DVEC_HUD displayCtrl 64435;

                   _control ctrlSetText format [_dam_str, round (damage _vec * 100)];

                   _control = DVEC_HUD displayCtrl 64436;

                   _gendir = _gendirlist select (round ((getDir _vec)/22.5));

                   _dirtmp = format ["%1 (%2)", round (getDir _vec), _gendir];

                   _control ctrlSetText format [_dir_str, _dirtmp];

                   sleep 0.331;

               };

               cutText["", "PLAIN"];

           };

           sleep 0.532;

       };

   };

   if (_vec isKindOf "StaticWeapon") then {

       while {vehicle player != player} do {

           if (player == gunner _vec) then {

               _type_name = getText(configFile>>"CfgVehicles" >> (typeOf _vec) >> "displayName");

               _type_weap = (getArray(configFile>>"CfgVehicles" >> (typeOf _vec) >> "Turrets" >> "MainTurret" >> "weapons")) select 0; //always the case for statics which have only one gun

               _vec_string = format ["Vec: %1", _type_name];

               while {vehicle player != player && alive player && player == gunner _vec} do {

                   cutRsc["vehicle_hud", "PLAIN"];

                   _control = DVEC_HUD displayCtrl 64432;

                   _control ctrlSetText _vec_string;

                   _control = DVEC_HUD displayCtrl 64433;

                   _control ctrlSetText format [_dam_str, round (damage _vec * 100)];

                   _control = DVEC_HUD displayCtrl 64434;

                   _dirtmp = round(((_vec weaponDirection _type_weap) select 0) atan2 ((_vec weaponDirection _type_weap) select 1));

                   if (abs _dirtmp != _dirtmp) then {_dirtmp = _dirtmp + 360}; //because it gives ±180 from north

                   _gendir = _gendirlist select (round (_dirtmp/22.5));

                   _dirtmp = format ["%1 (%2)", _dirtmp, _gendir];

                   _control ctrlSetText format [_dir_str, _dirtmp];

                   _control = DVEC_HUD displayCtrl 64435;

                   _control ctrlSetText "";

                   _control = DVEC_HUD displayCtrl 64436;

                   _control ctrlSetText "";

                   sleep 0.331;

               };

               cutText["", "PLAIN"];

           };

           sleep 0.532;

       };

   };

   waitUntil {sleep random 0.2;vehicle player == player};  

};

if (true) exitWith {};

Note that I'm also using ctrl 64436 which needs to be defined in IntroText.hpp.

Share this post


Link to post
Share on other sites

@Xeno:

Man, you really have to explain this one for me:

_dir = (if (_direction != -1.111) then {_direction} else {floor random 360});

What I have done lately with the mission:

1. Added sound effects to enemy artillery, should be able to hear each incoming round. Had to use publicVariableEventHandler to get the sound to clients. Why on earth is say local? sad_o.gif

2. Added smoke launchers to enemy armor, and if hit they will also try to evade the gunner. Will improve to take cover from the gunner later on.

3. Added many of the new 1.14 statics to mission generation and made heavies less of an issue. The protection against our heavies and aircraft will still be an issue but infantry forces should be able to take these out. Sorry, I'm just sick of a tonne of T72s and Shilkas smile_o.gif Cool to see MG-Nests, AT and AA Pod, Minipod versions, pluss searchlights (only made if nightmission) now in action.

4. Added IncomingMissile eventhandler to AI heli and planes, but been made less effective than our own. Aircraft spawn periods have been heavily increased.

5. Fixed the IncomingMissile eventhandler to spawn "F_40mm_White" (ammo) instead of "FlareWhite_M203" (magazine). Now I'm at least getting flares, but I can't delete them. Also added random velicoties to the flares, but haven't checked yet if this even works in multiplayer (have had problems before, and I don't know what the "rules" are).

6. Added a "playersNumber playerSide < 13" check/function, which hopefully will generate less units to fight on when the server has less than desired number of players. Always been a problem, since many leave because they know they're only in there to get killed. Not standing a chance is no fun.

7. Fixed the way statics was placed when there was more than one unit in the same group. I.e. D30s would place a single group of a number of units, but at a single point destroying all of them. Now they are placed in a circle. Currently only checking against D30 or M119, but I'm considering using boundingBox to determine safe radius, maybe even preset formations.

8. There are now different reactions to different kinds of artillery use, and even smoke may now have an effect although I guess we are all missing proper screening and obscuration. Fire flares, and watch the units go dead still after they (not too successfully wink_o.gif) hit the ground, as per army field manual instructions biggrin_o.gif Fire HE or DPICM and the initial reactions will be panic, before they get try to find cover in a more organized fashion.

9. AI artillery use is now not based on observer knowlegde, which makes them similar to us. Instead, the observers are merely "callers" who can call for fire. Since the players can inform RESCUE on where they want fire, I figured they ought to have the same chance. No calls will be made to indicate who was detected, but they will always use a spotround (HE or smoke) before fire for effect. If you hear a single incoming arty round, expect more on the way soon.

10. I chose to replace some of the playSound (arty, enemy in base) with say commands instead. I always found it weird hearing an alarm when I was on the other side of the island.

11. Made the following function to determine night or day. It's far from perfect, and doesn't follow the AIs NVG usage. It is used to determine if searchlights will be placed during main target mission generation, or if enemy artillery will choose illumination instead of smoke rounds (both of which are pretty smart):

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

private ["_leapyear","_dayinyearselection","_isday","_year","_month","_feb","_day","_dayofyear","_daysthisyear","_minutesintoyear","_normyear","_baserise","_baseset","_factrise","_factset","_sunrise","_sunset"];

_leapyear = [0,1,0,0,0,1,0,0,0,1,0,0,0,1,0];

_dayinyearselection = [0, 31, 31, 62, 92, 123, 153, 184, 215, 245, 276, 306];

_baserise = 7.5;

_baseset = 16.5;

_factrise = 3;

_factset = 2.5;

_isday = true; //return true in case of function failure

_year = date select 0;

_month = date select 1;

_feb = 28 + (_leapyear select (_year - 1995));

_day = date select 2;

_dayofyear = if (_month <= 2) then {_day + (_dayinyearselection select (_month-1))} else {_day + _feb + (_dayinyearselection select (_month-1))};

_daysthisyear = if(_leapyear select (_year - 1995) == 0) then {365} else {366};

_minutesinyear = _daysthisyear * 24 * 60;

_minutesintoyear = (1440 * (_dayofyear-1)) + ((daytime/24) * 1440);

_normyear = 360*(_minutesintoyear/_minutesinyear);

_sunrise = _baserise-(_factrise/2)*((cos (_normyear+180)))-(_factrise/2);

_sunset = _baseset+(_factset/2)*((cos (_normyear+180)))+(_factset/2);

_isday = if ((daytime > _sunrise) && (daytime < _sunset)) then {true} else {false};

_isday;

Please let me know if you find any mistakes or situations where the result is completely havoc.

That's it for now.

Share this post


Link to post
Share on other sites

As with any mission, it'll download automatically once you connect to the server.

There are no addons needed for default Domination, so unless the server you're connecting to has added things that require AddOns, you won't need to download anything to play Domination on someone's server.

Update: Is there a version of Domination which has both Revive and Mando missiles enabled?

Share this post


Link to post
Share on other sites

My version is also addon free, but then again, it is also still in development ... and probably will be forever biggrin_o.gif

I'll throw in a little progress report here.

1. Delta Blackops AT and AA specialists can now deploy their mounted AT and AA pads from their vehicles, if within 50 or so meters. The vehicles can "repair" a destroyed pod, meaning you can just put it out again if destroyed. Chose to do this so easy because of the vunerability of the static pods.

2. The Firstaid Kit system is now in, but turning off revive heal and ECS firstaid. The idea is that you can obtain these kits from any medic, MASH, or ambulance of your side. It will only heal a small fraction, and you can never restore fully your health from these. This makes the medic desireable to have in because of his mobility. The medics can deploy a MASH each. If there are many medics in play, the effect of firstaid kit is reduced somewhat. This makes medics very nice to have because you don't need the hazzle of bringing out an ambulance, but it is still playable without them as long as you bring an ambulance (or don't have ECS bleeding).

3. The Delta Blackops Spotter/Ratelo guy (ratelo functions not in yet), can now get accurate distance readings using a laser designator. He is the only one that gets this device in the platoon. The ratelo functions will later be: When he is in play, he can forward artillery and airsupport (only airdrops) calls from the artillery operators (rescue, rescue2, and sniper). When he is not in play, artillery operators needs to use the mobile headquarter vehicles (respawn) to access the radio. This makes it less attractive for Rambos to play these roles, and more attractive to have the spotter onboard.

4. The enemy units are now being re-equipped. Grenadiers will have some flares, many will have smoke etc. This in case of ECS being setup to use "only carried equipment" although ECS parameters have been given. AT specialists now have one each of the two AT types, the last one being random. There is also a small chance that an AT specialist will be Javelin equipped instead. Similar with snipers, there is now a small chance they will be KSVK equipped instead. Oh, and team leaders will now have PSO scopes to ease up their artillery target acquisition smile_o.gif. This will actually make them possible to spot.

And here is currently were everything went wrong: biggrin_o.gif

I was always under the impression that Domination was a bit too much non-infantry driven. It was always about getting uber vehicles and aircrafts from the side mission rewards. So I tried (so far unsuccessfully) to change this a bit, by adding static rewards. Also, an M119/D30 should be in the base for the Airdrop to show this one up as a possibility. The idea was to limit these uber vehicles to solved main missions only. So for a 6 target start, you would only get 5 vehicles, making the wreck heli more useful, and making players take more care of the equipment they have. The plan was this:

Main Target Complete Reward : Big vehicles like Tanks, Aircraft, Heavy AH.

Main Target Secondary Objective Reward : Static like M119, Mk19, M2, M2Pod (not AA or AT pods).

Side Mission Reward : Smaller vehicles like Strykers and HMMWVs.

To still be able to have some firepower left after all this scaling down, I have made the wreck helicopter the UH-60 FFAR version, which will respawn. This also helps make it unique look compared to the regular lift choppers. I don't think this will unbalance things because it has less firepower, less armor, and the player flying it will also have to perform wreck lifting duties.

But as I said, this isn't going to well, there are so many involved scripts and variables to keep track of, and very hard to test since you need to test it on dedicated only.

Another thing I had in mind were the player count mission setups. The main mission generation will depend on a certain player threshold. If below then mission will be easy, if above then mission will be hard, for now only a bolean check. But mission generation now generates vehicles and statics. I'm thinking if it would be an idea to use more statics and less vehicles for simple mission, and use more vehicles and less statics for hard missions, instead of simply scaling them both down. This would help keep the count about the same, but the toughness would vary greatly. Just thinking loudly to myself biggrin_o.gif

Share this post


Link to post
Share on other sites

Well, this thing is about ready to be tested. I have to make a full changelog first, comparing all the scripts to the originals and note why the change was made.

There is only one major annoyance left. Does anyone know WHY the mobile respawn markers are going back and forth between the base and the vehicle position? I can't seem to find any setMarkerPos thingies in revive scripts that causes this. It also happens in default Domination 3.04.

We will be testrunning the mission on our BiB server, filter host BiB if you want to try it out.

Share this post


Link to post
Share on other sites

I was wondering if I am understanding a part of your mission correctly.

Sample from the x_createguardpatrolgroups.sqf file.

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

_number_basic_guard = 0;

_number_specops_guard = 0;

_number_tank_guard = ceil (random 2);

_number_bmp_guard = ceil (random 3);

_number_brdm_guard = ceil (random 2);

_number_uaz_mg_guard = ceil (random 2);

_number_uaz_grenade_guard = ceil (random 2);

_number_basic_patrol = ceil (random 7);if (_number_basic_patrol < 3) then {_number_basic_patrol = 3;};

_number_specops_patrol = ceil (random 7);if (_number_specops_patrol < 3) then {_number_specops_patrol = 3;};

_number_tank_patrol = ceil (random 3);

_number_bmp_patrol = ceil (random 3);

_number_brdm_patrol = ceil (random 2);

_number_uaz_mg_patrol = ceil (random 2);

_number_uaz_grenade_patrol = ceil (random 2);

This code is run once a new mission is created (I'm pretty sure?), so simply adding in some extra logic should allow the number of units spawned to depend on the player count.

Take this as an example:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

//count number of players on the server

{if (!isNull _x) then {_playerCount = _playerCount + 1;}} forEach d_player_entities;

.

.

.

//create 3 infantry plus 1 for every 5 players

_number_basic_patrol = floor(3 + playerCount / 5);

At the beginning of the file, init the playerCount variable. Then, when setting the values for the number of enemy troops, do some math/logic to decide how many to make. In this case, it would be 3 troops as a base, then 1 for every 5 players on the server.

Would this work as I think it would? I also noticed some more variables that seem related to the number of groups.

Basically, I wanted to know if this script is run each time a new main mission (or side mission even?) is generated.

Share this post


Link to post
Share on other sites

Yes, it is no problem doing it this way. By my version is extremely setup for "roleplaying". When the playercount is few, there is little chance to have all the required AT roles filled which is required for the regular main targets. When at low playercount, I'm instead setting up a mission based more on infantry and statics than armor. But I have lowered this a bit lately; now all AT specialists are "tube specialists", meaning they get access to both Stinger and Javelin as well as a three AT-4 ammo setup depending on what they want. The little amount of MBTs can be handled with multiple AT shots, Javelin, HE artillery, or AT TOW statics.

Also to help "enforce" role and teamplay, I've changed a couple of things on the revive system. Upon joining, you get remaining respawns = lifefactor x unresolved targets. You are only deducted a life if you actually respawn, but not if revived. So it pays to wait for someone to revive you as you keep your remaining respawns the same.

To me, I feel I have played a good game if I manage to spend few lives compared to the number of kills. 30 kills vs 1 death is a lot better than 200 kills and 100 deaths imho. I'd also like the scoreboard to show this. I.e. a -2 score penalty if you are revived, and a -10 score penalty if you respawn. Haven't checked if this works yet though. Same with vehicles; death in an expensive vehicle gives a higher penalty than death as an infantry man.

And I have no idea if this will work as intended, at least for public play. But I do think clans would enjoy this if they want to play structured and smart. In any case, setting up the mission parameters would be easy for anyone capable of unpbo'ing the mission and create their own version, most clans would have such a member.

I've just finished a 26 hours non-stop Domination session, for the most part my version on our server, but a server crash (I'm not remote admin) forced me to join public ones for a while. They were played very differently because of the lack of equipment in mine, but many were shocked to see they didn't get any AT or M4GL. Some even left because of this I think. Those that remained to play seemed a lot more adult and willing to teamplay. Note that there IS a weapon crate holder more stash available (even marked on map), but you'd have to run a bit to get it. Up to the player to figure out if it's worth it. Due to the revive system, you're forced to stay close. Due to the enemy artillery system, you shouldn't stay too close -- a little dilemma to chew on biggrin_o.gif

In the end, the scaling system you propose isn't bad nor impossible to implement. Figuring out the right values can be tricky though and will take a lot of trial and error, I think.

Share this post


Link to post
Share on other sites

Back from holidays smile_o.gif

I plan to release 3.05 in the next days... so far the following changes have been made (since 3.04):

Quote[/b] ]

- changed number of spawned air defense groups from 14 to 4 (if you want more edit d_with_airdefense in init.sqf)

- fixed: air defense shilkas do not spawn in or near the base anymore

- fixed arti target height

- added random height for HE artillery

- player AI now gets deleted if the player creates a new group or joins another group (AI version only)

- players now do not get transfered to their (human) leader if the leader parajumps or teleports (AI version only)

- player AI will now also parachute if you choose AAHALO

- added d_do_delete_empty_main_target_vecs option in init.sqf. If set to false empty vehicles at cleared main targets will not get

 deleted after 25-30 minutes (default = true)

- fixed: player did stay captive (setCaptive true) if he was killed during intro cam

- fixed: stupid copy and paste error in x_helilift_wreck (now the wreck chopper is able to pick up destroyed bonus vehicles again)

- increased the range for helilift (means, action menu entry appears earlier now)

- a marker now shows where a bonus vehicle got destroyed (gets removed once it will be transported to wreck repair, not JIPd)

- increased the range for the repair wreck point

- no "Waiting for new orders..." will appear once the last target is cleared (and no parajump flag will get created)

- added d_no_sabotage option. If set to true no enemy AI specops will attack the base (default = false)

- boats do now only respawn if they are destroyed

- more paratroopers will now appear over the main target as long as the main target radio tower is still up

- no teleport or respawn to mobile respawns when they are driving

- vehicles in spawned vehicle groups do not spawn on top of each other anymore

- enemy patrols near sidemissions now

- fixed: you now really get your weapons back if you loose them while swimming

- fixed: if a player is in a vehicle markers don't have the correct direction

- added d_airki_respawntime in init.sqf. You can set how long it takes for enemy attack planes and choppers over main targets to respawn

- fixed: reload for vehicles without turrets (like AH-6)

- added plugable action menu entries for specific player types like SoldierWMiner, OfficerG, etc (d_action_menus_type in init.sqf)

- added plugable action menu entries for player units like RESCUE, delta_1, etc (d_action_menus_unit in init.sqf)

- added plugable action menu entries for specific vehicle types like UH60mg or M113_MHQ (d_action_menus_vehicle in init.sqf)

- fixed: disconnected unconscious player markers and bodys didn't get deleted (REVIVE version)

- action menu entries now get added and removed in x_playerspawn.sqf (previous x_playerweapons.sqf, setup in x_setupplayer.sqf,

 x_checkkill.sqf will now only remove dead player body and check for teamkill in AI version)

- changed chopper lift code

- if you use DMSmokeGrenadeVB(.pbo, serverside) then enemy AI view will be blocked if enemy tanks throw smoke (invisible viewblock,

 for serverside AI units that throw smokeshells it's done automatically by DMSmokeGrenadeVB)

 (DMSmokeGrenadeVB is available in JTD_SmokeEffects_MP. Hint... if you use DMSmokeGrenadeVB on clients, then enemy AI view will

 be blocked too if a player throws a smoke grenade)

- changed enemy aa units (like shilkas) lock range in mando version (from 4000 down to 2000)

- added mando init stuff to normal scripts (it's now possible to make a mando version by just setting d_version="MANDO"; and copy mando

 scripts into the mission folder and changing description.ext)

- if the player is the commander of a tank then he is able to throw smoke (if you are using DMSmokeGrenadeVB on clients and on the server

 AI view will be blocked)

- different intro text colors for the different sides

Xeno

Share this post


Link to post
Share on other sites

Xeno, welcome back. smile_o.gif

This is only the second time I've given one of these out!

notworthy.gif

Share this post


Link to post
Share on other sites

New version 3.05 available...

Changelog:

Quote[/b] ]

- changed number of spawned air defense groups from 14 to 4 (if you want more edit d_with_airdefense in init.sqf)

- fixed: air defense shilkas do not spawn in or near the base anymore

- fixed arti target height

- added random height for HE artillery

- player AI now gets deleted if the player creates a new group or joins another group (AI version only)

- players now do not get transfered to their (human) leader if the leader parajumps or teleports (AI version only)

- player AI will now also parachute if you choose AAHALO

- added d_do_delete_empty_main_target_vecs option in init.sqf. If set to false empty vehicles at cleared main targets will not get

 deleted after 25-30 minutes (default = true)

- fixed: player did stay captive (setCaptive true) if he was killed during intro cam

- fixed: stupid copy and paste error in x_helilift_wreck (now the wreck chopper is able to pick up destroyed bonus vehicles again)

- increased the range for helilift (means, action menu entry appears earlier now)

- a marker now shows where a bonus vehicle got destroyed (gets removed once it will be transported to wreck repair, not JIPd)

- increased the range for the repair wreck point

- no "Waiting for new orders..." will appear once the last target is cleared (and no parajump flag will get created)

- added d_no_sabotage option. If set to true no enemy AI specops will attack the base (default = false)

- boats do now only respawn if they are destroyed

- more paratroopers will now appear over the main target as long as the main target radio tower is still up

- no teleport or respawn to mobile respawns when they are driving

- vehicles in spawned vehicle groups do not spawn on top of each other anymore

- enemy patrols near sidemissions now

- fixed: you now really get your weapons back if you loose them while swimming

- fixed: if a player is in a vehicle markers don't have the correct direction

- added d_airki_respawntime in init.sqf. You can set how long it takes for enemy attack planes and choppers over main targets to respawn

- fixed: reload for vehicles without turrets (like AH-6)

- added plugable action menu entries for specific player types like SoldierWMiner, OfficerG, etc (d_action_menus_type in init.sqf)

- added plugable action menu entries for player units like RESCUE, delta_1, etc (d_action_menus_unit in init.sqf)

- added plugable action menu entries for specific vehicle types like UH60mg or M113_MHQ (d_action_menus_vehicle in init.sqf)

- fixed: disconnected unconscious player markers and bodys didn't get deleted (REVIVE version)

- action menu entries now get added and removed in x_playerspawn.sqf (previous x_playerweapons.sqf, setup in x_setupplayer.sqf,

 x_checkkill.sqf will now only remove dead player body and check for teamkill in AI version)

- changed chopper lift code

- if you use DMSmokeGrenadeVB(.pbo, serverside) then enemy AI view will be blocked if enemy tanks throw smoke (invisible viewblock,

 for serverside AI units that throw smokeshells it's done automatically by DMSmokeGrenadeVB)

 (DMSmokeGrenadeVB is available in JTD_SmokeEffects_MP. Hint... if you use DMSmokeGrenadeVB on clients, then enemy AI view will

 be blocked too if a player throws a smoke grenade)

- changed enemy aa units (like shilkas) lock range in mando version (from 4000 down to 2000)

- added mando init stuff to normal scripts (it's now possible to make a mando version by just setting d_version="MANDO"; and copy mando

 scripts into the mission folder and changing description.ext)

- if the player is the commander of a tank then he is able to throw smoke (if you are using DMSmokeGrenadeVB on clients and on the server

 AI view will be blocked)

- rewrote the para handler code, parachutes now get spawned near the chopper and the units get moved into the parachute instead of using

 "eject" action which caused millions of "xxx is allready in the landscape" messages in the rpt file and could lead to server crashes

 (didn't happen before 1.14/1.12)

Download:

Domination! One Team 3.05 Mission Pack

Now modify the hell out of it smile_o.gif

Once again, you don't have to ask me to modify the mission or release a modified version.

Enjoy !

Xeno

Share this post


Link to post
Share on other sites

Excellent. Already downloaded and currently checking if my modifications still work. A few problems but looking ok.

One thing I noticed when I got my second main target: First I got a no secondary objective, then I got the no main target, then the radio was placed, and THEN secondary objective and main target realized themselves.

I'm also having no success on rescue missions, nobody will join me. I thought it might be because I am captive myself (debug purposes only), but we have had this problem earlier too when such options were turned off and playing more seriously.

I will be implementing the Schmalfelden version as well (only need an extra set of reward positions for static rewards) , and check if Mando will work combined with my more serious revive system. But again, it will be WEST only. The plugable actions are great, but didn't really suit my needs since I among other things want to control how the actions are ordered better. But a great invention for most mission modders.

Share this post


Link to post
Share on other sites

Ran since release on our dedi server, had quite a few "out of memory" crashes since the update, previous versions did not cause any crashes. The wreck repair does not seem to work either, lifted a Warthog with No 4 chopper onto the spot and nothing seemed to happen.

Share this post


Link to post
Share on other sites

Is there a bug with the "air drop" of ammo crates, humvee's? I don't ever seem to see them being dropped? After calling for a drop if you look at team status you can see an AI pilot with something like "set scalar var" in the command section (I didn't write down the exact message but it was something like that).

Is this a bug??

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×