mach1muscle351 30 Posted September 19, 2015 I want to port Zephyrdark shotfinder script to arma 3 http://www.armaholic.com/page.php?id=16595 But I cant for the life of me get it to work. init if (!(isNull player)) then //non-JIP player { nul=[[rhsusf_m1025_d_m2]]execVM "sf2_startEH_fsm.sqf"; }; if (!isServer && isNull player) then //JIP player { waitUntil {!isNull player}; nul=[[rhsusf_m1025_d_m2]]execVM "sf2_startEH_fsm.sqf"; //?? May need to make JIP start file ?? }; startEH vehArraySF = _this select 0; {nul= _x addEventHandler ["fired", {nul=_this execFSM "shotfinder.fsm";}]} forEach allUnits; shotfinder.fsm /*%FSM<COMPILE "scriptedFSM.cfg, Shotfinder">*/ /*%FSM<HEAD>*/ /* item0[] = {"Start_",0,4346,-40.348839,-132.558136,49.651161,-82.558136,0.000000,"Start" \n ""}; item1[] = {"Ammo_Check_",4,218,77.325584,-132.558136,167.325684,-82.558144,0.000000,"" \n "Ammo Check" \n ""}; item2[] = {"Range_Check_Comp",2,250,212.591873,-131.328552,302.591888,-81.328552,0.000000,"Range Check" \n "Compile"}; link0[] = {0,1}; link1[] = {1,2}; globals[] = {0.000000,0,0,0,0,640,480,1,5,6316128,1,-143.836792,493.242920,86.587273,-311.587555,1032,618,1}; window[] = {0,-1,-1,-1,-1,868,78,1518,78,1,1050}; *//*%FSM</HEAD>*/ class FSM { fsmName = "Shotfinder"; class States { /*%FSM<STATE "Start_">*/ class Start_ { name = "Start_"; itemno = 0; init = /*%FSM<STATEINIT""">*/"private [""_firer"",""_ammo"",""_rDir"",""_fireLoc"",""_xcor"",""_ycor"",""_ammoArray"",""_sDir"",""_rDistArray"",""_rCheck"",""_maxDetect"",""_vehCount"",""_numCur"",""_vDet""];" \n "" \n "_firer = _this select 0; //Unit who fired weapon" \n "_ammo = _this select 4;" \n "_maxDetect = 300;" \n "_rCheck = [];" \n "_rDistArray = []; " \n "_vehCount = [];" \n "_vDet = [];" \n "_numCur = 0;" \n "_ammoArray = [""B_556x45_ball"", ""B_65x39_Caseless""];" \n "{_vehCount = _vehCount + [_numCur]; _numCur = _numCur + 1;} foreach vehArraySF;" \n "{_rDistArray = _rDistArray + [_x distance _firer];} forEach vehArraySF;"/*%FSM</STATEINIT""">*/; precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/; class Links { /*%FSM<LINK "Ammo_Check_">*/ class Ammo_Check_ { itemno = 1; priority = 0.000000; to="Range_Check_Comp"; precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/; condition=/*%FSM<CONDITION""">*/"_ammo in _ammoArray"/*%FSM</CONDITION""">*/; action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/; }; /*%FSM</LINK>*/ }; }; /*%FSM</STATE>*/ /*%FSM<STATE "Range_Check_Comp">*/ class Range_Check_Comp { name = "Range_Check_Comp"; itemno = 2; init = /*%FSM<STATEINIT""">*/"{ if (_x <= _maxDetect) then {_rCheck = _rCheck + [1]} else {_rCheck = _rCheck + [0]}; } forEach _rDistArray;" \n "{if (_rCheck select _x == 1) then {_vDet = _vDet + [vehArraySF select _x];};} forEach _vehCount;" \n "" \n "{" \n " _fireLoc = getpos _firer;" \n " _xcor = (_fireLoc select 0) - ((getPos _x) select 0);" \n " _ycor = (_fireLoc select 1) - ((getPos _x) select 1);" \n " " \n " " \n " switch (true) do" \n " {" \n " case ((_xcor > 0) && (_ycor > 0)): //Quadrent I" \n " { _sDir = asin (abs(_xcor) / (_x distance _firer));};" \n " case ((_xcor < 0) && (_ycor > 0)): //Quadrent II" \n " {_sDir = (360 - (asin (abs(_xcor) / (_x distance _firer))));};" \n " case ((_xcor < 0) && (_ycor < 0)): //Quadrent III" \n " {_sDir = (270 - (asin (abs(_ycor) / (_x distance _firer))));};" \n " case ((_xcor > 0 ) && (_ycor < 0)): //Quadrent IV" \n " {_sDir = (90 +(asin (abs(_ycor) / (_x distance _firer))));};" \n " case default" \n " {hint ""Script broked"";};" \n " };" \n " _rDir = _sDir - (getDir _x);" \n " if (_rDir < 0) then {_rdir = _rdir + 360};" \n " " \n " switch (true) do" \n " {" \n " case ((_rDir > 345) ||(_rDir <= 15)):" \n " {_x vehicleRadio ""12oclock""; {titleRsc [""sf_12oclock"",""PLAIN""];};};" \n " case ((_rDir > 15) && (_rDir <= 45)):" \n " {_x vehicleRadio ""1oclock""; { [""sf_1oclock"",""PLAIN""];};};" \n " case ((_rDir > 45) && (_rDir <= 75)):" \n " {_x vehicleRadio ""2oclock""; {titleRsc [""sf_2oclock"",""PLAIN""];};};" \n " case ((_rDir > 75) && (_rDir <= 105)):" \n " {_x vehicleRadio ""3oclock""; {titleRsc [""sf_3oclock"",""PLAIN""];};};" \n " case ((_rDir > 105) && (_rDir <= 135)):" \n " {_x vehicleRadio ""4oclock""; {titleRsc [""sf_4oclock"",""PLAIN""];};};" \n " case ((_rDir > 135) && (_rDir <= 165)):" \n " {_x vehicleRadio ""5oclock""; {titleRsc [""sf_5oclock"",""PLAIN""];};};" \n " case ((_rDir > 165) && (_rDir <= 195)):" \n " {_x vehicleRadio ""6oclock""; {titleRsc [""sf_6oclock"",""PLAIN""];};};" \n " case ((_rDir > 195) && (_rDir <= 225)):" \n " {_x vehicleRadio ""7oclock""; {titleRsc [""sf_7oclock"",""PLAIN""];};};" \n " case ((_rDir > 225) && (_rDir <= 255)):" \n " {_x vehicleRadio ""8oclock""; {titleRsc [""sf_8oclock"",""PLAIN""];};};" \n " case ((_rDir > 255) && (_rDir <= 285)):" \n " {_x vehicleRadio ""9oclock""; {titleRsc [""sf_9oclock"",""PLAIN""];};};" \n " case ((_rDir > 285) && (_rDir <= 315)):" \n " {_x vehicleRadio ""10oclock""; {titleRsc [""sf_10oclock"",""PLAIN""];};};" \n " case ((_rDir > 315) && (_rDir <= 345)):" \n " {_x vehicleRadio ""11oclock""; {titleRsc [""sf_11oclock"",""PLAIN""];};};" \n " case default" \n " {hint ""scriptbroked"";};" \n " };" \n " } forEach _vDet;"/*%FSM</STATEINIT""">*/; precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/; class Links { }; }; /*%FSM</STATE>*/ }; initState="Start_"; finalStates[] = { }; }; /*%FSM</COMPILE>*/ What am I missing here? I dont get it. Are there some things in .fsm's that dont work in arma 3? Any help would be appreciated. Share this post Link to post Share on other sites
killzone_kid 1326 Posted September 19, 2015 .... What am I missing here? FSM Editor? Share this post Link to post Share on other sites
mach1muscle351 30 Posted September 19, 2015 FSM Editor? I used FSM Editor from a3 tools Just copy pasted it from poseidon sry I shoulda clarified. Share this post Link to post Share on other sites