Jump to content

Play3r

How to use BIS_fnc_setUnitInsignia i MP ?

Recommended Posts

class CfgUnitInsignia  // [this,"WolfPack"] call BIS_fnc_setUnitInsignia; <-- this is inside the Init of the Unit
{
    class WolfPack
    {
        displayName = "WolfPack 11";                                                // Name displayed in Arsenal
        author = "Play3r";                                                          // Author displayed in Arsenal
        texture = "pictures\ulven.paa";                                             // Image path
        material = "";                                                              // .rvmat path
        textureVehicle = "";                                                        // Does nothing, reserved for future use
    };
};

I have this in my description.ext

and this in the unit init 

[this,"WolfPack"] call BIS_fnc_setUnitInsignia;

But is does not show up on my units. i'm using the SOG:PF Cdlc and it is for a MP game.
i did read about the config.cpp, but i do understand that it is not a good idea to use.

 

in my InitLocalPlayer.sqf i have this. So i get it back on ReSpawn.

params ["_player"];
_player addMPEventHandler ["MPRespawn", {
	params ["_unit", "_corpse"];
	private _insignia = [_corpse] call BIS_fnc_getUnitInsignia;
	[_unit, _insignia] spawn {
		params ["_unit", "_insignia"];
		sleep 1;
		isNil {
			_unit setVariable ["BIS_fnc_setUnitInsignia_class", nil]; // you can also do [_unit, ""] call BIS_fnc_setUnitInsignia, but this way is faster (plus no network traffic)
			[_unit, _insignia] call BIS_fnc_setUnitInsignia;
		};
	};
}];

Does anyone know why they don't show up on my units?

 

Cheers Play3r 

Share this post


Link to post
Share on other sites

try a little delay:

 

if isServer then {this spawn {sleep 1; [_this,"WolfPack"] call BIS_fnc_setUnitInsignia} };

 

  • Thanks 1

Share this post


Link to post
Share on other sites

Thanks Pierre.
That did it, but when my friends and i are inside Arsenal it disappears from our uniforms, when we close the Arsenal.
and it never comes back, not even on respawn.

 

Any idea @pierre MGI

 

I have this in my initPlayerLocal.sqf

 // Insignia
[missionNamespace, "arsenalClosed", {
 _insignia = [player] call BIS_fnc_getUnitInsignia;
player setVariable ['sign', _insignia];
}] call BIS_fnc_addScriptedEventHandler;

 

Share this post


Link to post
Share on other sites

It seems devs recently pay some attention for these functions:

 

https://feedback.bistudio.com/T161323

 

I hope that will do the trick.
Anyway, as old recurring issue, it seems to me you should remove possible insignia, even not displayed, prior to re-add it in your scripted EH:
 

[missionNamespace, "arsenalClosed", {
   _insignia = [player] call BIS_fnc_getUnitInsignia;
   player setVariable ["sign", _insignia];
   player setVariable ["BIS_fnc_setUnitInsignia_class", nil];
   [player, _insignia] call BIS_fnc_setUnitInsignia;
}] call BIS_fnc_addScriptedEventHandler;

 

For respawn, just follow Leopard20 note (whatever the EH you are using for that).

  • Thanks 1

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

×