Merge pull request #948 from EpochModTeam/experimental

release 1.0 build 1070
This commit is contained in:
vbawol 2017-10-26 16:17:01 -05:00 committed by GitHub
commit a9dc9f044b
503 changed files with 40225 additions and 6010 deletions

View File

@ -1,18 +1,13 @@
## [Epoch Projects](https://github.com/EpochModTeam) by [Epoch Mod Team](https://github.com/orgs/EpochModTeam/people) for [Arma 3](https://arma3.com/)
### [Epoch Survival Gamemode](https://github.com/EpochModTeam/Epoch)
Open source survival gamemode for Arma 3.
* [Epoch Survival Gamemode](https://github.com/EpochModTeam/Epoch) - Open source survival gamemode for Arma 3.
* [Epoch Server Framework](https://github.com/EpochModTeam/EpochServer) - Epoch Server DB extension (DLL / so)
* [Epoch Mod](https://github.com/EpochModTeam/EpochCore) - Epoch Assets Mod Configs - Custom Units, Vehicles, Weapons, Items and more!
### [Epoch Server Framework](https://github.com/EpochModTeam/EpochServer)
Epoch Server DB extension (DLL / so)
### [Epoch Mod](https://github.com/EpochModTeam/EpochCore)
Epoch Assets Mod Configs - Custom Units, Vehicles, Weapons, Items and more!
#### Developers
#### Initial Developers
* [Aaron Clark ([VB]AWOL)](http://epochmod.com): Concept, Code, Configs, Textures
* [Kenneth Bente (Axle)](www.twitch.tv/axles): Tester, Models
* [Paul Tomany (Sequisha)](https://www.twitch.tv/sequisha): Models, Textures
* [Paul Tomany (Sequisha)](https://www.twitch.tv/sequisha): Models, Sounds, Textures
* [Damian Clark ([VB]GREEN)](http://epochmod.com): Graphics
* [Andrew Gregory (Axeman)](http://thefreezer.co.uk): AI Code
* [Raimonds Virtoss (Raymix)](https://www.twitch.tv/raymich): UI Code
@ -22,23 +17,24 @@ Epoch Assets Mod Configs - Custom Units, Vehicles, Weapons, Items and more!
* [Denis Erygin (devd)](https://github.com/denisio): Linux Code Support
* [Paden Sturtevant (SteamPunkGears)](https://www.twitch.tv/steampunkgears): Models, Textures
* [Dan Dalsted (OrangeSherbet)](https://www.twitch.tv/OrangeSherbet): Tester, Videos, Wiki Editor
* [Richie](http://uk-gaming-zone.co.uk): Map Support, Forum Moderator
#### Contributors
* [HeMan](https://github.com/Ignatz-HeMan)
#### Community Developers / Contributors
* [DirtySanchez](https://github.com/ravmustang): Vector Build, Vehicle Upgrades and more.
* [HeMan](https://github.com/Ignatz-HeMan): Loads of fixes and improvements.
* [Helion4](https://github.com/Helion4): Models, Configs and fixes.
* [SMVampire](https://github.com/SMVampire)
* [$p4rkY](https://github.com/SPKcoding)
* [82ndab-Bravo17](https://github.com/82ndab-Bravo17) - http://www.the82ndab.net
* [Robio](https://github.com/RC-Robio)
* Craig Hauer "ComatoseBadger": additional "Keesha" Female skin textures.
* [Craig Hauer (ComatoseBadger)](https://twitter.com/comatosebadger): Additional "Keesha" Female skin textures.
* [Poulmba](https://www.youtube.com/user/poulmba): Wiki Editor, Tester
* [Richie](http://uk-gaming-zone.co.uk): Map Support, Forum Moderator
* [Tobias Solem](http://whatthepoch.com/): Tester
#### Special Thanks!
* [Bohemia Interactive](http://bistudio.com) for an incredible and versatile game engine.
* Top Donors: survivalservers, RC_Robio, gtxgaming, dean4310, KPABATOK
* Top Donors: survivalservers, RC_Robio, gtxgaming, dean4310, KPABATOK, Axle, rhinoCRUNCH, Ghostrider-DbD-, Thug, orangesherbet
* [GTXGaming](http://www.gtxgaming.co.uk) - Dedicated Dev Server
* [Survival Servers](https://www.survivalservers.com) - Dedicated Dev Server
* [Vilayer](https://www.vilayer.com) - Dedicated Dev Server
* [Nitrado](https://server.nitrado.net) - Dedicated Dev Server
* Also a thanks goes to all the testers and supporters we missed, you know who you are!

View File

@ -1,24 +0,0 @@
[Added] Test adding mineral spawns at a 30% chance to earthquakes epicenters.
[Added] Added spawning of semi-secure lockbox storage (shared with your group) (only owner can pack).
[Added] Loot added to Sapper and Cultist (press "T" to loot dead body).
[Fixed] Incorrect path for snake corpse model.
[Fixed] Fixed double chickens.
[Fixed] Frequency jammer (Plot pole) now works for both owner and group members.
[Fixed] Group invite system.
[Fixed] Missing alert sound added to Sapper.
[Fixed] fixed description for .22 ruger.
[Fixed] Check for invalid player data and revert to default (fixes some bugged players issues with joining servers).
[Fixed] fixed AI cleanup on player disconnect.
[Changed] Reduced multi gun ammo count to 10 from 99.
[Changed] Increased crafting requirements on many base items (it was kept low for testing).
[Changed] Lower chances to spawn Dogs and lowered animal spawn limit from 6 to 3.
[Changed] Shipping containers now have more loot and (building mats & backpacks).
[Changed] Removed ammo and weapons from Fridge and stove.
[Changed] Increased cultist and sapper armor levels.
[Changed] Try to find a better place to spawn purchased vehicles.
[Changed] Player must be local (last driver) to sell a vehicle.
[Changed] Increased range for buying and selling vehicles.
[Changed] Lowered volume on Dog and Chicken sounds.
[Changed] Server side tax rate on NPC trader purchases (currently 10%).
[Changed] Manipulating base objects now have varying energy consumption.
[Optimize] Disable simulation on any ThingX props at trader cities.

View File

@ -1,31 +0,0 @@
[Added] New Dog Brain with many new features. http://epochmod.com/forum/index.php?/topic/17052-dog-brain-0102/
[Added] More event driven chances to spawn antagonists.
[Added] Great White Shark.
[Added] Speargun found only in boats.
[Added] NVG goggles now require Energy to use (5 Energy every 10 sec).
[Added] Alert sound to drones when they spot you.
[Added] AI Soldiers should now attack you even in a vehicle.
[Updated] Group System - Invite List is alphabetically sorted.
[Fixed] Fixed typo that caused storage devices not to save correctly.
[Fixed] Overhaul of vehicle selling code to prevent issues.
[Fixed] incorrect scope with ItemKiloHemp.
[Fixed] Fixed and improved group system.
[Fixed] Double click action button text had incorrect text for some items like "Vehicle Repair Parts".
[Fixed] Fixed UI icons disappearing due to conflicting resource layer with dynamic text.
[Fixed] Added workaround for players not saving due to specific character in player name.
[Fixed] When first building a base item it will spawn as simulated and start to save.
[Fixed] Only allow owner or members of group to upgrade-in-place base objects if a Frequency jammer is placed.
[Fixed] Players can now trade Krypto using P2P trade menu.
[Fixed] P2P trading now correctly removes weapons from backpacks.
[Fixed] AI soldiers now spawn with the correct radio, vest, and hat.
[Fixed] Random traders can no longer occupy the same building.
[Fixed] Preview of building objects now use proper ghost preview models.
[Fixed] "Mine" trader city teleport point moved so that protection zone covers area.
[Changed] Suppress some group leader options by disabling use of 0-9, f1-f12, backspace, and commandmode.
[Changed] Code lockout added to Take Krypto code to prevent spam.
[Changed] Improved quality of shipwreak and pelican loots.
[Changed] Disabled side chat on all servers, use Quartz radio instead.
[Optimize] Furniture spawning moved client side for better server performance.
[Optimize] Added cleanup on furniture, weaponholders, and Krypto devices every 20min if no players within 45m.
[Known Issue] Unable to loot dead fish with "T" to get Seafood.
[Known Issue] Leftover debug text spam from Sapper brain.

View File

@ -1,20 +0,0 @@
[New] Whitelisting removed.
[Added] carts DLC content added go-karts, helmets, uniforms.
[Added] Snake bite sound.
[Added] Gender Selection.
[Updated] Dog brain fixes and optimizations.
[Updated] Shark brain fixes and optimizations.
[Fixed] Sniper rifle scope attachment issues.
[Fixed] Further fixes to group invite system.
[Fixed] Removed leftover debug systemchat text spam from Sapper brain.
[Fixed] Incorrect model for jerrycan and locker.
[Fixed] Texture on wardrobe.
[Fixed] NVG did not disable correctly after running out of energy.
[Fixed] Reduced global variable spam from p2p trade system.
[Fixed] Gumby leg bug with jump animation and crtl+w.
[Changed] Cultist and Sapper are now looted with Inventory button instead of T.
[Changed] lowered group invite distance to only 10m.
[Changed] Removed rating and score from debug as they are not currently used.
[Changed] Lower Hunter hit point armor levels a bit in an attempt to balance.
[Changed] Lowered animal spawn rate.
[Info] Many other fixes and security changes.

View File

@ -1,58 +0,0 @@
[Changed] "T" key action moved to Inventory Button. Use your inventory key (Default "I") once to smash trash piles and again to open gear.
[New] Two halloween masks Pumpkin head and Warewolf.
[New] Fireplace model.
[New] Custom Anti Hack Framework by Skaronator.
[New] Replacement First Aid Kit double click on the item and use. Heals other players or your self.
[New] Wooden Ramp/Roof base object can be crafted with 6 lumber packs.
[New] Three new food items: Snooters and Meeps Candy and Walk N' Sons Soda.
[New] Electric Motorcycle has been added.
[New] Car Jack added and has a chance to be found in freshly spawned vehicles.
[New] New lootable furniture "Shoebox" added.
[New] Military variant of the bed now spawns in specific military buildings.
[New] Unisex vest called "side pack". All fresh spawns start with this item.
[New] Group request menu, Group requests can now be accessed via the "Requests" button in the inventory.
[New] Player trading now started with the inventory key (Default "I") and accepted with the "T" key.
[New] Use paint cans to paint corrugated walls and use paint thinner to remove paint.
[New] Wood stairs upgradable for additional landing area.
[New] Circuit Parts found in the world to be used for crafting.
[New] Lockable Cinder And Wood Doors upgrade with Circuit Parts. Ownership is controlled by frequency jammer group owner.
[New] 9 more radios have been added and can be crafted using gems.
[New] Many Inventory items now have proper icons instead of placeholder.
[New] Give player energy if within 75m of a solar tower or wind tower.
[New] Temp Lockable vehicles each time you lock a vehicle it will remain locked to you or your group for 30 minutes.
[New] Base building objects get deleted after 7 days. Moving the object or Painting walls extends this for 7 more days.
[New] Player Character are cleaned up after 30 days inactivity.
[Fixed] Mineral veins now spawn at epicenters.
[Fixed] Geometry changed on cinder wall to prevent phasing though it
[Fixed] Lockbox can no longer be destroyed while open.
[Fixed] Dump items on the ground if packed with items in lockbox.
[Fixed] Overflow items to the ground if player does not have space when trading with another player.
[Fixed] Added prices for Chainsaw so it is now possible to sell/buy to traders.
[Fixed] It wasn't possible to snap the foundation to other foundations.
[Fixed] Group Leader can no longer enter the commander vision.
[Fixed] false PublicVariable Restriction on server start.
[Fixed] Night Vision wasn't disabled when the player run out of energy.
[Fixed] Added prices for Karts so it is now possible to sell/buy to traders.
[Fixed] Shelf and Tipi storage devices are no longer indestructible and have limited storage space.
[Fixed] Trader purchased vehicles should now look for a safer place to spawn vehicle within 120m.
[Fixed] Text output from certain actions now show proper display names instead of classnames.
[Fixed] Vehicles now persist exact position, angle, and direction so it should result in less damage at spawn.
[Fixed] Some false BE kicks for base building.
[Changed] Increased storage of all vests by 50% and reduced armor by half.
[Changed] Building base objects from inventory kits now instantly forces build mode and consumes item.
[Changed] P2p trading now more reliable, however now places traded items at your feet.
[Changed] Reduced Dog and snake spawn chances.
[Changed] Respawn button disabled.
[Changed] Increased Building material spawns on trash piles.
[Changed] Increased chances for Tools to spawn on Tool Rack.
[Changed] Hunger and Thirst loss rates increased.
[Changed] Increased purchase price of Ammo by a total of 100%.
[Changed] Reduced Hunter armor levels by 50%.
[Changed] Trader "Steal" option removed for now.
[Changed] Traders now only wear uniforms that spawn in the world.
[Removed] Hellcat Helicopter and and Nightstalker scope till balance issues are sorted.
[Removed] Uniform storage space and selling of uniforms to traders removed due to dupe issues.
[Info] new bikey for 0.2 added remove any previous ones.
[Info] Improved backend DLL by Fank
[Known Issues] Weapon attachments get wiped when player to player trading. (workaround for now take the items off the weapon first).
[Known Issues] Moving a painted corrugated wall causes it to loose its color.

View File

@ -1,17 +0,0 @@
[New] Added crafting of Salvage Metal from Iron Ore found at mineral veins.
[New] Added proper ghost models for TiPi and shelf.
[Changed] Updated Red Gull Texture and Icon.
[Changed] Increased chance to find Mortar Buckets.
[Changed] Ctrl+T now used for Trade requests to other players.
[Fixed] Traders spawning smoke grenades after selling them.
[Fixed] Just built base objects now use player direction for initial object direction.
[Fixed] Player logs out while dead will now correctly spawn fresh on login.
[Fixed] Global setdamage event on powerlines.
[Fixed] Traders can no longer spawn on top of each other.
[Fixed] Multiple players could double spawn loot in the same building.
[Fixed] Can now build Frequency Jammer properly.
[Fixed] Player rollback after revive and relog.
[Fixed] Many server side fixes.
[Known Issues] Weapon attachments get wiped when player to player trading. (workaround for now take the items off the weapon first).
[Known Issues] Moving a painted corrugated wall causes it to loose its color.

View File

@ -1,39 +0,0 @@
[New] Custom single seater "Mosquito" Light helicopter.
[New] Consumables can now give the player multiple attributes on use.
[New] Honey can now be consumed and an empty jar is returned.
[New] Empty Food cooler added. To be used with food crafting.
[New] Metal Scraps added and can be found in many places as well as crafted into Salvage Metal.
[New] 3 new Soda cans some with unique attributes.
[New] Player Krypto account added. Accessed by pressing the Inventory key next to a phonebooth or an ATM. Larger the transaction the longer it takes.
[New] Custom Weapons: AK47, M14, m249, m107, m4a3 ported from Arma 2.
[New] Camo version of female wetsuit.
[New] Female Ghillie Suits Tan, Light Green, Dark Green.
[New] SteamAPI support added for future features and VAC ban check system.
[New] In-game Admin Panel cleanup and features added: Spawn Menu, 3D ESP, Map ESP, Basic Admin levels.
[Changed] Removed all "Take" and "Rearm" actions to prevent taking items from locked vehicles. A new take option will be added soon to allow item access underwater.
[Changed] Sledge Hammer damage increased 2x.
[Changed] Loot now spawns more readily.
[Changed] Loot table tweaks to increase building materials.
[Changed] setTimeMultiplier 4x enabled by default. Can be changed with timeMultiplier in epochconfig.
[Changed] Shelf, tipi, and Frequency Jammer are now built using the physx build mode.
[Changed] Combat Logging: Players now leave a Doppelganger behind for 60 seconds after disconnect. This can be changed or disabled in epochconfig.hpp server side.
[Changed] Death trigger now spawns shark if player is killed at sea.
[Changed] Added Override vars to epochconfig that control object expiry. vehicle, building, storage (7 days), players (30 days).
[Changed] Vehicle slots limit now based directly on total of per vehicle counts in allowed vehicles list.
[Changed] Reworked backend of NPC trader mechanism to be more accurate and optimized.
[Changed] Land vehicles now spawn in cities near roads instead of anywhere on roads.
[Changed] Many performance and security changes server side.
[Changed] Vehicle save queue system for better performance.
[Changed] Seasonal items like Meeps and Halloween masks removed from loot tables.
[Fixed] UAV's are no longer static and now move like they are supposed to.
[Fixed] Fully disabled thermal equipment for all vehicles.
[Fixed] Geometry of walls changed to help reduce glitching.
[Fixed] Disallow Holster and GetOver action near base walls, to reduce wall glitching.
[Fixed] Global setdamage event with Communication towers.
[Info] Reworked server configs. InstanceID is now set in EpochServer.ini and the rest in epochconfig.hpp now found in @EpochHive folder.
[Known Issues] Weapon attachments get wiped when player to player trading. (workaround for now take the items off the weapon first).
[Known Issues] Moving a painted corrugated wall causes it to loose its color.

View File

@ -1,2 +0,0 @@
[New] Control sound volume in-game with Ctrl plus - or +.
[Fixed] Issue that caused admin panel to bug out and close all dialogs.

View File

@ -1,28 +0,0 @@
[Added] Started on Basic food crafting: Cooked Meat + Sweet corn + empty cooler equals full hunger; returns empty cooler.
[Added] Crafting of Large Energy packs: 3x small energy pack + Circuit Parts and a nearby fire.
[Added] Basic wild plant spawner: Poppy
[Added] New dynamic event object: Ferris Wheel
[Added] Antagonist chances moved to epochconfig.
[Added] Split server events from weather and added separate timers for each epochconfig.
[Added] Direction labels added to teleport pads.
[Added] Epoch Story: Debug area is now Epoch Cloning facility.
[Added] Started support for all "AiA Terrain Pack" maps, starting with Chernarus.
[Added] Support for Krypto account access from classed ATM and phonebooth objects.
[Added] New loot objects: Tarp covered pallet and freezer chest.
[Added] Tree support for Bornholm.
[Added] Player Krypto accounts now expire after 90 days of inactivity. Can be changed with expiresBank.
[Added] Further enhanced DLL logging.
[Added] Paint stripper & building parts pricing has been added to Traders.
[Updated] Further optimized sound system.
[Fixed] Better way to track dead state of player.
[Fixed] Losing group when logging out while dead.
[Fixed] Revive statistics were not persisting.
[Fixed] Optimize cleanup system for more stable server fps.
[Fixed] Removed doppleganger code for now, as it was not working as intended.
[Fixed] Epoch welcome message encoding issue and fixed Scroll bar.
[Fixed] Parachutes should now be cleaned up.
[Fixed] Increased the amount of thirst gained from Drinks/Sodas.
[Fixed] Increased the amount of hunger gained from Can Food and Cooked Meats.
[Fixed] Bug in sound system with Cultist caused error that broke master loop.
[Fixed] False publicVariable kicks that happen since the ArmA 3 update 1.36. (BattlEye Log shows PLAYER_REJECT_NoResponse)
[Fixed] False script restriction kicks that happen when player destroy electric wire.

View File

@ -1,86 +0,0 @@
[Added] Wood and cinder base objects now show damage state when over 50% damaged.
[Added] Car Jack item added to every fresh spawned vehicle.
[Added] Can now loot a dead UAV Drone and in return get Electronic components.
[Added] Ability to specify starter items for freshly spawned traders via epochconfig.
[Added] New custom epoch weapons: SR-25 and L85A2 (Grenade Launcher and Pink Painted) by Kiory.
[Added] Vehicle lock time is now stored in hive and will persist across server restarts.
[Added] 3d interaction visuals to show you when an action is available.
[Added] New loot bias system with nestable tables and overall loot balance.
[Added] LootMultiplier in epochconfig, (0.5 default, 1 = high loot, 0.1 = low loot).
[Added] Goldenseal plant can be consumed to reduce toxicity.
[Added] Pumpkin food item can be harvested from pumpkin patches on Chernarus and found randomly.
[Added] Dynamic Air Supply Drop Event. Use smoke grenades to signal.
[Added] Trader mission accessed with "Talk" on trader: Pikes Peak Express.
[Added] Ability to eat raw foods but at the risk of toxicity.
[Added] New items (Rock, Stick, and Rope) for crafting and added to trash loot.
[Added] New craftable primitive melee weapons: Crude Hatchet, Wood Club, Maul Hammer.
[Added] Keesha default character now has shoes.
[Added] Crafting of Rope from Hemp.
[Added] Harvest Sticks from a bush using a Hatchet.
[Added] Mining of Iron Ore and Rocks with sledgehammer.
[Added] Removal with refund of Base building items. Respects Jammer Owner and group.
[Added] Most base building items now use a hybrid Static/Physx system with ghost preview on first placement.
[Added] Epoch Events 2.0. All server time based events moved to server settings pbo. Scripts are executed with execVM using a simple timer. New events and timers can be changed via epochconfig.
[Added] New "Boss" Sapper variant with a larger bang.
[Added] Both Sapper variants put off toxic gas if killed without blowing up.
[Added] Player can now select gender after each death.
[Added] Frequency Jammer now required by default to build a base. Can be controlled with desc.ext mission variable: buildingRequireJammer.
[Added] Building limit (default: 100) added to Frequency Jammer. Change with desc.ext mission variable: buildingCountLimit.
[Added] Building Jammer Range (default: 75m). Change with desc.ext mission variable: buildingJammerRange.
[Added] Hive weather control system as well as Static override var WeatherStaticForecast via epochconfig.
[Added] Trader purchased vehicle position can now be controlled with a smoke grenade or a chemlight within 50m of trader.
[Added] Wood foundations can be crafted with 8x lumber.
[Added] Bornholm Support: Custom a2 building classes for loot spawns and mission file and config support from http://urogaming.co.uk/
[Added] Base building objects now persist damage and armor increased substantially.
[Added] Suppress loot spawn within the range of a Frequency Jammer.
[Added] Blocked base building areas for Chernarus.
[Added] Logging of building, storage, and vehicle killed events to hive log. (StorageKilled, VehicleKilled, BuildingKilled)
[Added] Offroad MG Pickup. (Classname: B_G_Offroad_01_armed_EPOCH)
[Added] Server FPS to the debug monitor. (Max: 50, recommend fps are >15 to keep the game stable)
[Added] Chance to spawn Lockbox and Backpacks in lockers or wardrobes.
[Added] Variable when Loadingscreen finish. (EPOCH_loadingScreenDone change from nil to true)
[Added] Base object interact menu (Remove,Move,Upgrade) shown only in build mode after targeting object with Space Bar.
[Changed] Toxicity increase from consuming a toxic food item is now random.
[Changed] Increased default antagonist spawn chances.
[Changed] NPC Trader inventory menu now stacks like items and shows quantity.
[Changed] Players are now sent to the lobby after dead, simply press ok to respawn.
[Changed] Can now sell and buy uniforms from traders.
[Changed] NPC trader data (AI_ITEMS) will now expire in 7 days if no changes are made within that time. Change this with expiresAIdata in epochconfig.
[Changed] Added chance to spawn Lockbox and Backpacks in lockers, wardrobes, shipping containers.
[Changed] Fireplace recipe changed to require 2 Rocks and 1 Stick to make empty fireplace. Then upgrade with 1 Wood Log to start the fire.
[Changed] Player names saved to a separate data set on player connect.
[Changed] Deathlog now logs distance and position.
[Changed] Sapper brain reworked.
[Changed] Display of personal Crypto balance when opening bank interface.
[Changed] Loot Balance: Lowered heavy muzzles count & increased pistol muzzle.
[Changed] Increased loot bias for Ferris Wheel and corrected z height on loot positions.
[Changed] Improve Cleanup System on Server.
[Changed] Behavior changed on UAV troop support.
[Changed] Dog to glitch less, reduced whines and more chance to wander.
[Fixed] Accuracy and fire rates of custom ported A2 weapons fixed (M107, AKM, M4A3, M16, M14, M249).
[Fixed] Sharks not spawning off shipwrecks.
[Fixed] Black icons on admin panel spawn menu.
[Fixed] Soiled and Wet calculation corrected.
[Fixed] Pumpkin patches on Chernarus now payout proper loot.
[Fixed] Traders now only allow one vehicle per trade.
[Fixed] Alpha transparency issue with empty clone vats.
[Fixed] Attempt to prevent vehicle damage during server startup.
[Fixed] Removed fireplace sound for now due to Arma issues with sound cleanup.
[Fixed] Frequency Jammer can not be built or placed within 3x Jammer radius. (default 225m)
[Fixed] GUI scale issues with additional button menu (Group Menu, Requests) on inventory.
[Fixed] Missing sounds on Ruger pistol and removed ability to use silencer.
[Fixed] Dupe fixes for backpacks, vests, uniforms.
[Fixed] Player revive did not work even after respawn.
[Fixed] zasleh1_proxy.p3d error with M4A3.
[Fixed] Prevent loot objects from spawning under the ground.
[Fixed] Group kick and mod options did not work.
[Fixed] Cleanup and removal of unneeded rpt debug logs.
[Fixed] Removed spoiler button in Welcome Screen.
[Fixed] Misspelling in debug monitor (crypto).
[Fixed] Welcome screen will be now displayed only once after a major patch (eg. 0.3/0.4/0.5).
[Info] Requires Arma version 1.40 or higher.
Admin Tool:
[Added] Different Map Marker for Vehicles, AI, Player, Loot, Base Building and Dead Player.
[Added] Different 3D Tools for: Player, Vehicles and Loot.
[Added] Features: God Mode, Spawn Loot, Teleport Infront.

View File

@ -1,34 +0,0 @@
[Added] Owner of a Frequency Jammer device can now remove and get full refund of Jammer kit.
[Added] Ability to remove normal storage devices (Shelf and Tipi). Items will be dumped on the ground along with a partial refund of crafting materials.
[Added] Edit or add Trader prices "CfgPricing" via the missionConfigFile. (Documentation link)
[Added] Edit or add Crafting recipes "CfgCrafting" via the missionConfigFile. (Documentation link)
[Added] Antagonists spawn system overhaul with spawn bias system. (Documentation link)
[Changed] Server settings "CfgEpoch" configs are now split based on the map for better clarity.
[Changed] Crypto is now only tracked and stored via the server.
[Changed] Moved loot configs to epoch server settings pbo. (Documentation link)
[Changed] Chance to spawn sapper every 5 minutes (max of 3 within 800m). Chances increase while in a city and if the player is soiled.
[Changed] Chance to spawn drone when player fires weapon (max of 3 within 800m). Chances increase while in a city and are reduced if player uses a silencer.
[Changed] Initial Sapper spawn distance increased.
[Changed] SR-25 and L85a2 use existing ammo now.
[Changed] Increased damage for speargun x2.
[Changed] Updated 3d interact system with new icons (Unknown, Dead Body).
[Fixed] UAV drone now spawns correctly at a distance so that it is longer audible on spawn.
[Fixed] Incorrect text output if trader is at max limit for item.
[Fixed] rvmat texture path issues with Pink L85A2
[Fixed] Mission document payout now uses unified loot spawn function.
[Fixed] Lower example NPC starter items to 50.
[Fixed] Removed developer debug from AH admin.
[Info] Updated example server.cfg for 1.40.
0.3.0.x Server Build 13
[Changed] Marker colors for loot events changed to orange.
[Changed] lower default NPC starter items.
0.3.0.x Server Build 12
[Fixed] Vehicles didn't spawn in Citys on Bornholm. (Thanks to DarthRogue)
0.3.0.x Server Build 11
[Added] Damage level of base building objects now based on expiry time.
[Changed] Persistance of damage of Base Building and storage objects removed.
[Changed] Balance loot and increased chances for explosives.

View File

@ -1,28 +0,0 @@
Client 0.3.0.2 Rolling Changelog
[Added] Filter invalid database data input for better security.*
[Fixed] Multiple NPC missions started at the same time caused dupe.
[Fixed] Typo in killed event handler caused false BE kick.
[Fixed] Group names may only contain alphanumeric characters - or _.
[Changed] Uniforms now store items again.
Server Admins:
[Info] *pcre3.dll must be installed into the Arma 3 root directory.
Build 16:
[Added] Server side function "EPOCH_serverCommand" can use the following BE commands: shutdown, lock, unlock, message, kick, ban.
[Added] Battleye integration of loadbans and loadevents so (BEC + watchdog) should no longer be required.
[Added] Scripted server restarts now broadcast a message 5 minutes before restart lock the server and message every 1 minute, then kicks everyone with the message "server restarting" before forcing a restart.
[Added] Linux support added.
[Added] Modified linux start script by BIstudio and Nasdero.
[Added] Major Epoch Anti Hack updates to make more config based.
[Added] Experimental learning mode to EAH whitelist variable check. Disabled by default as it requires some setup to prevent false positives.
[Added] Battleye integration within the DLL now. (requires battleye IP,port,password in epochserver.ini)
[Changed] Disabled MD5 check.
[Changed] Optimized when writing/reading more than 8K chars to database.
[Changed] Traders now move to work and home by default forceStaticTraders = false.
[Fixed] Server side trade FSM updated to fix direction issues.
[Fixed] Marker should now move with trader as they move from work to home.
[Fixed] Removed srifle_DMR_03_spotter_F from loots.h as it is missing textures.
[Fixed] Issue with occasional data corruption when saving more than 8k chars.

View File

@ -1,14 +0,0 @@
Client 0.3.0.3 Rolling Changelog
Build 6:
[Fixed] Force save of building to fix issue with data expiring while in play.
Build 7:
[Added] Use starter items array if existing trader loads without any items.
[Added] Example of extended BE settings, will need tweaked if used.
[Added] propsPos config can now take an array with {vectorDir,vectorUp} instead of azimuth to get precise positioning.
[Added] Passing a 4th param in propsPos (true) will disable simulation (should be used on objects without doors or other animations)
[Added] Latest version of redis-server.exe for Windows v2.8.19.1 from https://github.com/MSOpenTech/redis
[Fixed] Fix possible crash while using Battleye integration under high load (epochserver.dll and epochserver.so updates)
[Changed] setvariableval.txt updated to filter player object names and changed logging back to kick.
[Changed] Forced disable simulation of most props in altis.h.

View File

@ -1,35 +0,0 @@
[Added] Support for Esseker map.
[Added] Support for Takistan and loot positions for more AiA TP buildings.
[Added] Support for Australia Terrain Thanks to the communites of http://uk-gaming-zone.co.uk/, http://thewild.zone, http://www.utomnia.com/
[Added] More loot positions for AiA TP buildings and updates to existing positions to add pallets and freezers.
[Added] Female characters now have uniform storage once again.
[Added] Server side config for max player Krypto limits.
[Added] Environmental loot checks recoded and now allow for config via description.ext.
[Added] Drone spawn chances reduced.
[Added] Client spawning Sapper and Drone chance can now be controlled via description.ext.
[Added] Server side version check added to CfgEpochClient.
[Changed] Reduce payouts on scrap metal farming.
[Changed] Disabled Vehicle Simulation Handler by default as it does not seem to be needed anymore. re-enable vehicle simulation handler with simulationHandler = true in epochconfig.hpp.
[Changed] lower primary weapon spawn chances.
[Changed] Lower Krypto value for metal salvage and scraps.
[Changed] Disable moving traders by default again (Needs recoding in fsm)
[Changed] Increased weight of Cinder Blocks and Mortar Buckets.
[Changed] Revert workaround for 1.46 crash fix requires 1.46 build 131265 or higher.
[Changed] telepos array now uses modelToWorld offsets instead of world space positions.
[Changed] Increased delay between antagonist spawns to 10 minutes.
[Fixed] Increase range on proximity checks for gear should help with loot target issues.
[Fixed] Krypto device will now only drop if player actually had Krypto.
[Fixed] Added missing backpack B_AssaultPack_blk to loot table and pricing.
[Fixed] Teleport issues on Stratis or any other map with one or less teleport pad.
[Fixed] Added prevention of using tactical view.
[Fixed] Unable to sell new 762x54 150Rnd ammo box.
[Fixed] Energy, krypto stats shown and mouse auto centers once again when opening inventory.
[Fixed] Recoil_default error on first use of hatchet.
[Fixed] Weight added to SR-25 and L85A2 rifles.
[Fixed] Lower base armor on characters to Arma defaults, should fix issues with damage reporting.
[Info] Updated windows command line example to show usage of -serverMod
[Info] Updated description.ext and mission pbo's for new cultist configs.
WIP:
[Changed] Helicopter air drop event code disabled by default as it needs more work.
[Fixed] Cultist should now spawn correctly and also has a totally reworked code structure.

View File

@ -1,29 +0,0 @@
[Added] Epoch version of the M-900 helicopter with all texture variants.
[Added] Crafting of Energy Packs from electronic components, clean water and near a fire.
[Added] Experimental Sapper Migration Event.
[Added] Increased precision of positions stored in database for Bases, Vehicles, and storage.
[Added] More variations of soldier classes and loadouts (from drone detection).
[Added] CfgBuildingLootPos can be now overridden via missionConfig.
[Added] Weather code migrated into an Epoch Event and code moved to settings pbo.
[Fixed] Typo in esseker.h position only had 2 elements of the needed 3 for setposATL.
[Fixed] Added checks to make sure you can only P2P trade while not in a vehicle.
[Fixed] Re-add missing AiA TP and Bornholm loot positions.
[Fixed] Fixed "no config.bin SmokeShellWhite" error when sapper off gasses.
[Fixed] Environment sounds had been disabled. Removed enableEnvironment false; from client init.
[Fixed] Can't chop down tall trees. Converted to 2d Distance check.
[Fixed] Shipping container doors did not open and threw error. Updated to the 1.48 way of opening doors using functions.
[Fixed] Shoeboxes added to more building on Takistan and any other maps that use the same building classes.
[Fixed] Vehicle storage space has been normalized. Thanks to Uro1!
[Fixed] Missing function compile for helicopter Air Drop.
[Changed] Lower crafting requirement of cinder block wall, from 4 cinder blocks to 2.
[Changed] Removed epoch setWaves sync code as it should no longer be needed after 1.46.
[Changed] Female Ghillies armor, weight, storage now match CSAT male variants.
[Changed] Female Wetsuits armor, weight, storage now match CSAT male variants.
[Changed] Female Camo Clothes armor, weight, storage now match "Guerilla" gear, like "U_OG_Guerilla2_2".
[Changed] Increased loot position bias for all buildings from 15 to 25%.
[Changed] Enabled Air Drops.
[Changed] Added small chance for primary weapons to be found under green military beds.
[Changed] Land_Laptop_device_F can now be used as a Bank terminal.
[Updated] Config.cfg requiredBuild and hostname for A3 1.48
[Updated] Added bornholm blocked areas to main config and description.ext. Thanks to DarthRogue!
[Info] Server pbo is no longer obfuscated.

View File

@ -1,21 +0,0 @@
[New] Please welcome our newest team member SteamPunkGears http://www.twitch.tv/steampunkgears
[Added] New food item Tactical Bacon gives 500 hunger.
[Added] Revamped upgraded wood stair model. @SteamPunkGears
[Added] Armor stats for Uniforms, Vests, and Headgear now visible on inventory GUI.
[Added] Consume and Craft buttons added to inventory GUI, allows quicker action and identification of craftable items.
[Added] New custom wood log model. @SteamPunkGears
[Added] New Medicine cabinet loot object that spawns mostly medical loot. @SteamPunkGears
[Added] Custom Epoch Client function compiler.
[Changed] Lowered armor on certain base building objects that had way too much armor.
[Changed] Increased hunger and thirst loss a bit and you can now die from prolonged lack of hunger or thirst.
[Changed] Tweaked stats UI thresholds so that players will now see notifications sooner. Icons are now colorized and flash when at critical level.
[Fixed] Incorrect class for snake prevented killing snakes and looting them.
[Fixed] Use init eventhandler to remove local snakes and rabbits on spawning as maps other than Altis or Stratis spawn them randomly.
[Fixed] Dog brain targeting updates for prey like snakes and chickens.
[Fixed] AirDrops now have there own loot table with better loot payout.
[Fixed] Bornholm environmental loot configs had incorrect p3d names. Thanks to Robio!
[Fixed] Missing price value for M-900 helicopter.
[Fixed] Swap all references of old Rahim 10Rnd 762x51 to 10Rnd 762x54.
[ServerInfo] Removed old .bikey and added new one for 0320.
[ServerInfo] Added //new2 to the top of scripts.txt to enable kicking again.
[Info] version.txt added to client files to aid file mirrors.

View File

@ -1,37 +0,0 @@
[Added] Basic energy capacity system, controls how much power is available based on the type of energy source.
[Added] New upgrade system for Wood Tower, add two lumber packs to add windowed wall.
[Added] 4 new plywood walls as first level base walls.
[Added] Wood Ladder that can be crafted from 4x lumber.
[Added] Wood Tower that can be crafted from a Wood Floor and 4x lumber.
[Added] Solar Generator base item can be crafted from items found in the world. When placed gives passive power within (75m Default).
[Added] New loot/crafting items (Solar Panels, Wire Cables, Battery Box) added to loot tables.
[Added] NightVision now use a static rate of 3 per 10 seconds. This can be changed with 'energyCostNV' variable via CfgEpochClient.
[Added] Max rate of energy gain can be controlled with 'energyRegenMax' variable via CfgEpochClient.
[Added] Max range of energy gain can be controlled with 'energyRange' variable via CfgEpochClient.
[Added] Standard base building upgrade system now supports multiple options and has a basic UI.
[Changed] Moved client gamemode and CfgFunctions init to mission file.
[Changed] Base building upgrade recipes and remove payouts now have dedicated config "CfgBaseBuilding" and code supports over-loading via description.ext.
[Changed] Removed base object "Move" in 3d option in favor of a more refined ghost snap mode.
[Changed] Server side database functions renamed and now use cfgFunctions via a new pbo "epoch_server_core".
[Changed] Increase max payout of Air Drop event loot.
[Changed] Make use of new command getAllHitPointsDamage in A3 1.50 to increase performance of hitpoint data storage.
[Changed] Use new A3 command setHitIndex instead of setHitPointDamage so we can use all hitpoints regardless of name.
[Changed] Change BIS_fnc_distance2D usage over to distance2D command that was added with A3 1.50 for better performance.
[Fixed] Cultist spawning is now fixed.
[Fixed] Can now press '2' to disable building snap mode and 1 to re-enable.
[Fixed] Can now disable base building by pressing Esc or 'gear' menu.
[Fixed] Normalized snap memory points for wood tower and stairs.
[Fixed] Loot code for "CfgBuildingLootPos" now uses EPOCH_returnConfig to allow over-loading via description.ext.
[Fixed] Error in rpt "No geometry and no visual shape" with Poppy and Goldenseal plants models.
[Fixed] JetSki sinking like a rock since Arma 1.44, fix was to add buoyancy=1 property to GEO lod.
[Fixed] Angle of snapping was incorrect when building on angles.
[Fixed] Issue that caused shifting of some base objects after restart.
[Fixed] Pumpkins on Chernarus incorrectly payout trash loot and now have separate configs for extra trash loot items.
[Fixed] Color not persisting when picking up corrugated walls.
[Fixed] Only maintain damaged objects and object health is repaired on maintain.
[Fixed] CfgEpochClient missionConfigFile version check was incorrectly using configFile.
[Fixed] Loot object "Blue Tarp" weaponholder proxy position was in the wrong position.
[Fixed] Reduce base hunger/thirst loss rate by half if players stamina is above 100. Base rate now can be changed with "baseHTLoss" variable in CfgEpochClient.
[Info] Requres Arma 3 1.50 or higher.
[ServerInfo] CfgEpochClient removed from description.ext as it can be simply added again from our configs as needed.
[ServerInfo] Removed old .bikey and added new one for 0330.

View File

@ -1,12 +0,0 @@
Client:
[Fixed] Energy was incorrectly allowed to fall below 0.
[Fixed] Typo that prevented small vehicle repair kits from working.
[Fixed] Issue that caused the wrong base building upgrade-in-place option to be selected.
[Fixed] Targeting issues with trash, snakes, and dead sappers.
[Fixed] Three male vests had invisible texture issues.
Server Side:
[Fixed] Added check for getAllHitPointsDamage returning a blank array when loading buildings.
[Fixed] Error in rpt when spawning vehicles if no class was selected.
[Fixed] EAH was banning revived players incorrectly due to token changed check.
[Info] Removed old .bikey and added new one for 0331.

View File

@ -1,44 +0,0 @@
Client:
[Added] Fishing Pole and ocean fishing, also added crafting recipes to allow cooking fish.
[Added] Workbench storage device added and used as a nearby crafting requirement for most Kit based crafting options.
[Added] New secure storage device: The Epoch Safe.
[Added] Totally new crafting system and UI by Raymix.
[Added] Epoch variant of the unarmed Strider vehicle. (I_MRAP_03_EPOCH)
[Added] Broad Sword Melee weapon that can chop down trees and mine rocks.
[Added] Halloween Clown mask and re-added to loot tables: Wolf/Pumpkin masks as well as Meeps Candy.
[Fixed] Unable to remove lit fireplace.
[Fixed] Group members unable to lock a Lockbox or Safe that was placed by the group leader.
[Fixed] Shadow artifact at top of Jammer.
[Fixed] Reduce client fps lag when first joining the server by preloading objects before exiting loading screen.
[Fixed] Being unable to remove a solar generator.
[Fixed] Angry Pumpkin mask was incorrectly visible in first person.
[Fixed] Issue with Headless clients being treated as players. @dayzai/Face
[Changed] Fixed boats spawning on land and added 3d waypoint to purchased vehicle location.
[Changed] Removed debug hint text for 3d rotation of objects as it was not needed.
[Changed] Re-enable Move button, this system will stay and be refined in the next few patches.
**Improved Dog AI Dog Brain by Axeman**
[FIXED] Dog not taming due to var reset in wrong place / BIS animal update.
[UPDATED] Dog text format updated.
[UPDATED] Dog whine, instead of bark, when alerting of other nearby players (When player crouched).
[UPDATED] Dog prey kills now use animal looting system. i.e. Dog will loot dead animals, and other objects, then will fetch loot.
[UPDATED] Attached weapon (loot) holder is now dropped if dog finds a new one. Needs update.
[ADDED] New Quiet dog bark and whine.
[UPDATED] Make dog sounds global and use quieter sounds to alert player once dog is tamed. Untamed dog or when attacking is still loud.
[UPDATED] Add occasional quiet dog whine when other players in the area.
[UPDATED] General Dog timeout tweaks to compensate for Arma Animals 'doing their own thing'
Server:
[Added] Example "Epoch Event" Code to provide an example on how to broadcast a message to all players using BE.
[Added] 'CfgTraderLimits' config can control stock limit per trader per item. Default is 100 per item class per trader.
[Added] storedVehicleLimit variable in CfgEpochServer can now control the total max allowed vehicles on traders. Default limit is 20.
[Fixed] Logging to the database was not working due to missing function.
[Fixed] Issue when trading vehicles that caused the trader data to save data to the wrong slot.
[Fixed] Added missing prices for female vests.
[Fixed] Error Generic error in expression in EPOCH_server_repairVehicle.
[Changed] Reworked secure data storage system to be more reliable. (NOTE: This may cause issues with existing lockboxes spawn on the ground with incorrect orientation.)
[Changed] Base building maintain option now also maintains storage devices.
[Changed] Moved vehicle spawn config that controls how many vehicles can spawn at different location types to settings pbo. See new vehicleSpawnTypes array in the (WorldName).hpp config.
[Changed] Use new sort command instead of BIS_fncSortBy.
[Changed] Use new worldSize command as default if maps worldSize setting in CfgEpoch does not exist.
[Info] Removed old .bikey and added new one for 0340.
[Info] The source code for the a3_epoch_server.pbo is now on the GitHub.

View File

@ -1,40 +0,0 @@
**Client**
[Added] Metal Floors as upgrade in-place option for wood floors.
[Added] Gender selection screen improvements.
[Added] New interaction system.
[Added] Persistent wood and metal spike traps.
[Added] New custom 3x wide hesco type barrier.
[Added] New custom tank trap.
[Added] Updated version of the Fishing Rod. Reel was to small.
[Changed] Made wood ramp shorter by about 30% and slightly reduced height of wood towers and stairs.
[Changed] Refine ghost preview base building snap checks.
[Changed] Players now start with a Quartz radio by default.
[Changed] Overhaul of secure storage system to make it faster.
[Fixed] Selection ring now correctly shows damage/decay level of target when build mode is disabled.
[Fixed] Was unable to use cursorTarget underwater, fixed using new custom made function.
[Fixed] NPC item trades that cannot fit in the players inventory will be placed at the feet of the player.
[Fixed] Not loosing Stamina while swimming.
[Fixed] Removed extra roadway on top of columns.
[Fixed] Error Zero divisor in client side master loop.
[Fixed] .rpt error after gutting animal.
**Server**
[Added] Documentation on server core framework functions and hive calls.
[Added] muzzle_snds_338_sand to loot and pricing tables.
[Added] Client side master loop is now fully config (CfgMasterLoop) based.
[Added] Ability to fully change default player loadouts via CfgEpochServer configs:
(defaultGoggles, defaultHeadgear, defaultBackpack, defaultVestFemale, defaultVestMale, defaultUniformFemale, defaultUniformMale, itemsInContainers, weaponsInContainers, normalMagazines, weaponsAndItems)
[Changed] Increased reverse token check timeout from 90 to 180 seconds.
[Fixed] Dynamic traders did not correctly track the stored vehicle count and limits.
[Fixed] Force trader data save to save when loading starter items.
[Fixed] Added private array to all Epoch Event scripts due to feedback.
[Fixed] Removed forced weather sync on server startup from server init phase so weather changes are now solely dependent on Epoch Events weather script.
[Fixed] EPOCH_fnc_returnConfigEntry and V2 functions did not use defaults properly.
[Info] Server pack Tools folder now contains InstalEpoch.cmd that is an updated version of the command line download Epoch client files download script for steam workshop.
[Info] Removed old .bikey and added new one for 0350.
Build 052-055
[Fixed] Typo in server side AH event handler code and repacked a3_server_settings.pbo.
[Fixed] Storage was incorrectly set to set damage to 99% instead of 1% to temp force maintenance option after restart.
[Fixed] Add player objects to remains collector, this should allow for proper corpse cleanup.
[Changed] Disable simulation of locked storage devices. This also prevents removal of items until device is unlocked/re-simulated.

View File

@ -1,24 +0,0 @@
**Client**
[Added] Ability to sell Primary weapon from hands and empty backpacks. Thanks to @He-Man
[Changed] Increased max player load 2x to compensate for the new stamina system in 1.54.
[Changed] Increased backpack storage limits to allow carrying long weapons.
[Fixed] cursorTarget function to only use new Epoch method while underwater. Should help with targeting issues on land.
[Fixed] Canceling build mode did not remove the ghost object as it should have.
[Fixed] Updated Epoch armor stats UI system to support new changes since 1.54.
[Fixed] Changes to default Arma weapon configs to allow long (Lynx,etc) weapons to be stored in backpacks.
[Fixed] Unable to sell after attempting to sell a temporary vehicle. Thanks to @He-Man
[Fixed] Updated Hitpoints for all custom Epoch characters, fixes the hitpoint .rpt errors since 1.54.
[Fixed] Reduce run speed of Sappers since 1.54 update.
[Fixed] Wood tower "add/remove wall" options are now only available when build mode is enabled.
**Server**
[Fixed] Typo in server side AH event handler code and repacked a3_server_settings.pbo.
[Fixed] Storage was incorrectly set to set damage to 99% instead of 1% to temp force maintenance option after restart.
[Fixed] Add player objects to remains collector, this should allow for proper corpse cleanup.
[Changed] Weapons will now only spawn with a single magazine and a random ammo count.
[Changed] Magazines now spawn with a random ammo count.
[Changed] Disable simulation of locked storage devices. This also prevents removal of items until device is unlocked/re-simulated.
[Info] Removed old .bikey and added new one for 0360.
**Server Build 025**
[Fixed] New workaround for inventoryOpened and locked storage protection.

View File

@ -1,72 +0,0 @@
**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.

View File

@ -1,78 +0,0 @@
[Changed] Trash looting is now done by interaction system only. Hold Space Bar and choose Examine.
[New] Split gamemode from main assets, all epoch client gamemode code and configs are now found in the mission file under APL-SA license. https://github.com/EpochModTeam/Epoch
[Added] Support for CUP Vehicles and Weapons.
[Added] Display temperatures in both Fahrenheit and Celsius.
[Added] Fully reworked loot object spawn system.
[Added] Headers added to all gamemode files that include: Author, Description, Github Source link, Usage and Examples.
[Added] All text based feedback now use new EPOCH_dynamicText function.
[Added] Show current build number on debug monitor.
[Added] Player Karma stat is now effected by Arma 3 rating system via Event Handler. More TBA.
[Added] Players can now harvest Hemp from maps that it grows wild.
[Changed] Can now over heat if fatigued and air temperature is greater than 100F or 37C
[Changed] Crafting now supports Water sources from 'CfgWorldInteractions' configs.
[Changed] Moved Cultist and Sapper permanently to enemy side.
[Changed] Disabled remote sensors on server and client as all AI Epoch is locally controlled. https://community.bistudio.com/wiki/disableRemoteSensors
[Changed] Repacked all pbo's to make use of the new 32-bit P3D binarization process. https://dev.arma3.com/post/techrep-00026
[Changed] Massive code overhaul to make use of many new SQF commands instead of slower SQF logic.
[Changed] Increased the amount of Krypto a player can hold from 25k to 250k.
[Changed] Further improve loot positions in existing maps and add more missing positions for CUP maps.
[Changed] General cleanup and reorganizing of files.
[Fixed] Temporary direction and angle placement issues when base building.
[Fixed] Force player to lobby if the player did not tapout after timer runs out.
[Info] Required Arma 3 version is now 1.56 or higher.
**Server**
[Added] Support for Napf by Momo and ANixon http://steamcommunity.com/sharedfiles/filedetails/?id=635780806.
[Added] Batch files to rebuild server and mission pbo's can be found in Github Root/Tools/Build folder.
[Added] Updated version redis-server.exe to latest build (2.8.2400) and added full Redis config examples.
[Added] limit to number of plant sites that can spawn. Can be controlled with "plantLimit" inside (CfgEpoch >> worldName).
[Added] Support for Eden editor mission files (version 51) and attributes.
[Added] Battleye filter updates for CUP Weapons and CBA.
[Changed] Moved vehicle spawn limit configs to per map configs found in server settings pbo (CfgEpoch > WorldName > allowedVehiclesList).
[Changed] Use BIS_fnc_addStackedEventHandler for onEachFrame, onPlayerConnected, onPlayerDisconnected to increase compatibility with other mods like CBA.
[Changed] Lower disconnect timeout to 10 seconds with disconnectTimeout set via config.cfg. https://community.bistudio.com/wiki/server.cfg
[Changed] Mission system can now use missionConfigFile configs.
[Changed] publicVariableClient calls changed to use remoteExec. This should provide better performance and reliability as PVC's can be unreliable under heavy use and can also bottleneck the games netcode.
[Changed] CfgClientFunctions is now able to be overridden via description.ext.
[Changed] Fully removed BIS MP init override and added remoteExec BE filter rule for initPlayerServer.sqf usage. (Still must be whitelisted in remoteExec configs to use)
[Fixed] Incorrect scope on some magazine items prevented them from showing in the admin spawn menu.
[Fixed] Reworked player login, fixes issues with players logging in without gear (when one or more players are logging in at the same time, IE. server startup)
[Removed] Old BEC plugin as its not needed anymore.
[Info] RConPort 2303 added to example-beserver.cfg for changes since A3 1.58.
[Info] epochAH.hpp updated "antihack_checkFiles" for new file paths.
[Info] Some AI Scripts Mods may not work with disableRemoteSensors enabled. You can disable with "disableRemoteSensors = false;" in CfgEpochClient.
[Info] Removed old .bikey and added new one for 0380.
Build: 439
[Added] FastNights Epoch Event. http://epochmod.com/forum/topic/41949-accelerated-time/?do=findComment&comment=275310
[Added] Install batch for all CUP mods and CBA. https://github.com/EpochModTeam/Epoch/tree/release/Tools/Install
[Changed] The function EPOCH_fnc_addItemOverflow now supports spawning items and weapons types given a count.
[Changed] Moved the secure storage config variable 'returnOnPack' from cfgvehicles config to CfgBaseBuilding.
[Changed] Make use of new getOutMan EH for vehicle epoch anti wall glitch checks.
[Changed] Change last few uses of hintSilent to Epoch_dynamicText. Now only the debug monitor uses hintSilent.
[Changed] 1.58 Difficulty Overhaul changes to enable 3rd person. Thanks to klinGiii on the forum: http://epochmod.com/forum/index.php?/topic/41922-158-difficulty-overhaul
[Changed] Epoch AH reworked displayAddEventHandler checks to use CfgEpochClient configs.
[Changed] Increased range for vehicle interactions to fix issues with access to larger vehicles. Thanks to Grahame for the report: http://epochmod.com/forum/index.php?/topic/41894-cannot-unlock-large-vehicles/
[Changed] Preloading sapper by spawning one on the map at server start.
[Changed] Change to github markdown for credits and license.
[Fixed] suppress loot spawning at main traders. Thanks to Ghostrider-DbD- for the report. http://epochmod.com/forum/topic/41954-loot-spawning-at-traders/
[Fixed] BE kick since 1.58 hotfix. http://epochmod.com/forum/topic/41961-rscdebugconsole_watch-battleye-kick/?do=findComment&comment=275456
[Fixed] Use object as input for remoteExec instead of owner. http://epochmod.com/forum/topic/41959-be-carefull-with-remoteexec-and-owner/
[Fixed] Attempt fix issues with temporary angle and rotation issues with base building.
[Fixed] Check for base kit item is in players inventory before spawning ghost.
[Fixed] Prevent empty group menu display. Thanks to He-Man! for the fix.
[Fixed] Group system marked player as "Dead Player" if moderator status was change while player offline. Thanks to He-Man! for the fix.
[Fixed] Group system invite and kick from group options not working. Thanks to He-Man for the fixes: http://epochmod.com/forum/topic/41893-group-menu-broken-kick-invite-for-admin-not-possible/#comment-275429
[Fixed] Rewrote deleteVehicle.txt BE filter to correct filter syntax to fix false kicks. Thanks to BetterDeadThanZed for the report http://epochmod.com/forum/index.php?/topic/41933-players-kicked-for-moving-safes/#comment-275297
[Fixed] Fixed Arma install batch script not closing after update.
[Fixed] Mission loot payout not working. Thanks to @He-Man for the fix: http://epochmod.com/forum/index.php?/topic/41892-payout-trader-mission-broken/
[Fixed] Crafting recipe for Vehicle Repair Kit had wrong part in usedIn array. Thanks to LeBarbare for the report: http://epochmod.com/forum/index.php?/topic/41896-wrong-recipe-place/
[Fixed] Green Marked traders unable to be accessed. Thanks to @He-Man for the report: http://epochmod.com/forum/index.php?/topic/41887-radom-unexpected-script-failure-with-traders-ai_slot/
[Fixed] Trailing commas in CfgLootTable.
[Fixed] Disallow building inside of vehicles.
[Fixed] Incorrectly enabled CUP vehicles and weapons support if only Core and Maps where enabled.
[Fixed] remoteExec Battleye kick fixed.
[Fixed] Player getting stuck waiting for inventory to load.
[Fixed] Delete base object if over limit.
[Info] Defined proper settings in full redis-example.conf
[Info] Requires Arma 3 1.58 or higher.

View File

@ -1,64 +0,0 @@
[New] Epoch Mod configs and some community pbo's are now released under APL-SA license here: https://github.com/EpochModTeam/EpochCore
[Added] Tanoa map support.
[Added] New Task based Mission System.
[Added] (Optional) Support for Ryan's Zombies and Demons mod: http://steamcommunity.com/sharedfiles/filedetails/?id=501966277 with custom Epoch implementation.
[Added] New custom variable EPOCH_playerNuisance that increases based on the type of weapon fired and decreases at a rate of 1 per 10 seconds. This is used to track how active a shooter the player is.
[Added] Player option to Morph into a random antagonist (from deathMorphClass) after death. The array 'deathMorphClass' found in CfgEpochClient can be used to specify what antagonists to randomly spawn.
[Added] Player option to detonate body after death. Sacrifice yourself by generating a runaway thermal cascade using the nano bots within your body. Nothing left to revive.
[Added] object loot tables for zombies, sharks and Dogs.
[Added] looting Dogs for meat (uses placeholder object "goat leg"). Negative Karma given for eating or gutting dogs.
[Changed] Increased loot bias 10% overall and increased loot density for military and other larger buildings.
[Changed] new function Epoch_message, replaces Epoch_dynamicText.
[Changed] Object Interaction and EPOCH_client_bitePlayer settings in now config CfgObjectInteractions. Lootable objects can now effect player stats.
[Changed] Moved all Base Building variables to gamemode config CfgBaseBuilding.
[Changed] Moved all Item Interaction to new gamemode config CfgItemInteractions.
[Changed] Sapper groan or detonate can be triggered by setting a variable on the target or sapper.
[Changed] Server can be asked by a client / server to trigger an antagonist on another client. Antagonist is then run on target PC, independent from caller of function.
[Changed] Epoch Unit Spawn code. Now can be called specifying the target of the antagonist. Antagonist will run on target client PC.
[Changed] Sapper defaults tweaked to make them more responsive.
[Changed] New Sapper antagonist config options:
reflexSpeed - Set the loop pause. Defaults have been lowered to make sapper more responsive.
nestChance - A percentage chance, at each sapper spawn, that he will create a nest.
hideLevel - (Fear Emotion) Set level at which sapper will go into hiding based on fear of armed players, being shot near etc.
chargeLevel - (Anger Emotion) Set level at which sapper will trigger 'charge the player' mode.
[Changed] New UAV Support Troops antagonist config options:
unitTypes - an array of soldier classes to randomly choose from. Custom weapons to-do, use soldiers with default weapon loadout or handle weapons with custom script.
maxUnitNum - Maximum number of units to spawn per UAV.
minAISkill - Minimum value for any AI skill.
maxAimingAccuracy -> maxGeneral - Set the maximum value for each available AI skill. A random number between minAISkill and the value for each will be set as that skill.
[Fixed] To prevent A3 dupe issues Epoch Militia Solders when taking uniforms, they no longer have uniforms.
[Fixed] To prevent animation glitch with weapon switching on the move and holstering. You now must be standing still to holster your weapon.
[Fixed] Custom Epoch Gestures not working since 1.60.
[Fixed] Issue with animals not returning raw meat.
[Fixed] Getting wet and cold on standing on pier. Thanks to umfufu for the report! http://epochmod.com/forum/topic/41929-getting-10-points-of-wetness/
[Fixed] Missing texture issues with some base building objects since 0.3.8.
[Info] A big thanks to Isaac, Axeman's chief tester!
**Server Only**
[Added] Improved plant spawner by Redbeard Actual and [VB]AWOL.
[Added] Allow Epoch Events to accept full file path if 4th variable in the EpochEvents array is set to 0. Default is 1.
[Added] Function to effect a players Crypto server side: EPOCH_server_effectCrypto
[Added] New experimental PBO packing tool found in Epoch/Tools/PowerShell/
[Added] Server function to allow remote exec of setVariable on client - Allows client to ask another client to set a local variable, via the server. Server can run same function.
[Added] Epoch AH: Added ability to kick, instead of just log or ban.
[Changed] Changed gamemode to Survival, (might show as unknown gamemode pre 1.62)
[Changed] Reworked vehicle load function and made vehicles immune to damage for 120 seconds after startup.
[Changed] cfgpatches check now kicks by default with message a message.
[Changed] Vehicle persistence texture configs are now found in server settings pbo. https://github.com/EpochModTeam/Epoch/blob/experimental/Sources/epoch_server_settings/configs/CfgEpochVehicles.h
[Changed] Use new disableChannels syntax in 1.60 and enable text chat on side chat and not voice. Thanks to @morgoth0 for the heads up! https://github.com/EpochModTeam/Epoch/issues/544
[Changed] ForceRestart option should now restart as soon as all players disconnect and server is locked.
[Changed] Epoch Events can now self initialize on server startup (if third events[] array element is 1). Fixes issue with weather not changing till first event run.
[Removed] Epoch AH removed whitelisted variable check system.
[Removed] STEAMAPI Vac ban check as it needs reworked in the extension.
[Fixed] Take into account trader stored per class vehicle limits when spawning new vehicles.
[Fixed] Disappearing Mags on login / revive. Thanks to He-Man for the fix: http://epochmod.com/forum/topic/42178-disappearing-mags-on-login-revive-fix/#comment-277194
[Fixed] CUP mods enabled check logic typo. Thanks to @morgoth0 for the report: https://github.com/EpochModTeam/Epoch/issues/543
[Fixed] BE kick when player opened stock A3 dialog (Game > Options > Layout).
[Fixed] BE kick with Spawn Loot admin panel option. Thanks to @jostster for the report: https://github.com/EpochModTeam/Epoch/issues/540
[Updated] Loot position tool: Epoch/Tools/SQF/saveLootPositionsVector.sqf
[Updated] World config tool: Epoch/Tools/SQF/getTreesAndTrash.sqf
[Info] Changed name of a3_epoch_server.pbo to epoch_server.pbo. Also changed path from \x\addons\a3_epoch_server to \epoch_server
[Info] Changed name of a3_epoch_server_settings.pbo to epoch_server_settings.pbo.
[Info] RConPort 2306 added to example-beserver.cfg for changes since A3 1.58.
[Info] Removed old .bikey and added new one for 0390.
[Info] Requires Arma 3 1.60 or higher.

View File

@ -1,28 +0,0 @@
[New] Dynamic and extensible inventory sub menu system for item interaction and crafting options. (Double click item in your inventory)
[Added] Vehicle immunity when a vehicle is left locked inside a player owned base (within jammer range) at server startup. Thanks to @morgoth0 for the feedback!
[Added] Stamina loss when a player jumps.
[Added] Option to pour our gas to get an empty Jerry can and a "Drink" option to poison yourself.
[Added] Option to pour out honey and get an empty jar instead of eating it.
[Changed] Inventory Armor stats feature now dynamic and no longer forced via config.
[Changed] Group menu and group requests options are now found options on the self-action menu. (SPACE BAR)
[Changed] Wardrobe mirror now works in single player.
[Changed] Jetski and Electric Motorcycle motorcycle in-vehicle HUD now functions in singleplayer or editor.
[Changed] Updated Tanoa trade city layout and added ATM's. Thanks to @morgoth0 (aka Grahame on EpochMod.com Forum)
[Changed] Players now start with only 30% Hunger and Thirst instead of 100%.
[Fixed] Increased mass of "Hotwire Kit" (ItemHotwire) magazine item from 2 to 50 to address balance issues. Thanks to PR from @Ignatz-HeMan
[Fixed] Disposal of Snakes and other animals when inside a protection zone.
[Fixed] Shark bite attack and effect can now target all players.
[Fixed] Female ghillie suit transparency issue since Arma update 1.62.
[Fixed] Fireplace position incorrectly shifted down after lighting the fireplace. Thanks for the report by @Ignatz-HeMan #592
[Fixed] Increased anti-teleport range that should hopefully allow for proper HALO spawning.
[Fixed] Typos in Battleye script.txt that caused the filter not to function properly.
[Fixed] Trailing commas in mission addons array. Thanks to a RP from @SPKcoding (aka $p4rky on EpochMod.com Forum)
[Fixed] No longer possible to unlock Doors / Gates while using a UAV. Thanks to PR from @Ignatz-HeMan
Server Side Only:
[New] EpochServer.dll/so is now statically linked to pcre3 and hredis. On Windows this means that the pcre3.dll file in the arma 3 root can now be removed. On Linux we no longer depend on libhredis and libpcre to be installed.
[Added] Example mission file epoch_RyanZed.Tanoa that includes "RyanZombies" in the required addons array.
[Fixed] Database logging now trims log entries via the LogLimit setting provided in EpochServer.ini. The default is 1000 log records per list.
Known Issues:
Jetski and Electric Motorcycle motorcycle in-vehicle HUD will not initialize if player is spawned inside vehicle, as display getin EH did not fire.

View File

@ -1,60 +0,0 @@
0.5 b740:
[New] Epoch is leaving alpha and entering beta! All Epoch Asset project sources are now available via our GitHub +LFS and under APL-SA license here: https://github.com/EpochModTeam/EpochCore
[Added] Added Service Point to Rearm, Repair and Refuel. Thanks to @Ignatz-HeMan
[Added] 7 new Keesha camo skins by Craig Hauer aka ComatoseBadger.
[Added] 64-bit database extension support for Windows (EpochServer_x64.dll) and Linux (epochserver_x64.so) servers. Linux support is pending testing.
[Added] Custom event handler and OnEachFrame hooks added. https://github.com/EpochModTeam/Epoch/tree/experimental/Sources/epoch_code/customs Thanks to @Ignatz-HeMan
[Added] Crafting recipe: Mortar (Uses: 12x Rock, 2x dirty water) (Requires: Fire and workbench within 3m). Thanks to @baaljayjay for the suggestion.
[Added] Customizability of units spawned by UAV alert via CfgEpochClient > uavAlertUnitSpawnTemplate. (Default: I_Soldier_EPOCH)
[Added] Toxic Smoke Grenades can now be found in the world.
[Added] Respawn in base feature, each player must interact with Jammer and choose "Make Spawnpoint" to enable.
[Added] Selling to traders with bank debt greater than -50000(default), pays the bank debt back to below the limit instead of the player. Thanks to @Ignatz-HeMan
[Changed] Epoch Message function now supports custom colors. Thanks to @SPKcoding
[Changed] Epoch Event: ChangeWeather has been updated to allow for better random control of weather and defaults to bad weather.
[Changed] Optimized database SET and SETEX calls in both SQF and C++.
[Changed] Optimized database GETRANGE call.
[Changed] Optimized NPC Trading and fixed issue if trade failed. Thanks to @Ignatz-HeMan
[Changed] Great White Sharks will now spawn if the player is deep enough in the ocean.
[Changed] Objects or Players that have been given "Crypto" variable can be accessed via the dynamic menu (Space Bar) for a "Take Crypto" action.
[Changed] Air Drops are now triggered via Epoch Events server side every 45m at random, instead of randomly triggered client side.
[Changed] To prevent issues with ownership only Group Leader can place a Jammer. jammerGLOnly = 0 in CfgEpochClient to disable. Thanks to @Ignatz-HeMan and @82ndab-Bravo17
[Fixed] Crash bug when opening base building upgrade menu since Arma 3 1.68.
[Fixed] Wrong variable name in EPOCH_clientRevive.sqf. Thanks to @Ignatz-HeMan
[Fixed] Sometimes getting stuck only walking. Thanks to @Ignatz-HeMan
[Fixed] Repack of Energy Pack is now possible.
[Removed] EpochServer extension calls 100 and 101 as they are no longer needed.
[Info] Re-add missing comments in some config files.
[Info] Numerous other fixes and optimizations.
[Info] Requires Arma 3 1.68 or higher.
0.5 b749:
[Added] 200 player support to all mission files, thanks to increased group limits in Arma 1.68!
[Added] Experimental support for Mad ArmA Mod: https://forums.bistudio.com/forums/topic/200295-mad-arma-mad-max-inspired-mod/
[Changed] Spawn in base now use player position instead of jammers (reset spawn point to use). @Ignatz-HeMan
[Changed] Force "Take Crypto" option on dead bodies. @Ignatz-HeMan
[Changed ] Added optional Classnames for Service Point Pos. @Ignatz-HeMan
[Changed ] Some Cleanups and Script optimization to the service point scripts. @Ignatz-HeMan
[Fixed] Toxic Smoke Grenade not making you Toxic thanks to @Ignatz-HeMan
[Info] Install script for Mad Arma mod via Steam workshop in the tools/install folder.
0.5 b757:
[Added] "MeleeRod" (Fishing Rod) to Crafting Menu (1x Rope,1x Stick,1x Metal Scraps) @Ignatz-HeMan
[Added] Vehicle and Loot tables can be set via epochconfig settings (forcedVehicleSpawnTable, forcedLootSpawnTable) to force specific vehicle or loot tables.
[Changed] Removed "Alpha" text from debug monitor.
[Changed] Add flag to enable database unit test. enableUnitTestOnStart = 1 in epochconfig.hpp to enable
[Changed] Delete rest of unused clientside Airdrop Event code. @Ignatz-HeMan
[Changed] further optimized db call for weather script.
[Updated] redis-server.exe to latest version: 3.2.100 from: https://github.com/MSOpenTech/redis/releases
[Fixed] some missing semicolons in CfgPricing. @SPKcoding
[Fixed] Joining and leaving a group and optimize with added usage of params. @Ignatz-HeMan
[Fixed] Group invites from the same Group where not possible until relog. @Ignatz-HeMan
[Fixed] Heal not working when using SafeZones with VehicleGodmode and only HitPoint is damaged. @Ignatz-HeMan
[Fixed] fix deleteVehicle BE kick with sharks
[Fixed] CBA related Battleye kicks with current CBA version.
[Fixed] Static weather settings not working. @82ndab-Bravo17
[Fixed] Battleye kicks for CUP weapon and attachment BE kicks.
[Fixed] Battleye kicks for towing tractor from CUP.
[Fixed] Fixed / updated and added Trader Missions and ported to run it on Events instead fsm. @Ignatz-HeMan
[Fixed] Several minor fixes, cleanup, and private array updates.
[Fixed] Fix for Weaponholder disappearing while adding loot. @Ignatz-HeMan
[Info] SQF parser analyzer: https://www.reddit.com/r/armadev/comments/681236/released_static_analyzer_for_sqf_and_integration/ Thanks to @LordGolias

View File

@ -16,15 +16,14 @@ antihack_banDuration = 5; // Default 5 minute ban. -1 = permanent ban.
antihack_kickReasons[] = {
"Mod mismatch, check that the mods you have enabled match server."
};
antihack_checkFiles[] = { //script check, leave it blank to disable it
antihack_checkFilesNew[] = { //script check, leave it blank to disable it
{"epoch_code\compile\setup\EPOCH_clientInit.sqf", "EPOCH_clientInit"},
{"epoch_code\compile\EPOCH_onEachFrame.sqf", "EPOCH_onEachFrame"},
{"epoch_code\compile\setup\EPOCH_masterLoop.sqf", "EPOCH_masterLoop"},
{"epoch_code\compile\setup\EPOCH_client_rejectPlayer.sqf", "EPOCH_client_rejectPlayer"},
{"epoch_code\compile\setup\EPOCH_clientRespawn.sqf", "EPOCH_clientRespawn"},
{"epoch_code\compile\interface_event_handlers\EPOCH_KeyDown.sqf", "EPOCH_KeyDown"}
{"epoch_code\compile\setup\EPOCH_clientRespawn.sqf", "EPOCH_clientRespawn"}
};
antihack_addActionCheck = "true"; // false to disable addAction checks
antihack_antiTeleportCheck = "true"; // false to disable antiTeleport checks
adminMenu_Owner[] = {};
adminMenu_OwnerSetting[] = {
"ESP-PLAYER",
@ -37,10 +36,12 @@ adminMenu_OwnerSetting[] = {
"INFRONT-TELEPORT",
"MAP-PLAYER",
"MAP-CORPSE",
// "MAP-LOOT",
"MAP-LOOT",
"MAP-ANIMALS",
"MAP-VEHICLE",
"MAP-AI",
// "MAP-BASEBUILDING",
"MAP-TRADER",
"MAP-BASEBUILDING",
"TARGET-HEAL",
"TARGET-AMMO",
"TARGET-KILL",

View File

@ -12,26 +12,51 @@ lootMultiplier = 0.5; // 1 = max loot bias. This controls how much loot can payo
// Events
WeatherStaticForecast[] = {}; // Default: {75.5,0,{0,0,0},0,{1,1}}; // Clear day; {19,1,{1,1,40},1,{5,5}}; // Cold Foggy Rainy Overcast Windy; Format: {temp <scalar>,rain <scalar>,fog <array>,overcast <scalar>,wind <array>}
events[] = {
{ 3600, "CarnivalSpawner", 0 , 1}, // SECOND <scalar>, EVENT <string>, INIT <scalar> 1 = run script at startup, 0 normal delay, PREPOSTFIX <scalar> 1 = use pre/postfix path (inside epoch settings pbo) 0 = use full file path
{ 3600, "CarnivalSpawner", 0 , 1, -1, {} ,{"VR"}}, // SECOND <scalar>, EVENT <string>, INIT <scalar> 1 = run script at startup or 0 normal delay, PREPOSTFIX <scalar> 1 = use pre/postfix path (inside epoch settings pbo) 0 = use full file path, RUNNUMTIMES <scalar> -1 infinite, execVM payload <array>, disallowed worlds <array>
// { 1800, "PaydayEvent", 0, 1},
// { 1200, "MessageServer", 0, 1},
{ 2700, "AirDrop", 0 , 1},
{ 2400, "EarthQuake", 0 , 1},
{ 900, "ChangeWeather", 1 , 1},
{ 1200, "ContainerSpawner", 0 , 1},
{ 300, "PlantSpawner", 0 , 1} //No comma on last Entry
{ 2700, "AirDrop", 0 , 1, -1, {} ,{"VR"}},
{ 2400, "EarthQuake", 0 , 1, -1, {} ,{"VR"}},
{ 2700, "Satellite", 0 , 1, -1, {} ,{"VR"}},
{ 900, "ChangeWeather", 1 , 1, -1, {} ,{"VR"}},
{ 1200, "ContainerSpawner", 0 , 1, -1, {} ,{"VR"}},
{ 1440, "GardenManager", 0 , 1, -1, {} ,{"VR"}},
{ 300, "PlantSpawner", 0 , 1 , -1, {} ,{"VR"}} //No comma on last Entry
};
// Antagonists
antagonistChanceTrash = 0.09; //9% chance when player loot a trash object
antagonistChancePDeath = 0.33; //33% chance when player was killed from a other player (selfkill doesn't count)
antagonistChanceLoot = 0.09; //9% chance when player click "SEARCH" on a loot object
// Player Related
cloneCost = 100; // debt incurred on player death
MaxBankDebitforTrade = -50000; // If Player has less money on Bank, Crypto from Trade goes directly to Bank instead to Player
// Default Loadout
defaultUniformFemale = "U_Test_uniform";
defaultVestFemale = "V_F41_EPOCH";
defaultUniformMale = "U_Test1_uniform";
defaultVestMale = "V_41_EPOCH";
defaultGoggles = "";
defaultHeadgear = "";
defaultBackpack = "";
defaultprimaryWeapon[] = {}; // {"arifle_MX_pointer_F","","acc_pointer_IR","",{"30Rnd_65x39_caseless_mag",29},{},""};
defaultsecondaryWeapon[] = {}; // {"launch_NLAW_F","","","",{"NLAW_F",1},{},""};
defaulthandgunWeapon[] = {}; // {"hgun_P07_F","","","",{"16Rnd_9x21_Mag",16},{},""};
defaultuniformItems[] = {}; // {{"FAK",1},{"30Rnd_65x39_caseless_mag",2,30},{"Chemlight_green",1,1}};
defaultvestItems[] = {}; // {{"30Rnd_65x39_caseless_mag",3,30},{"16Rnd_9x21_Mag",2,16},{"SmokeShell",1,1},{"SmokeShellGreen",1,1},{"SmokeShellBlue",1,1},{"SmokeShellOrange",1,1},{"Chemlight_green",1,1}};
defaultbackpackItems[] = {}; // {{"Medikit",1},{"FAK",10},{{"hgun_P07_F","","","",{"16Rnd_9x21_Mag",16},{},""},1}};
defaultassignedItems[] = {}; // {"Rangefinder","","","",{},{},""}
defaultlinkedItems[] = {
"ItemMap", // "ItemMap"
"", // "ItemGPS" or "ItemGeigerCounter_EPOCH",
"EpochRadio0", // "EpochRadio0" through "EpochRadio9"
"", // "ItemCompass"
"", // "ItemWatch"
"" // "NVG_EPOCH" or "radiation_mask_epoch"
};
// vehicles - Max vehicle slots is calculated from per vehicle limits below. Warning! Higher the number lower the performance.
disableAutoRefuel = "true"; // Removes auto refuel from all buildings at server startup.
simulationHandlerOld = "false"; // When enabled this feature disables simulation on vehicles that are not nea players. Can help improve client fps at the cost of server fps.
vehicleLockTime = 1800; // Controls how many seconds it takes to allow another person/group to unlock vehicle.
removevehweapons[] = { // remove these Weapons from spawned Vehicles
@ -43,6 +68,7 @@ removevehmagazinesturret[] = { // Remove these Magazines from the given Turret f
{"24Rnd_missiles",{-1}},
{"200Rnd_40mm_G_belt",{0}}
};
disableVehicleTIE = "true";
// BaseBuilding
UseIndestructible = "false"; // Enable / Disable Indestructible BaseObjects
@ -71,6 +97,7 @@ forcedLootSpawnTable = ""; // leave blank for default. Options: "CfgLootTable","
// Markers
showEarthQuakes = "true"; // show mineral viens caused by earthquakes
showSatellites = "true"; // show crashed Satellites
showShippingContainers = "true"; // Show location of events based loots (plants, shipping container, Carnival)
SHOW_TRADERS = "true"; // Show locations of traders
SHOW_JAMMERS = "false"; // Shows location of base jammers
@ -83,6 +110,7 @@ expiresPlayer = "2592000"; // expiration date in seconds for players
expiresBank = "7776000"; // expiration date in seconds for players bank
expiresVehicle = "604800"; // expiration date in seconds for vehicles
expiresAIdata = "604800"; // expiration date in seconds for NPC Trader inventory
expiresCommunityStats = "7776000"; // expiration date in seconds for players community stats
// Admin Features
hiveAdminCmdExec = "false"; // true = enables extra (To Be Released) feature to allow execution of code via hive.

Binary file not shown.

View File

@ -1 +1 @@
5 "" !="H_MM_(Buzzard_Gasmask|Helmet)_01" !="V_MM_Vest_01" !="(V|H)_(F|)[0-9]{1,3}_EPOCH" !="(clown|pkin|wolf)_mask_epoch" !="Item(Map|GPS|Compass|Watch)" !="EpochRadio[0-9]" !="B_UavTerminal" !="(U|G|bipod|acc|muzzle|optic)_[0-9A-Z_]{1,100}" !="(NVG|Defib|Heal|Repair|Elcan(_reflex|))_EPOCH" !="(Binocular|Rangefinder|Hatchet|CrudeHatchet|WoodClub|Melee(Sledge|Maul|Rod|Sword)|ChainSaw|MultiGun|Rollins_F|Plunger)" !="(ruger_pistol|speargun|1911_pistol|akm|m14|M14Grn|m16|m16Red|m107|m107Tan|m249|m249Tan|m4a3|sr25|l85a2|l85a2_(pink|ugl))_epoch" !="SMG_(01|02)_F" !="hgun_(PDW2000|ACPC2|Rook40|P07|Pistol_heavy_0[1-2]|Pistol_Signal)_F" !="LMG_(Mk200|Zafir)_F" !="srifle_(EBR|GM6|LRR|DMR_01)_(camo_|)F" !="arifle_(Katiba|Katiba_C|Katiba_GL|SDAR|TRG21|TRG20|TRG21_GL|Mk20|Mk20C|Mk20C_plain|Mk20_GL|Mk20_plain|Mk20_GL_plain)_F" !="arifle_(MXC|MX|MX_GL|MXM|MXM_Black|MX_GL_Black|MX_Black|MXC_Black|MX_SW|MX_SW_Black)_F" !="srifle_DMR_0[2-6](_(camo|sniper|khaki|tan|multicam|woodland|spotter|blk|hex|olive)_|_)F" !="MMG_0[1-2]_(hex|tan|camo|black|sand)_F" !"CUP_((h|s)gun|(s|a)rifle|(l|s)mg)_" !"CUP_(optic|muzzle|acc|bipod)_" !"CUP_(Mxx|SVD)_camo"
5 "" !="H_MM_(Buzzard_Gasmask|Helmet)_01" !="V_MM_Vest_01" !="(V|H)_(F|)[0-9]{1,3}_EPOCH" !="(clown|pkin|wolf|radiation|hockey|plague|ghostface|skull|witch)_mask_epoch" !="Item(Map|GPS|Compass|Watch|GeigerCounter_EPOCH)" !="EpochRadio[0-9]" !="B_UavTerminal" !="(U|G|bipod|acc|muzzle|optic)_[0-9A-Z_]{1,100}" !="(NVG|Defib|Heal|Repair|Elcan(_reflex|))_EPOCH" !="(Binocular|Rangefinder|Hatchet|CrudeHatchet|WoodClub|Melee(Sledge|Maul|Rod|Sword)|ChainSaw|MultiGun|Rollins_F|Plunger)" !="(ruger_pistol|speargun|1911_pistol|akm|m14|M14Grn|m16|m16Red|m107|m107Tan|m249|m249Tan|m4a3|sr25|l85a2|l85a2_(pink|ugl))_epoch" !="SMG_(01|02|05)_F" !="hgun_(PDW2000|ACPC2|Rook40|P07|Pistol_heavy_0[1-2]|Pistol_Signal)_F" !="LMG_(Mk200|Zafir)_F" !="srifle_(EBR|GM6|LRR|DMR_01)_(camo_|)F" !="arifle_(Katiba|Katiba_C|Katiba_GL|SDAR|TRG21|TRG20|TRG21_GL|Mk20|Mk20C|Mk20C_plain|Mk20_GL|Mk20_plain|Mk20_GL_plain)_F" !="arifle_(MXC|MX|MX_GL|MXM|MXM_Black|MX_GL_Black|MX_Black|MXC_Black|MX_SW|MX_SW_Black)_F" !="srifle_DMR_0[2-7](_(camo|sniper|khaki|tan|multicam|woodland|spotter|blk|hex|olive)_|_)F" !="MMG_0[1-2]_(hex|tan|camo|black|sand)_F" !"CUP_((h|s)gun|(s|a)rifle|(l|s)mg)_" !"CUP_(optic|muzzle|acc|bipod)_" !"CUP_(Mxx|SVD)_camo"

View File

@ -1 +1 @@
5 "" !WeaponHolderSimulated !Shot !"(Safe|LockBox|FirePlace|PlotPole|Jack|SolarGen)_EPOCH" !"Jack_SIM_EPOCH" !"LockBox_Ghost_EPOCH" !"CinderWallHalf_Ghost_EPOCH" !"(Tipi|Workbench|StorageShelf|Wood(Floor|LargeWall|Stairs|Ramp|Ladder|Tower)_Ghost_EPOCH" !"(Hesco3|Metal|Foundation)_Ghost_EPOCH" !"Land_Cages_F" !"Epoch_Sapper_F" !"[A-Z]_(G_)?(Offroad|Quadbike|Hatchback|SUV|Rubberboat|Van|Boat_Civil|SDV|MRAP|Truck)_([0-9]+_)?((box|transport|covered|mover|police|rescue|armed)_)?EPOCH" !"([A-Z]_)?[A-Z]+_(Boat|Scooter|Offroad|LSV)_((Transport)_)?[0-9]+_((unarmed|light)_)?F" !"K0(1|2|3|4)" !"CUP_"
5 "" !"Jack_SIM_EPOCH" !"Land_Cages_F" !"Epoch_Sapper_F" !"[A-Z]_(G_)?(Offroad|Quadbike|Hatchback|SUV|Rubberboat|Van|Boat_Civil|SDV|MRAP|Truck)_([0-9]+_)?((box|transport|covered|mover|police|rescue|armed)_)?EPOCH" !"([A-Z]_)?[A-Z]+_(Boat|Scooter|Offroad|LSV)_((Transport)_)?[0-9]+_((unarmed|light)_)?F" !"K0(1|2|3|4)" !"CUP_" !"_Ghost_EPOCH" !"Shot" !"WeaponHolderSimulated"

View File

@ -1,3 +1,3 @@
5 "" !="Construct_f" !="I_UAV_01_F" !="(I|B|O)_UAV_AI" !"_EPOCH" !="B_65x39_Minigun_Caseless_Red_splash" !="B_762x51_Minigun_Tracer_Yellow_splash" !="B_(Swing|Stick)" !"^SmokeShell" !"^G_40mm_" !"^F_40mm_" !"Sub_F_" !"^F_Signal_" !="mini_Grenade" !="GrenadeHand" !="LaserTarget(C|W|E)" !"^Chemlight_" !="(ClaymoreDirectionalMine|DemoCharge|SatchelCharge)_Remote_Ammo" !="SLAMDirectionalMine_Wire_Ammo" !="(CMflare_Chaff|Sapper_Charge|SapperB_Charge|ATMine_Range)_Ammo" !="APERS(TripMine_Wire|BoundingMine_Range|Mine_Range)_Ammo" !="Epoch_(Sapper|Sapper(B|G)|Cloak)_F" !="EPOCH_RyanZombie_[1-5](|_(C|Sp|B|W|M|P))" !="GreatWhite_F" !="groundWeaponHolder" !="WeaponHolderSimulated" !="Epoch_(Male|Female)_F" !"Supply[0-9]" !"Steerable_Parachute_F" !="Epoch_Female_CamoRed_F" !="Land_Cages_F" !="(O|I|B)_UAV_01_backpack_F" !="I_(helipilot|helicrew)_F" !="#smokesource" !="SmokeLauncherAmmo"
5 "_EPOCH" !="(SapperHead|Jack|SolarGen)_SIM_EPOCH" !="Wood(Floor|LargeWall|Stairs|Ramp|Foundation|Ladder|Tower)_EPOCH" !="(Tipi|Workbench|StorageShelf|CinderWallHalf|Foundation|Wood(Floor|LargeWall|Stairs|Ramp|Foundation|Ladder|Tower))_Ghost_EPOCH" !="(Tipi|StorageShelf|Safe|LockBox|FirePlace|FirePlaceOn|PlotPole|SolarGen|Jack|Freezer|Tarp|CinderWallHalf|Bobber)_EPOCH" !="I_(Soldier[1-3]|Soldier)_EPOCH" !="(Bed|locker|Filing|Chair|ChairRed|wardrobe|cooker|Couch|Table|Pelican|Fridge|Shelf|ToolRack|Shoebox|Bunk|Rabbit|Cabinet)_EPOCH" !="(Sheep|Goat|Snake|Snake2|Hen|Cock|Fin|Alsatian)_random_EPOCH" !="(Safe|Workbench|LockBox|CinderWall|CinderWallGarage|CinderWallHalf|PlotPole|Tipi|StorageShelf|Fireplace|TankTrap)_SIM_EPOCH" !="Wood(Floor|LargeWall|LargeWallCor|LargeWallDoor|LargeWallDoorL|LargeWallDoorway|Stairs|Stairs2|Ramp|Ladder|Tower)_SIM_EPOCH" !="(Hesco3|Metal)(_Ghost|_SIM|)_EPOCH" !="(Spike|Metal)_TRAP_SIM_EPOCH" !="(WoodFoundation|Foundation)_EPOCH" !="WoodWall[1-4](_SIM|_Ghost|)_EPOCH"
5 "" !="Construct_f" !="I_UAV_01_F" !="(I|B|O)_UAV_AI" !"_EPOCH" !="B_65x39_Minigun_Caseless_Red_splash" !="B_762x51_Minigun_Tracer_Yellow_splash" !="B_(Swing|Stick)" !"^SmokeShell" !"^G_40mm_" !"^F_40mm_" !"Sub_F_" !"^F_Signal_" !="mini_Grenade" !="GrenadeHand" !="LaserTarget(C|W|E)" !"^Chemlight_" !="APERS(TripMine_Wire|BoundingMine_Range|Mine_Range)_Ammo" !="(SatchelCharge|DemoCharge|ClaymoreDirectionalMine)_Remote_Ammo" !="Epoch_(Sapper|Sapper(B|G)|Cloak)_F" !="EPOCH_RyanZombie_[1-5](|_(C|Sp|B|W|M|P))" !="GreatWhite_F" !="groundWeaponHolder" !="WeaponHolderSimulated" !="Epoch_(Male|Female)_F" !"Supply[0-9]" !"Steerable_Parachute_F" !="Epoch_Female_CamoRed_F" !="Land_Cages_F" !="(O|I|B)_UAV_01_backpack_F" !="I_(helipilot|helicrew)_F" !="#smokesource" !="SmokeLauncherAmmo" !"B_Bergen_(mcamo|dgtl|hex|tna)" !"B_AssaultPack_(khk|dgtl|rgr|sgg|cbr|mcamo|ocamo|tna)" !"B_Kitbag_(rgr|mcamo|sgg|cbr)" !"B_TacticalPack_(rgr|mcamo|ocamo|blk|oli)" !"B_FieldPack_(khk|ocamo|oucamo|cbr|blk|oli|ghex)" !"B_Carryall_(ocamo|oucamo|mcamo|khk|cbr|oli|ghex)" !"B_Viper(Light|)Harness_(oli|blk|ghex|hex|khk|oli)" !="B_Parachute" !="SLAMDirectionalMine_Wire_Ammo" !="(CMflare_Chaff|Sapper_Charge|SapperB_Charge|ATMine_Range)_Ammo"
5 "_EPOCH" !="BarrelBomb_EPOCH_Remote_Ammo" !="I_(Soldier[1-3]|Soldier)_EPOCH" !="(Bed|locker|Filing|Chair|ChairRed|wardrobe|cooker|Couch|Table|Pelican|Fridge|Shelf)_EPOCH" !="(ToolRack|Shoebox|Bunk|Rabbit|Cabinet|toilet|KitchenSink)_EPOCH" !="(Sheep|Goat|Snake|Snake2|Hen|Cock|Fin|Alsatian)_random_EPOCH" !=".+_(SIM|Ghost)_EPOCH" !="smallbackpack_(red|green|teal|pink)_epoch" !="(FirePlace|FirePlaceOn|Jack|Freezer|Tarp|Bobber)_EPOCH"
5 SeaGull

View File

@ -1 +1 @@
5 "" !="[0-9]{1,2}:[0-9]{1,4}" !" GroundWeaponHolder$" !" WeaponHolderSimulated$" !" Epoch_(Sapper|Sapper(B|G)|Cloak|Female_CamoRed)_F$" !" EPOCH_RyanZombie_[1-5](|_(C|Sp|B|W|M|P))$" !" (Land_MPS|Bobber|Rabbit)_EPOCH$" !" (Sheep|Goat|Snake|Snake2|Hen|Cock|Fin|Alsatian)_random_EPOCH$" !" (Bed|locker|Filing|Chair|ChairRed|wardrobe|cooker|Couch|Table|Pelican|Fridge|Shelf|ToolRack|Shoebox|Bunk|Cabinet|Freezer|Tarp)_EPOCH$" !" (SapperHead|Jack|SolarGen)_SIM_EPOCH$" !" (Tipi|Workbench|StorageShelf|CinderWallHalf|Foundation|Wood(Floor|LargeWall|Stairs|Ramp|Foundation|Ladder|Tower))_Ghost_EPOCH$" !" Wood(Floor|LargeWall|LargeWallCor|LargeWallDoor|LargeWallDoorL|LargeWallDoorway|Stairs|Stairs2|Ramp|Ladder|Tower)_SIM_EPOCH$" !" (Safe|Workbench|LockBox|CinderWall|CinderWallGarage|CinderWallHalf|PlotPole|Tipi|StorageShelf|Fireplace|TankTrap)_SIM_EPOCH$" !" (Hesco3|Metal|WoodWall[1-4])_(Ghost|SIM)_EPOCH$" !" (Spike|Metal)_TRAP_SIM_EPOCH$" !" (WoodFoundation|Foundation)_Ghost_EPOCH$" !" I_(Soldier[1-3]|Soldier)_EPOCH$" !" I_(helipilot|helicrew)_F$" !" I_UAV_01_F$" !" (I|B|O)_UAV_AI$" !" I_Boat_Armed_01_minigun_F" !" (B_Heli_Transport_01|GreatWhite)_F" !" Land_Cages_F$"
5 "" !" GroundWeaponHolder$" !" WeaponHolderSimulated$" !" Epoch_(Sapper|Sapper(B|G)|Cloak|Female_CamoRed)_F$" !" EPOCH_RyanZombie_[1-5](|_(C|Sp|B|W|M|P))$" !" (Sheep|Goat|Snake|Snake2|Hen|Cock|Fin|Alsatian)_random_EPOCH$" !" (Bed|locker|Filing|Chair|ChairRed|wardrobe|cooker|Couch|Table|Pelican|Fridge|Shelf)_EPOCH$" !" (ToolRack|Shoebox|Bunk|Cabinet|Freezer|Tarp|toilet|KitchenSink)_EPOCH$" !" I_(Soldier[1-3]|Soldier)_EPOCH$" !" I_(helipilot|helicrew)_F$" !" I_UAV_01_F$" !" (I|B|O)_UAV_AI$" !" I_Boat_Armed_01_minigun_F" !" Land_Cages_F$" !"(Bobber|Rabbit)_EPOCH$" !"_(SIM|Ghost)_EPOCH$" !"(B_Heli_Transport_01|GreatWhite)_F"

View File

@ -1 +1 @@
5 "" !="bis_fnc_execvm \[\[.+\],\"initPlayerServer.sqf\"]" !="bis_fnc_effectkilled(airdestruction|secondaries) \[.+\]" !="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_(deadplayerdetonate|triggerantagonist|playersetvariable|missioncomms|make(marker|SP)|removemarker) \[.+\]" !="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_(paycrypto|tradeRequest|equippeditem|packJack|create(object|AirDrop)|airDropCrate|destroytrash|unpackBackpack) \[.+\]" !="epoch_(localcleanup|fnc_saveplayer|client_bitePlayer|serverlootobject) \[.+\]" !="cup_fnc_handletow \[.+\]" !="bis_fnc_reviveinitaddplayer \[.+\]"
5 "" !="bis_fnc_execvm \[\[.+\],\"initPlayerServer.sqf\"]" !="bis_fnc_effectkilled(airdestruction|secondaries) \[.+\]" !="epoch_server_(checkplayer|save(_vehicles|building)|(lock|pack)Storage|(upgrade|remove|paint|maint)build) \[.+\]" !="epoch_server_((load|respawn|dead|invite|revive|teleport)Player) \[.+\]" !="epoch_server_((upgrade|updateplayer|inviteplayer|create|delete)(Temp|)Group) \[.+\]" !="epoch_server_(deadplayerdetonate|triggerantagonist|playersetvariable|missioncomms|make(marker|SP)|removemarker) \[.+\]" !="epoch_server_(upgrade_vehicle|knockDownTree|mineRocks|lootAnimal|handle_(say3d|switchmove|sapperObjs)) \[.+\]" !="epoch_server_((repair|fill|lock)Vehicle|(loot|fill)Container|(store|take)Crypto|make(NPC|)Trade) \[.+\]" !="epoch_server_(paycrypto|tradeRequest|equippeditem|packJack|create(object|AirDrop)|airDropCrate|destroytrash|unpackBackpack) \[.+\]" !="epoch_(localcleanup|fnc_saveplayer|client_bitePlayer|serverlootobject|fnc_updateplayerstats) \[.+\]" !="cup_fnc_handletow \[.+\]" !="bis_fnc_reviveinitaddplayer \[.+\]"

View File

@ -1,75 +1,73 @@
//new2
7 "BIS_fnc_dynamictext" !="\"BIS_fnc_dynamictext\"" !="'BIS_fnc_dynamictext'"
7 forceRespawn !="ForceRespawnDuration" !="reviveHandleForceRespawnAction" !="forcerespawn player;"
7 setFriend
7 setAmmo
7 enableFatigue
7 setUnitRecoilCoefficient
7 setWeaponReloadingTime !="_unit setWeaponReloadingTime [_unit,_weapon,1];"
7 allMissionObjects !="_alljammer = allmissionobjects 'PlotPole_EPOCH';"
7 callExtension
7 showCommandingMenu !="showCommandingMenu '';" !="showCommandingMenu '#USER:"
7 moveIn !="fnc_moveInCargo" !="\"BIS_fnc_moveIn\"" !="\"A3\functions_f\Misc\fn_moveIn.sqf\"" !="\"A3\functions_f\arrays\fn_removeIndex.sqf\"" !="player moveInAny _vehicle;\nEPOCH_antiWallCount = EPOCH_antiWallCount + 1;" !="[\"I_UAV_AI\", position _unit, [], 0, \"CAN_COLLIDE\"];\n_driver moveInAny _unit;" !="_driver moveInAny Epoch_mission_uav;" !="axeVIP moveInDriver vehicle axeVIP;" !="axeVIP moveInCargo vehicle axeVIP;" !="_driver moveInDriver _axeCopter;" !="_unit moveInGunner _axeCopter;" !="axeVIP moveInDriver vehicle axeVIP;" !="axeVIP moveInCargo vehicle axeVIP;" !="_driver moveInAny axeUAV"
7 enableCollisionWith
7 hideObject !="_dogHolder hideobject true;" !="_dogHolder hideobject false;" !="player hideobject true;" !="_ship hideobject true;\n_ship hideobjectglobal true;"
7 setvelocity !="setVelocityTarget" !="_bolt setPosATL _pos;\n_bolt setVelocity [0, 0, -10];" !="EPOCH_target setvelocitytransformation" !="_currentTarget setVelocity [0,0,-0.01];" !="_head setVelocity [\n(sin _dir * _speed), \n(cos _dir * _speed)" !="_vel = velocity this; _dir = getDir player; this setVelocity[(_vel select 0)+(sin _dir * 2),(_vel select 1)+(cos _dir * 2),(_vel select 2)];" !="_head setVelocity [random 2,random 2,10];" !="_bobber setVelocity [0,-1,-10];" !="_x setvelocity [0,0,0.1];" !="_veh setVelocity [0,0,0];" !="_this select 0 setvelocity (_this select 1)" !="_zombie setVelocityTransformation [_aslPos,_aslPos,_unitV,_unitV,_unitvDir,_vDir,_unitvUp,_unitvUp,2];"
7 assignAs !"assignAsCargo" !="_unit assignAsGunner _axeCopter;" !="_driver assignAsDriver _axeCopter;" !="axeVIP assignAsDriver vehicle axeVIP;"
7 assignAsCargo !="_x assignAsCargo axeGeneralsBoat;" !="axeVIP assignAsCargo vehicle player;" !="axeVIP assignAsCargo vehicle axeVIP;"
7 allowDamage !="_unit allowDamage false;" !="_unit allowDamage true;" !="player allowDamage true;" !="vehicle player allowDamage true;" !="player allowDamage false;" !="_target allowDamage true;" !="_cargo allowDamage false;"
7 addWeaponCargo !="_acceptHolder addWeaponCargo [_wWeapon, 1] ;" !="CBA_fnc_addWeaponCargo" !="\\fnc_addWeaponCargo" !="\"addWeaponCargo" !="cba_fAddWeaponCargo"
7 onMapSingleClick !="onMapSingleClick '';" !="\"onmapsingleclick\""
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\";" !="_wh addMagazineAmmoCargo[_item, 1, _count];" !="CBA_fnc_addMagazine" !="\\fnc_addMagazine" !="\"addMagazine"
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] ;" !="CBA_fnc_addMagazineCargo" !="\\fnc_addMagazineCargo" !="\"addMagazineCargo" !="cba_fAddMagazineCargo"
7 addItem !="{player addItemToVest _x} forEach _vestItems;" !="player addItem _item;" !="_plyr addItemToVest _missionItem;" !="axeVIP addItemToVest _item;" !="_plyr addItemToVest _missionItem;" !="EPOCH_fnc_addItemOverflow" !="CBA_fnc_addItem" !="\\fnc_addItem" !="\"addItem" !="fnc_addItemCargo"
7 addBackPack !="fnc_addBackpackCargo"
7 addMissionEventHandler !="CBA_clientID = [0, 2] select isMultiplayer;\naddMissionEventHandler [\"PlayerConnected\", {\nparams [\"_id\", \"_uid\", \"_name\"" !="addMissionEventHandler [\"EachFrame\", {call cba_common_fnc_onFrame}];" !="addMissionEventHandler [\"HandleDisconnect\"," !="addMissionEventHandler [\"Loaded\"," !="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];"
7 removeAllWeapons !="removeAllWeapons axeGeneral;"
7 removeAllItems
7 removeAllActions
7 setViewDistance !="setViewDistance 1600"
7 createGroup !="EPOCH_server_createGroup" !="_grp = createGroup [RESISTANCE, true];" !="if (isserver) then {\n_group = creategroup sidelogic;" !="grpVIPGeneral = createGroup [RESISTANCE, true];" !="_grp = createGroup side _plyr;" !="_grp = createGroup [_side, true];" !="_grp = createGroup [(side _plyr), true];" !="createcenter sidelogic;\n_grpLogic = creategroup sidelogic;\nbis_functions_mainscope" !="_group = createGroup [west, true];"
7 createVehicleCrew !="createvehiclecrew _x;"
7 createVehicleLocal !="\"#particlesource\" createVehicleLocal" !="\"#lightpoint\" createVehicleLocal" !="\"BloodSplat\" createVehicleLocal" !="[\"lightning1_F\", \"lightning2_F\"] call BIS_fnc_selectRandom;\n_lighting = _class createVehicleLocal" !="SLX_XEH_DUMMY createVehicleLocal [0, 0, 0];" !="CBA_eventHandlers = \"Logic\" createVehicleLocal [0, 0];"
7 createUnit !="_driver = _grp createUnit[\"I_UAV_AI\", position _unit, [], 0, \"CAN_COLLIDE\"];" !="axeGeneral = grpVIPGeneral createUnit [\"I_officer_F\", axeGeneralPos, [], 1, \"CAN_COLLIDE\"];" !="bis_functions_mainscope = _grpLogic createunit [\"Logic\",[9,9,9],[],0,\"none\"];" !="_unit = _grp createUnit[selectRandom _arrUnits, _pos, [], 0, \"FORM\"];" !="_driver = (group player) createUnit[\"I_UAV_AI\", position axeUAV, [], 0, \"CAN_COLLIDE\"];"
7 createAgent !="bis_revive_ratioLethal = createAgent [\"Logic\", [10,10,0], [], 0, \"CAN_COLLIDE\"];" !="_unit = createAgent[_unitClass, _targetPos, [], 256, \"FORM\"];" !="_unit = createAgent [_unitClass, _targetPos, [], 120, \"FORM\"];" !="_animal = createAgent[_randomAIClass, _animalPos, [], 5, \"NONE\"];" !="_unit = createAgent [\"Epoch_Cloak_F\", _pos, [], 0, \"CAN_COLLIDE\"];" !="_unit = createAgent [\"Epoch_Sapper_F\", _targetPos, [], 180, \"FORM\"];" !="_sapper = createAgent [\"Epoch_Sapper_F\", getPos _cage2, [], 0, \"FORM\"];" !="_unit = createAgent[_unitClass, position player, [], _zRange, \"FORM\"];" !="_animal = createAgent[_randomAIClass, _animalPos, [], 0, \"CAN_COLLIDE\"];" !="_axeSapper = createAgent [\"Epoch_Sapper_F\", _pos, [], 12, \"FORM\"];" !="_nestMate = createAgent [\"Epoch_Sapper_F\", _garrPos, [], 0, \"FORM\"];"
7 createTeam
7 createDialog !="createDialog \"rmx_dynamenu\";" !="createDialog \"rmx_craftingUI\";" !="createDialog \"QuickUpgrade\";" !="createDialog \"QuickTake\";" !="createDialog \"InteractBank\";" !="createdialog \"SelectGender\";" !="_handled = createdialog _dialog;" !="if !(createdialog \"InteractItem\") exitWith {};" !="createDialog _tapDiag;" !="if !(createdialog \"Trade\") exitWith {};" !="_ok = createdialog \"Interact\";" !="_ok = createdialog \"TradeNPCMenu\";" !="createDialog \"Epoch_myGroup\";" !="createDialog (if ((Epoch_my_GroupUID == \"\") && (Epoch_my_Group isEqualTo [])) then {\"EPOCH_createGrp\"} else {\"Epoch_myGroup\"});" !="createDialog \"GroupRequests\";" !="_ok = createdialog \"MissionSelect\";" !="createDialog 'Skaronator_AdminMenu';"
7 createDisplay !="createDisplay \"rmx_dynamenu\";" !="createDisplay \"rmx_moveDynamicHUD\";" !="_parent createdisplay _displayClass;" !="finddisplay 151 createdisplay 'RscDisplayOptionsLayout'"
7 deleteMarker !="deleteMarkerLocal _mName;"
7 setMarker !="CBA_fnc_setMarkerPersistent\"" !="\\fnc_setMarkerPersistent" !="\"setMarkerPersistent" !="_mName setMarkerShapeLocal _mShape;" !="_mName setMarkerTypeLocal _mType;" !="(_x select 0) setMarkerPosLocal (position player);"
7 createMarker !="CBA_fnc_createMarker\"" !="\\fnc_createMarker" !="\"createMarker" !="cba_fCreateMarker" !="createMarkerLocal [_mName, _mPos];"
7 assignItem !="axeVIP assignItem _item;" !="unassignItem"
7 forceAddUniform
7 removeAllMPEventHandlers
7 setDammage
7 displaySetEventHandler
7 ctrlSetEventHandler !="_ctrlButtonOK ctrlseteventhandler [\"buttonclick\"," !="ctrlSetEventHandler ['LBDblClick', '_this call" !="_buttonRespawn ctrlseteventhandler [\"buttonclick\",\"with uinamespace do {['buttonRespawn'," !="_ctrl ctrlSetEventHandler [\"mouseEnter\"" !="_ctrlBtn ctrlSetEventHandler [\"MouseButtonDblClick\", _verAct];" !="_button_gen ctrlSetEventHandler [\"ButtonClick\",_btn_code + \"(uiNamespace getVariable [\""
7 addMPEventHandler
7 addEventHandler !"displayAddEventHandler" !"ctrlAddEventHandler" !="player addeventhandler [\"PostReset\",{BIS_EnginePPReset = true;} ];" !="player addEventHandler [_x,([\"CfgEpochClient\", _x, \"\"] call EPOCH_fnc_returnConfigEntryV2)];" !="\"CBA_fnc_addEventHandler\"" !="\\fnc_addEventHandler" !="\"addEventHandler" !="_eventFunc = _eventFunc + \"(_this select 0) addEventHandler ['Respawn', \" + str _eventFunc + \"];\";" !="_unit addEventHandler [\"hitpart\"," !="CBA_fnc_addEventHandler" !="_unit addEventHandler [_x, format ['call cba_xeh_fnc_%1', _x]];" !="_ship addEventHandler [\"AttributesChanged3DEN\"" !="addEventHandler [\"HandleDamage\",bis_fnc_reviveOnPlayerHandleDamage];" !="_unit addEventHandler [\"FiredNear\"" !="_smokeEH = _plyr addEventHandler [\"FiredNear\", \"airDropHandle setFSMVariable" !="_onContactEH = _currentTarget addEventHandler[\"EpeContactStart"" !="_object addeventhandler [\"local\",{[[_this select 0],\"bis_fnc_objectVar\""
7 displayAddEventHandler !="(findDisplay 46) displayAddEventHandler [\"KeyDown\",\"true\"];" !="displayAddEventHandler [_x,([\"CfgEpochClient\", _x, \"\"] call EPOCH_fnc_returnConfigEntryV2)];" !="_display displayaddeventhandler\n[\n\"mousemoving\"," !="_display displayaddeventhandler [\"unload\",\"uinamespace setvariable ['BIS_fnc_guiMess" !="findDisplay -1337 displayAddEventHandler ['Unload'" !="_display displayaddeventhandler [\"keydown\",\"with uinamespace do {['keyDown'" !="_display displayaddeventhandler [_x,_fnc_animate];" !="Development\") then\n{\n_display displayaddeventhandler [\n\"keydown\"" !="CBA_fnc_addDisplayHandler" !="_display displayAddEventHandler [\"MouseMoving" !="private _handler = _display displayAddEventHandler [_key, _code];" !="_display displayAddEventHandler [\"KeyDown\", \"_this call cba_keybinding_fnc_onKeyDown\""
7 ctrlAddEventHandler !="_control = _display displayctrl 37305; \n_control ctrladdeventhandler" !="_ctrlMap = _display displayctrl 101;\n_ctrlMap ctrladdeventhandler" !="_display displayctrl 21995;\n_assetsButton ctrladdeventhandler [\"buttonclick\"," !="_display displayctrl 2406; \n_control ctrladdeventhandler [\"buttonclick\"," !="_display displayctrl 2400;\n_control ctrladdeventhandler [\"buttonclick\"," !="_ctrlTags ctrladdeventhandler [\"lbselchanged\"," !="_ButtonGeneral ctrladdeventhandler [\"buttonclick\"," !="_ctrlExecuteLocal ctrladdeventhandler [\"buttonclick\"," !="_bg ctrlAddEventHandler [\"MouseEnter\"," !="_container ctrlAddEventHandler [\"LBDblClick\",\"_this call EPOCH_itemInteractClick\"];" !="(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)])];" !="_prevButton ctrlAddEventHandler [\"MouseButtonUp\", {_this call cba_diagnostic_fnc_debug" !="BIS_RscRespawnControlsMap_ctrlHeaderRespawnButton ctrlAddEventhandler [\"ButtonDown\"" !="_control = _display displayctrl 105;\n_control ctrladdeventhandler [\"MouseButtonUp\"" !="_ctrlAddonList ctrlAddEventHandler [\"LBSelChanged\", cba_settings_fnc_gui_addonChanged];"
7 removeAllEventHandlers !"ctrlRemoveAllEventHandlers" !"displayRemoveAllEventHandlers" !="_vehicle removeAllEventHandlers \"GetOut\";" !="_sapper removeAllEventHandlers \"Hit\";\n_sapper removeAllEventHandlers \"FiredNear\";" !="_unit removeAllEventHandlers \"Hit\";\n_unit removeAllEventHandlers \"FiredNear\";" !="{_ship removeAllEventHandlers _x;} forEach [\"AttributesChanged3DEN\"" !="_zombie removeAllEventHandlers \"Hit\";" !="_zombie removeAllEventHandlers \"FiredNear\";"
7 displayRemoveAllEventHandlers !="_display displayRemoveAllEventHandlers _x;" !="if !(isMultiplayer) then { { (findDisplay 46) displayRemoveAllEventHandlers _x } forEach [\"KeyUp\", \"KeyDown\"] };"
7 removeAllMissionEventHandlers
7 ctrlRemoveAllEventHandlers !="(uiNamespace getVariable 'ESP_map') ctrlRemoveAllEventHandlers 'Draw';" !="ctrlAddEventHandler ['MouseButtonDown'"
7 removeEventHandler !="displayRemoveEventHandler" !="player removeEventHandler ['Fired', 0];" !="_currentTarget removeEventHandler[\"EpeContactStart\", _onContactEH]" !=" [_adminVar,objnull];\npublicvariable _adminVar;\nplayer removeeventhandler [\"respawn\",_respawn];" !="_plyr removeEventHandler [\"FiredNear\", _smokeEH];" !="player removeEventHandler [_ehKey, 0];" !="player removeEventHandler [_x, 0];" !="\"CBA_fnc_removeEventHandler\"" !="\\fnc_removeEventHandler" !="\"removeEventHandler"
7 switchCamera !="vehicle player switchCamera" !="_antagonist switchCamera \"Internal\";"
7 remoteControl !="fn_moduleRemoteControl.sqf" !="\"BIS_fnc_moduleRemoteControl\""
7 drawIcon3D !="EPOCH_drawIcon3dStability" !="EPOCH_drawIcon3d" !="drawIcon3D[\"\x\addons\a3_epoch_code\Data\Member.paa\",_color,_pos,1,1,0,_text,1,0.025,\"PuristaMedium\"];\n}forEach EPOCH_ESP_TARGETS;" !="drawIcon3D[format[\"\x\addons\a3_epoch_code\Data\UI\loading_bar_%1.paa\",_stability],_color,(getPosATL EPOCH_stabilityTarget),5,5,0,\"\",1,0.05,\"PuristaMedium\"];" !="drawIcon3D[format[\"\x\addons\a3_epoch_code\Data\UI\loading_bar_%1.paa\",_num],_color,_pos,4,4,0,\"\",1,0.05,\"PuristaMedium\"];" !="if (_condition) then {\ndrawIcon3D [_icon, _color, _position, _sizeX, _sizeY, _angle, _text," !="drawIcon3D [\"\A3\UI_F_MP_Mark\Data\Tasks\Misc\background.paa\"" !="drawIcon3D\n[\n(_x getVariable [\"bis_fnc_reviveGet3dIcons_textures" !="drawIcon3D[\"x\addons\a3_epoch_code\Data\UI\snap_ca.paa\""
7 drawLine3D !="{\nfor [{_i = 1}, {_i < count _x}, {_i = _i + 1}] do {\ndrawLine3D [_x select (_i - 1), _x select _i, ((BIS_tracedShooter getVari"
7 ctrlCreate !="_parent ctrlcreate [\"RscMessageBox\",2351];" !="_c = _dsp ctrlCreate [\"rmx_drag_RscActivePicture\", call epoch_getIDC];" !="_c = _dsp ctrlCreate [\"rmx_t1\", call epoch_getIDC];" !="ctrlCreate [\"RscProgress\",_idc + 1];" !="ctrlCreate [\"rmx_rscControlsGroup\"" !="_ListGroup = _display ctrlCreate [\"RscControlsGroupNoHScrollbars\"" !="ctrlCreate [_x,call _getIDC];" !="_mainGrp = _display ctrlCreate [\"Epoch_main_config_group\",_value];" !="ctrlCreate !="_prevButton = _display ctrlCreate [\"RscButtonMenu\", 90110, _dbg];" [\"RscControlsGroupNoScrollbars\",call epoch_getIDC];" !="ctrlCreate [\"rmx_rscPicture\",(66600 + _e)];" !="ctrlCreate [\"RscStructuredText\",call epoch_getIDC];" !="_bar = _display ctrlCreate [\"RscCustomProgress\"" !="_group = _dsp ctrlCreate [\"rmx_rscControlsGroup\", call Epoch_getIDC]" !="_control = _display ctrlCreate [\"RscControlsGroupNoScrollbars\", 5678910];"
7 ctrlClassName
7 ctrlModel
7 ctrlModelDirection
7 ctrlModelSide
7 ctrlModelUp
7 ctrlSetDirection
7 deleteVehicleCrew !="fn_deleteVehicleCrew.sqf" !="\"BIS_fnc_deleteVehicleCrew\""
7 loadFile
7 selectPlayer !="selectPlayer _playerObject;"
7 setGroupIconsVisible
7 setGroupIconsVisible
7 setGroupIconsSelectable
7 setGroupIconParams
7 addGroupIcon
5 "BIS_fnc_dynamictext" !="\"BIS_fnc_dynamictext\"" !="'BIS_fnc_dynamictext'"
5 loadFile
5 forceRespawn !="ForceRespawnDuration" !="reviveHandleForceRespawnAction" !="forcerespawn player;"
5 setFriend
5 setAmmo
5 enableFatigue
5 setUnitRecoilCoefficient
5 setWeaponReloadingTime !="_unit setWeaponReloadingTime [_unit,_weapon,1];" !="_unit setWeaponReloadingTime [_unit,_weapon,1];" !="player fire [_muzzle, _muzzle, _item];\nplayer setWeaponReloadingTime [player, _muzzle, 0];"
5 allMissionObjects !="_alljammer = allmissionobjects 'PlotPole_EPOCH';"
5 callExtension
5 showCommandingMenu !="showCommandingMenu '';" !="showCommandingMenu '#USER:"
5 enableCollisionWith
5 setvelocity !="setVelocityTarget" !="_bolt setPosATL _pos;\n_bolt setVelocity [0, 0, -10];" !="EPOCH_target setvelocitytransformation" !="_currentTarget setVelocity [0,0,-0.01];" !="_head setVelocity [\n(sin _dir * _speed), \n(cos _dir * _speed)" !="_vel = velocity this; _dir = getDir player; this setVelocity[(_vel select 0)+(sin _dir * 2),(_vel select 1)+(cos _dir * 2),(_vel select 2)];" !="_head setVelocity [random 2,random 2,10];" !="_bobber setVelocity [0,-1,-10];" !="_x setvelocity [0,0,0.1];" !="_veh setVelocity [0,0,0];" !="_this select 0 setvelocity (_this select 1)" !="_zombie setVelocityTransformation [_aslPos,_aslPos,_unitV,_unitV,_unitvDir,_vDir,_unitvUp,_unitvUp,2];"
5 assignAs !"assignAsCargo" !="_unit assignAsGunner _axeCopter;" !="_driver assignAsDriver _axeCopter;" !="axeVIP assignAsDriver vehicle axeVIP;"
5 assignAsCargo !="_x assignAsCargo axeGeneralsBoat;" !="axeVIP assignAsCargo vehicle player;" !="axeVIP assignAsCargo vehicle axeVIP;"
5 allowDamage !="_unit allowDamage false;" !="_unit allowDamage true;" !="player allowDamage true;" !="vehicle player allowDamage true;" !="player allowDamage false;" !="_target allowDamage true;" !="_cargo allowDamage false;"
5 addWeaponCargo !="_acceptHolder addWeaponCargo [_wWeapon, 1] ;" !="CBA_fnc_addWeaponCargo" !="\\fnc_addWeaponCargo" !="\"addWeaponCargo" !="cba_fAddWeaponCargo"
5 onMapSingleClick !="onMapSingleClick '';" !="\"onmapsingleclick\""
5 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\";" !="_wh addMagazineAmmoCargo[_item, 1, _count];" !="CBA_fnc_addMagazine" !="\\fnc_addMagazine" !="\"addMagazine" !="vehicle player addMagazineTurret" !="player addMagazine [_magsTurret,_magAmmo]" !="vehicle player addMagazineTurret" !="player addMagazine [_magsTurret,_magAmmo]" !="EPOCH_fnc_addMagazineOverflow"
5 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] ;" !="CBA_fnc_addMagazineCargo" !="\\fnc_addMagazineCargo" !="\"addMagazineCargo" !="cba_fAddMagazineCargo"
5 addItem !="{player addItemToVest _x} forEach _vestItems;" !="player addItem _item;" !="_plyr addItemToVest _missionItem;" !="axeVIP addItemToVest _item;" !="_plyr addItemToVest _missionItem;" !="EPOCH_fnc_addItemOverflow" !="CBA_fnc_addItem" !="\\fnc_addItem" !="\"addItem" !="fnc_addItemCargo" !="wH = _nearByHolder select 0;\n};\nif !(isNull _wh) then {\n_wh addItemCargoGlobal [_item,1];\n};\n};\n};\n\n_fnc_findItemInContainers = "
5 addBackPack !="fnc_addBackpackCargo"
5 addMissionEventHandler !="CBA_clientID = [0, 2] select isMultiplayer;\naddMissionEventHandler [\"PlayerConnected\", {\nparams [\"_id\", \"_uid\", \"_name\"" !="addMissionEventHandler [\"EachFrame\", {call cba_common_fnc_onFrame}];" !="addMissionEventHandler [\"HandleDisconnect\"," !="addMissionEventHandler [\"Loaded\"," !="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;" !="private _ehId = addMissionEventHandler [_event select [2], _code];" !="addMissionEventHandler [\"PlayerViewChanged\", {if (cameraView isEqualTo \"GROUP\") then {vehicle player switchCamera \"Internal\";};}];"
5 removeMissionEventHandler !="removeMissionEventHandler [\"Draw3D\", _id];" !="removeMissionEventHandler [_event select [2], _x select 1];"
5 removeAllWeapons !="removeAllWeapons axeGeneral;"
5 removeAllItems
5 removeAllActions
5 setViewDistance !="setViewDistance 1600"
5 createGroup !="EPOCH_server_createGroup" !="_grp = createGroup [RESISTANCE, true];" !="if (isserver) then {\n_group = creategroup sidelogic;" !="grpVIPGeneral = createGroup [RESISTANCE, true];" !="_grp = createGroup side _plyr;" !="_grp = createGroup [_side, true];" !="_grp = createGroup [(side _plyr), true];" !="createcenter sidelogic;\n_grpLogic = creategroup sidelogic;\nbis_functions_mainscope" !="_group = createGroup [west, true];"
5 createVehicleCrew !="createvehiclecrew _x;"
5 createVehicleLocal !="\"Sign_Arrow_Direction_Yellow_F\" createVehicleLocal" !="\"#particlesource\" createVehicleLocal" !="\"#lightpoint\" createVehicleLocal" !="\"BloodSplat\" createVehicleLocal" !="[\"lightning1_F\", \"lightning2_F\"] call BIS_fnc_selectRandom;\n_lighting = _class createVehicleLocal" !="SLX_XEH_DUMMY createVehicleLocal [0, 0, 0];" !="CBA_eventHandlers = \"Logic\" createVehicleLocal [0, 0];"
5 createUnit !="_driver = _grp createUnit[\"I_UAV_AI\", position _unit, [], 0, \"CAN_COLLIDE\"];" !="axeGeneral = grpVIPGeneral createUnit [\"I_officer_F\", axeGeneralPos, [], 1, \"CAN_COLLIDE\"];" !="bis_functions_mainscope = _grpLogic createunit [\"Logic\",[9,9,9],[],0,\"none\"];" !="_unit = _grp createUnit[selectRandom _arrUnits, _pos, [], 0, \"FORM\"];" !="_driver = (group player) createUnit[\"I_UAV_AI\", position axeUAV, [], 0, \"CAN_COLLIDE\"];"
5 createAgent !="bis_revive_ratioLethal = createAgent [\"Logic\", [10,10,0], [], 0, \"CAN_COLLIDE\"];" !="_unit = createAgent[_unitClass, _targetPos, [], 256, \"FORM\"];" !="_unit = createAgent [_unitClass, _targetPos, [], 120, \"FORM\"];" !="_animal = createAgent[_randomAIClass, _animalPos, [], 5, \"NONE\"];" !="_unit = createAgent [\"Epoch_Cloak_F\", _pos, [], 0, \"CAN_COLLIDE\"];" !="_unit = createAgent [\"Epoch_Sapper_F\", _targetPos, [], 180, \"FORM\"];" !="_sapper = createAgent [\"Epoch_Sapper_F\", getPos _cage2, [], 0, \"FORM\"];" !="_unit = createAgent[_unitClass, position player, [], _zRange, \"FORM\"];" !="_animal = createAgent[_randomAIClass, _animalPos, [], 0, \"CAN_COLLIDE\"];" !="_axeSapper = createAgent [\"Epoch_Sapper_F\", _pos, [], 12, \"FORM\"];" !="_nestMate = createAgent [\"Epoch_Sapper_F\", _garrPos, [], 0, \"FORM\"];"
5 createTeam
5 createDialog !="createDialog \"rmx_dynamenu\";" !="createDialog \"rmx_craftingUI\";" !="createDialog \"QuickUpgrade\";" !="createDialog \"QuickTake\";" !="createDialog \"InteractBank\";" !="createdialog \"SelectGender\";" !="_handled = createdialog _dialog;" !="if !(createdialog \"InteractItem\") exitWith {};" !="createDialog _tapDiag;" !="if !(createdialog \"Trade\") exitWith {};" !="_ok = createdialog \"Interact\";" !="_ok = createdialog \"TradeNPCMenu\";" !="createDialog \"Epoch_myGroup\";" !="createDialog (if ((Epoch_my_GroupUID == \"\") && (Epoch_my_Group isEqualTo [])) then {\"EPOCH_createGrp\"} else {\"Epoch_myGroup\"});" !="createDialog \"GroupRequests\";" !="_ok = createdialog \"MissionSelect\";" !="createDialog 'Skaronator_AdminMenu';" !="createDialog \"Epoch_myTempGroup\";" !="createDialog (if ((Epoch_my_tempGroupUID == \"\") && (Epoch_my_tempGroup isEqualTo [])) then {\"EPOCH_createTempGrp\"} else {\"Epoch_myTempGroup\"});" !="createDialog \"tempGroupRequests\";"
5 createDisplay !="createDisplay \"rmx_dynamenu\";" !="createDisplay \"rmx_moveDynamicHUD\";" !="_parent createdisplay _displayClass;" !="finddisplay 151 createdisplay 'RscDisplayOptionsLayout'" !="_display createdisplay \"RscDisplayDLCPreview\";"
5 deleteMarker !="deleteMarkerLocal _mName;"
5 setMarker !="CBA_fnc_setMarkerPersistent\"" !="\\fnc_setMarkerPersistent" !="\"setMarkerPersistent" !="_mName setMarkerShapeLocal _mShape;" !="_mName setMarkerTypeLocal _mType;" !="(_x select 0) setMarkerPosLocal (position player);" !="_zoomMarker setMarkerSizeLocal"
5 createMarker !="CBA_fnc_createMarker\"" !="\\fnc_createMarker" !="\"createMarker" !="cba_fCreateMarker" !="createMarkerLocal [_mName, _mPos];"
5 assignItem !="axeVIP assignItem _item;" !="unassignItem"
5 forceAddUniform
5 removeAllMPEventHandlers
5 setDammage
5 displaySetEventHandler
5 ctrlSetEventHandler !="_ctrlButtonOK ctrlseteventhandler [\"buttonclick\"," !="ctrlSetEventHandler ['LBDblClick', '_this call" !="_buttonRespawn ctrlseteventhandler [\"buttonclick\",\"with uinamespace do {['buttonRespawn'," !="_ctrl ctrlSetEventHandler [\"mouseEnter\"" !="_ctrlBtn ctrlSetEventHandler [\"MouseButtonDblClick\", _verAct];" !="_button_gen ctrlSetEventHandler [\"ButtonClick\",_btn_code + \"(uiNamespace getVariable [\"" !="t \"#(rgb,8,8,3)color(1,1,1,0.1)\";\n_c ctrlCommit 0;\n_c ctrlSetEventHandler [\"MouseButtonUp\",format[\"['remove',%1,(_this select 1)"
5 addMPEventHandler
5 addEventHandler !"displayAddEventHandler" !"ctrlAddEventHandler" !="player addeventhandler [\"PostReset\",{BIS_EnginePPReset = true;} ];" !="player addEventHandler [_x,([\"CfgEpochClient\", _x, \"\"] call EPOCH_fnc_returnConfigEntryV2)];" !="\"CBA_fnc_addEventHandler\"" !="\\fnc_addEventHandler" !="\"addEventHandler" !="_eventFunc = _eventFunc + \"(_this select 0) addEventHandler ['Respawn', \" + str _eventFunc + \"];\";" !="_unit addEventHandler [\"hitpart\"," !="CBA_fnc_addEventHandler" !="_unit addEventHandler [_x, format ['call cba_xeh_fnc_%1', _x]];" !="_ship addEventHandler [\"AttributesChanged3DEN\"" !="addEventHandler [\"HandleDamage\",bis_fnc_reviveOnPlayerHandleDamage];" !="_unit addEventHandler [\"FiredNear\"" !="_smokeEH = _plyr addEventHandler [\"FiredNear\", \"airDropHandle setFSMVariable" !="_onContactEH = _currentTarget addEventHandler[\"EpeContactStart"" !="_object addeventhandler [\"local\",{[[_this select 0],\"bis_fnc_objectVar\""
5 displayAddEventHandler !="(findDisplay 46) displayAddEventHandler [\"KeyDown\",\"true\"];" !="displayAddEventHandler [_x,([\"CfgEpochClient\", _x, \"\"] call EPOCH_fnc_returnConfigEntryV2)];" !="displayaddeventhandler [\"mousemoving\"," !="_display displayaddeventhandler [\"unload\",\"uinamespace setvariable ['BIS_fnc_guiMess" !="findDisplay -1337 displayAddEventHandler ['Unload'" !="_display displayaddeventhandler [\"keydown\",\"with uinamespace do {['keyDown'" !="_display displayaddeventhandler [_x,_fnc_animate];" !="Development\") then\n{\n_display displayaddeventhandler [\n\"keydown\"" !="CBA_fnc_addDisplayHandler" !="_display displayAddEventHandler [\"MouseMoving" !="private _handler = _display displayAddEventHandler [_key, _code];" !="_display displayAddEventHandler [\"KeyDown\", \"_this call cba_keybinding_fnc_onKeyDown\"" !="isplay 602};\n\n_display = (findDisplay 602);\n_display displayAddEventHandler [\"MouseButtonUp\",\"[] spawn {rmx_var_fav_selected = f" !="displayaddeventhandler\n[\n\"mousemoving\""
5 ctrlAddEventHandler !="_control = _display displayctrl 37305; \n_control ctrladdeventhandler" !="_ctrlMap = _display displayctrl 101;\n_ctrlMap ctrladdeventhandler" !="_display displayctrl 21995;\n_assetsButton ctrladdeventhandler [\"buttonclick\"," !="_display displayctrl 2406; \n_control ctrladdeventhandler [\"buttonclick\"," !="_display displayctrl 2400;\n_control ctrladdeventhandler [\"buttonclick\"," !="ctrladdeventhandler [\"lbselchanged\"," !="ctrladdeventhandler [\n\"lbselchanged\"," !="_ButtonGeneral ctrladdeventhandler [\"buttonclick\"," !="_ctrlExecuteLocal ctrladdeventhandler [\"buttonclick\"," !="_bg ctrlAddEventHandler [\"MouseEnter\"," !="_container ctrlAddEventHandler [\"LBDblClick\",\"_this call EPOCH_itemInteractClick\"];" !="(uiNamespace getVariable 'ESP_map') ctrlAddEventHandler['Draw', '_esp_targets = EPOCH_ESPMAP_TARGETS;" !="ctrlAddEventHandler ['MouseButtonDown'" !="_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)])];" !="_prevButton ctrlAddEventHandler [\"MouseButtonUp\", {_this call cba_diagnostic_fnc_debug" !="BIS_RscRespawnControlsMap_ctrlHeaderRespawnButton ctrlAddEventhandler [\"ButtonDown\"" !="_control = _display displayctrl 105;\n_control ctrladdeventhandler [\"MouseButtonUp\"" !="ctrlHeaderRespawnButton\", controlNull]) ctrlAddEventhandler [\"ButtonDown\"" !="_selected = false;\n{\n_c = _display displayCtrl _x;\n_c ctrlAddEventHandler [\"LBDrag\",\"rmx_var_favBar_Item = (_this call epoch_fav" !="_ctrlMouseArea ctrladdeventhandler [\"setfocus\",{with uinamespace do {[\"dlcClear\",[ctrlpar" !="13484 ctrlAddEventHandler [\"ButtonClick\", {[\"executeButton\","
5 removeAllEventHandlers !"ctrlRemoveAllEventHandlers" !"displayRemoveAllEventHandlers" !="_vehicle removeAllEventHandlers \"GetOut\";" !="_sapper removeAllEventHandlers \"Hit\";\n_sapper removeAllEventHandlers \"FiredNear\";" !="_unit removeAllEventHandlers \"Hit\";\n_unit removeAllEventHandlers \"FiredNear\";" !="{_ship removeAllEventHandlers _x;} forEach [\"AttributesChanged3DEN\"" !="_zombie removeAllEventHandlers \"Hit\";" !="_zombie removeAllEventHandlers \"FiredNear\";"
5 displayRemoveAllEventHandlers !="_display displayRemoveAllEventHandlers _x;" !="if !(isMultiplayer) then { { (findDisplay 46) displayRemoveAllEventHandlers _x } forEach [\"KeyUp\", \"KeyDown\"] };"
5 removeAllMissionEventHandlers
5 ctrlRemoveAllEventHandlers !="(uiNamespace getVariable 'ESP_map') ctrlRemoveAllEventHandlers 'Draw';" !="ctrlAddEventHandler ['MouseButtonDown'"
5 removeEventHandler !="displayRemoveEventHandler" !="player removeEventHandler ['Fired', 0];" !="_currentTarget removeEventHandler[\"EpeContactStart\", _onContactEH]" !=" [_adminVar,objnull];\npublicvariable _adminVar;\nplayer removeeventhandler [\"respawn\",_respawn];" !="_plyr removeEventHandler [\"FiredNear\", _smokeEH];" !="player removeEventHandler [_ehKey, 0];" !="player removeEventHandler [_x, 0];" !="\"CBA_fnc_removeEventHandler\"" !="\\fnc_removeEventHandler" !="\"removeEventHandler"
5 switchCamera !="vehicle player switchCamera" !="_antagonist switchCamera \"Internal\";"
5 remoteControl !="fn_moduleRemoteControl.sqf" !="\"BIS_fnc_moduleRemoteControl\""
5 drawIcon3D !="EPOCH_drawIcon3dStability" !="EPOCH_drawIcon3d" !="drawIcon3D[\"\x\addons\a3_epoch_code\Data\Member.paa\",_color,_pos,1,1,0,_text,1,0.025,\"PuristaMedium\"];\n}forEach EPOCH_ESP_TARGETS;" !="drawIcon3D[format[\"\x\addons\a3_epoch_code\Data\UI\loading_bar_%1.paa\",_stability],_color,(getPosATL EPOCH_stabilityTarget),5,5,0,\"\",1,0.05,\"PuristaMedium\"];" !="drawIcon3D[format[\"\x\addons\a3_epoch_code\Data\UI\loading_bar_%1.paa\",_num],_color,_pos,4,4,0,\"\",1,0.05,\"PuristaMedium\"];" !="if (_condition) then {\ndrawIcon3D [_icon, _color, _position, _sizeX, _sizeY, _angle, _text," !="drawIcon3D [\"\A3\UI_F_MP_Mark\Data\Tasks\Misc\background.paa\"" !="drawIcon3D\n[\n(_x getVariable [\"bis_fnc_reviveGet3dIcons_textures" !="drawIcon3D[\"x\addons\a3_epoch_code\Data\UI\snap_ca.paa\""
5 drawLine3D !="{\nfor [{_i = 1}, {_i < count _x}, {_i = _i + 1}] do {\ndrawLine3D [_x select (_i - 1), _x select _i, ((BIS_tracedShooter getVari"
5 ctrlCreate !="_parent ctrlcreate [\"RscMessageBox\",2351];" !="_c = _dsp ctrlCreate [\"rmx_drag_RscActivePicture\", call epoch_getIDC];" !="_c = _dsp ctrlCreate [\"rmx_t1\", call epoch_getIDC];" !="ctrlCreate [\"RscProgress\",_idc + 1];" !="ctrlCreate [\"rmx_rscControlsGroup\"" !="_ListGroup = _display ctrlCreate [\"RscControlsGroupNoHScrollbars\"" !="ctrlCreate [_x,call _getIDC];" !="_mainGrp = _display ctrlCreate [\"Epoch_main_config_group\",_value];" !="ctrlCreate !="_prevButton = _display ctrlCreate [\"RscButtonMenu\", 90110, _dbg];" [\"RscControlsGroupNoScrollbars\",call epoch_getIDC];" !="ctrlCreate [\"rmx_rscPicture\",(66600 + _e)];" !="ctrlCreate [\"RscStructuredText\",call epoch_getIDC];" !="_bar = _display ctrlCreate [\"RscCustomProgress\"" !="_group = _dsp ctrlCreate [\"rmx_rscControlsGroup\", call Epoch_getIDC]" !="_control = _display ctrlCreate [\"RscControlsGroupNoScrollbars\", 5678910];"
5 ctrlClassName
5 ctrlModel
5 ctrlModelDirection
5 ctrlModelSide
5 ctrlModelUp
5 ctrlSetDirection
5 deleteVehicleCrew !="fn_deleteVehicleCrew.sqf" !="\"BIS_fnc_deleteVehicleCrew\""
5 selectPlayer !="selectPlayer _playerObject;"
5 setGroupIconsVisible
5 setGroupIconsVisible
5 setGroupIconsSelectable
5 setGroupIconParams
5 addGroupIcon

View File

@ -1 +1 @@
5 "" !="Epoch_(Male|Female)_F" !="SapperHead_SIM_EPOCH" !="(Tipi|Workbench|StorageShelf|Safe|LockBox|FirePlace|FirePlaceOn|PlotPole|SolarGen)_EPOCH" !="(Bed|locker|Filing|Chair|ChairRed|wardrobe|cooker|Couch|Table|Pelican|Fridge|Shelf|ToolRack|Rabbit|Cabinet)_EPOCH" !="(Sheep|Goat|Snake|Hen|Cock|Fin|Alsatian)_random_EPOCH" !="(Safe|LockBox|CinderWallHalf|CinderWall|Fireplace|SolarGen|TankTrap)_SIM_EPOCH" !="Wood(Floor|LargeWall|LargeWallCor|LargeWallDoor|LargeWallDoorway|Stairs|Stairs2|Ramp)_SIM_EPOCH" !="(Foundation|Wood(Foundation|Ladder|Tower))_Ghost_EPOCH" !="Foundation_EPOCH" !="WoodFoundation_EPOCH" !="(Hesco3|Metal)(_Ghost|_SIM|)_EPOCH" !="WoodWall[1-4](_SIM|_Ghost|)_EPOCH"
5 "" !="Epoch_(Male|Female)_F" !="(Bed|locker|Filing|Chair|ChairRed|wardrobe|cooker|Couch|Table|Pelican|Fridge|Shelf)_EPOCH" !="(ToolRack|Rabbit|Cabinet|toilet|KitchenSink)_EPOCH" !="(Sheep|Goat|Snake|Hen|Cock|Fin|Alsatian)_random_EPOCH" !="Foundation_EPOCH" !="WoodFoundation_EPOCH" !=".+_(SIM|Ghost)_EPOCH" !="(FirePlace|FirePlaceOn)_EPOCH"

View File

@ -1 +1 @@
5 "" !=(traderName|Offer|Accept|BUILD_SLOT|TRADE_ACTIVE|last_targeter|epoch_(antagobj|antagBomb|gm_enabled)) !="bis_fnc_objectvar_var" !="bis_fnc_selectrespawntemplate_respawned" !="#(rev_enabled|var)" !="cup_tow_towedveh"
5 "" !=(traderName|Offer|Accept|BUILD_SLOT|TRADE_ACTIVE|last_targeter|epoch_(antagobj|antagBomb)) !="bis_fnc_objectvar_var" !="bis_fnc_selectrespawntemplate_respawned" !="#(rev_enabled|var)" !="cup_tow_towedveh"

View File

@ -1,11 +1,11 @@
/*%FSM<COMPILE "F:\Program Files (x86)\Steam\steamapps\common\Arma 3 Tools\FSMEditor\scriptedFSM.cfg, zombie">*/
/*%FSM<HEAD>*/
/*
item0[] = {"brainz",0,4346,-25.000000,75.000000,75.000000,125.000000,0.000000,"brainz"};
item0[] = {"brainz",0,250,-25.000000,75.000000,75.000000,125.000000,0.000000,"brainz"};
item1[] = {"_",8,218,125.000000,-175.000000,225.000000,-125.000000,0.000000,""};
item2[] = {"instinct",2,250,125.000000,-250.000000,225.000000,-200.000000,0.000000,"instinct"};
item3[] = {"check",4,218,275.000000,-250.000000,375.000000,-200.000000,5.000000,"check"};
item4[] = {"pre_dispose",2,250,-75.000000,-100.000000,25.000000,-50.000000,0.000000,"pre dispose"};
item4[] = {"pre_dispose",2,4346,-75.000000,-100.000000,25.000000,-50.000000,0.000000,"pre dispose"};
item5[] = {"dispose_1",4,218,-75.000000,-275.000000,25.000000,-225.000000,100.000000,"dispose"};
item6[] = {"wait_dispose",4,218,-100.000000,-25.000000,0.000000,25.000000,0.000000,"wait" \n "dispose"};
item7[] = {"reset_vars",2,250,125.000000,-100.000000,225.000000,-50.000000,0.000000,"reset vars"};
@ -28,7 +28,7 @@ item23[] = {"hearing___target",4,218,600.000000,-225.000000,700.000000,-175.0000
item24[] = {"spin",2,250,-50.000000,-425.000000,50.000000,-375.000000,0.000000,"spin"};
item25[] = {"wait",4,218,75.000000,-425.000000,175.000000,-375.000000,0.000000,"wait"};
item26[] = {"scream",4,218,200.000000,-425.000000,300.000000,-375.000000,80.000000,"scream"};
item27[] = {"____FAKE____",9,0,0.000000,0.000000,0.000000,0.000000,0.000000,"____FAKE____"};
item27[] = {"____FAKE____",9,0,0.000000,0.000000,5135053892148252000000000000000000.000000,0.000000,0.000000,"____FAKE____"};
link0[] = {0,17};
link1[] = {1,2};
link2[] = {2,3};
@ -70,8 +70,8 @@ link37[] = {24,25};
link38[] = {25,2};
link39[] = {26,2};
link40[] = {27,10};
globals[] = {0.000000,0,0,0,0,640,480,1,267,6316128,1,-268.969421,732.515686,320.848328,-611.003845,978,854,1};
window[] = {2,-1,-1,-32000,-32000,551,26,1051,26,3,996};
globals[] = {0.000000,0,0,0,0,640,480,1,267,6316128,1,-268.969421,732.515686,320.848328,-611.003845,978,884,1};
window[] = {2,-1,-1,-1,-1,733,208,1233,208,3,996};
*//*%FSM</HEAD>*/
class FSM
{
@ -93,8 +93,8 @@ class FSM
"_fsmPath = ""epoch_code\system"";" \n
"_zombie setBehaviour ""CARELESS"";" \n
"_zombie setUnitPos ""UP""; " \n
"_trgtArr = [""Epoch_Man_Base_F"",""Epoch_Female_base_F""];" \n
"_vehArray = [""Car""];" \n
"_trgtArr = [""Epoch_Male_F"",""Epoch_Female_F"",""LandVehicle"",""Ship"",""Air"",""Tank""];" \n
"" \n
"_trgt = player;" \n
"_t = diag_tickTime;" \n
"_zedPos = getPosATL _zombie;" \n
@ -406,7 +406,7 @@ class FSM
{
name = "pre_dispose";
itemno = 4;
init = /*%FSM<STATEINIT""">*/"_nrTrgts = _zedPos nearEntities [_trgtArr, 480];" \n
init = /*%FSM<STATEINIT""">*/"_nrTrgts = (_zedPos nearEntities [_trgtArr, 480]) select {isPlayer _x};" \n
"_canSee = [];" \n
"{" \n
" if !(lineIntersects [eyePos _trgt, eyePos _zombie, _zombie, _trgt]) then{" \n
@ -622,8 +622,7 @@ class FSM
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"_sanityCheck > 90 && !_moving && _smellCoeff > 0 && !_inSafe"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_nrstTrgt = objNull;" \n
"//_nrTrgts = _zedPos nearEntities [_trgtArr, _smellDist];" \n
"_nrTrgts = nearestObjects [_zedPos, _trgtArr, _smellDist];" \n
"_nrTrgts = (_zedPos nearEntities [_trgtArr, _sightDist]) select {isPlayer _x};" \n
"_avPos = [0,0,0];" \n
"_upwindPos = [0,0,0];" \n
"_smellTrgtPos = [];" \n
@ -658,8 +657,7 @@ class FSM
to="checking_status";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"_sanityCheck > 85 && _sightCoeff > 0 && !_inSafe"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"//_nrTrgts = _zedPos nearEntities [_trgtArr, _sightDist];" \n
"_nrTrgts = nearestObjects [_zedPos, _trgtArr, _sightDist];" \n
action=/*%FSM<ACTION""">*/"_nrTrgts = (_zedPos nearEntities [_trgtArr, _sightDist]) select {isPlayer _x};" \n
"_sightPos = [0,0,0];" \n
"_avPos = [0,0,0];" \n
"" \n
@ -671,7 +669,7 @@ class FSM
"" \n
"" \n
" {" \n
" _sight = [_zombie, ""VIEW""] checkVisibility [eyePos _zombie,aimPos _x];" \n
" _sight = [_zombie, ""VIEW""] checkVisibility [eyePos _zombie,aimPos (driver _x)];" \n
" if(alive _x)then{" \n
" if(_sight >= 0.62)then{" \n
" _thisPos = getPosATL _x;" \n
@ -878,4 +876,4 @@ class FSM
"end",
};
};
/*%FSM</COMPILE>*/
/*%FSM</COMPILE>*/

View File

@ -135,7 +135,7 @@ class FSM
condition=/*%FSM<CONDITION""">*/"!(_moveTo isEqualTo _nextPos)"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_doMove = true;" \n
"_decisionMade = true;" \n
"_moveTo = [] + _nextPos;" \n
"_moveTo = +_nextPos;" \n
""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/

View File

@ -1,69 +0,0 @@
/*%FSM<COMPILE "F:\Program Files (x86)\Bohemia Interactive\Tools\FSM Editor Personal Edition\scriptedFSM.cfg, SPVEH">*/
/*%FSM<HEAD>*/
/*
item0[] = {"Init",0,4346,-300.000000,-225.000000,-200.000000,-175.000000,0.000000,"Init"};
item1[] = {"_",8,218,-300.000000,-150.000000,-200.000000,-100.000000,0.000000,""};
item2[] = {"Process",2,250,-300.000000,-75.000000,-200.000000,-25.000000,0.000000,"Process"};
item3[] = {"Camera_View_Chec",4,218,-300.000000,50.000000,-200.000000,100.000000,0.000000,"Camera View" \n "Checks"};
link0[] = {0,1};
link1[] = {1,2};
link2[] = {2,3};
link3[] = {3,2};
globals[] = {25.000000,1,0,0,16777215,640,480,1,125,6316128,1,-408.109894,77.792206,142.419571,-234.573410,812,854,1};
window[] = {2,-1,-1,-1,-1,763,1706,2731,26,3,830};
*//*%FSM</HEAD>*/
class FSM
{
fsmName = "SPVEH";
class States
{
/*%FSM<STATE "Init">*/
class Init
{
name = "Init";
init = /*%FSM<STATEINIT""">*/"diag_log ""Loaded Camera View Checks"";" \n
"// TODO: this is just temporary till proper workaround is made."/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "_">*/
class _
{
priority = 0.000000;
to="Process";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "Process">*/
class Process
{
name = "Process";
init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "Camera_View_Chec">*/
class Camera_View_Chec
{
priority = 0.000000;
to="Process";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"cameraView == ""GROUP"""/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"vehicle player switchCamera ""Internal"";"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
};
initState="Init";
finalStates[] =
{
};
};
/*%FSM</COMPILE>*/

View File

@ -17,7 +17,7 @@ item12[] = {"Empty_PlayerUID",4,218,125.000000,125.000000,225.000000,175.000000,
item13[] = {"ERROR_PlayerUID",2,250,275.000000,125.000000,375.000000,175.000000,0.000000,"ERROR" \n "PlayerUID Empty"};
item14[] = {"",7,210,471.000061,145.999908,478.999939,154.000092,0.000000,""};
item15[] = {"Timeout_No_Respo",4,218,125.000000,875.000000,225.000000,925.000000,0.000000,"Timeout" \n "No Response"};
item16[] = {"Response",4,218,-150.000000,825.000000,-50.000000,875.000000,0.000000,"Response"};
item16[] = {"Response",4,4314,-150.000000,825.000000,-50.000000,875.000000,0.000000,"Response"};
item17[] = {"Setup_Player_Var",2,250,-25.000000,1075.000000,75.000000,1125.000000,0.000000,"Setup Player" \n "Variables"};
item18[] = {"Request_Hive",2,250,-25.000000,575.000000,75.000000,625.000000,0.000000,"Request Hive"};
item19[] = {"Timeout_No_Respo",4,218,125.000000,575.000000,225.000000,625.000000,0.000000,"Timeout" \n "No Response"};
@ -25,7 +25,7 @@ item20[] = {"ERROR_Server_not",2,250,275.000000,875.000000,375.000000,925.000000
item21[] = {"",7,210,471.000000,895.999939,479.000000,904.000061,0.000000,""};
item22[] = {"Timeout_No_Respo",4,218,125.000000,775.000000,225.000000,825.000000,0.000000,"Timeout" \n "No Response"};
item23[] = {"Wrong_Server_Ver",4,218,125.000000,475.000000,225.000000,525.000000,10.000000,"Wrong" \n "Server Version"};
item24[] = {"Player_In_Game",8,4314,-150.000000,1125.000000,-50.000000,1175.000000,0.000000,"Player" \n "In Game"};
item24[] = {"Player_In_Game",8,218,-150.000000,1125.000000,-50.000000,1175.000000,0.000000,"Player" \n "In Game"};
item25[] = {"ERROR_Wrong_Server",2,250,275.000000,475.000000,375.000000,525.000000,0.000000,"ERROR" \n "Wrong" \n "Server Version"};
item26[] = {"Display_Message",4,218,600.000000,1150.000000,700.000000,1200.000000,0.000000,"" \n "Display Message" \n "Wait..."};
item27[] = {"Setup_Player_Obj",2,250,-25.000000,975.000000,75.000000,1025.000000,0.000000,"Setup Player" \n "Object"};
@ -183,8 +183,8 @@ link93[] = {82,76};
link94[] = {83,16};
link95[] = {83,22};
link96[] = {84,31};
globals[] = {0.000000,0,0,0,0,640,480,1,247,6316128,1,-320.898621,993.773193,1636.447266,764.085449,1287,854,1};
window[] = {2,-1,-1,-1,-1,871,104,1088,104,3,1305};
globals[] = {0.000000,0,0,0,0,640,480,1,247,6316128,1,-279.414825,540.037537,1629.530029,374.077881,577,884,1};
window[] = {2,-1,-1,-1,-1,819,52,1036,52,3,595};
*//*%FSM</HEAD>*/
class FSM
{
@ -198,22 +198,17 @@ class FSM
itemno = 0;
init = /*%FSM<STATEINIT""">*/"titleCut ["""", ""BLACK FADED"", 1337];" \n
"0 fadeSound 0;" \n
"//player enableSimulation false;" \n
"" \n
"_debug = true;" \n
"// use config to control extra debug" \n
"_debug = [""CfgEpochClient"", ""debug"", false] call EPOCH_fnc_returnConfigEntryV2;" \n
"" \n
"_myTime = diag_tickTime;" \n
"if (_debug) then {" \n
" diag_log ""EPOCH-LOGIN: Init"";" \n
"};" \n
"" \n
"_finalPlayerObjectCheck = {" \n
" (_mass isEqualTo (loadAbs _playerObject))" \n
"};" \n
"" \n
"EPOCH_loginFSM = _thisFSM;" \n
"EPOCH_playerLoginInit = {" \n
" EPOCH_loginFSM setFSMVariable [_this select 0, _this select 1];" \n
"};"/*%FSM</STATEINIT""">*/;
"// init vars " \n
"_hitpoints = [];"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
@ -237,9 +232,6 @@ class FSM
name = "FINISH";
itemno = 1;
init = /*%FSM<STATEINIT""">*/"[] spawn EPOCH_masterLoop;" \n
"" \n
"EPOCH_loginFSM = nil;" \n
"EPOCH_playerLoginInit = nil;" \n
"" \n
"// fade in sound and screen" \n
"3 fadeSound 1;" \n
@ -466,10 +458,13 @@ class FSM
"{" \n
" missionNamespace setVariable[(format[""EPOCH_player%1"", EPOCH_customVars select _forEachIndex]), _x];" \n
"} forEach _playerVariables;" \n
"""Loading Player Variables... Please wait!"" call Epoch_updateLoadingScreen;" \n
"{" \n
" missionNamespace setVariable[(format[""EPOCH_total%1"", EPOCH_communityStats select _forEachIndex]), _x];" \n
"} forEach _communityStats;" \n
"""Loading Player Variables and Community Stats... Please wait!"" call Epoch_updateLoadingScreen;" \n
"progressLoadingScreen 0.7;" \n
"if (_debug) then {" \n
" diag_log ""EPOCH-LOGIN: Setup Player Variables"";" \n
" diag_log ""EPOCH-LOGIN: Setup Player Variables and Community Stats"";" \n
"};"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
@ -495,7 +490,7 @@ class FSM
itemno = 18;
init = /*%FSM<STATEINIT""">*/"_myTime = diag_tickTime;" \n
"" \n
"[player] remoteExec [""EPOCH_server_checkPlayer"",2];" \n
"[player,_thisFSM] remoteExec [""EPOCH_server_checkPlayer"",2];" \n
"" \n
"""Loading Player Data... Please wait!"" call Epoch_updateLoadingScreen;" \n
"progressLoadingScreen 0.5;" \n
@ -564,7 +559,7 @@ class FSM
{
name = "ERROR_Wrong_Server";
itemno = 25;
init = /*%FSM<STATEINIT""">*/"_msg = format[""Server and Client running with different Version! (You: %1 // Server: %2)"",getText(configFile >> ""CfgMods"" >> ""Epoch"" >> ""version""),_serverVersion];" \n
init = /*%FSM<STATEINIT""">*/"_msg = format[""Server and Client running with different Version! (You: %1 // Server: %2)"",getText(configFile >> ""CfgMods"" >> ""Epoch"" >> ""version""),Epoch_ServerVersion];" \n
"_msg call Epoch_updateLoadingScreen;" \n
"diag_log _msg;" \n
"" \n
@ -631,7 +626,7 @@ class FSM
priority = 0.000000;
to="Setup_Player_Var";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"_playerObject == player"/*%FSM</CONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"_playerObject == player && local _playerObject"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
@ -894,13 +889,12 @@ class FSM
" player addEventHandler [_x,([""CfgEpochClient"", _x, """"] call EPOCH_fnc_returnConfigEntryV2)];" \n
"} forEach ([""CfgEpochClient"", ""addEventHandler"", []] call EPOCH_fnc_returnConfigEntryV2);" \n
"" \n
"if (count EPOCH_playerHitPoints isEqualTo count ((getAllHitPointsDamage player) param [0,[]])) then {" \n
" {" \n
" player setHitIndex [_forEachIndex, _x];" \n
" }forEach EPOCH_playerHitPoints;" \n
"};" \n
"// set inital hitpoints" \n
"{" \n
" player setHitIndex [_forEachIndex, _x];" \n
"}forEach _hitpoints;" \n
"" \n
"" \n
"true call EPOCH_fnc_Weather;" \n
"[5,100] spawn EPOCH_niteLight;" \n
"" \n
"if (_debug) then {" \n
@ -1055,7 +1049,6 @@ class FSM
"" \n
"_playerPos = getpos _playerObject;" \n
"" \n
"" \n
"""Loading Player Inventory... Please wait!"" call Epoch_updateLoadingScreen;" \n
"progressLoadingScreen 0.6;" \n
""/*%FSM</STATEINIT""">*/;
@ -1069,7 +1062,32 @@ class FSM
priority = 0.000000;
to="Setup_Player_Obj";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"!(isNull _playerObject) && {_playerObject getVariable [""SETUP"",false]} && {_playerPos nearObjectsReady 10} && {call _finalPlayerObjectCheck}"/*%FSM</CONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"" \n
"_state = false;" \n
"_playerCheck = !(isNull _playerObject);" \n
"_playerCheckSetup = false;" \n
"_playerCheckObjectsReady = false;" \n
"_playerCheckFinal = false;" \n
"if (_playerCheck) then {" \n
" _playerCheckSetup = _playerObject getVariable [""SETUP"",false];" \n
" if (_playerCheckSetup) then {" \n
" _playerCheckObjectsReady = _playerPos nearObjectsReady 10;" \n
" if (_playerCheckObjectsReady) then {" \n
" _playerCheckFinal = (_mass isEqualTo (loadAbs _playerObject));" \n
" if (_playerCheckFinal) then {" \n
" _state = true;" \n
" };" \n
" };" \n
" };" \n
"};" \n
"if (_debug) then {" \n
" diag_log format[""DEBUG: Checking Player Object: %1"", [""FAILED"",""OK""] select _playerCheck];" \n
" diag_log format[""DEBUG: Checking Player is setup: %1"", [""FAILED"",""OK""] select _playerCheckSetup];" \n
" diag_log format[""DEBUG: Checking world preloaded: %1"", [""FAILED"",""OK""] select _playerCheckObjectsReady];" \n
" diag_log format[""DEBUG: Final Player mass check: %1 (%2 != %3)"", [""FAILED"",""OK""] select _playerCheckFinal, _mass, (loadAbs _playerObject)];" \n
" diag_log format[""DEBUG: Pos check: %1 == %2"", getpos _playerObject, getpos player];" \n
"};" \n
"_state"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
@ -1320,7 +1338,7 @@ class FSM
init = /*%FSM<STATEINIT""">*/"startLoadingScreen ["""",""EpochLoadingScreen""];" \n
"""Gender Selected... Please wait!"" call Epoch_updateLoadingScreen;" \n
"" \n
"[player,EPOCH_PlayerIsMale] remoteExec [""EPOCH_server_loadPlayer"",2];" \n
"[player,EPOCH_PlayerIsMale,_thisFSM] remoteExec [""EPOCH_server_loadPlayer"",2];" \n
"EPOCH_PlayerIsMale = nil;"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
@ -1373,9 +1391,12 @@ class FSM
"_mass = _C_SET deleteAt 0;" \n
"" \n
"Epoch_my_GroupUID = _C_SET deleteAt 0;" \n
"Epoch_my_tempGroupUID = """";" \n
"Epoch_canBeRevived = _C_SET deleteAt 0;" \n
"Epoch_personalToken = _C_SET deleteAt 0;" \n
"Epoch_my_Group = _C_SET deleteAt 0;" \n
"_communityStats = _C_SET deleteAt 0;" \n
"_hitpoints = _C_SET deleteAt 0;" \n
"" \n
"_extraPayload = _C_SET deleteAt 0;" \n
"" \n
@ -1423,4 +1444,4 @@ class FSM
"Reject_without_B",
};
};
/*%FSM</COMPILE>*/
/*%FSM</COMPILE>*/

View File

@ -17,23 +17,27 @@ private ["_items","_magazines","_weapons"];
//[[[end]]]
closeDialog 0;
{
if ((_x getvariable ["EPOCH_Loot",false]) || _x iskindof "container_epoch") then {
_nearplayers = (player nearEntities ["Man", 12]) select {alive _x && isplayer _x && !(_x == player)};
if (count _nearplayers > 0) exitwith {
["Take all not allowed near other Players",5] call Epoch_message;
};
_magazines = magazinesAmmoCargo _x;
clearMagazineCargoGlobal _x;
{
[_x select 0,1] call EPOCH_fnc_addItemOverflow;
} foreach _magazines;
_magazines = magazinesAmmoCargo _x;
clearMagazineCargoGlobal _x;
{
[_x select 0,_x select 1] call EPOCH_fnc_addItemOverflow;
} foreach _magazines;
_items = itemCargo _x;
clearItemCargoGlobal _x;
{
_x call EPOCH_fnc_addItemOverflow;
} foreach _items;
_items = itemCargo _x;
clearItemCargoGlobal _x;
{
_x call EPOCH_fnc_addItemOverflow;
} foreach _items;
_weapons = weaponCargo _x;
clearWeaponCargoGlobal _x;
{
_x call EPOCH_fnc_addItemOverflow;
} foreach _weapons;
} foreach nearestObjects[player, ["container_epoch"], 5];
_weapons = weaponCargo _x;
clearWeaponCargoGlobal _x;
{
_x call EPOCH_fnc_addItemOverflow;
} foreach _weapons;
};
} foreach nearestObjects[player, ["container_epoch","weaponholdersimulated","GroundWeaponHolder"], 5];

View File

@ -13,15 +13,30 @@
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/EPOCH_QuickTakeLoad.sqf
*/
//[[[cog import generate_private_arrays ]]]
private ["_index","_magazines"];
private ["_index"];
//[[[end]]]
createDialog "QuickTake";
{
_magazines = magazinesAmmoCargo _x;
{
_index = lbAdd[1500, getText(configfile >> "CfgMagazines" >> (_x select 0) >> "DisplayName")];
lbSetData[1500, _index, _x select 0];
lbSetValue[1500, _index, _x select 1];
lbSetPicture[1500, _index, _x select 0 call EPOCH_itemPicture];
} foreach _magazines;
} foreach nearestObjects[player, ["container_epoch"], 5];
if ((_x getvariable ["EPOCH_Loot",false]) || _x iskindof "container_epoch") then {
{
_index = lbAdd[1500, getText(configfile >> "CfgMagazines" >> (_x select 0) >> "DisplayName")];
lbSetData[1500, _index, _x select 0];
lbSetValue[1500, _index, _x select 1];
lbSetPicture[1500, _index, _x select 0 call EPOCH_itemPicture];
} foreach (magazinesAmmoCargo _x);
{
_index = lbAdd[1500, getText(configfile >> "CfgWeapons" >> _x >> "DisplayName")];
lbSetData[1500, _index, _x];
lbSetValue[1500, _index, _x];
lbSetPicture[1500, _index, _x call EPOCH_itemPicture];
} foreach (itemcargo _x);
{
_index = lbAdd[1500, getText(configfile >> "CfgWeapons" >> _x >> "DisplayName")];
lbSetData[1500, _index, _x];
lbSetValue[1500, _index, _x];
lbSetPicture[1500, _index, _x call EPOCH_itemPicture];
} foreach (weaponCargo _x);
};
} foreach (nearestObjects[player, ["container_epoch","weaponholdersimulated","GroundWeaponHolder"], 5]);

View File

@ -13,10 +13,10 @@
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/EPOCH_SpawnTraderMiltia.sqf
*/
//[[[cog import generate_private_arrays ]]]
private ["_allpositions","_grp","_nrBuilds","_rndHouse","_startPos","_trgt","_unit"];
private ["_allpositions","_grp","_nrBuilds","_rndHouse","_startPos","_unit"];
//[[[end]]]
_trgt = player;
_nrBuilds = nearestObjects [getPosATL _trgt,["house"],50];
_nrBuilds = nearestObjects [player,["house"],50];
_grp = createGroup [RESISTANCE, true];
for "_i" from 1 to 3 step 1 do

View File

@ -13,7 +13,7 @@
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/EPOCH_chopWood.sqf
*/
//[[[cog import generate_private_arrays ]]]
private ["_config","_currentPos","_getWorldTypes","_object","_objects","_sel_object","_str","_type","_worldTypes"];
private ["_currentPos","_getWorldTypes","_object","_objects","_sel_object","_type","_worldTypes"];
//[[[end]]]
_currentPos = player modelToWorld[0, 5, 0];
@ -24,13 +24,11 @@ if !(surfaceIsWater _currentPos) then {
_objects = lineIntersectsObjs[eyePos player, _currentPos, player, objNull, true, 2];
_object = objNull;
_type = 0;
_config = 'CfgEpochClient' call EPOCH_returnConfig;
{
_str = str _x;
_sel_object = _x;
_sel_object = _x;
_worldTypes = ["tree","bush"];
_getWorldTypes = [_str, _worldTypes] call EPOCH_worldObjectType;
_getWorldTypes = [_x, _worldTypes] call EPOCH_worldObjectType;
{
if (_getWorldTypes param [_worldTypes find _x, false]) exitWith {
_type = _forEachIndex;

View File

@ -13,7 +13,7 @@
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/EPOCH_consumeItem.sqf
*/
//[[[cog import generate_private_arrays ]]]
private ["_buildClass","_buildingCountLimit","_buildingJammerRange","_canCapacity","_cfgBaseBuilding","_cfgItemInteractions","_color","_currentDMG","_currentFuel","_currentHIT","_fuelCapacity","_highestDMG","_inputCount","_interactAttributes","_interactOption","_interactReturnOnUse","_isOk","_isStorage","_magazineSize","_magazineSizeMax","_magazinesAmmoFull","_newDMG","_newFuel","_object","_otherObjects","_output","_paintCanColor","_paintCanIndex","_partCheck","_pos","_removeItem","_transportFuel","_unifiedInteract","_vehicle","_vehicles"];
private ["_buildClass","_buildingCountLimit","_buildingJammerRange","_canCapacity","_cfgBaseBuilding","_cfgItemInteractions","_color","_currentDMG","_currentFuel","_currentHIT","_fuelCapacity","_ghostClass","_highestDMG","_inputCount","_interactAttributes","_interactOption","_interactReturnOnUse","_isOk","_isStorage","_magazineSize","_magazineSizeMax","_magazinesAmmoFull","_msg","_newDMG","_newFuel","_object","_otherObjects","_output","_paintCanColor","_paintCanIndex","_partCheck","_pos","_removeItem","_transportFuel","_unifiedInteract","_vehicle","_vehicles"];
//[[[end]]]
EPOCH_InteractedItem params ["_text","_item","_pic"];
@ -42,17 +42,19 @@ if (_inputCount >= 3) then {
_removeItem = {([player,_this] call BIS_fnc_invRemove) == 1};
_unifiedInteract = {
if (_item call _removeItem) then {
private _removed = _item call _removeItem;
if (_removed) then {
if (_interactReturnOnUse != "") then {
_interactReturnOnUse call EPOCH_fnc_addItemOverflow;
};
{
_output = _x call EPOCH_giveAttributes;
if (_output != "") then {
[_output, 5] call Epoch_message;
[_output, 5] call Epoch_message_stack;
};
} foreach _interactAttributes;
};
_removed
};
switch _interactOption do {
@ -60,30 +62,33 @@ switch _interactOption do {
_magazineSizeMax = getNumber (configfile >> "CfgMagazines" >> _item >> "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);
};
[_item,_magazineSizeMax] spawn {
params ["_item","_magazineSizeMax"];
if (player == vehicle player) then {
closeDialog 0;
player playMove 'AinvPknlMstpSnonWrflDnon_medic0';
player playMove 'AinvPknlMstpSnonWrflDnon_medicEnd';
uisleep 5;
};
} 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];
_magazineSize = 0;
_magazinesAmmoFull = magazinesAmmoFull player;
{
if (_item isEqualTo (_x select 0)) then {
if (!(_x select 2)) then {
_magazineSize = _magazineSize + (_x select 1);
};
};
} forEach _magazinesAmmoFull;
player removeMagazines _item;
for "_i" from 1 to floor (_magazineSize / _magazineSizeMax) do
{
player addMagazine [_item, _magazineSizeMax];
};
if ((_magazineSize % _magazineSizeMax) > 0) then {
player addMagazine [_item, floor (_magazineSize % _magazineSizeMax)];
};
["Ammo Repacked", 5] call Epoch_message;
};
// Add last non full magazine
if ((_magazineSize % _magazineSizeMax) > 0) then {
player addMagazine [_item, floor (_magazineSize % _magazineSizeMax)];
};
["Ammo Repacked", 5] call Epoch_message;
};
};
case 1: _unifiedInteract; // Eat 1
@ -131,6 +136,11 @@ switch _interactOption do {
};
}
else {
// use ghost GhostPreview if set
_ghostClass = getText(_cfgBaseBuilding >> _buildClass >> "GhostPreview");
if !(_ghostClass isEqualTo "") then {
_buildClass = _ghostClass;
};
_object=createVehicle[_buildClass,_pos,[],0,"CAN_COLLIDE"];
_object setDir ((getDir player) - 180);
[format["Press '%1' to drop object.", "1"], 5] call Epoch_message;
@ -149,6 +159,9 @@ switch _interactOption do {
};
};
case 4: { // Refuel 4
if !(player == vehicle player) exitwith {
["Fill from outside!", 5] call Epoch_message;
};
_vehicles = player nearEntities [["LandVehicle","Ship","Air","Tank"], 30];
if (cursorTarget in _vehicles) then {
_vehicle = cursorTarget;
@ -160,15 +173,23 @@ switch _interactOption do {
_newFuel = _newFuel / _fuelCapacity;
if (_item call _removeItem) then {
_interactReturnOnUse call EPOCH_fnc_addItemOverflow;
// send
[_vehicle,_newFuel,player,Epoch_personalToken] remoteExec ["EPOCH_server_fillVehicle",2];
["Fuel Added", 5] call Epoch_message;
[_interactReturnOnUse,_vehicle,_newFuel] spawn {
params ["_interactReturnOnUse","_vehicle","_newFuel"];
closeDialog 0;
player playMove 'AinvPknlMstpSnonWrflDnon_medic0';
player playMove 'AinvPknlMstpSnonWrflDnon_medicEnd';
uisleep 5;
_interactReturnOnUse call EPOCH_fnc_addItemOverflow;
[_vehicle,_newFuel,player,Epoch_personalToken] remoteExec ["EPOCH_server_fillVehicle",2];
["Fuel Added", 5] call Epoch_message;
};
};
};
};
case 5: {
if !(player == vehicle player) exitwith {
["Siphon from outside!", 5] call Epoch_message;
};
_vehicles = player nearEntities [["LandVehicle","Ship","Air","Tank"], 30];
_canCapacity = _interactAttributes param [0,10];
if (cursorTarget in _vehicles) then {
@ -177,9 +198,16 @@ switch _interactOption do {
_newFuel = (((fuel _vehicle) * _fuelCapacity) - _canCapacity) / _fuelCapacity;
if (_newFuel > 0) then {
if (_item call _removeItem) then {
_interactReturnOnUse call EPOCH_fnc_addItemOverflow;
[_vehicle,_newFuel,player,Epoch_personalToken] remoteExec ["EPOCH_server_fillVehicle",2];
["Fuel Siphoned", 5] call Epoch_message;
[_interactReturnOnUse,_vehicle,_newFuel] spawn {
params ["_interactReturnOnUse","_vehicle","_newFuel"];
closeDialog 0;
player playMove 'AinvPknlMstpSnonWrflDnon_medic0';
player playMove 'AinvPknlMstpSnonWrflDnon_medicEnd';
uisleep 5;
_interactReturnOnUse call EPOCH_fnc_addItemOverflow;
[_vehicle,_newFuel,player,Epoch_personalToken] remoteExec ["EPOCH_server_fillVehicle",2];
["Fuel Siphoned", 5] call Epoch_message;
};
};
} else {
["Not Enough Fuel", 5] call Epoch_message;
@ -194,8 +222,15 @@ switch _interactOption do {
if (_transportFuel > _canCapacity) then {
if (_item call _removeItem) then {
_interactReturnOnUse call EPOCH_fnc_addItemOverflow;
["Fuel Siphoned", 5] call Epoch_message;
[_interactReturnOnUse] spawn {
params ["_interactReturnOnUse"];
closeDialog 0;
player playMove 'AinvPknlMstpSnonWrflDnon_medic0';
player playMove 'AinvPknlMstpSnonWrflDnon_medicEnd';
uisleep 5;
_interactReturnOnUse call EPOCH_fnc_addItemOverflow;
["Fuel Siphoned", 5] call Epoch_message;
};
};
} else {
["Not Enough Fuel", 5] call Epoch_message;
@ -207,49 +242,66 @@ switch _interactOption do {
case 8: _unifiedInteract; //Cold -1
case 9: _unifiedInteract; //Energy 100
case 10: { // Repair 10 - Lite
if !(player == vehicle player) exitwith {
["Repair from outside!", 5] call Epoch_message;
};
_vehicles = player nearEntities [["LandVehicle","Ship","Air","Tank"], 30];
_vehicle = cursorTarget;
if (_vehicle in _vehicles) then {
if (_item call _removeItem) then {
_highestDMG = 0;
_currentHIT = -1;
_currentDMG = 0;
{
_currentDMG = _x;
if (_currentDMG > _highestDMG) then {
_highestDMG = _currentDMG;
_currentHIT = _forEachIndex;
};
}forEach ((getAllHitPointsDamage _vehicle) param [2,[]]);
if (_highestDMG > 0) then {
_newDMG = ((_highestDMG - 0.5) max 0);
if (local _vehicle) then {
[_vehicle, [_currentHIT, _newDMG]] call EPOCH_client_repairVehicle;
[_vehicle] spawn {
params ["_vehicle"];
closeDialog 0;
player playMove 'AinvPknlMstpSnonWrflDnon_medic0';
player playMove 'AinvPknlMstpSnonWrflDnon_medicEnd';
_vehicle say3d 'vehicle_repair';
uisleep 5;
_highestDMG = 0;
_currentHIT = -1;
_currentDMG = 0;
{
_currentDMG = _x;
if (_currentDMG > _highestDMG) then {
_highestDMG = _currentDMG;
_currentHIT = _forEachIndex;
};
}forEach ((getAllHitPointsDamage _vehicle) param [2,[]]);
if (_highestDMG > 0) then {
_newDMG = ((_highestDMG - 0.5) max 0);
if (local _vehicle) then {
[_vehicle, [[_currentHIT, _newDMG]] ] call EPOCH_client_repairVehicle;
} else {
[_vehicle,[[_currentHIT,_newDMG]],player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2];
};
} else {
[_vehicle,[_currentHIT,_newDMG],player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2];
};
} else {
if ((damage _vehicle) > 0) then {
[_vehicle,["ALL",0],player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2];
if ((damage _vehicle) > 0) then {
[_vehicle,["ALL",0],player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2];
};
};
["Vehicle Partially Repaired", 5] call Epoch_message;
};
["Vehicle Partially Repaired", 5] call Epoch_message;
};
};
};
case 11: { // Repair 11 - Heavy
if !(player == vehicle player) exitwith {
["Repair from outside!", 5] call Epoch_message;
};
_vehicles = player nearEntities [["LandVehicle","Ship","Air","Tank"], 30];
_vehicle = cursorTarget;
if (_vehicle in _vehicles) then {
if (_item call _removeItem) then {
[_vehicle,["ALL",0],player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2];
["Vehicle Fully Repaired", 5] call Epoch_message;
[_vehicle] spawn {
params ["_vehicle"];
closeDialog 0;
player playMove 'AinvPknlMstpSnonWrflDnon_medic0';
player playMove 'AinvPknlMstpSnonWrflDnon_medicEnd';
uisleep 5;
_vehicle say3d 'vehicle_repair';
[_vehicle,["ALL",0],player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2];
["Vehicle Fully Repaired", 5] call Epoch_message;
};
};
};
};
@ -285,18 +337,25 @@ switch _interactOption do {
case 13: { //Heal Player
_vehicles = player nearEntities[["Epoch_Male_F", "Epoch_Female_F"], 6];
_vehicle = cursorTarget;
if (_vehicle in _vehicles) then {
if (damage _vehicle != 0 || {_x > 0} count ((getallhitpointsdamage _vehicle) select 2) > 0) then {
if (_item call _removeItem) then {
if !(_vehicle in _vehicles) then {
_vehicle = player;
};
if (damage _vehicle != 0 || {_x > 0} count ((getallhitpointsdamage _vehicle) select 2) > 0) then {
if (_item call _removeItem) then {
[_vehicle] spawn {
params ["_vehicle"];
if (player == vehicle player) then {
closeDialog 0;
player playMove 'AinvPknlMstpSnonWrflDnon_medic0';
player playMove 'AinvPknlMstpSnonWrflDnon_medicEnd';
uisleep 5;
};
[_vehicle,["ALL",0],player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2];
["Healed other player", 5] call Epoch_message;
};
};
} else {
if (damage player != 0 || {_x > 0} count ((getallhitpointsdamage player) select 2) > 0) then {
if (_item call _removeItem) then {
[player,["ALL",0],player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2];
["Healed yourself", 5] call Epoch_message;
if (_vehicle isEqualTo player) then {
["Healed yourself", 5] call Epoch_message;
} else {
["Healed other player", 5] call Epoch_message;
};
};
};
};
@ -309,6 +368,51 @@ switch _interactOption do {
};
};
case 15: { // Read
_msg = getArray(missionConfigFile >> "CfgReadingDocuments" >> _item >> "displayMessage");
if!(_msg isEqualTo [])then{
{
[_x,5] call Epoch_message_stack;
}forEach _msg;
}else{
["This document can't be read yet. Blame DirtySanchez!",5] call Epoch_message;
};
};
case 16: { // Morphine
_vehicle = player;
if (damage _vehicle != 0 || {_x > 0} count ((getallhitpointsdamage _vehicle) select 2) > 0) then {
if (call _unifiedInteract) then {
[_vehicle,_item] spawn {
params ["_vehicle","_item"];
if (player == vehicle player) then {
closeDialog 0;
player playMove 'AinvPknlMstpSnonWrflDnon_medic0';
player playMove 'AinvPknlMstpSnonWrflDnon_medicEnd';
uisleep 5;
};
private _out = [];
{
if (_x > 0) then {
_out pushback [_foreachindex,((_x - 0.2) min 0.45) max 0];
};
}forEach ((getAllHitPointsDamage _vehicle) param [2,0]);
if (_out isequalto []) then {
if ((damage _vehicle) > 0) then {
_out = ["ALL",0];
};
};
if !(_out isequalto []) then {
[_vehicle,_out,player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2];
};
[format["Used %1 on yourself",_item call EPOCH_itemDisplayName], 5] call Epoch_message;
};
};
} else {
[format["%1 is not needed at this time",_item call EPOCH_itemDisplayName], 5] call Epoch_message;
};
};
default {
["Found nothing", 5] call Epoch_message;
};

View File

@ -1,72 +0,0 @@
/*
Author: Aaron Clark - EpochMod.com
Contributors:
Description:
Epoch debug monitor
Licence:
Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike
Github:
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/EPOCH_debugMonitor.sqf
*/
//[[[cog import generate_private_arrays ]]]
private ["_customVars","_hours","_val"];
//[[[end]]]
_hours = floor(servertime/60/60);
_customVars = "";
{
_val = missionNamespace getVariable [format ["EPOCH_player%1",_x],EPOCH_defaultVars select _forEachIndex];
if !(_x in ["AliveTime","SpawnArray","HitPoints","MissionArray"]) then {
if (_x == "Temp") then {
_customVars = _customVars + format["<t size='1.15' font='puristaLight' align='left'>%1: </t><t size='1.15' font='puristaLight' align='right'>%2°F | %3°C</t><br/>", _x,_val,_val call EPOCH_convertTemp];
} else {
_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,_val];
};
}
}forEach EPOCH_customVars;
hintSilent parseText format ["
<t size='1.25' font='puristaLight' align='center'>Welcome to Epoch!</t><br/>
<t size='1.18' font='puristaLight' align='center'>Current Version: %1</t><br/>
<t size='1.0' font='puristaLight' align='center'>Build: %2</t><br/>
" + _customVars + "
<br/>
<t size='1.15' font='puristaLight' align='left'>Fatigue: </t><t size='1.15' font='puristaLight' align='right'>%3</t><br/>
<t size='1.15' font='puristaLight' align='left'>Damage: </t><t size='1.15' font='puristaLight' align='right'>%4</t><br/>
<t size='1.15' font='puristaLight' align='left'>Bleeding: </t><t size='1.15' font='puristaLight' align='right'>%5</t><br/>
<t size='1.15' font='puristaLight' align='left'>Bleed Time: </t><t size='1.15' font='puristaLight' align='right'>%6</t><br/>
<t size='1.15' font='puristaLight' align='left'>Oxygen: </t><t size='1.15' font='puristaLight' align='right'>%7</t><br/>
<br/>
<t size='1.15' font='puristaLight' align='left'>Air Temp: </t><t size='1.15' font='puristaLight' align='right'>%8</t><br/>
<t size='1.15' font='puristaLight' align='left'>Water Temp: </t><t size='1.15' font='puristaLight' align='right'>%9</t><br/>
<t size='1.15' font='puristaLight' align='left'>Rain: </t><t size='1.15' font='puristaLight' align='right'>%10</t><br/>
<t size='1.15' font='puristaLight' align='left'>Overcast: </t><t size='1.15' font='puristaLight' align='right'>%11</t><br/>
<br/>
<t size='1.15' font='puristaLight' align='left'>Hours Alive: </t><t size='1.15' font='puristaLight' align='right'>%12</t><br/>
<t size='1.15' font='puristaLight' align='left'>FPS: </t><t size='1.15' font='puristaLight' align='right'>%13</t><br/>
<t size='1.15' font='puristaLight' align='left'>Server uptime: </t><t size='1.15' font='puristaLight' align='right'>%14h %15m</t><br/>
<t size='1.15' font='puristaLight' align='left'>Server FPS: </t><t size='1.15' font='puristaLight' align='right'>%16</t><br/>",
getText(configFile >> "CfgMods" >> "Epoch" >> "version"),
getNumber(missionConfigFile >> "CfgEpochBuild" >> "build"),
(getFatigue player),
(damage player),
(isBleeding player),
(getBleedingRemaining player),
(getOxygenRemaining player),
format ["%1°F | %2°C",EPOCH_CURRENT_WEATHER,EPOCH_CURRENT_WEATHER call EPOCH_convertTemp],
format ["%1°F | %2°C",(EPOCH_CURRENT_WEATHER/2),(EPOCH_CURRENT_WEATHER/2) call EPOCH_convertTemp],
rain,
overcast,
round(EPOCH_playerAliveTime/360)/10,
round diag_fps,
_hours,
round((serverTime/60)-(_hours*60)),
if (EPOCH_diag_fps isEqualType 0) then [{EPOCH_diag_fps},{"MANIPULATED"}]
];

View File

@ -61,10 +61,10 @@ if (surfaceIsWater _currentPos) then {
_fish = selectRandom _fishes;
if (_fish != "") then {
_fish call EPOCH_fnc_addItemOverflow;
["Fish Caught", 5] call Epoch_message;
["Fish Caught", 5,[[0,0,0,0.5],[0,1,0,1]]] call Epoch_message;
};
} else {
["Fish Got Away", 5] call Epoch_message;
["Fish Got Away", 5,[[0,0,0,0.5],[1,0,0,1]]] call Epoch_message;
};
};
};

View File

@ -13,19 +13,19 @@
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/EPOCH_lootTrash.sqf
*/
//[[[cog import generate_private_arrays ]]]
private ["_animal","_animalPos","_animals","_bankTerminal","_blood","_bloodPos","_cfgItemInteractions","_cfgObjectInteractions","_config","_configWorldInteractions","_configWorldName","_destroyTrashObj","_found","_foundLootObject","_foundObjConfig","_foundObjType","_foundTerminal","_foundWorldConfig","_getWorldTypes","_id","_index","_inputWorldTypes","_interactAttributes","_lootAnimalObj","_objects","_output","_randomAIClass","_return","_trashType"];
private ["_animal","_animalPos","_animals","_bankTerminal","_blood","_bloodPos","_cfgItemInteractions","_cfgObjectInteractions","_config","_destroyTrashObj","_found","_foundLootObject","_foundObjConfig","_foundObjType","_foundTerminal","_getWorldTypes","_id","_index","_inputWorldTypes","_interactAttributes","_lootAnimalObj","_objects","_output","_randomAIClass","_return","_trashClasses","_trashType"];
//[[[end]]]
_return = false;
if (diag_tickTime - EPOCH_lastTrash > 2) then {
EPOCH_lastTrash = diag_tickTime;
_config = 'CfgEpochClient' call EPOCH_returnConfig;
_configWorldInteractions = (_config >> "CfgWorldInteractions");
_configWorldName = (_config >> worldname);
_interactAttributes = [];
_interactAttributes = [];
_cfgObjectInteractions = 'CfgObjectInteractions' call EPOCH_returnConfig;
_inputWorldTypes = ["bankTerminal"];
_inputWorldTypes append getArray(_configWorldName >> "TrashClasses");
_trashClasses = getArray(_config >> worldname >> "TrashClasses");
_inputWorldTypes append _trashClasses;
_destroyTrashObj = objNull;
_lootAnimalObj = objNull;
@ -36,30 +36,22 @@ if (diag_tickTime - EPOCH_lastTrash > 2) then {
_found = false;
_foundTerminal = false;
_foundLootObject = false;
if !(_x isKindOf "All") then {
if (alive _x) then {
_getWorldTypes = [str(_x), _inputWorldTypes] call EPOCH_worldObjectType;
{
_found = _getWorldTypes param [_inputWorldTypes find _x, false];
if (_found) exitWith{ _trashType = _forEachIndex };
} forEach getArray(_configWorldName >> "TrashClasses");
_foundTerminal = _getWorldTypes param [_inputWorldTypes find "bankTerminal", false];
};
} else {
_foundObjType = typeOf _x;
_foundObjConfig = (_cfgObjectInteractions >> _foundObjType);
_foundWorldConfig = (_configWorldInteractions >> _foundObjType);
if (alive _x) then {
{
_found = (getNumber(_foundWorldConfig >> _x) == 1);
if (_found) exitWith{ _trashType = _forEachIndex };
} forEach getArray(_configWorldName >> "TrashClasses");
_foundTerminal = (getNumber(_foundWorldConfig >> "bankTerminal") == 1);
_foundLootObject = ((getNumber(_foundObjConfig >> "interactMode") == 3) && (getNumber (_foundObjConfig >> "aliveState") == 0));
} else {
_foundLootObject = (getNumber(_cfgObjectInteractions >> _foundObjType >> "interactMode") == 3);
};
};
_foundObjType = typeOf _x;
_foundObjConfig = (_cfgObjectInteractions >> _foundObjType);
if (alive _x) then {
_getWorldTypes = [_x, _inputWorldTypes] call EPOCH_worldObjectType;
{
_found = _getWorldTypes param [_inputWorldTypes find _x, false];
if (_found) exitWith{ _trashType = _forEachIndex };
} forEach _trashClasses;
_foundTerminal = _getWorldTypes param [_inputWorldTypes find "bankTerminal", false];
_foundLootObject = ((getNumber(_foundObjConfig >> "interactMode") == 3) && (getNumber (_foundObjConfig >> "aliveState") == 0));
} else {
_foundLootObject = (getNumber(_foundObjConfig >> "interactMode") == 3);
};
if (_found) exitWith{ _destroyTrashObj = _x };
if (_foundLootObject) exitWith{ _lootAnimalObj = _x };
if (_foundTerminal) exitWith{ _bankTerminal = _x };

View File

@ -13,11 +13,11 @@
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/EPOCH_mineRocks.sqf
*/
//[[[cog import generate_private_arrays ]]]
private ["_config","_currentPos","_found","_foundIndex","_getWorldTypes","_object","_objects","_str","_worldTypes"];
private ["_currentPos","_found","_foundIndex","_getWorldTypes","_object","_objects","_worldTypes"];
//[[[end]]]
if ((diag_tickTime - EPOCH_lastMineRocks) >= 2) then {
EPOCH_lastMineRocks = diag_tickTime;
if (random 1 < 0.16) then {
if (random 1 < 0.33) then {
_currentPos = player modelToWorld[0, 5, 0];
if !(surfaceIsWater _currentPos) then {
@ -27,29 +27,22 @@ if ((diag_tickTime - EPOCH_lastMineRocks) >= 2) then {
_objects = lineIntersectsWith[eyePos player, _currentPos, player, objNull, true];
_object = objNull;
_config = 'CfgEpochClient' call EPOCH_returnConfig;
_found = false;
_foundIndex = -1;
{
if !(_x isKindOf "All") then {
_str = str(_x);
_worldTypes = ["rock","cinder","wreck"];
_getWorldTypes = [_str, _worldTypes] call EPOCH_worldObjectType;
{
if (_getWorldTypes param [_worldTypes find _x, false]) exitWith {
_found = true;
_foundIndex = _forEachIndex - 1;
};
} forEach _worldTypes;
};
_worldTypes = ["rock","cinder","wreck","ore"];
_getWorldTypes = [_x, _worldTypes] call EPOCH_worldObjectType;
{
if (_getWorldTypes param [_worldTypes find _x, false]) exitWith {
_found = true;
_foundIndex = _forEachIndex;
};
} forEach _worldTypes;
if (_found)exitWith{_object = _x};
}foreach _objects;
if (!isNull _object) then {
if (alive _object) then {
[_object, _foundIndex, player, Epoch_personalToken] remoteExec ["EPOCH_server_mineRocks",2];
};
if (!isNull _object && {alive _object}) then {
[_object, _foundIndex, player, Epoch_personalToken] remoteExec ["EPOCH_server_mineRocks",2];
};
};
};

View File

@ -27,7 +27,7 @@ if (_nlEnabled isEqualTo 1) then {
EP_light = "#lightpoint" createvehiclelocal _pos;
EP_light setposATL _pos;
EP_light attachTo [player,[0,8.11,_nlZ]]; //offset infront of player so that the darkness is 'following' them.
EP_light setLightDayLight true; //TODO: Test if this can be turned off (Dawn / Dusk)
EP_light setLightDayLight false; //Sets light so it can only be used at night.
EP_light setLightBrightness _nlBright;
EP_light setLightAmbient [0.435, 0.439, 0.439];//Using new Colours.
EP_light setlightcolor [0.435, 0.439, 0.439];

View File

@ -24,9 +24,18 @@ if (EPOCH_velTransform) then {
EPOCH_target setvelocitytransformation[_pos1, (EP_velocityTransformation select 0), _vel1, (EP_velocityTransformation select 1), _dir1, (EP_velocityTransformation select 2), _up1, (EP_velocityTransformation select 3), _interval];
} else {
_pos2 = player modelToWorld[EPOCH_X_OFFSET, EPOCH_Y_OFFSET, EPOCH_Z_OFFSET];
if !(EPOCH_maxBuildingHeight == 0) then {
if (_pos2 select 2 > EPOCH_maxBuildingHeight) then {
_pos2 set[2, EPOCH_maxBuildingHeight];
};
};
if ((_pos2 select 2) < 0) then { _pos2 set[2, 0] };
if ((_pos1 distance _pos2) > 0) then {
EPOCH_target setvelocitytransformation[_pos1, AGLtoASL _pos2, _vel1, _vel1, _dir1, _dir1, _up1, _up1, _interval];
_newpos = AGLtoASL _pos2;
if (surfaceiswater _pos2) then {
_newpos = _pos2;
};
EPOCH_target setvelocitytransformation[_pos1, _newpos, _vel1, _vel1, _dir1, _dir1, _up1, _up1, _interval];
};
};
} else {
@ -50,7 +59,7 @@ if (!isNull EPOCH_currentTarget && vehicle player == player) then {
_icon = "\x\addons\a3_epoch_code\Data\UI\loading_bar_%1.paa";
_color = [100,0,_stability,1] call EPOCH_colorRange;
};
case 1: {
case 1: {
// _text = if (EPOCH_buildMode > 0) then[{_text}, { format ["Hold (%1)",EPOCH_keysBuildMode1 call BIS_fnc_keyCode] }];
_stability = if (EPOCH_buildMode > 0) then[{_currentTarget getVariable["stability", 100]}, {100 - round(damage _currentTarget * 100)}];
_icon = "\x\addons\a3_epoch_code\Data\UI\loading_bar_%1.paa";

View File

@ -13,7 +13,7 @@
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/EPOCH_unitSpawn.sqf
*/
//[[[cog import generate_private_arrays ]]]
private ["_aiskill","_arrSkills","_arrUnits","_arrVals","_bomb","_config","_currentLimit","_disableAI","_driver","_grp","_index","_jammerRange","_jammers","_loop","_minAISkill","_nonJammer","_nonTrader","_nonTraderAIRange","_pos","_restricted","_sapperHndl","_sapperNum","_spawnLimit","_targetPos","_unit","_units"];
private ["_aiskill","_arrSkills","_arrUnits","_arrVals","_bomb","_config","_currentLimit","_disableAI","_driver","_grp","_index","_jammerRange","_jammers","_loop","_minAISkill","_missionConfig","_nonJammer","_nonTrader","_nonTraderAIRange","_playerSpawnArray","_playerSpawnArrayKeyFinal","_pos","_restricted","_sapperHndl","_sapperNum","_spawnLimit","_targetPos","_unit","_units"];
//[[[end]]]
params ["_unitClass",["_trgt",player],["_doVariable",false],["_unitCount",1],["_extraData",[]] ];
@ -22,7 +22,10 @@ _bomb = objNull;
_index = EPOCH_spawnIndex find _unitClass;
_spawnLimit = 0;
if (_index != -1) then {
_spawnLimit = EPOCH_playerSpawnArray select _index;
_playerSpawnArrayKeyFinal = "EPOCH_playerSpawnArray";
if !(isNil "_playerSpawnArrayKey") then {_playerSpawnArrayKeyFinal = _playerSpawnArrayKey};
_playerSpawnArray = missionNamespace getVariable [_playerSpawnArrayKeyFinal,[]];
_spawnLimit = _playerSpawnArray select _index;
};
_currentLimit = count(_trgt nearEntities[_unitClass, 800]);
if (!_doVariable && (_currentLimit >= _spawnLimit)) exitWith {
@ -57,6 +60,7 @@ switch _unitClass do {
_units pushBack _unit;
_unit call _disableAI;
[_unit,_trgt] execFSM "\x\addons\a3_epoch_code\System\cloak.fsm";
_unit addEventHandler ["Killed", {[_this, "AntagonistKills", 1, true] call Epoch_unit_onKilledEH;}];
};
};
case "GreatWhite_F": {
@ -67,6 +71,7 @@ switch _unitClass do {
_units pushBack _unit;
_unit call _disableAI;
[_unit] execFSM "\x\addons\a3_epoch_code\System\Shark_Brain.fsm";
_unit addEventHandler ["Killed", {[_this, "AntagonistKills", 1, true] call Epoch_unit_onKilledEH;}];
};
};
};
@ -90,6 +95,7 @@ switch _unitClass do {
_unit setVariable ["sapperHndl",_sapperHndl];
_unit addEventHandler ["FiredNear", format ["%1 setFSMVariable [""_sFiredNear"",[_this select 1, _this select 2]];",_sapperHndl]];
_unit addEventHandler ["Hit", format ["%1 setFSMVariable [""_sHit"",[_this select 1, _this select 2]];",_sapperHndl]];
_unit addEventHandler ["Killed", {[_this, "AntagonistKills", 1, true] call Epoch_unit_onKilledEH;}];
};
};
};
@ -99,11 +105,15 @@ switch _unitClass do {
_units pushBack _unit;
_bomb = createVehicle ["SmokeShellToxicSapper", _targetPos, [], 0, "CAN_COLLIDE"];
_bomb attachTo [_unit, [0,0,0],"Pelvis"];
[_bomb, player, Epoch_personalToken,_unit,false] remoteExec ["EPOCH_server_handle_sapperObjs",2];
_bomb = createVehicle ["Sapper_Charge_Ammo", _targetPos, [], 0, "CAN_COLLIDE"];
_bomb attachTo [_unit, [0,0,0],"Pelvis"];
_unit call _disableAI;
_sapperHndl = [_unit, _bomb, _trgt] execFSM "\x\addons\a3_epoch_code\System\Sapper_Brain2.fsm";
_unit setVariable ["sapperHndl",_sapperHndl];
_unit addEventHandler ["FiredNear", format ["%1 setFSMVariable [""_sFiredNear"",[_this select 1, _this select 2]];",_sapperHndl]];
_unit addEventHandler ["Hit", format ["%1 setFSMVariable [""_sHit"",[_this select 1, _this select 2]];",_sapperHndl]];
_unit addEventHandler ["Killed", {[_this, "AntagonistKills", 1, true] call Epoch_unit_onKilledEH;}];
};
};
case "Epoch_SapperB_F": {
@ -117,6 +127,7 @@ switch _unitClass do {
_unit setVariable ["sapperHndl",_sapperHndl];
_unit addEventHandler ["FiredNear", format ["%1 setFSMVariable [""_sFiredNear"",[_this select 1, _this select 2]];",_sapperHndl]];
_unit addEventHandler ["Hit", format ["%1 setFSMVariable [""_sHit"",[_this select 1, _this select 2]];",_sapperHndl]];
_unit addEventHandler ["Killed", {[_this, "AntagonistKills", 1, true] call Epoch_unit_onKilledEH;}];
};
};
case "I_UAV_01_F": {
@ -132,6 +143,7 @@ switch _unitClass do {
_driver = _grp createUnit["I_UAV_AI", position _unit, [], 0, "CAN_COLLIDE"];
_driver moveInAny _unit;
[_unit, _trgt] execFSM "\x\addons\a3_epoch_code\System\Copter_brain.fsm";
_unit addEventHandler ["Killed", {[_this, "AIKills", 1, true] call Epoch_unit_onKilledEH;}];
};
};
case "PHANTOM": {
@ -156,20 +168,21 @@ switch _unitClass do {
_grp = createGroup [RESISTANCE, true];
_grp setBehaviour "COMBAT";
_grp setCombatMode "RED";
_minAISkill = getNumber (getMissionConfig "CfgEpochSoldier" >> "minAISkill");
_arrUnits = getArray (getMissionConfig "CfgEpochSoldier" >> "unitTypes");
_missionConfig = getMissionConfig "CfgEpochSoldier";
_minAISkill = getNumber (_missionConfig >> "minAISkill");
_arrUnits = getArray (_missionConfig >> "unitTypes");
_arrSkills = ["aimingAccuracy","aimingShake","aimingSpeed","endurance","spotDistance","spotTime","courage","reloadSpeed","commanding","general"];
_arrVals = [
getNumber (getMissionConfig "CfgEpochSoldier" >> "maxAimingAccuracy"),
getNumber (getMissionConfig "CfgEpochSoldier" >> "maxAimingShake"),
getNumber (getMissionConfig "CfgEpochSoldier" >> "maxAimingSpeed"),
getNumber (getMissionConfig "CfgEpochSoldier" >> "maxEndurance"),
getNumber (getMissionConfig "CfgEpochSoldier" >> "maxSpotDistance"),
getNumber (getMissionConfig "CfgEpochSoldier" >> "maxSpotTime"),
getNumber (getMissionConfig "CfgEpochSoldier" >> "maxCourage"),
getNumber (getMissionConfig "CfgEpochSoldier" >> "maxReloadSpeed"),
getNumber (getMissionConfig "CfgEpochSoldier" >> "maxCommanding"),
getNumber (getMissionConfig "CfgEpochSoldier" >> "maxGeneral")
getNumber (_missionConfig >> "maxAimingAccuracy"),
getNumber (_missionConfig >> "maxAimingShake"),
getNumber (_missionConfig >> "maxAimingSpeed"),
getNumber (_missionConfig >> "maxEndurance"),
getNumber (_missionConfig >> "maxSpotDistance"),
getNumber (_missionConfig >> "maxSpotTime"),
getNumber (_missionConfig >> "maxCourage"),
getNumber (_missionConfig >> "maxReloadSpeed"),
getNumber (_missionConfig >> "maxCommanding"),
getNumber (_missionConfig >> "maxGeneral")
];
for "_i" from 0 to (_unitCount - 1) do {
_unit = _grp createUnit[selectRandom _arrUnits, _pos, [], 0, "FORM"];
@ -180,6 +193,7 @@ switch _unitClass do {
_unit enableAI "MOVE";
_unit enableAI "ANIM";
_unit disableAI "FSM";
_unit addEventHandler ["Killed", {[_this, "AIKills", 1, true] call Epoch_unit_onKilledEH;}];
// randomize skill
for "_i" from 0 to ((count _arrSkills)-1) do {
_aiskill = floor random (_arrVals select _i);

View File

@ -13,10 +13,13 @@
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/EPOCH_unitSpawnDecrease.sqf
*/
//[[[cog import generate_private_arrays ]]]
private ["_index"];
private ["_index","_playerSpawnArray","_playerSpawnArrayKeyFinal"];
//[[[end]]]
params ["_spawnName", ["_decrease",1]];
_index = EPOCH_spawnIndex find _spawnName;
if (_index != -1) then{
EPOCH_playerSpawnArray set[_index, ((EPOCH_playerSpawnArray select _index) - _decrease) max 0];
_playerSpawnArrayKeyFinal = "EPOCH_playerSpawnArray";
if !(isNil "_playerSpawnArrayKey") then {_playerSpawnArrayKeyFinal = _playerSpawnArrayKey};
_playerSpawnArray = missionNamespace getVariable [_playerSpawnArrayKeyFinal,[]];
_playerSpawnArray set[_index, ((_playerSpawnArray select _index) - _decrease) max 0];
};

View File

@ -13,10 +13,13 @@
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/EPOCH_unitSpawnIncrease.sqf
*/
//[[[cog import generate_private_arrays ]]]
private ["_index"];
private ["_index","_playerSpawnArray","_playerSpawnArrayKeyFinal"];
//[[[end]]]
params ["_spawnName", ["_increase",1]];
_index = EPOCH_spawnIndex find _spawnName;
if (_index != -1) then{
EPOCH_playerSpawnArray set[_index, ((EPOCH_playerSpawnArray select _index) + _increase) min (EPOCH_spawnLimits select _index)];
_playerSpawnArrayKeyFinal = "EPOCH_playerSpawnArray";
if !(isNil "_playerSpawnArrayKey") then {_playerSpawnArrayKeyFinal = _playerSpawnArrayKey};
_playerSpawnArray = missionNamespace getVariable [_playerSpawnArrayKeyFinal,[]];
_playerSpawnArray set[_index, ((_playerSpawnArray select _index) + _increase) min (EPOCH_spawnLimits select _index)];
};

View File

@ -0,0 +1,25 @@
/*
Author: DirtySanchez - EpochMod.com
Contributors:
Description:
Antagonist killed event handler
Licence:
Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike
Github:
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/EPOCH_unit_onKilledEH.sqf
*/
params [ ["_killedEH",[]], ["_statType","AIKills"], ["_adjust", 0], ["_toClient", false] ];
if(_killedEH isEqualTo [])exitWith{diag_log "EPOCHDebug: unit_onKilledEH -1- EH sent empty array";};
if(_statType isEqualTo "")exitWith{diag_log "EPOCHDebug: unit_onKilledEH -2- stat Type is empty string";};
if(_adjust isEqualTo 0)exitWith{diag_log "EPOCHDebug: unit_onKilledEH -3- stat adjustment is 0";};
_unit = _killedEH select 0;
_killer = _killedEH select 1;
if(_unit isEqualTo _killer)exitWith{
//diag_log "EPOCHDebug: unit_onKilledEH -4- unit is killer";
};
[player, _killer, _statType, _adjust, _toClient, Epoch_personalToken] remoteExec ["EPOCH_fnc_updatePlayerStats",2];

View File

@ -47,5 +47,8 @@ removegoggles _unit;
_zedHandle = [_unit,true] execFSM "epoch_code\system\EPOCH_zombie_brain.fsm";
_unit addEventHandler ["FiredNear", "(_this select 0) setVariable [""zFiredNear"",[_this select 1, _this select 2]];"];
_unit addEventHandler ["Hit", "(_this select 0) setVariable [""zHit"",[_this select 1, _this select 2]];"];
_unit addEventHandler ["Killed", {
[player, _this select 1, "ZombieKills", 1, true, Epoch_personalToken] remoteExec ["EPOCH_fnc_updatePlayerStats",2];
}];
_unit

View File

@ -24,7 +24,7 @@
BOOL
*/
//[[[cog import generate_private_arrays ]]]
private ["_config","_config_name","_file","_file_raw","_file_tag","_fnc_path","_missionConfig","_tag","_var_name","_version"];
private ["_code","_config","_config_name","_customVarNames","_customVarsInit","_file","_file_raw","_file_tag","_fnc_path","_header","_missionConfig","_randomValues","_rng","_tag","_var_name","_version"];
//[[[end]]]
params [["_configName","",[""] ] ];
@ -33,6 +33,22 @@ _missionConfig = (getMissionConfig _configName);
if (isClass _missionConfig) then{
_config = _missionConfig;
};
// custom header for interscript communications
_customVarsInit = getArray(getMissionConfig "CfgEpochClient" >> "customVarsDefaults");
_customVarNames = _customVarsInit apply {_x param [0,""]};
_randomValues = [];
_header = "";
{
while {true} do {
_rng = round(diag_tickTime + random 99999);
if !(_rng in _randomValues) exitWith {
_randomValues pushBack _rng;
_header = _header + format["_player%1Key = 'EPOCH_%2';",_x, _rng];
};
};
} forEach _customVarNames;
_version = getNumber(_config >> "version");
if (_version >= 1) then {
{
@ -63,7 +79,14 @@ if (_version >= 1) then {
if (_file_raw != "") then {
_fnc_path = _file_raw;
};
missionNamespace setvariable [_var_name,compileFinal preprocessFileLineNumbers _fnc_path];
_code = "";
if (getNumber(_x >> "customHeader") == 1) then {
_code = _header + (preprocessFileLineNumbers _fnc_path);
} else {
_code = (preprocessFileLineNumbers _fnc_path);
};
missionNamespace setvariable [_var_name,compileFinal _code];
if (getNumber(_x >> "preInit") == 1) then {
call (missionNamespace getvariable _var_name);
};

View File

@ -0,0 +1,101 @@
/*
Author: Aaron Clark - EpochMod.com
Contributors:
Description:
Generates loot tables from configs
Licence:
Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike
Github:
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/both/EPOCH_weightedArray.sqf
Usage:
_lootTable = ["CfgMainTable", _type, "tables"] call EPOCH_fnc_weightedArray;
_loot = selectRandomWeighted _lootTable;
*/
//[[[cog import generate_private_arrays ]]]
private ["_allow","_itemType","_lootTableArray","_lootTableName","_return","_totalChances","_value","_weightedArray"];
//[[[end]]]
params ["_configName","_keyName","_arrayName"];
_debug = ["CfgEpochClient", "debug", false] call EPOCH_fnc_returnConfigEntryV2;
_lootTableName = format["EPOCH_LT_%1_%2_%3",_configName,_keyName,_arrayName];
_return = missionNamespace getVariable[_lootTableName,[]];
// check for compiled loot table
if(_return isEqualTo[]) then {
// Since no cached version is found, make one.
_lootTableArray = [];
_weightedArray = [];
{
if(_x isEqualType []) then {
_x params ["_tname","_tqty",["_extraLogicRaw", [] ]];
_tname params ["_item",["_itemType","NA"]];
_allow = true;
if !(_extraLogicRaw isEqualTo[]) then {
_extraLogicRaw params [["_extraLogicType",""],["_extraLogicName",""],["_extraLogicCond",""],["_extraLogicData",""]];
// check extra logic
_value = switch _extraLogicType do {
case "getDate": {
date select _extraLogicName
};
case "getSunorMoon": {
sunOrMoon
};
case "getMissionNamespaceVariable": {
missionNamespace getVariable [_extraLogicName, _extraLogicData]
};
// not really needed
default {
_extraLogicName
};
};
_allow = [_value,_extraLogicCond,_extraLogicData] call EPOCH_fnc_arrayToLogic;
};
// Check if config item actually exists
if (_allow) then {
switch _itemType do {
case "magazine": {
_allow = isClass (configFile >> "CfgMagazines" >> _item);
};
case "backpack": {
_allow = isClass (configFile >> "CfgVehicles" >> _item);
};
case "item";
case "weapon": {
_allow = isClass (configFile >> "CfgWeapons" >> _item);
};
};
};
// add to loot table
if (_allow) then {
_lootTableArray pushBack _tname;
_weightedArray pushBack _tqty;
};
} else {
_lootTableArray pushBack _x;
_weightedArray pushBack 1;
};
}forEach getArray((_configName call EPOCH_returnConfig) >> _keyName >> _arrayName);
// compile to selectRandomWeighted <ARRAY> format.
private _totalChances = 0;
{_totalChances = _totalChances + _x} count _weightedArray;
_return = [];
{
_return append [_lootTableArray select _forEachIndex,linearConversion [0,_totalChances,_x,0,1]];
} forEach _weightedArray;
// cache loot final loot table
missionNamespace setVariable[_lootTableName,_return];
// debug
if (_debug) then {
diag_log format["DEBUG: LootTable: %1 DATA: %2",_lootTableName,_return];
};
};
_return

View File

@ -72,9 +72,8 @@ if (!isNull _this) then {
_class = getText(_cfgBaseBuilding >> _objClass >> "staticClass");
if (_class != "") then {
_newObj = createVehicle[_class, (_worldspace select 0), [], 0, "CAN_COLLIDE"];
_newObj setVectorDirAndUp[_worldspace select 1, _worldspace select 2];
_newObj setposATL(_worldspace select 0);
_newObj setVectorDirAndUp[_worldspace select 1, _worldspace select 2];
};
} else {
if (_saveCheck) then {

View File

@ -110,7 +110,7 @@ if !(_jammer isEqualTo []) then {
_buildingCountLimit = _buildingCountLeader + (_buildingCountPerMember * _membercount);
};
if (_useSplitCountLimits) then {
if(_objType in ["WorkBench_EPOCH","StorageShelf_EPOCH","Tipi_EPOCH","LockBox_EPOCH","Safe_EPOCH","StorageShelf_SIM_EPOCH","LockBox_SIM_EPOCH","Safe_SIM_EPOCH","Workbench_SIM_EPOCH","Tipi_SIM_EPOCH"]) then {
if(_objType in ["WorkBench_EPOCH","StorageShelf_EPOCH","Tipi_EPOCH","TentA_EPOCH","TentDome_EPOCH","LockBox_EPOCH","Safe_EPOCH","StorageShelf_SIM_EPOCH","LockBox_SIM_EPOCH","Safe_SIM_EPOCH","Workbench_SIM_EPOCH","Tipi_SIM_EPOCH"]) then {
if ((count (nearestObjects[_nearestJammer,["Buildable_Storage","Constructions_lockedstatic_F","LockBox_SIM_EPOCH","Safe_SIM_EPOCH","StorageShelf_SIM_EPOCH","WorkBench_SIM_EPOCH"],_buildingJammerRange]-[_obj])) >= _storageCountLimit) exitwith {
_buildingAllowed = false;
[format["Building Disallowed: Max. %1 Storage Objects",_storageCountLimit],5] call Epoch_message

Some files were not shown because too many files have changed in this diff Show More