mirror of
https://github.com/EpochModTeam/Epoch.git
synced 2024-08-30 18:22:13 +00:00
commit
41a7c87a7a
@ -1,7 +1,72 @@
|
||||
WIP
|
||||
[Added] Hotwire Kit
|
||||
[Added] Key Makers Kit
|
||||
[Added] Keys in colors: (Black,Red,Green,Blue,Yellow)
|
||||
[Added] 55 Gallon Fuel Barrel (Full/Empty)
|
||||
[Added] Metal Pipes
|
||||
[Added] Documents (Trash,Vehicle Upgrades)
|
||||
**Client**
|
||||
[Added] Drinking a Soda now returns a Empty Soda Can (ItemSodaEmpty).
|
||||
[Added] Eating a can of food now returns a Empty Tin Can (ItemEmptyTin).
|
||||
[Added] Repack magazines feature. Simply select a magazine and press the "Repack" button.
|
||||
[Added] 55 Gallon (210 liters) Fuel Barrel that can be used to refill/siphon vehicles. (Full - ItemBarrelF,Empty - ItemBarrelE).
|
||||
[Added] Ability to siphon fuel from other fuel sources like gas stations and gas tanks (transportFuel > 0).
|
||||
[Added] Crafting Burlap (ItemBurlap) from 2x Hemp (ItemKiloHemp) while at a workbench.
|
||||
[Added] Crafting of Plywood sheets (ItemPlywoodPack) from 3x Wood Log (WoodLog_EPOCH).
|
||||
[Added] Crafting of Aluminum Bars (ItemAluminumBar) from 6x Empty Soda Cans (ItemSodaEmpty) and one jar of water (water_epoch). Also requires a fire nearby.
|
||||
[Added] Crafting of Tin Bars (ItemTinBar) from 6x Empty Soda Cans (ItemEmptyTin) and one jar of water (water_epoch). Also requires a fire nearby.
|
||||
[Added] Copper Bars (ItemCopperBar) that can be crafted from cables (ItemCables) nearby a fire. Cables can also be made from Copper Bars at a workbench.
|
||||
[Added] Briefcase Full (ItemBriefcaseGold100oz) crafted from ten 10oz Gold bars and a Empty Briefcase (ItemBriefcaseE).
|
||||
[Added] Crafting of Bars (ItemGoldBar and ItemSilverBar) from Gold (PartOreGold) and Silver (PartOreSilver) Ores.
|
||||
[ADDED-WIP] Pack/unpack empty backpacks into carryable magazine items.
|
||||
[ADDED-WIP] Hotwire Kit (ItemHotwire).
|
||||
[ADDED-WIP] Key Makers Kit (ItemKeyKit).
|
||||
[ADDED-WIP] Keys in colors: (Black ItemKey,ItemKeyRed,ItemKeyGreen,ItemKeyBlue,ItemKeyYellow).
|
||||
[ADDED-WIP] Metal Pipes (ItemPipe).
|
||||
[ADDED-WIP] Documents (Trash,Books,Vehicle Upgrades) (ItemDoc1-8, ItemVehDoc1-4).
|
||||
[ADDED-WIP] Light Bulb (ItemBulb).
|
||||
[Changed] Upgrading wood Stud wall and Tower to Plywood covered versions requires Plywood (ItemPlywoodPack).
|
||||
[Changed] Debug monitor now shows all custom stats dynamically based on 'customVarsDefaults' config.
|
||||
[Changed] Increased angle that the player is able to aim up.
|
||||
[Changed] Drinking Alcohol increases the new "Alcohol" stat instead of directly effecting blood pressure.
|
||||
[Changed] Crafting Hesco barrier now require 3x Burlap.
|
||||
[Changed] Crafting wood and metal spike traps now also require Sticks and a Hydraulic Jack.
|
||||
[Changed] Change all publicVariableServer calls to use remoteExec calls for better performance.
|
||||
[Fixed] Previous patch had incorrectly reduced armor values of the Cultist.
|
||||
[Fixed] Male(Female) characters lose vest items after equipping opposite sex's vest.
|
||||
[Fixed] Secure storage locking mechanism improvements should prevent any unwanted intrusions.
|
||||
[Fixed] Reworked login to prevent getting stuck at "waiting for inventory".
|
||||
[Fixed] Prevented death just after revive due still having high blood pressure.
|
||||
[Fixed] Incorrectly being able to sell/buy items from a dead trader.
|
||||
[Fixed] Snakes now require line of sight to bite player.
|
||||
[Fixed] Custom epoch swing animations for Hatchet and sledge now work correctly.
|
||||
[Fixed] Boss Sapper incorrectly cleaned up before detonation.
|
||||
|
||||
|
||||
**Server**
|
||||
[Added] Newly world spawned vehicles now have randomized damage.
|
||||
[Added] if 5th array element is true 'telePos' config array can now use world position for teleport pads location.
|
||||
[Added] Setting to control random magazine ammo counts in loot spawner. CfgEpochClient -> randomizeMagazineAmmoCount (default: true)
|
||||
[Added] Debug box now dynamically spawns with flood lights to help players see inside the box at night.
|
||||
[Added] CfgEpochClient 'WorldInteractions' config now stores all environmental loot classes and types for all supported maps.
|
||||
[Added] CUP terrain pack support added:
|
||||
- Sahrani
|
||||
- Southern Sahrani
|
||||
- United Sahrani
|
||||
- Porto
|
||||
- Utes
|
||||
- Chernarus
|
||||
- Chernarus Summer
|
||||
- Desert
|
||||
- Takistan
|
||||
- Zargabad
|
||||
- Shapur
|
||||
- Proving Grounds
|
||||
- Bukovina
|
||||
- Bystrica
|
||||
- Takistan Mountains
|
||||
[Info] For CUP, use double quotes around mod for spaces in folder Example: -mod="@Epoch;@CUP Terrains - Core;@CUP Terrains - Maps;"
|
||||
[Changed] Removed support for AIA terrain pack in favor of CUP terrain pack.
|
||||
[Changed] Empty fuel barrel added to large trash and vehicle loot tables.
|
||||
[Changed] Earthquakes with mineral veins spawn chances increased with less players.
|
||||
[Changed] Driver or passengers of a driverless can now control vehicle locks. Also only the owner can control locks from outside of a occupied vehicle.
|
||||
[Changed] Commented out Halloween masks from loot tables.
|
||||
[Changed] Player positions in database now use Epoch precision position functions.
|
||||
[Updated] New Battleye remoteExec.txt for added remoteExec calls.
|
||||
[Fixed] Admin tools map AI markers not working.
|
||||
[Fixed] Static propPos campfires not working on Takistan due to disabled simulation.
|
||||
[Fixed] When killed instead of saving blank array delete (object,trader,vehicle) data from database.
|
||||
[Info] Removed old .bikey and added new one for 0370.
|
||||
|
11
LICENSE.txt
11
LICENSE.txt
@ -1,2 +1,9 @@
|
||||
Arma 3: Epoch Mod is licensed under:
|
||||
http://creativecommons.org/licenses/by-nc-nd/4.0/
|
||||
Epoch Mod for Arma 3
|
||||
http://epochmod.com
|
||||
by Epoch Mod Team
|
||||
https://github.com/EpochModTeam/Epoch
|
||||
|
||||
The contents of this github are under the following license:
|
||||
http://www.bistudio.com/community/licenses/arma-public-license-share-alike
|
||||
|
||||
Keep this file and file headers with attribution intact for proper use.
|
@ -10,8 +10,8 @@ https://github.com/EpochModTeam/Epoch/releases
|
||||
|
||||
License:
|
||||
=====
|
||||
Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
http://creativecommons.org/licenses/by-nc-nd/4.0/
|
||||
Arma Public License Share Alike (APL-SA).
|
||||
http://www.bistudio.com/community/licenses/arma-public-license-share-alike
|
||||
|
||||
Developers
|
||||
=====
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
@ -5,7 +5,7 @@ StorageSlotsLimit = 1500; // Max storage slots allowed. Warning! Higher the numb
|
||||
BuildingSlotsLimit = 1500; // Max building slots allowed. Warning! Higher the number lower performance.
|
||||
|
||||
// Time based
|
||||
StaticDateTime[] = {2035,6,10,7,0}; // {0,0,0,8,0} would forces the server to start at 8am each time it is started while allowing the year, month and day to stay real time. Any values left at 0 will result in no change.
|
||||
StaticDateTime[] = {}; // {0,0,0,8,0} would forces the server to start at 8am each time it is started while allowing the year, month and day to stay real time. Any values left at 0 will result in no change.
|
||||
timeDifference = 0; // Server uses real time this will allow you to offset just the hour.
|
||||
timeMultiplier = 4; // Sets a time multiplier for in-game time. The command range is now capped at 0.1 - 120 to avoid performance problems.
|
||||
lootMultiplier = 0.5; // 1 = max loot bias. This controls how much loot can payout per Epoch loot container.
|
||||
|
17
Server_Install_Pack/Tools/InstallArma.cmd
Normal file
17
Server_Install_Pack/Tools/InstallArma.cmd
Normal file
@ -0,0 +1,17 @@
|
||||
@ECHO OFF
|
||||
SET STEAMUN=admin@youremail.net
|
||||
SET STEAMPW=chamgeme
|
||||
SET ARMASVRPATH=C:\Arma3Server
|
||||
|
||||
::(Full client\server package)
|
||||
SET ARMAAPPID=107410
|
||||
|
||||
::(Dedicated server package)
|
||||
::SET ARMAAPPID=233780
|
||||
|
||||
::(Development version)
|
||||
::SET ARMAAPPID=107410 -beta development
|
||||
|
||||
:: more info https://community.bistudio.com/wiki/Arma_3_Dedicated_Server
|
||||
|
||||
steamcmd.exe +login %STEAMUN% %STEAMPW% +force_install_dir "%ARMASVRPATH%" "+app_update %ARMAAPPID%" validate +quit
|
22
Server_Install_Pack/Tools/InstallBornholm.cmd
Normal file
22
Server_Install_Pack/Tools/InstallBornholm.cmd
Normal file
@ -0,0 +1,22 @@
|
||||
@ECHO OFF
|
||||
SET STEAMUN=admin@youremail.net
|
||||
SET STEAMPW=chamgeme
|
||||
SET ARMASVRPATH=C:\Arma3Server
|
||||
SET ARMAAPPID=107410
|
||||
|
||||
:: Use -mod line with quotes to support spaces in folder
|
||||
:: Example: -mod=@Epoch;@bornholm;
|
||||
|
||||
:: Install Bornholm
|
||||
|
||||
SET MODFOLDER=@bornholm
|
||||
SET ARMAWORKSHOPID=428181330
|
||||
|
||||
:: remove old folder
|
||||
rd /s/q "%ARMASVRPATH%\%MODFOLDER%"
|
||||
|
||||
:: update workshop mod
|
||||
START "" /WAIT steamcmd.exe +login %STEAMUN% %STEAMPW% +workshop_download_item %ARMAAPPID% %ARMAWORKSHOPID% +quit
|
||||
|
||||
:: copy files back to server
|
||||
xcopy /s/e/y/q/i "steamapps\workshop\content\%ARMAAPPID%\%ARMAWORKSHOPID%" "%ARMASVRPATH%\%MODFOLDER%"
|
37
Server_Install_Pack/Tools/InstallCUPTerrainPack.cmd
Normal file
37
Server_Install_Pack/Tools/InstallCUPTerrainPack.cmd
Normal file
@ -0,0 +1,37 @@
|
||||
@ECHO OFF
|
||||
SET STEAMUN=admin@youremail.net
|
||||
SET STEAMPW=chamgeme
|
||||
SET ARMASVRPATH=C:\Arma3Server
|
||||
SET ARMAAPPID=107410
|
||||
|
||||
:: Use -mod line with quotes to support spaces in folder
|
||||
:: Example: -mod="@Epoch;@CUP Terrains - Core;@CUP Terrains - Maps;"
|
||||
|
||||
:: Install CUP CORE
|
||||
|
||||
SET MODFOLDER=@CUP Terrains - Core
|
||||
SET ARMAWORKSHOPID=583496184
|
||||
|
||||
:: remove old folder
|
||||
rd /s/q "%ARMASVRPATH%\%MODFOLDER%"
|
||||
|
||||
:: update workshop mod
|
||||
START "" /WAIT steamcmd.exe +login %STEAMUN% %STEAMPW% +workshop_download_item %ARMAAPPID% %ARMAWORKSHOPID% +quit
|
||||
|
||||
:: copy files back to server
|
||||
xcopy /s/e/y/q/i "steamapps\workshop\content\%ARMAAPPID%\%ARMAWORKSHOPID%" "%ARMASVRPATH%\%MODFOLDER%"
|
||||
|
||||
|
||||
:: Install CUP MAPS
|
||||
|
||||
SET MODFOLDER=@CUP Terrains - Maps
|
||||
SET ARMAWORKSHOPID=583544987
|
||||
|
||||
:: remove old folder
|
||||
rd /s/q "%ARMASVRPATH%\%MODFOLDER%"
|
||||
|
||||
:: update workshop mod
|
||||
START "" /WAIT steamcmd.exe +login %STEAMUN% %STEAMPW% +workshop_download_item %ARMAAPPID% %ARMAWORKSHOPID% +quit
|
||||
|
||||
:: copy files back to server
|
||||
xcopy /s/e/y/q/i "steamapps\workshop\content\%ARMAAPPID%\%ARMAWORKSHOPID%" "%ARMASVRPATH%\%MODFOLDER%"
|
@ -3,12 +3,17 @@ SET STEAMUN=admin@youremail.net
|
||||
SET STEAMPW=chamgeme
|
||||
SET ARMASVRPATH=C:\Arma3Server
|
||||
SET ARMAAPPID=107410
|
||||
|
||||
:: Workshop IDs:
|
||||
:: EpochExperimental = 455221958
|
||||
:: Normal Epoch = 421839251
|
||||
SET ARMAWORKSHOPID=421839251
|
||||
|
||||
:: remove mod folder
|
||||
rd /s/q "%ARMASVRPATH%\@Epoch"
|
||||
|
||||
:: update workshop mod
|
||||
START "" /WAIT steamcmd.exe +login %STEAMUN% %STEAMPW% +workshop_download_item %ARMAAPPID% %ARMAWORKSHOPID% validate +quit
|
||||
:: copy files back to server
|
||||
|
||||
:: copy mod from steamcmd cache to server
|
||||
xcopy /s/e/y/q/i "steamapps\workshop\content\%ARMAAPPID%\%ARMAWORKSHOPID%" "%ARMASVRPATH%\@Epoch"
|
||||
:: steamcmd.exe +login %STEAMUN% %STEAMPW% +force_install_dir "%ARMASVRPATH%" "+app_update %ARMAAPPID%" validate +quit
|
||||
|
23
Server_Install_Pack/Tools/InstallEsseker.cmd
Normal file
23
Server_Install_Pack/Tools/InstallEsseker.cmd
Normal file
@ -0,0 +1,23 @@
|
||||
@ECHO OFF
|
||||
SET STEAMUN=admin@youremail.net
|
||||
SET STEAMPW=chamgeme
|
||||
SET ARMASVRPATH=C:\Arma3Server
|
||||
SET ARMAAPPID=107410
|
||||
|
||||
:: Requires CUP CORE and MAPS!
|
||||
:: Use -mod line with quotes to support spaces in folder
|
||||
:: Example: -mod="@Epoch;@CUP Terrains - Core;@CUP Terrains - Maps;@esseker"
|
||||
|
||||
:: Install Esseker
|
||||
|
||||
SET MODFOLDER=@esseker
|
||||
SET ARMAWORKSHOPID=498101407
|
||||
|
||||
:: remove old folder
|
||||
rd /s/q "%ARMASVRPATH%\%MODFOLDER%"
|
||||
|
||||
:: update workshop mod
|
||||
START "" /WAIT steamcmd.exe +login %STEAMUN% %STEAMPW% +workshop_download_item %ARMAAPPID% %ARMAWORKSHOPID% +quit
|
||||
|
||||
:: copy files back to server
|
||||
xcopy /s/e/y/q/i "steamapps\workshop\content\%ARMAAPPID%\%ARMAWORKSHOPID%" "%ARMASVRPATH%\%MODFOLDER%"
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Server_Install_Pack/keys/epoch0370.bikey
Normal file
BIN
Server_Install_Pack/keys/epoch0370.bikey
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.Bootcamp_ACR.pbo
Normal file
BIN
Server_Install_Pack/mpmissions/epoch.Bootcamp_ACR.pbo
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.Desert_E.pbo
Normal file
BIN
Server_Install_Pack/mpmissions/epoch.Desert_E.pbo
Normal file
Binary file not shown.
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.Mountains_ACR.pbo
Normal file
BIN
Server_Install_Pack/mpmissions/epoch.Mountains_ACR.pbo
Normal file
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.Porto.pbo
Normal file
BIN
Server_Install_Pack/mpmissions/epoch.Porto.pbo
Normal file
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.ProvingGrounds_PMC.pbo
Normal file
BIN
Server_Install_Pack/mpmissions/epoch.ProvingGrounds_PMC.pbo
Normal file
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.Sara.pbo
Normal file
BIN
Server_Install_Pack/mpmissions/epoch.Sara.pbo
Normal file
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.SaraLite.pbo
Normal file
BIN
Server_Install_Pack/mpmissions/epoch.SaraLite.pbo
Normal file
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.Sara_dbe1.pbo
Normal file
BIN
Server_Install_Pack/mpmissions/epoch.Sara_dbe1.pbo
Normal file
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.Shapur_BAF.pbo
Normal file
BIN
Server_Install_Pack/mpmissions/epoch.Shapur_BAF.pbo
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.Woodland_ACR.pbo
Normal file
BIN
Server_Install_Pack/mpmissions/epoch.Woodland_ACR.pbo
Normal file
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.Zargabad.pbo
Normal file
BIN
Server_Install_Pack/mpmissions/epoch.Zargabad.pbo
Normal file
Binary file not shown.
BIN
Server_Install_Pack/mpmissions/epoch.utes.pbo
Normal file
BIN
Server_Install_Pack/mpmissions/epoch.utes.pbo
Normal file
Binary file not shown.
@ -1 +1 @@
|
||||
5 "" !="epoch_server_save_vehicles \[.+\]"
|
||||
5 "" !="epoch_server_checkplayer [A-Z]{1} [A-Za-z]{4,10} [0-9]{1,3}-[0-9]{1,3}:[0-9]{1,3} \(.+\) REMOTE" !="epoch_server_(save(_vehicles|building)|(lock|pack)Storage|(upgrade|remove|paint|maint)build) \[.+\]" !="epoch_server_((load|respawn|dead|invite|revive|teleport)Player|(upgrade|updateplayer|create|delete)Group) \[.+\]" !="epoch_server_(knockDownTree|mineRocks|lootAnimal|handle_(say3d|switchmove|sapperObjs)) \[.+\]" !="epoch_server_((repair|fill|lock)Vehicle|(loot|fill)Container|(store|take)Crypto|make(NPC|)Trade) \[.+\]" !="epoch_server_(tradeRequest|equippeditem|packJack|create(object|AirDrop)|airDropCrate|destroytrash|unpackBackpack) \[.+\]" !="epoch_(localcleanup|fnc_saveplayer) \[.+\]"
|
||||
|
@ -1,8 +1,7 @@
|
||||
//new2
|
||||
7 EPOCH_C_SET !="!isNil \"EPOCH_C_SET\"" !="_array = EPOCH_C_SET;" !="EPOCH_C_SET = nil;"
|
||||
7 EPOCH_GROUP_Delete_PVS !="EPOCH_GROUP_Delete_PVS = [player,Epoch_personalToken];"
|
||||
7 "BIS_fnc_dynamictext" !="\"BIS_fnc_dynamictext"\" !", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;" !", 0, 0.4, 5, 2, 0, 2] spawn bis_fnc_dynamictext;" !", 0, 1, 6, 2, 0, 1] spawn bis_fnc_dynamictext;" !"snil '_fnc_scriptName') then {_fnc_scriptName}"
|
||||
7 forceRespawn
|
||||
7 forceRespawn !="reviveHandleForceRespawnAction"
|
||||
7 setFriend
|
||||
7 setAmmo
|
||||
7 RscDebugConsole_watch !="RscDebugConsole_watchSave = [true,true,true,true];"
|
||||
@ -22,9 +21,9 @@
|
||||
7 allowDamage !="_unit allowDamage false;" !="_unit allowDamage true;" !="player allowDamage true;" !="vehicle player allowDamage true;" !="player allowDamage false;"
|
||||
7 addWeaponCargo !="_acceptHolder addWeaponCargo [_wWeapon, 1] ;"
|
||||
7 onMapSingleClick !="onMapSingleClick '';"
|
||||
7 addMagazine !"addMagazineCargo" !="player addMagazine _craftItem;" !="player addMagazine \"jerrycanE_epoch\";" !="player addMagazine \"emptyjar_epoch\";" !="player addMagazine \"jerrycan_epoch\";" !="player addMagazine \"Hatchet_swing\";" !="player addMagazine [(_x select 0),(_x select 1)]" !="player addMagazine _x;" !="if !(player canAdd (_x select 0)) exitWith {};\nplayer addMagazine[_x select 0, _x select 1];"
|
||||
7 addMagazine !"addMagazineCargo" !="player addMagazine [_item, _magazineSizeMax];" !="player addMagazine [_item, floor (_magazineSize % _magazineSizeMax)];" !="player addMagazine [(_x select 0),(_x select 1)]" !="player addMagazine \"sledge_swing\";" !="player addMagazine \"Hatchet_swing\";" !="player addMagazine \"stick_swing\";"
|
||||
7 addMagazineCargo !"_dogHolder addMagazineCargo [\"RabbitCarcass_EPOCH\", 1]" !"_dogHolder addMagazineCargo [\"Pelt_EPOCH\", 1]" !"_dogHolder addMagazineCargo [\"Venom_EPOCH\", 1]" !"_dogHolder addMagazineCargo [\"SnakeCarcass_EPOCH\", 1]" !"_dogHolder addMagazineCargo [\"ChickenCarcass_EPOCH\", 1]" !="_acceptHolder addMagazineCargo [_wAmmo, 1] ;"
|
||||
7 addItem !="player addItem _item;" !="player addItem _craftItem;" !="player addItem _x;" !="_plyr addItemToVest _missionItem;" !="axeVIP addItemToVest _item;" !="_plyr addItemToVest _missionItem;" !="EPOCH_fnc_addItemOverflow"
|
||||
7 addItem !="{player addItemToVest _x} forEach _vestItems;" !="player addItem _item;" !="_plyr addItemToVest _missionItem;" !="axeVIP addItemToVest _item;" !="_plyr addItemToVest _missionItem;" !="EPOCH_fnc_addItemOverflow"
|
||||
7 addBackPack
|
||||
7 addMissionEventHandler !="addMissionEventHandler ['Draw3D',_var + \"call Epoch_gui3DCooldownEH;\"];" !="addMissionEventHandler ['Draw3D',_var + \"call epoch_gui3dModelPosEH;\"];" !="addMissionEventHandler ['Draw3D',_var + \"call epoch_gui3dWorldPosEH;\"];" !="addMissionEventHandler [\n"ended",\n{\n\nBIS_fnc_missionHandlers_end = _this;"
|
||||
7 removeMissionEventHandler !="removeMissionEventHandler [\"Draw3D\", _id];"
|
||||
@ -32,7 +31,7 @@
|
||||
7 removeAllItems
|
||||
7 removeAllActions
|
||||
7 setViewDistance !"setViewDistance 1600"
|
||||
7 createGroup !="_grp = createGroup RESISTANCE;" !="if (isserver) then {\n_group = creategroup sidelogic;" !="grpVIPGeneral = createGroup RESISTANCE;" !="_grp = createGroup side _plyr;" !="_grp = createGroup side player;" !="_grp = createGroup _side;" !="_grp = createGroup (side _plyr);" !="createcenter sidelogic;\n_grpLogic = creategroup sidelogic;\nbis_functions_mainscope"
|
||||
7 createGroup !="EPOCH_server_createGroup" !="_grp = createGroup RESISTANCE;" !="if (isserver) then {\n_group = creategroup sidelogic;" !="grpVIPGeneral = createGroup RESISTANCE;" !="_grp = createGroup side _plyr;" !="_grp = createGroup side player;" !="_grp = createGroup _side;" !="_grp = createGroup (side _plyr);" !="createcenter sidelogic;\n_grpLogic = creategroup sidelogic;\nbis_functions_mainscope"
|
||||
7 createVehicleCrew
|
||||
7 createVehicleLocal !"\"#particlesource\" createVehicleLocal" !"\"#lightpoint\" createVehicleLocal" !"\"BloodSplat\" createVehicleLocal" !"[\"lightning1_F\", \"lightning2_F\"] call BIS_fnc_selectRandom;\n_lighting = _class createVehicleLocal"
|
||||
7 createUnit !="_unit = _grp createUnit[(_arrUnits select _i), _pos, [], 0, \"FORM\"];" !="_driver = _grp createUnit[\"I_UAV_AI\", position _unit, [], 0, \"CAN_COLLIDE\"];" !="axeGeneral = grpVIPGeneral createUnit ["I_officer_F", axeGeneralPos, [], 1, "CAN_COLLIDE"];"
|
||||
@ -51,8 +50,8 @@
|
||||
7 displaySetEventHandler
|
||||
7 ctrlSetEventHandler !"BIS_fnc_guiMessage_status" !"ctrlSetEventHandler ['LBDblClick', '_this call" !="_buttonRespawn ctrlseteventhandler [\"buttonclick\",\"with uinamespace do {['buttonRespawn'," !="_ctrl ctrlSetEventHandler [\"mouseEnter\""
|
||||
7 addMPEventHandler
|
||||
7 addEventHandler !"displayAddEventHandler" !"ctrlAddEventHandler" !"FiredNear" !"EpeContactStart" !"InventoryClosed" !"GetOut" !"InventoryOpened" !"local" !"Respawn" !"Put" !"Take" !"Fired" !"Killed" !" [\"PostReset\",{BIS_EnginePPReset = true;} ];" !"_logic addeventhandler [\n\"local\""
|
||||
7 displayAddEventHandler !"[_display] call _fnc_animate;" !"tVersion select 4) == \"Development\") then" !"_display displayaddeventhandler\n[\n\"mousemoving\"," !"(findDisplay 46) displayAddEventHandler [\"KeyDown\",\"true\"];" !"(findDisplay 46) displayAddEventHandler [\"KeyDown\",\"_this call EPOCH_KeyDown\"];" !="_addCase = _display46 displayAddEventHandler ['KeyDown',{_this call EPOCH_KeyDown;}];" !"_display displayaddeventhandler [\"unload\",\"uinamespace setvariable ['BIS_fnc_guiMess" !="findDisplay -1337 displayAddEventHandler ['Unload'" !="_display displayaddeventhandler [\"keydown\",\"with uinamespace do {['keyDown'"
|
||||
7 addEventHandler !"displayAddEventHandler" !"ctrlAddEventHandler" !"[\"FiredNear"\" !"[\"EpeContactStart"\" !"[\"GetOut"\" !"[\"local"\" !"[\"PostReset"\" !"[\"TaskSetAsCurrent"\" !="player addEventHandler [_x,([\"CfgEpochClient\", _x, \"\"] call EPOCH_fnc_returnConfigEntryV2)];"
|
||||
7 displayAddEventHandler !="(findDisplay 46) displayAddEventHandler [\"KeyDown\",\"true\"];" !="_display displayAddEventHandler [_x,([\"CfgEpochClient\", _x, \"\"] call EPOCH_fnc_returnConfigEntryV2)];" !"[_display] call _fnc_animate;" !"tVersion select 4) == \"Development\") then" !"_display displayaddeventhandler\n[\n\"mousemoving\"," !="_addCase = _display46 displayAddEventHandler ['KeyDown',{_this call EPOCH_KeyDown;}];" !"_display displayaddeventhandler [\"unload\",\"uinamespace setvariable ['BIS_fnc_guiMess" !="findDisplay -1337 displayAddEventHandler ['Unload'" !="_display displayaddeventhandler [\"keydown\",\"with uinamespace do {['keyDown'"
|
||||
7 ctrlAddEventHandler !"rCfg >> \"refreshDelay\");" !" [\n\"draw\"," !" [\"buttonclick\"," !="(uiNamespace getVariable 'ESP_map') ctrlAddEventHandler['Draw', '_esp_targets = EPOCH_ESPMAP_TARGETS;" !="ctrlAddEventHandler ['MouseButtonDown'" !="(_display displayctrl _idc) ctrlAddEventHandler [\"LBSelChanged\"," !="_ctrl ctrlSetEventHandler [\"mouseEnter\", (format [\"_c = _this select 0;" !="_ctrl ctrlSetEventHandler [\"mouseExit\", (format [\"_c = _this select 0;" !="_ctrl ctrlSetEventHandler [\"mouseButtonDown\", (format [\"call %1;\",(_buttonSettings select _e select 2)])];"
|
||||
7 removeAllEventHandlers !="ctrlRemoveAllEventHandlers" !="_vehicle removeAllEventHandlers \"GetOut\";" !="_sapper removeAllEventHandlers \"Hit\";\n_sapper removeAllEventHandlers \"FiredNear\";" !="_unit removeAllEventHandlers \"Hit\";\n_unit removeAllEventHandlers \"FiredNear\";" !="_display46 displayRemoveAllEventHandlers 'KeyDown';"
|
||||
7 removeAllMissionEventHandlers
|
||||
|
@ -1,14 +1,14 @@
|
||||
// EPOCH SERVER CONFIG
|
||||
|
||||
// GLOBAL SETTINGS
|
||||
hostname = "EpochMod.com (0.3.6|1.54) ID02 YourHost";
|
||||
hostname = "EpochMod.com (0.3.7|1.54) ID02 YourHost";
|
||||
password = "";
|
||||
passwordAdmin = "!CHANGE_THIS_PASSWORD!";
|
||||
serverCommandPassword = "!CHANGE_THIS_PASSWORD!";
|
||||
logFile = "A3Master.log";
|
||||
verifySignatures = 2;
|
||||
BattlEye = 1;
|
||||
requiredBuild = 133570;
|
||||
requiredBuild = 133741;
|
||||
|
||||
// WHITELIST FILE TYPES
|
||||
allowedLoadFileExtensions[] = {:};
|
||||
|
@ -222,7 +222,7 @@ class FSM
|
||||
" _sound = _sounds select (floor (random (count _sounds)));" \n
|
||||
" _animalAgent say3D _sound;" \n
|
||||
" EPOCH_say3D_PVS = [player, _animalAgent, (EPOCH_sounds find _sound),Epoch_personalToken];" \n
|
||||
" publicVariableServer ""EPOCH_say3D_PVS"";" \n
|
||||
" EPOCH_say3D_PVS remoteExec [""EPOCH_server_handle_say3D"",2];" \n
|
||||
" };" \n
|
||||
"};" \n
|
||||
"" \n
|
||||
@ -358,7 +358,7 @@ class FSM
|
||||
" if (_isDog) then {" \n
|
||||
" _animalAgent say3D ""dog_cry"";" \n
|
||||
" EPOCH_say3D_PVS = [player, _animalAgent, 3,Epoch_personalToken];" \n
|
||||
" publicVariableServer ""EPOCH_say3D_PVS"";" \n
|
||||
" EPOCH_say3D_PVS remoteExec [""EPOCH_server_handle_say3D"",2];" \n
|
||||
" };" \n
|
||||
" };" \n
|
||||
" _courageTest = false;" \n
|
||||
@ -369,7 +369,7 @@ class FSM
|
||||
" if (_isDog) then {" \n
|
||||
" _animalAgent say3D ""dog_bark"";" \n
|
||||
" EPOCH_say3D_PVS = [player, _animalAgent, 2,Epoch_personalToken];" \n
|
||||
" publicVariableServer ""EPOCH_say3D_PVS"";" \n
|
||||
" EPOCH_say3D_PVS remoteExec [""EPOCH_server_handle_say3D"",2];" \n
|
||||
" _animalAgent playMoveNow ""Dog_Bark""; " \n
|
||||
" };" \n
|
||||
" _animalAgent setDir _dirTo; " \n
|
||||
@ -379,7 +379,7 @@ class FSM
|
||||
" if (random 1 < 0.5) then { " \n
|
||||
" _animalAgent say3D ""dog_bark"";" \n
|
||||
" EPOCH_say3D_PVS = [player, _animalAgent, 2,Epoch_personalToken];" \n
|
||||
" publicVariableServer ""EPOCH_say3D_PVS"";" \n
|
||||
" EPOCH_say3D_PVS remoteExec [""EPOCH_server_handle_say3D"",2];" \n
|
||||
" };" \n
|
||||
" };" \n
|
||||
"};"/*%FSM</STATEINIT""">*/;
|
||||
|
@ -451,7 +451,7 @@ class FSM
|
||||
"" \n
|
||||
"_copter say3D ""drone_alert0"";" \n
|
||||
"EPOCH_say3D_PVS = [player, _copter, 10,Epoch_personalToken];" \n
|
||||
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
|
||||
"EPOCH_say3D_PVS remoteExec [""EPOCH_server_handle_say3D"",2];" \n
|
||||
"" \n
|
||||
"_troopsOnGround = true;" \n
|
||||
"(driver _copter) action [""lightOn"", _copter];" \n
|
||||
|
@ -688,7 +688,7 @@ class FSM
|
||||
"if((random 100) < (_countNrPlyrs * 10))then{" \n
|
||||
"[_dog, _plyr] say3D ""dog_cry"";" \n
|
||||
"EPOCH_say3D_PVS = [player, _dog, 17,Epoch_personalToken];" \n
|
||||
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
|
||||
"EPOCH_say3D_PVS remoteExec [""EPOCH_server_handle_say3D"",2];" \n
|
||||
"};" \n
|
||||
"" \n
|
||||
""/*%FSM</STATEINIT""">*/;
|
||||
@ -730,7 +730,7 @@ class FSM
|
||||
"if (floor(random 100)< 8) then {" \n
|
||||
"[_dog, _plyr] say3D ""dog_cry"";" \n
|
||||
"EPOCH_say3D_PVS = [player, _dog, 17,Epoch_personalToken];" \n
|
||||
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
|
||||
"EPOCH_say3D_PVS remoteExec [""EPOCH_server_handle_say3D"",2];" \n
|
||||
"_hunger = _hunger + 2;" \n
|
||||
"};" \n
|
||||
"" \n
|
||||
@ -790,7 +790,7 @@ class FSM
|
||||
"if (floor(random 100)<_dogNoise) then {" \n
|
||||
"[_dog, _plyr] say3D ""dog_cry"";" \n
|
||||
"EPOCH_say3D_PVS = [player, _dog, 17,Epoch_personalToken];" \n
|
||||
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
|
||||
"EPOCH_say3D_PVS remoteExec [""EPOCH_server_handle_say3D"",2];" \n
|
||||
"};" \n
|
||||
"" \n
|
||||
"" \n
|
||||
@ -850,7 +850,7 @@ class FSM
|
||||
"if (floor(random 100) < 6) then {" \n
|
||||
"[_dog, _plyr] say3D ""dog_bark"";" \n
|
||||
"EPOCH_say3D_PVS = [player, _dog, 2,Epoch_personalToken];" \n
|
||||
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
|
||||
"EPOCH_say3D_PVS remoteExec [""EPOCH_server_handle_say3D"",2];" \n
|
||||
"};" \n
|
||||
"" \n
|
||||
"if (floor(random 100)<_forgive) then {" \n
|
||||
@ -976,7 +976,7 @@ class FSM
|
||||
"if (floor(random 100)<_dogNoise) then {" \n
|
||||
"[_dog, _plyr] say3D ""dog_cry"";" \n
|
||||
"EPOCH_say3D_PVS = [player, _dog, 17,Epoch_personalToken];" \n
|
||||
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
|
||||
"EPOCH_say3D_PVS remoteExec [""EPOCH_server_handle_say3D"",2];" \n
|
||||
"};" \n
|
||||
"" \n
|
||||
"_criteria = ""(moveToCompleted _dog) || (_dog distance _moveTo < 1.5)"";" \n
|
||||
@ -1052,7 +1052,7 @@ class FSM
|
||||
"if (floor(random 75)<_dogNoise) then {" \n
|
||||
"[_dog, _plyr] say3D ""dog_cry_quiet"";" \n
|
||||
"EPOCH_say3D_PVS = [player, _dog, 17,Epoch_personalToken];" \n
|
||||
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
|
||||
"EPOCH_say3D_PVS remoteExec [""EPOCH_server_handle_say3D"",2];" \n
|
||||
"};" \n
|
||||
"" \n
|
||||
"_dirTo = [_dog, getPos (_nrPlyrs select 1)] call BIS_fnc_dirTo;" \n
|
||||
@ -1092,7 +1092,7 @@ class FSM
|
||||
"if (_rnd < 42) then {" \n
|
||||
"[_dog, _plyr] say3D ""dog_bark"";" \n
|
||||
"EPOCH_say3D_PVS = [player, _dog, 18,Epoch_personalToken];" \n
|
||||
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
|
||||
"EPOCH_say3D_PVS remoteExec [""EPOCH_server_handle_say3D"",2];" \n
|
||||
"};" \n
|
||||
"" \n
|
||||
"if (_rnd < 6) then {" \n
|
||||
@ -1226,20 +1226,20 @@ class FSM
|
||||
"if (_rnd< 12) then {" \n
|
||||
"[_dog, _plyr] say3D ""dog_bark"";" \n
|
||||
"EPOCH_say3D_PVS = [player, _dog, 2,Epoch_personalToken];" \n
|
||||
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
|
||||
"EPOCH_say3D_PVS remoteExec [""EPOCH_server_handle_say3D"",2];" \n
|
||||
"};" \n
|
||||
"" \n
|
||||
"if (_rnd < 6) then {" \n
|
||||
"_hunger = _hunger + 1;" \n
|
||||
"[_dog, _plyr] say3D ""dog_cry"";" \n
|
||||
"EPOCH_say3D_PVS = [player, _dog, 3,Epoch_personalToken];" \n
|
||||
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
|
||||
"EPOCH_say3D_PVS remoteExec [""EPOCH_server_handle_say3D"",2];" \n
|
||||
"};" \n
|
||||
"" \n
|
||||
"if ((_hunger > 56) && (_rnd < 48)) then {" \n
|
||||
"[_dog, _plyr] say3D ""dog_cry"";" \n
|
||||
"EPOCH_say3D_PVS = [player, _dog, 2,Epoch_personalToken];" \n
|
||||
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
|
||||
"EPOCH_say3D_PVS remoteExec [""EPOCH_server_handle_say3D"",2];" \n
|
||||
"};" \n
|
||||
"" \n
|
||||
"" \n
|
||||
@ -1319,8 +1319,8 @@ class FSM
|
||||
init = /*%FSM<STATEINIT""">*/"{" \n
|
||||
" if !(alive _x) then {" \n
|
||||
" if ((_x isKindOf ""Animal_Base_F"" && !(_x isKindOf ""Dog_Base_F"")) || (typeOf _x) in[""Epoch_Sapper_F"", ""Epoch_SapperB_F"", ""Epoch_Cloak_F"", ""I_UAV_01_F""]) then {" \n
|
||||
" EPOCH_lootAnimal = [_x, player, Epoch_personalToken];" \n
|
||||
" publicVariableServer ""EPOCH_lootAnimal"";" \n
|
||||
" [_x, player, Epoch_personalToken] remoteExec [""EPOCH_server_lootAnimal"",2];" \n
|
||||
"" \n
|
||||
" };" \n
|
||||
" };" \n
|
||||
"" \n
|
||||
|
@ -387,8 +387,8 @@ class FSM
|
||||
{
|
||||
name = "do_drop";
|
||||
init = /*%FSM<STATEINIT""">*/"" \n
|
||||
"EPOCH_airDropCrate_PVS = [_axeCopter,_plyr,Epoch_personalToken];" \n
|
||||
"publicVariableServer ""EPOCH_airDropCrate_PVS"";" \n
|
||||
"" \n
|
||||
"[_axeCopter,_plyr,Epoch_personalToken] remoteExec [""EPOCH_server_airDropCrate"",2];" \n
|
||||
"" \n
|
||||
"_dropDone = true;" \n
|
||||
"" \n
|
||||
@ -467,8 +467,8 @@ class FSM
|
||||
"" \n
|
||||
"_dropPos = _plyrPos;" \n
|
||||
"" \n
|
||||
"EPOCH_createAirDrop_PVS = [player,Epoch_personalToken,_startPos];" \n
|
||||
"publicVariableServer ""EPOCH_createAirDrop_PVS"";" \n
|
||||
"" \n
|
||||
"[player,Epoch_personalToken,_startPos] remoteExec [""EPOCH_Server_createAirDrop"",2];" \n
|
||||
"" \n
|
||||
"" \n
|
||||
"_axeCopter = objNull;" \n
|
||||
@ -717,4 +717,4 @@ class FSM
|
||||
"end"
|
||||
};
|
||||
};
|
||||
/*%FSM</COMPILE>*/
|
||||
/*%FSM</COMPILE>*/
|
||||
|
@ -320,7 +320,7 @@ class FSM
|
||||
"" \n
|
||||
"_sapper say3D _sound;" \n
|
||||
"EPOCH_say3D_PVS = [player, _sapper,(EPOCH_sounds find _sound), Epoch_personalToken];" \n
|
||||
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
|
||||
"EPOCH_say3D_PVS remoteExec [""EPOCH_server_handle_say3D"",2];" \n
|
||||
"};" \n
|
||||
"" \n
|
||||
"_doInterrupt = {" \n
|
||||
@ -739,7 +739,7 @@ class FSM
|
||||
"_sound = ""sapper_explode"";" \n
|
||||
"_sapper say3D _sound;" \n
|
||||
"EPOCH_say3D_PVS = [player,_sapper,(EPOCH_sounds find _sound),Epoch_personalToken];" \n
|
||||
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
|
||||
"EPOCH_say3D_PVS remoteExec [""EPOCH_server_handle_say3D"",2];" \n
|
||||
"_sapper playMoveNow ""Unconscious"";" \n
|
||||
"" \n
|
||||
""/*%FSM</STATEINIT""">*/;
|
||||
@ -1206,8 +1206,8 @@ class FSM
|
||||
"_bomb = createVehicle [""Sapper_Charge_Ammo"", (getposATL _nestMate), [], 0, ""CAN_COLLIDE""] ; " \n
|
||||
"_bomb attachTo [_nestMate, [0,0,0],""Pelvis""];" \n
|
||||
"_nestMate setVariable [""bomb"",_bomb];" \n
|
||||
"EPOCH_TEMPOBJ_PVS = _nestMate;" \n
|
||||
"publicVariableServer ""EPOCH_TEMPOBJ_PVS"";" \n
|
||||
"" \n
|
||||
"[_nestMate] remoteExec [""EPOCH_localCleanup"",2];" \n
|
||||
"_nestMate disableAI ""TARGET"";" \n
|
||||
"_nestMate disableAI ""AUTOTARGET"";" \n
|
||||
"_nestMate disableAI ""FSM"";" \n
|
||||
@ -1246,8 +1246,8 @@ class FSM
|
||||
"" \n
|
||||
"[_nrBuild, _sapper] spawn {" \n
|
||||
"sleep 6;" \n
|
||||
"EPOCH_SapperObjs_PVS = [_this select 0, player, Epoch_personalToken,_this select 1];" \n
|
||||
"publicVariableServer ""EPOCH_SapperObjs_PVS"";" \n
|
||||
"" \n
|
||||
"[_this select 0, player, Epoch_personalToken,_this select 1] remoteExec [""EPOCH_server_handle_sapperObjs"",2];" \n
|
||||
"};" \n
|
||||
"" \n
|
||||
"{" \n
|
||||
@ -1255,15 +1255,15 @@ class FSM
|
||||
"_sound = ""sapper_explode"";" \n
|
||||
"_x say3D _sound;" \n
|
||||
"EPOCH_say3D_PVS = [player,_x,(EPOCH_sounds find _sound),Epoch_personalToken];" \n
|
||||
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
|
||||
"EPOCH_say3D_PVS remoteExec [""EPOCH_server_handle_say3D"",2];" \n
|
||||
"_x playMoveNow ""Unconscious"";" \n
|
||||
"" \n
|
||||
"_x spawn {" \n
|
||||
"sleep floor (random 3);" \n
|
||||
"_sBomb = _this getVariable [""bomb"",objNull];" \n
|
||||
"" \n
|
||||
"EPOCH_SapperObjs_PVS = [_sBomb, player, Epoch_personalToken,_this,_this];" \n
|
||||
"publicVariableServer ""EPOCH_SapperObjs_PVS"";" \n
|
||||
"" \n
|
||||
"[_sBomb, player, Epoch_personalToken,_this,_this] remoteExec [""EPOCH_server_handle_sapperObjs"",2];" \n
|
||||
"" \n
|
||||
"_finalPos = getPosATL _this;" \n
|
||||
"_finalDir = getDir _this;" \n
|
||||
@ -1369,8 +1369,8 @@ class FSM
|
||||
class do_boom
|
||||
{
|
||||
name = "do_boom";
|
||||
init = /*%FSM<STATEINIT""">*/"EPOCH_SapperObjs_PVS = [_sBomb, player, Epoch_personalToken,_sapper,_sapper];" \n
|
||||
"publicVariableServer ""EPOCH_SapperObjs_PVS"";" \n
|
||||
init = /*%FSM<STATEINIT""">*/"" \n
|
||||
"[_sBomb, player, Epoch_personalToken,_sapper,_sapper] remoteExec [""EPOCH_server_handle_sapperObjs"",2];" \n
|
||||
"" \n
|
||||
"_sBomb = objNull;" \n
|
||||
"_finalPos = getPosATL _sapper;" \n
|
||||
@ -1636,7 +1636,7 @@ class FSM
|
||||
" _sound = ""sapper_groan2"";" \n
|
||||
" _sapper say3D _sound;" \n
|
||||
" EPOCH_say3D_PVS = [player, _sapper,(EPOCH_sounds find _sound), Epoch_personalToken];" \n
|
||||
" publicVariableServer ""EPOCH_say3D_PVS"";" \n
|
||||
" EPOCH_say3D_PVS remoteExec [""EPOCH_server_handle_say3D"",2];" \n
|
||||
"};" \n
|
||||
""/*%FSM</ACTION""">*/;
|
||||
};
|
||||
|
@ -1,4 +1,4 @@
|
||||
/*%FSM<COMPILE "C:\Program Files (x86)\Bohemia Interactive\Tools\FSM Editor Personal Edition\scriptedFSM.cfg, sapperAlt">*/
|
||||
/*%FSM<COMPILE "F:\Program Files (x86)\Bohemia Interactive\Tools\FSM Editor Personal Edition\scriptedFSM.cfg, sapperAlt">*/
|
||||
/*%FSM<HEAD>*/
|
||||
/*
|
||||
item0[] = {"sapper",0,250,-225.000000,-325.000000,-125.000000,-275.000000,0.000000,"sapper"};
|
||||
@ -35,12 +35,12 @@ item30[] = {"stalking",4,218,-50.000000,50.000000,50.000000,100.000000,5.000000,
|
||||
item31[] = {"Wait_random",4,218,-225.000000,-200.000000,-125.000000,-150.000000,10.000000,"Wait random"};
|
||||
item32[] = {"groan",4,218,200.000000,375.000000,300.000000,425.000000,5.000000,"groan"};
|
||||
item33[] = {"detonate",4,218,125.000000,-350.000000,225.000000,-300.000000,70.000000,"detonate"};
|
||||
item34[] = {"end",1,250,975.000000,0.000000,1075.000000,50.000000,0.000000,"end"};
|
||||
item35[] = {"Wait_to_delete",4,218,975.000000,150.000000,1075.000000,200.000000,10.000000,"Wait to delete"};
|
||||
item34[] = {"end",1,250,1050.000000,-25.000000,1150.000000,25.000000,0.000000,"end"};
|
||||
item35[] = {"Wait_to_delete",4,218,1050.000000,125.000000,1150.000000,175.000000,10.000000,"Wait to delete"};
|
||||
item36[] = {"handle_dispose",2,250,525.000000,125.000000,625.000000,175.000000,0.000000,"handle dispose"};
|
||||
item37[] = {"Wait_1_5_sec",4,218,650.000000,300.000000,750.000000,350.000000,0.000000,"Wait" \n "1.5 sec"};
|
||||
item38[] = {"do_boom",2,4346,650.000000,225.000000,750.000000,275.000000,0.000000,"do boom"};
|
||||
item39[] = {"_",8,218,800.000000,300.000000,850.000000,325.000000,0.000000,""};
|
||||
item37[] = {"Wait_1_5_sec",4,218,525.000000,350.000000,625.000000,400.000000,0.000000,"Wait" \n "1.5 sec"};
|
||||
item38[] = {"do_boom",2,250,650.000000,225.000000,750.000000,275.000000,0.000000,"do boom"};
|
||||
item39[] = {"_",8,218,800.000000,225.000000,875.000000,275.000000,0.000000,""};
|
||||
item40[] = {"do_groan",2,250,225.000000,500.000000,325.000000,550.000000,0.000000,"do groan"};
|
||||
item41[] = {"do_stalk",2,250,-200.000000,50.000000,-100.000000,100.000000,0.000000,"do stalk"};
|
||||
item42[] = {"do_loiter_big",2,250,350.000000,500.000000,450.000000,550.000000,0.000000,"do loiter big"};
|
||||
@ -63,7 +63,9 @@ item58[] = {"feeling",4,218,775.000000,-50.000000,875.000000,0.000000,50.000000,
|
||||
item59[] = {"charging",4,218,-50.000000,225.000000,50.000000,275.000000,5.000000,"charging"};
|
||||
item60[] = {"stalk",4,218,375.000000,-275.000000,475.000000,-225.000000,20.000000,"stalk"};
|
||||
item61[] = {"not_shot",4,218,900.000000,125.000000,1000.000000,175.000000,10.000000,"not shot"};
|
||||
item62[] = {"finished_boom",2,250,900.000000,225.000000,1000.000000,275.000000,0.000000,"finished boom"};
|
||||
item62[] = {"finished_boom",2,250,900.000000,300.000000,1000.000000,350.000000,0.000000,"finished boom"};
|
||||
item63[] = {"Wait_for_Explosi",4,218,650.000000,350.000000,750.000000,400.000000,0.000000,"Wait for Explosion"};
|
||||
item64[] = {"Remove_corpse",2,4346,775.000000,300.000000,875.000000,350.000000,0.000000,"Remove corpse"};
|
||||
link0[] = {0,31};
|
||||
link1[] = {1,2};
|
||||
link2[] = {2,3};
|
||||
@ -126,7 +128,7 @@ link58[] = {35,34};
|
||||
link59[] = {36,57};
|
||||
link60[] = {36,61};
|
||||
link61[] = {37,38};
|
||||
link62[] = {38,39};
|
||||
link62[] = {38,63};
|
||||
link63[] = {39,62};
|
||||
link64[] = {40,6};
|
||||
link65[] = {41,30};
|
||||
@ -154,8 +156,10 @@ link86[] = {59,4};
|
||||
link87[] = {60,2};
|
||||
link88[] = {61,62};
|
||||
link89[] = {62,35};
|
||||
globals[] = {25.000000,1,0,0,16777215,640,480,1,248,6316128,1,-343.543304,1069.998291,679.913574,-353.385406,1000,731,1};
|
||||
window[] = {2,-1,-1,-1,-1,542,56,1081,17,3,1018};
|
||||
link90[] = {63,64};
|
||||
link91[] = {64,39};
|
||||
globals[] = {25.000000,1,0,0,16777215,640,480,1,253,6316128,1,-209.204178,1204.337524,679.913574,-353.385406,1000,880,1};
|
||||
window[] = {2,-1,-1,-1,-1,655,130,1155,130,3,1018};
|
||||
*//*%FSM</HEAD>*/
|
||||
class FSM
|
||||
{
|
||||
@ -267,7 +271,7 @@ class FSM
|
||||
"" \n
|
||||
"_sapper say3D _sound;" \n
|
||||
"EPOCH_say3D_PVS = [player, _sapper,(EPOCH_sounds find _sound), Epoch_personalToken];" \n
|
||||
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
|
||||
"EPOCH_say3D_PVS remoteExec [""EPOCH_server_handle_say3D"",2];" \n
|
||||
"};" \n
|
||||
"" \n
|
||||
"_doInterrupt = {" \n
|
||||
@ -633,7 +637,7 @@ class FSM
|
||||
"_sound = ""sapper_explode"";" \n
|
||||
"_sapper say3D _sound;" \n
|
||||
"EPOCH_say3D_PVS = [player,_sapper,(EPOCH_sounds find _sound),Epoch_personalToken];" \n
|
||||
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
|
||||
"EPOCH_say3D_PVS remoteExec [""EPOCH_server_handle_say3D"",2];" \n
|
||||
"_sapper playMoveNow ""Unconscious"";" \n
|
||||
"" \n
|
||||
""/*%FSM</STATEINIT""">*/;
|
||||
@ -1040,25 +1044,19 @@ class FSM
|
||||
class do_boom
|
||||
{
|
||||
name = "do_boom";
|
||||
init = /*%FSM<STATEINIT""">*/"EPOCH_SapperObjs_PVS = [_sBomb, player, Epoch_personalToken,_sapper,_sapper];" \n
|
||||
"publicVariableServer ""EPOCH_SapperObjs_PVS"";" \n
|
||||
"" \n
|
||||
"_sBomb = objNull;" \n
|
||||
"" \n
|
||||
"deleteVehicle _sapper;" \n
|
||||
"" \n
|
||||
init = /*%FSM<STATEINIT""">*/"[_sBomb, player, Epoch_personalToken,_sapper,_sapper] remoteExec [""EPOCH_server_handle_sapperObjs"",2];" \n
|
||||
"_doneBoom = true;" \n
|
||||
""/*%FSM</STATEINIT""">*/;
|
||||
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||
class Links
|
||||
{
|
||||
/*%FSM<LINK "_">*/
|
||||
class _
|
||||
/*%FSM<LINK "Wait_for_Explosi">*/
|
||||
class Wait_for_Explosi
|
||||
{
|
||||
priority = 0.000000;
|
||||
to="finished_boom";
|
||||
to="Remove_corpse";
|
||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
|
||||
condition=/*%FSM<CONDITION""">*/"isNull(_sBomb)"/*%FSM</CONDITION""">*/;
|
||||
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
||||
};
|
||||
/*%FSM</LINK>*/
|
||||
@ -1269,7 +1267,7 @@ class FSM
|
||||
" _sound = ""sapper_groan2"";" \n
|
||||
" _sapper say3D _sound;" \n
|
||||
" EPOCH_say3D_PVS = [player, _sapper,(EPOCH_sounds find _sound), Epoch_personalToken];" \n
|
||||
" publicVariableServer ""EPOCH_say3D_PVS"";" \n
|
||||
" EPOCH_say3D_PVS remoteExec [""EPOCH_server_handle_say3D"",2];" \n
|
||||
"};" \n
|
||||
""/*%FSM</ACTION""">*/;
|
||||
};
|
||||
@ -1409,11 +1407,32 @@ class FSM
|
||||
};
|
||||
};
|
||||
/*%FSM</STATE>*/
|
||||
/*%FSM<STATE "Remove_corpse">*/
|
||||
class Remove_corpse
|
||||
{
|
||||
name = "Remove_corpse";
|
||||
init = /*%FSM<STATEINIT""">*/"deleteVehicle _sapper;"/*%FSM</STATEINIT""">*/;
|
||||
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||
class Links
|
||||
{
|
||||
/*%FSM<LINK "_">*/
|
||||
class _
|
||||
{
|
||||
priority = 0.000000;
|
||||
to="finished_boom";
|
||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
|
||||
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
||||
};
|
||||
/*%FSM</LINK>*/
|
||||
};
|
||||
};
|
||||
/*%FSM</STATE>*/
|
||||
};
|
||||
initState="sapper";
|
||||
finalStates[] =
|
||||
{
|
||||
"end"
|
||||
"end",
|
||||
};
|
||||
};
|
||||
/*%FSM</COMPILE>*/
|
||||
/*%FSM</COMPILE>*/
|
@ -974,8 +974,8 @@ class FSM
|
||||
"" \n
|
||||
"_plyr spawn {" \n
|
||||
"uiSleep 12;" \n
|
||||
"EPOCH_FillContainer_PVS = [_this,Epoch_personalToken,objNull,false,15];" \n
|
||||
"publicVariableServer ""EPOCH_FillContainer_PVS"";" \n
|
||||
"" \n
|
||||
"[_this,Epoch_personalToken,objNull,false,15] remoteExec [""EPOCH_server_fillContainer"",2];" \n
|
||||
"//hint ""Paying Out"";" \n
|
||||
"};" \n
|
||||
"" \n
|
||||
|
@ -1021,8 +1021,8 @@ class FSM
|
||||
init = /*%FSM<STATEINIT""">*/"titleText [_wDiag,""PLAIN"", 6];" \n
|
||||
"" \n
|
||||
"" \n
|
||||
"EPOCH_FillContainer_PVS = [_plyr,Epoch_personalToken,objNull,false,25];" \n
|
||||
"publicVariableServer ""EPOCH_FillContainer_PVS"";" \n
|
||||
"" \n
|
||||
"[_plyr,Epoch_personalToken,objNull,false,25] remoteExec [""EPOCH_server_fillContainer"",2];" \n
|
||||
"" \n
|
||||
"if (_act != """") then {" \n
|
||||
"call compile _act;" \n
|
||||
@ -1319,8 +1319,8 @@ class FSM
|
||||
"" \n
|
||||
"_copterPos = (getPosATL _plyr) findEmptyPosition [1,500,""I_Heli_light_03_unarmed_EPOCH""];" \n
|
||||
"" \n
|
||||
"EPOCH_createObject_PVS = [player,Epoch_personalToken,_uavclass,true,_copterPos,""CAN_COLLIDE"","""","""","""","""",true];" \n
|
||||
"publicVariableServer ""EPOCH_createObject_PVS"";" \n
|
||||
"" \n
|
||||
"[player,Epoch_personalToken,_uavclass,true,_copterPos,""CAN_COLLIDE"","""","""","""","""",true] remoteExec [""EPOCH_Server_createObject"",2];" \n
|
||||
"" \n
|
||||
"" \n
|
||||
"" \n
|
||||
|
@ -502,8 +502,8 @@ class FSM
|
||||
"_boats = [];" \n
|
||||
"_findTimer = diag_TickTime;" \n
|
||||
"" \n
|
||||
"EPOCH_createObject_PVS = [player,Epoch_personalToken,""I_Boat_Armed_01_minigun_F"",true,axeGeneralBoatPos,""CAN_COLLIDE"","""","""","""","""",true];" \n
|
||||
"publicVariableServer ""EPOCH_createObject_PVS"";" \n
|
||||
"" \n
|
||||
"[player,Epoch_personalToken,""I_Boat_Armed_01_minigun_F"",true,axeGeneralBoatPos,""CAN_COLLIDE"","""","""","""","""",true] remoteExec [""EPOCH_Server_createObject"",2];" \n
|
||||
"" \n
|
||||
"" \n
|
||||
""/*%FSM</ACTION""">*/;
|
||||
@ -877,8 +877,8 @@ class FSM
|
||||
"_wDiag = """";" \n
|
||||
"_wDiag2 = """";" \n
|
||||
"" \n
|
||||
"EPOCH_FillContainer_PVS = [_plyr,Epoch_personalToken,axeGeneralsBoat,false,25];" \n
|
||||
"publicVariableServer ""EPOCH_FillContainer_PVS"";" \n
|
||||
"" \n
|
||||
"[_plyr,Epoch_personalToken,axeGeneralsBoat,false,25] remoteExec [""EPOCH_server_fillContainer"",2];" \n
|
||||
"" \n
|
||||
"_sWait = 1.5;" \n
|
||||
"_actionDone = true;" \n
|
||||
@ -914,8 +914,8 @@ class FSM
|
||||
"axeVIP = _grp createUnit [""Epoch_Female_CamoRed_F"",_pos,[],0,""FORM""];" \n
|
||||
"" \n
|
||||
"if !(isNull axeVIP) then {" \n
|
||||
" EPOCH_TEMPOBJ_PVS = axeVIP;" \n
|
||||
" publicVariableServer ""EPOCH_TEMPOBJ_PVS"";" \n
|
||||
"" \n
|
||||
" [axeVIP] remoteExec [""EPOCH_localCleanup"",2];" \n
|
||||
"};" \n
|
||||
"" \n
|
||||
"_grp setCombatMode ""BLUE"";" \n
|
||||
@ -1038,8 +1038,8 @@ class FSM
|
||||
" removeAllWeapons axeGeneral;" \n
|
||||
"" \n
|
||||
"if !(isNull axeGeneral) then {" \n
|
||||
" EPOCH_TEMPOBJ_PVS = axeGeneral;" \n
|
||||
" publicVariableServer ""EPOCH_TEMPOBJ_PVS"";" \n
|
||||
"" \n
|
||||
" [axeGeneral] remoteExec [""EPOCH_localCleanup"",2];" \n
|
||||
"};" \n
|
||||
"" \n
|
||||
" for ""_i"" from 1 to 3 step 1 do" \n
|
||||
@ -1051,8 +1051,8 @@ class FSM
|
||||
" _unit addEventHandler [""FiredNear"", ""group (_this select 0) setVariable[""""shotsFired"""",[(_this select 1),(_this select 2)]]""];" \n
|
||||
" _unit addEventHandler [""Killed"", ""group (_this select 0) setVariable[""""killer"""",_this select 1]""];" \n
|
||||
" if !(isNull _unit) then {" \n
|
||||
" EPOCH_TEMPOBJ_PVS = _unit;" \n
|
||||
" publicVariableServer ""EPOCH_TEMPOBJ_PVS"";" \n
|
||||
"" \n
|
||||
" [_unit] remoteExec [""EPOCH_localCleanup"",2];" \n
|
||||
" };" \n
|
||||
" [_unit,axeGeneral] execFSM ""\x\addons\a3_epoch_code\System\Mission_VIP_Militia.fsm"";" \n
|
||||
"" \n
|
||||
|
@ -668,7 +668,7 @@ class FSM
|
||||
"if(diag_tickTime - _lastAlert > 480 && random 100 < _cAggression)then{" \n
|
||||
"_unit say3D ""cultist_laugh"";" \n
|
||||
"EPOCH_say3D_PVS = [player, _unit, 8,Epoch_personalToken];" \n
|
||||
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
|
||||
"EPOCH_say3D_PVS remoteExec [""EPOCH_server_handle_say3D"",2];" \n
|
||||
"_lastAlert = diag_tickTime;" \n
|
||||
"" \n
|
||||
"" \n
|
||||
@ -676,7 +676,7 @@ class FSM
|
||||
"" \n
|
||||
"_unit say3D ""cultist_talk"";" \n
|
||||
"EPOCH_say3D_PVS = [player, _unit, 7,Epoch_personalToken];" \n
|
||||
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
|
||||
"EPOCH_say3D_PVS remoteExec [""EPOCH_server_handle_say3D"",2];" \n
|
||||
"" \n
|
||||
"};" \n
|
||||
"" \n
|
||||
|
@ -40,7 +40,7 @@ class FSM
|
||||
"" \n
|
||||
"_unit say3D ""cultist_laugh"";" \n
|
||||
"EPOCH_say3D_PVS = [player, _unit, 8,Epoch_personalToken];" \n
|
||||
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
|
||||
"EPOCH_say3D_PVS remoteExec [""EPOCH_server_handle_say3D"",2];" \n
|
||||
"" \n
|
||||
"" \n
|
||||
"" \n
|
||||
|
@ -1,4 +1,4 @@
|
||||
/*%FSM<COMPILE "X:\ArmA\Tools\FSM Editor Personal Edition\scriptedFSM.cfg, Gender Selection">*/
|
||||
/*%FSM<COMPILE "F:\Program Files (x86)\Bohemia Interactive\Tools\FSM Editor Personal Edition\scriptedFSM.cfg, Gender Selection">*/
|
||||
/*%FSM<HEAD>*/
|
||||
/*
|
||||
item0[] = {"INIT",0,250,-250.000000,-150.000000,-150.000000,-100.000000,0.000000,"INIT"};
|
||||
@ -12,12 +12,12 @@ item7[] = {"Process",2,250,-400.000000,75.000000,-300.000000,125.000000,0.000000
|
||||
item8[] = {"same_gender",4,218,-250.000000,75.000000,-150.000000,125.000000,10.000000,"same" \n "gender"};
|
||||
item9[] = {"other_gender",4,218,-400.000000,150.000000,-300.000000,200.000000,0.000000,"other" \n "gender"};
|
||||
item10[] = {"Send_To_Server",3,250,-125.000000,75.000000,-25.000000,125.000000,0.000000,"Send To Server"};
|
||||
item11[] = {"TODO__ADD_TIMEOUT",4,4314,-275.000000,250.000000,-175.000000,300.000000,0.000000,"TODO:" \n "ADD TIMEOUT" \n "AND LOBBY KICK"};
|
||||
item11[] = {"TODO__ADD_TIMEOUT",4,218,-275.000000,250.000000,-175.000000,300.000000,0.000000,"TODO:" \n "ADD TIMEOUT" \n "AND LOBBY KICK"};
|
||||
item12[] = {"END",1,250,0.000000,450.000000,100.000000,500.000000,0.000000,"END"};
|
||||
item13[] = {"Send_new_selection",2,250,-400.000000,250.000000,-300.000000,300.000000,0.000000,"Send new" \n "selection to" \n "server"};
|
||||
item14[] = {"Select_Model",2,250,-400.000000,350.000000,-300.000000,400.000000,0.000000,"Select Model"};
|
||||
item15[] = {"new_model____pla",4,218,-525.000000,400.000000,-425.000000,450.000000,0.000000,"new model" \n "==" \n "player"};
|
||||
item16[] = {"Setup_EH",2,250,-400.000000,450.000000,-300.000000,500.000000,0.000000,"Setup EH"};
|
||||
item16[] = {"Setup_EH",2,4346,-400.000000,450.000000,-300.000000,500.000000,0.000000,"Setup EH"};
|
||||
item17[] = {"true",8,218,-125.000000,450.000000,-25.000000,500.000000,0.000000,"true"};
|
||||
item18[] = {"____FAKE____",9,720,0.000000,0.000000,0.000000,0.000000,0.000000,"____FAKE____"};
|
||||
link0[] = {0,2};
|
||||
@ -41,8 +41,8 @@ link17[] = {15,16};
|
||||
link18[] = {16,17};
|
||||
link19[] = {17,12};
|
||||
link20[] = {11,18};
|
||||
globals[] = {25.000000,1,0,0,0,640,480,1,250,6316128,1,-786.968628,194.189285,571.765747,-266.728790,1066,911,1};
|
||||
window[] = {2,-1,-1,-1,-1,753,25,1063,25,3,1084};
|
||||
globals[] = {25.000000,1,0,0,0,640,480,1,250,6316128,1,-825.287720,232.508224,685.682007,60.530540,687,630,1};
|
||||
window[] = {2,-1,-1,-1,-1,884,156,1194,156,3,705};
|
||||
*//*%FSM</HEAD>*/
|
||||
class FSM
|
||||
{
|
||||
@ -156,8 +156,8 @@ class FSM
|
||||
class Send_To_Server
|
||||
{
|
||||
name = "Send_To_Server";
|
||||
init = /*%FSM<STATEINIT""">*/"EPOCH_respawnPlayer_PVS = [player, Epoch_personalToken];" \n
|
||||
"publicVariableServer ""EPOCH_respawnPlayer_PVS"";"/*%FSM</STATEINIT""">*/;
|
||||
init = /*%FSM<STATEINIT""">*/"[player, Epoch_personalToken] remoteExec [""EPOCH_server_respawnPlayer"",2];" \n
|
||||
""";"/*%FSM</STATEINIT""">*/;
|
||||
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||
class Links
|
||||
{
|
||||
@ -190,8 +190,8 @@ class FSM
|
||||
class Send_new_selection
|
||||
{
|
||||
name = "Send_new_selection";
|
||||
init = /*%FSM<STATEINIT""">*/"EPOCH_respawnPlayer_PVS = [player, Epoch_personalToken,EPOCH_PlayerIsMale];" \n
|
||||
"publicVariableServer ""EPOCH_respawnPlayer_PVS"";"/*%FSM</STATEINIT""">*/;
|
||||
init = /*%FSM<STATEINIT""">*/"[player, Epoch_personalToken,EPOCH_PlayerIsMale] remoteExec [""EPOCH_server_respawnPlayer"",2];" \n
|
||||
""/*%FSM</STATEINIT""">*/;
|
||||
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||
class Links
|
||||
{
|
||||
@ -246,13 +246,9 @@ class FSM
|
||||
class Setup_EH
|
||||
{
|
||||
name = "Setup_EH";
|
||||
init = /*%FSM<STATEINIT""">*/"player addEventHandler [""Respawn"", {(_this select 0) call EPOCH_clientRespawn}];" \n
|
||||
"player addEventHandler [""Put"", {(_this select 1) call EPOCH_interact;_this call EPOCH_PutHandler}];" \n
|
||||
"player addEventHandler [""Take"", {(_this select 1) call EPOCH_interact;_this call EPOCH_UnisexCheck}];" \n
|
||||
"player addEventHandler [""InventoryClosed"", {if !(EPOCH_arr_interactedObjs isEqualTo[]) then {EPOCH_arr_interactedObjs remoteExec[""EPOCH_server_save_vehicles"", 2]; EPOCH_arr_interactedObjs = [];};}];" \n
|
||||
"player addEventHandler [""InventoryOpened"", {_this spawn EPOCH_initUI; (locked (_this select 1) in [2, 3] || (_this select 1) getVariable[""EPOCH_Locked"", false])}];" \n
|
||||
"player addEventHandler [""Fired"", {_this call EPOCH_fnc_playerFired}];" \n
|
||||
"player addEventHandler [""Killed"", {_this call EPOCH_fnc_playerDeath}];"/*%FSM</STATEINIT""">*/;
|
||||
init = /*%FSM<STATEINIT""">*/"{" \n
|
||||
" player addEventHandler [_x,([""CfgEpochClient"", _x, """"] call EPOCH_fnc_returnConfigEntryV2)];" \n
|
||||
"} forEach ([""CfgEpochClient"", ""addEventHandler"", []] call EPOCH_fnc_returnConfigEntryV2);"/*%FSM</STATEINIT""">*/;
|
||||
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||
class Links
|
||||
{
|
||||
@ -284,7 +280,7 @@ class FSM
|
||||
initState="INIT";
|
||||
finalStates[] =
|
||||
{
|
||||
"END"
|
||||
"END",
|
||||
};
|
||||
};
|
||||
/*%FSM</COMPILE>*/
|
||||
/*%FSM</COMPILE>*/
|
File diff suppressed because it is too large
Load Diff
@ -49,8 +49,8 @@ class FSM
|
||||
"" \n
|
||||
"" \n
|
||||
"if !(isNull _unit) then {" \n
|
||||
" EPOCH_TEMPOBJ_PVS = _unit;" \n
|
||||
" publicVariableServer ""EPOCH_TEMPOBJ_PVS"";" \n
|
||||
"" \n
|
||||
" [_unit] remoteExec [""EPOCH_localCleanup"",2];" \n
|
||||
"};" \n
|
||||
"" \n
|
||||
"_randomGroan = {" \n
|
||||
@ -59,7 +59,7 @@ class FSM
|
||||
"" \n
|
||||
"_unit say3D _sound;" \n
|
||||
"EPOCH_say3D_PVS = [player, _unit,(EPOCH_sounds find _sound), Epoch_personalToken];" \n
|
||||
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
|
||||
"EPOCH_say3D_PVS remoteExec [""EPOCH_server_handle_say3D"",2];" \n
|
||||
"};" \n
|
||||
"" \n
|
||||
"_sMarker = objNull;" \n
|
||||
@ -610,4 +610,4 @@ class FSM
|
||||
{
|
||||
"end"
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -95,7 +95,7 @@ class FSM
|
||||
"_sound = ""sapper_explode"";" \n
|
||||
"_unit say3D _sound;" \n
|
||||
"EPOCH_say3D_PVS = [player,_unit,(EPOCH_sounds find _sound),Epoch_personalToken];" \n
|
||||
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
|
||||
"EPOCH_say3D_PVS remoteExec [""EPOCH_server_handle_say3D"",2];" \n
|
||||
"_unit playMoveNow ""Unconscious"";" \n
|
||||
"" \n
|
||||
"";
|
||||
@ -174,8 +174,8 @@ class FSM
|
||||
{
|
||||
name = "do_boom";
|
||||
itemno = ;
|
||||
init = "EPOCH_SapperObjs_PVS = [_bomb, player, Epoch_personalToken,_unit,_unit];" \n
|
||||
"publicVariableServer ""EPOCH_SapperObjs_PVS"";" \n
|
||||
init = "" \n
|
||||
"[_bomb, player, Epoch_personalToken,_unit,_unit] remoteExec [""EPOCH_server_handle_sapperObjs"",2];" \n
|
||||
"" \n
|
||||
"_bomb = objNull;" \n
|
||||
"_finalPos = getPosATL _unit;" \n
|
||||
@ -285,4 +285,4 @@ class FSM
|
||||
{
|
||||
"end"
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -13,6 +13,5 @@
|
||||
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_code/compile/EPOCH_EnterBuilding.sqf
|
||||
*/
|
||||
if !(isNull _this) then{
|
||||
EPOCH_oneWayTP = [player,_this,Epoch_personalToken];
|
||||
publicVariableServer "EPOCH_oneWayTP";
|
||||
[player,_this,Epoch_personalToken] remoteExec ["EPOCH_server_teleportPlayer",2];
|
||||
};
|
||||
|
@ -13,8 +13,7 @@
|
||||
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_code/compile/EPOCH_LootIT.sqf
|
||||
*/
|
||||
if (!isNull _this) then {
|
||||
EPOCH_lootContainer = [_this,player,Epoch_personalToken];
|
||||
publicVariableServer "EPOCH_lootContainer";
|
||||
[_this,player,Epoch_personalToken] remoteExec ["EPOCH_server_lootContainer",2];
|
||||
|
||||
if (typeof _this == "wardrobe_EPOCH") then {
|
||||
if !(_this getVariable["MIRROR_SETUP", false]) then {
|
||||
|
@ -17,67 +17,6 @@ _woman = getNumber(configFile >> "CfgVehicles" >> (typeOf player) >> "woman");
|
||||
_class = _this select 2;
|
||||
_config = configfile >> "cfgweapons" >> _class;
|
||||
|
||||
/*
|
||||
_sleepAndCheck = {
|
||||
_good = true;
|
||||
_failcount = 0;
|
||||
switch _this do {
|
||||
case 0: {
|
||||
while {true} do {
|
||||
if !(local(backpackContainer player)) then {
|
||||
_good = false;
|
||||
_failcount = _failcount + 1;
|
||||
} else {
|
||||
_good = true;
|
||||
};
|
||||
if (_good) exitWith {};
|
||||
if (_failcount > 5) exitWith { removeBackpack player; };
|
||||
sleep 0.5;
|
||||
};
|
||||
};
|
||||
case 1: {
|
||||
while {true} do {
|
||||
if !(local(vestContainer player)) then {
|
||||
_good = false;
|
||||
_failcount = _failcount + 1;
|
||||
} else {
|
||||
_good = true;
|
||||
};
|
||||
if (_good) exitWith{};
|
||||
if (_failcount > 5) exitWith{ removeVest player; };
|
||||
sleep 0.5;
|
||||
};
|
||||
};
|
||||
case 2: {
|
||||
while {true} do {
|
||||
if !(local(uniformContainer player)) then {
|
||||
_good = false;
|
||||
_failcount = _failcount + 1;
|
||||
} else {
|
||||
_good = true;
|
||||
};
|
||||
if (_good) exitWith{};
|
||||
if (_failcount > 5) exitWith{ removeUniform player; };
|
||||
sleep 0.5;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
if (isclass _config) then {
|
||||
_infoType = getnumber(_config >> "itemInfo" >> "type");
|
||||
switch _infoType do {
|
||||
case 701: { 1 spawn _sleepAndCheck; };
|
||||
case 801: { 2 spawn _sleepAndCheck; };
|
||||
};
|
||||
} else {
|
||||
if (getNumber(configFile >> "CfgVehicles" >> _class >> "isbackpack") == 1) then {
|
||||
0 spawn _sleepAndCheck;
|
||||
};
|
||||
};
|
||||
*/
|
||||
|
||||
_mags = (magazines player) + (handgunMagazine player);
|
||||
|
||||
// TODO optimize
|
||||
@ -115,28 +54,14 @@ if (_woman == 1) then {
|
||||
_vest = vest player;
|
||||
if (_class == _vest) then {
|
||||
if (_femaleVariant != _vest) then {
|
||||
|
||||
/* // everyContainer not working in 1.20
|
||||
_holder = _this select 1;
|
||||
_containers = (everyContainer _holder) select 0;
|
||||
_mags = magazinesAmmoFull _container;
|
||||
_weps = weaponCargo vestContainer _container;
|
||||
_item = itemCargo vestContainer _container;
|
||||
*/
|
||||
// get items in existing vest
|
||||
_vestItems = vestItems player;
|
||||
// remove vest
|
||||
removeVest player;
|
||||
// replace with female variant
|
||||
player addVest _femaleVariant;
|
||||
/*
|
||||
{
|
||||
if ((_x select 4) == "Vest") then {
|
||||
player addMagazine [(_x select 0),(_x select 1)]
|
||||
}
|
||||
} forEach _mags;
|
||||
|
||||
{
|
||||
player addItemToVest _x;
|
||||
} forEach (_weps+_item);
|
||||
*/
|
||||
|
||||
// readd items to players vest
|
||||
{player addItemToVest _x} forEach _vestItems;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -25,19 +25,26 @@ _object = objNull;
|
||||
_type = 0;
|
||||
|
||||
_config = 'CfgEpochClient' call EPOCH_returnConfig;
|
||||
_treesLootList = getArray(_config >> worldname >> "Trees");
|
||||
_bushesLootList = getArray(_config >> worldname >> "Bushes");
|
||||
|
||||
{
|
||||
_strObj = str _x;
|
||||
_str = str _x;
|
||||
_sel_object = _x;
|
||||
_findStart = _strObj find ": ";
|
||||
_findStart = _str find ": ";
|
||||
if (_findStart != -1) then{
|
||||
_p3dName = _strObj select[_findStart + 2, 999];
|
||||
if (_p3dName in _treesLootList) then{
|
||||
|
||||
_start = _findStart + 2;
|
||||
_end = (_str find ".") - _start;
|
||||
_p3dName = _str select[_start, _end];
|
||||
// diag_log format ["DEBUG: _p3dName %1",_p3dName];
|
||||
if (_p3dName find " " != -1) then {
|
||||
(_p3dName splitString " ") joinString "_"; // replace spaces with underscores
|
||||
};
|
||||
_finalConfig = (_config >> "WorldInteractions" >> (_p3dName + "_p3d"));
|
||||
|
||||
if (getNumber(_finalConfig >> "tree") == 1) then{
|
||||
_object = _sel_object;
|
||||
};
|
||||
if (_p3dName in _bushesLootList) then{
|
||||
if (getNumber(_finalConfig >> "bush") == 1) then{
|
||||
_type = 1;
|
||||
_object = _sel_object;
|
||||
};
|
||||
@ -47,7 +54,6 @@ _bushesLootList = getArray(_config >> worldname >> "Bushes");
|
||||
|
||||
if (!isNull _object) then {
|
||||
if (alive _object) then {
|
||||
EPOCH_knockDownTree = [_object,_type,player,EPOCH_personalToken];
|
||||
publicVariableServer "EPOCH_knockDownTree";
|
||||
[_object,_type,player,EPOCH_personalToken] remoteExec ["EPOCH_server_knockDownTree",2];
|
||||
};
|
||||
};
|
||||
|
@ -61,8 +61,6 @@ _giveAttributes = {
|
||||
_return = format["Immunity: %1%2 (%3/%4)<br />", _addPlus, _data, EPOCH_playerImmunity, 100];
|
||||
};
|
||||
case 6: {
|
||||
// EPOCH_playerToxicity = ((EPOCH_playerToxicity + _data) min 100) max 0;
|
||||
// new random tox
|
||||
_randomData = round(random _data);
|
||||
EPOCH_playerToxicity = ((EPOCH_playerToxicity + _randomData) min 100) max 0;
|
||||
_return = format["Toxicity: %1%2 (%3/%4)<br />", _addPlus, _randomData, EPOCH_playerToxicity, 100];
|
||||
@ -72,6 +70,7 @@ _giveAttributes = {
|
||||
_return = format["Stamina: %1%2 (%3/%4)<br />", _addPlus, _data, EPOCH_playerStamina, EPOCH_playerStaminaMax];
|
||||
};
|
||||
case 8: {
|
||||
// this is handled server side
|
||||
//EPOCH_playerCrypto = ((EPOCH_playerCrypto + _data) min 25000) max 0;
|
||||
//_return = format["Krypto: %1%2 (%3)<br />", _addPlus, _data, EPOCH_playerCrypto];
|
||||
};
|
||||
@ -79,6 +78,20 @@ _giveAttributes = {
|
||||
EPOCH_playerBloodP = ((EPOCH_playerBloodP + _data) min 190) max 0;
|
||||
_return = format["Blood Pressure: %1%2 (%3/%4)<br />", _addPlus, _data, EPOCH_playerBloodP, 100];
|
||||
};
|
||||
case 10: {
|
||||
EPOCH_playerKarma = ((EPOCH_playerKarma + _data) min 50000) max -50000;
|
||||
_return = format["Karma: %1%2 (%3/%4)<br />", _addPlus, _data, EPOCH_playerKarma, 50000];
|
||||
};
|
||||
case 11: {
|
||||
EPOCH_playerAlcohol = ((EPOCH_playerAlcohol + _data) min 100) max 0;
|
||||
_return = format["Alcohol: %1%2 (%3/%4)<br />", _addPlus, _data, EPOCH_playerAlcohol, 100];
|
||||
};
|
||||
case 12: {
|
||||
EPOCH_playerRadiation = ((EPOCH_playerRadiation + _data) min 100) max 0;
|
||||
_return = format["Radiation: %1%2 (%3/%4)<br />", _addPlus, _data, EPOCH_playerRadiation, 100];
|
||||
};
|
||||
|
||||
|
||||
};
|
||||
};
|
||||
_return
|
||||
@ -86,9 +99,7 @@ _giveAttributes = {
|
||||
|
||||
_unifiedInteract = {
|
||||
if (_item call _removeItem) then {
|
||||
if (_interactReturnOnUse != "") then {
|
||||
player addMagazine _interactReturnOnUse;
|
||||
};
|
||||
_interactReturnOnUse call EPOCH_fnc_addItemOverflow;
|
||||
_output = "";
|
||||
{
|
||||
_output = _output + ([_forEachIndex, _x] call _giveAttributes);
|
||||
@ -100,6 +111,38 @@ _unifiedInteract = {
|
||||
};
|
||||
|
||||
switch _interactOption do {
|
||||
case 0: {
|
||||
_magazineSizeMax = getNumber (_config >> "count");
|
||||
// allow repack for all magazines with greater than 1 bullet
|
||||
if (_magazineSizeMax > 1) then {
|
||||
|
||||
_magazineSize = 0;
|
||||
_magazinesAmmoFull = magazinesAmmoFull player;
|
||||
{
|
||||
if (_item isEqualTo (_x select 0)) then {
|
||||
if (!(_x select 2)) then {
|
||||
_magazineSize = _magazineSize + (_x select 1);
|
||||
};
|
||||
};
|
||||
} forEach _magazinesAmmoFull;
|
||||
|
||||
// remove all
|
||||
player removeMagazines _item;
|
||||
|
||||
// Add full magazines back to player
|
||||
for "_i" from 1 to floor (_magazineSize / _magazineSizeMax) do
|
||||
{
|
||||
player addMagazine [_item, _magazineSizeMax];
|
||||
//diag_log format ["DEBUG: added full mag %1", _magazineSizeMax];
|
||||
};
|
||||
// Add last non full magazine
|
||||
if ((_magazineSize % _magazineSizeMax) > 0) then {
|
||||
player addMagazine [_item, floor (_magazineSize % _magazineSizeMax)];
|
||||
//diag_log format ["DEBUG: added remainder %1", floor (_magazineSize % _magazineSizeMax)];
|
||||
};
|
||||
_dt = ["<t size='0.8' shadow='0' color='#99ffffff'>Ammo Repacked</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
|
||||
};
|
||||
};
|
||||
case 1: _unifiedInteract; // Eat 1
|
||||
case 2: _unifiedInteract; //Drink 2
|
||||
case 3: { // Build 3
|
||||
@ -158,34 +201,49 @@ switch _interactOption do {
|
||||
if (cursorTarget in _vehicles) then {
|
||||
_vehicle = cursorTarget;
|
||||
_currentFuel = fuel _vehicle;
|
||||
_canCapacity = 10;
|
||||
_canCapacity = _interactAttributes param [0,10];
|
||||
_fuelCapacity = getNumber (configfile >> "CfgVehicles" >> (typeOf _vehicle) >> "fuelCapacity");
|
||||
_currentFuel = _currentFuel * _fuelCapacity;
|
||||
_newFuel = _currentFuel + _canCapacity;
|
||||
_newFuel = _newFuel / _fuelCapacity;
|
||||
|
||||
if (_item call _removeItem) then {
|
||||
player addMagazine "jerrycanE_epoch";
|
||||
EPOCH_fillVehicle_PVS = [_vehicle,_newFuel,player,Epoch_personalToken];
|
||||
publicVariableServer "EPOCH_fillVehicle_PVS";
|
||||
_interactReturnOnUse call EPOCH_fnc_addItemOverflow;
|
||||
// send
|
||||
[_vehicle,_newFuel,player,Epoch_personalToken] remoteExec ["EPOCH_server_fillVehicle",2];
|
||||
|
||||
_dt = ["<t size='0.8' shadow='0' color='#99ffffff'>Fuel Added</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
|
||||
};
|
||||
};
|
||||
};
|
||||
case 5: {
|
||||
_vehicles = player nearEntities [["LandVehicle","Ship","Air","Tank"], 6];
|
||||
_canCapacity = _interactAttributes param [0,10];
|
||||
|
||||
if (cursorTarget in _vehicles) then {
|
||||
_vehicle = cursorTarget;
|
||||
_canCapacity = 10;
|
||||
_fuelCapacity = getNumber (configfile >> "CfgVehicles" >> (typeOf _vehicle) >> "fuelCapacity");
|
||||
_newFuel = (((fuel _vehicle) * _fuelCapacity) - _canCapacity) / _fuelCapacity;
|
||||
|
||||
//diag_log format["FIND fill _newFuel %1 capacity: %2 current: %3",_newFuel,_fuelCapacity,_currentFuel];
|
||||
if (_newFuel > 0) then {
|
||||
if (_item call _removeItem) then {
|
||||
player addMagazine "jerrycan_epoch";
|
||||
EPOCH_fillVehicle_PVS = [_vehicle,_newFuel,player,Epoch_personalToken];
|
||||
publicVariableServer "EPOCH_fillVehicle_PVS";
|
||||
_interactReturnOnUse call EPOCH_fnc_addItemOverflow;
|
||||
[_vehicle,_newFuel,player,Epoch_personalToken] remoteExec ["EPOCH_server_fillVehicle",2];
|
||||
_dt = ["<t size='0.8' shadow='0' color='#99ffffff'>Fuel Siphoned</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
|
||||
};
|
||||
} else {
|
||||
_dt = ["<t size='0.8' shadow='0' color='#99ffffff'>Not Enough Fuel</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
|
||||
};
|
||||
} else {
|
||||
|
||||
// find any other nearby fuel sources
|
||||
_transportFuel = 0;
|
||||
{
|
||||
_transportFuel = _transportFuel + getNumber (configFile >> "CfgVehicles" >> (typeOf _x) >> "transportFuel");
|
||||
} forEach (player nearObjects["ALL", 6]);
|
||||
|
||||
if (_transportFuel > _canCapacity) then {
|
||||
if (_item call _removeItem) then {
|
||||
_interactReturnOnUse call EPOCH_fnc_addItemOverflow;
|
||||
_dt = ["<t size='0.8' shadow='0' color='#99ffffff'>Fuel Siphoned</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
|
||||
};
|
||||
} else {
|
||||
@ -222,15 +280,13 @@ switch _interactOption do {
|
||||
if (local _vehicle) then {
|
||||
[_vehicle, [_currentHIT, _newDMG]] call EPOCH_client_repairVehicle;
|
||||
} else {
|
||||
EPOCH_repairVehicle_PVS = [_vehicle,[_currentHIT,_newDMG],player,Epoch_personalToken];
|
||||
publicVariableServer "EPOCH_repairVehicle_PVS";
|
||||
[_vehicle,[_currentHIT,_newDMG],player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2];
|
||||
};
|
||||
|
||||
//diag_log format["DEBUG HITPOINT REPAIRED: %1 %2 %3", _currentHIT, _newDMG, _item];
|
||||
} else {
|
||||
if ((damage _vehicle) > 0) then {
|
||||
EPOCH_repairVehicle_PVS = [_vehicle,["ALL",0],player,Epoch_personalToken];
|
||||
publicVariableServer "EPOCH_repairVehicle_PVS";
|
||||
[_vehicle,["ALL",0],player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2];
|
||||
};
|
||||
};
|
||||
_dt = ["<t size='0.8' shadow='0' color='#99ffffff'>Vehicle Partially Repaired</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
|
||||
@ -242,8 +298,7 @@ switch _interactOption do {
|
||||
_vehicle = cursorTarget;
|
||||
if (_vehicle in _vehicles) then {
|
||||
if (_item call _removeItem) then {
|
||||
EPOCH_repairVehicle_PVS = [_vehicle,["ALL",0],player,Epoch_personalToken];
|
||||
publicVariableServer "EPOCH_repairVehicle_PVS";
|
||||
[_vehicle,["ALL",0],player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2];
|
||||
_dt = ["<t size='0.8' shadow='0' color='#99ffffff'>Vehicle Fully Repaired</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
|
||||
};
|
||||
};
|
||||
@ -265,8 +320,7 @@ switch _interactOption do {
|
||||
_paintCanIndex = getNumber(configfile >> "CfgMagazines" >> _item >> "textureIndex");
|
||||
_paintCanColor = getText(configfile >> "CfgMagazines" >> _item >> "colorName");
|
||||
|
||||
EPOCH_PAINTBUILD = [_vehicle,_paintCanIndex,player,Epoch_personalToken];
|
||||
publicVariableServer "EPOCH_PAINTBUILD";
|
||||
[_vehicle,_paintCanIndex,player,Epoch_personalToken] remoteExec ["EPOCH_server_paintBUILD",2];
|
||||
|
||||
_msg = format["Wall Painted %1", _paintCanColor];
|
||||
_dt = [format["<t size='0.8' shadow='0' color='#99ffffff'>%1</t>", _msg], 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
|
||||
@ -285,22 +339,27 @@ switch _interactOption do {
|
||||
if (_vehicle in _vehicles) then {
|
||||
if (damage _vehicle != 0) then {
|
||||
if (_item call _removeItem) then {
|
||||
EPOCH_repairVehicle_PVS = [_vehicle,["ALL",0],player,Epoch_personalToken];
|
||||
publicVariableServer "EPOCH_repairVehicle_PVS";
|
||||
[_vehicle,["ALL",0],player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2];
|
||||
_dt = ["<t size = '0.8' shadow = '0' color = '#99ffffff'>Healed other player</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
|
||||
};
|
||||
};
|
||||
} else {
|
||||
if (damage player != 0) then {
|
||||
if (_item call _removeItem) then {
|
||||
EPOCH_repairVehicle_PVS = [player,["ALL",0],player,Epoch_personalToken];
|
||||
publicVariableServer "EPOCH_repairVehicle_PVS";
|
||||
[player,["ALL",0],player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2];
|
||||
_dt = ["<t size = '0.8' shadow = '0' color = '#99ffffff'>Healed yourself</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
case 14: { // Unpack Backpack
|
||||
if (_item call _removeItem) then {
|
||||
[_interactReturnOnUse,player,Epoch_personalToken] remoteExec ["EPOCH_server_unpackBackpack",2];
|
||||
_dt = ["<t size = '0.8' shadow = '0' color = '#99ffffff'>Unpacked backpack</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
|
||||
};
|
||||
};
|
||||
|
||||
default {
|
||||
// bottom
|
||||
_dt = ["<t size='0.8' shadow='0' color='#99ffffff'>Found nothing</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
|
||||
|
@ -15,57 +15,48 @@
|
||||
private["_hours"];
|
||||
_hours = floor(servertime/60/60);
|
||||
|
||||
_customVars = "";
|
||||
{
|
||||
if !(_x in ["AliveTime","SpawnArray","HitPoints"]) then {
|
||||
_customVars = _customVars + format["<t size='1.15' font='puristaLight' align='left'>%1: </t><t size='1.15' font='puristaLight' align='right'>%2</t><br/>", _x,missionNamespace getVariable [format ["EPOCH_player%1",_x],EPOCH_defaultVars select _forEachIndex]];
|
||||
}
|
||||
}forEach EPOCH_customVars;
|
||||
|
||||
hintSilent parseText format ["
|
||||
<t size='1.25' font='puristaLight' align='center'>Welcome to Epoch Alpha</t><br/>
|
||||
<t size='1.18' font='puristaLight' align='center'>Current Version: %22</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Temp: </t><t size='1.15' font='puristaLight' align='right'>%1</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Blood Pressure: </t><t size='1.15' font='puristaLight' align='right'>%2</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Hunger: </t><t size='1.15' font='puristaLight' align='right'>%3</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Thirst: </t><t size='1.15' font='puristaLight' align='right'>%4</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Energy: </t><t size='1.15' font='puristaLight' align='right'>%5</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Wet: </t><t size='1.15' font='puristaLight' align='right'>%6</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Soiled: </t><t size='1.15' font='puristaLight' align='right'>%7</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Immunity: </t><t size='1.15' font='puristaLight' align='right'>%8</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Toxicity: </t><t size='1.15' font='puristaLight' align='right'>%9</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Stamina: </t><t size='1.15' font='puristaLight' align='right'>%10</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Fatigue: </t><t size='1.15' font='puristaLight' align='right'>%11</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Damage: </t><t size='1.15' font='puristaLight' align='right'>%12</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Bleeding: </t><t size='1.15' font='puristaLight' align='right'>%13</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Bleed Time: </t><t size='1.15' font='puristaLight' align='right'>%14</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Oxygen: </t><t size='1.15' font='puristaLight' align='right'>%15</t><br/>
|
||||
<t size='1.18' font='puristaLight' align='center'>Current Version: %1</t><br/>
|
||||
|
||||
" + _customVars + "
|
||||
<br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Air Temp: </t><t size='1.15' font='puristaLight' align='right'>%16</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Water Temp: </t><t size='1.15' font='puristaLight' align='right'>%17</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Rain: </t><t size='1.15' font='puristaLight' align='right'>%18</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Overcast: </t><t size='1.15' font='puristaLight' align='right'>%19</t><br/>
|
||||
|
||||
<t size='1.15' font='puristaLight' align='left'>Fatigue: </t><t size='1.15' font='puristaLight' align='right'>%2</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Damage: </t><t size='1.15' font='puristaLight' align='right'>%3</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Bleeding: </t><t size='1.15' font='puristaLight' align='right'>%4</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Bleed Time: </t><t size='1.15' font='puristaLight' align='right'>%5</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Oxygen: </t><t size='1.15' font='puristaLight' align='right'>%6</t><br/>
|
||||
<br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Crypto: </t><t size='1.15' font='puristaLight' align='right'>%20</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Hours Alive: </t><t size='1.15' font='puristaLight' align='right'>%21</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>FPS: </t><t size='1.15' font='puristaLight' align='right'>%23</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Server uptime: </t><t size='1.15' font='puristaLight' align='right'>%24h %25m</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Server FPS: </t><t size='1.15' font='puristaLight' align='right'>%26</t><br/>",
|
||||
EPOCH_playerTemp,
|
||||
EPOCH_playerBloodP,
|
||||
EPOCH_playerHunger,
|
||||
EPOCH_playerThirst,
|
||||
EPOCH_playerEnergy,
|
||||
EPOCH_playerWet,
|
||||
EPOCH_playerSoiled,
|
||||
EPOCH_playerImmunity,
|
||||
EPOCH_playerToxicity,
|
||||
EPOCH_playerStamina,
|
||||
<t size='1.15' font='puristaLight' align='left'>Air Temp: </t><t size='1.15' font='puristaLight' align='right'>%7</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Water Temp: </t><t size='1.15' font='puristaLight' align='right'>%8</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Rain: </t><t size='1.15' font='puristaLight' align='right'>%9</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Overcast: </t><t size='1.15' font='puristaLight' align='right'>%10</t><br/>
|
||||
<br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Hours Alive: </t><t size='1.15' font='puristaLight' align='right'>%11</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>FPS: </t><t size='1.15' font='puristaLight' align='right'>%12</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Server uptime: </t><t size='1.15' font='puristaLight' align='right'>%13h %14m</t><br/>
|
||||
<t size='1.15' font='puristaLight' align='left'>Server FPS: </t><t size='1.15' font='puristaLight' align='right'>%15</t><br/>",
|
||||
getText(configFile >> "CfgMods" >> "Epoch" >> "version"),
|
||||
(getFatigue player),
|
||||
(damage player),
|
||||
(isBleeding player),
|
||||
(getBleedingRemaining player),
|
||||
(getOxygenRemaining player),
|
||||
|
||||
EPOCH_CURRENT_WEATHER,
|
||||
(EPOCH_CURRENT_WEATHER/2),
|
||||
rain,
|
||||
overcast,
|
||||
EPOCH_playerCrypto,
|
||||
|
||||
round(EPOCH_playerAliveTime/360)/10,
|
||||
getText(configFile >> "CfgMods" >> "Epoch" >> "version"),
|
||||
round diag_fps,
|
||||
_hours,
|
||||
round((serverTime/60)-(_hours*60)),
|
||||
|
@ -34,8 +34,8 @@ if (surfaceIsWater _currentPos) then {
|
||||
// Cast
|
||||
_bobber = createVehicle ["Bobber_EPOCH",_currentPos, [], 0, "CAN_COLLIDE"];
|
||||
|
||||
EPOCH_TEMPOBJ_PVS = [_bobber];
|
||||
publicVariableServer "EPOCH_TEMPOBJ_PVS";
|
||||
// send to server
|
||||
[_bobber] remoteExec ["EPOCH_localCleanup",2];
|
||||
|
||||
_bobber setPosASL _currentPos;
|
||||
_bobber setVariable ["EPOCH_bobberTime", diag_tickTime];
|
||||
|
@ -15,25 +15,14 @@
|
||||
private["_found", "_return", "_foundLocalAnimal", "_str", "_blood", "_foundTerminal", "_index"];
|
||||
|
||||
_return = false;
|
||||
|
||||
if (isNil "EPOCH_trashLootList") then{
|
||||
_config = 'CfgEpochClient' call EPOCH_returnConfig;
|
||||
EPOCH_trashLootList = [];
|
||||
{
|
||||
EPOCH_trashLootList pushBack getArray(_config >> worldname >> _x);
|
||||
} forEach(getArray(_config >> worldname >> "TrashClasses"));
|
||||
};
|
||||
if (isNil "EPOCH_atmList") then{
|
||||
_config = 'CfgEpochClient' call EPOCH_returnConfig;
|
||||
EPOCH_atmList = getArray(_config >> worldname >> "ATM");
|
||||
};
|
||||
_config = 'CfgEpochClient' call EPOCH_returnConfig;
|
||||
|
||||
if (diag_tickTime - EPOCH_lastTrash > 2) then {
|
||||
EPOCH_lastTrash = diag_tickTime;
|
||||
|
||||
_destroyTrashObj = objNull;
|
||||
_lootAnimalObj = objNull;
|
||||
EPOCH_bankTerminal = objNull;
|
||||
_bankTerminal = objNull;
|
||||
_trashType = 0;
|
||||
|
||||
_objects = nearestObjects[player, [], 2];
|
||||
@ -47,19 +36,28 @@ if (diag_tickTime - EPOCH_lastTrash > 2) then {
|
||||
_str = str(_x);
|
||||
_findStart = _str find ": ";
|
||||
if (_findStart != -1) then {
|
||||
_p3dName = _str select[_findStart + 2, 999];
|
||||
|
||||
_start = _findStart + 2;
|
||||
_end = (_str find ".") - _start;
|
||||
_p3dName = _str select[_start, _end];
|
||||
if (_p3dName find " " != -1) then {
|
||||
(_p3dName splitString " ") joinString "_"; // replace spaces with underscores
|
||||
};
|
||||
_finalConfig = (_config >> "WorldInteractions" >> (_p3dName + "_p3d"));
|
||||
|
||||
{
|
||||
_found = _p3dName in _x;
|
||||
_found = (getNumber(_finalConfig >> _x) == 1);
|
||||
if (_found) exitWith{ _trashType = _forEachIndex };
|
||||
} forEach EPOCH_trashLootList;
|
||||
_foundTerminal = _p3dName in EPOCH_atmList;
|
||||
} forEach getArray(_config >> worldname >> "TrashClasses");
|
||||
// TrashClasses[] = { "Trash", "TrashSmall", "TrashVehicle", "PumpkinPatch", "TrashFood" };
|
||||
|
||||
//_foundTerminal = _p3dName in EPOCH_atmList;
|
||||
_foundTerminal = (getNumber(_finalConfig >> "bankTerminal") == 1);
|
||||
};
|
||||
};
|
||||
} else {
|
||||
if (alive _x) then {
|
||||
if ((typeOf _x) in["Land_PhoneBooth_02_F", "Land_PhoneBooth_01_F", "Land_Atm_01_F", "Land_Atm_02_F", "Land_Laptop_device_F"]) then {
|
||||
_foundTerminal = true
|
||||
};
|
||||
_foundTerminal = (getNumber(_config >> "WorldInteractions" >> (typeOf _x) >> "bankTerminal") == 1);
|
||||
if (_x isKindOf "Snake_random_EPOCH") then {
|
||||
_foundLocalAnimal = true;
|
||||
if (random 1 < 0.1) then {
|
||||
@ -74,25 +72,22 @@ if (diag_tickTime - EPOCH_lastTrash > 2) then {
|
||||
};
|
||||
if (_found) exitWith{ _destroyTrashObj = _x };
|
||||
if (_foundLocalAnimal) exitWith{ _lootAnimalObj = _x };
|
||||
if (_foundTerminal) exitWith{ EPOCH_bankTerminal = _x };
|
||||
if (_foundTerminal) exitWith{ _bankTerminal = _x };
|
||||
|
||||
}forEach _objects;
|
||||
|
||||
if (!isNull _lootAnimalObj) then {
|
||||
EPOCH_lootAnimal = [_lootAnimalObj, player, Epoch_personalToken];
|
||||
_bloodPos = getPosATL _lootAnimalObj;
|
||||
_blood = "BloodSplat" createVehicleLocal _bloodPos;
|
||||
_blood setPosATL _bloodPos;
|
||||
EPOCH_playerSoiled = (EPOCH_playerSoiled + 1) min 100;
|
||||
publicVariableServer "EPOCH_lootAnimal";
|
||||
// send
|
||||
[_lootAnimalObj, player, Epoch_personalToken] remoteExec ["EPOCH_server_lootAnimal",2];
|
||||
_return = true;
|
||||
_dt = ["<t size='0.8' shadow='0' color='#99ffffff'>Object Looted</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
|
||||
};
|
||||
if (!isNull _destroyTrashObj) then {
|
||||
|
||||
EPOCH_destroyTrash = [_destroyTrashObj, _trashType, player, Epoch_personalToken];
|
||||
// hint str EPOCH_destroyTrash;
|
||||
publicVariableServer "EPOCH_destroyTrash";
|
||||
[_destroyTrashObj, _trashType, player, Epoch_personalToken] remoteExec ["EPOCH_server_destroyTrash",2];
|
||||
EPOCH_playerSoiled = (EPOCH_playerSoiled + 1) min 100;
|
||||
_return = true;
|
||||
_dt = ["<t size='0.8' shadow='0' color='#99ffffff'>Object Looted</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
|
||||
@ -110,15 +105,14 @@ if (diag_tickTime - EPOCH_lastTrash > 2) then {
|
||||
_id = [_animal, true] execFSM "\x\addons\a3_epoch_code\System\Animal_brain.fsm";
|
||||
_animals pushBack _animal;
|
||||
};
|
||||
EPOCH_TEMPOBJ_PVS = _animals;
|
||||
publicVariableServer "EPOCH_TEMPOBJ_PVS";
|
||||
_animals remoteExec ["EPOCH_localCleanup",2];
|
||||
};
|
||||
};
|
||||
if (!isNull EPOCH_bankTerminal) then {
|
||||
if (!isNull _bankTerminal) then {
|
||||
// make balance request
|
||||
if (isNil "EPOCH_bankTransferActive") then {
|
||||
EPOCH_storeCrypto_PVS = [player, [], Epoch_personalToken];
|
||||
publicVariableServer "EPOCH_storeCrypto_PVS";
|
||||
[player, [], Epoch_personalToken] remoteExec ["EPOCH_server_storeCrypto",2];
|
||||
|
||||
closeDialog 0;
|
||||
createDialog "InteractBank";
|
||||
|
||||
|
@ -27,25 +27,32 @@ if ((diag_tickTime - EPOCH_lastMineRocks) >= 2) then {
|
||||
_object = objNull;
|
||||
|
||||
_config = 'CfgEpochClient' call EPOCH_returnConfig;
|
||||
_lootables = getArray(_config >> worldname >> "Wrecks");
|
||||
_cinderList = getArray(_config >> worldname >> "Cinder");
|
||||
_rocksList = getArray(_config >> worldname >> "Rocks");
|
||||
|
||||
_found = false;
|
||||
_foundIndex = -1;
|
||||
{
|
||||
_str = str(_x);
|
||||
_findStart = _str find ": ";
|
||||
if (_findStart != -1) then{
|
||||
_p3dName = _str select[_findStart + 2, 999];
|
||||
_found = _p3dName in _rocksList;
|
||||
if (_p3dName in _lootables) then{
|
||||
_found = true;
|
||||
_foundIndex = 1;
|
||||
};
|
||||
if (_p3dName in _cinderList) then{
|
||||
_found = true;
|
||||
_foundIndex = 0;
|
||||
if !(_x isKindOf "All") then {
|
||||
_str = str(_x);
|
||||
_findStart = _str find ": ";
|
||||
if (_findStart != -1) then{
|
||||
|
||||
_start = _findStart + 2;
|
||||
_end = (_str find ".") - _start;
|
||||
_p3dName = _str select[_start, _end];
|
||||
if (_p3dName find " " != -1) then {
|
||||
(_p3dName splitString " ") joinString "_"; // replace spaces with underscores
|
||||
};
|
||||
_finalConfig = (_config >> "WorldInteractions" >> (_p3dName + "_p3d"));
|
||||
|
||||
_found = (getNumber(_finalConfig >> "rock") == 1);
|
||||
if (getNumber(_finalConfig >> "wreck") == 1) then{
|
||||
_found = true;
|
||||
_foundIndex = 1;
|
||||
};
|
||||
if (getNumber(_finalConfig >> "cinder") == 1) then{
|
||||
_found = true;
|
||||
_foundIndex = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
if (_found)exitWith{_object = _x};
|
||||
@ -53,8 +60,7 @@ if ((diag_tickTime - EPOCH_lastMineRocks) >= 2) then {
|
||||
|
||||
if (!isNull _object) then {
|
||||
if (alive _object) then {
|
||||
EPOCH_mineRocks_PVS = [_object, _foundIndex, player, Epoch_personalToken];
|
||||
publicVariableServer "EPOCH_mineRocks_PVS";
|
||||
[_object, _foundIndex, player, Epoch_personalToken] remoteExec ["EPOCH_server_mineRocks",2];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -53,7 +53,7 @@ if (!isNull EPOCH_currentTarget && vehicle player == player) then {
|
||||
case 0: {
|
||||
_stability = 100 - round(damage _currentTarget * 100);
|
||||
_icon = "\x\addons\a3_epoch_code\Data\UI\loading_bar_%1.paa";
|
||||
_text = "Press (Inventory)";
|
||||
_text = "";
|
||||
|
||||
if (_stability < 50) then {
|
||||
_color = [1, 0.5, 0, 0.7];
|
||||
|
@ -4,7 +4,7 @@
|
||||
Contributors:
|
||||
|
||||
Description:
|
||||
test code to replace string in word (old)
|
||||
code to replace string in word
|
||||
|
||||
Licence:
|
||||
Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike
|
||||
@ -12,41 +12,5 @@
|
||||
Github:
|
||||
https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_code/compile/EPOCH_replaceWord.sqf
|
||||
*/
|
||||
private["_nextChar2", "_nextChar1", "_nextChar", "_replaceArray", "_STRING", "_needle", "_replace"];
|
||||
_replaceArray = [];
|
||||
|
||||
_STRING = toArray(_this select 0);
|
||||
_needle = toArray(_this select 1);
|
||||
_replace = toArray(_this select 2);
|
||||
|
||||
{
|
||||
if (_x == (_needle select 0)) then {
|
||||
_nextChar = _forEachIndex + 1;
|
||||
if ((_STRING select _nextChar) == (_needle select 1)) then {
|
||||
_nextChar1 = _nextChar + 1;
|
||||
if ((_STRING select _nextChar1) == (_needle select 2)) then {
|
||||
_nextChar2 = _nextChar1 + 1;
|
||||
|
||||
if ((_STRING select _nextChar2) == (_needle select 3)) then {
|
||||
_nextChar3 = _nextChar2 + 1;
|
||||
|
||||
if ((_STRING select _nextChar3) == (_needle select 4)) then {
|
||||
_nextChar4 = _nextChar3 + 1;
|
||||
|
||||
if ((_STRING select _nextChar4) == (_needle select 5)) then {
|
||||
_replaceArray pushBack[_forEachIndex, _nextChar, _nextChar1, _nextChar2, _nextChar3, _nextChar4];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
}forEach _STRING;
|
||||
{
|
||||
for "_i" from 0 to(count _x - 1) do {
|
||||
_STRING set[_x select _i, _replace select _i];
|
||||
}
|
||||
}forEach _replaceArray;
|
||||
|
||||
toString(_STRING);
|
||||
params ["_STRING","_needle","_replace"];
|
||||
_STRING splitString _needle joinString _replace
|
||||
|
@ -58,5 +58,5 @@ for "_i" from 0 to ((count _arrUnits)-1) do {
|
||||
};
|
||||
|
||||
// cleanup units or (transfer ownership) if player logs out
|
||||
EPOCH_TEMPOBJ_PVS = _units;
|
||||
publicVariableServer "EPOCH_TEMPOBJ_PVS";
|
||||
// send to server
|
||||
_units remoteExec ["EPOCH_localCleanup",2];
|
||||
|
@ -114,6 +114,6 @@ switch _unitClass do {
|
||||
};
|
||||
|
||||
if !(isNull _unit) then {
|
||||
EPOCH_TEMPOBJ_PVS = _unit;
|
||||
publicVariableServer "EPOCH_TEMPOBJ_PVS";
|
||||
// send to server
|
||||
[_unit] remoteExec ["EPOCH_localCleanup",2];
|
||||
};
|
||||
|
@ -134,15 +134,15 @@ if !(isNull _object) then {
|
||||
};
|
||||
|
||||
{
|
||||
_craftItem = _x;
|
||||
_craftQty = 1;
|
||||
if (typeName _x == "ARRAY") then {
|
||||
_craftItem = _x select 0;
|
||||
_craftQty = _x select 1;
|
||||
};
|
||||
for "_i" from 1 to _craftQty do {
|
||||
player addMagazine _craftItem;
|
||||
};
|
||||
_craftItem = _x;
|
||||
_craftQty = 1;
|
||||
if (typeName _x == "ARRAY") then {
|
||||
_craftItem = _x select 0;
|
||||
_craftQty = _x select 1;
|
||||
};
|
||||
for "_i" from 1 to _craftQty do {
|
||||
_craftItem call EPOCH_fnc_addItemOverflow;
|
||||
};
|
||||
}forEach _recipe;
|
||||
|
||||
_dt = [format["<t size='0.8' shadow='0' color='#99ffffff'>%1 part on %2</t>","Removed",_objClass call EPOCH_itemDisplayName], 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
|
||||
|
@ -76,9 +76,7 @@ if (!isNull _this) then {
|
||||
// proceed to send save to server
|
||||
} else {
|
||||
if (_saveCheck) then {
|
||||
EPOCH_SAVEBUILD = [_this, player, Epoch_personalToken];
|
||||
publicVariableServer "EPOCH_SAVEBUILD";
|
||||
//diag_log format["DEBUG SAVE: %1", _this];
|
||||
[_this, player, Epoch_personalToken] remoteExec["EPOCH_server_saveBuilding", 2];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -40,8 +40,7 @@ if (EPOCH_playerCrypto > 0) then {
|
||||
|
||||
EPOCH_maintainLockout = true;
|
||||
|
||||
EPOCH_MAINTBUILD = [_this, player, _maintainCount, Epoch_personalToken];
|
||||
publicVariableServer "EPOCH_MAINTBUILD";
|
||||
[_this, player, _maintainCount, Epoch_personalToken] remoteExec ["EPOCH_server_maintBUILD",2];
|
||||
|
||||
[_rnd,_maintainCount] spawn {
|
||||
params ["_rnd","_maintainCount"];
|
||||
|
@ -82,8 +82,7 @@ if !(_buildingAllowed)exitWith{false};
|
||||
|
||||
_removeParts = getArray(('CfgBaseBuilding' call EPOCH_returnConfig) >> _objType >> "removeParts");
|
||||
if !(_removeParts isEqualTo[]) then{
|
||||
EPOCH_REMBUILD = [_this, player, Epoch_personalToken];
|
||||
publicVariableServer "EPOCH_REMBUILD";
|
||||
[_this, player, Epoch_personalToken] remoteExec ["EPOCH_server_removeBUILD",2];
|
||||
_return = true;
|
||||
_dt = ["<t size='0.8' shadow='0' color='#99ffffff'>Removed</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
|
||||
};
|
||||
|
@ -72,8 +72,7 @@ if (isText(_config)) then {
|
||||
_newObj setposATL (_worldspace select 0);
|
||||
|
||||
if (_textureSlot != 0) then {
|
||||
EPOCH_PAINTBUILD = [_newObj, _textureSlot, player, Epoch_personalToken];
|
||||
publicVariableServer "EPOCH_PAINTBUILD";
|
||||
[_newObj, _textureSlot, player, Epoch_personalToken] remoteExec ["EPOCH_server_paintBUILD",2];
|
||||
};
|
||||
};
|
||||
EP_velocityTransformation = [];
|
||||
|
@ -73,8 +73,8 @@ if (_class != "") then {
|
||||
_pos2 = player modelToWorldVisual[EPOCH_X_OFFSET, EPOCH_Y_OFFSET, EPOCH_Z_OFFSET];
|
||||
|
||||
EPOCH_target = createVehicle[_class, _pos2, [], 0, "CAN_COLLIDE"];
|
||||
EPOCH_TEMPOBJ_PVS = EPOCH_target;
|
||||
publicVariableServer "EPOCH_TEMPOBJ_PVS";
|
||||
// send to server
|
||||
[EPOCH_target] remoteExec ["EPOCH_localCleanup",2];
|
||||
|
||||
if (_pos2 select 2 > _maxHeight) then {
|
||||
_pos2 set[2, _maxHeight];
|
||||
|
@ -124,8 +124,7 @@ if (_object isKindOf "Constructions_static_F") then {
|
||||
|
||||
if (_canUpgradePartCount == _removedPartCount) then {
|
||||
// send to server for upgrade
|
||||
EPOCH_UPBUILD = [_object,player,Epoch_upgradeIndex,Epoch_personalToken];
|
||||
publicVariableServer "EPOCH_UPBUILD";
|
||||
[_object,player,Epoch_upgradeIndex,Epoch_personalToken] remoteExec ["EPOCH_server_upgradeBUILD",2];
|
||||
Epoch_upgradeIndex = nil;
|
||||
_return = true;
|
||||
_dt = ["<t size='0.8' shadow='0' color='#99ffffff'>Upgraded</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
|
||||
|
@ -46,7 +46,7 @@ if !(isNull _this && alive _this) then {
|
||||
_bleedAmount = 30;
|
||||
_bloodpAmount = 3;
|
||||
_soundEffect = "snake_bite0";
|
||||
_canSee = true;
|
||||
_canSee = !(lineIntersects[eyePos _this, aimPos player, _this, player]);
|
||||
_ppEffect = 0;
|
||||
};
|
||||
case "Snake2_random_EPOCH": {
|
||||
@ -57,7 +57,7 @@ if !(isNull _this && alive _this) then {
|
||||
_bleedAmount = 30;
|
||||
_bloodpAmount = 3;
|
||||
_soundEffect = "snake_bite0";
|
||||
_canSee = true;
|
||||
_canSee = !(lineIntersects[eyePos _this, aimPos player, _this, player]);
|
||||
_ppEffect = 0;
|
||||
};
|
||||
case "GreatWhite_F": {
|
||||
@ -101,7 +101,7 @@ if !(isNull _this && alive _this) then {
|
||||
_this say3D _soundEffect;
|
||||
if (_soundEffectGlobal) then {
|
||||
EPOCH_say3D_PVS = [player, _this, _soundEffectIndex, Epoch_personalToken];
|
||||
publicVariableServer "EPOCH_say3D_PVS";
|
||||
EPOCH_say3D_PVS remoteExec ["EPOCH_server_handle_say3D",2];
|
||||
};
|
||||
};
|
||||
if (random 1 < _toxicChance) then {
|
||||
|
@ -50,8 +50,8 @@ if!(isNil "_animalPos") then {
|
||||
|
||||
// diag_log format["DEBUG: spawned %1", _randomAIClass];
|
||||
|
||||
EPOCH_TEMPOBJ_PVS = _animal;
|
||||
publicVariableServer "EPOCH_TEMPOBJ_PVS";
|
||||
// send to server
|
||||
[_animal] remoteExec ["EPOCH_localCleanup",2];
|
||||
|
||||
{
|
||||
_animal disableAI _x;
|
||||
|
@ -19,23 +19,25 @@
|
||||
_this: STRING - Item Class
|
||||
|
||||
Returns:
|
||||
NOTHING
|
||||
BOOL
|
||||
*/
|
||||
private ["_wHPos","_wH","_nearByHolder","_item"];
|
||||
if (_this isEqualTo "") exitWith{false};
|
||||
_item = _this;
|
||||
if (player canAdd _item) then {
|
||||
player addItem _item;
|
||||
player addItem _item;
|
||||
} else {
|
||||
_wH = objNull;
|
||||
_nearByHolder = nearestObjects [position player,["groundWeaponHolder"],3];
|
||||
if (_nearByHolder isEqualTo []) then {
|
||||
_wHPos = player modelToWorld [0,1,0];
|
||||
if (surfaceIsWater _wHPos) then {
|
||||
_wHPos = ASLToATL _wHPos;
|
||||
_wH = objNull;
|
||||
_nearByHolder = nearestObjects [position player,["groundWeaponHolder"],3];
|
||||
if (_nearByHolder isEqualTo []) then {
|
||||
_wHPos = player modelToWorld [0,1,0];
|
||||
if (surfaceIsWater _wHPos) then {
|
||||
_wHPos = ASLToATL _wHPos;
|
||||
};
|
||||
_wH = createVehicle ["groundWeaponHolder",_wHPos, [], 0, "CAN_COLLIDE"];
|
||||
} else {
|
||||
_wH = _nearByHolder select 0;
|
||||
};
|
||||
_wH = createVehicle ["groundWeaponHolder",_wHPos, [], 0, "CAN_COLLIDE"];
|
||||
} else {
|
||||
_wH = _nearByHolder select 0;
|
||||
};
|
||||
_wh addItemCargoGlobal [_item,1];
|
||||
_wh addItemCargoGlobal [_item,1];
|
||||
};
|
||||
true
|
||||
|
@ -32,8 +32,7 @@ if (vehicle _unit != _unit) then {
|
||||
_unit action["Eject", vehicle _unit];
|
||||
};
|
||||
|
||||
EPOCH_deadPlayer_PVS = [player,_killer,toArray profileName,Epoch_personalToken];
|
||||
publicVariableServer "EPOCH_deadPlayer_PVS";
|
||||
[player,_killer,toArray profileName,Epoch_personalToken] remoteExec ["EPOCH_server_deadPlayer",2];
|
||||
|
||||
// disable build mode
|
||||
EPOCH_buildMode = 0;
|
||||
|
@ -55,8 +55,7 @@ switch true do {
|
||||
|
||||
if ("Defib_EPOCH" in _attachments) then {
|
||||
if (!alive _cursorTarget) then {
|
||||
EPOCH_revivePlayer_PVS = [_cursorTarget,player,Epoch_personalToken];
|
||||
publicVariableServer "EPOCH_revivePlayer_PVS";
|
||||
[_cursorTarget,player,Epoch_personalToken] remoteExec ["EPOCH_server_revivePlayer",2];
|
||||
};
|
||||
};
|
||||
} else {
|
||||
@ -83,15 +82,13 @@ switch true do {
|
||||
if (local _cursorTarget) then {
|
||||
[_cursorTarget,[_currentHIT,_newDMG]] call EPOCH_client_repairVehicle;
|
||||
} else {
|
||||
EPOCH_repairVehicle_PVS = [_cursorTarget,[_currentHIT,_newDMG],player,Epoch_personalToken];
|
||||
publicVariableServer "EPOCH_repairVehicle_PVS";
|
||||
[_cursorTarget,[_currentHIT,_newDMG],player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2];
|
||||
};
|
||||
|
||||
//diag_log format["DEBUG HITPOINT REPAIRED: %1 %2 %3", _currentHIT, _newDMG, _attachments];
|
||||
} else {
|
||||
if ((damage _cursorTarget) > 0) then {
|
||||
EPOCH_repairVehicle_PVS = [_cursorTarget,["ALL",0],player,Epoch_personalToken];
|
||||
publicVariableServer "EPOCH_repairVehicle_PVS";
|
||||
[_cursorTarget,["ALL",0],player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -38,9 +38,7 @@ if ((diag_tickTime - _EPOCH_lastSave) >= _time) then {
|
||||
_customVars pushBack (missionNamespace getVariable format["EPOCH_player%1",_x select 0]);
|
||||
} forEach _customVarsInit;
|
||||
|
||||
// TODO: use remoteExec here
|
||||
missionNamespace setVariable ["EPOCH_pushPlayer_PVS",[player,_customVars,missionNamespace getVariable "Epoch_personalToken"]];
|
||||
publicVariableServer "EPOCH_pushPlayer_PVS";
|
||||
[player,_customVars,missionNamespace getVariable "Epoch_personalToken"] remoteExec ["EPOCH_fnc_savePlayer",2];
|
||||
|
||||
missionNamespace setVariable["EPOCH_lastSave", diag_tickTime];
|
||||
};
|
||||
|
@ -248,14 +248,12 @@ if (vehicle player == player) then {
|
||||
if (isTouchingGround player && speed player > 10) then {
|
||||
if ((primaryWeapon player != "") && (currentWeapon player == primaryWeapon player)) then {
|
||||
player switchMove "AovrPercMrunSrasWrflDf";
|
||||
EPOCH_switchMove_PVS = [player, 1, Epoch_personalToken];
|
||||
publicVariableServer "EPOCH_switchMove_PVS";
|
||||
[player, 1, Epoch_personalToken] remoteExec ["EPOCH_server_handle_switchMove",2];
|
||||
_handled = true;
|
||||
} else {
|
||||
if (currentWeapon player == "") then {
|
||||
player switchMove "epoch_unarmed_jump";
|
||||
EPOCH_switchMove_PVS = [player, 2, Epoch_personalToken];
|
||||
publicVariableServer "EPOCH_switchMove_PVS";
|
||||
[player, 2, Epoch_personalToken] remoteExec ["EPOCH_server_handle_switchMove",2];
|
||||
_handled = true;
|
||||
};
|
||||
};
|
||||
@ -268,7 +266,8 @@ if (vehicle player == player) then {
|
||||
};
|
||||
};
|
||||
|
||||
if (_dikCode in(actionKeys "Gear")) then {
|
||||
if (_dikCode in(actionKeys "Gear") && !EPOCH_gearKeyPressed) then {
|
||||
EPOCH_gearKeyPressed = true;
|
||||
if !(isNull EPOCH_Target) then {
|
||||
if !(EPOCH_Target isKindOf "ThingX") then {
|
||||
deleteVehicle EPOCH_Target;
|
||||
@ -280,14 +279,6 @@ if (vehicle player == player) then {
|
||||
if (isTouchingGround player) then {
|
||||
_handled = call EPOCH_lootTrash;
|
||||
};
|
||||
if !(_handled) then {
|
||||
if (!isNull(findDisplay 602)) then { //Inventory Open?
|
||||
(findDisplay 602) closeDisplay 3000;
|
||||
}
|
||||
else {
|
||||
_handled = _ctrl call EPOCH_startInteract;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
}; // end player only code
|
||||
|
@ -36,5 +36,9 @@ if (_dikCode == EPOCH_keysAction) then {
|
||||
true call Epoch_dynamicMenuCleanup;
|
||||
};
|
||||
|
||||
if (_dikCode in(actionKeys "Gear")) then {
|
||||
EPOCH_gearKeyPressed = false;
|
||||
};
|
||||
|
||||
|
||||
_handled
|
||||
|
@ -43,6 +43,7 @@ EPOCH_InteractedItem = [_text,_data,_pic];
|
||||
|
||||
_interactOption = 0;
|
||||
_buttonTXT = "";
|
||||
_magCount = 1;
|
||||
if (isClass (configfile >> "cfgweapons" >> _data)) then {
|
||||
_type = getNumber (configfile >> "CfgWeapons" >> _data >> "type");
|
||||
_interactOption = getNumber (configfile >> "CfgWeapons" >> _data >> "interactAction");
|
||||
@ -51,6 +52,7 @@ if (isClass (configfile >> "cfgweapons" >> _data)) then {
|
||||
_type = getNumber (configfile >> "CfgMagazines" >> _data >> "type");
|
||||
_interactOption = getNumber (configfile >> "CfgMagazines" >> _data >> "interactAction");
|
||||
_buttonTXT = getText(configfile >> "CfgMagazines" >> _data >> "interactText");
|
||||
_magCount = getNumber (configfile >> "CfgMagazines" >> _data >> "count");
|
||||
};
|
||||
|
||||
_display = (findDisplay 602);
|
||||
@ -60,8 +62,13 @@ if (_buttonTXT != "") then {
|
||||
_useBtn ctrlSetText _buttonTXT;
|
||||
_useBtn ctrlEnable true;
|
||||
} else {
|
||||
_useBtn ctrlSetText "EXAMINE";
|
||||
_useBtn ctrlEnable false;
|
||||
if (_magCount > 1) then {
|
||||
_useBtn ctrlEnable true;
|
||||
_useBtn ctrlSetText "REPACK";
|
||||
} else {
|
||||
_useBtn ctrlSetText "EXAMINE";
|
||||
_useBtn ctrlEnable false;
|
||||
};
|
||||
};
|
||||
|
||||
_useBtn = _display displayCtrl -14;
|
||||
|
@ -9,8 +9,8 @@ _cage2 = createVehicle ["Land_Cages_F", _cagePos, [], 2, "CAN_COLLIDE"] ;
|
||||
_cage2 setVectorDirAndUp [[0,0,1],[0,1,0]];
|
||||
_cage attachTo [_cage2,[0,1.3,0]];
|
||||
|
||||
EPOCH_TEMPOBJ_PVS = [_cage,_cage2];
|
||||
publicVariableServer "EPOCH_TEMPOBJ_PVS";
|
||||
// send to server
|
||||
[_cage,_cage2] remoteExec ["EPOCH_localCleanup",2];
|
||||
|
||||
|
||||
_startCage = diag_tickTime;
|
||||
@ -27,12 +27,11 @@ _sapper setVectorDirAndUp [[0,0,1],[0,1,0]];
|
||||
_sapper forcespeed 0;
|
||||
|
||||
if !(isNull _sapper) then {
|
||||
EPOCH_TEMPOBJ_PVS = _sapper;
|
||||
publicVariableServer "EPOCH_TEMPOBJ_PVS";
|
||||
// send to server
|
||||
[_sapper] remoteExec ["EPOCH_localCleanup",2];
|
||||
};
|
||||
|
||||
EPOCH_FillContainer_PVS = [player,Epoch_personalToken,objNull,false,25];
|
||||
publicVariableServer "EPOCH_FillContainer_PVS";
|
||||
[player,Epoch_personalToken,objNull,false,25] remoteExec ["EPOCH_server_fillContainer",2];
|
||||
|
||||
|
||||
while {player distance _sapper < 100 && alive player} do {
|
||||
@ -41,7 +40,7 @@ while {player distance _sapper < 100 && alive player} do {
|
||||
_sound = _sounds select (floor (random (count _sounds)));
|
||||
_sapper say3D _sound;
|
||||
EPOCH_say3D_PVS = [player, _sapper,(EPOCH_sounds find _sound), Epoch_personalToken];
|
||||
publicVariableServer "EPOCH_say3D_PVS";
|
||||
EPOCH_say3D_PVS remoteExec ["EPOCH_server_handle_say3D",2];
|
||||
};
|
||||
uiSleep 0.5;
|
||||
};
|
||||
|
@ -58,8 +58,7 @@ if (!isNull EPOCH_p2ptradeTarget) then {
|
||||
}forEach _array;
|
||||
|
||||
if (_removeCount == count _array) then {
|
||||
EPOCH_MAKETRADE = [player, EPOCH_p2ptradeTarget, _array, _tradeOffer, Epoch_personalToken];
|
||||
publicVariableServer "EPOCH_MAKETRADE";
|
||||
[player, EPOCH_p2ptradeTarget, _array, _tradeOffer, Epoch_personalToken] remoteExec ["EPOCH_server_makeTrade",2];
|
||||
};
|
||||
|
||||
(findDisplay -1900) closeDisplay 1;
|
||||
|
@ -9,8 +9,8 @@ if (!isNull _otherPlyr) then {
|
||||
// restict to only players not in vehicles
|
||||
if (vehicle player == player && vehicle _otherPlyr == _otherPlyr) then {
|
||||
|
||||
EPOCH_MAKETRADEREQ = _this;
|
||||
publicVariableServer "EPOCH_MAKETRADEREQ";
|
||||
// send
|
||||
_this remoteExec ["EPOCH_server_tradeRequest",2];
|
||||
|
||||
// target other player
|
||||
EPOCH_p2ptradeTarget = _otherPlyr;
|
||||
|
@ -31,7 +31,6 @@ if !(alive player && alive _playerObject && !isPlayer _playerObject) then {
|
||||
// deleteGroup _group;
|
||||
|
||||
Epoch_canBeRevived = false;
|
||||
|
||||
Epoch_personalToken = _this select 1;
|
||||
|
||||
// call EPOCH_clientInit;
|
||||
@ -41,13 +40,12 @@ if !(alive player && alive _playerObject && !isPlayer _playerObject) then {
|
||||
closeDialog 0;
|
||||
("BIS_fnc_respawnCounter" call BIS_fnc_rscLayer) cutText ["","PLAIN"];
|
||||
|
||||
player addEventHandler ["Respawn", {(_this select 0) call EPOCH_clientRespawn}];
|
||||
player addEventHandler ["Put", {(_this select 1) call EPOCH_interact;_this call EPOCH_PutHandler}];
|
||||
player addEventHandler ["Take", {(_this select 1) call EPOCH_interact;_this call EPOCH_UnisexCheck}];
|
||||
player addEventHandler ["InventoryClosed", { if !(EPOCH_arr_interactedObjs isEqualTo[]) then{EPOCH_arr_interactedObjs remoteExec["EPOCH_server_save_vehicles", 2]; EPOCH_arr_interactedObjs = []; }; }];
|
||||
player addEventHandler ["InventoryOpened", {_this spawn EPOCH_initUI; (locked (_this select 1) in [2, 3] || (_this select 1) getVariable["EPOCH_Locked", false]) }];
|
||||
player addEventHandler ["Fired", {_this call EPOCH_fnc_playerFired}];
|
||||
player addEventHandler ["Killed", {_this call EPOCH_fnc_playerDeath}];
|
||||
{
|
||||
player addEventHandler [_x,(["CfgEpochClient", _x, ""] call EPOCH_fnc_returnConfigEntryV2)];
|
||||
} forEach (["CfgEpochClient", "addEventHandler", []] call EPOCH_fnc_returnConfigEntryV2);
|
||||
|
||||
// reset blood Pressure to warning level
|
||||
EPOCH_playerBloodP = 120;
|
||||
} else {
|
||||
deleteVehicle _playerObject;
|
||||
};
|
||||
|
@ -44,7 +44,7 @@ call compile ("
|
||||
case "+str(_this select 16)+": { Epoch_my_GroupUID = _data };
|
||||
case "+str(_this select 17)+": { _data call EPOCH_Group_invitePlayer };
|
||||
case "+str(_this select 18)+": { _data call EPOCH_handleServerMessage };
|
||||
case "+str(_this select 19)+": { {missionNamespace setVariable[format['EPOCH_player%1', _x], EPOCH_defaultVars select(EPOCH_customVars find _x)]} forEach['Temp','Hunger','Thirst','Toxicity','Stamina','HitPoints','BloodP']};
|
||||
case "+str(_this select 19)+": { {missionNamespace setVariable[format['EPOCH_player%1', _x], EPOCH_defaultVars select(EPOCH_customVars find _x)]} forEach['Temp','Hunger','Thirst','Toxicity','Stamina','HitPoints','BloodP','Alcohol','Radiation']};
|
||||
case "+str(_this select 20)+": { _data call EPOCH_mission_returnObj };
|
||||
};
|
||||
};
|
||||
|
@ -1,142 +1,138 @@
|
||||
|
||||
// current target
|
||||
|
||||
_currentTarget = objNull;
|
||||
_cursorTarget = ([10] call EPOCH_fnc_cursorTarget);
|
||||
if (!isNull _cursorTarget && {!(EPOCH_target isEqualTo _cursorTarget)}) then {
|
||||
if (_cursorTarget isKindOf "ThingX" || _cursorTarget isKindOf "Constructions_static_F" || _cursorTarget isKindOf "Constructions_foundation_F" || _cursorTarget isKindOf "WeaponHolder" || _cursorTarget isKindOf "AllVehicles" || _cursorTarget isKindOf "PlotPole_EPOCH") then{
|
||||
if (_cursorTarget isKindOf "Animal_Base_F") then {
|
||||
if !(alive _cursorTarget) then {
|
||||
_currentTarget = _cursorTarget;
|
||||
};
|
||||
} else {
|
||||
_currentTarget = _cursorTarget;
|
||||
};
|
||||
};
|
||||
};
|
||||
EPOCH_currentTarget = _currentTarget;
|
||||
|
||||
_increaseStamina = false;
|
||||
_vehicle = vehicle player;
|
||||
if (_vehicle == player) then {
|
||||
_val = log(abs(speed player));
|
||||
_staminaThreshold = 0.7;
|
||||
if (EPOCH_playerIsSwimming) then {_staminaThreshold = 0.3};
|
||||
if (_val>_staminaThreshold) then {
|
||||
EPOCH_playerStamina = (EPOCH_playerStamina - (_val/4)) max 0;
|
||||
} else {
|
||||
_increaseStamina = true;
|
||||
_currentTarget = objNull;
|
||||
_cursorTarget = ([10] call EPOCH_fnc_cursorTarget);
|
||||
if (!isNull _cursorTarget && {!(EPOCH_target isEqualTo _cursorTarget)}) then {
|
||||
if (_cursorTarget isKindOf "ThingX" || _cursorTarget isKindOf "Constructions_static_F" || _cursorTarget isKindOf "Constructions_foundation_F" || _cursorTarget isKindOf "WeaponHolder" || _cursorTarget isKindOf "AllVehicles" || _cursorTarget isKindOf "PlotPole_EPOCH") then{
|
||||
if (_cursorTarget isKindOf "Animal_Base_F") then {
|
||||
if !(alive _cursorTarget) then {
|
||||
_currentTarget = _cursorTarget;
|
||||
};
|
||||
} else {
|
||||
if (EPOCH_buildMode > 0) then {
|
||||
EPOCH_buildMode = 0;
|
||||
EPOCH_snapDirection = 0;
|
||||
hintsilent "BUILD MODE: DISABLED";
|
||||
EPOCH_Target = objNull;
|
||||
// EPOCH_SURVEY = [];
|
||||
};
|
||||
_increaseStamina = true;
|
||||
|
||||
switch (typeOf _vehicle) do {
|
||||
case "jetski_epoch": {
|
||||
_clock_hour10 = floor ((date select 3)/10);
|
||||
_clock_minute10 = floor ((date select 4)/10);
|
||||
{
|
||||
_vehicle setObjectTexture [_forEachIndex,_x];
|
||||
}forEach[
|
||||
format["\x\addons\a3_epoch_vehicles\data\num%1_ca.paa",_clock_hour10],
|
||||
format["\x\addons\a3_epoch_vehicles\data\num%1_ca.paa",(date select 3)-(_clock_hour10*10)],
|
||||
format["\x\addons\a3_epoch_vehicles\data\num%1_ca.paa",_clock_minute10],
|
||||
format["\x\addons\a3_epoch_vehicles\data\num%1_ca.paa",(date select 4)-(_clock_minute10*10)],
|
||||
format["\x\addons\a3_epoch_vehicles\data\fuel%1_ca.paa",floor(fuel _vehicle*10)]
|
||||
];
|
||||
};
|
||||
case "ebike_epoch": {
|
||||
{
|
||||
_vehicle setObjectTexture [_forEachIndex,_x];
|
||||
}forEach[
|
||||
format["\x\addons\a3_epoch_vehicles\data\speed%1_ca.paa",floor(speed _vehicle/9) max 0],
|
||||
format["\x\addons\a3_epoch_vehicles\data\energ%1_ca.paa",floor(fuel _vehicle*14)]
|
||||
];
|
||||
};
|
||||
_currentTarget = _cursorTarget;
|
||||
};
|
||||
};
|
||||
};
|
||||
EPOCH_currentTarget = _currentTarget;
|
||||
|
||||
_increaseStamina = false;
|
||||
_vehicle = vehicle player;
|
||||
if (_vehicle == player) then {
|
||||
_val = log(abs(speed player));
|
||||
_staminaThreshold = 0.7;
|
||||
if (EPOCH_playerIsSwimming) then {_staminaThreshold = 0.3};
|
||||
if (_val>_staminaThreshold) then {
|
||||
EPOCH_playerStamina = (EPOCH_playerStamina - (_val/4)) max 0;
|
||||
} else {
|
||||
_increaseStamina = true;
|
||||
};
|
||||
} else {
|
||||
if (EPOCH_buildMode > 0) then {
|
||||
EPOCH_buildMode = 0;
|
||||
EPOCH_snapDirection = 0;
|
||||
hintsilent "BUILD MODE: DISABLED";
|
||||
EPOCH_Target = objNull;
|
||||
// EPOCH_SURVEY = [];
|
||||
};
|
||||
_increaseStamina = true;
|
||||
|
||||
switch (typeOf _vehicle) do {
|
||||
case "jetski_epoch": {
|
||||
_clock_hour10 = floor ((date select 3)/10);
|
||||
_clock_minute10 = floor ((date select 4)/10);
|
||||
{
|
||||
_vehicle setObjectTexture [_forEachIndex,_x];
|
||||
}forEach[
|
||||
format["\x\addons\a3_epoch_vehicles\data\num%1_ca.paa",_clock_hour10],
|
||||
format["\x\addons\a3_epoch_vehicles\data\num%1_ca.paa",(date select 3)-(_clock_hour10*10)],
|
||||
format["\x\addons\a3_epoch_vehicles\data\num%1_ca.paa",_clock_minute10],
|
||||
format["\x\addons\a3_epoch_vehicles\data\num%1_ca.paa",(date select 4)-(_clock_minute10*10)],
|
||||
format["\x\addons\a3_epoch_vehicles\data\fuel%1_ca.paa",floor(fuel _vehicle*10)]
|
||||
];
|
||||
};
|
||||
case "ebike_epoch": {
|
||||
{
|
||||
_vehicle setObjectTexture [_forEachIndex,_x];
|
||||
}forEach[
|
||||
format["\x\addons\a3_epoch_vehicles\data\speed%1_ca.paa",floor(speed _vehicle/9) max 0],
|
||||
format["\x\addons\a3_epoch_vehicles\data\energ%1_ca.paa",floor(fuel _vehicle*14)]
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
_envCold = EPOCH_playerTemp <= 95.0;
|
||||
_envHot = EPOCH_playerTemp >= 106.7;
|
||||
_hungry = EPOCH_playerHunger <= 0;
|
||||
_thirsty = EPOCH_playerThirst <= 0;
|
||||
_warnbloodPressure = EPOCH_playerBloodP > 120;
|
||||
|
||||
_thirst ctrlShow (EPOCH_playerThirst <= 625);
|
||||
if (ctrlShown _thirst) then {
|
||||
[_thirst,_thirsty] call _fadeUI;
|
||||
_thirstScale = linearConversion [0,EPOCH_playerThirst,2500,0.01,1,true];
|
||||
_thirst ctrlSetTextColor [_thirstScale, _thirstScale, 0.9, 1];
|
||||
};
|
||||
|
||||
_hunger ctrlShow (EPOCH_playerHunger <= 1250);
|
||||
if (ctrlShown _hunger) then {
|
||||
[_hunger,_hungry] call _fadeUI;
|
||||
_hungerScale = linearConversion [0,EPOCH_playerHunger,5000,0.01,1,true];
|
||||
_hunger ctrlSetTextColor [1, _hungerScale, _hungerScale, 1];
|
||||
};
|
||||
|
||||
_playerOxygen = getOxygenRemaining player;
|
||||
_oxygen ctrlShow (_playerOxygen < 1);
|
||||
if (ctrlShown _oxygen) then {
|
||||
[_oxygen,(_playerOxygen <= 0.55)] call _fadeUI;
|
||||
_oxygen ctrlSetTextColor [1, _playerOxygen, _playerOxygen, 1];
|
||||
};
|
||||
|
||||
_hazzard ctrlShow (EPOCH_playerToxicity > 1);
|
||||
if (ctrlShown _hazzard) then {
|
||||
[_hazzard,(EPOCH_playerToxicity >= 55)] call _fadeUI;
|
||||
_toxicScale = 1-linearConversion [0,EPOCH_playerToxicity,100,0.01,1,true];
|
||||
_hazzard ctrlSetTextColor [_toxicScale, 1, _toxicScale, 1];
|
||||
};
|
||||
|
||||
_broken ctrlShow ((player getHitPointDamage "HitLegs") >= 0.5);
|
||||
if (ctrlShown _broken) then {
|
||||
[_broken,true] call _fadeUI;
|
||||
};
|
||||
|
||||
if (_envCold || _envHot || _hungry || _thirsty) then {
|
||||
if (_envHot || _envCold) then {
|
||||
player setFatigue 1;
|
||||
};
|
||||
EPOCH_playerBloodP = (EPOCH_playerBloodP + 0.05) min 190;
|
||||
_increaseStamina = false;
|
||||
} else {
|
||||
if (EPOCH_playerStamina > 0) then {
|
||||
if !(_panic) then {
|
||||
if (!_warnbloodPressure) then {
|
||||
player setFatigue 0;
|
||||
};
|
||||
EPOCH_playerBloodP = EPOCH_playerBloodP - 1 max 100;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
_envCold = EPOCH_playerTemp <= 95.0;
|
||||
_envHot = EPOCH_playerTemp >= 106.7;
|
||||
_hungry = EPOCH_playerHunger <= 0;
|
||||
_thirsty = EPOCH_playerThirst <= 0;
|
||||
_warnbloodPressure = EPOCH_playerBloodP > 120;
|
||||
_critical = (damage player >= 0.7 || _warnbloodPressure);
|
||||
_emergency ctrlShow _critical;
|
||||
if (ctrlShown _emergency) then {
|
||||
[_emergency,(EPOCH_playerBloodP > 140)] call _fadeUI;
|
||||
_emergencyScale = 1-linearConversion [0,EPOCH_playerBloodP,180,0.01,1,true];
|
||||
_emergency ctrlSetTextColor [1, _emergencyScale, _emergencyScale, 1];
|
||||
};
|
||||
|
||||
_thirst ctrlShow (EPOCH_playerThirst <= 625);
|
||||
if (ctrlShown _thirst) then {
|
||||
[_thirst,_thirsty] call _fadeUI;
|
||||
_thirstScale = linearConversion [0,EPOCH_playerThirst,2500,0.01,1,true];
|
||||
_thirst ctrlSetTextColor [_thirstScale, _thirstScale, 0.9, 1];
|
||||
};
|
||||
if (EPOCH_playerBloodP >= 180) then {
|
||||
true call EPOCH_pushCustomVar;
|
||||
};
|
||||
if (_increaseStamina && (getFatigue player) == 0) then {
|
||||
EPOCH_playerStamina = (EPOCH_playerStamina + 0.5) min EPOCH_playerStaminaMax;
|
||||
};
|
||||
if (EPOCH_debugMode) then {
|
||||
call EPOCH_debugMonitor;
|
||||
};
|
||||
|
||||
_hunger ctrlShow (EPOCH_playerHunger <= 1250);
|
||||
if (ctrlShown _hunger) then {
|
||||
[_hunger,_hungry] call _fadeUI;
|
||||
_hungerScale = linearConversion [0,EPOCH_playerHunger,5000,0.01,1,true];
|
||||
_hunger ctrlSetTextColor [1, _hungerScale, _hungerScale, 1];
|
||||
};
|
||||
call EPOCH_TradeLoop;
|
||||
|
||||
_playerOxygen = getOxygenRemaining player;
|
||||
_oxygen ctrlShow (_playerOxygen < 1);
|
||||
if (ctrlShown _oxygen) then {
|
||||
[_oxygen,(_playerOxygen <= 0.55)] call _fadeUI;
|
||||
_oxygen ctrlSetTextColor [1, _playerOxygen, _playerOxygen, 1];
|
||||
};
|
||||
|
||||
_hazzard ctrlShow (EPOCH_playerToxicity > 1);
|
||||
if (ctrlShown _hazzard) then {
|
||||
[_hazzard,(EPOCH_playerToxicity >= 55)] call _fadeUI;
|
||||
_toxicScale = 1-linearConversion [0,EPOCH_playerToxicity,100,0.01,1,true];
|
||||
_hazzard ctrlSetTextColor [_toxicScale, 1, _toxicScale, 1];
|
||||
};
|
||||
|
||||
_broken ctrlShow ((player getHitPointDamage "HitLegs") >= 0.5);
|
||||
if (ctrlShown _broken) then {
|
||||
[_broken,true] call _fadeUI;
|
||||
};
|
||||
|
||||
if (_envCold || _envHot || _hungry || _thirsty) then {
|
||||
if (_envHot || _envCold) then {
|
||||
player setFatigue 1;
|
||||
};
|
||||
EPOCH_playerBloodP = (EPOCH_playerBloodP + 0.05) min 190;
|
||||
_increaseStamina = false;
|
||||
} else {
|
||||
if (EPOCH_playerStamina > 0) then {
|
||||
if !(_panic) then {
|
||||
if (!_warnbloodPressure) then {
|
||||
player setFatigue 0;
|
||||
};
|
||||
EPOCH_playerBloodP = EPOCH_playerBloodP - 1 max 100;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
_critical = (damage player >= 0.7 || _warnbloodPressure);
|
||||
_emergency ctrlShow _critical;
|
||||
if (ctrlShown _emergency) then {
|
||||
[_emergency,(EPOCH_playerBloodP > 140)] call _fadeUI;
|
||||
_emergencyScale = 1-linearConversion [0,EPOCH_playerBloodP,180,0.01,1,true];
|
||||
_emergency ctrlSetTextColor [1, _emergencyScale, _emergencyScale, 1];
|
||||
};
|
||||
|
||||
if (EPOCH_playerBloodP >= 180) then {
|
||||
true call EPOCH_pushCustomVar;
|
||||
};
|
||||
if (_increaseStamina && (getFatigue player) == 0) then {
|
||||
EPOCH_playerStamina = (EPOCH_playerStamina + 0.5) min EPOCH_playerStaminaMax;
|
||||
};
|
||||
if (EPOCH_debugMode) then {
|
||||
call EPOCH_debugMonitor;
|
||||
};
|
||||
|
||||
call EPOCH_TradeLoop;
|
||||
|
||||
|
||||
onEachFrame EPOCH_onEachFrame;
|
||||
onEachFrame EPOCH_onEachFrame;
|
||||
|
@ -1,97 +1,103 @@
|
||||
if !(EPOCH_arr_interactedObjs isEqualTo[]) then {
|
||||
EPOCH_arr_interactedObjs remoteExec["EPOCH_server_save_vehicles", 2];
|
||||
EPOCH_arr_interactedObjs = [];
|
||||
};
|
||||
|
||||
if !(EPOCH_arr_interactedObjs isEqualTo[]) then {
|
||||
EPOCH_arr_interactedObjs remoteExec["EPOCH_server_save_vehicles", 2];
|
||||
EPOCH_arr_interactedObjs = [];
|
||||
};
|
||||
if (damage player != _damagePlayer) then {
|
||||
if (alive player) then {
|
||||
true call EPOCH_pushCustomVar;
|
||||
_damagePlayer = damage player;
|
||||
};
|
||||
};
|
||||
|
||||
if (damage player != _damagePlayer) then {
|
||||
if (alive player) then {
|
||||
true call EPOCH_pushCustomVar;
|
||||
_damagePlayer = damage player;
|
||||
};
|
||||
};
|
||||
// this fixes issues with players being unable to ride in the same vehicle
|
||||
if ((rating player) < 0) then {
|
||||
player addRating abs(rating player);
|
||||
};
|
||||
|
||||
if ((rating player) < 0) then {
|
||||
player addRating abs(rating player);
|
||||
};
|
||||
// calculate total available power
|
||||
// 1. number of power production devices within range 75m
|
||||
|
||||
// calculate total available power
|
||||
// 1. number of power production devices within range 75m
|
||||
// find share of power based on factors
|
||||
// 1. number of players
|
||||
// 2. Other sources of drain (Lights)
|
||||
|
||||
// find share of power based on factors
|
||||
// 1. number of players
|
||||
// 2. Other sources of drain (Lights)
|
||||
_energyValue = EPOCH_chargeRate min _energyRegenMax;
|
||||
_vehicle = vehicle player;
|
||||
if (_vehicle != player && isEngineOn _vehicle) then {
|
||||
_energyValue = _energyValue + 5;
|
||||
};
|
||||
|
||||
_energyValue = EPOCH_chargeRate min _energyRegenMax;
|
||||
_vehicle = vehicle player;
|
||||
if (_vehicle != player && isEngineOn _vehicle) then {
|
||||
_energyValue = _energyValue + 5;
|
||||
};
|
||||
if (currentVisionMode player == 1) then { //NV enabled
|
||||
_energyValue = _energyValue - _energyCostNV;
|
||||
if (EPOCH_playerEnergy == 0) then {
|
||||
player action["nvGogglesOff", player];
|
||||
};
|
||||
};
|
||||
|
||||
if (currentVisionMode player == 1) then { //NV enabled
|
||||
_energyValue = _energyValue - _energyCostNV;
|
||||
if (EPOCH_playerEnergy == 0) then {
|
||||
player action["nvGogglesOff", player];
|
||||
};
|
||||
};
|
||||
// Sets visual effect
|
||||
if (EPOCH_playerAlcohol > 20) then {
|
||||
_drunkVal = linearConversion [0,100,EPOCH_playerAlcohol,0.1,1,true];
|
||||
[(round(_drunkVal * 10)/10), 2] call epoch_setDrunk;
|
||||
diag_log format["DEBUG: _drunkVal: %1",_drunkVal];
|
||||
} else {
|
||||
[0, 2] call epoch_setDrunk;
|
||||
};
|
||||
|
||||
EPOCH_playerEnergy = ((EPOCH_playerEnergy + _energyValue) min EPOCH_playerEnergyMax) max 0;
|
||||
EPOCH_playerEnergy = ((EPOCH_playerEnergy + _energyValue) min EPOCH_playerEnergyMax) max 0;
|
||||
|
||||
if !(EPOCH_playerEnergy isEqualTo _prevEnergy) then {
|
||||
9993 cutRsc["EpochGameUI3", "PLAIN", 0, false];
|
||||
_display3 = uiNamespace getVariable "EPOCH_EpochGameUI3";
|
||||
_energyDiff = round(EPOCH_playerEnergy - _prevEnergy);
|
||||
_diffText = if (_energyDiff > 0) then {format["+%1",_energyDiff]} else {format["%1",_energyDiff]};
|
||||
// hint str [_energyValue,_prevEnergy,EPOCH_playerEnergy];
|
||||
(_display3 displayCtrl 21210) ctrlSetText format["%1/%2 %3", round(EPOCH_playerEnergy), EPOCH_playerEnergyMax, _diffText];
|
||||
_prevEnergy = EPOCH_playerEnergy;
|
||||
};
|
||||
if !(EPOCH_playerEnergy isEqualTo _prevEnergy) then {
|
||||
9993 cutRsc["EpochGameUI3", "PLAIN", 0, false];
|
||||
_display3 = uiNamespace getVariable "EPOCH_EpochGameUI3";
|
||||
_energyDiff = round(EPOCH_playerEnergy - _prevEnergy);
|
||||
_diffText = if (_energyDiff > 0) then {format["+%1",_energyDiff]} else {format["%1",_energyDiff]};
|
||||
// hint str [_energyValue,_prevEnergy,EPOCH_playerEnergy];
|
||||
(_display3 displayCtrl 21210) ctrlSetText format["%1/%2 %3", round(EPOCH_playerEnergy), EPOCH_playerEnergyMax, _diffText];
|
||||
_prevEnergy = EPOCH_playerEnergy;
|
||||
};
|
||||
|
||||
if (EPOCH_playerEnergy == 0) then {
|
||||
if (EPOCH_buildMode > 0) then {
|
||||
EPOCH_buildMode = 0;
|
||||
EPOCH_snapDirection = 0;
|
||||
_dt = ["<t size = '0.8' shadow = '0' color = '#99ffffff'>Build Mode Disabled: Need Energy< / t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
|
||||
EPOCH_Target = objNull;
|
||||
EPOCH_Z_OFFSET = 0;
|
||||
EPOCH_X_OFFSET = 0;
|
||||
EPOCH_Y_OFFSET = 5;
|
||||
};
|
||||
};
|
||||
if (EPOCH_playerEnergy == 0) then {
|
||||
if (EPOCH_buildMode > 0) then {
|
||||
EPOCH_buildMode = 0;
|
||||
EPOCH_snapDirection = 0;
|
||||
_dt = ["<t size = '0.8' shadow = '0' color = '#99ffffff'>Build Mode Disabled: Need Energy< / t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
|
||||
EPOCH_Target = objNull;
|
||||
EPOCH_Z_OFFSET = 0;
|
||||
EPOCH_X_OFFSET = 0;
|
||||
EPOCH_Y_OFFSET = 5;
|
||||
};
|
||||
};
|
||||
|
||||
_attackers = player nearEntities[["Snake_random_EPOCH", "GreatWhite_F", "Epoch_Cloak_F"], 30];
|
||||
if !(_attackers isEqualTo[]) then {
|
||||
(_attackers select 0) call EPOCH_client_bitePlayer;
|
||||
_panic = true;
|
||||
} else {
|
||||
// custom poision
|
||||
_toxicObjs = player nearobjects["SmokeShellCustom", 6];
|
||||
if!(_toxicObjs IsEqualTo[]) then {
|
||||
(_toxicObjs select 0) call EPOCH_client_bitePlayer;
|
||||
_panic = true;
|
||||
} else {
|
||||
_panic = false;
|
||||
};
|
||||
};
|
||||
_attackers = player nearEntities[["Snake_random_EPOCH", "GreatWhite_F", "Epoch_Cloak_F"], 30];
|
||||
if !(_attackers isEqualTo[]) then {
|
||||
(_attackers select 0) call EPOCH_client_bitePlayer;
|
||||
_panic = true;
|
||||
} else {
|
||||
// custom poision
|
||||
_toxicObjs = player nearobjects["SmokeShellCustom", 6];
|
||||
if!(_toxicObjs IsEqualTo[]) then {
|
||||
(_toxicObjs select 0) call EPOCH_client_bitePlayer;
|
||||
_panic = true;
|
||||
} else {
|
||||
_panic = false;
|
||||
};
|
||||
};
|
||||
|
||||
call EPOCH_fnc_Weather;
|
||||
call EPOCH_fnc_Weather;
|
||||
|
||||
// Hunger / Thirst
|
||||
_HTlossRate = _baseHTLoss;
|
||||
if (EPOCH_playerStamina < 100) then {
|
||||
if ((getFatigue player) > 0) then {
|
||||
_HTlossRate = _HTlossRate + (_HTlossRate*(getFatigue player));
|
||||
};
|
||||
} else {
|
||||
_HTlossRate = (_HTlossRate / 2);
|
||||
};
|
||||
// Hunger / Thirst
|
||||
_HTlossRate = _baseHTLoss;
|
||||
if (EPOCH_playerStamina < 100) then {
|
||||
if ((getFatigue player) > 0) then {
|
||||
_HTlossRate = _HTlossRate + (_HTlossRate*(getFatigue player));
|
||||
};
|
||||
} else {
|
||||
_HTlossRate = (_HTlossRate / 2);
|
||||
};
|
||||
|
||||
EPOCH_playerHunger = (EPOCH_playerHunger - _HTlossRate) max 0;
|
||||
EPOCH_playerThirst = (EPOCH_playerThirst - _HTlossRate) max 0;
|
||||
EPOCH_playerHunger = (EPOCH_playerHunger - _HTlossRate) max 0;
|
||||
EPOCH_playerThirst = (EPOCH_playerThirst - _HTlossRate) max 0;
|
||||
|
||||
call _lootBubble;
|
||||
call _lootBubble;
|
||||
|
||||
EPOCH_playerStaminaMax = (100 * (round(EPOCH_playerAliveTime/360)/10)) min 2500;
|
||||
|
||||
//player setAnimSpeedCoef 0.75;
|
||||
//player setCustomAimCoef 1;
|
||||
EPOCH_playerStaminaMax = (100 * (round(EPOCH_playerAliveTime/360)/10)) min 2500;
|
||||
|
@ -1,6 +1,5 @@
|
||||
|
||||
if !(_prevEquippedItem isEqualTo EPOCH_equippedItem_PVS) then {
|
||||
_EPOCH_15 = _tickTime;
|
||||
_prevEquippedItem = EPOCH_equippedItem_PVS;
|
||||
publicVariableServer "EPOCH_equippedItem_PVS";
|
||||
};
|
||||
if !(_prevEquippedItem isEqualTo EPOCH_equippedItem_PVS) then {
|
||||
_EPOCH_15 = _tickTime;
|
||||
_prevEquippedItem = EPOCH_equippedItem_PVS;
|
||||
EPOCH_equippedItem_PVS remoteExec ["EPOCH_server_equippedItem",2];
|
||||
};
|
||||
|
@ -1,17 +1,15 @@
|
||||
_nearByBobbersLocal = [];
|
||||
_nearByBobbers = player nearEntities[["Bobber_EPOCH"], 12];
|
||||
{
|
||||
if (local _x) then {
|
||||
_nearByBobbersLocal pushBack _x
|
||||
}
|
||||
} forEach _nearByBobbers;
|
||||
|
||||
_nearByBobbersLocal = [];
|
||||
_nearByBobbers = player nearEntities[["Bobber_EPOCH"], 12];
|
||||
{
|
||||
if (local _x) then {
|
||||
_nearByBobbersLocal pushBack _x
|
||||
}
|
||||
} forEach _nearByBobbers;
|
||||
|
||||
if !(_nearByBobbersLocal isEqualTo []) then {
|
||||
if ((random 100) < 50) then {
|
||||
_bobber = _nearByBobbersLocal select floor(random(count _nearByBobbers));
|
||||
_bobber setVelocity [0,-1,-1];
|
||||
_bobber setVariable ["EPOCH_fishOnLine" , diag_tickTime];
|
||||
};
|
||||
|
||||
};
|
||||
if !(_nearByBobbersLocal isEqualTo []) then {
|
||||
if ((random 100) < 50) then {
|
||||
_bobber = _nearByBobbersLocal select floor(random(count _nearByBobbers));
|
||||
_bobber setVelocity [0,-1,-1];
|
||||
_bobber setVariable ["EPOCH_fishOnLine" , diag_tickTime];
|
||||
};
|
||||
};
|
||||
|
@ -1,6 +1,7 @@
|
||||
_position = getPosATL player;
|
||||
|
||||
EPOCH_nearestLocations = nearestLocations[player, ["NameCityCapital", "NameCity", "Airport"], 300];
|
||||
|
||||
EPOCH_playerIsSwimming = false;
|
||||
|
||||
if !(surfaceIsWater _position) then {
|
||||
@ -14,9 +15,7 @@ if !(surfaceIsWater _position) then {
|
||||
// spawn shark if player is deep water and not in vehicle
|
||||
if (vehicle player == player) then{
|
||||
_offsetZ = ((_position vectorDiff getPosASL player) select 2);
|
||||
if (_offsetZ > 1.7) then {
|
||||
EPOCH_playerIsSwimming = true;
|
||||
};
|
||||
EPOCH_playerIsSwimming = (_offsetZ > 1.7);
|
||||
if (_offsetZ > 50) then {
|
||||
"GreatWhite_F" call EPOCH_unitSpawn;
|
||||
};
|
||||
@ -55,6 +54,8 @@ if !(_powerSources isEqualTo[]) then {
|
||||
EPOCH_nearPower = true;
|
||||
};
|
||||
};
|
||||
// downtick Alcohol
|
||||
EPOCH_playerAlcohol = ((EPOCH_playerAlcohol - 1) min 100) max 0;
|
||||
|
||||
EPOCH_playerAliveTime = round(EPOCH_playerAliveTime + (_tickTime - EPOCH_clientAliveTimer));
|
||||
EPOCH_clientAliveTimer = _tickTime;
|
||||
|
@ -13,6 +13,7 @@ _energyRegenMax = ["CfgEpochClient", "energyRegenMax", 5] call EPOCH_fnc_returnC
|
||||
_energyRange = ["CfgEpochClient", "energyRange", 75] call EPOCH_fnc_returnConfigEntryV2;
|
||||
|
||||
EPOCH_chargeRate = 0;
|
||||
EPOCH_playerIsSwimming = false;
|
||||
|
||||
// default data if mismatch
|
||||
if (count EPOCH_playerSpawnArray != count EPOCH_spawnIndex) then{
|
||||
|
@ -6,9 +6,9 @@ if (isNil "EPOCH_bankTransferActive") then {
|
||||
|
||||
ctrlEnable[1600, false];
|
||||
|
||||
[] spawn {
|
||||
[] spawn {
|
||||
ctrlSetText[1004,"Transfer started."];
|
||||
|
||||
|
||||
_deposit = parseNumber(ctrlText 1401) min EPOCH_playerCrypto;
|
||||
_withdraw = parseNumber(ctrlText 1402) min EPOCH_bankBalance;
|
||||
_transfer = parseNumber(ctrlText 1400) min EPOCH_bankBalance;
|
||||
@ -16,7 +16,7 @@ if (isNil "EPOCH_bankTransferActive") then {
|
||||
_totalTransfer = (_deposit + _withdraw) + _transfer;
|
||||
_progress = 0;
|
||||
|
||||
uiSleep 1;
|
||||
uiSleep 1;
|
||||
|
||||
_transferTarget = "";
|
||||
if (_transfer > 0) then {
|
||||
@ -37,8 +37,7 @@ if (isNil "EPOCH_bankTransferActive") then {
|
||||
if (_progress >= 100) then {
|
||||
|
||||
// if player waited the full time then send upload
|
||||
EPOCH_storeCrypto_PVS = [player, [_deposit, _withdraw, [_transfer, _transferTarget]], Epoch_personalToken];
|
||||
publicVariableServer "EPOCH_storeCrypto_PVS";
|
||||
[player, [_deposit, _withdraw, [_transfer, _transferTarget]], Epoch_personalToken] remoteExec ["EPOCH_server_storeCrypto",2];
|
||||
|
||||
ctrlSetText[1004, "Transfer complete."];
|
||||
|
||||
@ -53,4 +52,4 @@ if (isNil "EPOCH_bankTransferActive") then {
|
||||
EPOCH_bankTransferActive = nil;
|
||||
ctrlEnable[1600, true];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -21,32 +21,6 @@ if (isNull _target) then {
|
||||
};
|
||||
|
||||
if (!isNull _target) then {
|
||||
|
||||
if (alive _target) then {
|
||||
/*
|
||||
if ((_target isKindOf "LandVehicle") || (_target isKindOf "Air") || (_target isKindOf "Ship") || (_target isKindOf "Tank")) then {
|
||||
_dialog = "InteractVehicle";
|
||||
};
|
||||
|
||||
if (_ctrl) then {
|
||||
if (_target isKindOf "Constructions_static_F" || _target isKindOf "Constructions_foundation_F") then {
|
||||
_dialog = "InteractBaseBuilding";
|
||||
};
|
||||
};
|
||||
*/
|
||||
/*
|
||||
if (_target isKindOf "Man") then {
|
||||
if (_target != player) then {
|
||||
if (!isPlayer _target) then {
|
||||
if ((_target getVariable["AI_SLOT", -1]) != -1) then {
|
||||
_dialog = "InteractNPC";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
*/
|
||||
};
|
||||
|
||||
if (_forceGear) then {
|
||||
player action ["Gear", _target];
|
||||
_handled = true;
|
||||
@ -57,4 +31,4 @@ if (!isNull _target) then {
|
||||
};
|
||||
};
|
||||
};
|
||||
_handled
|
||||
_handled
|
||||
|
@ -1,3 +1,5 @@
|
||||
private["_ok"];
|
||||
if (isNull _this) exitWith {};
|
||||
if !(alive _this) exitWith {};
|
||||
_ok = createdialog "MissionSelect";
|
||||
if (!_ok) exitWith {};
|
||||
if (!_ok) exitWith {};
|
||||
|
@ -1,14 +1,16 @@
|
||||
private ["_index","_type","_config","_name","_picture","_qty","_items","_qtys","_ok","_vehicles","_aiItems","_target","_slot"];
|
||||
_target = cursorTarget;
|
||||
_slot = _target getVariable ["AI_SLOT",-1];
|
||||
if (_slot != -1) then {
|
||||
EPOCH_lastNPCtradeTarget = _target;
|
||||
closeDialog 0;
|
||||
_ok = createdialog "TradeNPCMenu";
|
||||
if (!_ok) exitWith {};
|
||||
9992 cutRsc["EpochGameUI2", "PLAIN", 2, false];
|
||||
((uiNamespace getVariable "EPOCH_EpochGameUI2") displayCtrl 21208) ctrlSetText format["%1", EPOCH_playerCrypto];
|
||||
{lbAdd[42100,_x];lbAdd[42101,_x]} forEach ["All","Magazines","Items","Vehicles"];
|
||||
lbSetCurSel[42100, 0];
|
||||
lbSetCurSel[42101, 0];
|
||||
};
|
||||
if (alive _target) then {
|
||||
_slot = _target getVariable ["AI_SLOT",-1];
|
||||
if (_slot != -1) then {
|
||||
EPOCH_lastNPCtradeTarget = _target;
|
||||
closeDialog 0;
|
||||
_ok = createdialog "TradeNPCMenu";
|
||||
if (!_ok) exitWith {};
|
||||
9992 cutRsc["EpochGameUI2", "PLAIN", 2, false];
|
||||
((uiNamespace getVariable "EPOCH_EpochGameUI2") displayCtrl 21208) ctrlSetText format["%1", EPOCH_playerCrypto];
|
||||
{lbAdd[42100,_x];lbAdd[42101,_x]} forEach ["All","Magazines","Items","Vehicles"];
|
||||
lbSetCurSel[42100, 0];
|
||||
lbSetCurSel[42101, 0];
|
||||
};
|
||||
};
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user