haleks 8212 Posted April 10, 2019 The Hotfix is out! Quote 171 Tweaked : Clean up system now works with scripted weaponholders. Survival Suits now defined as antirad uniforms. Fixed : Fixed undefined variable when spawning wrecks. Fixed Zeds spawning near killed NPCs. Credits : Special thanks to EO, MurazorWitchKing, Tourist & David Deana for their support. Most of the recent issues should be fixed. The next update will probably focus on fixing and improving the gear module, with more options for DLC content. 6 5 Share this post Link to post Share on other sites
haleks 8212 Posted April 10, 2019 And MyST Concept 1 is out too on Patreon! Although the demo is a fully playable Ravage mission, keep in mind it's bare bones and only shows a small percentage of the final project. Once complete, Myst will be publicly available to everyone. 6 2 Share this post Link to post Share on other sites
RZNUNKWN 354 Posted April 10, 2019 @MuRaZorWitchKING - you're right, it would probably take a ton of coding just to get water boil or chop wood, I'm just being nostalgic.... good times. 😒 Which reminds me, if you played Left 4 Dead, when one of the zombies goes nuts and starts attacking other, and they start beating each other untill one of them dies 😂 imagine that in Ravage... 1 Share this post Link to post Share on other sites
LSValmont 789 Posted April 10, 2019 On 4/10/2019 at 9:26 AM, haleks said: The Hotfix is out! Most of the recent issues should be fixed. The next update will probably focus on fixing and improving the gear module, with more options for DLC content. Please don't forget about considering these points for the next version: On 4/9/2019 at 4:07 PM, LSValmont said: Hey Haleks, just wanted to drop a couple suggestions for potential optimizations. I was checking out the scripts in the mod and I found several instances where BIS_fnc_selectRandom and BIS_fnc_MP were used. As you probably already know both commands were replaced by the much faster selectRandom and remoteExec/remoteExecCall respectively. Updating these commands shouldn't take to long. Search all .sqf files inside the mod folder, open them all with notePad++ and use the search in all opened documents notepad++ function to search for BIS_fnc_selectRandom and BIS_fnc_MP and replacing them. Shouldn't take long considering there aren't as many as you might think but would certainly speed things up quite a bit specially in MP. Also the script that adds BIS_fnc_holdActionAdd to objects so players can search things... it would be good to have a % box/option inside the module settings so that mission makers can select a % of objects with added HOLDACTIONS to... currently adding to so many objects can bring down fps in some systems so choosing only to add the holdAction to lets say 50% of candidate objects would be a neat optimization feature. We could set a higher % of possibility of finding items on objects but on a lesser % of objects so players still find the same amount of items even if there is less objects with the holdAction. PS: Another possibility is to have an option to only add the holdAction to an object if the script rolled that the object should have an item. If the script did not add an item to the object then no holdAction is added. (I know this kinda breaks the sense of searching every item but it could really improve performance as I found out in my testings. Whatever option you choose both will increase performance quite a bit (if mission makers do enable them that is). Lastly, please don't forget about the option to disable the reduction of animation speed that happens with high encumbrance. The problem with the setAnimSpeedCoef command is that it slows EVERY animation and not only the movement animations so it makes the already clumsy Arma 3 controls feel even more like we are driving a tank instead of a soldier on foot. That would be all my suggestions for now, as you already know I am all bout optimizations and I am about to release a MAYOR campaign for Ravage on the following days. Thanks for your continuous and marvelous work on Ravage btw. 2 Share this post Link to post Share on other sites
Slay No More 73 Posted April 10, 2019 5 hours ago, LSValmont said: Please don't forget about considering these points for the next version: Thanks for that tip, I'm replacing all those in mine with selectRandom. 1 Share this post Link to post Share on other sites
zagr 38 Posted April 11, 2019 On 4/9/2019 at 6:21 AM, acoustic said: I would like to keep all the persistency underneath the Grad system to avoid conflicts and make things simpler. Food and Hunger are the only 2 things I am not quite sure how to set up. here is what Adler told me about persistency: Yes, do it via custom variables. I just checked the Ravage code, the variable names are: "thirst" "hunger" "radiation" "radTriggers" "status" "rad_status" (Yes, really, no prefix). They are all saved on the player. Saving radTriggers probably makes no sense, all others should be fine. Here is an example: Spoiler class CfgGradPersistence { class customVariables { class ravageHunger { varName = "hunger"; varNamespace = "player"; public = 1; }; }; }; 1 1 Share this post Link to post Share on other sites
haleks 8212 Posted April 11, 2019 On 4/9/2019 at 10:07 PM, LSValmont said: Hey Haleks, just wanted to drop a couple suggestions for potential optimizations. I was checking out the scripts in the mod and I found several instances where BIS_fnc_selectRandom and BIS_fnc_MP were used. As you probably already know both commands were replaced by the much faster selectRandom and remoteExec/remoteExecCall respectively. Updating these commands shouldn't take to long. Search all .sqf files inside the mod folder, open them all with notePad++ and use the search in all opened documents notepad++ function to search for BIS_fnc_selectRandom and BIS_fnc_MP and replacing them. Shouldn't take long considering there aren't as many as you might think but would certainly speed things up quite a bit specially in MP. Also the script that adds BIS_fnc_holdActionAdd to objects so players can search things... it would be good to have a % box/option inside the module settings so that mission makers can select a % of objects with added HOLDACTIONS to... currently adding to so many objects can bring down fps in some systems so choosing only to add the holdAction to lets say 50% of candidate objects would be a neat optimization feature. We could set a higher % of possibility of finding items on objects but on a lesser % of objects so players still find the same amount of items even if there is less objects with the holdAction. PS: Another possibility is to have an option to only add the holdAction to an object if the script rolled that the object should have an item. If the script did not add an item to the object then no holdAction is added. (I know this kinda breaks the sense of searching every item but it could really improve performance as I found out in my testings. Whatever option you choose both will increase performance quite a bit (if mission makers do enable them that is). Lastly, please don't forget about the option to disable the reduction of animation speed that happens with high encumbrance. The problem with the setAnimSpeedCoef command is that it slows EVERY animation and not only the movement animations so it makes the already clumsy Arma 3 controls feel even more like we are driving a tank instead of a soldier on foot. That would be all my suggestions for now, as you already know I am all bout optimizations and I am about to release a MAYOR campaign for Ravage on the following days. Thanks for your continuous and marvelous work on Ravage btw. Hey mate thanks for the tips. Pretty much all the recursive scripts and loops have been optimized already with the most recent commands - I never bothered updating the "one-time" scripts, but I'll surely make a last sweep. As for the holdActionAdd for searching loot, there's actually only one instance : it is attached to the player and passed arguments change dynamically depending on the observed object. 😉 Dynamic animation speed has been made optional with the 170 update too (see the settings module parameters). 3 1 Share this post Link to post Share on other sites
Vandeanson 1677 Posted April 11, 2019 8 minutes ago, zagr said: Spoiler class CfgGradPersistence { class customVariables { class ravageHunger { varName = "hunger"; varNamespace = "player"; public = 1; }; }; }; Did it work for you? I cant get the custom variables saving to work:( Share this post Link to post Share on other sites
zagr 38 Posted April 11, 2019 Just now, Vandeanson said: Did it work for you? I cant get the custom variables saving to work:( nope, it's dosen't work, it's dosen't even say anything in the RPT file 😕 i'll look into that Share this post Link to post Share on other sites
zagr 38 Posted April 11, 2019 56 minutes ago, Vandeanson said: Did it work for you? I cant get the custom variables saving to work:( we marked that as a bug for now, he told me that he is going to fix it next week 2 Share this post Link to post Share on other sites
whiteface73 84 Posted April 11, 2019 2 hours ago, Vandeanson said: Did it work for you? I cant get the custom variables saving to work:( Interesting topic, I’ve finally manage to create my own persistent player inventory (very minimalistic, but working) today and was planning to take a look at thirst, hunger etc. tomorrow. Where is the problem: getting the values (from player), saving them, loading them or getting them back to the players? Share this post Link to post Share on other sites
Vandeanson 1677 Posted April 11, 2019 18 minutes ago, whiteface73 said: Interesting topic, I’ve finally manage to create my own persistent player inventory (very minimalistic, but working) today and was planning to take a look at thirst, hunger etc. tomorrow. Where is the problem: getting the values (from player), saving them, loading them or getting them back to the players? interesting indeed:) yeah my issue is saving/loading, e.g. player getvariable ["VABB_Wood",0]; Are you working with GRAD too or something else? Share this post Link to post Share on other sites
whiteface73 84 Posted April 11, 2019 20 minutes ago, Vandeanson said: interesting indeed:) yeah my issue is saving/loading, e.g. player getvariable ["VABB_Wood",0]; Are you working with GRAD too or something else? I‘ve used the Ravage MP Save and GRAD...in combination and both alone. Nothing was really satisfying and GRAD comes with a lot of baggage I don‘t need. When I had to restart the server this week (Ravage update) almost everything was gone. Even loading the player inventory didn‘t seem very reliable. So I came to the conclusion that I have to create my own scripts. I did some tests on Wednesday, so I guess saving the player loadout to the profile namespace using the BIS function was the easy part. Tomorrow I‘ll have to take a look at setVariable and getVariable - and that really didn‘t work on Wednesday (but it wasn‘t all incompetence, I did make some stupid mistakes too). Anyway, tomorrow I‘ll take a look at the variables again... 1 Share this post Link to post Share on other sites
Vandeanson 1677 Posted April 11, 2019 Aaalright figured I could share this version... below you ll find a unpolished demo mission, in case someone feels like testing the basebuilding script=) https://drive.google.com/open?id=1XKucmSXzxZgS32IoMdt_-fr3WDJ72Izg to fill up your mats type this in the debug console 200 call fnc_VABB_AllMats; You will find all required tools in the car. - Axe: to chop wood - Shovel: to dig for sand - hammer: have it equipped to activate basebuilding - pickaxe: to mine stone Issues: - distance for lightswitch check to lightsource is too big - lights are "built" with lights on - need to change that - sandbag crafting (under refining) missing - cinderblock crafting (under refining) missing - to store your gathered mat, you need to build a shed and store stacks of mats there. not all mats have addactions to be stored, but the concept stands - GRAD persistency system is not fully tuned yet - persistency might not work reliably yet. addon requirements: - Max Melee Weapons mod if you get around to test it, let me know what you like and what not. cheers vd 1 1 Share this post Link to post Share on other sites
Vandeanson 1677 Posted April 11, 2019 3 minutes ago, whiteface73 said: tomorrow I‘ll have to take a look at setVariable and getVariable Looking forward to your findings! Share this post Link to post Share on other sites
ArteyFlow 170 Posted April 12, 2019 How do you add individual scopes and suppressors to the loot pool? I already know how to add your own weapons to the Equipment Pool module, but I'm not sure how to add scopes and suppressors. 1 Share this post Link to post Share on other sites
RZNUNKWN 354 Posted April 12, 2019 11 hours ago, ArteyFlow said: How do you add individual scopes and suppressors to the loot pool? I already know how to add your own weapons to the Equipment Pool module, but I'm not sure how to add scopes and suppressors. You'll have to open ravage.pbo > code > rvgLoot > lootLists.sqf There you will find all the loot items mod spawns during the gameplay, divided into Civil, Military, and Industrial. Add classnames of scopes/suppressors into one of these and restart your scenario and you'll find them when you're looting next time. 1 Share this post Link to post Share on other sites
Vandeanson 1677 Posted April 12, 2019 @haleks A very general question if I may.. What are your key fps saving tricks when spawning AI or vehicles, even static objects? I noticed you mention caching quite a bit but I couldnt really find anything on it, is there a major difference to enabledynamicsimulation + distance based activation/deactivation? In principle i would spawn AI or objects only, when a player is near, and despawn or disable simulation once the player gets too far away. Is there more that can be done? Cheers Vd Share this post Link to post Share on other sites
haleks 8212 Posted April 12, 2019 18 minutes ago, Vandeanson said: @haleks A very general question if I may.. What are your key fps saving tricks when spawning AI or vehicles, even static objects? I noticed you mention caching quite a bit but I couldnt really find anything on it, is there a major difference to enabledynamicsimulation + distance based activation/deactivation? In principle i would spawn AI or objects only, when a player is near, and despawn or disable simulation once the player gets too far away. Is there more that can be done? Cheers Vd Well it depends; for systems like vehicles and wrecks I save each object (type, position, textures etc) in a global variable : each vehicle is then spawned when a player is detected near its position or deleted once there's nobody around. It's more complex to set up than dynamic simulation but it greatly reduces the number of objects to process. For furnitures, the system is a bit different since it is a more intensive script : rather than constantly creating & deleting objects, I spawn a pool of simple objects and hide them. As the player moves around structures, furnitures are repositioned instantly : players are under the impression that hundreds of furnitures have spawned in the nearby buildings, when in fact they're constantly watching the same objects (around 30 objects max iirc) being moved around on each frame. The furnitures are handled locally, but loot and weaponholders all are global (that was the trickiest part). I don't really use any caching system for AIs though; those will be affected by dynamic simulation but that's about it. Given the sandbox nature of Ravage, it is difficult to come up with an efficient caching system that doesn't interfere with gameplay. 4 1 Share this post Link to post Share on other sites
LSValmont 789 Posted April 12, 2019 1 hour ago, haleks said: Well it depends; for systems like vehicles and wrecks I save each object (type, position, textures etc) in a global variable : each vehicle is then spawned when a player is detected near its position or deleted once there's nobody around. It's more complex to set up than dynamic simulation but it greatly reduces the number of objects to process. For furnitures, the system is a bit different since it is a more intensive script : rather than constantly creating & deleting objects, I spawn a pool of simple objects and hide them. As the player moves around structures, furnitures are repositioned instantly : players are under the impression that hundreds of furnitures have spawned in the nearby buildings, when in fact they're constantly watching the same objects being moved around on each frame. The furnitures are handled locally, but loot and weaponholders all are global (that was the trickiest part). I don't really use any caching system for AIs though; those will be affected by dynamic simulation but that's about it. Given the sandbox nature of Ravage, it is difficult to come up with an efficient caching system that doesn't interfere with gameplay. You sir are a magician! 👏👏👏 Share this post Link to post Share on other sites
sevenape 1 Posted April 12, 2019 Hello, apologies for the thread hijack and for probably very elementary questions. I'd just like to say how fantastic I think this mod is, and how much fun I'm having playing it. I just wondered these things: Is there a kind of basic random scenario I can put on any map? and Is it possible to add animals to missions that have already been published? I'd like a bit more wildlife in those yomps across forests and fields! Also, I'd like the hunting aspect of that too, if that's possible? Sorry if these have been addressed and sorry if they are irrelevant. Thanks! 1 Share this post Link to post Share on other sites
Vandeanson 1677 Posted April 12, 2019 16 minutes ago, sevenape said: I'd just like to say how fantastic I think this mod What a friendly hijacker! 🙂 16 minutes ago, sevenape said: Is there a kind of basic random scenario I can put on any map? You can place eden editor ravage modules on any map, which will spawn the randon ravage events. Further, you can modify and customize various aspects of ravage in eden editor. Search for ravage tutorial videos by kodabar and prospektmir on youtube for guides. 19 minutes ago, sevenape said: Is it possible to add animals to missions that have already been published? I'd like a bit more wildlife in those yomps across forests and fields! Also, I'd like the hunting aspect of that too, if that's possible? Yes, but you need to include additional scripts. I can send you my animal spawner later tonight, which spawns goats and sheep, that can be hunted and butchered with the ravage mod features. George floros has additional scripts that also allow you to get "ravage" meat from other animals. Welcome to a world where you can make your own survival game:) Cheers Vd 4 1 Share this post Link to post Share on other sites
sevenape 1 Posted April 12, 2019 6 3 hours ago, Vandeanson said: 🙂 You can place eden editor ravage modules on any map, which will spawn the randon ravage events. Further, you can modify and customize various aspects of ravage in eden editor. Search for ravage tutorial videos by kodabar and prospektmir on youtube for guides. Yes, but you need to include additional scripts. I can send you my animal spawner later tonight, which spawns goats and sheep, that can be hunted and butchered with the ravage mod features. George floros has additional scripts that also allow you to get "ravage" meat from other animals. Welcome to a world where you can make your own survival game:) Thanks so much for the lovely welcome and the help! I would love your animal spawner script! Thank you!!!!! Happy surviving! Share this post Link to post Share on other sites
Vandeanson 1677 Posted April 12, 2019 Spoiler _VD_Animalspawn = { waitUntil {count ((allPlayers select {lifeState _x != "DEAD-RESPAWN"}) - entities "HeadlessClient_F") > 0}; _allplayer = (allPlayers select {lifeState _x != "DEAD-RESPAWN"}) - entities "HeadlessClient_F"; _player = selectRandom _allplayer; _pos1 = [getPosATL _player, 90, 700, 0, 0, 0.9 , 0,[]] call BIS_fnc_findSafePos; // the first two numbers are the minimum and maximum range that the animals spawn related to the players position _type = ["Goat_random_F","Sheep_random_F"] call BIS_fnc_selectRandom; // you can add more animals here - rabbits spawn by default. other animals might not be recognized by ravage as edible _animals = createGroup east; _animal = _animals createUnit [_type, _pos1, [], 1, "FORM"]; _animal setVariable ["BIS_fnc_animalBehaviour_disable", true]; _animal setSpeaker "NoVoice"; _animal disableAI "FSM"; _animal disableAI "AIMINGERROR"; _animal disableAI "SUPPRESSION"; _animal disableAI "AUTOTARGET"; _animal disableAI "TARGET"; _animal setCombatMode "BLUE"; _animal setBehaviour "CARELESS"; [_animals, _pos1, 250] call BIS_fnc_taskPatrol; sleep 600; // increase fix amount of time before animals may check for distance to player and wait for despawn. sleep random 400; // ads a random amount 0-400 to above waituntil {{_x distance _animal > 900}foreach allplayers - entities [["allplayers"], ["HeadlessClient_F"], true, true]}; // 900 is the distance to player, if the player is more than 900 meters away, and time timers have run out - animals will despawn and respawn closer to you. { deleteVehicle _x; }forEach units _animals; call _VD_Animalspawn; }; waitUntil {count ((allPlayers select {lifeState _x != "DEAD-RESPAWN"}) - entities "HeadlessClient_F") > 0}; call _VD_Animalspawn; very welcome=) copy + paste the above code in a new file in your mission folder called VD_Animalspawner.sqf. create a file init.sqf in your mission folder or add the following line to it: [] execVM "VD_Animalspawner.sqf"; It is a very old script and surely not perfect, but it does the job. let me know if you need help tunig it to your needs. cheers vd 2 Share this post Link to post Share on other sites
GEORGE FLOROS GR 4207 Posted April 12, 2019 1 minute ago, Vandeanson said: VD_Animalspawner.sqf. Would you like to add this to the script library ? Thanks Vandeanson ! 1 Share this post Link to post Share on other sites