Hendo/Sandbox – User

From Bohemia Interactive Community
Jump to navigation Jump to search
No edit summary
No edit summary
Line 2: Line 2:


[[Hendo:Modeling|Modeling tips, links, and tutorials]]
[[Hendo:Modeling|Modeling tips, links, and tutorials]]
== VBS2 ==
[[Hendo:VBS2Specific|VBS2 Specific Stuff]]


== Links ==
== Links ==


=== Projects ===
=== Projects ===

Revision as of 12:49, 15 September 2015

Modeling

Modeling tips, links, and tutorials

Links

Projects

GetAListOfEntityIDs

HowTo

Make Pilot fly to waypoints

Scripting

Multiplayer

Multiplayer Scripting

Debugging

hint format["Hello %1",player]

Tools

ScriptEdit IDE

Links

Hooahman's_Sandbox

SQF Syntax]

Scripting Tutorial]

Event Driven Architecture

Script as threads

Bunch of scripts

VBS2 specific script info (OLD)

Event scripts

Nice third-party scripting blog

script example

by How To (i.e. CAS)

| Team and Local Variables

Example Scripts

Tail Camera (with Bank)

Note the reciprocal math:

#include "\vbs2\headers\function_library.hpp" 


If (local rex) then {

	fgh2050 animate ["Trunk",1];
	//fgh2050 action ["OpenTrunk", fgh2050];
	
	_forever = true;

	_locationPosition = GetPos fgh2050;

	_cam = "seagull" camCreate (position  fgh2050);
	_cam cameraEffect["internal","FRONT"];

		
	_grp = group _cam;

	selectPlayer _cam;

	while {(_forever)} do {
		
		_locationPosition = fgh2050 modelToWorld [0,-4.5,1.5];	
		//_locationPosition = fgh2050 modelToWorld [0,5.9,2.5];	//CPG EYES
		_targetPosition = fgh2050 modelToWorld [0,100,0];	
		_cam SetPos _locationPosition;		
		
		_fgh2050PB = fgh2050 call fn_vbs_getPitchBank;
		_fgh2050Dir = getDir fgh2050;
		_cam setDir _fgh2050Dir+180;
		myPitch = _fgh2050PB select 0;
		myBank = _fgh2050PB select 1;
		myPitch = -1 * myPitch-5;
		myBank = -1 * myBank;
		
		//hint "my pitch and bank ";
		//hint format["pitch %1, bank %2",myPitch, myBank];
		
		[_cam, myPitch, myBank] call fn_vbs_setPitchBank;
		
		_cam CamCommit 0;
		sleep 0.005;
		showCinemaBorder false
		

	};
}

Nose Camera (with Bank)

Here's a script that will put the player on the nose of the apache.

To use:

1. Make a mission with a token player on the ground, an an apache w/ AI crew

2. Save the mission

3. Find the mission folder in My Documents/VBS2/mpmission/the_new_mission

4. Create a new sqf filed (text) named player.sqf

5. Save the file

6. In the initialization text box for the player, place:

call {apache execVM "player.sqf";}

Tested: VBS2 v1.23

Note: this script uses VBS2 functions (see header below). You may be able to modify use of the fn_vbs_setPitchBankcommand with something that works in ARMA (camSetBank).


#include "\vbs2\headers\function_library.hpp" 

_forever = true;

_locationPosition = GetPos apache;

_cam = "seagull" camCreate (position  apache);
_cam cameraEffect["internal","back"];


_grp = group _cam;

selectPlayer _cam;

while {(_forever)} do {
	
	//_locationPosition = apache modelToWorld [0,3.8,2.0];	//CPG EYES
	_locationPosition = apache modelToWorld [0,5.9,2.0];	//CPG EYES
	_targetPosition = apache modelToWorld [0,100,0];	
	_cam SetPos _locationPosition;		
	
	_apachePB = apache call fn_vbs_getPitchBank;
	_apacheDir = getDir apache;
	_cam setDir _apacheDir;
	[_cam, _apachePB select 0, _apachePB select 1] call fn_vbs_setPitchBank;
	
	_cam CamCommit 0;
	sleep 0.005;
	

};

Nose Camera (No Bank)

This script place a camera on the nose of an apache.

To use:

1. Make a mission with a token player on the ground, an an apache w/ AI crew

2. Save the mission

3. Find the mission folder in My Documents/VBS2/mpmission/the_new_mission

4. Create a new sqf filed (text) named apache.txt

5. Save the file

6. In the initialization text box for the apache, place:

call {apache execVM "apache.sqf";}


Tested w/ VBS2 1.23


#include "\vbs2\headers\function_library.hpp" 

_forever = true;

_locationPosition = GetPos apache;

_camera = "camera" camcreate _locationPosition;
_camera cameraEffect["internal","back"];
//_camera CamSetDir 0;
_camera CamSetFOV 1;


_camera camSetTarget _locationPosition;
//_camera CamSetPos [_locationPosition Select 0,(_locationPosition Select 1) + 2, 5];
_camera CamSetPos _locationPosition;
_camera CamSetFOV 0.7;
_camera CamCommit 0;


while {(_forever)} do {
	
	_locationPosition = GetPos apache;
	_locationPosition = apache modelToWorld [0,6,2];
	_targetPosition = apache modelToWorld [0,100,0];	
	_camera camsettarget _targetPosition;
	_camera CamSetPos _locationPosition;
	_camera CamCommit 0;
	
	sleep 0.005;
	

};

Notes:

 * For the life of me I could not control the bank angle of the camera.  Tried to use CamSetBank but no dice!

UAV Shadow

_forever = true;
while {(_forever)} do {
	_pos = position player;
	_x = 100+(_pos select 0);
	_y = (_pos select 1);
	_z = 1000+(_pos select 2);
	_dest = [_x,_y,_z];
	uav_1 flyInHeight 33;	
	uav_1 setDestination [_dest, "LeaderPlanned", true];
	_wPosArray = waypoints uav_1;
	hint format ["uav has %1 waypoint..%2",(count _wPosArray), _wPosArray];
	sleep 1;
};

Melee

/*

Purpose: Trigger demo

Preconditions:  

- Create a T72 platoon 
- Create an A10 team
- Create a playable USMC marine
- Create a Trigger where you want the ambush

Activator:  trigger

Author:  Henderson


*/

//Feedback on script start
hint "Fly Started!";

_grp = group player;

//Create a tank
_myTank1 = "M1Abrams" createVehicle (position player);

//Create a driver
//See: http://community.bistudio.com/wiki/VBS2:_CfgVehicles
"SquadLeaderW" createUnit [position player, _grp, "pilot = this ;"];

//Place them in the tank
pilot action ["getInDriver", _myTank1];
player action ["getInGunner", _myTank1];

//Create a tank
_myTank2 = "M1Abrams" createVehicle (position player);

//Create a driver
//See: http://community.bistudio.com/wiki/VBS2:_CfgVehicles
"SquadLeaderW" createUnit [position player, _grp, "pilot2 = this ;"];
"SquadLeaderW" createUnit [position player, _grp, "gunner2 = this ;"];

//Place them in the tank
pilot2 action ["getInDriver", _myTank2];
gunner2 action ["getInGunner", _myTank2];


//Cue the A10s
hog commandMove (position player); 




Killer AH1Z

/*

Purpose: Have A1Z engage player

Preconditions:  A1Z (snake) spawn

Activator:  snake

Author:  Henderson

TO USE:

Save this file in C:\Documents and Settings\user\My Documents\VBS2\mpmissions\missionname\
Make an M1A1 and name it player
Make an AH1Z and name it snake
	- use the following initialization script for snake
	
	 call {player execVM "snake.sqf";}


Run like the dickens!

*/


//Feedback on script start
hint "Snake Started!";
this flyInHeight 200; 


while {alive player} do 
{
	snake doMove getPos player;
	snake doTarget player;
	//hsnake selectWeapon "HellfireLauncher";
	snake doFire player;	
	sleep 1;
};
hint "Snake killed player!";


AH6

here