IRONFRONT FANS FORUM
Sign up Latest Topics
 
 
 


Reply
  Author   Comment  
BRS

Captain
Registered:
Posts: 197
Reply with quote  #1 
Hope it's the right place for my question..

I went over to test my scripts playing MP missions now. A different world...

Question:
Yesterday we played a mission and by the way we looked onto the map.
We saw different times on the watch.
While I, as server, had 19:00, the second one had 19:05 and the third one had 18:10.
Can't be normal, or? IMO we all should see the same time in game.
What to say is, that one of us (third) has grafic issues from time to time and uses Alt-Tab to switch between game and Desktop. This way the issue is driven away always.

Depending on my hardware and connection..

/--
Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz
8GB RAM
84GB free HD space
NVIDIA GeForce GTX 560 Ti 4095 MB
DSL 10000
/--
Should it be possible to host and play (on same computer) with two connect clients?
Sure the map should not be such big.
What other limits should I look for?

0
Tayuk

Avatar / Picture

RM Team
Registered:
Posts: 456
Reply with quote  #2 
The mission you were playing. did it have time of day parameters that could be changes before the mission starts?

If so, connection (desync, lag) issues can cause a problem with this. There is no real solution other than all players having a stable connection at the time mission begins. I have seen this on ARMA aswell, also restarting the mission can sometimes correct it.

But you definately won't be the 1st to have experienced it

Sorry I couldn't be of more help.

I will also post in the editing section a set of scripts to give missions the parameters options for daytime, weather, view distance, enviroment and grass, they maybe of use to someone.
0
BRS

Captain
Registered:
Posts: 197
Reply with quote  #3 
Quote:
The mission you were playing. did it have time of day parameters that could be changes before the mission starts?

No, I didn't inserted this feature.
I made several changes to the mission and we played it yesterday again.
Game runs better and the time was the same for all players. I believe the setViewDistance 600; inside the init.sqf was one of the winners.

This mission is mostly an infantry mission, a small German group has to retake Staszow after Sowjets had
conquered the town.
I inserted some of my selfmade scripts including a
nice one which removes dead soldiers and place their inventory f.e. weapons, grenades and magazines on the ground.
Beside this I inserted
my AIMortar, random placement for Sow Soldier groups in buildings, random placement for crates and some random small mine fields. Only external one is the UPSMON script I found.
I must say say we played this mission for a good dozen times
now and it is different every single time. Sometimes it is weak but mostly hard core. In singleplayer mode it's very hard to finish now since I found out to make the AI more agressive by the setskill command.
The mission itself isn't ready now, I have to learn about making briefings..
0
Tayuk

Avatar / Picture

RM Team
Registered:
Posts: 456
Reply with quote  #4 
Hi BS, glad the time thing is sorted out. I would like to see the body delete script that leaves there gear if possible? Maybe you could post it?

There are many ways to do mission briefings and tasks, but I now use almost exclusivly taskmaster2 now I know the basics I find it easier.
Good luck with finishing the mission, I look forward to it's release.
0
BRS

Captain
Registered:
Posts: 197
Reply with quote  #5 
Quote:
I would like to see the body delete script that leaves there gear if possible? Maybe you could post it?

Sure that I will share it. But I must some things know before. Let me explain:
For now I inserted an 'center-object' and start the -search and remove action- if a group member moves into a trigger area. The script will scan around a 'hardcoded' radius and do it's job there.
I placed a few of this center-objects and each single one is triggered by it's own trigger. The idea was to minimize the time the script is using for the search and drop job.
But while thinking about, the idea is to rewrite the script that way, so that the mission designer places one 'to search around'- object in middle of area and let the mission designer adjust values like radius and a search interval. This way you could i.e. tell the script that it should search every 5 mins inside a radius of 500m around an fixed object.
What would you prefer?

0
Tayuk

Avatar / Picture

RM Team
Registered:
Posts: 456
Reply with quote  #6 
Well at the moment I am using this script by Celery, which works perfectly well, but it does not leave the dead guys gear. I think there is an option to use it so it leaves the gear but I am not sure as I don't fully understand the script.

But a scipt that gets rid of the body but leaves the gear would be useful. The last option you mentioned sounds great, so have adjustable radius and time.

/*

CLY Remove Dead by Celery

Removes dead units and vehicles from the battlefield.

Version 2011.10.28

 

The script is less functional in plain Arma 2 because it lacks the allDead command. In plain Arma 2 the script...

- is probably a little heavier

- doesn't remove vehicles or animals

- lacks the hideBody transition due to its bugged nature in Arma 2 Free

Execute in init script:

[60,0,true] execVM "cly_removedead.sqf";

[wait time for men,wait time for vehicles,remove units with gear (optional, default true)] execVM "cly_removedead.sqf";

A wait time of 0 prevents that type from being removed.

Prevent an individual unit from being removed: this setVariable ["CLY_removedead",false,true]

Remove an individual unit immediately upon death: this setVariable ["CLY_removedead",true,true]

 

Use the CLY_ignoregear array to define gear classnames that don't prevent a unit's removal when only gearless bodies are removed.

Alternatively, use CLY_keepgear to define gear that prevents removal when geared unit removal is enabled.

Remember correct upper and lower case in classnames or it won't work! Check config browsers if not sure.

*/

if (!isServer) exitWith {};

CLY_ignoregear=["ItemRadio","ItemCompass","ItemWatch","ItemMap","ItemGPS"];
CLY_keepgear=[];
CLY_noremovegear=[];
_oa=isClass (configFile/"CfgPatches"/"CA_E");
_manwait=_this select 0;
_vehiclewait=if (count _this>1) then {_this select 1} else {_manwait};
CLY_removegeared=if (count _this>2) then {_this select 2} else {true};
CLY_removedeadpending=[];
CLY_dontremovedead=[];
CLY_dontremovedeadremove=[];
publicVariable "CLY_dontremovedeadremove";

//Spawnable script

_removedead={
_unit=_this select 0;
_wait=_this select 1;
sleep _wait;
waitUntil {isNull flag _unit};
_gear=if (_unit isKindOf "Man") then {(magazines _unit+weapons _unit)-CLY_ignoregear} else {[]};
if (isNull _unit or _unit in CLY_dontremovedead or (CLY_removegeared and {_x in CLY_keepgear} count _gear>0) or (!CLY_removegeared and count _gear>0)) exitWith {
CLY_removedeadpending=CLY_removedeadpending-[_unit];
};
if (_unit isKindOf "Man" and isClass (configFile/"CfgPatches"/"CA_E")) then {
hideBody _unit;
_removetime=time+8;
while {getPos _unit select 2<0.2 and time<_removetime} do {sleep 0.1};
};
CLY_removedeadpending=CLY_removedeadpending-[_unit];
deleteVehicle _unit;

};

//Loop
_allunits=[];
_alldead=[];
while {true} do {
if (!_oa) then {_allunits=allUnits};
sleep 1;
if (!_oa) then {
{if (!alive _x) then {_alldead set [count _alldead,_x]}} forEach _allunits;
{if (isNull _x) then {_alldead=_alldead-[_x]}} forEach _alldead;
} else {_alldead=allDead};
{
if (isNil {_x getVariable "CLY_removedead"}) then {
if !(_x in CLY_removedeadpending) then {
_wait=if (_x isKindOf "Man") then {_manwait} else {_vehiclewait};
_gear=if (_x isKindOf "Man") then {(magazines _x+weapons _x)-CLY_ignoregear} else {[]};
if (_wait>0 and ((CLY_removegeared and {_x in CLY_keepgear} count _gear==0) or (!CLY_removegeared and count _gear==0))) then {
[_x,_wait] spawn _removedead;
CLY_removedeadpending set [count CLY_removedeadpending,_x];
};
};
} else {
if (_x getVariable "CLY_removedead") then {
if (vehicle _x==_x) then {
CLY_removedeadpending set [count CLY_removedeadpending,_x];
[_x,0] spawn _removedead;
_x setVariable ["CLY_removedead",nil];
};
} else {
CLY_dontremovedead set [count CLY_dontremovedead,_x];
_x setVariable ["CLY_removedead",nil];
};
};
} forEach _alldead-CLY_dontremovedead;
if (count CLY_dontremovedeadremove>0) then {
CLY_dontremovedead=CLY_dontremovedead-CLY_dontremovedeadremove;
CLY_dontremovedeadremove=[];
publicVariable "CLY_dontremovedeadremove";
};

 

0
BRS

Captain
Registered:
Posts: 197
Reply with quote  #7 
I placed the new script into the scripting forum. Have a look if it works for you. Usage should be explained enough. Hope it's easy to use.
I believe my script is easier to understand as the one you placed above, at least I hope so.
If you find issues or you would like to add an idea let me know.
0
Previous Topic | Next Topic
Print
Reply

Quick Navigation:

Easily create a Forum Website with Website Toolbox.