Jump to content
Tankbuster

Editing, Expanding and Modifying Domination

Recommended Posts

No, didn't test TT. We don't have it on our server. All I know is that the vanilla repair is broken for certain vehicles, i.e. the Stryker MEV and UN M113 Ambulance (might be others); can't be repaired by engineers. I'm hoping this is something a patch will fix.

This new engineer thing is a bit half arsed and half fixed if you ask me. Yes, I can definitely see the point of having the engineers not being able to make a full fix in the field, but as you say, it's bugged and doesn't work on all vehicles.

We could change our engineers to a different class to prevent the new spanner abilities being got. I'm thinking about lots of stuff for engineers, I don't like them refueling vehicles for a start - I can't see them carrying a couple of hundred litres of JET A1 around. :)

Share this post


Link to post
Share on other sites

Then again, you claim you want to bury the mission, yet you've just added references to all the BAF stuff, albeit remarked out. :)

Yep, just to show how it works.

I don't want to sound ungrateful because I'm really not. For many players, Domination is the showcase for this game, but perhaps unintentionally, the use of GVAR and similar tokens mean that the code and coding techniques are so obfuscated I can no longer learn from it and that's a real shame.

Well, then it's good that I've stopped, otherwise I would have added more of this and then nobody would be able to read it (macros are easy to handle). Normal sqf scripting gets boring after some time :)

I've deleted it from my disk, finally, and now you don't need to worry anymore that it gets more obfuscated :)

Xeno

Share this post


Link to post
Share on other sites

@Xeno: Deleted from disk? Wtf? For me that would be killing my own child :p So next project (if any), reinvent all functions from scratch - reinvent the wheel?

@Tankbuster: Wrt fuel, I know, and I agree. But if you remember from Arma1, any amount of damage (and no setHit areas/selections back then) would cause a fuel leak. So if you fixed vehicle, you still wouldn't be able to move it. And damage didn't have to be self inflicted, the setPos bug (for lifting) could cause even the best of pilots to crash or at least damage the chopper. You could make it so (for custom engineer) that if vehicle can't move, then add 5-10% emergency fuel if it has zero fuel left.

I wouldn't make it possible to turn off the intro though (except for debugging purposes). I'm not sure if it's critical for initialization timings anymore, but there is a lot of player setup stuff going on during that time. In my version there is even a small hickup due to scanning the entire island for building classes (for sound effects placement). Also it's nice with a quick reminder as to what it is you're actually playing. And finally, we're only talking about a few seconds anyway.

Share this post


Link to post
Share on other sites

I also can't seem to find the 2.54 version, can anyone reup this please?

Just a question. It seems you guys are still fixing things in domi and adding new things. Isn't there a way you could add it as a project to dev-heaven or get it into a svn repository (google code or something).

It would be nice to have the most recent up to date version.

Edited by dikkeduif

Share this post


Link to post
Share on other sites

Just because somebody says something that isn't a glowing reference, doesn't make it a personal slur, Xeno. FFS.

---------- Post added at 10:21 AM ---------- Previous post was at 10:14 AM ----------

I also can't seem to find the 2.54 version, can anyone reup this please?

Just a question. It seems you guys are still fixing things in domi and adding new things. Isn't there a way you could add it as a project to dev-heaven or get it into a svn repository (google code or something).

It would be nice to have the most recent up to date version.

http://www.teamspaff.co.uk/domination/

The two latest versions of the original. :)

Share this post


Link to post
Share on other sites
Just because somebody says something that isn't a glowing reference, doesn't make it a personal slur, Xeno. FFS.

---------- Post added at 10:21 AM ---------- Previous post was at 10:14 AM ----------

http://www.teamspaff.co.uk/domination/

The two latest versions of the original. :)

thank you sir :)

Share this post


Link to post
Share on other sites

I now know how to up the amount of AI recruited, thank you for that.

What script do I need to edit to change the AI units from US/USMC to the new BAF units and what new code would I need to add/change?

Many thanks,

Rich

Share this post


Link to post
Share on other sites

guys in the 2.54 there is a critical error! if you go into the file and add SoldierWPilot as pilots only there is a script error!

could anyone tell me why that is?

Share this post


Link to post
Share on other sites
I now know how to up the amount of AI recruited, thank you for that.

What script do I need to edit to change the AI units from US/USMC to the new BAF units and what new code would I need to add/change?

Many thanks,

Rich

i replaced some US units with some of the Tschech. ones without problems, i think you can do the same with the BAF units. But you should keep the unitnames.

and you have to add the BAF weapons and magazines .... just look some sides back in this theard.

Share this post


Link to post
Share on other sites

I want to decrease the frequency of the enemy parachuters over the main objective. Anyone know what file(s) this is in or a search time for it?

Share this post


Link to post
Share on other sites
;1738420']I want to decrease the frequency of the enemy parachuters over the main objective. Anyone know what file(s) this is in or a search time for it?

There's no variable dedicated to this, but you have a number of options.

Firstly, you could move the paratroop drop chopper further away or change the aircraft it uses to one this less crew space, both settings are in i_server.

Also, you could make the radio tower easier to kill, which would stop the paratroop drops earlier. You do something in XCheckSMHardTarget.fsm for this, but I don't usually look inside the FSMs

Share this post


Link to post
Share on other sites

I want to add 2 planes and 2 choppers to the domination mission. I've added them in the mission editor. The problem is when they get destroyed, they don't respawn. Also we're not able to re-arm at base with these vehicles. How can I solve these problems? How do I make these objects part of the core game?

Also when an engineer fixes a vehicle, is it possible the vehicle doesn't have any fuel? I know the engineer only fixes up to a certain point, but I'm not sure about the fuel...

Share this post


Link to post
Share on other sites
Hehe, yeah that GVAR stuff is hard to read. Looking at the macros it seems to me that all it does is prefix d_ to the variable, at which point I fail to see the purpose. I'm dropping this one too, it's becoming far too complex to read. Most of the other changes (I missed one of the kb_tell trues though) was already in, but will add the stuff that is missing - at least anything not dealing with GVAR :p

Personally I think everything is hard to read? :p

Wouldnt it be nice if you had the editor map loaded, then saw...

[Game Logic] dom_vehicles_west - turn every west vehicle on the map to a Domination vehicle (ie reammo, artillery, refuel, wreck repair, etc)

[Game Logic] dom_intro - runs the intro sequence at mission start

[Game Logic] dom_revive - obvious

[Game Logic] dom_mainmissions - starts main missons

Etc for every part of Domination

Changing it would just be a matter of editing the init, removing or adding a new one (and its related files of course).

Meh, maybe it isnt possible, I dont know.

Share this post


Link to post
Share on other sites

Not possible as it requires addons. Not desired as the purpose is to have as little stuff as possible in the editor in the first place, or at least make sure all the mission.sqm for different versions are equal (factions excluded naturally). Even the weather module is created using in script rather than placing it on the map.

Share this post


Link to post
Share on other sites
Not possible as it requires addons. Not desired as the purpose is to have as little stuff as possible in the editor in the first place, or at least make sure all the mission.sqm for different versions are equal (factions excluded naturally). Even the weather module is created using in script rather than placing it on the map.

So it's not possible to have an a10 and apache from the start? The reason why I want to do this is because our gaming group only plays one main mission and side mission at most. We never get to the point of unlocking them.

There must be a way to name these objects and add them to a certain array, so they get respawned right? In the editor I can see all the other vehicles as well...

Any help or tip is appreciated...

Share this post


Link to post
Share on other sites

Yes, you can just add them in the editor. They won't respawn though.

Share this post


Link to post
Share on other sites

@dikkeduif: Oh sure, that's possible. My answer was to Murklor - if I don't put a @name, my answer is directed to the post above mine.

If it's only for your own group, why just not put in several vehicles that don't respawn? I've never added vehicles, only removed and reconfigured everything. But if I was to try, I would start by looking up the "names" the existing ones have in the editor and search the scripts. It's a tedious process, but the only way to learn. Turn on -showscripterrors and get a good text editor with "search text in files" capability.

Share this post


Link to post
Share on other sites
So it's not possible to have an a10 and apache from the start? The reason why I want to do this is because our gaming group only plays one main mission and side mission at most. We never get to the point of unlocking them.

There must be a way to name these objects and add them to a certain array, so they get respawned right? In the editor I can see all the other vehicles as well...

Any help or tip is appreciated...

Put this in a text file and save it has vehicle.sqf

/*

=========================================================

Simple Vehicle Respawn Script v1.7

by Tophe of Östgöta Ops [OOPS]

Put this in the vehicles init line:

veh = [this] execVM "vehicle.sqf"

Options:

There are some optional settings. The format for these are:

veh = [this, Delay, Deserted timer, Respawns, Effect, Static] execVM "vehicle.sqf"

Default respawn delay is 30 seconds, to set a custom

respawn delay time, put that in the init as well.

Like this:

veh = [this, 15] execVM "vehicle.sqf"

Default respawn time when vehicle is deserted, but not

destroyed is 120 seconds. To set a custom timer for this

first put the respawn delay, then the deserted vehicle timer. (0 = disabled)

Like this:

veh = [this, 60, 10] execVM "vehicle.sqf"

By default the number of respawns is infinite. To set a limit

First set the other values then the number of respawns you want (0 = infinite).

Like this:

veh = [this, 15, 10, 5] execVM "vehicle.sqf"

Set this value to TRUE to add a special explosion effect to the wreck when respawning.

Default value is FALSE, which will simply have the wreck disappear.

Like this:

veh = [this, 15, 10, 5, TRUE] execVM "vehicle.sqf"

By default the vehicle will respawn to the point where it first

was when the mission started (static). This can be changed to

dynamic. Then the vehicle will respawn to the position where it was destroyed.

First set all the other values then set TRUE for dynamic or FALSE for static.

Like this:

veh = [this, 15, 10, 5, TRUE, TRUE] execVM "vehicle.sqf"

If you you want to set the INIT field of the respawned vehicle, first set all other

values, then set init commands. Those must be inside quotations.

Like this:

veh = [this, 15, 10, 5, TRUE, FALSE, "this setDammage 0.5"] execVM "vehicle.sqf"

Default values of all settings are:

veh = [this, 30, 120, 0, FALSE, FALSE] execVM "vehicle.sqf"

Contact & Bugreport: harlechin@hotmail.com

=========================================================

*/

if (!isServer) exitWith {};

// Define variables

_unit = _this select 0;

_delay = if (count _this > 1) then {_this select 1} else {30};

_deserted = if (count _this > 2) then {_this select 2} else {120};

_respawns = if (count _this > 3) then {_this select 3} else {0};

_explode = if (count _this > 4) then {_this select 4} else {false};

_dynamic = if (count _this > 5) then {_this select 5} else {false};

_unitinit = if (count _this > 6) then {_this select 6} else {};

_haveinit = if (count _this > 6) then {true} else {false};

_hasname = false;

_unitname = vehicleVarName _unit;

if (isNil _unitname) then {_hasname = false;} else {_hasname = true;};

_noend = true;

_run = true;

_rounds = 0;

if (_delay < 0) then {_delay = 0};

if (_deserted < 0) then {_deserted = 0};

if (_respawns <= 0) then {_respawns= 0; _noend = true;};

if (_respawns > 0) then {_noend = false};

_dir = getDir _unit;

_position = getPosASL _unit;

_type = typeOf _unit;

_dead = false;

_nodelay = false;

// Start monitoring the vehicle

while {_run} do

{

sleep (2 + random 10);

if ((getDammage _unit > 0.8) and ({alive _x} count crew _unit == 0)) then {_dead = true};

// Check if the vehicle is deserted.

if (_deserted > 0) then

{

if ((getPosASL _unit distance _position > 10) and ({alive _x} count crew _unit == 0) and (getDammage _unit < 0.8)) then

{

_timeout = time + _deserted;

sleep 0.1;

waitUntil {_timeout < time or !alive _unit or {alive _x} count crew _unit > 0};

if ({alive _x} count crew _unit > 0) then {_dead = false};

if ({alive _x} count crew _unit == 0) then {_dead = true; _nodelay =true};

if !(alive _unit) then {_dead = true; _nodelay = false};

};

};

// Respawn vehicle

if (_dead) then

{

if (_nodelay) then {sleep 0.1; _nodelay = false;} else {sleep _delay;};

if (_dynamic) then {_position = getPosASL _unit; _dir = getDir _unit;};

if (_explode) then {_effect = "M_TOW_AT" createVehicle getPosASL _unit; _effect setPosASL getPosASL _unit;};

sleep 0.1;

deleteVehicle _unit;

sleep 2;

_unit = _type createVehicle _position;

_unit setPosASL _position;

_unit setDir _dir;

if (_haveinit) then

{_unit setVehicleInit format ["%1;", _unitinit];

processInitCommands;};

if (_hasname) then

{_unit setVehicleInit format ["%1 = this; this setVehicleVarName ""%1""",_unitname];

processInitCommands;};

_dead = false;

// Check respawn amount

if !(_noend) then {_rounds = _rounds + 1};

if ((_rounds == _respawns) and !(_noend)) then {_run = false;};

};

};

then put it in the domi mission folder....

------------------------------------

Then put this in the INIT line of any vehicle you had in editor.

veh = [this, 60] execVM "vehicle.sqf" or

veh = [this, 60, 10] execVM "vehicle.sqf"

------------------------------------

Change settings to suit, 60 is the amount of time it takes to respawn if destroyed.

10 is the time it takes to respawn if left in the field before respawning.

Flying On Fumes...

Edited by pillpopper123

Share this post


Link to post
Share on other sites

1. Why include a new script to do something the mission already does? It may seem a little cryptic, but it's well worth the effort to try to understand how things work.

2. Script uses processInitCommands, something I've been warned can potentially cause lag. Check out Dominations version of the object mapper and see how this command was deliberately removed compared to the original. Probably for a reason. That said, I am using it myself to clear and fill vehicle cargo.

Is processInitCommands still considered a "bad command" to use?

Share this post


Link to post
Share on other sites
1. Why include a new script to do something the mission already does? It may seem a little cryptic, but it's well worth the effort to try to understand how things work.

2. Script uses processInitCommands, something I've been warned can potentially cause lag. Check out Dominations version of the object mapper and see how this command was deliberately removed compared to the original. Probably for a reason. That said, I am using it myself to clear and fill vehicle cargo.

Is processInitCommands still considered a "bad command" to use?

Ive added alot of other scripts in my Domination just to learn how scripts work, good pratice.

We have AI heli rescue and Medic Evac, another ammo drop script etc...and it dosnt seem to add lag to anyone.

My problem is when running Norrins revive script in any other of our homemade missions the person thats serving gets lag after the 1st time we respawn...cant seem to get round it..

Flying On Fumes

Share this post


Link to post
Share on other sites
Not possible as it requires addons. Not desired as the purpose is to have as little stuff as possible in the editor in the first place, or at least make sure all the mission.sqm for different versions are equal (factions excluded naturally). Even the weather module is created using in script rather than placing it on the map.

What? Why would it require addons? :confused:

I'm not talking modules, I was talking about using game logics in a similar manner and running their specific script in the logic init. Just a matter of different mission structure with more independant and easier to replace systems, rather than starting from the init and working your very, very long way down.

The mission.sqm could still be equal as the description settings would use setVariable on each game logic to control its function.

Share this post


Link to post
Share on other sites

Two questions for the class:

Has anyone fixed the flir error when you unmount from the gunners position is says something about a undefined variable in X_displayEH_mousezchanged, or at least on my version is does. The error is not too specific, so it's of little help.

Error in expression <R OFF";

setaperture -1;

ppEffectDestroy ppColor;

ppEffectDestroy ppBlur;

ppEffec>

Error position: <ppColor;

ppEffectDestroy ppBlur;

ppEffec>

Error Undefined variable in expression: ppcolor

Error in expression <playremoveeventhandler ["mousezchanged",X_displayEH_mousezchanged];

call XFLIROF>

Error position: <X_displayEH_mousezchanged];

call XFLIROF>

Error Undefined variable in expression: x_displayeh_mousezchanged

// by Xeno
private ["_defaultvalue", "_zchange", "_oldAperture", "_zChangeFinal", "_aperture"];
switch (X_FLIR_ONOFF) do {
case 0: {X_FLIR_ONOFF = 1};
case 1: {X_FLIR_ONOFF = 0};
};

if (X_FLIR_ONOFF == 1) then {
if (isnil {X_FLIR_VEC getvariable 'X_UAV_aperture'}) then {
	_defaultvalue = if (daytime > 5 && daytime < 19) then {24} else {0.07};
	X_FLIR_VEC setvariable ['X_UAV_aperture',_defaultValue];
	setaperture _defaultvalue;
} else {
	setaperture (X_FLIR_VEC getvariable 'X_UAV_aperture');
};
X_displayEH_mousezchanged = (finddisplay 46) displayaddeventhandler ["mousezchanged","
	_zchange = _this select 1;
	_oldAperture = X_FLIR_VEC getvariable 'X_UAV_aperture';
	_zChangeFinal = _zChange / 2;
	if (_oldAperture <= 1.0) then {_zChangeFinal = _zChange / 10};
	if (_oldAperture <= 0.1) then {_zChangeFinal = _zChange / 1000};
	_aperture = _oldAperture + _zchangeFinal;
	if (_oldaperture > 1.0 && _aperture < 1.0) then {_aperture = 1.0};
	if (_oldaperture > 0.1 && _aperture < 0.1) then {_aperture = 0.1};
	if (_aperture < 0.001) then {_aperture = 0.001};
	X_FLIR_VEC setvariable ['X_UAV_aperture',_aperture];
	setaperture _aperture;
"];
call XFLIRON;
} else {
(finddisplay 46) displayremoveeventhandler ["mousezchanged",X_displayEH_mousezchanged];
call XFLIROFF;
};

if (true) exitWith {};

Also as anyone found a way to control weather were you can start the mission on the desired weather? I mean I can start it on the weather I want but it only last a few seconds even if I have the internal weather set to false, though it would be nice to use the internal weather and get the desired results going through it.

Edited by callihn

Share this post


Link to post
Share on other sites

@Murklor: Oh sorry, my bad. Game Logics, not Modules, I see. Everyone seems to ask for modules for everything, and I've practically forgot about game logics myself :p I don't know, they're still options, and from what I can see options are very easy to edit already. "Everything" is neatly placed in description.ext and the i_ files.

@callihn: No sorry, haven't seen the FLIR error in ages. I haven't done anything to fix it. Not sure if I don't get the error anymore due to it no longer kicking in or because we don't use vehicles much. When posting code, please use the code tag rather than (only) spoiler, to maintain indented readability.

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

×