Jump to content
Sign in to follow this  
cougarxr7

Evolution Marines my Discoveries/Fixes

Recommended Posts

First let say from what I've been told we are not suppost to have this map. It was suppost to be used for testing only. Never meant to be played.

First fix, find the BIS_EVO_CreateVehicle.sqf in your data\scripts folder.

at the bottom of that file it is missing 2 semicolons on,

_returnarray

}

to this

_returnarray;

};

Server operating system seem to forgive scripting syntax mistakes unlike XP.

I'm not sure how many servers are running this mission or a version of it and yet if they do not finish or cycle to fix that do the foloowing.

Find the file EVO_FillInf.sqf in data\scripts folder.

BIS_EVO_FillInf = 
{
_grp = _this select 0;
_lpos = position leader _grp;
//_allunits = ["RU_Soldier"];
_allunits = ["RU_Soldier_MG","RU_Soldier_HAT","RU_Soldier_HAT","RU_Soldier_HAT","RU_Soldier_Sniper","RU_Soldier_Medic","RU_Soldier_GL","RU_Soldier","RU_Soldier_AA","RU_Soldier_AA"];	
_max = (count _allunits)-1;

>>>>	_count = 3;<<<<<<< CHANGE THIS TO 11 OR HOWEVER MANY TOWNS YOU HAVE AS TARGET OBJECTS.

_j = 0;
while {_j <= _count} do 
{
	_unit = _grp createUnit [_allunits select (round random _max), _lpos, [], 0, "FORM"];
	_unit setSkill 2+(random 3);
	[_unit] join _grp;
	_j = _j+1;
	sleep 0.1;
};
[_grp] call BIS_EVO_OrderSquad;
};

Look in the same file for BIS_EVO_FillInfDummy although it is not being called or accessed, there is the same _count = # there, it can't hurt to change that one to 11 also.

Capture Offficer marker not showing up, to fix this do this.

Find the file objoff.sqf in your data\scripts folder.

// server side capture officer script
_off = _this select 0;
_grp = group _off;

_mark = format["M%1",_off];
_search = createMarker [_mark, [-5000,-5000,0]];
_search setMarkerType "mil_join";
_search setMarkerText localize "STR_M04t47_0";
_search setMarkerColor "ColorBlue";
_search setMarkerSize [0.5, 0.5];

_trgobj3 = createTrigger ["EmptyDetector", position _off];
_trgobj3 setTriggerActivation ["WEST", "PRESENT", true];
_trgobj3 setTriggerArea [200, 200, 0, false];
for [{_loop=0}, {_loop<1}, {_loop=_loop}] do
{
	sleep 4.001;
	if (count list _trgobj3 > 0) then {_search setMarkerPos position _off};
	_trgobj3 setpos position _off;
Block out this line bellow like this. 
>>>>>>>>>	//if ((group _off) != _grp) then {_loop=1};

	if (not (alive _off)) then {_loop=1};
};
deletevehicle _trgobj3;
deletemarker _search;

Get within 200m of the Officer and his marker should show up. If that marker does not show up, chances are he was killed by his own men.

Anyone needing anymore help just let me know.

Share this post


Link to post
Share on other sites

In EVO_FillInf.sqf change all isntances of _count to _infcount

Fixes the towns not working as Erec is called within the same thread as the town progress counter which also uses the variable _count.

Thats what i did when i made the -Edit version :D

Share this post


Link to post
Share on other sites

Benneb, do you have a thread/post with your find and fixes?

I'd like to read more about them.

If I'm not mistaken all that does is set a number to inf and then subtracts 1, yes,no?

So set _count to = 11 means 10 inf, yes/no?

thanks

Share this post


Link to post
Share on other sites

It sets the amount of infantry to spawn for that group. The problem as i said was that the variable was being used in more than one place in the same thread.

Both EVO_MissionManager.sqf:

while {BIS_EVO_MissionProgress < _count} do
{

And BIS_EVO_FillInf

[_mkr,BIS_EVO_DetectEast,BIS_EVO_DetectWest,BIS_EVO_MissionProgress] call BIS_EVO_Erec;

BIS_EVO_Erec would then call BIS_EVO_FillInf which would then set _count to 8. Which is why the map would just stop after the 8th town (Gorka) was completed.

The only other real fix i have done is fixing the T menu so you do not have to reconnect to be able to use it again.

The latest release of my version of the map (ack at that terrible display of English there) is V0.8b2.

Other than that ive only been tinkering; making the map harder, adding acceerated day/night cycle.

At the moment i am working on version b3 which should include Norrin's revive script (yey) and garrisoned units in buildings (hurrah).

Share this post


Link to post
Share on other sites

Benneb, I tried what you said you did and broke the mission, could you post your fillinf.sqf?

I was wondering how that _count in the fillinf.sqf could affect the _count in the missionmanager.sqf. I read that the underscore kept that variable in the sqf file it was in from being global or public but that did not happend here. Because they are being execVM from the sinit.sqf, is that was causes them to be in the same threadf? Could you explain that a little bit more?

thanks!

Share this post


Link to post
Share on other sites

I fixed it.

Old EVO_FillInf.sqf

_grp = _this select 0;

_lpos = position leader _grp;

//_allunits = ["RU_Soldier"];

_allunits = ["RU_Soldier_MG","RU_Soldier_HAT","RU_Soldier_HAT","RU_Soldier_HAT","RU_Soldier_Sniper","RU_Soldier_Medic","RU_Soldier_GL","RU_Soldier","RU_Soldier_AA","RU_Soldier_AA","RU_Soldier_Medic","RU_Soldier_Medic"];

New EVO_FillInf.sqf

_grp = _this select 0;

_lpos = position leader _grp;

_count = _infcount;<*************added this!***************>

//_allunits = ["RU_Soldier"];

_allunits = ["RU_Soldier_MG","RU_Soldier_HAT","RU_Soldier_HAT","RU_Soldier_HAT","RU_Soldier_Sniper","RU_Soldier_Medic","RU_Soldier_GL","RU_Soldier","RU_Soldier_AA","RU_Soldier_AA","RU_Soldier_Medic","RU_Soldier_Medic"];

Edited by Cougarxr7

Share this post


Link to post
Share on other sites

mine is this:

BIS_EVO_FillInf = 
{
_grp = _this select 0;
_lpos = position leader _grp;
_allunits = ["RU_Soldier_MG","RU_Soldier_HAT","RU_Soldier_HAT", "RU_Soldier_HAT","RU_Soldier_Sniper","RU_Soldier_M edic","RU_Soldier_GL","RU_Soldier","RU_Soldier_AA" ,"RU_Soldier_AA","RU_Soldier_Medic","RU_Soldier_Me dic"];
_max = (count _allunits)-1;
_infcount = 8;
_j = 0;
while {_j <= _infcount} do 
{
	_unit = _grp createUnit [_allunits select (round random _max), _lpos, [], 0, "FORM"];
	_unit setSkill 2+(random 3);
	[_unit] join _grp;
	_j = _j+1;
	Sleep BIS_EVO_GlobalSleep;
};
//player sideChat format ["EVO_FillInf:%1",_j];
[_grp] call BIS_EVO_OrderSquad;
};

Share this post


Link to post
Share on other sites

Mine is this and now it's working very well.

We've played the entire campaign twice on our server today :)

BIS_EVO_FillInf = 
{
_grp = _this select 0;
_lpos = position leader _grp;
//_allunits = ["RU_Soldier"];
_allunits = ["RU_Soldier_MG","RU_Soldier_HAT","RU_Soldier_HAT","RU_Soldier_HAT","RU_Soldier_Sniper","RU_Soldier_Medic","RU_Soldier_GL","RU_Soldier","RU_Soldier_AA","RU_Soldier_AA"];	
_max = (count _allunits)-1;
_count = 11;
_j = 0;
while {_j <= _count} do 
{
	_unit = _grp createUnit [_allunits select (round random _max), _lpos, [], 0, "FORM"];
	_unit setSkill 2+(random 3);
	[_unit] join _grp;
	_j = _j+1;
	Sleep 1;
};
//player sideChat format ["EVO_FillInf:%1",_j];
[_grp] call BIS_EVO_OrderSquad;
};

I've made many modifications to Evo Marines. Search "Clan=GFDS=" in server browser if you want see it running.

Share this post


Link to post
Share on other sites

That still limits you to 11 plus units per squad or the map breaks.

Its best to just replace all _count in that file with something else (like mine is _infcount).

Having two scripts that do totaly different things but still share a variable just cant be a good thing. :)

Share this post


Link to post
Share on other sites

cestcomi,

Benneb is correct,

"Having two scripts that do totaly different things but still share a variable just can't be a good thing."

It would be better if you would add at the top of that BIS_EVO_fillinf.sqf,

_count = _infcount

or change it to how Benneb has his file.

Share this post


Link to post
Share on other sites
cestcomi,

Benneb is correct,

It would be better if you would add at the top of that BIS_EVO_fillinf.sqf,

_count = _infcount

or change it to how Benneb has his file.

Change is made and it works.

But I didn't see any difference. Maybe it's better for server load ? :confused:

With or without this modification, my ArmA2Server.RPT gives me this kind of error:

2009/08/14, 13:32:13 Out of map
2009/08/14, 13:32:13 Error O 3-3-K:3: Invalid path from [7946.21, 9.31, 3192.38] to [7872.69, 6.24, 3182.68].
2009/08/14, 13:32:24 Out of map
2009/08/14, 13:32:24 Error O 3-3-K:3: Invalid path from [7946.21, 9.31, 3192.38] to [7890.14, 6.30, 3182.53].
2009/08/14, 13:32:36 Out of map
2009/08/14, 13:32:36 Error O 3-3-K:3: Invalid path from [7946.21, 9.31, 3192.38] to [7855.24, 6.25, 3182.53].
2009/08/14, 13:32:50 Out of map
2009/08/14, 13:32:50 Error O 3-3-K:3: Invalid path from [7946.21, 9.31, 3192.38] to [7872.69, 6.24, 3182.68].
2009/08/14, 13:33:02 Out of map
2009/08/14, 13:33:02 Error O 3-3-K:3: Invalid path from [7946.21, 9.31, 3192.38] to [7890.14, 6.30, 3182.53].
2009/08/14, 13:33:13 Out of map
2009/08/14, 13:33:13 Error O 3-3-K:3: Invalid path from [7946.21, 9.31, 3192.38] to [7855.24, 6.25, 3182.53].
2009/08/14, 13:33:24 Out of map
2009/08/14, 13:33:24 Error O 3-3-K:3: Invalid path from [7946.21, 9.31, 3192.38] to [7872.69, 6.24, 3182.68].

I have no idea where from this error comes. I put nothing "out of map"....

Could you give me more informations about this error ?

:shrug:

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
Sign in to follow this  

×