Results 1 to 7 of 7

Thread: Spectate script: 1st Person?

  1. #1

    Spectate script: 1st Person?

    Hi, folks,

    Which spectate script includes the 1st-person and missile-cam views? I haven't been able to find it. Thanks!

    Edit: I'm using Kegetys' 1.2 and I don't see those views in it.

    Edit 2: The only reason I'm looking for this version is 1st-person is the only way I know to have night-vision while spectating. If anyone knows how to enable NV for the other views, I'd be more interested in that.
    Last edited by Anguis; Mar 29 2011 at 19:30.

  2. #2
    In FDF mod there's most up-to-date version.
    -------------

  3. #3
    Thanks, man! I've found the nextcam and onplayerrespawnasseagull scripts in the dta folder, but I haven't found the description.ext text. Is it not needed in this version? (I'd use yours, but I need the seagull - for photos.)
    Last edited by Anguis; Mar 30 2011 at 04:16.

  4. #4
    hi Anguis,

    Here's the most uptodate spectate we are using on [LOL]. There is all the view you want here.

    description.ext
    Code:
    //########################################################################################
    //                                    SPECTATOR SCRIPT 1.4
    //########################################################################################
    // Control types
    #define CT_STATIC					0
    #define CT_BUTTON					1
    #define CT_EDIT						2
    #define CT_SLIDER					3
    #define CT_COMBO					4
    #define CT_LISTBOX					5
    #define CT_TOOLBOX					6
    #define CT_CHECKBOXES					7
    #define CT_PROGRESS					8
    #define CT_HTML						9
    #define CT_STATIC_SKEW					10
    #define CT_ACTIVETEXT					11
    #define CT_TREE						12
    #define CT_3DSTATIC					20
    #define CT_3DACTIVETEXT					21
    #define CT_3DLISTBOX					22
    #define CT_3DHTML					23
    #define CT_3DSLIDER					24
    #define CT_3DEDIT					25
    #define CT_OBJECT					80
    #define CT_OBJECT_ZOOM					81
    #define CT_OBJECT_CONTAINER				82
    #define CT_OBJECT_CONT_ANIM				83
    #define CT_USER						99
    
    // Static styles
    #define ST_HPOS						0x0F
    #define ST_LEFT						0
    #define ST_RIGHT						1
    #define ST_CENTER					2
    #define ST_UP						3
    #define ST_DOWN						4
    #define ST_VCENTER					5
    
    #define ST_TYPE						0xF0
    #define ST_SINGLE					0
    #define ST_MULTI						16
    #define ST_TITLE_BAR					32
    #define ST_PICTURE					48
    #define ST_FRAME					64
    #define ST_BACKGROUND					80
    #define ST_GROUP_BOX					96
    #define ST_GROUP_BOX2					112
    #define ST_HUD_BACKGROUND				128
    #define ST_TILE_PICTURE					144
    #define ST_WITH_RECT					160
    #define ST_LINE						176
    
    #define ST_SHADOW					256
    #define ST_NO_RECT					512
    
    #define ST_TITLE						ST_TITLE_BAR + ST_CENTER
    
    // Predefined controls
    #define IDC_OK						1
    #define IDC_CANCEL					2
    
    // Colors
    #define TextColor						0.08, 0.08, 0.12
    #define InvTextColor					0.35, 0.38, 0.36
    
    // Fonts
    #define FontS 		"tahomaB24"
    #define FontM 		"tahomaB36"
    #define FontHTML 		"courierNewB64"
    #define FontHTMLBold 	"courierNewB64"
    #define FontMAP 		"courierNewB64"
    #define FontMAIN 		"SteelfishB64"
    #define FontMAINCZ	"SteelfishB64CE"
    #define FontTITLE 		"SteelfishB128"
    #define FontTITLEHalf	"SteelfishB64"
    #define FontBOOK 	"garamond64"
    #define FontNOTES 	"AudreysHandI48"
    
    class RscSliderV
    {
    	type = CT_SLIDER;
    	style = SL_VERT;
    	color[] = {0, 1, 0, 1};
    	angle = 0;
    };
    class RscText
    {
    	type = CT_STATIC;
    	idc = -1;
    	style = ST_LEFT;
    	h = 0.04; 
    	colorBackground[] = {0, 0, 0, 0};
    	colorText[] = {TextColor, 0.75};
      	font = FontS;
    	sizeEx = 0.02;
    };
    class RscActiveText
    {
    	type = CT_ACTIVETEXT;
    	style = ST_LEFT;
    	color[] = {0, 0, 0, 1};
    	colorActive[] = {1, 1, 1, 1};
      	font = FontMAIN;
    	sizeEx = 0.05;
    	soundEnter[] = {"ui\ui_over", 0.2, 1};
    	soundPush[] = {, 0.2, 1};
    	soundClick[] = {"ui\ui_ok", 0.2, 1};
    	soundEscape[] = {"ui\ui_cc", 0.2, 1};
    	default = false;
    };
    class RscActiveMenu : RscActiveText
    {
    	color[] = {1, 1, 1, 1};
    	colorActive[] = {1, 0, 0, 1};
    	font = FontTITLEHalf;
    	sizeEx = 0.05;
    	default = false;
    };
    class RscObject
    {
    	type = CT_OBJECT;
    	scale = 1.0;
    	direction[] = {0, 0, 1};
    	up[] = {0, 1, 0};
    };
    class RscObjListBox
    {
    	type = CT_LISTBOX;
    	font = FontTITLEHalf;	
    	style = 4;
    	selection = "display";
    	angle = 0;
    	size = 0.8;	// 3D size
    	color[] = {0, 0, 0, 0};	
    	colorSelect[] = {0, 1, 0, 1};
    	colorSelectBackground[] = {0, 1, 0, 0.2};
    	colorText[] = {0, 1, 0, 0.5};
    };
    class RscHTML{};
    
    // FDF mod spectator
    // Include from rscSpectate.hpp
    //
    // Spectating script v1.4 for FDF mod by Kegetys
    //
    
    class RscFDFDlgSpectateDeath1st
    {
    	idd = 821151552;
    	movingEnable = true;
    	controlsBackground[]=
    	{
    		Background1
    	};
    	class Background1 : RscText
    	{
    		idc = 1047001;
    		style = ST_HUD_BACKGROUND;
    		x = 0.375;
    		y = 0.02;
    		w = 0.25;
    		h = 0.04;
    		text = ;
    		colorBackground[] = {0, 0, 0, 0.8};
    	};
    	controls[]=
    	{
    		TitleS,
    		Title,
    		ButtonNEXT,
    		ButtonPREV,
    		PlrName
    	};
    	class Title : RscText
    	{
    		idc = -1;
    		style = ST_CENTER;
    		x = 0.375;
    		y = 0.02;
    		w = 0.25;
    		h = 0.04;
    		font = FontTITLEHalf;
    		//colorText[] = {1, 0, 0, 1};
    		colorText[] = {0/255, 108/255, 169/255, 1.0};
    		sizeEx = 0.038;
    		text = "SPECTATING";
    	};
    	class TitleS : RscText
    	{
    		idc = -1;
    		style = ST_CENTER;
    		x = 0.375+0.002;
    		y = 0.02+0.002;
    		w = 0.25;
    		h = 0.04;
    		font = FontTITLEHalf;
    		colorText[] = {0, 0, 0, 0.8};
    		sizeEx = 0.038;
    		text = "SPECTATING";
    	};
    	class ButtonNEXT : RscActiveMenu
    	{
    		idc = -1;
    		style = ST_CENTER;
    		x = 0.575;
    		y = 0.021;
    		w = 0.02;
    		h = 0.031;
    		text = ">";
    		default = 0;
    		soundClick[] = {"ui\ui_ok", 0.2, 1};
    		action = "1 exec ""nextCam.sqs""";
    	};
    	class ButtonPREV : RscActiveMenu
    	{
    		idc = -1;
    		style = ST_CENTER;
    		x = 0.4;
    		y = 0.021;
    		w = 0.02;
    		h = 0.036;		
    		text = "<";
    		default = 0;
    		soundClick[] = {"ui\ui_ok", 0.2, 1};
    		action = "-1 exec ""nextCam.sqs""";
    	};
    	class PlrName : RscText
    	{
    		idc = 116969;
    		style = ST_CENTER;
    		x = 0.375;
    		y = 0.060;
    		w = 0.25;
    		h = 0.02;
    		font = FontM;
    		colorText[] = {0, 0, 0, 0.6};
    		color[] = {0, 0, 0, 0.6};
    		colorActive[] = {0, 0, 0, 0.6};
    /*		colorText[] = {1, 0, 0, 1};
    		color[] = {1, 0, 0, 1};		
    		colorActive[] = {1, 0.2, 0.2, 1};			*/
    		//sizeEx = 0.05;
    		text = "Unknown";	
    	};
    };
    class RscFDFDlgSpectateDeath
    {
    	idd = 821151551;
    	movingEnable = true;
    	controlsBackground[]=
    	{
    		Background4,
    		Background5,
    		BackgroundMenu,
    		BackgroundList
    	};
    	class Background4 : RscText
    	{
    		x = 0.0;
    		y = 0.0;
    		w = 1;
    		h = 0.065;
    		text = ;
    		colorBackground[] = {0, 0, 0, 1};
    	};
    	class Background5 : RscText
    	{
    		x = 0.0;
    		y = 0.935;
    		w = 1;
    		h = 0.065;
    		text = ;
    		colorBackground[] = {0, 0, 0, 1};
    	};
    	class BackgroundMenu : RscText
    	{
    		idc = 1046006;
    		style = ST_HUD_BACKGROUND;
    		x = 0.02;
    		y = 0.055;
    		w = 0.120;
    		h = 0.255;
    		text = ;
    		colorBackground[] = {0, 0, 0, 0.8};
    	};	
    	class BackgroundList : RscText
    	{
    		idc = 1047001;
    		style = ST_HUD_BACKGROUND;
    		x = 0.84;
    		y = 0.055;
    		w = 0.14;
    		h = 0.26;
    		text = ;
    		colorBackground[] = {0, 0, 0, 0.8};
    	};
    	controls[]=
    	{
    		Title,
    		ButtonPREV,
    		ButtonNEXT,
    		Spectation,
    		PlrName,
    		menu,
    		menu2,
    		MenuPlrs,
    		MenuPlrs2,
    		MenuItem1,
    		MenuItem2,
    		MenuItem3,
    		MenuItem4,
    		MenuItem5,
    		MenuItem6,
    		MenuItem7,
    		MenuItem8,
    		MenuSlider,
    		MenuLine,
    		MenuLine2,
    		MenuSliderLTR1,
    		MenuSliderLTR2,
    		MenuSliderLTR3,
    		MenuSliderLTR4,
    		MenuSliderLTR5,
    		MenuSliderLTR6,
    		MenuSliderLTR7,
    		MenuSliderLTR8,
    		ListBox
    	};
    	class ListBox : RscObjListBox
    	{
    		idc = 1047002;
    		x = 0.85;
    		y = 0.075;
    		w = 0.12;
    		h = 0.22;
    		rows = 5;
    		rowHeight = 0.01;
    		size = 0.56;	// 3D size
    		colorText[] = {1, 1, 1, 0.6};
    		colorSelect[] = {0.3, 0.5, 1, 1};
    		colorSelectBackground[] = {0, 1, 0, 0.2};
    	};
    	class Title : RscText
    	{
    		idc = -1;
    		style = ST_CENTER;
    		x = 0.2;
    		y = -0.015;
    		w = 0.6;
    		h = 0.1;
    		font = FontTITLEHalf;
    		colorText[] = {1, 0, 0, 1};
    		sizeEx = 0.048;
    		text = "YOU ARE DEAD";
    	};
    	class ButtonNEXT : RscActiveMenu
    	{
    		idc = -1;
    		x = 0.90;
    		y = 0.94;
    		w = 0.15;
    		h = 0.05;
    		text = "Next >>";
    		default = 0;
    		soundClick[] = {"ui\ui_ok", 0.2, 1};
    		action = "1 exec ""nextCam.sqs""";
    	};
    	class ButtonPREV : RscActiveMenu
    	{
    		idc = -1;
    		x = 0.55;
    		y = 0.94;
    		w = 0.15;
    		h = 0.05;
    		text = "<< Previous";
    		default = 0;
    		soundClick[] = {"ui\ui_ok", 0.2, 1};
    		action = "-1 exec ""nextCam.sqs""";
    	};
    	class Spectation : RscText
    	{
    		idc = -1;
    		style = ST_CENTER;
    		x = 0.70;
    		y = 0.94;
    		w = 0.15;
    		h = 0.05;
    		font = FontTITLEHalf;
    		colorText[] = {0/255, 108/255, 169/255, 1.0}; // FDF
    		sizeEx = 0.05;
    		text = "- Spectating -";
    	};
    	class PlrName : RscText
    	{
    		idc = 116969;
    		style = ST_CENTER;
    		x = 0.10;
    		y = 0.94;
    		w = 0.15;
    		h = 0.05;
    		font = FontTITLEHalf;
    		colorText[] = {0/255, 108/255, 169/255, 1.0}; // FDF
    		color[] = {0/255, 108/255, 169/255, 1.0}; // FDF
    		colorActive[] = {0/255, 108/255, 169/255, 1.0}; // FDF
    /*		colorText[] = {1, 0, 0, 1};
    		color[] = {1, 0, 0, 1};		
    		colorActive[] = {1, 0.2, 0.2, 1};			*/
    		sizeEx = 0.05;
    		text = "Unknown";
    	};
    	class Menu : RscActiveMenu
    	{
    		idc = 1046007;
    		x = 0.03;
    		y = 0.02;
    		w = 0.15;
    		h = 0.025;
    		text = "view menu";
    		default = 0;
    		angle = 90;
    		colorActive[] = {0.4, 0.8, 1, 1};
    		soundClick[] = {"ui\ui_ok", 0.2, 1};
    		action = "ctrlShow [1046001,false];ctrlShow [1046002,false];ctrlShow [1046003,false];ctrlShow [1046004,false];ctrlShow [1046005,false];ctrlShow [1046006,false];ctrlShow [1046007,false];ctrlShow [1046008,true];ctrlShow [1046009,false];ctrlShow [1046010,false];ctrlShow [1046011,false];ctrlShow [1046012,false];ctrlShow [1046013,false];ctrlShow [1046014,false];ctrlShow [1046015,false];ctrlShow [1046016,false];ctrlShow [1046017,false];ctrlShow [1046018,false];ctrlShow [1046019,false];ctrlShow [1046020,false];ctrlShow [1046021,false];ctrlShow [1046022,false];ctrlShow [1046023,false]";
    		sizeEx = 0.028;
    	};
    	class Menu2 : Menu
    	{
    		idc = 1046008;
    		color[] = {1.0, 1.0, 1.0, 0.4};
    		colorActive[] = {0.3, 0.5, 1, 1};
    		action = "ctrlShow [1046001,true];ctrlShow [1046002,true];ctrlShow [1046003,true];ctrlShow [1046004,true];ctrlShow [1046005,true];ctrlShow [1046006,true];ctrlShow [1046007,true];ctrlShow [1046008,false];ctrlShow [1046009,true];ctrlShow [1046010,true];ctrlShow [1046011,true];ctrlShow [1046012,true];ctrlShow [1046013,true];ctrlShow [1046014,true];ctrlShow [1046015,true];ctrlShow [1046016,true];ctrlShow [1046017,true];ctrlShow [1046018,true];ctrlShow [1046019,true];ctrlShow [1046020,true];ctrlShow [1046021,true];ctrlShow [1046022,true];ctrlShow [1046023,true]";
    	};
    	class MenuPlrs : RscActiveMenu
    	{		
    		idc = 1048001;
    		x = 0.92;
    		y = 0.02;
    		w = 0.15;
    		h = 0.025;
    		text = "namelist";
    		default = 0;
    		angle = 90;
    		colorActive[] = {0.4, 0.8, 1, 1};
    		soundClick[] = {"ui\ui_ok", 0.2, 1};
    		action = "ctrlShow [1047002,false];ctrlShow [1047001,false];ctrlShow [1048001,false];ctrlShow [1048002,true];";
    		sizeEx = 0.028;
    	};	
    	class MenuPlrs2 : MenuPlrs
    	{
    		idc = 1048002;
    		color[] = {1.0, 1.0, 1.0, 0.4};
    		colorActive[] = {0.3, 0.5, 1, 1};
    		action = "ctrlShow [1047002,true];ctrlShow [1047001,true];ctrlShow [1048001,true];ctrlShow [1048002,false];";
    	};
    	class MenuItem1 : RscActiveMenu
    	{
    		idc = 1046001;
    		x = 0.03;
    		y = 0.073;
    		w = 0.08;
    		h = 0.025;
    		text = "close view";
    		default = 0;
    		angle = 90;
    		colorText[] = {1, 1, 1, 0.6};
    		colorActive[] = {0.3, 0.5, 1, 1};
    		soundClick[] = {"ui\ui_ok", 0.2, 1};
    		action = "DeathCam camSetFOV 0.976;DeathCam camSetTarget vehicle DeathCamCurCamTarget;DeathCamComSpeed = 0.4;DeathCamRelPos = [0,-2,0.3];DeathCamTarHeight = 1.7;DeathCamCineViewSpecial = 0;DeathCamExit = false";
    		sizeEx = 0.028;
    	};
    	class MenuItem2 : MenuItem1
    	{
    		idc = 1046002;
    		y = 0.073 + (1*0.028);
    		text = "far view";
    		action = "DeathCam camSetFOV 0.976;DeathCam camSetTarget vehicle DeathCamCurCamTarget;DeathCamComSpeed = 1.9;DeathCamRelPos = [0,-8,2.5];DeathCamTarHeight = 1.5;DeathCamCineViewSpecial = 0;";
    	};
    	class MenuItem3 : MenuItem1
    	{
    		idc = 1046003;
    		y = 0.073 + (2*0.028);
    		text = "front view";
    		action = "DeathCam camSetFOV 0.976;DeathCam camSetTarget vehicle DeathCamCurCamTarget;DeathCamComSpeed = 0.1;DeathCamRelPos = [0,4.0,0.02];DeathCamTarHeight = 1.7;DeathCamCineViewSpecial = 0;";
    	};
    	class MenuItem4 : MenuItem1
    	{
    		idc = 1046004;
    		y = 0.073 + (3*0.028);
    		text = "top view";
    		action = "DeathCam camSetFOV 0.976;DeathCam camSetTarget [0,0,-99999999.99];DeathCamComSpeed = 0.05;DeathCamRelPos = [0,0.1,50.0];DeathCamTarHeight = 1.7;DeathCamCineViewSpecial = 2;";
    	};
    	class MenuItem5 : MenuItem1
    	{
    		idc = 1046005;
    		y = 0.073 + (4*0.028);
    		text = "cinematic view";
    		action = "DeathCam camSetFOV 0.976;DeathCam camSetTarget vehicle DeathCamCurCamTarget;DeathCamRelPos = [3,70.1,10.0];DeathCam camSetRelPos DeathCamRelPos;DeathCamComSpeed = 0;DeathCamCineViewSpecial = 1;";
    	};
    	class MenuItem6 : MenuItem1
    	{
    		idc = 1046020;
    		y = 0.073 + (5*0.028);
    		text = "1st person view";
    		action = "DeathCamCineViewSpecial = 3;";
    	};
    	class MenuItem7 : MenuItem1
    	{
    		idc = 1046021;
    		y = 0.073 + (6*0.028);
    		text = "gunner view";
    		action = "DeathCamCineViewSpecial = 4;";
    	};
    	class MenuItem8 : MenuItem1
    	{
    		idc = 1046023;
    		y = 0.073 + (7.1*0.028);
    		w = 0.1;
    		text = "missile cam: enabled";
    		action = "DeathCamMissileCamEnabled = !DeathCamMissileCamEnabled;if(DeathCamMissileCamEnabled) then {ctrlSetText[1046023,""missile cam: enabled""]} else {ctrlSetText[1046023,""missile cam: disabled""]}";		
    	};
    	class MenuLine : RscText
    	{
    		idc = 1046011;
    		style = ST_LINE;
    		x = 0.113;
    		y = 0.0;
    		w = 0;
    		h = 0.270;
    		text = ;
    		colorBackground[] = {1, 1, 1, 1};
    		color[] = {1, 1, 1, 1};
    		colorText[] = {0, 0, 0, 1};
    	};
    	class MenuLine2 : RscText
    	{
    		idc = 1046022;
    		style = ST_LINE;
    		x = 0.02;
    		y = 0.270;
    		w = 0.120;
    		h = 0;
    		text = ;
    		colorBackground[] = {1, 1, 1, 1};
    		color[] = {1, 1, 1, 1};
    		colorText[] = {0, 0, 0, 1};
    	};
    	class MenuSlider : RscSliderV
    	{
    		idc = 1046010;
    		x = 0.12;
    		y = 0.08;
    		w = 0.015;
    		h = 0.15;
    		color[] = {1, 1, 1, 0.8};
    	};
    	class MenuSliderLTR1 : RscText
    	{
    		idc = 1046012;
    		x = 0.1145;
    		y = 0.1045;
    		w = 0.015;
    		h = 0.01;
    		text = "D";
    		color[] = {1, 1, 1, 1};
    		colorText[] = {1, 1, 1, 0.2};
    		sizeEx = 0.018;
    	};
    	class MenuSliderLTR2 : MenuSliderLTR1
    	{
    		idc = 1046013;
    		x = 0.1150;
    		y = 0.1175;
    		text = "I";
    	};
    	class MenuSliderLTR3 : MenuSliderLTR1
    	{
    		idc = 1046014;
    		y = 0.1305;
    		text = "S";
    	};
    	class MenuSliderLTR4 : MenuSliderLTR1
    	{
    		idc = 1046015;
    		y = 0.1435;
    		text = "T";
    	};
    	class MenuSliderLTR5 : MenuSliderLTR1
    	{
    		idc = 1046016;
    		y = 0.1565;
    		text = "A";
    	};
    	class MenuSliderLTR6 : MenuSliderLTR1
    	{
    		idc = 1046017;
    		y = 0.1695;
    		text = "N";
    	};
    	class MenuSliderLTR7 : MenuSliderLTR1
    	{
    		idc = 1046018;
    		y = 0.1830;
    		text = "C";
    	};
    	class MenuSliderLTR8 : MenuSliderLTR1
    	{
    		idc = 1046019;
    		y = 0.1960;
    		text = "E";
    	};
    };
    onPlayerRespawnAsSeagull.sqs
    Code:
     
    ; Spectating script v1.4 by Kegetys <Kegetys@dnainternet.net> 
    ; http://www.ofp.kege.cjb.net
    ;
    ; Requires OFP Version 1.85 or up
    ;
    ;
    
    ;put the name of the units you want to be spectated here
    ? ("alive _x" count [p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12]) == 0 : exit
    
    ;put the name of the units you want to be spectated here too
    DeathCamArray = [p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12]
    DeathCamArrayTemp = []
    "if ((not isNull _x) and (alive _x)) then {DeathCamArrayTemp = DeathCamArrayTemp + [_x]}" foreach DeathCamArray
    
    DeathCamArray = DeathCamArrayTemp
    
    DeathCamNameCache = []
    "if (name _x == ""error: no unit"") then {DeathCamNameCache = DeathCamNameCache + [""object""]} else {DeathCamNameCache = DeathCamNameCache + [name _x]}" foreach DeathCamArray
    
    DeathCamEventHandledVehicles = []
    
    {DeathCamEventHandledVehicles = DeathCamEventHandledVehicles + [_x];_x addEventHandler["fired",{if ((_this select 0) == (vehicle DeathCamCurTarget)) then {_this exec "missileCam.sqs"}}]} forEach DeathCamArray
    
    _seagull = _this select 2
    _seagull setpos[0,0,0]
    
    DeathCamCurCamTarget = "HeliHEmpty" CreateVehicle getpos player
    _HeightDummy = "HeliHEmpty" CreateVehicle getpos player
    
    
    ~2.5
    titleCut ["","BLACK OUT", 1.5]
    ~2
    titleCut ["","BLACK IN", 4]
    
    
    ? count DeathCamArray == 0 : _vhltemp = player
    ? count DeathCamArray == 0 : goto "seagull"
    
    DeathCamMissileCamEnabled = true
    DeathCamCineViewSpecial = 0
    DeathCamComSpeed = 0.4
    DeathCamRelPos = [0,-2,0.3]
    DeathCamTarHeight = 1.7
    DeathCamIndex = 0
    
    DeathCamCurTarget = player
    DeathCam = "camera" camCreate [(getpos player select 0)+2, (getpos player select 1)+2, 700 ]
    DeathCam cameraEffect ["internal","front"]
    DeathCam camSetTarget vehicle DeathCamCurCamTarget
    DeathCam camSetPos [(getpos player select 0)+2, (getpos player select 1)+2, 1000 ]
    DeathCam camSetFOV 0.976
    DeathCam camCommand "inertia on"
    DeathCam camCommit 0
    showCinemaBorder false
    
    
    
    #start
    
    _ok = createDialog "RscFDFDlgSpectateDeath"
    ctrlShow [1046001,false];ctrlShow [1046002,false];ctrlShow [1046003,false];ctrlShow [1046004,false];ctrlShow [1046005,false];ctrlShow [1046006,false];ctrlShow [1046007,false];ctrlShow [1046008,true];ctrlShow [1046009,false];ctrlShow [1046010,false];ctrlShow [1046011,false];ctrlShow [1046012,false];ctrlShow [1046013,false];ctrlShow [1046014,false];ctrlShow [1046015,false];ctrlShow [1046016,false];ctrlShow [1046017,false];ctrlShow [1046018,false];ctrlShow [1046019,false];ctrlShow [1046020,false];ctrlShow [1046021,false];ctrlShow [1046022,false];ctrlShow [1046023,false]
    ctrlSetText [116969,name player]
    ctrlShow [1047002,false];ctrlShow [1047001,false];ctrlShow [1048001,false]
    
    sliderSetRange [1046010, 0.2, 7] 
    sliderSetPosition [1046010, 1] 
    
    
    kegfoo = 0
    "_i = lbAdd [1047002, DeathCamNameCache select kegfoo];lbSetData [1047002, _i, format[""%1"",kegfoo]];if (side _x == west) then {lbSetColor[1047002, _i, [0.8,0.8,1,0.8]]};if (side _x == EAST) then {lbSetColor[1047002, _i, [1,0.8,0.8,0.8]]};if (side _x == resistance) then {lbSetColor[1047002, _i, [0.8,1,0.8,0.8]]};if ((name _x == ""error: no unit"") and ((DeathCamNameCache select kegfoo) == ""object"")) then {lbSetColor[1047002, _i, [0,0,0,0.4]]};kegfoo = kegfoo + 1" foreach DeathCamArray
    lbSetCurSel [1047002, 0] 
    
    kegfoo = 0
    "if (player == _x) then {lbSetCurSel [1047002, kegfoo] };kegfoo = kegfoo + 1;" foreach DeathCamArray
    
    
    
    ? not _ok : exit
    
    #loop
    kegfoo = 0
    "if (not alive _x) then {lbSetColor[1047002, kegfoo, [0,0,0,0.4]]};kegfoo = kegfoo + 1" foreach DeathCamArray
    
    ? lbData[1047002,(lbCurSel 1047002)] != format["%1",DeathCamIndex] : _TargetChange = 1
    
    ? _TargetChange == 1 : DeathCamIndex = lbCurSel 1047002
    ? (_TargetChange == 1) and (dialog): 0 exec "nextCam.sqs"
    _TargetChange = 0
    
    _seagull setpos[0,0,(getpos _vhlTemp select 2)+15]
    ? !dialog : goto "seagull"
    
    DeathCam camCommit DeathCamComSpeed
    _vhlTemp = vehicle DeathCamCurTarget
    
    if !(_vhlTemp in DeathCamEventHandledVehicles) then {DeathCamEventHandledVehicles = DeathCamEventHandledVehicles + [_vhlTemp];_vhlTemp addEventHandler["fired",{if ((_this select 0) == (vehicle DeathCamCurTarget)) then {_this exec "missileCam.sqs"}}]}
    
    
    ; Cinematic view?
    ? DeathCamCineViewSpecial == 1 : goto "camspecial"
    
    ; 1st Person view?
    ? DeathCamCineViewSpecial == 3 : goto "camspecial1st"
    
    ; Gunner view?
    ? DeathCamCineViewSpecial == 4 : goto "camspecialgunnerview"
    
    ; The following will reduce the effect of warping spectated object to the camera itself
    
    _Divider = 100 - (speed _vhlTemp * 2)
    ? _Divider < 10 : _Divider = 10
    
    _moX = (getpos DeathCamCurCamTarget select 0) + (((getpos _vhlTemp select 0) - (getpos DeathCamCurCamTarget select 0))/_Divider)
    _moY = (getpos DeathCamCurCamTarget select 1) + (((getpos _vhlTemp select 1) - (getpos DeathCamCurCamTarget select 1))/_Divider)
    _moZ = ((getpos DeathCamCurCamTarget select 2)-DeathCamTarHeight) + (((getpos _vhlTemp select 2) - ((getpos DeathCamCurCamTarget select 2)-DeathCamTarHeight))/_Divider)
    
    ; Workaround for an ofp "feature" with the setpos/getpos commands and roadway lods
    _HeightDummy setpos [getpos _vhlTemp select 0,getpos _vhlTemp select 1,0]
    _h2 = _vhlTemp distance _HeightDummy
    _h1 = _h2 + DeathCamTarHeight
    ? vehicle DeathCamCurTarget == DeathCamCurTarget : _moZ = ((_h1)-DeathCamTarHeight) + (((_h2) - ((_h1)-DeathCamTarHeight))/_Divider)
    
    
    DeathCamCurCamTarget setpos[_moX,_moY,_moZ  + DeathCamTarHeight]
    
    DeathCamCurCamTarget setdir getdir _vhlTemp
    
    ; Top view?
    ? DeathCamCineViewSpecial == 2 : goto "camspecialTop"
    
    _RealRelPos = [(DeathCamRelPos select 0) * (sliderPosition 1046010), (DeathCamRelPos select 1) * (sliderPosition 1046010), (DeathCamRelPos select 2) * ((sliderPosition 1046010)*2)]
    
    ? ((speed vehicle DeathCamCurTarget >= 150)) : _RealRelPos = [(DeathCamRelPos select 0) * (sliderPosition 1046010) * 5, (DeathCamRelPos select 1) * (sliderPosition 1046010) * 5, (DeathCamRelPos select 2) * ((sliderPosition 1046010)*2) * 5]
    
    DeathCam camSetRelPos _RealRelPos 
    
    
    
    goto "loop"
    
    
    ; Cinematic view
    #camspecial
    DeathCamCurCamTarget setpos[getpos _vhlTemp select 0,getpos _vhlTemp select 1,(getpos _vhlTemp select 2) + DeathCamTarHeight]
    DeathCamCurCamTarget setdir getdir _vhlTemp
    
    ; Reset cam if object is far away... if its a very fast object use a more distant view
    ? ((speed vehicle DeathCamCurTarget >= 150)) and (((DeathCam) distance (DeathCamCurCamTarget)) > 400) : DeathCam camSetRelPos [3,400.1,10.0]
    ? ((speed vehicle DeathCamCurTarget < 150)) and (((DeathCam) distance (DeathCamCurCamTarget)) > 100) : DeathCam camSetRelPos DeathCamRelPos
    
    ; Distance slider sets zoom (FOV) in cinematic view
    DeathCam camSetFOV 0.976 * ((sliderPosition 1046010)/5)
    
    goto "loop"
    
    ; Top view
    #camspecialTop
    DeathCamCurCamTarget setdir 0
    
    DeathCam camSetPos [getpos DeathCamCurCamTarget select 0,getpos DeathCamCurCamTarget select 1,(getpos DeathCamCurCamTarget select 2)+(30 * sliderPosition 1046010 * 1.5)]
    
    goto "loop"
    
    
    ; User pressed esc, return seagull control
    #seagull
    
    titleCut ["","BLACK IN", 0]
    _seagull setpos [0,0,0]
    
    _h = sqrt(((_vhlTemp distance _seagull) * (_vhlTemp distance _seagull)) - (sqrt(((getpos _vhlTemp select 0) * (getpos _vhlTemp select 0)) + ((getpos _vhlTemp select 1) * (getpos _vhlTemp select 1))) * sqrt(((getpos _vhlTemp select 0) * (getpos _vhlTemp select 0)) + ((getpos _vhlTemp select 1) * (getpos _vhlTemp select 1))))) + ((getpos _vhlTemp select 2)+15)
    ? _h > 80 : _h = 80
    
    
    _seagull setpos [(getpos _vhlTemp select 0)-15+random 30, (getpos _vhlTemp select 1)-15+random 30,_h]
    
    _seagull setvelocity[0,0,0]
    _seagull switchCamera "INTERNAL"
    _seagull cameraEffect ["terminate","FRONT"]
    _seagull camCommand "manual on"
    
    ; Return back to spectating
    @((getpos _seagull select 2) > 150) && (count DeathCamArray != 0)
    
    titleCut ["","BLACK OUT", 0.5]
    ~0.5
    titleCut ["","BLACK IN", 2]
    DeathCam cameraEffect ["internal","front"]
    goto "start"
    
    #camspecial1st
    
    closedialog 821151551
    titleCut ["","BLACK IN", 1]
    ~0.1
    _ok = createDialog "RscFDFDlgSpectateDeath1st"
    
    hint " Press ESC to return "
    
    _name = name (DeathCamArray select DeathCamIndex)
    if (_name == "error: no unit") then {_name = ""}
    ctrlSetText [116969,_name]
    
    #camspecial1stloop
    ~0.001
    (vehicle DeathCamCurTarget) switchCamera "INTERNAL"
    (vehicle DeathCamCurTarget) cameraEffect ["terminate","FRONT"]
    
    ? (DeathCamCineViewSpecial == 3) && (dialog) : goto "camspecial1stloop"
    DeathCamCineViewSpecial = 0
    
    titleCut ["","BLACK IN", 1]
    closedialog 821151552
    ~0.1
    
    DeathCam cameraEffect ["internal","front"]
    goto "start"
    
    #camspecialgunnerview
    
    closedialog 821151551
    titleCut ["","BLACK IN", 1]
    ~0.1
    _ok = createDialog "RscFDFDlgSpectateDeath1st"
    
    hint " Press ESC to return "
    
    _name = name (DeathCamArray select DeathCamIndex)
    if (_name == "error: no unit") then {_name = ""}
    ctrlSetText [116969,_name]
    
    #camspecialgunnerviewloop
    ~0.001
    (vehicle DeathCamCurTarget) switchCamera "GUNNER"
    (vehicle DeathCamCurTarget) cameraEffect ["terminate","BACK"]
    
    ? (DeathCamCineViewSpecial == 4) && (dialog) : goto "camspecialgunnerviewloop"
    DeathCamCineViewSpecial = 0
    
    titleCut ["","BLACK IN", 1]
    closedialog 821151552
    ~0.1
    
    DeathCam cameraEffect ["internal","front"]
    goto "start"
    nextCam.sqs
    Code:
    ; 
    ; Script for the spectating script v1.4 by Kegetys <Kegetys@dnainternet.net> 
    ; http://www.ofp.kege.cjb.net
    ;
    
    _tries = 0
    _DeathCamIndex = DeathCamIndex
    
    #notalive
    _DeathCamIndex = _DeathCamIndex + _this
    
    ? _this == 0 : goto "alive"
    
    ? _DeathCamIndex < 0 : _DeathCamIndex = (count DeathCamArray)-1
    ? _DeathCamIndex >= count DeathCamArray : _DeathCamIndex = 0
    
    ? alive (DeathCamArray select _DeathCamIndex) : goto "alive"
    
    _tries = _tries + 1
    
    ; Avoid infinite loop if everyone are dead
    ? _tries < (count DeathCamArray)+1 : goto "notalive"
    
    exit
    
    #alive
    
    DeathCamIndex = _DeathCamIndex
    lbSetCurSel [1047002, DeathCamIndex] 
    _name = name (DeathCamArray select DeathCamIndex)
    if (_name == "error: no unit") then {_name = ""}
    ctrlSetText [116969,_name]
    
    DeathCamCurTarget = (DeathCamArray select DeathCamIndex)
    missileCam.sqs
    Code:
    ; 
    ; Script for the spectating script v1.4 by Kegetys <Kegetys@dnainternet.net> 
    ; http://www.ofp.kege.cjb.net
    ; modified version
    
    _m = nearestObject[_this select 0,_this select 4]
    _vel = abs(velocity _m select 0) + abs(velocity _m select 1) + abs(velocity _m select 2)
    
    ? isNull _m || !DeathCamMissileCamEnabled || _vel > 450 || DeathCamCineViewSpecial == 3 || !dialog : exit
    
    
    _id = random 1000000
    DeathCamCurMissileCamTargetID = _id
    
    _kami = "camera" camCreate [5329.34,6652.10,1.28]
    _kami cameraEffect ["internal","front"]
    _kami camSetTarget _m
    _kami camSetRelPos [2,2,2]
    _kami camSetFOV 0.762
    _kami camCommit 0
    
    
    #luup
    ? !isNull _m : _kami camSetTarget _m
    ? !isNull _m : _kami camSetRelPos [0,-2,0.7]
    ? !isNull _m : _kami camCommit 0
    
    _vel = abs(velocity _m select 0) + abs(velocity _m select 1) + abs(velocity _m select 2)
    ? !isNull _m && _vel > 1 : goto "luup"
    
    ~3.5
    
    ? DeathCamCurMissileCamTargetID != _id : exit
    ? !dialog : exit
    titleCut ["","BLACK OUT", 0.5]
    ~0.5
    titleCut ["","BLACK IN", 0.5]
    ? !dialog : exit
    _kami cameraeffect ["terminate", "back"]
    camdestroy _kami
    DeathCam cameraEffect ["internal","front"]
    Hope it helps

    cya.

    Nikiller.
    Last edited by Nikiller; Mar 30 2011 at 06:26.
    [LOL] ofp/ArmA clan since 2004.
    No Respawns, No Crosshairs, No Muppets.
    Want a good ofp/ArmA2 coop? Visit the [LOL] clan homepage | ofp [LOL] addons pack | ArmA2 [LOL] addons pack

    WW4mod25 sound replacement mod v1.1 | Nikiller's scripts pack

  5. #5
    Nikiller, that's going above and beyond - thank you!

  6. #6
    but I haven't found the description.ext text. Is it not needed in this version?
    FYI spectating script dialogs are defined in FDF bin\resource file.

  7. #7

    Hosting Missions for Invasion-1944, Iron Front: Liberation 1944, & Hell in the Pacific

    WarMod Series - Massive Addon & Mod Customizable Compilation Mods for Arma1, Arma2, & Arma2CO
    WarMod | A2WarMod |A2WarModACE | COWarMod | COWarModACE | COWarModI44 |COSLX

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •