Jump to content


  • Content Count

  • Joined

  • Last visited

  • Medals

  • Medals

Everything posted by bull_a

  1. Challenge: Helicopter Landing was created by Radian Development and in association with The Rifles GU. The object of this mission was to provide a training scenario for pilots to practice tight landings. What makes this mission special is the ability to change the difficulty settings on startup via a GUI. Test your abilities as a helicopter pilot by attempting to land in difficult conditions. Chose how you play: select your helicopter, then adjust the difficulty for a more difficult/easier challenge. Turn on 'RotorLib' for the ultimate experience and challenge your friends for the quickest times and highest difficulty rating! Mission Features: - Vehicle Selection - Difficulty Customization - Timer - Can be expanded to work with any helicopter mods Download: Steam Workshop: http://steamcommunity.com/sharedfiles/filedetails/?id=394382185 Armaholic mirror: http://www.armaholic.com/page.php?id=28214 Feel free to mirror this mission but please make sure you adhere to the licence Licence: Regards, Bull
  2. bull_a

    Trip-Wire Event Handler?

    In the past I have used the 'Killed' event handler to detect a mine being triggered, unfortunately the mine must first detonate which in this case might not be entirely useful
  3. Hi all, I'm in a spot of bother with trying to return the mini-map control (whilst in multiplayer). I have looked at this topic but am unable to get the script working. Here is what I have so far: // add group draw handler to mini-map _nul = [] spawn { disableSerialization; _ctrlMiniMap = controlNull; // search loop to return mini-map map control while {isNull _ctrlMiniMap} do { { _ctrlMiniMap = _x displayCtrl 101; if !(isNull _ctrlMiniMap) exitWith {true;}; } count (uiNamespace getVariable ["IGUI_Displays",[]]); sleep 0.1; }; // adds draw handler _ctrlMiniMap ctrlAddEventHandler ["Draw",{_nul = _this call RAD_fnc_groupMarkersMapDraw;}]; }; I have run both the script from the topic (see above) and my modified version. Both offer no success, any ideas or examples for how to get this working would be greatly appreciated? Thanks, Bull
  4. Ok so no joy from my end: _controlRtn = ""; _lineBreak = toString [13,10]; _displays = uiNamespace getVariable "IGUI_Displays"; _displays = _displays + allDisplays; { _controlRtn = _controlRtn + "========================================"; _controlRtn = _controlRtn + _lineBreak + (str _x) + _lineBreak; _controls = allControls _x; for "_i" from 0 to ((count _controls) - 1) do { _control = _controls select _i; _controlRtn = _controlRtn + (format ["Control: %1 Type: %2",_control,(ctrlType _control)]) + _lineBreak; }; } forEach _displays; copyToClipboard _controlRtn; Output: I thought that it was maybe this control: "RscCustomInfoMiniMap" but that display did not appear in the list. So I tried running a loop in the mission to see whether Display #317 is ever loaded: _nul = [] spawn { while {true} do { _displaysUnique = []; _displays = allDisplays + (uiNamespace getVariable ["IGUI_Displays",[]]); { _displaysUnique pushBackUnique _x } forEach _displays; { systemChat format ["%2 Display: %1",(ctrlIDD _x),diag_tickTime]; } forEach _displaysUnique; systemChat "========================================"; sleep 5; }; }; It does not ever appear in the list. Not going to give up, but going to concede this round
  5. Hi all, I have found the problem. @fn_Quiksilver thank you for the code example. However, I have been running this through on the 'Dev-Branch' and found out that the 'new' mini-map cannot be hooked into using the above methods. The code from the first post was found to have worked on the 'release' branch but not on the 'Dev-Branch'. I am currently investigating why this is not possible and will update this topic with any findings Bull
  6. It's a dirty fix, but could you use BIS_fnc_unitPlay to have it follow a path (and loop for the required duration)?
  7. Is the portable light an in-game object or a scripted light source? If its an in-game object chances are there is a way to do it, but will not be easy (and most likely require a mod). If its a scripted light source have a look at the following commands: setLightColor setLightAmbient setLightIntensity Hope thats useful, Bull
  8. Try something like this: class RscSlider; class nevDebugMenu { duration = 99999; idd = 80000; onLoad = "_nul = [""onLoad"",this] call NEV_fnc_nevDebugMenu;"; // changed expression and function call class controls { // A slider to change the overcast value (look at RscXSlider - more pretty version of RscSlider) class overcastSlider: RscSlider { idc = 80003; x = "SafeZoneX + (960 / 1920) * SafeZoneW"; y = "SafeZoneY + (285 / 1080) * SafeZoneH"; w = "(200 / 1920) * SafeZoneW"; h = "(30 / 1080) * SafeZoneH"; type = CT_SLIDER; style = SL_HORZ; tooltip = "Change overcast"; onSliderPosChanged = "_nul = [""sliderMoved"",this] call NEV_fnc_nevDebugMenu;"; // added onSliderPosChanged event handler }; }; }; NEV_fnc_nevDebugMenu: Just as a heads up, the overcast values range from 0 to 1, as such, I have ammended your sliders range values. It is better to describe functions in the CfgFunctions and let the game handle this for you. From preference I try to bundle the display script/handler functions in to one program and switch between different modes (best to only use this for up to 10 different modes). // check if calling machine has interface if !(hasInterface) exitWith {}; _this params [ ["_mode","",[""]], ["_params",[],[[]]] ]; switch (_mode) do { //------------------------------------------------------- // onload - executed when interface load handler is fired case "onLoad" : { _params params [ ["_display",displayNull,[displayNull]] ]; // check if display was passed if (isNull _display) exitWith {}; // set slider position _sliderCtrl = _display displayCtrl 80003; _sliderCtrl sliderSetRange [0,1]; _sliderCtrl sliderSetPos 0.5; }; //------------------------------------------------------- // sliderMoved - executed when slider position is changed case "sliderMoved" : { _params params [ ["_sliderCtrl",controlNull,[controlNull]], ["_sliderPos",0,[0]] ]; // check control was passed if (isNull _sliderCtrl) exitWith {}; // get display to update other controls _display = ctrlParent _sliderCtrl; // set the overcast from slider value 0 setOvercast _sliderPos; forceWeatherChange; // submits the change (best to have this on a submit button as it needs to sync to all clients) }; //------------------------------------------------------- // default case - displays error message for invalid mode default { _nul = ["NEV_fnc_debugMenu: '_mode' was invalid!"] call BIS_fnc_error; }; }; (I haven't tested this code) Hope this helps point you in the right direction :) Bull
  9. bull_a

    Make player not drown

    You could do something like this: _playerPos = getPosWorld player; while {surfaceIsWater _playerPos} do { if ((getOxygenRemaining player) < 1) then { player setOxygenRemaining 1; }; // update position var and delay _playerPos = getPosWorld player; sleep 1; }; For what you want you will have to modify it slightly, but it's a start :) Hope that helps, Bull
  10. What I would add to this is to keep all your admin scripts/functions on the server so that it is harder for clients (and potential hackers) to be able to get access to them and to execute them. Also, with regards to remote executing and security you may also want to have a look at this page: https://community.bistudio.com/wiki/Arma_3_Remote_Execution It might be worth building in something into the server config/game files that has the ability to 'whitelist' player UID's when attempting to remoteExec certain functions Hope this is useful, Bull
  11. Can you not use a trigger and then set the side to the 'NME' side with the activation set to 'Not Present'? Also, based on a reply to another topic you posted I would suggest looking through either an Invade & Annex or Domination mission file (remember to read the licence before modifying or copying out script files)
  12. bull_a

    View Distance for MP

    Have a look at thew following page: https://community.bistudio.com/wiki/Arma_3_Mission_Parameters It is possible to setup custom view distances as part of the 'Mission Parameters'. Other than that, you will need to use the commands setViewDistance and setObjectViewDistance. From what I have seen in the past, if you remove the attributes above from the server.armaprofile it will use the mission parameter value/client value. Forcing players to have a specific view distance (default is 1600m) is good for small-scale PvP scenarios, like what is done in Project Argo, but for more expansive and combined arms game play I would suggest to leave these settings open to players to set. One of the better interfaces is CH View distance, which is both available as Addon and also in 'mission form'. Hope that helps
  13. Pretty sure you cant create a blur texture as this would be more of a post-process effect If you want to blur the screen you can create one of these effects using ppEffectCreate. One good example of where this effect is used is the BIS_fnc_halo function. There are two options to accomplish what you want: Blur the screen then use the createDialog command to create you interface (do this if this it is not a custom interface) Create the interface, use the 'onLoad' UI Event handler to then execute a script which loads the interface content and blurs the screen (for custom screens only) You can also then use the 'onUnload' event to clear the blur when the interface is closed. Hope this helps, Bull
  14. Hi all, sorry if this has already been posted but I was unable to find a specific topic. I am trying to separate out different xml nodes into external documents to make maintaining them a bit easier. However, I have hit a bit of a bump in that xml does not benefit from pre-processor commands such as the '#include' command. I have looked into externally parsing entities but was unsure if the engine would limit the use of this. This solution would be perfect for what I am attempting to do but as far as I can tell this is not working. Seeing as I don't think this will work, does anyone know of some good programs that would be able to merge selected xml files into one file? My folder setup is as follows: | Mission Root |_ stringtable.xml |_ stringtables |_stringtable_1.xml |_stringtable_3.xml |_stringtable_2.xml Ideally what is needed is something to take all the xml files in this folder and merge them into the stringtable.xml file. Any suggestions? Also, if anyone has been able to use a method to efficiently merge xml files, would you be kind enough to share it to the rest of the community? Kind regards, Bull
  15. From what I have tried, the entity parsing did not work :( I think its time to find a program that can do this for me
  16. Thanks torndeco :) really appreciate you looking into, and fixing this issue so quickly
  17. Hi all, I have already created a ticket for this on the ExtDB3 BitBucket issues page, but I just wanted to run this past the community as well. The problem I am getting is that when I try to call multiple stored procedures (one after the other) the first one executes and returns the expected results, however when the second (next) request is sent off it returns the following error message: [0,"Error MariaDBQueryException Exception"] I ran the ExtDB3 plugin with the debug .dll and .exe and I get the following messages in the debug files [21:06:08:265003 +00:00] [Thread 8196] extDB3: Input from Server: 0:SQL:CALL SPFNC_TESTING() [21:06:08:265073 +00:00] [Thread 8196] extDB3: SQL: Trace: Input: CALL SPFNC_TESTING() [21:06:08:265135 +00:00] [Thread 8196] extDB3: SQL: Error MariaDBQueryException: Commands out of sync; you can't run this command now [21:06:08:265148 +00:00] [Thread 8196] extDB3: SQL: Error MariaDBQueryException: Input: CALL SPFNC_TESTING() [21:06:08:265159 +00:00] [Thread 8196] extDB3: Output to Server: [0,"Error MariaDBQueryException Exception"] (The source files are on the Issue page here) Has anyone come across this issue before, and know why this is happening? My initial though is that the CALL command is starting a new thread and is not ending when the procedure has returned/ended meaning that new calls to the extension will always return an error. When I pass the following code (please see below) to the extension, it resets the protocols and database connection and I can again send off a CALL command. 9:RESET Any help or a point in the right direction is appreciated, Bull
  18. Thanks for the update :) Be sure to let me know if you want some more files and log information on the ticket Bull
  19. Hi harmdhast, thanks for having a look, I have attached the source to the issue in the external link. This is how it looks in the script file: _return = "extdb3" callExtension "0:SQL:CALL SPFNC_TESTING()"; _return = call compile _return; _return params [ ["_key",0,[0]], ["_result",[],[]] ]; if (_key isEqualTo 0) exitWith { diag_log "ERROR/fnc_log: 'CALL SPFNC_TESTING()' ended in error"; nil; // returns nothing }; // attempts to call again _return = "extdb3" callExtension "0:SQL:CALL SPFNC_TESTING()"; _return = call compile _return; _return params [ ["_key",0,[0]], ["_result",[],[]] ]; if (_key isEqualTo 0) exitWith { diag_log "ERROR/fnc_log: 'CALL SPFNC_TESTING()' ended in error"; nil; // returns nothing }; (This is an edit/testing script - it is designed to return a result set from a SELECT query) The second query is what is returning the errors and log entry. Bull
  20. Hi all, I'm trying to set a rocks texture to a custom texture (at the moment I am testing using "#argb(8,8,3)color(1,1,0,1)"). I have had a look in the config class for the rock I am using, "Land_BluntStone_02". However, there is no entry in the hiddenSelectionTextures attribute which is causing me to think this cannot be without modding. Has anyone had any luck with setting custom textures on the rock objects? Here is the code I am using for testing: // executed on object 'init' for "_i" from 0 to 100 step 1 do { this setObjectTexture [_i, "#argb(8,8,3)color(1,1,0,1)"; }; Any help or further testing is appreciated, Bull
  21. bull_a

    StrategicMap is dark

    It could be to do with the map control alpha. The alpha for that display (off the top of my head it is RscDisplayStrategicMap) has been turned down/or is a a level with the black background can be seen. If you want it to be brighter I suggest you either create a mod that adjusts the "Black" control in "ControlsBackground" and set it to a light shade of grey. Or you can do this: _nul = [params] call BIS_fnc_StrategicMapOpen _nul = [] spawn { waitUntil {!isNull (findDisplay 506)}; _display = findDisplay 506; _background = _display displayCtrl 1099; _background ctrlSetBackgroundColor [1,1,1,1]; }; (Code not tested) Hope this helps, or at least points you in the right direction. Bull
  22. Hi all, has anyone been able to successfully execute an addAction command on a simpleObject. The action ID is always returning as -1 indicating the action has not been added. _simpleVeh = createSimpleObject ["\a3\weapons_F\ammo\mag_univ.p3d",(getPosWorld player)]; _actionID = _simpleVeh addAction ["Some action name", {hint "You picked it"}]; systemChat str _actionID; // always displays -1 I'm unsure as to why this is happening, maybe something to do with the simulation?! Thanks, Bull
  23. Hi all, as it's already known, large numbers in Arma use scientific notation, I believe this happens when the numeric becomes longer than 7 digits. I am trying to output a numeric to screen which has a length of 11 digits. The number is 12345678912 Twelve billion, three hundred and forty-five million, six hundred and seventy-eight thousand, nine hundred and twelve 12,345,678,912 1.23457e+010 So storing the variable is not a problem, the database has been setup to accept integers with a length of 20, however, the problems start to arise when attempting to convert to a string and when attempting to compare and contrast similar numbers (i.e. are extremely close together). An example of this can be seen below _bool = 12345678912 < 12345678913; // _bool is returned as false This is a problem with rounding when using scientific notation and unfortunately this cannot be worked around (as far as I know). Does anyone have a solution or a link to some documentation I could look at? Any help is appreciated. Thanks, Bull
  24. Thanks Greenfist, this was one of the ways we investigate! Seems that, as always, this is going to be more hassle than it's worth :)
  25. Another way of doing it (but would recommend the above method for a small list of objects). This method is best with scripts to return a list of objects in a trigger _trigger = someTrigger; _allObjects = [list of objects]; _objectsInTrigger = []; { if ([_trigger,_x] call BIS_fnc_inTrigger) then { _objectsInTrigger pushBack _x; }; } forEach _allObjects; // return _objectsInTrigger; (Un-tested) Hope this is helpful