Jump to content
Sign in to follow this  
jcae2798

Spawning vehicles if addon is enabled

Recommended Posts

I am building a mission where random vehicles will spawn at markers. However rather then run the script of spawning a addon vehicle that a player doesn't have the addon enabled for, is this possible in the script code? I recall a new code introduced not to long ago from BI for identifying addons but cannot find anything on this.

Thanks guys.

Share this post


Link to post
Share on other sites

You can use isClass to check for specific class names. You could build an array of classnames, check if they are available, and then pick one randomly to spawn.

[color="#FF8040"][color="#191970"][b]private[/b][/color] [color="#8B3E2F"][b][[/b][/color][color="#7A7A7A"]"_possible"[/color][color="#8B3E2F"][b],[/b][/color][color="#7A7A7A"]"_available"[/color][color="#8B3E2F"][b],[/b][/color][color="#7A7A7A"]"_random"[/color][color="#8B3E2F"][b],[/b][/color][color="#7A7A7A"]"_spawn"[/color][color="#8B3E2F"][b]][/b][/color][color="#8B3E2F"][b];[/b][/color]

[color="#006400"][i]// array of possible classnames[/i][/color]
[color="#1874CD"]_possible[/color] [color="#8B3E2F"][b]=[/b][/color] [color="#8B3E2F"][b][[/b][/color][color="#7A7A7A"]"bat_mobile"[/color][color="#8B3E2F"][b],[/b][/color][color="#7A7A7A"]"wiener_mobile"[/color][color="#8B3E2F"][b],[/b][/color][color="#7A7A7A"]"pimp_mobile"[/color][color="#8B3E2F"][b],[/b][/color][color="#7A7A7A"]"DAR_M1151"[/color][color="#8B3E2F"][b],[/b][/color][color="#7A7A7A"]"B_G_Offroad_01_F"[/color][color="#8B3E2F"][b]][/b][/color][color="#8B3E2F"][b];[/b][/color]

[color="#006400"][i]// create array of available[/i][/color]
[color="#1874CD"]_available[/color] [color="#8B3E2F"][b]=[/b][/color] [color="#8B3E2F"][b][[/b][/color][color="#8B3E2F"][b]][/b][/color][color="#8B3E2F"][b];[/b][/color]
[color="#8B3E2F"][b]{[/b][/color]
[color="#191970"][b]if[/b][/color] [color="#8B3E2F"][b]([/b][/color][color="#191970"][b]isClass[/b][/color] [color="#8B3E2F"][b]([/b][/color][color="#191970"][b]configFile[/b][/color] [color="#8B3E2F"][b]>[/b][/color][color="#8B3E2F"][b]>[/b][/color] [color="#7A7A7A"]"CfgVehicles"[/color] [color="#8B3E2F"][b]>[/b][/color][color="#8B3E2F"][b]>[/b][/color] [color="#000000"]_x[/color][color="#8B3E2F"][b])[/b][/color][color="#8B3E2F"][b])[/b][/color] [color="#191970"][b]then[/b][/color] [color="#8B3E2F"][b]{[/b][/color]
	[color="#1874CD"]_available[/color] [color="#191970"][b]pushBack[/b][/color] [color="#000000"]_x[/color][color="#8B3E2F"][b];[/b][/color]
[color="#8B3E2F"][b]}[/b][/color][color="#8B3E2F"][b];[/b][/color]
[color="#8B3E2F"][b]}[/b][/color] [color="#191970"][b]forEach[/b][/color] [color="#1874CD"]_possible[/color][color="#8B3E2F"][b];[/b][/color]

[color="#006400"][i]// randomly select one available[/i][/color]
[color="#1874CD"]_random[/color] [color="#8B3E2F"][b]=[/b][/color] [color="#1874CD"]_available[/color] [color="#191970"][b]select[/b][/color] [color="#8B3E2F"][b]([/b][/color][color="#191970"][b]floor[/b][/color] [color="#191970"][b]random[/b][/color] [color="#191970"][b]count[/b][/color] [color="#1874CD"]_available[/color][color="#8B3E2F"][b])[/b][/color][color="#8B3E2F"][b];[/b][/color]

[color="#006400"][i]// spawn random[/i][/color]
[color="#1874CD"]_spawn[/color] [color="#8B3E2F"][b]=[/b][/color] [color="#191970"][b]createVehicle[/b][/color] [color="#8B3E2F"][b][[/b][/color][color="#1874CD"]_random[/color][color="#8B3E2F"][b],[/b][/color][color="#191970"][b]position[/b][/color] [color="#000000"]player[/color][color="#8B3E2F"][b],[/b][/color][color="#8B3E2F"][b][[/b][/color][color="#8B3E2F"][b]][/b][/color][color="#8B3E2F"][b],[/b][/color][color="#FF0000"]0[/color][color="#8B3E2F"][b],[/b][/color][color="#7A7A7A"]"NONE"[/color][color="#8B3E2F"][b]][/b][/color][color="#8B3E2F"][b];[/b][/color][/color]

Made with KK's SQF to BBCode Converter

Share this post


Link to post
Share on other sites

ARGGG, can someone tell me why this keeps erroring out?

_spawnName = _this select 0;
_spawnDistance = _this select 1;
_spawnPos = getMarkerPos _spawnName;

_ALLCARS = ["DAR_M1151Woodland","DAR_M115_MK19Woodland","DAR_M1151WoodlandUA","DAR_M1167Woodland","DAR_MaxxPro","DAR_MaxxPro_MK19","DAR_MaxxProPlus","DAR_MK23","DAR_MK23A","DAR_MK23AD","DAR_MK27","DAR_MK27T","DAR_4X4","I_G_Offroad_01_armed_F","I_MRAP_03_F","I_MRAP_03_hmg_F","I_Truck_02_covered_F","I_Truck_02_transport_F","I_Truck_02_medical_F","I_G_Van_01_transport_F","O_MRAP_02_F","O_MRAP_02_hmg_F","O_MRAP_02_gmg_F","O_Truck_03_covered_F","O_Truck_03_medical_F","C_Offroad_01_F","C_Hatchback_01_F","C_SUV_01_F","B_MRAP_01_F","B_MRAP_01_hmg_F","B_APC_Wheeled_01_cannon_F"];

sleep 1;
_cartype = [_ALLCARS] call BIS_fnc_selectRandom;
_veh = createVehicle [_ALLCARS, _spawnPos, [], 0, "NONE"];

---------- Post added at 20:49 ---------- Previous post was at 20:47 ----------

You can use isClass to check for specific class names. You could build an array of classnames, check if they are available, and then pick one randomly to spawn.

[color="#FF8040"][color="#191970"][b]private[/b][/color] [color="#8B3E2F"][b][[/b][/color][color="#7A7A7A"]"_possible"[/color][color="#8B3E2F"][b],[/b][/color][color="#7A7A7A"]"_available"[/color][color="#8B3E2F"][b],[/b][/color][color="#7A7A7A"]"_random"[/color][color="#8B3E2F"][b],[/b][/color][color="#7A7A7A"]"_spawn"[/color][color="#8B3E2F"][b]][/b][/color][color="#8B3E2F"][b];[/b][/color]

[color="#006400"][i]// array of possible classnames[/i][/color]
[color="#1874CD"]_possible[/color] [color="#8B3E2F"][b]=[/b][/color] [color="#8B3E2F"][b][[/b][/color][color="#7A7A7A"]"bat_mobile"[/color][color="#8B3E2F"][b],[/b][/color][color="#7A7A7A"]"wiener_mobile"[/color][color="#8B3E2F"][b],[/b][/color][color="#7A7A7A"]"pimp_mobile"[/color][color="#8B3E2F"][b],[/b][/color][color="#7A7A7A"]"DAR_M1151"[/color][color="#8B3E2F"][b],[/b][/color][color="#7A7A7A"]"B_G_Offroad_01_F"[/color][color="#8B3E2F"][b]][/b][/color][color="#8B3E2F"][b];[/b][/color]

[color="#006400"][i]// create array of available[/i][/color]
[color="#1874CD"]_available[/color] [color="#8B3E2F"][b]=[/b][/color] [color="#8B3E2F"][b][[/b][/color][color="#8B3E2F"][b]][/b][/color][color="#8B3E2F"][b];[/b][/color]
[color="#8B3E2F"][b]{[/b][/color]
[color="#191970"][b]if[/b][/color] [color="#8B3E2F"][b]([/b][/color][color="#191970"][b]isClass[/b][/color] [color="#8B3E2F"][b]([/b][/color][color="#191970"][b]configFile[/b][/color] [color="#8B3E2F"][b]>[/b][/color][color="#8B3E2F"][b]>[/b][/color] [color="#7A7A7A"]"CfgVehicles"[/color] [color="#8B3E2F"][b]>[/b][/color][color="#8B3E2F"][b]>[/b][/color] [color="#000000"]_x[/color][color="#8B3E2F"][b])[/b][/color][color="#8B3E2F"][b])[/b][/color] [color="#191970"][b]then[/b][/color] [color="#8B3E2F"][b]{[/b][/color]
	[color="#1874CD"]_available[/color] [color="#191970"][b]pushBack[/b][/color] [color="#000000"]_x[/color][color="#8B3E2F"][b];[/b][/color]
[color="#8B3E2F"][b]}[/b][/color][color="#8B3E2F"][b];[/b][/color]
[color="#8B3E2F"][b]}[/b][/color] [color="#191970"][b]forEach[/b][/color] [color="#1874CD"]_possible[/color][color="#8B3E2F"][b];[/b][/color]

[color="#006400"][i]// randomly select one available[/i][/color]
[color="#1874CD"]_random[/color] [color="#8B3E2F"][b]=[/b][/color] [color="#1874CD"]_available[/color] [color="#191970"][b]select[/b][/color] [color="#8B3E2F"][b]([/b][/color][color="#191970"][b]floor[/b][/color] [color="#191970"][b]random[/b][/color] [color="#191970"][b]count[/b][/color] [color="#1874CD"]_available[/color][color="#8B3E2F"][b])[/b][/color][color="#8B3E2F"][b];[/b][/color]

[color="#006400"][i]// spawn random[/i][/color]
[color="#1874CD"]_spawn[/color] [color="#8B3E2F"][b]=[/b][/color] [color="#191970"][b]createVehicle[/b][/color] [color="#8B3E2F"][b][[/b][/color][color="#1874CD"]_random[/color][color="#8B3E2F"][b],[/b][/color][color="#191970"][b]position[/b][/color] [color="#000000"]player[/color][color="#8B3E2F"][b],[/b][/color][color="#8B3E2F"][b][[/b][/color][color="#8B3E2F"][b]][/b][/color][color="#8B3E2F"][b],[/b][/color][color="#FF0000"]0[/color][color="#8B3E2F"][b],[/b][/color][color="#7A7A7A"]"NONE"[/color][color="#8B3E2F"][b]][/b][/color][color="#8B3E2F"][b];[/b][/color][/color]

Made with KK's SQF to BBCode Converter

Awesome, going to try this now as well. Might have fixed the other issue i just posted as well

---------- Post added at 20:55 ---------- Previous post was at 20:49 ----------

Freaking awesome, just what i was looking for. Thanks guys!! Can't believe i just wasted hours of my time trying to figure it out for the dump spawning crap

Share this post


Link to post
Share on other sites

I think the error in the code you posted came from your use of BIS_fnc_selectRandom. You were putting an array inside of another array, causing there to be only one choice - the whole array. Also, you were passing the whole array to createVehicle.

_cartype = [_ALLCARS] call BIS_fnc_selectRandom;
_veh = createVehicle [_ALLCARS, _spawnPos, [], 0, "NONE"];

should be

_cartype = [b][color="#B22222"]_ALLCARS[/color][/b] call BIS_fnc_selectRandom;
_veh = createVehicle [[b][color="#B22222"]_cartype[/color][/b], _spawnPos, [], 0, "NONE"];

since _ALLCARS is already an array and _cartype is the randomly selected one returned from the function.

Edited by Fight9

Share this post


Link to post
Share on other sites
I think the error in the code you posted came from your use of BIS_fnc_selectRandom. You were putting an array inside of another array, causing there to be only one choice - the whole array. Also, you were passing the whole array to createVehicle.

_cartype = [_ALLCARS] call BIS_fnc_selectRandom;
_veh = createVehicle [_ALLCARS, _spawnPos, [], 0, "NONE"];

should be

_cartype = [b][color="#B22222"]_ALLCARS[/color][/b] call BIS_fnc_selectRandom;
_veh = createVehicle [[b][color="#B22222"]_cartype[/color][/b], _spawnPos, [], 0, "NONE"];

since _ALLCARS is already an array and _cartype is the randomly selected one returned from the function.

Thanks again man, makes sense now. thanks for taking the time to review

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
Sign in to follow this  

×