Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 01/18/2018 in all areas

  1. 9 points
    By: CubeX Designs *FOR VERSION 5.0* Difficulty: Medium 1. Preview 2. Installation 3. FAQ 1| Preview: 2| Installation: 1: Go to your description.ext and find this line: #include "config\Config_Master.hpp" Below that line add this code: #include "CBX\CBXDialogHandler.hpp" 2: Go to your CfgRemoteExec.hpp and find this line: jip = 0; Below that line add this code: #include "CBX\CBXCfgRemoteExec.hpp" 3: Copy all of the files from core\pmenu in our zip file and replace them with the ones in yourmission\core\pmenu. 4: Copy the folder CBX to your mission root folder. 5: Copy the folder @CBX to your arma 3 server root folder. 6. Go to your life_server.pbo and edit the file functions.sqf. Between the function :"TON_fnc_cell_emsrequest" to the function "TON_fnc_cell_adminmsgall" replace the content with this : TON_fnc_cell_emsrequest = compileFinal " private [""_msg"",""_to""]; ctrlShow[2404,false]; _msg = ctrlText 2400; _length = count (toArray(_msg)); if (_length > 400) exitWith {hint localize ""STR_CELLMSG_LIMITEXCEEDED"";ctrlShow[2404,true];}; _to = ""EMS Units""; if (_msg isEqualTo """") exitWith {hint localize ""STR_CELLMSG_EnterMSG"";ctrlShow[2404,true];}; [_msg,name player,5,mapGridPosition player,player] remoteExecCall [""TON_fnc_clientMessage"",independent]; [] call life_fnc_cellphone; hint format [localize ""STR_CELLMSG_ToEMS"",_to,_msg]; ctrlShow[2404,true]; "; //To One Person TON_fnc_cell_textmsg = compileFinal " private [""_msg"",""_to""]; ctrlShow[2401,false]; _msg = ctrlText 2400; _length = count (toArray(_msg)); if (_length > 400) exitWith {hint localize ""STR_CELLMSG_LIMITEXCEEDED"";ctrlShow[2401,true];}; if (lbCurSel 2100 isEqualTo -1) exitWith {hint localize ""STR_CELLMSG_SelectPerson""; ctrlShow[2401,true];}; _to = call compile format [""%1"",(lbData[2100,(lbCurSel 2100)])]; if (isNull _to) exitWith {ctrlShow[2401,true];}; if (isNil ""_to"") exitWith {ctrlShow[2401,true];}; if (_msg isEqualTo """") exitWith {hint localize ""STR_CELLMSG_EnterMSG"";ctrlShow[2401,true];}; [_msg,name player,0] remoteExecCall [""TON_fnc_clientMessage"",_to]; [] call life_fnc_cellphone; hint format [localize ""STR_CELLMSG_ToPerson"",name _to,_msg]; ctrlShow[2401,true]; "; //To All Cops TON_fnc_cell_textcop = compileFinal " private [""_msg"",""_to""]; ctrlShow[2402,false]; _msg = ctrlText 2400; _to = ""The Police""; if (_msg isEqualTo """") exitWith {hint localize ""STR_CELLMSG_EnterMSG"";ctrlShow[2402,true];}; _length = count (toArray(_msg)); if (_length > 400) exitWith {hint localize ""STR_CELLMSG_LIMITEXCEEDED"";ctrlShow[2402,true];}; [_msg,name player,1,mapGridPosition player,player] remoteExecCall [""TON_fnc_clientMessage"",-2]; [] call life_fnc_cellphone; hint format [localize ""STR_CELLMSG_ToPerson"",_to,_msg]; ctrlShow[2402,true]; "; //To All Admins TON_fnc_cell_textadmin = compileFinal " private [""_msg"",""_to"",""_from""]; ctrlShow[2403,false]; _msg = ctrlText 2400; _to = ""The Admins""; if (_msg isEqualTo """") exitWith {hint localize ""STR_CELLMSG_EnterMSG"";ctrlShow[2403,true];}; _length = count (toArray(_msg)); if (_length > 400) exitWith {hint localize ""STR_CELLMSG_LIMITEXCEEDED"";ctrlShow[2403,true];}; [_msg,name player,2,mapGridPosition player,player] remoteExecCall [""TON_fnc_clientMessage"",-2]; [] call life_fnc_cellphone; hint format [localize ""STR_CELLMSG_ToPerson"",_to,_msg]; ctrlShow[2403,true]; "; //Admin To One Person TON_fnc_cell_adminmsg = compileFinal " if (isServer) exitWith {}; if ((call life_adminlevel) < 1) exitWith {hint localize ""STR_CELLMSG_NoAdmin"";}; private [""_msg"",""_to""]; ctrlShow[2407,false]; _msg = ctrlText 2400; _to = call compile format [""%1"",(lbData[2100,(lbCurSel 2100)])]; if (isNull _to) exitWith {ctrlShow[2407,true];}; if (isNil ""_to"") exitWith {ctrlShow[2407,true];}; if (_msg isEqualTo """") exitWith {hint localize ""STR_CELLMSG_EnterMSG"";ctrlShow[2407,true];}; [_msg,name player,3] remoteExecCall [""TON_fnc_clientMessage"",_to]; [] call life_fnc_cellphone; hint format [localize ""STR_CELLMSG_AdminToPerson"",name _to,_msg]; ctrlShow[2407,true]; "; TON_fnc_cell_adminmsgall = compileFinal " if (isServer) exitWith {}; if ((call life_adminlevel) < 1) exitWith {hint localize ""STR_CELLMSG_NoAdmin"";}; private [""_msg"",""_from""]; ctrlShow[2406,false]; _msg = ctrlText 2400; if (_msg isEqualTo """") exitWith {hint localize ""STR_CELLMSG_EnterMSG"";ctrlShow[2406,true];}; [_msg,name player,4] remoteExecCall [""TON_fnc_clientMessage"",-2]; [] call life_fnc_cellphone; hint format [localize ""STR_CELLMSG_AdminToAll"",_msg]; ctrlShow[2406,true]; "; 7: Go to core\functions\fn_keyHandler.sqf and find this line: case 21: { Below that you will see this line: [] call life_fnc_p_openMenu; Replace this line with this line: [] spawn CBX_fnc_openPhone; 8: To make it work you have to set it as a mod in your server startup parameters. Like that : “[email protected];@life_server;heli;jets;kart;mark;@CBX” FINAL: DOWNLOAD ZIP (CLICK) PHONE WALLPAPER PSD FILE ICONS PSD FILE (CLICK) Credit: Coded By Beast, Designed By CubeX For AltisLifeRPG 3| FAQ: Q: Who made this amazing thing? xD. A: CubeX Designs. Q: Is It Free?. A: Like Dhaa?!. Q: Can I change stuff and edit the PSD file?. A: Yes! you can change everything you want In the PSD file. Q: Why the wallpaper psd file size is so big?. A: because the Images size I used is 4K and the size I created the wallpaper is 2048x2048 sorry xD. Q: Will you add more screens (menus) to the phone? (like admin menu and wanted). A: Maybe but we do not guarantee anything. Please Let Us Know If You Have Any Problems With The Phone, We Will Update It For Fixes. Icons made by: Gregor Cresnar Freepik Plainicon Yannick Egor Rumyantsev from www.flaticon.com p.s- please do not share this post in other forums without my permission. thanks
  2. 8 points
    Hey Everyone, I made this dialogue for any store but I'm only showing this for the Clothing store. Just simply copy the code below and pas it into, Dialog \ clothing.hpp class Life_Clothing { idd = 3100; name= "Life_Clothing"; movingEnable = 1; enableSimulation = 1; //onLoad = "[] execVM 'core\client\keychain\init.sqf'"; class controlsBackground { class Background: Life_RscText { idc = -1; colorBackground[] = {0, 0, 0, 0.7}; x = 0.716562 * safezoneW + safezoneX; y = 0.016 * safezoneH + safezoneY; w = 0.273281 * safezoneW; h = 0.968 * safezoneH; }; class Background2: Life_RscText { idc = -1; colorBackground[] = {0, 0, 0, 0.7}; x = 0.716563 * safezoneW + safezoneX; y = 0.016 * safezoneH + safezoneY; w = 0.273281 * safezoneW; h = 0.968 * safezoneH; }; }; class controls { class Title: Life_RscStructuredText { idc = 1100; colorBackground[] = {0, 0, 0, 0}; text = "Clothing Shop"; //--- ToDo: Localize; x = 0.824844 * safezoneW + safezoneX; y = 0.016 * safezoneH + safezoneY; w = 0.0825 * safezoneW; h = 0.033 * safezoneH; }; class ClothingList: Life_RscListbox { onLBSelChanged = "[_this] call life_fnc_changeClothes;"; idc = 3101; x = 0.732031 * safezoneW + safezoneX; y = 0.06 * safezoneH + safezoneY; w = 0.242344 * safezoneW; h = 0.748 * safezoneH; }; class PriceTag: Life_RscStructuredText { idc = 3102; x = 0.778437 * safezoneW + safezoneX; y = 0.907 * safezoneH + safezoneY; w = 0.0567187 * safezoneW; h = 0.022 * safezoneH; }; class TotalPrice: Life_RscStructuredText { idc = 3106; x = 0.778437 * safezoneW + safezoneX; y = 0.874 * safezoneH + safezoneY; w = 0.0567187 * safezoneW; h = 0.022 * safezoneH; }; class FilterList: Life_RscCombo { onLBSelChanged = "_this call life_fnc_clothingFilter"; idc = 3105; x = 0.835156 * safezoneW + safezoneX; y = 0.819 * safezoneH + safezoneY; w = 0.139219 * safezoneW; h = 0.022 * safezoneH; tooltip = "Use this to change to backpack or vests or some other section."; //--- ToDo: Localize; }; class Total: Life_RscStructuredText { idc = 1103; text = "Total Price:"; //--- ToDo: Localize; x = 0.732031 * safezoneW + safezoneX; y = 0.874 * safezoneH + safezoneY; w = 0.0515625 * safezoneW; h = 0.022 * safezoneH; }; class ItemPrice: Life_RscStructuredText { idc = 1104; text = "Item Price:"; //--- ToDo: Localize; x = 0.732031 * safezoneW + safezoneX; y = 0.907 * safezoneH + safezoneY; w = 0.0515625 * safezoneW; h = 0.022 * safezoneH; }; class CloseButtonKey: Life_RscButtonMenu { onButtonClick = "closeDialog 0; [] call life_fnc_playerSkins;"; idc = -1; text = "Exit"; //--- ToDo: Localize; x = 0.732031 * safezoneW + safezoneX; y = 0.951 * safezoneH + safezoneY; w = 0.0670312 * safezoneW; h = 0.022 * safezoneH; }; class BuyButtonKey: Life_RscButtonMenu { onButtonClick = "[] call life_fnc_buyClothes;"; idc = -1; text = "Buy"; //--- ToDo: Localize; x = 0.9125 * safezoneW + safezoneX; y = 0.951 * safezoneH + safezoneY; w = 0.0670312 * safezoneW; h = 0.022 * safezoneH; }; class viewAngle: life_RscXSliderH { onSliderPosChanged = "[4,_this select 1] call life_fnc_s_onSliderChange;"; idc = 3107; color[] = {1, 1, 1, 0.45}; colorActive[] = {1, 1, 1, 0.65}; text = ""; x = 0.00499997 * safezoneW + safezoneX; y = 0.951 * safezoneH + safezoneY; w = 0.221719 * safezoneW; h = 0.033 * safezoneH; tooltip = "Use this to see your person and what they will look like with thier new snazzy clothes."; //--- ToDo: Localize; }; }; }; Then that's it, This is my first post on the release section so please be nice any issues let me know. This was tested on version 5.0 but I see no reason for it to not work on lower versions. I have also attached a Screenshot below.
  3. 7 points
    Author: GhostsBR Description: This is my frist script, is a paid toll. Difficulty: Easy update fix 02/06/18 1. Select your file language and make download. 2. Open/Create a folder called Scripts and drag the pedagio.sqf into it. 3. Go to map editor, create a NPC and place this into: this addAction ["<t color = '#40FF00'>Pay Toll - R$1000</t>", "scripts\pedagio.sqf"]; 4. Create a GATE and place this into: this setVariable ['bis_disabled_Door_1',1,true]; this setVariable ['bis_disabled_Door_2',1,true]; 5. Enjoy. PT-BR.rar EN-US.rar
  4. 6 points
    CREATE EBO’S AND MAKE THEM SIGNABLE FOR ANY ADDON By: Travis Butts So something has been kept hidden from everyone for the reason of them wanting there server fully protected and not wanted people to unbin there stuff, etc. I have been holding this in my pocket for a long time and have not told anyone for the reason of my things and one other server being only ones with EBO's. I feel like this should be released for those that would like to know how to EBO their addons. Q: Why make addons into EBO? A: Security; Almost nobody can get into an EBO's these days, and it gives you an extremely good chance of having your assets remain secure, more-so than obfuscation. Up until this point, almost nobody knew how to make ebo's signable, meaning you could not restrict people from joining your servers with unknown addons if you used ebo files, now you can because this method is public. Step 1: Download the EBO Encunter by Dougemm https://drive.google.com/open?id=1cIynBLnBZib27aFoRNYrSwqcGYHU8n0M Step 2: Pack addons with pboProject with the following settings, if sign with key is off this is because you do not have a key selected in the options https://armaservices.maverick-applications.com/Products/MikerosDosTools/DownloadFree.aspx?download=pboProject.2.24.6.43.Installer.exe Step 3: Once packed, drag and drop pbo on the EBO Encunter and wait for it to turn into a ebo. Step 4: Now you should have a EBO File and the key which was made for the PBO, rename the .pbo part on the bikey to .ebo Step 5: In your server config put this in it, regularCheck = "{}"; Step 6: Put the key file in Keys, run the addons and you should be all good to go!
  5. 6 points
    Hello Guys, today Im going to show you the new Spawnscreen I made (exclusive only for ALRPG). As usal, you can use this script, but your are not allowed to post this Tutorial in any other Forum. Create a new file in the dialog folder called spawnSelection.hpp class life_spawn_selection { idd = 38500; name = "life_spawn_selection"; movingenable = 0; enablesimulation = 1; class controlsBackground { class BGha : Life_RscPicture { idc = 38531; colorbackground[] = {1,1,1,0}; text = "textures\spawnscreen.paa"; x = 0 * safezoneW + safezoneX; y = 0 * safezoneH + safezoneY; w = 1 * safezoneW; h = 1 * safezoneH; }; class MapView : Life_RscMapControl { idc = 38502; colorbackground[] = {1,1,1,0}; x = 0.622916666666667 * safezoneW + safezoneX; y = 0.113077679449361 * safezoneH + safezoneY; w = 0.192708333333333 * safezoneW; h = 0.438544739429695 * safezoneH; maxsatellitealpha = 0.75; alphafadestartscale = 1.15; alphafadeendscale = 1.29; coloroutside[] = {0,1,1,1}; colorsea[] = {0.392156862745098,0.584313725490196,0.929411764705882,1}; }; }; class controls { class SpawnPointList : Life_RscListNBox { idc = 38510; text = ""; sizeex = 0.041; coloumns[] = {0,0,0.9}; drawsidearrows = 0; idcleft = -1; idcright = -1; rowheight = 0.050; x = 0.477083333333333 * safezoneW + safezoneX; y = 0.114060963618486 * safezoneH + safezoneY; w = 0.145833333333333 * safezoneW; h = 0.363815142576205 * safezoneH; onlbselchanged = "_this call life_fnc_spawnPointSelected;"; }; class spawnButton : Life_RscButtonMenu { type = 1; style = "0x02"; colorbackground[] = {1,1,1,0}; text = "Neues Leben"; onbuttonclick = "[] call life_fnc_spawnConfirm"; x = 0.477083333333333 * safezoneW + safezoneX; y = 0.47984267453294 * safezoneH + safezoneY; w = 0.145833333333333 * safezoneW; h = 0.0707964601769911 * safezoneH; colorbackgroundactive[] = {1,1,1,0}; colorbackgrounddisabled[] = {0.95,0.95,0.95,0}; offsetx = 0.003; offsety = 0.003; offsetpressedx = 0.002; offsetpressedy = 0.002; colorshadow[] = {1,1,1,0}; colorborder[] = {0,0,0,0}; bordersize = 0.008; idc = 1000; colorbackgroundfocused[] = {1,1,1,0}; colorbackground2[] = {1,1,1,0}; color[] = {1,1,1,0}; colorfocused[] = {1,1,1,0}; color2[] = {1,1,1,0}; colortext[] = {1,1,1,0}; }; }; }; Now you just need to add the .paa to your textures folder. Thats all. Pic of the whole stuff: spawnscreen.paa
  6. 5 points
    Author: Black Lagoon Original Video: Youtube (but this video not working on 5.0 it is old video) Hi, 1. Download this files, Download files from mega 2. Extract all files to your mission file. 3. Go into your "Functions.hpp" then add this codes after class Master_Directory class Market { file = "core\market"; class openMarketView {}; class refreshMarketView {}; class marketShortView {}; class marketBuy {}; class marketSell {}; class marketGetBuyPrice {}; class marketGetSellPrice {}; class marketconfiguration {}; class marketReset {}; class marketChange {}; class marketGetRow {}; class marketGetPriceRow {}; class marketSetPriceRow {}; }; Like this, class Master_Directory { file = "core"; class initCiv {}; class initCop {}; class initMedic {}; class setupActions {}; class setupEVH {}; class survival {}; class welcomeNotification {}; }; class Market { file = "core\market"; class openMarketView {}; class refreshMarketView {}; class marketShortView {}; class marketBuy {}; class marketSell {}; class marketGetBuyPrice {}; class marketGetSellPrice {}; class marketconfiguration {}; class marketReset {}; class marketChange {}; class marketGetRow {}; class marketGetPriceRow {}; class marketSetPriceRow {}; }; 4. And add this code to into your class Functions. class randomRound {}; 5. Then go into your "dialogs\MasterHandler.hpp" and add this code to end of the file. #include "common_EditorWrapper.hpp" #include "market.hpp" 6. Go into your "dialogs\player_inv.hpp" and add this code after the class ButtonSyncData. class ButtonMarket : Life_RscButtonMenu { idc = 3025; text = "Market"; onButtonClick = "[] spawn life_fnc_openMarketView;"; x = 0.26 + (6.25 / 19.8) + (1 / 250 / (safezoneW / safezoneH)); y = 0.805; w = (6.25 / 40); h = (1 / 25); }; Like this, class ButtonSyncData : life_RscButtonMenu { idc = -1; //shortcuts[] = {0x00050000 + 2}; text = "$STR_PM_SyncData"; onButtonClick = "[] call SOCK_fnc_syncData;"; x = 0.1; y = 0.805; w = (6.25 / 40); h = (1 / 25); }; class ButtonMarket : Life_RscButtonMenu { idc = 3025; text = "Market"; onButtonClick = "[] spawn life_fnc_openMarketView;"; x = 0.26 + (6.25 / 19.8) + (1 / 250 / (safezoneW / safezoneH)); y = 0.805; w = (6.25 / 40); h = (1 / 25); }; 7. Go into your "init.sqf" at the main directory and add this code. if(isDedicated && isNil("life_market_prices")) then { [] call life_fnc_marketconfiguration; diag_log "Market prices generated!"; "life_market_prices" addPublicVariableEventHandler { diag_log format["Market prices updated! %1", _this select 1]; }; //Start server fsm [] execFSM "core\fsm\server.fsm"; diag_log "Server FSM executed"; }; Finally, you can edit item prices from fn_marketConfiguration.sqf and you can edit "News: item increased-decreased." broadcasts from fn_marketChange.sqf".
  7. 5 points
    Author: UPM https://www.youtube.com/channel/UC5WtPqhP-uGfSQtsTR5JXmw Video: https://www.youtube.com/watch?v=t-LbIl8pjrU Download: https://mega.nz/#!9eZDnCgD!MozYasACNvXwSB8yjrRe67e9HKuO9ID-d1kgNNwbXrM Tutorial From (Basically a copy paste): https://altisdev.com/topic/8439/système-de-notification/2 Installation Add at the end of your Functions.hpp class UPM { tag = "UPM"; class UPM_system { file = "UPM"; class showNotification {}; }; }; In your description.ext the part class RscTitles Add #include "UPM\Rsc\RscNotification.hpp" Download then extract the UPM file at the root of your mission. Settings for it: _title : STRING | Default Value : "" _text : STRING | Default Value : "" _stripColor : ARRAY | Default Value : [0.043,0.486,0.769,1] | (OPTIONNAL) _sound : STRING | Default Value : "additemfailed" | (OPTIONNAL) Basic use ["Title","Content pf message"] call UPM_fnc_showNotification Advanced use ["Title","Content of message",[0.043,0.486,0.769,1],"mysound"] call UPM_fnc_showNotification Example of use stringtable [“Information”,localize “STR_NOTF_SendingData”] call UPM_fnc_showNotification; Format [“Information”,format ["Hello %1",name player]] call UPM_fnc_showNotification;
  8. 5 points
    Author: Deadlesszombie / Neil Smith Version: Made with 4.4r4 but should work fine for 5.0, let me know if there are any problems Very simple, made a long time ago for a person but recently decided that it was silly to not release this. Open the zip file and read what is there, PSD included Because i have not re-installed arma as it will prompt me to download nearly 350GB in mods, this is the only screenshot i have, the white logo in the center has been replaced with an arma logo (Hooray you also have my steamid from the screenshot) Have fun Download: Deadless HUD.zip Side note:
  9. 5 points
    This is a simple anti autoclicker i made for Project Silverlake. There isn't really much to it, and very easy to add to your mission. How it works, it counts up your clicks and removes each click from the variable after 1 second. Once the first click gets removed, it will run the if statement and its up to you what it does from there. I set it up to just log it as seen below. ClicksPerSecond = 0; //Sets a value to the variable lastlogging = 0; //Sets value to the last logging clickingstarted = false; // Default value (findDisplay 46) displayAddEventHandler ["MouseButtonDown",{ _this spawn { ClicksPerSecond = ClicksPerSecond + 1; clickingstarted = true; //Ups the clicks per second if(ClicksPerSecond < 0) then {ClicksPerSecond = 0;}; //Just to make sure the value doesn't go below 0 hint format["Clicks per second: %1",ClicksPerSecond]; //Just a hint to demonstrate that it catches your clicks per second uisleep 1; ClicksPerSecond = ClicksPerSecond - 1; // Reduces value after 1 second (helps getting clicks per second) if(ClicksPerSecond >= 20 && clickingstarted) then { //If clicks per second is equal or above 20 it runs this clickingstarted = false; hint format["AutoClicker Detected (%1 c/s)",ClicksPerSecond]; if((lastLogging + 20) < time) then { // if its been 20 seconds since last time it logged it, it will log it again lastLogging = time; // resets the time before it logs it again systemChat "Logged the autoclicker.."; //Replace this with a logging function or auto kick/ban }; }; if(ClicksPerSecond < 0) then {ClicksPerSecond = 0;}; //Just to make sure the value doesn't go below 0 }}]; GIF of how it works: https://i.gyazo.com/62f985e52bcb11eb6f1f0be5c90aefae.mp4 How to use it for your server: You just need to execute it on the player when he joins, so drop it in the initplayerlocal and your good to go! Now you have a simple anti-autoclicker. Made by King / Killer5a
  10. 5 points
    Hello all, Today we had a thread reported "Tool: Generator Class & Shop Arma3 Altislfie" which contained a tool to generate Config_Vehicle classes for vehicles and stores based on text box inputs (see image below). Upon investigation the application (although functional) included a RAT (remote access tool / backdoor) and a key logger. The tool included a dropper which installed the virus onto your machine and onto any connected storage devices such as USB sticks, if you have ran this application I would highly recommend formatting any external storage devices. VirusTotal scan of the .rar file VirusTotal scan of the executed virus The user who created the post has since been banned and the post removed. IMPORTANT If you had downloaded this application (from either here or from the link in the video description from the post) then please check the following (only applicable for Windows): remove SEE_MASK_NOZONECHECKS from your windows environment variables (how-to). check for c91b31a7dd6aea056205bfae04cfff82 in your windows registry (use regedit, ctrl-f) if you find it remove the entry. (how-to) If you are aware that your machine has been infected, I would recommend blocking traffic with the IP address it communicates with (103.212.181.48) (how-to). We do not condone attacking that IP address or it's owner and do not know if the owner is aware of the virus acting from it, steps have been taken to contact them. Going forward we will be taking steps to ensure this does not happen again, we have since made the tools sub-forum require all threads to be approved before being posted to the site where we will run VirusTotal scans of all content uploaded to the thread before allowing it. Any positives from the scans will be investigated as false positives can still occur. We would like to thank you for your understanding and are sorry to those affected.
  11. 5 points
  12. 5 points
  13. 5 points
  14. 4 points
    Authors: Kureo & Zalac Updated by: Kureo Difficulty: Easy Version: Tested on 5.0 (Could work on 4.4) (special thanks to @Danny by Daylight) How to install the new_HUD: Step 1: Download the new_HUD folder: DOWNLOAD HERE Step 2: Go to core/functions and replace (fn_hudUpdate.sqf) and (fn_hudSetup.sqf) with fn_hudUpdate.sqf, fn_hudSetup.sqf, in new_HUD folder! Step 3: Go to dialog folder and put in the new_HUD.hpp file Step 4: Go into description.ext and put under Class RscTitles, this #include "dialog\new_HUD.hpp" comment //#include "dialog\hud_stats.hpp" Step 5: Go into dialog folder, open MasterHandler.hpp and #include "new_HUD.hpp" comment //#include "hud_stats.hpp" Step 6: Put the icons in my folder into the icon folder Step 7: Go to init.sqf, under } count ["gang_area_1","gang_area_2","gang_area_3"]; paste this while {true} do { sleep 1; [] call life_fnc_hudUpdate; }; Enjoy!
  15. 4 points
    I've hidden all of the off-topic conversation, please keep things civil and don't bring unrelated drama into threads.
  16. 4 points
  17. 4 points
    Not quite sure what the callout here is for, I simply answered questions and gave facts. I didn't just outright come here to criticize, I responded to others having issues, such as the person very confused where this file should go: https://github.com/XaFlaForo/AltisLife-IRT-BleedingOut/blob/3f278d240dc0b106b3cf0899e397b903eaa3dc05/Bleedout/config.hpp (And as I said, it's unused/useless in this context, including it by default would be a double definition anyhow). There also was a lack of tutorial here as to what to do with the deathscreen.hpp file in general. As for the comments being copied and pasted without edit, also true: This is most definitely not the master include for IRT configs. But this is: As I stated, most of the content either is incomplete (missing tutorials or without code used to call the functions), has useless code (should have said files, but the config here for example), or is non-functional (has some sort of error). Since we haven't covered issues here, let's take a look at the script to take off your seatbelt from your other shared script: Comments are copy-pasted from the belt-on script and so is the text, so it shows you put on the the belt when you take it off. But hey, I'm the one talking shit here, right?
  18. 4 points
    Hey im releasing my phone that i made when i was working on my lakeside files wich im still working on but thought why not release a peace of it here you go feel free to edit it Picture: My GamerTag Devza and if you need any help add my discord devza#0113 Reminder: im not the best to design guis so please critic so i can make a new version thats better How To Download it should be pretty easy Go inside youre Dialog and open player_inv.hpp and repla it whit this: #include "player_sys.sqf" class playerSettings { idd = playersys_DIALOG; movingEnable = true; enableSimulation = true; class controlsBackground { class HG: life_RscPicture { idc = -1; text = "images\iphone8.paa"; x = 0.0130208 * safezoneW + safezoneX; y = 0.203 * safezoneH + safezoneY; w = 0.332292 * safezoneW; h = 0.583 * safezoneH; }; class HG2: life_RscPicture { idc = -1; text = "images\backpack.paa"; x = 0.270833 * safezoneW + safezoneX; y = 0.4758 * safezoneH + safezoneY; w = 0.171875 * safezoneW; h = 0.297 * safezoneH; }; class moneyTitle: life_RscText { idc = -1; text = ""; x = 0.757813 * safezoneW + safezoneX; y = 0.6914 * safezoneH + safezoneY; w = 0.0572917 * safezoneW; h = 0.022 * safezoneH; }; class moneyStatusInfo: life_RscStructuredText { idc = 2015; sizeEx = 0.020; text = ""; x = 0.116146 * safezoneW + safezoneX; y = 0.61 * safezoneH + safezoneY; w = 0.126042 * safezoneW; h = 0.077 * safezoneH; }; class PlayersWeight : life_RscTitle { idc = carry_weight; style = 1; x = 0.322396 * safezoneW + safezoneX; y = 0.434 * safezoneH + safezoneY; w = 0.0859375 * safezoneW; h = 0.033 * safezoneH; text = ""; }; class itemHeader: life_RscText { idc = -1; text = ""; x = 0.787604 * safezoneW + safezoneX; y = 0.1986 * safezoneH + safezoneY; w = 0.0744792 * safezoneW; h = 0.022 * safezoneH; }; }; class controls { class moneyEdit: life_RscEdit { idc = 2018; text = "1"; sizeEx = 0.030; x = 0.163126 * safezoneW + safezoneX; y = 0.7156 * safezoneH + safezoneY; w = 0.0802083 * safezoneW; h = 0.022 * safezoneH; }; class NearPlayers: life_RscCombo { idc = 2022; x = 0.116146 * safezoneW + safezoneX; y = 0.6892 * safezoneH + safezoneY; w = 0.126042 * safezoneW; h = 0.022 * safezoneH; }; class moneyDrop: life_RscButtonMenu { idc = 2001; text = "Give"; x = 0.116146 * safezoneW + safezoneX; y = 0.7156 * safezoneH + safezoneY; w = 0.0401042 * safezoneW; h = 0.022 * safezoneH; tooltip = "Give money"; onButtonClick = "[] call life_fnc_giveMoney"; }; class licenseHeader: life_RscStructuredText { idc = -1; text = "Licenses"; x = 0.116146 * safezoneW + safezoneX; y = 0.379 * safezoneH + safezoneY; w = 0.06875 * safezoneW; h = 0.022 * safezoneH; }; class Licenses_Menu: life_RscControlsGroup { idc = -1; x = 0.116146 * safezoneW + safezoneX; y = 0.412 * safezoneH + safezoneY; w = 0.126042 * safezoneW; h = 0.11 * safezoneH; class controls { class life_Licenses: life_RscStructuredText { idc = 2014; sizeEx = 0.020; text = ""; x = 0.116146 * safezoneW + safezoneX; y = 0.412 * safezoneH + safezoneY; w = 0.126042 * safezoneW; h = 0.11 * safezoneH; }; }; }; class itemList: life_RscListbox { idc = item_list; x = 0.304062 * safezoneW + safezoneX; y = 0.5836 * safezoneH + safezoneY; w = 0.103125 * safezoneW; h = 0.088 * safezoneH; sizeEx = 0.040; }; class itemEdit: life_RscEdit { idc = item_edit; text = "1"; x = 0.305208 * safezoneW + safezoneX; y = 0.676 * safezoneH + safezoneY; w = 0.0401042 * safezoneW; h = 0.022 * safezoneH; }; class iNearPlayers: life_RscCombo { idc = 2023; x = 0.347605 * safezoneW + safezoneX; y = 0.676 * safezoneH + safezoneY; w = 0.0630208 * safezoneW; h = 0.022 * safezoneH; }; class RemoveButton: life_RscButtonMenu { text = "R"; x = 0.391146 * safezoneW + safezoneX; y = 0.7002 * safezoneH + safezoneY; w = 0.0171875 * safezoneW; h = 0.033 * safezoneH; tooltip = "Remove"; onButtonClick = "[] call life_fnc_removeItem;"; }; class UseButton: life_RscButtonMenu { text = "U"; x = 0.368229 * safezoneW + safezoneX; y = 0.7002 * safezoneH + safezoneY; w = 0.0171875 * safezoneW; h = 0.033 * safezoneH; onButtonClick = "[] call life_fnc_useItem;"; tooltip = "Use"; }; class DropButton: life_RscButtonMenu { idc = 2002; text = "G"; x = 0.345313 * safezoneW + safezoneX; y = 0.7002 * safezoneH + safezoneY; w = 0.0171875 * safezoneW; h = 0.033 * safezoneH; onButtonClick = "[] call life_fnc_giveItem;"; tooltip = "Give"; }; class ButtonAdminMenu_ICON: life_RscPicture { idc = 20210; text = "images\tablet\admin.paa"; x = 0.110417 * safezoneW + safezoneX; y = 0.258 * safezoneH + safezoneY; w = 0.0286458 * safezoneW; h = 0.044 * safezoneH; }; class ButtonAdminMenu: life_RscButtonMenu { idc = 2021; x = 0.110417 * safezoneW + safezoneX; y = 0.258 * safezoneH + safezoneY; w = 0.0286458 * safezoneW; h = 0.044 * safezoneH; onButtonClick = "createDialog ""life_admin_menu""; "; tooltip = $STR_PM_AdminMenu; colorBackground[] = {-1,-1,-1,-1}; colorBackgroundFocused[] = {1,1,1,0.12}; colorBackground2[] = {0.75,0.75,0.75,0.2}; color[] = {1,1,1,1}; colorFocused[] = {0,0,0,1}; color2[] = {0,0,0,1}; colorText[] = {1,1,1,1}; colorDisabled[] = {0,0,0,0.4}; }; class ButtonSettings_ICON: life_RscPicture { idc = -1; text = "images\tablet\config.paa"; x = 0.183751 * safezoneW + safezoneX; y = 0.258 * safezoneH + safezoneY; w = 0.0286458 * safezoneW; h = 0.044 * safezoneH; }; class ButtonSettings: life_RscButtonMenu { idc = -1; x = 0.183751 * safezoneW + safezoneX; y = 0.258 * safezoneH + safezoneY; w = 0.0286458 * safezoneW; h = 0.044 * safezoneH; onButtonClick = "[] call life_fnc_settingsMenu;"; tooltip = "Settings"; colorBackground[] = {-1,-1,-1,-1}; colorBackgroundFocused[] = {1,1,1,0.12}; colorBackground2[] = {0.75,0.75,0.75,0.2}; color[] = {1,1,1,1}; colorFocused[] = {0,0,0,0}; color2[] = {0,0,0,0}; colorText[] = {1,1,1,1}; colorDisabled[] = {1,0,0,0.1}; }; class ButtonKeys_ICON: life_RscPicture { idc = 20111; text = "images\tablet\key.paa"; x = 0.147084 * safezoneW + safezoneX; y = 0.258 * safezoneH + safezoneY; w = 0.0286458 * safezoneW; h = 0.044 * safezoneH; }; class ButtonKeys: life_RscButtonMenu { idc = 2000; x = 0.147084 * safezoneW + safezoneX; y = 0.258 * safezoneH + safezoneY; w = 0.0286458 * safezoneW; h = 0.044 * safezoneH; onButtonClick = "createDialog ""life_key_management"";"; tooltip = "Keys"; colorBackground[] = {-1,-1,-1,-1}; colorBackgroundFocused[] = {1,1,1,0.12}; colorBackground2[] = {0.75,0.75,0.75,0.2}; color[] = {1,1,1,1}; colorFocused[] = {0,0,0,0}; color2[] = {0,0,0,0}; colorText[] = {1,1,1,1}; colorDisabled[] = {1,0,0,0.1}; }; class ButtonCell_ICON: life_RscPicture { idc = 1204; text = "images\tablet\phone.paa"; x = 0.110417 * safezoneW + safezoneX; y = 0.313 * safezoneH + safezoneY; w = 0.0286458 * safezoneW; h = 0.044 * safezoneH; }; class ButtonCell: life_RscButtonMenu { idc = 2001; x = 0.110417 * safezoneW + safezoneX; y = 0.313 * safezoneH + safezoneY; w = 0.0286458 * safezoneW; h = 0.044 * safezoneH; onButtonClick = "createDialog ""Life_cell_phone"";"; tooltip = $STR_PM_CellPhone; colorBackground[] = {-1,-1,-1,-1}; colorBackgroundFocused[] = {1,1,1,0.12}; colorBackground2[] = {0.75,0.75,0.75,0.2}; color[] = {1,1,1,1}; colorFocused[] = {0,0,0,0}; color2[] = {0,0,0,0}; colorText[] = {1,1,1,1}; colorDisabled[] = {1,0,0,0.1}; }; class ButtonSyncData_ICON: life_RscPicture { idc = 1205; text = "images\tablet\sync.paa"; x = 0.182604 * safezoneW + safezoneX; y = 0.313 * safezoneH + safezoneY; w = 0.0286458 * safezoneW; h = 0.044 * safezoneH; }; class ButtonSyncData: life_RscButtonMenu { idc = 2002; x = 0.182604 * safezoneW + safezoneX; y = 0.313 * safezoneH + safezoneY; w = 0.0286458 * safezoneW; h = 0.044 * safezoneH; onButtonClick = "[] call SOCK_fnc_syncData;"; tooltip = $STR_PM_SyncData; colorBackground[] = {-1,-1,-1,-1}; colorBackgroundFocused[] = {1,1,1,0.12}; colorBackground2[] = {0.75,0.75,0.75,0.2}; color[] = {1,1,1,1}; colorFocused[] = {0,0,0,0}; color2[] = {0,0,0,0}; colorText[] = {1,1,1,1}; colorDisabled[] = {1,0,0,0.1}; }; class ButtonGang_ICON: life_RscPicture { idc = 1207; text = "images\tablet\gang.paa"; x = 0.219272 * safezoneW + safezoneX; y = 0.258 * safezoneH + safezoneY; w = 0.0286458 * safezoneW; h = 0.044 * safezoneH; }; class ButtonGang: life_RscButtonMenu { idc = 1209; x = 0.219272 * safezoneW + safezoneX; y = 0.258 * safezoneH + safezoneY; w = 0.0286458 * safezoneW; h = 0.044 * safezoneH; onButtonClick = "if(isNil ""life_action_gangInUse"") then {if(isNil {(group player) getVariable ""gang_owner""}) then {createDialog ""Life_Create_Gang_Diag"";} else {[] spawn life_fnc_gangMenu;};};"; tooltip = "Gang"; colorBackground[] = {-1,-1,-1,-1}; colorBackgroundFocused[] = {1,1,1,0.12}; colorBackground2[] = {0.75,0.75,0.75,0.2}; color[] = {1,1,1,1}; colorFocused[] = {0,0,0,0}; color2[] = {0,0,0,0}; colorText[] = {1,1,1,1}; colorDisabled[] = {1,0,0,0.1}; }; class ButtonWanted_ICON: life_RscPicture { idc = 1210; text = "images\tablet\wanted.paa"; x = 0.147084 * safezoneW + safezoneX; y = 0.313 * safezoneH + safezoneY; w = 0.0286458 * safezoneW; h = 0.044 * safezoneH; }; class ButtonWanted: life_RscButtonMenu { idc = 2008; x = 0.147084 * safezoneW + safezoneX; y = 0.313 * safezoneH + safezoneY; w = 0.0286458 * safezoneW; h = 0.044 * safezoneH; onButtonClick = "[] call life_fnc_wantedMenu"; colorBackground[] = {-1,-1,-1,-1}; colorBackgroundFocused[] = {1,1,1,0.12}; colorBackground2[] = {0.75,0.75,0.75,0.2}; color[] = {1,1,1,1}; colorFocused[] = {0,0,0,0}; color2[] = {0,0,0,0}; colorText[] = {1,1,1,1}; colorDisabled[] = {1,0,0,0.1}; tooltip = $STR_PM_WantedList; }; }; }; Almost done now download these the icon file and put the paa files inside images not the icon folder just the paa files: next up create a folder called tablet inside images and put these icon paa files from the phoneicon.rar folder in there now again oly the paa files in there not the phoneicon folder and youre done: icon.rar phoneicon.rar
  19. 4 points
    Authors: Tonic (Didn't change enough within the files to put mine or anyone else's name as an author) Difficulty: Easy Version: Tested on 5.0 (Could work on 4.4) (Thank you @TaskForceTactical for the idea of this script) Description: Similar to the fed but instead of spawning gold bars when successful this will spawn randomized weapons and gear in a crate. NOTE: To the ungrateful copy paste kids who thinks it's cool to steal credit or try to sell the scripts me or any of my friends created for you guys, if it continues I will no longer help anyone or post scripts to for the community, the only reason why this was released was because it's a small rewrite of Tonic's files. MISSION EDITS: STEP 1: Find a place for your armory on the map and place a marker and name set federal_armory as the variable name. Now you will need to place a vault, a"CargoNet_01_box_F" works perfectly set the variable name to fed_armory and don't forget to set allowDamage to false, a vaulthouse, I use "Land_Research_house_V1_F" for example, and a dome big or small depends on how you want it. To make it easier I've used this compound within the top right area that's apart of the map all I did was place a vault: Step 2: There was a simpler way to do this but I didn't realize until after I made this both ways work the same so go into your fn_useItem.sqf replace "case (_item isEqualTo "blastingcharge"):" with: Step 3: Go into your fn_useItem.sqf replace "case (_item isEqualTo "boltcytter"):" with: Step 4: You will need to configure this so it's the correct coords to the vault & vaulthouse. Go into core >> items and create the file fn_blastingChargeArmory.sqf and paste this in: Step 5: You will need to configure this also with the same coords as you did in fn_blastingChargeArmory.sqf, create a new file in core >> items called fn_boltcutterarmory.sqf and paste this: Step 6: go into core >> civilian and create a file called fn_demoChargeTimerArmory.sqf and paste this: Step 7: Open you Functions.hpp and under "class Items {" add Under "class Civilian {" add Step 7.5: heres what mine looks like: Step 8: Open your CfgRemoteExec.hpp and add LIFE_SERVER EDITS: Step 1: This step locks your doors and prevents exploiting it will need configuring with the same coordinates as Step 5 and Step 4 of the mission edits. Open your init.sqf and add this above "/* Setup the federal reserve building(s) */": Step 2: Go into Functions >> Sytems and create a new file called "fn_handleBlastingChargeArmory.sqf" this is where all the magic happens you're free to edit whatever you paste this: Step 3: Last but not last open your config.cpp and add this under "class Systems {" under "class TON_System {" Step 3.5: here is what yours should look like
  20. 4 points
    Step 1: Go to "Altis_Life.Altis\Dialog\Common.hpp" and at the bottom ADD class Life_ToxicRscListBox { //style = 16; idc = -1; type = 5; x = 0; y = 0; w = 0.275; h = 0.04; sizeEx = GUI_GRID_CENTER_H; style = ST_CENTER; font = "RobotoCondensed"; colorSelect[] = {1, 1, 1, 1}; colorText[] = {1, 1, 1, 1}; colorBackground[] = {0.28,0.28,0.28,0.28}; colorSelect2[] = {1, 1, 1, 1}; colorSelectBackground[] = {0.95, 0.95, 0.95, 0.5}; colorSelectBackground2[] = {1, 1, 1, 0.5}; colorScrollbar[] = {0.2, 0.2, 0.2, 1}; colorPicture[] = {1,1,1,1}; colorPictureSelected[] = {1,1,1,1}; colorPictureDisabled[] = {1,1,1,1}; arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; wholeHeight = 0.45; rowHeight = 0.04; color[] = {0.7, 0.7, 0.7, 1}; colorActive[] = {0,0,0,1}; colorDisabled[] = {0,0,0,0.3}; //sizeEx = 0.023; soundSelect[] = {"",0.1,1}; soundExpand[] = {"",0.1,1}; soundCollapse[] = {"",0.1,1}; maxHistoryDelay = 1; autoScrollSpeed = -1; autoScrollDelay = 5; autoScrollRewind = 0; tooltipColorText[] = {1,1,1,1}; tooltipColorBox[] = {1,1,1,1}; tooltipColorShade[] = {0,0,0,0.65}; class ListScrollBar: Life_RscScrollBar { color[] = {1,1,1,1}; autoScrollEnabled = 1; }; }; class Life_ToxicRscEdit { x = 0; y = 0; w = 0.275; h = 0.04; text = ""; type = 2; style = 0x00 + 0x40; font = "RobotoCondensed"; shadow = 2; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; colorBackground[] = {0, 0, 0, 1}; soundSelect[] = {"",0.1,1}; soundExpand[] = {"",0.1,1}; colorText[] = {0.95, 0.95, 0.95, 1}; colorDisabled[] = {1, 1, 1, 0.25}; autocomplete = false; colorSelection[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 1}; canModify = 1; }; Step 2: Open "Altis_Life.Altis\Dialog\Player_Inv.hpp" and EDIT the following: Change onButtonClick = "[] call life_fnc_giveItem;"; To onButtonClick = "[0] call life_fnc_giveItem;"; Change onButtonClick = "[] call life_fnc_useItem;"; To onButtonClick = "[0] call life_fnc_useItem;"; Change onButtonClick = "[] call life_fnc_removeItem;"; To onButtonClick = "[0] call life_fnc_removeItem;"; Step 3: Open "Altis_Life.Altis\Core\PMenu\fn_giveItem.sqf" and REPLACE with #include "..\..\script_macros.hpp" /* File: fn_giveItem.sqf Author: Bryan "Tonic" Boardwine Description: Gives the selected item & amount to the selected player and removes the item & amount of it from the players virtual inventory. */ private ["_unit","_val"]; private _mode = param [0,0,[0]]; switch (_mode) do { case 0: { _val = ctrlText 2010; ctrlShow[2002,false]; if ((lbCurSel 2023) isEqualTo -1) exitWith {hint localize "STR_NOTF_noOneSelected"; ctrlShow[2002,true];}; _unit = lbData [2023,lbCurSel 2023]; _unit = call compile format ["%1",_unit]; if ((lbCurSel 2005) isEqualTo -1) exitWith {hint localize "STR_NOTF_didNotSelectItemToGive";ctrlShow[2002,true];}; _item = lbData [2005,(lbCurSel 2005)]; if (isNil "_unit") exitWith {ctrlShow[2002,true];}; if (_unit == player) exitWith {ctrlShow[2002,true];}; if (isNull _unit) exitWith {ctrlShow[2002,true];}; //A series of checks *ugh* if (!([_val] call TON_fnc_isnumber)) exitWith {hint localize "STR_NOTF_notNumberFormat";ctrlShow[2002,true];}; if (parseNumber(_val) <= 0) exitWith {hint localize "STR_NOTF_enterAmountGive";ctrlShow[2002,true];}; if (isNil "_unit") exitWith {ctrlShow[2001,true]; hint localize "STR_NOTF_notWithinRange";}; if (!([false,_item,(parseNumber _val)] call life_fnc_handleInv)) exitWith {hint localize "STR_NOTF_couldNotGive";ctrlShow[2002,true];}; [_unit,_val,_item,player] remoteExecCall ["life_fnc_receiveItem",_unit]; _type = M_CONFIG(getText,"VirtualItems",_item,"displayName"); hint format [localize "STR_NOTF_youGaveItem",_unit getVariable ["realname",name _unit],_val,(localize _type)]; [_mode] call life_fnc_p_updateMenu; ctrlShow[2002,true]; }; case 1: { _val = ctrlText 10010; ctrlShow[10007,false]; if ((lbCurSel 10008) isEqualTo -1) exitWith {hint localize "STR_NOTF_noOneSelected"; ctrlShow[10007,true];}; _unit = lbData [10008,lbCurSel 10008]; _unit = call compile format ["%1",_unit]; if ((lbCurSel 10009) isEqualTo -1) exitWith {hint localize "STR_NOTF_didNotSelectItemToGive";ctrlShow[10007,true];}; _item = lbData [10009,(lbCurSel 10009)]; if (isNil "_unit") exitWith {ctrlShow[10007,true];}; if (_unit == player) exitWith {ctrlShow[10007,true];}; if (isNull _unit) exitWith {ctrlShow[10007,true];}; //A series of checks *ugh* if (!([_val] call TON_fnc_isnumber)) exitWith {hint localize "STR_NOTF_notNumberFormat";ctrlShow[10007,true];}; if (parseNumber(_val) <= 0) exitWith {hint localize "STR_NOTF_enterAmountGive";ctrlShow[10007,true];}; //if (isNil "_unit") exitWith {ctrlShow[2001,true]; hint localize "STR_NOTF_notWithinRange";}; if (!([false,_item,(parseNumber _val)] call life_fnc_handleInv)) exitWith {hint localize "STR_NOTF_couldNotGive";ctrlShow[10007,true];}; [_unit,_val,_item,player] remoteExecCall ["life_fnc_receiveItem",_unit]; _type = M_CONFIG(getText,"VirtualItems",_item,"displayName"); hint format [localize "STR_NOTF_youGaveItem",_unit getVariable ["realname",name _unit],_val,(localize _type)]; [_mode] call life_fnc_p_updateMenu; ctrlShow[10007,true]; }; }; Step 4: Open "Altis_Life.Altis\Core\PMenu\fn_removeItem.sqf" and REPLACE with #include "..\..\script_macros.hpp" /* File: fn_removeItem.sqf Author: Bryan "Tonic" Boardwine Description: Removes the selected item & amount to remove from the players virtual inventory. */ private ["_data","_value","_obj"]; disableSerialization; private _mode = param [0,0,[0]]; switch (_mode) do { case 0: { _data = lbData[2005,(lbCurSel 2005)]; _value = ctrlText 2010; }; case 1: { _data = lbData[10009,(lbCurSel 10009)]; _value = ctrlText 10010; }; }; if (_data isEqualTo "") exitWith {hint localize "STR_NOTF_didNotSelectToRemove";}; if (!([_value] call TON_fnc_isnumber)) exitWith {hint localize "STR_NOTF_notNumberFormat";}; if (parseNumber(_value) <= 0) exitWith {hint localize "STR_NOTF_enterAmountRemove";}; if (ITEM_ILLEGAL(_data) isEqualTo 1 && ([west,visiblePosition player,100] call life_fnc_nearUnits)) exitWith {titleText[localize "STR_NOTF_illegalItemCannotDispose","PLAIN"]}; if !(isNull objectParent player) exitWith {titleText[localize "STR_NOTF_cannotRemoveInVeh","PLAIN"]}; if (!([false,_data,(parseNumber _value)] call life_fnc_handleInv)) exitWith {hint localize "STR_NOTF_couldNotRemoveThatMuch";}; hint format [localize "STR_NOTF_removedFromInventory",(parseNumber _value),(localize ITEM_NAME(_data))]; [_mode] call life_fnc_p_updateMenu; Step 5: Open "Altis_Life.Altis\Core\PMenu\fn_useItem.sqf" and below private ["_item"]; disableSerialization; ADD switch (_mode) do { case 0: { _item = CONTROL_DATA(2005); }; case 1: { _item = lbData [ 10009, ( lbCurSel 10009 )]; }; }; The TOP of the file should now look like this #include "..\..\script_macros.hpp" /* File: fn_useItem.sqf Author: Bryan "Tonic" Boardwine Description: Main function for item effects and functionality through the player menu. */ private ["_item"]; disableSerialization; private _mode = param [0,0,[0]]; switch (_mode) do { case 0: { _item = CONTROL_DATA(2005); }; case 1: { _item = lbData [ 10009, ( lbCurSel 10009 )]; }; }; if (_item isEqualTo "") exitWith { hint localize "STR_ISTR_SelectItemFirst"; }; And at the BOTTOM of the file REPLACE [] call life_fnc_p_updateMenu; With [_mode] call life_fnc_p_updateMenu; Step 6: Open "Altis_Life.Altis\Core\PMenu\fn_p_updateMenu.sqf" and at the top of the file ABOVE _lic = CONTROL(2001,2014); ADD #include "..\..\script_macros.hpp" /* File: fn_p_updateMenu.sqf Author: Bryan "Tonic" Boardwine Description: Updates the player menu (Virtual Interaction Menu) */ private ["_inv","_lic","_licenses","_near","_near_units","_mstatus","_shrt","_side","_struct","_weightCtrl"]; disableSerialization; private _mode = param [0,0,[0]]; if (FETCH_CONST(life_adminlevel) < 1) then { ctrlShow[2021,false]; }; _side = switch (playerSide) do {case west:{"cop"}; case civilian:{"civ"}; case independent:{"med"};}; switch (_mode) do { case 0: { _inv = CONTROL(2001,2005); _weightCtrl = 2009; }; case 1: { _display = findDisplay 602; _inv = _display displayCtrl 10009; _weightCtrl = 10004; }; }; Step 7: Open "Altis_Life.Altis\Core\Functions\fn_inventoryOpened.sqf" and at the bottom ADD h = [] spawn { disableSerialization; waitUntil { !isNull ( findDisplay 602 ) }; private _display = findDisplay 602; private _background = _display ctrlCreate ["life_RscText",10001]; _background ctrlSetPosition [ 0.11833 * safezoneW + safezoneX, 0.279937 * safezoneH + safezoneY, 0.1341 * safezoneW, 0.473135 * safezoneH ]; _background ctrlSetBackgroundColor [0,0,0,0.5]; _background ctrlCommit 0; private _topTrim = _display ctrlCreate ["life_RscText",10002]; _topTrim ctrlSetPosition [ 0.11833 * safezoneW + safezoneX, 0.246928 * safezoneH + safezoneY, 0.1341 * safezoneW, 0.0220063 * safezoneH ]; _topTrim ctrlSetBackgroundColor [(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843]), (profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019]), (profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862]), (profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])]; _topTrim ctrlCommit 0; /* private _defultTopTrim = _display ctrlCreate ["life_RscText",99999]; _defultTopTrim ctrlSetPosition [ 0.433156 * safezoneW + safezoneX, 0.246928 * safezoneH + safezoneY, 0.302035 * safezoneW, 0.0220063 * safezoneH ]; _defultTopTrim ctrlSetBackgroundColor [(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843]), (profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019]), (profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862]), (profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])]; _defultTopTrim ctrlCommit 0; */ private _headerText = _display ctrlCreate ["life_RscText",10003]; _headerText ctrlSetPosition [ 0.11833 * safezoneW + safezoneX, 0.246928 * safezoneH + safezoneY, 0.0670502 * safezoneW, 0.0220063 * safezoneH ]; _headerText ctrlSetBackgroundColor [-1,-1,-1,-1]; _headerText ctrlSetText "Virtual Inventory"; _headerText ctrlCommit 0; private _weightText = _display ctrlCreate ["life_RscText",10004]; _weightText ctrlSetPosition [ 0.200853 * safezoneW + safezoneX, 0.246928 * safezoneH + safezoneY, 0.0515771 * safezoneW, 0.0220063 * safezoneH ]; _weightText ctrlSetBackgroundColor [-1,-1,-1,-1]; _weightText ctrlSetText format ["Weight: %1/%2", life_carryWeight, life_maxWeight]; _weightText ctrlCommit 0; //Player List private _playerList = _display ctrlCreate ["Life_RscCombo",10008]; _playerList ctrlSetPosition [ 0.128645 * safezoneW + safezoneX, 0.67605 * safezoneH + safezoneY, 0.11347 * safezoneW, 0.0220063 * safezoneH ]; lbClear _playerList; private _near_units = []; { if (player distance _x < 10) then {_near_units pushBack _x};} forEach playableUnits; { if (!isNull _x && alive _x && player distance _x < 10 && !(_x isEqualTo player)) then { _playerList lbAdd format ["%1 - %2",_x getVariable ["realname",name _x], side _x]; _playerList lbSetData [(lbSize _playerList)-1,str(_x)]; }; if ((lbSize _playerList) isEqualTo -1) then { _playerList lbAdd "No Players"; }; } forEach _near_units; _playerList ctrlCommit 0; //vItems private _vItems = _display ctrlCreate ["Life_ToxicRscListBox",10009]; _vItems ctrlSetPosition [ 0.128645 * safezoneW + safezoneX, 0.301944 * safezoneH + safezoneY, 0.11347 * safezoneW, 0.264075 * safezoneH ]; lbClear _vItems; { if (ITEM_VALUE(configName _x) > 0) then { _vItems lbAdd format ["%2 [x%1]",ITEM_VALUE(configName _x),localize (getText(_x >> "displayName"))]; _vItems lbSetData [(lbSize _vItems)-1,configName _x]; _icon = M_CONFIG(getText,"VirtualItems",configName _x,"icon"); if (!(_icon isEqualTo "")) then { _vItems lbSetPicture [(lbSize _vItems)-1,_icon]; }; if ((lbSize _vItems) isEqualTo -1) then { _vItems lbAdd "No Items"; }; }; } forEach ("true" configClasses (missionConfigFile >> "VirtualItems")); _vItems ctrlCommit 0; //Edit private _edit = _display ctrlCreate ["Life_ToxicRscEdit",10010]; _edit ctrlSetPosition [ 0.144118 * safezoneW + safezoneX, 0.643041 * safezoneH + safezoneY, 0.0825233 * safezoneW, 0.0220063 * safezoneH ]; _edit ctrlSetText "1"; _edit ctrlCommit 0; //BUTTONS private _useButton = _display ctrlCreate ["life_RscButtonMenu",10005]; _useButton ctrlSetPosition [ 0.144118 * safezoneW + safezoneX, 0.577022 * safezoneH + safezoneY, 0.0825233 * safezoneW, 0.0220063 * safezoneH ]; _useButton ctrlSetStructuredText parseText "<t align='center'>Use</t>"; _useButton buttonSetAction "[1] call life_fnc_useItem"; _useButton ctrlCommit 0; private _removeButton = _display ctrlCreate ["life_RscButtonMenu",10006]; _removeButton ctrlSetPosition [ 0.144118 * safezoneW + safezoneX, 0.610031 * safezoneH + safezoneY, 0.0825233 * safezoneW, 0.0220063 * safezoneH ]; _removeButton ctrlSetStructuredText parseText "<t align='center'>Remove</t>"; _removeButton buttonSetAction "[1] call life_fnc_removeItem;"; _removeButton ctrlCommit 0; private _giveButton = _display ctrlCreate ["life_RscButtonMenu",10007]; _giveButton ctrlSetPosition [ 0.144118 * safezoneW + safezoneX, 0.70906 * safezoneH + safezoneY, 0.0825233 * safezoneW, 0.0220063 * safezoneH ]; _giveButton ctrlSetStructuredText parseText "<t align='center'>Give</t>"; _giveButton buttonSetAction "[1] call life_fnc_giveItem;"; _giveButton ctrlCommit 0; }; If i missed anything let me know. Hope you enjoy!
  21. 4 points
    Hey guys, today i'm gonna teach you how to install my Terms And Conditions Menu System. It's made for those who want to make player agree with your server's basic rules/conditions. Difficulty: Medium Features: - Fully configurable - Disconnects player when he don't agree with the terms -TUTORIAL- 1. Open your Config_Master and add this code inside the Life_settings class: cxp_termsAndCond_menuArr[] = { // Messages to be shown on the menu "Don't cheat", "Join our TS3 if you're a cop/med", "Don't spam the game chat", "Whatever you WANT HERE" }; cxp_termsAndCond_menuCopMed = false; // Show this menu to the west/independent team ? 2. Open your Functions.hpp file and add these lines as the example: class Dialog_Controls { file = "dialog\function"; class bankDeposit {}; class bankTransfer {}; class bankWithdraw {}; class displayHandler {}; class gangDeposit {}; class gangWithdraw {}; class garageLBChange {}; class impoundMenu {}; class progressBar {}; class safeFix {}; class safeInventory {}; class safeOpen {}; class safeTake {}; class sellGarage {}; class setMapPosition {}; class spawnConfirm {}; class spawnMenu {}; class spawnPointCfg {}; class spawnPointSelected {}; class unimpound {}; class vehicleGarage {}; class wireTransfer {}; class openCxpMenTerms {}; // First line to add class agreeCxpMenTerms {}; // Second line to add class dAgreeCxpMenTerms {}; // Third line to add }; 3. Open your description.ext file and add the followed lines into your CfgDebriefing class: class CfgDebriefing { class NotWhitelisted { title = "$STR_NotWhitelisted_Title"; subtitle = "$STR_NotWhitelisted_SubTitle"; description = "$STR_NotWhitelisted_Descript"; pictureBackground = ""; picture = ""; pictureColor[] = {0,0.3,0.6,1}; }; class Blacklisted { title = "$STR_Blacklisted_Title"; subtitle = "$STR_Blacklisted_SubTitle"; description = "$STR_Blacklisted_Descript"; pictureBackground = ""; picture = ""; pictureColor[] = {0,0.3,0.6,1}; }; class SpyGlass { title = "$STR_SpyDetect_Title"; subTitle = "$STR_SpyDetect_SubTitle"; description = "$STR_SpyDetect_Descript"; pictureBackground = ""; picture = ""; pictureColor[] = {0,0.3,0.6,1}; }; // !!! THIS ONE !!!! class dAgreeCxp { title = "SERVER'S NAME"; subtitle = "If you don't agree, just go away.."; description = "If this is a mistake, just login to the server again and click the button 'Agree'!"; pictureBackground = ""; picture = ""; pictureColor[] = {0,0.3,0.6,1}; }; }; 4. Open your stringtable.xml file and add the package as the example: <?xml version="1.0" encoding="utf-8"?> <Project name="Altis Life RPG"> <!-- YES, BEFORE YOUR 'Init' PACKAGE I REALLY DON'T CARE ABOUT THE POSITION OF THIS ONE --> <Package name="Cxp_MenuTerms"> <Key ID="STR_Men_Ent_Titulo"> <Original>SERVER'S NAME</Original> </Key> <Key ID="STR_Men_Ent_SubTitulo"> <Original>By playing on our server you agree with the following terms and conditions:</Original> </Key> <Key ID="STR_Men_Ent_BtnConcord"> <Original>Agree</Original> </Key> <Key ID="STR_Men_Ent_BtnDiscord"> <Original>Disagree</Original> </Key> </Package> <Package name="Init"> <Key ID="STR_Init_ClientSetup"> 5. Open your core\fn_initCiv.sqf, fn_initCop.sqf and fn_initMedic.sqf files and add the followed lines as the example: // INIT MEDIC #include "..\script_macros.hpp" /* File: fn_initMedic.sqf Author: Bryan "Tonic" Boardwine Description: Initializes the medic.. */ waitUntil {!(isNull (findDisplay 46))}; if ((FETCH_CONST(life_medicLevel)) < 1 && (FETCH_CONST(life_adminlevel) isEqualTo 0)) exitWith { ["Notwhitelisted",false,true] call BIS_fnc_endMission; sleep 35; }; // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Add this verification here if (LIFE_SETTINGS(getNumber,"cxp_termsAndCond_menuCopMed") isEqualTo 1) then {[] spawn life_fnc_openCxpMenTerms;}else{life_concordDiscord=true;}; waitUntil {life_concordDiscord && isNull (findDisplay 66669)}; [] call life_fnc_spawnMenu; waitUntil{!isNull (findDisplay 38500)}; //Wait for the spawn selection to be open. waitUntil{isNull (findDisplay 38500)}; //Wait for the spawn selection to be done. // INIT COP #include "..\script_macros.hpp" /* File: fn_initCop.sqf Author: Bryan "Tonic" Boardwine Description: Cop Initialization file. */ waitUntil {!(isNull (findDisplay 46))}; if (life_blacklisted) exitWith { ["Blacklisted",false,true] call BIS_fnc_endMission; sleep 30; }; if (!(str(player) in ["cop_1","cop_2","cop_3","cop_4"])) then { if ((FETCH_CONST(life_coplevel) isEqualTo 0) && (FETCH_CONST(life_adminlevel) isEqualTo 0)) then { ["NotWhitelisted",false,true] call BIS_fnc_endMission; sleep 35; }; }; // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Add this verification here if (LIFE_SETTINGS(getNumber,"cxp_termsAndCond_menuCopMed") isEqualTo 1) then {[] spawn life_fnc_openCxpMenTerms;}else{life_concordDiscord=true;}; waitUntil {life_concordDiscord && isNull (findDisplay 66669)}; player setVariable ["rank",(FETCH_CONST(life_coplevel)),true]; [] call life_fnc_spawnMenu; waitUntil{!isNull (findDisplay 38500)}; //Wait for the spawn selection to be open. waitUntil{isNull (findDisplay 38500)}; //Wait for the spawn selection to be done. // INIT CIV #include "..\script_macros.hpp" /* File: fn_initCiv.sqf Author: Bryan "Tonic" Boardwine Description: Initializes the civilian. */ private _altisArray = ["Land_i_Shop_01_V1_F","Land_i_Shop_01_V2_F","Land_i_Shop_01_V3_F","Land_i_Shop_02_V1_F","Land_i_Shop_02_V2_F","Land_i_Shop_02_V3_F"]; private _tanoaArray = ["Land_House_Small_01_F"]; private _spawnBuildings = [[["Altis", _altisArray], ["Tanoa", _tanoaArray]]] call TON_fnc_terrainSort; civ_spawn_1 = nearestObjects[getMarkerPos "civ_spawn_1", _spawnBuildings,350]; civ_spawn_2 = nearestObjects[getMarkerPos "civ_spawn_2", _spawnBuildings,350]; civ_spawn_3 = nearestObjects[getMarkerPos "civ_spawn_3", _spawnBuildings,350]; civ_spawn_4 = nearestObjects[getMarkerPos "civ_spawn_4", _spawnBuildings,350]; // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Add this 2 lines here [] spawn life_fnc_openCxpMenTerms; waitUntil {life_concordDiscord && isNull (findDisplay 66669)}; waitUntil {!(isNull (findDisplay 46))}; if (life_is_alive && !life_is_arrested) then { /* Spawn at our last position */ player setVehiclePosition [life_civ_position, [], 0, "CAN_COLLIDE"]; } else { if (!life_is_alive && !life_is_arrested) then { if (LIFE_SETTINGS(getNumber,"save_civilian_positionStrict") isEqualTo 1) then { _handle = [] spawn life_fnc_civLoadout; waitUntil {scriptDone _handle}; CASH = 0; [0] call SOCK_fnc_updatePartial; }; [] call life_fnc_spawnMenu; waitUntil{!isNull (findDisplay 38500)}; //Wait for the spawn selection to be open. waitUntil{isNull (findDisplay 38500)}; //Wait for the spawn selection to be done. } else { if (life_is_arrested) then { life_is_arrested = false; [player,true] spawn life_fnc_jail; }; }; }; life_is_alive = true; 6. Open your core\configuration.sqf file and add the followed line as the example: #include "..\script_macros.hpp" /* File: configuration.sqf Author: Description: Master Life Configuration File This file is to setup variables for the client, there are still other configuration files in the system ***************************** ****** Backend Variables ***** ***************************** */ life_query_time = time; life_action_delay = time; life_trunk_vehicle = objNull; life_session_completed = false; life_garage_store = false; life_session_tries = 0; life_net_dropped = false; life_siren_active = false; life_clothing_filter = 0; life_clothing_uniform = -1; life_redgull_effect = time; life_is_processing = false; life_bail_paid = false; life_impound_inuse = false; life_action_inUse = false; life_spikestrip = objNull; life_knockout = false; life_interrupted = false; life_respawned = false; life_removeWanted = false; life_action_gathering = false; tawvd_addon_disable = true; life_god = false; life_frozen = false; life_save_gear = []; life_container_activeObj = objNull; life_disable_getIn = false; life_disable_getOut = false; life_admin_debug = false; life_civ_position = []; life_markers = false; life_markers_active = false; life_canpay_bail = true; life_storagePlacing = scriptNull; life_concordDiscord = false; // Add this line here 7. Open your dialog\MasterHandler.hpp file and add the followed line as the example: /* Master UI Resource File */ #include "common.hpp" #include "shop_items.hpp" #include "player_inv.hpp" #include "gang.hpp" #include "key_chain.hpp" #include "impound.hpp" #include "bank.hpp" #include "veh_shop.hpp" #include "shops.hpp" #include "hud_stats.hpp" #include "admin_menu.hpp" #include "cell_phone.hpp" #include "wanted_list.hpp" #include "ticket.hpp" #include "clothing.hpp" #include "trunk.hpp" #include "spawnSelection.hpp" #include "chop_shop.hpp" #include "pInteraction.hpp" #include "deathScreen.hpp" #include "vehicleShop.hpp" #include "vehicleShop3D.hpp" #include "settings.hpp" #include "federalReserve.hpp" #include "compensate.hpp" #include "FuelStat.hpp" #include "newsStation.hpp" #include "cxp_terms_menu.hpp" // Add this include HERE!! 8. Copy and paste the attached files into your dialog\ and dialog\functions folders and you're ready!! *dialog\cxp_terms_menu.hpp *dialog\function\fn_openCxpMenTerms.sqf *dialog\function\fn_agreeCxpMenTerms.sqf *dialog\function\fn_dAgreeCxpMenTerms.sqf RESULT: https://imgur.com/Zvavji5 !-DOWNLOAD-! cxp_terms_menu.hpp fn_agreeCxpMenTerms.sqf fn_dAgreeCxpMenTerms.sqf fn_openCxpMenTerms.sqf
  22. 4 points
    This script work for all version of the 4.x and for 5.0: Add the option to drag, move, load and unload body from a vehicle. is not my script i only take from Armaholic, and addapted to work on Life Server. sorry fro my bad english. Level: easy TUTORIAL 1) Download the script from: http://www.armaholic.com/page.php?id=26578 2) Open the file and copy "H8_dragBody" to your Arma3\Mpmission\YourMission.... 3) Open your "init.sqf" and paste that null = allUnits execVM "H8_dragBody.sqf"; 4) In your "H8_dragBody" replace that: _dragCond = "vehicle _this != vehicle _target and isNull attachedTo _target and count attachedObjects _this == 0 and _target distance _this < 3"; whit: _dragCond = "vehicle _this != vehicle _target and isNull attachedTo _target and count attachedObjects _this == 0 and _target distance _this < 3 and !alive _target"; FINISH VID-20180529-WA0054.mp4
  23. 4 points
    ATTENTION! There are gonna be two sections to this tutorial. The first being that civs can repair objects without getting the "Repair Man Job". The second part being that they have to get the "Repair Man Job". Some of the steps are the same either way so i will indicate when changes need to be made based on which version you want. Step 1: Open "Altis_Life.Altis\Dialog\Player_Inv.hpp" and UNDER class ButtonSyncData: Life_RscButtonMenu { idc = -1; //shortcuts[] = {0x00050000 + 2}; text = "$STR_PM_SyncData"; onButtonClick = "[] call SOCK_fnc_syncData;"; x = 0.1; y = 0.805; w = (6.25 / 40); h = (1 / 25); }; ADD class ButtonRepair: Life_RscButtonMenu { idc = 500; text = "Repair"; onButtonClick = "[] call toxic_fnc_repairSystem; closeDialog 0;"; x = 0.42 + (6.25 / 19.8) + (1 / 250 / (safezoneW / safezoneH)); y = 0.805; w = (6.25 / 40); h = (1 / 25); }; Step 2: Open "Altis_Life.Altis\Functions.hpp" and at the VERY bottom ADD class Toxic_Functions { tag = "Toxic"; class Toxic_Main { file = "core\Toxic"; class repairSystem {}; }; }; Step 2.1 (OPTIONAL): If you want civs to have to get the job then ADD this instead class Toxic_Functions { tag = "Toxic"; class Toxic_Main { file = "core\Toxic"; class repairSystem {}; class repairJobMenu {}; }; }; Step 3: Open "Altis_Life.Altis\Core\PMenu\fn_p_openMenu.sqf" and REPLACE the entire file with #include "..\..\script_macros.hpp" /* File: fn_p_openMenu.sqf Author: Bryan "Tonic" Boardwine Description: Opens the players virtual inventory menu */ if (!alive player || dialog) exitWith {}; //Prevent them from opening this for exploits while dead. createDialog "playerSettings"; disableSerialization; _damged = 0; _nearestObjects = nearestObjects [player, [], 15]; private _copRepairing = getNumber(missionConfigFile >> "Toxic_Repair_Config" >> "Cop_Repairing"); private _medicRepairing = getNumber(missionConfigFile >> "Toxic_Repair_Config" >> "Medic_Repairing"); private _civRepairing = getNumber(missionConfigFile >> "Toxic_Repair_Config" >> "Civ_Repairing"); switch (playerSide) do { case west: { ctrlShow[2011,false]; if (_copRepairing isEqualTo 1) then { { _damage = getDammage _x; if ((_damage > 0.1) && !(_x isKindOf "Man") && !(_x isKindOf "Car") && !(_x isKindOf "Air") && !(_x isKindOf "Ship")) then { _damged = _damged + 1; }; } forEach _nearestObjects; if (_damged > 0) then { ctrlShow[2409,true]; } else { ctrlShow[500,false]; }; } else { ctrlShow[500,false]; }; }; case civilian: { ctrlShow[2012,false]; if (_civRepairing isEqualTo 1) then { { _damage = getDammage _x; if ((_damage > 0.1) && !(_x isKindOf "Man") && !(_x isKindOf "Car") && !(_x isKindOf "Air") && !(_x isKindOf "Ship")) then { _damged = _damged + 1; }; } forEach _nearestObjects; if (_damged > 0) then { ctrlShow[2409,true]; } else { ctrlShow[500,false]; }; } else { ctrlShow[500,false]; }; }; case independent: { ctrlShow[2012,false]; ctrlShow[2011,false]; if (_medicRepairing isEqualTo 1) then { { _damage = getDammage _x; if ((_damage > 0.1) && !(_x isKindOf "Man") && !(_x isKindOf "Car") && !(_x isKindOf "Air") && !(_x isKindOf "Ship")) then { _damged = _damged + 1; }; } forEach _nearestObjects; if (_damged > 0) then { ctrlShow[2409,true]; } else { ctrlShow[500,false]; }; } else { ctrlShow[500,false]; }; }; }; if (FETCH_CONST(life_adminlevel) < 1) then { ctrlShow[2021,false]; }; [] call life_fnc_p_updateMenu; Step 3.1 (OPTIONAL): If you want civs to have to get the job then REPLACE case civilian: { ctrlShow[2012,false]; if (_civRepairing isEqualTo 1) then { { _damage = getDammage _x; if ((_damage > 0.1) && !(_x isKindOf "Man") && !(_x isKindOf "Car") && !(_x isKindOf "Air") && !(_x isKindOf "Ship")) then { _damged = _damged + 1; }; } forEach _nearestObjects; if (_damged > 0) then { ctrlShow[2409,true]; } else { ctrlShow[500,false]; }; } else { ctrlShow[500,false]; }; }; With case civilian: { ctrlShow[2012,false]; if (player getVariable "life_repairMan") then { if (_civRepairing isEqualTo 1) then { { _damage = getDammage _x; if ((_damage > 0.1) && !(_x isKindOf "Man") && !(_x isKindOf "Car") && !(_x isKindOf "Air") && !(_x isKindOf "Ship")) then { _damged = _damged + 1; }; } forEach _nearestObjects; if (_damged > 0) then { ctrlShow[2409,true]; } else { ctrlShow[500,false]; }; } else { ctrlShow[500,false]; }; } else { ctrlShow[500,false]; }; }; Step 4: Open "Altis_Life.Altis\Config\Config_Master.hpp" and ABOVE #include "Config_Clothing.hpp" ADD class Toxic_Repair_Config { Cop_Repairing = true; //Allow cops to repair objects Medic_Repairing = true; //Allow medics to repair objects Civ_Repairing = true; //Allow civs to repair objects class Civilian { Repair_Reward = 100; //How much they get per object they repair Cooldown = true; //If you want to have a cooldown on the repairing Cooldown_Time = 60; //Time is seconds for the cooldown between repairing }; class Cop { Repair_Reward = 100; //How much they get per object they repair Cooldown = true; //If you want to have a cooldown on the repairing Cooldown_Time = 60; //Time is seconds for the cooldown between repairing }; class Medic { Repair_Reward = 100; //How much they get per object they repair Cooldown = true; //If you want to have a cooldown on the repairing Cooldown_Time = 60; //Time is seconds for the cooldown between repairing }; }; Step 5: Open "Altis_Life.Altis\Core\Configuration.sqf" and ADD life_cannotRepair = false; Step 5.1 (OPTIONAL): If you want civs to have to get the job then ADD life_cannotRepair = false; player setVariable ["life_repairMan",false,true]; Step 6: CREATE a FOLDER called "Toxic" Step 7: In the newly created folder, CREATE a FILE called "fn_repairSystem.sqf" #include "..\..\script_macros.hpp" /* File: fn_repairSystem.sqf Author: ToxicRageTv */ [] spawn { if !(vehicle player isEqualTo player) exitWith {hint "Get out of your vehicle";}; private _dammagedObjects = 0; private _payout = 0; private _side = switch (playerSide) do { case west: {"Cop"}; case independent: {"Medic"}; default {"Civilian"}; }; private _repairReward = getNumber(missionConfigFile >> "Toxic_Repair_Config" >> _side >> "Repair_Reward"); private _cooldown = getNumber(missionConfigFile >> "Toxic_Repair_Config" >> _side >> "Cooldown"); private _cooldownTime = getNumber(missionConfigFile >> "Toxic_Repair_Config" >> _side >> "Cooldown_Time"); if (life_cannotRepair) exitWith {hint format ["You can only repair every %1 seconds",_cooldownTime];}; life_action_inUse = true; _displayName = "Nearby Objects"; _upp = format [localize "STR_NOTF_Repairing",_displayName]; //Setup our progress bar. disableSerialization; "progressBar" cutRsc ["life_progress","PLAIN"]; _ui = uiNamespace getVariable "life_progress"; _progress = _ui displayCtrl 38201; _pgText = _ui displayCtrl 38202; _pgText ctrlSetText format ["%2 (1%1)...","%",_upp]; _progress progressSetPosition 0.01; _cP = 0.01; for "_i" from 0 to 1 step 0 do { if (animationState player != "AinvPknlMstpSnonWnonDnon_medic_1") then { [player,"AinvPknlMstpSnonWnonDnon_medic_1",true] remoteExecCall ["life_fnc_animSync",RCLIENT]; player switchMove "AinvPknlMstpSnonWnonDnon_medic_1"; player playMoveNow "AinvPknlMstpSnonWnonDnon_medic_1"; }; uiSleep 0.27; _cP = _cP + 0.03; _progress progressSetPosition _cP; _pgText ctrlSetText format ["%3 (%1%2)...",round(_cP * 100),"%",_upp]; if (_cP >= 1) exitWith {}; if (!alive player) exitWith {}; if !(isNull objectParent player) exitWith {}; if (life_interrupted) exitWith {}; }; life_action_inUse = false; "progressBar" cutText ["","PLAIN"]; player playActionNow "stop"; if (life_interrupted) exitWith {life_interrupted = false; titleText[localize "STR_NOTF_ActionCancel","PLAIN"]; life_action_inUse = false;}; _nearestObject = nearestObjects [player, [], 10]; { _damage = getDammage _x; if ((_damage > 0.1) && !(_x isKindOf "Man") && !(_x isKindOf "Car") && !(_x isKindOf "Air") && !(_x isKindOf "Ship")) then { _x setDamage 0; _dammagedObjects = _dammagedObjects + 1; }; } forEach _nearestObject; _payout = _dammagedObjects * _repairReward; CASH = CASH + _payout; hint format ["You Recived $%1 For Reparing %2 Object(s)",_payout,_dammagedObjects]; [0] call SOCK_fnc_updatePartial; if (_cooldown isEqualTo 1) then { life_cannotRepair = true; while {_cooldownTime > 0} do { sleep 1; _cooldownTime = _cooldownTime - 1; }; waitUntil {_cooldownTime <= 0}; life_cannotRepair = false; }; }; [] call life_fnc_hudUpdate; Step 8 (OPTIONAL): If you want civs to have to get the job then CREATE another file called "fn_repairJobMenu.sqf" #include "..\..\script_macros.hpp" /* File: fn_jobMenu.sqf Author: ToxicRageTv */ if (dialog || !alive player) exitWith {}; if !(playerSide isEqualTo civilian) exitWith {}; private ["_display","_curTarget","_seizeRank","_Btn1","_Btn2","_Btn3","_Btn4","_Btn5","_Btn6","_Btn7","_Btn8","_Btn9","_Btn10"]; disableSerialization; #define Btn1 37450 #define Btn2 37451 #define Btn3 37452 #define Btn4 37453 #define Btn5 37454 #define Btn6 37455 #define Btn7 37456 #define Btn8 37457 #define Btn9 37458 #define Btn10 37459 #define Title 37401 if (!dialog) then { createDialog "pInteraction_Menu"; }; _display = findDisplay 37400; _Btn1 = _display displayCtrl Btn1; _Btn2 = _display displayCtrl Btn2; _Btn3 = _display displayCtrl Btn3; _Btn4 = _display displayCtrl Btn4; _Btn5 = _display displayCtrl Btn5; _Btn6 = _display displayCtrl Btn6; _Btn7 = _display displayCtrl Btn7; _Btn8 = _display displayCtrl Btn8; _Btn9 = _display displayCtrl Btn9; _Btn10 = _display displayCtrl Btn10; { _x ctrlShow false; } forEach [_Btn2,_Btn3,_Btn4,_Btn5,_Btn6,_Btn7,_Btn8,_Btn9,_Btn10]; if (player getVariable "life_repairMan") then { _Btn1 ctrlSetText "Leave Job"; _Btn1 buttonSetAction " hint 'You Left You Job'; player setVariable ['life_repairMan',false,true]; closeDialog 0; "; } else { _Btn1 ctrlSetText "Become Repair Man"; _Btn1 buttonSetAction " hint 'You Have Become A Repair Man, You Can Now Go Around The Map Repairing Objects'; player setVariable ['life_repairMan',true]; closeDialog 0; "; }; Step 9 (OPTIONAL): If you want civs to have to get the job then open your mission.sqm in eden and add an NPC and in the init field add If you want civs to have to get the job thenthis addAction["Repair Man Job Center",toxic_fnc_repairJobMenu,"",0,false,false,"","playerside isEqualTo civilian",5]; If i missed anything let me know. How you enjoy!
  24. 4 points
  25. 4 points
    Working Scripts Archive easy access to all available scripts _____________________________________________________________________________________________________________________________________________ UI and Informational Professional looking HUD Intro Music Intro Music 2 Intro Text Intro Cam Intro Video Outro Script StatusBar Removing Default Statusbar Spawn Menu Redone Updated HUD IPAD Y Menu IPAD Y Menu 2 AI Based Scripts Dynamic Airdrop Improvements & Basic Features Brighter Nights Simply Morphine and Bandages Dynamic market 5.0 Custom Spawn Loadouts for Civilians Seat Belts Patdown Player + Seize Objects Realistic Towing Ear Plugs Rubber Bullets Realistic CPR Kit Actions Menu Tag System Speed Bomb Zip Ties Police Backup Jaws of Life Realistic Tazer Hand Gestures Buyable Loadouts Backpack Custom Capacity Marijuana Effects Gag Action Fastrope Auto Save Adding Smoke Effect to Processing Placeable Objects for Police Invisible Backpacks for police/med Anti VDM Block Changing Names Cops can enter locked vehicles Warner's Barriers Configurable Jail Time Adding police radar GPS System Car Alarm Boat Rental Civilian Passports Police Gate Opening Hotkey Adding Smoke Trails to Cesna Suicide Vest Automatic Messages Animal Tracking (for Hunting) Wedding rings Systems and Complex Features Questing System Zipties Revised [Fully Working, With Gag and Blindfolds] Vehicle Insurance RYANTTS DYNAMIC MARKET SYSTEM OPFOR 4.4 Advanced Banking System, With Pins MrKraken's Gas Station Robbery Script Bounty Hunting Framework [Dialog, DB, Player Interaction] Altis Central Bank - Second Fed Purge [Server Event] Crafting System Slot Machines Bus Transportation Physical Cellphone Gang Capturable Areas Tutorials Basic Coding Tutorial Moving the Federal Reserve Task force Radio Black screen when not in channel ETC Separate Police/Civ Cash & Bank Account Gang Name Spawns Custom Medic & Cop Skins Adding Licenses 4.4 Tobacco-field Civilian Whitelisting Installing Task Force Radio (Addon/Mod) Mining with Shift+C Custom Paychecks Official Paid Scripts Maverick Applications Let me know if i missed anything
  26. 4 points
    You do not own the rights to the phone template or icons, the phone template is a Galaxy S9, and the icons were not created by either of you, so it's a good thing you don't have a problem with someone using a similar design :)
  27. 4 points
  28. 4 points
    Author Name: Neil Smith / Deadlesszombie worked alongside Hamz I left my old server so why not help others right? Lets get started this script changes player tags to the Steam64 aka UiD, good for life servers trying to keep high RP and able to track down precisely those who break rules 1. (Thanks to Caue) Missionfile\core\init.sqf change player setVariable ["steam64ID",getPlayerUID player]; for player setVariable ["steam64ID",(getPlayerUID player),true]; 2. Replace fn_PlayerTags.sqf Note this does not have the cop icons for ranks, add that in yourself if it matters to you that much #include "..\..\script_macros.hpp" /* File: fn_playerTags.sqf Author: Bryan "Tonic" Boardwine Description: Adds the tags above other players heads when close and have visible range. Edited by Neil Smith / Deadlesszombie alongside Hamz for www.defiantgaming.org */ //if (!life_settings_tagson) exitWith {}; private["_ui","_units","_masks"]; #define iconID 78000 #define scale 0.8 if (visibleMap || {!alive player} || {dialog}) exitWith { 500 cutText["","PLAIN"]; }; _ui = uiNamespace getVariable ["Life_HUD_nameTags",displayNull]; if (isNull _ui) then { 500 cutRsc["Life_HUD_nameTags","PLAIN"]; _ui = uiNamespace getVariable ["Life_HUD_nameTags",displayNull]; }; _units = nearestObjects[(visiblePosition player),["Man","Land_Pallet_MilBoxes_F","Land_Sink_F"],50]; _units = _units - [player]; _masks = LIFE_SETTINGS(getArray,"clothing_masks"); { private "_text"; _idc = _ui displayCtrl (iconID + _forEachIndex); if (!(lineIntersects [eyePos player, eyePos _x, player, _x]) && alive _x && {!isNil {_x getVariable "steam64ID"}}) then { _pos = switch (typeOf _x) do { case "Land_Pallet_MilBoxes_F": {[visiblePosition _x select 0, visiblePosition _x select 1, (getPosATL _x select 2) + 1.5]}; case "Land_Sink_F": {[visiblePosition _x select 0, visiblePosition _x select 1, (getPosATL _x select 2) + 2]}; default {[visiblePosition _x select 0, visiblePosition _x select 1, ((_x modelToWorld (_x selectionPosition "head")) select 2)+.5]}; }; _sPos = worldToScreen _pos; _distance = _pos distance player; if (!((headgear _x) in _masks || (goggles _x) in _masks || (uniform _x) in _masks)) then { if (count _sPos > 1 && {_distance < 15}) then { _text = switch (true) do { case (_x in (units group player) && playerSide isEqualTo civilian): {format["<t color='#00FF00'>%1</t>",(_x getVariable ["steam64ID",getPlayerUID _x])];}; case (side _x isEqualTo independent): {format["<t color='#FF0000'><img image='a3\ui_f\data\map\MapControl\hospital_ca.paa' size='1.5'></img></t> %1",_x getVariable ["steam64ID",getPlayerUID _x]]}; default { if (!isNil {(group _x) getVariable "gang_name"}) then { format["%1<br/><t size='0.8' color='#B6B6B6'>%2</t>",_x getVariable ["steam64ID",getPlayerUID _x],(group _x) getVariable ["gang_name",""]]; } else { _x getVariable ["steam64ID",getPlayerUID _x]; }; }; }; _idc ctrlSetStructuredText parseText _text; _idc ctrlSetPosition [_sPos select 0, _sPos select 1, 0.4, 0.65]; _idc ctrlSetScale scale; _idc ctrlSetFade 0; _idc ctrlCommit 0; _idc ctrlShow true; } else { _idc ctrlShow false; }; } else { _idc ctrlShow false; }; } else { _idc ctrlShow false; }; } forEach _units;
  29. 4 points
    The hell is a chief technical officer of an arma server
  30. 3 points
    Who we are: Here at XaFlaForo Studios, we strive for perfection in our work. We work day in, day out, weekdays, weekends, to ensure quality in our products. Over the coming weeks we will be dropping a lot of products in to this forum that are remakes of popular scripts but they will be for free. Why do we release this stuff for free: Here at XaFlaForo Studios, our ethos is that Arma scripts should be readily available for the whole community to enjoy, instead of being cast away behind the ever-growing pay wall that we all love to hate. We are proud that we strive to give the community scripts without hiding them behind a paywall for only the most premium, as it bring the community closer together making Arma all that more enjoyable and you can learn from our scripts as they are not obfuscated. Want free custom work? https://docs.google.com/forms/d/e/1FAIpQLScbBsZ7-B1em1wZf3YSkKGNtWmikvap1CK0Oz4ssVDHJTu1oQ/viewform How to support us? Follow me on github - https://github.com/XaFlaForo Add me on steam - https://steamcommunity.com/id/XaFlaForo Post Details: Script Name: Portal Framework: Apache/NGinx/ISS Inspired/Wanted From: RadiantBabe22 How to download: - Files https://github.com/XaFlaForo/AltisLife-StatsPanel How to install: Copy the files to your web server and setup the config to be able to use this
  31. 3 points
    Hi, I dont think you can skin the box itself, only the truck.
  32. 3 points
    Convert your server to imperial measurements! Updated May 10th 2018 This is a basic script that will allow your server to switch from metric to imperial measurement units. I cant take credit for the majority of the script however, 90% of the script is actually a feature Bohemia has in the game that is just hidden. All my code does is activate it and change the HUD in vehicles to say MPH and FT. Yea I know its dirty but it works IMAGE Features Changes speed of aircraft and vehicles into Miles Per Hour (MPH) Changes ALT in aircraft to Feet (FT) Changes way points put on the map to Feet and Miles (FT & MI) Air craft way points will be shown as Nautical Miles (NM) Other minor changes to measurement units. Install Open init.sqf in the Altis_Life.Altis\core folder. At the very bottom add the following code. setSystemOfUnits 2; onEachFrame { ((uiNamespace getVariable "RscUnitInfo") displayCtrl 1004) ctrlSetText "mph"; ((uiNamespace getVariable "RscUnitInfo") displayCtrl 1005) ctrlSetText "ft"; }; Open fn_radar.sqf in the Altis_Life.Altis\core\cop folder. Replace Line 11 with _speed = round ((speed _vehicle) * 0.62); PBO Download (Optional) Don't want to go though the hassle of editing the mission, or do you want to use this in other servers or single player? Well then this PBO is for you! Note: This will not change the default police radar settings, (Steps 3 and 4 listed above) STEAM WORKSHOP DOWNLOAD
  33. 3 points
    Good way to start dialog if you don't have the time or patience is to use https://github.com/kayler-renslow/arma-dialog-creator, any gui I have done on this website was using this and photoshop
  34. 3 points
    Hey guys i am currently working on a trading-basar/marketplace connected with the database. Players can sell their unwanted weapons, vehicles or farmed resources. If you dont want to go to the trader yourself and risk being robbed you just go to the marketplace and sell your stuff there for a smaller %. Other people might be desperate enough to buy it and sell it even with risk. Im almost done and ask myself if the public would benefit from such an script? Currently its just a project for my private server. Have a look.
  35. 3 points
    NGL -1 for this. iv'e had bad running's in the past with this guy. Very disrespectful.
  36. 3 points
    Greetings AltisLifeRPG Community, Our Website: http://clubhouserp.com Our TeamSpeak: ts3.clubhouserp.com Server IP: 178.32.117.144:2302 After a long time, I decided to get back into the Altis Life community with a friend. I think It's time to build and release a new good Altis Life server where it gets updated every week or two. Had enough of the admins ignoring you? Had enough of the terrible roleplay experiences? Welcome to ClubHouseRP. ClubHouseRP is a new server where there could be endless possibilities. We have future releases that are custom to us and us only coming soon. Our aim is our players, our focus is the roleplay and best experiences. We are pleased to release our current development to the public to play. We also welcome any suggestions that players might have and come to an agreement to create and build from there. ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- We are giving you a $75,000 head start on the server What we currently have on our server: Legal Jobs: All the defaults We have more to come, I am working on a new release for new jobs by Friday. Illegal Jobs: Meth Cocaine Marijuana Heroin MDMA / Ecstasy Misc: Gas Station Robbery Custom Skins Police Skins New Kavala Rebel Controlled Area (South) Impound Lot New Wanted List Identities (Can be changed when logging on a different profile) Points on your driving license which get revoked at 12 points Growing Drugs (Either in your house or outside) Many other things that are already in but I can't remember. Licenses: Corporation License (can be revoked if you want to switch to rebel) Our upcoming custom features: Custom status bar Uranium with radiation zone (For rebel license holders only) Corporation's own Plutonium mining Bank of Altis (Custom made by myself) Crafting Levelling / XP System Drug Cartel (For processing everything in one area) Get paid for capping gang hideouts + drug cartel SafeZone godmode, custom triggers + actions Police can ANPR to see the speed & if the driver is wearing a seatbelt or not Vehicle Key GPS showing [GPS ERROR] to increase the level of roleplay and stop those who want their vehicle back! Speed Cameras Auction Houses Bleeding Out & many other features that I have up my sleeves! ClubHouseRP Casino Uber Taxi System More illegal / legal jobs We have plenty of features that are to come within the upcoming week(s). We are always open to server suggestions! (Currently I am the only developer) Nothing is one sided. Every faction is equal! Screenshots: https://imgur.com/a/Rrchkp2 Some of these scripts are not made by me and I do not take any credits whatsoever. But they might be heavily edited. (We would like to thanks those who released scripts in the scripts section on AltisLifeRPG forums) Please don't criticize the server. It's in early stages and it will improve, that's a problem. Instead, please leave some feedback on what to improve on. This helps a lot
  37. 3 points
    This is a pack of some of the UI's and Icons I made for Repentz/Orion. Feel free to use any of these files and edit them to your liking. This Pack Includes - 2 versions of my Phone Esc Menu Icons ID System UI Source Files for my TS Icon Pack Interaction Menu Spawn Menu Mr. New Mr._New_-_UI_&_TS_Source_Files.zip
  38. 3 points
    Author: Unknown ALL STEP FOR THE LIFE_SERVER 1. Creat a new .sqf file and named it "trafficLights.sqf" and copy following in the file: /* File: trafficLights.sqf */ _1a1 = nearestObject [[8538.83,6580.55,0.0999994], "Land_E76_trafficlight02a"]; _1a2 = nearestObject [[8564.94,6599.19,0.0999994], "Land_E76_trafficlight02a"]; _1b1 = nearestObject [[8560.69,6576.75,0.0999994], "Land_E76_trafficlight02a"]; _1b2 = nearestObject [[8542.31,6603.25,0.0999994], "Land_E76_trafficlight02a"]; _2a1 = nearestObject [[8559.91,6702.75,0.0999994], "Land_E76_trafficlight02a"]; _2a2 = nearestObject [[8584.66,6711.34,0.0999994], "Land_E76_trafficlight02a"]; _2b1 = nearestObject [[8582.81,6698.59,0.0999994], "Land_E76_trafficlight03a"]; _2b2 = nearestObject [[8561.75,6715.16,0.0999994], "Land_E76_trafficlight03a"]; _3a1 = nearestObject [[8633.36,6689.42,0.0999994], "Land_E76_trafficlight02a"]; _3a2 = nearestObject [[8658.5,6698.38,0.0999994], "Land_E76_trafficlight02a"]; _3b1 = nearestObject [[8635.84,6702.06,0.0999994], "Land_E76_trafficlight03a"]; _3b2 = nearestObject [[8656.66,6685.59,0.0999994], "Land_E76_trafficlight03a"]; _4a1 = nearestObject [[8654.06,6808.72,0.0999994], "Land_E76_trafficlight02a"]; _4a2 = nearestObject [[8681.03,6826.94,0.0999994], "Land_E76_trafficlight02a"]; _4b1 = nearestObject [[8677.22,6803.5,0.0999994], "Land_E76_trafficlight02a"]; _4b2 = nearestObject [[8659.03,6830.69,0.0999994], "Land_E76_trafficlight02a"]; _5a1 = nearestObject [[3566.718,7536.303,0.0999994], "Land_E76_trafficlight02a"]; _5a2 = nearestObject [[3549.829,7560.835,0.0999994], "Land_E76_trafficlight02a"]; _5b1 = nearestObject [[3566.718,7536.303,0.0999994], "Land_E76_trafficlight02a"]; _5b2 = nearestObject [[3549.829,7560.835,0.0999994], "Land_E76_trafficlight02a"]; _6a1 = nearestObject [[3474.609,7607.043,0.0999994], "Land_E76_trafficlight02a"]; _6a2 = nearestObject [[3466.915,7628.361,0.0999994], "Land_E76_trafficlight02a"]; _6b1 = nearestObject [[3479.372,7630.38,0.0999994], "Land_E76_trafficlight02a"]; _6b2 = nearestObject [[3459.278,7609.513,0.0999994], "Land_E76_trafficlight02a"]; _7a1 = nearestObject [[8300.073,6360.755,0.0999994], "Land_E76_trafficlight02a"]; _7a2 = nearestObject [[8320.945,6368.557,0.0999994], "Land_E76_trafficlight02a"]; _7b1 = nearestObject [[8315.313,6356.344,0.0999994], "Land_E76_trafficlight02a"]; _7b2 = nearestObject [[8306.522,6375.654,0.0999994], "Land_E76_trafficlight02a"]; as = [_1a1,_1a2,_2a1,_2a2,_3a1,_3a2,_4a1,_4a2,_5a1,_5a2,_6a1,_6a2,_7a1,_7a2];//as on same bs = [_1b1,_1b2,_2b1,_2b2,_3b1,_3b2,_4b1,_4b2,_5b1,_5b2,_6b1,_6b2,_7b1,_7b2];//bs on same //beim start auf rot setzen bs { _x animate ["switchred",0]; } foreach bs; active = as; lightSwitch = true; counter = 0; _lightLoop = { if(counter == 0) exitWith { { _x animate ["switchgreen",0]; } foreach active; { _x animate ["switchred",1]; } foreach active; counter = 3; }; if(counter < 17 && {counter > 0}) exitWith { counter = counter + 3; }; if(counter == 18) exitWith { { _x animate ["switchgreen",1]; } foreach active; { _x animate ["switchyellow",0]; } foreach active; counter = 21; }; if(counter < 23 && {counter > 17}) exitWith { counter = counter + 3; }; if(counter == 24) exitWith { { _x animate ["switchyellow",1]; } foreach active; { _x animate ["switchred",0]; } foreach active; counter = 27; }; if(lightSwitch) then { active = bs; lightSwitch = false; } else { active = as; lightSwitch = true; }; if(counter == 27) then { counter = 0; }; if(isServer && {life_loopExit}) exitWith { [_this select 1] call CBA_fnc_removePerFrameHandler; as = nil; bs = nil; active = nil; lightSwitch = nil; counter = nil; [] remoteExecCall ["TON_fnc_trafficLights",hc_1]; }; if(isServer && {!isNil "hc_1"} && {!isNil "life_HC_isActive"} && {life_HC_isActive}) exitWith { [_this select 1] call CBA_fnc_removePerFrameHandler; life_loopExit = true; as = nil; bs = nil; active = nil; lightSwitch = nil; counter = nil; [] remoteExecCall ["TON_fnc_trafficLights",hc_1]; }; }; [_lightLoop, 3, []] call CBA_fnc_addPerFrameHandler; 2. Now open the init.sqf and past on the bottom of the file following: [] execVM "\life_server\trafficLights.sqf"; Finish !
  39. 3 points
    you know i thought everyone using the same scripts is bad BUT EVERYONE MAKING SERVERS USE THE BEN HARRIS FRAMEWORK NOWADAYS AUYDHASIDJNKASHBDASJNAAAAAAAAAAAAAAAAAAAAAAAAA
  40. 3 points
  41. 3 points
    Make your own skins?
  42. 3 points
  43. 3 points
    At least I can make my own content? @RexSmith I said that to ask why that is occuring. I need something to do with my life? If I wanted to make my own server I could, I would, and will be a ton better than your "custom altis life" but unfortunately I have priorities.
×
×
  • Create New...