Jump to content

Leopard20

Member
  • Content Count

    706
  • Joined

  • Last visited

  • Medals

Community Reputation

709 Excellent

5 Followers

About Leopard20

  • Rank
    Master Sergeant

Contact Methods

  • Website URL
    https://github.com/leopard20
  • Twitter
    Leopard2O
  • Youtube
    Leopard20
  • Steam url id
    Leopard20
  • Reddit
    Leopard20

Profile Information

  • Gender
    Male
  • Location
    VR
  • Interests
    Military stuff, Programming, Artificial Intelligence, Robotics

Recent Profile Visitors

9168 profile views
  1. Well I want to say neither (?!) The core features of the mod have been almost done for a long time. It's the performance issues that have slowed things down. In a test, I could barely use my whole squad (9 AI) without my FPS starting to dip. That's just way below my design goal. I wanted the mod to have no dependency on other mods, preferably even entirely script based so you could just drag and drop it into the mission. The script-only idea was completely scrapped due to some issues with the anim collision geometries which I had to solve by recreating almost the entire Arma animations (and even adding new ones for other problems). The performance problems however, could not be solved in any reasonable way (even though I rewrote many things many times from the scratch over and over just to eke out a little more performance), because SQF is simply not fast enough for that. So I just completely gave up on scripting. I'm currently porting the scripts to C++, using Intercept, and sometimes still rewriting things because of new abilities that C++ gives me. There still will be some SQF involved so it won't be as fast as native code, but at least the code is now compiled, so at least I won't be wasting any performance for loops, control structures, vector operations, geometric calculations, etc. Also there's a lot more room for manual memory and CPU management, caching, and even some multithreading, so it'll be much better. Just to give you some rough numbers, some features are now 5-10x faster, which is insane! (and impossible to achieve with scripts) The only downside, of course, is that the mod will be available in a dll format (there will be PBO stuff too, but only for the anim stuff I mentioned), and will probably require Intercept and CBA (because Intercept requires CBA) The core features still need some work, but that part is out of my hands, due to lack of some SQF commands (which I hope that the devs will add at some point, so I'm just using place holders for now)
  2. Leopard20

    Saros Tweak For Higher FPS On Maps

    @sarogahtyp _dummy = [_type, _var, _objects, _start_time] spawn { Why are you spawning so many scripts? You can just use one spawn.
  3. No. Disabling it is the correct way to do it. When you disable it, it sets your stamina to the maximum value possible. Running out of breath when aiming has nothing to do with stamina, and it cannot be controlled via scripting.
  4. I don't think so. At least not via scripting.
  5. Leopard20

    Advanced Developer Tools

    Thank you for the report! Update is up! #Added: * Function Viewer now opens to the last viewed function. # Fixed: * Esc key would close all windows if Function Viewer was on top * Single-clicking on tree items in Config Viewer would sometimes expand the tree instead of just selecting it.
  6. Leopard20

    Advanced Developer Tools

    Huge update - v1.2: # Added: * Complete preprocessor support. Using SQF-VM's excellent preprocessor (thanks to @x39). * Complete regex support using C++ regex library. * Complete mod documentation. If you need help with any part of the mod, please refer to the documentation. * Debug Console: Auto completion for numbers. * Debug Console: Export to Notepad++. * Function Viewer: Added Find (but no Replace, obviously!) * Watch: You can now change the size of the Watch both horizontally and vertically. * All buttons now have a cool blue border when you hover the mouse over them. # Improved: * Config viewer tree view has been updated to look more like vanilla tree view. * Config viewer quick search can now find results in all cached configs. * Significant speed boost in config viewer (more caching + use of hashmaps + other optimizations). * Debug console now properly selects the last open document instead of jumping to the last tab. * Debug console can now highlight (underline) commands and numbers. * Performance improvements in Debug console (minimal). * You can now scroll through tabs using the mouse wheel. * The arguments and number of cycles are saved when you close the debug console. * Faster command caching. # Fixed: * All problems with non-English characters (e.g. Russian) should be fully solved now. * Occasional crash when opening the config viewer if the last opened config path was under missionConfigFile. * Unable to switch to Spectator mode when inside a vehicle. * The mod no longer auto capitalizes the commands. * Fixed a bug in config search that prevented searching in Values only. * Long file names couldn't be displayed in the tab name properly. * Large variables were being saved in the mission namespace, making the saving process take longer and generate larger save files (oops). * Fixed a typo that caused the Draw code to compile incorrectly and thus throw errors. * The Find Next buttons were a bit grayed out, making them look disabled. Note 1: This version adds two non-whitelisted extensions (one for regex, and one for preprocessor), which will probably be blocked by BattleEye. If you run into problems, please disable BattleEye. Note 2: Even if you've been using this mod for a long time and are familiar with its features, please review the Draw section in the documentation, as it is the least understood feature.
  7. Ok, I'll test it this weekend and publish a fix if I can reproduce the issue.
  8. It's for another thing. As mentioned in the Notes/FAQ, you can disable the custom commanding menus by unbinding their keys (mod controls, not vanilla controls) Alternatively, using shift/alt/ctrl+numbers allow you to access vanilla commanding menus without any unbinding. Yes. Some commands are not compatible. They only resume simple commands like move, stay in formation, and stop. They're already healed. The medic animation may take forever to finish, so they just move away. My mod uses procedural healing.
  9. Your switch-case has "overlapping" conditions (some conditions are duplicates). Replace it with call-exitWith. example: call { if (_a < 1) exitWith {}; //code for a < 1 if (_a < 2) exitWith {}; //code for a>= 1 && a < 2 if (_a < 3) exitWith {}; //code for a>= 2 && a < 3 //code for a >= 3 }; Also, don't use position/getPos. They're slow, and they're very specialized commands for really advanced applications (you see people arbitrarily using them because they don't know that) . You can use getPosWorld for example. Review these: https://community.bistudio.com/wiki/Position https://community.bistudio.com/wiki/Code_Optimisation#getPos.2A_and_setPos.2A
  10. I think the main problem is that you don't pay attention to the overlaps: while {true} do { ... sleep 0.5; } now look at the timers here: [vAnimatedMarker_1_Fnc, _marker, 0.3] call CBA_fnc_waitAndExecute; [vAnimatedMarker_2_Fnc, _marker, 0.6] call CBA_fnc_waitAndExecute; [vdeleteMarkerLocalFnc, _marker, 1] call CBA_fnc_waitAndExecute;
  11. yes, no need for those sleeps either. Again, just use the sleep you use for while. At low FPS and/or if the scheduler is "busy" (lots of spawns in the queue), your spawns may stay in there for a longer time than normal. But the main reason I said that was timer overlap. Let's assume an ideal execution (no delay in execution, which is not true, especially at low FPS). Each "beep" takes 0.9 seconds to complete, but you're spawning the codes every 0.1 seconds. So within that 0.9 seconds, you have spawned 90 codes for 10 contacts. If FPS was low or scheduler was "busy", your spawned codes could keep growing before any of the old spawns are complete. See the issue now?
  12. Still not good Spawning too many codes slows down other scripts (both those created by other mods and your own). Basically a code that can be done using a single thread is hogging the scheduler queue. Even if not that, your code has timer overlapping problems I absolutely don't recommend it. Use the timer you use for while to apply the effect. No need to spawn any other code
  13. I don't know about your second question But your for loop doesn't do what you want it to do Let's say I have 10 contacts Your for loop runs for 10 iterations During each iteration it sleeps ~1 second, during which nothing else updates. Your marker "beeps" only for one target. So it takes 100 seconds for the while loop to go around again
×