Jump to content
Rydygier

[SP] Pilgrimage

Recommended Posts

NW - no weapons at bodies;

 

It was requested. 

Share this post


Link to post
Share on other sites

NW basically means the enemy you kill will not have his weapon available for you to pickup. NW = no weapon.

 

Quote

1. New loot distribution modes (NW for "no weapons") - by intention any weaponry is removed from killed hostiles, so, I suppose it's kind of game changer, depending on other loot options. Completing optimal gear may be much more difficult and rewarding now.

 

https://forums.bistudio.com/forums/topic/163307-sp-pilgrimage/?do=findComment&comment=3156862

 

Share this post


Link to post
Share on other sites

I see now that the explanation for the Loot Distribution "(NW)" is given in the tooltip for Loot Occurrence...

Share this post


Link to post
Share on other sites

Has to be corrected if so, thanks. 

Share this post


Link to post
Share on other sites

Can you point me to the area where, when you receive intel and that intel has "checked off" a number of holy places that no longer need to be checked? In Cambodia too many churches get crossed off the list at once, imo

Share this post


Link to post
Share on other sites

IntelCheck.sqf:

 

				_text = "Oh! Interesting... Now I can exclude some places.";
							
				_ct = 0;
					
					{
					if ((count _x) == 2) then
						{
						if ((_pos distance (_x select 0)) < (1500 + (random 2500))) then
							{
							_ct = _ct + 1;
							_x set [2,true];
							(_x select 1) setMarkerColor "ColorRed";
							(_x select 1) setMarkerType "hd_objective";
							(_x select 1) setMarkerAlpha 1;							
							}
						}
					}
				foreach RYD_JR_allHolyPlaces;


The probability of checking off given church can be altered here exactly:

 

if ((_pos distance (_x select 0)) < (1500 + (random 2500))) then

 

So, the farther from the intel source (_pos) the church is, the lower chance, while maximum range is theoretically even 4000m (1500 + 2500), but at tiny probablity of (1/2500). As you can see, churches closer, than 1500 meters are checked of for 100%. 50% chance would be for distance 2750m etc.

  • Like 2

Share this post


Link to post
Share on other sites

Howdy,

 

Just wanted to ask, if it is possible to add a Revive function to the mission in singleplayer ? What ever the answer is, Rydygier, thank you soooo much for this masterpiece. I sometimes forget that Arma isn't meant to be a free roaming game in the first place :D

Share this post


Link to post
Share on other sites

Only via some standalone mod I'm affraid (which should be possible though), I do not plan such feature. 

 

Thanks. In fact, Arma, as military open sandboks, shows its strengths best in exactly such kind of gameplay, at least IMHO, one of the reason, I made Pilgrimage - to highlight, where this game's potential shines most for me. 

  • Like 2

Share this post


Link to post
Share on other sites

On Easy, I sometimes have clothes, sometimes I don't. Here is the list but with little else to show you, can you suggest where I might look?

_uniforms =
    [
    "U_BG_Guerilla1_1",
    "U_BG_Guerilla2_3",
    "U_I_G_Story_protagonist_F",
    "U_I_G_resistanceLeader_F",
    "U_B_CombatUniform_mcam_tshirt",
    "U_B_CTRG_2",
    "U_I_C__Soldier_Para_3_F",
    "U_I_C__Soldier_Para_4_F",
    "U_I_C_Soldier_Bandit_3_F",
    "U_B_T_Soldier_AR_F",
    "U_B_CTRG_Soldier_2_F",
    "U_B_CTRG_Soldier_urb_2_F"
    ];

 

Share this post


Link to post
Share on other sites

Here's in JRInit whole logic, that adds uniform basing on quoted array:

 

	removeUniform _unit;
	
	if not (RYD_JR_Naked) then
		{
		_unit addBackpack "B_OutdoorPack_blu";
		_uni = _uniforms select (floor (random (count _uniforms)));
		_unit addUniform _uni
		};

 

So I see two possible explanations:

 

1. For some reason some of the uniforms, you added to the array, do not work;

2. For some reason in your version sometimes for easy difficulty RYD_JR_Naked variable becomes true, while shouldn't.  

 

My theory: typos in the uniforms class names. See here:

 

    "U_I_C__Soldier_Para_3_F",
    "U_I_C__Soldier_Para_4_F",

Isn't underscore doubled, which would make these classes invalid and not working? Perhaps there may be more mistakes in the class names. 

Share this post


Link to post
Share on other sites
Quote

My theory: typos in the uniforms class names.

 

Quote

    "U_I_C__
    "U_I_C__

 

...so they are! I wish there was a way to copy/paste straight from the Loadout Editor

 

Thanks for everything, so far. I think I have what I am capable of doing, working great. Time won't allow me to test under every variation of UI parameters so we'll see.

 

One thing I do want to try to fix however (modify) is the ability to blacklist default BI inventory. If there is anyone you know or any information you can steer me towards, I would be very appreciative! In your JRInit.sqf you have a DLC blacklist. Is something similar to that workable? If so, the list of classnames would be very long but I don't mind collecting them if that is needed.

Share this post


Link to post
Share on other sites

Perhaps just below:

 

if ((isText _dlc) and {((toLower _class) in _dlcRestricted) and {not ((304400 in (getDLCs 1)) or {332350 in (getDLCs 1)})}}) exitWith {};

add a line:

 

if ((toLower _class) in _myBlackList) exitWith {};

 

Then define _myBlackList array same way, as mentioned DLC blacklist, all classnames all lower case. Then you can do same for ammo, if you wish, just below:

 

for "_i" from 0 to ((count _ammoClass) - 1) do
	{
	_class = _ammoClass select _i;
	
	if (isClass _class) then
		{
		_class = configName _class;

Analogously for empty vehicles under progressLoadingScreen 0.3; line. 

 

I don't know, if there's any less tedious way than constructing manually a blacklist array of default BI stuff to sift it out. There may be none and if there is any, it's most likely about some config entry/entries. 

Share this post


Link to post
Share on other sites

Ok,....just to confirm, here is what I've done.

Insert line here;

 

for "_i" from 0 to ((count _weapClass) - 1) do
    {
    _class = _weapClass select _i;

    if (isClass _class) then
        {
        _class = configName _class;
        _scope = getNumber (_weapClass >> _class >> "Scope");
        if (_scope == 2) then
            {
            _pic = _weapClass >> _class >> "Picture";
            if (isText _pic) then
                {
                _pic = toLower (getText _pic);
                if not (_pic in ["","\a3\weapons_f\data\clear_empty.paa"]) then
                    {
                    _dlc = _weapClass >> _class >> "DLC";
                                        
                    if ((isText _dlc) and {((toLower _class) in _dlcRestricted) and {not ((304400 in (getDLCs 1)) or {332350 in (getDLCs 1)})}}) exitWith {};
                  
 if ((toLower _class) in _myBlackList) exitWith {};
                    
                    if (not (RYD_JR_Abundant) or {not (isText _dlc) or {not ((toLower (getText _dlc)) isEqualTo "kart")}}) then
                        {
                        if (not (RYD_JR_Abundant) or {(((toLower _class) find "u_c_driver_") < 0)}) then
                            {

 

then create myBlackList here;

 

_myBlacklist =
    [
    "b_truck_01_covered_f",
    "b_truck_01_mover_f",
    "b_truck_01_box_f",
    "b_truck_01_Repair_f",
    "b_truck_01_ammo_f",
    "b_truck_01_ammo_f",
    "b_truck_01_fuel_f",
    "b_truck_01_medical_f",
    "b_apc_wheeled_01_cannon_f",
    "o_truck_02_covered_f",
    "o_truck_02_transport_f",

      .....etc, etc, etc

 

(I just happened to place it directly below your dlcRestricted section.)

 

I'm not understanding what you mean by this line,         

Analogously for empty vehicles under progressLoadingScreen 0.3; line.       

which I have looked over in this section;

 

progressLoadingScreen 0.3;
    
for "_i" from 0 to ((count _vehClass) - 1) do
    {
    _class = _vehClass select _i;
    
    if (isClass _class) then
        {
        _class = configName _class;
        _lowClass = toLower _class;
        
        _dlc = _vehClass >> _class >> "DLC";
        if (not (isText _dlc) or {not ((toLower (getText _dlc)) isEqualTo "kart")}) then
            {
            _scope = getNumber (_vehClass >> _class >> "Scope");
            if (_scope == 2) then
                {
                _sim = toLower (getText (_vehClass >> _class >> "Simulation"));
                if (_sim in ["carx","tankx"]) then
                    {
                    _hasDriver = getNumber (_vehClass >> _class >> "hasDriver");
                    
                    if (_hasDriver == 1) then
                        {
                        _vc = getText (_vehClass >> _class >> "vehicleClass");
                        
                        if not (_vc in ["Autonomous"]) then
                            {
                            if (_lowClass in ["b_g_quadbike_01_f","b_quadbike_01_f","o_quadbike_01_f","i_quadbike_01_f"]) then
                                {
                                _class = "C_Quadbike_01_F"
                                };
                            
                            switch (_sim) do
                                {
                                case ("carx") : {RYD_JR_AllSoftV pushBack _class};
                                case ("tankx") : {RYD_JR_AllArmor pushBack _class};
                                }

 

lastly, concerning the quadbikes, I am trying to also eliminate those and possibly replacing them with another (CUP) vehicle. What is that line which refers to quadbikes?

 

Thanks

 

Incidentally, I tested what I have but sadly the default vehicles still spawned.

 

 

 

 

 

Share this post


Link to post
Share on other sites
Quote

(I just happened to place it directly below your dlcRestricted section.)

 

Good, important is - has to be defined before is used. :)

 

Looks OK.

 

Quote

I'm not understanding what you mean by this line

 

This:

 

    if (isClass _class) then
        {
        _class = configName _class;
        _lowClass = toLower _class;

       if (_lowClass in _myVehBlackList) exitWith {};

 

If you wish, that is. This way you can limit the pool of empty vehicle types to choose from same way, as you do for weapons/ammo loot. Of course first define _myVehBlackList, or just dump not desired vehicle classes into same black list, you're using for blacklisted loot classes, doesn't matter here, just then search will be a bit longer, because array will be one big instead of two smaller. BTW yours 

_myBlacklist =

in the quoted fragment consist currenly only vehicle classes, no weapons nor ammo, so apparently you chose a way of single array for all kind of stuff, isn't? Also here: b_truck_01_Repair_f you have R, should be r. You have to be sure, all is lower-case only or class will be not recognized as blacklisted. 

Share this post


Link to post
Share on other sites

You know what? I may have little something, that should make defining blacklists much faster:

 

Cfg Extract

 

It's small scenario for VR map. Run Arma 3 without any mods, default content only, then run this scenario and wait till "DONE" hint. Then go to the latest RPT. Inside you should find all lower case list of all weapons, magazines and vehicles, that Pilgrimage would try to use. This way you should obtain all default stuff in no time. Result is given in this form:

 

20:39:53 "i_c_van_02_vehicle_f"
20:39:53 "c_van_02_medevac_f"
20:39:53 "c_idap_van_02_medevac_f"
20:39:53 "c_van_02_service_f"

 

so require a bit further editing to get proper array syntax, but anyway should be much easier that way. Additionally it will leave info, how many classes it found for weapons, magazines and vehicles (774, 141, 155 for me, should be the same for you). Each time BI would add new stuff to the game (new DLC), this list has to be obtained anew to update it with this new toys. 

Share this post


Link to post
Share on other sites

Hi, I have question.... how can I retrieve incognito status after I have been exposed?

Share this post


Link to post
Share on other sites
Quote

how can I retrieve incognito status after I have been exposed?

...by either killing who ever saw you or allowing enough time to pass so that they forget you. A method of knowing if when they forgot you is in the spoiler below.

 

Spoiler

If you have "extended Map content-enemy" activated in Arma/Configure/Game/Difficulty settings, you may see who saw you (sometimes, as long as you have had a line of sight). Once that marker has faded away the enemy generally has forgotten or given up on you. However sometimes those who have spotted you will try to track you down. If you see you are being tracked you can try to throw them off your track by walking along roads.

 

 

Share this post


Link to post
Share on other sites
Quote

This way you should obtain all default stuff in no time.

Well, it take right at about 2 seconds. Maybe just a bit less, maybe just a bit more.

that literally would have taken me many days if not weeks to gather. Not to mention making typos!

Thank you so much.

If we stop all those assets in the .rpt file from spawning, does that automatically make it impossible for default soldiers from spawning since they now cannot complete their loadout?....and if not, can the same be done for units?

 

 

Share this post


Link to post
Share on other sites
Quote

that literally would have taken me many days if not weeks to gather. Not to mention making typos!

 

The power of scripts. That's why such a lazy guy as me likes scripting so much. :)

 

Quote

does that automatically make it impossible for default soldiers from spawning since they now cannot complete their loadout?

 

No. These blacklists works only for loot to be spawned into boxes and for empty vehicles. Regular AI groups are spawned via whole group configs, not particular units, and classes of such particular units spawns, wherever applies, should be included in proper arrays (like Hidden camps stuff array, checkpoint stuff array etc.). Anyway, units are always created with default loadout. With more thinking and scripting perhaps similar method could be used also for blacklisting default groups from spawning. Just note, whatever mod you plan to use to populate the island with AIs, it has to have defined group configs. AFAIK all decent mods introducing units should have them. 

 

Here are groups defined in the config:

 

Cfg_Groups.jpg

 

While in script paths looks like:

 

RYD_JR_AllGuardGroups = 
	[
	[east,configFile >> "CfgGroups" >> "East" >> "OPF_F" >> "UInfantry" >> "OIA_GuardSentry"],
	[east,configFile >> "CfgGroups" >> "East" >> "OPF_F" >> "UInfantry" >> "OIA_GuardTeam"],
	[east,configFile >> "CfgGroups" >> "East" >> "OPF_F" >> "UInfantry" >> "OIA_GuardSquad"]
	];

etc. 

 

Besides manual editing of all arrays and lines looking like the above one, the place, where blacklisting should take place, is here, where other group paths are added dynamically:

 

		if not (_rSide == west) then
			{
			_path = _gpClass >> _side;
			
			for "_j" from 0 to ((count _path) - 1) do
				{
				_class = _path select _j;
				
				if (isClass _class) then
					{
					_fc = configName _class;

and my guess is, the best way would be to black list by faction. Like this way:

 

		if not (_rSide == west) then
			{
			_path = _gpClass >> _side;
			
			for "_j" from 0 to ((count _path) - 1) do
				{
				_class = _path select _j;
				
				if (isClass _class) then
					{
					_fc = configName _class;
					if ((toLower _fc) in _myFactionBlackList) exitWith {};

Where _myFactionBlackList = 
[

"opf_f",

"blu_f"

//and so forth - all other vanilla factions here, all lower case

];

 

That's just a preliminary idea, not tested nor thought out too well. 

 

Share this post


Link to post
Share on other sites

Blacklist vehicles seems to work, at least on a couple of quick splendid camera views. I did see a CUP vehicle and was going to try to find those classnames in a similar way.

Blacklist Weapons and Ammo will have to wait and see 'till actual game play.

note: Even with Bi vehicles taken out, there is still that heaping pile of exploding Unsung vehicles. This has nothing to do with Pilgrimage. It's that the terrain of Prei has so few open spaces to allow vehicles to be placed.

 

	[
	[east,configFile >> "CfgGroups" >> "East" >> "OPF_F" >> "UInfantry" >> "OIA_GuardSentry"],
	[east,configFile >> "CfgGroups" >> "East" >> "OPF_F" >> "UInfantry" >> "OIA_GuardTeam"],
	[east,configFile >> "CfgGroups" >> "East" >> "OPF_F" >> "UInfantry" >> "OIA_GuardSquad"]
	];

 

I had looked at this some time ago and wondered if those could be changed. I think before I get to that however, I would like to see in game if any or at least a lot less default units spawn because now there are no BI vehicles for them to occupy. In a just a couple of flyovers, I did not see any BI groups, but that is not a sure test result. We'll see as it gets played more.

 

Oh, one more thing I saw.

In my flyover I noticed two units (Blufor) standing. They were not in a group and had no weapons. I checked my SQM file and confirmed that I hadn't mistakenly left some test characters in

Share this post


Link to post
Share on other sites
Quote

It's that the terrain of Prei has so few open spaces to allow vehicles to be placed.

 

Exactly, blacklist only limits palette of types, not amount of spawned vehicles. This you can do here:

 

_softVAm = 30 + (floor (random 20));
_armVAm = ((3 + (floor (random 2)) - RYD_JR_Difficulty) max 0) min 3;
Quote

I would like to see in game if any or at least a lot less default units spawn because now there are no BI vehicles for them to occupy.

 

Em, nope. Spawned empty vehicles have nothing in common with spawned groups, on foot nor motorized. This blacklist is applied only in the code for spawning empty vehicles, doesn't remove anything from the game assets avaliable for any other purposes.

 

Not sure about standing blufor. Was these named anyhow/editor placed? Obvious theory - these could be Alex and his buddy. 

 

BTW a hint: set RYD_JR_Debug = true; (in the init.sqf) then after running the scenario you'll have marked on the map, where was spawned what. 

Share this post


Link to post
Share on other sites
Quote

BTW a hint: set RYD_JR_Debug = true; (in the init.sqf) then after running the scenario you'll have marked on the map, where was spawned what. 

I had that turned on which allowed me to see the blue icon so I went to see what it was I had that turned on which allowed me to see the blue icon so went to see what it was sure enough it was blufor,2 of them, different parts of the map. I'm sure the answer will show itself sooner or later but it's definitely unimportant at this point

Share this post


Link to post
Share on other sites

Double checked my SQM file. He is not part of a group. Definitely AI but how?

https://www.dropbox.com/s/0i0u3c42yio0gkk/AI1.jpg?dl=0

https://www.dropbox.com/s/oo5k1sirfaod5pa/AI.jpg?dl=0

 

Messed around with the exploding vehicle situation, but even if I turn it down to three, they still pile on top of each other. Incidentally, this is also where the Stomper is spawned, so I have to keep this function working no matter what. On the other hand, as has been discussed quite often, there are not that many roads so having vehicles becomes less important imo, so even turning it down to 1 or 2 is ok with me.  I'm still unclear as to how this particular function pans out during game play. At start, these vehicles, which I call "gifts" or "found", spawn in an open area but all very close together. How then through the course of game play do they randomly end up scattered over the whole island for us to find?

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

×