Home   Help Search Login Register  

Author Topic: Spec script help  (Read 1081 times)

0 Members and 1 Guest are viewing this topic.

TH

  • Guest
Spec script help
« on: 12 Jun 2004, 08:14:55 »
Im using Spectating script v1.2 by Kegety and i cant get it to work, i want 2 civilian men to spectate one west soldier. If someoen could help me with this id appreciate it ;D

Offline Terox

  • Former Staff
  • ****
  • Follow the Sappers!
    • zeus-community.net
Re:Spec script help
« Reply #1 on: 13 Jun 2004, 13:14:49 »
names of the units must be entered into the DeathCamArray

eg
?(Side Player == Civilian): Deathcamarray = [UnitA,UnitB,UnitC]

if this doesnt answer the problem, you will need to be more specific in you question than

"My script isnt working, Why?" :)
« Last Edit: 13 Jun 2004, 13:16:14 by Terox »
Zeus ARMA2 server IP = 77.74.193.124 :2302
Teamspeak IP = 77.74.193.123

TH

  • Guest
Re:Spec script help
« Reply #2 on: 13 Jun 2004, 19:06:05 »
DeathCamArray = [spec, spec2]


DeathCamNameCache = []
"if (name _x == ""error: no unit"") then {DeathCamNameCache = DeathCamNameCache + [""object""]} else {DeathCamNameCache = DeathCamNameCache + [name _x]}" foreach CamArray


seagullModeExit = false;
seagullPosSet = false

_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 CamArray == 0 : _vhltemp = player
? count CamArray == 0 : goto "seagull"

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 "DlgSpectateDeath"
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]
ctrlSetText [116969,name player]
ctrlShow [1047002,false];ctrlShow [1047001,false];ctrlShow [1048001,false]

sliderSetRange [1046010, 0.2, 7]
sliderSetPosition [1046010, 1]


_count = 0
"_i = lbAdd [1047002, DeathCamNameCache select _count];lbSetData [1047002, _i, format[""%1"",_count]];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 _count) == ""object"")) then {lbSetColor[1047002, _i, [0,0,0,0.4]]};_count = _count + 1" foreach CamArray
lbSetCurSel [1047002, 0]

_count = 0
"if (player == _x) then {lbSetCurSel [1047002, _count] };_count = _count + 1;" foreach CamArray



? not _ok : exit

#loop


_count = 0
"if ((not isNull Leader _x)) then {CamArray Set [_count, Leader _x]; _count = _count + 1}" foreach GroupCamArray

_count = 0
"if (alive _x) then {if (side _x == west) then {lbSetColor[1047002, _count, [0.8,0.8,1,0.8]]}; if (side _x == EAST) then {lbSetColor[1047002, _count, [1,0.8,0.8,0.8]]}; if (side _x == resistance) then {lbSetColor[1047002, _count, [0.8,1,0.8,0.8]]}} else {lbSetColor[1047002, _count, [0,0,0,0.4]]};_count = _count + 1" foreach CamArray

? lbData[1047002,(lbCurSel 1047002)] != format["%1",DeathCamIndex] : _TargetChange = 1

? _TargetChange == 1 : DeathCamIndex = lbCurSel 1047002
? (_TargetChange == 1) and (dialog): 0 exec "Spectate\nextCam.sqs"
_TargetChange = 0

_seagull setpos[0,0,(getpos _vhlTemp select 2)+15]
? !dialog : goto "seagull"

DeathCam camCommit DeathCamComSpeed
_vhlTemp = vehicle DeathCamCurTarget

; Cinematic view?
? DeathCamCineViewSpecial == 1 : goto "camspecial"


; 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"

#seagullLoop
? (seagullPosSet) : seagullPosSet = false; _seagull setpos [seagullPos select 0, seagullPos select 1, 30]

; Return back to spectating if altitude bigger than 150 or player shift-clicked map
? ((getpos _seagull select 2) > 150) : goto "seagullExit"
? (seagullModeExit) : seagullModeExit = false; goto "seagullExit"

goto "seagullLoop"

#seagullExit

titleCut ["","BLACK OUT", 0.5]
~0.5
titleCut ["","BLACK IN", 2]
DeathCam cameraEffect ["internal","front"]
goto "start"

thats what i have, my spectators are spec1 and spec2.

ponq

  • Guest
Re:Spec script help
« Reply #3 on: 14 Jun 2004, 10:29:55 »
Quote
 DeathCamArray = [spec, spec2]

and

Quote
thats what i have, my spectators are spec1 and spec2

shouldn't the first quote read DeathCamArray = [spec1, spec2] ?

plz post a bit more info on your prob.

TH

  • Guest
Re:Spec script help
« Reply #4 on: 18 Jun 2004, 06:56:16 »
well i got it to work.. ;D