Jump to content
cyrokrypto

CSSA3 - A Spectator Script for Arma 3

Recommended Posts

We did a small test with 12 of us using your spectator script and the additional script you provided about having us die twice before switching to spectator. It worked flawlessly and we're all really happy with how customizable the options are on it.

We ran into two issues, one that you might be able to help with and the other is probably limited by TFAR.

The first was that when people died running agm_nightvision, AGM makes nightvision googles appear grainy as they would in real life to an extent. However anyone dying wearing the goggles would have the grainy filter applied to the spectator client also, making everything look as though they were wearing them while dead without the actual nightvision part of them on. Pretty annoying but maybe a line of some kind added to remove NVG on death would work?

The other issue was more of a personal preference thing. With TFAR, using the hardcore mode for it enables living to communicate only with living, and dead only to communicate with dead. Which is great for large-scale missions and using your spectator script. However we were hoping we would be able to also hear living people while dead. If we use TFAR hardcore mode dead people only hear dead people. When not running TFAR hardcore, dead people in the spectator mode are heard by living people and vice versa. It pretty much means we have to run TFAR in hardcore as any mission above 30 people will end up having tons of people trying to talk over each other when dead because they can't keep their mouths shut about how they died, etc.

Also as a feature request, make people who are kicked to the spectator script grouped so they can talk in group chat without all the living people alive. As it is dead people typing in side chat are seen by all on the server. And upon death they remain in their respective groups so they can type messages to them. Something to work around that would be ideal but I don't really know how to go about it or if it is even possible.

At any rate, we will most likely end up using your spectator script at some point for our large scale missions, at least once. I'll leave some feedback here when we do tests with more players.

Share this post


Link to post
Share on other sites

@PerezMH: I'm pretty sure if you push N to flick through the view modes while in spectator it'll get rid of that grainy effect.

We had the same problem with TFAR.. unfortunately I think it's a TFAR issue that you can't really do anything about without a TFAR fix (CSSA3 is simply making it so you're effectively dead according to TFAR). Imo what would be really cool is if you could hear alive people talking near the spectator camera.. but I don't think it's feasible with TFAR.

@Cyrokrypto: Interesting.. I didn't realize count was faster than forEach. A quick test using the new button in the debug console showed foreach was actually slightly faster with a large array of strings. It could be different with different numbers/types of values though.

{ false } count allVariables missionNamespace; //3.34ms

vs

{ } foreach allVariables missionNamespace; //2.97ms

Share this post


Link to post
Share on other sites
@PerezMH: I'm pretty sure if you push N to flick through the view modes while in spectator it'll get rid of that grainy effect.

Unfortunately we tried that for those who were wearing NVGs (I personally was in Zeus running the mission) but it didn't remove the grainy effect of wearing the NVGs already while dead.

Share this post


Link to post
Share on other sites

The first was that when people died running agm_nightvision, AGM makes nightvision googles appear grainy as they would in real life to an extent. However anyone dying wearing the goggles would have the grainy filter applied to the spectator client also, making everything look as though they were wearing them while dead without the actual nightvision part of them on. Pretty annoying but maybe a line of some kind added to remove NVG on death would work?

I have fixed this in the next version, if you would like to fix it yourself until the next version is released, you can do the following:

1.) Open CSSA3\functions\fn_CSSA3_MainFunctions.sqf

2.) Go to line 130, where you will find this:

[
"CfgPatches",
"AGM_Core",
...
] call CSSA3_fnc_classExists;

3.) Replace everything from line 130 to 139 with the following:

[
"CfgPatches",
"AGM_Core",
"player setVariable ['AGM_Bleeding', false];
player setVariable ['AGM_isUnconscious', False, True];
player setVariable ['AGM_Unconscious', false];
player setVariable ['AGM_InPain', false];
'chromAberration' ppEffectEnable false;
[false] call AGM_Core_fnc_disableUserInput;
AGM_NightVision_ppEffect ppEffectEnable false;
AGM_NightVision_ppEffectBlur ppEffectEnable false;
AGM_NightVision_ppEffectRadialBlur ppEffectEnable false;
AGM_NightVision_ppEffectNVGBrightness ppEffectEnable false;"
] call CSSA3_fnc_classExists;

The other issue was more of a personal preference thing. With TFAR, using the hardcore mode for it enables living to communicate only with living, and dead only to communicate with dead. Which is great for large-scale missions and using your spectator script. However we were hoping we would be able to also hear living people while dead. If we use TFAR hardcore mode dead people only hear dead people. When not running TFAR hardcore, dead people in the spectator mode are heard by living people and vice versa. It pretty much means we have to run TFAR in hardcore as any mission above 30 people will end up having tons of people trying to talk over each other when dead because they can't keep their mouths shut about how they died, etc.

Unfortunately, I can't do this. It's up to the TFAR devs whether or not such a feature is added. It was mentioned by the lead developer, here. There is a variable in the next version that allows you do deactivate the TFAR/ACRE2 spectator modes, though.

Also as a feature request, make people who are kicked to the spectator script grouped so they can talk in group chat without all the living people alive. As it is dead people typing in side chat are seen by all on the server. And upon death they remain in their respective groups so they can type messages to them. Something to work around that would be ideal but I don't really know how to go about it or if it is even possible.

I'll definitely look into this. I'm not sure if I can do anything about side chat, though. You might want to disable it server side. But i'll take a look.

At any rate, we will most likely end up using your spectator script at some point for our large scale missions, at least once. I'll leave some feedback here when we do tests with more players.

Thanks, I would appreciate it. And thanks for the great feedback. :)

---------- Post added at 12:39 ---------- Previous post was at 12:09 ----------

@Cyrokrypto: Interesting.. I didn't realize count was faster than forEach. A quick test using the new button in the debug console showed foreach was actually slightly faster with a large array of strings. It could be different with different numbers/types of values though.

{ false } count allVariables missionNamespace; //3.34ms

vs

{ } foreach allVariables missionNamespace; //2.97ms

Interestingly, I've been testing forEach and count now, and forEach is getting slightly better results, which it never did before. Count was always considered to be faster, see the wiki Code Optimisation page.

I'll have to test a bit more, though.

Edit:

Nevermind, count is usually faster. :P

Edited by Cyrokrypto

Share this post


Link to post
Share on other sites

basic_defines.hpp:

ST_GROUP_BOX and ST_GROUP_BOX2 are defined twice.

CSSA3_defines.hpp:

CSSA3RscMapControl access = ReadAndWrite, but ReadAndWrite is not defined.

Share this post


Link to post
Share on other sites
basic_defines.hpp:

ST_GROUP_BOX and ST_GROUP_BOX2 are defined twice.

CSSA3_defines.hpp:

CSSA3RscMapControl access = ReadAndWrite, but ReadAndWrite is not defined.

Thanks. This will be fixed in the next version. :)

Share this post


Link to post
Share on other sites

We tested this with 40 people the other day. Unfortunately people did too well a job of not-dying so only two people actually died twice to reach the spectator client.

The NVG removal code you gave me worked wonders. We will probably end up using it more in the future but until then, great work and thanks for the effort!

Share this post


Link to post
Share on other sites
We tested this with 40 people the other day. Unfortunately people did too well a job of not-dying so only two people actually died twice to reach the spectator client.

The NVG removal code you gave me worked wonders. We will probably end up using it more in the future but until then, great work and thanks for the effort!

Great, thanks! The next version of CSSA3 should release within the next week. Thanks a lot for the feedback.

Share this post


Link to post
Share on other sites

Hey man, just wanted to check in and see if you were still around working on the update. Cheers.

Share this post


Link to post
Share on other sites
Hey man, just wanted to check in and see if you were still around working on the update. Cheers.

Hey, the update is still in the works. But I recently relocated and don't have internet just yet. I will release it as soon as possible.

Share this post


Link to post
Share on other sites

I have been using this great script in all my latest missions, they are regularly played by 20-30 players.

Looking forward to new updates and features!

Thank you!

Share this post


Link to post
Share on other sites

Just wanted to say thanks for sharing this script- it's great :)

Share this post


Link to post
Share on other sites

Some help if possible please.

Not sure if this has anything to do with this script, but I think it could be.

I want a mission end or mission failure specifically, if all units are dead...I've tried writing a little script using a variable AGM_isUnconscious, but can't get it to work properly and I will take another look at it. But just using the more standard !alive p1 && !alive p2, etc. doesn't work? This is usually pretty consistent.

Is the issue connected with this script? Any ideas?

Thanks.

Share this post


Link to post
Share on other sites
Some help if possible please.

Not sure if this has anything to do with this script, but I think it could be.

I want a mission end or mission failure specifically, if all units are dead...I've tried writing a little script using a variable AGM_isUnconscious, but can't get it to work properly and I will take another look at it. But just using the more standard !alive p1 && !alive p2, etc. doesn't work? This is usually pretty consistent.

Is the issue connected with this script? Any ideas?

Thanks.

CSSA3 changes "AGM_isUnconscious" to false when it initializes (since it applies a post process effect when set to true which makes the screen blurry). I never actually though about the potential problem that you are having. I'll see if I can do something about it for the next version. (Which is still being developed :P)

Share this post


Link to post
Share on other sites
CSSA3 changes "AGM_isUnconscious" to false when it initializes (since it applies a post process effect when set to true which makes the screen blurry). I never actually though about the potential problem that you are having. I'll see if I can do something about it for the next version. (Which is still being developed :P)

OK thanks, that's appreciated. I appreciate that "all players dead" may not be considered for a spec script, but on the other hand, why not?

I look forward to any progress you make -I really like your script- good job. :bounce3:

Share this post


Link to post
Share on other sites

Wanted to share that our community usses this script with TFAR and CSE without problems. Great job!!

About TFAR, I haven't had the chance to test it as much as I wanted. How this script behaves with TFAR¿ Who can each each other and who not?

I would like it so spectators could talk with each other without issues, but couldn't hear alives, and alives couldn't hear spectators. Does this script already achieve that?

Share this post


Link to post
Share on other sites
Wanted to share that our community usses this script with TFAR and CSE without problems. Great job!!

About TFAR, I haven't had the chance to test it as much as I wanted. How this script behaves with TFAR¿ Who can each each other and who not?

I would like it so spectators could talk with each other without issues, but couldn't hear alives, and alives couldn't hear spectators. Does this script already achieve that?

CSSA3 does this by default, since it is also a limitation of TFAR. All spectators can hear one another, but not the living. The living can hear one another, but not the spectators.

Share this post


Link to post
Share on other sites
CSSA3 does this by default, since it is also a limitation of TFAR. All spectators can hear one another, but not the living. The living can hear one another, but not the spectators.

Nice!

Share this post


Link to post
Share on other sites
CSSA3 does this by default, since it is also a limitation of TFAR. All spectators can hear one another, but not the living. The living can hear one another, but not the spectators.

Im using your script, and it works nicely - getting accustomed to the assorted customizations such as only being able to follow players, and only in 3rd person and such.

When testing the mission im creating with a friend however, when i died and was in spectator mode - its like TFAR was cancelled out or something, as then we could hear each other, alive and dead, just as if it was directly from the TS client (no TFAR sound effects).

I checked your readme file, and it only has customisation for the camera itself, not the sounds. Have you heard of this issue before? Know any tricks or some option to tweak to make it so that dead people can speak without hearing alive ones, and vice versa for alive ones?

Any help will be much appreciated, sort of the only thing left to tweak before the mission is complete.

// Ulfgaar

Edit:

I think i found out, its a TFAR setting thing - we need to create an additional channel with a certain password to use TFAR in "Serious Mode".

For anyone else wondering about how to do this, this is the website i found it on:

https://github.com/michail-nikolaev/task-force-arma-3-radio/blob/master/README_EN.md

Check under the subtitle "Operation Modes".

// Ulfgaar

Edited by Ulfgaar
Found the answer myself, sharing it.

Share this post


Link to post
Share on other sites
Im using your script, and it works nicely - getting accustomed to the assorted customizations such as only being able to follow players, and only in 3rd person and such.

When testing the mission im creating with a friend however, when i died and was in spectator mode - its like TFAR was cancelled out or something, as then we could hear each other, alive and dead, just as if it was directly from the TS client (no TFAR sound effects).

I checked your readme file, and it only has customisation for the camera itself, not the sounds. Have you heard of this issue before? Know any tricks or some option to tweak to make it so that dead people can speak without hearing alive ones, and vice versa for alive ones?

Any help will be much appreciated, sort of the only thing left to tweak before the mission is complete.

// Ulfgaar

Edit:

I think i found out, its a TFAR setting thing - we need to create an additional channel with a certain password to use TFAR in "Serious Mode".

For anyone else wondering about how to do this, this is the website i found it on:

https://github.com/michail-nikolaev/task-force-arma-3-radio/blob/master/README_EN.md

Check under the subtitle "Operation Modes".

// Ulfgaar

Glad you got it sorted. :) I'll add that bit of information to the original post, as well.

Share this post


Link to post
Share on other sites

Is it possible to make an addon for this and configure settings via module, placed in mission?

Share this post


Link to post
Share on other sites
Is it possible to make an addon for this and configure settings via module, placed in mission?

This is something I still want to do. I haven't had time to work on CSSA3 for a while though, unfortunately.

Share this post


Link to post
Share on other sites

Can you lower the camera movement speed or make it a setting?

Share this post


Link to post
Share on other sites

I will definitely look at adding a setting that acts as a movement speed modifier. It should be quite easy to do. You could try do this yourself by lowering the value of the '_coef' variable in 'fn_CSSA3_mainFunctions.sqf'.

Edited by Cyrokrypto

Share this post


Link to post
Share on other sites

Thanks for this spectator script!

It appears to be working well with ACE3 also.

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

×