Jump to content
Sign in to follow this  
Dwarden

ARMA 2: OA beta build 93296 (1.60 MP compatible build, post 1.60 release)

Recommended Posts

http://www.arma2.com/beta-patch.php

[93294] Fixed: Multiple Object not found problems such as Server: Object 6:4 not found (message 124)

[93276] New: terrainIntersect command

[93273] New: lineIntersects, lineIntersectsWith commands

and some crash fixes

be aware that these commands below for LOS checking are computing extensive so use it with extreme caution and only when needed

terrainIntersect [ pos1, pos2 ]

Operand types:

pos1:

Array

pos2: Array

Type of returned value:

bool

Description:

Checks for intersection of terrain

between two positions. Returns true if intersects with terrain

Example:

_doesIntersect = terrainIntersect [ position player, position enemy1 ];

even sparse documentation for these two

"lineIntersects", LineIntersects, GameArray, "array", "Returns true, if line intersect with any object."

lineIntersects > [begPos, endPos, withObj, ignoreObj]

"lineIntersectsWith", LineIntersectsWith, GameArray, "array", "Returns list of objects intersected by given line."

 lineIntersectsWith [begPos, endPos, withObj, ignoreObj, sortByDist] 

both also available in TOH since build 81021

too fresh to even find documentation :cool:

Edited by Dwarden

Share this post


Link to post
Share on other sites

Dwarden, can you give us some more info on the intersect commands ?

Xeno

Share this post


Link to post
Share on other sites

Are those line of sight commands? :D I have been waiting for those so long. Thanks if true.

Share this post


Link to post
Share on other sites
Dwarden, can you give us some more info on the intersect commands ?

Xeno

updated first post, was quite hard to find the documentation

be aware that this LOS checking is computing extensive so use it with extreme caution and only when needed

Share this post


Link to post
Share on other sites
updated first post, was quite hard to find the documentation

Thanks!

Xeno

Share this post


Link to post
Share on other sites

A friend and myself are getting "You were kicked off the game. (BattleEye: Unknown Game Version)" or something when we try to join servers now with the latest ArmA 2 Beta patch. How do we fix this?!

Share this post


Link to post
Share on other sites
is that version not suported by battleye ?

As of right now, no.

A friend and myself are getting "You were kicked off the game. (BattleEye: Unknown Game Version)" or something when we try to join servers now with the latest ArmA 2 Beta patch. How do we fix this?!

It's not supported by Battleye yet :j:

Edit.

It's being added right now.

Edited by [KH]Jman

Share this post


Link to post
Share on other sites
Jman;2159785']As of right now' date=' no.

It's not supported by Battleye yet :j:[/quote']

Alright thanks, no need to have an aneurysm.

Share this post


Link to post
Share on other sites

Very nice addition! Thanks BIS :) I made a sample vid where the checking was made for toes (height ~0). Even the car tires block the view. :)

I used these commands in trigger with repeatetly mode:

Condition:!(lineIntersects [getposASL a,getposASL b,nearestObjects [player, ["all"], 200],[]])
On Act: hint "In sight";

Condition:(lineIntersects [getposASL a,getposASL b,nearestObjects [player, ["all"], 200],[]])
On Act: hint "Not In sight";

Share this post


Link to post
Share on other sites

Great!, new script commands are always welcome :D. Testing them right now :)

Share this post


Link to post
Share on other sites

Great. Just, when I created my own amateurish sqf scanner, that doing something very similar. :) Of course is very crude and heavy. Curious, how it calculate, if/when given object is a view blocker or not?

Share this post


Link to post
Share on other sites

Great stuff, new possibilities arrise!

/KC

Share this post


Link to post
Share on other sites

It's taken almost 2 hours to install this patch,is this normal??

Share this post


Link to post
Share on other sites

New scripting functions are rather useless sadly... :(

They require a list of objects to test the intersect with, when really this should be done with some sort of ray cast where it detects intercept with the cast ray, not sure why thats not done here, or if it is, its done in a really confusing manner. There should be no reason we have to supply a list of objects for the function to test against. This makes it extremely expensive if you want to say test for LOS in a forest or across a very large distance.

Nice try guys, but this shot landed a bit aft. :(

Prefer we see functions that act more like these from VBS2:

http://resources.bisimulations.com/wiki/cylinderCollision

http://resources.bisimulations.com/wiki/CollisionDetection

Share this post


Link to post
Share on other sites
New scripting functions ... require a list of objects to test the intersect with,

Note that SaOk's script can be optimized. If we move the position passed to nearestObjects so that it is equidistant between spotter and target and pass 1/2 distance between spotter and target as the radius, then our search area is reduced exponentially.

Also, there are numerous possible culls we could implement. For instance, I imagine the test for intersection with terrain is much cheaper, so we should probably start there. If it returns true, then we test for intersection with objects. Another possibility is if we are testing whether soldier A can spot soldier B. In such case we can scale the frequency of our intersection tests in relation to the distance between the two. The greater the separation, the less frequent the checks.

... when really this should be done with some sort of ray cast where it detects intercept with the cast ray,

Regardless of the above suggestions, I agree that a simple ray cast would be much easier. Perhaps a little known fact, but this is possible to script in ARMA 2. Seeing as there is some interest, I'll post my solution within the next couple of days. I wrote the script quite some time ago, but if memory serves it is based off something the ACE boys did. They were very close to a reliable, working solution, but they made a key error or two within their code. After a few changes it worked beautifully.

Share this post


Link to post
Share on other sites

There is a very nice addition of those useless functions but after several new beta patches the issue reported here is still present.

That flickering is more visible when you play with high textures and settings and low object details. Its one of the main reason the game still doesnt look like running smooth for me. Every time you look around or zoom there is this barely perceptible flickering making the game looking unfinished.

http://www.youtube.com/watch_popup?v=YuBtYM35e2w&vq=hd720

Edited by afp

Share this post


Link to post
Share on other sites
Note that SaOk's script can be optimized. If we move the position passed to nearestObjects so that it is equidistant between spotter and target and pass 1/2 distance between spotter and target as the radius, then our search area is reduced exponentially.

Also, there are numerous possible culls we could implement. For instance, I imagine the test for intersection with terrain is much cheaper, so we should probably start there. If it returns true, then we test for intersection with objects. Another possibility is if we are testing whether soldier A can spot soldier B. In such case we can scale the frequency of our intersection tests in relation to the distance between the two. The greater the separation, the less frequent the checks.

Regardless of the above suggestions, I agree that a simple ray cast would be much easier. Perhaps a little known fact, but this is possible to script in ARMA 2. Seeing as there is some interest, I'll post my solution within the next couple of days. I wrote the script quite some time ago, but if memory serves it is based off something the ACE boys did. They were very close to a reliable, working solution, but they made a key error or two within their code. After a few changes it worked beautifully.

We actually do that in ACE for our missile guidance and laser spot LOS checks. We use terrain profiling then we "ray cast" a bullet that does no damage to do object checking. It works rather well, but it just feels hacky.

Share this post


Link to post
Share on other sites
We actually do that in ACE for our missile guidance and laser spot LOS checks. We use terrain profiling then we "ray cast" a bullet that does no damage to do object checking. It works rather well, but it just feels hacky.

Yup, that's the technique I was thinking of. It was quite some time ago, but I recall the original ACE script could be unreliable in certain conditions? Issues with nearby targets perhaps? Anyway, I recall that after making some changes I had a very robust and very accurate LOS checker. And, yes, it most definitely feels hacky, but, honestly, most times I play around with sqf scripting things feel super-hacky. ;) In any case, it most certainly would be nice to have an official ray-caster.

Share this post


Link to post
Share on other sites

It could be quite unreliable in low script performance situations, but once it was moved to the per-frame handler that guarantees execution every frame it became much more reliable. Still it takes multiple frames (at least two) to get a result.

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
Sign in to follow this  

×