Jump to content


  • Content Count

  • Joined

  • Last visited

  • Medals

  • Medals

Community Reputation

42 Excellent

1 Follower

About bull_a

  • Rank
    Staff Sergeant


  • Occupation
    Managing Director at Radian Development

Profile Information

  • Gender

Contact Methods

  • Youtube
  • Steam url id
  • Twitch.Tv

Recent Profile Visitors

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

  1. 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
  2. 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
  3. 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
  4. 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
  5. It's a dirty fix, but could you use BIS_fnc_unitPlay to have it follow a path (and loop for the required duration)?
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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)
  11. 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
  12. 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
  13. 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
  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. Thanks torndeco :) really appreciate you looking into, and fixing this issue so quickly