Jump to content

SkaceKachna

Member
  • Content Count

    43
  • Joined

  • Last visited

  • Medals

Community Reputation

41 Excellent

About SkaceKachna

  • Rank
    Lance Corporal

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. SkaceKachna

    SQFLint for Visual Studio Code

    Sorry everyone for the previous release, there were some critical bugs in it (it was long time since I last time worker on the extension) Version 0.9.9 Workspace indexing now displays status in statusbar Workspace indexing no longer displays undefined warnings on first pass Fixed autocompletion not working Fixed description.ext parser
  2. SkaceKachna

    SQFLint for Visual Studio Code

    @Tankbuster Maybe the functions definitions are using too much macros, the parser of cfgFunctions is currently pretty dumb. Just released new version: Version 0.9.8 Added new functions and operators Fixed parser getting stuck in infinite loop under certain conditions (#49) (thanks billw2012) There's some more features I'd like to add in future, unfortunately, I don't really have much free time anymore 😢
  3. SkaceKachna

    SQFLint for Visual Studio Code

    @Tankbuster you might wanna open your mission/addon as folder in the editor, then all files in that folder will be automatically indexed I'm sorry everyone, I'm very busy with my life right now and can barely keep up, hopefully I will have some time to update the extension soon.
  4. Also as sidenote, I would strongly discourage you from doing this, since you'll be polluting user profile with long texts, possibly decreasing user performance not only with your mission, but in arma as general. I don't know how exactly profile values work on backend part, but they're heavily used for UI stuff (the colors and positions of elements are saved using profile values) and having too much data in profile definitely increases load times of everything and sometimes even causes lags. If you really want to do this, send the scripts to user when connecting and save them to mission namesapce, that's much better solution and your scripts will be only stored in memory and erased upon leaving the mission.
  5. You can use preprocessFileLineNumbers to load the script from file in string form.
  6. Hi, I'm making an mission that's not really tied to single map and I want to support as many maps as possible. The only approach to achieve this seems to be to publish the mission for each map separately through in-game editor, but that's really tedious. Currently I have like 7 variants on workshop and it takes like 5 minutes of clicking to publish them every update. The Publisher tool that would speed things up shows this message: Which is definitely really old, so I don't have my hopes for it ever working for missions. Is there any other way to publish mission on workshop than using in-game editor? There are some other missions that are published for multiple maps, does everyone just publish them by hand?
  7. SkaceKachna

    How to stop camera commiting?

    ( yea, I choose wrong name for the example scripts, I can see how you can be confused by that :) ) Well, that's the point, I don't want to wait for the first commit to finish. I want to cancel it and create new commit. Right now, it seems like the only way to achieve this is by using sleep instead of camCommitted, because the camCommited will wait for the longest commit, not the latest commit as demonstrated in the example mission. So if you do: _cam camSetPos _p2; _cam camCommit 100; sleep 2; _cam camSetPos _p3; _cam camCommit 1; waitUntil { camCommitted _cam }; You will end up waiting for 100 seconds, instead of 3, despite the first commit not actually doing anything... Also, I tried using camPrepare* commands, but they have the same behaviour.
  8. SkaceKachna

    How to stop camera commiting?

    OK, so seems like calling camSetPos and camSetTarget before calling camCommit actually stops previous commit and makes camera follow new orders. (so the note here is that you can't just call camCommit without changing anything before). BUT it breaks the camCommitted command, which actually waits for the first commit to finish. I suppose that is a bug? Attached is minimal reproduction mission. The camera should be destroyed upon reaching the target, but it waits until the first commit is done... cameraTest.Altis.zip
  9. SkaceKachna

    How to stop camera commiting?

    I'll try that. GCAM is just variable I used example (short for GlobalCam), i'm using vanilla cameras. Maybe I have some concurrency issue, but from the behaviour I observed, it seems like they stack.
  10. Hello, is there any way to stop camera mid-commit? For example I call: GCAM camSetPos SOMEWHERE_FAR; GCAM camCommit 100; then player performs an action and I want the camera stop moving to the target position and move somewhere else. I've tried to simply call: GCAM camCommit 0; which does nothing (the commits stack?). I've also tried to destroy the camera, which works, but I'm unable to recreate it at same position and rotation. Following works, with the exception of direction, which is incorrect, the camera is looking somewhere completely else when restored: // Save camera position and direction private _pos = getPos(GCAM); private _dir = vectorDir(GCAM); // Destroy camera GCAM cameraEffect ["terminate","back"]; camDestroy GCAM; // Create new camera and assign the position and direction call createGCAM; GCAM camSetPos _pos; GCAM camSetDir _dir; GCAM camCommit 0; Anyone has experience with this? Any method to clear commits? Or any way to "clone" the camera properly? Thanks
  11. Ok, thanks, at least it's not my fault, I tore few hair out trying to make it work
  12. Hey, I have issue loading the BIDebugEngine.dll ... I put it into game root and launch game, but nothing happened. The pipe used for communication is not active and when I launched non profiling version, no message appeared, so good guess would be the dll is ignored. I've tried both x64 and x86 versions. Is the extension broken, or is it on my side? Could somebody try it on version 1.76.142872?
  13. Wow, that's awesome. Good job!
  14. Well there is clue on the download page: You can actually achieve this with pure scripting. But it requires some work. Basically, you need to execute this script for every unit in the game: this addEventHandler["HandleDamage", { // Only if the damage is from projectile if (_this select 4 != "") exitWith { // Return updated damage (_this select 2) * DMG_COEF }; // Don't update damage for non-projectile damage nil }]; This presumes, that you have DMG_COEF defined somewhere. It simply multiplies every damage unit receives. If you have completely static mission (all units for the mission are already spawned at beginning), this is all you need: // Everything will do twice the damage. DMG_COEF = 2; DMG_HANDLER = { // Only if the damage is from projectile if (_this select 4 != "") exitWith { // Return updated damage (_this select 2) * DMG_COEF }; // Don't update damage for non-projectile damage nil }; // Apply updated damage coeficient to all currently spawned units { _x addEventHandler["HandleDamage", DMG_HANDLER]; } foreach allUnits; Of course, this is not enough for most missions. You will need to call addEventHandler for all units that are spawned in dynamically, which differs for every mission...
  15. I'm guessing the issue is with _t != count Towns That makes it possible for _t to be bigger that count Towns and cause infinite loop. It should be _t < count Towns Also, using _t = count Towns to break the loop condition is not the best way to stop it. You can use exitWith to stop the loop and execute some code, it's more clear. Example: for[{_t = 0},{_t < count Towns},{_t = _t + 1}] do { hint format["%1", ClosestTownsState select _t]; // This is same as normal if, but it will stop the loop if the condition is satisfied if((ClosestTownsState select _t) != 1) exitWith { player setPos (ClosestTowns select _t); }; sleep 5; }; You can also use breakTo / breakOut, but it's a bit more complicated
×