Jump to content
xeno

co30 Domination! One Team

Recommended Posts

@zorasht

Thanks.

Well, I think now I know where he creates all this HR MR etc variables and I understand everything better.

I still have the problem with the v22 osprey, but I think it has something to do with the plane, because if I change it for a UH60 everything works.

It is a pitty, because the V22 is cool, but if you cannot transport the MR it becomes almost useless in a game, just to transport troops. I´ll look at the script, maybe the scripts is only for helos and maybe the V22 is catalog as a plane.

I don´t know.

One more thing, I don´t know if it is a bug or something, but some times when I use the halo jump I got locked and hit by a missile biggrin_o.gif

And some other time in the moment that we gain altitude in the airport we got locked and shot down. I assume that it is that shilka using mando missiles, but targetting parachutes is not funny biggrin_o.gif

Share this post


Link to post
Share on other sites

@xeno

got another question big guy...

what would set side_misison_winner to a value of -1 ("Enemy destroyed the target, no bonus vehicle for joo") and which script would do it?

I'm trying to get round the use of artillery (or more specifically, mando bombs) to destroy targets without just editing x_sidemissionwinner.sqf to count case -1 as a win...

Share this post


Link to post
Share on other sites

My guess would be i.e. a tank misplaced so that it jumps into the air and drops onto the target - hence they killed the target themselves. Or any kind of friendly fire, which can happen.

@Xeno:

Consider adding checks against terrain slopes and water when placing MASH (and maybe even MG nests). It can look extremely nasty if not. I do this by placing four invisible heli zones in each quadrant of the target place. Then IF abs(N elev - S elev)>0.4 OR abs(E elev - W elev)>0.4 THEN disallow placement.

Also, a mini "bug"; currently the MASH and MGnest markers are placed at the intended position, not where it actually ends up after collision checking.

Share this post


Link to post
Share on other sites

...but that doesn't explain where the value of side_mission_winner is set. I'm seeing loads of value checks in xeno's scripts, but the only "side_mission_winner = value" type statements I'm seeing are after a check value when it gets reset back to 0.

FF kills would provide the negative values, but when is this variable being set?!

Share this post


Link to post
Share on other sites
New Domination version based on Xeno's Domination West 3.03.

I've made the same changes I did to Xeno's v2.22 Domination to the West 3.03 version.

There should be a thread here somewhere on the details of those changes but basically I've added enemy AI patrols all over the island. So now, you have a much better chance of running into the enemy en route to a mission. You can just easily travel to that destination without being fully ready to engage the enemy. Patrols are random so never the same anytime you start the mission.

Download from filefront here

BTW, if anyone is running my version on any of their servers let me know.

Share this post


Link to post
Share on other sites

I still have the problem with the v22 osprey, but I think it has something to do with the plane, because if I change it for a UH60 everything works.

V22 as lift chopper should be fine. Just add the object name (HRX) to _possible_types in x_helilift.sqf

One more thing, I don´t know if it is a bug or something, but some times when I use the halo jump I got locked and hit by a missile  biggrin_o.gif

Seems to be a problem with mando missiles. I guess it doesn't check if the "Air" vehicle is a parachute... Mando ?

what would set side_misison_winner to a value of -1 ("Enemy destroyed the target, no bonus vehicle for joo") and which script would do it?

If AI kills the sidemission target (officer for example) then side_mission_winner gets set to -1. If a player kills the target then side_mission_winner is set to 2.

If you want to change it just remove "if (side (_this select 1) == d_side_player) then {side_mission_winner=2;}" in x_getsidemission.sqf and set side_mission_winner to 2.

My guess would be i.e. a tank misplaced so that it jumps into the air and drops onto the target - hence they killed the target themselves. Or any kind of friendly fire, which can happen.

If you want to get rid of flying and jumping tanks you should use GDTModTracked. We are using it on our server since it was released and it's just great. It improves gameplay so much.

See here: http://www.flashpoint1985.com/cgi-bin....;hl=gdt

Consider adding checks against terrain slopes and water when placing MASH (and maybe even MG nests).

Also, a mini "bug"; currently the MASH and MGnest markers are placed at the intended position, not where it actually ends up after collision checking.

I'll take a look into it.

I'm currently rewriting some parts of the AI spawn scripts for (hopefully) better memory handling (well, not basically spawn but removal of units and removal of groups with no units). Once that is done I'll release 3.04 which will be the last 3.xx version smile_o.gif

Xeno

Share this post


Link to post
Share on other sites
I guess it doesn't check if the "Air" vehicle is a parachute... Mando ?

For units above ground level, chutes are not considered targets BUT surprisingly free fall bodies without chutes are. Tomorrow I'll post a quick fix.

Share this post


Link to post
Share on other sites

Personally I think doing the mission impossible style skydives whilst SAMs hurtle inches past your face is quite exhilirating...especially when the HALO insertion helicopter gets blown up just after you've leapt out wink_o.gif

@xeno - thanks for the sidemission info

does anyone know what side a timed explosive gets set to if the player that set it dies during the countdown?

eg a west player sets a timed explosive then gets shot - is the timed explosive counted as side west for anyone it kills or side null (or any other side for that matter)?

Share this post


Link to post
Share on other sites

I still have the problem with the v22 osprey, but I think it has something to do with the plane, because if I change it for a UH60 everything works.

V22 as lift chopper should be fine. Just add the object name (HRX) to _possible_types in x_helilift.sqf

Xeno

I did that, but I think it is not a problem with the script, it is a problem with the V22. I just replace in the editor one of the three choopers for an V22 and it doesn't lift vehicles, but the script is run since I can drop ammo crates from the V22, so if the ammo crates script it's been executed means that the lift vehicle has been executed too.

I have also noticed that in the V22 I can drop ammo crates while flying  huh.gif so it might has something to do with the V22 not reporting right if it is flying or not  band.gif

Edit---

I read the V22 readme and they list this bug:

- Altitude sometimes reads zero (because of Roadway LOD)

So I think that is the problem, since the helolift only works if the choppers is between 2.5 and 10 meters.

I might try to modify the helolift script adding a case if it is the V22 it doesn't check the altitude, only the distance to the ground vehicles, but that's maybe is too much for my skills tounge2.gif

Share this post


Link to post
Share on other sites
Quote[/b] ]If you want to get rid of flying and jumping tanks you should use GDTModTracked. We are using it on our server since it was released and it's just great. It improves gameplay so much.

Thanks for the tip, will try it out.

Thanks for the update notification, won't implement any v3.02 changes before v3.04 is out.

Share this post


Link to post
Share on other sites

Well, I´ve done a workaround for the helolift and now it allows me to lift stuff with the V22.

Here it is, as it failed because the V22 don´t report the altitude right until it is flyting at around 70 meters. So I just modified a couple of variables adding an if in case it is the V22.

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

// by Xeno

private ["_minAlt","_maxAlt","_id","_menu_lift_shown","_nearest","_nearest_pos","_npos","_nx","_ny","_p_x","_p_y","_p_z","_pos","_posi","_possible_types","_px","_py","_release_id","_vehicle"];

if (!X_Client) exitWith {};

_vehicle = _this select 0;

Vehicle_Attached = false;

Vehicle_Released = false;

_menu_lift_shown = false;

_nearest = objNull;

_id = -1;

_minAlt = 2.5;

_maxAlt = 10;

sleep 10.123;

_possible_types = (

switch (_vehicle) do {

case HR0: {d_helilift1_types};

case HR1: {d_helilift1_types};

case HR2: {d_helilift2_types};

case HR3: {d_helilift3_types};

case HR5: {d_helilift1_types};

}

);

//to handle V22

if ((typeOf _vehicle) in ["GNT_V22"]) then {

_minAlt = -1;

_maxAlt = 1;

} else {

_minAlt = 2.5;

_maxAlt = 10;

};

while {(alive _vehicle) && (alive player) && player_is_driver} do {

if ((driver _vehicle) == player) then {

_pos = getPos _vehicle;

if (!Vehicle_Attached && (_pos select 2 > _minAlt) && (_pos select 2 < _maxAlt)) then {

_nearest = objNull;

_nobjects = nearestObjects [_vehicle, ["LandVehicle","Air"],20];

if (count _nobjects > 0) then {

_dummy = _nobjects select 0;

if (_dummy == _vehicle) then {

if (count _nobjects > 1) then {

_nearest = _nobjects select 1;

};

} else {

_nearest = _dummy;

};

};

sleep 0.1;

if (!(isNull _nearest) && !(_nearest in vehicle_attached_list) && ((typeof _nearest) in _possible_types)) then {

_nearest_pos = getPos _nearest;

_nx = _nearest_pos select 0;_ny = _nearest_pos select 1;_px = _pos select 0;_py = _pos select 1;

if ((_px <= _nx + 6 && _px >= _nx - 6) && (_py <= _ny + 6 && _py >= _ny - 6)) then {

if (!_menu_lift_shown) then {

_id = _vehicle addAction ["Lift vehicle", "x_scripts\x_heli_action.sqf"];

_menu_lift_shown = true;

};

} else {

_nearest = objNull;

if (_menu_lift_shown) then {

_vehicle removeAction _id;

_menu_lift_shown = false;

};

};

};

} else {

if (_menu_lift_shown) then {

_vehicle removeAction _id;

_menu_lift_shown = false;

};

sleep 0.1;

if (isNull _nearest) then {

Vehicle_Attached = false;

Vehicle_Released = false;

} else {

if (Vehicle_Attached) then {

_release_id = _vehicle addAction ["Release vehicle", "x_scripts\x_heli_release.sqf"];

(driver _vehicle) vehicleChat "Vehicle attached to chopper";

vehicle_attached_list = vehicle_attached_list + [_nearest];

switch (_nearest) do {

case MRR1: {

mr1_in_air=true;publicVariable "mr1_in_air";

mr1_lift_chopper = _vehicle; publicVariable "mr1_lift_chopper";

};

case MRR2: {

mr2_in_air=true;publicVariable "mr2_in_air";

mr2_lift_chopper = _vehicle; publicVariable "mr2_lift_chopper";

};

};

while {!Vehicle_Released && player_is_driver && alive _vehicle && alive _nearest && alive player} do {

sleep 0.05;_posi = position _vehicle;_p_x = _posi select 0;_p_y = _posi select 1;

//_p_z = _posi select 2;

//to handle V22

if ((typeOf _vehicle) in ["GNT_V22"]) then {

_p_z = 12;

} else {

_p_z = _posi select 2;

};

if (_p_z > 11) then {_nearest setPos (_vehicle modelToWorld [0,0,-11]);} else {

if (_p_z < 11 && !surfaceIsWater [_p_x, _p_y]) then {_nearest setPos [_p_x, _p_y, 0]};};

_nearest setVelocity velocity _vehicle;_nearest setDir direction _vehicle;_nearest setVectorUp vectorUp _vehicle;

};

_nearest engineOn false;

Vehicle_Attached = false;

Vehicle_Released = false;

switch (_nearest) do {

case MRR1: {

mr1_in_air = false; publicVariable "mr1_in_air";

mr1_lift_chopper = objNull; publicVariable "mr1_lift_chopper";

};

case MRR2: {

mr2_in_air = false; publicVariable "mr2_in_air";

mr2_lift_chopper = objNull; publicVariable "mr2_lift_chopper";

};

};

vehicle_attached_list = vehicle_attached_list - [_nearest];

if (!alive _vehicle) then {

_vehicle removeAction _release_id;

} else {

(driver _vehicle) vehicleChat "Vehicle released";

};

if (!(_nearest isKindOf "StaticWeapon") && (position _nearest) select 2 < 200) then {

waitUntil {(position _nearest) select 2 < 10};

};

_npos = position _nearest;

_nearest setPos [_npos select 0, _npos select 1, 0];

_nearest setVelocity [0,0,0];

sleep 1.012;

};

};

};

};

sleep 0.51;

};

if (!(alive _vehicle) || !(alive player)) then {

player_is_driver = false;

_vehicle removeAction vec_id;

};

if (true) exitWith {};

Maybe somebody find it useful.

I have also changed the x_getsidemissionclient.sqf in the Schmalfelden version, because it was using Sharani side missions names.

I put here the cases from 0 to 17 that it uses, just copy and paste over the first 18 cases there.

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

case 0: {

current_mission_text = "There is a radar tower west of Funkstatt. Find it and destroy it.";

current_mission_resolved_text = "Good job. The radar tower west of Funkstatt is down.";

};

case 1: { //A high enemy officer arrives today in a ruin south of Tres Valles. He is responsible for the death of many civilians. Eliminate him!

current_mission_text = "Enemy forces are testing an enhanced tank version near Schmalfelden. Your mission is to steal it and bring it to the flag at your base.";

current_mission_resolved_text = "Good job. You captured the enhanced tank version.";

};

case 2: {//The enemy is testing a new protoype plane on Antigua. Steal it and bring it to the flag at your base.

current_mission_text = "The enemy is producing chemical weapons near Windisch-Bockenfeld. Find the watertower that is needed for the production and destroy it.";

current_mission_resolved_text = "Good job. The water tower is down.";

};

case 3: {//Enemy forces are testing an enhanced tank version at Alcazar. Your mission is to steal it and bring it to the flag at your base.

current_mission_text = "The enemy is building a hangar near Grossbaerenweiler. Funny thing is, there is no airfield near that position. So, destroy that hangar before we really know what it is for";

current_mission_resolved_text = "Good job. The hangar is down.";

//current_mission_text = "Enemy forces are testing an enhanced tank version at Alcazar. Your mission is to steal it and bring it to the flag at your base.";

//current_mission_resolved_text = "Good job. You got the enhanced tank version.";

};

case 4: {//near Grossbaerenweiler The enemy is producing chemical weapons in a base south of Cabo Santa Lucia. Find the watertower that is needed for the production and destroy it..

current_mission_text = "There is an enemy training facility near Heufelwinden. Destroy the main building to cut down their possibilities to train new soldiers.";

current_mission_resolved_text = "Good job. The main building of the training facility is destroyed.";

//current_mission_text = "The enemy is building a hangar near Grossbaerenweiler. Funny thing is, there is no airfield near that position. So, destroy that hangar before we really know what it is for";

//current_mission_resolved_text = "Good job. The hangar is down.";

};

case 5: {//The king of Sedia is on vacation in a hotel near Vallejo. He is a good friend of the enemy leaders. Eliminate him!

current_mission_text = "There is a radio tower in forrest west of Speckheim. The enemy uses it to communicate. Simple task, destroy it.";

current_mission_resolved_text = "Good job. The radio tower west of Speckheim is down.";

//current_mission_text = "The king of Sedia is on vacation in a hotel near Vallejo. He is a good friend of the enemy leaders. Eliminate him!";

//current_mission_resolved_text = "The king of Sedia is dead. Good job.";

};

case 6: {

current_mission_text = "There is a radio tower west of Naicha. The enemy uses it to communicate. Simple task, destroy it.";

current_mission_resolved_text = "Good job. The radio tower west of Naicha is down.";

//current_mission_text = "The enemy is building a hangar southwest of Roca del Dror. Funny thing is, there is no airfield near that position. So, destroy that hangar before we really know what it is for.";

//current_mission_resolved_text = "Good job. The hangar is down.";

};

case 7: {

current_mission_text = "There is a transformer station in Kleinbaerenweiler. The enemy uses it to for some experiments in a laboratory. Simple task, destroy it.";

current_mission_resolved_text = "Good job. The transformer station is down.";

//current_mission_text = "There is an enemy training facility in San Peregrino. Destroy the main building to cut down their possibilities to train new soldiers.";

//current_mission_resolved_text = "Good job. The main building of the training facility is destroyed.";

};

case 8: {

current_mission_text = "There is a radio tower north of Grossbaerenweiler. The enemy uses it to communicate. Simple task, destroy it.";

current_mission_resolved_text = "Good job. The radio tower north of Grossbaerenweiler is down.";

//current_mission_text = "There is a radio tower on the top of mount Pico de Revolucion. The enemy uses it to communicate. Simple task, destroy it.";

//current_mission_resolved_text = "Good job. The radio tower on top of mount Pico de Revolucion is down.";

};

case 9: {

current_mission_text = "The enemy uses a fuelstation located around Speckheim to refuel its vehicles. Simple task, destroy it to cut down fuel supplies.";

current_mission_resolved_text = "Good job. The fuelstation is down.";

//current_mission_text = "A new helicopter prototype gets tested on Pita airfield. Destroy it before enemy troops use it.";

//current_mission_resolved_text = "Good job. The helicopter is destroyed.";

};

case 10: {

current_mission_text = "This time we want to provoke the enemy. Find the enemy flag in Wolfskreut and bring it back to the flag at your base.";

current_mission_resolved_text = "Good job. The enemy flag is in our base.";

//current_mission_text = "There is a artillery cannon on top of mount San Esteban. Destroy it before enemy troops use it to attack Ortego.";

//current_mission_resolved_text = "Good job. The artillery cannon is destroyed.";

};

case 11: {

current_mission_text = "This time we want to provoke the enemy. Find the enemy flag in Kleinbaerenweiler and bring it back to the flag at your base.";

current_mission_resolved_text = "Good job. The enemy flag is in our base.";

//current_mission_text = "There is a lighthouse on Isla del Zorra. Enemy ships use it to find their way to the Sahrani south coast, destroy it.";

//current_mission_resolved_text = "Good job. The lighthouse is destroyed.";

};

case 12: {

current_mission_text = "There is a transformer station in Funkstatt. The enemy uses it to for some experiments in a laboratory. Simple task, destroy it.";

current_mission_resolved_text = "Good job. The transformer station is down.";

//current_mission_text = "A high enemy officer makes holidays at Cabo Canino. Eliminate him !";

//current_mission_resolved_text = "Good job. The enemy officer is dead.";

};

case 13: {

current_mission_text = "The enemy is building a prison on Speckheim. Destroy the building so that they can not arrest innocent people.";

current_mission_resolved_text = "Good job. The prison is destroyed.";

//current_mission_text = "The North prime minister visits some troops in Valle Azul. Eliminate him !";

//current_mission_resolved_text = "Good job. The prime minister is dead.";

};

case 14: {

current_mission_text = "A high enemy officer arrives today Wolfskreut. He is responsible for the production of biological and chemical weapons. Eliminate him !";

current_mission_resolved_text = "The enemy officer is dead. Good job.";

// current_mission_text = "There is a radio tower on the top of mount Monte Liberacion. The enemy uses it to command its armored troops. Simple task, destroy it.";

// current_mission_resolved_text = "Good job. The radio tower on the top of mount Monte Liberacion is down.";

};

case 15: {

current_mission_text = "The enemy is building a prison on Speckheim. Destroy the building so that they can not arrest innocent people.";

current_mission_resolved_text = "Good job. The prison is destroyed.";

//current_mission_text = "There is a transformer station in Tlaloc. The enemy uses it to for some experiments in a laboratory in Bagango. Simple task, destroy it.";

//current_mission_resolved_text = "Good job. The transformer station is down.";

};

case 16: {

current_mission_text = "The enemy is testing a new protoype chopper on Grossbaerenweiler. Steal it and bring it to the flag at your base.";

current_mission_resolved_text = "Good job. You got the prototype chopper.";

//current_mission_text = "There is a radio tower on the top of a mountain south of Cabo Valiente. The enemy uses it to command its marine task forces. Simple task, destroy it.";

//current_mission_resolved_text = "Good job. The radio tower south of Cabo Valiente is down.";

};

case 17: {

current_mission_text = "Finally we've found the enemy artillery base. If you can destroy all artillery guns the artillery observers at main targets have nothing to call in artillery strikes anymore.";

current_mission_resolved_text = "Good job. All artillery guns are down. No artillery observers will appear at main targets anymore.";

//current_mission_text = "A high enemy officer arrives today in Valor. He is responsible for the production of biological and chemical weapons. Eliminate him !";

//current_mission_resolved_text = "The enemy officer is dead. Good job.";

};

I just finished the two versions for our dedi server, one in Schmalfelden and the other one in Saharani, west side only, both using mando scripts, I also added the SPON Rangefinder, and added the mortar operator that deploy mortars, the AA Operator that deploys AA Tripod and the AT Gunner deploys AT Tripods.

i would put them to download, but I think it is pointless since they need around 4GB in addons to run  whistle.gif

I used the RHS Troops, Tanks, Hind, weapons from Aimpoint, peloton, helenic mod, RH handguns, some piranha reskins, Apaches and chinooks from Map Air, tracers, vilas, ebusocom units, landrovers, v22, and probably some more that I don´t remember now.  biggrin_o.gif

Share this post


Link to post
Share on other sites

And I have finally been able to locate the source of my playermarkers "bug" which have caused me so much pain. The problem was the playermarkers button not showing up in the dialog. I always thought it was due to some script error, but in fact it checked against d_version==REVIVE. I guess all versions I have been playing online has been default, in which this showed up fine, while I have been editing for revive functionality in place. Doh - so so stupid me!!!

What is the reasoning behind excluding player markers when revive functionality is used? I guess there might be some logic behind the madness, but I haven't figured out what it can be just yet biggrin_o.gif

Oh well... But this made me thinking a bit. By using all the setup parameters around, you can easily create a huge amount of versions. Many players might ask "why doesn't this and that work here" and so on and start nagging the server admins. Would it be possible to add (yet another) button on the status dialog which lists all these settings and what they do, in a new window?

Just an idea smile_o.gif

Share this post


Link to post
Share on other sites
Note that missile idx is an important parameter there, if you only want a pair of Sidewinders and the rest of default BIS weapons is good for you, then:

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

// init.sqf

// If you are using the addon, the next line is not needed, else:

// Mando Missile ArmA initialization

[false]execVM"mando_missiles\mando_missileinit.sqf";

// AH1Ws will have 10 flares and 2 Sidewinder missiles for the driver (missile idx 0 and 1, 1 slot is unused)

[["AH1W"], 0, "", [2,0], [2,0], 10, 10, "mando_missiles\units\mando_missilevehicle2.sqf", false, true, false, false, [3,0,-1.5], "mando_missiles\units\keysets\mando_guided_tow.sqf", 5, 5, 2, 0, false, 0]execVm"mando_missiles\units\mando_assignvehicle_by_type.sqf";

mando_assignvehicle_by_type.sqf online help

mando_missileinit.sqf online help

I have attempted to implement this by copying the code into my init.sqf file and adding the "mando_missiles" folder containing the scripts to my mission folder but when launching the mission I get the following error message:

"Script mando_missiles\units\mando_assignvehicle_by_type.sqf not found"

EDIT: Although I copied the code directly from original post it seems some "spaces" creped in somehow. I'll try again when I get home.

Share this post


Link to post
Share on other sites

Small bugreport. I'm not getting the x_reload_time_factor set in init.sqf to work with scripts\x_reload.sqf.

I have to rewrite to the following:

sleep (1 * x_reload_time_factor); //added paranthesis

Didn't try multiplayer though, and also set the isNil statement to the same as the factor. No error message was given either.

Edit: Found another thing.

x_scripts\x_reload seems to fail badly. I'm getting turret hit on an HMMWV Mk19, and it doesn't fill up more than one magazine because it removes it as well in the loop, apparently. The MBT commanders turret doesn't get reloaded at all. I think a bug exist in the engine that prevents you from reloading this more than filling up the current magazine, but this is better than not getting anything at all.

As far as I can see, you're doing

_object removeMagazine _x every time

instead of

_object removeMagazines _x a single time before adding.

Oh, also here I need paranthesis around the (1*factor) for it to kick in.

I remember this used to work half way in my old script:

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

rep_vec removeMagazines "50Rnd_127x107_DSHKM";

rep_vec addMagazine "50Rnd_127x107_DSHKM";

//Actually this won't work for commanders .50 cal, but have included it in case a future patch fixes this.

//As for now, there is no way to restore commanders M2, not even rearm trucks does this properly.

rep_vec addMagazine "50Rnd_127x107_DSHKM";

rep_vec addMagazine "50Rnd_127x107_DSHKM";

rep_vec addMagazine "50Rnd_127x107_DSHKM";

As noted, this doesn't work for this particular vehicle. I think only multi turreted vehicles are affected.

While this worked fully for single turret multimagazine vehicles:

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

rep_vec removeMagazines "48Rnd_40mm_MK19";

rep_vec addMagazine "48Rnd_40mm_MK19";

rep_vec addMagazine "48Rnd_40mm_MK19";

rep_vec addMagazine "48Rnd_40mm_MK19";

rep_vec addMagazine "48Rnd_40mm_MK19";

My method is quite bad, I like better the way you have begun using the configs to find the actual values, instead of testing like I did which can be addon dependant.

Share this post


Link to post
Share on other sites
Small bugreport. I'm not getting the x_reload_time_factor set in init.sqf to work with scripts\x_reload.sqf....

I'll take a look... though I have some 1.14 MP reload problems that I didn't have with 1.08. Currently I'm only waiting for Mando to fix that para_jump missile lock problems;)

Otherwise 3.04 is ready, memory or arrays problems solved. smile_o.gif

Xeno

Share this post


Link to post
Share on other sites

Open mando_missiles\units\mando_missileattacker.sqf and look for the following block:

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

if (_createtrigger) then

{

_trigger setPos getPos _disp;

if (count _ttypes > 0) then

{

{

if ((getPos _x select 2) > 1) then

{

if (isEngineOn _x) then

{

_list = _list + [_x];

};

}

else

{

if ((driver _x != _x)) then

{

_list = _list + [_x];

};

};

} forEach list _trigger;

};

};

The criteria to pass the very first filter (there are more) for a potential aerial target is that its engine must be on. You may add there more conditions to be matched, for example && !(isKindOf "Man").

Share this post


Link to post
Share on other sites

The criteria to pass the very first filter (there are more) for a potential aerial target is that its engine must be on. You may add there  more conditions to be matched, for example && !(isKindOf "Man").

Thank you Mandoble. Now that I've played with your missile scripts I must say, well done, phantastic smile_o.gif

Xeno

Share this post


Link to post
Share on other sites

Played 3.04 on fun server yesternight, and it became a very very long night biggrin_o.gif Also tried a server with the airsupport, and well, mixed feelings on this one. We were actually quite a few players, and each main target were cleared in notime. Not much infantry work needed. However, it WAS GREAT fun to watch all those missiles going nuts biggrin_o.gif

Will there be a revive and missile combo? If not, how tough is it to set up?

Also a little "bug" report. Well, actually, a little misspelling. In your artillery scripts you're using dpcim instead of the correct term dpicm. Not a biggie though.

http://www.globalsecurity.org/military/systems/munitions/dpicm.htm

Oh, and yeah, I was able to find plenty of dpcim used too, even within the field manuals biggrin_o.gif

Share this post


Link to post
Share on other sites

After getting back from watching a really great fireworks with my family in germanys oldest city Trier I decided to release 3.04 smile_o.gif

New version 3.04 available...

Changelog:

Quote[/b] ]

- rewrote some internal scripts for better array handling

- fixed the parabug fix

- fixed the vehicle reload script (thanks to CarlGustaffa)

- fixed spelling (it's dpicm not dpcim wink_o.gif )

- fixed Mando missiles (AAHALO jumpers shouldn't be a target anymore)

- changed air AI handling

- added d_with_qg_anims option for the revive versions. Disabled by default. Adds new QG animations for revive if you set it to true (in init.sqf)

- and, as allways, some more changes that I allready forgot

As a bonus the mission pack includes two new missions:

co30 Hill Defense [1.6]

and

co32 Returning Home [1.37]

co30 Hill Defense:

You have to defend a strategic very important hill near Corazol...

co32 Returning Home

After succsessful peace negotiations you and some other men are the last US soldiers on Sahrani and waiting for your transport back to the states. But suddenly...

(Returning Home was the reason why I started with ArmA scripting in may last year because I was getting sick of placing units in the editor wink_o.gif Both missions are based on older Domination scripts )

Download:

Domination! One Team 3.04 Mission Pack

Enjoy !

Xeno

Share this post


Link to post
Share on other sites

Awesome biggrin_o.gif Looking forward to trying out those new ones, but first I'll have to redo all modifications into v3.04.

A couple of issues though, testing 3.03.

1. I've had air defence spawn in base - what a mess biggrin_o.gif

2. x_artillery.sqf and x_artillery2.sqf contains a bug in which the heli pads are snapped to 0 MSL instead of ASL. Think it has to do with onmapsingleclick, not sure.

I changed to this:

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

onMapSingleClick "";

if (ari_type != "") then {

   AriTarget setPos [getPos AriTarget select 0, getPos AriTarget select 1, 0];

This will snap it to 0 AGL, and distance checks against it will work again.

Edit: Updating my mission to v3.04 and stubled upon this one, which doesn't sound right. In x_vrespawn.sqf:

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

_truck_ammo = "Truck5tReammo";

_truck_fuel = "Truck5tRefuel";

_truck_rep = "Truck5tRefuel";

if (d_own_side == "EAST") then {

_truck_ammo = "UralReammo";

_truck_fuel = "UralRefuel";

_truck_rep = "UralRepair";

};

_truck_rep = "Truck5tRefuel"; Never mind me, I'm using these three as is pretty much, while salvagetruck has the engineer capabilities.

Edit2: I think either I have modded the hell out of this mission, or you forgot to precompile the gridref function used by the team status dialog, and now also by me. Add this somewhere in init.sqf or where you feel most appropriate:

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

fn_GridRefCoords = compile preprocessFile "scripts\GridRefCoords.sqf";

Question:

I notice that Observers are now not included in vars_array. Why? Also you say "Memory problems handled". Is there a connection? I ask because I need to put 4 extra pieces of information in the array. Haven't tested for multiplayer yet, have a few problems to solve first.

Edit3: Noticed that multimagazines are now reloaded by adding one and one magazine, which is nice. But the commanders turret in MBTs is not reloaded. Afaik you can't reload all magazines here, but since they only carry 2 magazines, at least the current one should be refilled. I fixed this simply by adding _object setVehicleAmmo 1; after both if statements.

Share this post


Link to post
Share on other sites

thats an very great mission. We played it yesterday many hours !

But we had some problem with hiching of mission bonus vehivles wrecks.

We where not able to hitch an harrier wreck even with al the 4 helicopters. ( we played Domination 3.04 West )

With Helicopter 3 or 4 we become the Hitch vehicle option in action menu but it doesnt work.

Greetings

Share this post


Link to post
Share on other sites

We where not able to hitch an harrier wreck even with al the 4 helicopters. ( we played Domination 3.04 West )

I am allready aware of that problem, made a copy and paste error. I'm fixing some other bugs and add some small fixes and options here and there and then 3.05 will be the last 3.xx version. Sorry for that.

Xeno

Share this post


Link to post
Share on other sites

"Finished" updating what I had to v3.04, and now I have this weird problem. 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

However, if I simply abort and rejoin, everything seems to work fine. So it appears I have a non JIP issue, which I prefer to the old JIP issues biggrin_o.gif

I'm using the old intro while in debug mode, which lets player take control much more early, but I've also tried with the new intro without success.

What can possibly cause this? Here is some changed parts of my init.sqf

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

//titleCut ["","BLACK IN", 3];

titleText ["", "BLACK FADED", 0.2];

fn_GridRefCoords = compile preprocessFile "scripts\GridRefCoords.sqf";

if (local player && isServer) then {

   Param1 = 6;

   _params = [24,24.5,25,25.5,26,26.5,27,27.5,28,28.5,29,5.5,6,6.5,7,7.5,8,8.5,9,9.5,10,10.5,11,11.5,

12,12.5,13,13.5,14,14.5,15,15.5,16,16.5,17,17.5, 18,18.5,19,19.5,20,20.5,21,21.5,22,22.5,23,23.5];

   Param2 = _params select 10;

};

ECS_public set[2, false];                   //Dynamic weather OFF, use builtin instead

ECS_public set[5, true];                    //Bleeding enabled. See also below

ECS_public set[7, false];                   //First aid turned off, since mission has builtin 2xheal options  --This one might be bad shit--

ECS_public set[13, false];                  //Weapon jam disabled due to playerweapons system. Might be bad to respawn without weapons since little available

ECS_public set[14, 0.00];                   //Rifle jam rating, just in case

ECS_public set[15, 0.00];                   //Machinegun malfunction rating, just in case

ECS_local set[2, false];                    //Camera NVG turned off since it interferes with intro

ECS_local set[51, [""]];                    //Turns off our radiochatter. Enemy still has it though

ECS_local set[63, [""]];                    //Also prevent radiochatter from "undercover" vehicles borrowed from RACS

ECS_local set[98, 120];                     //AI Smokeshell timeout. Number of seconds before reuse

ECS_local set[6, false];                    //Dynamic viewdistance OFF, use Domination menu instead

ECS_local set[85, false];                   //GPWS in aricrafts turned OFF. Does military aircraft have this anyway?

ECS_local set[90, 60];                      //AI remains in alert mode for 1 minute instead of 4. Domination players are impatient

ECS_local set[93, 0.95];                    //Chance of AI using flares

ECS_local set[94, 1.00];                    //Chance of AI having flares

ECS_local set[95, 30];                      //Flare timeout

ECS_local set[96, true];                    //Can AI use smokeshells

ECS_local set[97, 0.50];                    //Chance of AI using smokeshells

ECS_local set[98, 60];                      //Smokeshell timeout

ECS_local set[100, 0.98];                   //Chance of AI using supressive fires

ECS_local set[101, 35];                     //Supressive fire timeout

ECS_local set[108, true];                   //Can AI panic

ECS_local set[109, 0.85];                   //Chance of AI panicking

debug=true;

debugmarkers=false;

X_INIT = false;

X_Server = false; X_Client = false; X_JIP = false;X_SPE = false;

bAIArtilInProgress = false;

X_MP = (if (playersNumber east + playersNumber west + playersNumber resistance + playersNumber civilian > 0) then {true} else {false});

if (isServer) then {

X_Server = true;

if (!(isNull player)) then {X_Client = true;X_SPE = true;};

X_INIT = true;

   iRainLess = 0.0 + random 0.34;

   iRainMore = 0.35 + random 0.6;

   iFogLess = random 0.330;

   iFogMore = 0.35 + random 0.5;

   publicVariable "iRainLess";

   publicVariable "iRainMore";

   publicVariable "iFogLess";

   publicVariable "iFogMore";

} else {

X_Client = true;

if (isNull player) then {

X_JIP = true;

[] spawn {waitUntil {!(isNull player)};X_INIT = true};

} else {

X_INIT = true;

};

};

setterraingrid 25;

setviewdistance 2000;

// center position, name city, diameter for placing units

target_names = [[[9348.73,5923.4,0],"Cayo", 210*(1 + random 3)],

[[10692.9,4953.4,0],"Iguana", 250],

[[7613.23,6424.32,0],"Arcadia", 235],

[[8241.74,9016.77,0],"Chantico", 200*(1 + random 1)],

[[9170.43,8309.3,0],"Somato", 230*(1 + random 1)],

[[10580.1,9430.44,0],"Paraiso", 300*(1+random 0.75)],

[[12399,7141.23,0],"Ortego",280*(1+random 1.5)],

[[11452,6075.97,0],"Dolores",300*(1+random 0.5)],

[[13351.8,8937.45,0],"Corazol",300],

[[14470,10773.5,0],"Obregan",240*(1+random 1)],

[[13172,11319.6,0],"Mercalillo",210*(1+random 1)],

[[14232.7,12525,0],"Bagango",230*(1+random 1.5)],

[[17291,14213.4,0],"Masbete",180*(1+random 1.5)],

[[19033.5,13814.3,0],"Pita",230*(1+random 1)],

[[12538.3,15004.2,0],"Eponia",210*(1+random 0.9)],

[[16595.8,9357.96,0],"Everon",200*(1+random 0.5)],

[[9773.03,14435.7,0],"Pacamac",150*(1+random 0.6)],

[[7771.72,15802.1,0],"Hunapu",150*(1+random 0.2)],

[[10592.5,16193.8,0],"Mataredo",150*(1+random 0.2)],

[[12426.8,13387.6,0],"Carmen",170*(1+random 1)],

[[2895.6,2890.64,0],"Rahmadi",180*(1+random 1)]

];

for "_xxxxx" from 2 to ((count target_names) + 1) do {

call compile format ["""%1"" objStatus ""HIDDEN"";", _xxxxx];

};

if (debugmarkers) then {

   {

    _pos = _x select 0;

    _name = _x select 1;

    _size = _x select 2;

    _marker= createMarkerLocal [_name, _pos];

    _marker setMarkerShapeLocal "ELLIPSE";

    _name setMarkerColorLocal "ColorGreen";

    _name setMarkerSizeLocal [_size,_size];

    _name = _name + "xx";

    _marker= createMarkerLocal [_name, _pos];

    _marker setMarkerTypeLocal "DOT";

    _name setMarkerColorLocal "ColorBlack";

    _name setMarkerSizeLocal [0.5,0.5];

    _name setMarkerTextLocal _name;

   } forEach target_names;

};

Note the params list on the top (as in description.ext). This makes sure the first encountered dusk or dawn period will both have moonlight. Shown here is just for singleplayer testing.

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. Attacking Bagango as small will be a totally different experience from last time when attacking Bagango as big. I felt this was needed because online, everyone seems to know a "sweet spot" for the MHQ which tends to be very close to the target area. Now we have to be slightly more careful. If a water and terrain steepness check where done while placing units, this could be expanded to include all towns.

Is this "safe"?

Then, replaced the rewards by exhanging sm_ with mt_ to make main mission objectives more desireable to perform, while using small bonuses for side missions which can be more attractive fro starting up the server with few people. Problem on public is that everyone just kills, not do the objectives. Never saw a hostage get rescued, much faster just to throw artillery down their way. Maybe this will help... Anyways, further down the init is:

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

d_only_pilots_can_fly = [];

skiptime param2;

0.1 setOvercast iRainLess;

sleep 0.2;

0.1 setFog iFogLess;

I also introduce some new vehicle classes to the respawn setups, such as chopper #2 now being an MH-6 (for my blackops team), an armored vehicle class for a respawneable M113 (for assault team, gets a couple of the MHQ functions), and unarmored vehicle class for a couple of jeeps (blackops team). Only two UH-60, one for each support team, pluss made the wreck helicopter a FFAR carrying one. All vehicles have cargo removed, some custom refilled.

Then, the init.sqf ends with these lines:

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

d_helilift2_types = [""];

d_helilift3_types = d_helilift1_types;

ts_vec_id = -1;

ts_nearest = objNull;

ts_id = -1;

player_backpack = [];

prim_weap_player = "";

x_weapon_array = [];

if (!X_SPE) then {

waitUntil {count vars_array > 0};

date_str = vars_array select 0;

current_target_index = vars_array select 1;

current_mission_index = vars_array select 2;

main_target_radiotower_down = vars_array select 3;

target_clear = vars_array select 4;

all_missions_resolved = vars_array select 5;

ammo_boxes = vars_array select 6;

the_end = vars_array select 7;

mr1_in_air = vars_array select 8;

mr2_in_air = vars_array select 9;

sec_kind = vars_array select 10;

ari_available = vars_array select 11;

ari2_available = vars_array select 12;

resolved_targets = vars_array select 13;

side_missions_random = vars_array select 14;

jump_flags = vars_array select 15;

truck1_cargo_array = vars_array select 16;

truck2_cargo_array = vars_array select 17;

main_target_radiotower_pos = vars_array select 18;

d_ammo_boxes = vars_array select 19;

   iRainLess = vars_array select 20;

   iRainMore = vars_array select 21;

   iFogLess = vars_array select 22;

   iFogMore = vars_array select 23;

};

client_target_counter = count resolved_targets;

waitUntil {local player};

[] execVM "x_scripts\x_jip.sqf";

if (true) exitWith {};

Other important stuff:

1. I disallow artillery use if we have friendlies or hostages nearby.

2. Artillery random sleeps doesn't work, so I vary the release height for HE shells, desynchronizing it somewhat.

3. I've made artillery response depend greatly on what is coming. I.e. the HE and DPICM will have a panic phase, a organized phase, and a return to normal phase. For flares, they hit the dirt and just freeze up (as per amy field manuals), they will start moving slow and stealthy in a while while everyone watches random directions. Now only a few units will "put down smoke" because I didn't really like how it looked. Instead, vehicles will now fire their smoke launchers as per hit-eventhandler I've attached to them, then try to evade. It looks great biggrin_o.gif

4. I've used my own enemy artillery script. Still based on observers being alive, but not on their knowlegde. Instead I use a detection trigger. They will now use both dpicm and smoke and illumination combinations against us. For destructive rounds, they are "nice" to us and always fire a spotround first, but you *will* need to react upon it, and position will use estimated position whwere you'll be when the shot arrives based on your velocity. It's not as easy as you might think, but also it's not as hopeless as it would be in real life.

5. I'm still using vehicle based ammocrates, i.e. an UH and an M113 will drop totally different crate contents.

6. The guarding units are just standing there in formation waiting for something to happen. This makes them easy artillery targets. So I've given them a "DISMISS" waypoint, and they'll return there upon contact.

7. I removed the constant flaring of target area, it didn't feel right for me. Besides, there should be more than enough illumination from enemy and friendly artillery (we now have a prolonged illumination mission), and AI's using flares automatically at least while using ECS addon on server.

8. Because of the new random city areas, using a constant 300 radius marker didn't feel right (never was actually smile_o.gif). So I'm using a regular destroy marker now labelled main target. Completed is shown as a green "marker" type marker.

9. I've also changed status dialog so that current weather reports are shown below main target secondary objective and side mission info boxes. Needed because every time a mission is started it will get different weather setups.

I've seen units being placed, and it's a mess actually. No wonder there are so many flipped vehicles there. They spawn in the excact same place; I've had a UAZ on top of two trucks while a BMP was trying to climb everything. This needs to be adressed in future versions I think.

Xeno, I hope it is okay that I keep spamming you with ideas biggrin_o.gif You might have a life besides Domination, but unfortunately, I don't yay.gif

Share this post


Link to post
Share on other sites

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

I would like to exchange the artillery officer with the mapfact radio operator. No problem so far. But additionally I would like to connect the ability of calling artillery strikes to a certain weapon (MAP_RADIO_W) so the radio operators can only call strikes if they carry the radio backpack.

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

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

};

After inserting this at the beginning of the artillery.sqf it resulted in an error message sad_o.gif Have you any idea how to fix this?

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

×