Jump to content

haleks

Member
  • Content Count

    3623
  • Joined

  • Last visited

  • Medals

Everything posted by haleks

  1. haleks

    Ravage

    Mod version : 0.1.78 (2019.10.17) Hello and welcome to the Ravage Mod Thread! Ravage is a survival mod focused on immersive and dynamic gameplay. Players are to survive in a post-apocalyptic world, where bandits, infected and hunger will be constant threats. About "Ravage" Ravage is a comprehensive survival modification, inspired by various games such as the Stalker series or the Dayz mod, as well as many novels like The White Plague by Frank Herbert or Ravage by Barjavel. The Ravage mod has been in development since 2013 and is still an ongoing project. It includes demo missions and several editor tools allowing you to create all sorts of scenarios in a matter of minutes. Ravage is designed to be easy to use, performance-friendly and is compatible with many addons. Features SP & MP compatible : Ravage comes with a set of easy-to-use modules, allowing you to create your own survival experience. All modules are designed to work in every environment : single player, locally hosted or dedicated servers. Survival mechanics : Hunger and thirst system connected to Arma 3 fatigue simulation : The more gear you carry running around, the hungrier & thirstier you will be. Eating and drinking will restore a small amount of health (with a bonus near Fireplaces), your health will decrease at low hunger & thirst levels. Zombies : Ravage includes a dynamic zombie spawn system. As the sun goes down, more infected will be roaming the land. Beware! Some zombies are extremely fast and will outrun you if you don't manage your fatigue. (Includes animations from Teacup's pack, Breaking Point and custom skins by Bad Benson.) Bandits & survivors : Survivors are despaired and don't hesitate to kill to obtain whatever they can scavenge. You will stumble upon clans of bandits fighting each other, searching towns for loot or hunting you down. Not all survivors are hostile though; some of them are willing to join you. Quality OST : Including soundtracks from the STALKER games with permission from GSC Game World, as well as a selection of Arma 3 tracks. WIP. And many more : Accelerated time factor. New items (usable by double-clicking them in your inventory). Realistic vehicle repairs. Dynamic weather. Ability to sleep (requires camping items). Radiations, gasmasks (includes breathing sounds function) and Geiger counter. Loot and Dynamic Furnitures systems. Wrecks and derelict vehicles spawning on roads. Character persistency in Multiplayer. Compatible with many addons (details below). How to play? Just launch one of the scenarios listed under "Scenarios/Ravage Mod"; everything you need to know will be explained along your journey. Make sure tutorial hints are enabled in your settings! Kodabar kindly made a video showcasing the demo mission, with instructions on mod installation : If you play a Multiplayer mission wich has character persistency enabled, your equipment, survival status and position will be saved and restored next time you join the same server. All your saved characters can be previewed and/or deleted from the MP save manager (scenarios>Ravage). Mission Making Several modules are available under modules >> "Ravage" in Editor mode. Amongst other things, these allow you to : spawn hostile and friendly ambient AI. spawn zombies. enable the dynamic weather function. cover the map with wrecks and damaged vehicles. enable the loot system and spawn ambient furnitures inside buildings. enable the survival and radiation systems. enable character persistency in Multiplayer. Each module controls one particular aspect of Ravage features and can be used independently. You will usually need only one module of each type, except for the zombie hordes module. Creating a mission for Ravage, be it a singleplayer or multiplayer scenario, requires close to zero scripting knowledge : the modules will detect what kind of environment they are working in (SP, locally hosted or dedicated server) and adapt accordingly. Documentation More informations are available on the Ravage Wiki. It provides valuable informations on survival mechanics or mission-making using the Ravage modules. @MuRaZorWitchKING also compiled a usefull guide on Steam. Make sure to have a read there first if you have any doubt or question! Ravage on Youtube Thanks to Gunter Severloh, the Ravage Mod has its own Youtube Channel! Most, if not all, the videos related to Ravage will be compiled there; if you want to see just how modular Ravage can be, how people play it, or just looking for tutorials, it's definitely the place to go. Make sure to subscribe if you want to stay tuned with the latest additions to the mod! Supported Addons This mod requires CBA_A3! Ravage is designed to be compatible with many addons in order to bring in more variety : Recommended Mods Besides the supported addons, the modding community has been producing many mods for any taste. Here's a list of selected mods that will enhance your ingame experience with Ravage : Performances Tips If you are going to play Singleplayer, consider launching Steam in OFFLINE mode. Always set the Arma3 Launcher to close itself after clicking "play". Be aware that the new Water Reflections can cost up to 10 frames per second, you can turn this feature off from the video options. Credits & Thanks Special thanks to Bad Benson, Cosmic10r, Evil Organ & Tourist for their numerous contributions and precious help testing Ravage MP! Thanks to Kodabar and Gunter Severloh for their support, and to anyone spreading the good word! Gasmasks and Shemags made by Cunico and included with permission (http://forums.bistudio.com/showthread.php?174221-Hidden-Identity-Pack-V-2). STALKER:Shadow of Chernobyl soundtrack by Mooze, included with permission from GSC. Loot System based on concepts by Larrow and Na_Palm. Weather system based on randomWeather2 by Meatball (http://forums.bistudio.com/showthread.php?172817-randomWeather2-Script-Dynamic-Weather-For-A3). Scorch's Inventory Items by Scorch_052 used by some of the new items (http://forums.bistudio.com/showthread.php?159535-Scorch-s-Inventory-Items). Radioactive Zone Warning Sign texture by Bossmann. Additional models & textures by Giorgygr. Infected skins by Bad Benson. Additional sound FX and config tweaks and dynamic compositions by Evil Organ. Retextured weapons by Cosmic10R. The MP save system was inspired by zooloo75's concept. Zombie animations by Teacup and the Breaking Point Mod team. The "Ghost Hunters" showcase uses VFX based on @aliascartoons's work for his Strigoi concept. License Ravage Mod by Haleks is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. Permissions beyond the scope of this license may be available on request. Using Ravage Mod on monetized servers is strictly forbidden. You may not reupload this mod on Steam. Changelog Download Links : Ravage v0.1.78 Mirrors : Ravage Wiki (thanks to Kodabar) : http://ravage.wikia.com/wiki/Latest_version_of_Ravage How can you support mod development? Any contribution can help and will be used to acquire content related to Arma3, and/or survival games, such as DLCs and future BIS releases. Or coffee. Feel free to donate whatever you want, no matter how modest your contribution may be, tokens of appreciation always boost moral and creativity.
  2. haleks

    Ravage

    Hello Ravagers! Time for another update guys! This release introduces a small immersion-enhancement script to improve AI reactions to nearby gunshots, plus the usual tweaks and fixes : SP players may see a slight improvement performance-wise, although a lot of work remains to be done in that area... Have fun fellas, and thank you for your support! 😉
  3. haleks

    Ravage

    All global variables handled by the gearpool module : "lootVital_list", "lootWeapon_list", "lootMagazine_list", "lootItem_list", "lootBackpack_list", "lootworldObject_list", "rvg_weapons", "rvg_LMG", "rvg_launchers", "rvg_uniforms_lv0", "rvg_uniforms_lv1", "rvg_vests", "rvg_headGears", "rvg_goggles", "rvg_backpacks", "rvg_nvgs"
  4. Interesting topic! ^^ Obviously, everyone has its own process and there's more than one way to "make a monster", but I'm happy to share ideas if it can help modders out there! Although keep in mind : my own approach is rather empirical, and there're probably better ways to achieve what we're talking about (for instance using FSM files for complex behaviours). Usually, zombies spawned by the Ravage modules are Agents, for two good reasons : - Agents do not use the standard FSM routines, and are less demanding as a result. That's exactly what you need for "zombies scenarios", where we need numerous but dumb entities. The downside is that a lot of scripted commands do not work on Agents, but... - Agents are easier to work with when you need better control of their pathfinding (which is odd, considering that agents are usually used for super dumb animals in a typical Arma scenario). To be more specific, the setDestination command is a powerful tool for Agents, with more flexibility than what we have for "classic" units : it can clear the planned path on the fly and force an immediate update. In Ravage, this is used to help zombies anticipating their target's trajectory : instead of moving to the target's position every x seconds, they re-calculate the best path to the expected "destination" of the target, based on its velocity. Not necessarily the best method, but I just plug my own .sqf scripts to zombie entities. It will do the job for dumb monsters, but if you need more complex/dynamic behaviours, it's probably best to have a go at FSM files, but I can't help you there. ^^' But yeah, basically that's it : targets are selected based on their visibility and proximity, zombies switch to a "chase state" (faster movements, different SFX) and an attack sequence is triggered once in range. For Ravage, a fake bullet with tweaked properties is used, rather than 100% scripted damage : the idea is to be in line with "how Arma is supposed to work", and improve compatibility with in-depth modifications like ACE. I also added a bunch of scripts to handle their audio perception - in that area, you pretty much have to script everything yourself when working with Agents... Yep. Since zombies have their own logic for target selection, it doesn't conflict with vanilla behaviour. The "fake bullet" trick also helps the AI knowing when they're being attacked/hit by a zombie, which is something you would have to script yourself with less conventional methods. class CfgVehicles { class B_Survivor_F; class zombie : B_Survivor_F { nameSound = "Walker"; }; }; https://community.bistudio.com/wiki/Arma_3_NameSound_Setup "Walker" just happens to be an existing NameSound in Arma 3, lucky for me. ^^ That deserves its own thread, but IMO : - make sure you know everything you need about locality : you want to know when to execute a script server-side or client-side, what needs to be sync'd across the network or not etc (for instance, the VFX script when a player is hit by a zombie only needs to be executed on his machine)... - always test the performance of each iteration of your scripts. - try to stay within the "engine rules" : the less custom scripts you need, the easier it will be for everyone, including mission makers. That's all I can think of right now... By the way, @R0adki11, I think this thread best suits the Editing section of the forum? 😉
  5. haleks

    Ravage

    Greenfist' script is designed to monitor "regular" units - zombies in Ravage are usually spawned as agents, and those are a bit different. Most commands related to AI behaviour/knowledge/movement don't work on them. 😉 Zombies in Ravage behave according to in-house logics and variables, so most monitoring tools won't have any relevant data for them.
  6. haleks

    Ravage

    Yeah, I think the AI lacks an "uncertain state" : the "who are you?! Oh you're friendly" kinda situation. Typically it's the sort of thing that is scripted in mainstream games - and various scenarios in Arma3 campaigns do have those scripted encounters - but that's not part of the "vanilla package". It's a shame IMO, that's what mission makers need to have as a ready-to-use tool in such a sandbox. The situation in your video perfectly depicts that (assuming the lad was indeed hostile ^^). Regarding the next update and improving AI reactions to audible gunshots, I'm pretty happy with the first results so far! It's still WIP, but right now the logic behind the script is pretty simple : units within close range of any gunshot will immediately switch to "danger" behaviour (unless they're in stealth mode) if they have no prior knowledge about the shooter and if he belongs to a different group. They will also look at an estimated position of the shooter - the precision depends on how loud the weapon is, and how close the shooter is. The script doesn't actually reveal the shooter to nearby AIs, it just forces them to "act surprised" and look at somewhere near the gunshot while the engine does its stuff. It may indirectly help the AI to spot far away shooters, but other than that it's a rather light approach with mostly cosmetic (yet very much needed) consequences.
  7. haleks

    Ravage

    Fear not, the effects should be minimal and mostly for immersion. My previous statement was a bit inaccurate : the problem is more a matter of how they react, actually. I'm under the impression that it takes several seconds for the AI to react, or to pinpoint the gunshot origin - during that time lap they just stand still, and they only switch to "danger" once they see the shooter. It looks underwhelming... The goal is just to have them show some kinda surprise right away, and make them switch to danger before they see/pinpoint the shooter. 😉
  8. haleks

    Ravage

    Hi guys! Some quick news about the next update & recent suggestions : I realised this week-end that I added a function to handle that in a previous version - but the script failed to identify emptied weaponHolders... That is fixed on my current build - no more opening empty weaponHolders, and the overall "looting experience" is a tad more fluid. I still have to test the fix on CUP structures with proxies, but I'm confident it will solve all related problems. Regarding a more detailed repair system for vehicles, it is very much needed indeed. It probably won't be part of the next update, but I reckon a lot of props from recent DLCs can be put to good use. 😉 Here's the planned changelog : Right now I have a ready-to-release build, but I want to have a go at something that has been bothering me lately, which is the vanilla AI being pretty much completely deaf... They simply don't hear gunshots beyond a very small range, unless they're directly being shot at. Since I have a pretty solid "enhanced audio perception" for zombies already, I figure it shouldn't be too much troubles to work something out for the vanilla AI. The update should happen sometime this week, maybe followed by another one before November.
  9. haleks

    Ravage

    New module parameter(s) incoming! ^^
  10. haleks

    Ravage

    Is there a list of structures used as replacements?
  11. "thisList" is an array : a list containing several objects : [obj1, obj2, obj3] In this case, the array contains all units/objects that fulfil the trigger's condition statement. Use this code in the "on activation" field to see what is included in thisList : hint str thisList The "thisList select 0" code simply selects the first element in that array (indexing starts at 0 when going through arrays).
  12. Always happy to help destroying stuff! Here's a ready-to-use function : //example : [getpos somelogic, 1000, 1] call myFunction to level everything, or : //[getpos somelogic, 1000, 0.75] call myFunction to damage everything myFunction = { params ["_pos", "_radius", "_dam"]; _arr = [ "BUILDING", "HOUSE", "CHURCH", "CHAPEL", "BUNKER", "FORTRESS", "VIEW-TOWER", "LIGHTHOUSE", "FUELSTATION", "HOSPITAL", "WALL", "HIDE", "BUSSTOP", "STACK", "TOURISM", "WATERTOWER", "POWER LINES", "POWERSOLAR" ]; { _x setDamage [_dam, false] } forEach (nearestTerrainObjects [_pos, _arr, _radius,false]); true }; I'm pretty sure nothing will survive that - although keep in mind that some buildings may not have a proper "damaged" model (mostly structures from Tanoa).
  13. haleks

    Ravage

    Looking at it, you're probably going to need to set "allowedTargets=0" for all Ravage functions except rvg_fnc_init_loot : most of them will run client-side (assuming it works like remoteExec where 0 means all machines and 2 means server only).
  14. haleks

    Ravage

    I think the following covers it : rvg_fnc_init_loot fnc_checkLoot fnc_loadFrnt fnc_findNearestBldCat fnc_lootSearchAction Note that most of these functions aren't properly configured (wich is something I really need to do some day...), but generated on the fly after module inits - it may be a problem, I have no idea to be honest. The loot system also involves a few vanilla functions, but I don't think BIS scripts are blacklisted? Definitely a good idea mate! I'm mostly working on MyST these days, but I plan on pushing a Ravage update before November (before Death Stranding hits the shelves, actually!). 😉
  15. Well, on the other hand, BIS moved so much stuff to the free platform that there isn't much left at this point to be kept as an exclusive for DLC owners, except for the aliens... Judging by the quasi complete absence of user-made missions involving said aliens, I think they went the wrong way as to what should be made available to everyone though.
  16. It's supposed to be true call BIN_fnc_showHorizontalCompass, iirc.
  17. haleks

    Ravage

    Because they're not present in the thislist array. Remember that thisList is based on your Activation setting. https://community.bistudio.com/wiki/Eden_Editor:_Trigger
  18. haleks

    increase damage to player?

    Don't know where to put it? Well, where did you put it? There're multiple ways for this, one of them being initPlayerLocal.sqf : player addEventHandler ["HandleDamage", { params ["_unit", "_selection", "_damage", "_source", "_projectile", "_hitIndex", "_instigator", "_hitPoint"]; if (_projectile isEqualTo "") exitWith {false}; _original_damage = if (_selection isEqualTo "") then {damage _unit} else {_unit getHit _selection}; _added_damage = _damage - _original_damage; _coef = 1;//change this to increase or decrease _final_damage = _original_damage + _added_damage*_coef; _final_damage }];
  19. haleks

    Language of the AI

    Why not get in touch with Operation Frenchpoint? They could be interested. 😉
  20. haleks

    Language of the AI

    I think @Marechal Lasalle is looking for a "proper" french language protocol - the Tanoan one has a very strong accent and that's not how people speak in France. As far as I know, there is no such addon at the moment though.
  21. haleks

    increase damage to player?

    Don't use setdamage/setdammage, it has a very simplistic behaviour and should not be used for units with multiple hitpoints. HandleDamageEH is preferable IMO : params ["_unit", "_selection", "_damage", "_source", "_projectile", "_hitIndex", "_instigator", "_hitPoint"]; if (_projectile isEqualTo "") exitWith {false}; _original_damage = if (_selection isEqualTo "") then {damage _unit} else {_unit getHit _selection}; _added_damage = _damage - _original_damage; _coef = 1;//change this to increase or decrease _final_damage = _original_damage + _added_damage*_coef; _final_damage
  22. haleks

    Ravage

    I'm guessing you're using _unit call rvg_fnc_equip instead of [_unit] call rvg_fnc_equip? I've been somewhat inconsistent through the code : some functions require arguments passed in an array while others work the object passed directly.
  23. Not yet, I had forgotten about it to be honest... ^^ I'll see if I can push a tiny update this week-end with the parameters I use for Ravage.
  24. Nope, only a mod can change that kind of config.
  25. haleks

    Ravage

    Ha, I've a pretty good memory when it comes to coding (anyone else here ever dreamed of code? Does it feel like an unsolvable nightmare to you too? ^^). Thankfully, I still have most of the data for "Bob" (the old guard from the early dev group will know what I'm talking about) - I was in the process of converting the little dude into a "phantom detector" for MyST. 😉
×