mirror of
https://github.com/EpochModTeam/Epoch.git
synced 2024-08-30 18:22:13 +00:00
commit
fc45cb8f69
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -27,6 +27,7 @@ forceRestartTime = 14400; // 4 hour restarts
|
||||
{ 900, "ChangeWeather", 1 , 2, -1, {} ,{"VR"}},
|
||||
{ 1200, "ContainerSpawner", 0 , 2, -1, {} ,{"VR"}},
|
||||
{ 1440, "GardenManager", 0 , 2, -1, {} ,{"VR"}},
|
||||
{ 1440, "SolarChargerManager", 0 , 2, -1, {} ,{"VR"}},
|
||||
{ 900, "MoneyDrop", 0 , 2 , -1, {} ,{"VR"}},
|
||||
{ 300, "PlantSpawner", 0 , 2 , -1, {} ,{"VR"}} //No comma on last Entry
|
||||
};
|
||||
@ -63,8 +64,10 @@ forceRestartTime = 14400; // 4 hour restarts
|
||||
};
|
||||
|
||||
// vehicles - Max vehicle slots is calculated from per vehicle limits below. Warning! Higher the number lower the performance.
|
||||
immuneIfStartInBase = "true"; // Protect vehicles from damage in bases until first unlocked after restart
|
||||
ReservedVehSlots = 50; // Reserved Vehicle Slots (only needed, if you manually spawn in additional Vehicles - AdminTool / Blackmarket...)
|
||||
disableAutoRefuel = "true"; // Removes auto refuel from all buildings at server startup.
|
||||
disableAutoRefuel = "false"; // Removes auto refuel from all buildings at server startup.
|
||||
disableFuelNearPlots = "false"; // Removes auto refuel in PlotPole-Ranges at server startup.
|
||||
VehLockMessages = "true"; // Give players a hint, that the Vehicle is locked / unlocked
|
||||
removevehweapons[] = { // remove these Weapons from spawned Vehicles
|
||||
"missiles_DAR","gatling_30mm","gatling_20mm","missiles_DAGR","cannon_30mm_Plane_CAS_02_F","Missile_AA_03_Plane_CAS_02_F","Missile_AGM_01_Plane_CAS_02_F","Rocket_03_HE_Plane_CAS_02_F",
|
||||
@ -89,6 +92,8 @@ forceRestartTime = 14400; // 4 hour restarts
|
||||
"Safe_EPOCH"
|
||||
};
|
||||
ExceptedBaseObjects[] = { // Not Indestructible, also if in a Class of IndestructibleBaseObjects
|
||||
"Spike_TRAP_EPOCH",
|
||||
"Metal_TRAP_EPOCH",
|
||||
"CinderWallGarage_EPOCH",
|
||||
"WoodLargeWallDoorL_EPOCH",
|
||||
"WoodLargeWallDoor_EPOCH",
|
||||
|
@ -15,6 +15,8 @@ http://www.microsoft.com/en-us/download/details.aspx?id=40784
|
||||
6. Open the SC/Battleye folder and rename example-BEServer.cfg to BEServer.cfg and change the RConPassword.
|
||||
7. Look at the "start-A3-cmd-line-example.txt" file for an example command line for starting your server.
|
||||
|
||||
For more details in Server installation, visit: https://epochmod.com/forum/topic/44751-dec2017-arma-3-epochmod-server-installation-and-setup/
|
||||
|
||||
== NOTES ==
|
||||
|
||||
* You should use a service restarter (like firedaemon) to keep the redis server and Arma 3 server running.
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1 +1 @@
|
||||
5 "" !="H_MM_(Buzzard_Gasmask|Helmet)_01" !="V_MM_Vest_01" !="(V|H)_(F|)[0-9]{1,3}_EPOCH" !="(clown|pkin|wolf|radiation|hockey|plague|ghostface|skull|witch)_mask_epoch" !="Item(Map|GPS|Compass|Watch|GeigerCounter_EPOCH)|Power_Sword" !="EpochRadio[0-9]" !="B_UavTerminal" !="(U|G|bipod|acc|muzzle|optic)_[0-9A-Z_]{1,100}" !="(NVG|Defib|Heal|Repair|Elcan(_reflex|))_EPOCH" !="(Binocular|Rangefinder|Hatchet|CrudeHatchet|WoodClub|Melee(Sledge|Maul|Rod|Sword)|ChainSaw|MultiGun|Rollins_F|Plunger)" !="(ruger_pistol|speargun|1911_pistol|akm|m14|M14Grn|m16|m16Red|m107|m107Tan|m249|m249Tan|m4a3|sr25|l85a2|l85a2_(pink|ugl))_epoch" !="SMG_(01|02|05)_F" !="hgun_(PDW2000|ACPC2|Rook40|P07|Pistol_heavy_0[1-2]|Pistol_Signal)_F" !="LMG_(Mk200|Zafir)_F" !="srifle_(EBR|GM6|LRR|DMR_01)_(camo_|)F" !="arifle_(Katiba|Katiba_C|Katiba_GL|SDAR|TRG21|TRG20|TRG21_GL|Mk20|Mk20C|Mk20C_plain|Mk20_GL|Mk20_plain|Mk20_GL_plain)_F" !="arifle_(MXC|MX|MX_GL|MXM|MXM_Black|MX_GL_Black|MX_Black|MXC_Black|MX_SW|MX_SW_Black)_F" !="srifle_DMR_0[2-7](_(camo|sniper|khaki|tan|multicam|woodland|spotter|blk|hex|olive)_|_)F" !="MMG_0[1-2]_(hex|tan|camo|black|sand)_F" !"CUP_((h|s)gun|(s|a)rifle|(l|s)mg)_" !"CUP_(optic|muzzle|acc|bipod)_" !"CUP_(Mxx|SVD)_camo"
|
||||
5 "" !="H_MM_(Buzzard_Gasmask|Helmet)_01" !="V_MM_Vest_01" !="(V|H)_(F|)[0-9]{1,3}_EPOCH" !="(clown|pkin|wolf|radiation|hockey|plague|ghostface|skull|witch|thor|iron)_mask_epoch" !="Item(Map|GPS|Compass|Watch|GeigerCounter_EPOCH)|Power_Sword" !="EpochRadio[0-9]" !="B_UavTerminal" !="(U|G|bipod|acc|muzzle|optic)_[0-9A-Z_]{1,100}" !="(NVG|Defib|Heal|Repair|Elcan(_reflex|))_EPOCH" !="(Binocular|Rangefinder|Hatchet|CrudeHatchet|WoodClub|Melee(Sledge|Maul|Rod|Sword)|ChainSaw|MultiGun|Rollins_F|Plunger)" !="(ruger_pistol|speargun|1911_pistol|akm|m14|M14Grn|m16|m16Red|m107|m107Tan|m249|m249Tan|m4a3|sr25|l85a2|l85a2_(pink|ugl))_epoch" !="SMG_(01|02|05)_F" !="hgun_(PDW2000|ACPC2|Rook40|P07|Pistol_heavy_0[1-2]|Pistol_Signal)_F" !="LMG_(Mk200|Zafir)_F" !="srifle_(EBR|GM6|LRR|DMR_01)_(camo_|)F" !="arifle_(Katiba|Katiba_C|Katiba_GL|SDAR|TRG21|TRG20|TRG21_GL|Mk20|Mk20C|Mk20C_plain|Mk20_GL|Mk20_plain|Mk20_GL_plain)_F" !="arifle_(MXC|MX|MX_GL|MXM|MXM_Black|MX_GL_Black|MX_Black|MXC_Black|MX_SW|MX_SW_Black)_F" !="srifle_DMR_0[2-7](_(camo|sniper|khaki|tan|multicam|woodland|spotter|blk|hex|olive)_|_)F" !="MMG_0[1-2]_(hex|tan|camo|black|sand)_F" !"CUP_((h|s)gun|(s|a)rifle|(l|s)mg)_" !"CUP_(optic|muzzle|acc|bipod)_" !"CUP_(Mxx|SVD)_camo"
|
||||
|
@ -1 +1 @@
|
||||
5 "" !="bis_fnc_execvm \[\[.+\],\"initPlayerServer.sqf\"]" !="bis_fnc_effectkilled(airdestruction|secondaries) \[.+\]" !="epoch_server_(checkplayer|save(_vehicles|building)|(lock|pack)Storage|(upgrade|remove|paint|maint)build) \[.+\]" !="epoch_server_((load|respawn|dead|invite|revive|teleport)Player) \[.+\]" !="epoch_server_((upgrade|updateplayer|inviteplayer|create|delete)(Temp|)Group) \[.+\]" !="epoch_server_(deadplayerdetonate|triggerantagonist|playersetvariable|missioncomms|make(marker|SP)|removemarker) \[.+\]" !="epoch_server_(upgrade_vehicle|knockDownTree|mineRocks|lootAnimal|handle_(say3d|switchmove|sapperObjs)) \[.+\]" !="epoch_server_((repair|fill|lock)Vehicle|(loot|fill)Container|(store|take)Crypto|make(NPC|)Trade) \[.+\]" !="epoch_server_(paycrypto|tradeRequest|equippeditem|packJack|create(object|AirDrop)|airDropCrate|destroytrash|unpackBackpack) \[.+\]" !="epoch_(localcleanup|fnc_saveplayer|client_bitePlayer|serverlootobject|fnc_updateplayerstats) \[.+\]" !="cup_fnc_handletow \[.+\]" !="bis_fnc_reviveinitaddplayer \[.+\]"
|
||||
5 "" !="bis_fnc_execvm \[\[.+\],\"initPlayerServer.sqf\"]" !="bis_fnc_effectkilled(airdestruction|secondaries) \[.+\]" !="epoch_server_(checkplayer|save(_vehicles|building)|(lock|pack)Storage|(upgrade|remove|paint|maint)build) \[.+\]" !="epoch_server_((load|respawn|dead|invite|revive|teleport)Player) \[.+\]" !="epoch_server_((upgrade|updateplayer|inviteplayer|create|delete)(Temp|)Group) \[.+\]" !="epoch_server_(deadplayerdetonate|triggerantagonist|playersetvariable|missioncomms|make(marker|SP)|removemarker) \[.+\]" !="epoch_server_(upgrade_vehicle|knockDownTree|mineRocks|lootAnimal|handle_(say3d|switchmove|sapperObjs)) \[.+\]" !="epoch_server_((repair|fill|lock)Vehicle|(loot|fill)Container|(store|take)Crypto|make(NPC|)Trade) \[.+\]" !="epoch_server_(paycrypto|tradeRequest|equippeditem|packJack|create(object|AirDrop)|airDropCrate|destroytrash|unpackBackpack) \[.+\]" !="epoch_(localcleanup|fnc_saveplayer|client_bitePlayer|serverlootobject|fnc_updateplayerstats|server_setfinalplayerpos) \[.+\]" !="cup_fnc_handletow \[.+\]" !="bis_fnc_reviveinitaddplayer \[.+\]"
|
||||
|
@ -33,7 +33,7 @@
|
||||
5 createUnit !="_driver = _grp createUnit[\"I_UAV_AI\", position _unit, [], 0, \"CAN_COLLIDE\"];" !="axeGeneral = grpVIPGeneral createUnit [\"I_officer_F\", axeGeneralPos, [], 1, \"CAN_COLLIDE\"];" !="bis_functions_mainscope = _grpLogic createunit [\"Logic\",[9,9,9],[],0,\"none\"];" !="_unit = _grp createUnit[selectRandom _arrUnits, _pos, [], 0, \"FORM\"];" !="_driver = (group player) createUnit[\"I_UAV_AI\", position axeUAV, [], 0, \"CAN_COLLIDE\"];"
|
||||
5 createAgent !="bis_revive_ratioLethal = createAgent [\"Logic\", [10,10,0], [], 0, \"CAN_COLLIDE\"];" !="_unit = createAgent[_unitClass, _targetPos, [], 256, \"FORM\"];" !="_unit = createAgent [_unitClass, _targetPos, [], 120, \"FORM\"];" !="_animal = createAgent[_randomAIClass, _animalPos, [], 5, \"NONE\"];" !="_unit = createAgent [\"Epoch_Cloak_F\", _pos, [], 0, \"CAN_COLLIDE\"];" !="_unit = createAgent [\"Epoch_Sapper_F\", _targetPos, [], 180, \"FORM\"];" !="_sapper = createAgent [\"Epoch_Sapper_F\", getPos _cage2, [], 0, \"FORM\"];" !="_unit = createAgent[_unitClass, position player, [], _zRange, \"FORM\"];" !="_animal = createAgent[_randomAIClass, _animalPos, [], 0, \"CAN_COLLIDE\"];" !="_axeSapper = createAgent [\"Epoch_Sapper_F\", _pos, [], 12, \"FORM\"];" !="_nestMate = createAgent [\"Epoch_Sapper_F\", _garrPos, [], 0, \"FORM\"];"
|
||||
5 createTeam
|
||||
5 createDialog !="createDialog \"rmx_dynamenu\";" !="createDialog \"rmx_craftingUI\";" !="createDialog \"QuickUpgrade\";" !="createDialog \"QuickTake\";" !="createDialog \"InteractBank\";" !="createdialog \"SelectGender\";" !="_handled = createdialog _dialog;" !="if !(createdialog \"InteractItem\") exitWith {};" !="createDialog _tapDiag;" !="if !(createdialog \"Trade\") exitWith {};" !="_ok = createdialog \"Interact\";" !="_ok = createdialog \"TradeNPCMenu\";" !="createDialog \"Epoch_myGroup\";" !="createDialog (if ((Epoch_my_GroupUID == \"\") && (Epoch_my_Group isEqualTo [])) then {\"EPOCH_createGrp\"} else {\"Epoch_myGroup\"});" !="createDialog \"GroupRequests\";" !="_ok = createdialog \"MissionSelect\";" !="createDialog 'Skaronator_AdminMenu';" !="createDialog \"Epoch_myTempGroup\";" !="createDialog (if ((Epoch_my_tempGroupUID == \"\") && (Epoch_my_tempGroup isEqualTo [])) then {\"EPOCH_createTempGrp\"} else {\"Epoch_myTempGroup\"});" !="createDialog \"tempGroupRequests\";"
|
||||
5 createDialog !="createdialog 'Epoch_CamDialog'" !="createDialog \"rmx_dynamenu\";" !="createDialog \"rmx_craftingUI\";" !="createDialog \"QuickUpgrade\";" !="createDialog \"QuickTake\";" !="createDialog \"InteractBank\";" !="createdialog \"SelectGender\";" !="_handled = createdialog _dialog;" !="if !(createdialog \"InteractItem\") exitWith {};" !="createDialog _tapDiag;" !="if !(createdialog \"Trade\") exitWith {};" !="_ok = createdialog \"Interact\";" !="_ok = createdialog \"TradeNPCMenu\";" !="createDialog \"Epoch_myGroup\";" !="createDialog (if ((Epoch_my_GroupUID == \"\") && (Epoch_my_Group isEqualTo [])) then {\"EPOCH_createGrp\"} else {\"Epoch_myGroup\"});" !="createDialog \"GroupRequests\";" !="_ok = createdialog \"MissionSelect\";" !="createDialog 'Skaronator_AdminMenu';" !="createDialog \"Epoch_myTempGroup\";" !="createDialog (if ((Epoch_my_tempGroupUID == \"\") && (Epoch_my_tempGroup isEqualTo [])) then {\"EPOCH_createTempGrp\"} else {\"Epoch_myTempGroup\"});" !="createDialog \"tempGroupRequests\";"
|
||||
5 createDisplay !="createDisplay \"rmx_dynamenu\";" !="createDisplay \"rmx_moveDynamicHUD\";" !="_parent createdisplay _displayClass;" !="finddisplay 151 createdisplay 'RscDisplayOptionsLayout'" !="_display createdisplay \"RscDisplayDLCPreview\";"
|
||||
5 deleteMarker !="deleteMarkerLocal _mName;"
|
||||
5 setMarker !="CBA_fnc_setMarkerPersistent\"" !="\\fnc_setMarkerPersistent" !="\"setMarkerPersistent" !="_mName setMarkerShapeLocal _mShape;" !="_mName setMarkerTypeLocal _mType;" !="(_x select 0) setMarkerPosLocal (position player);" !="_zoomMarker setMarkerSizeLocal"
|
||||
|
@ -1 +1 @@
|
||||
5 "" !="Epoch_(Male|Female)_F" !="(Bed|locker|Filing|Chair|ChairRed|wardrobe|cooker|Couch|Table|Pelican|Fridge|Shelf)_EPOCH" !="(ToolRack|Rabbit|Cabinet|toilet|KitchenSink)_EPOCH" !="(Sheep|Goat|Snake|Hen|Cock|Fin|Alsatian)_random_EPOCH" !="Foundation_EPOCH" !="WoodFoundation_EPOCH" !=".+_(SIM|Ghost)_EPOCH" !="(FirePlace|FirePlaceOn)_EPOCH"
|
||||
5 "" !="Epoch_(Male|Female)_F" !="(Bed|locker|Filing|Chair|ChairRed|wardrobe|cooker|Couch|Table|Pelican|Fridge|Shelf)_EPOCH" !="(ToolRack|Rabbit|Cabinet|toilet|KitchenSink)_EPOCH" !="(Sheep|Goat|Snake|Hen|Cock|Fin|Alsatian)_random_EPOCH" !="Foundation_EPOCH" !="WoodFoundation_EPOCH" !=".+_(SIM|Ghost)_EPOCH" !="(FirePlace|FirePlaceOn)_EPOCH" !"K(01|02|03|04)" !"ebike" !"Quadbike" !"hoverboard_epoch" !"C_Kart_"
|
||||
|
@ -1,8 +1,8 @@
|
||||
/*%FSM<COMPILE "F:\Program Files (x86)\Steam\steamapps\common\Arma 3 Tools\FSMEditor\scriptedFSM.cfg, Epoch Login">*/
|
||||
/*%FSM<COMPILE "scriptedFSM.cfg, Epoch Login">*/
|
||||
/*%FSM<HEAD>*/
|
||||
/*
|
||||
item0[] = {"INIT",0,250,-25.000000,-375.000000,75.000000,-325.000000,0.000000,"INIT"};
|
||||
item1[] = {"FINISH",1,250,-149.463196,1518.792480,-49.463196,1568.792480,0.000000,"FINISH"};
|
||||
item1[] = {"FINISH",1,250,-156.564148,1645.189819,-56.564148,1695.189819,0.000000,"FINISH"};
|
||||
item2[] = {"true",8,218,-150.000000,-125.000000,-50.000000,-75.000000,0.000000,"true"};
|
||||
item3[] = {"Version_Check",2,250,-25.000000,-75.000000,75.000000,-25.000000,0.000000,"Version Check"};
|
||||
item4[] = {"Player_Object_Re",4,218,-150.000000,75.000000,-50.000000,125.000000,0.000000,"Player" \n "Object Ready"};
|
||||
@ -17,23 +17,23 @@ item12[] = {"Empty_PlayerUID",4,218,125.000000,125.000000,225.000000,175.000000,
|
||||
item13[] = {"ERROR_PlayerUID",2,250,275.000000,125.000000,375.000000,175.000000,0.000000,"ERROR" \n "PlayerUID Empty"};
|
||||
item14[] = {"",7,210,471.000061,145.999908,478.999939,154.000092,0.000000,""};
|
||||
item15[] = {"Timeout_No_Respo",4,218,125.000000,875.000000,225.000000,925.000000,0.000000,"Timeout" \n "No Response"};
|
||||
item16[] = {"Response",4,4314,-150.000000,825.000000,-50.000000,875.000000,0.000000,"Response"};
|
||||
item17[] = {"Setup_Player_Var",2,250,-25.000000,1075.000000,75.000000,1125.000000,0.000000,"Setup Player" \n "Variables"};
|
||||
item16[] = {"Response",4,218,-150.000000,825.000000,-50.000000,875.000000,0.000000,"Response"};
|
||||
item17[] = {"Setup_Player_Var",2,250,-32.100952,1201.397339,67.899048,1251.397339,0.000000,"Setup Player" \n "Variables"};
|
||||
item18[] = {"Request_Hive",2,250,-25.000000,575.000000,75.000000,625.000000,0.000000,"Request Hive"};
|
||||
item19[] = {"Timeout_No_Respo",4,218,125.000000,575.000000,225.000000,625.000000,0.000000,"Timeout" \n "No Response"};
|
||||
item20[] = {"ERROR_Server_not",2,250,275.000000,875.000000,375.000000,925.000000,0.000000,"ERROR" \n "Server not" \n "Response"};
|
||||
item21[] = {"",7,210,471.000000,895.999939,479.000000,904.000061,0.000000,""};
|
||||
item22[] = {"Timeout_No_Respo",4,218,125.000000,775.000000,225.000000,825.000000,0.000000,"Timeout" \n "No Response"};
|
||||
item23[] = {"Wrong_Server_Ver",4,218,125.000000,475.000000,225.000000,525.000000,10.000000,"Wrong" \n "Server Version"};
|
||||
item24[] = {"Player_In_Game",8,218,-150.000000,1125.000000,-50.000000,1175.000000,0.000000,"Player" \n "In Game"};
|
||||
item24[] = {"Player_In_Game",8,218,-157.100952,1251.397339,-57.100952,1301.397339,0.000000,"Player" \n "In Game"};
|
||||
item25[] = {"ERROR_Wrong_Server",2,250,275.000000,475.000000,375.000000,525.000000,0.000000,"ERROR" \n "Wrong" \n "Server Version"};
|
||||
item26[] = {"Display_Message",4,218,600.000000,1150.000000,700.000000,1200.000000,0.000000,"" \n "Display Message" \n "Wait..."};
|
||||
item27[] = {"Setup_Player_Obj",2,250,-25.000000,975.000000,75.000000,1025.000000,0.000000,"Setup Player" \n "Object"};
|
||||
item27[] = {"Setup_Player_Obj",2,250,-32.100952,1101.397339,67.899048,1151.397339,0.000000,"Setup Player" \n "Object"};
|
||||
item28[] = {"Check_if_Player",4,218,750.000000,1225.000000,850.000000,1275.000000,0.000000,"Check if" \n "Player got Kicked"};
|
||||
item29[] = {"Preload_done",8,218,-150.000000,1425.000000,-50.000000,1475.000000,0.000000,"Preload" \n "done"};
|
||||
item29[] = {"Preload_done",8,218,-157.100952,1551.397339,-57.100952,1601.397339,0.000000,"Preload" \n "done"};
|
||||
item30[] = {"",7,210,471.000000,796.000000,479.000000,804.000000,0.000000,""};
|
||||
item31[] = {"",7,210,471.000000,796.000000,479.000000,804.000000,0.000000,""};
|
||||
item32[] = {"true",8,218,425.000000,1075.000000,525.000000,1125.000000,0.000000,"true"};
|
||||
item32[] = {"true",8,218,417.899048,1201.397339,517.899048,1251.397339,0.000000,"true"};
|
||||
item33[] = {"Display_Message",2,250,600.000000,1075.000000,700.000000,1125.000000,0.000000,"Display" \n "Message"};
|
||||
item34[] = {"Server_Ready",4,218,-25.000000,300.000000,75.000000,350.000000,0.000000,"Server" \n "Ready"};
|
||||
item35[] = {"Check_Server",2,250,-25.000000,375.000000,75.000000,425.000000,0.000000,"Check Server"};
|
||||
@ -50,26 +50,26 @@ item45[] = {"Arma_Version_Che",2,250,-25.000000,25.000000,75.000000,75.000000,0.
|
||||
item46[] = {"Outdated_Version",4,218,125.000000,25.000000,225.000000,75.000000,10.000000,"Outdated" \n "Version"};
|
||||
item47[] = {"ERROR_Wrong_Version_1",2,250,275.000000,25.000000,375.000000,75.000000,0.000000,"ERROR" \n "Wrong Version" \n "ArmA"};
|
||||
item48[] = {"",7,210,471.000061,45.999908,478.999939,54.000092,0.000000,""};
|
||||
item49[] = {"new_player_____p",4,218,-150.000000,1025.000000,-50.000000,1075.000000,0.000000,"new player == " \n "player"};
|
||||
item50[] = {"Setup_EH_s_and_H",2,250,-25.000000,1175.000000,75.000000,1225.000000,0.000000,"Setup EH's" \n "and" \n "HitPoints"};
|
||||
item51[] = {"no_weapons",4,218,-25.000000,1275.000000,75.000000,1325.000000,0.000000,"no weapons"};
|
||||
item52[] = {"Process",2,250,-25.000000,1375.000000,75.000000,1425.000000,0.000000,"Process"};
|
||||
item53[] = {"Has_Current_Weap",4,218,100.000000,1175.000000,200.000000,1225.000000,10.000000,"Has" \n "Current" \n "Weapon"};
|
||||
item54[] = {"Find_Active_Weap",2,250,225.000000,1175.000000,325.000000,1225.000000,0.000000,"Find" \n "Active" \n "Weapon"};
|
||||
item55[] = {"Current_Weapon_Not",4,218,150.000000,1225.000000,250.000000,1275.000000,0.000000,"Current" \n "Weapon" \n "Not Selected"};
|
||||
item56[] = {"Current_Weapon_S",4,218,300.000000,1225.000000,400.000000,1275.000000,0.000000,"Current" \n "Weapon" \n "Selected"};
|
||||
item57[] = {"Select_Weapon",2,250,150.000000,1300.000000,250.000000,1350.000000,0.000000,"Select" \n "Weapon"};
|
||||
item58[] = {"true",8,218,225.000000,1375.000000,325.000000,1425.000000,0.000000,"true"};
|
||||
item59[] = {"Do_nothing",2,250,300.000000,1300.000000,400.000000,1350.000000,0.000000,"Do nothing"};
|
||||
item60[] = {"Check_New_Player",2,250,-25.000000,875.000000,75.000000,925.000000,0.000000,"Check" \n "New Player" \n "Setup"};
|
||||
item61[] = {"check_new__player",4,218,-150.000000,925.000000,-50.000000,975.000000,0.000000,"check new " \n "player not null"};
|
||||
item49[] = {"new_player_____p",4,218,-157.100952,1151.397339,-57.100952,1201.397339,0.000000,"new player == " \n "player"};
|
||||
item50[] = {"Setup_EH_s_and_H",2,250,-32.100952,1301.397339,67.899048,1351.397339,0.000000,"Setup EH's" \n "and" \n "HitPoints"};
|
||||
item51[] = {"no_weapons",4,218,-32.100952,1401.397339,67.899048,1451.397339,0.000000,"no weapons"};
|
||||
item52[] = {"Process",2,250,-32.100952,1501.397339,67.899048,1551.397339,0.000000,"Process"};
|
||||
item53[] = {"Has_Current_Weap",4,218,92.899048,1301.397339,192.899048,1351.397339,10.000000,"Has" \n "Current" \n "Weapon"};
|
||||
item54[] = {"Find_Active_Weap",2,250,217.899048,1301.397339,317.899048,1351.397339,0.000000,"Find" \n "Active" \n "Weapon"};
|
||||
item55[] = {"Current_Weapon_Not",4,218,142.899048,1351.397339,242.899048,1401.397339,0.000000,"Current" \n "Weapon" \n "Not Selected"};
|
||||
item56[] = {"Current_Weapon_S",4,218,292.899048,1351.397339,392.899048,1401.397339,0.000000,"Current" \n "Weapon" \n "Selected"};
|
||||
item57[] = {"Select_Weapon",2,250,142.899048,1426.397339,242.899048,1476.397339,0.000000,"Select" \n "Weapon"};
|
||||
item58[] = {"true",8,218,217.899048,1501.397339,317.899048,1551.397339,0.000000,"true"};
|
||||
item59[] = {"Do_nothing",2,250,292.899048,1426.397339,392.899048,1476.397339,0.000000,"Do nothing"};
|
||||
item60[] = {"Check_New_Player",2,250,-20.739410,880.680786,79.260590,930.680786,0.000000,"Check" \n "New Player"};
|
||||
item61[] = {"check_1_new__pla",4,218,-147.159637,930.680786,-47.159637,980.680786,0.000000,"check 1 new " \n "player"};
|
||||
item62[] = {"true",4,218,-150.000000,-325.000000,-60.000000,-275.000000,0.000000,"true"};
|
||||
item63[] = {"Process_1",2,250,-25.000000,-275.000000,75.000000,-225.000000,0.000000,"Process"};
|
||||
item64[] = {"Wait_ArmA_Loading",4,218,-150.000000,-225.000000,-50.000000,-175.000000,0.000000,"Wait ArmA" \n "Loading Screen" \n "Done"};
|
||||
item65[] = {"Start_Loading_Sc",2,250,-25.000000,-175.000000,75.000000,-125.000000,0.000000,"Start Loading" \n "Screen"};
|
||||
item66[] = {"Timeout_",4,218,125.000000,975.000000,225.000000,1025.000000,0.000000,"" \n "Timeout" \n ""};
|
||||
item67[] = {"ERROR_Player_Setup",2,250,275.000000,975.000000,375.000000,1025.000000,0.000000,"ERROR" \n "Player Setup" \n "Invalid"};
|
||||
item68[] = {"",7,210,471.000000,996.000000,479.000000,1004.000000,0.000000,""};
|
||||
item66[] = {"Timeout_",4,218,117.899048,1101.397339,217.899048,1151.397339,0.000000,"" \n "Timeout" \n ""};
|
||||
item67[] = {"ERROR_Player_Setup",2,250,267.899048,1101.397339,367.899048,1151.397339,0.000000,"ERROR" \n "Player Setup" \n "Invalid"};
|
||||
item68[] = {"",7,210,463.899048,1122.397339,471.899048,1130.397339,0.000000,""};
|
||||
item69[] = {"Server_Version_C",2,250,-25.000000,475.000000,75.000000,525.000000,0.000000,"Server Version" \n "Check"};
|
||||
item70[] = {"Version_Okay",4,218,-125.000000,525.000000,-25.000000,575.000000,0.000000,"Version" \n "Okay"};
|
||||
item71[] = {"",7,210,471.000000,496.000000,479.000000,504.000000,0.000000,""};
|
||||
@ -86,6 +86,11 @@ item81[] = {"Timeout",4,218,-350.000000,750.000000,-250.000000,800.000000,0.0000
|
||||
item82[] = {"Send_character_s",2,250,-400.000000,825.000000,-300.000000,875.000000,0.000000,"Send" \n "character" \n "selection"};
|
||||
item83[] = {"Process_3",2,250,-25.000000,775.000000,75.000000,825.000000,0.000000,"Process"};
|
||||
item84[] = {"ERROR_Server_not_4",2,250,275.000000,775.000000,375.000000,825.000000,0.000000,"ERROR" \n "Server not" \n "Response"};
|
||||
item85[] = {"Check_New_Player_1",2,250,-29.260529,995.716492,70.739471,1045.716309,0.000000,"Check" \n "New Player" \n "Setup"};
|
||||
item86[] = {"check_2_new__pla",4,4314,-154.260574,1044.296387,-54.260574,1094.296387,0.000000,"check 2 new " \n "player"};
|
||||
item87[] = {"Timeout_No_Respo",4,218,127.840363,997.136780,227.840363,1047.136475,0.000000,"Timeout" \n "No Response"};
|
||||
item88[] = {"ERROR_Server_not_5",2,250,266.478851,995.716614,366.478851,1045.716309,0.000000,"ERROR" \n "Server not" \n "Response"};
|
||||
item89[] = {"",7,210,466.446442,1000.643677,474.446442,1008.643677,0.000000,""};
|
||||
link0[] = {0,62};
|
||||
link1[] = {2,3};
|
||||
link2[] = {3,7};
|
||||
@ -109,7 +114,7 @@ link19[] = {18,19};
|
||||
link20[] = {18,75};
|
||||
link21[] = {19,72};
|
||||
link22[] = {20,21};
|
||||
link23[] = {21,68};
|
||||
link23[] = {21,89};
|
||||
link24[] = {22,84};
|
||||
link25[] = {23,25};
|
||||
link26[] = {24,50};
|
||||
@ -154,7 +159,7 @@ link64[] = {58,52};
|
||||
link65[] = {59,58};
|
||||
link66[] = {60,15};
|
||||
link67[] = {60,61};
|
||||
link68[] = {61,27};
|
||||
link68[] = {61,85};
|
||||
link69[] = {62,63};
|
||||
link70[] = {63,64};
|
||||
link71[] = {64,65};
|
||||
@ -183,8 +188,14 @@ link93[] = {82,76};
|
||||
link94[] = {83,16};
|
||||
link95[] = {83,22};
|
||||
link96[] = {84,31};
|
||||
globals[] = {0.000000,0,0,0,0,640,480,1,247,6316128,1,-279.414825,540.037537,1629.530029,374.077881,577,884,1};
|
||||
window[] = {2,-1,-1,-1,-1,819,52,1036,52,3,595};
|
||||
link97[] = {85,86};
|
||||
link98[] = {85,87};
|
||||
link99[] = {86,27};
|
||||
link100[] = {87,88};
|
||||
link101[] = {88,89};
|
||||
link102[] = {89,68};
|
||||
globals[] = {0.000000,0,0,0,0,640,480,1,258,6316128,1,-228.686249,247.871552,1378.466309,648.349915,577,884,1};
|
||||
window[] = {2,-1,-1,-1,-1,845,78,1062,78,3,595};
|
||||
*//*%FSM</HEAD>*/
|
||||
class FSM
|
||||
{
|
||||
@ -517,7 +528,7 @@ class FSM
|
||||
priority = 0.000000;
|
||||
to="ERROR_Server_not_3";
|
||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||
condition=/*%FSM<CONDITION""">*/"(diag_tickTime - _myTime) > 120"/*%FSM</CONDITION""">*/;
|
||||
condition=/*%FSM<CONDITION""">*/"(diag_tickTime - _myTime) > 30"/*%FSM</CONDITION""">*/;
|
||||
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
||||
};
|
||||
/*%FSM</LINK>*/
|
||||
@ -615,7 +626,7 @@ class FSM
|
||||
priority = 0.000000;
|
||||
to="ERROR_Player_Setup";
|
||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||
condition=/*%FSM<CONDITION""">*/"(diag_tickTime - _myTime) > 60"/*%FSM</CONDITION""">*/;
|
||||
condition=/*%FSM<CONDITION""">*/"(diag_tickTime - _myTime) > 30"/*%FSM</CONDITION""">*/;
|
||||
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
||||
};
|
||||
/*%FSM</LINK>*/
|
||||
@ -1044,48 +1055,37 @@ class FSM
|
||||
name = "Check_New_Player";
|
||||
itemno = 60;
|
||||
init = /*%FSM<STATEINIT""">*/"_myTime = diag_tickTime;" \n
|
||||
"" \n
|
||||
"player reveal _playerObject;" \n
|
||||
"" \n
|
||||
"_playerPos = getpos _playerObject;" \n
|
||||
"" \n
|
||||
"""Loading Player Inventory... Please wait!"" call Epoch_updateLoadingScreen;" \n
|
||||
"progressLoadingScreen 0.6;" \n
|
||||
""/*%FSM</STATEINIT""">*/;
|
||||
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||
class Links
|
||||
{
|
||||
/*%FSM<LINK "check_new__player">*/
|
||||
class check_new__player
|
||||
/*%FSM<LINK "check_1_new__pla">*/
|
||||
class check_1_new__pla
|
||||
{
|
||||
itemno = 61;
|
||||
priority = 0.000000;
|
||||
to="Setup_Player_Obj";
|
||||
to="Check_New_Player_1";
|
||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||
condition=/*%FSM<CONDITION""">*/"" \n
|
||||
"_state = false;" \n
|
||||
condition=/*%FSM<CONDITION""">*/"_state = false;" \n
|
||||
"_playerCheck = !(isNull _playerObject);" \n
|
||||
"_playerCheckSetup = false;" \n
|
||||
"_playerCheckObjectsReady = false;" \n
|
||||
"_playerCheckFinal = false;" \n
|
||||
"_PlayerPosCheck = false;" \n
|
||||
"_playerCheckMass = false;" \n
|
||||
"if (_playerCheck) then {" \n
|
||||
" _playerCheckSetup = _playerObject getVariable [""SETUP"",false];" \n
|
||||
" if (_playerCheckSetup) then {" \n
|
||||
" _playerCheckObjectsReady = _playerPos nearObjectsReady 10;" \n
|
||||
" if (_playerCheckObjectsReady) then {" \n
|
||||
" _playerCheckFinal = (_mass isEqualTo (loadAbs _playerObject));" \n
|
||||
" if (_playerCheckFinal) then {" \n
|
||||
" _state = true;" \n
|
||||
" };" \n
|
||||
" _PlayerPosCheck = !((_playerObject getVariable [""FinalDest"",[]]) isequalto []);" \n
|
||||
" if (_PlayerPosCheck) then {" \n
|
||||
" _playerCheckMass = (_loadabs == (loadabs _playerObject));" \n
|
||||
" if (_playerCheckMass) then {" \n
|
||||
" _state = true;" \n
|
||||
" };" \n
|
||||
" };" \n
|
||||
"};" \n
|
||||
"if (_debug) then {" \n
|
||||
" diag_log format[""DEBUG: Checking Player Object: %1"", [""FAILED"",""OK""] select _playerCheck];" \n
|
||||
" diag_log format[""DEBUG: Checking Player is setup: %1"", [""FAILED"",""OK""] select _playerCheckSetup];" \n
|
||||
" diag_log format[""DEBUG: Checking world preloaded: %1"", [""FAILED"",""OK""] select _playerCheckObjectsReady];" \n
|
||||
" diag_log format[""DEBUG: Final Player mass check: %1 (%2 != %3)"", [""FAILED"",""OK""] select _playerCheckFinal, _mass, (loadAbs _playerObject)];" \n
|
||||
" diag_log format[""DEBUG: Pos check: %1 == %2"", getpos _playerObject, getpos player];" \n
|
||||
" diag_log format[""DEBUG: Checking Player PosVar: %1"", [""FAILED"",""OK""] select _PlayerPosCheck];" \n
|
||||
" diag_log format[""DEBUG: Final Player mass check: %1 (%2 != %3)"", [""FAILED"",""OK""] select _playerCheckMass, _loadabs, (loadabs _playerObject)];" \n
|
||||
"};" \n
|
||||
"_state"/*%FSM</CONDITION""">*/;
|
||||
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
||||
@ -1098,7 +1098,7 @@ class FSM
|
||||
priority = 0.000000;
|
||||
to="ERROR_Server_not";
|
||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||
condition=/*%FSM<CONDITION""">*/"(diag_tickTime - _myTime) > 120"/*%FSM</CONDITION""">*/;
|
||||
condition=/*%FSM<CONDITION""">*/"(diag_tickTime - _myTime) > 30"/*%FSM</CONDITION""">*/;
|
||||
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
||||
};
|
||||
/*%FSM</LINK>*/
|
||||
@ -1373,7 +1373,7 @@ class FSM
|
||||
priority = 0.000000;
|
||||
to="ERROR_Server_not_4";
|
||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||
condition=/*%FSM<CONDITION""">*/"(diag_tickTime - _myTime) > 120"/*%FSM</CONDITION""">*/;
|
||||
condition=/*%FSM<CONDITION""">*/"(diag_tickTime - _myTime) > 30"/*%FSM</CONDITION""">*/;
|
||||
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
||||
};
|
||||
/*%FSM</LINK>*/
|
||||
@ -1388,7 +1388,7 @@ class FSM
|
||||
action=/*%FSM<ACTION""">*/"_playerObject = _C_SET deleteAt 0;" \n
|
||||
"_playerVariables = _C_SET deleteAt 0;" \n
|
||||
"_currentWeapon = _C_SET deleteAt 0;" \n
|
||||
"_mass = _C_SET deleteAt 0;" \n
|
||||
"_loadabs = _C_SET deleteAt 0;" \n
|
||||
"" \n
|
||||
"Epoch_my_GroupUID = _C_SET deleteAt 0;" \n
|
||||
"Epoch_my_tempGroupUID = """";" \n
|
||||
@ -1436,6 +1436,103 @@ class FSM
|
||||
};
|
||||
};
|
||||
/*%FSM</STATE>*/
|
||||
/*%FSM<STATE "Check_New_Player_1">*/
|
||||
class Check_New_Player_1
|
||||
{
|
||||
name = "Check_New_Player_1";
|
||||
itemno = 85;
|
||||
init = /*%FSM<STATEINIT""">*/"_myTime = diag_tickTime;" \n
|
||||
"_playerPos = (_playerObject getvariable [""FinalDest"",[[0,0,0],0]]) select 0;" \n
|
||||
"[player,_playerobject] remoteexec [""EPOCH_server_SetFinalPlayerPos"",2];" \n
|
||||
"""Setting final Player Position... Please wait!"" call Epoch_updateLoadingScreen;" \n
|
||||
"progressLoadingScreen 0.7;" \n
|
||||
""/*%FSM</STATEINIT""">*/;
|
||||
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||
class Links
|
||||
{
|
||||
/*%FSM<LINK "Timeout_No_Respo">*/
|
||||
class Timeout_No_Respo
|
||||
{
|
||||
itemno = 87;
|
||||
priority = 0.000000;
|
||||
to="ERROR_Server_not_5";
|
||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||
condition=/*%FSM<CONDITION""">*/"(diag_tickTime - _myTime) > 30"/*%FSM</CONDITION""">*/;
|
||||
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
||||
};
|
||||
/*%FSM</LINK>*/
|
||||
/*%FSM<LINK "check_2_new__pla">*/
|
||||
class check_2_new__pla
|
||||
{
|
||||
itemno = 86;
|
||||
priority = 0.000000;
|
||||
to="Setup_Player_Obj";
|
||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||
condition=/*%FSM<CONDITION""">*/"_state = false;" \n
|
||||
"_playerCheck = !(isNull _playerObject);" \n
|
||||
"_playerCheckSetup = false;" \n
|
||||
"_playerCheckObjectsReady = false;" \n
|
||||
"_playerPosCheck = false;" \n
|
||||
"_HiddenCheck = false;" \n
|
||||
"if (_playerCheck) then {" \n
|
||||
" _playerCheckSetup = _playerObject getVariable [""SETUP"",false];" \n
|
||||
" if (_playerCheckSetup) then {" \n
|
||||
" _playerCheckObjectsReady = _playerPos nearObjectsReady 10;" \n
|
||||
" if (_playerCheckObjectsReady) then {" \n
|
||||
" _playerPosCheck = (getposatl _playerObject distance _playerPos < 100);" \n
|
||||
" if (_playerPosCheck) then {" \n
|
||||
" _HiddenCheck = !(isObjectHidden _playerObject);" \n
|
||||
" if (_HiddenCheck) then {" \n
|
||||
" _state = true;" \n
|
||||
" };" \n
|
||||
" };" \n
|
||||
" };" \n
|
||||
" };" \n
|
||||
"};" \n
|
||||
"if (_debug) then {" \n
|
||||
" diag_log format[""DEBUG: Checking Player Object: %1"", [""FAILED"",""OK""] select _playerCheck];" \n
|
||||
" diag_log format[""DEBUG: Checking Player is setup: %1"", [""FAILED"",""OK""] select _playerCheckSetup];" \n
|
||||
" diag_log format[""DEBUG: Checking world preloaded: %1"", [""FAILED"",""OK""] select _playerCheckObjectsReady];" \n
|
||||
" diag_log format[""DEBUG: Pos check: _playerObj: %1 - Player: %2 - dist: %3"", getposatl _playerObject, _playerPos, getposatl _playerObject distance _playerPos];" \n
|
||||
" diag_log format[""DEBUG: Checking is Object is visible: %1"", [""FAILED"",""OK""] select _HiddenCheck];" \n
|
||||
"};" \n
|
||||
"_state"/*%FSM</CONDITION""">*/;
|
||||
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
||||
};
|
||||
/*%FSM</LINK>*/
|
||||
};
|
||||
};
|
||||
/*%FSM</STATE>*/
|
||||
/*%FSM<STATE "ERROR_Server_not_5">*/
|
||||
class ERROR_Server_not_5
|
||||
{
|
||||
name = "ERROR_Server_not_5";
|
||||
itemno = 88;
|
||||
init = /*%FSM<STATEINIT""">*/"_msg = ""Authentication Failed, Disconnect and try again"";" \n
|
||||
"_msg call Epoch_updateLoadingScreen;" \n
|
||||
"diag_log _msg;" \n
|
||||
"" \n
|
||||
"_rejectPlayer = {" \n
|
||||
" PLAYER_REJECT_NoResponse2 = true;" \n
|
||||
" publicVariableServer ""PLAYER_REJECT_NoResponse2"";" \n
|
||||
"};"/*%FSM</STATEINIT""">*/;
|
||||
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||
class Links
|
||||
{
|
||||
/*%FSM<LINK "true">*/
|
||||
class true
|
||||
{
|
||||
itemno = 32;
|
||||
priority = 0.000000;
|
||||
to="Display_Message";
|
||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||
condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
|
||||
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
||||
};
|
||||
/*%FSM</LINK>*/
|
||||
};
|
||||
};
|
||||
/*%FSM</STATE>*/
|
||||
};
|
||||
initState="INIT";
|
||||
finalStates[] =
|
||||
|
130
Sources/epoch_code/compile/EPOCH_CamUse.sqf
Normal file
130
Sources/epoch_code/compile/EPOCH_CamUse.sqf
Normal file
@ -0,0 +1,130 @@
|
||||
/*
|
||||
Author: He-Man
|
||||
|
||||
Contributors:
|
||||
|
||||
Description: BaseCam Script
|
||||
|
||||
Licence:
|
||||
Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike
|
||||
|
||||
Github:
|
||||
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/EPOCH_CamUse.sqf
|
||||
*/
|
||||
|
||||
private ["_mycams","_buildingJammerRange","_curcam"];
|
||||
|
||||
_mycams = EPOCH_BaseCams select {(_x getVariable["BUILD_OWNER", "-1"]) in [getPlayerUID player, Epoch_my_GroupUID]};
|
||||
if (["CfgEpochClient", "BaseCamOnlyHome",true] call EPOCH_fnc_returnConfigEntryV2) then {
|
||||
_buildingJammerRange = ["CfgEpochClient", "buildingJammerRange",75] call EPOCH_fnc_returnConfigEntryV2;
|
||||
_mycams = _mycams select {!(((nearestobjects [_x,["Plotpole_EPOCH"],_buildingJammerRange]) select {(_x getVariable["BUILD_OWNER", "-1"]) in [getPlayerUID player, Epoch_my_GroupUID]}) isequalto [])};
|
||||
};
|
||||
if !(_mycams isequalto []) then {
|
||||
_curcam = _mycams find Epoch_ActiveCam;
|
||||
if (_curcam > -1 && (count _mycams) > (_curcam + 1)) then {
|
||||
Epoch_ActiveCam = _mycams select (_curcam + 1);
|
||||
}
|
||||
else {
|
||||
Epoch_ActiveCam = _mycams select 0;
|
||||
};
|
||||
}
|
||||
else {
|
||||
Epoch_ActiveCam = objnull;
|
||||
};
|
||||
|
||||
if !(isnull (finddisplay -1200)) exitwith {};
|
||||
if (isnull Epoch_ActiveCam) exitwith {
|
||||
["No Camera found",5] call Epoch_Message;
|
||||
};
|
||||
|
||||
_mycams spawn {
|
||||
private ["_mycams","_display","_AutoCam","_ActiveCam","_campos","_CamFov","_CamDir","_CamDist","_EpochCam","_targetheight","_targetpos","_dirs","_intensity","_sharpness","_h","_oldalpha","_newalpha"];
|
||||
_mycams = _this;
|
||||
createdialog 'Epoch_CamDialog';
|
||||
waituntil {!isnull finddisplay -1200};
|
||||
_display = finddisplay -1200;
|
||||
(_display displayctrl 1000) ctrlsettext format ["Cam %1",(_mycams find Epoch_ActiveCam) + 1];
|
||||
(_display displayctrl 1001) ctrlsetstructuredtext parseText format [
|
||||
"<t align='center' color='#FFFF00' size='1'>Controls:</t><br/><br/>Cam Up: %1<br/>Cam Down: %2<br/>Cam Left: %3<br/>Cam Right: %4<br/>Zoom In: %5<br/>Zoom Out: %6<br/><br/>AutoCam: %7<br/>NextCam: %8",
|
||||
keyName Epoch_KB_BaseCamUp,keyName Epoch_KB_BaseCamDown,keyName Epoch_KB_BaseCamLeft,keyName Epoch_KB_BaseCamRight,keyName Epoch_KB_BaseCamZoomIn,keyName Epoch_KB_BaseCamZoomOut,keyName Epoch_KB_BaseCamAutoCam,keyName Epoch_KB_BaseCamNextCam
|
||||
];
|
||||
Epoch_AutoCam = true;
|
||||
_AutoCam = Epoch_AutoCam;
|
||||
Epoch_CamAdjust = [0,0,0];
|
||||
_ActiveCam = Epoch_ActiveCam;
|
||||
_campos = Epoch_ActiveCam getRelPos [0.2,180];
|
||||
_campos set [2,(getposatl Epoch_ActiveCam select 2)];
|
||||
if (isnil "Epoch_CamFilmGrain") then {
|
||||
Epoch_CamFilmGrain = ppEffectCreate ["FilmGrain", 2000 + 25];
|
||||
};
|
||||
Epoch_CamFilmGrain ppEffectEnable true;
|
||||
_intensity = ((player distance Epoch_ActiveCam) / 10000) min 1;
|
||||
_sharpness = 1.25 - _intensity;
|
||||
Epoch_CamFilmGrain ppEffectAdjust [_intensity,_sharpness,2.01,0.75,1.0,true];
|
||||
Epoch_CamFilmGrain ppEffectCommit 0;
|
||||
_CamFov = 0.7;
|
||||
_CamDir = 0;
|
||||
_CamDist = 250;
|
||||
_EpochCam = 'camera' camCreate _campos;
|
||||
showCinemaBorder true;
|
||||
_EpochCam cameraEffect ['internal', 'front'];
|
||||
_EpochCam camCommit 0;
|
||||
_targetheight = ((getposasl Epoch_ActiveCam) select 2)-50;
|
||||
_targetpos = Epoch_ActiveCam getRelPos [_CamDist, 180+_CamDir];
|
||||
_targetpos set [2,_targetheight];
|
||||
if !(surfaceiswater _targetpos) then {
|
||||
_targetpos = ASLtoATL _targetpos;
|
||||
};
|
||||
_EpochCam camSetTarget _targetpos;
|
||||
_EpochCam camCommit 0;
|
||||
_dirs = [5,10,15,20,25,30,35,40,45,40,35,30,25,20,15,10,5,0,-5,-10,-15,-20,-25,-30,-35,-40,-45,-40,-35,-30,-25,-20,-15,-10,-5,0];
|
||||
while {!isnull _display} do {
|
||||
Epoch_CamAdjust params ["_dir","_height","_zoom"];
|
||||
_AutoCam = Epoch_AutoCam;
|
||||
if !(_ActiveCam isequalto Epoch_ActiveCam) then {
|
||||
_ActiveCam = Epoch_ActiveCam;
|
||||
camDestroy _EpochCam;
|
||||
_campos = Epoch_ActiveCam getRelPos [0.2,180];
|
||||
_campos set [2,(getposatl Epoch_ActiveCam select 2)];
|
||||
_CamFov = 0.7;
|
||||
_CamDir = 0;
|
||||
_EpochCam = 'camera' camCreate _campos;
|
||||
showCinemaBorder true;
|
||||
_EpochCam cameraEffect ['internal', 'front'];
|
||||
_EpochCam camCommit 0;
|
||||
_targetheight = ((getposasl Epoch_ActiveCam) select 2)-50;
|
||||
_intensity = ((player distance Epoch_ActiveCam) / 10000) min 1;
|
||||
_sharpness = 1.25 - _intensity;
|
||||
Epoch_CamFilmGrain ppEffectAdjust [_intensity,_sharpness,2.01,0.75,1.0,true];
|
||||
Epoch_CamFilmGrain ppEffectCommit 0;
|
||||
(_display displayctrl 1000) ctrlsettext format ["Cam %1",(_mycams find Epoch_ActiveCam) + 1];
|
||||
};
|
||||
if !(Epoch_AutoCam) then {
|
||||
_targetheight = ((_targetheight + _height) min 50) max -150;
|
||||
_CamDir = ((_CamDir + _dir) max -45) min 45;
|
||||
_CamFov = ((_CamFov + _zoom) min 1.25) max 0.35;
|
||||
}
|
||||
else {
|
||||
_targetheight = ((getposasl Epoch_ActiveCam) select 2)-50;
|
||||
_CamFov = 0.7;
|
||||
_CamDir = _dirs deleteat 0;
|
||||
_dirs pushback _CamDir;
|
||||
};
|
||||
_targetpos = Epoch_ActiveCam getRelPos [_CamDist, 180+_CamDir];
|
||||
_targetpos set [2,_targetheight];
|
||||
if !(surfaceiswater _targetpos) then {
|
||||
_targetpos = ASLtoATL _targetpos;
|
||||
};
|
||||
_EpochCam camSetTarget _targetpos;
|
||||
_EpochCam camSetFov _CamFov;
|
||||
_EpochCam camCommit 0.75;
|
||||
Epoch_CamAdjust = [0,0,0];
|
||||
waitUntil {camCommitted _EpochCam || isnull _display || isnull Epoch_ActiveCam || !(_ActiveCam isequalto Epoch_ActiveCam)};
|
||||
if (isnull Epoch_ActiveCam) exitwith {};
|
||||
};
|
||||
player cameraEffect ['Terminate', 'FRONT'];
|
||||
camDestroy _EpochCam;
|
||||
_display closedisplay 0;
|
||||
Epoch_ActiveCam = objnull;
|
||||
Epoch_CamFilmGrain ppEffectEnable false;
|
||||
};
|
57
Sources/epoch_code/compile/EPOCH_DefibrillatorUse.sqf
Normal file
57
Sources/epoch_code/compile/EPOCH_DefibrillatorUse.sqf
Normal file
@ -0,0 +1,57 @@
|
||||
/*
|
||||
Author: He-Man - EpochMod.com
|
||||
|
||||
Contributors:
|
||||
|
||||
Description:
|
||||
Epoch use Defibrillator function
|
||||
|
||||
Licence:
|
||||
Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike
|
||||
|
||||
Github:
|
||||
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/EPOCH_DefibrillatorUse.sqf
|
||||
*/
|
||||
|
||||
private ["_item","_energyneeded","_totalDefis","_CurDefiArr"];
|
||||
|
||||
params ["_unit"];
|
||||
|
||||
if (isplayer _unit) then {
|
||||
_item = 'ItemDefibrillator';
|
||||
if (_item in magazines player) then {
|
||||
_energyneeded = 3;
|
||||
_totalDefis = (magazinesammo player) select {(_x select 0) isequalto _item};
|
||||
_CurDefiArr = [];
|
||||
{
|
||||
if ((_x select 1) >= _energyneeded) exitwith {
|
||||
_CurDefiArr = _totalDefis deleteat _foreachindex;
|
||||
};
|
||||
} foreach _totalDefis;
|
||||
if (_CurDefiArr isequalto []) exitwith {
|
||||
["Defibrillator needs more Energy",5] call Epoch_Message;
|
||||
};
|
||||
if ((_CurDefiArr select 1) - _energyneeded > 0) then {
|
||||
_CurDefiArr set [1,(_CurDefiArr select 1) - _energyneeded];
|
||||
_totalDefis pushback _CurDefiArr;
|
||||
};
|
||||
player removemagazines _item;
|
||||
{
|
||||
_x call EPOCH_fnc_addMagazineOverflow;
|
||||
} foreach _totalDefis;
|
||||
_unit spawn {
|
||||
player playMove 'AinvPknlMstpSnonWrflDnon_medic0';
|
||||
player playMove 'AinvPknlMstpSnonWrflDnon_medicEnd';
|
||||
uisleep 8;
|
||||
if (alive player && isplayer _this) then {
|
||||
[_this,player,Epoch_personalToken] remoteExec ['EPOCH_server_revivePlayer',2];
|
||||
};
|
||||
};
|
||||
}
|
||||
else {
|
||||
['You need a Defibrillator to Revive',5] call Epoch_Message;
|
||||
};
|
||||
}
|
||||
else {
|
||||
['This Player can not be revived',5] call Epoch_Message;
|
||||
};
|
@ -12,10 +12,14 @@
|
||||
Github:
|
||||
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/EPOCH_PutHandler.sqf
|
||||
*/
|
||||
private _class = param [2];
|
||||
params ["_unit", "_container", "_class"];
|
||||
//Radio Check
|
||||
if (configName(inheritsFrom(configFile >> "CfgWeapons" >> _class)) == "ItemRadio") then {
|
||||
if !(_class in(assignedItems player)) then {
|
||||
EPOCH_equippedItem_PVS = [_class,false,player];
|
||||
};
|
||||
};
|
||||
|
||||
if (_class in ["EnergyPack","EnergyPackLg"] && (typeof _container) in ["SolarCharger_EPOCH","SolarChargerXL_EPOCH"]) then {
|
||||
["Charging ...",5,[[0,1,0,0.2],[1,1,1,1]]] call Epoch_Message;
|
||||
};
|
||||
|
@ -49,6 +49,10 @@ if (configName(inheritsFrom(configFile >> "CfgWeapons" >> _item)) == "ItemRadio"
|
||||
};
|
||||
};
|
||||
|
||||
if (_item in ["EnergyPack","EnergyPackLg"] && (typeof _container) in ["SolarCharger_EPOCH","SolarChargerXL_EPOCH"]) then {
|
||||
["Stop Charging ...",5,[[1,0,0,0.2],[1,1,1,1]]] call Epoch_Message;
|
||||
};
|
||||
|
||||
// Unisex vest check
|
||||
_woman = getNumber(configFile >> "CfgVehicles" >> (typeOf player) >> "woman");
|
||||
_config = configfile >> "cfgweapons" >> _item;
|
||||
|
@ -42,13 +42,32 @@ if (_inputCount >= 3) then {
|
||||
_removeItem = {([player,_this] call BIS_fnc_invRemove) == 1};
|
||||
|
||||
_unifiedInteract = {
|
||||
private _removed = _item call _removeItem;
|
||||
private ["_removed","_multi","_maxMagRnd","_totalMags","_remove"];
|
||||
_removed = false;
|
||||
_multi = 1;
|
||||
_maxMagRnd = getnumber (configfile >> "cfgMagazines" >> _item >> "count");
|
||||
if (_maxMagRnd > 1) then {
|
||||
_totalMags = (magazinesammo player) select {(_x select 0) isequalto _item};
|
||||
if !(_totalMags isequalto []) then {
|
||||
_remove = _totalMags deleteat 0;
|
||||
_removed = true;
|
||||
_remove params ["_class","_rounds"];
|
||||
_multi = _rounds / _maxMagRnd;
|
||||
player removemagazines _item;
|
||||
{
|
||||
_x call EPOCH_fnc_addMagazineOverflow;
|
||||
} foreach _totalMags;
|
||||
};
|
||||
}
|
||||
else {
|
||||
_removed = _item call _removeItem;
|
||||
};
|
||||
if (_removed) then {
|
||||
if (_interactReturnOnUse != "") then {
|
||||
_interactReturnOnUse call EPOCH_fnc_addItemOverflow;
|
||||
};
|
||||
{
|
||||
_output = _x call EPOCH_giveAttributes;
|
||||
_output = [_x select 0, round ((_x select 1) * _multi)] call EPOCH_giveAttributes;
|
||||
if (_output != "") then {
|
||||
[_output, 5] call Epoch_message_stack;
|
||||
};
|
||||
@ -412,6 +431,47 @@ switch _interactOption do {
|
||||
[format["%1 is not needed at this time",_item call EPOCH_itemDisplayName], 5] call Epoch_message;
|
||||
};
|
||||
};
|
||||
case 17: { // Defibrillator
|
||||
_maxMagRnd = getnumber (configfile >> "cfgMagazines" >> _item >> "count");
|
||||
_totalDefis = (magazinesammo player) select {(_x select 0) isequalto _item};
|
||||
_totalMags = (magazinesammo player) select {(_x select 0) in ["EnergyPackLg","EnergyPack"]};
|
||||
if (_totalDefis isequalto []) exitwith {};
|
||||
if !(_totalMags isequalto []) then {
|
||||
_CurDefiArr = [];
|
||||
{
|
||||
if ((_x select 1) < _maxMagRnd) exitwith {
|
||||
_CurDefiArr = _totalDefis deleteat _foreachindex;
|
||||
};
|
||||
} foreach _totalDefis;
|
||||
if (_CurDefiArr isequalto []) exitwith {
|
||||
["Defibrillator is already fully charged",5] call Epoch_Message;
|
||||
};
|
||||
_remove = _totalMags deleteat 0;
|
||||
_remove params ["_class","_rounds"];
|
||||
_charge = _rounds min (_maxMagRnd - (_CurDefiArr select 1));
|
||||
if (_rounds - _charge > 0) then {
|
||||
_remove set [1,_rounds - _charge];
|
||||
_totalMags pushback _remove;
|
||||
};
|
||||
if (_charge > 0) then {
|
||||
_CurDefiArr set [1,(_CurDefiArr select 1) + _charge];
|
||||
_totalDefis pushback _CurDefiArr;
|
||||
player removemagazines _item;
|
||||
player removemagazines "EnergyPackLg";
|
||||
player removemagazines "EnergyPack";
|
||||
{
|
||||
_x call EPOCH_fnc_addMagazineOverflow;
|
||||
} foreach _totalMags;
|
||||
{
|
||||
_x call EPOCH_fnc_addMagazineOverflow;
|
||||
} foreach _totalDefis;
|
||||
[format ["Recharged Defibrillator with %1 Energy",_charge],5] call Epoch_Message;
|
||||
};
|
||||
}
|
||||
else {
|
||||
["You need an Energy Pack",5] call Epoch_Message;
|
||||
};
|
||||
};
|
||||
|
||||
default {
|
||||
["Found nothing", 5] call Epoch_message;
|
||||
|
@ -23,7 +23,7 @@
|
||||
BOOL
|
||||
*/
|
||||
//[[[cog import generate_private_arrays ]]]
|
||||
private ["_alljammer","_buildingAllowed","_buildingCountLeader","_buildingCountLimit","_buildingCountPerMember","_buildingJammerRange","_bypassJammer","_c","_cfgBaseBuilding","_config","_ghostClass","_isAllowed","_jammer","_jammerGLOnly","_jammerPerGroup","_limitNearby","_maxBuildingHeight","_membercount","_minJammerDistance","_myPosATL","_nearestJammer","_obj","_objType","_objectscount","_ownedJammerExists","_range","_restricted","_restrictedArray","_restrictedLocations","_restrictedLocationsArray","_restrictedLocationsRange","_simulClass","_staticClass","_storageCountLeader","_storageCountLimit","_storageCountPerMember","_useGroupCountLimits","_useSplitCountLimits"];
|
||||
private ["_CamCountLimit","_alljammer","_buildingAllowed","_buildingCountLeader","_buildingCountLimit","_buildingCountPerMember","_buildingJammerRange","_bypassJammer","_c","_cfgBaseBuilding","_config","_ghostClass","_isAllowed","_jammer","_jammerGLOnly","_jammerPerGroup","_limitNearby","_maxBuildingHeight","_membercount","_minJammerDistance","_myPosATL","_nearestJammer","_obj","_objType","_objectscount","_ownedJammerExists","_range","_restricted","_restrictedArray","_restrictedLocations","_restrictedLocationsArray","_restrictedLocationsRange","_simulClass","_staticClass","_storageCountLeader","_storageCountLimit","_storageCountPerMember","_useGroupCountLimits","_useSplitCountLimits"];
|
||||
//[[[end]]]
|
||||
|
||||
_buildingAllowed = true;
|
||||
@ -49,6 +49,7 @@ _storageCountPerMember = getNumber(_config >> "storageCountPerMember");
|
||||
_minJammerDistance = getNumber(_config >> "minJammerDistance");
|
||||
_maxBuildingHeight = getNumber(_config >> "maxBuildingHeight");
|
||||
_jammerPerGroup = getNumber(_config >> "jammerPerGroup");
|
||||
_CamCountLimit = getNumber(_config >> "maxCams");
|
||||
if(getNumber(_config >> "useGroupCountLimits") == 0)then{_useGroupCountLimits=false};
|
||||
if(getNumber(_config >> "splitCountLimits") == 1)then{_useSplitCountLimits=true};
|
||||
if(getNumber(_config >> "jammerGLOnly") == 0)then{_jammerGLOnly=false};
|
||||
@ -59,6 +60,7 @@ if(_storageCountLeader == 0)then{_storageCountLeader = 100};
|
||||
if(_minJammerDistance == 0)then{_minJammerDistance = _buildingJammerRange*3};
|
||||
if(_maxBuildingHeight == 0)then{_maxBuildingHeight = 100};
|
||||
if(_jammerPerGroup == 0)then{_jammerPerGroup = 2};
|
||||
if(_CamCountLimit == 0)then{_CamCountLimit = 2};
|
||||
|
||||
// input
|
||||
params ["_objType"];
|
||||
@ -133,6 +135,12 @@ if !(_jammer isEqualTo []) then {
|
||||
_buildingAllowed = false;
|
||||
["Building Disallowed: Max building height reached",5] call Epoch_message;
|
||||
};
|
||||
if (_objType isequalto "BaseCam_EPOCH" && _buildingAllowed) then {
|
||||
if ((count (nearestObjects[_nearestJammer,["BaseCam_EPOCH","BaseCam_SIM_EPOCH","BaseCam_Ghost_EPOCH"],_buildingJammerRange]-[_obj])) >= _CamCountLimit) then {
|
||||
_buildingAllowed = false;
|
||||
[format["Building Disallowed: Max %1 Cams per Base!", _CamCountLimit], 5] call Epoch_message;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -101,7 +101,7 @@ if (_object isKindOf "Constructions_static_F") then {
|
||||
|
||||
_canUpgrade = true;
|
||||
_canUpgradePartCount = 0;
|
||||
_missingParts = "";
|
||||
_missingParts = "Missing: ";
|
||||
{
|
||||
_part = _x select 0;
|
||||
_req = _x select 1;
|
||||
@ -111,27 +111,27 @@ if (_object isKindOf "Constructions_static_F") then {
|
||||
_missingCount = _req - _partCheck;
|
||||
|
||||
_canUpgrade = false;
|
||||
_missingParts = _missingParts + format["Missing %1 %2, ", _missingCount, (_part call EPOCH_itemDisplayName)];
|
||||
_missingParts = _missingParts + format["%1 %2, ", _missingCount, (_part call EPOCH_itemDisplayName)];
|
||||
};
|
||||
_canUpgradePartCount = _canUpgradePartCount + _req;
|
||||
} forEach _upgradeParts;
|
||||
|
||||
_doors = ["WoodLargeWallDoorL_EPOCH","WoodWall4_EPOCH","CinderWallDoorwHatch_EPOCH"];
|
||||
_gates = ["CinderWallGarage_EPOCH"];
|
||||
_doors = ["WoodLargeWallDoorL_EPOCH","WoodWall4_EPOCH","CinderWallDoorwHatch_EPOCH","WoodStairs3_EPOCH"];
|
||||
_gates = ["CinderWallGarage_EPOCH","WoodWallGarage_EPOCH","MetalWallGarage_EPOCH"];
|
||||
if (_canUpgrade) then {
|
||||
_upgradeto = _upgrade select 0;
|
||||
if (_upgradeto in _doors) then {
|
||||
_countdoors = count (nearestobjects [_nearestJammer,_doors,_buildingJammerRange]);
|
||||
if (_countdoors >= _maxdoors) then {
|
||||
_canUpgrade = false;
|
||||
_missingParts = _missingParts + format["Can not upgrade to locked Door! Max %1 allowed per Base!", _maxdoors];
|
||||
_missingParts = format["Can not upgrade to locked Door / Stairs! Max %1 allowed per Base!", _maxdoors];
|
||||
};
|
||||
};
|
||||
if (_upgradeto in _gates) then {
|
||||
_countgates = count (nearestobjects [_nearestJammer,_gates,_buildingJammerRange]);
|
||||
if (_countgates >= _maxgates) then {
|
||||
_canUpgrade = false;
|
||||
_missingParts = _missingParts + format["Can not upgrade to Gate! Max %1 allowed per Base!", _maxgates];
|
||||
_missingParts = format["Can not upgrade to Gate! Max %1 allowed per Base!", _maxgates];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -13,7 +13,7 @@
|
||||
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/functions/EPOCH_fn_returnConfigEntryV2.sqf
|
||||
|
||||
Example:
|
||||
_sapperRndChance = ["CfgEpochClient", "sapperRngChance", 100] call EPOCH_fnc_returnConfigEntryV2;
|
||||
_config = ["CfgEpochClient", "sapperRngChance", 100] call EPOCH_fnc_returnConfigEntryV2;
|
||||
|
||||
Parameter(s):
|
||||
_this select 0: STRING - Config Class
|
||||
@ -24,7 +24,7 @@
|
||||
MIXED
|
||||
*/
|
||||
//[[[cog import generate_private_arrays ]]]
|
||||
private ["_config","_finalconfig","_missionconfig","_sapperRndChance","_varData"];
|
||||
private ["_config","_finalconfig","_missionconfig","_varData"];
|
||||
//[[[end]]]
|
||||
params ["_configClass","_variableName","_defaultData"];
|
||||
_varData = _defaultData;
|
||||
|
@ -37,7 +37,7 @@ switch true do {
|
||||
if (!isNull cursorTarget) then {
|
||||
_cursorTarget = cursorTarget;
|
||||
_repaired = false;
|
||||
if ((player distance _cursorTarget) <= 6) then {
|
||||
if ((player distance _cursorTarget) <= (((SizeOf (TypeOf _cursorTarget))/2) max 6) min 12) then {
|
||||
_attachments = handgunItems player;
|
||||
_heal = false;
|
||||
if (_cursorTarget isKindOf "Man") then {
|
||||
@ -97,12 +97,14 @@ switch true do {
|
||||
};
|
||||
case (_ammo isKindOf "B_Swing" || _ammo isKindOf "B_Stick") : {
|
||||
player playActionNow "SledgeSwing";
|
||||
if (_weapon in ["MeleeSword","Power_Sword"]) then {
|
||||
call EPOCH_mineRocks;
|
||||
call EPOCH_chopWood;
|
||||
};
|
||||
if (_weapon isEqualTo "MeleeRod") then {
|
||||
call EPOCH_fish;
|
||||
}
|
||||
else {
|
||||
call EPOCH_mineRocks;
|
||||
if (_weapon in ["MeleeSword","Power_Sword"]) then {
|
||||
call EPOCH_chopWood;
|
||||
};
|
||||
};
|
||||
};
|
||||
case (_ammo isKindOf "ChainSaw_Bullet"): {
|
||||
|
@ -161,10 +161,10 @@ if (vehicle player == player) then {
|
||||
};
|
||||
if (Epoch_target iskindof 'Const_Ghost_EPOCH') then {
|
||||
switch (_dikCode) do {
|
||||
case eXpoch_keysVectorTiltL: {_adj = 1;if(_shift)then{_adj = 2.5};if(_alt)then{_adj = 0.5};EPOCH_buildDirectionRoll = (EPOCH_buildDirectionRoll - _adj) max -180; EPOCH_doRotate = true; _handled = true };
|
||||
case eXpoch_keysVectorTiltR: {_adj = 1;if(_shift)then{_adj = 2.5};if(_alt)then{_adj = 0.5};EPOCH_buildDirectionRoll = (EPOCH_buildDirectionRoll + _adj) min 180; EPOCH_doRotate = true; _handled = true };
|
||||
case eXpoch_keysVectorTiltAwy: {_adj = 1;if(_shift)then{_adj = 2.5};if(_alt)then{_adj = 0.5};EPOCH_buildDirectionPitch = (EPOCH_buildDirectionPitch - _adj) max -180; EPOCH_doRotate = true; _handled = true };
|
||||
case eXpoch_keysVectorTiltTwd: {_adj = 1;if(_shift)then{_adj = 2.5};if(_alt)then{_adj = 0.5};EPOCH_buildDirectionPitch = (EPOCH_buildDirectionPitch + _adj) min 180; EPOCH_doRotate = true; _handled = true };
|
||||
case eXpoch_keysVectorTiltL: {_adj = 1;if(_shift)then{_adj = 2.5};if(_alt)then{_adj = 0.5};EPOCH_buildDirectionRoll = (EPOCH_buildDirectionRoll - _adj) max -EPOCH_MaxBuildingTilt; EPOCH_doRotate = true; _handled = true };
|
||||
case eXpoch_keysVectorTiltR: {_adj = 1;if(_shift)then{_adj = 2.5};if(_alt)then{_adj = 0.5};EPOCH_buildDirectionRoll = (EPOCH_buildDirectionRoll + _adj) min EPOCH_MaxBuildingTilt; EPOCH_doRotate = true; _handled = true };
|
||||
case eXpoch_keysVectorTiltAwy: {_adj = 1;if(_shift)then{_adj = 2.5};if(_alt)then{_adj = 0.5};EPOCH_buildDirectionPitch = (EPOCH_buildDirectionPitch - _adj) max -EPOCH_MaxBuildingTilt; EPOCH_doRotate = true; _handled = true };
|
||||
case eXpoch_keysVectorTiltTwd: {_adj = 1;if(_shift)then{_adj = 2.5};if(_alt)then{_adj = 0.5};EPOCH_buildDirectionPitch = (EPOCH_buildDirectionPitch + _adj) min EPOCH_MaxBuildingTilt; EPOCH_doRotate = true; _handled = true };
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -270,19 +270,22 @@ if (_dikCode in (actionKeys "NightVision")) then {
|
||||
};
|
||||
|
||||
if(!_ctrl && (_dikCode in (actionKeys "HeliRopeAction")))then{
|
||||
if (player == vehicle player) exitwith {};
|
||||
_msg = "";
|
||||
if(EPOCH_ArmaSlingLoad)then{
|
||||
if(driver vehicle player isEqualTo player)then{
|
||||
_slung = ropeAttachedObjects vehicle player;
|
||||
if(_slung isEqualTo [])then{
|
||||
if!('ItemRope' in magazines player) then {
|
||||
_msg = "You need rope to hook";
|
||||
_handled = true;
|
||||
if (["CfgEpochClient", "ActionHookRope", true] call EPOCH_fnc_returnConfigEntryV2) then {
|
||||
if(driver vehicle player isEqualTo player)then{
|
||||
_slung = ropeAttachedObjects vehicle player;
|
||||
if(_slung isEqualTo [])then{
|
||||
if!('ItemRope' in magazines player) then {
|
||||
_msg = "You need rope to hook";
|
||||
_handled = true;
|
||||
}else{
|
||||
player removeItem 'ItemRope';
|
||||
};
|
||||
}else{
|
||||
player removeItem 'ItemRope';
|
||||
player addItem 'ItemRope';
|
||||
};
|
||||
}else{
|
||||
player addItem 'ItemRope';
|
||||
};
|
||||
};
|
||||
}else{
|
||||
@ -294,4 +297,47 @@ if(!_ctrl && (_dikCode in (actionKeys "HeliRopeAction")))then{
|
||||
};
|
||||
};
|
||||
|
||||
if (!isnull (finddisplay -1200) && !isnull Epoch_ActiveCam) then {
|
||||
_multi = 1;
|
||||
if (isnil 'Epoch_CamTrigger') then {
|
||||
Epoch_CamTrigger = diag_ticktime - 0.2;
|
||||
};
|
||||
if (diag_ticktime - Epoch_CamTrigger < 0.1) then {
|
||||
_multi = 3;
|
||||
};
|
||||
Epoch_CamTrigger = diag_ticktime;
|
||||
switch _dikCode do {
|
||||
case Epoch_KB_BaseCamNextCam: { /* Num Enter */
|
||||
call Epoch_CamUse;
|
||||
};
|
||||
case Epoch_KB_BaseCamLeft: { /* Num 4 */
|
||||
Epoch_AutoCam = false;
|
||||
Epoch_CamAdjust = [-3*_multi,0,0];
|
||||
};
|
||||
case Epoch_KB_BaseCamRight: { /* Num 6 */
|
||||
Epoch_AutoCam = false;
|
||||
Epoch_CamAdjust = [3*_multi,0,0];
|
||||
};
|
||||
case Epoch_KB_BaseCamUp: { /* Num 8 */
|
||||
Epoch_AutoCam = false;
|
||||
Epoch_CamAdjust = [0,8*_multi,0];
|
||||
};
|
||||
case Epoch_KB_BaseCamDown: { /* Num 2 */
|
||||
Epoch_AutoCam = false;
|
||||
Epoch_CamAdjust = [0,-8*_multi,0];
|
||||
};
|
||||
case Epoch_KB_BaseCamZoomOut: { /* Num - */
|
||||
Epoch_AutoCam = false;
|
||||
Epoch_CamAdjust = [0,0,0.1*_multi];
|
||||
};
|
||||
case Epoch_KB_BaseCamZoomIn: { /* Num + */
|
||||
Epoch_AutoCam = false;
|
||||
Epoch_CamAdjust = [0,0,-0.1*_multi];
|
||||
};
|
||||
case Epoch_KB_BaseCamAutoCam: { /* Num 0 */
|
||||
Epoch_AutoCam = true;
|
||||
Epoch_CamAdjust = [0,0,0];
|
||||
};
|
||||
};
|
||||
};
|
||||
_handled
|
||||
|
@ -26,39 +26,46 @@ params [
|
||||
_blocked = false;
|
||||
_msg = '';
|
||||
_type = typeOf _actionObj;
|
||||
switch(true)do{
|
||||
case (_actionName isEqualTo 'FireInflame'): {
|
||||
if!('lighter_epoch' in magazines player) then {
|
||||
_msg = 'You need a lighter';
|
||||
_blocked = true;
|
||||
}else{
|
||||
[player,'lighter_epoch',-1] call EPOCH_usedItemRepack;
|
||||
//[_actionObj] remoteExec ['EPOCH_server_addToFireSystem',2];
|
||||
};
|
||||
};
|
||||
case (_actionName isEqualTo 'FirePutDown'): {
|
||||
if(_type isEqualTo 'BurnBarrel_EPOCH')then{
|
||||
if!('ItemFireExtinguisher' in magazines player) then {
|
||||
_msg = 'You need an extinguisher';
|
||||
_config = 'CfgEpochClient' call EPOCH_returnConfig;
|
||||
switch(_actionName)do{
|
||||
case 'FireInflame': {
|
||||
if (["CfgEpochClient", "ActionFireOnLighter", true] call EPOCH_fnc_returnConfigEntryV2) then {
|
||||
if!('lighter_epoch' in magazines player) then {
|
||||
_msg = 'You need a lighter';
|
||||
_blocked = true;
|
||||
}else{
|
||||
[player,'ItemFireExtinguisher',-1] call EPOCH_usedItemRepack;
|
||||
[player,'lighter_epoch',-5] call EPOCH_usedItemRepack;
|
||||
//[_actionObj] remoteExec ['EPOCH_server_addToFireSystem',2];
|
||||
};
|
||||
};
|
||||
};
|
||||
case (_actionName isEqualTo 'HookCargo'): {
|
||||
if(EPOCH_ArmaSlingLoad)then{
|
||||
if(driver vehicle player isEqualTo player)then{
|
||||
_slung = ropeAttachedObjects vehicle player;
|
||||
if(_slung isEqualTo [])then{
|
||||
if!('ItemRope' in magazines player) then {
|
||||
_msg = 'You need rope to hook';
|
||||
_blocked = true;
|
||||
}else{
|
||||
player removeItem 'ItemRope';
|
||||
};
|
||||
case 'FirePutDown': {
|
||||
if (["CfgEpochClient", "ActionBurnBarrelOffExtinguisher", true] call EPOCH_fnc_returnConfigEntryV2) then {
|
||||
if(_type isEqualTo 'BurnBarrel_EPOCH')then{
|
||||
if!('ItemFireExtinguisher' in magazines player) then {
|
||||
_msg = 'You need an extinguisher';
|
||||
_blocked = true;
|
||||
}else{
|
||||
player addItem 'ItemRope';
|
||||
[player,'ItemFireExtinguisher',-1] call EPOCH_usedItemRepack;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
case 'HookCargo': {
|
||||
if(EPOCH_ArmaSlingLoad)then{
|
||||
if (["CfgEpochClient", "ActionHookRope", true] call EPOCH_fnc_returnConfigEntryV2) then {
|
||||
if(driver vehicle player isEqualTo player)then{
|
||||
_slung = ropeAttachedObjects vehicle player;
|
||||
if(_slung isEqualTo [])then{
|
||||
if!('ItemRope' in magazines player) then {
|
||||
_msg = 'You need rope to hook';
|
||||
_blocked = true;
|
||||
}else{
|
||||
player removeItem 'ItemRope';
|
||||
};
|
||||
}else{
|
||||
player addItem 'ItemRope';
|
||||
};
|
||||
};
|
||||
};
|
||||
}else{
|
||||
@ -66,9 +73,11 @@ switch(true)do{
|
||||
_blocked = true;
|
||||
};
|
||||
};
|
||||
case (_actionName isEqualTo 'UnhookCargo'): {
|
||||
case 'UnhookCargo': {
|
||||
if(EPOCH_ArmaSlingLoad)then{
|
||||
player addItem 'ItemRope';
|
||||
if (["CfgEpochClient", "ActionHookRope", true] call EPOCH_fnc_returnConfigEntryV2) then {
|
||||
player addItem 'ItemRope';
|
||||
};
|
||||
}else{
|
||||
_msg = 'Unhook Malfunction, overrode by R3F or AdvSlingLoad';
|
||||
_blocked = true;
|
||||
|
@ -44,6 +44,9 @@ EPOCH_arr_snapObjects = [];
|
||||
EPOCH_prevTarget = objNull;
|
||||
EPOCH_interactOption = 0;
|
||||
EPOCH_playerStaminaMax = 100;
|
||||
Epoch_ActiveCam = objnull;
|
||||
Epoch_AutoCam = true;
|
||||
Epoch_CamAdjust = [0,0,0];
|
||||
|
||||
{
|
||||
missionNamespace setVariable [format ["EPOCH_player%1",_x],EPOCH_defaultVars select _forEachIndex];
|
||||
|
@ -57,7 +57,16 @@ _keyMap =
|
||||
["Build: Vector RIGHT", "eXpoch_keysVectorTiltR", 0xCD],
|
||||
["Build: Vector AWAY", "eXpoch_keysVectorTiltAwy", 0xC8],
|
||||
["Build: Vector TOWARD", "eXpoch_keysVectorTiltTwd", 0xD0],
|
||||
["Build: Reset Object", "eXpoch_keysVectorResetObject", 0x4C]
|
||||
["Build: Reset Object", "eXpoch_keysVectorResetObject", 0x4C],
|
||||
|
||||
["BaseCam: NextCam","Epoch_KB_BaseCamNextCam",0x9C],
|
||||
["BaseCam: Left","Epoch_KB_BaseCamLeft",0x4B],
|
||||
["BaseCam: Right","Epoch_KB_BaseCamRight",0x4D],
|
||||
["BaseCam: Up","Epoch_KB_BaseCamUp",0x48],
|
||||
["BaseCam: Down","Epoch_KB_BaseCamDown",0x50],
|
||||
["BaseCam: Zoom -","Epoch_KB_BaseCamZoomOut",74],
|
||||
["BaseCam: Zoom +","Epoch_KB_BaseCamZoomIn",78],
|
||||
["BaseCam: AutoCam","Epoch_KB_BaseCamAutoCam",0x52]
|
||||
];
|
||||
|
||||
_keyMap call EPOCH_custom_KeyMap;
|
||||
|
@ -8,4 +8,18 @@ if (EPOCH_IsAutoRunning) then {
|
||||
EPOCH_IsAutoRunning = false;
|
||||
player switchMove "";
|
||||
};
|
||||
};
|
||||
|
||||
if (animationstate player in ['aadjpknlmstpsraswpstddown','aadjpknlmstpsraswrflddown'] && cameraview == 'GUNNER' && (player weapondirection (currentweapon player)) select 2 < -0.88) then {
|
||||
_fadedblack = true;
|
||||
TitleText ['Stop BugUsing!','BLACK FADED'];
|
||||
}
|
||||
else {
|
||||
if(_fadedblack) then {
|
||||
[] spawn {
|
||||
uisleep 2;
|
||||
TitleText ['','PLAIN DOWN'];
|
||||
};
|
||||
_fadedblack = false;
|
||||
};
|
||||
};
|
@ -21,7 +21,7 @@ _energyValue = _chargeRate min _energyRegenMax;
|
||||
_vehicle = vehicle player;
|
||||
if (_vehicle != player && isEngineOn _vehicle) then {
|
||||
if !(_vehicle iskindof "Bicycle") then {
|
||||
_energyValue = _energyValue + 5;
|
||||
_energyValue = _energyValue + _energyRegenInVeh;
|
||||
};
|
||||
};
|
||||
if (currentVisionMode player == 1) then { //NV enabled
|
||||
@ -36,8 +36,8 @@ if (currentVisionMode player == 1) then { //NV enabled
|
||||
// Sets visual effect
|
||||
_playerAlcohol = missionNamespace getVariable [_playerAlcoholKey, _playerAlcoholDefault];
|
||||
if (_playerAlcohol > 20) then {
|
||||
_drunkVal = linearConversion [0,100,_playerAlcohol,0.1,1,true];
|
||||
[_drunkVal, 2] call epoch_setDrunk;
|
||||
_drunkVal = linearConversion [0,100,_playerAlcohol,0,10,true];
|
||||
[(ceil _drunkVal)/10, 2] call epoch_setDrunk;
|
||||
} else {
|
||||
[0, 2] call epoch_setDrunk;
|
||||
};
|
||||
|
@ -2,7 +2,7 @@ _position = getPosATL player;
|
||||
|
||||
_nearestLocations = nearestLocations[player, _radioactiveLocations, 300];
|
||||
EPOCH_nearestLocations = _nearestLocations;
|
||||
_powerSources = nearestObjects[player, ["Land_spp_Tower_F","Land_wpp_Turbine_V2_F","Land_wpp_Turbine_V1_F","SolarGen_EPOCH","Land_Wreck_Satellite_EPOCH"], _energyRange];
|
||||
_powerSources = nearestObjects[player, _energyPowerSources, _energyRange];
|
||||
|
||||
// TODO: add more sources and config based check instead of global var
|
||||
// _nearestLocations removed as they don't support getVariable
|
||||
@ -109,25 +109,26 @@ _chargeRate = 0;
|
||||
if !(_powerSources isEqualTo[]) then {
|
||||
_totalCapacity = 0;
|
||||
{
|
||||
_powerClass = typeOf _x;
|
||||
_powerCap = getNumber(_cfgBaseBuilding >> _powerClass >> "powerCapacity");
|
||||
_powerType = getNumber(_cfgBaseBuilding >> _powerClass >> "powerType");
|
||||
if (_powerCap == 0) then {
|
||||
_powerCap = 100;
|
||||
};
|
||||
if (_powerType == 1) then {
|
||||
if (sunOrMoon < 1) then {
|
||||
_powerCap = _powerCap/2;
|
||||
};
|
||||
};
|
||||
_totalCapacity = _totalCapacity + _powerCap;
|
||||
_powerClass = typeOf _x;
|
||||
_powerCap = getNumber(_cfgBaseBuilding >> _powerClass >> "powerCapacity");
|
||||
_powerType = getNumber(_cfgBaseBuilding >> _powerClass >> "powerType");
|
||||
if (_powerCap == 0) then {
|
||||
_powerCap = 100;
|
||||
};
|
||||
_powerCap = switch _powerType do {
|
||||
case 1: {if (sunOrMoon == 1) then {_powerCap * (1-overcast)} else {(_powerCap * (1 - overcast))/2}};
|
||||
case 2: {_powerCap * windstr};
|
||||
case 3: {_powerCap * (1 - ((player distance _x) / _energyRange))};
|
||||
default {_powerCap};
|
||||
};
|
||||
_totalCapacity = _totalCapacity + _powerCap;
|
||||
} forEach _powerSources;
|
||||
if (_totalCapacity > 0) then {
|
||||
_players = player nearEntities[["Epoch_Male_F", "Epoch_Female_F"], _energyRange];
|
||||
if (_players isEqualTo []) then {
|
||||
_chargeRate = ceil _totalCapacity;
|
||||
_chargeRate = round _totalCapacity;
|
||||
} else {
|
||||
_chargeRate = ceil (_totalCapacity / (count _players));
|
||||
_chargeRate = round (_totalCapacity / (count _players));
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -13,6 +13,9 @@ EPOCH_forceUpdateNow = false;
|
||||
// start alive timer
|
||||
_clientAliveTimer = diag_tickTime;
|
||||
|
||||
// Fade Black Screen
|
||||
_fadedblack = false;
|
||||
|
||||
// init player stat vars
|
||||
_gmVarsInit = ["CfgEpochClient", "gmVars", [["Temp",98.6],["Hunger",500],["Thirst",500],["Toxicity",0],["Stamina",10],["BloodP",100],["Alcohol",0],["Radiation",0]]] call EPOCH_fnc_returnConfigEntryV2;
|
||||
_gModeVarNames = _gmVarsInit apply {_x param [0,""]};
|
||||
@ -122,6 +125,8 @@ _baseThirstLoss = ["CfgEpochClient", "baseThirstLoss", 2] call EPOCH_fnc_returnC
|
||||
_baseAlcoholLoss = ["CfgEpochClient", "baseAlcoholLoss", 0.17] call EPOCH_fnc_returnConfigEntryV2;
|
||||
_lossMultiplier = if (["CfgEpochClient", "accelerateHTALoss", true] call EPOCH_fnc_returnConfigEntryV2) then {timeMultiplier} else {1};
|
||||
_energyCostNV = ["CfgEpochClient", "energyCostNV", 3] call EPOCH_fnc_returnConfigEntryV2;
|
||||
_energyPowerSources = ["CfgEpochClient", "energyPowerSources", ["Land_spp_Tower_F","Land_wpp_Turbine_V2_F","Land_wpp_Turbine_V1_F","SolarGen_EPOCH","Land_Wreck_Satellite_EPOCH"]] call EPOCH_fnc_returnConfigEntryV2;
|
||||
_energyRegenInVeh = ["CfgEpochClient", "energyChargeInVeh", 5] call EPOCH_fnc_returnConfigEntryV2;
|
||||
_energyRegenMax = ["CfgEpochClient", "energyRegenMax", 5] call EPOCH_fnc_returnConfigEntryV2;
|
||||
_energyRange = ["CfgEpochClient", "energyRange", 75] call EPOCH_fnc_returnConfigEntryV2;
|
||||
_hudConfigs = ["CfgEpochClient", "hudConfigs", []] call EPOCH_fnc_returnConfigEntryV2;
|
||||
|
@ -51,9 +51,15 @@ if !(isNull EPOCH_lastNPCtradeTarget) then {
|
||||
{
|
||||
_item = _x;
|
||||
_rounds = 1;
|
||||
_onHand = false;
|
||||
if (_item isequaltype []) then {
|
||||
_item = _x select 0;
|
||||
_rounds = _x select 1;
|
||||
if ((_x select 1) isequalto "Hand") then {
|
||||
_onHand = true;
|
||||
}
|
||||
else {
|
||||
_rounds = _x select 1;
|
||||
};
|
||||
};
|
||||
if !(_item isequalto "") then {
|
||||
_maxrnd = 1;
|
||||
@ -66,7 +72,7 @@ if !(isNull EPOCH_lastNPCtradeTarget) then {
|
||||
_tooltip = format ["%1 rounds left in Magazine",_rounds];
|
||||
};
|
||||
if (_index == 0 || (tolower _item) in _FilterArray) then {
|
||||
_id = lbAdd [_PlayerItemsBox, _item call EPOCH_itemDisplayName];
|
||||
_id = lbAdd [_PlayerItemsBox, (_item call EPOCH_itemDisplayName) + (if (_onHand) then {" (in Hand)"} else {""})];
|
||||
lbSetData [_PlayerItemsBox, _id, _item];
|
||||
lbSetValue [_PlayerItemsBox, _id, _rounds];
|
||||
lbSetPicture [_PlayerItemsBox, _id, _item call EPOCH_itemPicture];
|
||||
@ -74,6 +80,9 @@ if !(isNull EPOCH_lastNPCtradeTarget) then {
|
||||
lbSetTooltip [_PlayerItemsBox, _id, _tooltip];
|
||||
lbSetColor [_PlayerItemsBox,_id,[1,(_rounds/_maxrnd),0,1]];
|
||||
};
|
||||
if (_onHand) then {
|
||||
lbSetColor [_PlayerItemsBox,_id,[1,1,1,0.5]];
|
||||
};
|
||||
};
|
||||
};
|
||||
} forEach EPOCH_NpcTradePlayerItems;
|
||||
|
@ -13,8 +13,8 @@
|
||||
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/traders/EPOCH_npcTraderAdd.sqf
|
||||
*/
|
||||
|
||||
private [ "_PlayerFilerDropDown","_PlayerItemsBox","_PlayerItemsOutBox","_TraderItemsOutBox","_CryptoInCtrl","_CryptoOutCtrl","_allowAdd","_uiItem","_rounds","_itemIcon","_itemColor","_errormsg","_stockLimit","_config",
|
||||
"_itemClasses","_itemQtys","_qtyIndex","_limit","_sizeOut","_item","_vehicle","_itemName","_index","_maxrnd","_ItemIndex","_cryptoCount","_worth","_itemTax","_tax"
|
||||
private [ "_PlayerFilerDropDown","_PlayerItemsBox","_PlayerItemsOutBox","_TraderItemsOutBox","_CryptoInCtrl","_CryptoOutCtrl","_allowAdd","_uiItem","_rounds","_itemIcon","_itemColor","_errormsg","_config",
|
||||
"_sizeOut","_item","_vehicle","_itemName","_index","_maxrnd","_ItemIndex","_cryptoCount","_worth","_itemTax","_tax"
|
||||
];
|
||||
params ["_control","_selected"];
|
||||
_selected params ["_CurControl","_id"];
|
||||
@ -33,36 +33,10 @@ if !(isNull EPOCH_lastNPCtradeTarget) then {
|
||||
_itemIcon = _CurControl lbPicture _id;
|
||||
_itemColor = _CurControl lbColor _id;
|
||||
_errormsg = "";
|
||||
_stockLimit = false;
|
||||
|
||||
_config = 'CfgPricing' call EPOCH_returnConfig;
|
||||
if (isClass (_config >> _uiItem)) then {
|
||||
if (_control == _PlayerItemsOutBox) then {
|
||||
_itemClasses = EPOCH_NpcTradeTraderItems select 0;
|
||||
_itemQtys = EPOCH_NpcTradeTraderItems select 1;
|
||||
_qtyIndex = _itemClasses find _uiItem;
|
||||
if (_qtyIndex != -1) then {
|
||||
_itemQty = _itemQtys select _qtyIndex;
|
||||
_maxrnd = 1;
|
||||
if ([_uiItem,"cfgMagazines"] call Epoch_fnc_isAny) then {
|
||||
_maxrnd = getnumber (configfile >> "cfgMagazines" >> _uiItem >> "count");
|
||||
};
|
||||
_itemQty = _itemQty / _maxrnd;
|
||||
_sizeIn = lbSize _PlayerItemsOutBox;
|
||||
if (_sizeIn > 0) then {
|
||||
for "_i" from 0 to (_sizeIn - 1) do {
|
||||
_InItem = lbData [_PlayerItemsOutBox, _i];
|
||||
if ((lbData [_PlayerItemsOutBox, _i]) == _uiItem) then {
|
||||
_itemQty = _itemQty + ((lbValue [_PlayerItemsOutBox, _i])/_maxrnd);
|
||||
};
|
||||
};
|
||||
};
|
||||
_limit = ["CfgTraderLimits", _uiItem, 100] call EPOCH_fnc_returnConfigEntryV2;
|
||||
if (_itemQty >= _limit) then{
|
||||
_stockLimit = true;
|
||||
_allowAdd = false;
|
||||
};
|
||||
};
|
||||
if (_uiItem isKindOf "Air" || _uiItem isKindOf "Ship" || _uiItem isKindOf "LandVehicle" || _uiItem isKindOf "Tank") then {
|
||||
_sizeOut = lbSize _PlayerItemsOutBox;
|
||||
if (_sizeOut > 0) then {
|
||||
@ -114,7 +88,12 @@ if !(isNull EPOCH_lastNPCtradeTarget) then {
|
||||
lbSetPicture [_control, _index, _itemIcon];
|
||||
lbSetColor [_control,_index,_itemColor];
|
||||
if (_control == _PlayerItemsBox && !(_uiItem iskindof "Landvehicle" || _uiItem iskindof "SHIP" || _uiItem iskindof "AIR" || _uiItem iskindof "TANK")) then {
|
||||
EPOCH_NpcTradePlayerItems pushback [_uiItem,_rounds];
|
||||
if ((_itemName find " (in Hand)") > -1) then {
|
||||
EPOCH_NpcTradePlayerItems pushback [_uiItem,"Hand"];
|
||||
}
|
||||
else {
|
||||
EPOCH_NpcTradePlayerItems pushback [_uiItem,_rounds];
|
||||
};
|
||||
}
|
||||
else {
|
||||
if ([_uiItem,"cfgMagazines"] call Epoch_fnc_isAny) then {
|
||||
@ -124,9 +103,15 @@ if !(isNull EPOCH_lastNPCtradeTarget) then {
|
||||
lbSetTooltip [_control,_index,_tooltip];
|
||||
};
|
||||
};
|
||||
_ItemIndex = EPOCH_NpcTradePlayerItems find [_uiItem,_rounds];
|
||||
_ItemIndex = -1;
|
||||
if ((_itemName find " (in Hand)") > -1) then {
|
||||
_ItemIndex = EPOCH_NpcTradePlayerItems find [_uiItem,"Hand"];
|
||||
};
|
||||
if (_ItemIndex < 0) then {
|
||||
_ItemIndex = EPOCH_NpcTradePlayerItems find _uiItem;
|
||||
if (_ItemIndex < 0) then {
|
||||
_ItemIndex = EPOCH_NpcTradePlayerItems find [_uiItem,_rounds];
|
||||
};
|
||||
};
|
||||
if (_ItemIndex > -1) then {
|
||||
EPOCH_NpcTradePlayerItems deleteat _ItemIndex;
|
||||
@ -173,12 +158,7 @@ if !(isNull EPOCH_lastNPCtradeTarget) then {
|
||||
};
|
||||
}
|
||||
else {
|
||||
if (_stockLimit) then{
|
||||
["Trader has the maximum amount of this item", 5] call Epoch_message;
|
||||
}
|
||||
else {
|
||||
[_errormsg, 5] call Epoch_message;
|
||||
};
|
||||
[_errormsg, 5] call Epoch_message;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -23,7 +23,13 @@ if (alive _target) then {
|
||||
EPOCH_lastNPCtradeTarget = _target;
|
||||
EPOCH_NpcTradePlayerItems = (items player)+(magazinesammo player);
|
||||
if (primaryWeapon player != "") then {
|
||||
EPOCH_NpcTradePlayerItems pushback primaryWeapon player;
|
||||
EPOCH_NpcTradePlayerItems pushback [primaryWeapon player,"Hand"];
|
||||
};
|
||||
if (secondaryWeapon player != "") then {
|
||||
EPOCH_NpcTradePlayerItems pushback [secondaryWeapon player,"Hand"];
|
||||
};
|
||||
if (handgunWeapon player != "") then {
|
||||
EPOCH_NpcTradePlayerItems pushback [handgunWeapon player,"Hand"];
|
||||
};
|
||||
if (count backpackItems player == 0 && count backpackmagazines player == 0 && backpack player != "") then {
|
||||
EPOCH_NpcTradePlayerItems pushback backpack player;
|
||||
|
@ -13,12 +13,13 @@
|
||||
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf
|
||||
*/
|
||||
|
||||
private ["_PlayerItemsOutBox","_TraderItemsOutBox","_config","_current_crypto","_sizeIn","_arrayIn","_item","_rounds","_mags","_itemMags","_index","_sizeOut","_arrayOut","_itemWorth","_itemTax","_tax","_maxrnd"];
|
||||
private ["_EnableTempVehTrade","_PlayerItemsOutBox","_TraderItemsOutBox","_config","_current_crypto","_sizeIn","_arrayIn","_item","_rounds","_mags","_itemMags","_index","_sizeOut","_arrayOut","_itemWorth","_itemTax","_tax","_maxrnd"];
|
||||
|
||||
if (!isNil "EPOCH_TRADE_STARTED") exitWith{};
|
||||
if (isNull _this) exitWith{};
|
||||
|
||||
if (alive _this) then {
|
||||
_EnableTempVehTrade = ["CfgEpochClient", "EnableTempVehTrade", false] call EPOCH_fnc_returnConfigEntryV2;
|
||||
_PlayerItemsOutBox = 41501;
|
||||
_TraderItemsOutBox = 41502;
|
||||
_config = 'CfgPricing' call EPOCH_returnConfig;
|
||||
@ -27,6 +28,11 @@ if (alive _this) then {
|
||||
_arrayIn = [];
|
||||
if (_sizeIn > 0) then {
|
||||
for "_i" from 0 to (_sizeIn - 1) do {
|
||||
_onHand = false;
|
||||
_itemName = lbText [_PlayerItemsOutBox, _i];
|
||||
if ((_itemName find " (in hand)") > -1) then {
|
||||
_onHand = true;
|
||||
};
|
||||
_item = lbData [_PlayerItemsOutBox, _i];
|
||||
_rounds = lbValue [_PlayerItemsOutBox, _i];
|
||||
if (isClass (_config >> _item)) then{
|
||||
@ -38,13 +44,36 @@ if (alive _this) then {
|
||||
_itemWorth = round (_itemWorth*(_rounds/_maxrnd));
|
||||
_added = false;
|
||||
if ([_item, "CfgWeapons"] call EPOCH_fnc_isAny) then {
|
||||
if (_item in items player) then {
|
||||
if (_item in items player && !_onHand) then {
|
||||
player removeItem _item;
|
||||
_arrayIn pushBack [_item,_rounds];
|
||||
_added = true;
|
||||
}
|
||||
else {
|
||||
if (_item == primaryweapon player) then {
|
||||
if (_item in [primaryweapon player,secondaryweapon player, handgunweapon player]) then {
|
||||
_index = if (_item == primaryweapon player) then {0} else {if (_item == secondaryweapon player) then {1} else {2}};
|
||||
{
|
||||
if (_foreachindex > 0) then {
|
||||
_weaponaddon = _x;
|
||||
_count = 1;
|
||||
if !(_weaponaddon isequalto [] || _weaponaddon isequalto "") then {
|
||||
if (_weaponaddon isequaltype []) then {
|
||||
if (count _weaponaddon > 1) then {
|
||||
_weaponaddon = _x select 0;
|
||||
_count = _x select 1;
|
||||
};
|
||||
};
|
||||
if ([_weaponaddon, "CfgWeapons"] call EPOCH_fnc_isAny) then {
|
||||
_weaponaddon call EPOCH_fnc_addItemOverflow;
|
||||
}
|
||||
else {
|
||||
if ([_weaponaddon, "CfgMagazines"] call EPOCH_fnc_isAny) then {
|
||||
[_weaponaddon,_count] call EPOCH_fnc_addMagazineOverflow;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
} foreach ((getunitloadout player) select _index);
|
||||
player removeweapon _item;
|
||||
_arrayIn pushBack [_item,_rounds];
|
||||
_added = true;
|
||||
@ -65,7 +94,7 @@ if (alive _this) then {
|
||||
if (!isNull _vehicle) then {
|
||||
if (local _vehicle) then {
|
||||
_vehSlot = _vehicle getVariable["VEHICLE_SLOT", "ABORT"];
|
||||
if (_vehSlot != "ABORT") then {
|
||||
if (_vehSlot != "ABORT" || _EnableTempVehTrade) then {
|
||||
_arrayIn pushBack [_item,_rounds];
|
||||
_added = true;
|
||||
};
|
||||
|
@ -25,12 +25,13 @@ if (_veh iskindof "ebike_epoch") then {
|
||||
};
|
||||
_wheelcounter = 0;
|
||||
{
|
||||
_HitPointName = _x;
|
||||
_Hit = (getAllHitPointsDamage _veh) select 2 select _foreachindex;
|
||||
_x params ["_searchedhit","_limit1","_limit2"];
|
||||
_searchedhit = tolower _searchedhit;
|
||||
{
|
||||
_x params ["_searchedhit","_limit1","_limit2"];
|
||||
_HitPointName = tolower _x;
|
||||
_Hit = (getAllHitPointsDamage _veh) select 2 select _foreachindex;
|
||||
if (_searchedhit isequalto _HitPointName) then {
|
||||
_wheel = ["wheel",tolower _searchedhit] call bis_fnc_instring;
|
||||
_wheel = ["wheel",_searchedhit] call bis_fnc_instring;
|
||||
if (_wheel) then {
|
||||
_wheelcounter = _wheelcounter + 1;
|
||||
};
|
||||
@ -42,7 +43,7 @@ _wheelcounter = 0;
|
||||
_repairs pushback _searchedhit;
|
||||
};
|
||||
if (!((_veh getvariable ["vehicle_slot","-1"]) isequalto "-1") && _EnableRemoveParts) then {
|
||||
if (_searchedhit in ["HitLFWheel","HitLF2Wheel","HitLMWheel","HitLBWheel","HitRFWheel","HitRF2Wheel","HitRMWheel","HitRBWheel","HitEngine"]) then {
|
||||
if (_searchedhit in ["hitlfwheel","hitlf2wheel","hitlmwheel","hitlbwheel","hitrfwheel","hitrf2wheel","hitrmwheel","hitrbwheel","hitengine"]) then {
|
||||
_removes pushback _searchedhit;
|
||||
};
|
||||
};
|
||||
@ -50,7 +51,7 @@ _wheelcounter = 0;
|
||||
else {
|
||||
if (_searchedhit isequalto "glass") then {
|
||||
if ("glass" in _repairs) exitwith {};
|
||||
_glass = ["glass",tolower _HitPointName] call bis_fnc_instring;
|
||||
_glass = ["glass",_HitPointName] call bis_fnc_instring;
|
||||
if (_glass) then {
|
||||
if (_Hit >= _limit1) exitwith {
|
||||
_repairs pushback _searchedhit;
|
||||
@ -58,12 +59,13 @@ _wheelcounter = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
} foreach _VehicleRepairs;
|
||||
} foreach ((getAllHitPointsDamage _veh) select 0);
|
||||
} foreach ((getAllHitPointsDamage _veh) select 0);
|
||||
} foreach _VehicleRepairs;
|
||||
|
||||
_repairarrays = [];
|
||||
{
|
||||
if (!(_x in _repairs || _x in _replaces || (["glass",tolower _x] call Bis_fnc_instring)) || _x isequalto "") then {
|
||||
_HitPointName = tolower _x;
|
||||
if (!(_HitPointName in _repairs || _HitPointName in _replaces || (["glass",_HitPointName] call Bis_fnc_instring)) || _x isequalto "") then {
|
||||
_repairarrays pushback [_foreachindex, 0];
|
||||
};
|
||||
} foreach ((getAllHitPointsDamage _veh) select 0);
|
||||
|
@ -14,6 +14,7 @@
|
||||
*/
|
||||
private ["_secondlocalcheck","_repairarrays","_config","_VehicleRepairs","_reqiredMat","_searchname","_line","_returnmat"];
|
||||
params ["_veh","_do","_hitpointname"];
|
||||
_hitpointname = tolower _hitpointname;
|
||||
_secondlocalcheck = false;
|
||||
_returnmat = "";
|
||||
_repairarrays = [];
|
||||
@ -31,25 +32,28 @@ EPOCH_Vehicle_MaintainLock = true;
|
||||
|
||||
switch _do do {
|
||||
case 'repair': {
|
||||
_reqiredMat = "";
|
||||
_reqiredMat = "NONE";
|
||||
_searchname = _hitpointname;
|
||||
if (["glass",tolower _hitpointname] call Bis_fnc_instring) then {
|
||||
if (["glass",_hitpointname] call Bis_fnc_instring) then {
|
||||
_searchname = "glass";
|
||||
};
|
||||
{
|
||||
_x params ["_name","","","_repairmat"];
|
||||
_name = tolower _name;
|
||||
if (_searchname isequalto _name) exitwith {
|
||||
_reqiredMat = _repairmat;
|
||||
};
|
||||
} foreach _VehicleRepairs;
|
||||
if (_reqiredMat isequalto "") exitwith {
|
||||
if (_reqiredMat isequalto "NONE") exitwith {
|
||||
['Error - Can not find required Material',5] call Epoch_message;
|
||||
};
|
||||
if !(_reqiredMat in (magazines player)) exitwith {
|
||||
if (!(_reqiredMat in (magazines player)) && !(_reqiredMat isequalto "")) exitwith {
|
||||
_line = format ['You need %1 to repair',_reqiredMat call EPOCH_itemDisplayName];
|
||||
[_line,5] call Epoch_message;
|
||||
};
|
||||
player removemagazine _reqiredMat;
|
||||
if !(_reqiredMat isequalto "") then {
|
||||
player removemagazine _reqiredMat;
|
||||
};
|
||||
if (_hitpointname isequalto "glass") then {
|
||||
{
|
||||
if (["glass",tolower _x] call Bis_fnc_instring) then {
|
||||
@ -62,25 +66,28 @@ switch _do do {
|
||||
};
|
||||
};
|
||||
case 'replace': {
|
||||
_reqiredMat = "";
|
||||
_reqiredMat = "NONE";
|
||||
_searchname = _hitpointname;
|
||||
if (["glass",tolower _hitpointname] call Bis_fnc_instring) then {
|
||||
if (["glass", _hitpointname] call Bis_fnc_instring) then {
|
||||
_searchname = "glass";
|
||||
};
|
||||
{
|
||||
_x params ["_name","","","","_replacemat"];
|
||||
_name = tolower _name;
|
||||
if (_searchname isequalto _name) exitwith {
|
||||
_reqiredMat = _replacemat;
|
||||
};
|
||||
} foreach _VehicleRepairs;
|
||||
if (_reqiredMat isequalto "") exitwith {
|
||||
if (_reqiredMat isequalto "NONE") exitwith {
|
||||
['Error - Can not find required Material',5] call Epoch_message;
|
||||
};
|
||||
if !(_reqiredMat in (magazines player)) exitwith {
|
||||
if (!(_reqiredMat in (magazines player)) && !(_reqiredMat isequalto "")) exitwith {
|
||||
_line = format ['You need %1 to repair',_reqiredMat call EPOCH_itemDisplayName];
|
||||
[_line,5] call Epoch_message;
|
||||
};
|
||||
player removemagazine _reqiredMat;
|
||||
if !(_reqiredMat isequalto "") then {
|
||||
player removemagazine _reqiredMat;
|
||||
};
|
||||
if (_hitpointname isequalto "glass") then {
|
||||
{
|
||||
if (["glass",tolower _x] call Bis_fnc_instring) then {
|
||||
@ -100,6 +107,7 @@ switch _do do {
|
||||
_searchname = _hitpointname;
|
||||
{
|
||||
_x params ["_name","","","","_replacemat"];
|
||||
_name = tolower _name;
|
||||
if (_searchname isequalto _name) exitwith {
|
||||
_returnmat = _replacemat;
|
||||
};
|
||||
|
@ -68,13 +68,14 @@ _respawnButton ctrlEnable false;
|
||||
[_display] spawn {
|
||||
disableSerialization;
|
||||
params ["_display"];
|
||||
_startTime = diag_tickTime+5;
|
||||
_startTime = diag_tickTime+4;
|
||||
waitUntil {
|
||||
uiSleep 0.2;
|
||||
(isNull _display) || ((_startTime - diag_tickTime) <= 0)
|
||||
};
|
||||
if (!isNull _display) then {
|
||||
player setUnitLoadout (getUnitLoadout player);
|
||||
uisleep 1; // give one second to broadcast clothing change
|
||||
missionnamespace setvariable ["EPOCH_forceUpdateNow",true];
|
||||
};
|
||||
};
|
||||
|
@ -20,7 +20,7 @@ private ["_arr","_ctrl","_ctrlCurrent","_ctrlDefault","_ctrlEdit","_data","_defa
|
||||
//[[[end]]]
|
||||
params ["_ctrl"];
|
||||
|
||||
_display = if (typeName _ctrl isEqualTo "CONTROL") then {ctrlParent _ctrl} else {displayNull};
|
||||
_display = if (_ctrl isEqualType controlNull) then {ctrlParent _ctrl} else {displayNull};
|
||||
_input = if (_ctrl isEqualType "STRING") then {_ctrl} else {str _ctrl};
|
||||
|
||||
switch (_input) do {
|
||||
|
@ -28,7 +28,7 @@ if !(false call EPOCH_crafting_checkResources) exitWith {};
|
||||
//craft button
|
||||
[] spawn {
|
||||
|
||||
private ["_craftReturn","_needBench","_craftCount","_fnc_UILock","_itemCraftTime","_selection","_craftItem","_item","_itemName","_itemCraftTime","_itemRecipeItems","_itemType","_nearbyReq","_hasNearby","_canCraft","_wH","_nearByHolder","_wHPos"];
|
||||
private ["_GiveBackRounds","_TotalroundsIn","_TotalMaxRoundsIn","_roundsCheck","_maxMagrnd","_maxMagRndTmp","_roundsCheckTmp","_magsammosearched","_craftReturn","_needBench","_craftCount","_fnc_UILock","_itemCraftTime","_selection","_craftItem","_item","_itemName","_itemCraftTime","_itemRecipeItems","_itemType","_nearbyReq","_hasNearby","_canCraft","_wH","_nearByHolder","_wHPos"];
|
||||
disableSerialization;
|
||||
|
||||
_fnc_UILock = {
|
||||
@ -53,6 +53,8 @@ if !(false call EPOCH_crafting_checkResources) exitWith {};
|
||||
_needBench = {"WorkBench_EPOCH" in (_x select 3 select 1)} count _nearbyReq;
|
||||
_craftCount = _craftItem param [15,1];
|
||||
_craftReturn = _craftItem param [16,[]];
|
||||
|
||||
_BulletCalculateOnCraft = ["CfgEpochClient", "BulletCalculateOnCraft", false] call EPOCH_fnc_returnConfigEntryV2;
|
||||
|
||||
for "_c" from 1 to rmx_var_craftQTYOut do {
|
||||
false call _fnc_UILock;
|
||||
@ -64,19 +66,63 @@ if !(false call EPOCH_crafting_checkResources) exitWith {};
|
||||
|
||||
if !(_canCraft && rmx_var_craftingLOOPS) exitWith {};
|
||||
|
||||
_GiveBackRounds = 0;
|
||||
_TotalroundsIn = 0;
|
||||
_TotalMaxRoundsIn = 0;
|
||||
_roundsCheck = false;
|
||||
_maxMagrnd = (getnumber (configfile >> "cfgMagazines" >> _item >> "count")) max 1;
|
||||
{
|
||||
if !(_x isEqualType []) then {_x = [_x,1]};
|
||||
for "_r" from 1 to (_x select 1) do {
|
||||
player removeItem (_x select 0); //removes any type of item, but only if not in special slots
|
||||
_x params ["_recipetype","_recipetypecount"];
|
||||
_recipetype = tolower _recipetype;
|
||||
_maxMagRndTmp = getnumber (configfile >> "cfgMagazines" >> _recipetype >> "count");
|
||||
_roundsCheckTmp = ([_recipetype,"cfgMagazines"] call Epoch_fnc_isAny && [_item,"cfgMagazines"] call Epoch_fnc_isAny && _maxMagrnd > 1 && _maxMagRndTmp > 1 && _BulletCalculateOnCraft);
|
||||
for "_r" from 1 to _recipetypecount do {
|
||||
if (_roundsCheckTmp) then {
|
||||
_roundsCheck = true;
|
||||
_magsammosearched = [];
|
||||
{
|
||||
_x params ["_type","_rounds"];
|
||||
if ((tolower _type) isequalto _recipetype) then {
|
||||
_magsammosearched pushback _x;
|
||||
};
|
||||
} foreach (magazinesammo player);
|
||||
_TotalMaxRoundsIn = _TotalMaxRoundsIn + _maxMagRndTmp;
|
||||
_TotalroundsIn = _TotalroundsIn + ((_magsammosearched deleteat 0) select 1);
|
||||
player removemagazines _recipetype;
|
||||
{
|
||||
_x call EPOCH_fnc_addMagazineOverflow;
|
||||
} foreach _magsammosearched;
|
||||
}
|
||||
else {
|
||||
player removeItem _recipetype; //removes any type of item, but only if not in special slots
|
||||
};
|
||||
};
|
||||
} forEach _itemRecipeItems;
|
||||
|
||||
if (_roundsCheck) then {
|
||||
_GiveBackRounds = (_maxMagrnd * (_TotalroundsIn / _TotalMaxRoundsIn));
|
||||
};
|
||||
|
||||
_nearByBench = nearestObjects [player,["WorkBench_EPOCH"],3];
|
||||
|
||||
if (!(_nearByBench isEqualTo []) && (_needBench > 0)) then { //adds item on top of bench if bench was required
|
||||
(_nearByBench select 0) addItemCargoGlobal [_item,_craftCount];
|
||||
} else {
|
||||
[_item,_craftCount] call EPOCH_fnc_addItemOverflow;
|
||||
if (_roundsCheck) then {
|
||||
(_nearByBench select 0) addMagazineAmmoCargo [_item, _craftCount, ((ceil (_GiveBackRounds / _craftCount)) min _maxMagrnd) max 1];
|
||||
}
|
||||
else {
|
||||
(_nearByBench select 0) addItemCargoGlobal [_item,_craftCount];
|
||||
};
|
||||
}
|
||||
else {
|
||||
if (_roundsCheck) then {
|
||||
for "_i" from 1 to _craftCount do {
|
||||
[_item,((ceil (_GiveBackRounds / _craftCount)) min _maxMagrnd) max 1] call EPOCH_fnc_addMagazineOverflow;
|
||||
};
|
||||
}
|
||||
else {
|
||||
[_item,_craftCount] call EPOCH_fnc_addItemOverflow;
|
||||
};
|
||||
};
|
||||
|
||||
// return items
|
||||
|
@ -21,7 +21,7 @@ _arrIn = _this;
|
||||
_cfg = 'CfgEpochClient' call EPOCH_returnConfig;
|
||||
_Suppressed = getarray (_cfg >> "SuppressedCraftingItems");
|
||||
|
||||
if !(typeName (_arrIn select 0) isEqualTo "CONFIG") exitWith {[]};
|
||||
if !((_arrIn select 0) isEqualType configNull) exitWith {[]};
|
||||
|
||||
_type0 = []; _type1 = []; _type2 = []; _type3 = []; _out = [];
|
||||
{
|
||||
|
@ -32,7 +32,7 @@ if(_customCol isEqualTo [])then{
|
||||
_txtCol = if((_customCol select 1)isEqualTypeAll 0) then [{_customCol select 1},{_txtCol = [1,1,1,0.95]}];
|
||||
};
|
||||
|
||||
if !(typeName _msg isEqualTo "STRING") then { //Needed to remove quotations from strings
|
||||
if !(_msg isEqualType "STRING") then { //Needed to remove quotations from strings
|
||||
_msg = str (parseText str _msg); //Parses and converts text back to small string
|
||||
};
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
||||
|
||||
Usage:
|
||||
"TEST" call Epoch_message_stack
|
||||
|
||||
|
||||
["===================================",5,[[0,0,0,0.2],[1,0.5,0,1]]] call Epoch_message_stack;
|
||||
["World!",5,[[0,0,0,0.2],[1,1,1,1]]] call Epoch_message_stack;
|
||||
["Hello",5,[[0,0,0,0.2],[1,1,1,1]]] call Epoch_message_stack;
|
||||
@ -34,7 +34,7 @@ if(_customCol isEqualTo [])then{
|
||||
_bgCol = if((_customCol select 0)isEqualTypeAll 0) then [{_customCol select 0},{_bgCol = [0,0,0,0.2]}];
|
||||
_txtCol = if((_customCol select 1)isEqualTypeAll 0) then [{_customCol select 1},{_txtCol = [1,1,1,0.95]}];
|
||||
};
|
||||
if !(typeName _msg isEqualTo "STRING") then { //Needed to remove quotations from strings
|
||||
if !(_msg isEqualType "STRING") then { //Needed to remove quotations from strings
|
||||
_msg = str (parseText str _msg); //Parses and converts text back to small string
|
||||
};
|
||||
|
||||
@ -53,7 +53,7 @@ rmx_var_msgStackQueue = [[_msg, _time, [_bgCol,_txtCol]] ];
|
||||
_cStartPos = [safeZoneX,((_yPos - _ySize) * GUI_GRID_H + GUI_GRID_Y),safeZoneW, _ySize * GUI_GRID_H];
|
||||
|
||||
_ctrlArr = [1];
|
||||
|
||||
|
||||
_fnc_reorganizeCtrls = {
|
||||
if !(_ctrlArr isEqualTo []) then {
|
||||
{
|
||||
@ -64,7 +64,7 @@ rmx_var_msgStackQueue = [[_msg, _time, [_bgCol,_txtCol]] ];
|
||||
} forEach _ctrlArr;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
while {(count _ctrlArr) > 0} do {
|
||||
if ((_ctrlArr select 0) isEqualTo 1) then {_ctrlArr = [];};
|
||||
if !(rmx_var_msgStackQueue isEqualTo []) then {
|
||||
@ -72,19 +72,19 @@ rmx_var_msgStackQueue = [[_msg, _time, [_bgCol,_txtCol]] ];
|
||||
_time = diag_tickTime + (rmx_var_msgStackQueue select 0 select 1);
|
||||
_col = (rmx_var_msgStackQueue select 0)select 2;
|
||||
rmx_var_msgStackQueue deleteAt 0;
|
||||
|
||||
|
||||
_c = _dsp ctrlCreate ["rmx_t1", call epoch_getIDC];
|
||||
_c ctrlSetBackgroundColor (_col select 0);
|
||||
_c ctrlSetText _msg;
|
||||
_c ctrlSetTextColor (_col select 1);
|
||||
|
||||
|
||||
_c ctrlSetPosition _cStartPos;
|
||||
_c ctrlSetFade 1;
|
||||
_c ctrlCommit 0;
|
||||
|
||||
|
||||
_c ctrlSetFade 0;
|
||||
_c ctrlCommit 0.5;
|
||||
|
||||
|
||||
_ctrlArr pushBack [_c,_time];
|
||||
call _fnc_reorganizeCtrls;
|
||||
};
|
||||
|
@ -24,19 +24,21 @@ private ["_priority","_wd","_db"];
|
||||
params [["_level",0,[0]],["_speed",0,[0]]];
|
||||
|
||||
if (isNil "rmx_var_drunkHandles") then {
|
||||
|
||||
_priority = 15;
|
||||
_wd = ["wetdistortion",_priority] call epoch_postProcessCreate;
|
||||
_db = ["dynamicBlur",_priority] call epoch_postProcessCreate;
|
||||
|
||||
rmx_var_drunkHandles = [_wd,_db];
|
||||
|
||||
// Preload defaults
|
||||
[(rmx_var_drunkHandles select 0), 0, [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]] call epoch_postprocessAdjust;
|
||||
[(rmx_var_drunkHandles select 1), 0, [0]] call epoch_postprocessAdjust;
|
||||
};
|
||||
|
||||
switch _level do {
|
||||
case 0:
|
||||
{
|
||||
rmx_var_drunkHandles call epoch_postprocessDestroy;
|
||||
rmx_var_drunkHandles = nil;
|
||||
(rmx_var_drunkHandles select 0) ppEffectEnable false;
|
||||
(rmx_var_drunkHandles select 1) ppEffectEnable false;
|
||||
};
|
||||
case 0.1:
|
||||
{
|
||||
|
@ -25,25 +25,25 @@ private ["_cc","_ci","_fg","_priority"];
|
||||
params [["_level",0,[0]],["_speed",0,[0]] ];
|
||||
|
||||
if (isNil "rmx_var_RadiationHandles") then {
|
||||
|
||||
_priority = 16;
|
||||
_fg = ["filmGrain",_priority] call epoch_postProcessCreate;
|
||||
_cc = ["colorCorrections",_priority] call epoch_postProcessCreate;
|
||||
_ci = ["colorInversion",_priority] call epoch_postProcessCreate;
|
||||
|
||||
rmx_var_RadiationHandles = [_fg,_cc,_ci];
|
||||
|
||||
// Preload defaults
|
||||
[(rmx_var_RadiationHandles select 0), 0, [0.005,1.25,2.01,0.75,1.0,true]] call epoch_postprocessAdjust;
|
||||
[(rmx_var_RadiationHandles select 1), 0, [1,1,0,[0,0,0,0],[1,1,1,1],[0.299,0.587,0.114,0],[-1,-1,0,0,0,0,0]]] call epoch_postprocessAdjust;
|
||||
[(rmx_var_RadiationHandles select 2), 0, [0,0,0]] call epoch_postprocessAdjust;
|
||||
};
|
||||
|
||||
switch _level do {
|
||||
case 0:
|
||||
{
|
||||
rmx_var_RadiationHandles call epoch_postprocessDestroy;
|
||||
rmx_var_RadiationHandles = nil;
|
||||
};
|
||||
case 0;
|
||||
case 0.1:
|
||||
{
|
||||
rmx_var_RadiationHandles call epoch_postprocessDestroy;
|
||||
rmx_var_RadiationHandles = nil;
|
||||
(rmx_var_RadiationHandles select 0) ppEffectEnable false;
|
||||
(rmx_var_RadiationHandles select 1) ppEffectEnable false;
|
||||
(rmx_var_RadiationHandles select 2) ppEffectEnable false;
|
||||
};
|
||||
case 0.2:
|
||||
{
|
||||
|
@ -83,6 +83,7 @@ EPOCH_keysActionPressed = false; //prevents EH spam
|
||||
|
||||
// load some frequently used configs to variables
|
||||
EPOCH_maxBuildingHeight = ["CfgEpochClient", "maxBuildingHeight", 100] call EPOCH_fnc_returnConfigEntryV2;
|
||||
EPOCH_MaxBuildingTilt = ["CfgEpochClient", "MaxBuildingTilt", 180] call EPOCH_fnc_returnConfigEntryV2;
|
||||
Epoch_NuisanceMulti = ["CfgEpochClient", "NuisanceMulti", 0.5] call EPOCH_fnc_returnConfigEntryV2;
|
||||
|
||||
//ON INIT and RESPAWN
|
||||
|
@ -29,7 +29,7 @@ class CfgActionMenu
|
||||
|
||||
dyna_buildMode = "([10] call EPOCH_fnc_cursorTarget) call EPOCH_checkBuild;";
|
||||
dyna_isVehicle = "if (!(isNull dyna_cursorTarget) && alive dyna_cursorTarget) then {((dyna_cursorTarget isKindOf 'LandVehicle') || (dyna_cursorTarget isKindOf 'Air') || (dyna_cursorTarget isKindOf 'Ship') || (dyna_cursorTarget isKindOf 'Tank'))} else {false}";
|
||||
dyna_isTrader = "if (!(isNull dyna_cursorTarget) && alive dyna_cursorTarget) then {((dyna_cursorTarget isKindOf 'Man') && (dyna_cursorTarget != player) && (!isPlayer dyna_cursorTarget) && ((dyna_cursorTarget getVariable['AI_SLOT', -1]) != -1))} else {false}";
|
||||
dyna_isTrader = "if (!(isNull dyna_cursorTarget) && alive dyna_cursorTarget) then {((dyna_cursorTarget != player) && (!isPlayer dyna_cursorTarget) && ((dyna_cursorTarget getVariable['AI_SLOT', -1]) != -1))} else {false}";
|
||||
dyna_isPlayer = "if (!(isNull dyna_cursorTarget) && alive dyna_cursorTarget) then {((dyna_cursorTarget isKindOf 'Man') && (dyna_cursorTarget != player) && (isPlayer dyna_cursorTarget))} else {false}";
|
||||
dyna_isDeadPlayer = "if (!(isNull dyna_cursorTarget) && !(alive dyna_cursorTarget)) then {(dyna_cursorTargetType in ['Epoch_Male_F','Epoch_Female_F'])} else {false}";
|
||||
dyna_canAcceptTrade = "if (!(isNull EPOCH_pendingP2ptradeTarget) && alive EPOCH_pendingP2ptradeTarget) then {((EPOCH_pendingP2ptradeTarget isKindOf 'Man') && (dyna_cursorTarget isEqualTo EPOCH_pendingP2ptradeTarget))} else {false}";
|
||||
@ -50,6 +50,7 @@ class CfgActionMenu
|
||||
dyna_mapDeathMarker = "(((getArray(('CfgMarkerSets' call EPOCH_returnConfig) >> 'DeathMarker' >> 'markerArray') select 0) select 0) in allMapMarkers)";
|
||||
|
||||
dyna_AtHome = "call {_config = 'CfgEpochClient' call EPOCH_returnConfig;_buildingJammerRange = getNumber(_config >> 'buildingJammerRange');_nearjammers = nearestobjects [player,['Plotpole_EPOCH'],_buildingJammerRange];if (_nearjammers isEqualTo []) exitwith {false};_nearestJammer = _nearjammers select 0;((_nearestJammer getVariable['BUILD_OWNER', '-1']) in[getPlayerUID player, Epoch_my_GroupUID])}";
|
||||
dyna_Watersource = "call {_nearObjects = nearestObjects [player, [], 2];_check = 'water';_ok = false;{if (alive _x) then {_ok = [_x, _check] call EPOCH_worldObjectType;};if (_ok) exitWith {};} forEach _nearObjects;_ok}";
|
||||
};
|
||||
|
||||
class self
|
||||
|
@ -95,7 +95,7 @@ class base_mode_snap_direction
|
||||
{
|
||||
condition = "EPOCH_buildMode == 1";
|
||||
action = "EPOCH_snapDirection = EPOCH_snapDirection + 1; if (EPOCH_snapDirection > 3) then {EPOCH_snapDirection = 0};[format['SNAP DIRECTION: %1°', EPOCH_snapDirection*90], 5] call Epoch_message;";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_move.paa";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_rotate.paa";
|
||||
tooltip = "Build Mode: Rotate 90°";
|
||||
tooltipcode = "format ['Build Mode: Switch Snap Direction to %1° (current %2°)',if (EPOCH_snapDirection < 3) then {(EPOCH_snapDirection+1)*90} else {0},EPOCH_snapDirection*90]";
|
||||
};
|
||||
@ -103,23 +103,30 @@ class base_mode_detach
|
||||
{
|
||||
condition = "EPOCH_buildMode > 0 && !isnull EPOCH_target && EPOCH_target_attachedTo isequalto player && Epoch_target iskindof 'Const_Ghost_EPOCH'";
|
||||
action = "EPOCH_target_attachedTo = objnull; ['Object Detached', 5] call Epoch_message;";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_move.paa";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_detach.paa";
|
||||
tooltip = "Build Mode: Detach Object";
|
||||
};
|
||||
class base_mode_attach
|
||||
{
|
||||
condition = "EPOCH_buildMode > 0 && !isnull EPOCH_target && !(EPOCH_target_attachedTo isequalto player) && Epoch_target iskindof 'Const_Ghost_EPOCH'";
|
||||
action = "EPOCH_target_attachedTo = player; ['Object Attached', 5] call Epoch_message;";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_move.paa";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_attach.paa";
|
||||
tooltip = "Build Mode: Attach Object";
|
||||
};
|
||||
class Drink
|
||||
{
|
||||
condition = "_nearObjects = nearestObjects [player, [], 2];_check = 'water';_ok = false;{if (alive _x) then {_ok = [_x, _check] call EPOCH_worldObjectType;};if (_ok) exitWith {};} forEach _nearObjects;_ok";
|
||||
action = "if (currentweapon player == '') then {player playmove 'AinvPknlMstpSnonWnonDnon_Putdown_AmovPknlMstpSnonWnonDnon';}else {if (currentweapon player == handgunweapon player) then {player playmove 'AinvPknlMstpSrasWpstDnon_Putdown_AmovPknlMstpSrasWpstDnon';}else { player playmove 'AinvPknlMstpSrasWrflDnon_Putdown_AmovPknlMstpSrasWrflDnon';};};{_output = _x call EPOCH_giveAttributes;if (_output != '') then {[_output, 5] call Epoch_message_stack;};} foreach [['Toxicity',4,1],['Stamina',10],['Thirst',100]];";
|
||||
condition = "dyna_Watersource";
|
||||
action = "if (currentweapon player == '') then {player playmove 'AinvPknlMstpSnonWnonDnon_Putdown_AmovPknlMstpSnonWnonDnon';}else {if (currentweapon player == handgunweapon player) then {player playmove 'AinvPknlMstpSrasWpstDnon_Putdown_AmovPknlMstpSrasWpstDnon';}else { player playmove 'AinvPknlMstpSrasWrflDnon_Putdown_AmovPknlMstpSrasWrflDnon';};};{_output = _x call EPOCH_giveAttributes;if (_output != '') then {[_output, 5] call Epoch_message_stack;};} foreach [['Thirst',100],['Toxicity',1,1],['Stamina',10]];";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Drink.paa";
|
||||
tooltip = "Drink";
|
||||
};
|
||||
class Wash
|
||||
{
|
||||
condition = "dyna_Watersource";
|
||||
action = "if !('Soap_Epoch' in magazines player) exitwith {['You need a Soap to wash yourself',5] call Epoch_Message;};[] spawn {player playMove 'AinvPknlMstpSnonWrflDnon_medic0';player playMove 'AinvPknlMstpSnonWrflDnon_medicEnd';['Washing ...',5] call Epoch_Message;player removeitem 'Soap_Epoch';uisleep 6;{_output = _x call EPOCH_giveAttributes; if (_output != '') then {[_output, 5] call Epoch_message_stack;};} foreach [['Soiled',-25]];};";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Washing.paa";
|
||||
tooltip = "Wash yourself";
|
||||
};
|
||||
class ServicePoint
|
||||
{
|
||||
condition = "call EPOCH_SP_Check";
|
||||
|
@ -13,7 +13,6 @@
|
||||
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_target.hpp
|
||||
*/
|
||||
|
||||
//Build mode enabled
|
||||
class build_upgrade
|
||||
{
|
||||
condition = "dyna_buildMode select 0";
|
||||
@ -27,7 +26,7 @@ class build_remove
|
||||
{
|
||||
condition = "dyna_buildMode select 1";
|
||||
action = "dyna_cursorTarget call EPOCH_removeBUILD;";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_remove.paa";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_trash.paa";
|
||||
tooltipcode = "format['Remove %1',getText(configFile >> 'CfgVehicles' >> (typeof dyna_cursorTarget) >> 'displayName')]";
|
||||
};
|
||||
class build_move
|
||||
@ -111,7 +110,7 @@ class select_jammer
|
||||
{
|
||||
condition = "dyna_cursorTargetType isEqualTo 'PlotPole_EPOCH' && (damage dyna_cursorTarget < 1)";
|
||||
action = "[dyna_cursorTarget,player,Epoch_personalToken] remoteExec [""EPOCH_server_makeSP"",2];";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\player_inspect.paa";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\spawnpoint.paa";
|
||||
tooltip = "Make Spawnpoint";
|
||||
};
|
||||
|
||||
@ -175,29 +174,29 @@ class VehMaintanance
|
||||
tooltip = "Repair Vehicle";
|
||||
class RepairHull
|
||||
{
|
||||
condition = "'HitHull' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','HitHull'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hithull' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','hithull'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_HullBody.paa";
|
||||
tooltip = "Repair Hull";
|
||||
};
|
||||
class ReplaceHull
|
||||
{
|
||||
condition = "'HitHull' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitHull'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hithull' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','hithull'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_HullBody.paa";
|
||||
tooltip = "Repair Hull";
|
||||
};
|
||||
class RepairEngine
|
||||
{
|
||||
condition = "'HitEngine' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','HitEngine'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitengine' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','hitengine'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Engine.paa";
|
||||
tooltip = "Repair Engine";
|
||||
};
|
||||
class ReplaceEngine
|
||||
{
|
||||
condition = "'HitEngine' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitEngine'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitengine' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','hitengine'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Engine.paa";
|
||||
tooltip = "Replace Engine";
|
||||
};
|
||||
@ -210,183 +209,211 @@ class VehMaintanance
|
||||
};
|
||||
class RepairBody
|
||||
{
|
||||
condition = "'HitBody' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','HitBody'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitbody' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','hitbody'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_HullBody.paa";
|
||||
tooltip = "Repair Body";
|
||||
};
|
||||
class ReplaceBody
|
||||
{
|
||||
condition = "'HitBody' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitBody'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitbody' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','hitbody'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_HullBody.paa";
|
||||
tooltip = "Repair Body";
|
||||
};
|
||||
class RepairFuel
|
||||
{
|
||||
condition = "'HitFuel' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','HitFuel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitfuel' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','hitfuel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Fuel.paa";
|
||||
tooltip = "Repair Fuel Hose";
|
||||
};
|
||||
class RepairMainRotor
|
||||
{
|
||||
condition = "'HitHRotor' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','HitHRotor'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hithrotor' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','hithrotor'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_MainRotor.paa";
|
||||
tooltip = "Repair Main Rotor";
|
||||
};
|
||||
class ReplaceFuel
|
||||
{
|
||||
condition = "'HitFuel' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitFuel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitfuel' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','hitfuel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Fuel.paa";
|
||||
tooltip = "Replace Fuel Hose";
|
||||
};
|
||||
class ReplaceMainRotor
|
||||
{
|
||||
condition = "'HitHRotor' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitHRotor'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hithrotor' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','hithrotor'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_MainRotor.paa";
|
||||
tooltip = "Replace Main Rotor";
|
||||
};
|
||||
class RepairTailRotor
|
||||
{
|
||||
condition = "'HitVRotor' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','HitVRotor'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitvrotor' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','hitvrotor'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_TailRotor.paa";
|
||||
tooltip = "Repair Tail Rotor";
|
||||
};
|
||||
class ReplaceTailRotor
|
||||
{
|
||||
condition = "'HitVRotor' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitVRotor'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitvrotor' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','hitvrotor'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_TailRotor.paa";
|
||||
tooltip = "Replace Tail Rotor";
|
||||
};
|
||||
class ReplaceWinch
|
||||
{
|
||||
condition = "'HitWinch' in (EPOCH_VehicleRepairs select 0) || 'HitWinch' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitWinch'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitwinch' in (EPOCH_VehicleRepairs select 0) || 'hitwinch' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','hitwinch'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_SLG.paa";
|
||||
tooltip = "Replace Winch";
|
||||
};
|
||||
class RepairTireBike1
|
||||
{
|
||||
condition = "'hitfwheel' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','hitfwheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
|
||||
tooltip = "Repair 1st Wheel";
|
||||
};
|
||||
class RepairTireBike2
|
||||
{
|
||||
condition = "'hitbwheel' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','hitbwheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
|
||||
tooltip = "Repair 2nd Wheel";
|
||||
};
|
||||
class RepairTire1
|
||||
{
|
||||
condition = "'HitLFWheel' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','HitLFWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitlfwheel' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','hitlfwheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
|
||||
tooltip = "Repair 1st Left Wheel";
|
||||
};
|
||||
class RepairTire2
|
||||
{
|
||||
condition = "'HitLF2Wheel' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','HitLF2Wheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitlf2wheel' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','hitlf2wheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
|
||||
tooltip = "Repair 2nd Left Wheel";
|
||||
};
|
||||
class RepairTire3
|
||||
{
|
||||
condition = "'HitLMWheel' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','HitLMWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitlmwheel' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','hitlmwheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
|
||||
tooltip = "Repair 3rd Left Wheel";
|
||||
};
|
||||
class RepairTire4
|
||||
{
|
||||
condition = "'HitLBWheel' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','HitLBWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitlbwheel' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','hitlbwheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
|
||||
tooltip = "Repair 4th Left Wheel";
|
||||
};
|
||||
class RepairTire5
|
||||
{
|
||||
condition = "'HitRFWheel' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','HitRFWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitrfwheel' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','hitrfwheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
|
||||
tooltip = "Repair 1st Right Wheel";
|
||||
};
|
||||
class RepairTire6
|
||||
{
|
||||
condition = "'HitRF2Wheel' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','HitRF2Wheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitrf2wheel' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','hitrf2wheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
|
||||
tooltip = "Repair 2nd Right Wheel";
|
||||
};
|
||||
class RepairTire7
|
||||
{
|
||||
condition = "'HitRMWheel' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','HitRMWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitrmwheel' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','hitrmwheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
|
||||
tooltip = "Repair 3rd Right Wheel";
|
||||
};
|
||||
class RepairTire8
|
||||
{
|
||||
condition = "'HitRBWheel' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','HitRBWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitrbwheel' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','hitrbwheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Wheel.paa";
|
||||
tooltip = "Repair 4th Right Wheel";
|
||||
};
|
||||
class ReplaceTireBike1
|
||||
{
|
||||
condition = "'hitfwheel' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','hitfwheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
|
||||
tooltip = "Replace 1st Wheel";
|
||||
};
|
||||
class ReplaceTireBike2
|
||||
{
|
||||
condition = "'hitbwheel' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','hitbwheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
|
||||
tooltip = "Replace 2nd Wheel";
|
||||
};
|
||||
class ReplaceTire1
|
||||
{
|
||||
condition = "'HitLFWheel' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitLFWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitlfwheel' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','hitlfwheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
|
||||
tooltip = "Replace 1st Left Wheel";
|
||||
};
|
||||
class ReplaceTire2
|
||||
{
|
||||
condition = "'HitLF2Wheel' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitLF2Wheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitlf2wheel' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','hitlf2wheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
|
||||
tooltip = "Replace 2nd Left Wheel";
|
||||
};
|
||||
class ReplaceTire3
|
||||
{
|
||||
condition = "'HitLMWheel' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitLMWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitlmwheel' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','hitlmwheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
|
||||
tooltip = "Replace 3rd Left Wheel";
|
||||
};
|
||||
class ReplaceTire4
|
||||
{
|
||||
condition = "'HitLBWheel' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitLBWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitlbwheel' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','hitlbwheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
|
||||
tooltip = "Replace 4th Left Wheel";
|
||||
};
|
||||
class ReplaceTire5
|
||||
{
|
||||
condition = "'HitRFWheel' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitRFWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitrfwheel' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','hitrfwheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
|
||||
tooltip = "Replace 1st Right Wheel";
|
||||
};
|
||||
class ReplaceTire6
|
||||
{
|
||||
condition = "'HitRF2Wheel' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitRF2Wheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitrf2wheel' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','hitrf2wheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
|
||||
tooltip = "Replace 2nd Right Wheel";
|
||||
};
|
||||
class ReplaceTire7
|
||||
{
|
||||
condition = "'HitRMWheel' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitRMWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitrmwheel' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','hitrmwheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
|
||||
tooltip = "Replace 3rd Right Wheel";
|
||||
};
|
||||
class ReplaceTire8
|
||||
{
|
||||
condition = "'HitRBWheel' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitRBWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitrbwheel' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','hitrbwheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Replace_Wheel.paa";
|
||||
tooltip = "Replace 4th Right Wheel";
|
||||
};
|
||||
class RepairAvionics
|
||||
{
|
||||
condition = "'HitAvionics' in (EPOCH_VehicleRepairs select 0) || 'HitAvionics' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitAvionics'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitavionics' in (EPOCH_VehicleRepairs select 0) || 'hitavionics' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','hitavionics'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_Avionics.paa";
|
||||
tooltip = "Repair Avionics";
|
||||
};
|
||||
@ -399,64 +426,64 @@ class VehMaintanance
|
||||
tooltip = "Remove Parts";
|
||||
class RemoveEngine
|
||||
{
|
||||
condition = "'HitEngine' in (EPOCH_VehicleRepairs select 1)";
|
||||
action = "[dyna_cursorTarget,'remove','HitEngine'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitengine' in (EPOCH_VehicleRepairs select 1)";
|
||||
action = "[dyna_cursorTarget,'remove','hitengine'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Engine.paa";
|
||||
tooltip = "Remove Engine";
|
||||
};
|
||||
class RemoveTire1
|
||||
{
|
||||
condition = "'HitLFWheel' in (EPOCH_VehicleRepairs select 1)";
|
||||
action = "[dyna_cursorTarget,'remove','HitLFWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitlfwheel' in (EPOCH_VehicleRepairs select 1)";
|
||||
action = "[dyna_cursorTarget,'remove','hitlfwheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Wheel.paa";
|
||||
tooltip = "Remove 1st Left Wheel";
|
||||
};
|
||||
class RemoveTire2
|
||||
{
|
||||
condition = "'HitLF2Wheel' in (EPOCH_VehicleRepairs select 1)";
|
||||
action = "[dyna_cursorTarget,'remove','HitLF2Wheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitlf2wheel' in (EPOCH_VehicleRepairs select 1)";
|
||||
action = "[dyna_cursorTarget,'remove','hitlf2wheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Wheel.paa";
|
||||
tooltip = "Remove 2nd Left Wheel";
|
||||
};
|
||||
class RemoveTire3
|
||||
{
|
||||
condition = "'HitLMWheel' in (EPOCH_VehicleRepairs select 1)";
|
||||
action = "[dyna_cursorTarget,'remove','HitLMWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitlmwheel' in (EPOCH_VehicleRepairs select 1)";
|
||||
action = "[dyna_cursorTarget,'remove','hitlmwheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Wheel.paa";
|
||||
tooltip = "Remove 3rd Left Wheel";
|
||||
};
|
||||
class RemoveTire4
|
||||
{
|
||||
condition = "'HitLBWheel' in (EPOCH_VehicleRepairs select 1)";
|
||||
action = "[dyna_cursorTarget,'remove','HitLBWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitlbwheel' in (EPOCH_VehicleRepairs select 1)";
|
||||
action = "[dyna_cursorTarget,'remove','hitlbwheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Wheel.paa";
|
||||
tooltip = "Remove 4th Left Wheel";
|
||||
};
|
||||
class RemoveTire5
|
||||
{
|
||||
condition = "'HitRFWheel' in (EPOCH_VehicleRepairs select 1)";
|
||||
action = "[dyna_cursorTarget,'remove','HitRFWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitrfwheel' in (EPOCH_VehicleRepairs select 1)";
|
||||
action = "[dyna_cursorTarget,'remove','hitrfwheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Wheel.paa";
|
||||
tooltip = "Remove 1st Right Wheel";
|
||||
};
|
||||
class RemoveTire6
|
||||
{
|
||||
condition = "'HitRF2Wheel' in (EPOCH_VehicleRepairs select 1)";
|
||||
action = "[dyna_cursorTarget,'remove','HitRF2Wheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitrf2wheel' in (EPOCH_VehicleRepairs select 1)";
|
||||
action = "[dyna_cursorTarget,'remove','hitrf2wheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Wheel.paa";
|
||||
tooltip = "Remove 2nd Right Wheel";
|
||||
};
|
||||
class RemoveTire7
|
||||
{
|
||||
condition = "'HitRMWheel' in (EPOCH_VehicleRepairs select 1)";
|
||||
action = "[dyna_cursorTarget,'remove','HitRMWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitrmwheel' in (EPOCH_VehicleRepairs select 1)";
|
||||
action = "[dyna_cursorTarget,'remove','hitrmwheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Wheel.paa";
|
||||
tooltip = "Remove 3rd Right Wheel";
|
||||
};
|
||||
class RemoveTire8
|
||||
{
|
||||
condition = "'HitRBWheel' in (EPOCH_VehicleRepairs select 1)";
|
||||
action = "[dyna_cursorTarget,'remove','HitRBWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
condition = "'hitrbwheel' in (EPOCH_VehicleRepairs select 1)";
|
||||
action = "[dyna_cursorTarget,'remove','hitrbwheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Remove_Wheel.paa";
|
||||
tooltip = "Remove 4th Right Wheel";
|
||||
};
|
||||
@ -546,8 +573,18 @@ class player_tempGroup_requests
|
||||
|
||||
class player_revive
|
||||
{
|
||||
condition = "dyna_isDeadPlayer && ('ItemDefibrillator' in dyna_magazinesPlayer)";
|
||||
action = "[dyna_cursorTarget, player, Epoch_personalToken] remoteExec ['EPOCH_server_revivePlayer',2];";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\group_requests_ca.paa";
|
||||
tooltip = "Revive Player";
|
||||
condition = "dyna_isDeadPlayer && isplayer dyna_cursorTarget";
|
||||
action = "dyna_cursorTarget call EPOCH_DefibrillatorUse;";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Revive.paa";
|
||||
tooltipcode = "format ['Revive %1',name dyna_cursorTarget]";
|
||||
};
|
||||
|
||||
class BaseCam
|
||||
{
|
||||
condition = "dyna_cursorTargetType isEqualTo 'BaseCamTerminal_EPOCH'";
|
||||
action = "call Epoch_CamUse;";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Camera.paa";
|
||||
tooltip = "Watch BaseCam";
|
||||
};
|
||||
|
||||
|
||||
|
@ -8,6 +8,25 @@
|
||||
*/
|
||||
class CfgBaseBuilding
|
||||
{
|
||||
// Power Sources (only for Energy Calculations)
|
||||
class Land_spp_Tower_F
|
||||
{
|
||||
powerCapacity = 10;
|
||||
powerType = 1; // Solar
|
||||
};
|
||||
class Land_wpp_Turbine_V1_F
|
||||
{
|
||||
powerCapacity = 10;
|
||||
powerType = 2; // Wind
|
||||
};
|
||||
class Land_wpp_Turbine_V2_F : Land_wpp_Turbine_V1_F {};
|
||||
class Land_Wreck_Satellite_EPOCH
|
||||
{
|
||||
powerCapacity = 10;
|
||||
powerType = 3; // Satellite
|
||||
};
|
||||
|
||||
// BaseBuilding
|
||||
class Default
|
||||
{
|
||||
upgradeBuilding[] = {};
|
||||
@ -45,10 +64,10 @@ class CfgBaseBuilding
|
||||
maxSnapDistance = 4.5;
|
||||
// snap points for Foundation_EPOCH
|
||||
C[] = {0,0,0.806411};
|
||||
N[] = {0,10.463,0};
|
||||
E[] = {10.463,0,0};
|
||||
S[] = {0,-10.463,0};
|
||||
W[] = {-10.463,0,0};
|
||||
N[] = {0,10.474,0};
|
||||
E[] = {10.474,0,0};
|
||||
S[] = {0,-10.474,0};
|
||||
W[] = {-10.474,0,0};
|
||||
NE[] = {2.47112,2.46379,0.269223};
|
||||
NW[] = {-2.4783,2.46379,0.269223};
|
||||
SE[] = {2.47112,-2.46097,0.269223};
|
||||
@ -76,10 +95,10 @@ class CfgBaseBuilding
|
||||
maxSnapDistance = 3;
|
||||
// snap points for Foundation_EPOCH
|
||||
C[] = {0,0,0.806411};
|
||||
N[] = {0,10.463,0};
|
||||
E[] = {10.463,0,0};
|
||||
S[] = {0,-10.463,0};
|
||||
W[] = {-10.463,0,0};
|
||||
N[] = {0,10.474,0};
|
||||
E[] = {10.474,0,0};
|
||||
S[] = {0,-10.474,0};
|
||||
W[] = {-10.474,0,0};
|
||||
NE[] = {2.47112,2.46379,0.269223};
|
||||
NW[] = {-2.4783,2.46379,0.269223};
|
||||
SE[] = {2.47112,-2.46097,0.269223};
|
||||
@ -473,21 +492,22 @@ class CfgBaseBuilding
|
||||
energyCost = 0.5;
|
||||
// snap points for CinderWall_EPOCH
|
||||
N[] = {0,0,3.06034};
|
||||
E[] = {5.18644,0,0};
|
||||
W[] = {-5.19304,0,0};
|
||||
E[] = {5.237,0,0};
|
||||
W[] = {-5.237,0,0};
|
||||
};
|
||||
class CinderWall_window_EPOCH : Default
|
||||
{
|
||||
removeParts[] = {{"CinderBlocks",4},{"ItemCorrugatedLg",2},{"ItemGlass",1}};
|
||||
staticClass = "CinderWall_window_EPOCH";
|
||||
snapType = "snapPointsPara";
|
||||
snapPointsPara[] = {"N","E","W"};
|
||||
snapPointsPara[] = {"N","E","W","CAM"};
|
||||
allowedSnapPoints[] = {"N","S","E","W"};
|
||||
energyCost = 0.5;
|
||||
// snap points for CinderWall_EPOCH
|
||||
N[] = {0,0,3.06034};
|
||||
E[] = {5.18644,0,0};
|
||||
W[] = {-5.19304,0,0};
|
||||
E[] = {5.237,0,0};
|
||||
W[] = {-5.237,0,0};
|
||||
CAM[] = {0,-0.47,2.8};
|
||||
};
|
||||
// Kit_Garden
|
||||
class Garden_EPOCH : Default
|
||||
@ -543,7 +563,7 @@ class CfgBaseBuilding
|
||||
|
||||
class CinderWallGarage_SIM_EPOCH : CinderWallGarage_EPOCH
|
||||
{
|
||||
allowedSnapObjects[] = {"Const_Cinder_static_F","Const_floors_static_F"};
|
||||
allowedSnapObjects[] = {"Const_Cinder_static_F","Const_floors_static_F","Const_WoodWalls_static_F"};
|
||||
removeParts[] = {};
|
||||
};
|
||||
class CinderWallHalf_EPOCH : Default
|
||||
@ -555,17 +575,17 @@ class CfgBaseBuilding
|
||||
GhostPreview = "CinderWallHalf_Ghost_EPOCH";
|
||||
energyCost = 0.2;
|
||||
snapType = "snapPointsPara";
|
||||
snapPointsPara[] = {"N","E","W"};
|
||||
snapPointsPara[] = {"N","E","W","CAM"};
|
||||
allowedSnapPoints[] = {"N","S","E","W"};
|
||||
// snap points for CinderWallHalf_EPOCH
|
||||
N[] = {0,0,1.57378};
|
||||
E[] = {5.18644,0,0};
|
||||
W[] = {-5.19304,0,0};
|
||||
|
||||
E[] = {5.237,0,0};
|
||||
W[] = {-5.237,0,0};
|
||||
CAM[] = {0,-0.47,1.4};
|
||||
};
|
||||
class CinderWallHalf_SIM_EPOCH : CinderWallHalf_EPOCH
|
||||
{
|
||||
allowedSnapObjects[] = {"Const_Cinder_static_F","Const_floors_static_F"};
|
||||
allowedSnapObjects[] = {"Const_Cinder_static_F","Const_floors_static_F","Const_WoodWalls_static_F"};
|
||||
removeParts[] = {};
|
||||
upgradeBuilding[] = {};
|
||||
};
|
||||
@ -578,18 +598,18 @@ class CfgBaseBuilding
|
||||
staticClass = "CinderWall_EPOCH";
|
||||
GhostPreview = "CinderWall_EPOCH";
|
||||
snapType = "snapPointsPara";
|
||||
snapPointsPara[] = {"N","E","W"};
|
||||
snapPointsPara[] = {"N","E","W","CAM"};
|
||||
allowedSnapPoints[] = {"N","S","E","W"};
|
||||
energyCost = 0.4;
|
||||
// snap points for CinderWall_EPOCH
|
||||
N[] = {0,0,3.06034};
|
||||
E[] = {5.18644,0,0};
|
||||
W[] = {-5.19304,0,0};
|
||||
|
||||
E[] = {5.237,0,0};
|
||||
W[] = {-5.237,0,0};
|
||||
CAM[] = {0,-0.47,2.8};
|
||||
};
|
||||
class CinderWall_SIM_EPOCH : CinderWall_EPOCH
|
||||
{
|
||||
allowedSnapObjects[] = {"Const_Cinder_static_F","Const_floors_static_F"};
|
||||
allowedSnapObjects[] = {"Const_Cinder_static_F","Const_floors_static_F","Const_WoodWalls_static_F"};
|
||||
upgradeBuilding[] = {};
|
||||
removeParts[] = {};
|
||||
};
|
||||
@ -598,12 +618,13 @@ class CfgBaseBuilding
|
||||
removeParts[] = {{"CinderBlocks",4},{"ItemCorrugatedLg",1},{"CircuitParts",1}};
|
||||
staticClass = "CinderWallDoorwHatch_EPOCH";
|
||||
snapType = "snapPointsPara";
|
||||
snapPointsPara[] = {"N","E","W"};
|
||||
snapPointsPara[] = {"N","E","W","CAM"};
|
||||
allowedSnapPoints[] = {"N","S","E","W"};
|
||||
// snap points for CinderWall_EPOCH
|
||||
N[] = {0,0,3.06034};
|
||||
E[] = {5.18644,0,0};
|
||||
W[] = {-5.19304,0,0};
|
||||
E[] = {5.237,0,0};
|
||||
W[] = {-5.237,0,0};
|
||||
CAM[] = {0,-0.47,2.8};
|
||||
};
|
||||
class WoodLargeWall_EPOCH : Default
|
||||
{
|
||||
@ -617,35 +638,58 @@ class CfgBaseBuilding
|
||||
allowedSnapPoints[] = {"N","S","E","W"};
|
||||
// snap points for WoodLargeWall_EPOCH
|
||||
N[] = {0,0,3.06034};
|
||||
E[] = {5.23785,0,0};
|
||||
W[] = {-5.26294,0,0};
|
||||
E[] = {5.237,0,0};
|
||||
W[] = {-5.237,0,0};
|
||||
};
|
||||
class WoodLargeWall_SIM_EPOCH : WoodLargeWall_EPOCH
|
||||
{
|
||||
upgradeBuilding[] = {};
|
||||
removeParts[] = {};
|
||||
allowedSnapObjects[] = {"Const_floors_static_F","Const_WoodWalls_static_F"};
|
||||
allowedSnapObjects[] = {"Const_floors_static_F","Const_WoodWalls_static_F","Const_Cinder_static_F"};
|
||||
};
|
||||
class WoodLargeWall_Ghost_EPOCH : WoodLargeWall_SIM_EPOCH {};
|
||||
class PlyThirdWall_EPOCH : Default
|
||||
{
|
||||
upgradeBuilding[] = {};
|
||||
removeParts[] = {{"PartPlankPack",1},{"ItemPlywoodPack",1}};
|
||||
simulClass = "PlyThirdWall_SIM_EPOCH";
|
||||
staticClass = "PlyThirdWall_EPOCH";
|
||||
GhostPreview = "PlyThirdWall_Ghost_EPOCH";
|
||||
snapType = "snapPointsPara";
|
||||
snapPointsPara[] = {"N","E","W"};
|
||||
allowedSnapPoints[] = {"N","S","E","W"};
|
||||
// snap points for WoodLargeWall_EPOCH
|
||||
N[] = {0,0,1.02012};
|
||||
E[] = {5.237,0,0};
|
||||
W[] = {-5.237,0,0};
|
||||
};
|
||||
class PlyThirdWall_SIM_EPOCH : PlyThirdWall_EPOCH
|
||||
{
|
||||
upgradeBuilding[] = {};
|
||||
removeParts[] = {};
|
||||
allowedSnapObjects[] = {"Const_floors_static_F","Const_WoodWalls_static_F","Const_Cinder_static_F"};
|
||||
};
|
||||
class PlyThirdWall_Ghost_EPOCH : PlyThirdWall_SIM_EPOCH {};
|
||||
class WoodWall1_EPOCH : Default
|
||||
{
|
||||
upgradeBuilding[] = {{"WoodWall2_EPOCH",{{"PartPlankPack",1}}},{"WoodLargeWallCor_EPOCH",{{"ItemCorrugated",1}}},{"WoodWallWindow_EPOCH",{{"ItemGlass",2}}}};
|
||||
upgradeBuilding[] = {{"WoodWall2_EPOCH",{{"PartPlankPack",1}}},{"WoodLargeWallCor_EPOCH",{{"ItemCorrugated",1}}},{"WoodWallWindow_EPOCH",{{"ItemGlass",2}}},{"WoodWallGarage_EPOCH",{{"ItemPlywoodPack",1},{"PartPlankPack",4},{"CircuitParts",1}}}};
|
||||
removeParts[] = {{"PartPlankPack",2}};
|
||||
simulClass = "WoodWall1_SIM_EPOCH";
|
||||
staticClass = "WoodWall1_EPOCH";
|
||||
GhostPreview = "WoodWall1_EPOCH";
|
||||
snapType = "snapPointsPara";
|
||||
snapPointsPara[] = {"N","E","W"};
|
||||
snapPointsPara[] = {"N","E","W","CAM"};
|
||||
allowedSnapPoints[] = {"N","S","E","W"};
|
||||
energyCost = 0.2;
|
||||
// snap points for WoodLargeWall_EPOCH
|
||||
N[] = {0,0,3.06034};
|
||||
E[] = {5.23785,0,0};
|
||||
W[] = {-5.26294,0,0};
|
||||
E[] = {5.237,0,0};
|
||||
W[] = {-5.237,0,0};
|
||||
CAM[] = {0,-0.4,2.8};
|
||||
};
|
||||
class WoodWall1_SIM_EPOCH : WoodWall1_EPOCH
|
||||
{
|
||||
allowedSnapObjects[] = {"Const_floors_static_F","Const_WoodWalls_static_F"};
|
||||
allowedSnapObjects[] = {"Const_floors_static_F","Const_WoodWalls_static_F","Const_Cinder_static_F"};
|
||||
energyCost = 0.2;
|
||||
upgradeBuilding[] = {};
|
||||
removeParts[] = {};
|
||||
@ -655,36 +699,78 @@ class CfgBaseBuilding
|
||||
removeParts[] = {{"ItemGlass",2},{"PartPlankPack",2}};
|
||||
staticClass = "WoodWallWindow_EPOCH";
|
||||
snapType = "snapPointsPara";
|
||||
snapPointsPara[] = {"N","E","W"};
|
||||
snapPointsPara[] = {"N","E","W","CAM"};
|
||||
allowedSnapPoints[] = {"N","S","E","W"};
|
||||
energyCost = 0.5;
|
||||
// snap points for WoodLargeWall_EPOCH
|
||||
N[] = {0,0,3.06034};
|
||||
E[] = {5.23785,0,0};
|
||||
W[] = {-5.26294,0,0};
|
||||
E[] = {5.237,0,0};
|
||||
W[] = {-5.237,0,0};
|
||||
CAM[] = {0,-0.4,2.8};
|
||||
};
|
||||
class WoodLargeWallCor_EPOCH : Default
|
||||
{
|
||||
upgradeBuilding[] = {{"WoodLargeWallDoorway_EPOCH",{{"PartPlankPack",1}}}};
|
||||
upgradeBuilding[] = {{"WoodLargeWallDoorway_EPOCH",{{"PartPlankPack",1}}},{"MetalWallGarage_EPOCH",{{"ItemCorrugated",1},{"PartPlankPack",4},{"CircuitParts",1}}}};
|
||||
removeParts[] = {{"PartPlankPack",2},{"ItemCorrugated",1}};
|
||||
simulClass = "WoodLargeWallCor_SIM_EPOCH";
|
||||
staticClass = "WoodLargeWallCor_EPOCH";
|
||||
GhostPreview = "WoodLargeWallCor_EPOCH";
|
||||
snapType = "snapPointsPara";
|
||||
snapPointsPara[] = {"N","E","W"};
|
||||
snapPointsPara[] = {"N","E","W","CAM"};
|
||||
allowedSnapPoints[] = {"N","S","E","W"};
|
||||
energyCost = 0.2;
|
||||
availableTextures[] = {"\x\addons\a3_epoch_assets\textures\cor\corrugated_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_black_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_blue_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_brown_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_green_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_orange_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_purple_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_red_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_teal_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_yellow_co.paa"};
|
||||
// snap points for WoodLargeWall_EPOCH
|
||||
N[] = {0,0,3.06034};
|
||||
E[] = {5.23785,0,0};
|
||||
W[] = {-5.26294,0,0};
|
||||
E[] = {5.237,0,0};
|
||||
W[] = {-5.237,0,0};
|
||||
CAM[] = {0,-0.47,2.8};
|
||||
};
|
||||
class WoodLargeWallCor_SIM_EPOCH : WoodLargeWallCor_EPOCH
|
||||
{
|
||||
allowedSnapObjects[] = {"Const_floors_static_F","Const_WoodWalls_static_F"};
|
||||
allowedSnapObjects[] = {"Const_floors_static_F","Const_WoodWalls_static_F","Const_Cinder_static_F"};
|
||||
upgradeBuilding[] = {};
|
||||
removeParts[] = {};
|
||||
};
|
||||
class MetalWallGarage_EPOCH : Default
|
||||
{
|
||||
removeParts[] = {{"PartPlankPack",2},{"ItemScraps",2},{"CircuitParts",1}};
|
||||
simulClass = "MetalWallGarage_SIM_EPOCH";
|
||||
staticClass = "MetalWallGarage_EPOCH";
|
||||
GhostPreview = "MetalWallGarage_EPOCH";
|
||||
snapType = "snapPointsPara";
|
||||
snapPointsPara[] = {"N","E","W"};
|
||||
allowedSnapPoints[] = {"N","S","E","W"};
|
||||
energyCost = 0.5;
|
||||
// snap points for CinderWall_EPOCH
|
||||
N[] = {0,0,3.06034};
|
||||
E[] = {5.237,0,0};
|
||||
W[] = {-5.237,0,0};
|
||||
};
|
||||
class MetalWallGarage_SIM_EPOCH : MetalWallGarage_EPOCH
|
||||
{
|
||||
allowedSnapObjects[] = {"Const_Cinder_static_F","Const_floors_static_F","Const_WoodWalls_static_F"};
|
||||
removeParts[] = {};
|
||||
};
|
||||
class WoodWallGarage_EPOCH : Default
|
||||
{
|
||||
removeParts[] = {{"PartPlankPack",2},{"CircuitParts",1}};
|
||||
simulClass = "WoodWallGarage_SIM_EPOCH";
|
||||
staticClass = "WoodWallGarage_EPOCH";
|
||||
GhostPreview = "WoodWallGarage_EPOCH";
|
||||
snapType = "snapPointsPara";
|
||||
snapPointsPara[] = {"N","E","W"};
|
||||
allowedSnapPoints[] = {"N","S","E","W"};
|
||||
energyCost = 0.5;
|
||||
// snap points for CinderWall_EPOCH
|
||||
N[] = {0,0,3.06034};
|
||||
E[] = {5.237,0,0};
|
||||
W[] = {-5.237,0,0};
|
||||
};
|
||||
class WoodWallGarage_SIM_EPOCH : MetalWallGarage_EPOCH
|
||||
{
|
||||
allowedSnapObjects[] = {"Const_Cinder_static_F","Const_floors_static_F","Const_WoodWalls_static_F"};
|
||||
removeParts[] = {};
|
||||
};
|
||||
class WoodWall2_EPOCH : Default
|
||||
{
|
||||
@ -693,17 +779,18 @@ class CfgBaseBuilding
|
||||
simulClass = "WoodWall2_SIM_EPOCH";
|
||||
staticClass = "WoodWall2_EPOCH";
|
||||
GhostPreview = "WoodWall2_EPOCH";
|
||||
snapPointsPara[] = {"N","E","W"};
|
||||
snapPointsPara[] = {"N","E","W","CAM"};
|
||||
allowedSnapPoints[] = {"N","S","E","W"};
|
||||
energyCost = 0.2;
|
||||
// snap points for WoodLargeWall_EPOCH
|
||||
N[] = {0,0,3.06034};
|
||||
E[] = {5.23785,0,0};
|
||||
W[] = {-5.26294,0,0};
|
||||
E[] = {5.237,0,0};
|
||||
W[] = {-5.237,0,0};
|
||||
CAM[] = {0,-0.4,2.8};
|
||||
};
|
||||
class WoodWall2_SIM_EPOCH : WoodWall2_EPOCH
|
||||
{
|
||||
allowedSnapObjects[] = {"Const_floors_static_F","Const_WoodWalls_static_F"};
|
||||
allowedSnapObjects[] = {"Const_floors_static_F","Const_WoodWalls_static_F","Const_Cinder_static_F"};
|
||||
upgradeBuilding[] = {};
|
||||
removeParts[] = {};
|
||||
};
|
||||
@ -714,18 +801,19 @@ class CfgBaseBuilding
|
||||
simulClass = "WoodLargeWallDoorway_SIM_EPOCH";
|
||||
staticClass = "WoodLargeWallDoorway_EPOCH";
|
||||
GhostPreview = "WoodLargeWallDoorway_EPOCH";
|
||||
snapPointsPara[] = {"N","E","W"};
|
||||
snapPointsPara[] = {"N","E","W","CAM"};
|
||||
allowedSnapPoints[] = {"N","S","E","W"};
|
||||
energyCost = 0.2;
|
||||
availableTextures[] = {"\x\addons\a3_epoch_assets\textures\cor\corrugated_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_black_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_blue_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_brown_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_green_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_orange_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_purple_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_red_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_teal_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_yellow_co.paa"};
|
||||
// snap points for WoodLargeWall_EPOCH
|
||||
N[] = {0,0,3.06034};
|
||||
E[] = {5.23785,0,0};
|
||||
W[] = {-5.26294,0,0};
|
||||
E[] = {5.237,0,0};
|
||||
W[] = {-5.237,0,0};
|
||||
CAM[] = {0,-0.47,2.8};
|
||||
};
|
||||
class WoodLargeWallDoorway_SIM_EPOCH : WoodLargeWallDoorway_EPOCH
|
||||
{
|
||||
allowedSnapObjects[] = {"Const_floors_static_F","Const_WoodWalls_static_F"};
|
||||
allowedSnapObjects[] = {"Const_floors_static_F","Const_WoodWalls_static_F","Const_Cinder_static_F"};
|
||||
upgradeBuilding[] = {};
|
||||
removeParts[] = {};
|
||||
};
|
||||
@ -736,17 +824,18 @@ class CfgBaseBuilding
|
||||
simulClass = "WoodWall3_SIM_EPOCH";
|
||||
staticClass = "WoodWall3_EPOCH";
|
||||
GhostPreview = "WoodWall3_EPOCH";
|
||||
snapPointsPara[] = {"N","E","W"};
|
||||
snapPointsPara[] = {"N","E","W","CAM"};
|
||||
allowedSnapPoints[] = {"N","S","E","W"};
|
||||
energyCost = 0.2;
|
||||
// snap points for WoodLargeWall_EPOCH
|
||||
N[] = {0,0,3.06034};
|
||||
E[] = {5.23785,0,0};
|
||||
W[] = {-5.26294,0,0};
|
||||
E[] = {5.237,0,0};
|
||||
W[] = {-5.237,0,0};
|
||||
CAM[] = {0,-0.4,2.8};
|
||||
};
|
||||
class WoodWall3_SIM_EPOCH : WoodWall3_EPOCH
|
||||
{
|
||||
allowedSnapObjects[] = {"Const_floors_static_F","Const_WoodWalls_static_F"};
|
||||
allowedSnapObjects[] = {"Const_floors_static_F","Const_WoodWalls_static_F","Const_Cinder_static_F"};
|
||||
upgradeBuilding[] = {};
|
||||
removeParts[] = {};
|
||||
};
|
||||
@ -757,18 +846,19 @@ class CfgBaseBuilding
|
||||
simulClass = "WoodLargeWallDoor_SIM_EPOCH";
|
||||
staticClass = "WoodLargeWallDoor_EPOCH";
|
||||
GhostPreview = "WoodLargeWallDoor_EPOCH";
|
||||
snapPointsPara[] = {"N","E","W"};
|
||||
snapPointsPara[] = {"N","E","W","CAM"};
|
||||
allowedSnapPoints[] = {"N","S","E","W"};
|
||||
availableTextures[] = {"\x\addons\a3_epoch_assets\textures\cor\corrugated_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_black_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_blue_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_brown_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_green_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_orange_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_purple_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_red_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_teal_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_yellow_co.paa"};
|
||||
energyCost = 0.2;
|
||||
// snap points for WoodLargeWall_EPOCH
|
||||
N[] = {0,0,3.06034};
|
||||
E[] = {5.23785,0,0};
|
||||
W[] = {-5.26294,0,0};
|
||||
E[] = {5.237,0,0};
|
||||
W[] = {-5.237,0,0};
|
||||
CAM[] = {0,-0.47,2.8};
|
||||
};
|
||||
class WoodLargeWallDoor_SIM_EPOCH : WoodLargeWallDoor_EPOCH
|
||||
{
|
||||
allowedSnapObjects[] = {"Const_floors_static_F","Const_WoodWalls_static_F"};
|
||||
allowedSnapObjects[] = {"Const_floors_static_F","Const_WoodWalls_static_F","Const_Cinder_static_F"};
|
||||
upgradeBuilding[] = {};
|
||||
removeParts[] = {};
|
||||
};
|
||||
@ -778,17 +868,18 @@ class CfgBaseBuilding
|
||||
simulClass = "WoodWall4_SIM_EPOCH";
|
||||
staticClass = "WoodWall4_EPOCH";
|
||||
GhostPreview = "WoodWall4_EPOCH";
|
||||
snapPointsPara[] = {"N","E","W"};
|
||||
snapPointsPara[] = {"N","E","W","CAM"};
|
||||
allowedSnapPoints[] = {"N","S","E","W"};
|
||||
energyCost = 0.2;
|
||||
// snap points for WoodLargeWall_EPOCH
|
||||
N[] = {0,0,3.06034};
|
||||
E[] = {5.23785,0,0};
|
||||
W[] = {-5.26294,0,0};
|
||||
E[] = {5.237,0,0};
|
||||
W[] = {-5.237,0,0};
|
||||
CAM[] = {0,-0.4,2.8};
|
||||
};
|
||||
class WoodWall4_SIM_EPOCH : WoodWall4_EPOCH
|
||||
{
|
||||
allowedSnapObjects[] = {"Const_floors_static_F","Const_WoodWalls_static_F"};
|
||||
allowedSnapObjects[] = {"Const_floors_static_F","Const_WoodWalls_static_F","Const_Cinder_static_F"};
|
||||
upgradeBuilding[] = {};
|
||||
removeParts[] = {};
|
||||
};
|
||||
@ -798,18 +889,19 @@ class CfgBaseBuilding
|
||||
simulClass = "WoodLargeWallDoorL_SIM_EPOCH";
|
||||
staticClass = "WoodLargeWallDoorL_EPOCH";
|
||||
GhostPreview = "WoodLargeWallDoorL_EPOCH";
|
||||
snapPointsPara[] = {"N","E","W"};
|
||||
snapPointsPara[] = {"N","E","W","CAM"};
|
||||
allowedSnapPoints[] = {"N","S","E","W"};
|
||||
availableTextures[] = {"\x\addons\a3_epoch_assets\textures\cor\corrugated_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_black_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_blue_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_brown_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_green_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_orange_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_purple_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_red_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_teal_co.paa","\x\addons\a3_epoch_assets\textures\cor\corrugated_yellow_co.paa"};
|
||||
energyCost = 0.2;
|
||||
// snap points for WoodLargeWall_EPOCH
|
||||
N[] = {0,0,3.06034};
|
||||
E[] = {5.23785,0,0};
|
||||
W[] = {-5.26294,0,0};
|
||||
E[] = {5.237,0,0};
|
||||
W[] = {-5.237,0,0};
|
||||
CAM[] = {0,-0.47,2.8};
|
||||
};
|
||||
class WoodLargeWallDoorL_SIM_EPOCH : WoodLargeWallDoorL_EPOCH
|
||||
{
|
||||
allowedSnapObjects[] = {"Const_floors_static_F","Const_WoodWalls_static_F"};
|
||||
allowedSnapObjects[] = {"Const_floors_static_F","Const_WoodWalls_static_F","Const_Cinder_static_F"};
|
||||
upgradeBuilding[] = {};
|
||||
removeParts[] = {};
|
||||
};
|
||||
@ -871,7 +963,7 @@ class CfgBaseBuilding
|
||||
};
|
||||
class WoodStairs_SIM_EPOCH : WoodStairs_EPOCH
|
||||
{
|
||||
allowedSnapPoints[] = {"NF","SF","EF","WF","CB"};
|
||||
allowedSnapPoints[] = {"NF","SF","EF","WF","CB","CS"};
|
||||
allowedSnapObjects[] = {"Const_floors_static_F","Constructions_foundation_F"};
|
||||
upgradeBuilding[] = {};
|
||||
removeParts[] = {};
|
||||
@ -879,6 +971,7 @@ class CfgBaseBuilding
|
||||
class WoodStairs_Ghost_EPOCH : WoodStairs_SIM_EPOCH {};
|
||||
class WoodStairs2_EPOCH : Default
|
||||
{
|
||||
upgradeBuilding[] = {{"WoodStairs3_EPOCH",{{"ItemPipe",1},{"CircuitParts",1}}}};
|
||||
removeParts[] = {{"PartPlankPack",4}};
|
||||
simulClass = "WoodStairs2_SIM_EPOCH";
|
||||
staticClass = "WoodStairs2_EPOCH";
|
||||
@ -893,6 +986,7 @@ class CfgBaseBuilding
|
||||
WF2[] = {-5.237,-0.003,0};
|
||||
C[] = {-0.000251044,-0.00293543,6.37273};
|
||||
CB[] = {-0.000299305,-0.000390954,3.32902};
|
||||
CS[] = {-0.000251044,-0.00293543,3.060298}; // 2x WoodStairs without Space for Floor
|
||||
CinN[] = {0.0214193,2.87136,3.05972};
|
||||
CinE[] = {2.87868,-0.000390954,3.05972};
|
||||
CinS[] = {0.0214193,-2.86826,3.05972};
|
||||
@ -938,6 +1032,68 @@ class CfgBaseBuilding
|
||||
allowedSnapObjects[] = {"Const_floors_static_F","Constructions_foundation_F"};
|
||||
removeParts[] = {};
|
||||
};
|
||||
class WoodStairs3_EPOCH : Default
|
||||
{
|
||||
removeParts[] = {{"PartPlankPack",4},{"ItemPipe",1},{"CircuitParts",1}};
|
||||
simulClass = "WoodStairs3_SIM_EPOCH";
|
||||
staticClass = "WoodStairs3_EPOCH";
|
||||
GhostPreview = "WoodStairs3_EPOCH";
|
||||
snapPointsPara[] = {"NF2","SF2","EF2","WF2","NF","SF","EF","WF","C","CB","NWQF","NQF","NEQF","SWQF","SQF","SEQF","ENQF","EQF","ESQF","WNQF","WQF","WSQF","NWHF","NEHF","SWHF","SEHF","WNHF","WSHF","ENHF","ESHF"};
|
||||
snapPointsPerp[] = {"N","S","E","W","CinN","CinS","CinE","CinW"};
|
||||
energyCost = 0.3;
|
||||
// snap points for WoodStairs_EPOCH
|
||||
NF2[] = {0,5.237,0};
|
||||
SF2[] = {0,-5.237,0};
|
||||
EF2[] = {5.237,0,0};
|
||||
WF2[] = {-5.237,-0.003,0};
|
||||
C[] = {-0.000251044,-0.00293543,6.37273};
|
||||
CB[] = {-0.000299305,-0.000390954,3.32902};
|
||||
CS[] = {-0.000251044,-0.00293543,3.060298}; // 2x WoodStairs without Space for Floor
|
||||
CinN[] = {0.0214193,2.87136,3.05972};
|
||||
CinE[] = {2.87868,-0.000390954,3.05972};
|
||||
CinS[] = {0.0214193,-2.86826,3.05972};
|
||||
CinW[] = {-2.88969,-0.000390954,3.05972};
|
||||
N[] = {0.0195083,2.46379,3.32952};
|
||||
E[] = {2.47112,-0.000253316,3.32952};
|
||||
S[] = {0.0195083,-2.46097,3.32952};
|
||||
W[] = {-2.4783,-0.000253316,3.32952};
|
||||
NE[] = {2.47112,2.46379,3.32952};
|
||||
NW[] = {-2.4783,2.46379,3.32952};
|
||||
SE[] = {2.47112,-2.46097,3.32952};
|
||||
SW[] = {-2.4783,-2.46097,3.32952};
|
||||
NF[] = {0,5.237,3.06};
|
||||
SF[] = {0,-5.237,3.06};
|
||||
EF[] = {5.237,0,3.06};
|
||||
WF[] = {-5.237,0,3.06};
|
||||
NWQF[] = {-1.30925,3.92775,3.06};
|
||||
NQF[] = {0,3.92775,3.06};
|
||||
NEQF[] = {1.30925,3.92775,3.06};
|
||||
SWQF[] = {-1.30925,-3.92775,3.06};
|
||||
SQF[] = {0,-3.92775,3.06};
|
||||
SEQF[] = {1.30925,-3.92775,3.06};
|
||||
ENQF[] = {3.92775,1.30925,3.06};
|
||||
EQF[] = {3.92775,0,3.06};
|
||||
ESQF[] = {3.92775,-1.30925,3.06};
|
||||
WNQF[] = {-3.92775,1.30925,3.06};
|
||||
WQF[] = {-3.92775,0,3.06};
|
||||
WSQF[] = {-3.92775,-1.30925,3.06};
|
||||
|
||||
NWHF[] = {-1.30925,5.237,3.06};
|
||||
NEHF[] = {1.30925,5.237,3.06};
|
||||
SWHF[] = {-1.30925,-5.237,3.06};
|
||||
SEHF[] = {1.30925,-5.237,3.06};
|
||||
WNHF[] = {-5.237,1.30925,3.06};
|
||||
WSHF[] = {-5.237,-1.30925,3.06};
|
||||
ENHF[] = {5.237,1.30925,3.06};
|
||||
ESHF[] = {5.237,-1.30925,3.06};
|
||||
|
||||
};
|
||||
class WoodStairs3_SIM_EPOCH : WoodStairs3_EPOCH
|
||||
{
|
||||
allowedSnapPoints[] = {"NF","SF","EF","WF","CB"};
|
||||
allowedSnapObjects[] = {"Const_floors_static_F","Constructions_foundation_F"};
|
||||
removeParts[] = {};
|
||||
};
|
||||
class WoodTower_EPOCH : Default
|
||||
{
|
||||
removeParts[] = {{"PartPlankPack",4}};
|
||||
@ -1111,6 +1267,30 @@ class CfgBaseBuilding
|
||||
removeParts[] = {};
|
||||
};
|
||||
class WorkBench_Ghost_EPOCH : WorkBench_SIM_EPOCH {};
|
||||
class SolarCharger_EPOCH : Default
|
||||
{
|
||||
removeParts[] = {{"KitSolarCharger",1}};
|
||||
GhostPreview = "SolarCharger_Ghost_EPOCH";
|
||||
staticClass = "SolarCharger_EPOCH";
|
||||
simulClass = "SolarCharger_SIM_EPOCH";
|
||||
};
|
||||
class SolarCharger_SIM_EPOCH : SolarCharger_EPOCH
|
||||
{
|
||||
removeParts[] = {};
|
||||
};
|
||||
class SolarCharger_Ghost_EPOCH : SolarCharger_SIM_EPOCH {};
|
||||
class SolarChargerXL_EPOCH : Default
|
||||
{
|
||||
removeParts[] = {{"KitSolarChargerXL",1}};
|
||||
GhostPreview = "SolarChargerXL_Ghost_EPOCH";
|
||||
staticClass = "SolarChargerXL_EPOCH";
|
||||
simulClass = "SolarChargerXL_SIM_EPOCH";
|
||||
};
|
||||
class SolarChargerXL_SIM_EPOCH : SolarChargerXL_EPOCH
|
||||
{
|
||||
removeParts[] = {};
|
||||
};
|
||||
class SolarChargerXL_Ghost_EPOCH : SolarChargerXL_SIM_EPOCH {};
|
||||
class LockBox_EPOCH : Default
|
||||
{
|
||||
returnOnPack[] = {{"ItemLockbox",1}};
|
||||
@ -1391,6 +1571,44 @@ class CfgBaseBuilding
|
||||
removeParts[] = {};
|
||||
};
|
||||
class WaterPump_Ghost_EPOCH : WaterPump_SIM_EPOCH {};
|
||||
class BaseCam_EPOCH : Default
|
||||
{
|
||||
removeParts[] = {{"BaseCam",1}};
|
||||
GhostPreview = "BaseCam_Ghost_EPOCH";
|
||||
staticClass = "BaseCam_EPOCH";
|
||||
simulClass = "BaseCam_SIM_EPOCH";
|
||||
};
|
||||
class BaseCam_SIM_EPOCH : BaseCam_EPOCH
|
||||
{
|
||||
removeParts[] = {};
|
||||
allowedSnapPoints[] = {"CAM"};
|
||||
allowedSnapObjects[] = {"Const_WoodWalls_static_F","Const_Cinder_static_F"};
|
||||
};
|
||||
class BaseCam_Ghost_EPOCH : BaseCam_SIM_EPOCH {};
|
||||
class BaseCamTerminal_EPOCH : Default
|
||||
{
|
||||
removeParts[] = {{"BaseCamTerminal",1}};
|
||||
GhostPreview = "BaseCamTerminal_Ghost_EPOCH";
|
||||
staticClass = "BaseCamTerminal_EPOCH";
|
||||
simulClass = "BaseCamTerminal_SIM_EPOCH";
|
||||
};
|
||||
class BaseCamTerminal_SIM_EPOCH : BaseCamTerminal_EPOCH
|
||||
{
|
||||
removeParts[] = {};
|
||||
};
|
||||
class BaseCamTerminal_Ghost_EPOCH : BaseCamTerminal_SIM_EPOCH {};
|
||||
class snowman_EPOCH : Default
|
||||
{
|
||||
removeParts[] = {{1,"KitSnowman"}};
|
||||
GhostPreview = "snowman_Ghost_EPOCH";
|
||||
staticClass = "snowman_EPOCH";
|
||||
simulClass = "snowman_SIM_EPOCH";
|
||||
};
|
||||
class snowman_SIM_EPOCH : snowman_EPOCH
|
||||
{
|
||||
removeParts[] = {};
|
||||
};
|
||||
class snowman_Ghost_EPOCH : snowman_SIM_EPOCH {};
|
||||
};
|
||||
|
||||
/*[[[end]]]*/
|
||||
|
@ -51,6 +51,8 @@ class CfgClientFunctions
|
||||
class unit_onKilledEH {};
|
||||
class AutoRun_Check {};
|
||||
class AutoRun {};
|
||||
class DefibrillatorUse {};
|
||||
class CamUse {};
|
||||
};
|
||||
class building
|
||||
{
|
||||
|
@ -99,7 +99,7 @@ class CfgCrafting
|
||||
/** --------- RECIPES BELOW --------- **/
|
||||
class ItemCoolerE : Part
|
||||
{
|
||||
usedIn[] = {"ItemCooler0","ItemCooler1","ItemCooler2","ItemCooler3","ItemCooler4"};
|
||||
usedIn[] = {"ItemCooler0","ItemCooler1","ItemCooler2","ItemCooler3","ItemCooler4","KitSnowman"};
|
||||
previewPosition[] = {0.795709,1,0.415296};
|
||||
previewScale = 0.8;
|
||||
previewVector = 0;
|
||||
@ -148,7 +148,7 @@ class CfgCrafting
|
||||
};
|
||||
class CircuitParts : Part
|
||||
{
|
||||
usedIn[] = {"EnergyPack","EnergyPackLg","KitPlotPole","ItemBattery","KitSolarGen","KitVehicleUpgradeI_200_EPOCH","KitVehicleUpgradeIV_200_EPOCH","BarrelBomb_EPOCH_Remote_Mag","BarrelBomb2_EPOCH_Remote_Mag","KitPortableLight_Single","KitPortableLight_Double"};
|
||||
usedIn[] = {"EnergyPack","EnergyPackLg","KitPlotPole","ItemBattery","KitSolarGen","KitSolarCharger","KitSolarChargerXL","KitVehicleUpgradeI_200_EPOCH","KitVehicleUpgradeIV_200_EPOCH","BarrelBomb_EPOCH_Remote_Mag","BarrelBomb2_EPOCH_Remote_Mag","KitPortableLight_Single","KitPortableLight_Double","BaseCam","BaseCamTerminal"};
|
||||
previewPosition[] = {0.791044,1,0.256956};
|
||||
previewScale = 2;
|
||||
previewVector = 2.3;
|
||||
@ -415,7 +415,7 @@ class CfgCrafting
|
||||
};
|
||||
class ItemScraps : Item
|
||||
{
|
||||
usedIn[] = {"ItemCorrugated","KitMetalTrap","MeleeRod","KitVehicleUpgradeIV_200_EPOCH","KitBarbedWire"};
|
||||
usedIn[] = {"ItemCorrugated","KitMetalTrap","MeleeRod","KitVehicleUpgradeIV_200_EPOCH","KitBarbedWire","BaseCam","BaseCamTerminal"};
|
||||
nearby[] = {{"Fire","","fire",{1,{"ALL"}},3,1,1,0}};
|
||||
recipe[] = {{"PartOre",2}};
|
||||
previewPosition[] = {0.797144,1,0.309158};
|
||||
@ -466,10 +466,17 @@ class CfgCrafting
|
||||
};
|
||||
class ItemDuctTape : Part
|
||||
{
|
||||
usedIn[] = {"SpareTire","EngineParts","ItemRotor"};
|
||||
usedIn[] = {"SpareTire","EngineParts","ItemRotor","BaseCam","BaseCamTerminal"};
|
||||
previewPosition[] = {0.807346,1,0.27};
|
||||
previewScale = 1.8;
|
||||
previewVector = -3.9;
|
||||
};
|
||||
class ItemGlass : Part
|
||||
{
|
||||
usedIn[] = {"BaseCam", "BaseCamTerminal"};
|
||||
previewPosition[] = {0.807346,1,0.27};
|
||||
previewScale = 0.55;
|
||||
previewVector = -3.9;
|
||||
};
|
||||
class EngineParts : Item
|
||||
{
|
||||
@ -786,6 +793,13 @@ class CfgCrafting
|
||||
previewScale = 0.4;
|
||||
previewVector = 2.1;
|
||||
};
|
||||
class icecream_epoch : Part
|
||||
{
|
||||
usedIn[] = {"KitSnowman"};
|
||||
previewPosition[] = {0.796141,1,0.27};
|
||||
previewScale = 0.7;
|
||||
previewVector = 2.1;
|
||||
};
|
||||
class emptyjar_epoch : Part
|
||||
{
|
||||
usedIn[] = {"water_epoch"};
|
||||
@ -802,7 +816,7 @@ class CfgCrafting
|
||||
};
|
||||
class clean_water_epoch : Item
|
||||
{
|
||||
usedIn[] = {"EnergyPack"};
|
||||
usedIn[] = {"EnergyPack","KitSnowman"};
|
||||
nearby[] = {{"Fire","","fire",{1,{"ALL"}},3,1,1,0}};
|
||||
recipe[] = {"water_epoch"};
|
||||
previewPosition[] = {0.807346,1,0.43035};
|
||||
@ -819,7 +833,7 @@ class CfgCrafting
|
||||
};
|
||||
class ItemCorrugatedLg : Item
|
||||
{
|
||||
usedIn[] = {"KitPlotPole","KitTankTrap","KitHesco3","KitSolarGen","ItemRotor","EngineBlock","KitMetalFloor","KitMetalHalfFloor","KitMetalQuarterFloor","KitMetalTower","KitFieldToilet","KitSink","KitPortableLight_Single","KitPortableLight_Double","KitBarbedWire"};
|
||||
usedIn[] = {"KitPlotPole","KitTankTrap","KitHesco3","KitSolarGen","KitSolarCharger","KitSolarChargerXL","ItemRotor","EngineBlock","KitMetalFloor","KitMetalHalfFloor","KitMetalQuarterFloor","KitMetalTower","KitFieldToilet","KitSink","KitPortableLight_Single","KitPortableLight_Double","KitBarbedWire"};
|
||||
recipe[] = {{"ItemCorrugated",3}};
|
||||
nearby[] = {{"Workbench","","workbench",{1,{"WorkBench_EPOCH"}},3,1,0,1}};
|
||||
previewPosition[] = {0.797491,1,0.32899};
|
||||
@ -828,7 +842,7 @@ class CfgCrafting
|
||||
};
|
||||
class PartPlankPack : Item
|
||||
{
|
||||
usedIn[] = {"KitStudWall","KitWoodFloor","KitWoodFoundation","KitWoodStairs","KitWoodRamp","KitWoodLadder","KitWoodTower","KitTiPi","KitWorkbench","KitSpikeTrap","KitMetalTrap","KitWoodQuarterFloor","KitWoodHalfFloor","KitBarGate","KitBagBunker","KitWatchTower","KitLightPole","KitScaffolding"};
|
||||
usedIn[] = {"KitStudWall","KitWoodFloor","KitWoodFoundation","KitWoodStairs","KitWoodRamp","KitWoodLadder","KitWoodTower","KitTiPi","KitWorkbench","KitSpikeTrap","KitMetalTrap","KitWoodQuarterFloor","KitWoodHalfFloor","KitBarGate","KitBagBunker","KitWatchTower","KitLightPole","KitScaffolding","KitPlyThirdWall_EPOCH"};
|
||||
recipe[] = {{"WoodLog_EPOCH",2}};
|
||||
previewPosition[] = {0.797837,1,0.288258};
|
||||
previewScale = 0.2;
|
||||
@ -837,7 +851,7 @@ class CfgCrafting
|
||||
};
|
||||
class ItemPlywoodPack : Item
|
||||
{
|
||||
usedIn[] = {};
|
||||
usedIn[] = {"KitPlyThirdWall_EPOCH"};
|
||||
recipe[] = {{"WoodLog_EPOCH",3}};
|
||||
previewPosition[] = {0.797837,1,0.288258};
|
||||
previewScale = 0.2;
|
||||
@ -879,6 +893,17 @@ class CfgCrafting
|
||||
previewScale = 0.07;
|
||||
previewVector = 0;
|
||||
};
|
||||
class KitPlyThirdWall_EPOCH : Kit
|
||||
{
|
||||
recipe[] = {{"PartPlankPack",2},{"ItemPlywoodPack",1}};
|
||||
model = "\x\addons\a3_epoch_community\models\third_ply_wall.p3d";
|
||||
nearby[] = {{"Workbench","","workbench",{1,{"WorkBench_EPOCH"}},3,1,0,1}};
|
||||
previewPosition[] = {0.797675,1,0.398882};
|
||||
previewScale = 0.07;
|
||||
previewVector = 0;
|
||||
descriptionShort = "1/3 Plywood Wall";
|
||||
descriptionFull = "Base building material";
|
||||
};
|
||||
class KitWoodFloor : Kit
|
||||
{
|
||||
usedIn[] = {"KitWoodTower","KitBagBunker"};
|
||||
@ -1117,9 +1142,20 @@ class CfgCrafting
|
||||
previewScale = 0.055;
|
||||
previewVector = 0;
|
||||
};
|
||||
class KitSnowman : Kit
|
||||
{
|
||||
recipe[] = {{"ItemCoolerE",1},{"icecream_epoch",1},{"clean_water_epoch",2}};
|
||||
model = "\x\addons\a3_epoch_community\models\hol_x\epoch_snowman.p3d";
|
||||
nearby[] = {{"Workbench","","workbench",{1,{"WorkBench_EPOCH"}},3,1,0,1}};
|
||||
previewPosition[] = {0.801378,1,0.29};
|
||||
previewScale = 0.15;
|
||||
previewVector = 0;
|
||||
descriptionShort = "Snowman";
|
||||
descriptionFull = "Nice deco for Wintertime";
|
||||
};
|
||||
class ItemSolar : Part
|
||||
{
|
||||
usedIn[] = {"KitSolarGen"};
|
||||
usedIn[] = {"KitSolarGen","KitSolarCharger","KitSolarChargerXL"};
|
||||
previewPosition[] = {0.802374,1,0.26};
|
||||
previewScale = 0.19;
|
||||
previewVector = 3.3;
|
||||
@ -1133,7 +1169,7 @@ class CfgCrafting
|
||||
};
|
||||
class ItemCables : Item
|
||||
{
|
||||
usedIn[] = {"KitSolarGen","KitPlotPole","ItemCopperBar","KitVehicleUpgradeI_200_EPOCH"};
|
||||
usedIn[] = {"KitSolarGen","KitSolarCharger","KitSolarChargerXL","KitPlotPole","ItemCopperBar","KitVehicleUpgradeI_200_EPOCH","BaseCam","BaseCamTerminal"};
|
||||
nearby[] = {{"Workbench","","workbench",{1,{"WorkBench_EPOCH"}},3,1,0,1}};
|
||||
recipe[] = {{"ItemCopperBar",1}};
|
||||
previewPosition[] = {0.802374,1,0.26};
|
||||
@ -1227,7 +1263,7 @@ class CfgCrafting
|
||||
};
|
||||
class ItemBattery : Item
|
||||
{
|
||||
usedIn[] = {"KitSolarGen","KitPlotPole","BarrelBomb_EPOCH_Remote_Mag","BarrelBomb2_EPOCH_Remote_Mag"};
|
||||
usedIn[] = {"KitSolarGen","KitSolarCharger","KitSolarChargerXL","KitPlotPole","BarrelBomb_EPOCH_Remote_Mag","BarrelBomb2_EPOCH_Remote_Mag"};
|
||||
nearby[] = {{"Workbench","","workbench",{1,{"WorkBench_EPOCH"}},3,1,0,1}};
|
||||
recipe[] = {{"EnergyPackLg",3},{"CircuitParts",1}};
|
||||
previewPosition[] = {0.802374,1,0.276733};
|
||||
@ -1241,6 +1277,50 @@ class CfgCrafting
|
||||
previewPosition[] = {0.804979,1,0.39189};
|
||||
previewScale = 0.11;
|
||||
previewVector = 0;
|
||||
};
|
||||
class KitSolarCharger : Kit
|
||||
{
|
||||
recipe[] = {{"ItemSolar",1},{"ItemCables",1},{"ItemBattery",1},{"ItemCorrugatedLg",2},{"CircuitParts",2}};
|
||||
nearby[] = {{"Workbench","","workbench",{1,{"WorkBench_EPOCH"}},3,1,0,1}};
|
||||
model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Solar_Generator_Complete\Solar_generator.p3d";
|
||||
previewPosition[] = {0.804979,1,0.39189};
|
||||
previewScale = 0.11;
|
||||
previewVector = 0;
|
||||
descriptionShort = "Solar Charger Kit";
|
||||
descriptionFull = "Used to charge small Energy Packs";
|
||||
};
|
||||
class KitSolarChargerXL : Kit
|
||||
{
|
||||
recipe[] = {{"ItemSolar",2},{"ItemCables",2},{"ItemBattery",2},{"ItemCorrugatedLg",2},{"CircuitParts",2}};
|
||||
nearby[] = {{"Workbench","","workbench",{1,{"WorkBench_EPOCH"}},3,1,0,1}};
|
||||
model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Solar_Generator_Complete\Solar_generator.p3d";
|
||||
previewPosition[] = {0.804979,1,0.39189};
|
||||
previewScale = 0.11;
|
||||
previewVector = 0;
|
||||
descriptionShort = "Solar Charger Kit XL";
|
||||
descriptionFull = "Used to charge large Energy Packs";
|
||||
};
|
||||
class BaseCam : Kit
|
||||
{
|
||||
recipe[] = {{"ItemCables",1},{"ItemGlass",1},{"ItemDuctTape",1},{"ItemScraps",2},{"CircuitParts",2}};
|
||||
nearby[] = {{"Workbench","","workbench",{1,{"WorkBench_EPOCH"}},3,1,0,1}};
|
||||
model = "\x\addons\a3_epoch_community\models\base_cam.p3d";
|
||||
previewPosition[] = {0.804979,1,0.3};
|
||||
previewScale = 0.5;
|
||||
previewVector = 0;
|
||||
descriptionShort = "Base Camera";
|
||||
descriptionFull = "Protect your Base with a Camera.<br/>A BaseCam Terminal is needed,<br/>to check your Base Cameras";
|
||||
};
|
||||
class BaseCamTerminal : Kit
|
||||
{
|
||||
recipe[] = {{"ItemCables",1},{"ItemGlass",1},{"ItemDuctTape",1},{"ItemScraps",2},{"CircuitParts",2}};
|
||||
nearby[] = {{"Workbench","","workbench",{1,{"WorkBench_EPOCH"}},3,1,0,1}};
|
||||
model = "\x\addons\a3_epoch_community\models\base_cam_terminal.p3d";
|
||||
previewPosition[] = {0.804979,1,0.3};
|
||||
previewScale = 0.5;
|
||||
previewVector = 0;
|
||||
descriptionShort = "Base Camera Terminal";
|
||||
descriptionFull = "Check your Base Cameras with this Terminal";
|
||||
};
|
||||
class MeleeRod : Kit
|
||||
{
|
||||
@ -1395,7 +1475,7 @@ class CfgCrafting
|
||||
};
|
||||
class ItemCanvas : Item
|
||||
{
|
||||
usedIn[] = {"KitTentA","KitTentDome","KitSunShade","KitWatchTower","KitScaffolding"};
|
||||
usedIn[] = {"KitTentA","KitTentDome","KitSunShade","KitWatchTower","KitScaffolding","ItemSeedBag"};
|
||||
nearby[] = {{"Workbench","","workbench",{1,{"WorkBench_EPOCH"}},3,1,0,1}};
|
||||
recipe[] = {{"ItemKiloHemp",1}};
|
||||
previewPosition[] = {0.802443,1,0.254301};
|
||||
|
@ -14,7 +14,7 @@
|
||||
/*[[[cog from arma_config_tools import *; json_to_arma()]]]*/
|
||||
class CfgEpochClient
|
||||
{
|
||||
epochVersion = "1.1.0";
|
||||
epochVersion = "1.2.0";
|
||||
ArmAVersion = 176;
|
||||
debug = "true"; // true = enable extra rpt debug lines, false to disable
|
||||
|
||||
@ -55,9 +55,16 @@ class CfgEpochClient
|
||||
storageCountPerMember = 5; //ignore if "splitCountLimits=0" & "useGroupCountLimits=0"
|
||||
maxdoors = 10; // Max allowed doors per Group
|
||||
maxgates = 5; // Max allowed Gates per Group
|
||||
maxCams = 2; // Max allowed BaseCams per Group
|
||||
|
||||
MaxBuildingTilt = 180; // Max degrees players can tilt building elements
|
||||
|
||||
AtmBlockedAtPlot = "true"; // Block ATM's in Plotpole-Range
|
||||
disableRemoteSensors = "true"; // disableRemoteSensors true/false
|
||||
|
||||
ActionFireOnLighter = "true"; // Lighter is needed to inflame fires
|
||||
ActionBurnBarrelOffExtinguisher = "true"; // FireExtinguisher is needed to put off Burn Barrels
|
||||
ActionHookRope = "true"; // Rope is needed to hook vehicles (get back on release)
|
||||
|
||||
epochMessageBackgroundCol[] = {0,0,0,0.2}; //Epoch_message background color (format: {R,G,B,A})
|
||||
epochMessageTextCol[] = {1,1,1,0.95}; //Epoch_message text color (format: {R,G,B,A})
|
||||
@ -189,6 +196,19 @@ class CfgEpochClient
|
||||
playerDeathMarkerGPSOnly = 1; // Map marker toggle in map dyna menu on death with assigned GPS only
|
||||
mapOnZoomSetMarkerSize = 1; // When in map markers will change to larger size as player zooms in
|
||||
bankTransferTime[] = {0.0006,1.2,0.06};
|
||||
|
||||
// Player (Building) Energy
|
||||
energyPowerSources[] = { // Add PowerCapacity and PowerType in CfgBaseBuilding, if you add something here!
|
||||
"Land_spp_Tower_F",
|
||||
"Land_wpp_Turbine_V2_F",
|
||||
"Land_wpp_Turbine_V1_F",
|
||||
"SolarGen_EPOCH",
|
||||
"Land_Wreck_Satellite_EPOCH"
|
||||
};
|
||||
energyRange = 75; // Range to check for energy sources
|
||||
energyRegenMax = 5; // Max energy increase value (every 10 seconds)
|
||||
energyCostNV = 3; // Energy loss value by using nightvision (every 10 seconds)
|
||||
energyRegenInVeh = 5; // Energy increase value in Vehicles with Engine On (every 10 seconds)
|
||||
|
||||
// Favorite Bar
|
||||
Fav_enableFavoriteBar = "true"; // If disabled, players will not be able to use favorite bar
|
||||
@ -196,6 +216,9 @@ class CfgEpochClient
|
||||
Fav_FastWeaponSwitching = "false"; // If enabled, same slot weapons from favorites bar are equipped instantly, otherwise reload action is played (recommended for immersion)
|
||||
Fav_BannedItems[] = {"FAK"}; // Items that users are not allowed to pin
|
||||
|
||||
EnableTempVehTrade = "false"; // Enable selling of temp Vehicles (not handled by Epoch). Temp Vehicles will not be stored in Traders, but can be sold
|
||||
BulletCalculateOnCraft = "true"; // Enable Bullet Calculation on Crafting - Example: If you craft a large EnergyPack with 3 half full EnergyPacks, you will only get a half filled large EnergyPack back
|
||||
|
||||
// Advanced Vehicle Repair
|
||||
UseAdvancedVehicleRepair = "true"; // Switch On / Off Advanced Vehicle Repair (Does not effect SuppressedCraftingItems !)
|
||||
EnableRemoveParts = "true"; // Enable removing Tires / Engines from Vehicles
|
||||
@ -214,21 +237,25 @@ class CfgEpochClient
|
||||
VehicleRepairs[] = { // {Hitpoint, dmg to repair, dmg to replace, mat to repair, mat to replace}
|
||||
{"HitHull",0.33,0.66,"ItemScraps","ItemCorrugated"},
|
||||
{"HitBody",0.33,1,"ItemScraps","ItemCorrugated"},
|
||||
{"HitLFWheel",0.33,1,"VehicleRepair","SpareTire"},
|
||||
{"HitLF2Wheel",0.33,1,"VehicleRepair","SpareTire"},
|
||||
{"HitLMWheel",0.33,1,"VehicleRepair","SpareTire"},
|
||||
{"HitLBWheel",0.33,1,"VehicleRepair","SpareTire"},
|
||||
{"HitRFWheel",0.33,1,"VehicleRepair","SpareTire"},
|
||||
{"HitRF2Wheel",0.33,1,"VehicleRepair","SpareTire"},
|
||||
{"HitRMWheel",0.33,1,"VehicleRepair","SpareTire"},
|
||||
{"HitRBWheel",0.33,1,"VehicleRepair","SpareTire"},
|
||||
{"HitEngine",0.33,0.91,"EngineParts","EngineBlock"},
|
||||
{"glass",0.33,1,"ItemGlass","ItemGlass"},
|
||||
{"HitFuel",0.1,0.66,"ItemDuctTape","FuelTank"},
|
||||
{"HitHRotor",0.33,1,"ItemCorrugated","ItemRotor"},
|
||||
{"HitVRotor",0.33,1,"ItemCorrugated","ItemRotor"},
|
||||
{"HitWinch",0.33,0.91,"ItemCables","ItemCables"},
|
||||
{"HitAvionics",0.33,0.91,"CircuitParts","CircuitParts"}
|
||||
{"HitAvionics",0.33,0.91,"CircuitParts","CircuitParts"},
|
||||
// Wheels - Do not change the order (front to back wheels) here!
|
||||
{"HitLFWheel",0.33,1,"VehicleRepair","SpareTire"},
|
||||
{"HitRFWheel",0.33,1,"VehicleRepair","SpareTire"},
|
||||
{"HitLF2Wheel",0.33,1,"VehicleRepair","SpareTire"},
|
||||
{"HitRF2Wheel",0.33,1,"VehicleRepair","SpareTire"},
|
||||
{"HitLMWheel",0.33,1,"VehicleRepair","SpareTire"},
|
||||
{"HitRMWheel",0.33,1,"VehicleRepair","SpareTire"},
|
||||
{"HitLBWheel",0.33,1,"VehicleRepair","SpareTire"},
|
||||
{"HitRBWheel",0.33,1,"VehicleRepair","SpareTire"},
|
||||
// Mountainbike wheels
|
||||
{"HitFWheel",0.33,0.91,"",""},
|
||||
{"HitBWheel",0.33,0.91,"",""}
|
||||
};
|
||||
|
||||
// include configs
|
||||
|
@ -504,6 +504,16 @@ class CfgItemInteractions
|
||||
buildClass = "Garden_EPOCH";
|
||||
isStorage = 1;
|
||||
};
|
||||
class KitSolarCharger : Item_Build_base
|
||||
{
|
||||
buildClass = "SolarCharger_EPOCH";
|
||||
isStorage = 1;
|
||||
};
|
||||
class KitSolarChargerXL : Item_Build_base
|
||||
{
|
||||
buildClass = "SolarChargerXL_EPOCH";
|
||||
isStorage = 1;
|
||||
};
|
||||
class KitBurnBarrel : Item_Build_base
|
||||
{
|
||||
buildClass = "BurnBarrel_EPOCH";
|
||||
@ -588,6 +598,10 @@ class CfgItemInteractions
|
||||
{
|
||||
buildClass = "BarbedWire_EPOCH";
|
||||
};
|
||||
class BaseCam : Item_Build_base
|
||||
{
|
||||
buildClass = "BaseCam_EPOCH";
|
||||
};
|
||||
class PaintCanBase : Default
|
||||
{
|
||||
interactAction = 12;
|
||||
@ -985,7 +999,7 @@ class CfgItemInteractions
|
||||
};
|
||||
class ItemCanteen_Clean : Drink_base
|
||||
{
|
||||
interactAttributes[] = {{"Thirst",1000},{"Stamina",50}};
|
||||
interactAttributes[] = {{"Thirst",1000},{"Stamina",100}};
|
||||
interactReturnOnUse = "ItemCanteen_Empty";
|
||||
};
|
||||
class ItemBottlePlastic_Dirty: Drink_base
|
||||
@ -996,7 +1010,7 @@ class CfgItemInteractions
|
||||
|
||||
class ItemCanteen_Dirty : Drink_base
|
||||
{
|
||||
interactAttributes[] = {{"Thirst",1000},{"Toxicity",5,1},{"Stamina",50},{"Radiation",2,1}};
|
||||
interactAttributes[] = {{"Thirst",1000},{"Toxicity",10,1},{"Stamina",100},{"Radiation",4,1}};
|
||||
interactReturnOnUse = "ItemCanteen_Empty";
|
||||
};
|
||||
class adrenaline_epoch : Drink_base
|
||||
@ -1045,5 +1059,23 @@ class CfgItemInteractions
|
||||
interactText = "USE";
|
||||
interactAttributes[] = {{"Radiation",-15},{"Thirst",-50},{"Immunity",5}};
|
||||
};
|
||||
class ItemDefibrillator : Default
|
||||
{
|
||||
interactAction = 17;
|
||||
interactText = "ReCharge";
|
||||
};
|
||||
class BaseCamTerminal : Item_Build_base
|
||||
{
|
||||
buildClass = "BaseCamTerminal_EPOCH";
|
||||
interactActions[] = {{"Watch","call Epoch_CamUse;"}};
|
||||
};
|
||||
class KitSnowman : Item_Build_base
|
||||
{
|
||||
buildClass = "snowman_EPOCH";
|
||||
};
|
||||
class KitPlyThirdWall_EPOCH : Item_Build_base
|
||||
{
|
||||
buildClass = "PlyThirdWall_EPOCH";
|
||||
};
|
||||
};
|
||||
/*[[[end]]]*/
|
||||
|
@ -171,6 +171,10 @@ class CfgItemSort
|
||||
"U_O_FullGhillie_sard",
|
||||
"U_O_FullGhillie_ard",
|
||||
|
||||
// Radiation Suits
|
||||
"U_RadiationSuit_M_uniform",
|
||||
"U_RadiationSuit_F_uniform",
|
||||
|
||||
// CIV
|
||||
"U_I_OfficerUniform",
|
||||
"U_I_C_Soldier_Para_1_F",
|
||||
@ -431,6 +435,8 @@ class CfgItemSort
|
||||
"H_F3_EPOCH",
|
||||
"H_F4_EPOCH",
|
||||
"H_F5_EPOCH",
|
||||
"thor_mask_epoch",
|
||||
"iron_mask_epoch",
|
||||
"wolf_mask_epoch",
|
||||
"pkin_mask_epoch",
|
||||
"clown_mask_epoch",
|
||||
@ -948,6 +954,7 @@ class CfgItemSort
|
||||
|
||||
Medical[] = {
|
||||
"FAK",
|
||||
"Soap_Epoch",
|
||||
"Towelette",
|
||||
"HeatPack",
|
||||
"ColdPack",
|
||||
@ -1051,11 +1058,13 @@ class CfgItemSort
|
||||
"ItemCorrugated",
|
||||
"ItemCorrugatedLg",
|
||||
"KitStudWall",
|
||||
"KitPlyThirdWall_EPOCH",
|
||||
"KitWoodFloor",
|
||||
"KitWoodHalfFloor",
|
||||
"KitWoodQuarterFloor",
|
||||
"KitWoodStairs",
|
||||
"KitWoodRamp",
|
||||
"KitSnowman",
|
||||
"KitFirePlace",
|
||||
"KitTiPi",
|
||||
"KitShelf",
|
||||
@ -1064,6 +1073,10 @@ class CfgItemSort
|
||||
"KitPlotPole",
|
||||
"KitCinderWall",
|
||||
"KitSolarGen",
|
||||
"KitSolarCharger",
|
||||
"KitSolarChargerXL",
|
||||
"BaseCam",
|
||||
"BaseCamTerminal",
|
||||
"KitWorkbench",
|
||||
"KitWoodLadder",
|
||||
"KitWoodTower",
|
||||
@ -1187,6 +1200,11 @@ class CfgItemSort
|
||||
"ItemFireExtinguisher"
|
||||
};
|
||||
Vehicles_Land[] = {
|
||||
"hoverboard_epoch_1",
|
||||
"hoverboard_epoch_bttf",
|
||||
"hoverboard_epoch_a3",
|
||||
"hoverboard_epoch_cargo",
|
||||
"MBK_01_EPOCH",
|
||||
"ebike_epoch", // Motorcycle
|
||||
"C_Offroad_01_EPOCH", // Offroader
|
||||
"C_Offroad_01_EPOCH1",
|
||||
@ -1392,6 +1410,7 @@ class CfgItemSort
|
||||
"O_Heli_Transport_04_box_EPOCH",
|
||||
"O_Heli_Transport_04_covered_EPOCH",
|
||||
"B_Heli_Light_01_EPOCH",
|
||||
"uh1h_Epoch",
|
||||
|
||||
"B_Heli_Light_01_armed_F",
|
||||
"B_Heli_Transport_01_EPOCH",
|
||||
|
@ -70,6 +70,14 @@ class CfgObjectInteractions
|
||||
{
|
||||
interactMode = 4;
|
||||
};
|
||||
class SolarCharger_EPOCH : Default
|
||||
{
|
||||
interactMode = 4;
|
||||
};
|
||||
class SolarChargerXL_EPOCH : Default
|
||||
{
|
||||
interactMode = 4;
|
||||
};
|
||||
class FieldToilet_EPOCH : Default
|
||||
{
|
||||
interactMode = 4;
|
||||
@ -231,6 +239,7 @@ class CfgObjectInteractions
|
||||
ppEffect[] = {};
|
||||
};
|
||||
class SmokeShellToxic_Ammo : SmokeShellCustom {};
|
||||
class SmokeShellToxicSapper : SmokeShellCustom {};
|
||||
class Epoch_Cloak_F : Default
|
||||
{
|
||||
distance = 30;
|
||||
|
@ -112,6 +112,10 @@ class CfgPricing
|
||||
{
|
||||
price = 25;
|
||||
};
|
||||
class ItemWaterPurificationTablets
|
||||
{
|
||||
price = 10;
|
||||
};
|
||||
class ItemBulb
|
||||
{
|
||||
price = 10;
|
||||
@ -2096,6 +2100,10 @@ class CfgPricing
|
||||
{
|
||||
price = 3;
|
||||
};
|
||||
class Soap_Epoch
|
||||
{
|
||||
price = 4;
|
||||
};
|
||||
class Towelette
|
||||
{
|
||||
price = 1;
|
||||
@ -3074,6 +3082,9 @@ class CfgPricing
|
||||
{
|
||||
price = 16;
|
||||
};
|
||||
class KitPlyThirdWall_EPOCH {
|
||||
price = 18;
|
||||
};
|
||||
class KitWoodQuarterFloor
|
||||
{
|
||||
price = 8; // price of 2 planks
|
||||
@ -3130,6 +3141,10 @@ class CfgPricing
|
||||
{
|
||||
price = 24; // price of 6 planks
|
||||
};
|
||||
class KitSnowman
|
||||
{
|
||||
price = 72;
|
||||
};
|
||||
class KitSpikeTrap
|
||||
{
|
||||
price = 42;
|
||||
@ -3250,6 +3265,22 @@ class CfgPricing
|
||||
{
|
||||
price = 325;
|
||||
};
|
||||
class KitSolarCharger
|
||||
{
|
||||
price = 325;
|
||||
};
|
||||
class KitSolarChargerXL
|
||||
{
|
||||
price = 325;
|
||||
};
|
||||
class BaseCam
|
||||
{
|
||||
price = 250;
|
||||
};
|
||||
class BaseCamTerminal
|
||||
{
|
||||
price = 250;
|
||||
};
|
||||
class KitCinderWall
|
||||
{
|
||||
price = 80;
|
||||
@ -3514,6 +3545,14 @@ class CfgPricing
|
||||
{
|
||||
price = 22;
|
||||
};
|
||||
class U_RadiationSuit_M_uniform
|
||||
{
|
||||
price = 7;
|
||||
};
|
||||
class U_RadiationSuit_F_uniform
|
||||
{
|
||||
price = 7;
|
||||
};
|
||||
class U_O_FullGhillie_lsh
|
||||
{
|
||||
price = 7;
|
||||
@ -4352,20 +4391,40 @@ class CfgPricing
|
||||
};
|
||||
class C_Offroad_01_EPOCH
|
||||
{
|
||||
price = 750;
|
||||
price = 7500;
|
||||
tax = 0.9;
|
||||
};
|
||||
class C_Offroad_01_EPOCH1: C_Offroad_01_EPOCH{};
|
||||
class C_Offroad_01_EPOCH2: C_Offroad_01_EPOCH{};
|
||||
class C_Offroad_01_EPOCH3: C_Offroad_01_EPOCH{};
|
||||
class C_Offroad_01_EPOCH4: C_Offroad_01_EPOCH{};
|
||||
class C_Offroad_01_EPOCH5: C_Offroad_01_EPOCH{};
|
||||
class hoverboard_epoch_1
|
||||
{
|
||||
price = 1000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class hoverboard_epoch_bttf: hoverboard_epoch_1{};
|
||||
class hoverboard_epoch_a3: hoverboard_epoch_1{};
|
||||
class hoverboard_epoch_cargo
|
||||
{
|
||||
price = 1200;
|
||||
tax = 0.9;
|
||||
};
|
||||
class MBK_01_EPOCH
|
||||
{
|
||||
price = 1250;
|
||||
tax = 0.9;
|
||||
};
|
||||
class C_Quadbike_01_EPOCH
|
||||
{
|
||||
price = 500;
|
||||
price = 2500;
|
||||
tax = 0.9;
|
||||
};
|
||||
class C_Hatchback_01_EPOCH
|
||||
{
|
||||
price = 750;
|
||||
price = 7500;
|
||||
tax = 0.9;
|
||||
};
|
||||
class C_Hatchback_01_EPOCH1: C_Hatchback_01_EPOCH{};
|
||||
class C_Hatchback_01_EPOCH2: C_Hatchback_01_EPOCH{};
|
||||
@ -4373,7 +4432,8 @@ class CfgPricing
|
||||
class C_Hatchback_01_EPOCH4: C_Hatchback_01_EPOCH{};
|
||||
class C_Hatchback_02_EPOCH
|
||||
{
|
||||
price = 1000;
|
||||
price = 10000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class C_Hatchback_02_EPOCH1: C_Hatchback_02_EPOCH{};
|
||||
class C_Hatchback_02_EPOCH2: C_Hatchback_02_EPOCH{};
|
||||
@ -4381,7 +4441,8 @@ class CfgPricing
|
||||
class C_Hatchback_02_EPOCH4: C_Hatchback_02_EPOCH{};
|
||||
class C_SUV_01_EPOCH
|
||||
{
|
||||
price = 750;
|
||||
price = 7500;
|
||||
tax = 0.9;
|
||||
};
|
||||
class C_SUV_01_EPOCH1: C_SUV_01_EPOCH{};
|
||||
class C_SUV_01_EPOCH2: C_SUV_01_EPOCH{};
|
||||
@ -4390,22 +4451,27 @@ class CfgPricing
|
||||
class C_Rubberboat_EPOCH
|
||||
{
|
||||
price = 500;
|
||||
tax = 0.9;
|
||||
};
|
||||
class C_Rubberboat_02_EPOCH
|
||||
{
|
||||
price = 500;
|
||||
tax = 0.9;
|
||||
};
|
||||
class C_Rubberboat_03_EPOCH
|
||||
{
|
||||
price = 500;
|
||||
tax = 0.9;
|
||||
};
|
||||
class C_Rubberboat_04_EPOCH
|
||||
{
|
||||
price = 500;
|
||||
tax = 0.9;
|
||||
};
|
||||
class C_Van_01_box_EPOCH
|
||||
{
|
||||
price = 1000;
|
||||
price = 10000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class C_Van_01_box_EPOCH1: C_Van_01_box_EPOCH{};
|
||||
class C_Van_01_box_EPOCH2: C_Van_01_box_EPOCH{};
|
||||
@ -4413,7 +4479,8 @@ class CfgPricing
|
||||
class C_Van_01_box_EPOCH4: C_Van_01_box_EPOCH{};
|
||||
class C_Van_01_transport_EPOCH
|
||||
{
|
||||
price = 1000;
|
||||
price = 10000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class C_Van_01_transport_EPOCH1: C_Van_01_transport_EPOCH{};
|
||||
class C_Van_01_transport_EPOCH2: C_Van_01_transport_EPOCH{};
|
||||
@ -4421,27 +4488,33 @@ class CfgPricing
|
||||
class C_Van_01_transport_EPOCH4: C_Van_01_transport_EPOCH{};
|
||||
class C_Boat_Civil_01_EPOCH
|
||||
{
|
||||
price = 750;
|
||||
price = 7500;
|
||||
tax = 0.9;
|
||||
};
|
||||
class C_Boat_Civil_01_police_EPOCH
|
||||
{
|
||||
price = 750;
|
||||
price = 7500;
|
||||
tax = 0.9;
|
||||
};
|
||||
class C_Boat_Civil_01_rescue_EPOCH
|
||||
{
|
||||
price = 750;
|
||||
price = 7500;
|
||||
tax = 0.9;
|
||||
};
|
||||
class B_Heli_Light_01_EPOCH
|
||||
{
|
||||
price = 2500;
|
||||
price = 25000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class B_SDV_01_EPOCH
|
||||
{
|
||||
price = 1000;
|
||||
price = 10000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class B_MRAP_01_EPOCH
|
||||
{
|
||||
price = 2500;
|
||||
price = 45000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class B_MRAP_01_EPOCH1: B_MRAP_01_EPOCH{};
|
||||
class B_MRAP_01_EPOCH2: B_MRAP_01_EPOCH{};
|
||||
@ -4449,7 +4522,8 @@ class CfgPricing
|
||||
class B_MRAP_01_EPOCH4: B_MRAP_01_EPOCH{};
|
||||
class O_MRAP_02_EPOCH
|
||||
{
|
||||
price = 2500;
|
||||
price = 45000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class O_MRAP_02_EPOCH1: O_MRAP_02_EPOCH{};
|
||||
class O_MRAP_02_EPOCH2: O_MRAP_02_EPOCH{};
|
||||
@ -4457,7 +4531,8 @@ class CfgPricing
|
||||
class O_MRAP_02_EPOCH4: O_MRAP_02_EPOCH{};
|
||||
class I_MRAP_03_EPOCH
|
||||
{
|
||||
price = 2500;
|
||||
price = 45000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class I_MRAP_03_EPOCH1: I_MRAP_03_EPOCH{};
|
||||
class I_MRAP_03_EPOCH2: I_MRAP_03_EPOCH{};
|
||||
@ -4465,7 +4540,8 @@ class CfgPricing
|
||||
class I_MRAP_03_EPOCH4: I_MRAP_03_EPOCH{};
|
||||
class B_G_Offroad_01_armed_EPOCH
|
||||
{
|
||||
price = 2500;
|
||||
price = 25000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class B_G_Offroad_01_armed_EPOCH1: B_G_Offroad_01_armed_EPOCH{};
|
||||
class B_G_Offroad_01_armed_EPOCH2: B_G_Offroad_01_armed_EPOCH{};
|
||||
@ -4473,7 +4549,8 @@ class CfgPricing
|
||||
class B_G_Offroad_01_armed_EPOCH4: B_G_Offroad_01_armed_EPOCH{};
|
||||
class B_Truck_01_mover_EPOCH
|
||||
{
|
||||
price = 1000;
|
||||
price = 10000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class B_Truck_01_mover_EPOCH1: B_Truck_01_mover_EPOCH {};
|
||||
class B_Truck_01_mover_EPOCH2: B_Truck_01_mover_EPOCH {};
|
||||
@ -4481,7 +4558,8 @@ class CfgPricing
|
||||
class B_Truck_01_mover_EPOCH4: B_Truck_01_mover_EPOCH {};
|
||||
class B_Truck_01_transport_EPOCH
|
||||
{
|
||||
price = 1000;
|
||||
price = 10000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class B_Truck_01_transport_EPOCH1: B_Truck_01_transport_EPOCH {};
|
||||
class B_Truck_01_transport_EPOCH2: B_Truck_01_transport_EPOCH {};
|
||||
@ -4489,7 +4567,8 @@ class CfgPricing
|
||||
class B_Truck_01_transport_EPOCH4: B_Truck_01_transport_EPOCH {};
|
||||
class B_Truck_01_covered_EPOCH
|
||||
{
|
||||
price = 1000;
|
||||
price = 10000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class B_Truck_01_covered_EPOCH1: B_Truck_01_covered_EPOCH {};
|
||||
class B_Truck_01_covered_EPOCH2: B_Truck_01_covered_EPOCH {};
|
||||
@ -4497,7 +4576,8 @@ class CfgPricing
|
||||
class B_Truck_01_covered_EPOCH4: B_Truck_01_covered_EPOCH {};
|
||||
class B_Truck_01_box_EPOCH
|
||||
{
|
||||
price = 1000;
|
||||
price = 10000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class B_Truck_01_box_EPOCH1: B_Truck_01_box_EPOCH {};
|
||||
class B_Truck_01_box_EPOCH2: B_Truck_01_box_EPOCH {};
|
||||
@ -4505,7 +4585,8 @@ class CfgPricing
|
||||
class B_Truck_01_box_EPOCH4: B_Truck_01_box_EPOCH {};
|
||||
class O_Truck_02_transport_EPOCH
|
||||
{
|
||||
price = 1000;
|
||||
price = 10000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class O_Truck_02_transport_EPOCH1: O_Truck_02_transport_EPOCH {};
|
||||
class O_Truck_02_transport_EPOCH2: O_Truck_02_transport_EPOCH {};
|
||||
@ -4513,7 +4594,8 @@ class CfgPricing
|
||||
class O_Truck_02_transport_EPOCH4: O_Truck_02_transport_EPOCH {};
|
||||
class O_Truck_02_covered_EPOCH
|
||||
{
|
||||
price = 1000;
|
||||
price = 10000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class O_Truck_02_covered_EPOCH1: O_Truck_02_covered_EPOCH {};
|
||||
class O_Truck_02_covered_EPOCH2: O_Truck_02_covered_EPOCH {};
|
||||
@ -4521,7 +4603,8 @@ class CfgPricing
|
||||
class O_Truck_02_covered_EPOCH4: O_Truck_02_covered_EPOCH {};
|
||||
class O_Truck_02_box_EPOCH
|
||||
{
|
||||
price = 1000;
|
||||
price = 10000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class O_Truck_02_box_EPOCH1: O_Truck_02_box_EPOCH {};
|
||||
class O_Truck_02_box_EPOCH2: O_Truck_02_box_EPOCH {};
|
||||
@ -4529,7 +4612,8 @@ class CfgPricing
|
||||
class O_Truck_02_box_EPOCH4: O_Truck_02_box_EPOCH {};
|
||||
class O_Truck_03_transport_EPOCH
|
||||
{
|
||||
price = 1000;
|
||||
price = 10000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class O_Truck_03_transport_EPOCH1: O_Truck_03_transport_EPOCH {};
|
||||
class O_Truck_03_transport_EPOCH2: O_Truck_03_transport_EPOCH {};
|
||||
@ -4537,49 +4621,64 @@ class CfgPricing
|
||||
class O_Truck_03_transport_EPOCH4: O_Truck_03_transport_EPOCH {};
|
||||
class O_Truck_03_covered_EPOCH
|
||||
{
|
||||
price = 1000;
|
||||
price = 10000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class O_Truck_03_covered_EPOCH1: O_Truck_03_covered_EPOCH {};
|
||||
class O_Truck_03_covered_EPOCH2: O_Truck_03_covered_EPOCH {};
|
||||
class O_Truck_03_covered_EPOCH3: O_Truck_03_covered_EPOCH {};
|
||||
class O_Truck_03_covered_EPOCH4: O_Truck_03_covered_EPOCH {};
|
||||
class uh1h_Epoch
|
||||
{
|
||||
price = 22500;
|
||||
tax = 0.9;
|
||||
};
|
||||
class O_Heli_Light_02_unarmed_EPOCH
|
||||
{
|
||||
price = 2500;
|
||||
price = 25000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class I_Heli_Transport_02_EPOCH
|
||||
{
|
||||
price = 2500;
|
||||
price = 25000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class I_Heli_light_03_unarmed_EPOCH
|
||||
{
|
||||
price = 2500;
|
||||
price = 25000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class C_Heli_Light_01_civil_EPOCH
|
||||
{
|
||||
price = 2500;
|
||||
price = 25000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class C_Heli_Light_01_civil_2seat_EPOCH: C_Heli_Light_01_civil_EPOCH {};
|
||||
class C_Heli_Light_01_civil_4seat_EPOCH: C_Heli_Light_01_civil_EPOCH {};
|
||||
class O_Heli_Transport_04_EPOCH
|
||||
{
|
||||
price = 2500;
|
||||
price = 25000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class O_Heli_Transport_04_bench_EPOCH
|
||||
{
|
||||
price = 2500;
|
||||
price = 25000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class O_Heli_Transport_04_box_EPOCH
|
||||
{
|
||||
price = 2500;
|
||||
price = 25000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class O_Heli_Transport_04_covered_EPOCH
|
||||
{
|
||||
price = 2500;
|
||||
price = 25000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class B_Heli_Transport_03_unarmed_EPOCH
|
||||
{
|
||||
price = 2500;
|
||||
price = 25000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class I_UAV_01_F
|
||||
{
|
||||
@ -4588,275 +4687,343 @@ class CfgPricing
|
||||
class jetski_epoch
|
||||
{
|
||||
price = 500;
|
||||
tax = 0.9;
|
||||
};
|
||||
class ebike_epoch
|
||||
{
|
||||
price = 1500;
|
||||
price = 3500;
|
||||
tax = 0.9;
|
||||
};
|
||||
class mosquito_epoch
|
||||
{
|
||||
price = 1500;
|
||||
tax = 0.9;
|
||||
};
|
||||
class K01
|
||||
{
|
||||
price = 300;
|
||||
tax = 0.9;
|
||||
};
|
||||
class K02
|
||||
{
|
||||
price = 300;
|
||||
tax = 0.9;
|
||||
};
|
||||
class K03
|
||||
{
|
||||
price = 300;
|
||||
tax = 0.9;
|
||||
};
|
||||
class K04
|
||||
{
|
||||
price = 300;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_Fishing_Boat_Chernarus
|
||||
{
|
||||
price = 800;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_LR_Transport_CTK
|
||||
{
|
||||
price = 800;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_B_Zodiac_USMC
|
||||
{
|
||||
price = 800;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_Skoda_Red_CIV
|
||||
{
|
||||
price = 800;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_Skoda_White_CIV
|
||||
{
|
||||
price = 800;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_Skoda_Blue_CIV
|
||||
{
|
||||
price = 800;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_Skoda_Green_CIV
|
||||
{
|
||||
price = 800;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_SUV_CIV
|
||||
{
|
||||
price = 1500;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_B_HMMWV_Transport_USA
|
||||
{
|
||||
price = 2500;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_B_HMMWV_Unarmed_USA
|
||||
{
|
||||
price = 2500;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_SUV_TK
|
||||
{
|
||||
price = 2000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_B_LR_Transport_CZ_D
|
||||
{
|
||||
price = 1100;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_Datsun_Covered
|
||||
{
|
||||
price = 800;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_Datsun_Plain
|
||||
{
|
||||
price = 800;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_Datsun_Tubeframe
|
||||
{
|
||||
price = 800;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_Datsun_4seat
|
||||
{
|
||||
price = 800;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_Datsun
|
||||
{
|
||||
price = 800;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_Golf4_green_Civ
|
||||
{
|
||||
price = 800;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_Golf4_red_Civ
|
||||
{
|
||||
price = 800;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_Golf4_blue_Civ
|
||||
{
|
||||
price = 800;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_Golf4_black_Civ
|
||||
{
|
||||
price = 800;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_Golf4_kitty_Civ
|
||||
{
|
||||
price = 800;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_Golf4_reptile_Civ
|
||||
{
|
||||
price = 800;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_Golf4_camodigital_Civ
|
||||
{
|
||||
price = 800;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_Golf4_camodark_Civ
|
||||
{
|
||||
price = 800;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_Golf4_camo_Civ
|
||||
{
|
||||
price = 800;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_B_M1030
|
||||
{
|
||||
price = 500;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_Ural_Civ_03
|
||||
{
|
||||
price = 1200;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_Ural_Open_Civ_03
|
||||
{
|
||||
price = 1200;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_Ural_Civ_02
|
||||
{
|
||||
price = 1200;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_B_TowingTractor_USMC
|
||||
{
|
||||
price = 800;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_C47_CIV
|
||||
{
|
||||
price = 1600;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_B_LR_Transport_CZ_W
|
||||
{
|
||||
price = 800;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_Golf4_white_Civ
|
||||
{
|
||||
price = 800;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_Golf4_whiteblood_Civ
|
||||
{
|
||||
price = 800;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_Golf4_yellow_Civ
|
||||
{
|
||||
price = 800;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_Octavia_CIV
|
||||
{
|
||||
price = 1600;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_Ural_Civ_01
|
||||
{
|
||||
price = 1000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_Ural_Open_Civ_01
|
||||
{
|
||||
price = 1000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_B_Ural_CDF
|
||||
{
|
||||
price = 1000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_B_Ural_Open_CDF
|
||||
{
|
||||
price = 1000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_Ural_Open_Civ_02
|
||||
{
|
||||
price = 1000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_B_HMMWV_Ambulance_USA
|
||||
{
|
||||
price = 1500;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_UAZ_Unarmed_TK_CIV
|
||||
{
|
||||
price = 1000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_UAZ_Open_TK_CIV
|
||||
{
|
||||
price = 1000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_B_UAZ_Unarmed_CDF
|
||||
{
|
||||
price = 1000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_B_Ural_Empty_CDF
|
||||
{
|
||||
price = 1000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class CUP_C_DC3_CIV
|
||||
{
|
||||
price = 2400;
|
||||
tax = 0.9;
|
||||
};
|
||||
class C_Boat_Transport_02_F
|
||||
{
|
||||
price = 1200;
|
||||
tax = 0.9;
|
||||
};
|
||||
class C_Scooter_Transport_01_F
|
||||
{
|
||||
price = 1200;
|
||||
tax = 0.9;
|
||||
};
|
||||
class C_Offroad_02_unarmed_F
|
||||
{
|
||||
price = 3500;
|
||||
tax = 0.9;
|
||||
};
|
||||
class I_C_Offroad_02_unarmed_F
|
||||
{
|
||||
price = 3500;
|
||||
tax = 0.9;
|
||||
};
|
||||
class B_T_LSV_01_unarmed_F
|
||||
{
|
||||
price = 4400;
|
||||
tax = 0.9;
|
||||
};
|
||||
class O_LSV_02_unarmed_F
|
||||
{
|
||||
price = 4300;
|
||||
tax = 0.9;
|
||||
};
|
||||
class O_T_LSV_02_unarmed_F
|
||||
{
|
||||
price = 4600;
|
||||
tax = 0.9;
|
||||
};
|
||||
class C_Plane_Civil_01_F
|
||||
{
|
||||
price = 5000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class C_Plane_Civil_01_racing_F
|
||||
{
|
||||
price = 5000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class B_CTRG_LSV_01_light_F
|
||||
{
|
||||
price = 4400;
|
||||
tax = 0.9;
|
||||
};
|
||||
class B_LSV_01_unarmed_F
|
||||
{
|
||||
price = 4400;
|
||||
tax = 0.9;
|
||||
};
|
||||
class B_T_VTOL_01_vehicle_blue_EPOCH
|
||||
{
|
||||
price = 10000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class B_T_VTOL_01_infantry_olive_EPOCH: B_T_VTOL_01_vehicle_blue_EPOCH {};
|
||||
class O_T_VTOL_02_infantry_EPOCH
|
||||
{
|
||||
price = 10000;
|
||||
tax = 0.9;
|
||||
};
|
||||
class O_T_VTOL_02_vehicle_grey_EPOCH: O_T_VTOL_02_infantry_EPOCH {};
|
||||
class B_UavTerminal
|
||||
@ -5784,6 +5951,14 @@ class CfgPricing
|
||||
{
|
||||
price = 5;
|
||||
};
|
||||
class thor_mask_epoch
|
||||
{
|
||||
price = 30;
|
||||
};
|
||||
class iron_mask_epoch
|
||||
{
|
||||
price = 30;
|
||||
};
|
||||
class hockey_mask_epoch
|
||||
{
|
||||
price = 30;
|
||||
|
@ -26,6 +26,11 @@ class CfgRemoteExec
|
||||
{
|
||||
mode = 1;
|
||||
jip = 0;
|
||||
class EPOCH_server_SetFinalPlayerPos
|
||||
{
|
||||
allowedTargets=2;
|
||||
jip = 0;
|
||||
};
|
||||
class bis_fnc_reviveinitaddplayer
|
||||
{
|
||||
allowedTargets = 2;
|
||||
|
@ -28,6 +28,10 @@ class CfgSnapChecks
|
||||
class CinderWallDoorwHatch_EPOCH : WoodLargeWall_EPOCH {};
|
||||
class CinderWall_EPOCH : WoodLargeWall_EPOCH {};
|
||||
class CinderWallHalf_EPOCH : WoodLargeWall_EPOCH {};
|
||||
class PlyThirdWall_EPOCH : WoodLargeWall_EPOCH
|
||||
{
|
||||
nails[] = {{{2.46932,0,0.120775},{2.46932,0,-0.190775}},{{-2.46932,0,0.120775},{-2.46932,0,-0.190775}},{{0,0,1},{2.76932,0,1}},{{0,0,1},{-2.76932,0,1}}};
|
||||
};
|
||||
class WoodFloor_Epoch
|
||||
{
|
||||
nails[] = {{{0,0,0.15},{2.8555,0,0.15}},{{0,0,0.15},{0,2.8555,0.15}},{{0,0,0.15},{-2.8555,0,0.15}},{{0,0,0.15},{0,-2.8555,0.15}},{{2.5555,0,0.15},{2.5555,0,-0.15}},{{-2.5555,0,0.15},{-2.5555,0,-0.15}},{{0,-2.5555,0.15},{0,-2.5555,-0.15}},{{0,2.5555,0.15},{0,2.5555,-0.15}}};
|
||||
@ -51,6 +55,15 @@ class CfgSnapChecks
|
||||
class MetalTower_EPOCH : WoodStairs_EPOCH {};
|
||||
class CinderTower_EPOCH : WoodStairs_EPOCH {};
|
||||
class WoodRamp_EPOCH : WoodStairs_EPOCH {};
|
||||
class BaseCam_EPOCH
|
||||
{
|
||||
nails[] = {
|
||||
{{0,0.15,-0.06},{0,0.3,0.04}},
|
||||
{{0,0.15,-0.06},{0,0.3,-0.16}},
|
||||
{{0,0.15,-0.06},{-0.1,0.3,-0.06}},
|
||||
{{0,0.15,-0.06},{0.1,0.3,-0.06}}
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/*[[[end]]]*/
|
||||
|
@ -15,6 +15,7 @@
|
||||
//[[[cog import generate_private_arrays ]]]
|
||||
private ["_Simulated","_DamageAllowed","_ExceptedBaseObjects","_IndestructibleBaseObjects","_UseIndestructible","_VAL","_ammoClass","_ammoObj","_anims","_animsData","_arr","_arrCount","_baseObj","_buildingJammerRange","_cfgBaseBuilding","_cfgEpochClient","_class","_color","_damage","_location","_marker","_maxTTL","_owner","_response","_serverSettingsConfig","_storageSlot","_textureSlot","_ttl","_vehHiveKey","_worldspace"];
|
||||
//[[[end]]]
|
||||
EPOCH_BaseCams = [];
|
||||
_maxTTL = parseNumber EPOCH_expiresBuilding;
|
||||
_serverSettingsConfig = configFile >> "CfgEpochServer";
|
||||
_baseDynamicSimulationSystem = [_serverSettingsConfig, "baseDynamicSimulationSystem", true] call EPOCH_fnc_returnConfigEntry;
|
||||
@ -142,8 +143,18 @@ for "_i" from 0 to _this do {
|
||||
};
|
||||
|
||||
// Handle Jammers and create marker if EPOCH_SHOW_JAMMERS set true.
|
||||
if (_class isKindOf "PlotPole_EPOCH") then {
|
||||
if (EPOCH_SHOW_JAMMERS) then {
|
||||
if (_class in ["PlotPole_EPOCH","BaseCam_EPOCH"]) then {
|
||||
if (_owner != "-1") then {
|
||||
_baseObj setVariable ["BUILD_OWNER", _owner, true];
|
||||
};
|
||||
|
||||
// add BaseCam to public array
|
||||
if (_class isequalto "BaseCam_EPOCH") then {
|
||||
EPOCH_BaseCams pushBackUnique _baseObj;
|
||||
// Set PubVar later after all Cams are loaded in
|
||||
};
|
||||
|
||||
if (_class isequalto "PlotPole_EPOCH" && EPOCH_SHOW_JAMMERS) then {
|
||||
_marker = createMarker [str(_location), _location];
|
||||
_marker setMarkerShape "ICON";
|
||||
// TODO allow players to change this per base
|
||||
@ -159,10 +170,6 @@ for "_i" from 0 to _this do {
|
||||
};
|
||||
_baseObj setVariable ["BUILD_SLOT", _i, true];
|
||||
|
||||
if (_owner != "-1") then {
|
||||
_baseObj setVariable ["BUILD_OWNER", _owner, true];
|
||||
};
|
||||
|
||||
if (_textureSlot != 0) then {
|
||||
// get texture path from index
|
||||
_color = getArray (_cfgBaseBuilding >> _class >> "availableTextures");
|
||||
@ -188,5 +195,6 @@ for "_i" from 0 to _this do {
|
||||
EPOCH_BuildingSlots set [_i,0];
|
||||
};
|
||||
};
|
||||
publicvariable "EPOCH_BaseCams";
|
||||
missionNamespace setVariable ["EPOCH_BuildingSlotCount", {_x == 0} count EPOCH_BuildingSlots, true];
|
||||
true
|
||||
|
@ -46,6 +46,10 @@ if (isText _staticClassConfig) then {
|
||||
if (_staticClass isEqualTo "Garden_EPOCH") then {
|
||||
EPOCH_activeGardens pushBackUnique _storageObj;
|
||||
};
|
||||
|
||||
if (_staticClass in ["SolarCharger_EPOCH","SolarChargerXL_EPOCH"]) then {
|
||||
EPOCH_activeSolars pushBackUnique _storageObj;
|
||||
};
|
||||
|
||||
if (getNumber(_cfgBaseBuilding >> _staticClass >> "isSecureStorage") == 1) then{
|
||||
_storageObj setVariable["EPOCH_Locked", false, true];
|
||||
@ -81,8 +85,21 @@ if (isText _staticClassConfig) then {
|
||||
|
||||
if (_objSlot != -1) then {
|
||||
_newVehicle = [_vehicle, false] call EPOCH_server_simulSwap;
|
||||
|
||||
_newVehicle setVariable["BUILD_OWNER", _playerUID, true];
|
||||
|
||||
// add BaseCam to public array
|
||||
if (_newVehicle iskindof "BaseCam_EPOCH") then {
|
||||
_playerGroup = _player getVariable["GROUP", ""];
|
||||
_Owner = _playerUID;
|
||||
if (_playerGroup != "") then {
|
||||
_Owner = _playerGroup;
|
||||
};
|
||||
_newVehicle setVariable["BUILD_OWNER", _Owner, true];
|
||||
EPOCH_BaseCams pushBackUnique _newVehicle;
|
||||
publicvariable "EPOCH_BaseCams";
|
||||
}
|
||||
else {
|
||||
_newVehicle setVariable["BUILD_OWNER", _playerUID, true];
|
||||
};
|
||||
_newVehicle call EPOCH_saveBuilding;
|
||||
};
|
||||
|
||||
|
@ -58,7 +58,7 @@ if ((_response select 0) == 1 && (_response select 1) isEqualType []) then {
|
||||
if (_selectedPlayerName == "Dead Player") then {
|
||||
_memberrange = ["PlayerData", _selectedPlayerUID] call EPOCH_fnc_server_hiveGETRANGE;
|
||||
if (count (_memberrange select 1) > 0) then {
|
||||
if (typename (_memberrange select 1 select 0) == "STRING") then {
|
||||
if ((_memberrange select 1 select 0) isEqualType "STRING") then {
|
||||
_selectedPlayerName = _memberrange select 1 select 0;
|
||||
};
|
||||
};
|
||||
|
@ -31,7 +31,7 @@ _contentArray = [];
|
||||
} forEach (allPlayers select {getPlayerUID _x == _groupID});
|
||||
|
||||
if !(_contentArray isEqualTo []) then {
|
||||
|
||||
|
||||
_contentArray params ["_groupName","_leaderName","_groupSize","_modArray","_memberArray"];
|
||||
_allPlayers = allPlayers select {alive _x};
|
||||
|
||||
@ -54,13 +54,13 @@ if !(_contentArray isEqualTo []) then {
|
||||
[_x] joinSilent _group;
|
||||
};
|
||||
} forEach (_allPlayers select {getPlayerUID _x == _selectedPlayerUID});
|
||||
|
||||
|
||||
|
||||
// find player name from DB
|
||||
if (_selectedPlayerName == "Dead Player") then {
|
||||
_memberrange = ["PlayerData", _selectedPlayerUID] call EPOCH_fnc_server_hiveGETRANGE;
|
||||
if (count (_memberrange select 1) > 0) then {
|
||||
if (typename (_memberrange select 1 select 0) == "STRING") then {
|
||||
if ((_memberrange select 1 select 0) isEqualType "STRING") then {
|
||||
_selectedPlayerName = _memberrange select 1 select 0;
|
||||
};
|
||||
};
|
||||
|
@ -18,7 +18,7 @@ private ["_allowedVehicleListName","_allowedVehiclesList","_backpacks","_cfgPric
|
||||
params ["_player",["_token","",[""]],["_objArr",[]],["_pos",[]],["_wepHolder",objNull],["_clearCargo",true],["_objSpc","CAN_COLLIDE"],["_driverType",""],["_gunnerType",""],["_commanderType",""],["_crewType",""],["_doDamage",false]];
|
||||
|
||||
if !([_player,_token]call EPOCH_server_getPToken) exitWith {};
|
||||
if (typeName _objArr != "ARRAY")then{_objArr = [_objArr];};
|
||||
if !(_objArr isEqualType [])then{_objArr = [_objArr];};
|
||||
if (count _objArr < 1) exitWith {};
|
||||
|
||||
diag_log format["Epoch: Attempt Create Object: %1 for %2",_objArr, name _player];
|
||||
|
@ -0,0 +1,43 @@
|
||||
/*
|
||||
Author: He-Man - EpochMod.com
|
||||
|
||||
Contributors:
|
||||
|
||||
Description:
|
||||
Set final Player position on login
|
||||
|
||||
Licence:
|
||||
Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike
|
||||
|
||||
Github:
|
||||
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_server/compile/epoch_player/EPOCH_server_SetFinalPlayerPos.sqf
|
||||
*/
|
||||
|
||||
params ["_player","_newPlyr"];
|
||||
private ["_finalpos","_fallbackpos"];
|
||||
if (isnull _player || isnull _newPlyr) exitwith {
|
||||
diag_log "DEBUG: SetFinalPlayerPos failed - Player or PlayerObj is Null";
|
||||
};
|
||||
if !(typeof _player isequalto "VirtualMan_EPOCH") exitwith {
|
||||
diag_log "DEBUG: SetFinalPlayerPos failed - PlayerObj != VirtualMan_EPOCH";
|
||||
};
|
||||
_finalpos = _newPlyr getvariable ["FinalDest",[]];
|
||||
if (_finalpos isequalto []) exitwith {
|
||||
diag_log "DEBUG: SetFinalPlayerPos failed - No FinalPos Variable set";
|
||||
};
|
||||
if !(_finalpos isequaltype []) exitwith {
|
||||
diag_log "DEBUG: SetFinalPlayerPos failed - FinalPos is not an Array";
|
||||
};
|
||||
if (count _finalpos < 2) exitwith {
|
||||
diag_log "DEBUG: SetFinalPlayerPos failed - count FinalPos < 2";
|
||||
};
|
||||
_fallbackpos = getmarkerpos "respawn_west";
|
||||
_fallbackpos set [2,0];
|
||||
_finalpos params [["_location",_fallbackpos],["_dir",0]];
|
||||
_newPlyr setDir _dir;
|
||||
_newPlyr setPosATL _location;
|
||||
_newPlyr setVariable["SETUP", true, true];
|
||||
_player setPosATL _location;
|
||||
_newPlyr allowdamage true;
|
||||
_newPlyr hideobjectglobal false;
|
||||
|
@ -13,7 +13,7 @@
|
||||
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_server/compile/epoch_player/EPOCH_server_SetUnitLoadout.sqf
|
||||
*/
|
||||
//[[[cog import generate_private_arrays ]]]
|
||||
private ["_type"];
|
||||
private ["_type","_loadabs"];
|
||||
//[[[end]]]
|
||||
|
||||
params ["_newPlyr","_loadout"];
|
||||
@ -83,6 +83,11 @@ if !(_bpack isequalto "") then {
|
||||
[Vestcontainer _newPlyr, _vestitems],
|
||||
[BackpackContainer _newPlyr, _bpackitems]
|
||||
];
|
||||
|
||||
|
||||
true
|
||||
_loadabs = loadabs _newPlyr;
|
||||
if !(uniform _newPlyr isequalto _uniform && vest _newPlyr isequalto _vest && backpack _newPlyr isequalto _bpack) then {
|
||||
diag_log format ["EPOCH Debug: Setunitloadout failed - Unifmorm should: %1 is: %2 - Vest should: %3 is: %4 - Backpack should: %5 is: %6",_uniform,uniform _newPlyr,_vest,vest _newPlyr,_bpack,backpack _newPlyr];
|
||||
_loadabs = -1;
|
||||
};
|
||||
|
||||
_loadabs
|
||||
|
@ -61,7 +61,7 @@ if (_playerObj isEqualType objNull) then {
|
||||
[_fsmHandle,['_checkPlayer_PVC', _dead]] remoteExecCall ['setFSMVariable', _playerObj];
|
||||
|
||||
if (!_dead) then { //Load old Char
|
||||
[_playerObj, _isMale, _fsmHandle] call EPOCH_server_loadPlayer;
|
||||
[_playerObj, _isMale, _fsmHandle, _arr] call EPOCH_server_loadPlayer;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -17,7 +17,7 @@ private ["_Primary","_CheckLocation","_allGroupMembers","_alreadyDead","_assigne
|
||||
//[[[end]]]
|
||||
_reject = true;
|
||||
|
||||
params [["_player",objNull,[objNull]],["_isMale",true],["_fsmHandle",0]];
|
||||
params [["_player",objNull,[objNull]],["_isMale",true],["_fsmHandle",0],["_playerData",[]]];
|
||||
|
||||
if (!isNull _player) then {
|
||||
|
||||
@ -30,16 +30,17 @@ if (!isNull _player) then {
|
||||
|
||||
if (_playerUID != "") then {
|
||||
|
||||
// Make Hive call
|
||||
_playerData = [];
|
||||
(["Player", _playerUID] call EPOCH_fnc_server_hiveGETRANGE) params [
|
||||
["_status", 0 ],
|
||||
["_playerDataTmp", [] ]
|
||||
];
|
||||
if (_status == 1 && _playerDataTmp isEqualType []) then {
|
||||
_playerData = _playerDataTmp;
|
||||
if (_playerdata isequalto []) then {
|
||||
// Make Hive call
|
||||
(["Player", _playerUID] call EPOCH_fnc_server_hiveGETRANGE) params [
|
||||
["_status", 0 ],
|
||||
["_playerDataTmp", [] ]
|
||||
];
|
||||
if (_status == 1 && _playerDataTmp isEqualType []) then {
|
||||
_playerData = _playerDataTmp;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
// Apperance defaults
|
||||
_uniform = [_serverSettingsConfig, "defaultUniformFemale", "U_Test_uniform"] call EPOCH_fnc_returnConfigEntry;
|
||||
_class = "Epoch_Female_F";
|
||||
@ -177,9 +178,8 @@ if (!isNull _player) then {
|
||||
_group = createGroup [west, true];
|
||||
};
|
||||
|
||||
_player setPosATL _location;
|
||||
|
||||
_newPlyr = _group createUnit[_class, _location, [], 0, "CAN_COLLIDE"];
|
||||
_newPlyr = _group createUnit[_class, getMarkerPos "respawn_west", [], 0, "CAN_COLLIDE"];
|
||||
_newPlyr hideobjectglobal true;
|
||||
if !(isNull _newPlyr) then {
|
||||
|
||||
// disable AI on temp unit
|
||||
@ -199,126 +199,17 @@ if (!isNull _player) then {
|
||||
// disable further damage server side
|
||||
_newPlyr allowDamage false;
|
||||
|
||||
_newPlyr setDir _dir;
|
||||
_newPlyr setPosATL _location;
|
||||
|
||||
// set player loadout
|
||||
if (_schemaVersion >= 1.0) then {
|
||||
_playerData params ["","","_appearance","","","_loadout"];
|
||||
// get current weapon to send to param for selectWeapon
|
||||
_currentWeapon = _appearance param [4,""];
|
||||
_playerData params ["","","_appearance","","","_loadout"];
|
||||
// get current weapon to send to param for selectWeapon
|
||||
_currentWeapon = _appearance param [4,""];
|
||||
// _newPlyr setUnitLoadout [_loadout, false];
|
||||
|
||||
// Workaround for Client / Server synchronizing issue in SetUnitLoadout
|
||||
[_newPlyr,_loadout] call Epoch_server_SetUnitLoadout;
|
||||
|
||||
diag_log format["DEBUG: loaded player %1 with new schema Version %2", _newPlyr, _schemaVersion];
|
||||
|
||||
} else {
|
||||
// Legacy code start
|
||||
// Apperance + Weapons
|
||||
_playerData params ["","","_appearance","","","_weaponsAndItems","_linkedItems","_normalMagazines","_itemsInContainers","_weaponsInContainers"];
|
||||
// load Apperance
|
||||
_appearance params ["_goggles","_headgear","_vest","_backpack","_uniform"];
|
||||
|
||||
// old data format for 0.5 and prior.
|
||||
// Load Apperance START
|
||||
if (_uniform != "") then {
|
||||
_newPlyr addUniform _uniform;
|
||||
};
|
||||
if (_backpack != "") then {
|
||||
_newPlyr addBackpack _backpack;
|
||||
};
|
||||
if (_goggles != "") then {
|
||||
_newPlyr addGoggles _goggles;
|
||||
};
|
||||
if (_headgear != "") then {
|
||||
_newPlyr addHeadgear _headgear;
|
||||
};
|
||||
if (_vest != "") then {
|
||||
_newPlyr addVest _vest;
|
||||
};
|
||||
// Load Apperance END
|
||||
|
||||
// Load inventory + defaults START
|
||||
if (count _weaponsAndItems >= 3) then {
|
||||
_weaponsAndItems params ["_currentWeaponTmp","_weaponsAndItemsArray","_equipped"];
|
||||
_currentWeapon = _currentWeaponTmp;
|
||||
{
|
||||
_weapon = _x deleteAt 0;
|
||||
_type = getNumber(configfile >> "cfgweapons" >> _weapon >> "type");
|
||||
_attachments = [];
|
||||
_wMags = false;
|
||||
_wMagsArray = [];
|
||||
// suppressor, laser, optics, magazines(array), bipods
|
||||
{
|
||||
// magazines
|
||||
if (_x isEqualType []) then{
|
||||
_wMags = true;
|
||||
_wMagsArray pushback _x;
|
||||
} else {
|
||||
// attachments
|
||||
if (_x != "") then{
|
||||
_attachments pushBack _x;
|
||||
};
|
||||
};
|
||||
} forEach _x;
|
||||
if (_wMags) then {
|
||||
{
|
||||
_newPlyr addMagazine _x;
|
||||
} foreach _wMagsArray;
|
||||
};
|
||||
// add weapon if equiped
|
||||
if (_weapon in _equipped) then {
|
||||
_equipped = _equipped - [_weapon];
|
||||
if (_weapon != "") then {
|
||||
_newPlyr addWeapon _weapon;
|
||||
};
|
||||
switch (_type) do {
|
||||
case 1: { // primary
|
||||
removeAllPrimaryWeaponItems _newPlyr;
|
||||
{ _newPlyr addPrimaryWeaponItem _x } forEach _attachments;
|
||||
};
|
||||
case 2: { // handgun
|
||||
removeAllHandgunItems _newPlyr;
|
||||
{ _newPlyr addHandgunItem _x } forEach _attachments;
|
||||
};
|
||||
case 4: { // secondary
|
||||
// removeAllSecondaryWeaponItems player; does not exist ?
|
||||
{
|
||||
_newPlyr removeSecondaryWeaponItem _x;
|
||||
} forEach (secondaryWeaponItems _newPlyr);
|
||||
{ _newPlyr addSecondaryWeaponItem _x } forEach _attachments;
|
||||
};
|
||||
};
|
||||
}else{
|
||||
{
|
||||
_newPlyr addItem _x;
|
||||
} forEach _attachments;
|
||||
};
|
||||
} forEach _weaponsAndItemsArray;
|
||||
};
|
||||
|
||||
// Linked items
|
||||
{
|
||||
if (_x in["Binocular", "Rangefinder","Laserdesignator","Laserdesignator_02","Laserdesignator_03","Laserdesignator_01_khk_F","Laserdesignator_02_ghex_F"]) then {
|
||||
_newPlyr addWeapon _x;
|
||||
} else {
|
||||
_newPlyr linkItem _x;
|
||||
};
|
||||
} forEach _linkedItems;
|
||||
|
||||
// add items to containers
|
||||
[_newPlyr, _itemsInContainers] call EPOCH_fnc_addItemToX;
|
||||
|
||||
// add weapons to containers
|
||||
[_newPlyr, _weaponsInContainers] call EPOCH_fnc_addItemToX;
|
||||
|
||||
// Add magazines
|
||||
{_newPlyr addMagazine _x} forEach _normalMagazines;
|
||||
// Load inventory + defaults END
|
||||
// Legacy code stop
|
||||
};
|
||||
// Workaround for Client / Server synchronizing issue in SetUnitLoadout
|
||||
_loadabs = [_newPlyr,_loadout] call Epoch_server_SetUnitLoadout;
|
||||
if (_loadabs isequalto -1) then {
|
||||
deleteVehicle _newPlyr;
|
||||
};
|
||||
|
||||
// Final Push
|
||||
if (isNull _player) then {
|
||||
@ -354,15 +245,11 @@ if (!isNull _player) then {
|
||||
_communityStats = (_communityStatsArray param [1,[]]) param [0,[]];
|
||||
_newPlyr setVariable["COMMUNITY_STATS", _communityStats];
|
||||
|
||||
// re enable damage server side
|
||||
_newPlyr allowDamage true;
|
||||
|
||||
// Flag new body as ready for use.
|
||||
_newPlyr setVariable["SETUP", true, true];
|
||||
_newPlyr setVariable["FinalDest", [_location,_dir], true];
|
||||
|
||||
// Send message to player so they can take over the new body.
|
||||
[_playerNetID, _playerUID, [_newPlyr, _vars, _currentWeapon, loadAbs _newPlyr, _playerGroup, _canBeRevived, _newPlyr call EPOCH_server_setPToken,_playerGroupArray, _communityStats, _hitpoints], _fsmHandle, _player] call EPOCH_server_pushPlayer;
|
||||
// diag_log str([_playerNetID, _playerUID, _player, [_newPlyr, (_player isEqualTo _newPlyr), _vars, _currentWeapon, loadAbs _newPlyr, _playerGroup, _canBeRevived, [],_playerGroupArray, _communityStats, _hitpoints], _fsmHandle]);
|
||||
[_playerNetID, _playerUID, [_newPlyr, _vars, _currentWeapon, _loadabs, _playerGroup, _canBeRevived, _newPlyr call EPOCH_server_setPToken,_playerGroupArray, _communityStats, _hitpoints], _fsmHandle, _player] call EPOCH_server_pushPlayer;
|
||||
|
||||
// revive test
|
||||
_newPlyr setVariable ['#rev_enabled', true, true];
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user