[RG] Salutesh

Exile Expansion - A Community Expansion Mod for Exile

47 posts in this topic

previewfile_832000537.jpg

The Exile Expansion Project aims at customizing and expanding the gameplay content and possibilities of the Exile Mod with various additions.

So far the mod includes assets and configurations for the following content:

Mod Content:
3 Flag Textures
12 New Map Markers (Eden Editor Asset Browser Support)
6 New Gameobjects (Eden Editor Asset Browser Support)
5 Different Sign Textures
18 Hold-Action Icons
12 Statusbar Icons
9 Exile Toast-Notifcation Icons
6 Exile XM8 App Icons
 
So you may ask yourself what can you do with the Exile Expansion Mod so far?
 

Using new types of map marker icons:

Quote

ExileExpansionMissionIcon mission_marker_ca.png

ExileExpansionQuestIcon quest_marker_ca.png

ExileExpansionLootIcon loot_marker_ca.png

ExileExpansionBattleZoneIcon battlezone_marker_ca.png

ExileExpansionEventIcon event_marker_ca.png

ExileExpansionWinIcon win_marker_ca.png

ExileExpansionLoseIcon lose_marker_ca.png

ExileExpansionTargetIcon target_marker_ca.png

ExileExpansionWaterIconwater_marker_ca.png

ExileExpansionTraderIcontrader_marker_ca.png

ExileExpansionAirdropIcon airdrop_marker_ca.png

 

Using new types of Exile Toast notifications with icon display:

Quote

QuestTitleAndText quest.jpg

ParadropTitleAndText paradrop.jpg

VehicleTitleAndText vehicle.jpg

EventTitleAndText event.jpg

WelcomeTitleAndText welcome.jpg

InfosTitleAndText infos.jpg


Use the Exile Expansion Container Loot System and also the holdAction icons and function:

Quote

Project GitHub: https://github.com/salutesh/Exile_Expansion

Instructions: https://github.com/salutesh/Exile_Expansion/blob/master/Exile_Expansion_CLS/README.md

Video of the CLS system in its development phase:

Quote

You can use these icons with the Exile Expansion Mod in combination with the CLS_fnc_AddHoldAction function:

holdAction_trashbin_ca.pngholdAction_bag_ca.pngholdAction_barrel_ca.pngholdAction_box_ca.pngholdAction_crate_ca.pngholdAction_document_ca.pngholdAction_footlocker_ca.pngholdAction_machine_ca.pngholdAction_multibox_ca.pngholdAction_quest_ca.pngholdAction_securitybox_ca.pngholdAction_suitcase_ca.pngholdAction_toolbox_ca.png

 

Use the Exile Expansion Statusbar Icons:

Latest update informations about Exile Expansion CLS:

https://github.com/salutesh/Exile_Expansion/tree/master/Exile_Expansion_CLS

- Support for Exile Mod 1.0.3.
- Rewriten functions.
- Full customizable and easy to configure!
- Added optional override for ExileServer_system_lootManager_spawnLootInBuilding to replace the dafault Exile loot spawn with a full container loot spawn system. The system uses the Exile loot tables and building positions to spawn interactable containers with the loot inside like the custom spawn system does.
- Added new configurations for new type of hold action icons (Exile Expansion Client Mod update).

 

Latest update informations about Exile Expansion Client Mod:

https://steamcommunity.com/sharedfiles/filedetails/?id=832000537

- Added 3 new container objects (Loot Container).
- Added one new XM8 App icon (Virtual Garage). 
- Added Eden Editor asset browser support for all mod map markers.
- Added new unit Exile Expansion Drones Trader.
Example for Drones trader setup:

Quote

class CfgExileArsenal
{
	///////////////////////////////////////////////////////////////////////////////
	// Drones
	///////////////////////////////////////////////////////////////////////////////
	class I_UAV_01_F 								{ quality = 1; price = 20; };
	class I_UAV_06_F								{ quality = 1; price = 20; };
	class I_UAV_06_medical_F						{ quality = 1; price = 20; };
	class I_UGV_01_F								{ quality = 1; price = 20; };
};

class CfgTraderCategories
{
	class Drones
	{
		name = "Drones";
		icon = "a3\ui_f\data\gui\Rsc\RscDisplayArsenal\uniform_ca.paa";
		items[] =
		{
			"I_UAV_01_F",	
			"I_UAV_06_F",
			"I_UAV_06_medical_F",
			"I_UGV_01_F"
		};
	};
};

class CfgTraders
{
	
	/**
	 * Exile Expansion Traders
	 */
	class Exile_Expansion_Trader_Drones
	{
		name = "DRONES";
		showWeaponFilter = 0;
		categories[] = 
		{
			"Drones"
		};
	};
};

 


- Added new sign objects for drones trader.
- Added new sign object for trader zones.

You can find all objects, units and markers of the Exile Expansion Mod in the Eden Editor Asset Browser! 

 

Extra Images of concept proofs:

Quote

20170418164851_1.jpg

20170418171200_1.jpg

20170418170620_1.jpg

20170418170624_1.jpg

20170425123352_1.jpg

 

More is coming soon and regular updates are planed!

If you need some examples how to use the new content just let me know!

 

Download:

Steam Workshop: http://steamcommunity.com/sharedfiles/filedetails/?id=832000537 

or download the Mod with the A3Launcher.

 

Installation:

Please Note!

If you want to use the Exile Expansion Mod for your server then every client/player needs this Mod and they have to load it like the normal Exile Mod.

The server also have to load the mod normal, not as server mod.

This is the correct load order:

Quote

@Exile

@ExileExpansion

Add the provided key to your servers keys directory!

 

This is just an expansion for the Exile Mod!  You still have to use the normal Exile Mod 1.0.3 in combination!

Edited by [RG] Salutesh
8 people like this

Share this post


Link to post
Share on other sites

The  12 Statusbar Icons could you show us a screenshot of those icons? I like the idea a lot!

Share this post


Link to post
Share on other sites
Advertisement
1 hour ago, EEZY-E said:

The  12 Statusbar Icons could you show us a screenshot of those icons? I like the idea a lot!

Here is the full normal status-bar:

20170418164851_1.jpg

Every icon and the bar image are included in the mod.

Here is the code that i am using for them:

ExileStatusbar.hpp:

Quote

 


class StatusBarExile 
{
	idd = -1;
	onLoad = "uiNamespace setVariable ['StatusBarExile', _this select 0]";
	fadein = 0;
	fadeout = 0;
	duration = 10e10;
	movingEnable = 0;
	objects[] = {};
	class controlsBackground
	{
		class statusBarImage
		{
			idc = 55557;
			type = 0;
			style = 48;
			x = safezoneX + safezoneW - 1.883;
			y = safezoneY + safezoneH - 0.095;
			w = 1.35;
			h = 0.1;
			colorText[] = {1, 1, 1, 1};
			colorBackground[]={0,0,0,0};
			sizeEx = 0.4;
			font = "PuristaLight";
			text = "exile_expansion_assets\texture\ui\statusbar\old\statusbar_background_ca.paa";
		};
	};
	class controls 
	{
		class statusBarText 
		{
			idc = 55554;
			//x = safezoneX + safezoneW - 1.90;
			x = safezoneX + safezoneW - 1.88;
			y = safezoneY + safezoneH - 0.055;
			w = 1.35;
			h = 0.06;
			shadow = 1;
			colorBackground[] = {0,0,0,0};
			font = "PuristaSemibold";
			size = 0.032;
			type = 13;
			style = 2;
			text="";
			class Attributes {
				align="center";
				color = "#fbfcfe";
				font = "PuristaLight";
			};
		};
	};
};

 

Include this file to your RscTitles class within your description.ext like this:

Quote

 


class RscTitles
{
	// Statusbar
	#include "dialogs\ExileStatusbar.hpp"
};

 


ExileStatusbar.sqf:

Quote

 


/*
    File: ExileStatusbar.sqf
    Written by Salutesh
    www.reality-gaming.eu
    
    Description:
	Displays a statusbar for players. 
*/


waitUntil {!(isNull (findDisplay 46))};
disableSerialization;

_rscLayer = "StatusBarExile" call BIS_fnc_rscLayer;
_rscLayer cutRsc["StatusBarExile","PLAIN"];

[] spawn {
	if (!isNil "toggleStatus") exitWith {};
	uiSleep 5;
	_uid = getPlayerUID player;	
	
	while {true} do 
	{
		uiSleep 1;
		if(isNull ((uiNamespace getVariable "StatusBarExile")displayCtrl 55554)) then
		{
			diag_log "Exile Statusbar is loading.";
			disableSerialization;
			_rscLayer = "StatusBarExile" call BIS_fnc_rscLayer;
			_rscLayer cutRsc["StatusBarExile","PLAIN"];			
		};

		//Initialize variables and set values
		_players = count playableUnits;
		_unit = _this select 0;
		_damage = round ((1 - (damage player)) * 100);
		_hunger = round (ExileClientPlayerAttributes select 2);
		_thirst = round (ExileClientPlayerAttributes select 3);
		_bodyTemp = round (ExileClientPlayerAttributes select 5);
		_ambientTemp = [ExileClientEnvironmentTemperature, 1] call ExileClient_util_math_round;
		_poptabs = (player getVariable ["ExileMoney", 0]);
		if (_poptabs > 999) then
		{
			_poptabs = format ["%1k", floor (_poptabs / 1000)];
		};
		
		_locker = (player getVariable ["ExileLocker", 0]);
		if (_locker > 999) then
		{
			_locker = format ["%1k", floor (_locker / 1000)];
		};
		
		_respect = ExileClientPlayerScore;
		if (_respect > 999) then
		{
			_respect = format ["%1k", floor (_respect / 1000)];
		};
	
		_serverFPS = round diag_fps;
		_pos = getPosATL player;
		_dir = round (getDir (vehicle player));
		_grid = mapGridPosition  player; 
		_xx = (format[_grid]) select  [0,3]; 
		_yy = (format[_grid]) select  [3,3];
		_serverRestartTime = getNumber(missionConfigFile >> "CfgStatusbar" >> "statusbarRestartTime");
		_time = (round(_serverRestartTime-(serverTime)/60));
		if(!isNil "timeToNextRestart") then 
		{
			_time = timeToNextRestart;
		};

		_hours = (floor(_time/60));
		_minutes = (_time - (_hours * 60));
		_radiation = 0;
		if (!isNil "ExilePlayerRadiation") then 
		{
			_radiation = ExilePlayerRadiation;
		};
		
	    _statusRadiation = round (_radiation*100);
		
		switch(_minutes) do
		{
			case 9: {_minutes = "09"};
			case 8: {_minutes = "08"};
			case 7: {_minutes = "07"};
			case 6: {_minutes = "06"};
			case 5: {_minutes = "05"};
			case 4: {_minutes = "04"};
			case 3: {_minutes = "03"};
			case 2: {_minutes = "02"};
			case 1: {_minutes = "01"};
			case 0: {_minutes = "00"};
		};
		
		//Colour coding
		//Color Gradient Damage/Hunger/Thirst
		_colourDefault 		= parseText "#ffffff";
		_colour100			= parseText "#00ff36";
		_colour90 			= parseText "#00ff06";
		_colour80 			= parseText "#48ff00";
		_colour70 			= parseText "#7eff00";
		_colour60 			= parseText "#d8ff00";
		_colour50 			= parseText "#f6ff00";
		_colour40 			= parseText "#ffde00"; 
		_colour30 			= parseText "#ffc000";
		_colour20 			= parseText "#ff9c00";
		_colour10 			= parseText "#ff6600";
		_colour0 			= parseText "#ff1200";
		_colourDead 		= parseText "#000000";
		
		//Color Gradient Temerature
		_colourTempDefault 		= parseText "#ffffff";
		_colourTemp100			= parseText "#00ff36";
		_colourTemp90 			= parseText "#00ff06";
		_colourTemp80 			= parseText "#48ff00";
		_colourTemp70 			= parseText "#7eff00";
		_colourTemp60 			= parseText "#d8ff00";
		_colourTemp50 			= parseText "#f6ff00";
		_colourTemp40 			= parseText "#ffde00"; 
		_colourTemp30 			= parseText "#ffc000";
		_colourTemp20 			= parseText "#ff9c00";
		_colourTemp10 			= parseText "#ff6600";
		_colourTemp0 			= parseText "#ff1200";
		_colourMinus 			= parseText "#2efec8";
		
		//Color Gradient Radiation
		_colourRadiationDefault 	= parseText "#ffffff";
		_colourRadiation100			= parseText "#ff6000";
		_colourRadiation90 			= parseText "#ff7800";
		_colourRadiation80 			= parseText "#ff9c00";
		_colourRadiation70 			= parseText "#ffae00";
		_colourRadiation60 			= parseText "#ffc600";
		_colourRadiation50 			= parseText "#ffde00";
		_colourRadiation40 			= parseText "#ffea00"; 
		_colourRadiation30 			= parseText "#fffc00";
		_colourRadiation20 			= parseText "#f0ff00";
		_colourRadiation10 			= parseText "#f8ff82";
		_colourRadiation0 			= parseText "#ff1200";
		
		//Color Gradient for static icons
		_colourPlayers				= parseText "#217630";
		_colourPoptabs				= parseText "#db3b46";
		_colourLocker				= parseText "#db3b46";
		_colourFPS					= parseText "#217630";
		_colourRespect				= parseText "#db3b46";
		_colourLocation				= parseText "#217630";
		_colourRestart				= parseText "#217630";
	
		//Damage
		_colourDamage = _colourDefault;
		if(_damage >= 100) then{_colourDamage = _colour100;};
		if((_damage >= 90) && (_damage < 100)) then {_colourDamage =  _colour90;};
		if((_damage >= 80) && (_damage < 90)) then {_colourDamage =  _colour80;};
		if((_damage >= 70) && (_damage < 80)) then {_colourDamage =  _colour70;};
		if((_damage >= 60) && (_damage < 70)) then {_colourDamage =  _colour60;};
		if((_damage >= 50) && (_damage < 60)) then {_colourDamage =  _colour50;};
		if((_damage >= 40) && (_damage < 50)) then {_colourDamage =  _colour40;};
		if((_damage >= 30) && (_damage < 40)) then {_colourDamage =  _colour30;};
		if((_damage >= 20) && (_damage < 30)) then {_colourDamage =  _colour20;};
		if((_damage >= 10) && (_damage < 20)) then {_colourDamage =  _colour10;};
		if((_damage >= 1) && (_damage < 10)) then {_colourDamage =  _colour0;};
		if(_damage < 1) then{_colourDamage =  _colourDead;};

		//Hunger
		_colourHunger = _colourDefault;
		if(_hunger >= 100) then{_colourHunger = _colour100;};
		if((_hunger >= 90) && (_hunger < 100)) then {_colourHunger =  _colour90;};
		if((_hunger >= 80) && (_hunger < 90)) then {_colourHunger =  _colour80;};
		if((_hunger >= 70) && (_hunger < 80)) then {_colourHunger =  _colour70;};
		if((_hunger >= 60) && (_hunger < 70)) then {_colourHunger =  _colour60;};
		if((_hunger >= 50) && (_hunger < 60)) then {_colourHunger =  _colour50;};
		if((_hunger >= 40) && (_hunger < 50)) then {_colourHunger =  _colour40;};
		if((_hunger >= 30) && (_hunger < 40)) then {_colourHunger =  _colour30;};
		if((_hunger >= 20) && (_hunger < 30)) then {_colourHunger =  _colour20;};
		if((_hunger >= 10) && (_hunger < 20)) then {_colourHunger =  _colour10;};
		if((_hunger >= 1) && (_hunger < 10)) then {_colourHunger =  _colour0;};
		if(_hunger < 1) then{_colourHunger =  _colourDead;};

		//Thirst
		_colourThirst = _colourDefault;
		switch true do
		{
			case(_thirst >= 100) : {_colourThirst = _colour100;};
			case((_thirst >= 90) && (_thirst < 100)) :  {_colourThirst =  _colour90;};
			case((_thirst >= 80) && (_thirst < 90)) :  {_colourThirst =  _colour80;};
			case((_thirst >= 70) && (_thirst < 80)) :  {_colourThirst =  _colour70;};
			case((_thirst >= 60) && (_thirst < 70)) :  {_colourThirst =  _colour60;};
			case((_thirst >= 50) && (_thirst < 60)) :  {_colourThirst =  _colour50;};
			case((_thirst >= 40) && (_thirst < 50)) :  {_colourThirst =  _colour40;};
			case((_thirst >= 30) && (_thirst < 40)) :  {_colourThirst =  _colour30;};
			case((_thirst >= 20) && (_thirst < 30)) :  {_colourThirst =  _colour20;};
			case((_thirst >= 10) && (_thirst < 20)) :  {_colourThirst =  _colour10;};
			case((_thirst >= 1) && (_thirst < 10)) :  {_colourThirst =  _colour0;};
			case(_thirst < 1) : {_colourThirst =  _colourDead;};
		};
			
		//Climate Temperature
		_colourAmbientTemp = _colourTempDefault;
		switch true do
		{
			case(_ambientTemp >= 37) : {_colourAmbientTemp = _colourTempDefault;};
			case((_ambientTemp >= 37) && (_ambientTemp < 38)) :  {_colourAmbientTemp =  _colourTemp90;};
			case((_ambientTemp >= 36) && (_ambientTemp < 37)) :  {_colourAmbientTemp =  _colourTemp80;};
			case((_ambientTemp >= 35) && (_ambientTemp < 36)) :  {_colourAmbientTemp =  _colourTemp70;};
			case((_ambientTemp >= 34) && (_ambientTemp < 35)) :  {_colourAmbientTemp =  _colourTemp60;};
			case((_ambientTemp >= 34) && (_ambientTemp < 35)) :  {_colourAmbientTemp =  _colourTemp50;};
			case((_ambientTemp >= 33) && (_ambientTemp < 34)) :  {_colourAmbientTemp =  _colourTemp40;};
			case((_ambientTemp >= 33) && (_ambientTemp < 34)) :  {_colourAmbientTemp =  _colourTemp30;};
			case((_ambientTemp >= 32) && (_ambientTemp < 33)) :  {_colourAmbientTemp =  _colourTemp20;};
			case((_ambientTemp >= 31) && (_ambientTemp < 32)) :  {_colourAmbientTemp =  _colourTemp10;};
			case((_ambientTemp >= 1) && (_ambientTemp < 10)) :  {_colourAmbientTemp =  _colourTemp0;};
			case(_ambientTemp < 1) : {_colourAmbientTemp =  _colourMinus;};
		};
	
		//Body Temerature
		_colourTemp = _colourTempDefault;
		switch true do
		{
			case(_bodytemp >= 37) : {_colourTemp = _colourTempDefault;};
			case((_bodytemp >= 37) && (_bodytemp < 38)) :  {_colourTemp =  _colourTemp90;};
			case((_bodytemp >= 36) && (_bodytemp < 37)) :  {_colourTemp =  _colourTemp80;};
			case((_bodytemp >= 35) && (_bodytemp < 36)) :  {_colourTemp =  _colourTemp70;};
			case((_bodytemp >= 34) && (_bodytemp < 35)) :  {_colourTemp =  _colourTemp60;};
			case((_bodytemp >= 34) && (_bodytemp < 35)) :  {_colourTemp =  _colourTemp50;};
			case((_bodytemp >= 33) && (_bodytemp < 34)) :  {_colourTemp =  _colourTemp40;};
			case((_bodytemp >= 33) && (_bodytemp < 34)) :  {_colourTemp =  _colourTemp30;};
			case((_bodytemp >= 32) && (_bodytemp < 33)) :  {_colourTemp =  _colourTemp20;};
			case((_bodytemp >= 31) && (_bodytemp < 32)) :  {_colourTemp =  _colourTemp10;};
			case((_bodytemp >= 1) && (_bodytemp < 10)) :  {_colourTemp =  _colourTemp0;};
			case(_bodytemp < 1) : {_colourTemp =  _colourMinus;};
		};
			
		//Radiation
		_colourRadiation = _colourRadiationDefault;
		switch true do
		{
			case(_statusRadiation >= 100) : {_colourRadiation = _colourRadiation100;};
			case((_statusRadiation >= 90) && (_statusRadiation < 100)) :  {_colourRadiation =  _colourRadiation90;};
			case((_statusRadiation >= 90) && (_statusRadiation < 100)) :  {_colourRadiation =  _colourRadiation90;};
			case((_statusRadiation >= 80) && (_statusRadiation < 90)) :  {_colourRadiation =  _colourRadiation80;};
			case((_statusRadiation >= 70) && (_statusRadiation < 80)) :  {_colourRadiation =  _colourRadiation70;};
			case((_statusRadiation >= 60) && (_statusRadiation < 70)) :  {_colourRadiation =  _colourRadiation60;};
			case((_statusRadiation >= 50) && (_statusRadiation < 60)) :  {_colourRadiation =  _colourRadiation50;};
			case((_statusRadiation >= 40) && (_statusRadiation < 50)) :  {_colourRadiation =  _colourRadiation40;};
			case((_statusRadiation >= 30) && (_statusRadiation < 40)) :  {_colourRadiation =  _colourRadiation30;};
			case((_statusRadiation >= 20) && (_statusRadiation < 30)) :  {_colourRadiation =  _colourRadiation20;};
			case((_statusRadiation >= 10) && (_statusRadiation < 20)) :  {_colourRadiation =  _colourRadiation10;};
			case((_statusRadiation >= 1) && (_statusRadiation < 10)) :  {_colourRadiation =  _colourRadiation0;};
			case(_statusRadiation < 1) : {_colourRadiation =  _colourDefault;};
		};
		
		if(_damage < 1) then
		{
			_colourHunger		= _colourDead;
			_colourThirst		= _colourDead;
			_colourAmbientTemp 	= _colourDead;
			_colourTemp			= _colourDead;
			_colourPlayers		= _colourDead;
			_colourPoptabs		= _colourDead;
			_colourLocker		= _colourDead;
			_colourFPS			= _colourDead;
			_colourRespect		= _colourDead;
			_colourLocation		= _colourDead;
			_colourRestart		= _colourDead;
			_colourRadiation    = _colourDead;
		};
		
		// Display the icons and informations 
		((uiNamespace getVariable "StatusBarExile")displayCtrl 55554)ctrlSetStructuredText parseText 
		format["
			<t color='%10'><img size='1.5' image='exile_expansion_assets\texture\ui\statusbar\old\statusbar_health_ca.paa' color='%5'/> %4%1</t>
			<t color='%10'><img size='1.5' image='exile_expansion_assets\texture\ui\statusbar\old\statusbar_temp_ca.paa' color='%28'/> %27°C</t>
			<t color='%10'><img size='1.5' image='exile_expansion_assets\texture\ui\statusbar\old\statusbar_climate_ca.paa' color='%30'/> %29°C</t>			
			<t color='%10'><img size='1.5' image='exile_expansion_assets\texture\ui\statusbar\old\statusbar_hunger_ca.paa' color='%11'/> %10%1</t> 
			<t color='%10'><img size='1.5' image='exile_expansion_assets\texture\ui\statusbar\old\statusbar_thirst_ca.paa' color='%13'/> %12%1</t>
			<t color='%10'><img size='1.5' image='exile_expansion_assets\texture\ui\statusbar\old\statusbar_radiation_ca.paa' color='%26'/> %25%1</t> 			
			<t color='%10'><img size='1.5' image='exile_expansion_assets\texture\ui\statusbar\old\statusbar_poptabs_ca.paa' color='%7'/> %6</t>
			<t color='%10'><img size='1.5' image='exile_expansion_assets\texture\ui\statusbar\old\statusbar_locker_ca.paa' color='%9'/> %8</t> 			
			<t color='%10'><img size='1.5' image='exile_expansion_assets\texture\ui\statusbar\old\statusbar_respect_ca.paa' color='%17'/> %16</t>			
			<t color='%10'><img size='1.5' image='exile_expansion_assets\texture\ui\statusbar\old\statusbar_compass_ca.paa' color='%21'/> %19</t>
			<t color='%10'><img size='1.5' image='exile_expansion_assets\texture\ui\statusbar\old\statusbar_players_ca.paa' color='%3'/> %2</t>
			",
		
			"%", 
			_players,
			_colourPlayers,
			_damage,
			_colourDamage,
			_poptabs,
			_colourPoptabs,
			_locker,
			_colourLocker,
			_hunger,
			_colourHunger,
			_thirst, 
			_colourThirst,
			_serverFPS,
			_colourFPS,
			_respect,
			_colourRespect,
			_colourDefault,
			format["%1/%2",_xx,_yy],		
			_dir,
			_colourLocation,
			_hours,
			_minutes,
			_colourRestart,
			_statusRadiation,
			_colourRadiation,
			_bodyTemp,
			_colourTemp,
			_ambientTemp,
			_colourAmbientTemp
		];
	}; 
};

 

 

 

Call this file from your missions init.sqf like this:

Quote

 


if (hasInterface && !isServer) then 
{
	waitUntil {alive vehicle player};	
	waitUntil {typeOF player != "Exile_Unit_GhostPlayer"};
	uiSleep 2;
	systemchat format["[Exile] Loading client for Player %1..",name player];
	
	[] call CompileFinal preprocessFileLineNumbers "core\scripts\ExileStatusbar.sqf";		// Statusbar
	systemchat format["[Exile] Client loaded for Player %1.",name player];
};

 

 

Edited by [RG] Salutesh
2 people like this

Share this post


Link to post
Share on other sites

Many many thanks for this addon! I will try just now, but as server admin (newbie!) i need to know just a pair of infos:

- it's only a client side addon? Nothing to do at server side?

- if i need to activate it at server side, i need to load in -servermod or in -mod?

- the player is obliged to have this mod? Or he can join without and play ad vanilla exile?

Many thanks,

bye,

Remoz

Share this post


Link to post
Share on other sites
14 hours ago, Remoz said:

Many many thanks for this addon! I will try just now, but as server admin (newbie!) i need to know just a pair of infos:

- it's only a client side addon? Nothing to do at server side?

- if i need to activate it at server side, i need to load in -servermod or in -mod?

- the player is obliged to have this mod? Or he can join without and play ad vanilla exile?

Many thanks,

bye,

Remoz

The Expansion Mod works like the normal Exile Mod.

Every Player or call it client needs this mod if you want to use the included content on your Server.

The Mod also have to be loaded by the server as -mod like the normal exile mod.

Edited by [RG] Salutesh

Share this post


Link to post
Share on other sites

Update: 

You can use the Exile Expansion Container Loot-System now.

Take a look into the first post. :)

1 person likes this

Share this post


Link to post
Share on other sites

Does it only spawn loot in containers.. or can it do both normal exile loot and PLP containers ? I would like both .. I already use PLP ..so that would be a nice little additional place to loot for players

Share this post


Link to post
Share on other sites
43 minutes ago, Chainsaw Squirrel said:

Does it only spawn loot in containers.. or can it do both normal exile loot and PLP containers ? I would like both .. I already use PLP ..so that would be a nice little additional place to loot for players

Its a addinonal Loot system, so it dont changes anything on the normal exile loot spawn system.

You also have to add the containers manualy with the Eden Editor and the Exile Plugin where you want them, to create special loot places.

You can find a complete instruction for this here: https://github.com/salutesh/Exile_Expansion/blob/master/Exile_Expansion_CLS/README.md

Edited by [RG] Salutesh
1 person likes this

Share this post


Link to post
Share on other sites

Ok .. great .. as I said I already use PLP containers .. so Im good with that .. but this will clarify for others :)

Share this post


Link to post
Share on other sites

Update:

Added information about the CLS_fnc_AddHoldAction function.

You can now use the hold action system and the Exile Expansion Mod hold action icons for custom stuff.

Take a look into the updated first post!

Share this post


Link to post
Share on other sites
Advertisement

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.