Jump to content

Sinatrad

Member
  • Posts

    20
  • Joined

  • Last visited

Posts posted by Sinatrad

  1. On 3/21/2017 at 6:12 PM, rockybonne said:

    coins on my person are persistent after a server restart. however when i go to access bank it shows 0/10000000 even though in object_data in my database it shows there is 3000000 in the "StorageCoins" column 

    This was the problem that I am still having.  Basic non-global install on fresh server, following the instructions to the letter.  When I put coins in a safe, it updates in the database, but if I lock the safe and then unlock it and go back into it, the display in game shows no coins in the safe. Otherwise everything else works fine.

  2. 1 hour ago, salival said:

    I would guess you didn't overwritr server_handleSafeGear.Sqf in dayz_server or your ZSC_MoneyStorageClasses is wrong.

    Correct syntax is as per: https://github.com/oiad/ZSC/blob/master/dayz_code/init/variables.sqf#L7

    Thanks for the help salival. I checked both of those and they are correct. In my installation I overwrote server_handleSafeGear.sqf, and used your variables.sqf

  3. Hey folks.  Quick Question. I installed the basic package following the directions of @JasonTM's video, which is awesome btw.  The traders work; but when I store coins in a safe and then lock it, they are gone when I unlock it.  I can watch the coins enter the database, but if I unlock the safe and add more coins it just overwrites the entry with what ever coins I put in it.  This was done on a fresh install of overpoch, as per his videos. The only difference is I am using Napf.  I haven't fooled with this stuff in 3 years so I am a little rusty.  Thanks in advance.

    Server RPT: http://pastebin.com/NnRKCCYc

    Player RPT: http://pastebin.com/3vUgTZ71

  4. I think I have got it figured out.  The only function I have not been able to get is making it so people cannot enter the loaded vehicles.  The unload function places the vehicle in the same place each time, so it could be use to glitch in to bases.

  5. I added the following under the R3F settings:

    _Object setVariable ["BTC_Cannot_Lift",true];  //Or false depending on the spot
    	_Object setVariable ["MF_Tow_Cannot_Tow", true];
    

    This has made it so you cannot lift or tow the vehicles that are loaded into the cargo but you can still load a vehicle towing another vehicle into the cargo and you can load or unload from locked vehicles. 

     

    The script needs a check to see if the _transporter is locked or not.  In my attempts I have tried the following.  First attempt was this:

    
    /// Include the Transporter Setup   //---- For location reference
    #include "Settings_Transporter.sqf";
    
    if !(_Transporter getVariable ["PVDZE_veh_Lock", true]) exitWith {  
    	
    		cutText [format["%1 Is locked! Unlock it to load cargo!",_TransporterType], "PLAIN DOWN"];
    	};
    

    Which did not work.  So I tried to cheat using a variable I knew

    if !(_Transporter getVariable ["BTC_Cannot_Lift", true]) exitWith {  
    	
    		cutText [format["%1 Is locked! Unlock it to load cargo!",_TransporterType], "PLAIN DOWN"];
    	};
    
    

    And that did not work.

     

    How this script initializes is very odd, it goes through three different .sqfs before it actually initializes the "real" code.

     

    The first script to initialize (the one executed from the mission init.sqf) is below for reference.

    // BKT CARGO START SQF
    
    //// Wait until player ready, exit if server
    waitUntil {!isNull player};
    if (!local player) exitWith {};
    
    
    ///// Launch the init once
    execVM "BTK\Cargo Drop\Init.sqf";
    

    Then it calls their init.sqf:

    ///BKT CARGO INIT.SQF
    
    //// Add action to all vehicles, check every 5 seconds
    while {true} do {
    	{[_x] execVM "BTK\Cargo Drop\InitAction.sqf";} forEach (nearestObjects [player, ["Air"], 30]);
    	sleep 5;
    };
    

    Then it calls the initaction.sqf

    ///BKT CARGO INITACTION.SQF
    
    //// Variables
    _Transporter = _this select 0;
    _Unit = _this select 1;
    
    
    //// Check for action
    _BTK_CargoDrop_ActionAdded = _Transporter getVariable "BTK_CargoDrop_ActionAdded";
    if (_BTK_CargoDrop_ActionAdded) exitWith {};
    
    
    //// If no action continue here
    _Transporter setVariable ["BTK_CargoDrop_ActionAdded", true];
    _CargoAction = _Transporter addAction [("<t color=""#fadfbe"">" + ("Load cargo") + "</t>"),"BTK\Cargo Drop\Engine.sqf",["LoadCargo"], 5, false, false, "", "vehicle _this == player"];
    
    
    //// remove Action
    waitUntil {(_Unit distance _Transporter > 20) || !(alive _Unit) || !(alive _Transporter)};
    _Transporter removeAction _CargoAction;
    _Transporter setVariable ["BTK_CargoDrop_ActionAdded", false];
    
    

    To me it looks like the best place to add the locked vehicle check would be in the initaction.sqf so that if the vehicle is locked you do not receive the prompt to load or unload cargo at all.

    At this point I just need to figure out how to call the variable check, and which variable to use to see if its locked or not.  Also, I would think there has to be some way to consolidate those three SQF's into one SQF. 

     

    Also does anyone know the superclass name for the hpookie choppers or the CSJ_Air vehicles?

     

    Thanks,

     

    Sinatrad

  6. Hi Folks,  I have been working on this BKT Cargo script to give some extra features to planes on my NAPF server.  Here is the link to it: http://www.armaholic.com/page.php?id=10834

     

    So far It works, I can load stuff in and out of vehicles but the issue is that it will let you load and unload items from locked vehicles.  I see in the script that it checks for R3F's lift/tow and I am wondering how to check for other lift or towing scripts as I use =BTC='s lift and F507DMT's edit of matt_d_rats towing. Found Here, and

     

    I am by no means a scripter, but I do know that it looks like Engine.sqf is the file responsible for executing the actions, and it seems that it is broken down into separate sections based on its size  aka Load in Small, Load in Medium, Load in Large, Load in Extra Large.  I would assume in each of these sections, a extra check would be needed to see if the vehicle is locked. If it is a titletxt message or something would be needed to let the player know they cannot load/unload becuase the vehicle is locked.

     

    Secondly, it looks like it also needs the add/remove variables from the various lifting and towing scripts so people cannot load towed vehicles for instance.  Where would I add the  _vehicle setVariable ["BTC_Cannot_Lift",true,true]; /  _vehicle setVariable ["MF_Tow_Cannot_Tow",true,true];  or something to that effect?  I see the _Object setVariable ["R3F_LOG_disabled", true]; in the file but comparing that line vs the line from lock_unlock.sqf there is a extra syntax on the end, that "true" and I don't know what it does or how it affects the function.

     

    Below is the script in question.  Any help would be greatly appreciative.

     

    Thanks,

    Sinatrad

     

     /******************************************************************************
     *                        ,1             ,-===========.
     *                       /,| ___________((____________\\_                _
     *    ,========.________//_|/===========._#############L_Y_....-----====//
     *   (#######(==========\################\=======.______ --############((
     *    `=======`"        ` ===============|::::.___|[ ))[JW]#############\\
     *                                       |####|     ""\###|   :##########\\
     *                                      /####/         \##\     ```"""=,,,))
     *     C R E A T E D   B Y   B T K     /####/           \##\
     *                                    '===='             `=`
     *******************************************************************************
     *
     *  The main script engine. This file executes the load AND drop functions...
     *
     ******************************************************************************/
    
    
    /// Include the Objects Setup
    #include "Settings_Objects.sqf";
    
    
    //// Variables
    _Transporter = _this select 0;
    _TransporterType = typeOf _Transporter;
    _TransporterName = getText (configFile >> "CfgVehicles" >> (typeOf _Transporter) >> "displayName");
    _Unit = _this select 1;
    _Action = _this select 2;
    _Selected = (_this select 3) select 0;
    //_Dir = random 359;
    
    
    /// Create variables for Transporter Setup detection
    _SelectedTransporterTypeS = false;_SelectedTransporterTypeM = false;_SelectedTransporterTypeL = false;_SelectedTransporterTypeXL = false;
    
    
    /// Include the Transporter Setup
    #include "Settings_Transporter.sqf";
    
    
    //// Supported types
    if (!(_SelectedTransporterTypeS) && !(_SelectedTransporterTypeM) && !(_SelectedTransporterTypeL) && !(_SelectedTransporterTypeXL)) exitWith {
    
    	//// BTK_Hint - Not supported
    	hint parseText format ["
    		<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		<t align='left' color='#eaeaea' size='1.0'>This vehicle does not support cargo transports!</t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    	"];
    	
    _Transporter removeAction _Action;
    };
    
    sleep 1;
    
    
    //// Unit in transporter
    if ((_Unit in _Transporter) && !(_Selected == "UnloadCargo")) exitWith {
    
    	//// BTK_Hint - You have to get out
    	hint parseText format ["
    		<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		<t align='left' color='#eaeaea' size='1.0'>You have to <t color='#fdd785'>get out</t> to load cargo!</t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    	"];
    
    _Transporter removeAction _Action;
    };
    
    
    //// Unload function
    if (_Selected == "UnloadCargo") exitWith {
    	
    	//// 2low
    	if (!((getpos _Transporter) select 2 <= 2.1) && ((getpos _Transporter) select 2 <= 50)) exitWith {
    
    		//// BTK_Hint - Flying too low
    		hint parseText format ["
    			<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    			<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    			<t align='left' color='#eaeaea' size='1.0'>You have to fly above <t color='#fdd785'>50m</t> to drop the cargo!</t>
    			<br />
    			<t align='left' color='#eaeaea' size='1.0'>Or hover below <t color='#fdd785'>2m</t> to unload the cargo!</t>
    			<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		"];
    	};
    
    	_Transporter removeAction _Action;
    	
    	if ((getpos _Transporter) select 2 <= 1.5) then {
    		UnloadCargo = true;
    		DoUnload = true;
    		_Transporter setVariable ["BTK_CargoDrop_ActionAdded", false];
    		_Transporter setVariable ["BTK_CargoDrop_TransporterLoaded", false];
    	}
    
    	else {
    		UnloadCargo = true;
    		DoDrop = true;
    		_Transporter setVariable ["BTK_CargoDrop_ActionAdded", false];
    		_Transporter setVariable ["BTK_CargoDrop_TransporterLoaded", false];
    	};
    };
    
    
    /******************************************************************************
    * Load in - Small
    ******************************************************************************/
    if ((_Selected == "LoadCargo") && (_SelectedTransporterTypeS)) exitWith {
    
    	//// Get nearest objects
    	_TransporterPos = _Transporter modelToWorld [0,0,0];
    	_ObjectsInRange = nearestObjects [_Transporter, _ObjectsS, 15];
    	
    	//// If no objects, exit with
    	if (count _ObjectsInRange < 1) exitWith {
    	
    		//// BTK_Hint - Nothing to load in range
    		hint parseText format ["
    			<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    			<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    			<t align='left' color='#eaeaea' size='1.0'>Nothing to load in range!<br /><br />Please move the object closer to the transporter.</t>
    			<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		"];
    	};
    	
    	//// Else, select the object from list
    	_Object = _ObjectsInRange select 0;
    	_Object setVariable ["BTK_CargoDrop_ObjectLoaded", true];
    	_Transporter setVariable ["BTK_CargoDrop_TransporterLoaded", true];
    	
    	
    	//// Get the object name
    	_ObjectName = getText (configFile >> "CfgVehicles" >> (typeOf _Object) >> "displayName");
    
    	//// BTK_Hint - Loading in...
    	hint parseText format ["
    	<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    	<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    	<t align='left' color='#eaeaea' size='1.0'>Loading <t color='#fdd785'>%1</t> into <t color='#fdd785'>%2</t> ...</t>
    	<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    	",_ObjectName,_TransporterName];
    
    	//// remove the Action
    	_Transporter removeAction _Action;
    
    	//// Animate ramp
    	sleep 1;
    	_Transporter animate ["ramp_top", 1];
    	_Transporter animate ["ramp_bottom", 1];
    
    	//// Attach object to transporter
    	sleep 3;
    	
    	//// Fix for F35
    	if (_Transporter isKindOf "F35_base") then {
    	_Object attachTo [_Transporter,[0,0.5,-2.5]];
    	} else {
    	_Object attachTo [_Transporter,[0,0.5,-1.6]];
    	};
    	
    	_Object enableSimulation false;
    		
    	//// Disable R3F
    	_Object setVariable ["R3F_LOG_disabled", true];
    
    	//// Animate ramp again
    	sleep 1;
    	_Transporter animate ["ramp_top", 0];
    	_Transporter animate ["ramp_bottom", 0];
    
    	//// BTK_Hint - Loaded
    	hint parseText format ["
    	<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    	<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    	<t align='left' color='#eaeaea' size='1.0'><t color='#fdd785'>%1</t> loaded.</t>
    	<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    	", _ObjectName,_TransporterName];
    
    	//// add unload/drop Action
    	_UnloadAction = _Transporter addAction [("<t color=""#fadfbe"">" + ("Unload cargo") + "</t>"),"BTK\Cargo Drop\Engine.sqf",["UnloadCargo"], 5];
    
    	//// Wait until unload
    	waitUntil {UnloadCargo || !(alive _Transporter) || !(alive _Object)};
    
    	
    	//// If destroyed
    	if (!(alive _Transporter) || !(alive _Object)) exitWith {};
    	
    
    	//// If unload
    	if (DoUnload) then {
    		
    		//// Reset variables
    		DoUnload = false;
    		DoDrop = false;
    		UnloadCargo = false;
    		_Object setVariable ["BTK_CargoDrop_ObjectLoaded", false];
    		_Object enableSimulation true;
    
    		//// BTK_Hint - Unloading...
    		hint parseText format ["
    		<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		<t align='left' color='#eaeaea' size='1.0'>Unloading <t color='#fdd785'>%1</t> from <t color='#fdd785'>%2</t> ...</t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		",_ObjectName,_TransporterName];
    
    		//// Animate ramp
    		sleep 1;
    		_Transporter animate ["ramp_top", 1];
    		_Transporter animate ["ramp_bottom", 1];
    
    		//// Detach object
    		sleep 3;
    		_Object attachTo [_Transporter,[12,0,0]];
    		sleep 0.2;
    		deTach _Object;
    		sleep 0.2;
    		_Object setPos [(getPos _Object select 0),(getPos _Object select 1),0];
    		
    		//// Enable R3F
    		_Object setVariable ["R3F_LOG_disabled", false];
    
    		//// Animate ramp again
    		sleep 1;
    		_Transporter animate ["ramp_top", 0];
    		_Transporter animate ["ramp_bottom", 0];
    		
    		//// BTK_Hint - Unloaded
    		hint parseText format ["
    		<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		<t align='left' color='#eaeaea' size='1.0'><t color='#fdd785'>%1</t> unloaded.</t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		",_ObjectName,_TransporterName];
    	};
    
    	//// If drop
    	if (DoDrop) then {
    
    		//// BTK_Hint - Dropping...
    		hint parseText format ["
    		<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		<t align='left' color='#eaeaea' size='1.0'>Dropping <t color='#fdd785'>%1</t> ...</t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		",_ObjectName,_TransporterName];
    
    		//// Reset variables
    		DoUnload = false;
    		DoDrop = false;
    		UnloadCargo = false;
    		_Object setVariable ["BTK_CargoDrop_ObjectLoaded", false];
    		_Object enableSimulation true;
    
    		//// Animate ramp
    		sleep 1;
    		_Transporter animate ["ramp_top", 1];
    		_Transporter animate ["ramp_bottom", 1];
    
    		//// Detach object (drop)
    		sleep 2;
    		_Object setVariable ["R3F_LOG_disabled", false];
    		deTach _Object;
    		_Object attachTo [_Transporter,[0,-21,0]];
    		sleep 0.1;
    		deTach _Object;
    		_Object setPos [(getPos _Object select 0),(getPos _Object select 1),(getPos _Object select 2)-6];
    
    		//// Create parachute and smoke
    		sleep 2;
    		_Parachute = "ParachuteBigWest" createVehicle position _Object;
    		_Parachute setPos (getPos _Object);
    		_BlueSmoke = "SmokeShellBlue" createVehicle position _Object;
    		_BlueSmoke setPos (getPos _Object);
    		_Object attachTo [_Parachute,[0,0,-1.5]];
    
    		//// Animate ramp again
    		sleep 1;
    		_Transporter animate ["ramp_top", 0];
    		_Transporter animate ["ramp_bottom", 0];
    		
    		//// BTK_Hint - Dropped
    		hint parseText format ["
    		<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		<t align='left' color='#eaeaea' size='1.0'><t color='#fdd785'>%1</t> dropped.</t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		",_ObjectName,_TransporterName];
    
    		//// Wait until ground reached
    		waitUntil {(getPos _Object select 2) < 2};
    		deTach _Object;
    		sleep 3;
    		_Object setPos [(getPos _Object select 0),(getPos _Object select 1),0.001];
    
    		//// Enable R3F
    		_Object setVariable ["R3F_LOG_disabled", false];
    		
    		//// Delete parachute and smoke
    		sleep 15;
    		deleteVehicle _BlueSmoke;
    		deleteVehicle _Parachute;
    	};
    };
    
    
    /******************************************************************************
    * Load in - Medium
    ******************************************************************************/
    if ((_Selected == "LoadCargo") && (_SelectedTransporterTypeM)) exitWith {
    
    	//// Get nearest objects
    	_TransporterPos = _Transporter modelToWorld [0,0,0];
    	_ObjectsInRange = nearestObjects [_Transporter, _ObjectsM, 15];
    	
    	//// If no objects, exit with
    	if (count _ObjectsInRange < 1) exitWith {
    	
    		//// BTK_Hint - Nothing to load in range
    		hint parseText format ["
    			<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    			<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    			<t align='left' color='#eaeaea' size='1.0'>Nothing to load in range!<br /><br />Please move the object closer to the transporter.</t>
    			<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		"];
    	};
    	
    	//// Else, select the object from list
    	_Object = _ObjectsInRange select 0;
    	_Object setVariable ["BTK_CargoDrop_ObjectLoaded", true];
    	_Transporter setVariable ["BTK_CargoDrop_TransporterLoaded", true];
    	
    	
    	//// Get the object name
    	_ObjectName = getText (configFile >> "CfgVehicles" >> (typeOf _Object) >> "displayName");
    
    	//// BTK_Hint - Loading in...
    	hint parseText format ["
    	<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    	<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    	<t align='left' color='#eaeaea' size='1.0'>Loading <t color='#fdd785'>%1</t> into <t color='#fdd785'>%2</t> ...</t>
    	<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    	",_ObjectName,_TransporterName];
    
    	//// remove the Action
    	_Transporter removeAction _Action;
    
    	//// Animate ramp
    	sleep 1;
    	_Transporter animate ["ramp_top", 1];
    	_Transporter animate ["ramp_bottom", 1];
    
    	//// Attach object to transporter
    	sleep 3;
    	_Object attachTo [_Transporter,[0,1,-0.3]];
    		
    	//// Disable R3F
    	_Object setVariable ["R3F_LOG_disabled", true];
    
    	//// Animate ramp again
    	sleep 1;
    	_Transporter animate ["ramp_top", 0];
    	_Transporter animate ["ramp_bottom", 0];
    
    	//// BTK_Hint - Loaded
    	hint parseText format ["
    	<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    	<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    	<t align='left' color='#eaeaea' size='1.0'><t color='#fdd785'>%1</t> loaded.</t>
    	<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    	", _ObjectName,_TransporterName];
    
    	//// add unload/drop Action
    	_UnloadAction = _Transporter addAction [("<t color=""#fadfbe"">" + ("Unload cargo") + "</t>"),"BTK\Cargo Drop\Engine.sqf",["UnloadCargo"], 5];
    
    	//// Wait until unload
    	waitUntil {UnloadCargo || !(alive _Transporter) || !(alive _Object)};
    
    	
    	//// If destroyed
    	if (!(alive _Transporter) || !(alive _Object)) exitWith {};
    	
    
    	//// If unload
    	if (DoUnload) then {
    		
    		//// Reset variables
    		DoUnload = false;
    		DoDrop = false;
    		UnloadCargo = false;
    		_Object setVariable ["BTK_CargoDrop_ObjectLoaded", false];
    
    		//// BTK_Hint - Unloading...
    		hint parseText format ["
    		<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		<t align='left' color='#eaeaea' size='1.0'>Unloading <t color='#fdd785'>%1</t> from <t color='#fdd785'>%2</t> ...</t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		",_ObjectName,_TransporterName];
    
    		//// Animate ramp
    		sleep 1;
    		_Transporter animate ["ramp_top", 1];
    		_Transporter animate ["ramp_bottom", 1];
    
    		//// Detach object
    		sleep 3;
    		_Object attachTo [_Transporter,[15,0,0]];
    		sleep 0.2;
    		deTach _Object;
    		sleep 0.2;
    		_Object setPos [(getPos _Object select 0),(getPos _Object select 1),0];
    		
    		//// Enable R3F
    		_Object setVariable ["R3F_LOG_disabled", false];
    
    		//// Animate ramp again
    		sleep 1;
    		_Transporter animate ["ramp_top", 0];
    		_Transporter animate ["ramp_bottom", 0];
    		
    		//// BTK_Hint - Unloaded
    		hint parseText format ["
    		<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		<t align='left' color='#eaeaea' size='1.0'><t color='#fdd785'>%1</t> unloaded.</t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		",_ObjectName,_TransporterName];
    	};
    
    	//// If drop
    	if (DoDrop) then {
    
    		//// BTK_Hint - Dropping...
    		hint parseText format ["
    		<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		<t align='left' color='#eaeaea' size='1.0'>Dropping <t color='#fdd785'>%1</t> ...</t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		",_ObjectName,_TransporterName];
    
    		//// Reset variables
    		DoUnload = false;
    		DoDrop = false;
    		UnloadCargo = false;
    		_Object setVariable ["BTK_CargoDrop_ObjectLoaded", false];
    
    		//// Animate ramp
    		sleep 1;
    		_Transporter animate ["ramp_top", 1];
    		_Transporter animate ["ramp_bottom", 1];
    
    		//// Detach object (drop)
    		sleep 2;
    		_Object setVariable ["R3F_LOG_disabled", false];
    		deTach _Object;
    		_Object attachTo [_Transporter,[0,-21,0]];
    		sleep 0.1;
    		deTach _Object;
    		_Object setPos [(getPos _Object select 0),(getPos _Object select 1),(getPos _Object select 2)-6];
    
    		//// Create parachute and smoke
    		sleep 2;
    		_Parachute = "ParachuteBigWest" createVehicle position _Object;
    		_Parachute setPos (getPos _Object);
    		_BlueSmoke = "SmokeShellBlue" createVehicle position _Object;
    		_BlueSmoke setPos (getPos _Object);
    		_Object attachTo [_Parachute,[0,0,-1.5]];
    
    		//// Animate ramp again
    		sleep 1;
    		_Transporter animate ["ramp_top", 0];
    		_Transporter animate ["ramp_bottom", 0];
    		
    		//// BTK_Hint - Dropped
    		hint parseText format ["
    		<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		<t align='left' color='#eaeaea' size='1.0'><t color='#fdd785'>%1</t> dropped.</t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		",_ObjectName,_TransporterName];
    
    		//// Wait until ground reached
    		waitUntil {(getPos _Object select 2) < 2};
    		deTach _Object;
    		sleep 3;
    		_Object setPos [(getPos _Object select 0),(getPos _Object select 1),0.001];
    
    		//// Enable R3F
    		_Object setVariable ["R3F_LOG_disabled", false];
    		
    		//// Delete parachute and smoke
    		sleep 15;
    		deleteVehicle _BlueSmoke;
    		deleteVehicle _Parachute;
    	};
    };
    
    
    /******************************************************************************
    * Load in - Large
    ******************************************************************************/
    if ((_Selected == "LoadCargo") && (_SelectedTransporterTypeL)) exitWith {
    
    	//// Get nearest objects
    	_TransporterPos = _Transporter modelToWorld [0,0,0];
    	_ObjectsInRange = nearestObjects [_Transporter, _ObjectsL, 15];
    	
    	//// If no objects, exit with
    	if (count _ObjectsInRange < 1) exitWith {
    	
    		//// BTK_Hint - Nothing to load in range
    		hint parseText format ["
    			<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    			<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    			<t align='left' color='#eaeaea' size='1.0'>Nothing to load in range!<br /><br />Please move the object closer to the transporter.</t>
    			<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		"];
    	};
    	
    	//// Else, select the object from list
    	_Object = _ObjectsInRange select 0;
    	_Object setVariable ["BTK_CargoDrop_ObjectLoaded", true];
    	_Transporter setVariable ["BTK_CargoDrop_TransporterLoaded", true];
    	
    	
    	//// Get the object name
    	_ObjectName = getText (configFile >> "CfgVehicles" >> (typeOf _Object) >> "displayName");
    
    	//// BTK_Hint - Loading in...
    	hint parseText format ["
    	<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    	<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    	<t align='left' color='#eaeaea' size='1.0'>Loading <t color='#fdd785'>%1</t> into <t color='#fdd785'>%2</t> ...</t>
    	<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    	",_ObjectName,_TransporterName];
    
    	//// remove the Action
    	_Transporter removeAction _Action;
    
    	//// Animate ramp
    	sleep 1;
    	_Transporter animate ["ramp_top", 1];
    	_Transporter animate ["ramp_bottom", 1];
    
    	//// Attach object to transporter
    	sleep 3;
    	
    	//// Chinook/Car fix
    	if ((_Transporter isKindOf "CH47_base_EP1") ) then {
    	if (_Object isKindOf "Car") then {
    		_Object attachTo [_Transporter,[0,1.5,-0.5]];
    	} else {
    		_Object attachTo [_Transporter,[0,1.4,-0.8]];
    	};
    	
    	} else {
    		_Object attachTo [_Transporter,[0,1.4,-0.2]];
    	};
    		
    	//// Disable R3F
    	_Object setVariable ["R3F_LOG_disabled", true];
    
    	//// Animate ramp again
    	sleep 1;
    	_Transporter animate ["ramp_top", 0];
    	_Transporter animate ["ramp_bottom", 0];
    
    	//// BTK_Hint - Loaded
    	hint parseText format ["
    	<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    	<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    	<t align='left' color='#eaeaea' size='1.0'><t color='#fdd785'>%1</t> loaded.</t>
    	<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    	", _ObjectName,_TransporterName];
    
    	//// add unload/drop Action
    	_UnloadAction = _Transporter addAction [("<t color=""#fadfbe"">" + ("Unload cargo") + "</t>"),"BTK\Cargo Drop\Engine.sqf",["UnloadCargo"], 5];
    
    	//// Wait until unload
    	waitUntil {UnloadCargo || !(alive _Transporter) || !(alive _Object)};
    
    	
    	//// If destroyed
    	if (!(alive _Transporter) || !(alive _Object)) exitWith {};
    	
    
    	//// If unload
    	if (DoUnload) then {
    		
    		//// Reset variables
    		DoUnload = false;
    		DoDrop = false;
    		UnloadCargo = false;
    		_Object setVariable ["BTK_CargoDrop_ObjectLoaded", false];
    
    		//// BTK_Hint - Unloading...
    		hint parseText format ["
    		<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		<t align='left' color='#eaeaea' size='1.0'>Unloading <t color='#fdd785'>%1</t> from <t color='#fdd785'>%2</t> ...</t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		",_ObjectName,_TransporterName];
    
    		//// Animate ramp
    		sleep 1;
    		_Transporter animate ["ramp_top", 1];
    		_Transporter animate ["ramp_bottom", 1];
    
    		//// Detach object
    		sleep 3;
    		_Object attachTo [_Transporter,[0,-20,0]];
    		sleep 0.2;
    		deTach _Object;
    		sleep 0.2;
    		_Object setPos [(getPos _Object select 0),(getPos _Object select 1),0];
    		
    		//// Enable R3F
    		_Object setVariable ["R3F_LOG_disabled", false];
    
    		//// Animate ramp again
    		sleep 1;
    		_Transporter animate ["ramp_top", 0];
    		_Transporter animate ["ramp_bottom", 0];
    		
    		//// BTK_Hint - Unloaded
    		hint parseText format ["
    		<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		<t align='left' color='#eaeaea' size='1.0'><t color='#fdd785'>%1</t> unloaded.</t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		",_ObjectName,_TransporterName];
    	};
    
    	//// If drop
    	if (DoDrop) then {
    
    		//// BTK_Hint - Dropping...
    		hint parseText format ["
    		<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		<t align='left' color='#eaeaea' size='1.0'>Dropping <t color='#fdd785'>%1</t> ...</t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		",_ObjectName,_TransporterName];
    
    		//// Reset variables
    		DoUnload = false;
    		DoDrop = false;
    		UnloadCargo = false;
    		_Object setVariable ["BTK_CargoDrop_ObjectLoaded", false];
    
    		//// Animate ramp
    		sleep 1;
    		_Transporter animate ["ramp_top", 1];
    		_Transporter animate ["ramp_bottom", 1];
    
    		//// Detach object (drop)
    		sleep 2;
    		_Object setVariable ["R3F_LOG_disabled", false];
    		deTach _Object;
    		_Object attachTo [_Transporter,[0,-21,0]];
    		sleep 0.1;
    		deTach _Object;
    		_Object setPos [(getPos _Object select 0),(getPos _Object select 1),(getPos _Object select 2)-6];
    
    		//// Create parachute and smoke
    		sleep 2;
    		_Parachute = "ParachuteBigWest" createVehicle position _Object;
    		_Parachute setPos (getPos _Object);
    		_BlueSmoke = "SmokeShellBlue" createVehicle position _Object;
    		_BlueSmoke setPos (getPos _Object);
    		_Object attachTo [_Parachute,[0,0,-1.5]];
    
    		//// Animate ramp again
    		sleep 1;
    		_Transporter animate ["ramp_top", 0];
    		_Transporter animate ["ramp_bottom", 0];
    		
    		//// BTK_Hint - Dropped
    		hint parseText format ["
    		<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		<t align='left' color='#eaeaea' size='1.0'><t color='#fdd785'>%1</t> dropped.</t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		",_ObjectName,_TransporterName];
    
    		//// Wait until ground reached
    		waitUntil {(getPos _Object select 2) < 2};
    		deTach _Object;
    		sleep 3;
    		_Object setPos [(getPos _Object select 0),(getPos _Object select 1),0.001];
    
    		//// Enable R3F
    		_Object setVariable ["R3F_LOG_disabled", false];
    		
    		//// Delete parachute and smoke
    		sleep 15;
    		deleteVehicle _BlueSmoke;
    		deleteVehicle _Parachute;
    	};
    };
    
    
    /******************************************************************************
    * Load in - Xtra Large
    ******************************************************************************/
    if ((_Selected == "LoadCargo") && (_SelectedTransporterTypeXL)) exitWith {
    
    	//// Get nearest objects
    	_TransporterPos = _Transporter modelToWorld [0,0,0];
    	_ObjectsInRange = nearestObjects [_Transporter, _ObjectsXL, 20];
    	
    	//// If no objects, exit with
    	if (count _ObjectsInRange < 1) exitWith {
    	
    		//// BTK_Hint - Nothing to load in range
    		hint parseText format ["
    			<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    			<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    			<t align='left' color='#eaeaea' size='1.0'>Nothing to load in range!<br /><br />Please move the object closer to the transporter.</t>
    			<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		"];
    	};
    	
    	//// Else, select the object from list
    	_Object = _ObjectsInRange select 0;
    	_Object setVariable ["BTK_CargoDrop_ObjectLoaded", true];
    	_Transporter setVariable ["BTK_CargoDrop_TransporterLoaded", true];
    	
    	
    	//// Get the object name
    	_ObjectName = getText (configFile >> "CfgVehicles" >> (typeOf _Object) >> "displayName");
    
    	//// BTK_Hint - Loading in...
    	hint parseText format ["
    	<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    	<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    	<t align='left' color='#eaeaea' size='1.0'>Loading <t color='#fdd785'>%1</t> into <t color='#fdd785'>%2</t> ...</t>
    	<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    	",_ObjectName,_TransporterName];
    
    	//// remove the Action
    	_Transporter removeAction _Action;
    
    	//// Animate ramp
    	sleep 1;
    	_Transporter animate ["ramp_top", 1];
    	_Transporter animate ["ramp_bottom", 1];
    
    	//// Attach object to transporter
    	sleep 3;
    	
    	//// Fix for cars/apc/trucks
    	if (_Object isKindOf "Car" || _Object isKindOf "Truck" || _Object isKindOf "Wheeled_APC") then {
    	
    		if (_Object isKindOf "Car") then {
    			_Object attachTo [_Transporter,[0,1,-2.1]];
    		};	
    		if (_Object isKindOf "Truck") then {
    			_Object attachTo [_Transporter,[0,1.4,-2.6]];
    		};
    		if (_Object isKindOf "Wheeled_APC") then {
    			_Object attachTo [_Transporter,[0,2.2,-1.8]];
    		};
    	}
    	else {
    		_Object attachTo [_Transporter,[0,1,-2.7]];
    	};
    		
    	//// Disable R3F
    	_Object setVariable ["R3F_LOG_disabled", true];
    
    	//// Animate ramp again
    	sleep 1;
    	_Transporter animate ["ramp_top", 0];
    	_Transporter animate ["ramp_bottom", 0];
    
    	//// BTK_Hint - Loaded
    	hint parseText format ["
    	<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    	<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    	<t align='left' color='#eaeaea' size='1.0'><t color='#fdd785'>%1</t> loaded.</t>
    	<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    	", _ObjectName,_TransporterName];
    
    	//// add unload/drop Action
    	_UnloadAction = _Transporter addAction [("<t color=""#fadfbe"">" + ("Unload cargo") + "</t>"),"BTK\Cargo Drop\Engine.sqf",["UnloadCargo"], 5];
    
    	//// Wait until unload
    	waitUntil {UnloadCargo || !(alive _Transporter) || !(alive _Object)};
    
    	
    	//// If destroyed
    	if (!(alive _Transporter) || !(alive _Object)) exitWith {};
    	
    
    	//// If unload
    	if (DoUnload) then {
    		
    		//// Reset variables
    		DoUnload = false;
    		DoDrop = false;
    		UnloadCargo = false;
    		_Object setVariable ["BTK_CargoDrop_ObjectLoaded", false];
    
    		//// BTK_Hint - Unloading...
    		hint parseText format ["
    		<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		<t align='left' color='#eaeaea' size='1.0'>Unloading <t color='#fdd785'>%1</t> from <t color='#fdd785'>%2</t> ...</t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		",_ObjectName,_TransporterName];
    
    		//// Animate ramp
    		sleep 1;
    		_Transporter animate ["ramp_top", 1];
    		_Transporter animate ["ramp_bottom", 1];
    
    		//// Detach object
    		sleep 3;
    		_Object attachTo [_Transporter,[0,-20,0]];
    		sleep 0.2;
    		deTach _Object;
    		sleep 0.2;
    		_Object setPos [(getPos _Object select 0),(getPos _Object select 1),0];
    		
    		//// Enable R3F
    		_Object setVariable ["R3F_LOG_disabled", false];
    
    		//// Animate ramp again
    		sleep 1;
    		_Transporter animate ["ramp_top", 0];
    		_Transporter animate ["ramp_bottom", 0];
    		
    		//// BTK_Hint - Unloaded
    		hint parseText format ["
    		<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		<t align='left' color='#eaeaea' size='1.0'><t color='#fdd785'>%1</t> unloaded.</t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		",_ObjectName,_TransporterName];
    	};
    
    	//// If drop
    	if (DoDrop) then {
    
    		//// BTK_Hint - Dropping...
    		hint parseText format ["
    		<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		<t align='left' color='#eaeaea' size='1.0'>Dropping <t color='#fdd785'>%1</t> ...</t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		",_ObjectName,_TransporterName];
    
    		//// Reset variables
    		DoUnload = false;
    		DoDrop = false;
    		UnloadCargo = false;
    		_Object setVariable ["BTK_CargoDrop_ObjectLoaded", false];
    
    		//// Animate ramp
    		sleep 1;
    		_Transporter animate ["ramp_top", 1];
    		_Transporter animate ["ramp_bottom", 1];
    
    		//// Detach object (drop)
    		sleep 2;
    		_Object setVariable ["R3F_LOG_disabled", false];
    		deTach _Object;
    		_Object attachTo [_Transporter,[0,-21,0]];
    		sleep 0.1;
    		deTach _Object;
    		_Object setPos [(getPos _Object select 0),(getPos _Object select 1),(getPos _Object select 2)-6];
    
    		//// Create parachute and smoke
    		sleep 2;
    		_Parachute = "ParachuteBigWest" createVehicle position _Object;
    		_Parachute setPos (getPos _Object);
    		_BlueSmoke = "SmokeShellBlue" createVehicle position _Object;
    		_BlueSmoke setPos (getPos _Object);
    		_Object attachTo [_Parachute,[0,0,-1.5]];
    
    		//// Animate ramp again
    		sleep 1;
    		_Transporter animate ["ramp_top", 0];
    		_Transporter animate ["ramp_bottom", 0];
    		
    		//// BTK_Hint - Dropped
    		hint parseText format ["
    		<t align='left' color='#e5b348' size='1.2'><t shadow='1'shadowColor='#000000'>Cargo Drop</t></t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		<t align='left' color='#eaeaea' size='1.0'><t color='#fdd785'>%1</t> dropped.</t>
    		<img color='#ffffff' image='BTK\Cargo Drop\Images\img_line_ca.paa' align='left' size='0.79' />
    		",_ObjectName,_TransporterName];
    
    		//// Wait until ground reached
    		waitUntil {(getPos _Object select 2) < 2};
    		deTach _Object;
    		sleep 3;
    		_Object setPos [(getPos _Object select 0),(getPos _Object select 1),0.001];
    
    		//// Enable R3F
    		_Object setVariable ["R3F_LOG_disabled", false];
    		
    		//// Delete parachute and smoke
    		sleep 15;
    		deleteVehicle _BlueSmoke;
    		deleteVehicle _Parachute;
    	};
    };
    

  7. @Uro1   Why did it render the proper weapon then? I get that the server doesn't have the files necessary but like I said, in the past I have never even been given the option to spawn in these weapons/vehciles

     

    @Jj808  Actually I think the ACR stuff would be kind of cool.  My server is sort of militarized so the more types of vehicles the better.

  8. Hey guys,
     
    I have been working on upgrading my server to 1.0.5.1 and build 125402 and pretty much got it all worked out. Its running stable with the latest 125548 client.
     
    I also run Infinistar, and while using it to test out scripts I found that there are more weapons, vehicles, and items in the game with the _ACR tag.
     
    Being curious I tried the weapons and they worked fine (rendered properly, killed zeds) although they threw a RPT error:
     

    3:24:36 Warning Message: Size: '/' not an array
    3:24:36 No owner
    3:24:36 No owner
    3:24:36 Cannot use magazine 20Rnd_762x51_DMR in muzzle CZ805_B_GL_ACR
    3:24:36 Cannot use magazine 20Rnd_762x51_DMR in muzzle M203Muzzle
    3:24:36 Cannot use magazine 20Rnd_762x51_DMR in muzzle M203Muzzle_AI
    3:24:51 Warning Message: No entry 'bin\config.bin/CfgMagazines.18Rnd_9x19_Phantom'.
    3:24:51 Warning Message: No entry '.picture'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.scope'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: Error: creating magazine 18Rnd_9x19_Phantom with scope=private
    3:24:51 Warning Message: No entry '.displayName'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.displayNameShort'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.nameSound'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.Library'.
    3:24:51 Warning Message: No entry '.libTextDesc'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.type'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.count'.
    
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.maxLeadSpeed'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.initSpeed'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.reloadAction'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.modelSpecial'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.ammo'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry 'bin\config.bin/CfgMagazines.18Rnd_9x19_Phantom'.
    3:24:51 Warning Message: No entry '.picture'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.scope'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: Error: creating magazine 18Rnd_9x19_Phantom with scope=private
    3:24:51 Warning Message: No entry '.displayName'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.displayNameShort'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.nameSound'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.Library'.
    3:24:51 Warning Message: No entry '.libTextDesc'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.type'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.count'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.maxLeadSpeed'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.initSpeed'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.reloadAction'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.modelSpecial'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.ammo'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry 'bin\config.bin/CfgMagazines.18Rnd_9x19_Phantom'.
    3:24:51 Warning Message: No entry '.picture'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.scope'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: Error: creating magazine 18Rnd_9x19_Phantom with scope=private
    3:24:51 Warning Message: No entry '.displayName'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.displayNameShort'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.nameSound'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.Library'.
    3:24:51 Warning Message: No entry '.libTextDesc'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.type'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.count'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.maxLeadSpeed'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.initSpeed'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.reloadAction'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.modelSpecial'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.ammo'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry 'bin\config.bin/CfgMagazines.18Rnd_9x19_Phantom'.
    3:24:51 Warning Message: No entry '.picture'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.scope'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: Error: creating magazine 18Rnd_9x19_Phantom with scope=private
    3:24:51 Warning Message: No entry '.displayName'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.displayNameShort'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.nameSound'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.Library'.
    3:24:51 Warning Message: No entry '.libTextDesc'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.type'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.count'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.maxLeadSpeed'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.initSpeed'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.reloadAction'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.modelSpecial'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.ammo'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: You cannot play/edit this mission; it is dependent on downloadable content that has been deleted.
    ca_communityconfigurationproject_e_ai_madeaiusegrenadelaunchers
    3:24:51 Warning Message: No entry 'bin\config.bin/CfgWeapons.CZ_75_SP_01_PHANTOM'.
    3:24:51 Warning Message: No entry '.scope'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: Error: creating weapon CZ_75_SP_01_PHANTOM with scope=private
    3:24:51 Warning Message: No entry '.displayName'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.nameSound'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.type'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.picture'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.Library'.
    3:24:51 Warning Message: No entry '.libTextDesc'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.model'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.simulation'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.fireLightDuration'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.fireLightIntensity'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.weaponLockDelay'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.weaponLockSystem'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.cmImmunity'.
    3:24:51 Warning Message: '/' is not a value
    3:24:51 Warning Message: No entry '.lockingTargetSound'.
    3:24:51 Warning Message: Size: '/' not an array
    3:24:51 Warning Message: No entry '.lockedTargetSound'.
    3:24:51 Warning Message: Size: '/' not an array
    3:24:51 Warning Message: No entry '.muzzles'.
    3:24:51 Warning Message: Size: '/' not an array
    3:24:51 No owner
    3:24:51 No owner
    3:24:51 Cannot use magazine 20Rnd_762x51_DMR in muzzle CZ805_B_GL_ACR
    3:24:51 Cannot use magazine 20Rnd_762x51_DMR in muzzle M203Muzzle
    3:24:51 Cannot use magazine 20Rnd_762x51_DMR in muzzle M203Muzzle_AI

     

    The vehicles returned RPT Errors as well, and did not spawn:

     

    3:29:40 Cannot create non-ai vehicle Mi24_D_CZ_ACR,

    3:29:41 Cannot create non-ai vehicle L39_2_ACR,

    3:29:46 Cannot create non-ai vehicle L159_ACR,

    3:31:32 Cannot create non-ai vehicle T810_ACR,

    3:31:34 Cannot create non-ai vehicle Pandur2_ACR,

     

    So now I am wondering what caused these to be visible? The new steam patch, or infinistar? 1.0.5.1?  Is it because I have ACR? If so, I have never seen them in the past.

    What would it take to make them actually work on the server?

     

    Any ideas?

     

  9. Hux, glad you got it sorted.

     

    HollowAddiction, did you set the gearset you added the hemp to in the spawn setup?

     

    xXNoRegsXx  it sounds like somethings installed incorectly.  Those files will be called from the default epoch PBOS if there is not one present in your custom files, so if it can't find them something larger is afoot.

  10. Hey guys I posted this in the WAI thread but the thread moved pretty quick, and it got panned so I figured I would post it in general help, figureing my issue is more scripting functions and less mission system.

     

    Basically, I am working on my first custom mission and am having some difficulties with boxes being destroyed or not deleting. The AI were blowing up the crates at the mission so I attempted to use the "addEventHandler ["HandleDamage", {false}]" function to god-mode them.  I went in and shot them to test, and they did not blow up.

     Then they would not delete, so I went back and added the "true" statement to them before the script went to delete them.  As of now the script will delete the _box item but not the _box2 item. 

     

    Now, players last night told me that the AI destroyed _box somehow or it poofed during the mission so I am not even sure if the god mode is working all the time, or if the server is cleaning it up for some reason.

    One player reports that if he looked in _box it would stay, but if he just ran up and triggered the mission _box would poof sometime during his fight with the para AI

     

    Full mission .sqf is below, anyone can feel free to use it. Hopefully someone can spot why the crates dissapear / won't disappear.
     

    //ITS A TRAP!!! By Sinatrad



    private ["_position","_box","_box2","_para","_missiontimeout","_cleanmission","_playerPresent","_starttime","_currenttime","_cleanunits","_rndnum"];



    _position = [getMarkerPos "center",0,5500,10,0,2000,0] call BIS_fnc_findSafePos;

    diag_log format["WAI: Mission IAT Started At %1",_position];





    _box = createVehicle ["BAF_VehicleBox",[(_position select 0),(_position select 1),0], [], 0, "CAN_COLLIDE"]; // Spawn first Box

    clearWeaponCargoGlobal _box; // Not sure if needed do boxes spawn empty like vehicles?

    clearmagazinecargoGlobal _box; // Not sure if needed do boxes spawn empty like vehicles?

    _box addMagazineCargoGlobal ["ItemDocument", 1]; // add document "the ambush note"

    _box addEventHandler ["HandleDamage", {false}]; // my attempt to add godmode to crate so AI do not blow it up



    // -=-=-=-= Inital AI =-=-=-=- //



    _rndnum = round (random 3) + 4;

    [[_position select 0, _position select 1, 0], //position

    _rndnum, //Number Of units

    1, //Skill level 0-1. Has no effect if using custom skills

    "Random", //Primary gun set number. "Random" for random weapon set.

    4, //Number of magazines

    "", //Backpack "" for random or classname here.

    "Bandit2_DZ", //Skin "" for random or classname here.

    "Random", //Gearset number. "Random" for random gear set.

    true

    ] call spawn_group;



    [[_position select 0, _position select 1, 0], //position

    5, //Number Of units

    1, //Skill level 0-1. Has no effect if using custom skills

    "Random", //Primary gun set number. "Random" for random weapon set.

    4, //Number of magazines

    "", //Backpack "" for random or classname here.

    "Bandit2_DZ", //Skin "" for random or classname here.

    "Random", //Gearset number. "Random" for random gear set.

    true

    ] call spawn_group;



    [[_position select 0, _position select 1, 0], //position

    5, //Number Of units

    1, //Skill level 0-1. Has no effect if using custom skills

    "Random", //Primary gun set number. "Random" for random weapon set.

    4, //Number of magazines

    "", //Backpack "" for random or classname here.

    "Bandit2_DZ", //Skin "" for random or classname here.

    "Random", //Gearset number. "Random" for random gear set.

    true

    ] call spawn_group;



    [[[(_position select 0), (_position select 1) + 10, 0],[(_position select 0) + 10, (_position select 1), 0]], //position(s) (can be multiple).

    "M2StaticMG", //Classname of turret

    0.8, //Skill level 0-1. Has no effect if using custom skills

    "Bandit2_DZ", //Skin "" for random or classname here.

    0, //Primary gun set number. "Random" for random weapon set. (not needed if ai_static_useweapon = False)

    2, //Number of magazines. (not needed if ai_static_useweapon = False)

    "", //Backpack "" for random or classname here. (not needed if ai_static_useweapon = False)

    "Random", //Gearset number. "Random" for random gear set. (not needed if ai_static_useweapon = False)

    true

    ] call spawn_static;



    [[[(_position select 0), (_position select 1) - 10, 0], [(_position select 0) - 10, (_position select 1), 0]], //position(s) (can be multiple).

    "Igla_AA_pod_East", //Classname of turret

    0.8, //Skill level 0-1. Has no effect if using custom skills

    "Bandit2_DZ", //Skin "" for random or classname here.

    0, //Primary gun set number. "Random" for random weapon set. (not needed if ai_static_useweapon = False)

    2, //Number of magazines. (not needed if ai_static_useweapon = False)

    "", //Backpack "" for random or classname here. (not needed if ai_static_useweapon = False)

    "Random", //Gearset number. "Random" for random gear set. (not needed if ai_static_useweapon = False)

    true

    ] call spawn_static;



    // GPK Patrol -- This is a test to see the viability of Vehicles over static guns, HMMWV Avenger anyone? //



    [[_position select 0, _position select 1, 0], //Position to patrol

    [(_position select 0) - 10, (_position select 1) - 10, 0], // Position to spawn at

    50, //Radius of patrol

    6, //Number of waypoints to give

    "HMMWV_M1151_M2_CZ_DES_EP1", //Classname of vehicle (make sure it has driver and gunner)

    1 //Skill level of units

    ] spawn vehicle_patrol;



    [_position,"Weapon cache"] execVM "\z\addons\dayz_server\WAI\missions\compile\markers.sqf";

    [nil,nil,rTitleText,"Bandits have obtained a weapon crate! Check your map for the location!", "PLAIN",10] call RE;



    // Mission Start/Timeout Info //



    _missiontimeout = true;

    _cleanmission = false;

    _playerPresent = false;

    _starttime = floor(time);

    while {_missiontimeout} do {

    sleep 5;

    _currenttime = floor(time);

    {if((isPlayer _x) AND (_x distance _position <= 150)) then {_playerPresent = true};}forEach playableUnits;

    if (_currenttime - _starttime >= wai_mission_timeout) then {_cleanmission = true;};

    if ((_playerPresent) OR (_cleanmission)) then {_missiontimeout = false;};

    };



    // Phase Two, Player gets within 5 meters of _box and the trap is sprung //



    if (_playerPresent) then {

    waitUntil

    {

    sleep 5;

    _playerPresent = false;

    {if((isPlayer _x) AND (_x distance _position <= 5)) then {_playerPresent = true};}forEach playableUnits;

    (_playerPresent)

    };

    diag_log format["WAI: Mission IAT 2nd Half Started At %1",_position];

    [nil,nil,rTitleText,"Bandits have sprung a trap at the Weapons Crate!", "PLAIN",10] call RE;



    // Heli's spawn a decent distance away and fly in, then drop their paratroopers. 250 Radius helps if the player attempts to bug out. //



    [[(_position select 0), (_position select 1), 0], //Position that units will be dropped by

    [(_position select 0) - 1000, (_position select 1) - 50, 150], //Starting position of the heli

    250, //Radius from drop position a player has to be to spawn chopper

    "Mi24_D", //Classname of chopper (Make sure it has 2 gunner seats!)

    8, //Number of units to be para dropped

    1, //Skill level 0-1 or skill array number if using custom skills "Random" for random Skill array.

    "Random", //Primary gun set number. "Random" for random weapon set.

    5, //Number of magazines

    "", //Backpack "" for random or classname here.

    "Bandit2_DZ", //Skin "" for random or classname here.

    "Random", //Gearset number. "Random" for random gear set.

    False //True: Heli will stay at position and fight. False: Heli will leave if not under fire.

    ] spawn heli_para;



    [[(_position select 0), (_position select 1), 0], //Position that units will be dropped by

    [(_position select 0) + 1500, (_position select 1) + 50, 100], //Starting position of the heli

    250, //Radius from drop position a player has to be to spawn chopper

    "Mi24_D", //Classname of chopper (Make sure it has 2 gunner seats!)

    8, //Number of units to be para dropped

    1, //Skill level 0-1 or skill array number if using custom skills "Random" for random Skill array.

    "Random", //Primary gun set number. "Random" for random weapon set.

    4, //Number of magazines

    "", //Backpack "" for random or classname here.

    "Bandit2_DZ", //Skin "" for random or classname here.

    "Random", //Gearset number. "Random" for random gear set.

    False //True: Heli will stay at position and fight. False: Heli will leave if not under fire.

    ] spawn heli_para;



    // Delay before real crate arrives //

    sleep 120;



    // Phase three, bandits drop in supplies for the paratroopers. I wish there was a kill requirement option so the players would have to kill the paratroopers first. Spawns _box2 on a chute //



    diag_log format["WAI: Mission IAT 2nd Half Ended At %1",_position];

    [nil,nil,rTitleText,"Additional Supplies are dropping at the Weapons Crate!", "PLAIN",10] call RE;



    _para = createVehicle ["ParachuteMediumEast",[(_position select 0),(_position select 1),(_position select 2) + 150],[], 0, "FLY"]; // Call Parachute

    _box2 = createVehicle ["BAF_VehicleBox",[(_position select 0),(_position select 1),(_position select 2) + 150], [], 0, "CAN_COLLIDE"]; // Call box

    [_box2] call Extra_Large_Gun_Box; // Fill box with goodies

    _box2 attachTo [_para, [0,0,3]]; // Attatch box to parachute [0,0,3] the 3 is the height in relation to the parachutes position I think

    _box2 addEventHandler ["HandleDamage", {false}]; // Godmode _box2



    // Wait until players get within 5 meters of _box2 to trip the mission as over. //

    waitUntil

    {

    sleep 5;

    _playerPresent = false;

    {if((isPlayer _x) AND (_x distance _box2 <= 5)) then {_playerPresent = true};}forEach playableUnits;

    (_playerPresent)

    };

    diag_log format["WAI: Mission IAT Ended At %1",_position];

    [nil,nil,rTitleText,"Survivors have defeated the Ambush!", "PLAIN",10] call RE;



    } else {

    clean_running_mission = True;

    _box addEventHandler ["HandleDamage", {true}]; //Disable? Godmode on _box

    deleteVehicle _box; //Delete _box

    _box2 addEventHandler ["HandleDamage", {true}]; //Disable? Godmode on _box2

    deleteVehicle _box2; //Delete _box2

    deleteVehicle _para; // Delete _para parachute



    {_cleanunits = _x getVariable "missionclean";

    if (!isNil "_cleanunits") then {

    switch (_cleanunits) do {

    case "ground" : {ai_ground_units = (ai_ground_units -1);};

    case "air" : {ai_air_units = (ai_air_units -1);};

    case "vehicle" : {ai_vehicle_units = (ai_vehicle_units -1);};

    case "static" : {ai_emplacement_units = (ai_emplacement_units -1);};

    };

    deleteVehicle _x;

    sleep 0.05;

    };

    } forEach allUnits;



    diag_log format["WAI: Mission IAT timed out At %1",_position];

    [nil,nil,rTitleText,"Survivors did not secure the Weapon Cache in time!", "PLAIN",10] call RE;

    };



    missionrunning = false;


     

     

    On a side note how would I script a requirement to wait for all AI to be killed before triggering the mission as over? In this mission it would be useful to have the players kill all of the final AI before the big crate parachutes in.

     

    My next step once this is sorted is to figure out how to have a C130 fly over the mission as the crate paradrops, figure out how to paradrop AI vehicle spawns, and figure out how to set custom waypoints for AI patrols.

     

     

    Thanks, Sinatrad

  11. Yep that was it that one " messing it up

     

    Now recomment :    _position = [getMarkerPos "center",0,5500,10,0,2000,0] call BIS_fnc_findSafePos;  //Then this gets changed to the text he said I will just comment it out and add the change under it//

     

    Becuase the mission is finding two locations for the same entry and it should work 

     

    Basically BIS_fnc_findSafePos is telling the system to find a safe position within the perameters of it's function [getMarkerPos "center",0,5500,10,0,2000,0]

     

    BIS_fnc_selectRandom is going to randomly select one of the static points from the array.

  12. Your having a case of modifying to many things at once and not being able to troubleshoot one issue at a time.

     

    Customspawns.sqf is just that, custom spawns used for AI areas and stuff. Not missions, so there will be no marker unless you add one. Adding Markers is pretty easy but worry about those after your missions are fixed.

     

    As far as not getting any missions that could be a issue elsewhere becuase unless you did other editing, to other files, missions should spawn.  Even if the one mission is busted eventually a different mission will spawn. The rest of the missions are in rotation so there would still be a chance of getting one of those over the weapons cache. So if no missions are spawning WAI is broken before it even gets to the missions.  To investigate this I would strongly suggest learning the power of the RPT log.  If read well it will tell you of any code errors, and when WAI spawns stuff from the customspawns.sqf, staticammoboxes.sqf, when missions start and end, and what is spawned for those missions. It goes a long way in tracking down all kinds of errors.

     

     

    Once thats sorted it would be good to focus on the one missions. To do this you have to edit your missioncfg.sqf  and change this section:

     

    // missions used when selecting the next random mission
    wai_missions = [
    "bandit_base",
    "armed_vehicle",
    "disabled_civchopper",
    "crash_spawner",
    "disabled_milchopper",
    "MV22",
    "weapon_cache",
    "mayors_mansion",
    "convoy",
    "C130_crash",
    "ems_cache",
    "medi_camp",
    "Ural"
    ];
     

    to this:
    wai_missions = ["weapon_cache"];

     

    either by deleting stuff or commenting it out.  That way the only mission that spawns will be the one your testing.

     

    You were not supposed to comment the line above there, I commented it out so you could compare that file to your weapons cache mission and see the differences.

  13. First, your custom spawns needs to look like this :


     

    //Custom Spawns file//
    
    //Custom group spawns Eg.
    
    [[3098.71,2476.33,0.001], //position
    4,                          //Number Of units
    1,                          //Skill level 0-1 or skill array number if using custom skills "Random" for random Skill array.
    "Random",                  //Primary gun set number. "Random" for random weapon set.
    4,                          //Number of magazines
    "",                          //Backpack "" for random or classname here.
    "Bandit2_DZ",              //Skin "" for random or classname here.
    "Random"                  //Gearset number. "Random" for random gear set.
    ] call spawn_group;
    
    //Place your custom group spawns below

    Notice that I commented out two lines that were basically instructions.  It should work with those changes.  Anything spawned in that SQF spawns as soon as the server starts, it has nothing to do with missions, or the timer. As soon as you start the server and log in you should see them there.

     

    The second half changes each mission file like so: Take a Weapons Crate mission for example:

     

     

    //Weapon Cache
    
    private ["_positionarray","_position","_box","_missiontimeout","_cleanmission","_playerPresent","_starttime","_currenttime","_cleanunits","_rndnum"]; // Add "_positionarray",
    
    
    //_position = [getMarkerPos "center",0,5500,10,0,2000,0] call BIS_fnc_findSafePos;  //Then this gets changed to the text he said I will just comment it out and add the change under it//
    
    _positionarray = [[17380.426,5279.2412,0],[8467.2363,7764.6978,0],[15444.671,8667.6758,0],[8463.8125,5510.5239,0],[16104.994,15535.804,0],[7729.2627,7001.7979,0],[15078.381,15698.128,0],[5759.5493,9423.253,0],[13809.14,19294.951,0],[6098.1333,8610.5947,0],[10285.479,19396.813,0],[4265.5854,7978.0996,0],[8594.7168,19659.965,0],[2260.0608,6925.2681,0],[12143.011,14925.385,0],[4775.9395,6315.7642,0],[12676.353,12593.693,0],[14468.995,10629.646,0],[8412.1973,3045.4038,0],[10173.31,5819.1787,0],[9473.5557,2013.2627,0],[9421.4414,5169.317,0],[9845.7949,3310.0532,0],[10864.61,620.55743,0]];
    _position = _positionarray call BIS_fnc_selectRandom;"
    
    diag_log format["WAI: Mission Weapon Cache Started At %1",_position];
    
    
    _box = createVehicle ["BAF_VehicleBox",[(_position select 0),(_position select 1),0], [], 0, "CAN_COLLIDE"];
    [_box] call Medium_Gun_Box;
    
    
    _rndnum = round (random 3) + 4;
    [[_position select 0, _position select 1, 0],                  //position
    _rndnum,                          //Number Of units
    1,                          //Skill level 0-1. Has no effect if using custom skills
    "Random",                  //Primary gun set number. "Random" for random weapon set.
    4,                          //Number of magazines
    "",                          //Backpack "" for random or classname here.
    "Bandit2_DZ",                          //Skin "" for random or classname here.
    "Random",                  //Gearset number. "Random" for random gear set.
    true
    ] call spawn_group;
    
    [[_position select 0, _position select 1, 0],                  //position
    4,                          //Number Of units
    1,                          //Skill level 0-1. Has no effect if using custom skills
    "Random",                  //Primary gun set number. "Random" for random weapon set.
    4,                          //Number of magazines
    "",                          //Backpack "" for random or classname here.
    "Bandit2_DZ",                          //Skin "" for random or classname here.
    "Random",                  //Gearset number. "Random" for random gear set.
    true
    ] call spawn_group;
    
    [[[(_position select 0), (_position select 1) + 10, 0],[(_position select 0) + 10, (_position select 1), 0]], //position(s) (can be multiple).
    "M2StaticMG",             //Classname of turret
    0.8,                      //Skill level 0-1. Has no effect if using custom skills
    "Bandit2_DZ",                          //Skin "" for random or classname here.
    0,                          //Primary gun set number. "Random" for random weapon set. (not needed if ai_static_useweapon = False)
    2,                          //Number of magazines. (not needed if ai_static_useweapon = False)
    "",                          //Backpack "" for random or classname here. (not needed if ai_static_useweapon = False)
    "Random",                  //Gearset number. "Random" for random gear set. (not needed if ai_static_useweapon = False)
    true
    ] call spawn_static;
    
    [_position,"Weapon cache"] execVM "\z\addons\dayz_server\WAI\missions\compile\markers.sqf";
    [nil,nil,rTitleText,"Bandits have obtained a weapon crate! Check your map for the location!", "PLAIN",10] call RE;
    
    _missiontimeout = true;
    _cleanmission = false;
    _playerPresent = false;
    _starttime = floor(time);
    while {_missiontimeout} do {
        sleep 5;
        _currenttime = floor(time);
        {if((isPlayer _x) AND (_x distance _position <= 150)) then {_playerPresent = true};}forEach playableUnits;
        if (_currenttime - _starttime >= wai_mission_timeout) then {_cleanmission = true;};
        if ((_playerPresent) OR (_cleanmission)) then {_missiontimeout = false;};
    };
    if (_playerPresent) then {
        waitUntil
        {
            sleep 5;
            _playerPresent = false;
            {if((isPlayer _x) AND (_x distance _position <= 30)) then {_playerPresent = true};}forEach playableUnits;
            (_playerPresent)
        };
        diag_log format["WAI: Mission Weapon cache Ended At %1",_position];
        [nil,nil,rTitleText,"Survivors have secured the Weapon Cache!", "PLAIN",10] call RE;
    } else {
        clean_running_mission = True;
        deleteVehicle _box;
        {_cleanunits = _x getVariable "missionclean";
        if (!isNil "_cleanunits") then {
            switch (_cleanunits) do {
                case "ground" :  {ai_ground_units = (ai_ground_units -1);};
                case "air" :     {ai_air_units = (ai_air_units -1);};
                case "vehicle" : {ai_vehicle_units = (ai_vehicle_units -1);};
                case "static" :  {ai_emplacement_units = (ai_emplacement_units -1);};
            };
            deleteVehicle _x;
            sleep 0.05;
        };    
        } forEach allUnits;
        
        diag_log format["WAI: Mission Weapon cache timed out At %1",_position];
        [nil,nil,rTitleText,"Survivors did not secure the Weapon Cache in time!", "PLAIN",10] call RE;
    };
    
    missionrunning = false;
    

     

    And you would make that change to all the missions.  You can also go in and find new poisitons in the world and add them to the array later.  Just remember [X,Y,Z] and Z is always 0 (level with ground)

  14. Hello everyone, I am working on my first custom mission and am having some difficulties with boxes being destroyed or not deleting. The AI were blowing up the crates at the mission so I attempted to use the "addEventHandler ["HandleDamage", {false}]" function to god-mode them.  Then they would not delete, so I went back and added the "true" statement to them before the script went to delete them.  As of now the script will delete the _box item but not the _box2 item.

     

    On a side note how hard would it be to port over DZMS's functions to wait for all AI to be killed before triggering the mission as over?  In this mission it would be useful to have the players kill all of the final AI before the big crate parachutes in.

     

    WAI is by far my favorite system, and really could be a one system install for servers.  If one was able to take the dynamic patrols, launchers, and dynamic spawning AI of DZAI, the multiple simultaneous missions, static position option, and exclusion zones from DZMS and combine them with WAI's unique features it would be amazing.

     

    Full mission .sqf is below, anyone can feel free to use it. Hopefully someone can spot why the crate won't disappear.
     

    //ITS A TRAP!!! By Sinatrad
    
    
    
    private ["_position","_box","_box2","_para","_missiontimeout","_cleanmission","_playerPresent","_starttime","_currenttime","_cleanunits","_rndnum"];
    
    
    
    _position = [getMarkerPos "center",0,5500,10,0,2000,0] call BIS_fnc_findSafePos;
    
    diag_log format["WAI: Mission IAT Started At %1",_position];
    
    
    
    
    
    _box = createVehicle ["BAF_VehicleBox",[(_position select 0),(_position select 1),0], [], 0, "CAN_COLLIDE"]; // Spawn first Box
    
    clearWeaponCargoGlobal _box; // Not sure if needed do boxes spawn empty like vehicles?
    
    clearmagazinecargoGlobal _box; // Not sure if needed do boxes spawn empty like vehicles?
    
    _box addMagazineCargoGlobal ["ItemDocument", 1]; // add document "the ambush note"
    
    _box addEventHandler ["HandleDamage", {false}]; // my attempt to add godmode to crate so AI do not blow it up
    
    
    
    // -=-=-=-= Inital AI =-=-=-=- //
    
    
    
    _rndnum = round (random 3) + 4;
    
    [[_position select 0, _position select 1, 0], //position
    
    _rndnum, //Number Of units
    
    1, //Skill level 0-1. Has no effect if using custom skills
    
    "Random", //Primary gun set number. "Random" for random weapon set.
    
    4, //Number of magazines
    
    "", //Backpack "" for random or classname here.
    
    "Bandit2_DZ", //Skin "" for random or classname here.
    
    "Random", //Gearset number. "Random" for random gear set.
    
    true
    
    ] call spawn_group;
    
    
    
    [[_position select 0, _position select 1, 0], //position
    
    5, //Number Of units
    
    1, //Skill level 0-1. Has no effect if using custom skills
    
    "Random", //Primary gun set number. "Random" for random weapon set.
    
    4, //Number of magazines
    
    "", //Backpack "" for random or classname here.
    
    "Bandit2_DZ", //Skin "" for random or classname here.
    
    "Random", //Gearset number. "Random" for random gear set.
    
    true
    
    ] call spawn_group;
    
    
    
    [[_position select 0, _position select 1, 0], //position
    
    5, //Number Of units
    
    1, //Skill level 0-1. Has no effect if using custom skills
    
    "Random", //Primary gun set number. "Random" for random weapon set.
    
    4, //Number of magazines
    
    "", //Backpack "" for random or classname here.
    
    "Bandit2_DZ", //Skin "" for random or classname here.
    
    "Random", //Gearset number. "Random" for random gear set.
    
    true
    
    ] call spawn_group;
    
    
    
    [[[(_position select 0), (_position select 1) + 10, 0],[(_position select 0) + 10, (_position select 1), 0]], //position(s) (can be multiple).
    
    "M2StaticMG", //Classname of turret
    
    0.8, //Skill level 0-1. Has no effect if using custom skills
    
    "Bandit2_DZ", //Skin "" for random or classname here.
    
    0, //Primary gun set number. "Random" for random weapon set. (not needed if ai_static_useweapon = False)
    
    2, //Number of magazines. (not needed if ai_static_useweapon = False)
    
    "", //Backpack "" for random or classname here. (not needed if ai_static_useweapon = False)
    
    "Random", //Gearset number. "Random" for random gear set. (not needed if ai_static_useweapon = False)
    
    true
    
    ] call spawn_static;
    
    
    
    [[[(_position select 0), (_position select 1) - 10, 0], [(_position select 0) - 10, (_position select 1), 0]], //position(s) (can be multiple).
    
    "Igla_AA_pod_East", //Classname of turret
    
    0.8, //Skill level 0-1. Has no effect if using custom skills
    
    "Bandit2_DZ", //Skin "" for random or classname here.
    
    0, //Primary gun set number. "Random" for random weapon set. (not needed if ai_static_useweapon = False)
    
    2, //Number of magazines. (not needed if ai_static_useweapon = False)
    
    "", //Backpack "" for random or classname here. (not needed if ai_static_useweapon = False)
    
    "Random", //Gearset number. "Random" for random gear set. (not needed if ai_static_useweapon = False)
    
    true
    
    ] call spawn_static;
    
    
    
    // GPK Patrol -- This is a test to see the viability of Vehicles over static guns, HMMWV Avenger anyone? //
    
    
    
    [[_position select 0, _position select 1, 0], //Position to patrol
    
    [(_position select 0) - 10, (_position select 1) - 10, 0], // Position to spawn at
    
    50, //Radius of patrol
    
    6, //Number of waypoints to give
    
    "HMMWV_M1151_M2_CZ_DES_EP1", //Classname of vehicle (make sure it has driver and gunner)
    
    1 //Skill level of units
    
    ] spawn vehicle_patrol;
    
    
    
    [_position,"Weapon cache"] execVM "\z\addons\dayz_server\WAI\missions\compile\markers.sqf";
    
    [nil,nil,rTitleText,"Bandits have obtained a weapon crate! Check your map for the location!", "PLAIN",10] call RE;
    
    
    
    // Mission Start/Timeout Info //
    
    
    
    _missiontimeout = true;
    
    _cleanmission = false;
    
    _playerPresent = false;
    
    _starttime = floor(time);
    
    while {_missiontimeout} do {
    
    sleep 5;
    
    _currenttime = floor(time);
    
    {if((isPlayer _x) AND (_x distance _position <= 150)) then {_playerPresent = true};}forEach playableUnits;
    
    if (_currenttime - _starttime >= wai_mission_timeout) then {_cleanmission = true;};
    
    if ((_playerPresent) OR (_cleanmission)) then {_missiontimeout = false;};
    
    };
    
    
    
    // Phase Two, Player gets within 5 meters of _box and the trap is sprung //
    
    
    
    if (_playerPresent) then {
    
    waitUntil
    
    {
    
    sleep 5;
    
    _playerPresent = false;
    
    {if((isPlayer _x) AND (_x distance _position <= 5)) then {_playerPresent = true};}forEach playableUnits;
    
    (_playerPresent)
    
    };
    
    diag_log format["WAI: Mission IAT 2nd Half Started At %1",_position];
    
    [nil,nil,rTitleText,"Bandits have sprung a trap at the Weapons Crate!", "PLAIN",10] call RE;
    
    
    
    // Heli's spawn a decent distance away and fly in, then drop their paratroopers. 250 Radius helps if the player attempts to bug out. //
    
    
    
    [[(_position select 0), (_position select 1), 0], //Position that units will be dropped by
    
    [(_position select 0) - 1000, (_position select 1) - 50, 150], //Starting position of the heli
    
    250, //Radius from drop position a player has to be to spawn chopper
    
    "Mi24_D", //Classname of chopper (Make sure it has 2 gunner seats!)
    
    8, //Number of units to be para dropped
    
    1, //Skill level 0-1 or skill array number if using custom skills "Random" for random Skill array.
    
    "Random", //Primary gun set number. "Random" for random weapon set.
    
    5, //Number of magazines
    
    "", //Backpack "" for random or classname here.
    
    "Bandit2_DZ", //Skin "" for random or classname here.
    
    "Random", //Gearset number. "Random" for random gear set.
    
    False //True: Heli will stay at position and fight. False: Heli will leave if not under fire.
    
    ] spawn heli_para;
    
    
    
    [[(_position select 0), (_position select 1), 0], //Position that units will be dropped by
    
    [(_position select 0) + 1500, (_position select 1) + 50, 100], //Starting position of the heli
    
    250, //Radius from drop position a player has to be to spawn chopper
    
    "Mi24_D", //Classname of chopper (Make sure it has 2 gunner seats!)
    
    8, //Number of units to be para dropped
    
    1, //Skill level 0-1 or skill array number if using custom skills "Random" for random Skill array.
    
    "Random", //Primary gun set number. "Random" for random weapon set.
    
    4, //Number of magazines
    
    "", //Backpack "" for random or classname here.
    
    "Bandit2_DZ", //Skin "" for random or classname here.
    
    "Random", //Gearset number. "Random" for random gear set.
    
    False //True: Heli will stay at position and fight. False: Heli will leave if not under fire.
    
    ] spawn heli_para;
    
    
    
    // Delay before real crate arrives //
    
    sleep 120;
    
    
    
    // Phase three, bandits drop in supplies for the paratroopers. I wish there was a kill requirement option so the players would have to kill the paratroopers first. Spawns _box2 on a chute //
    
    
    
    diag_log format["WAI: Mission IAT 2nd Half Ended At %1",_position];
    
    [nil,nil,rTitleText,"Additional Supplies are dropping at the Weapons Crate!", "PLAIN",10] call RE;
    
    
    
    _para = createVehicle ["ParachuteMediumEast",[(_position select 0),(_position select 1),(_position select 2) + 150],[], 0, "FLY"]; // Call Parachute
    
    _box2 = createVehicle ["BAF_VehicleBox",[(_position select 0),(_position select 1),(_position select 2) + 150], [], 0, "CAN_COLLIDE"]; // Call box
    
    [_box2] call Extra_Large_Gun_Box; // Fill box with goodies
    
    _box2 attachTo [_para, [0,0,3]]; // Attatch box to parachute [0,0,3] the 3 is the height in relation to the parachutes position I think
    
    _box2 addEventHandler ["HandleDamage", {false}]; // Godmode _box2
    
    
    
    // Wait until players get within 5 meters of _box2 to trip the mission as over. //
    
    waitUntil
    
    {
    
    sleep 5;
    
    _playerPresent = false;
    
    {if((isPlayer _x) AND (_x distance _box2 <= 5)) then {_playerPresent = true};}forEach playableUnits;
    
    (_playerPresent)
    
    };
    
    diag_log format["WAI: Mission IAT Ended At %1",_position];
    
    [nil,nil,rTitleText,"Survivors have defeated the Ambush!", "PLAIN",10] call RE;
    
    
    
    } else {
    
    clean_running_mission = True;
    
    _box addEventHandler ["HandleDamage", {true}]; //Disable? Godmode on _box
    
    deleteVehicle _box; //Delete _box
    
    _box2 addEventHandler ["HandleDamage", {true}]; //Disable? Godmode on _box2
    
    deleteVehicle _box2; //Delete _box2
    
    deleteVehicle _para; // Delete _para parachute
    
    
    
    {_cleanunits = _x getVariable "missionclean";
    
    if (!isNil "_cleanunits") then {
    
    switch (_cleanunits) do {
    
    case "ground" : {ai_ground_units = (ai_ground_units -1);};
    
    case "air" : {ai_air_units = (ai_air_units -1);};
    
    case "vehicle" : {ai_vehicle_units = (ai_vehicle_units -1);};
    
    case "static" : {ai_emplacement_units = (ai_emplacement_units -1);};
    
    };
    
    deleteVehicle _x;
    
    sleep 0.05;
    
    };
    
    } forEach allUnits;
    
    
    
    diag_log format["WAI: Mission IAT timed out At %1",_position];
    
    [nil,nil,rTitleText,"Survivors did not secure the Weapon Cache in time!", "PLAIN",10] call RE;
    
    };
    
    
    
    missionrunning = false;
    
    
    
    

     

    My next step once this is sorted is to figure out how to have a C130 fly over the mission as the crate paradrops, figure out how to paradrop AI vehicle spawns, and figure out how to set custom waypoints for AI patrols.

     

    Thanks, Sinatrad

  15. Well thats a revelation about the comments...good to know.

    About adding static spawns, will that just be in addition to the missions that already spawn?

    I basically just want to add coords.

    I'm happy with the default missions, I just want to move them to different places.

    I think I understand how to get coords. I looked at the database & found it. Just have to test it with actual mission. Making a custom mission looks a bit over my head right now, but interesting. What I really want is to make the default missions sometimes spawn in places I set coordinates to. Is this not possible?

    Thanks for those links. I'm going to read up on those threads.

    I'll try out the heli & vehicle patrols.

    1. Yes Static spawns are in addition to the missions that already spawn.  Everytime your server starts it will spawn all of the stuff located in the customspawns.sqf and staticammoboxes.sqf

    2. If you want to change coords to the missions There are three ways.  The way that the guys i listed above do it, which requires changing every mission (in reality adding the location array to every mission), or the theoretical way DZMS does it, where you would list all of your static coords in say, the missioncfg.sqf and then call a random entry from that array for the location.  I say theoretical becuase I am sure it could be done, but I'm just not that good. Way three would be to try  changing the BIS_fnc_findSafePos information in each mission. Check out this thread I have never used Tavinia but it seems like this is a pretty common issue with it.

  16. Hey Hux.

     

    First the easy Questions: the /* and */ are long form comments for commenting out whole blocks of script, whereas the // just comments out the information after the // on that line.  Also, WAI currently only has Heli's and Vehicle Patrols during missions, or static spawns unlike other missions systems.  Hopefully in the future we can get a feature like DZAI's in WAI becuase it would streamline a lot of stuff.   Until then you can add static spawns like was said above.

     

    Now the more difficult one, 

     

    From what you have said above I can glean that your running Tavinia, you want to change where missions pop up, and you would like the missions to spawn at random.  You also need to find a place to get coordinates. 

     

    To get coordinates you can either use the method jackal40 said, or get a debug panel with coordinates in it.  I saw a guy who posted a simple script for one somewhere but for the life of me I cannot find it.  I use Infinistar, which comes with one built in.

     

    To get the missions to spawn randomly, your best bet is to create a mission and add it to the queue for WAI.  That way it will spawn at random from the array of missions WAI has. 

    Good info on creating the mission can be found in this thread or

     

    While building the mission, you can setup where the mission spawns.  Page two of the above thread has some info as well as

     

    hope that helps.

×
×
  • Create New...