Jump to content

das attorney

  • Content Count

  • Joined

  • Last visited

  • Medals

  • Medals

Everything posted by das attorney

  1. All Round Defence Version 2.1 Requirements: Combined Operations patched to 1.57 CBA: http://dev-heaven.net/wiki/cca http://dev-heaven.net/wiki/cca/Installation Close Support Weapon features don't work on Arma 2 standalone. Demonized AI flare scripts don't support OA weapons yet. OA only users will need to turn off AI Flares in the user-config. Description All Round Defence (ARD) is a formation typically used by the British Army (and other fighting forces) after a firefight to 're-org' the squad, making sure everyone has ammunition and tending any wounds. As per it's name, it can also be used defensively, providing 360 degree coverage. There are a number of features included to make commanding AI to perform specific tasks easier. This frees up the players time and they can focus on other matters at hand. Up to 20 units can be ordered into ARD. Default Keys - can be changed in the user-config: F1 = Open ARD Menu 1 = Quick ARD When activated, the scripts will count the amount of AI units eligible and order them into a circle around the players current position, with eqidistant spacing between them. The radius of the circle is determined by pre-sets from the ARD Menu (10 meters up to 50 meters), or the player can point his weapon at the terrain and press a user-defined hotkey to order the men into anything up to a 100 meter radius (does not need to open the menu). You can make your squad form back up by pressing the 'Form On Me' button in the ARD menu. Also, if you move outside of the radius, your men will automatically form on you. If you want to move out of the radius and keep your squad in ARD, then press the 'Hold' button in the ARD menu. Your squad can also be set as prone or crouched (default) by pressing the respective 'Prone' and 'Crouch' buttons in the ARD menu. You must be stationary to open the ARD menu or use the hot-key. If you are in a vehicle, it must be stationary. If you are piloting a chopper, you can issue the order if it is hovering (auto-hover helps). If your units are in a vehicle, they will dismount (even the commander and driver). The player will not automatically dismount though. Units manning static weapons or assigned as the gunner in a vehicle will scan the horizon for threats and stay embarked. Medics will not form up into ARD (as they are needed for other tasks instead of perimeter defence). If your squad is in a chopper, they will only dismount if you are less than 2 meters off the ground, or if you are over 50 meters from the ground they will parachute in. Anything in between and they refuse, for fear of dying/injury. If you issued the order to form up from a chopper hovering over 50 meters up, your men will go into 'Hold' mode and will wait for you to manually order them back into formation (with either the default BIS commands or 'Form On Me' from the ARD menu). Due to improvements with AI pathfinding in recent betas, the script can now be activated when in "Combat"/"Danger" mode. When your squad is in ARD, CSW's can be deployed accurately (4 meters in front of player and facing in the players direction) by clicking 'CSW Deploy' and also any CSW within 50 meters can be retrieved by clicking once on the menu - 'CSW Breakdown'. If you have a squad medic, you can order them to heal all wounded units - click on 'Medic'. A maximum of 8 units can be healed at any one time. The Medic will not perform this action if the squad is in combat mode. If a unit is the gunner in a vehicle and the vehicle has smoke launchers, they will deploy smoke if the vehicle is damaged or if one of your squad is killed (giving you time to respond to threats). This feature can be disabled from the user-config if not wanted. Your men will also throw a smoke grenade if they are wounded. They must have at least one smoke grenade in their inventory for this to work. The men will not throw a smoke grenade if it is night. The probability of throwing a smoke grenade can be defined in the user-config. This feature can also be disabled from the user-config if desired. A modified version Demonized's brilliant 'AI Shoot Flare' scripts are included in ARD. If it is night, any AI unit under your control with an underbarrel grenade launcher will fire a flare into the air to illuminate your enemies. ARD also includes the excellent ECHO artillery scripts. If there are artillery pieces available, order your men into them and then press 'Artillery Start'. They will leave the player group and wait for target information to be passed to them. Any units left in your group become spotters and will automatically relay target information to the artillery squad. Fire orders will be issued automatically against any viable targets. Your AI men spot up to 600 meters. The player spotting distance is user definable in the user-config (Default is 1500 meters). Other options in the user-config can be changed such as the time between fire missions, and dispersion of rounds. When you want to stop the artillery firing autonomously, press the "Artillery Stop" button in the ARD menu. They will then finish any fire missions they are on, then re-join your group. This has been coded so that it is compatible with R3F Artillery (if installed). You cannot use both at once, but there should be no clashes between them. R3F may put a warning about Arty modules on the screen. You can safely ignore it. A maximum of three units can be used for the Artillery Support. Here's a couple of really old videos (30 secs free fraps) showing the script working (but not with any new features). VQI-JERI9Fk 3MgdVgCjy5w New for Version 2.1 Added support for squad vehicles. Squad deploys faster into ARD than in previous versions. Issuing the orders in quick succession no longer a massive fail. squad sizes of up to 20 units now supported. Squad spacings automatically adjusted to take into account the number of units. New hot-key added to order squad into ARD without the menu. Vehicle gunners will now scan horizon and remain inside vehicle when ARD is ordered. Vehicle gunners deploy smoke if vehicle is damaged or any of squad killed. Most of the 'skeetdisk' objects not needed now - Only one for the player and one for each of the gunners. Squad members will throw a smoke grenade if injured. If night time, units with grenade launchers fire flares to illuminate enemy forces. (Demonized). ECHO artillery added. Added support for different languages. Precompiled most of the code for better performance. Fixed numerous bugs. Units in player issued "STOP" mode now respond to ARD. Limitations ASR Rearming will over-ride ARD if loaded at the same time. Deactivate ASR with the comms menu to enable ARD. ACE compatibility not thoroughly tested - does not appear to clash, but the ARD scripts do things the vanilla way and do not factor in things like ACE CSW ammo. If there is demand, I may look into full compatibility. Demonized's AI Shoot Flares will replace any BLUFOR weapons with GL's with the M16A2GL. It appears OA weapons do not work with the "fire" command, and need to use "useWeapon" to fire instead (which has it's own set of problems). Will be looked into. Demonized's solution is the best one at this time due to the aforementioned limitation. OPFOR forces use the 30Rnd_545x39_AK which is quite credible IMO. If a gunner is in a vehicle with smoke launchers and there are other units in the driver or commander slot (could be player or medic for example), he will not fire smokes. Not sure why this happens, maybe something to do with rank. Teamswitching can have unexpected results... Some of the BAF static weapons cause a crash when you try to disassemble them. It is a known issue on DevHeaven not specific to ARD. Not tested on MP - If someone can give me feedback on what works and what doesn't, I can make it compatible, for things like Warfare and other player led AI squad based MP stuff. Other mods like FV432 mortar variant not supported yet. Will be looked into. Future I'd like as much feedback as possible - I've done an insane amount of testing to make sure it works, but if there's any bugs you find then let me know. Likewise, if you have any ideas for improvement, drop me a line and I'll check into if it's feasible. Script version to get better documentation. I'd like to work on the Flare Scripts to support OA weapons. (Will check in with Demonized there - got a couple of ideas how to make it work) At the moment, the ECHO artillery does not tell you what they are targetting. Evil Echo has been very supportive in helping me but I can't get the sidechat to work at this time. I'd like to add a 're-equip' function, but that's going to be a long way off yet. I did make a routine for engineers to defuse mines near the group but couldn't get it to work. Will do some more research. The ARD menu could do with a makeover. Unfortunately, my knowledge of dialogs is very limited at this time. If you would like your native language supported, PM me a translation of the stringtable and I will include it in the next release. Thanks Evil Echo for updating his Artillery Scripts (practically on request) and letting me use his work. http://forums.bistudio.com/showthread.php?t=105517&highlight=echo Demonized for the included AI Shoot Flares scripts http://forums.bistudio.com/showthread.php?t=111037 Sickboy for showing me how to create arrays. Myke for his post detailing how to create arrays containing only certain types of units. TPW for his clever 'Sun Angle' script. Sirex1 for helping with doMove issues. Everyone who's posted ideas and feedback in this thread. Cheers all. The guys over at VCB and UKF for keeping it real. License For non-profit users: Do whatever you like with my scripts. Feel free to modify or rip code out of it for your missions and mods, As long as Das Attorney is credited as the original author. If you wish to use any of Evil Echo's or Demonized's work, then contact them for permission. Have at it! Download http://www.gamefront.com/files/20006042/All_Round_Defence_7z http://www.armaholic.com/page.php?id=12815
  2. I wrote a simple script to automate the IDAP de-mining drone. You can use it for cutscenes etc, or just sheer laziness. You input the drone, a centre position to start, and a radius. It will disarm bigger mines/satchels/uxos first so that they detonate the smaller ones (saves you some time). It won't work on underwater mines or underwater mines that have been placed on the land (for good reason). It only carries 4 de-mining bombs so it will automatically land where it started and rearm. Once it is finished it lands and turns itself off. I was going to put in a rearm from crate option, but the magazine classname it uses doesn't have a picture so it errors whenever you look in the crate. In the end I cut that rubbish out and just had it land, pause for a few seconds to simulate rearming then taking off again. I couldn't get it to change altitude reliably (because Arma), so even though the flyInHeight is set to 10, it seems to hover at about 50 metres. I think it's ok for what it is though. Thanks to Evil Organ for gifting me the DLC, which was really nice of him Feel free to improve on this and so on. :) Script: fnc_demine = { params ["_drone","_origin","_radius"]; private _startPos = ASLtoAGL getPosASL _drone; _drone setBehaviour "careless"; _drone setSpeedMode "limited"; _drone flyInHeight 10; _drone removeAllEventHandlers "fired"; _drone addEventHandler ["fired",{ (_this select 0) setVariable ["deminer",_this select 6]; }]; private _pad = _drone getVariable ["pad",objNull]; if (not isNull _pad) then { deleteVehicle _pad }; _pad = createVehicle ["Land_HelipadEmpty_F",_startPos,[],0,"can_collide"]; _drone setVariable ["pad",_pad]; private _noMags = false; private _mines = []; waitUntil { _mines = allMines select {_x distance2D _origin < _radius and {not (getTerrainHeightASL getPosWorld _x < 0)} and {toLower typeOf _x find "underwater" == -1}}; if not (_mines isEqualTo []) then { _mines = _mines apply { [ getNumber (configFile >> "CfgAmmo" >> typeOf _x >> "hit"), _x ] }; _mines sort false; _mines = _mines apply {_x select 1}; private _mine = _mines select 0; _drone doMove ((ASLtoAGL getPosASL _mine) vectorAdd [0,0,50]); waitUntil { sleep 5; (vectorMagnitude velocity _drone < 1 and {unitReady _drone}) or {fuel _drone isEqualTo 0} or {not (canMove _drone)} or {not alive _drone} }; _drone fire "BombDemine_01_F"; waitUntil { sleep 0.5; isNull (_drone getVariable ["deminer",objNull]) }; _mags = magazinesAmmoFull _drone; _noMags = if ([] isEqualTo _mags) then {true} else {if(_mags select 0 select 1 > 0) then {false} else {true}}; sleep 3; }; _mines isEqualTo [] or {_noMags} or {fuel _drone isEqualTo 0} or {not (canMove _drone)} or {not alive _drone} }; call { if (_noMags) exitWith { _drone doMove ASLtoAGL getPosASL (_drone getVariable ["pad",objNull]); waitUntil { unitReady _drone or {fuel _drone isEqualTo 0} or {not (canMove _drone)} or {not alive _drone} }; _drone land "land"; waitUntil { sleep 0.5; isTouchingGround _drone }; sleep 3; _drone removeMagazines "PylonRack_4Rnd_BombDemine_01_F"; _drone addMagazine "PylonRack_4Rnd_BombDemine_01_F"; if (alive _drone) then { [_drone,_origin,_radius] spawn fnc_demine } }; if (_mines isEqualTo []) exitWith { _drone doMove _startPos; waitUntil { unitReady _drone or {fuel _drone isEqualTo 0} or {not (canMove _drone)} or {not alive _drone} }; _drone land "land"; waitUntil { sleep 0.5; isTouchingGround _drone; }; _drone engineOn false; _pad = _drone getVariable ["pad",objNull]; if (not isNull _pad) then { deleteVehicle _pad }; } } }; Here's a test mission (I don't think you need to own the dlc to play it as you don't technically use the assets) https://drive.google.com/open?id=0B1kzYgzONxC0RGN6cE9VMVlUZnM 0,0,0 to start demining!
  3. Hi all, I'm trying to make a tooltip with text over multiple lines. I can make a tooltip no problem with just one line of text _button ctrlSetTooltip "some text"; But if I try something like: _button ctrlSetTooltip "some text\nSome more text"; Then it displays exactly like it's written. So the \n newline character does nothing. I can't use something like _txt = composeText ["some text", lineBreak, "Some more text"]; _button ctrlSetTooltip _txt; because Arma expects a string and this is datatype text. It's definitely possible because when you mouse over items in the player inventory, you get tooltips with 3 lines of text. Does anyone know how this is done?
  4. Preamble: From the wiki, we can use splitstring and joinstring to remove white space from code. So if we have a function like this one (from the wiki): fnc_deleteTestObj = { _this addMPEventHandler ["MPKilled", { _this = _this select 0; { deleteVehicle _x; } forEach (_this getVariable ["effects", []]); if (isServer) then { deleteVehicle _this; }; }]; _this setDamage 1; }; We can do: copyToClipboard(([fnc_deleteTestObj] joinString "") splitString toString [9,13,10] joinString "") and it returns: { _this addMPEventHandler ["MPKilled", { _this = _this select 0; { deleteVehicle _x; } forEach (_this getVariable ["effects", []]); if (isServer) then { deleteVehicle _this; }; }]; _this setDamage 1; } Which is quite nice. But I wanted a way to remove as much white space as I can (for sending code/variables over the network etc), plus I just fancied playing about with recursion. So with this function, we can use our "fnc_deleteTestObj" function again and plug it in: copyToClipboard(([fnc_deleteTestObj] joinString "") call fnc_whitespace) This returns: {_this addMPEventHandler["MPKilled",{_this=_this select 0;{deleteVehicle _x;}forEach(_this getVariable["effects",[]]);if(isServer)then{deleteVehicle _this;};}];_this setDamage 1;} I'm using joinstring in these examples as opposed to format as it doesn't have the 8k limit. Apparently formatText isn't limited and I'm not sure about str. But you could do this I suppose - just be aware it might have a limit: (str fnc_deleteTestObj) call fnc_whitespace Uses As mentioned, you could shorten variables prior to sending them over the network (then compileFinal at other end). I'm aware that programs like these exist already, but I wanted to do it in sqf (like within the engine). It should be ok but will have a problem if you do silly things like putting spaces into variables ex: player setVariable ["there are spaces in this",true]; which is a bit of a no-no imo and bad practice. You could probably obfuscate your code with this if you want but there are already good online obfuscators available anyway, and also good online de-obfuscators, like this one: http://unminify.com/ I think Dwarden said he used to do this to his mission files to make them smaller so they wouldn't suck up as much bandwidth, so theres a use for it there I suppose. Obv, I haven't tested this much but it seems ok so far - ymmv. Be aware if you use it on very large functions, then it is recursive so it might freeze your game for a few seconds. If you rename it, make sure you rename the call to it in the code as well or you will break it. Function: Here it is for any interested: fnc_whitespace = { private _noWhitespace = toArray(_this); private _anyWS = false; { if (0 isEqualType _x) then { if ([9,13,10] find _x > -1) then { _noWhitespace set [_forEachIndex,objNull]; _anyWS = true; } else { if ([34,39,94,42,40,41,123,125,91,93,59,58,62,47,43,45,61,46] find _x > -1) then { if (_forEachIndex - 1 > -1) then { if ([32,9,13,10] find (_noWhitespace select (_forEachIndex - 1)) > -1) then { _noWhitespace set [_forEachIndex - 1,objNull]; _anyWS = true; } }; if (_forEachIndex + 1 < count _noWhitespace) then { if ([32,9,13,10] find (_noWhitespace select (_forEachIndex + 1)) > -1) then { _noWhitespace set [_forEachIndex + 1,objNull]; _anyWS = true; } }; } } }; } forEach _noWhitespace; _noWhitespace = _noWhitespace - [objNull]; if (_anyWS) then { _noWhitespace = (toString _noWhitespace) call fnc_whitespace; _noWhitespace = toArray _noWhitespace; }; toString(_noWhitespace) }; And here it is compacted (ho ho ho): fnc_whitespace={private _noWhitespace=toArray(_this);private _anyWS=false;{if(0 isEqualType _x)then{if([9,13,10]find _x>-1)then{_noWhitespace set[_forEachIndex,objNull];_anyWS=true;}else{if([34,39,94,42,40,41,123,125,91,93,59,58,62,47,43,45,61,46]find _x>-1)then{if(_forEachIndex-1>-1)then{if([32,9,13,10]find(_noWhitespace select(_forEachIndex-1))>-1)then{_noWhitespace set[_forEachIndex-1,objNull];_anyWS=true;}};if(_forEachIndex+1 < count _noWhitespace)then{if([32,9,13,10]find(_noWhitespace select(_forEachIndex+1))>-1)then{_noWhitespace set[_forEachIndex+1,objNull];_anyWS=true;}};}}};}forEach _noWhitespace;_noWhitespace=_noWhitespace-[objNull];if(_anyWS)then{_noWhitespace=(toString _noWhitespace)call fnc_whitespace;_noWhitespace=toArray _noWhitespace;};toString(_noWhitespace)} Credit to @dreadedentity for his initial code HERE Enjoy!
  5. I'm doing a fairly simple config adjustment to add a different gun and ammo to the Opfor HMG. Every time I load a mission with this in it, I get an error: Dimensions in class ncb_static_hmg_high should be an array of size 2 And if I shoot at the turret gunner, I can only hit him from the waist down. Plus it seems just by accessing the O_HMG_01_high_F class in my config, that class then has the same error and problems when used. Have I done something wrong in the config? Also, I did note there's a ticket up for this on tracker, but no mention of gunners having no hit detection above the waist. https://feedback.bistudio.com/T119371 Here is my config: class HMG_01_high_base_F; class O_HMG_01_high_F : HMG_01_high_base_F { class Turrets; class MainTurret; class AnimationSources; }; class ncb_static_hmg_high : O_HMG_01_high_F { author = "Das Attorney"; crew = "Horde_gunmanUnit"; displayName = "Mk29 HMG 12.7x99mm (High)"; faction = "ncb_antagonists"; class AnimationSources : AnimationSources { class autonomous_unhide { animPeriod = 1e-006; initPhase = 0; source = "user"; }; class muzzle_source { source = "reload"; weapon = "Horde_HMG_01"; }; class muzzle_source_rot { source = "ammorandom"; weapon = "Horde_HMG_01"; }; class ReloadAnim { source = "reload"; weapon = "Horde_HMG_01"; }; class ReloadMagazine { source = "reloadmagazine"; weapon = "Horde_HMG_01"; }; class Revolving { source = "revolving"; weapon = "Horde_HMG_01"; }; }; class AssembleInfo { assembleTo = ""; base = ""; displayName = ""; dissasembleTo[] = {}; primary = 0; }; class Turrets : Turrets { class MainTurret : MainTurret { magazines[] = {"100Rnd_127x99_mag"}; weapons[] = {"Horde_HMG_01"}; }; }; };
  6. Hi, I'm getting a lot of this spam on my DS test server every 5 seconds since last update (1.76). Not sure what the cause is 2017/10/11, 16:19:03 Wrong player index passed to NetworkObjectInfo::GetPlayerObjectInfo - max=0, received=1 2017/10/11, 16:19:03 In last 5000 miliseconds was lost another 680 these messages. 2017/10/11, 16:19:08 Wrong player index passed to NetworkObjectInfo::GetPlayerObjectInfo - max=0, received=1 2017/10/11, 16:19:08 In last 5000 miliseconds was lost another 614 these messages. 2017/10/11, 16:19:13 Wrong player index passed to NetworkObjectInfo::GetPlayerObjectInfo - max=0, received=1 2017/10/11, 16:19:13 In last 5000 miliseconds was lost another 656 these messages. 2017/10/11, 16:19:18 Wrong player index passed to NetworkObjectInfo::GetPlayerObjectInfo - max=0, received=1 2017/10/11, 16:19:18 In last 5000 miliseconds was lost another 632 these messages. 2017/10/11, 16:19:23 Wrong player index passed to NetworkObjectInfo::GetPlayerObjectInfo - max=0, received=1 2017/10/11, 16:19:23 In last 5000 miliseconds was lost another 596 these messages. 2017/10/11, 16:19:28 Wrong player index passed to NetworkObjectInfo::GetPlayerObjectInfo - max=0, received=1 2017/10/11, 16:19:28 In last 5000 miliseconds was lost another 668 these messages. 2017/10/11, 16:19:33 Wrong player index passed to NetworkObjectInfo::GetPlayerObjectInfo - max=0, received=1 2017/10/11, 16:19:33 In last 5000 miliseconds was lost another 569 these messages. 2017/10/11, 16:19:38 Wrong player index passed to NetworkObjectInfo::GetPlayerObjectInfo - max=0, received=1 2017/10/11, 16:19:38 In last 5000 miliseconds was lost another 611 these messages. 2017/10/11, 16:19:43 Wrong player index passed to NetworkObjectInfo::GetPlayerObjectInfo - max=0, received=1 2017/10/11, 16:19:43 In last 5000 miliseconds was lost another 590 these messages. 2017/10/11, 16:19:48 Wrong player index passed to NetworkObjectInfo::GetPlayerObjectInfo - max=0, received=1 2017/10/11, 16:19:48 In last 5000 miliseconds was lost another 596 these messages. 2017/10/11, 16:19:53 Wrong player index passed to NetworkObjectInfo::GetPlayerObjectInfo - max=0, received=1 2017/10/11, 16:19:53 In last 5000 miliseconds was lost another 656 these messages. I saw this old thread where someone else had this in 2015, but I've not seen this before.
  7. das attorney


    @op Why are you still running 32 bit Arma? Try the 64 bit exe: "C:\Games\SteamApps\common\Arma 3\Arma3_x64.exe" Or w/e your path is.
  8. Yea man, I remember hearing that Kurt Cobain wished he was gay just to piss off the jock "nirvana" community that drank piss-water lager out of the back of their hire/purchase Fords. But as he wasn't so the next best thing he could do was cross-dress. Plus it's fun (probably)
  9. das attorney

    AttachTo Item destruction

    The "killed" EH needs to activated where local, so maybe do fn_Quiksilvers code in the initline with "this", or yes use MPKilled and make sure you only run it once there. Obv check for yourself though as the proof is in the pudding.
  10. das attorney

    Arma 3 inventory idea

    By that rationale, then every idea should have it's own thread in this forum, and they can be all buried here next to each other in the clusterfuck of "ideas" threads in Dev Branch instead. Also, in reply to this: I would say NEITHER. Don't ask a loaded question!
  11. das attorney

    General Discussion (dev branch)

    Same here dude, my rpt is a shithouse of spam at the moment, so went back to stable.
  12. das attorney

    Locking Unlocking vehicle in I&A

    @Tajin It's fucking boring to read the same queries over and over because a poster can't/won't/didn't use the search function. And it's more fucking boring when they provide so little info that the thread takes like 15 posts or so to establish exactly what they want and budding scripters prostrate themselves by offering up whole chunks of code seemingly on demand. They are not helping the OP by getting them to actually use their brain and they are doing themselves a disservice by being at the beck and call of anyone who posts a one-liner question. It's become "script request" and is the reason why I spend less and less time on what was once a good forum.
  13. das attorney

    CTI mission error

    Post some code..... That error is so vague it could be anything
  14. das attorney

    Arma 3 inventory idea

    Is this "new idea" under development on Devbranch? No? Then it goes in the wishlist thread:
  15. das attorney

    General Discussion (dev branch)

    Hmm, unknown strings not fixed for some commands: 22:35:34 Error position: <getUnitTrait "loadCoef" > 0.4) then { pl> 22:35:34 Error Foreign error: Unknown enum value: "loadCoef"
  16. Thanks for all the work and effort you've put into CUP @Chairborne - many fun hours playing the fruits of your labour. Perhaps a break will do you some good and you can get a bit of perspective. Salut!
  17. example #4 on this page https://community.bistudio.com/wiki/forEach
  18. das attorney

    Crash on retrieving data + Battleye error

    Obv, not the reply you want to read but does it happen without ACE? IE If you repro'd this in Vanilla, does it hang and crash to desktop? If not, then it's an ACE thing and you would be better off telling them directly in their thread:
  19. That's a good point. He's saying: if (! alive <string>) then { bla bla bla }; Obv, string isn't an object so it's a fail. @OP "team1" is a string. You need to be referencing some objects _grp = grp player; _aUnitProbablyThePlayer = _grp select 0; if (_aUnitProbablyThePlayer isEqualType "someString") then { systemChat "not going to happen" // hopefully never going to see this code } else { if (_aUnitProbablyThePlayer isEqualType objNull) then { systemChat "yes you are an object"; if (_aUnitProbablyThePlayer isKindOf "CaManBase") then { systemChat "yes you exist and are a man!" }; } };
  20. diag_log ["wtf is myarray select 0?? %1",myarray select 0]; That will answer it for you.
  21. das attorney

    General Discussion (dev branch)

    Bet you're glad you didn't bet on this one either! ;) Nice Friday changelog there BI :)
  22. das attorney

    Interchangable vehicle weapons

    Or mod them via config changes
  23. das attorney

    General Discussion (dev branch)

    I'm not fussed about having anymore extra features but fixing up engine stuff that's not finished or broken would be most welcome.
  24. Just so you know, I run lots of missions with "novoice" applied to standard units because the chatter is superflouous/stealth missions etc (and maybe others do too). Is there not another property that could be used to detect zombie? (Inheritance maybe or some other config property)?? :)
  25. That's weird. ctrlAddEventHandler returns a number so not sure what's happening in your script. What's your code?