Jump to content
jacmac

Generic Vehicle Service

Recommended Posts

I could really do with some help on this please guys, is there anyone that can help me, I have torn my hair out trying to merge this to get it to work lol INS calls the #include "INS_revive\rsctitles.hpp" and it conflicts with the stc_include.hpp file which calls it also :(

Share this post


Link to post
Share on other sites
I am having problems using this with the INS Revive script as it already defines the rsc titles... any idea how to fix that please.

Having the same issue. The rsctitles need to be merged into one call I think but I'm not sure how to do that. Also, as of 07-31-13, the script is not rearming. It shows the turret ammo type but never actually reloads the ammo.

Share this post


Link to post
Share on other sites

Hi Zin i could not get any help here either but i figured out a way to get it to work.

take this code out of your stc_include file

class RscTitles
{
   titles[]={};
   class UC_ShowText_small
   {
       idd=-1;
       movingEnable=0;
       duration=10e30;
       fadein = 0;
       name="UC_ShowText1";
       onLoad = "uiNamespace setVariable ['d_UC_ShowText_small', _this select 0]";
       controls[]={"textUC_Show1"};
       class textUC_Show1 : UC_Display_small
       {
           idc = 301;
       };
   };
   class UC_HideText_small
   {
       idd=-1;
       movingEnable=0;
       duration=10e30;
       fadein = 0;
       name="UC_HideText1";
       onLoad = "uiNamespace setVariable ['d_UC_HideText_small', _this select 0]";
       controls[]={"textUC_Hide1"};
       class textUC_Hide1 : UC_HideDisplay_Small
       {
           idc = 301;
       };
   };
};

and put it into your description.ext file like this this has the ins stuff in also just compare yours to this.

#include "gvs\colors_include.hpp"
#include "gvs\control_include.hpp"
#include "gvs\stc_include.hpp"
#include "gvs\sound_include.hpp"

class RscPicture 
{
type = CT_STATIC;
idc = -1;
style = 48;
colorBackground[] = {0, 0, 0, 0};
colorText[] = {1, 1, 1, 1};
font = "PuristaMedium"; //Typeface
sizeEx = 0;
};

class RscTitles
{
#include "INS_revive\rsctitles.hpp"
   titles[]={};
   class UC_ShowText_small
   {
       idd=-1;
       movingEnable=0;
       duration=10e30;
       fadein = 0;
       name="UC_ShowText1";
       onLoad = "uiNamespace setVariable ['d_UC_ShowText_small', _this select 0]";
       controls[]={"textUC_Show1"};
       class textUC_Show1 : UC_Display_small
       {
           idc = 301;
       };
   };
   class UC_HideText_small
   {
       idd=-1;
       movingEnable=0;
       duration=10e30;
       fadein = 0;
       name="UC_HideText1";
       onLoad = "uiNamespace setVariable ['d_UC_HideText_small', _this select 0]";
       controls[]={"textUC_Hide1"};
       class textUC_Hide1 : UC_HideDisplay_Small
       {
           idc = 301;
       };
   };
};

//// Respawn Script - Start ////
#include "INS_revive\description.hpp"
//// Respawn Script - End   ////

class Params
{
// Example Parameter
class EmtpyLine0 {
	title = ":: Mission Settings";
	values[]={0,0};
	texts[]={ "",""};
	default = 0;
};
class PARAM_TimeOfDay
{
	title = "    Time of Day";
	values[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23};
	texts[] = {"00:00","01:00","02:00","03:00","04:00","05:00","06:00","07:00","08:00","09:00","10:00","11:00","12:00","13:00","14:00","15:00","16:00","17:00","18:00","19:00","20:00","21:00","22:00","23:00"};
	default = 14;
};

//// Respawn Script - Start ////
#include "INS_revive\params.hpp"
//// Respawn Script - End   ////
};



class cfgFunctions {
//// Respawn Script - Start ////
#include "INS_revive\cfgfunctions.hpp"
//// Respawn Script - End   ////
};

class Extended_PreInit_EventHandlers {
// Replace mission_name with name of your mission
class mission_name { 
	// If has ace mode, enable ace wound system
	serverInit = "ace_sys_wounds_enabled = true; publicVariable 'ace_sys_wounds_enabled';";
};
};

Hope this helps ;)

Oh and just in case you want to use BTC Logistics with it as well add this under

	#include "INS_revive\rsctitles.hpp"

	#include "=BTC=_Logistic\=BTC=_Lift\=BTC=_Hud.h"

Edited by DaSkunk

Share this post


Link to post
Share on other sites

@DaSkunk; Thank you very much for your assistance. I tried your edited version of the scripts and I am not getting any more conflicts with the RSC titles issues! Thanks again.

Hey, I have another question for you now though regarding this script.. if you put a HUNTER down on the map that does not have a turret, and drive that HUNTER into the repair bay, you get a script error regarding the turret not being present. Do you think you can fix that too??? lol I really wish the author of this script would have continued to develop it. I really like the way this script works as far as how it provides more info on what the percentage of damage is, fuel needed, magazines needed, etc.

Thanks again for your help, it's greatly appreciated.

Share this post


Link to post
Share on other sites

I am also having the same issues m8 and also the ammo reload is now bugged and I am not sure how to fix it.... It needs someone better at coding than me to fix it . :(

I love this script it's a real shame It hasn't been updated. I tried a pm to the guy that made it but he has not responded.

Share this post


Link to post
Share on other sites

What I have experienced on the ammo reloading is that if you run the ammo completely out, zero rounds, then the ammo will not reload. But, if you leave at least one round in gun then the ammo WILL reload. I did some searching and have seen similar issues all the way back to arma (1).

Thanks again for your help.

Z

Share this post


Link to post
Share on other sites
Having the same issue. The rsctitles need to be merged into one call I think but I'm not sure how to do that. Also, as of 07-31-13, the script is not rearming. It shows the turret ammo type but never actually reloads the ammo.

The rscTitles issue is actually a cutRsc problem and an RscTitles display declaration integration problem. I'm altering the scripting to utilize layers, which I should have done in the first place. To fix RscTitles integration, you will have to modify all scripts using RscTitles to get the display declarations integrated.

Edited by Jacmac

Share this post


Link to post
Share on other sites

Script, documentation, & test mission updated to version D.

Edited by Jacmac

Share this post


Link to post
Share on other sites

I fail at createTrigger, I now realize they must be created locally. I'll update the download to E.

If you already downloaded version D, replace the gvs_triggers.sqf with this code:

/*=================================================================================================================
 GVS Triggers by Jacmac

 Version History:
 A - Initial Release 10/13/2013
 B - Removed isServer checks on trigger creation 10/13/2013

 Requirements:
 Called once from gvs_init.sqf on startup.

 Features:
 -Generates GVS Triggers for Ground Vehicles, Helecopters, and Planes
 -Generates Event handlers for display of the trigger locations when a player is within a vehicle

 Notes:
 Trigger location display is:
 Null on foot
 500 meters in Ground Vehicles
 1K in Helecopters
 2K in Planes

 The trigger variables can be adjusted, but keep in mind that sounds are fixed in duration, so adjusting a
 a setting like _veh_per_fuel_time to some value other than 2 seconds will throw off the sound loop. Sounds
 for ammo or repair ar not so much affected but times that are too low, may cause sounds to play on top of
 each other.

=================================================================================================================*/

//The variables below can be adjusted with caution
_veh_trigger_diameter = 8;
_hel_trigger_diameter = 10;
_pla_trigger_diameter = 12;

_veh_maxDistance = 6;		//distance from trigger that will cause abort
_veh_maxHeight = 1;			//height above trigger that will cause abort
_veh_serviceStartDelay = 8; //seconds before service starts (can abort in this time)
_veh_per_fuel_time = 2;		//seconds per percent of fuel
_veh_per_repair_time = 6;	//seconds per percent of repair
_veh_per_magazine_time = 8;	//seconds per magazine reload

_hel_maxDistance = 8;
_hel_maxHeight = 4;
_hel_serviceStartDelay = 8;
_hel_per_fuel_time = 2;
_hel_per_repair_time = 6;
_hel_per_magazine_time = 8;

_pla_maxDistance = 10;
_pla_maxHeight = 6;
_pla_serviceStartDelay = 10;
_pla_per_fuel_time = 2;
_pla_per_repair_time = 6;
_pla_per_magazine_time = 8;

//Do not adjust below here, unless you know what you're doing...
_veh = 0;
_hel = 0;
_pla = 0;
{
_marker = _x;
_marPos = getMarkerPos _marker;

if (([_x, "gvs_veh"] call String_Search) == 0) then
{
	if (isNil (format ["Public_gvs_veh_%1", _veh])) then {call compile format ["Public_gvs_veh_%1 = 0", _veh]};

       call compile format ["addMissionEventHandler [""Draw3D"", {
           _pos = getMarkerPos ""%1"";
           _distp = player distance _pos;
           if (_distp < 500 and (vehicle player isKindOf ""LandVehicle"")) then {
               _scale = 0.0251 - (_distp / 20000);
               _pos set [2, 2 + (_distp * 0.05)];
               _alpha = _distp / 500;
               _texture = format [""#(rgb,1,1,1)color(0.5,0.5,0.5,%2)"", _alpha];
               _texture = ""\A3\ui_f\data\map\markers\nato\b_armor.paa"";
               if (_distp < 250) then {
                   _alpha = 1.001 - (_distp / 500);
               };
               _color = [0.85,0.65,0.13,_alpha];
               drawIcon3D [_texture, _color, _pos, 0.5, 0.5, 0, ""Ground Vehicle Service"", 1, _scale, ""TahomaB""];
           };
       }];", _marker, "%1"];  

	_con = format ["Public_gvs_veh_%1 == 0 and ({player == driver _x and _x isKindOf ""LandVehicle""} count thislist == 1)", _veh];
	_act = format ["Public_gvs_veh_%1 = 1; publicVariable ""Public_gvs_veh_%1""; _nul = [""Public_gvs_veh_%1"", thislist, getPos thisTrigger, %2, %3, %4, %5, %6, %7] execVM ""gvs\generic_vehicle_service.sqf""", _veh, _veh_maxDistance, _veh_maxHeight, _veh_serviceStartDelay, _veh_per_fuel_time, _veh_per_repair_time, _veh_per_magazine_time];
	_trg = createTrigger["EmptyDetector", _marPos];
	_trg setTriggerArea[_veh_trigger_diameter, _veh_trigger_diameter, 0, false];
	_trg setTriggerActivation["ANY", "PRESENT", true];
	_trg setTriggerStatements[_con, _act, ""];

	_veh = _veh + 1;	
};

if (([_x, "gvs_hel"] call String_Search) == 0) then
{
	if (isNil (format ["Public_gvs_hel_%1", _hel])) then {call compile format ["Public_gvs_hel_%1 = 0", _hel]};

       call compile format ["addMissionEventHandler [""Draw3D"", {
           _pos = getMarkerPos ""%1"";
           _distp = player distance _pos;
           if (_distp < 1000 and (vehicle player isKindOf ""Helicopter"")) then {
               _scale = 0.0201 - (_distp / 50000);
               _pos set [2, 2 + (_distp * 0.05)];
               _alpha = _distp / 500;
               _texture = format [""#(rgb,1,1,1)color(0.5,0.5,0.5,%2)"", _alpha];
               _texture = ""\A3\ui_f\data\map\markers\nato\b_air.paa"";
               if (_distp < 500) then {
                   _alpha = 1.001 - (_distp / 1000);
               };
               _color = [0.25,0.50,0.10,_alpha];
               drawIcon3D [_texture, _color, _pos, 0.5, 0.5, 0, ""Helicopter Service"", 1, _scale, ""TahomaB""];
           };
       }];", _marker, "%1"];  

	_con = format ["Public_gvs_hel_%1 == 0 and ({player == driver _x and _x isKindOf ""Helicopter""} count thislist == 1)", _hel];
	_act = format ["Public_gvs_hel_%1 = 1; publicVariable ""Public_gvs_hel_%1""; _nul = [""Public_gvs_hel_%1"", thislist, getPos thisTrigger, %2, %3, %4, %5, %6, %7] execVM ""gvs\generic_vehicle_service.sqf""", _hel, _hel_maxDistance, _hel_maxHeight, _hel_serviceStartDelay, _hel_per_fuel_time, _hel_per_repair_time, _hel_per_magazine_time];
	_trg = createTrigger["EmptyDetector", _marPos];
	_trg setTriggerArea[_hel_trigger_diameter, _hel_trigger_diameter, 0, false];
	_trg setTriggerActivation["ANY", "PRESENT", true];
	_trg setTriggerStatements[_con, _act, ""];	

	_hel = _hel + 1;	
};	

if (([_x, "gvs_pla"] call String_Search) == 0) then
{
	if (isNil (format ["Public_gvs_pla_%1", _pla])) then {call compile format ["Public_gvs_pla_%1 = 0", _pla]};

       call compile format ["addMissionEventHandler [""Draw3D"", {
           _pos = getMarkerPos ""%1"";
           _distp = player distance _pos;
           if (_distp < 2000 and (vehicle player isKindOf ""Plane"")) then {
               _scale = 0.0201 - (_distp / 100000);
               _pos set [2, 2 + (_distp * 0.05)];
               _alpha = _distp / 2000;
               _texture = format [""#(rgb,1,1,1)color(0.5,0.5,0.5,%2)"", _alpha];
               _texture = ""\A3\ui_f\data\map\markers\nato\b_plane.paa"";
               if (_distp < 1000) then {
                   _alpha = 1.001 - (_distp / 2000);
               };
               _color = [0.80,0.20,0.05,_alpha];
               drawIcon3D [_texture, _color, _pos, 0.5, 0.5, 0, ""Plane Service"", 1, _scale, ""TahomaB""];
           };
       }];", _marker, "%1"];  

	_con = format ["Public_gvs_pla_%1 == 0 and ({player == driver _x and _x isKindOf ""Plane""} count thislist == 1)", _pla];
	_act = format ["Public_gvs_pla_%1 = 1; publicVariable ""Public_gvs_pla_%1""; _nul = [""Public_gvs_pla_%1"", thislist, getPos thisTrigger, %2, %3, %4, %5, %6, %7] execVM ""gvs\generic_vehicle_service.sqf""", _pla, _pla_maxDistance, _pla_maxHeight, _pla_serviceStartDelay, _pla_per_fuel_time, _pla_per_repair_time, _pla_per_magazine_time];
	_trg = createTrigger["EmptyDetector", _marPos];
	_trg setTriggerArea[_pla_trigger_diameter, _pla_trigger_diameter, 0, false];
	_trg setTriggerActivation["ANY", "PRESENT", true];
	_trg setTriggerStatements[_con, _act, ""];	

	_pla = _pla + 1;	
};	
}forEach allMapMarkers;

Share this post


Link to post
Share on other sites

Hello guys,

Sorry for the English, but I am using a translator

I'm using on a small mission, the Service Vehicle generic, along with the script = BTC = _Logistic but every time I load the Arma 3 displays an error stating that the RscTitles class has been defined by the user.

Anyone experiencing the same problem?

Share this post


Link to post
Share on other sites

From the documentation:

Display Information:
GVS uses RscTitles for the information display. It is very possible that missions you try to integrate GVS into will also
use RscTitles. By default layer 301 is used for GVS, you can change it if you happen to be using 301 already, numbers in 
the tens of thousands have been tested successfully. 

If you integrate GVS into a mission that is already utilizing RscTitles, for example "Domination", you will have to integrate
the display class definitions. For example, in the Domination description.ext consider the following code:

class RscTitles {
#include "x_dlg\RscTitles.hpp"
#include "gvs\stc_include_alt.hpp" //Alternative display class definitions
};

I don't know what BTC revive developers did, but the way Domination has declared RscTitles is the way to go. I included an alternative form of the display definitions specifically because different scripts using RscTitles can and will interfere with each other. If somebody wants to propose an informal standard for declarations, I'm all for it. I think the Domination method is a good way to do it

Share this post


Link to post
Share on other sites
From the documentation:

Display Information:
GVS uses RscTitles for the information display. It is very possible that missions you try to integrate GVS into will also
use RscTitles. By default layer 301 is used for GVS, you can change it if you happen to be using 301 already, numbers in 
the tens of thousands have been tested successfully. 

If you integrate GVS into a mission that is already utilizing RscTitles, for example "Domination", you will have to integrate
the display class definitions. For example, in the Domination description.ext consider the following code:

class RscTitles {
#include "x_dlg\RscTitles.hpp"
#include "gvs\stc_include_alt.hpp" //Alternative display class definitions
};

I don't know what BTC revive developers did, but the way Domination has declared RscTitles is the way to go. I included an alternative form of the display definitions specifically because different scripts using RscTitles can and will interfere with each other. If somebody wants to propose an informal standard for declarations, I'm all for it. I think the Domination method is a good way to do it

Jacmac Thanks for the reply, but

I had seen this procedure and error really is no longer shown. Now when you enter the game and load the mission, the hud to use the lift of the helicopter does not appear, why is this function that uses RscTitles.

I am in search to find the solution. Thanks for all the help.

Share this post


Link to post
Share on other sites
Jacmac Thanks for the reply, but

I had seen this procedure and error really is no longer shown. Now when you enter the game and load the mission, the hud to use the lift of the helicopter does not appear, why is this function that uses RscTitles.

I am in search to find the solution. Thanks for all the help.

The HUD you are referring to must be using a display definition in RscTitles. GVS uses RscTitles and apparently so does BTC Revive. To integrate all of these, there are a couple of things to do and check.

First make sure there is exactly one definition for RscTitles, and this means checking all hpp files included in description.ext. The method I put in the documentation from Domination is the best way I have seen so far to integrate multiple scripts that use RscTitles. It does mean that you need to possibly alter hpp files or the way the display controls have been defined. The main point is that there can be only one "class RscTitles". There can be virtually unlimited display controls defined as long as the names are unique, but only one RscTitles.

Second, use of cutRsc without a layer number should be banned. Unfortunately, many scripts don't use a layer number because the script creators don't understand the arcane science of RscTitles. I didn't understand them for a long time until I picked apart a mission that had complex usage integrated into it. There is also the possibility of two different scripts using the same layer number(s). You have to search the script code for cutRsc and make sure the number (if any) preceding cutRsc (the layer number) does not conflict with someone else's script or your own script (if you are also using RscTitles). If you find cutRsc with no layer number in two different scripts you are integrating into your mission, there is a good chance they will interfere with each other, meaning that while one is displaying, the other will disappear. Each layer can have one display control displaying at a time and this includes a blanking control! A true one time display, such as an opening title can perhaps be forgiven, but a persistent display on the default layer of cutRsc should be a considered a sin. If I could get a biki account, I would udpate the documentation to be more clear about all of this.

Share this post


Link to post
Share on other sites

Jacmac, thank you once again

Solved the problem, that after his tip was a little easier to solve. I am newbie in creating mission, so I had a bit of trouble to solve, but based on the first post of this forum the problem was solved.

I apologize for my lack of attention, since the solution of the problem was in my face.

Greetings.

Share this post


Link to post
Share on other sites

It doesn't work with UAVs because the player isn't in the UAV to trigger it. I'll have to create a separate trigger for these. What color should I use, purple?

Share this post


Link to post
Share on other sites
It doesn't work with UAVs because the player isn't in the UAV to trigger it. I'll have to create a separate trigger for these. What color should I use, purple?

Yes, it would be nice.

Share this post


Link to post
Share on other sites

UAV support added in version F and the test mission has been updated. The UAV Service sign will show up when the player is the driver of the UAV, but not the gunner.

Share this post


Link to post
Share on other sites

Sorry to bring up old thread

but I just cant the reair script to work alongside BTC revive I am hving the same RSC problem and its a bit beyond my understanding.

Wonder if anyone can help?

Thanks in advance

Edited by Doodle

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

×