Jump to content


Popular Content

Showing most liked content since 03/20/18 in all areas

  1. 7 points
  2. 6 points

    [RELEASE] BigEgg's Safe Zones

    Hey everyone, Wanted to post my safe zone script for all to use if they wish. All information about features, installation etc... can be found on the github: https://github.com/BigEgg17/Safe-Zones Please let me know if there are any issues :)
  3. 5 points
    Anyone who is using @DirtySanchez's excellent update to the Virtual Garage who also wants vehicle persistence through a restart added back when a vehicle is removed from a garage can do the following to the server side files. First add the following line to a3_epoch_virtualGarage/config.cpp: persistentVehicles = 1; // Are vehicles read from the garage made persistent on the server? Replace a3_epoch_virtualGarage/functions_VGS/fn_vgsReadFromGarage.sqf with this: RePBO a3_epoch_virtualGarage.pbo and upload back to @epochhive/addons on your server. Pull request submitted so hopefully this will be in his base repo.
  4. 5 points
    By Grahame, @natoedand @Drokz (and others). Based on ExileZ 2.0 by Patrix87 which was forked from an original project named EXILE-Z created by SAM, Otto and CaptionJack of RelentlessServers.com based on Civilian Life by code34. Released under the same Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) license. Incorporates DayZ-style Heli Crash Site code from @rvg?!, based on the original script by @Richie Feature List from the original ExileZ 2.0 Dynamically spawns Ryan's Zombies. An infinite set of spawner configurations Harassing zombies aka Random encounters that will spawn near players wherever they are. Hordes! The number of zombies in a town is proportional to the number of player in that town (adjustable ratio) Very lightweight. Server Side only! A constant flow of zombies in towns. Fully configurable Supports any map! Map support included in base EpochZ 1.0 build for Altis, Tanoa, Chernarus Redux, Australia and Takistan Safezone protection. Zombie Missions! (Not tested in EpochZ 1.0) The possibility to display infested zones on map. Adjustable zombies health and damage. Zombies won't disappear if close to a player. Zombies won't spawn right next to a player. Turn off all lights on the map by setting the LightsOff variable to true in fn_init.sqf (not working atm... we're working on a fix) New Features in EpochZ 1.0 Reworked for use on Epoch servers. Infected will not be spawned within minJammerDistance of a frequency jammer. DayZ Style Heli Crash Site code incorporated within EpochZ so infected will spawn at a heli crash site. If you use it then remove the helicrash.pbo from @epochhive/addons Infected entering safe zones defined in fn_init.sqf in the SafeZonePositions[] array will be deleted. If SpawnWithinTriggerRadius is set to true in fn_init.sqf then the infected will spawn throughout the entire trigger area, otherwise they will spawn between MinSpawnDistance and MinSpawnDistance of the centre of the trigger. Download https://github.com/morgoth0/EpochZ Installation If you just want to use our default version on Altis then simply upload the epochz.pbo in @epochhive/addons in the GitHub repository into the same location on your Epoch server and restart. This addon is incredibly customizable and I am working on full documentation for it to help people set it up the way they want. In the meantime the code is very well commented and, assuming you have a reasonable knowledge of configuring addons then here are the files in which you can change it to suit your needs: epochz/init/fn_init.sqf: contains all configuration settings and trigger definitions epochz/init/TriggerPositions.sqf: defines all locations for infected spawns and which trigger class they are in epochz/init/ZClasses: defines the classes of infected spawned in each trigger type epochz/init/ZLoot.sqf: what loot is found on the infected epochz/init/ZVest: what vests are worn by the infected Screenshot http://www.grahamecurtis.com/images/epochz_spawns.jpg
  5. 5 points
    A lot of this is all down to play style of the Arma-mod players. There, I said it. Most players will only play if they have a Sniper rifle. **** Did you reach 'end game? oh then I'll delete everything you own and you can go play only using LMG's then, enjoy**** Most people buy a heli and Lift-sell every vehicle they can find. ****how about starting over and you can only use ground vehicles?**** Most people buy everything **** well next play through, you cant use the traders to buy weapons or vehicles or food or meds etc, choose one. **** From A2 to A3 this seems to a repeating pattern, and when players say they are bored, they never want to change - they want the mod to change. I played Tetris on the Nintendo Game Boy, for hours & hours & hours and eventually I got bored. My friend pointed out to me that I should turn the Game Boy upside-down and play....it was like playing a new game!!!! And what was better, once i got bored of playing upside-down I flipped it right side up again and the experience changed AGAIN! I did this multiple times, until the Amiga500 came along. Changing the way you play can have so much affect on a game! As @TheVampire points out, the server host can make the difference in stretching out play towards end game with new and inventive ideas, but I also believe server owners should trust more in the core mechanics of the mod too, for example:- Making loot spawn more frequent = speeds up 'end game' Removing Antagonists = speeds up 'end game' adding 100 spawn points = speeds up 'end game' Black Market traders full of everything = speeds up 'end game' PVE = An obvious fast track to end game much much quicker than anything else. All these things affect the speed of reaching end game, and have to be balanced properly ( or even not included in a server) to ensure risk/reward is a reasonably tough decision to make. That's what made the Dayz mod (& other early Arma-mods) phenomenon an incredible experience, many players had something they hadn't known before then. FEAR of DECISION. Now there is no fear, because - "i'll just buy my sniper & big pack back if I die". This, this is also a big problem. There simply cant be anything unknown nowadays. With admins spawning all items/vehicles/weapons in - to YouTube videos showcasing a latest update, nothing is left to be discovered. And I imagine if all epoch devs kept quiet while working on new content, we would have even more posts like "is epoch dead" and many more players and server hosts will abandon hope. There are a couple of interesting ideas in this thread.
  6. 5 points

    [FEATURE REQUEST] Hoverboards (URGENT)

    @natoed Thanks for bringing this back to my attention, I had forgotten about it. I spent my morning doing this..
  7. 5 points
    So there are a couple of serious glitches that are possible with the use of the Enhanced Interaction functionality within the Enhanced Movement mod on Epoch servers. Not going to list them here but they are incredibly serious and need to be fixed if you are running EM on your Epoch server. Thankfully, there is a quite easy solution to "turn off" Enhanced Interaction within the mission file. If you are already using the initPlayerLocal.sqf file for things like the autolockpicker, attaching demo charges to things and other stuff, then just add the following to it: [] spawn { while {true} do { if !((profilenamespace getvariable ["babe_int_keys_Use",[0,""]]) isequalto [0,""]) then { profilenamespace setvariable ["babe_int_keys_Use",[0,""]]; }; uisleep 1; }; }; If you are not already using the file, but are using EM then create an initPlayerLocal.sqf with the following: if (!isDedicated and hasInterface) then { waitUntil {alive vehicle player}; waitUntil {typeOF player != "VirtualMan_EPOCH"}; uisleep 15; [] spawn { while {true} do { if !((profilenamespace getvariable ["babe_int_keys_Use",[0,""]]) isequalto [0,""]) then { profilenamespace setvariable ["babe_int_keys_Use",[0,""]]; }; uisleep 1; }; }; }; Repack the mission PBO, upload to your server and the possible glitches are dealt with, while still allowing the lovely niceness of Enhanced Movement to continue. Thanks very much to @He-Manfor invaluable help in crafting the solution and thanks to Duralius, a player on my server for finding the glitches and not exploiting them. Good man!
  8. 4 points

    DayZ Style Morphine in A3E

    In vanilla Epoch 1.1 the use of morphine basically is just as an FAK with a different name... it heals all damage with a couple of side effects on toxicity, stamina and blood pressure. I rather liked the old dayz where morphine was specifically required to fix a broken leg... so I changed some code here and added some there and... voila! Now you can have morphine that will only fix a broken leg and First Aid Kits that will not! First let's ensure that First Aid Kits do not heal broken legs. This is done by making them completely heal all body parts except for broken legs, which they will heal to a damage minumum of 0.51 (a broken leg in ARMA3 and Epoch is one damaged greater than 0.5). So, let's change the interaction for FAKs so that they will do this. Change lines 337-362 in epoch_code/compile/EPOCH_consumeItem.sqf from: case 13: { //Heal Player _vehicles = player nearEntities[["Epoch_Male_F", "Epoch_Female_F"], 6]; _vehicle = cursorTarget; 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]; if (_vehicle isEqualTo player) then { ["Healed yourself", 5] call Epoch_message; } else { ["Healed other player", 5] call Epoch_message; }; }; }; }; }; to: case 13: { //Heal Player _vehicles = player nearEntities[["Epoch_Male_F", "Epoch_Female_F"], 6]; _vehicle = cursorTarget; 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; }; _currentDMG = 0; { _currentDMG = _x; if (_forEachIndex != 10) then { [_vehicle,[[_forEachIndex,0]],player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2]; } else { if (_currentDMG > 0.5) then { [_vehicle,[[_forEachIndex,0.51]],player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2]; } else { [_vehicle,[[_forEachIndex,0]],player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2]; }; }; }forEach ((getAllHitPointsDamage _vehicle) param [2,[]]); if (_vehicle isEqualTo player) then { ["Healed yourself", 5] call Epoch_message; } else { ["Healed other player", 5] call Epoch_message; }; }; }; }; }; Now if you have a broken leg and you use a First Aid Kit then it will still be broken. If your leg was not broken you will be fully healed. So, with that done, let's turn to the morphine. All this now will do is heal a broken leg... nothing else. If your leg is not broken you will get a message informing you of that and you'll keep the injector. Change lines 383-414 in epoch_code/compile/EPOCH_consumeItem.sqf from: 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; }; }; to: case 16: { // Morphine _vehicles = player nearEntities[["Epoch_Male_F", "Epoch_Female_F"], 6]; _vehicle = cursorTarget; if !(_vehicle in _vehicles) then { _vehicle = player; }; _legDamage = _vehicle getHitPointDamage "HitLegs"; if (_legDamage > 0.5) 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,[["HitLegs",0.5]],player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2]; if (_vehicle isEqualTo player) then { ["Injected yourself with morphine", 5] call Epoch_message; } else { ["Injected other player with morphine", 5] call Epoch_message; }; }; }; } else { ["Nothing needs morphine at this time... shame!", 5] call Epoch_message; }; }; You will need to subsequently use a First Aid Kit to remove that last 0.5 of damage on your legs... the morphine just makes it feel like you are healed fully, and boy, does it! That's it... DayZ Style morphine with two simple changes.
  9. 4 points

    Vehicle Flip

    And here is a better solution, now using the dynaMenu and checking that the vehicle is unlocked and you were the last driver (thus dealing with the issue of object locality). All changes are in the mission file. Add the following to epoch_config/Configs/CfgActionMenu/CfgActionMenu_target.sqf: // Flip Vehicle class flip_vic { condition = "dyna_isVehicle && !dyna_locked"; action = "[dyna_cursorTarget] call FlipVic;"; icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_upgrade.paa"; tooltip = "Flip Vehicle"; }; Add a script in the folder where you store your custom ones, for example custom/, called FlipVehicle.sqf with the following contents: private ["_target"]; _target = _this select 0; if (local _target) then { _target setVectorUp [0, 0, 1]; ["Flipped vehicle",5] call epoch_message; } else { ["You were not the driver of this vehicle",5] call epoch_message; }; Add the following lines into your mission's init.sqf replacing the script's folder with where ever you put yours: if(hasInterface) then{ FlipVic = compileFinal preprocessFileLineNumbers "custom\FlipVehicle.sqf"; }; RePBO the mission, upload to the server...
  10. 4 points

    A3E Take Clothes

    New version of the script provided by @He-Man (cheers buddy!): private ["_target_uniform","_player_uniform"]; params ["_target","_player"]; _nearentities = (((_player nearEntities 7) select {isplayer _x && alive _x && !(_x iskindof "HeadlessClient_F")}) - [_player]); if !(_nearentities isequalto []) exitwith { ["Cannot take clothes when other players are nearby",5] call epoch_message; }; if (uniform _target isequalto "") exitwith { ["Target has no uniform to take",5] call epoch_message; }; _playerloadout = getunitloadout _player; _targetloadout = getunitloadout _target; _player_uniform = _playerloadout param [3,""]; _target_uniform = _targetloadout param [3,""]; _playerloadout set [3,_target_uniform]; _targetloadout set [3,_player_uniform]; _player setunitloadout _playerloadout; _target setunitloadout _targetloadout; Tested on my server this afternoon. If others can check it out and confirm no issues then I will update the thread's first post.
  11. 4 points

    New Missions for A3E Wicked AI

    I have ported some of the Extra Wicked AI missions from ARMA2/DayZ/Epoch's Wicked AI system. They are a purely derivative product based on this work: Missions ported so far are: Abandoned Trader, Ambushed HMMWV, Army Base, Drone Pilot, Old MacDonald's Farm and Slaughter House. I will be continuing this work with the others when I have time. NOTE: In order to use these missions you will require CUP Terrains Core on your server. For those running non-vanilla ARMA3 maps, for example Chernarus Redux that should not be an issue. Download https://www.dropbox.com/s/19ln1t6yhsmbldw/Extra_WAI_Missions.zip?dl=0 Installation (1) Copy the files in the downloadable archive to your Wicked AI's missions/bandit folder. (2) Add the missions to the mission array in WAI's config.sqf, for example: wai_bandit_missions = [ ["abandoned_trader",5], ["ambushed_hmmwv",5], ["army_base",5], ["drone_pilot",4], ["macdonald",5], ["slaughter_house",5], ["nuke",4], ["Mi_48",6], ["MV_22",6], ["sniper_team",8], ["rebel_base",5], ["medi_camp",5], ["dropside",5], ["comm_center",10], ["C_192",11], ["destroyed_ural",11] RePBO Wicked AI and upload to @epochhive/addons and enjoy!
  12. 3 points
    Hopefully I got everything. https://github.com/EpochModTeam/Epoch/commit/3966ad70105efc020a1203d68191f2022bbe5e33
  13. 3 points

    traders don't buy rocket launchers

    Can you test this? https://github.com/EpochModTeam/Epoch/commit/c5abeed9f7564c0402986f4043e9a73c07f7b95b
  14. 3 points
    V 6.81 build 124 now on Experimental branch. See the changelog there for details which include two new mission types and a bunch of bug fixes and other smaller enhancements.
  15. 3 points
    What Epoch endgame needs is something similar to DayZ Origins, but perhaps less grindy. Bosses that are hard to find or expensive to summon, that have a very low rare drop chance which allows the players to access something unique like Sector B was. Maybe something that requires a large group. Something else is an ongoing fight, like I was working towards with VEMF. If players don't login and fight expanding AI, it makes it harder on the players to do what they need done. Unfortunately I don't see either of these being added into the core mod.
  16. 3 points

    Fully Integrated Vector Building System

    What's Exile?
  17. 3 points
    Another WIP thing... testing the Left Shoulder Scripted Weapon mod with Epoch. Server side mod only so no worries about adding to player's clients. While the animations are a bit clunky it works... Need to add code to Epoch to save the "hidden" weapon in the database or it will be lost on a disconnect https://steamcommunity.com/sharedfiles/filedetails/947704792
  18. 3 points
    In your side, you have missed nothing. This is a bug in the current release. To fix it: https://github.com/EpochModTeam/Epoch/commit/92035636be7fe2879080a360e26161c2d9887fd7
  19. 3 points

    A3E Take Clothes

    Thanks @TarabasFirst post updated with the latest code
  20. 3 points
    First test of infected spawns via the standard ARMA3 Epoch lootbubble. Infected spawn out of LOS and right now just a hard coded one per building. No DayZ code was used in this new feature. As always, apologies for the video quality, my PC is a potato...
  21. 2 points

    Water purification tablets

    Water purification tablets are already in CfgLootTable @Kenobi class Medical { items[] = { { { "FAK", "magazine" }, 50 }, { { "Heal_EPOCH", "item" }, 2 }, { { "Defib_EPOCH", "item" }, 1 }, { {"atropine_epoch", "magazine" }, 6 }, { {"adrenaline_epoch", "magazine" }, 5 }, { {"morphine_epoch", "magazine" }, 3 }, { {"caffeinepills_epoch", "magazine" }, 10 }, { {"orlistat_epoch", "magazine" }, 5 }, { {"nanite_cream_epoch", "magazine" }, 3 }, { {"nanite_gun_epoch", "magazine" }, 1 }, { {"nanite_pills_epoch", "magazine" }, 5 }, { {"iodide_pills_epoch", "magazine" }, 5 }, { {"ItemWaterPurificationTablets", "magazine" }, 5 } }; }; but they are not in CfgPricing... that is the issue. I will get them added. In the meantime just add something like: class ItemWaterPurificationTablets {price = 10;}; And then they should spawn as loot for you...
  22. 2 points

    [RELEASE] BigEgg's Safe Zones

    I have updated the script to now support community localizations, which can be found here: https://github.com/oiad/communityLocalizations
  23. 2 points
    @Grahame That sounds awesome bud, let me take care of a few things on my to-do list and then will give it a whirl. I'll give ya a jingle if I have any questions during testing. Once settled, I will merge it in! Thanks from all of us!
  24. 2 points
    lol thank yo @natoed, questioned answered. Yes thank you @He-Man your continued support to epoch is what makes it great! thank to both @Helion4 and @natoed , this sort of assistance is what makes these communities great.
  25. 2 points

    traders don't buy rocket launchers

    That worked! Thanks.
  26. 2 points
    To change the marker size just change the values where they are defined in each file describing missions. Alternatively, ifyou want all markers the same size you can set the size in GMS_fnc_spawnMarker. The version / build are logged in your server.rpt. The location of the file depends a bit on how your server is set up. On Epoch servers it is usually stored in the SC folder. A new file is generated after each restart (thank goodness for that - thank you Bohemia). You can also directly check the build in the custom_folder\init folder - just look for a file called build.sqf.
  27. 2 points
    Yes it is an Arma problem. People are reporting that switching your game into 32bit mode will help until Bohemia push a fix.
  28. 2 points

    dayZ Night Lighting

    Well, that's interesting.. It seems like there have been some changes to the engine since I last looked at this. 'Immersion Mode' (No Street Lights) may be easily do-able at a much lower performance cost. Either that or I spent too much time looking at turning the lights on before :) Am hooked again, I forgot just how good Arma 2 / dayZ Epoch was..
  29. 2 points
    I'm lov'n the anomalies by ALIAS Some editing is required to get them working for epoch and those battle-eye filters can be a bitch at times. the custom sounds do bloat my mission file but are worth it, plus I'm using old mate Suppe's sector B to spawn in IceBreakr Zetaborn at a custom mission. yep Alienz n zombiez plus epoch = fuck yeah
  30. 2 points

    DayZ Style Morphine in A3E

    Nice. Thank you!
  31. 2 points
    What I enjoyed doing when I ran an Arma 2 Epoch server was tinkering with AI, anomalies, and survival aspects. Something I really liked about namalsk was trying to survive it at night. I adjusted the temperature settings on my server so that you either were relaxing around a fire with your buddies at night, or chewing through heatpacks to get what you needed done. I had DZAI with roaming vehicles (among more) but my buddies began jumping the 3 ai and selling the vehicles for easy cash. I added some lines so there was a 5-10% chance that a Ural would spawn loaded to the gills. The first time they ran into it and all 20+ ai spilled out it made them play a little more reasonably. Anomalies I'm a big fan of. Anything that is the unknown will keep your players going. A rotating ai city, unique unicorn patrols, scary vehicles, hell you could irradiate the hell out of an island on the map and tell them it has a secret and they'd all keep going there. Epoch lacks a lot of the unknown in the end game. Basically as a server owner anything you can add that makes the game realistic and challenging without being unfair to slow down the player or make them be challenged and routinely lose gear will extend the trip to end game. Things like pulling helicopters from your Tanoa map, adding AI, random events, treasure hunts, etc.
  32. 2 points
    Nevermind Ive found what Im looking for it was calling the right file but I was editing sls not the actual loot amount in crates.
  33. 2 points

    Calling Your Banker

    Sometimes you are going to be caught short in the wild; maybe you found a trader in the wilderness or just did a GTA job on a roaming AI truck and nicked their crypto. Well, if you allow ATMs and phones, here's a little bit of code to let you call the bank when you cannot find them... (1) Add the particular items that you want to allow people to call on to your loot tables and trader configs. Choices include: ItemMobilePhone_old, ItemMobilePhone_smart, ItemPortableLongRangeRadio, ItemSatellitePhone, ItemSurvivalRadio (2) For each of the items you want to use for remote calling the bank add the lines below for it to epoch_config/Configs/CfgItemInteractions.hpp: class ItemMobilePhone_old : Default { interactAction = 18; interactText = "CALL BANKER"; }; class ItemMobilePhone_smart : Default { interactAction = 18; interactText = "CALL BANKER"; }; class ItemPortableLongRangeRadio : Default { interactAction = 18; interactText = "CALL BANKER"; }; class ItemSatellitePhone : Default { interactAction = 18; interactText = "CALL BANKER"; }; class ItemSurvivalRadio : Default { interactAction = 18; interactText = "CALL BANKER"; }; (3) Before these lines at the end of epoch_code/compile/EPOCH_consumeItem.sqf: default { ["Found nothing", 5] call Epoch_message; }; Add: case 18: { // Call banker if (isNil "EPOCH_bankTransferActive") then { if (random 1 > 0.5) then { [player, [], Epoch_personalToken] remoteExec ["EPOCH_server_storeCrypto",2]; closeDialog 0; createDialog "InteractBank"; lbClear 21500; { _index = lbAdd[21500, name _x]; lbSetData[21500, _index, netId _x]; } forEach(allPlayers - [player]); } else { ["You cannot get a signal, please try again", 5] call Epoch_message; }; }; }; Note that there's a bit of randomization so the players only have a 50% chance of getting through. You can reduce this further to make their lives more interesting That's it. RePBO the mission and upload to your server.
  34. 2 points

    Static Radiation Source

    Seems like this behaviour is also only for custom radiation sources and satellites, not the locations picked at random at server start... See this code in epoch_server/init/server_init.sqf: which taken together with this in the epoch_code/gui/scripts/geiger/epoch_geiger_simulate.sqf: means that only custom sources and satellites - the ones that use the EPOCH_Rads variable - will be directional... presumably to help you find them. I tested the map spawned location based rad sources and it does not matter which direction you are looking your geiger counter will work as in real life
  35. 2 points

    A3E DZMS

    BIS_fnc_findSafePos basically looks for safe positions on the map based on Area, Terrain Slope, Shoreline, Near Objects, and etc. It doesn't just select randomly on the map. The main issue with it is that it will select the same safe areas repeatedly since it wasn't designed to be used this way. DZMS is designed to use code to get around that. There could be other solutions instead of findSafePos, but it would require a lot more code than what we have already, or may require looping more times for a good position.
  36. 2 points
    With all the vanilla ARMA3 objects that have been added to A3E in 1.0 and beyond, there is a lot of new fun stuff you can do to make the experience more immersive and drive your players mad Here is just one such example, the addition of a requirement for can openers and knives for opening cans of food and gutting animals. Gutting Animals with a Knife or Hatchet So, you've just killed an animal in the wild and you want to gut it. At the moment you use your teeth and hands to field dress the animal. The code below adds a little more realism in that it forces you to have a knife or hatchet in order to get the meat and/or pelt from the carcass. Note: @Helion4 have you thought how great a hunting knife model would be (hoverboards are a lot more important though!!!)? Change lines 61 to 73 in epoch_code/compile/EPOCH_lootTrash.sqf from: if (!isNull _lootAnimalObj) then { _cfgItemInteractions = (_cfgObjectInteractions >> (typeOf _lootAnimalObj)); _interactAttributes = getArray(_cfgItemInteractions >> "interactAttributes"); _bloodPos = getPosATL _lootAnimalObj; _blood = "BloodSplat" createVehicleLocal _bloodPos; _blood setPosATL _bloodPos; // send [_lootAnimalObj, player, Epoch_personalToken] remoteExec ["EPOCH_server_lootAnimal",2]; _return = true; }; to: if (!isNull _lootAnimalObj) then { if (("ItemKnife" in magazines player) || ("Hatchet" in weapons player) || ("CrudeHatchet" in weapons player)) then { _cfgItemInteractions = (_cfgObjectInteractions >> (typeOf _lootAnimalObj)); _interactAttributes = getArray(_cfgItemInteractions >> "interactAttributes"); _bloodPos = getPosATL _lootAnimalObj; _blood = "BloodSplat" createVehicleLocal _bloodPos; _blood setPosATL _bloodPos; // send [_lootAnimalObj, player, Epoch_personalToken] remoteExec ["EPOCH_server_lootAnimal",2]; } else { ["You need a knife or hatchet to gut an animal", 5] call Epoch_message; }; _return = true; }; A nice easy change that makes the gutting of animals a little more immersive and provides a reason for players to find and carry those items on them. To eat from a can you first have to open it The following code will add the requirement for a can opener, knife or hatchet (crude or otherwise) in order to open certain canned food items. Depending on which tool you have on you, you will get a different amount of hunger from consuming the can. For example, use a can opener then you get the full benefit, use a knife and you get 80% and if you use a hatchet to open it you just get 50% of the hunger back Note: This is also a nice example of how you can add new interactions for objects you add to your server. Add the following at line 415 in epoch_code/compile/EPOCH_consumeItem.sqf: case 17: { // Eat Canned Food - check for item to open the can with // Reduce attributes based on the type of item, can opener, knife or hatchet _attributesModifier = 1; _itemFound = false; if ('ItemCanOpener' in magazines player) then { _attributesModifier = 1; _itemFound = true; } else { if ('ItemKnife' in magazines player) then { _attributesModifier = 0.8; _itemFound = true; } else { if (('Hatchet' in weapons player) || ('CrudeHatchet' in weapons player)) then { _attributesModifier = 0.5; _itemFound = true; }; }; }; if (_itemFound) then { private _removedCan = _item call _removeItem; if (_removedCan) then { if (_interactReturnOnUse != "") then { _interactReturnOnUse call EPOCH_fnc_addItemOverflow; }; { _x set [1, ((_x select 1) * _attributesModifier)]; _output = _x call EPOCH_giveAttributes; if (_output != "") then { [_output, 5] call Epoch_message_stack; }; } foreach _interactAttributes; }; } else { ["You need a can opener, knife or hatchet to open the can", 5] call Epoch_message; }; Now you have a new interaction that will give you a certain amount of hunger back depending on what tool you use to open the can with. Now you need to make the cans themselves use it. This is done in epoch_config/Configs/CfgItemInteractions.hpp. First add a new class for cans that requite something to open them. Add this code at line 59: class Food_TinCan_Tool_base : Food_base { interactAction = 17; interactReturnOnUse = "ItemEmptyTin"; }; This gives you a class that cans which will require a can opener, etc. can inherit. So, let's say that a can of meatballs requires a tool to open. To make this so, you would change line 106 from class meatballs_epoch : Food_TinCan_base to class meatballs_epoch : Food_TinCan_Tool_base It's as simple as that. On my server I leave some cans, like sardines, openable without a tool and others requiring one. For those that do not need a tool you do not need to change anything. Just a little fun and all done mission side.
  37. 2 points

    any working EpochZ

  38. 2 points
    After changing values in both of those files (just changing the one in the mission file had no affect), it's working as expected. Thanks @He-Man and @Grahame for your help! Looking forward to fix(es) in the next release.
  39. 2 points
    Actual fix (will test) would be to remove lines 60-64 in epoch_code/compile/traders/EPOCH_npc_TraderAdd.sqf: _limit = ["CfgTraderLimits", _uiItem, 100] call EPOCH_fnc_returnConfigEntryV2; if (_itemQty >= _limit) then{ _stockLimit = true; _allowAdd = false; }; and in epoch_server/compile/epoch_traders/EPOCH_server_loadTraders.sqf, remove line 56: _limit = ["CfgTraderLimits", _item, 100] call EPOCH_fnc_returnConfigEntryV2; Remove lines 63 to 68: if (_limit == 0 || _currentStock == 0) then { // diag_log format ["EPOCH_DEBUG: TraderSlot: %1 | Removed %2 from Trader | _limit: %3 | _currentStock: %4",_i,str _item, _limit,_currentStock]; _arrchanged = true; _delete = true; } else { Remove lines 75-79: if (_currentStock > _limit) then { _arrchanged = true; (_arr select 1) set [_idx,_limit]; _currentStock = _limit; }; and remove line 112: };
  40. 2 points

    dayZ Night Lighting

    I'm very sorry we don't know everything about anything.
  41. 2 points
    Heli is out of fuel after some time so I added this code to file fnc_vehicle_patrol.sqf and now heli is flying all day long :-) Put code below anywhere between: while{_run}do{ and last bracket: }; // Refuell code START if (fuel _unit <= 0.2) then { _unit setFuel 1; diag_log "***[Sector] Vehicle refuelled sucessfully***"; }; // Refuell code END
  42. 2 points
    When you hover with a mouse on a player and its the name is barely visible if at all, since the colours change (fade) if a player is damaged. So the more player is damaged the harder it is to see his name when getting closer and hovered with a mouse. I think it should be addressed to Epoch developers though since this problem was since the beginning. I think the colour should stay fixed and as bright enough to be able to distinguish the player's name. The damage could be indicated by the circle surrounding player's name, there is no need to change the colours. Because in Arma 3 daylight it becomes invisible.
  43. 2 points

    Vehicle Capacity / Fahrzeug Kapazität

    I have reduced the max loads for the Epoch variants, because the default A3 max loads make no sense. If you compare the max loads between the different vehicle Classes, you know why... Here some max load examples from the default A3 settings: - Truck (normal and Box) : 3000 - Hemtt Box: 3000 - Strider: 4000 To make it more realistic and support better the Vehicle-Upgrade system, I have completely reworked the max loads. But of course, you can also take the Arma-Variants to get back the default settings. A full list of the Vehicle Properties you can find here (Excel): https://github.com/EpochModTeam/EpochCore/raw/release/EPOCH_VehicleProperties.xlsx
  44. 2 points
    A Man

    Infistar ask

    Hi use call BIS_fnc_numberText to format your coins [ (_unit getVariable['cashMoney',0]) ] call BIS_fnc_numberText
  45. 2 points

    A3E Take Clothes

    No duping for me till now :) Great!
  46. 2 points

    arma 2 / oa classnames

    ok i have been ask alot for classnames because i am like a book don't need look for them here is a .pdf doc that has most of them comes with classnames with images and all that shiz this is not my work https://drive.google.com/file/d/1Pt2bWmsLA00DHXYhx4XNL4ymy8SNVhNM/view?usp=sharing
  47. 2 points
    Another class of item added to EpochCore client-side in 1.1 are deployable sleeping bags. Here is the code for placing them and a suggestion (and code) for actually making use of them to provide greater flexibility at respawn for your players. Installation Instructions (1) Add the sleeping bag "kits" to your loot tables and trader price lists. The class names are KitSleepingBagGreen, KitSleepingBagBlue and KitSleepingBagBrown (2) Add the following to epoch_config/Configs/CfgItemInteractions.hpp: class KitSleepingBagGreen : Item_Build_base { buildClass = "SleepingBagGreen_SIM_EPOCH"; }; class KitSleepingBagBlue : Item_Build_base { buildClass = "SleepingBagBlue_SIM_EPOCH"; }; class KitSleepingBagBrown : Item_Build_base { buildClass = "SleepingBagBrown_SIM_EPOCH"; }; (3) Add the following to epoch_config/Configs/CfgBaseBuilding.hpp: class SleepingBagGreen_EPOCH : Default { removeParts[] = {{"KitSleepingBagGreen",1}}; GhostPreview = "SleepingBagGreen_Ghost_EPOCH"; staticClass = "SleepingBagGreen_EPOCH"; simulClass = "SleepingBagGreen_SIM_EPOCH"; bypassJammer = 1; }; class SleepingBagGreen_SIM_EPOCH : SleepingBagGreen_EPOCH { removeParts[] = {}; }; class SleepingBagGreen_Ghost_EPOCH : SleepingBagGreen_SIM_EPOCH {}; class SleepingBagBlue_EPOCH : Default { removeParts[] = {{"KitSleepingBagBlue",1}}; GhostPreview = "SleepingBagBlue_Ghost_EPOCH"; staticClass = "SleepingBagBlue_EPOCH"; simulClass = "SleepingBagBlue_SIM_EPOCH"; bypassJammer = 1; }; class SleepingBagBlue_SIM_EPOCH : SleepingBagBlue_EPOCH { removeParts[] = {}; }; class SleepingBagBlue_Ghost_EPOCH : SleepingBagBlue_SIM_EPOCH {}; class SleepingBagBrown_EPOCH : Default { removeParts[] = {{"KitSleepingBagBrown",1}}; GhostPreview = "SleepingBagBrown_Ghost_EPOCH"; staticClass = "SleepingBagBrown_EPOCH"; simulClass = "SleepingBagBrown_SIM_EPOCH"; bypassJammer = 1; }; class SleepingBagBrown_SIM_EPOCH : SleepingBagBrown_EPOCH { removeParts[] = {}; }; class SleepingBagBrown_Ghost_EPOCH : SleepingBagBrown_SIM_EPOCH {}; So, at this point you can place sleeping bags and they look pretty nice, but what's the point. Well, say for example that you would like to seal your jammer away in a dark place in your base but don't want to respawn in that room, but do want to respawn somewhere in a base; or perhaps you are doing a mission or you're off hunting heroes and don't want to make your way from the coast all over again... well, you can set sleeping bags to be spawn points too! (4) Change the definition for the select_jammer class in epoch_config/Configs/CfgActionMenu/cfgActionMenu_target.hpp to: class select_jammer { condition = "((dyna_cursorTargetType isEqualTo 'PlotPole_EPOCH') || (dyna_cursorTargetType isEqualTo 'SleepingBagGreen_EPOCH') || (dyna_cursorTargetType isEqualTo 'SleepingBagBlue_EPOCH') || (dyna_cursorTargetType isEqualTo 'SleepingBagBrown_EPOCH')) && (damage dyna_cursorTarget < 1)"; action = "[dyna_cursorTarget,player,Epoch_personalToken] remoteExec [""EPOCH_server_makeSP"",2];"; icon = "x\addons\a3_epoch_code\Data\UI\buttons\player_inspect.paa"; tooltip = "Make Spawnpoint"; }; RePBO your mission file and upload it to the server. (5) Now unpack epoch_server.pbo. There is one file in there that needs a change which is compile/epoch_player/EPOCH_server_loadPlayer.sqf. Change line 145 from: _jammers = nearestObjects[_CheckLocation, ["PlotPole_EPOCH"], 6]; to: _jammers = nearestObjects[_CheckLocation, ["PlotPole_EPOCH","SleepingBagGreen_EPOCH","SleepingBagBlue_EPOCH","SleepingBagBrown_EPOCH"], 6]; RePBO epoch_server.pbo and upload to your server. You now have sleeping bags that can be built anywhere and used as respawn points. Be aware though! Anyone can pick yours up in the wild (as they should be able to) and you will no longer spawn at its location! (Optional 6) Also note that should you give these as starting gear you may want to add energy to a player at spawn by changing the energy entry in the CustomVarsDefaults array in epoch_config/CfgEpochClient.hpp to something like the following (which gives 1250 energy to a new spawned player): {"Energy",1250,{2500,0}},
  48. 2 points
    Another item added to EpochCore client-side in 1.1 is a Large Workbench - using the ARMA model for a steel work table with drawers and a vice. Here is the code for placing them and a suggestion (and code) for actually making use of them to provide greater flexibility in crafting for your players. Installation Instructions (1) Add the large workbench "kit" to your loot tables and trader price lists. The class name is KitWorkbenchLarge (2) Add the following to epoch_config/Configs/CfgItemInteractions.hpp: class KitWorkbenchLarge : Item_Build_base { buildClass = "WorkbenchLarge_SIM_EPOCH"; }; (3) Add the following to epoch_config/Configs/CfgBaseBuilding.hpp: class WorkbenchLarge_EPOCH : Default { removeParts[] = {{"KitWorkbenchLarge",1}}; GhostPreview = "WorkbenchLarge_Ghost_EPOCH"; staticClass = "WorkbenchLarge_EPOCH"; simulClass = "WorkbenchLarge_SIM_EPOCH"; }; class WorkbenchLarge_SIM_EPOCH : WorkbenchLarge_EPOCH { removeParts[] = {}; }; class WorkbenchLarge_Ghost_EPOCH : WorkbenchLarge_SIM_EPOCH {}; So, those minor changes will allow you to build a large workbench from a kit and then utilize it within Epoch's crafting system. All further changes will be made to epoch_config/Configs/CfgCrafting.hpp. Let's start our examination of that with the crafting of the large workbench itself. The crafting system in Epoch is really nice, quite simple (though it can look imposing at first glance) and very flexible. Basically it comprises parts and kits that are built from them and allows the specification of either things (water or fire) or objects to be nearby in order to build the kit. For the building of the large workbench you will need to add the following new entry: class KitWorkbenchLarge : Kit { recipe[] = {{"PartPlankPack",8},{"ItemCorrugatedLg",2},{"ItemPipe",2},{"ItemCorrugated",2},{"VehicleRepair",1}}; nearby[] = {{"Workbench","","workbench",{1,{"WorkBench_EPOCH","WorkbenchLarge_EPOCH"}},3,1,0,1}}; model = "\A3\Structures_F_Heli\Furniture\Workbench_01_F.p3d"; previewPosition[] = {0.8,1,0.27}; previewScale = 0.15; previewVector = 0; }; This entry illustrates nicely the configuration for a craftable item. Let's look at a few lines in it starting with the recipe[]. This specifies which items are needed to build the kit, in this case 8 lumber packs, 2 large salvage metal, two pipes, two small salvage metals and a vehicle repair parts (for the vice). In order to show the Large Workbench as a buildable from these individual items in the crafting menu you need to add the Large Workbench to their entries' usedin[] array, for example: Okay, at this point you can click on any of these parts and a Large Workbench will be shown as a possible recipe for the part. Now let's look at the nearby[] array in the Large Workbench's crafting definition. This specifies things that are needed nearby in order to complete the crafting, in this case: nearby[] = {{"Workbench","","workbench",{1,{"WorkBench_EPOCH","WorkbenchLarge_EPOCH"}},3,1,0,1}}; Now, reading the very handy comment at the head of CfgCrafting.hpp shows what each part of this line means: USAGE: nearby[] = { { "Fire", //Name of field, anything "", //image folder path (ie "\x\addons\a3_epoch_code\Data\UI\crafting\"), empty for Epoch default "fire", //image prefix, suffix will be added by code. 2 possible suffixes: [_true.paa, _false.paa] {1,{"ALL"}}, //ARRAY of p3D {0,{"filename.p3d","filename.p3d"}} or ARRAY of logic classes {1,{"AIR","LAND","className"}} or 2 WorldInteractions check {2,{"water"}} Integer to switch array mode 3, //distance to check in meters 1, //count 1, //BOOL: object has to be on fire 0 //BOOL: object has to be alive (not destroyed) }; }; So you can see in the nearby[] array for Large Workbenches that it needs either a standard Epoch workbench or a large workbench itself within 3m of the player in order to build one. You can have as many requirements as you want in that list including categories defined in epoch_config/Configs/CfgEpochClient/WorldInteractions.hpp like "Water" or "Tree" or ... "bankTerminal" Now you can craft a Large Workbench and then build it, you can now use the fact you have one to make crafting just a little more immersive by, for example, only allowing small things to be crafted with a standard Epoch workbench and requiring a large workbench for more complicated or larger buildables. For example, let's say we leave buckets of mortar as being able to be crafted on a small one. You probably also want to allow your to craft them on a large one as well so you would have both items in the nearby[] array for them: class MortarBucket : Item { usedIn[] = {"KitFoundation","KitCinderWall","KitHesco3","KitCinderFloor","KitCinderHalfFloor","KitCinderQuarterFloor","KitCinderTower","KitSandbagWall","KitSandbagWallLong","KitBagBunker","KitWaterPump","KitWell"}; nearby[] = {{"Fire","","fire",{1,{"ALL"}},3,1,1,0},{"Workbench","","workbench",{1,{"WorkBench_EPOCH","WorkbenchLarge_EPOCH"}},3,1,0,1}}; recipe[] = {{"ItemRock",12},{"water_epoch",2}}; previewPosition[] = {0.799442,1,0.426761}; previewScale = 0.6; previewVector = 0; }; Now this is an interesting item (the reason I picked it...) because it demonstrates making a craftable dependent on multiple things nearby, in this case a burning fire and either a small or large workbench... cool huh? For the wooden buildables I like to allow a small workbench so each of their definitions would have both the large and small workbench in the nearby[] array like this: class KitStudWall : Kit { recipe[] = {{"PartPlankPack",4}}; model = "\x\addons\a3_epoch_assets\models\Wooden_Wall_SIM.p3d"; nearby[] = {{"Workbench","","workbench",{1,{"WorkBench_EPOCH","WorkbenchLarge_EPOCH"}},3,1,0,1}}; previewPosition[] = {0.797675,1,0.398882}; previewScale = 0.07; previewVector = 0; }; But for cinder buildables I think you need a more flexible work environment, thus the small workbench is removed from their nearby[] arrays, for example: class KitCinderFloor : Kit { usedIn[] = {"KitCinderTower"}; recipe[] = {{"CinderBlocks",4},{"MortarBucket",4}}; nearby[] = {{"Large Workbench","","workbench",{1,{"WorkbenchLarge_EPOCH"}},3,1,0,1}}; model = "\x\addons\a3_epoch_community\models\cinderfloor.p3d"; previewPosition[] = {0.800198,1,0.262418}; previewScale = 0.055; previewVector = 3.6; }; That's pretty much it. Now you can build a large workbench, craft one and make other items dependent on it - or indeed any other object in the game. As a final example here's a modified entry for an energy pack that relies on you having a power source within 30m, and a fire and a large workbench within 3m: class EnergyPack : Item { usedIn[] = {"EnergyPackLg"}; nearby[] = {{"Fire","","fire",{1,{"ALL"}},3,1,1,0},{"Large Workbench","","workbench",{1,{"WorkbenchLarge_EPOCH"}},3,1,0,1},{"Power Source","","electricity",{1,{"Land_spp_Tower_F","Land_wpp_Turbine_V2_F","Land_wpp_Turbine_V1_F","SolarGen_EPOCH","Land_Wreck_Satellite_EPOCH"}},30,1,0,1}}; recipe[] = {{"CircuitParts",1},{"ItemCopperBar",1},{"clean_water_epoch",1}}; previewPosition[] = {0.8,1,0.29}; previewScale = 1.75; previewVector = 2.8; }; Now let your imagination run wild!
  49. 2 points
    It would be nice if this was working for 1.1.0 with the radiation effects added. Please.
  50. 2 points
    A little update here, a little tweak here and before I knew it I was reworking the entire script. Here is a breakdown of whats changed and available on a branch and pull merge request. Server Side [REMOVED] PublicVariable Event Handler [REMOVED] Spawn loop for generating keys for each [ADDED] 3 new functions to handle the removed PVEH(ReadFrom/WriteTo/TrashFrom) [ADDED] 2 new functions to spit out client vgs key and client garage on join [ADDED] Debug config option to log every use/request Client Side [FIXED] Global.hpp missing and caused hosts issues getting the script setup and running [ADDED] Ships are now searched for and listed for storage in the garage [FIXED] System searched for "Air", but listed only "Helicopters" (now planes and VTOL will show up). [ADDED] Scroll Wheel config option to disable/enable [ADDED] Dyna Menu self interaction [ADDED] Jammer requirement config option along with max distance from jammer entry [ADDED] Scroll Wheel will follow Jammer Requirements and Max Distance if enabled [ADDED] Dyna Menu will follow Jammer Requirements and Max Distance if enabled [ADDED] Debug config option to log each client vgs event [ADDED] New Function to handle the receipt of data from VGS server [FIXED] Refreshing of VGS GUI on Move IN and Move OUT was not refreshing both sides properly. New Configs // Settings here debug = 0; // 1 = ON // 0 = OFF range = 25; // Vehicles within this range of player can be moved into garage useScrollWheel = 1; // Scroll Wheel VGS Menu requireJammer = 0; // 1 = ON // 0 = OFF maxDistanceFromJammer = 300; // meters, only applies if requireJammer = 1 With new readme Branch here: https://github.com/ravmustang/Game_code/tree/VGS-Overhaul/ArmA_3/A3_EPOCH_virtualGarage Merge Request here: https://github.com/IT07/Game_code/pull/4