mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-18 01:30:26 +03:00
+ [FIXED] Player position was saved to [] in certain areas of Taviana forcing random spawn. Override variables added dayz_minpos (default: -20000) and dayz_maxpos (default: 20000). To better support Taviana use dayz_minpos = -26000; dayz_maxpos = 26000; Thanks to dayzforever.com admin for the heads up. + [ADDED] Small Desert Camo Net - desert_net_kit - Recipe: 4 x tent + 4 x metal pole + [ADDED] Large Desert Camo Net - desert_large_net_kit - Recipe: 3 x desert_net_kit + [ADDED] Small Forest Camo Net - forest_net_kit - Recipe: 4 x tent + 4 x metal pole + [ADDED] Large Forest Camo Net - forest_large_net_kit - Recipe: 3 x forest_net_kit + [CHANGED] changed out ItemSodaRbull with ItemSodaR4z0r due to glitching with rbull model. + [ADDED] New Heavy Duty SUV with camo skin (Armor: 50) +25 increase in armor and holds 100 magazines, 10 weapons, 5 backpacks. Camo skin from here: http://www.404games.co.uk/forum/index.php?/topic/1243-camo-suv-skin-code-here/ + [ADDED] Sandbag Nest (sandbag_nest_kit) Required Tools: ItemEtool, ItemToolbox. Recipe: ItemSandbag x 4, PartWoodPlywood x 2, PartWoodLumber x 4. + [CHANGED] When selling multiple magazine items traders should now always give highest denomination back. + [CHANGED] workshop is now required for most crafting. Currently a Nice Wood Shed or a Wooden Shack will work. + [CHANGED] Updated camo female texture thanks to http://www.twitch.tv/miss_alejandria + [ADDED] New vehicle ownership is now tied to vehicle keys. When you purchase a new vehicle you will get a key added to your toolbelt. Do not drop on the ground as they are easy to loose. + [ADDED] Server admins can now change default fresh spawn loadout within mission init.sqf. DefaultMagazines = ["ItemBandage","ItemPainkiller"]; DefaultWeapons = ["ItemFlashlight"]; DefaultBackpack = ""; DefaultBackpackWeapon = ""; + [ADDED] added override variable for to change the distance for selling vehicles. dayz_sellDistance = 20; in the missions init.sqf + [REVERT] Re-enabled old refuel sources and added (TODO: ability to fill 55 gallon barrels off them). + [ADDED] More internal code locks and addaction locks to prevent bugged menus. + [CHANGED] Can no longer drop "MeleeHatchet","MeleeCrowbar","MeleeMachete","MeleeFishingPole" from primary slot, you must add it to your toolbelt first. + [ADDED] Fishing now requires casting and waiting to catch a fish (currently only trout). + [FIXED] Incorrect TradeInprogress message for Open Crate code. + [FIXED] Boat dealers can now use ["HeliHCivil","HeliHempty"] as alternate spawn locations for new vehicles. + [FIXED] Fixed spawning of Skin_TK_INS_Warlord_EP1 needed to be Skin_TK_INS_Warlord_EP1_DZ in loot table instead. + [ADDED] Gain 1 humanity for each zed you gut. only after body is cleared and the body disappears. + [REMOVED] Removed m240 nest crafting for now too many problems still. + [ADDED] You now get a key when purchasing a vehicle, + [ADDED] Have your pen and paper handy for this one... When placing a personal safe you will now get a 4 digit pin code that you will need to use gain access to your safe. + [FIXED] Issues with Arma 2 free and ArmA 2 X users when purchasing vehicles and placing vaults have now been resolved. + [CHANGED] Namalsk Plane vendor moved inside building, Medical vendor moved to adjacent building.
1359 lines
53 KiB
Plaintext
1359 lines
53 KiB
Plaintext
/*%FSM<COMPILE "F:\Program Files (x86)\Bohemia Interactive\Tools\FSM Editor Personal Edition\scriptedFSM.cfg, DayZ Player Monitor">*/
|
|
/*%FSM<HEAD>*/
|
|
/*
|
|
item0[] = {"init",0,250,-75.000000,-350.000000,25.000000,-300.000000,0.000000,"init"};
|
|
item1[] = {"isServer",4,218,50.000000,-350.000000,150.000000,-300.000000,0.000000,"isServer"};
|
|
item2[] = {"wait",2,250,50.000000,-275.000000,150.000000,-225.000000,0.000000,"wait"};
|
|
item3[] = {"Allow_Conn",4,218,50.000000,-200.000000,150.000000,-150.000000,0.000000,"Allow" \n "Conn"};
|
|
item4[] = {"Loading",2,250,-75.000000,-200.000000,25.000000,-150.000000,0.000000,"Loading"};
|
|
item5[] = {"Client",4,218,-75.000000,-275.000000,25.000000,-225.000000,0.000000,"Client"};
|
|
item6[] = {"player_not_null",4,218,-175.000000,-50.000000,-75.000000,0.000000,0.000000,"player" \n "not null"};
|
|
item7[] = {"Prepare",2,250,-75.000000,0.000000,25.000000,50.000000,0.000000,"Prepare"};
|
|
item8[] = {"player___player",4,218,50.000000,50.000000,150.000000,100.000000,0.000000,"player =" \n "player"};
|
|
item9[] = {"Collect",2,250,-75.000000,100.000000,25.000000,150.000000,0.000000,"Collect"};
|
|
item10[] = {"Single_Player",4,218,-200.000000,100.000000,-100.000000,150.000000,3.000000,"Single" \n "Player"};
|
|
item11[] = {"Make_PlayerID",2,250,-200.000000,175.000000,-100.000000,225.000000,0.000000,"Make PlayerID"};
|
|
item12[] = {"Has_PlayerID",4,218,-75.000000,175.000000,25.000000,225.000000,1.000000,"Has PlayerID"};
|
|
item13[] = {"no_PlayerID",4,218,50.000000,150.000000,150.000000,200.000000,2.000000,"no PlayerID"};
|
|
item14[] = {"ERROR__No_Player",2,250,175.000000,150.000000,275.000000,200.000000,0.000000,"ERROR:" \n "No PlayerID"};
|
|
item15[] = {"Request",2,250,-75.000000,250.000000,25.000000,300.000000,0.000000,"Request"};
|
|
item16[] = {"Response",4,218,-175.000000,300.000000,-75.000000,350.000000,0.000000,"Response"};
|
|
item17[] = {"Parse_Login",2,250,-75.000000,350.000000,25.000000,400.000000,0.000000,"Parse Login"};
|
|
item18[] = {"Hive_Bad",4,218,50.000000,350.000000,150.000000,400.000000,10.000000,"Hive" \n "Bad"};
|
|
item19[] = {"ERROR__Wrong_HIVE",2,250,175.000000,350.000000,275.000000,400.000000,0.000000,"ERROR:" \n "Wrong HIVE" \n "Version"};
|
|
item20[] = {"Hive_Ok",4,218,-175.000000,400.000000,-75.000000,450.000000,0.000000,"Hive" \n "Ok"};
|
|
item21[] = {"Phase_One",2,250,-75.000000,450.000000,25.000000,500.000000,0.000000,"Phase One"};
|
|
item22[] = {"Response",4,218,-175.000000,500.000000,-75.000000,550.000000,0.000000,"Response"};
|
|
item23[] = {"Phase_Two",2,4346,-75.000000,550.000000,25.000000,600.000000,0.000000,"Phase Two"};
|
|
item24[] = {"Dead_Player",4,218,50.000000,550.000000,150.000000,600.000000,0.000000,"Dead" \n "Player"};
|
|
item25[] = {"ERROR__Player_Already",2,250,175.000000,550.000000,275.000000,600.000000,0.000000,"ERROR:" \n "Player Already" \n "Dead"};
|
|
item26[] = {"Alive",4,218,-175.000000,600.000000,-75.000000,650.000000,0.000000,"Alive"};
|
|
item27[] = {"Position",2,250,-75.000000,650.000000,25.000000,700.000000,0.000000,"Position"};
|
|
item28[] = {"Version_Ok",4,218,-175.000000,700.000000,-75.000000,750.000000,0.000000,"Version" \n "Ok"};
|
|
item29[] = {"Load_In",2,250,-75.000000,850.000000,25.000000,900.000000,0.000000,"Load In"};
|
|
item30[] = {"Bad_Version",4,218,50.000000,650.000000,150.000000,700.000000,0.000000,"Bad" \n "Version"};
|
|
item31[] = {"ERROR__Bad_Versi",2,250,175.000000,650.000000,275.000000,700.000000,0.000000,"ERROR:" \n "Bad Version"};
|
|
item32[] = {"Display_Ready",4,218,-175.000000,900.000000,-75.000000,950.000000,0.000000,"Display" \n "Ready"};
|
|
item33[] = {"Preload_Display",2,250,-75.000000,950.000000,25.000000,1000.000000,0.000000,"Preload" \n "Display"};
|
|
item34[] = {"Preload_Done",4,218,-175.000000,1000.000000,-75.000000,1050.000000,0.000000,"Preload" \n "Done"};
|
|
item35[] = {"Initialize",2,250,-75.000000,1050.000000,25.000000,1100.000000,0.000000,"Initialize"};
|
|
item36[] = {"Finish",1,250,-75.000000,1150.000000,25.000000,1200.000000,0.000000,"Finish"};
|
|
item37[] = {"True",8,218,25.000000,1100.000000,125.000000,1150.000000,0.000000,"True"};
|
|
item38[] = {"Too_Long",4,218,300.000000,150.000000,400.000000,200.000000,0.000000,"Too" \n "Long"};
|
|
item39[] = {"Too_Long",4,218,300.000000,350.000000,400.000000,400.000000,0.000000,"Too" \n "Long"};
|
|
item40[] = {"Too_Long",4,218,300.000000,550.000000,400.000000,600.000000,0.000000,"Too" \n "Long"};
|
|
item41[] = {"Too_Long",4,218,300.000000,650.000000,400.000000,700.000000,0.000000,"Too" \n "Long"};
|
|
item42[] = {"Enable_Sim",2,250,-75.000000,-100.000000,25.000000,-50.000000,0.000000,"Enable Sim"};
|
|
item43[] = {"Initialized",4,218,-175.000000,-150.000000,-75.000000,-100.000000,0.000000,"Initialized"};
|
|
item44[] = {"New_Character",4,218,-425.000000,275.000000,-325.000000,325.000000,6.000000,"New" \n "Character"};
|
|
item45[] = {"Gender_Selection",2,250,-500.000000,350.000000,-400.000000,400.000000,0.000000,"Gender Selection" \n "Dialog"};
|
|
item46[] = {"Selected",4,218,-450.000000,450.000000,-350.000000,500.000000,0.000000,"Selected"};
|
|
item47[] = {"Process",2,250,-300.000000,475.000000,-200.000000,525.000000,0.000000,"Process"};
|
|
item48[] = {"no_PlayerID",4,218,50.000000,-100.000000,150.000000,-50.000000,2.000000,"no PlayerID"};
|
|
item49[] = {"ERROR__No_Player_1",2,250,175.000000,-100.000000,275.000000,-50.000000,0.000000,"ERROR:" \n "No PlayerID"};
|
|
item50[] = {"Too_Long",4,218,300.000000,-100.000000,400.000000,-50.000000,0.000000,"Too" \n "Long"};
|
|
item51[] = {"Stream",2,250,-75.000000,750.000000,25.000000,800.000000,0.000000,"Stream"};
|
|
item52[] = {"Preloaded",4,218,-175.000000,800.000000,-75.000000,850.000000,0.000000,"Preloaded"};
|
|
item53[] = {"New_Infected_Cha",4,218,-250.000000,350.000000,-150.000000,400.000000,5.000000,"New" \n "Infected" \n "Character"};
|
|
item54[] = {"Player_Zombie__S",2,250,-375.000000,375.000000,-275.000000,425.000000,0.000000,"Player Zombie" \n " Selection"};
|
|
link0[] = {0,1};
|
|
link1[] = {0,5};
|
|
link2[] = {1,2};
|
|
link3[] = {2,3};
|
|
link4[] = {3,4};
|
|
link5[] = {4,43};
|
|
link6[] = {5,4};
|
|
link7[] = {6,7};
|
|
link8[] = {7,8};
|
|
link9[] = {8,9};
|
|
link10[] = {9,10};
|
|
link11[] = {9,12};
|
|
link12[] = {9,13};
|
|
link13[] = {10,11};
|
|
link14[] = {11,12};
|
|
link15[] = {12,15};
|
|
link16[] = {13,14};
|
|
link17[] = {14,38};
|
|
link18[] = {15,16};
|
|
link19[] = {16,17};
|
|
link20[] = {17,18};
|
|
link21[] = {17,20};
|
|
link22[] = {17,44};
|
|
link23[] = {17,53};
|
|
link24[] = {18,19};
|
|
link25[] = {19,39};
|
|
link26[] = {20,21};
|
|
link27[] = {21,22};
|
|
link28[] = {22,23};
|
|
link29[] = {23,24};
|
|
link30[] = {23,26};
|
|
link31[] = {24,25};
|
|
link32[] = {25,40};
|
|
link33[] = {26,27};
|
|
link34[] = {27,28};
|
|
link35[] = {27,30};
|
|
link36[] = {28,51};
|
|
link37[] = {29,32};
|
|
link38[] = {30,31};
|
|
link39[] = {31,41};
|
|
link40[] = {32,33};
|
|
link41[] = {33,34};
|
|
link42[] = {34,35};
|
|
link43[] = {35,37};
|
|
link44[] = {37,36};
|
|
link45[] = {38,14};
|
|
link46[] = {39,19};
|
|
link47[] = {40,25};
|
|
link48[] = {41,31};
|
|
link49[] = {42,6};
|
|
link50[] = {42,48};
|
|
link51[] = {43,42};
|
|
link52[] = {44,45};
|
|
link53[] = {45,46};
|
|
link54[] = {46,47};
|
|
link55[] = {47,20};
|
|
link56[] = {48,49};
|
|
link57[] = {49,50};
|
|
link58[] = {50,49};
|
|
link59[] = {51,52};
|
|
link60[] = {52,29};
|
|
link61[] = {53,54};
|
|
link62[] = {54,20};
|
|
globals[] = {25.000000,1,0,0,0,640,480,1,85,6316128,1,-452.194977,340.078094,1506.747437,277.117401,566,880,1};
|
|
window[] = {2,-1,-1,-1,-1,760,28,999,0,3,584};
|
|
*//*%FSM</HEAD>*/
|
|
class FSM
|
|
{
|
|
fsmName = "DayZ Player Monitor";
|
|
class States
|
|
{
|
|
/*%FSM<STATE "init">*/
|
|
class init
|
|
{
|
|
name = "init";
|
|
init = /*%FSM<STATEINIT""">*/"dayz_versionNo = getText(configFile >> ""CfgMods"" >> ""DayZ"" >> ""version"");" \n
|
|
"diag_log (""DAYZ: CLIENT IS RUNNING DAYZ_CODE "" + str(dayz_versionNo));" \n
|
|
"" \n
|
|
"0 fadeSound 0;" \n
|
|
"//player setPosATL [-2148,6655,0];" \n
|
|
"progressLoadingScreen 0.1;" \n
|
|
"_timeStart = time;" \n
|
|
"player enableSimulation false;" \n
|
|
""/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "Client">*/
|
|
class Client
|
|
{
|
|
priority = 0.000000;
|
|
to="Loading";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"!isServer"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
/*%FSM<LINK "isServer">*/
|
|
class isServer
|
|
{
|
|
priority = 0.000000;
|
|
to="wait";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"isServer"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "wait">*/
|
|
class wait
|
|
{
|
|
name = "wait";
|
|
init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "Allow_Conn">*/
|
|
class Allow_Conn
|
|
{
|
|
priority = 0.000000;
|
|
to="Loading";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"allowConnection"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "Loading">*/
|
|
class Loading
|
|
{
|
|
name = "Loading";
|
|
init = /*%FSM<STATEINIT""">*/"endLoadingScreen;" \n
|
|
"diag_log (""PLOGIN: Initating"");" \n
|
|
"" \n
|
|
"dayz_loadScreenMsg = (localize ""str_player_13""); " \n
|
|
"progressLoadingScreen 0.2;" \n
|
|
""/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "Initialized">*/
|
|
class Initialized
|
|
{
|
|
priority = 0.000000;
|
|
to="Enable_Sim";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"!isnil ""bis_fnc_init"""/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/"dayz_forceSave = {" \n
|
|
"" \n
|
|
" createGearDialog [player, ""RscDisplayGear""];" \n
|
|
"_dialog = findDisplay 106;" \n
|
|
"_magazineArray = [];" \n
|
|
"" \n
|
|
"//Primary Mags" \n
|
|
"for ""_i"" from 109 to 120 do " \n
|
|
"{" \n
|
|
" _control = _dialog displayCtrl _i;" \n
|
|
" _item = gearSlotData _control;" \n
|
|
" _val = gearSlotAmmoCount _control;" \n
|
|
" _max = getNumber (configFile >> ""CfgMagazines"" >> _item >> ""count"");" \n
|
|
" if (_item != """") then {" \n
|
|
" if (_val != _max) then {" \n
|
|
" _magazineArray set [count _magazineArray,[_item,_val]];" \n
|
|
" } else {" \n
|
|
" _magazineArray set [count _magazineArray,_item];" \n
|
|
" };" \n
|
|
" };" \n
|
|
"};" \n
|
|
"" \n
|
|
"//Secondary Mags" \n
|
|
"for ""_i"" from 122 to 129 do " \n
|
|
"{" \n
|
|
" _control = _dialog displayCtrl _i;" \n
|
|
" _item = gearSlotData _control;" \n
|
|
" _val = gearSlotAmmoCount _control;" \n
|
|
" _max = getNumber (configFile >> ""CfgMagazines"" >> _item >> ""count"");" \n
|
|
" if (_item != """") then {" \n
|
|
" if (_val != _max) then {" \n
|
|
" _magazineArray set [count _magazineArray,[_item,_val]];" \n
|
|
" } else {" \n
|
|
" _magazineArray set [count _magazineArray,_item];" \n
|
|
" };" \n
|
|
" };" \n
|
|
"};" \n
|
|
" closeDialog 0;" \n
|
|
"" \n
|
|
" _medical = player call player_sumMedical;" \n
|
|
" " \n
|
|
" /*" \n
|
|
" Get character state details" \n
|
|
" */" \n
|
|
" _currentWpn = currentMuzzle player;" \n
|
|
" _currentAnim = animationState player;" \n
|
|
" _config = configFile >> ""CfgMovesMaleSdr"" >> ""States"" >> _currentAnim;" \n
|
|
" _onLadder = (getNumber (_config >> ""onLadder"")) == 1;" \n
|
|
" _isTerminal = (getNumber (_config >> ""terminal"")) == 1;" \n
|
|
" //_wpnDisabled = (getNumber (_config >> ""disableWeapons"")) == 1;" \n
|
|
" _currentModel = typeOf player;" \n
|
|
" _charPos = getPosATL player;" \n
|
|
" _playerPos = [round(direction player),_charPos];" \n
|
|
" " \n
|
|
" if (_onLadder or _isInVehicle or _isTerminal) then {" \n
|
|
" _currentAnim = """";" \n
|
|
" //If position to be updated, make sure it is at ground level!" \n
|
|
" if ((count _playerPos > 0) and !_isTerminal) then {" \n
|
|
" _charPos set [2,0];" \n
|
|
" _playerPos set[1,_charPos]; " \n
|
|
" };" \n
|
|
" };" \n
|
|
" if (_isInVehicle) then {" \n
|
|
" _currentWpn = """";" \n
|
|
" } else {" \n
|
|
" if ( typeName(_currentWpn) == ""STRING"" ) then {" \n
|
|
" _muzzles = getArray(configFile >> ""cfgWeapons"" >> _currentWpn >> ""muzzles"");" \n
|
|
" if (count _muzzles > 1) then {" \n
|
|
" _currentWpn = currentMuzzle player;" \n
|
|
" }; " \n
|
|
" } else {" \n
|
|
" //diag_log (""DW_DEBUG: _currentWpn: "" + str(_currentWpn));" \n
|
|
" _currentWpn = """";" \n
|
|
" };" \n
|
|
" };" \n
|
|
" _temp = round(player getVariable [""temperature"",100]);" \n
|
|
" _currentState = [_currentWpn,_currentAnim,_temp];" \n
|
|
" " \n
|
|
" dayz_Magazines = _magazineArray;" \n
|
|
" dayzPlayerSave = [player,dayz_Magazines,false,true];" \n
|
|
" publicVariableServer ""dayzPlayerSave"";" \n
|
|
" " \n
|
|
" if (isServer) then {" \n
|
|
" dayzPlayerSave call server_playerSync;" \n
|
|
" };" \n
|
|
"" \n
|
|
" dayz_lastSave = time;" \n
|
|
" dayz_Magazines = [];" \n
|
|
"};"/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "Prepare">*/
|
|
class Prepare
|
|
{
|
|
name = "Prepare";
|
|
init = /*%FSM<STATEINIT""">*/"diag_log (""PLOGIN: Player Model Exists"");"/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "player___player">*/
|
|
class player___player
|
|
{
|
|
priority = 0.000000;
|
|
to="Collect";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"player == player"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "Collect">*/
|
|
class Collect
|
|
{
|
|
name = "Collect";
|
|
init = /*%FSM<STATEINIT""">*/"diag_log (""PLOGIN: Player Ready"");" \n
|
|
"" \n
|
|
"dayz_loadScreenMsg = (localize ""str_player_13""); " \n
|
|
"progressLoadingScreen 0.3;" \n
|
|
"" \n
|
|
"_playerUID = getPlayerUID player;"/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "Single_Player">*/
|
|
class Single_Player
|
|
{
|
|
priority = 3.000000;
|
|
to="Make_PlayerID";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"count playableUnits == 0 and isServer"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
/*%FSM<LINK "no_PlayerID">*/
|
|
class no_PlayerID
|
|
{
|
|
priority = 2.000000;
|
|
to="ERROR__No_Player";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"_playerUID == """""/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
/*%FSM<LINK "Has_PlayerID">*/
|
|
class Has_PlayerID
|
|
{
|
|
priority = 1.000000;
|
|
to="Request";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"!(isNil ""_playerUID"")"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "Make_PlayerID">*/
|
|
class Make_PlayerID
|
|
{
|
|
name = "Make_PlayerID";
|
|
init = /*%FSM<STATEINIT""">*/"//In Single Player" \n
|
|
" isSinglePlayer = true;" \n
|
|
" player sidechat ""PLOGIN: Single player Mode detected!"";" \n
|
|
" _playerUID = ""42"";"/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "Has_PlayerID">*/
|
|
class Has_PlayerID
|
|
{
|
|
priority = 1.000000;
|
|
to="Request";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"!(isNil ""_playerUID"")"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "ERROR__No_Player">*/
|
|
class ERROR__No_Player
|
|
{
|
|
name = "ERROR__No_Player";
|
|
init = /*%FSM<STATEINIT""">*/"endLoadingScreen;" \n
|
|
"selectNoPlayer;" \n
|
|
"_myTime = time;" \n
|
|
"1 cutText [localize ""str_player_14"", ""PLAIN"",15];"/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "Too_Long">*/
|
|
class Too_Long
|
|
{
|
|
priority = 0.000000;
|
|
to="ERROR__No_Player";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"(time - _myTime) > 10"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "Request">*/
|
|
class Request
|
|
{
|
|
name = "Request";
|
|
init = /*%FSM<STATEINIT""">*/"//startLoadingScreen ["""",""DayZ_loadingScreen""];" \n
|
|
"" \n
|
|
"diag_log (""PLOGIN: Requesting Authentication... ("" + _playerUID + "")"");" \n
|
|
"dayz_loadScreenMsg = (localize ""str_player_15"");" \n
|
|
"progressLoadingScreen 0.5;" \n
|
|
"" \n
|
|
"_msg = [];" \n
|
|
"" \n
|
|
"//[""dayzLogin"",[_playerUID,player]] call callRpcProcedure;" \n
|
|
"" \n
|
|
"dayzLogin = [_playerUID,player];" \n
|
|
"publicVariableServer ""dayzLogin"";" \n
|
|
"" \n
|
|
"dayzPlayerLogin = [];" \n
|
|
""/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "Response">*/
|
|
class Response
|
|
{
|
|
priority = 0.000000;
|
|
to="Parse_Login";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"count (dayzPlayerLogin) > 0"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/"_msg = dayzPlayerLogin;"/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "Parse_Login">*/
|
|
class Parse_Login
|
|
{
|
|
name = "Parse_Login";
|
|
init = /*%FSM<STATEINIT""">*/"progressLoadingScreen 0.6;" \n
|
|
"_charID = _msg select 0;" \n
|
|
"_inventory = _msg select 1;" \n
|
|
"_backpack = _msg select 2;" \n
|
|
"_survival = _msg select 3;" \n
|
|
"_isNew = _msg select 4;" \n
|
|
"//_state = _msg select 5;" \n
|
|
"_version = _msg select 5;" \n
|
|
"_model = _msg select 6;" \n
|
|
"" \n
|
|
"_isHiveOk = false;" \n
|
|
"_newPlayer = false;" \n
|
|
"_isInfected = _msg select 9;" \n
|
|
"" \n
|
|
"if (count _msg > 7) then {" \n
|
|
" _isHiveOk = _msg select 7;" \n
|
|
" _newPlayer = _msg select 8;" \n
|
|
" diag_log (""PLAYER RESULT: "" + str(_isHiveOk));" \n
|
|
"};" \n
|
|
"" \n
|
|
"dayz_loadScreenMsg = (localize ""str_player_17""); " \n
|
|
"progressLoadingScreen 0.7;" \n
|
|
"diag_log (""PLOGIN: authenticated with : "" + str(_msg));" \n
|
|
"" \n
|
|
"//Not Equal Failure" \n
|
|
"" \n
|
|
"if (isNil ""_model"") then {" \n
|
|
" _model = ""Survivor2_DZ"";" \n
|
|
" diag_log (""PLOGIN: Model was nil, loading as survivor"");" \n
|
|
"};" \n
|
|
"" \n
|
|
"if (_model == """") then {" \n
|
|
" _model = ""Survivor2_DZ"";" \n
|
|
" diag_log (""PLOGIN: Model was empty, loading as survivor"");" \n
|
|
"};" \n
|
|
"" \n
|
|
"if (_model == ""Survivor1_DZ"") then {" \n
|
|
" _model = ""Survivor2_DZ"";" \n
|
|
"};" \n
|
|
"" \n
|
|
"_isHack = false;" \n
|
|
"if (_model == ""hacker"") then {" \n
|
|
" _isHack = true;" \n
|
|
"};"/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "Hive_Bad">*/
|
|
class Hive_Bad
|
|
{
|
|
priority = 10.000000;
|
|
to="ERROR__Wrong_HIVE";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"!_isHiveOk"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
/*%FSM<LINK "New_Character">*/
|
|
class New_Character
|
|
{
|
|
priority = 6.000000;
|
|
to="Gender_Selection";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"_isNew && _isInfected == 0"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
/*%FSM<LINK "New_Infected_Cha">*/
|
|
class New_Infected_Cha
|
|
{
|
|
priority = 5.000000;
|
|
to="Player_Zombie__S";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"_isNew && _isInfected == 1"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
/*%FSM<LINK "Hive_Ok">*/
|
|
class Hive_Ok
|
|
{
|
|
priority = 0.000000;
|
|
to="Phase_One";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "ERROR__Wrong_HIVE">*/
|
|
class ERROR__Wrong_HIVE
|
|
{
|
|
name = "ERROR__Wrong_HIVE";
|
|
init = /*%FSM<STATEINIT""">*/"endLoadingScreen;" \n
|
|
"selectNoPlayer;" \n
|
|
"" \n
|
|
"_myTime = time;" \n
|
|
"1 cutText [""This server is running an incorrect version of the server side application. If this is the first time you have seen this error please reconnect. If you are the server admin please contact DayZepoch.com staff."", ""PLAIN"",5];"/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "Too_Long">*/
|
|
class Too_Long
|
|
{
|
|
priority = 0.000000;
|
|
to="ERROR__Wrong_HIVE";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"(time - _myTime) > 10"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "Phase_One">*/
|
|
class Phase_One
|
|
{
|
|
name = "Phase_One";
|
|
init = /*%FSM<STATEINIT""">*/"//_model = ""BanditW1_DZ"";" \n
|
|
"" \n
|
|
"dayz_playerName = name player;" \n
|
|
"_model call player_switchModel;" \n
|
|
"" \n
|
|
"player allowDamage false;" \n
|
|
"_lastAte = _survival select 1;" \n
|
|
"_lastDrank = _survival select 2;" \n
|
|
"" \n
|
|
"_usedFood = 0;" \n
|
|
"_usedWater = 0;" \n
|
|
"" \n
|
|
"//_inventory = [[""Mk_48_DZ"",""NVGoggles"",""Binocular_Vector"",""M9SD"",""ItemGPS"",""ItemToolbox"",""ItemEtool"",""ItemCompass"",""ItemMatchbox"",""FoodCanBakedBeans"",""ItemKnife"",""ItemMap"",""ItemWatch""],[[""100Rnd_762x51_M240"",47],""ItemPainkiller"",""ItemBandage"",""15Rnd_9x19_M9SD"",""100Rnd_762x51_M240"",""ItemBandage"",""ItemBandage"",""15Rnd_9x19_M9SD"",""15Rnd_9x19_M9SD"",""15Rnd_9x19_M9SD"",""ItemMorphine"",""PartWoodPile""]];" \n
|
|
"" \n
|
|
"dayzGearSave = false;" \n
|
|
"_inventory call player_gearSet;" \n
|
|
"" \n
|
|
"//Assess in backpack" \n
|
|
"if (count _backpack > 0) then {" \n
|
|
" //Populate" \n
|
|
" _backpackType = _backpack select 0;" \n
|
|
" _backpackWpn = _backpack select 1;" \n
|
|
" _backpackMagTypes = [];" \n
|
|
" _backpackMagQty = [];" \n
|
|
" if (count _backpackWpn > 0) then {" \n
|
|
" _backpackMagTypes = (_backpack select 2) select 0;" \n
|
|
" _backpackMagQty = (_backpack select 2) select 1;" \n
|
|
" };" \n
|
|
" _countr = 0;" \n
|
|
" _backpackWater = 0;" \n
|
|
"" \n
|
|
" //Add backpack" \n
|
|
" if (_backpackType != """") then {" \n
|
|
" _isOK = isClass(configFile >> ""CfgVehicles"" >>_backpackType);" \n
|
|
" if (_isOK) then {" \n
|
|
" player addBackpack _backpackType; " \n
|
|
" dayz_myBackpack = unitBackpack player;" \n
|
|
" " \n
|
|
" //Fill backpack contents" \n
|
|
" //Weapons" \n
|
|
" _backpackWpnTypes = [];" \n
|
|
" _backpackWpnQtys = [];" \n
|
|
" if (count _backpackWpn > 0) then {" \n
|
|
" _backpackWpnTypes = _backpackWpn select 0;" \n
|
|
" _backpackWpnQtys = _backpackWpn select 1;" \n
|
|
" };" \n
|
|
" _countr = 0;" \n
|
|
" {" \n
|
|
" if (_x == ""Crossbow"") then { _x = ""Crossbow_DZ"" };" \n
|
|
" dayz_myBackpack addWeaponCargoGlobal [_x,(_backpackWpnQtys select _countr)];" \n
|
|
" _countr = _countr + 1;" \n
|
|
" } forEach _backpackWpnTypes;" \n
|
|
" " \n
|
|
" //Magazines" \n
|
|
" _countr = 0;" \n
|
|
" {" \n
|
|
" if (_x == ""BoltSteel"") then { _x = ""WoodenArrow"" }; // Convert BoltSteel to WoodenArrow" \n
|
|
" dayz_myBackpack addMagazineCargoGlobal [_x,(_backpackMagQty select _countr)];" \n
|
|
" _countr = _countr + 1;" \n
|
|
" } forEach _backpackMagTypes;" \n
|
|
" " \n
|
|
" dayz_myBackpackMags = getMagazineCargo dayz_myBackpack;" \n
|
|
" dayz_myBackpackWpns = getWeaponCargo dayz_myBackpack;" \n
|
|
" } else {" \n
|
|
" dayz_myBackpack = objNull;" \n
|
|
" dayz_myBackpackMags = [];" \n
|
|
" dayz_myBackpackWpns = [];" \n
|
|
" };" \n
|
|
" } else {" \n
|
|
" dayz_myBackpack = objNull;" \n
|
|
" dayz_myBackpackMags = [];" \n
|
|
" dayz_myBackpackWpns = [];" \n
|
|
" };" \n
|
|
"} else {" \n
|
|
" dayz_myBackpack = objNull;" \n
|
|
" dayz_myBackpackMags = [];" \n
|
|
" dayz_myBackpackWpns = [];" \n
|
|
"};" \n
|
|
"" \n
|
|
"dayzPlayerLogin2 = [];" \n
|
|
"//[""dayzLogin2"",[_charID,player,_playerUID]] call callRpcProcedure;" \n
|
|
"" \n
|
|
"dayzLogin2 = [_charID,player,_playerUID];" \n
|
|
"publicVariableServer ""dayzLogin2"";" \n
|
|
"" \n
|
|
"dayz_loadScreenMsg = ""Requesting Character data from server"";" \n
|
|
"progressLoadingScreen 0.8;" \n
|
|
"diag_log ""Attempting Phase two..."";"/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "Response">*/
|
|
class Response
|
|
{
|
|
priority = 0.000000;
|
|
to="Phase_Two";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"count (dayzPlayerLogin2) > 0"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/"_msg = player getVariable[""worldspace"",[]];"/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "Phase_Two">*/
|
|
class Phase_Two
|
|
{
|
|
name = "Phase_Two";
|
|
init = /*%FSM<STATEINIT""">*/"dayz_loadScreenMsg = ""Character Data received from server""; " \n
|
|
"diag_log ""Finished..."";" \n
|
|
"" \n
|
|
"_worldspace = dayzPlayerLogin2 select 0;" \n
|
|
"_state = dayzPlayerLogin2 select 1;" \n
|
|
"" \n
|
|
"_setDir = _worldspace select 0;" \n
|
|
"_setPos = _worldspace select 1;" \n
|
|
"" \n
|
|
"if(dayz_paraSpawn and !(player isKindOf ""PZombie_VB"")) then {" \n
|
|
" _para = createVehicle [""ParachuteWest"", _setPos, [], 0, ""FLY""]; " \n
|
|
" player moveInDriver _para;" \n
|
|
"} else {" \n
|
|
" player setPosATL _setPos;" \n
|
|
" player setDir _setDir;" \n
|
|
"};" \n
|
|
"" \n
|
|
"//Legs and Arm fractures" \n
|
|
"_legs = player getVariable [""hit_legs"",0];" \n
|
|
"_arms = player getVariable [""hit_hands"",0];" \n
|
|
"" \n
|
|
"if (_legs > 1) then {" \n
|
|
" player setHit[""legs"",1];" \n
|
|
" r_fracture_legs = true;" \n
|
|
"};" \n
|
|
"if (_arms > 1) then {" \n
|
|
" player setHit[""hands"",1];" \n
|
|
" r_fracture_arms = true;" \n
|
|
"};" \n
|
|
"" \n
|
|
"//Record current weapon state" \n
|
|
"dayz_myWeapons = weapons player; //Array of last checked weapons" \n
|
|
"dayz_myItems = items player; //Array of last checked items" \n
|
|
"dayz_myMagazines = magazines player;" \n
|
|
"" \n
|
|
"dayz_playerUID = _playerUID;" \n
|
|
"" \n
|
|
"if ((_isNew) OR (count _inventory == 0)) then {" \n
|
|
" //player is new, add initial loadout" \n
|
|
" _config = (configFile >> ""CfgSurvival"" >> ""Inventory"" >> ""Default"");" \n
|
|
" _mags = getArray (_config >> ""magazines"");" \n
|
|
" _wpns = getArray (_config >> ""weapons""); " \n
|
|
" _bcpk = getText (_config >> ""backpack"");" \n
|
|
" _bcpkWpn = getText (_config >> ""backpackWeapon"");" \n
|
|
" if(!isNil ""DefaultMagazines"") then {" \n
|
|
" _mags = DefaultMagazines;" \n
|
|
" };" \n
|
|
" if(!isNil ""DefaultWeapons"") then {" \n
|
|
" _wpns = DefaultWeapons;" \n
|
|
" };" \n
|
|
" if(!isNil ""DefaultBackpack"") then {" \n
|
|
" _bcpk = DefaultBackpack;" \n
|
|
" };" \n
|
|
" if(!isNil ""DefaultBackpackWeapon"") then {" \n
|
|
" _bcpkWpn = DefaultBackpackWeapon;" \n
|
|
" };" \n
|
|
" //Add inventory" \n
|
|
" {" \n
|
|
" _isOK = isClass(configFile >> ""CfgMagazines"" >> _x);" \n
|
|
" if (_isOK) then {" \n
|
|
" player addMagazine _x;" \n
|
|
" };" \n
|
|
" } forEach _mags;" \n
|
|
" {" \n
|
|
" _isOK = isClass(configFile >> ""CfgWeapons"" >> _x);" \n
|
|
" if (_isOK) then {" \n
|
|
" player addWeapon _x;" \n
|
|
" };" \n
|
|
" } forEach _wpns;" \n
|
|
" " \n
|
|
" player addBackpack _bcpk; " \n
|
|
" dayz_myBackpack = unitBackpack player;" \n
|
|
"" \n
|
|
" if (_bcpkWpn != """") then {" \n
|
|
" dayz_myBackpack addWeaponCargoGlobal [_bcpkWpn,1];" \n
|
|
" };" \n
|
|
"};" \n
|
|
"" \n
|
|
"//Work out survival time" \n
|
|
"_totalMins = _survival select 0;" \n
|
|
"_days = floor (_totalMins / 1440);" \n
|
|
"_totalMins = (_totalMins - (_days * 1440));" \n
|
|
"_hours = floor (_totalMins / 60);" \n
|
|
"_mins = (_totalMins - (_hours * 60));" \n
|
|
"" \n
|
|
"//player variables" \n
|
|
"dayz_characterID = _charID;" \n
|
|
"dayz_hasFire = objNull; //records players Fireplace object" \n
|
|
"dayz_myCursorTarget = objNull;" \n
|
|
"dayz_myPosition = getPosATL player; //Last recorded position" \n
|
|
"dayz_lastMeal = (_lastAte * 60);" \n
|
|
"dayz_lastDrink = (_lastDrank * 60);" \n
|
|
"dayz_zombiesLocal = 0; //Used to record how many local zombies being tracked" \n
|
|
"dayz_skilllevel = _days; //total alive dayz" \n
|
|
"" \n
|
|
"//load in medical details" \n
|
|
"r_player_dead = player getVariable[""USEC_isDead"",false];" \n
|
|
"r_player_unconscious = player getVariable[""NORRN_unconscious"", false];" \n
|
|
"r_player_infected = player getVariable[""USEC_infected"",false];" \n
|
|
"r_player_injured = player getVariable[""USEC_injured"",false];" \n
|
|
"r_player_inpain = player getVariable[""USEC_inPain"",false];" \n
|
|
"r_player_cardiac = player getVariable[""USEC_isCardiac"",false];" \n
|
|
"r_player_lowblood = player getVariable[""USEC_lowBlood"",false];" \n
|
|
"r_player_blood = player getVariable[""USEC_BloodQty"",r_player_bloodTotal];" \n
|
|
"" \n
|
|
"//Hunger/Thirst" \n
|
|
"_messing = player getVariable[""messing"",[0,0]];" \n
|
|
"dayz_hunger = _messing select 0;" \n
|
|
"dayz_thirst = _messing select 1;" \n
|
|
"" \n
|
|
"//player setVariable [""humanity"",-3000, true];"/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "Alive">*/
|
|
class Alive
|
|
{
|
|
priority = 0.000000;
|
|
to="Position";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"!r_player_dead"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
/*%FSM<LINK "Dead_Player">*/
|
|
class Dead_Player
|
|
{
|
|
priority = 0.000000;
|
|
to="ERROR__Player_Already";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"r_player_dead"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "ERROR__Player_Already">*/
|
|
class ERROR__Player_Already
|
|
{
|
|
name = "ERROR__Player_Already";
|
|
init = /*%FSM<STATEINIT""">*/"endLoadingScreen;" \n
|
|
"selectNoPlayer;" \n
|
|
"_myTime = time;" \n
|
|
""/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "Too_Long">*/
|
|
class Too_Long
|
|
{
|
|
priority = 0.000000;
|
|
to="ERROR__Player_Already";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"(time - _myTime) > 10"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "Position">*/
|
|
class Position
|
|
{
|
|
name = "Position";
|
|
init = /*%FSM<STATEINIT""">*/"" \n
|
|
"//Location" \n
|
|
"_myLoc = getPosATL player;" \n
|
|
"" \n
|
|
"dayz_loadScreenMsg = ""Setup Completed, please wait..."";" \n
|
|
"progressLoadingScreen 0.9;" \n
|
|
"" \n
|
|
"//GUI" \n
|
|
"3 cutRsc [""playerStatusGUI"", ""PLAIN"",0];" \n
|
|
"//5 cutRsc [""playerKillScore"", ""PLAIN"",2];" \n
|
|
"" \n
|
|
"//Update GUI" \n
|
|
"call player_updateGui;" \n
|
|
"_id = [] spawn {" \n
|
|
" disableSerialization;" \n
|
|
" _display = uiNamespace getVariable 'DAYZ_GUI_display';" \n
|
|
" _control = _display displayCtrl 1204;" \n
|
|
" _control ctrlShow false;" \n
|
|
" if (!r_player_injured) then {" \n
|
|
" _ctrlBleed = _display displayCtrl 1303;" \n
|
|
" _ctrlBleed ctrlShow false;" \n
|
|
" };" \n
|
|
" if (!r_fracture_legs and !r_fracture_arms) then {" \n
|
|
" _ctrlFracture = _display displayCtrl 1203;" \n
|
|
" _ctrlFracture ctrlShow false;" \n
|
|
" };" \n
|
|
"};" \n
|
|
"" \n
|
|
"call ui_changeDisplay;"/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "Bad_Version">*/
|
|
class Bad_Version
|
|
{
|
|
priority = 0.000000;
|
|
to="ERROR__Bad_Versi";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"_version != dayz_versionNo"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
/*%FSM<LINK "Version_Ok">*/
|
|
class Version_Ok
|
|
{
|
|
priority = 0.000000;
|
|
to="Stream";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"_version == dayz_versionNo"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "Load_In">*/
|
|
class Load_In
|
|
{
|
|
name = "Load_In";
|
|
init = /*%FSM<STATEINIT""">*/"//Reveal action types" \n
|
|
"" \n
|
|
"{player reveal _x} forEach (nearestObjects [getPosATL player, dayz_reveal, 50]);" \n
|
|
"" \n
|
|
"dayz_clientPreload = true;" \n
|
|
"3 fadeSound 1;" \n
|
|
"1 cutText ["""", ""PLAIN""];" \n
|
|
"0 fadeMusic 0.5;" \n
|
|
"" \n
|
|
"//Check mission objects" \n
|
|
"{ _id = [_x,0] spawn object_roadFlare } forEach (allMissionObjects ""RoadFlare"");" \n
|
|
"{ _id = [_x,1] spawn object_roadFlare } forEach (allMissionObjects ""ChemLight"");"/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "Display_Ready">*/
|
|
class Display_Ready
|
|
{
|
|
priority = 0.000000;
|
|
to="Preload_Display";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"!(isNull (findDisplay 46))"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "ERROR__Bad_Versi">*/
|
|
class ERROR__Bad_Versi
|
|
{
|
|
name = "ERROR__Bad_Versi";
|
|
init = /*%FSM<STATEINIT""">*/"endLoadingScreen;" \n
|
|
"selectNoPlayer;" \n
|
|
"_myTime = time;" \n
|
|
"1 cutText [format[localize ""str_player_18"",dayz_versionNo,_version], ""PLAIN""];"/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "Too_Long">*/
|
|
class Too_Long
|
|
{
|
|
priority = 0.000000;
|
|
to="ERROR__Bad_Versi";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"(time - _myTime) > 10"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "Preload_Display">*/
|
|
class Preload_Display
|
|
{
|
|
name = "Preload_Display";
|
|
init = /*%FSM<STATEINIT""">*/"dayz_lastCheckBit = 0;" \n
|
|
"" \n
|
|
"(findDisplay 46) displayAddEventHandler [""KeyDown"",""_this call dayz_spaceInterrupt""];" \n
|
|
"player disableConversation true;" \n
|
|
"" \n
|
|
"eh_player_killed = player addeventhandler [""FiredNear"",{_this call player_weaponFiredNear;} ];" \n
|
|
"//_eh_combat_projectilenear = player addEventHandler [""IncomingFire"",{_this call player_projectileNear;}];" \n
|
|
"" \n
|
|
"//Select Weapon" \n
|
|
"// Desc: select default weapon & handle multiple muzzles" \n
|
|
"_playerObjName = format[""player%1"",_playerUID];" \n
|
|
"call compile format[""player%1 = player;"",_playerUID];" \n
|
|
"diag_log (format[""player%1 = player"",_playerUID]);" \n
|
|
"publicVariable _playerObjName;" \n
|
|
"" \n
|
|
"//_state = player getVariable[""state"",[]];" \n
|
|
"_currentWpn = """";" \n
|
|
"_currentAnim = """";" \n
|
|
"if (count _state > 0) then {" \n
|
|
" //Reload players state" \n
|
|
" _currentWpn = _state select 0;" \n
|
|
" _currentAnim = _state select 1;" \n
|
|
" //Reload players state" \n
|
|
" if (count _state > 2) then {" \n
|
|
" dayz_temperatur = _state select 2;" \n
|
|
" };" \n
|
|
"};" \n
|
|
"" \n
|
|
"if (player hasWeapon ""MeleeCrowbar"") then {" \n
|
|
" player addMagazine 'crowbar_swing';" \n
|
|
"};" \n
|
|
"if (player hasWeapon ""MeleeHatchet"") then {" \n
|
|
" player addMagazine 'hatchet_swing';" \n
|
|
"};" \n
|
|
"if (player hasWeapon ""MeleeMachete"") then {" \n
|
|
" player addMagazine 'machete_swing';" \n
|
|
"};" \n
|
|
"if (player hasWeapon ""MeleeFishingPole"") then {" \n
|
|
" player addMagazine 'Fishing_Swing';" \n
|
|
"};" \n
|
|
"" \n
|
|
"reload player;" \n
|
|
"" \n
|
|
"if (_currentAnim != """" and !dayz_paraSpawn) then {" \n
|
|
" [objNull, player, rSwitchMove,_currentAnim] call RE;" \n
|
|
"};" \n
|
|
"if (_currentWpn != """") then {" \n
|
|
" player selectWeapon _currentWpn;" \n
|
|
"} else {" \n
|
|
" //Establish default weapon" \n
|
|
" if (count weapons player > 0) then" \n
|
|
" {" \n
|
|
" private['_type', '_muzzles'];" \n
|
|
"" \n
|
|
" _type = ((weapons player) select 0);" \n
|
|
" // check for multiple muzzles (eg: GL)" \n
|
|
" _muzzles = getArray(configFile >> ""cfgWeapons"" >> _type >> ""muzzles"");" \n
|
|
"" \n
|
|
" if (count _muzzles > 1) then {" \n
|
|
" player selectWeapon (_muzzles select 0);" \n
|
|
" } else {" \n
|
|
" player selectWeapon _type;" \n
|
|
" };" \n
|
|
" };" \n
|
|
"};" \n
|
|
"" \n
|
|
"//Player control loop" \n
|
|
"dayz_monitor1 = [] spawn {" \n
|
|
" while {true} do {" \n
|
|
" call player_zombieCheck;" \n
|
|
" sleep 1;" \n
|
|
" };" \n
|
|
"};" \n
|
|
"" \n
|
|
""/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "Preload_Done">*/
|
|
class Preload_Done
|
|
{
|
|
priority = 0.000000;
|
|
to="Initialize";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"dayz_preloadFinished"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "Initialize">*/
|
|
class Initialize
|
|
{
|
|
name = "Initialize";
|
|
init = /*%FSM<STATEINIT""">*/"#define ods(arg1) ""armaperflib"" callextension arg1" \n
|
|
"" \n
|
|
"//Medical" \n
|
|
"dayz_medicalH = [] execVM ""\z\addons\dayz_code\medical\init_medical.sqf""; //Medical Monitor Script (client only)" \n
|
|
"[player] call fnc_usec_damageHandle;" \n
|
|
"if (r_player_unconscious) then {" \n
|
|
" r_player_timeout = player getVariable[""unconsciousTime"",0];" \n
|
|
" player playActionNow ""Die"";" \n
|
|
"};" \n
|
|
"player allowDamage true;" \n
|
|
"player enableSimulation true;" \n
|
|
"0 cutText ["""", ""BLACK IN"",3];" \n
|
|
"" \n
|
|
"//Add core tools" \n
|
|
"player addWeapon ""Loot"";" \n
|
|
"player addWeapon ""Flare"";" \n
|
|
"" \n
|
|
"//load in medical details" \n
|
|
"r_player_dead = player getVariable[""USEC_isDead"",false];" \n
|
|
"r_player_unconscious = player getVariable[""NORRN_unconscious"", false];" \n
|
|
"r_player_infected = player getVariable[""USEC_infected"",false];" \n
|
|
"r_player_injured = player getVariable[""USEC_injured"",false];" \n
|
|
"r_player_inpain = player getVariable[""USEC_inPain"",false];" \n
|
|
"r_player_cardiac = player getVariable[""USEC_isCardiac"",false];" \n
|
|
"r_player_lowblood = player getVariable[""USEC_lowBlood"",false];" \n
|
|
"r_player_blood = player getVariable[""USEC_BloodQty"",r_player_bloodTotal];" \n
|
|
"" \n
|
|
"""colorCorrections"" ppEffectEnable true;" \n
|
|
"""colorCorrections"" ppEffectAdjust [1, 1, 0, [1, 1, 1, 0.0], [1, 1, 1, (r_player_blood/r_player_bloodTotal)], [1, 1, 1, 0.0]];" \n
|
|
"""colorCorrections"" ppEffectCommit 0;" \n
|
|
"" \n
|
|
"dayz_gui = [] spawn {" \n
|
|
" private[""_distance""];" \n
|
|
" dayz_musicH = [] spawn player_music;" \n
|
|
" while {true} do {" \n
|
|
" _array = player call world_surfaceNoise;" \n
|
|
" dayz_surfaceNoise = _array select 1;" \n
|
|
" dayz_surfaceType = _array select 0;" \n
|
|
"" \n
|
|
" call player_checkStealth;" \n
|
|
" dayz_statusArray = [] call player_updateGui;" \n
|
|
" if (!isNull cursorTarget and !dayz_heartBeat) then {" \n
|
|
" if (alive cursorTarget) then {" \n
|
|
" _id = cursorTarget spawn dayz_lowHumanity;" \n
|
|
" };" \n
|
|
" };" \n
|
|
" sleep 0.2;" \n
|
|
" };" \n
|
|
"};" \n
|
|
"" \n
|
|
"dayzGearSave = true;" \n
|
|
"" \n
|
|
"dayz_slowCheck = [] spawn player_spawn_2;" \n
|
|
"" \n
|
|
"_world = toUpper(worldName); //toUpper(getText (configFile >> ""CfgWorlds"" >> (worldName) >> ""description""));" \n
|
|
"_nearestCity = nearestLocations [getPos player, [""NameCityCapital"",""NameCity"",""NameVillage"",""NameLocal""],1000];" \n
|
|
"_town = ""Wilderness"";" \n
|
|
"" \n
|
|
"if (count _nearestCity > 0) then {_town = text (_nearestCity select 0)};" \n
|
|
"" \n
|
|
"_strTime = call curTimeStr;" \n
|
|
"_strDate = date;" \n
|
|
"" \n
|
|
"_first = [_world,_town,localize (""str_player_06"") + "" "" + str(_days)] spawn BIS_fnc_infoText;" \n
|
|
"" \n
|
|
"dayz_animalCheck = [] spawn player_spawn_1;" \n
|
|
"" \n
|
|
"dayz_spawnCheck = [] spawn {" \n
|
|
" while {true} do {" \n
|
|
" [""both""] call player_spawnCheck;" \n
|
|
" sleep 8;" \n
|
|
" };" \n
|
|
"};" \n
|
|
"" \n
|
|
"dayz_friendliesCheck = [] spawn {" \n
|
|
" while {true} do {" \n
|
|
" call player_friendliesCheck;" \n
|
|
" sleep 2;" \n
|
|
" };" \n
|
|
"};" \n
|
|
"" \n
|
|
"dayz_Totalzedscheck = [] spawn {" \n
|
|
" while {true} do {" \n
|
|
" dayz_maxCurrentZeds = {alive _x} count entities ""zZombie_Base"";" \n
|
|
" sleep 60;" \n
|
|
" };" \n
|
|
"};" \n
|
|
"" \n
|
|
"dayz_backpackcheck = [] spawn {" \n
|
|
" while {true} do {" \n
|
|
" call player_dumpBackpack;" \n
|
|
" sleep 1;" \n
|
|
" };" \n
|
|
"};" \n
|
|
"//Removed for now" \n
|
|
"//[] execVM ""\z\addons\dayz_code\system\antihack.sqf"";" \n
|
|
"" \n
|
|
"// TODO: questionably" \n
|
|
"{ _x call fnc_vehicleEventHandler; } forEach vehicles;" \n
|
|
"" \n
|
|
"private[""_fadeFire""];" \n
|
|
"{" \n
|
|
" _fadeFire = _x getVariable['fadeFire', true];" \n
|
|
" if (!_fadeFire) then {" \n
|
|
" nul = [_x,2,0,false,false] spawn BIS_Effects_Burn;" \n
|
|
" };" \n
|
|
"} forEach allMissionObjects ""SpawnableWreck"";" \n
|
|
""/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "True">*/
|
|
class True
|
|
{
|
|
priority = 0.000000;
|
|
to="Finish";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "Finish">*/
|
|
class Finish
|
|
{
|
|
name = "Finish";
|
|
init = /*%FSM<STATEINIT""">*/"dayzGearSave = true;" \n
|
|
"dayz_myPosition = getPosATL player;" \n
|
|
"" \n
|
|
"//[""dayzLoginRecord"",[_playerUID,_charID,0]] call callRpcProcedure;" \n
|
|
"" \n
|
|
"dayzLoginRecord = [_playerUID,_charID,0];" \n
|
|
"publicVariableServer ""dayzLoginRecord"";" \n
|
|
""/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "Enable_Sim">*/
|
|
class Enable_Sim
|
|
{
|
|
name = "Enable_Sim";
|
|
init = /*%FSM<STATEINIT""">*/"_myAnim = getNumber(configFile >> ""CfgPatches"" >> ""dayz_anim"" >> ""isUpdated"");" \n
|
|
""/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "no_PlayerID">*/
|
|
class no_PlayerID
|
|
{
|
|
priority = 2.000000;
|
|
to="ERROR__No_Player_1";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"_myAnim == 0"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
/*%FSM<LINK "player_not_null">*/
|
|
class player_not_null
|
|
{
|
|
priority = 0.000000;
|
|
to="Prepare";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"!isNull player"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "Gender_Selection">*/
|
|
class Gender_Selection
|
|
{
|
|
name = "Gender_Selection";
|
|
init = /*%FSM<STATEINIT""">*/"dayz_selectGender = ""Survivor2_DZ"";" \n
|
|
"1 cutText ["""", ""BLACK"",0];" \n
|
|
"endLoadingScreen;" \n
|
|
"createDialog ""RscDisplayGenderSelect"";"/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "Selected">*/
|
|
class Selected
|
|
{
|
|
priority = 0.000000;
|
|
to="Process";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"!dialog"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "Process">*/
|
|
class Process
|
|
{
|
|
name = "Process";
|
|
init = /*%FSM<STATEINIT""">*/"_model = dayz_selectGender;"/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "Hive_Ok">*/
|
|
class Hive_Ok
|
|
{
|
|
priority = 0.000000;
|
|
to="Phase_One";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "ERROR__No_Player_1">*/
|
|
class ERROR__No_Player_1
|
|
{
|
|
name = "ERROR__No_Player_1";
|
|
init = /*%FSM<STATEINIT""">*/"endLoadingScreen;" \n
|
|
"selectNoPlayer;" \n
|
|
"_myTime = time;" \n
|
|
"1 cutText [""You have an outdated version of 'dayz_anim' please download the correct version"", ""PLAIN"",15];"/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "Too_Long">*/
|
|
class Too_Long
|
|
{
|
|
priority = 0.000000;
|
|
to="ERROR__No_Player_1";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"(time - _myTime) > 10"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "Stream">*/
|
|
class Stream
|
|
{
|
|
name = "Stream";
|
|
init = /*%FSM<STATEINIT""">*/"//stream in location" \n
|
|
"//call stream_locationCheck;" \n
|
|
"" \n
|
|
"_zombies = (getPosATL player) nearEntities [""zZombie_Base"",30];" \n
|
|
"{deleteVehicle _x} forEach _zombies;" \n
|
|
"" \n
|
|
"//endLoadingScreen;"/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "Preloaded">*/
|
|
class Preloaded
|
|
{
|
|
priority = 0.000000;
|
|
to="Load_In";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"preloadCamera _setPos"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "Player_Zombie__S">*/
|
|
class Player_Zombie__S
|
|
{
|
|
name = "Player_Zombie__S";
|
|
init = /*%FSM<STATEINIT""">*/"_zssupported = [""pz_policeman"",""pz_suit1"",""pz_suit2"",""pz_worker1"",""pz_worker2"",""pz_worker3"",""pz_doctor"",""pz_teacher"",""pz_hunter"",""pz_villager1"",""pz_villager2"",""pz_villager3"",""pz_priest""];" \n
|
|
"_model = (_zssupported select floor(random(count _zssupported)));"/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "Hive_Ok">*/
|
|
class Hive_Ok
|
|
{
|
|
priority = 0.000000;
|
|
to="Phase_One";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
};
|
|
initState="init";
|
|
finalStates[] =
|
|
{
|
|
"Finish",
|
|
};
|
|
};
|
|
/*%FSM</COMPILE>*/ |