Jump to content

Recommended Posts

What's ROADS, rsoftokz?

 

B

 

EDIT: Just checked it out. Going to have a look at it!

 

SECOND EDIT: This is well made Rsoftokz!!! I'm enjoying this.

  • Like 1

Share this post


Link to post
Share on other sites

Anyone confirm if the water is working on Takistan style wells?  If not, can this be looked at for near future version release?

Share this post


Link to post
Share on other sites

@Lecter

 

instructions to make you own "RAVAGE" showcase mission.

 

you need pbo.manager installed for this .

 

find your RAVAGE mod /addons/rvg_missions.pbo

click on it, a new window will be opened on your screen, it is PBO manager opening.

double click on rvg_missions.pbo, it will scroll the contents of the pbo file.

find the rvg_sp folder, expand it ( click on + )

you'll see a folder called RAVAGE.Altis

right click on it, then "copy".

go in your documents/arma 3/missions folder,

paste the Ravage.Altis folder here.

open this folder, it contents:

 

-Scripts (folder)

-description.ext (file)

-init.sqf (file)

-mission.sqm (file)

 

 you'll need a text editor to modify the init.sqf, I recommand Notepad++

 

then add the script I gave you to the end of this init file, save it.

 

now start arma 3, go into Editor, Altis map.

open the RAVAGE mission you'll find in the list, click preview and play.

 

the other method is to recompile you folder into a PBO file, copy and paste this pbo to your arma 3 directory/missions folder and play it like other single player mission.

 

EDIT  

(since it took me less than 3 mn to do it )

 

or click here:

 

Ravage showcase mission with HLC AR-15 weapons on spawned bandits 

 

GOOGLE DRIVE

 

the weaponery listed  in the script I gave you will spawn on bandits squads, renegades and survivors. you'll have to kill them to find those weapons.

nothing will be spawn into the loot system.

Gotcha mate. I didnt pack pbo file correctly once I edited the init file, that's why it was broken for me. But I fixed it and it's working now. AR-15 pack rifles are being spawned in raiders. Thanks big time.

  • Like 1

Share this post


Link to post
Share on other sites

Ayo, haven't been keeping up with this thread as much as I used to, is there any progress/news on MP? Or if anyone has tested it, how does it work?

Share this post


Link to post
Share on other sites

Hey,

 

 

 

Chernerus Winter in the Editor right now and so far it's nice

 

My opinion is that all the "Winter" maps are not enought worked.

Perfect snow surface, roads perfectly delimited, and no snow on structures.

 

The map "Ural" seems to be nicely done on this side.

I think I'll asked to the author how he do this for doing it for my own maps.

 

 

 

I just played Ravage with this. Just added the snow effect.

 

Yep, there's a script that permit to add a filter on screen and give an impression of snow flakes.

It can be used on each maps without exeception, the only problem is that it continues to snow inside structure. But yes, this script is really good.

 

Concerning Ravage, there's a little thing that can probably be solved. Many infected close to structures appear inside destroyed houses, but are stuck in and unable to move.

Maybe you can do something about that ?

  • Like 1

Share this post


Link to post
Share on other sites

Ayo, haven't been keeping up with this thread as much as I used to, is there any progress/news on MP? Or if anyone has tested it, how does it work?

 

No progress on multiplayer yet. It's still all about getting single player right.

Share this post


Link to post
Share on other sites

i can't gut rabbit , i killed one, and i got gutting knife, but i can't  manage it to work.

 

p.s. i still open can food without can opener 

Share this post


Link to post
Share on other sites

i can't gut rabbit , i killed one, and i got gutting knife, but i can't  manage it to work.

 

p.s. i still open can food without can opener 

Gutting action is not fixed yet. As for can opening, well it's not a glitch - if you have gutting knife or tools you can open cans with those as well.

Speaking of bugs, I believe there is a problem when deploying a weapon in prone position. The rifle partially "sinks" into ground and we cannot aim properly. Can anyone confirm this?

Share this post


Link to post
Share on other sites

transitioning guns and weapons matter  since ARMA  update... it might be caused also by Enhanced Movement.....

MP is almost possible with some scripting (at least, played it coop , 2 players and each one of them need to eat, drink, heal , etc.... need to place a init line to playable character, modules required on map too in editor ) but as no variable is public, you have some matters remaining, specific to MP game on Arma.

 

 

for those who care:

 

83J4RT.jpg

 

just released !  (ROADS mission with ZOMBIES per request )

 

Thread and download link here

  enjoy  :)

  • Like 4

Share this post


Link to post
Share on other sites

Hi bdc! Thanks for the feedback & suggestions.
 

Howdy gang and Haleks,
 
Fired up the mod for the first time yesterday and wound up playing it all day long. Was a nice harkening back to DayZ. Honestly, it's pretty much exactly what we've been looking for: It's dark, creepy, ominous, and very difficult. Haleks, you *need* to make this into a multiplayer, dedicated-server mod. I guarantee you it would get traction. 
 
While I enjoyed the game play quite a bit, and while it satisfied that desire I think all of us have to have that hardcore survival thing, I've got some suggestions for you on things you can do, in my opinion, to re-balance the mod out:
 
1) HandleDamage with projectile damage from bandits as well as inflicting said damage on bandits -- The damage done is way, way too high, in both directions. I would suggest you bring it back close to stock Arma levels. You spend an hour accumulating supplies and then die in one shot from a raider which is not cool. The fight needs to be a little bit more prolonged where things like head shots can matter over body shots, especially if a player is wearing an armoured vest or carrier rig.

 
The mod doesn't modify much regarding that at the moment; gunshots are much more lethal since the Nexus update (combine that to the fact that not all supported addons have been updated yet by their authors).
Right now I'm not sure I want to change that : for once, encounters with the AI are actually brutal and one should fear a group of them rather than just thinking "Oh cool, more loot on foot!".
Ravage already keeps the game from forcing you to walk whenever you're hit in the legs, wich technically makes you a bit more resistant already (as damages are reducted in such cases).
 

2) The food drops are extremely low. They can be low, which forces the player to have to scavenge, but they're dreadfully low. In the entire time I played yesterday, I found only one can of baked beans. I would suggest either adding the random critter in (chicken, sheep, whatever) or add canned goods back in.
3) Empty can loot is too high.


The incoming update will fix the Gutting Animals feature; the loot system has been tweaked a bit and some balancing has been done on the loot tables.
Hopefully, you guys should have more options to avoid starvation.
 

4) Remove the player/enemy/raider/vehicle icons off of the map. This isn't militaristic Arma; it's a survival mod, so seeing stuff on the map is too advantageous to players. In doing so, I think this requires a change of overall difficulty in the scenario.


That is an Arma3 difficulty setting mate. ;)
Have a look at your game options.
 

5) Augment the attack animation on zombies by taking the latter portion of the grenade animation. They're doing the entire animation cycle which is actually three animations buttoned together. The last one would work just fine. If in fact you do this change, then I suggest dropping down the number of running zombies slightly to balance it.

 
Good suggestion thanks, I'm working on it! ;)
 

6) The Hellcat needs initial damage points.


Not sure what you mean, did you find an undamaged one?
 

7) Empty or dramatically reduce the fuel tank capacity of the Tempest Fuel truck. (setFuelCargo; similar that I believe is done on the offroad repair -- setRepairCargo)


As far as I can tell, a lot of vehicles in Arma have exagerated fuel capacities; I think Refined Vehicles deals with that.
I'll look into it eventually.

 

9) Changing of or addition of CUP (Community Upgrade Project) weaponry to go back to some of the Arma 2, DayZ-style weaponry (Lee Enfield, M1014 shotgun, etc).

 
Honestly, I don't plan on touching the weapon lists right now : the configs are a tad messy and the whole system will be overhauled at some point.
Meanwhile, I really, really, recommend that you play with WarfareThai mod. It's the only one I use along with RHS.
 

10) I have a gas mask breathing sound in CO18 Resistance Plus I nabbed off the Internet, for use with the SDV, that you can use to replace the gas mask sound you've got. There's no bubbling water sound mixed in.

 
Nice! Feel free to link the source materials. ;)
 

11) EDIT: I Forgot something - The new stamina system. Since there's so much running in this, I would recommend modifying the stamina system to enable the player to run greater distances before getting winded and having to rest. It might also help to add an Epi pen in, that a player can double-click on in inventory, that temporarily disables the stamina system for a few minutes (with a pulsing heartbeat sound), that terminates in a crash of all stamina, forcing the player to have to stop. Also, the player's aim coefficient -- modify it, I suggest setting it down to between 0.20 and 0.35.

 
As it happens I've been working on it this week-end! ^^
The Epi-pen idea is excellent though, it's going on my To Do list!
 
 

Other than that, I think the weaponry and ammo drops are perfect. You really have to work at it to get armed! And the use of container objects for loot is very good and helps relieve a lot of lag.
 
Haleks, I need to get some time with you. I can help you convert this into multiplayer running on a dedicated server. I have the scripting knowledge and experience to show you how to set this up for headless clients, monitor and keep track of players, vehicles in the field, etc. I also have code I wrote to relieve A LOT of server and client FPS. This mod is so damn good, and so challenging, and so hardcore, that it could easily be the spiritual successor to DayZ for Arma 3. Come get in touch with me, give me an hour of your time, and let me show you the mission (of the code I sent you) to give you some ideas. It is possible! And it would be one of the best survival mods for Arma 3. 
 
B


Thanks again for the help mate; since the mod will most likely undergo major changes in the next months, I'm waiting to have a clearer vision to start working on MP.
But I might add partial MP support for the zombies and a few other functions, probably after January - I'll get in touch!

...And here's the changelog so far by the way :
 

134
Tweaked :
Minor changes to the loot system.
Tweaked Fatigue & Weapon Sway configurations.
Several changes to zombie attack animation & handling.
Zombie damage resistance has been towned down a bit.
Minor tweaks to Status Display.
Re-wrote hunting system : double-click on a knife from your inventory to gut a nearby animal.

Fixed :
Wrong building model replacement causing issues with zeds stuck inside.
Radioactive zones sometimes spawning around NPC camps.
Minor fixes to the Zombie Spawn system.
Player unable to gather fuel from most fuel pumps.
Groaning sounds when injured weren't disabled for all voice profiles after the Nexus update.
[RHS] Fixed an error in the weapons loot list.

New :
Zombies can't spawn when there's a human nearby*.
Fixing wheels now requires spare tires (but doesn't consume toolkits anymore).
Fuel sources hold a limited amount of fuel and can be depleted.
Added suport for Sigma6's Birds & Bees.

*It is possible to permanently secure a small location by ordering friendlies to hold it.

 

 

Coming soon!

  • Like 5

Share this post


Link to post
Share on other sites

Ok guys. Show of hands here.

Since it looks like we'll be moving into the next phase of Ravage, how does everyone feel about being able to cut wood to the extent that we can actually build a shack/house/etc? I've seen this requested before and I just wanted to start the conversation before anything definitive has been started.

I'm personally against it. Though what I would like, is being able to harvest enough wood in a sense to fortify EXISTING buildings.

But I don't actually want to have to become a carpenter.

Think about The Walking Dead or ZNation or what have you. How many of these people are actually physically taking the time and energy to become a lumberjacking carpenter and building a place to live from the ground up? I don't think any.

But what they are doing is fortifying existing buildings when they need to rest somewhere or call a place home after awhile.

So I guess I'm of the mindset that I'd LOVE to be able to fortify and board up a current structure with wood, but NOT actually build a house.

Anyway, that's just my take. How do you guys feel about wood-cutting in general. Bdc mentioning using wood to start fires (which is an awesome idea) got me thinking. Figured we could toss this around while waiting for the next update.

  • Like 1

Share this post


Link to post
Share on other sites
One small thing before next update. I think loot refresh time is too small (I play modified version but I do not think it matters).

Now is a good strategy is to sit near a small military camp with barracks and search it again and again before thinking about food.

  • Like 1

Share this post


Link to post
Share on other sites

Ok guys. Show of hands here.

Since it looks like we'll be moving into the next phase of Ravage, how does everyone feel about being able to cut wood to the extent that we can actually build a shack/house/etc? I've seen this requested before and I just wanted to start the conversation before anything definitive has been started.

I'm personally against it. Though what I would like, is being able to harvest enough wood in a sense to fortify EXISTING buildings.

But I don't actually want to have to become a carpenter.

Think about The Walking Dead or ZNation or what have you. How many of these people are actually physically taking the time and energy to become a lumberjacking carpenter and building a place to live from the ground up? I don't think any.

But what they are doing is fortifying existing buildings when they need to rest somewhere or call a place home after awhile.

So I guess I'm of the mindset that I'd LOVE to be able to fortify and board up a current structure with wood, but NOT actually build a house.

Anyway, that's just my take. How do you guys feel about wood-cutting in general. Bdc mentioning using wood to start fires (which is an awesome idea) got me thinking. Figured we could toss this around while waiting for the next update.

 

Against it. There are already mods out there that do this: Epoch, Exile, etc. For a mod like this, in my opinion, the vehicles are your "base". They keep your spare inventory items and can help you remain mobile. Go back to vanilla DayZ on this; that's how it was done then and people did just fine on persistent multiplayer servers for extended periods of time. If anything, the tent that's laid down by a player could be used for this as well. But otherwise, I say don't over-complicate things. The mod already excels very well at its intended function and, in my opinion, it should stay there.

 

EDIT: I always go too fast and get ahead of myself. On the wood thing, I have code I wrote for Dead Nation last year that Haleks is welcome to have for chopping trees down. It would have to be modified to produce a Ravage-specific wood (magazine) class object but it oughta work just fine. Same for fishing, if that's something he's interested in. The wood chopping I did used the existing Hatchet I think it was in the mod and was a part of a Fired eventHandler that would trigger a wood hatcheting script. I even put in the old DayZ wood hitting sounds (which would need to be replaced) when thunking at the tree. The tree would produce random logs on the ground and then eventually keel over and die. Worked very well. The wood then, along with a tool of some kind (the axe itself perhaps), could be used to create the campfire objects that the matches light up. Whacking the tree can have negative effects on hydration and stamina per whack. That's my suggestion, at least.

 

B

  • Like 1

Share this post


Link to post
Share on other sites

 

One small thing before next update. I think loot refresh time is too small (I play modified version but I do not think it matters).
Now is a good strategy is to sit near a small military camp with barracks and search it again and again before thinking about food.

 

 

Personally, I think each building (or whatever other type of object is compelling loot to spawn) should only happen one time. It'll force the player to not camp a certain area unless they use it for a stash. Otherwise, like you've stated tum0, it encourages someone to farm the same spot over and over and over. It's unrealistic (given the idea of the mod to begin with) and too advantageous to a player. Same goes with zombie spawns; the buildings that generate their spawn ought to be flagged as having spawned once and then disregarded thereafter.

 

B

Share this post


Link to post
Share on other sites

Chemlights: Ability to drop on the ground (still functioning; basically detach from player and place in front) as well as pick back up to put back on the shoulder. I have this written in Resistance if you want to grab it. Would likely take you about 10 minutes to have it fully implemented. 
 
Fired EH for players (and perhaps raiders) when tossing grenades, shooting any rocketry (if that truly exists in Ravage), or throwing chemlights, and smoke, etc. that can be used as distractions for zombies. I wrote this in on a mod I was working on back in July for Epoch (I called them 'deranged') that I got working. Would add oft-needed tactical advantage to players when they need to enter a larger area, like a town, and need a way to draw and divert zombies off. I can email it to you Haleks if you'd like.

 

B

Share this post


Link to post
Share on other sites

Hi bdc! Thanks for the feedback & suggestions.

 

 

The mod doesn't modify much regarding that at the moment; gunshots are much more lethal since the Nexus update (combine that to the fact that not all supported addons have been updated yet by their authors).

Right now I'm not sure I want to change that : for once, encounters with the AI are actually brutal and one should fear a group of them rather than just thinking "Oh cool, more loot on foot!".

Ravage already keeps the game from forcing you to walk whenever you're hit in the legs, wich technically makes you a bit more resistant already (as damages are reducted in such cases).

 

-- Here's my rationale with it, Haleks: I spend more bullets shooting zombies than I do shooting raiders that can shoot back. Also, the raiders can be easy to stalk (when they've not seen/heard you) and one-shot in the back. I understand the idea of having a group of raiders is to deter a single player away, since only a bullet or two from one of them will kill you quickly, but the margin is too thin in my opinion: If you hit them just once or twice as well, they're dead. I've been able to engage a group of three bandits and win a gunfight fairly easily and then have access to all of their (very nice) gear. In fact, the last few times I played, I went looking for them. Therefore, in my opinion, even though they can kill you quickly, they're still too easy in my opinion. My suggestion would be to find a way to balance this out more against the player; perhaps lessen the damage they take, or extend the firefight out to require the player to have to use more precious ammo on them than he might have. That's where I'm going with this. 

 

The incoming update will fix the Gutting Animals feature; the loot system has been tweaked a bit and some balancing has been done on the loot tables.

Hopefully, you guys should have more options to avoid starvation.

 

That is an Arma3 difficulty setting mate. ;)

Have a look at your game options.

 

-- Yep, you're right. I found it yesterday. I'm used to playing on dedicated servers where the difficulty is set on the server-side and unadjustable. But, when it comes time to shift to MP, I would recommend you consider these things.

 

 

Good suggestion thanks, I'm working on it! ;)

 

Not sure what you mean, did you find an undamaged one?

 

-- Yes, at the international airport, on the barracks side near one of the green hangars. It was in 100% condition. By the way, I love the way you re-textured the vehicle models. 

 

As far as I can tell, a lot of vehicles in Arma have exagerated fuel capacities; I think Refined Vehicles deals with that.

I'll look into it eventually.

 

-- They do, especially the ground vehicles. The aircraft I think are nicely done but the ground vehicles have way too large a fuel capacity. The part I'm talking about however here is the fuelCargo capacity on the tempest fuel truck. I was able to fully re-fuel the Hellcat two times and I still didn't hit the truck's empty capacity. 

 

 

Honestly, I don't plan on touching the weapon lists right now : the configs are a tad messy and the whole system will be overhauled at some point.

Meanwhile, I really, really, recommend that you play with WarfareThai mod. It's the only one I use along with RHS.

 

-- Downloading it to check it out. Been looking for mods to use for a modified version of Resistance I want to run here at the house.

 

 

Nice! Feel free to link the source materials. ;)

 

-- Uhhhh, I think it was a sound off of soundcloud or one of those, one of those free type places. I've gone there often for sound effects I can use for various things.

 

 

As it happens I've been working on it this week-end! ^^

The Epi-pen idea is excellent though, it's going on my To Do list!

 

-- I think there's already an existing Arma object that looks like an epipen? Or am I wrong about that?

 

 

Thanks again for the help mate; since the mod will most likely undergo major changes in the next months, I'm waiting to have a clearer vision to start working on MP.

But I might add partial MP support for the zombies and a few other functions, probably after January - I'll get in touch!

...And here's the changelog so far by the way :

 

 

Coming soon!

 

This has to be the nastied quoted message on Bistudio. I'm a forum idiot, apparently.

 

B

Share this post


Link to post
Share on other sites

Personally, I think each building (or whatever other type of object is compelling loot to spawn) should only happen one time. It'll force the player to not camp a certain area unless they use it for a stash. Otherwise, like you've stated tum0, it encourages someone to farm the same spot over and over and over. It's unrealistic (given the idea of the mod to begin with) and too advantageous to a player. Same goes with zombie spawns; the buildings that generate their spawn ought to be flagged as having spawned once and then disregarded thereafter.

B

I love your ideas and I think I universally agree with all of them. But we have to be careful on this one.

It's not like we have the privilege here to move onto the next town or state when the pickings get slim. Implementing this in the way you described (if I'm understanding you correctly) would serve as the "end game;" one where we would all die hungry thirsty and alone.

At that point an actual mission objective or anything for that matter would be a preferable alternative to me. I'm not saying I'm even lobbying for a mission with a story structure (though I'm not against it) but pillaging the land straight clean doesn't really sound like a fun or realistic endeavor to me.

Am I making sense?

I'm not sure what a better alternative is though. Because I get that re-spawning loot isn't really realistic or fun either.

  • Like 1

Share this post


Link to post
Share on other sites

Personally, I like a lot of bdc's suggestions.

I especially like HeroesandvillainsOS's thoughts about fortifications. It makes a lot of sense. I know people always want base-building features (I have hundreds of emails from people asking for that in single player), but fortifying an existing building makes so much more sense and adds another problem for the players to deal with - which building and where?

I've found an easy and successful strategy for being able to get to grips with Ravage (I'm not going to use placenames so as not to spoil things too much):

1. Start. Get pistol and backpack. Start heading for the Tempest Fuel.
2. Loot any buildings along the way, but the prime targets are the AI units.
3. Continue until you have a toolbox and are sure you're going the right way.
4. Get to Tempest Fuel, repair enough to get it moving and drive off straight away without looting.
5. Head to airfield with blue and white Orca. Park Tempest Fuel next to it (and you'll never have to think about fuel again). The airfield is now your home.
6. Loot both barracks buildings and metal shed.
7. Go to small town in the south, loot everything. Repair best truck found. Refill bottles at well and water fountain (very close to each other).

8. If gutting working, go out and kill a bunch of rabbits.

9. Return to airfield. Loot both barracks (loot will have respawned).

And then just repeat 7, 8 and 9 until you have all the guns, ammo, food and water you could ever need. Once you've got the heli fixed, go out and collect road vehicles with the winch at night (every vehicle I find, I turn the lights on and mark their position on the map).

That leaves the only difficulty as being the AI units. Everything else is negated by the steps above. There's no radiation at either the airfield or the town next to it. I was doing a playthrough for a video (which I abandoned when gutting didn't work) and I ended up with a camp consisting of eight tents (for inventory sorting purposes: one for food, one for ammo, etc), a Tempest Fuel truck (of course), three helicopters, two technicals (for going shopping) and four cars (which I kept purely to illuminate the airfield at night). And that took one and a half in-game days.



Keeping the balance of difficulty is tricky. My strategy above hinged on the discovery that the Tempest Fuel existed and had an infinite amount of fuel in the back. If the Tempest was more difficult to obtain (drive fuel tank completely empty, or needing wheels to fix), that would change the risk enough to possibly alter the whole strategy. I hope vehicle wheels are really heavy and cumbersome. If I can carry a set of four on me, then I'm going right for that Tempest again, so I'd suggest making wheels a nuisance to carry.

From my most recent playthroughs I would say the biggest difficulties at the moment are food, radiation (to start with) and AI units. One of the best dangers for me is finding friendly units. If I see a lone AI unit, I have to work out if they're friendly or not. That can be quite a risk. I've actually managed to walk right up to a unit I was sure was friendly and it turned out they weren't (and the AI's a very good shot at point blank range). Most other problems just vanish if I follow my basic strategy. I'll get enough water (and purification tablets) just by killing AI units. Same for guns and ammo. And I'll pick up fuel cans, hoses, knives, maps, compasses, watches, tents and clothing at the same time. I also get between one and two thirds as much food as I need to stay alive. So I mostly loot buildings for food. Otherwise I'm out killing AI in the daylight and recovering vehicles (with the heli) at night.

It's good to see how people play the game in different ways though. If anyone here happens to record their gameplay, I hope I'm not too forward in saying please consider uploading it and posting a link on here.

  • Like 6

Share this post


Link to post
Share on other sites

I love your ideas and I think I universally agree with all of them. But we have to be careful on this one.

It's not like we have the privilege here to move onto the next town or state when the pickings get slim. Implementing this in the way you described (if I'm understanding you correctly) would serve as the "end game;" one where we would all die hungry thirsty and alone.

At that point an actual mission objective or anything for that matter would be a preferable alternative to me. I'm not saying I'm even lobbying for a mission with a story structure (though I'm not against it) but pillaging the land straight clean doesn't really sound like a fun or realistic endeavor to me.

Am I making sense?

I'm not sure what a better alternative is though. Because I get that re-spawning loot isn't really realistic or fun either.

 

Eh, yeah that's true. I didn't think about that. Well, it's also possible to put them on a timer for both loot pile and zed spawn. When I ran my DayZ server a couple of years ago, that was part of what I modified. IIRC, the respawn on it was fairly instantaneous -- you go into an area, grab spawn, kill zed, leave, then come back a couple minutes later and everything was re-populated. 

 

A timer of, say, 30 minutes? An hour? Something like that that would compel a player to relocate to a different area, to prevent milking the same loot spawn area, but would also satisfy your requirement of not having an actual end-game that always results in the player's death. 

 

EDIT: While I'm thinking about it. it would also reduce some of the client-side 'hitching' that occurs when the various createVehicle and createAgent routines are run to spawn in loot containers and zed, respectively, if it's of any significant importance. 

 

B

Share this post


Link to post
Share on other sites

+1 Kodabar, but the tempest fuel truck (the cargo portion in the back at least) doesn't have infinite fuel. It will eventually run out. There's a pair of variables attached to it: getFuelCargo and setFuelCargo. On any spawned in fuel service trucks like that, the value defaults to 1, but the actual amount varies from truck to truck. The smaller civilian fuel trucks will get most of a fuel tank in a chopper filled up (Kaj, Orca, etc, excluding the Huron and Mohawk) but will empty out most of the way in. The larger ones (Tempest and HEMTT for example) have tons and tons and tons of fuel in them when their setFuelCargo is at 1. I think in our Resistance game we can fill up three birds with it or something? It's pretty crazy. It's also the reason why I suggested to Haleks to force it to start at a considerably lower value given how it virtually eliminates the need for a fuel can/siphoning system as well as the fact that we're in a radioactive apocalypse that's been going on for how many years now?

 

It reminds me of our old DayZ box we ran -- when we finally found a Huey, we struggled like hell to keep that thing in service because fuel was so difficult to come by. We planted ourselves a camp at the NE Airfield (Chernarus map) at the far end of the runway and we would fill our four or five or so jerry cans up at the big, rusted fuel tank that was in-between the ATAC tower and the hangar. Each time was a challenge to do it because of zed spawn. Plus it was so tedious because each 20L jerry can barely put any gas into the Huey. So, after about 20 minutes and a 100 fillups of it, we'd have half a tank of fuel in the Huey we could use to do an air-based mission (fly to another town, check for crash sites at night, etc.).

 

And it was great.

 

Because we had to work at it and earn it the hard way.

 

And we bitched a lot about it.

 

But it was still great. It made possessing a chopper magnificent and luxurious.

 

B

  • Like 1

Share this post


Link to post
Share on other sites

While I'm thinking about it, here's something for you Haleks and for anyone else that scripts that would like an FPS booster. I call it the AIV_Manager (AI & Vehicle) and I use it in Resistance. I wrote it a couple months ago based on a hunch I had after reading something Zorrobyte put up on the forum I think a year or so ago. I'll paste in the code for you guys and you can modify it and use it at your leisure. It's not a giant help really on smaller maps like Stratis or Wake Island but it had a pretty profound impact for our gameplay on Altis. We run a ton of AI (upwards of over 200) and have gobs of vehicles and static weapons all over the map and it's my belief that there's something poorly written in the Arma engine that's forcing both clients and servers to have to deal with objects even when the object is many km away and not in play. I think it may also be increasing network traffic from server to player clients. When I implemented this, I noticed a drastic change in server and headless client FPS that went from the teens all the way back up into the 40's. This function is written for CO18 Resistance Plus so some of it will have to be gutted and modified but it will nonetheless work.

 

Fnc_AIVManager.SQF

/*
	Fnc_AIVManager.SQF
	
	Function written to handle the simulation and hiding of local-side vehicles and AI when no players are nearby
	Configuration located in Config_MiscGlobalVars
	
	Written by ^bdc for CO 18 Resistance Plus 	Oct 2015
*/

// This runs on server and HC's only
if (hasInterface) exitWith {};

if (!co18_BDC_AIVehManager_Enable) exitWith {};

// Wait until all vehicles, EOS Markers, etc are loaded in and at least one player is left
waitUntil { isServerReady };

// Wait 15 seconds before starting this to allow everything to flesh out on the map
sleep 15;

// Reset this global variable - This is the var we use to keep track of the objects our local machine here has sent to server to hide; it's needed for retrieval later on
co18_BDC_AIVManager_DisabledList = [];

diag_log format["Fnc_AIVManager.SQF: Function called. Starting infinite loop on frequency timer of %1 seconds.",co18_BDC_AIVehManager_CycleTimer];

private["_ObjListToDisable","_ObjListToEnable","_OwnerID","_Players"];

while {true} do {
		// Reset default counter vars
	_AICtr = 0;
	_VehCtr = 0;
	_ObjListToDisable = [];
		// Gather online players
	_Players = [];
	{
		_LoggedIn = false;
		_LoggedIn = _x getVariable ["LoggedIn",false]; // Init.SQF (prevents counting headless clients, etc)
		if (_LoggedIn) then {
			_Include = true;
			_Vehicle = vehicle _x;
			if (_Vehicle != _x) then {
				if (_Vehicle isKindOf "Air" && (speed _Vehicle > co18_BDC_AIVehManager_PlayerAirVehicleExcludeSpeed)) then {
					_Include = false;
				};
			};
			if (_Include) then {
				_Players = _Players + [_x];
			};
		};
	} forEach playableUnits;
	
		// If at least 1 player online, let's go
	if (count _Players > 0) then {
			// Check units
		{
				// Unit must be alive, not be a player, and be local 
			if (alive _x && !(_x in _Players) && !(isPlayer _x) && (local _x) && !(_x in co18_BDC_AIVManager_DisabledList)) then {
				_AIUnit = _x;
				_isCached = false; // EOS Pre-spawning units
				_isAIVCached = false;
				_isHQAI = false; // HQ AI units
				_isACAI = false; // Ambient Combat generated AI units
				_isEOSReinforcement = false;
				_isSquadReinforcement = false; // Paratrooper/squad reinforcement AI units
				_isGarrisonUnit = false; // Garrison supports AI units
				_isEOSAI = false; // EOS Marker routine generated AI units
				_isCached = _AIUnit getVariable ["isCached",false];
				_isAIVCached = _AIUnit getVariable ["isAIVCached",false];
				_isHQAI = _AIUnit getVariable ["HQAI",false];
				_isACAI = _AIUnit getVariable ["ACAI",false];
				_isQRF = _AIUnit getVariable ["isQRF",false];
				_isSquadReinforcement = _AIUnit getVariable ["isSquadReinforcement",false];
				_isEOSReinforcement = _AIUnit getVariable ["Reinforcement",false];
				_isGarrisonUnit = _AIUnit getVariable ["isGarrisonUnit",false];
				_isEOSAI = _AIUnit getVariable ["EOSAI",false];
				_isSupportsAI = false;
				_isSupportsAI = _AIUnit getVariable ["SupportsAI",false];
				_isFireMission = false;
				_isFireMission = _AIUnit getVariable ["FireMission",false];
				_isAIVExcluded = false;
				_isAIVExcluded = _AIUnit getVariable ["AIVExcluded",false]; // USe this flag for any reason to exclude a unit or vehicle from being cached
					// Determine which AI type qualifies for caching
					// This is a process of starting from nothing and including select types - we ignore EOS-generated/reinforcement AI, Ambient Combat AI, Squad Reinforcement AI, and other units already cached by EOS pre-spawner or by this routine - ^bdc
				if ((!_isCached || !_isAIVCached) && (_isHQAI || _isGarrisonUnit) && (!_isSquadReinforcement) && (!_isEOSAI || !_isEOSReinforcement) && (!_isFireMission) && (!_isSupportsAI) && (!_isQRF) && (!_isAIVExcluded)) then {
						// Qualifying AI unit candidate; let's grab player distances
					_InAir = false;
					_ClosestDist = 25000; // Set very high by default as we work our way down
					{
						_Vehicle = vehicle _x;
						if (_Vehicle != _x) then {
							if (_Vehicle isKindOf "Air") then {
								_InAir = true;
							};
						};
						_Dist2AIUnit = _AIUnit distance _x;
						if (_Dist2AIUnit < _ClosestDist) then {
							_ClosestDist = _Dist2AIUnit;
						};
					} forEach _Players;
						// Check if distance is further than configured distance - If so, let's grab unit's group and/or vehicle and hide everything
					if ((_InAir && (_ClosestDist > co18_BDC_AIVehManager_PlayerScanRangeAir)) || (!_InAir && (_ClosestDist > co18_BDC_AIVehManager_PlayerScanRangeGround))) then {
						_ObjListToDisable = _ObjListToDisable + [_AIUnit];
						_AIUnit setVariable ["isAIVCached",true,true];
						_AICtr = _AICtr + 1;
						if (_AICtr == 1) then {
							_OwnerID = owner _AIUnit;
						};
							// Grab group mates and add all to the list
						_Grp = group _AIUnit;
						{
							if (_x != _AIUnit) then {
								_ObjListToDisable = _ObjListToDisable + [_x];
								_x setVariable ["isAIVCached",true,true];
								_AICtr = _AICtr + 1;
							};
						} forEach units _Grp;
						_AIVeh = vehicle _AIUnit;
							// Check if unit is in a vehicle
						if (_AIVeh != _AIUnit) then {
							_ObjListToDisable = _ObjListToDisable + [_AIVeh];
							_AIVeh setVariable ["isAIVCached",true,true];
							_VehCtr = _VehCtr + 1;
						};
					};
				};
			};
		} forEach allUnits;
			// Check empty vehicles
			// We want to include HQ vehicles, all static weapons/launchers, random vehicle spawner vehicles, crates, ALL empty vehicles
		{
			_Veh = _x;
			if (local _Veh && !(_Veh in co18_BDC_AIVManager_DisabledList)) then {
				_isCrate = false;
				if (_Veh isKindOf "ReammoBox" || _Veh isKindOf "ReammoBox_F") then { _isCrate = true; };
				_isStaticWeapon = false;
				if (_Veh isKindOf "StaticWeapon") then { _isStaticWeapon = true; };
				_isActualVehicle = false;
				if (_Veh isKindOf "Land" || _Veh isKindOf "Air" || _Veh isKindOf "Ship") then {
					_isActualVehicle = true;
				};
				_isWeaponHolder = false;
				if (_Veh isKindOf "groundWeaponHolder" || _Veh isKindOf "weaponHolderSimulated") then {
					//_isWeaponHolder = true;
				};
				_isEOSReinforcement = false;
				_isEOSReinforcement = _Veh getVariable ["Reinforcement",false];
				_isEOSVeh = _Veh getVariable ["EOSVehicle",false];
				_isACAIVeh = _Veh getVariable ["ACAI",false];
				_isQRF = _Veh getVariable ["isQRF",false];
				_isAIVCached = false;
				_isAIVCached = _Veh getVariable ["isAIVCached",false];
				_isPermanent = _Veh getVariable ["permanent",false]; 
				_isEmptyVeh = true;
				if (count crew _Veh > 0) then { _isEmptyVeh = false; };
				_isCrashspawn = false;
				_isCrashspawn = _Veh getVariable ["Crashspawn",false];
				_isFireMission = false;
				_isFireMission = _Veh getVariable ["FireMission",false];
				_isSupportsAI = false;
				_isSupportsAI = _Veh getVariable ["SupportsAI",false];
				_isAIVExcluded = false;
				_isAIVExcluded = _Veh getVariable ["AIVExcluded",false]; // USe this flag for any reason to exclude a unit or vehicle from being cached
				if ((alive _x) && (_isCrate || _isStaticWeapon || (_isEmptyVeh && _isActualVehicle) || _isWeaponHolder) && !(_isEOSReinforcement || _isEOSVeh || _isCrashspawn || _isFireMission || _isSupportsAI || _isQRF) && !(_Veh in _ObjListToDisable) && (!_isAIVCached) && (!_isAIVExcluded) && !(_Veh in co18_BDC_AIVManager_DisabledList)) then {
					_ClosestDist = 25000; // Set very high by default as we work our way down
					_InAir = false;
					{
						_Vehicle = vehicle _Veh;
						if (_Vehicle != _Veh) then {
							if (_Vehicle isKindOf "Air") then {
								_InAir = true;
							};
						};
						_Dist2AIUnit = _Veh distance _x;
						if (_Dist2AIUnit < _ClosestDist) then {
							_ClosestDist = _Dist2AIUnit;
						};
					} forEach _Players;
					//if (_ClosestDist > co18_BDC_AIVehManager_PlayerScanRange) then {
					if ((_InAir && (_ClosestDist > co18_BDC_AIVehManager_PlayerScanRangeAir)) || (!_InAir && (_ClosestDist > co18_BDC_AIVehManager_PlayerScanRangeGround))) then {
						_VehCtr = _VehCtr + 1;
						_ObjListToDisable = _ObjListToDisable + [_Veh];
						_Veh setVariable ["isAIVCached",true,true];
						if (_VehCtr == 1) then {
							_OwnerID = owner _Veh;
						};
					};
				};
			};
		} forEach (vehicles - AllUnits);
			// Update global tracking var
		{
			if !(_x in co18_BDC_AIVManager_DisabledList) then {
				co18_BDC_AIVManager_DisabledList = co18_BDC_AIVManager_DisabledList + [_x];
			};
		} forEach _ObjListToDisable;
		//diag_log format["fnc_aivmanager.sqf: done making disabled list - objlisttodisable %1 and co18_BDC_AIVManager_DisabledList %2",(count _ObjListToDisable),co18_BDC_AIVManager_DisabledList];
		if (_AICtr > 0 || _VehCtr > 0) then {
			diag_log format["Fnc_AIVManager.SQF: Sending disablesimAIVAI EH. Disabling local AI units and vehicles/statics/crates: %1 AI Units | %2 Objects -- Total objects cached: %3",_AICtr,_VehCtr,(count co18_BDC_AIVManager_DisabledList)];
			Server_DisableSimAIVAI = [_OwnerID,_ObjListToDisable];
			publicVariableServer "Server_DisableSimAIVAI";
		};
			// Now let's see if any players are within scan range of vehicles
		private["_ClosestDist","_InAir"];
		_ObjListToEnable = [];
		{
				// If dead (for some mysterious reason) remove from array - ^bdc
			_CachedObj = _x;
			if (!alive _CachedObj) then {
				co18_BDC_AIVManager_DisabledList = co18_BDC_AIVManager_DisabledList - [_CachedObj];
			} else {
					// Scan for nearby players within distance configured
				_ClosestDist = 25000; // Set very high by default as we work our way down
				_InAir = false;
				{
					_Player = _x;
					_Vehicle = vehicle _Player;
					if (_Vehicle != _Player) then {
						if (_Vehicle isKindOf "Air") then {
							_InAir = true;
						};
					};
					_Dist2Obj = _CachedObj distance _Player;
					if (_Dist2Obj < _ClosestDist) then {
						_ClosestDist = _Dist2Obj;
					};
				} forEach _Players;
			};
			//if (_ClosestDist <= co18_BDC_AIVehManager_PlayerScanRange) then {
			if ((_InAir && (_ClosestDist <= co18_BDC_AIVehManager_PlayerScanRangeAir)) || (!_InAir && (_ClosestDist <= co18_BDC_AIVehManager_PlayerScanRangeGround))) then {
				//diag_log format["fnc_aivmanager.sqf: re-enable from co18_bdc_aivmanager_disabledlist - cachedobj %1 %2 pos %3 closestdist %4 scanrange %5",_CachedObj,(typeOf _CachedObj),(getPos _CachedObj),_ClosestDist,co18_BDC_AIVehManager_PlayerScanRange];
				_ObjListToEnable = _ObjListToEnable + [_CachedObj];
				co18_BDC_AIVManager_DisabledList = co18_BDC_AIVManager_DisabledList - [_CachedObj];
			};
		} forEach co18_BDC_AIVManager_DisabledList;
		//diag_log format["fnc_aivmanager.sqf: after re-enabling, co18_bdc_aivmanager_disabledlist %1",(count co18_BDC_AIVManager_DisabledList)];
		sleep 0.10; // A bit of time in between both of these in case we are sending two chunks to server via publicVariableserver
		if (count _ObjListToEnable > 0 && (count _Players > 0)) then {
			_OwnerID = owner (_ObjListToEnable select 0);
			diag_log format["Fnc_AIVManager.SQF: Sending Server_EnableSimAIVAI EH. Re-enabling %1 cached objects.",(count _ObjListToEnable)];
			Server_EnableSimAIVAI = [_OwnerID,_ObjListToEnable];
			publicVariableServer "Server_EnableSimAIVAI";
		};
	};
	
		// Sleep timer until we rescan again
	sleep co18_BDC_AIVehManager_CycleTimer;
};

And here's the two EH (eventhandlers) and the function initiation:

// Server-side EH to cache AI units/vehicle objects when players not nearby (Fnc_AIVManager) (removes/re-animates simulation)
if (isServer) then {
	"Server_DisableSimAIVAI" addPublicVariableEventHandler {
		private["_OwnerName"];
		_Array = _this select 1;
		_OwnerID = _Array select 0;
		_CacheList = _Array select 1;
		{
			if (alive _x) then {
				_x enableSimulationGlobal false;
				_x hideObjectGlobal true;
				_x setVariable ["isAIVCached",true,true];
			};
		} forEach _CacheList;
		switch (_OwnerID) do {
			case 0: { _OwnerName = "Server"; };
			case 1: { _OwnerName = "Headless Client #1"; };
			case 2: { _OwnerName = "Headless Client #2"; };
			case 3: { _OwnerName = "Headless Client #3"; };
			case 4: { _OwnerName = "Headless Client #4"; };
		};
		diag_log format["Init_BDC.SQF: Server_DisableSimAIVAI EH called from %1. Object Cache list count: %2 objects",_OwnerID,(count _CacheList)];
	};
	"Server_EnableSimAIVAI" addPublicVariableEventHandler {
		private["_OwnerName"];
		_Array = _this select 1;
		_OwnerID = _Array select 0;
		_ObjList = _Array select 1;
		{
			if (alive _x) then {
				_x enableSimulationGlobal true;
				_x hideObjectGlobal false;
				_x setVariable ["isAIVCached",false,true];
			};
		} forEach _ObjList;
		switch (_OwnerID) do {
			case 0: { _OwnerName = "Server"; };
			case 1: { _OwnerName = "Headless Client #1"; };
			case 2: { _OwnerName = "Headless Client #2"; };
			case 3: { _OwnerName = "Headless Client #3"; };
			case 4: { _OwnerName = "Headless Client #4"; };
		};
		diag_log format["Init_BDC.SQF: Server_EnableSimAIVAI EH called from %1. Cached objects re-enabled: %2 objects",_OwnerID,(count _ObjList)];
	};
};

if (!hasInterface) then {
	Fnc_AIVManager = compile preprocessFileLineNumbers "BDC\Fnc_AIVManager.SQF";
	[] spawn Fnc_AIVManager;
};

And lastly the global variable configuration options used to configure it:

 

// AI & Vehicle Manager (Simulation/Hiding) (Fnc_AIVManager/Init_BDC)
co18_BDC_AIVehManager_Enable = true; // Enable/disable this function (runs on server & HC's) (Recommend for larger maps with a lot of objects as a way of combating lower FPS)
co18_BDC_AIVehManager_CycleTimer = 5; // Frequency, in seconds, that this function runs
co18_BDC_AIVehManager_PlayerScanRangeAir = 2500; // Range, in meters, a player must be for a vehicle/object to be re-activated or to have simulation removed when in an aircraft (default: 2500)
co18_BDC_AIVehManager_PlayerScanRangeGround = 1500; // Range, in meters, a player must be for an object to be re-activated with simulation re-enabled when on the ground (or in a ground vehicle) (default: 1500)
co18_BDC_AIVehManager_PlayerAirVehicleExcludeSpeed = 315; // If a player is in an air vehicle (chopper or plane) and configured speed (in kph) is exceeded, then scan does not include them (default: 315)

  • Like 1

Share this post


Link to post
Share on other sites

I think we're spoiler tagging scripts now. If you don't know how to do this...

Your text [/spoiler

Of course you need to close that last bracket up.

  • Like 2

Share this post


Link to post
Share on other sites

I think we're spoiler tagging scripts now. If you don't know how to do this...

Your text [/spoiler

Of course you need to close that last bracket up.

 

Gotcha! Yeah I thought about that after posting. Wonder if I can edit the post and fix it up.

  • Like 1

Share this post


Link to post
Share on other sites

Here's my spoiler test. This is for you, Haleks, if in the event you wind up using suppressors in Ravage and want to modify the audial distance that zed can hear the shot when the player is using a suppressed weapon (if it's not already coded in)...

 

Fnc_FiringSuppressed.SQF

 

/*
    Fnc_FiringSuppressed.SQF
    
    Written for Arma 3 by ^bdc - Feb 24, 2015
    
    Function determines if passed unit is firing a supressed weapon
    
    Returns true/false
*/

private["_isSuppressed","_unit","_weapon","_SuppressorArray","_items"];

// Passed Arg
_unit = _this select 0;
_weapon = currentWeapon _unit;

// Suppressors array
_SuppressorArray = ["muzzle_snds_H","muzzle_snds_L","muzzle_snds_M","muzzle_snds_B","muzzle_snds_acp","muzzle_snds_H_MG"];

// Reset defaults
_isSuppressed = false;
_PrimaryWeapon = primaryWeapon _unit;
_SecondaryWeapon = secondaryWeapon _unit;
_HandgunWeapon = handgunWeapon _unit;

// Grabs items attached to particular weapon we're using
    // Rifle
if (_weapon == _PrimaryWeapon) then {
    _items = primaryWeaponItems _unit;
};
    // Rocketry
if (_weapon == _SecondaryWeapon) then {
    _items = secondaryWeaponItems _unit;
};
    // Sidearm pistol
if (_weapon == _HandgunWeapon) then {
    _items = handgunItems _unit;
};

// Suppressor check
{
    if (_x in _SuppressorArray) then
    {
        _isSuppressed = true;
    };
} forEach _items;

_isSuppressed

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×