Jump to content
tonic-_-

Virtual Vehicle Spawner (VVS)

Recommended Posts

Some way to make the VVS to add the pylons system to all planes /helos that doesen`t have that? By defult.

Missing right now,on some vehicles.

Some way to add a Lightbar_On ,without having to use the Garage for that,would be very useful,for zeus players that can`t leave the players to go do stuff.

Prefered with a hotkey.

If we can set all cars/all other vehicles to their own Layer by defult ,that is something that will be useful.

This needs some more mod support.

More build-in features.Thank you for a mod that adds choices.

 

 

 

Share this post


Link to post
Share on other sites
On 7/3/2015 at 2:19 PM, Yolo Joe said:

Hello,

is there any way to spawn the vehicles with anything in the Init field?

 

Hey there, out of curiosity I was wondering did you ever figure this one out? I'm currently trying to figure out the same thing.

 

I have specific items for "B_CargoNet_01_ammo_F" that I call from a "box_resupply.sqf" script. I have the Cargo Net Boxes spawn via VVS but now I'm looking to find  a way to have them spawn with my script everytime.

 

Any help would be appreciated.

Share this post


Link to post
Share on other sites

@Feenx sama here is my hack:

 

At the end of the VVS\functions\fn_spawnVehicle.sqf file you can add your own code to act on all vehicles that are spawned.  Bear in mind that this code will run on all vehicles that are spawned using the VVS system, which may be acceptable.

Under the same circumstances I run code like:
 

// Get vehicle class.
_class = typeOf _vehicle;

// Do class specific settings.
switch ( _class ) do {
   case "VEHICLE_CLASS_1" :
      {
         // Code to be run on VEHICLE_CLASS_1.
      };
   case "VEHICLE_CLASS_2" :
      {
         // Code to be run on VEHICLE_CLASS_2.
      };
};

Note _vehicle is the local variable of the newly created vehicle.

All the best  S

  • Like 2

Share this post


Link to post
Share on other sites
3 hours ago, strider42 said:

@Feenx sama here is my hack:

 

At the end of the VVS\functions\fn_spawnVehicle.sqf file you can add your own code to act on all vehicles that are spawned.  Bear in mind that this code will run on all vehicles that are spawned using the VVS system, which may be acceptable.

Under the same circumstances I run code like:
 


// Get vehicle class.
_class = typeOf _vehicle;

// Do class specific settings.
switch ( _class ) do {
   case "VEHICLE_CLASS_1" :
      {
         // Code to be run on VEHICLE_CLASS_1.
      };
   case "VEHICLE_CLASS_2" :
      {
         // Code to be run on VEHICLE_CLASS_2.
      };
};

Note _vehicle is the local variable of the newly created vehicle.

All the best  S

 

Thanks for this. However I've found a solution for it already but I might mess around with your suggestion later.

 

 

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Hey guys, having trouble restricting vehicles.I've used the code below but the vehicle still shows in the list in game.

 

VVS_R_Air = ["B_Heli_Light_01_armed_F"];

 

Any help appreciated.:)

Share this post


Link to post
Share on other sites
On 4/21/2020 at 12:21 PM, ANZACSAS Steven said:

Hey guys, having trouble restricting vehicles.I've used the code below but the vehicle still shows in the list in game.

 

VVS_R_Air = ["B_Heli_Light_01_armed_F"];

 

Any help appreciated.:)

need to make sure this 

VVS_Premade_List = false;

to the following

VVS_Premade_List = true;

this works for me

Share this post


Link to post
Share on other sites

@CammyNB , Thanks for the help.I sorted the problem and forgot to edit this thread.Soz m8

The scripts and the heli name are from an old version of Arma.From before the dynamic arming system was introduced.The heli class name now is - "B_Heli_Light_01_dynamicLoadout_F".

Thanx again m8.:)

 

Share this post


Link to post
Share on other sites

[SORTED] As no one else was having the problem I reported it comes as little surprise that the problem seems to be due to some modification I have made to the script.  I reverted back to the latest version, sorted the black icons issue and I have not seen the problem again.  So it is not Tonic's excellent script it seems to be something I have done.  More testing when I get some time required to find the actual issue but my current mission does not require any of the updates I implemented so I will leave it as is.

 

Seen some strange behaviour with VVS spawned vehicles that I have never seen before.

While testing my current mission I occasionally spawn a vehicle that I can't drive:

  • I can get in the vehicle, turn the wheels but I can't start the engine or make the vehicle move.
  • I have only observed this with the Hunters but I have not spawned many other vehicles.
  • Status is game running as a player-server and Decicated server (run localy on the same PC).
  • Another player was able to move the car I could not and despite numerous attempts I still could not make the vehicle move later in the play session.
  • I can get round the problem by just spawning another (same class) vehicle and the chances are I can drive it. In fact I don't recall spawning 2 consecutive vehicles that I could not drive.
  • In one multi-player session a client player suffered the same problem.
  • The mission just uses Vanilla units and equipment.  Prettty much original arma equipment and vehicles.

Anyone else seing this behaviour and any idea what might be causing this problem?  S

Share this post


Link to post
Share on other sites

I must be at a lost or I really suck at coding because I'm trying to set up custom classes with helicopters seperated from jets, HMMWV seperated from cars etc etc. I have alot of mods and it loads all of them but it is a clutter to find anything on the menu do to how many vehicles there are now.

Share this post


Link to post
Share on other sites

@MoreRonnMy advice is to get very mission specific.  I have moded mine to just use the list of specified vehicles.  It does mean having to update it for each mission.  If you are trying to create new classes, like 'HMMWVs', then I wish you luck.

Share this post


Link to post
Share on other sites

@strider42 okay makes sense I was going crazy trying to make my own classes, it might have been a bigger step then I thought. I thought I would have to add my class in filtertype.sqf under: '_vehicleList = switch(_filter) do'  then  add my own class after the premade classes in fn_buildCfg.sqf then finally add it to the configuration.sqf under  'VSS_Premade_List = true;' but I just wanted to know if anyone had any luck with that.

Share this post


Link to post
Share on other sites

I tried that myself and had no luck.Though, Iam not at all a competent scripter m8.:(

Share this post


Link to post
Share on other sites
On 9/10/2017 at 8:05 AM, strider42 said:

I modified the fn_spawnVehicle.sqf file to solve this problem.  It works in the USS Freedom but I have not check it still works on land.

Basically I check if the position is over water and assume that means it is on the Freedom and then modify the position to take into account the height of the carrier deck.

The checking the respawn point is clear still works (if it is not the vehicle is deleted, as before).


/*
	File: fn_spawnVehicle.sqf
	Author: Bryan "Tonic" Boardwine
	
	Description:
	Spawns the selected vehicle, if a vehicle is already on the spawn point
	then it deletes the vehicle from the spawn point.

   Edit: Strider 10 Sep 2017
   Updated to work with the USS Freedom aircraft carrier.
*/
disableSerialization;
private["_position","_direction","_className","_displayName","_spCheck","_cfgInfo"];
if(lnbCurSelRow 38101 == -1) exitWith {hint "You did not select a vehicle to spawn!"};

_className = lnbData[38101,[(lnbCurSelRow 38101),0]];
_displayName = lnbData[38101,[(lnbCurSelRow 38101),1]];
_position = getMarkerPos VVS_SP;

// Check if we are over water (and assume we are on the USS Freedom.
if ( surfaceIsWater _position ) then {
   _position = _position vectorAdd [0,0,24];
};

_direction = markerDir VVS_SP;

//Make sure the marker exists in a way.
if(isNil "_position") exitWith {hint "The spawn point marker doesn't exist?";};

//Check to make sure the spawn point doesn't have a vehicle on it, if it does then delete it.
_spCheck = nearestObjects[_position,["landVehicle","Air","Ship"],12] select 0;
if(!isNil "_spCheck") then {deleteVehicle _spCheck;};

_cfgInfo = [_className] call VVS_fnc_cfgInfo;

/*
 * Spawn the requested vehicle.
 */

// Spawn vehicle somewhere where we can manipulate it.
_vehicle = createVehicle [_className, [0,0,10], [], 0, "CAN_COLLIDE"];

// Stop it being damaged.
_vehicle allowDamage false;

// Set the vehicle direction.
_vehicle setDir _direction;

// Put the vehicle where we  want it.
_vehicle setVehiclePosition [_position , [], 0, "CAN_COLLIDE"];


if((_cfgInfo select 4) == "Autonomous") then
{
	createVehicleCrew _vehicle;
};

if(VVS_Checkbox) then
{
	clearWeaponCargoGlobal _vehicle;
	clearMagazineCargoGlobal _vehicle;
	clearItemCargoGlobal _vehicle;
};

_vehicle allowDamage true;
hint format["You have spawned a %1",_displayName];
closeDialog 0;

The new bits of code are:

Checking if the respawn position is over water and them modifying the _postion variable.


// Check if we are over water (and assume we are on the USS Freedom).
if ( surfaceIsWater _position ) then {
   _position = _position vectorAdd [0,0,24];
};

Respawn the vehicle safely.  This uses a template I like for safe vehicle respawn and the simple way seemed to cause problems with some vehicle spawning and other disappearing.


/*
 * Spawn the requested vehicle.
 */

// Spawn vehicle somewhere where we can manipulate it.
_vehicle = createVehicle [_className, [0,0,10], [], 0, "CAN_COLLIDE"];

// Stop it being damaged.
_vehicle allowDamage false;

// Set the vehicle direction.
_vehicle setDir _direction;

// Put the vehicle where we  want it.
_vehicle setVehiclePosition [_position , [], 0, "CAN_COLLIDE"];

Hope this might help you.  S

 

I tried this to create a spawner inside the USS Liberty's deck (destroyer) but ended up spawning the vehicles on top of the ship. Anyone have any idea on how to make this possible?

Share this post


Link to post
Share on other sites

Forgive me i am a noob,

I am trying to get this script to spawn via getPosASL, so that way i can use all [x, y, z]. I am having trouble with it. I have modify the script to _position = getposASL VVS_SP; (line16) but its returning with an error of _position is a string. How do i modify the script with _position with getPosASL?

Spoiler

/*
    File: fn_openVVS.sqf
    Author: Bryan "Tonic" Boardwine
    
    Description:
    Opens the VVS menu and fills in the blanks.
*/
private["_sp"];
_sp = [_this,3,"",["",[]]] call BIS_fnc_param;
if(typeName _sp == "STRING") then
{
    if(_sp == "") exitWith {closeDialog 0};
    VVS_SP = _sp;
}
    else
{
    if(typeName _sp == "ARRAY") then
    {
        if(count _sp == 0) exitWith {closeDialog 0;};
        VVS_SP = _sp select 0;
        VVS_Cfg = _sp select 1;
    };
};
disableSerialization;
if(!(createDialog "VVS_Menu")) exitWith {}; //Couldn't create the menu


 

Spoiler

/*
    File: fn_spawnVehicle.sqf
    Author: Bryan "Tonic" Boardwine
    
    Description:
    Spawns the selected vehicle, if a vehicle is already on the spawn point
    then it deletes the vehicle from the spawn point.
*/
disableSerialization;
private["_position","_direction","_className","_displayName","_spCheck","_cfgInfo"];
if(lnbCurSelRow 38101 == -1) exitWith {hint "You did not select a vehicle to spawn!"};

_className = lnbData[38101,[(lnbCurSelRow 38101),0]];
_displayName = lnbData[38101,[(lnbCurSelRow 38101),1]];
//_position = getMarkerPos VVS_SP;
_position = getPosASL VVS_SP;
//_direction = markerDir VVS_SP;
_direction = getDir VVS_SP;

//Make sure the marker exists in a way.
if(isNil "_position") exitWith {hint "The spawn point marker doesn't exist?";};

//Check to make sure the spawn point doesn't have a vehicle on it, if it does then delete it.
_spCheck = nearestObjects[_position,["landVehicle","Air","Ship"],5] select 0;
if(!isNil "_spCheck") then {deleteVehicle _spCheck;};

_cfgInfo = [_className] call VVS_fnc_cfgInfo;
/*
_vehicle = _className createVehicle _position;
_vehicle allowDamage false;
//_vehicle setPos _position; //Make sure it gets set onto the position.
//_vehicle setDir _direction; //Set the vehicles direction the same as the marker.
_vehicle setPos _position;
_vehicle setDir _direction; //Set the vehicles direction the same as the marker.
*/

// Spawn vehicle somewhere where we can manipulate it.
_vehicle = createVehicle [_className, [0,0,10], [], 0, "CAN_COLLIDE"];

// Stop it being damaged.
_vehicle allowDamage false;

// Set the vehicle direction.
_vehicle setDir _direction;

// Put the vehicle where we  want it.
_vehicle setVehiclePosition [_position , [], 0, "CAN_COLLIDE"];

if((_cfgInfo select 4) == "Autonomous") then
{
    createVehicleCrew _vehicle;
};

if(VVS_Checkbox) then
{
    clearWeaponCargoGlobal _vehicle;
    clearMagazineCargoGlobal _vehicle;
    clearItemCargoGlobal _vehicle;
};

_vehicle allowDamage true;
hint format["You have spawned a %1",_displayName];
closeDialog 0;


 

 

Share this post


Link to post
Share on other sites

@Chinook_ If you are still looking for a solution I thing your problem is with the two lines:

//_direction = markerDir VVS_SP;
_direction = getDir VVS_SP;

I'm sure you just need to uncomment the first line and delete the second.

The error is being cause by VVS_SP being a marker which is a string and getDir is expecting an object.  Should work otherwise.

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

×