Jump to content

Coding

Member
  • Content Count

    133
  • Joined

  • Last visited

  • Medals

Everything posted by Coding

  1. CODI_ArtilleryComputer is a mod made to enhance a mission for artillerists. ArmA 3 gives you two possibillities to use artillery: - Artillerycomputer - Manual It might be realistic to use the Artillerycomputer but it is just boring in a 4h mission if you sit in the base and make a few mapclicks when needed. The manual firing mode with the artillery can be use when you have line of sight. But if you do not have line of sight It is nearly impossible to hit a target within a few shots because you have no rangetables (except for the mortar thanks to LAxeman). So you have to decide if you want to hit and bore to death or if you do not want to hit but have fun. With CODI_ArtilleryComputer you have the option to use a different Artillerycomputer that hopefully makes you more fun. How to use http://cloud-4.steamusercontent.com/ugc/38613241479355600/3ED9488981843B456AEC92EF5998F49FC00D244F/ (238 kB) Open "CodingsArtilleryComputer" by using the mousewheelmenu. - Drivers of Artillery and "Asst. Gunner (Mk6)" are able to use my Artillerycomputer. Enter the position of your artillery. - For the position 10m grids are available. For example if you are located in the middle of LZ Connor on Stratis you should use the coordinates 0298-0187 instead of 029-018 to describe your position more precisely. Enter height of your artillery. - Height values can be found on map. Enter the slope. - Normally the driver of an artillery is shown the slopevalues. Select Artilleryweapon. Select Ammo. Select Mode. Enter position of your target. Enter height of your target. Click on "Calculate". If the target can not be hit an error is displayed. If so, you maybe should change your mode or check if coordinates are entered correctly. Now you should have two solutions. You need to decide if you want to shoot in a high or a low angle. Projecttiles shot in a low angle are faster at the targetlocation but have a higher probability to hit hills between artillery and target. Tell your gunner the angle and direction and let him fire :D - The gunner is displayed his current direction with a 0.01° precision and the current mode. You can save, load and delete targetlocations. Close the Artillerycomputer with the closebutton. In the example image I calculated a shot from LZ Connor to the Hotel in Agia Marina. Known Issues when shooting from steep you dont hit anything bug in arma physic: when shooting from steep the projectiles dont travel parallel to the barrel (I had an offset of ~15°) only shoot from leveled terrain http://feedback.arma3.com/view.php?id=22340 invalid values might produce scripterrors problems with ui sizes mission will be dependent on the mod if the missionmaker has the mod activated while creating a mission Planned features - save/load/delete global - add a spottingcomputer (for fireteamleads) to save targets for artillery - add manual (pdf) - add highest point of flight - (advanced version) In next version Changelog 0.1 - initial release 0.2 - added Module to configure the Mod - added option to set players position if he has a gps - added option to give access to gunner/driver/commander for the artillery computer - added a map - change color of angle to red if the weapon can not shoot in such an angle 0.3 - fixed inverted y coordinates (like on Chernarus)(Maps using letters in coordinates will not be supported in near future) - fixed offset x/y coordinates (like on Chernarus) - fixed hints were displayed for every player - fixed mortar had multiple times an action attached when reassembled - removed burst modes from artillerycomputer - added support to use observervalues - fixed (hopefully) errormessage concerning serialization - changed gui - added userconfig, module forces settings, userconfig runs clientside and can be different for every client - added small guide to add custom addons yourself - tested a different ui with additional 8 targets (within x meters) but it was much too full Dropbox download
  2. key_function.sqf (also makes movement a bit faster): private["_event","_keyCode","_return"]; _event = _this; _keyCode = _event select 1; _return = true; #define FACTOR 50 switch (_keyCode) do { case 1://ESC { call PXS_closeCamera; }; case 2://1 normal view { [2] call PXS_adjustCamera; }; case 3://2 thermograph { [3] call PXS_adjustCamera; }; case 4://3 white is hot { [4] call PXS_adjustCamera; }; case 5://4 black is hot { [5] call PXS_adjustCamera; }; case 50://M redefine default satellite position { call PXS_redefineDefaultPos; }; default { _return = false; }; }; // key combo handling if (!(_return)) then { private["_pressedButtonArray"]; _pressedButtonArray = [_keyCode]; _return = true; // check for key actions switch (true) do { //case 17://W case (({_x in _pressedButtonArray} count (actionKeys "MoveForward")) > 0): { PXS_SatelliteNorthMovementDelta = 8; PXS_SatelliteTarget setPos [((getPos PXS_SatelliteTarget) select 0),((getPos PXS_SatelliteTarget) select 1) + PXS_SatelliteNorthMovementDelta,(getPos PXS_SatelliteTarget) select 2]; call PXS_updateCamera; }; //case 31://S case (({_x in _pressedButtonArray} count (actionKeys "MoveBack")) > 0): { PXS_SatelliteSouthMovementDelta = 8; PXS_SatelliteTarget setPos [((getPos PXS_SatelliteTarget) select 0),((getPos PXS_SatelliteTarget) select 1) - PXS_SatelliteSouthMovementDelta,(getPos PXS_SatelliteTarget) select 2]; call PXS_updateCamera; }; //case 30://A case (({_x in _pressedButtonArray} count (actionKeys "TurnLeft")) > 0): { PXS_SatelliteWestMovementDelta = 8; PXS_SatelliteTarget setPos [((getPos PXS_SatelliteTarget) select 0) - PXS_SatelliteWestMovementDelta,((getPos PXS_SatelliteTarget) select 1),(getPos PXS_SatelliteTarget) select 2]; call PXS_updateCamera; }; //case 32://D case (({_x in _pressedButtonArray} count (actionKeys "TurnRight")) > 0): { PXS_SatelliteEastMovementDelta = 8; PXS_SatelliteTarget setPos [((getPos PXS_SatelliteTarget) select 0) + PXS_SatelliteEastMovementDelta,((getPos PXS_SatelliteTarget) select 1),(getPos PXS_SatelliteTarget) select 2]; call PXS_updateCamera; }; //case 78://Num + case ((({_x in _pressedButtonArray} count (actionKeys "ZoomIn")) > 0) || (({_x in _pressedButtonArray} count (actionKeys "MoveDown")) > 0)): { if ((PXS_SatelliteFOV) >= 0.011) then { PXS_SatelliteFOV = PXS_SatelliteFOV * (0.8); //PXS_SatelliteFOV = PXS_SatelliteFOV - (0.0005 * FACTOR); //PXS_SatelliteZoom = PXS_SatelliteZoom + (0.02 * FACTOR); call PXS_updateCamera; }; }; //case 74://Num - case ((({_x in _pressedButtonArray} count (actionKeys "ZoomOut")) > 0) || (({_x in _pressedButtonArray} count (actionKeys "MoveUp")) > 0)): { if ((PXS_SatelliteFOV) < 8) then { PXS_SatelliteFOV = PXS_SatelliteFOV * (1.0/0.8); //PXS_SatelliteFOV = PXS_SatelliteFOV + (0.0005 * FACTOR); //PXS_SatelliteZoom = PXS_SatelliteZoom - (0.02 * FACTOR); call PXS_updateCamera; }; }; default { _return = false; }; }; }; _return; updateCamera.sqf: PXS_SatelliteCamera camPrepareTarget [ ((getPos PXS_SatelliteTarget) select 0) - 0, ((getPos PXS_SatelliteTarget) select 1) + 1, (getPos PXS_SatelliteTarget) select 2 ]; PXS_SatelliteCamera camSetPos [ (getPos PXS_SatelliteTarget) select 0, (getPos PXS_SatelliteTarget) select 1, ((getPos PXS_SatelliteTarget) select 2) + PXS_SatelliteInitialHeight ]; PXS_SatelliteCamera camPrepareFov PXS_SatelliteFOV; PXS_SatelliteCamera camCommitPrepared 0; switcher.sqf (fix script errors) //the function to switch on/off of SATCOM system //[unitName, activeStatus] call PXS_switcher //unitName - the unit for SATCOM action //activeStatus - true or false //v1.0 A3 private ["_unit","_status"]; _unit = [_this, 0, player] call BIS_fnc_param; _status = [_this, 1, true] call BIS_fnc_param; if (_status) then { _unit removeAction PXS_action; PXS_action = _unit addAction ["Switch on satellite view","pxs_satcom_a3\start_satellite.sqf"]; //hint "SATCOM system is connected."; } else { if (!isNil "PXS_action") then { _unit removeAction PXS_action; }; if (!isNil "PXS_SatelliteActive") then { if (PXS_SatelliteActive) then { call PXS_closeCamera; }; }; //hint localize "SATCOM system is disconnected."; };
  3. Very nice! Can you add an option to disable the gridreference/texture independently atm I can just disable both...
  4. Coding

    CODI_ArtilleryComputer

    Your are right. -still not fixed inverted y coordinates (like on Chernarus)
  5. Coding

    CODI_ArtilleryComputer

    Version 0.3 released please inform me about bugs and needed features DOWNLOAD Changelog: 0.3 - fixed inverted y coordinates (like on Chernarus)(Maps using letters in coordinates will not be supported in near future) - fixed offset x/y coordinates (like on Chernarus) - fixed hints were displayed for every player - fixed mortar had multiple times an action attached when reassembled - removed burst modes from artillerycomputer - added support to use observervalues - fixed (hopefully) errormessage concerning serialization - changed gui - added userconfig, module forces settings, userconfig runs clientside and can be different for every client - added small guide to add custom addons yourself - tested a different ui with additional 8 targets (within x meters) but it was much too full Known Issues: - problems with ui sizes - problems when shooting from slope (bug in Arma, not mine) - mission will be dependent on the mod if the missionmaker has the mod activated while creating a mission
  6. Coding

    CODI_ArtilleryComputer

    Ok, for all addons that are wished: I need classnames of the vehicles that should be supported. Also I need the CfgPatches name of the specific addon. (can be found in editor >> configviewer >> CfgPatches >> search for something looking right) I dont want to download all those mods. RDS Static weapons will definitly NOT supported. In the evening I will do a complete test of the current snapshot and hopefully realease it in the night or tomorrow. BTW: I will add a small guide, what you need to edit to support a specific addonvehicle as long it is configured similar to default artilleryvehicles in arma.
  7. the version does not work... use this one: //============================ 'onPlayerRespawn.sqf' and 'initPlayerLocal.sqf' player setVariable ['QS_seated',FALSE]; //============================ 'sitdown.sqf' /* Script Made By MacRae Modded by [KH]Jman Tweaked by Quiksilver for the addAction shit and MP compatibility */ private ["_chair","_unit"]; _chair = _this select 0; _unit = _this select 1; _chair setVectorUp [0,0,1]; [[_unit,"Crew"],"switchMove",TRUE,FALSE] spawn BIS_fnc_MP; player setVariable ['QS_seated',true]; _unit setPos (getPos _chair); _unit setDir ((getDir _chair) - 180); [[_unit,"Crew"],"switchMove",TRUE,FALSE] spawn BIS_fnc_MP; // again! standup = _unit addaction [ "Stand Up", "scripts\standup.sqf", [], 10, true, true, "", "(player getVariable 'QS_seated')" ]; _unit setPos [getPos _unit select 0, getPos _unit select 1,((getPos _unit select 2) +1)]; //============================ 'standup.sqf' /* Script Made By MacRae Modded by [KH]Jman Tweaked by Quiksilver for MP compatibility */ player setVariable ['QS_seated',false]; [[player,""],"switchMove",TRUE,FALSE] spawn BIS_fnc_MP; player removeAction standup; //============================ On the chair in editor init field this addAction ["Sit Down","sitdown.sqf",[],10,true,true,'',"(!(player getVariable 'QS_seated')) && (abs(speed player) < 1)"];
  8. Coding

    CODI_ArtilleryComputer

    I am working on it actually. I think there will be a release on ~monday It should run stable in SP
  9. Coding

    CODI_ArtilleryComputer

    Thanks, will be fixed in next version (hopefully)
  10. Coding

    CODI_ArtilleryComputer

    Assuming you shoot from a slope != 0° if you change the shooting direction will also change the shootdistance and vice versa I will think about and maybe redo the gui... Sounds like a quick & dirty fix... I will add it if it is possible with addAction, enableSimulation and setVectorUp. Everytime feel free to ask! I will add an optional pbo for custom weapons like rhs M119 27.2. is my last exam and then I will continue to produce code ;)
  11. Coding

    CODI_ArtilleryComputer

    In my opinion a mortar is controlled by 2 men and therefore I decided by default the gunner should not be able to use it. For people with other opinions I created a module to adjust such settings. I will never ever make it default to have access to artillerycomputer as gunner. As mentioned I am working on a userconfig...
  12. Coding

    CODI_ArtilleryComputer

    Sure. By default an Asst. Gunner (Mk6) B_support_AMort_F can use the arty computer. Btw you can place a module in the mission (non real time).
  13. Coding

    CODI_ArtilleryComputer

    Nope sorry. Which weapon/mod you want? Maybe I'll add it. Why the hell you cant place modules in the editor? But I am working on a userconfig. Yes, I will care for other screenresolutions and settings but I can not guarantee it will be good. @all atm I have exams in university. as soon as they are finished I will make a new version.
  14. Coding

    CODI_ArtilleryComputer

    Can you provide a video? What is a "flickering"? Maybe a script is executed globally (unwanted)?
  15. Coding

    CODI_ArtilleryComputer

    Ok, you convinced me. Will be implemented. ---------- Post added at 18:36 ---------- Previous post was at 18:31 ---------- Thanks for the bugreport. I know what the problem is but atm no idea how to fix it. Seems to be the y coordinate is inverted... This will cause more problems as thought.
  16. Coding

    CODI_ArtilleryComputer

    Sure. Anyone can get in as gunner. And an Asst. Gunner Mk6 can access the arty computer by default. I think that will be no problem. The question for me is why you need such a value?
  17. Coding

    CODI_ArtilleryComputer

    Note: if you stay in a (even small) slope your angle AND your direction changes if you want to shoot 50m less. So we have 2 new values per change. 4 Changes (50m more/less/left/right). and a high and low variant. --> 2*4*2 = 16 new values I think the GUI would be too full for such a thing. Someone supports me with my opinion? The Artillery is also meant to be used with at least 2 man: 1 adjusts gun and fires 1 calculates and communicates the angles 1 spotter who ordered artillery 1 guard who scans the horizon and protects the artillery while firing I think you are right. I will delete it in the future. I just read out the config and did not filter it. In the future, yes. Which mod you want? RDS static weapons I will not support until they use a hud that displays shootingangles.
  18. Coding

    CODI_ArtilleryComputer

    No, atm there is only one person who can see the module: me. The video was done with the current snapshot. As soon as I implemented also a nightmap, I will relese it to public. ---------- Post added at 15:59 ---------- Previous post was at 14:07 ---------- I released version 0.2 Downloadlink is updated
  19. Coding

    CODI_ArtilleryComputer

    No problem. Eighter way I wanted to do a video about it. Lets say the arillery is at 0000 0000 and the target at 0100 0100 and you aim with an offset of 100 50. It would be the same if you set the target to 0110 0105 The offset is meant to be used to correct/manipulate your shots on a target. If you aim in the same angles when you shoot 5 rounds, you will hit exactly the same spot. But normally you dont want to hit a taget twice with artillery so you can quickly adjust your fire. I have a forgetful brain and I could imagine if I want to adjust the target I remove it and could not remember... :D
  20. Coding

    CODI_ArtilleryComputer

    Thanks! You can disable artillerycomputer with enableEngineArtillery false; but I left it in the game because of the "known issues". When you shoot from a steep you might miss your target by a few meters or by multiple kilometers. As long as the artillery sometimes shoots in the wrong direction I will not disable the normal artillercomputer.
  21. Hello, I want a GUI to "remember" its values when it is reopened. When I open the GUI for the first time it is initialised with the correct value ("0000"). When I close it, the values are stored using setVariable. But when I reopen it, the initscript is called but no value set at all. Anyone knows why or what I have to change? It seems to be the storing of the variables is not working. Thank you for each idea you post. description.ext: #include "defines.hpp" #include "dialogs.hpp" dialogs.hpp: class CODI_ArtilleryComputer { idd = -1; onLoad = "_nul = [_this select 0] execVM 'initArtilleryComputer.sqf';"; onKeyDown = "if ((_this select 1) == 1) then {_nul = [] execVM 'uninitArtilleryComputer.sqf';};";//unload on escape pressed class controls { class ArtyPosX: RscEdit { idc = 1400; x = 0.385417 * safezoneW + safezoneX; y = 0.291081 * safezoneH + safezoneY; w = 0.0286458 * safezoneW; h = 0.0219914 * safezoneH; }; }; }; openArtillerComputer.sqf: _handle = createdialog "CODI_ArtilleryComputer"; initArtilleryComputer.sqf: _display = _this select 0; ctrlSetText[1400, player getVariable["CODI_artyPosX", "0000"]]; hint "init"; uninitArtilleryComputer.sqf: player setVariable["CODI_artyPosX", ctrlText 1400]; closeDialog 0; hint "uninit"; defines.hpp: /////////////////////////////////////////////////////////////////////////// /// Styles /////////////////////////////////////////////////////////////////////////// // Control types #define CT_STATIC 0 #define CT_BUTTON 1 #define CT_EDIT 2 #define CT_SLIDER 3 #define CT_COMBO 4 #define CT_LISTBOX 5 #define CT_TOOLBOX 6 #define CT_CHECKBOXES 7 #define CT_PROGRESS 8 #define CT_HTML 9 #define CT_STATIC_SKEW 10 #define CT_ACTIVETEXT 11 #define CT_TREE 12 #define CT_STRUCTURED_TEXT 13 #define CT_CONTEXT_MENU 14 #define CT_CONTROLS_GROUP 15 #define CT_SHORTCUTBUTTON 16 #define CT_XKEYDESC 40 #define CT_XBUTTON 41 #define CT_XLISTBOX 42 #define CT_XSLIDER 43 #define CT_XCOMBO 44 #define CT_ANIMATED_TEXTURE 45 #define CT_OBJECT 80 #define CT_OBJECT_ZOOM 81 #define CT_OBJECT_CONTAINER 82 #define CT_OBJECT_CONT_ANIM 83 #define CT_LINEBREAK 98 #define CT_USER 99 #define CT_MAP 100 #define CT_MAP_MAIN 101 #define CT_LISTNBOX 102 #define CT_CHECKBOX 77 // Static styles #define ST_POS 0x0F #define ST_HPOS 0x03 #define ST_VPOS 0x0C #define ST_LEFT 0x00 #define ST_RIGHT 0x01 #define ST_CENTER 0x02 #define ST_DOWN 0x04 #define ST_UP 0x08 #define ST_VCENTER 0x0C #define ST_TYPE 0xF0 #define ST_SINGLE 0x00 #define ST_MULTI 0x10 #define ST_TITLE_BAR 0x20 #define ST_PICTURE 0x30 #define ST_FRAME 0x40 #define ST_BACKGROUND 0x50 #define ST_GROUP_BOX 0x60 #define ST_GROUP_BOX2 0x70 #define ST_HUD_BACKGROUND 0x80 #define ST_TILE_PICTURE 0x90 #define ST_WITH_RECT 0xA0 #define ST_LINE 0xB0 #define ST_SHADOW 0x100 #define ST_NO_RECT 0x200 #define ST_KEEP_ASPECT_RATIO 0x800 #define ST_TITLE ST_TITLE_BAR + ST_CENTER // Slider styles #define SL_DIR 0x400 #define SL_VERT 0 #define SL_HORZ 0x400 #define SL_TEXTURES 0x10 // progress bar #define ST_VERTICAL 0x01 #define ST_HORIZONTAL 0 // Listbox styles #define LB_TEXTURES 0x10 #define LB_MULTI 0x20 // Tree styles #define TR_SHOWROOT 1 #define TR_AUTOCOLLAPSE 2 // MessageBox styles #define MB_BUTTON_OK 1 #define MB_BUTTON_CANCEL 2 #define MB_BUTTON_USER 4 /////////////////////////////////////////////////////////////////////////// /// Base Classes /////////////////////////////////////////////////////////////////////////// class RscText { deletable = 0; fade = 0; access = 0; type = 0; idc = -1; colorBackground[] = { 0, 0, 0, 0 }; colorText[] = { 1, 1, 1, 1 }; text = ""; fixedWidth = 0; x = 0; y = 0; h = 0.037; w = 0.3; style = 0; shadow = 1; colorShadow[] = { 0, 0, 0, 0.5 }; font = "PuristaMedium"; SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; linespacing = 1; tooltipColorText[] = { 1, 1, 1, 1 }; tooltipColorBox[] = { 1, 1, 1, 1 }; tooltipColorShade[] = { 0, 0, 0, 0.65 }; }; class RscStructuredText { deletable = 0; fade = 0; access = 0; type = 13; idc = -1; style = 0; colorText[] = { 1, 1, 1, 1 }; class Attributes { font = "PuristaMedium"; color = "#ffffff"; align = "left"; shadow = 1; }; x = 0; y = 0; h = 0.035; w = 0.1; text = ""; size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; shadow = 1; }; class RscPicture { deletable = 0; fade = 0; access = 0; type = 0; idc = -1; style = 48; colorBackground[] = { 0, 0, 0, 0 }; colorText[] = { 1, 1, 1, 1 }; font = "TahomaB"; sizeEx = 0; lineSpacing = 0; text = ""; fixedWidth = 0; shadow = 0; x = 0; y = 0; w = 0.2; h = 0.15; tooltipColorText[] = { 1, 1, 1, 1 }; tooltipColorBox[] = { 1, 1, 1, 1 }; tooltipColorShade[] = { 0, 0, 0, 0.65 }; }; class RscEdit { deletable = 0; fade = 0; access = 0; type = 2; x = 0; y = 0; h = 0.04; w = 0.2; colorBackground[] = { 0, 0, 0, 1 }; colorText[] = { 0.95, 0.95, 0.95, 1 }; colorDisabled[] = { 1, 1, 1, 0.25 }; colorSelection[] = { "(profilenamespace getvariable ['GUI_BCG_RGB_R',0.77])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.51])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.08])", 1 }; autocomplete = ""; text = ""; size = 0.2; style = "0x00 + 0x40"; font = "PuristaMedium"; shadow = 2; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; canModify = 1; tooltipColorText[] = { 1, 1, 1, 1 }; tooltipColorBox[] = { 1, 1, 1, 1 }; tooltipColorShade[] = { 0, 0, 0, 0.65 }; }; class RscCombo { deletable = 0; fade = 0; access = 0; type = 4; colorSelect[] = { 0, 0, 0, 1 }; colorText[] = { 1, 1, 1, 1 }; colorBackground[] = { 0, 0, 0, 1 }; colorScrollbar[] = { 1, 0, 0, 1 }; colorPicture[] = { 1, 1, 1, 1 }; colorPictureSelected[] = { 1, 1, 1, 1 }; colorPictudeDisabled[] = { 1, 1, 1, 0.25 }; tooltipColorText[] = { 1, 1, 1, 1 }; tooltipColorBox[] = { 1, 1, 1, 1 }; tooltipColorShade[] = { 0, 0, 0, 0.65 }; soundSelect[] = { "\A3\ui_f\data\sound\RscCombo\soundSelect", 0.1, 1 }; soundExpand[] = { "\A3\ui_f\data\sound\RscCombo\soundExpand", 0.1, 1 }; soundCollapse[] = { "\A3\ui_f\data\sound\RscCombo\soundCollapse", 0.1, 1 }; maxHistoryDelay = 1; class ComboScrollBar { color[] = { 1, 1, 1, 1 }; }; style = "0x10 + 0x200"; font = "PuristaMedium"; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; shadow = 0; x = 0; y = 0; w = 0.12; h = 0.035; colorSelectBackground[] = { 1, 1, 1, 0.7 }; arrowEmpty = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_ca.paa"; arrowFull = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_active_ca.paa"; wholeHeight = 0.45; colorActive[] = { 1, 0, 0, 1 }; colorDisabled[] = { 1, 1, 1, 0.25 }; colorPictureDisabled[] = { 1, 1, 1, 1 }; }; class RscListBox { deletable = 0; fade = 0; access = 0; type = 5; w = 0.4; h = 0.4; rowHeight = 0; colorText[] = { 1, 1, 1, 1 }; colorDisabled[] = { 1, 1, 1, 0.25 }; colorScrollbar[] = { 1, 0, 0, 0 }; colorSelect[] = { 0, 0, 0, 1 }; colorSelect2[] = { 0, 0, 0, 1 }; colorSelectBackground[] = { 0.95, 0.95, 0.95, 1 }; colorSelectBackground2[] = { 1, 1, 1, 0.5 }; colorBackground[] = { 0, 0, 0, 0.3 }; soundSelect[] = { "\A3\ui_f\data\sound\RscListbox\soundSelect", 0.09, 1 }; autoScrollSpeed = -1; autoScrollDelay = 5; autoScrollRewind = 0; arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)"; arrowFull = "#(argb,8,8,3)color(1,1,1,1)"; colorPicture[] = { 1, 1, 1, 1 }; colorPictureSelected[] = { 1, 1, 1, 1 }; colorPictudeDisabled[] = { 1, 1, 1, 0.25 }; tooltipColorText[] = { 1, 1, 1, 1 }; tooltipColorBox[] = { 1, 1, 1, 1 }; tooltipColorShade[] = { 0, 0, 0, 0.65 }; class ListScrollBar { color[] = { 1, 1, 1, 1 }; autoScrollEnabled = 1; }; style = 16; font = "PuristaMedium"; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; shadow = 0; colorShadow[] = { 0, 0, 0, 0.5 }; period = 1.2; maxHistoryDelay = 1; colorPictureDisabled[] = { 1, 1, 1, 1 }; }; class RscButton { deletable = 0; fade = 0; access = 0; type = 1; text = ""; colorText[] = { 1, 1, 1, 1 }; colorDisabled[] = { 1, 1, 1, 0.25 }; colorBackground[] = { 0, 0, 0, 0.5 }; colorBackgroundDisabled[] = { 0, 0, 0, 0.5 }; colorBackgroundActive[] = { 0, 0, 0, 1 }; colorFocused[] = { 0, 0, 0, 1 }; colorShadow[] = { 0, 0, 0, 0 }; colorBorder[] = { 0, 0, 0, 1 }; soundEnter[] = { "\A3\ui_f\data\sound\RscButton\soundEnter", 0.09, 1 }; soundPush[] = { "\A3\ui_f\data\sound\RscButton\soundPush", 0.09, 1 }; soundClick[] = { "\A3\ui_f\data\sound\RscButton\soundClick", 0.09, 1 }; soundEscape[] = { "\A3\ui_f\data\sound\RscButton\soundEscape", 0.09, 1 }; style = 2; x = 0; y = 0; w = 0.095589; h = 0.039216; shadow = 2; font = "PuristaMedium"; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; offsetX = 0; offsetY = 0; offsetPressedX = 0; offsetPressedY = 0; borderSize = 0; }; class RscShortcutButton { deletable = 0; fade = 0; type = 16; x = 0.1; y = 0.1; class HitZone { left = 0; top = 0; right = 0; bottom = 0; }; class ShortcutPos { left = 0; top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2"; w = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1) * (3/4)"; h = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; }; class TextPos { left = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1) * (3/4)"; top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2"; right = 0.005; bottom = 0; }; shortcuts[] = { }; textureNoShortcut = "#(argb,8,8,3)color(0,0,0,0)"; color[] = { 1, 1, 1, 1 }; colorFocused[] = { 1, 1, 1, 1 }; color2[] = { 0.95, 0.95, 0.95, 1 }; colorDisabled[] = { 1, 1, 1, 0.25 }; colorBackground[] = { "(profilenamespace getvariable ['GUI_BCG_RGB_R',0.77])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.51])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.08])", 1 }; colorBackgroundFocused[] = { "(profilenamespace getvariable ['GUI_BCG_RGB_R',0.77])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.51])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.08])", 1 }; colorBackground2[] = { 1, 1, 1, 1 }; soundEnter[] = { "\A3\ui_f\data\sound\RscButton\soundEnter", 0.09, 1 }; soundPush[] = { "\A3\ui_f\data\sound\RscButton\soundPush", 0.09, 1 }; soundClick[] = { "\A3\ui_f\data\sound\RscButton\soundClick", 0.09, 1 }; soundEscape[] = { "\A3\ui_f\data\sound\RscButton\soundEscape", 0.09, 1 }; class Attributes { font = "PuristaMedium"; color = "#E5E5E5"; align = "left"; shadow = "true"; }; idc = -1; style = 0; default = 0; shadow = 1; w = 0.183825; h = "((((safezoneW / safezoneH) min 1.2) / 1.2) / 20)"; animTextureDefault = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\normal_ca.paa"; animTextureNormal = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\normal_ca.paa"; animTextureDisabled = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\normal_ca.paa"; animTextureOver = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\over_ca.paa"; animTextureFocused = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\focus_ca.paa"; animTexturePressed = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\down_ca.paa"; periodFocus = 1.2; periodOver = 0.8; period = 0.4; font = "PuristaMedium"; size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; text = ""; action = ""; class AttributesImage { font = "PuristaMedium"; color = "#E5E5E5"; align = "left"; }; }; class RscShortcutButtonMain { idc = -1; style = 0; default = 0; w = 0.313726; h = 0.104575; color[] = { 1, 1, 1, 1 }; colorDisabled[] = { 1, 1, 1, 0.25 }; class HitZone { left = 0; top = 0; right = 0; bottom = 0; }; class ShortcutPos { left = 0.0145; top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.2)) / 2"; w = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.2) * (3/4)"; h = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.2)"; }; class TextPos { left = "(((safezoneW / safezoneH) min 1.2) / 32) * 1.5"; top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 20)*2 - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.2)) / 2"; right = 0.005; bottom = 0; }; animTextureNormal = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\normal_ca.paa"; animTextureDisabled = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\disabled_ca.paa"; animTextureOver = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\over_ca.paa"; animTextureFocused = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\focus_ca.paa"; animTexturePressed = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\down_ca.paa"; animTextureDefault = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\normal_ca.paa"; period = 0.5; font = "PuristaMedium"; size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.2)"; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.2)"; text = ""; action = ""; class Attributes { font = "PuristaMedium"; color = "#E5E5E5"; align = "left"; shadow = "false"; }; class AttributesImage { font = "PuristaMedium"; color = "#E5E5E5"; align = "false"; }; }; class RscFrame { type = 0; idc = -1; style = 64; shadow = 2; colorBackground[] = { 0, 0, 0, 0 }; colorText[] = { 1, 1, 1, 1 }; font = "PuristaMedium"; sizeEx = 0.02; text = ""; }; class RscSlider { deletable = 0; fade = 0; access = 0; type = 3; style = 1024; w = 0.3; color[] = { 1, 1, 1, 0.8 }; colorActive[] = { 1, 1, 1, 1 }; shadow = 0; h = 0.025; }; class IGUIBack { type = 0; idc = 124; style = 128; text = ""; colorText[] = { 0, 0, 0, 0 }; font = "PuristaMedium"; sizeEx = 0; shadow = 0; x = 0.1; y = 0.1; w = 0.1; h = 0.1; colorbackground[] = { "(profilenamespace getvariable ['IGUI_BCG_RGB_R',0])", "(profilenamespace getvariable ['IGUI_BCG_RGB_G',1])", "(profilenamespace getvariable ['IGUI_BCG_RGB_B',1])", "(profilenamespace getvariable ['IGUI_BCG_RGB_A',0.8])" }; }; class RscCheckBox { idc = -1; type = 77; style = 0; checked = 0; x = "0.375 * safezoneW + safezoneX"; y = "0.36 * safezoneH + safezoneY"; w = "0.025 * safezoneW"; h = "0.04 * safezoneH"; color[] = { 1, 1, 1, 0.7 }; colorFocused[] = { 1, 1, 1, 1 }; colorHover[] = { 1, 1, 1, 1 }; colorPressed[] = { 1, 1, 1, 1 }; colorDisabled[] = { 1, 1, 1, 0.2 }; colorBackground[] = { 0, 0, 0, 0 }; colorBackgroundFocused[] = { 0, 0, 0, 0 }; colorBackgroundHover[] = { 0, 0, 0, 0 }; colorBackgroundPressed[] = { 0, 0, 0, 0 }; colorBackgroundDisabled[] = { 0, 0, 0, 0 }; textureChecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa"; textureUnchecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa"; textureFocusedChecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa"; textureFocusedUnchecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa"; textureHoverChecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa"; textureHoverUnchecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa"; texturePressedChecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa"; texturePressedUnchecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa"; textureDisabledChecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa"; textureDisabledUnchecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa"; tooltipColorText[] = { 1, 1, 1, 1 }; tooltipColorBox[] = { 1, 1, 1, 1 }; tooltipColorShade[] = { 0, 0, 0, 0.65 }; soundEnter[] = { "", 0.1, 1 }; soundPush[] = { "", 0.1, 1 }; soundClick[] = { "", 0.1, 1 }; soundEscape[] = { "", 0.1, 1 }; }; class RscTextCheckBox { idc = -1; type = 7; style = 0; x = "0.375 * safezoneW + safezoneX"; y = "0.36 * safezoneH + safezoneY"; w = "0.025 * safezoneW"; h = "0.04 * safezoneH"; colorText[] = { 1, 0, 0, 1 }; color[] = { 0, 0, 0, 0 }; colorBackground[] = { 0, 0, 1, 1 }; colorTextSelect[] = { 0, 0.8, 0, 1 }; colorSelectedBg[] = { "(profilenamespace getvariable ['GUI_BCG_RGB_R',0.77])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.51])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.08])", 1 }; colorSelect[] = { 0, 0, 0, 1 }; colorTextDisable[] = { 0.4, 0.4, 0.4, 1 }; colorDisable[] = { 0.4, 0.4, 0.4, 1 }; tooltipColorText[] = { 1, 1, 1, 1 }; tooltipColorBox[] = { 1, 1, 1, 1 }; tooltipColorShade[] = { 0, 0, 0, 0.65 }; font = "PuristaMedium"; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; rows = 1; columns = 1; strings[] = { "UNCHECKED" }; checked_strings[] = { "CHECKED" }; }; class RscButtonMenu { idc = -1; type = 16; style = "0x02 + 0xC0"; default = 0; shadow = 0; x = 0; y = 0; w = 0.095589; h = 0.039216; animTextureNormal = "#(argb,8,8,3)color(1,1,1,1)"; animTextureDisabled = "#(argb,8,8,3)color(1,1,1,1)"; animTextureOver = "#(argb,8,8,3)color(1,1,1,1)"; animTextureFocused = "#(argb,8,8,3)color(1,1,1,1)"; animTexturePressed = "#(argb,8,8,3)color(1,1,1,1)"; animTextureDefault = "#(argb,8,8,3)color(1,1,1,1)"; colorBackground[] = { 0, 0, 0, 0.8 }; colorBackgroundFocused[] = { 1, 1, 1, 1 }; colorBackground2[] = { 0.75, 0.75, 0.75, 1 }; color[] = { 1, 1, 1, 1 }; colorFocused[] = { 0, 0, 0, 1 }; color2[] = { 0, 0, 0, 1 }; colorText[] = { 1, 1, 1, 1 }; colorDisabled[] = { 1, 1, 1, 0.25 }; period = 1.2; periodFocus = 1.2; periodOver = 1.2; size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; tooltipColorText[] = { 1, 1, 1, 1 }; tooltipColorBox[] = { 1, 1, 1, 1 }; tooltipColorShade[] = { 0, 0, 0, 0.65 }; class TextPos { left = "0.25 * (((safezoneW / safezoneH) min 1.2) / 40)"; top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2"; right = 0.005; bottom = 0; }; class Attributes { font = "PuristaLight"; color = "#E5E5E5"; align = "left"; shadow = "false"; }; class ShortcutPos { left = "(6.25 * (((safezoneW / safezoneH) min 1.2) / 40)) - 0.0225 - 0.005"; top = 0.005; w = 0.0225; h = 0.03; }; soundEnter[] = { "\A3\ui_f\data\sound\RscButtonMenu\soundEnter", 0.09, 1 }; soundPush[] = { "\A3\ui_f\data\sound\RscButtonMenu\soundPush", 0.09, 1 }; soundClick[] = { "\A3\ui_f\data\sound\RscButtonMenu\soundClick", 0.09, 1 }; soundEscape[] = { "\A3\ui_f\data\sound\RscButtonMenu\soundEscape", 0.09, 1 }; }; class RscButtonMenuOK { shortcuts[] = { "0x00050000 + 0", 28, 57, 156 }; soundPush[] = { "\A3\ui_f\data\sound\RscButtonMenuOK\soundPush", 0.09, 1 }; idc = 1; color2[] = { 0, 0, 0, 1 }; color[] = { 1, 1, 1, 1 }; colorBackground2[] = { 0.75, 0.75, 0.75, 1 }; colorBackground[] = { 0, 0, 0, 0.8 }; colorBackgroundFocused[] = { 1, 1, 1, 1 }; colorDisabled[] = { 1, 1, 1, 0.25 }; colorFocused[] = { 0, 0, 0, 1 }; colorText[] = { 1, 1, 1, 1 }; default = 1; text = "OK"; }; class RscButtonMenuCancel { shortcuts[] = { "0x00050000 + 1" }; idc = 2; color2[] = { 0, 0, 0, 1 }; color[] = { 1, 1, 1, 1 }; colorBackground2[] = { 0.75, 0.75, 0.75, 1 }; colorBackground[] = { 0, 0, 0, 0.8 }; colorBackgroundFocused[] = { 1, 1, 1, 1 }; colorDisabled[] = { 1, 1, 1, 0.25 }; colorFocused[] = { 0, 0, 0, 1 }; colorText[] = { 1, 1, 1, 1 }; default = 0; text = "Cancel"; }; class RscControlsGroup { deletable = 0; fade = 0; class VScrollbar { color[] = { 1, 1, 1, 1 }; width = 0.021; autoScrollEnabled = 1; }; class HScrollbar { color[] = { 1, 1, 1, 1 }; height = 0.028; }; class Controls { }; type = 15; idc = -1; x = 0; y = 0; w = 1; h = 1; shadow = 0; style = 16; };
  22. How does the new soundsystem work directly compared to the old soundsystem? I am interested in what i have to write into the config.cpp of a mod. I want to port over SpeedOfSound to the new Soundsystem. It was awesome, but BI broke it and the original author decided to be unreachable by pm or the SoS thread... :(
  23. yes, I mean that :D
  24. Great work! Finally the HUDs are visable without moving the head directly in front of the display and your look even better. One suggestion: can you use the "O" to indicate where the heli is flying with "O" I mean this symbol in the middle: calculate where the heli will be in ~100 m and place there a 3d marker with the "O" as texture if this would be possible it would be awesome!!!
×