VictorFarbau
-
Content Count
557 -
Joined
-
Last visited
-
Medals
Posts posted by VictorFarbau
-
-
Updated to CAWS build 016 (Dec 22nd)
Hello folks,
my recent objective was to improve the jet engine sound of the stock SU25 jet. And while I was at it, I also added a CAWS (aural warning system) as it can be admired on some Youtube videos. Which is where I found the used sounds btw.
As ARMA II provides some nice sound possibilities why not use them. The battlefield atmosphere benefits from scratchy and distinguishable jet sounds in my mind. Have a look at the videos and if you like it go ahead and use it.
Here's the beef:
New engine sounds video:
CAWS video:
Addon download:
http://www.mediafire.com/?u8hwf7q7bqlin8o
The CAWS is the very same system I added to the Mig15BIS addon that just got an update.
Cheers,
VictorFarbau
-
New engine sounds are nice but a voice warning system in a Mig-15?Yeah yeah, anyways :) CAWS was a side-product of my rework on the SU25 stock addon. So why not use it with another greate plane? And to add some basic sensor system wouldn't even be a big problem in reality I suppose.
VictorFarbau
-
Whoops, with patch 76815 apparently the zombie voices are back :don 11: Played some MP yesterday and my mates could hear them as well.
VictorFarbau
-
Fantastic, I can't wait to try this with some massive MP mission I host now and then. How will the saving be triggered? Will the server save all data for each MP mission upon departure of the last player? Or do missions need to trigger something by a module, variable or similar?
Cheers,
VictorFarbau
-
Spawn the Functions Module [...]@Sickboy - now I am angry that I didn't think of this myself so I won't thank you :D I do hold scripts until <bis_fnc_init> already; I just noticed recently that they sometimes never started due to the missing functions module. I'll go for that approach, thanks!
@Myke - I see where you're coming from. But I have learned to let go and use existing pieces of code :) Who knows, maybe stuff gets updated or extended in the future. I am fine with just referencing it.
Cheers guys,
VictorFarbau
-
I am struggling a bit with that BIS_fnc concept. Until some patch level there was a core set of BIS_fnc tagged functions that worked just fine.
Now the user has to place a "Functions" module onto the map - otherwise functions won't work.
I find this extension of functionality ambiguous - now we have regular scripting commands but also another set of commands through functions dependant on a module. Not sure what the purpose of this split is.
Nonetheless some of these functions are incredibly useful. But does it make sense to use them in any addon? In terms of concept - aren't they bound to fail unless used on user maps that happen use the functions module?
Cheers,
VictorFarbau
-
For me this Beta looks A LOT BETTER. Running all options on "Very High" with a i7-860 CPU and an ATI 5850 OC. I now get 35-40 fps but a much nicer picture, I guess that's how it should be. Didn't notice any heavy issues yet, no crashes, no texture blinking. I am a happy camper now.
VictorFarbau
-
anyway putting a man facing trees on Chernarus is not exactly an interesting "repro step".If you are referring to my video - purpose was just to illustrate the behaviour on my machine in detail, no more no less.
Purpose of this dynamic LOD switching seems clear - increase performance. This has been introduced in Arma 1 already. It's only now that apparently something was changed in the code which causes this violent switching no matter whether the game observes FPS degradation or not.
And my humble request would be to offer the user an option to determine the amount of LOD switching activity himself.
Or embed it into the Texture Quality control (Highest - minimum LOD switching activity, Lowest - switch as of 1/10 distance in FOV) or whatever.
I just don't like this crappy picture being rendered all around me @55fps; this doesn't make sense to me.
Cheers,
VictorFarbau
-
I have observed heavy LOD switching all along the recent beta patches (at least two betas) and now in patch 1.55 as well. I just put myself next to a forest on Chernarus, set the game speed to 0.1 and zoomed in.
To be admired here (Youtube), please make sure to view in full HD. At the end of the video I am showing my video settings. I usually get about 55fps, the low FPS are due to Fraps. So there's no performance issue that would cause this I'd say. It seems more inherent to the rendering techniques used to squeeze out more FPS. Works counterproductive on my system.
Cheers,
VictorFarbau
-
@=SilveR=, indeed it was BattlEye causing the kick. Disabling it in the server config file resolved this. Thanks.
VictorFarbau
-
@mrcash2009 - I did and still see this tree behaviour since some recent patches already. It seems that with each patch the LOD switching gets more intense. And I am wondering why I would need that while my config can easily handle high details in FullHD. Would be nice to have a switch or slider to allow/deny dynamic LOD switching in a given vicinity from the player. A 360 degree spin accounts for a near-LSD experience at present.
VictorFarbau
-
LOD - is there a way to influence the amount of dynamic switching? I have sufficient FPS (~50-60) to spare to allow higher quality if only that constant flickering and object transformation would stop.
"Good" to see that I am not the only one being kicked from our server all the time as I can read in post #23.
VictorFarbau
PS: and to contribute to the P1 question for BIS: haven't observed CTD since a long time now, neither server nor client side. And it is safe to say that my usual MP mission stresses the server considerably with many objects and scripts.
-
As of patch 75445 I am having an issue with our MP server. This is a dedicated server in my local LAN. Never had issues so far including all recent betas.
Each time I run a mission now server and client load fine until the mission is about to begin (map mode). As soon as I click "Continue" I am being kicked from the server.
I started a clean beta server like this:
"C:\ArmA 2\Expansion\beta\arma2oaserver.exe" -config=sample.cfg -mod=Expansion\beta;Expansion\beta\ExpansionThis is the error log from arma2oaserver.RPT when I run "01: War Welcome"
=====================================================================
== C:\ArmA 2\Expansion\beta\arma2oaserver.exe
== "C:\ArmA 2\Expansion\beta\arma2oaserver.exe" -config=sample.cfg -mod=Expansion\beta;Expansion\beta\Expansion
=====================================================================
Exe timestamp: 2010/11/09 23:12:09
Current time: 2010/11/10 00:07:48
Version 1.55.75446
Item str_disp_server_control listed twice
Updating base class ->ReammoBox, by ca\weapons\config.bin/CfgVehicles/WeaponHolder/
String STR_BAF_CFGMAGAZINES_BAF_PUTIED_V10 not found
String STR_BAF_CFGMAGAZINES_BAF_PUTIED_V20 not found
String STR_BAF_CFGMAGAZINES_BAF_PUTIED_V30 not found
String STR_BAF_CFGMAGAZINES_BAF_PUTIED_V40 not found
ca\missions\MPScenarios\MP_Deathmatch.chernarus: string @str_mpdeathmatch_subname cannot be localized client-side - move to global stringtable
ca\missions\MPScenarios\MP_Deathmatch.chernarus: string @str_mpdeathmatch_subname cannot be localized client-side - move to global stringtable
Warning: looped for animation: ca\wheeled\data\anim\uaz_cargo01_v0.rtm differs (looped now 0)! MoveName: kia_uaz_cargo02
Warning: looped for animation: ca\wheeled\data\anim\uaz_cargo01_v0.rtm differs (looped now 1)! MoveName: uaz_cargo02
Unit not created: Subgroup 0:0 not found
Cannot create object 3:1
Received 82, expected bool
Unexpected message data (message struct NetworkMessageWaypoint, item visible)
Before (0x0000003e): 75 65 00 00 00 00 00 74 72 75 65 00 24 4e 4f 4e 45 24 00 00 00 00 24 4e 4f 4e 45 24 00 00 00 00
Current (0x0000005e): 52
Received 48, expected bool
Unexpected message data (message struct NetworkMessageWaypoint, item visible)
Before (0x0000007c): 75 65 00 00 00 00 00 74 72 75 65 00 24 4e 4f 4e 45 24 00 00 00 00 24 4e 4f 4e 45 24 00 00 00 00
Current (0x0000009c): 30
Received 58, expected bool
Unexpected message data (message struct NetworkMessageWaypoint, item visible)
Before (0x0000003e): 75 65 00 00 00 00 00 74 72 75 65 00 24 4e 4f 4e 45 24 00 00 00 00 24 4e 4f 4e 45 24 00 00 00 00
Current (0x0000005e): 3a
Creation of object L 1-1-G:32 failed, state LOGGED IN
Ref to nonnetwork object L 1-1-G:32
Creation of object L 1-1-G:33 failed, state LOGGED IN
Ref to nonnetwork object L 1-1-G:32
Ref to nonnetwork object L 1-1-G:33
Ref to nonnetwork object L 1-1-G:32
Ref to nonnetwork object L 1-1-G:32
Ref to nonnetwork object L 1-1-G:32
Ref to nonnetwork object L 1-1-G:33
Ref to nonnetwork object L 1-1-G:32
Ref to nonnetwork object L 1-1-G:32
Creation of object L 1-1-G:34 failed, state LOGGED IN
Ref to nonnetwork object L 1-1-G:32
Ref to nonnetwork object L 1-1-G:33
Ref to nonnetwork object L 1-1-G:34
Ref to nonnetwork object L 1-1-G:34
Ref to nonnetwork object L 1-1-G:32
Ref to nonnetwork object L 1-1-G:34
Ref to nonnetwork object L 1-1-G:34
Ref to nonnetwork object L 1-1-G:32
Ref to nonnetwork object L 1-1-G:32
Ref to nonnetwork object L 1-1-G:32
Ref to nonnetwork object L 1-1-G:32
Ref to nonnetwork object L 1-1-G:32
Ref to nonnetwork object L 1-1-G:32
Ref to nonnetwork object L 1-1-G:32
Ref to nonnetwork object L 1-1-G:32
Ref to nonnetwork object L 1-1-G:32
Ref to nonnetwork object L 1-1-G:32
Ref to nonnetwork object L 1-1-G:32
Creation of object L 1-1-K failed, state LOGGED IN
Creation of object L 1-1-K:<Empty main subgroup> failed, state LOGGED IN
Client: Nonnetwork object f960090.
Client: Nonnetwork object 11485100.
Ref to nonnetwork object <No group>:0
Creation of object L 1-1-K:1 failed, state LOGGED IN
Client: Nonnetwork object 11485100.
Creation of object L 1-1-L failed, state LOGGED IN
Creation of object L 1-1-L:<Empty main subgroup> failed, state LOGGED IN
Client: Nonnetwork object fec60c0.
Client: Nonnetwork object 11485700.
Ref to nonnetwork object <No group>:0
Creation of object L 1-1-L:1 failed, state LOGGED IN
Client: Nonnetwork object 11485700.
Ref to nonnetwork object L 1-1-G:32
Ref to nonnetwork object L 1-1-G:32
Ref to nonnetwork object L 1-1-G:32
Ref to nonnetwork object L 1-1-G:32
Ref to nonnetwork object L 1-1-G:32
Ref to nonnetwork object L 1-1-G:32
There's a second file in that folder called "mpStatistics.log". I am just adding this here, no idea if this is a cumulative log of all games or just the recent one:
AddInitAndRemoveOverridden statistics ... total messages = 2640
243 ... Type_10
573 ... Type_46
130 ... Type_142
110 ... Type_213
129 ... Type_214
1413 ... Type_231
33 ... Type_233
9 ... Type_234
AddInitAndRemoveOverridden statistics ... total messages = 147
42 ... Type_10
2 ... Type_46
95 ... Type_142
2 ... Type_213
2 ... Type_214
4 ... Type_231
AddInitAndRemoveOverridden statistics ... total messages = 3227
242 ... Type_10
2 ... Type_40
2 ... Type_41
7 ... Type_42
15 ... Type_45
689 ... Type_46
211 ... Type_142
5 ... Type_204
140 ... Type_213
167 ... Type_214
1686 ... Type_231
52 ... Type_233
9 ... Type_234
AddInitAndRemoveOverridden statistics ... total messages = 3157
250 ... Type_10
665 ... Type_46
274 ... Type_142
3 ... Type_204
123 ... Type_213
146 ... Type_214
1595 ... Type_231
71 ... Type_233
30 ... Type_234
AddInitAndRemoveOverridden statistics ... total messages = 1309
228 ... Type_10
104 ... Type_46
105 ... Type_142
870 ... Type_231
2 ... Type_233
AddInitAndRemoveOverridden statistics ... total messages = 1
1 ... Type_10
AddInitAndRemoveOverridden statistics ... total messages = 2641
244 ... Type_10
8 ... Type_40
16 ... Type_42
401 ... Type_46
165 ... Type_142
2 ... Type_204
62 ... Type_213
72 ... Type_214
1645 ... Type_231
21 ... Type_233
5 ... Type_234
AddInitAndRemoveOverridden statistics ... total messages = 60
42 ... Type_10
12 ... Type_46
6 ... Type_231
AddInitAndRemoveOverridden statistics ... total messages = 1
1 ... Type_231
AddInitAndRemoveOverridden statistics ... total messages = 3382
239 ... Type_10
294 ... Type_46
137 ... Type_142
1 ... Type_204
1 ... Type_213
1 ... Type_214
2702 ... Type_231
7 ... Type_233
AddInitAndRemoveOverridden statistics ... total messages = 2206
240 ... Type_10
214 ... Type_46
162 ... Type_142
1 ... Type_213
1 ... Type_214
1573 ... Type_231
11 ... Type_233
4 ... Type_234
AddInitAndRemoveOverridden statistics ... total messages = 3516
242 ... Type_10
1 ... Type_40
476 ... Type_46
332 ... Type_142
2 ... Type_204
53 ... Type_213
63 ... Type_214
2294 ... Type_231
47 ... Type_233
6 ... Type_234
AddInitAndRemoveOverridden statistics ... total messages = 3271
239 ... Type_10
3 ... Type_40
1 ... Type_41
9 ... Type_42
11 ... Type_45
463 ... Type_46
203 ... Type_142
3 ... Type_204
97 ... Type_213
115 ... Type_214
2095 ... Type_231
24 ... Type_233
8 ... Type_234
AddInitAndRemoveOverridden statistics ... total messages = 84
40 ... Type_10
40 ... Type_142
4 ... Type_231
AddInitAndRemoveOverridden statistics ... total messages = 3020
244 ... Type_10
1 ... Type_40
484 ... Type_46
257 ... Type_142
2 ... Type_204
79 ... Type_213
95 ... Type_214
1792 ... Type_231
45 ... Type_233
21 ... Type_234
AddInitAndRemoveOverridden statistics ... total messages = 819
56 ... Type_10
21 ... Type_46
742 ... Type_231
AddInitAndRemoveOverridden statistics ... total messages = 3781
246 ... Type_10
1 ... Type_40
681 ... Type_46
268 ... Type_142
1 ... Type_204
161 ... Type_213
193 ... Type_214
2183 ... Type_231
38 ... Type_233
9 ... Type_234
AddInitAndRemoveOverridden statistics ... total messages = 52
42 ... Type_10
1 ... Type_46
9 ... Type_231
AddInitAndRemoveOverridden statistics ... total messages = 2672
240 ... Type_10
2 ... Type_40
1 ... Type_41
7 ... Type_42
7 ... Type_45
453 ... Type_46
240 ... Type_142
1 ... Type_204
78 ... Type_213
90 ... Type_214
1512 ... Type_231
29 ... Type_233
12 ... Type_234
AddInitAndRemoveOverridden statistics ... total messages = 2373
247 ... Type_10
4 ... Type_40
1 ... Type_41
13 ... Type_42
7 ... Type_45
467 ... Type_46
223 ... Type_142
43 ... Type_213
51 ... Type_214
1279 ... Type_231
29 ... Type_233
9 ... Type_234
AddInitAndRemoveOverridden statistics ... total messages = 43
40 ... Type_10
3 ... Type_231
AddInitAndRemoveOverridden statistics ... total messages = 4
4 ... Type_10
AddInitAndRemoveOverridden statistics ... total messages = 3211
238 ... Type_10
8 ... Type_40
4 ... Type_41
34 ... Type_42
28 ... Type_45
512 ... Type_46
274 ... Type_142
43 ... Type_213
50 ... Type_214
1976 ... Type_231
29 ... Type_233
15 ... Type_234
AddInitAndRemoveOverridden statistics ... total messages = 819
56 ... Type_10
21 ... Type_46
742 ... Type_231
AddInitAndRemoveOverridden statistics ... total messages = 85
10 ... Type_10
21 ... Type_46
54 ... Type_231
AddInitAndRemoveOverridden statistics ... total messages = 96
10 ... Type_10
21 ... Type_46
65 ... Type_231
AddInitAndRemoveOverridden statistics ... total messages = 716
86 ... Type_10
18 ... Type_46
1 ... Type_215
529 ... Type_231
82 ... Type_235
AddInitAndRemoveOverridden statistics ... total messages = 819
56 ... Type_10
21 ... Type_46
742 ... Type_231
I have tried with and without my addons galore; logged in as user or admin; tried different missions - always being kicked back to the MP server screen right after mission start. Hmm...
Cheers,
VictorFarbau
-
I installed ZeusAI from this link. Went into the game, open the debug console and copied your code:
isClass(configFile >> "CfgPatches" >> "zeu_sys_ai")
Result: true
Maybe the addons are not loaded on your machine for some reason. Even with an empty units[] entry the class is detected fine by Arma2.
Cheers,
VictorFarbau
-
Good point indeed AZcoder. Eventually the quality of the config file is not checked and garantueed. The config creator determines into which category he puts his stuff. And why would a weapons-mod use CfGVehicles if there is a CfGWeapons class? So you need to be very clear upfront what you're looking for. Methods to check for addon presence need to consider this.
I used the method in the first post (just count CfgPatches) to determine the presence of the ACE for my late VFAI mod. Depending on that I would add certain weapons etc. I guess for this purpose counting the patches was an ok method. Deadfast's code using "isClass" is in general a better method for sure. I will correct that.
So I took the MiG15 config, it reads:
class CfgPatches { class mig15bis { units[] = {"mig15bis"}; weapons[] = {}; }; };
Consequently, a
count (configFile >> "CfgPatches" >> "mig15bis")
returns "2" (= units[], weapons[]).
EDIT:
If I'd like to query the details of subclasses such as "units" then I need to use:
getArray (configFile >> "CfgPatches" >> "mig15bis" >> "units")
which returns ["mig15bis"]. But as mentioned before, the addon maker is free to use / mess up the config as he likes so it is not a reliable method to query certain subclasses in order to achieve certain tasks.
Bottom line for me: whenever I'd like to check for addon presence I basically have to have a look into its config file to be sure what I can check for.
I can still imagine that the method I coughed up in post #10 could work to ensure addon presence on both servers and clients. I'll try that in an MP mission soon.
VictorFarbau
-
That is incorrectWhat the heck... you're right of course. I am glad I brought this subject up so I could be corrected :) I should have counted units[] instead as I see it.
Cheers,
VictorFarbau
-
@AZCoder - you are correct, if you want to know whether a specific class "mig15bis_camo1" exists then a boolean test as Deadfast suggested is required. For my purposes checking the parent class is usually enough so excuse my relaxed approach here :)
The question how to catch different addon revisions on client and server, really interesting. In order to avoid undefined states on clients probably a protocol would be required. I could imagine this:
The server defines an array of addon classnames that will be used though a global variable (e.g. "serveraddons"). Clients check local availability and update a second global array (e.g. "badaddons") with class names which are missing on 1 or more clients. After a timeout period the server compares both arrays and limits the "serveraddons" array to the smallest common denominator. Clients get a message asking them to look for updated addons that provide the missing classes.
Could be a start...
Cheers,
VictorFarbau
-
@Deadfast, IMO this not necessarily a better solution, it's just a different approach. Using the Mig15 example you're specifically testing for the presence of one inheriting class. The code above is counting the subclasses per parent. Both approaches lead to the same conclusion: a parent class or a specific class is present so I can use the addon (and all inherting classes).
@All, yes I need to add the MP note, something so obvious that it didn't appear to me.
-
Note: this mainly applies to SP missions. To start using addons on MP servers makes no sense if you cannot verify that all clients have the required addons installed. In an MP environment you have to let users run into the "You cannot play/edit this mission; it is dependent on downloadable content [...]" message - unfortunately.
I am just posting this so people can easily find a reference to this if needed. Unlike this poor feller who never got a response back then.
If you want to check whether a certain addon is present and certain class names have been defined you might consider this method.
In the given example I want to use 2 planes, an AV8B and a MiG15. The MiG15 is an addon and I won't know whether the machine my mission runs on has this addon available. Solution ("isClass" statement suggested by Deadfast):
_myplanes = ["AV8B"]; IF (isClass(configFile >> "CfgPatches" >> "mig15bis")) THEN { _myplanes = _myplanes + ["Mig15bis2"]; player sidechat "Found addon Mig15!"; };
How do you know the name of the CfGPatches entry such as "mig15bis"? The way I do it is to create a new mission, place the addon in question and save the mission. After that I open the mission.sqm file and look for the related entry in the "addons[] = " section of the file. This should be the CfGPatches name you can check for later. "MiG15bis2" is a vehicle class name and those names that you will typically use in "createVehicle" statements are to be found in the "class ItemX" statements further down in the mission file.
So if the Mig addon is present, both planes can be spawned. If not only the AV8B will be used. Painless procedure. No more "Warning Message: You cannot play/edit this mission; it is dependent on downloadable content [...]".
If you're really smart you won't place any 3rd party object on your mission map by default. Also, remove all references to 3rd party stuff from your mission.sqm before publishing. Everything gets spawned based on availability. That way your mission runs in every configuration. In addition to the Arma stock addons the user determines the flavor by adding / removing addons himself now. He will love your mission/campaign for this.
Cheers,
VictorFarbau
-
I played the very first release in 2001 and I remember how annoyed I was with the clumsy graphics and the boring sound. And then I discovered the editor and that there was a scripting language... :)
Since then I moved countries twice, changed jobs, marriage, kid, house, now living in Germany and who knows what's next. My wife agrees with this hobby as she appreciates the highly creative side and the social aspect (coop) of it.
You could say that OFP,A1,A2 have been part of my life since almost 10 years. Good times, it certainly added to the quality of my life to have such a fantastic sandbox for ideas available. Thank you BIS!
VictorFarbau
-
Avoiding treetops seems to work fine now but indeed dive manoevres are kind of suicidal at the moment and often result in crashes. I will review this and see in how far I can adapt the code to intercept this specific behaviour.
Regards,
VictorFarbau
-
I believe soon this project can be retired - see 1st post. Good to see the improvement in flying skills :)
-
The good news is - it can be done (I believe). But you'd have to dive into some more scripting.
1. Why not use the Fuel Can object for fuel? Editor -> Empty -> Objects -> Fuel Can. Create that object class out of your hemp booze :)
2. Employ drag&drop scripts (like used in my VFladder addon) using sin&cos (_obj setposASL sinx, cosx, 1 or the like) to simulate carrying objects.
3. Try the command cursorTarget to link the can to the car.
Make cans appear and disappear as required and set up a score system of global vars or object variables (example: setVariable to manage inventory.
It's a challenge for sure; but that's the deal with this hobby :)
My 2 cents,
VictorFarbau
-
The trick is to a) determine a suitable position on the vehicle and b) set the animationstate of a unit accordingly.
BIS provides some animations for units sitting on vehicles.
Example (_unit = soldier, _vehicle = HMMWV):
--------------------------------------------
_unit attachTo [_vehicle,[-0.8,-1.5,-0.7]];
_unit switchMove "aav_cargo01";
_unit setDir _0;
Voila, the unit sits on the HMMWV. The exact positions are relative to the defined vehicle center - you need some trial and error to find the one you want. Then you need to try which animation fits each position. I usually only use 2 animations:
"aav_cargo01" and "miles_c0briefing_odpovedel_loop".
Hope that gets you going,
VictorFarbau
Vf su25
in ARMA 2 & OA - ADDONS & MODS: COMPLETE
Posted
@Defunkt, so far I looked at the Mig15 and the SU25. Which were the ones most present in my missions so that was a priority. But I agree pretty much all of the jets could use an overhaul of their engine sounds. Well, now that I understood the required config values it's merely a matter of finding good and unique samples for more to come.
BTW - this very speech synthesizer was one of the options I considered :) Turned out that it just sounds really sad in a cockpit environment due to the tone and emphasis used. But we have a voice actor thread somewhere so that can be an option, too. No idea though whether we have some russian ladies around there.
Cheers,
VictorFarbau
---------- Post added at 12:26 PM ---------- Previous post was at 11:09 AM ----------
I removed the dependency to the BIS_fnc module by using a more light-weight method to determine the pitch. That should avoid problems when using non-OA or older ARMA 2 versions. New addon link added.
Cheers,
VictorFarbau