Jump to content


  • Content Count

  • Joined

  • Last visited

  • Medals

  • Medals

Everything posted by Harzach

  1. The crosshair is not an accurate representation of where your shots will fall. It is a situational awareness cue meant to compensate for the lack of one's natural sense of their body. That is to say, when you are holding a rifle IRL, you have a clear sense of where the barrel is and where it is pointing. In a 2D game, you do not. If you allow the crosshair to "settle" before firing, it becomes more accurate. If you wait long enough, it becomes very accurate. Prairie-dogging, as you are doing in your video, ensures that it will always be at its least accurate. As Arma is not a hitscan game, an "accurate" crosshair would still be largely useless, as it would not account for bullet drop. Since it is just a cue, one must also consider deviation and the inherent inaccuracy of firing from the ready position. TL;DR - if you want to hit something, aim at it.
  2. Harzach

    Arma 3 Notepad++ Syntax Highlighting

    Thanks for keeping this train rolling!
  3. Harzach

    Fading unit away

    Since transparent is possible, maybe multiple states between are also possible. I haven't read through that topic thoroughly to understand exactly what they're doing, so I can't say for sure.
  4. You could start here: https://community.bistudio.com/wiki/Category:Arma_3:_Functions Not all pages have argument/effect locality documented, but you might get lucky. Not so sure about that advice you received.
  5. Harzach

    Fading unit away

    More discussion here: https://forums.bohemia.net/forums/topic/191975-optical-camouflage-material-research/
  6. If you're careful (and make backups of your sqm files!), there's no reason why you couldn't do a "replace all in files" in Notepad++. You'd have all your missions fixed in a few seconds. You'd need to re-pbo them for your server, but that's trivial as well.
  7. Harzach

    binarize questions

    Keep in mind that this is the mission editing & scripting forum. You might get more eyes on your problem if you asked a moderator to move this to the modelling or configs forum.
  8. Harzach

    TAW View Distance Script

    First, this isn't an addon. The addon version is here. The solution above is perfectly acceptable for the scripted version. For previous versions of the addon, this error was created when the addon was run on the server (which it should not be, @taw_viewdistance is a client addon). This was fixed in v1.7, so make sure the version running on your server is the newest version.
  9. It's up and down constantly. It has been reported many times, not much else we can do. If the old squad XML functionality is all you require, it still works. You can get free/easy hosting for your XML at https://armasquads.com, and probably a few other sites. If you want to do it all yourself, it can even be hosted from a Dropbox account.
  10. My method moves the respawn marker, while @Crazy_Man's moves the player(s) after they spawn. Mine (I think) requires respawn on start, which can feel kind of janky if not done right (or at least creatively), while his requires all players to be spawned (or !isNull), which isn't JIP compatible.
  11. So, you want to find a position within the blue ellipse, but the red ellipse is blacklisted? https://community.bistudio.com/wiki/BIS_fnc_findSafePos A practical example: _pos = ["bluemarkername", 1, 3, 2, 0, 45, 0, "redmarkername"] call BIS_fnc_findSafePos; "respawnmarkername" setPos _pos;
  12. Harzach

    TAW View Distance Script

    Fairly certain the solution is in the post before yours. If _dist is undefined, that means the tawvd_X variables are undefined.
  13. Harzach

    AttachTo static AI weapon glitch/bug

    Oh, I forgot about that thread, glad you got it sorted!
  14. Maybe not real info, but some thoughts? RE: those setLightAttenuation values - the constant is just that, while the linear and quadratic values are coefficients. All of them could be any number. Which are the "best" values is fairly subjective. I've never tried negative values there, so they might or might not be useful. As for 0 through infinity (or max float), I would imagine a slider with an exponential scale would be the most useful as, when approaching max value, the practical difference between two adjacent values will become less significant. Then again, I don't think I have ever used a value greater than perhaps 50 for any of them.
  15. Harzach

    AttachTo static AI weapon glitch/bug

    Nonsense. Place an invisible helipad somewhere. Name it. Attach all the things to it via BIS_fnc_attachToRelative. Done.
  16. Harzach

    Unit Spawning Loop

    Well, sqf is a language with rules. You can't just jam a bunch of stuff together like that. Your "array" is in curled brackets - arrays use square brackets. Regardless, createUnit does not take an array for type. AUR_spawn = [] spawn { AUR_civ_array = [ "CUP_C_TK_Man_04", "CUP_C_TK_Man_04_Jack", "CUP_C_TK_MAN_04_Waist", "CUP_C_TK_Man_07", "CUP_C_TK_Man_07_Coat", "CUP_C_TK_Man_07_Waist", "CUP_C_TK_Man_08", "CUP_C_TK_Man_07_Jack", "CUP_C_TK_Man_07_Waist", "CUP_C_TK_Man_05_Coat", "CUP_C_TK_Man_07_Waist", "CUP_C_TK_Man_06_Coat", "CUP_C_TK_Man_06_Jack", "CUP_C_TK_Man_06_Waist", "CUP_C_TK_Man_02", "CUP_C_TK_Man_02_Waist", "CUP_C_TK_Man_01_Waist", "CUP_C_TK_Man_01_Coat", "CUP_C_TK_Man_03_Coat", "CUP_C_TK_Man_03_Jack", "CUP_C_TK_Man_03_Waist" ]; while {true} do { { _group = createGroup [civilian, true]; _civ = _group createUnit [_x, getMarkerPos "spawnciv", [], 0, "NONE"]; _wp1 = _group addWaypoint [getmarkerpos "wyptciv", 0]; _wp1 setWaypointType "MOVE"; _wp1 setWaypointSpeed "FULL"; _wp1 setWaypointBehaviour "CARELESS"; _wp1 setWaypointStatements ["true", "{deleteVehicle _x} forEach units this"]; sleep 1; //delay time between each civ } forEach AUR_civ_array; sleep 30; //delay time between waves }; }; You can change the value of the last sleep to adjust the time between waves of civilians. If you just want a steady stream of civs, set it to 1.
  17. What fantasy world are you living in 😄 Fixed my snippet above. I find it best practice to stick to the params as described in the Biki entry addMissionEventHandler ["EntityKilled", { params ["_unit", "_killer", "_instigator", "_useEffects"]; It keeps things consistent and easy for others to read.
  18. Again: So if a player is killed by OPFOR, they all get switched.
  19. I don't think you understand. If any unit, regardless of side, dies in the AO area for any reason, all Independent units will be switched to West, AI included. Something like this makes more sense: addMissionEventHandler ["EntityKilled", { params ["_unit", "_killer", "_instigator", "_useEffects"]; if ((getPos _unit) inArea AO && (side _unit isEqualTo resistance || side _unit isEqualTo civilian)) then { if (isNull _instigator) then {_instigator = UAVControl vehicle _killer select 0}; if (isNull _instigator) then {_instigator = _killer}; if (isPlayer _instigator) then { _rating = rating _instigator; _instigator addRating - (_rating) - 10000; }; }; }]; If a player kills either a civilian or Independent unit in the AO area, their rating will drop to -10000, making them sideEnemy, which is to say everyone's enemy. Side note - you only need to set the rating to -2001 to switch a unit to sideEnemy, but let's go all in. One could get clever and work out a "three strikes" policy, probably by setting/modifying a variable on _instigator. I'm going to sleep. *edit* - cleaned up/fixed, don't Arma while sleepy
  20. Ah yes, of course. Thanks! Which might be why OP's trigger "works" - _script is just a code block that is being executed before the trigger is created.
  21. Well, more like this: addMissionEventHandler ["EntityKilled", { params ["_unit", "_killer", "_instigator", "_useEffects"]; if ((getPos _unit) inArea AO) then { _allIndforGroups = allGroups select {side _x isEqualTo resistance}; _allIndforGroups apply {_grp = creategroup [west, true]; units _x joinSilent _grp}; }; }]; But all that does is change all INDFOR units to WEST when anyone dies in AO.
  22. I guess the obvious question now is - what is _script? Something simple like this works: _script = hint "IT WORKS"; _trigger = createTrigger ["EmptyDetector", [0,0,0], false]; _trigger setTriggerStatements ["true", "[] spawn _script;", ""]; but this does not: _script = hint str _this; _variable = 1; _trigger = createTrigger ["EmptyDetector", [0,0,0], false]; _trigger setTriggerStatements ["this", format ["[%1] spawn _script;", _variable], ""]; //returns "[]" and this, as @Larrow explains, does nothing: _script = {hint str _this}; _variable = 1; _trigger = createTrigger ["EmptyDetector", [0,0,0], false]; _trigger setTriggerStatements ["this", format ["[%1] spawn _script;", _variable], ""];
  23. Skip the trigger and use an event handler. The EntityKilled MEH might be a good place to start. Just evaluate the side of _killed and check if _instigator/_killer is a player.
  24. Hmm, interesting. That's kind of dangerous since the condition field is calculated every half-second or so. I'd have to imagine that best practice would be not to run code there.