Jump to content

kazesim

Member
  • Content Count

    19
  • Joined

  • Last visited

  • Medals

Community Reputation

2 Neutral

About kazesim

  • Rank
    Private First Class
  1. With the recent patches I was happy to see that the manned missions are getting some content and are now pretty playable - that's the reason I bough this game, I don't care too much for campaigns. I've been playing the Kaiser Crater MP mission solo for the last couple days and have some suggestions and questions. Suggestions - Vehicles could use a parking brake. - Ability to fix vehicle parts with the drill (especially the crane magnet, I break it a lot - picking up more than one item at a time with it tends to cause them to attempt to occupy the same point in space at the same time, resulting in a high-energy reaction which is not well understood). (And as an aside, I should warn everyone: Do not attach yourself to the electromagnet and swing around on it unless you want to find yourself on a sub-orbital trajectory) - Large Vehicle With Crane aka "Jawa Sand Crawler" - the side doors on it should open all the way to the ground because it's hard to jump into them. - I'm not sure what the purpose of the flat area on top of the sand crawler is, but if it had higher sides or (ideally) some kind of clamps that could lock a pallet down then it would be useful for cargo transport. - On the subject of cranes; it would be nice to have a static crane that you could build. - On the subject of broken cranes with cameras; I accidentally found out that if you break the crane magnet AND break the monitor for it in the cab (was taking selfies...) then you have a pretty neat remote camera. Might we be able to implement standalone remote cameras that can be viewed on the monitors? Would be useful for competitive MP at least. - Symbols on the crane monitor to show its rotation, angle and extension - so that I can tell whether I am using it as a wrecking ball. - Using the drill to modify items: such as being able to change out the crane electromagnet for a simple hook to avoid the aforementioned catastrophic failures. Even more useful would be to be able to put a gate on the open side of the caged pallet so I can avoid having to do this - or putting a bar across the top of the pallet so it can be picked up with a crane hook, or even just printing flat pallets and then putting the sides on them to create caged pallets - just to make it a bit more interesting. - The ability to run the game in borderless window. - Large ramp platforms, ie large exterior platform, but as a ramp. - Maybe some gate/pallet block controls inside the truck cab - or even better, on it's driver monitor. - Tow-behind trailers might be an interesting addition. - Options for time-of-day acceleration, ie 4-hour game days. - Perhaps on/off switches for the resource harvesters. - And perhaps in the future - larger versions of the harvesters, ie large machines that you move around with a forklift, their stabilizers fold up so you can fit them on a truck, and are emplaced with a crane. They use a lot of power and maybe have one of those nifty control panels so you can put some complicated controls on them (it is a sci-fi sim after all, the more complicated the better). Just an idea. - And probably the most important one for me: I would be nice to have a detailed difficulty menu where you can basically just set the scales (multipliers) for everything: resource harvest and refining times, storage limits for resource containers, 3D printing times, heal time, how fast you get hungry/thirsty, etc etc. This is all really basic stuff that will need to be tuned exactly right for manned missions to stay challenging in the long term, and it would be nice to have the option to tune these in-game without needing to make a mod. - Oh, and I almost forgot, we need pod racers and/or monster trucks, obviously. Questions - Will the 3D printer eventually cost resources to print things? - Will we eventually have some kind of survey tools to find resources? Will the resource zones regenerate elsewhere once they're depleted? - Do you plan on adding any way of powering the harvesters/lights/printer/etc? Something like solar panels or radioisotope generators? - Are the resource tanks intended to be moveable when full? Currently a full one weighs like 1500kg and moving it is like trying to move a neutron star. The crane can't budge it and the forklift just breaks. The problem is that if you make the mistake of 'disassembling' it then you can't 'reassemble' it because you can't pick it up, and you can't empty it because it's' not assembled, so you end up with a big stupid immovable tank in your base. And god help you if it tips over and rolls into something. - Edit: Oh yeah, any chance of fixing the crashing while saving? It's really the worst thing ever. Every time I save (in manned SP) it has about a 1-in-6 (at worst 1-in-3) chance of crashing and deleting the save I was overwriting, even on brand new games. It's so often that I save every 4 minutes and made a hotkey to taskkill the game. I've tried everything and it so far seems totally random. Here is a typical crash.log (these are only the save crashes that raise an exception, there are many many others):
  2. That's too bad, all these years of scripting for Arma 2 and I think I've finally mastered that language, now I gotta learn another. It looks more like C#/Java, which is much better than C++. At least we'll finally have classes and not have to 'select' things out of arrays. I just hope we get some good documentation.
  3. kazesim

    Config Extractor

    Sorry I always forget to check for replies. I wasn't able to download that file, I'm pretty sure that site is worse than FilePlanet, which I didn't think was possible. If you can put it on Dropbox or something, or just paste it here I'll look at it. And do you mean extracting the whole entire game config? You could theoretically do that with this script by just extracting the Cfg- classes. I'm afraid to actually try that though because it would take forever and probably either run out of memory or reach some kind of recursion limit. I haven't actually tested it on ArmA 1 since my copy of that game is broken thanks to FADE thinking that I have a pirate copy, but I'd assume it would work. For just perusing the config I think it's easiest to just use the in-game browser. But yeah if you have managed to find a way to extract the whole thing then I'd like to see.
  4. Extracts a whole config class to the Windows clipboard. It includes every entry in that class plus every subclass (and sub-sub-etc-class) all the way back to the root. The entries are left in the same order that they are in the config, with ones from parent classes added later, so that the most derived entries are at the top. The output is formatted as standard ArmA cpp (instead of bin or sqf), so you should hopefully be able to just paste it in a config file without problems. This is for people like me who hate using unPBO/unBin/Eliteness just to get a few config values. Instead you can just run this from in-game, paste the whole thing into Notepad++ or whatever and take out what you don't need. Due to it's complexity, it typically takes a few seconds to run, just wait until it says it's done. Don't use it on the huge Cfg- base classes as it will never finish. I recommend making a "Scripts" folder in your ArmA root (same folder as the game's main exe) and putting it there. Then it can be called from anywhere in the game with "Scripts\NAME.sqf". /*-------------------------------------------------------------------------------------------- Extracts a whole config class to the Windows clipboard It includes every entry in that class plus every subclass (and sub-sub-etc-class) all the way back to the root The entries are left in the same order that they are in the config, with ones from parent classes added later, so that the most derived entries are at the top The output is formatted as standard ArmA cpp (instead of bin or sqf), so you should hopefully be able to just paste it in a config file without problems Don't use this script on huge root classes like CfgVehicles / CfgWeapons, it will never finish The parameter can be either the config class to extract, or an array: 0: Config (Class to extract) 1: Bool (Add comments indicating which parent class the entries came from, default false) 2: Bool (Include parent class names in the class definitions, default true) Examples: (configFile/'CfgWeapons'/'M16A2') execVM "Scripts\cfgGet.sqf"; [configFile/'CfgVehicles'/'HMMWV', true] execVM "Scripts\cfgGet.sqf"; [configFile/'CfgVehicles'/'HMMWV', true, false] execVM "Scripts\cfgGet.sqf"; This should work on any ArmA, tested on 2 and 3 v1.0 By Kazesim --------------------------------------------------------------------------------------------*/ #define DQUOTE 34 #define INC(X) X = X + 1 #define ADD(X,Y) _list set [count _list, [X, Y]] _addClassLabels = false; _addParentClassDefs = true; if ((typeName _this) == "ARRAY") then { _count = count _this; if (_count > 1) then {_addClassLabels = _this select 1}; if (_count > 2) then {_addParentClassDefs = _this select 2}; _this = _this select 0; }; if not (isClass _this) exitWith {hint "Invalid class"; copyToClipboard "Invalid class"}; _offset = 0; _tab = ""; _CRLF = toString [0x0D, 0x0A]; __TAB = toString [0x09]; _getTab = { //Update the string containing the current number of tabs private ["_c", "_t"]; _offset = _offset + _this; _t = ""; for "_c" from 1 to _offset do { _t = _t + __TAB; }; _tab = _t; }; _insert = { //Format: [array, item to insert, index] private ["_array", "_index", "_count", "_save", "_last", "_c"]; _array = _this select 0; _index = _this select 2; _count = count _array; _save = ""; _last = _this select 1; for "_c" from _index to (_count - 1) do { _save = _array select _c; _array set [_c, _last]; _last = _save; }; _array set [_count, _last]; }; _formatString = { //Re-double-quotes any quotes inside a string private ["_c", "_x", "_count"]; _this = toArray _this; _count = count _this; for [{_c = 0}, {_c < _count}, {INC(_c)}] do { _x = _this select _c; if (_x == DQUOTE) then { [_this, DQUOTE, _c+1] call _insert; INC(_c); INC(_count); }; }; str toString _this; }; _formatArray = { //Switch all the brackets to braces, and add spaces after commas private ["_str", "_last"]; _last = (count _this) - 1; _str = "{"; { _str = _str + (switch (typeName _x) do { case "ARRAY": {_x call _formatArray}; case "TEXT": {_x call _formatString}; case default {str _x}; }); if (_forEachIndex != _last) then {_str = _str + ", "}; } forEach _this; _str + "}"; }; _scanEntries = { private ["_cfg", "_c", "_entry", "_name", "_added", "_str", "_list"]; _cfg = _this select 0; _list = _this select 1; _addLabel = _this select 2; for "_c" from 0 to ((count _cfg) - 1) do { _entry = _cfg select _c; _name = configName _entry; _added = false; {if ((_x select 0) == _name) exitWith {_added = true}} forEach _list; if (!_added) then { //Add the class label comment, if enabled if (_addClassLabels and _addLabel) then { _str = format ["%1// %2%3", _tab, configName _cfg, _CRLF]; ADD("", _str); _addLabel = false; }; //Add the entry _str = ""; if (isClass _entry) then { _str = _entry call _scanCfg; } else { _str = format ["%1%2%3 = %4;%5", _tab, _name, if (isArray _entry) then {"[]"} else {""}, switch (true) do { case (isNumber _entry): {getNumber _entry}; case (isText _entry): {(getText _entry) call _formatString}; case (isArray _entry): {(getArray _entry) call _formatArray}; }, _CRLF ]; }; ADD(_name, _str); }; }; }; _scanCfg = { private ["_list", "_tab", "_cfg", "_name", "_count", "_inherit", "_str", "_empty"]; _list = []; 0 call _getTab; //Add the class name, parent class name, and starting brace _cfg = _this; _name = configName _cfg; _count = count _cfg; _inherit = configName inheritsFrom _cfg; _empty = _count == 0 and _inherit == ""; _str = format ["%1class %2%3 {%4", _tab, _name, if (_inherit == "" or !_addParentClassDefs) then { ""; } else { ": " + _inherit; }, if (_empty) then {""} else {_CRLF} ]; ADD(_name, _str); 1 call _getTab; //Get all the entries from this class and every parent class if (_count > 0) then {[_cfg, _list, false] call _scanEntries}; while {true} do { _inherit = inheritsFrom _cfg; _inheritName = configName _inherit; if (_inheritName == "") exitWith {}; //Last class _cfg = _inherit; [_cfg, _list, _name != _inheritName] call _scanEntries; }; //Add the ending brace -1 call _getTab; _str = format ["%1};%2", if (_empty) then {""} else {_tab}, _CRLF]; ADD("", _str); //Concat the string and return it _str = ""; {_str = _str + (_x select 1)} forEach _list; _str; }; hint "Running..."; copyToClipboard (_this call _scanCfg); hint "Done";
  5. I haven't had a chance to check out everything yet, but what I like so far is how the graphics are so clean it almost feels like Mirrors Edge. The preview screenshots up till now have all been pretty meh, and the driving demo mission was dark and cloudy, but when I got in the editor and looked around the airbase in sunny weather I was like oh sweet jesus. Going from ArmA 1 to 2 I was disappointed the devs were going with the "brown is real" approach, now these graphics alone make the game worth buying.
  6. kazesim

    What is your favorite ARMA 2 Loadout?

    99% of the time I'm playing my own mission on SP, which requires a lot of commanding the AI, so I go with a squad leader-type kit: SCAR-H CQC CCO (White) - 5 tracer mags USP SD - 4 mags RPG-29, or AT-4 if I'm having one of the AI carry the big launcher SOFLAM (better than the binocs for recon, and for the copperhead) Satchel, smoke, M67, laser battery, earplugs, etc The SCAR is the sci-fi version from the McN White Weapons mod, probably one of the coolest looking weps in the game. I generally have at least 3 AI, and give them an AR + launcher, M249 or M32 depending on the mission, and an M110 or LRR depending on the range. Sometimes I'll bring another fireteam and/or crew-served weapon team. Not like I get to do much shooting, since I spend most of my time trying to get the AI to stop dancing and do something useful, and giving them orders like "Six. Get out of that. Minefield"
  7. kazesim

    Multi-Player Madness

    I play this game more then any other, but I almost never play online. Mainly because of the lag caused by all the AI units on the domi/evo servers, my comp can run up to 50-60 AI (living or dead) with playable framerate but after that its a 6 FPS slideshow. I don't know if anyone else gets this, but I was able to play ArmA 1 servers without a problem because on that game, nonlocal AI didn't cause lag for me, neither did AI in singleplayer (for the most part), the only time they did was if I was hosting a MP game. AI in ArmA 2 cause lag whether local or nonlocal, SP or MP, living or dead. Anyone else have this problem on dedi servers?
  8. A few of the more unusual screenshots Iv taken over the years: Yep that's an AI L4D anyone?
  9. Thanks Maverick, thats what I was thinking. I'll probably get a Phenom 2 Black at 3.5 (unlocked multi, unlike this one), or just wait for Bulldozer. The CPU/mobo I'm using was from a prebuilt comp where pretty much everything is locked and it runs at 67C load with the stock heatsink, so I'm not sure I can OC it as it is. And Sp3tsnaz: I'm not sure what else it could be, the only time I get random max CPU is really bad script errors or when Kaspersky goes on a rampage.
  10. Guess its about time I actually post on this thread. Iv played ArmA 1 and 2 since release and have never had very good framerates on them (around 13 FPS with more then 40 AI). I think Iv tried all the fixes here with no luck, and want to ask if anyone has other suggestions. Also, I'm thinking of upgrading my mobo/CPU or GPU soon partially for this reason and wanted to ask which one probably needs it more. Specs are: A2 v1.10 OA v1.57 OS: Vista Home Premium SP2 x64 Video: ATI Radeon HD3870 512MB GDDR4 v8.831.2 (CCC v11.3) Audio: ATI Integrated v6.58.0.6600 Motherboard: Foxconn RS780 CPU: AMD Phenom 9600 x4 2.30GHz RAM: 4094MB Hynix 667MHz DDR2 HDD: 2x Western Digital 320GB 7200RPM SATA2 PSU: 730W Hiper 4M730 The lag seems to be caused almost entirely by the AI, most of the graphics settings make no difference, including resolution and terrain detail. Here's what I normally run at: Around 70 AI in a battle in a real mission is 8-14 FPS. In the editor; 120 AI and some tanks driving around is 7 FPS consistent with average GPU around 40%, never more then 70, CPU of 60% to 65%. OA Bench #1 is 19 FPS average, ~50% GPU up to 70, and ~75% CPU up to 88. Bench #2 is 4 FPS (yes 4), with consistent 20% GPU, and ~52% CPU up to 66. Temps are always 44C and 64C max. Doesn't make a lot of sense, I have friends with similar or worse comps that can run it far better (seems to be how the game is). If anyone has suggestions, please let me know. Also, I wanted to offer a few random (mostly) graphics-related fixes Iv found: And Sp3tsnaz: do you by chance have Kaspersky? KIS 2011 and 2012 have a bug that randomly maxes the CPU for around 20 sec, happens to me all the time.
  11. kazesim

    ArmA2 crash to desktop

    Iv also been getting constant crashes in the last few months (mabey from 1.07). They are always fast CTDs with no warning and a "ArmA2 has stopped working" message, and this in the error log: Exception code: C0000005 ACCESS_VIOLATION at 0092FA8A graphics: D3D9, Device: ATI Radeon HD 3800 Series, Driver:aticfx32.dll 8.17.10.1041 resolution: 1280x960x32 ...(addons and stuff)... Distribution: 1459 Version 1.07.71750 Fault address: 0092FA8A 01:0052EA8A C:\Program Files\Bohemia Interactive\ArmA 2\arma2.exe file: Shock%20and%20Awe (__cur_sp) world: chernarus Prev. code bytes: 00 5D 5F 5B 32 C0 5E 83 C4 70 C2 20 00 8B 4D 6C Fault code bytes: 8B 71 08 85 F6 74 0B 8B D6 B8 01 00 00 00 F0 0F I'v already ruled out all the mods, moduals and params. I haven't noticed any memory leaks and the GPU isn't overheating (stays at 54c), although I still occasionally get the "snowy tree" effect and other artifacts. Problem is in two weeks of testing Iv only been able to get it to crash on the two missions I made; a MP domination-style mission and an SP antiaircraft mission, probably because I don't have the patience to play a vanilla mission for 4 hours (it won't crash if you just leave it running afk). So should I make a ticket on the CIT when I haven't been able to rule out these missions as the cause? Edit: After nearly 3 weeks I finally found the most common cause of the crashes; AI having ACE_DogTags in their inventory while entering combat (or sighting an enemy). It won't crash if they are in a vehicle, but will the instant they get out. I removed the details from above since they were mostly about this crash, but this still doesn't explain the crashes on the other mission, which doesn't use ACE. Yet more testing is required....and remember, ACE_DogTags = death. ArmA2 v1.07 OS: Vista Home Premium SP1 x64 Video: ATI Radeon HD3870 512VRAM v8.762 (Catalyst version 10.8) Audio: ATI integrated v6.57.0.6607 Processor: AMD Phenom 9600 x4 2.30 GHz RAM: 4094MB (Nothing overclocked)
  12. Alright thanks for the info, I can now complete my l33t weaponset system. My best guess what was happening is that my weaponset global includes the return from ACE_fnc_ruckWeaponsList, which gets the array from the unit's ruck contents variable. And when you put an item in your rucksack and save the weapon set, then take the item out, ACE_fnc_removeWepFromRuck would set the count to 0 on its own local copy of the ruck contents, which also changed the count nested 3 deep inside my weaponset array. Scripting is so much fun sometimes! ...And I fixed the whole thing by adding a space and a plus sign!
  13. Thanks for the reply, Iv used set a lot but I guess its never altered other variables in a way that was noticable. By the way, are other data types also saved in that way, where the variables are just pointers?
  14. I wanted to ask about some strange links Iv found beween copies of an array when using the "set" command. They've been causing my endless problems for the last two days. It seems that whenever an array (apparently not any other data type) is copied, it retains some kind of link with its original, when you use the "set" function on the new copy, it also changes the original. As with the following code: _var = [10]; _newVar = _var; _newVar set [0, 20]; hint format ["%1 - %2", _var, _newVar]; Logic would suggest that it would show "[10] - [20]" when in fact it shows "[20] - [20]", where set is apparently changing "_var" as well. It also does this across different scripts when var is a global and _newVar is local, and through set/getVariables such as in: _var = [10]; player setVariable ["testv", _var, false]; _newVar = player getVariable "testv"; _newVar set [0, 20]; hint format ["%1 - %2", _var, _newVar]; //Hint is [20] - [20] It also does this when the original array is included in another array, changing both the original and the one in the larger array: _var = [10]; _var2 = [10]; _var2 = _var2 + [_var]; _newVar = _var; _newVar set [0, 20]; hint format ["%1 - %2 - %3", _var, _var2, _newVar]; //Hint is [[20] - [10,[20]] - [20] I haven't been able to break this dependency with "private" or by running it in call or spawn, the only way seems to be to create an whole new array, there are two ways Iv found to do this. Ether create a new one and copy all the elements into it with select: _newVar = [_var select 0, _var select 1, etc]; Or copy the array, then convert it to a string and then back to an array before using "set": _newVar = _var; _newVar = call compile str _var; Hope that helps, and I wanted to ask if anyone else has noticed this? Iv spent the last two years scripting missions for ArmA and ArmA2 and this is the first time Iv had a problem with it. If anyone else can verify this it would be helpful to post a note on the wiki.
  15. kazesim

    Does ARMAII include bench tools?

    I also wrote this script to show the FPS while in game in the editor, it helps with adjusting your graphics settings and seeing what causes lag. Copy and paste this into the "Initilization" field of any unit (probably the player unit) in the editor and Preview it, its returns your average FPS for the last 16 frames, every second. call {[] spawn {while {true} do {hint format ["%1", diag_FPS]; sleep 1}}}
×