Welcome to Altis Life RPG

Register now to gain access to all of our features.
Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more.


Note that you can now sign-in with your Steam account.


This message will be removed once you have signed in.

  • Announcements

    • Rozo

      Donations   09/18/2016

      Hello,
        We've added a donation block on the right side. All of those donation goes directly to the developer of Altis Life mod ( currently BoGuu ). None of that money is used to maintain the forum. In the future we might add a donation button to support the forum, but for now we want to encourage the developer because they went through a lot. To discuss this topic - Here
    • Shakir Darwish

      IS YOUR SERVER BROKEN SINCE 1.64 UPDATE?   09/22/2016

      If your server is broken since 1.64 go check this link thanks. https://github.com/AsYetUntitled/Framework/issues/104
    • Rozo

      Sad Day   01/04/2017

      Good evening community of Altis Life RPG, Today was a sad day. We learned the hard way that one of the helper was using his status and visibility on the forum to do things i wouldn't imagine.  We were warned about this user in the beginning, we talked about his behavior and he said that they were things of the past. We were fooled.
      Unfortunately, he fooled other community members by selling stolen content and impersonating his role as a developer in another community. Here's a remember of one of the rules on our forum, No selling scripts, snippets, or services.   So if anyone come across someone who's selling his services, scripts or whatever, Report them. Especially if it's coming from an Helper, Mod, Admin. No one in the staff should ask for money, we already mention this when we reopened the forum and that rule is here to stay.

      We can't be sorry enough for what happen here, for any harm it as caused among other communities, for money that shouldn't been spent and we truly hope this doesn't happen again.

      As for the user in question, he is now banned from our forum and discord and we wish to never cross his path again.
        If there's anything we can do hit us on Discord or send a message to an admin.
      Thanks, Rozo.

Leaderboard


Popular Content

Showing most liked content since 04/21/2018 in all areas

  1. 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!
  2. 5 points
    Author: GhostsBR Description: This is my frist script, is a paid toll. Difficulty: Easy 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. EN-US.rar PT-BR.rar
  3. 4 points
  4. 4 points
    Hello and welcome to my 84th server this week!
  5. 3 points
    Declare Terroism Some kid is moaning about not having this type of script so i thought i write most of it to provide a basis for him because IEthanHD is a nice guy. Step 1) go to functions and add class DeclareTerroism {}; to actions Step 2) add [] call life_fnc_DeclareTerroism; to either a addaction or onbuttonclick your choice really OnButtonClick = onButtonClick = "[] call life_fnc_DeclareTerroism;"; NPC = this addAction ["Declare Terroism", {[] call life_fnc_DeclareTeroism}]; Step 3) create a file in actions called fn_declareterroism.sqf and paste this is. /** * Copyright © 2018 IEthanHD, TGH Media Studios. * All Rights Reserved, Unless Otherwise Specified * Filename: DeclareTerroism.sqf */ //--- Private private["_instigator","_tactive"]; //--- Params _instigator = [_this,1,ObjNull,[ObjNull]] call BIS_fnc_param; //--- Run a series of checks if (vehicle player != _instigator) exitWith { hint "Get out of your vehicle!" }; if (_active) exitWith { hint "Declaration already in progress!" }; if !(alive _instigator) exitWith {}; if(_tactive) exitWith { hint "This can de done once per game!" }; //--- Check For License if !(license_civ_rebel) exitWith { hint "No license!" }; //--- Activate _tactive = true; //--- Hint And Exec Hint hint "YOU DECLARED TERROISM"; //--- Last Line Broadcast which player declared its so easy you do it THERE YOU GO MOST DUMBEST SCRIPT EVER AND IT TOOK 5 MINS
  6. 3 points
    ill give you about a day to get a real and not-stolen website, or you guys are gone
  7. 3 points
    you know i thought everyone using the same scripts is bad BUT EVERYONE MAKING SERVERS USE THE BEN HARRIS FRAMEWORK NOWADAYS AUYDHASIDJNKASHBDASJNAAAAAAAAAAAAAAAAAAAAAAAAA
  8. 2 points
  9. 2 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 !
  10. 2 points
    I would add a list of unique features to your post People on here like to read on what scripts etc they can expect before joining servers so "features that I wont spoil it's something YOU need to find out!" Will most likely make people just skip your post buddy.
  11. 2 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
  12. 2 points
    The grammatical mistakes hurt my bones
  13. 2 points
  14. 2 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".
  15. 1 point
    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
  16. 1 point
    Martial Law is declared only during extreme situations. If you have a legal gun, good for you stay inside or put it away out of site if you lose your gun that's entirely your fault and no one elses.
  17. 1 point
  18. 1 point
  19. 1 point
    TUTORIAL Author: Grumpy Old Man Modified by: Person2611 Difficulty: Easy Preview I want to thank Grump Old Man for the code to make PA or Speaker announcements. I know there is one currently for the Purge event but this one is simply for placing speakers in towns of police stations etc. I have tested this and it does work in 5.0 so it will most likely work in lower releases Let's start. 1. Create a new folder called scripts in your main mission file and create a new sqf file and name it loudspeaker.sqf and paste this: GOM_fnc_baseLoudspeakers = { params ["_loudspeakers","_sounds"]; GOM_fnc_basePlaySounds = true; while {GOM_fnc_basePlaySounds} do { sleep random [300,600,900]; //Amount of random time it will take to play in seconds. I recommend you keep it, currently set at 5 minute, 10 minute and 15 minute random intervals { _sound = selectRandom _sounds; if (alive _x) then { [_x,_sound] remoteExec ["say3D",0]; }; } forEach _loudspeakers; }; }; //to call it: _loudspeakers = [speaker1,speaker2]; //Object variable name change this to suit your needs. If you wish to add more than two simply continue with a , after the name _sounds = ["sound","sound1"]; //Name of the sound file replace to suit your needs. _play = [_loudspeakers, _sounds] spawn GOM_fnc_baseLoudspeakers; Now save the file in your scripts folder if you haven't done it already 2. Open your description.ext and under CfgSounds create a new class. Like so: class sound { name = "sound"; sound[] = {"\sounds\sound.ogg", 14.0, 1}; titles[] = {}; }; Replace the word sound to the name of the sound file you intend to use. 3. Go to the init.sqf in the main mission file and add the following: [] execVM "scripts\loudSpeaker.sqf" Now save and close 4. Go into the editor of ARMA 3 and place some loudspeakers to where you want them and name them speaker1 etc or what you want to name them 5. Add the .ogg files to your sounds folder. All done! This is working perfectly for me exactly as it is set out above if you have problems then you've likely screwed up somewhere so go back and study it, not being bothered to check is not an excuse to reply with an easily fixed problem.
  20. 1 point
    Thank you. Friends of my main language is not English. I do not understand if it is not explained in detail. sorry again.
  21. 1 point
    Thank you!!!!!!!! <3
  22. 1 point
    Their other server was Ben Harris' framework. This is probably just the same to be honest. CuStOm FrAmEwOrK bTw
  23. 1 point
    @Kaiden 99% sure that it should work for you. Just use the code that I posted before and edited, not the code I'm about to link. Proof that it works:
  24. 1 point
    https://www.altisliferpg.com/topic/341-treasure/
  25. 1 point
    This is what it look like ingame (german)
  26. 1 point
    http://joshlisher.phy.sx/donate/ http://www.centaur-roleplay.com/news Come back when you have SSL no one should not have green bar EV ssl nowadays especially when you want donations
  27. 1 point
    Thank you man. Good luck with your server
  28. 1 point
    Create a the following file. /core/admin/fn_adminInvis.sqf #include "..\..\script_macros.hpp" /* File: fn_adminInvis.sqf Author: Rowantrek Description: Enables Invisibility Mode for an Admin */ if (FETCH_CONST(life_adminlevel) < 4) exitWith {closeDialog 0; hint localize "STR_ANOTF_ErrorLevel";}; if (player getVariable["life_adminInvis",false]) then { player hideObjectGlobal false; player setVariable["life_adminInvis",false,true]; } else { player hideObjectGlobal true; player setVariable["life_adminInvis",true,true]; }; In /core/configuration.sqf Add somewhere in the file life_adminInvis = false; Also remember to include fn_adminInvis in functions.hpp I haven't tested it so let me know if it doesn't work
  29. 1 point
    SIMPLE MORPHINE AND BANDAGES [Complete] You may attempt to install this, let me know if it works. Basically, this adds two new items: morphine and bandages, they heal over time instead of instantly, I removed all other sources of healing from my server to make it more realistic. ___________________________________________________________________________________________________________________________________________________________________________________ TUTORIAL ___________________________________________________________________________________________________________________________________________________________________________________ 1. Download the attached icons.rar file 2. place them in your icons folder (make sure the virtual items code listed below calls to right location) 3. open config_vitems.sqf and place these in the class VirtualShops array: class morphine { variable = "morphine"; displayName = "STR_Item_Morphine"; weight = 2; buyPrice = 1500; sellPrice = 300; illegal = true; edible = -1; icon = "images\icons\Morphine.paa"; }; class bandages { variable = "bandages"; displayName = "STR_Item_Bandages"; weight = 2; buyPrice = 200; sellPrice = 50; illegal = false; edible = -1; icon = "images\icons\ico_bandages.paa"; }; 4. Add 'morphine' and 'bandages' to whatever shops you want near the top of the file 5. Open stringtable.xml and add these: <Key ID="STR_Item_Morphine"> <Original>Morphine Syrette</Original> </Key> <Key ID="STR_Item_Bandages"> <Original>Bandages</Original> </Key> 6. Open the useitem.sqf file, add these: case (_item isEqualTo "morphine"): { [] spawn life_fnc_morphine; }; case (_item isEqualTo "bandages"): { [] spawn life_fnc_bandages; }; 7. (optional) If you want these items to save over restart/relog add them to the save_vehicle_items[] array in your config_master.hpp file 8. Download the scripts.rar file at the bottom, place the files inside into your core/items folder 9. Go into functions.h folder, add these into the core\items array: class bandages {}; class morphine {}; icons.rar scripts.rar
  30. 1 point
    Update to a build of the framework from this century.
  31. 1 point
    World-of-Roleplay Erzähle deine eigene Geschichte auf WoR Ab dem 22.06.2017 haben sich die Tore für world-of-roleplay geöffnet. Die Bürger konnten sich nun endlich auf der Insel Malden niederlassen und die neue Umgebung erkunden. Wir bauen den Server auf und legen viel Wert auf das Hardcore RP. Die Staatlichen Fraktionen - Polizei: Die Polizei ist bei uns auf Malden eine Mischung aus dem Deutschen und Amerikanischen Polizei System. Man arbeitet sich mit viel Training und Ausbildungen die Ränge hoch. Man muss sich immer an Roleplay halten. Was bietet die Polizei an: Die Patrol Unit ist wie der Name schon sagt für den ganzen Staat zuständen und die Patrol Unit ist für regulären Streifendienst zuständig - Sanitäter: Im Rettungsdienst werden immer erfahrene Mitarbeiter gesucht . Wer sich gut mit ACE3 beziehungsweise mit Atropin,Epinephrin und Morphin auskennt Sanitäter kümmern sich um verletzte Personen. - Feuerwehr: Die Feuerwehr kümmert sich um Häuserbrände wie auch um Autobrände. - Telefon/GPS: Beim Telefon script müsst ihr eure nummer an andere weitergeben damit die euch anrufen können das läuft über tfar oder eine sms schreiben es gibt verschiedene flats fürs handy und sim karte wie auch selfies kann man machen oder gps paar Bilder sehen sie gleich da unten Auf World-of-Roleplay findet ihr ein nie dagewesenes Roleplay Info: Realeistische preise Weiterentwickelte Script/Mods Skill und Exp System Neuartiges Waffenshop Viele neue Farmjobs Waffen Dealer als person Auto Dealer als person Frauen Gesichter,Kleidung Auto Handel(du kannst Autos an Spieler verkaufen) Dynamisches Markt system(nicht von ryan) Filialbank zum ausrauben Kompetentes Admin Team monatliche Community Besprechung Wir nehmen Leute auch mit Handycaps auf Wir sind ein Whitelist Server Telefon Script GPS System - Team: Projektleiter: Steven Stellv.Projektleiter: Jayden Manager: Ivan.K Stellv.Manager: Kelly Black - Kontaktdaten: Forum: http://world-of-roleplay.com Teamspeak³: world-of-roleplay.com Wiki: http://world-of-roleplay.com/wiki Whitelistung :https://www.formlets.com/forms/tNe2E1Dtaw2bhTr7/ Serverip: world-of-roleplay.com port:2302 Wir Freuen uns auf Dich Das WoR Team
  32. 1 point
    (its a German Special Forces Van). Van
  33. 1 point
    yes but its a "feature" that takes .2 seconds to do.
  34. 1 point
    How is no public cop a feature
  35. 1 point
    @Semprus Gaming XAMP Is problem after problem, it is more beneficial to use MYSQL. Even using XAMP, "setting up cilent" can be caused by many different errors, you should rename your thread or delete it tbh.
  36. 1 point
    Author: (unknown) https://www.altisliferpg.com/topic/7276-tutorial-responsive-good-cop-radar-anpr-easy-implementation-screenshot/?page=1 Where I got the script from: https://altisdev.com/topic/6710/radar-intégrée-dans-un-véhicule-modification/6 I also did an English translation! Now, lets get into how to make the script! Step 1: go into core\cop\fn_radar.sqf replace by this: /* File: fn_radar.sqf Author: Herman Description: Version 1.2 */ if (!(vehicle player != player)) exitWith {}; if (playerSide != west) exitWith {}; _speed = 0; _info = ""; _vehicle = []; _owner = []; _cars = []; { if (alive _x) then { _cars set[(count _cars), _x]; }; } forEach nearestObjects[vehicle player, ["Car"], 100]; if (count _cars < 2) exitWith { hint parseText format["<t color='#5A80EB'><t align='center'><t size='1.5'>ERROR!</t></t><br/><t color='#FF0000'><t size='1'>No Vehicle!</t></t>"]; }; _vehicle = (_cars select 1); _type = getText(configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "displayName"); if (count(crew(_vehicle)) == 0) exitWith { hint parseText format["<t color='#5A80EB'><t align='center'><t size='1.5'>ERROR!</t></t><br/><t color='#FF0000'><t size='1'>No vehicles in motion!</t></t>"]; }; _speed = round speed(_vehicle); _owner = [_vehicle getVariable "vehicle_info_owners"] call life_fnc_vehicleOwners; // Format speed & owner below here if (_speed > 110) then { _info = format["<t color='#5A80EB'><t size='1.5'><t align='center'>Radar<br/><t color='#FF0000'><t align='center'><t size='1'>Speed %1 km/h", _speed]; } else { _info = format["<t color='#5A80EB'><t size='1.5'><t align='center'>Radar<br/><t color='#33CC33'><t align='center'><t size='1'>Speed %1 km/h", _speed]; }; if (isNil { _owner }) then { _info = _info + format["<br/><t color='#FFD700'><t size='1.5'><t align='center'>Owner:<br/><t color='#33CC33'><t align='center'><t size='1.8'> Not Found!"]; } else { _info = _info + format["<br/><t color='#5A80EB'><t size='1.5'><t align='center'>Owner(s):<br/><t color='#33CC33'><t align='center'><t size='1'> %1", _owner]; }; _info = _info + format["<br/><t color='#5A80EB'><t size='1.5'><t align='center'>Véhicule:<br/><t color='#33CC33'><t align='center'><t size='1'> %1", _type]; if ((_driver getVariable "isWanted")) then { _info = _info + format["<br/><t color='#F00'><t size='1.5'><t align='center'>The driver is wanted"]; } else { _info = _info + format["<br/><t color='#0F0'><t size='1.5'><t align='center'>The driver is wanted"]; }; hint parseText _info; Step 2: go into core\functions\fn_hudupadate.sqf then add this to it: if(playerSide == civilian) then { if(wanted_status > 0) then { LIFEctrl(IDC_LIFE_BAR_WANTED) progressSetPosition (100); LIFEctrl(IDC_LIFE_BAR_CLEAR) progressSetPosition (0); //LIFEctrl(IDC_LIFE_WANTED_TEXT) ctrlSetText format["$%1", ([wanted_status] call life_fnc_numberText)]; LIFEctrl(IDC_LIFE_WANTED_TEXT) ctrlSetText format["%1", "WANTED"]; player setVariable ["isWanted", true, true]; } else { LIFEctrl(IDC_LIFE_BAR_WANTED) progressSetPosition (0); LIFEctrl(IDC_LIFE_BAR_CLEAR) progressSetPosition (100); LIFEctrl(IDC_LIFE_WANTED_TEXT) ctrlSetText format["%1", "NOT WANTED"]; player setVariable ["isWanted", false, true]; }; } Step 3: core\functions\fn_keyHandler.sqf replace case 38 with this (should be around line 200 and something): case 38: //Shift-L = Gyrophare / L= Radar { _veh = vehicle player; if (_shift && !_alt && !_ctrlKey) then { if(playerSide in [west,independent] && _veh != player && ((driver _veh) == player)) then { if(!isNil {_veh getVariable "lights"}) then { if(playerSide == west) then { [_veh] call life_fnc_sirenLights; } else { [_veh] call life_fnc_medicSirenLights; }; }; }; _handled = true; }; if (!_alt && !_ctrlKey && playerSide == west) then { [] call life_fnc_radar; }; }; Done! Any questions post a comment and ask! (if you paste something and it looks funny, go here)
  37. 1 point
    After extra months of development we have now officially launched the server and we are offering people who have gangs a free TS3 channel including a free custom TS3 Icon and a extra £100k, to those who register their gang on the website within the next 7 days.
  38. 1 point
    Stop boosting your advertisement with members of your own community please and thank you
  39. 1 point
    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.
  40. 1 point
    Make your own skins?
  41. 1 point
    There is also the compensation button in the admin menu?
  42. 1 point
    http://prntscr.com/ijoy15 https://www.altisliferpg.com/topic/4413-tutorial-new-clothing-dialog/ Installed this but for 75% of items it will not show up the price. 11:44:28 Error in expression <life_fnc_fetchCfgDetails;_pic=(_details select 2);};if([_x]call life_fnc_levelCh> 11:44:28 Error position: <select 2);};if([_x]call life_fnc_levelCh> 11:44:28 Error Zero divisor 11:44:28 File core\shops\fn_clothingFilter.sqf [life_fnc_clothingFilter], line 49 11:44:28 Error in expression < isEqualTo"") then{_list lbAdd(_details select 1);}else{_list lbAdd _displayName> 11:44:28 Error position: <select 1);}else{_list lbAdd _displayName> 11:44:28 Error Zero divisor 11:44:28 File core\shops\fn_clothingFilter.sqf [life_fnc_clothingFilter], line 49 11:44:28 Error in expression <SetValue[(lbSize _list)-1,_price];_list lbSetPicture[(lbSize _list)-1,_pic];};};> 11:44:28 Error position: <lbSetPicture[(lbSize _list)-1,_pic];};};> 11:44:28 Error Type Any, expected String 11:44:28 File core\shops\fn_clothingFilter.sqf [life_fnc_clothingFilter], line 49 This is from my client logs, but I am stuck on how to fix.
  43. 1 point
    Hey, I have looked at the issue, as my dialogue does not touch them files I would not be my dialogue causing the issue. I do Have a possible fix, go into Stringable.xml in the root, look for Price: and Total: then make them look like what I have attached. and what Version are you using? I am guessing that you are using Version 5 clothing filter below as well just replace it. Clothing Filter #include "..\..\script_macros.hpp" /* File: fn_clothingFilter.sqf Author: Bryan "Tonic" Boardwine Description: Functionality for filtering clothing types in the menu. */ disableSerialization; params [ "", //Control ["_selection", 0, [0]] ]; life_clothing_filter = _selection; switch (_selection) do { case 4: { life_shop_cam camSetTarget (player modelToWorld [0,-.15,1.3]); life_shop_cam camSetPos (player modelToWorld [1,-4,2]); life_shop_cam camCommit 1; }; case 0: { life_shop_cam camSetTarget (player modelToWorld [0,0,1]); life_shop_cam camSetPos (player modelToWorld [1,4,2]); life_shop_cam camCommit 1; }; case 3: { life_shop_cam camSetTarget (player modelToWorld [0,0,1.4]); life_shop_cam camSetPos (player modelToWorld [-.1,2,1.4]); life_shop_cam camCommit 1; }; default { life_shop_cam camSetTarget (player modelToWorld [0,0,1.6]); life_shop_cam camSetPos (player modelToWorld [-.5,1,1.6]); life_shop_cam camCommit 1; }; }; if (isNull (findDisplay 3100)) exitWith {}; private _list = CONTROL(3100,3101); lbClear _list; private _configArray = switch (_selection) do { case 0: {M_CONFIG(getArray,"Clothing",life_clothing_store,"uniforms");}; case 1: {M_CONFIG(getArray,"Clothing",life_clothing_store,"headgear");}; case 2: {M_CONFIG(getArray,"Clothing",life_clothing_store,"goggles");}; case 3: {M_CONFIG(getArray,"Clothing",life_clothing_store,"vests");}; case 4: {M_CONFIG(getArray,"Clothing",life_clothing_store,"backpacks");}; }; private "_pic"; private "_details"; { _x params [ ["_className", "NONE", [""]], ["_displayName", "", [""]], ["_price", 1000, [0]] ]; if !(_className isEqualTo "NONE") then { _details = [_className] call life_fnc_fetchCfgDetails; _pic = (_details select 2); }; if ([_x] call life_fnc_levelCheck) then { if (isNil "_details") then { _list lbAdd _displayName; _list lbSetData [(lbSize _list)-1,_className]; } else { if (_displayName isEqualTo "") then { _list lbAdd (_details select 1); } else { _list lbAdd _displayName; }; _list lbSetData [(lbSize _list)-1,_className]; _list lbSetValue [(lbSize _list)-1,_price]; _list lbSetPicture [(lbSize _list)-1,_pic]; }; }; true } count _configArray; Stringable.xml <Key ID="STR_GNOTF_Price"> <Original></Original> </Key> <Key ID="STR_Shop_Total"> <Original></Original> </Key>
  44. 1 point
    It is only showing the price for certain items for me. https://www.altisliferpg.com/topic/4421-pasta-bakes-dialog-issue/
  45. 1 point
    Credit to Entity for his Spawnmenu. I used his dialog coordinates for my GPS Window Difficulty: Easy Author: Tonic modified by Walkero0 MyLifeVersion: 5.0.0 I used Tonics Spawnprocedure to create a GPS System ("Markerfinder") Image *Update* 30.12.2016: Fixed some bugs. Added SetGPS Point: Executes a Taskdestination on the given MapPosition. Add to the bottom of config\Config_Master.hpp: #include "Config_GPSPoints.hpp" add in dialog\Masterhandler.hpp: #include "gpsSelection.hpp" add in Functions.hpp: class GPS { file = "core\gps"; class gpsMenu {}; class gpsPointCfg {}; class gpsPointSelected {}; class setgpsPoint {}; }; Add in player_inv.hpp: class ButtonGPSMenu: Life_RscButtonMenu { idc = -1; text = "$STR_PM_GPSMenu"; onButtonClick = "[] spawn life_fnc_gpsMenu"; x = 0.1 + (6.25 / 19.8) + (1 / 250 / (safezoneW / safezoneH)); y = 0.805; w = (6.25 / 40); h = (1 / 25); }; add to stringtable.xml: <Key ID="STR_PM_GPSMenu"> <Original>GPS Menu</Original> <Czech>Nabídka GPS</Czech> <Spanish>Menu GPS</Spanish> <Russian></Russian> <German>GPS Menü</German> <French>Menu GPS</French> <Italian>Menu GPS</Italian> <Portuguese>Menu GPS</Portuguese> <Polish>GPS Menu</Polish> </Key> <Key ID="STR_location_CSP"> <Original>Current GPS Point</Original> <Czech>Current GPS Point</Czech> <Spanish>Current GPS Point</Spanish> <Russian></Russian> <German>Aktueller GPSpunkt</German> <French>Current GPS Point</French> <Italian>Current GPS Point</Italian> <Portuguese>Current GPS Point</Portuguese> <Polish>Current GPS Point</Polish> </Key> <Key ID="STR_GPS_Title"> <Original>GPS Selection</Original> <Czech>GPS Selection</Czech> <Spanish>Selección de GPS</Spanish> <Russian></Russian> <German>GPS Auswahl</German> <French>Selection du GPS</French> <Italian>Selezione GPS</Italian> <Portuguese>Locais para Começar</Portuguese> <Polish>Wybierz punkt odrodzenia</Polish> </Key> <Key ID="STR_GPS_Finish"> <Original>You have arrived at your destination</Original> <Czech>Že jste přišel o svého cíle</Czech> <Spanish>Ha llegado un su objetivo</Spanish> <Russian></Russian> <German>Du bist an deinem Ziel angekommen!</German> <French>Vous êtes arrivé un votre objectif</French> <Italian>Sei arrivato un tuo obiettivo</Italian> <Portuguese>Você chegou a sua meta</Portuguese> <Polish>Po przyjeździe na swój cel</Polish> </Key> <Key ID="STR_Set_GPS"> <Original>set GPS Point</Original> <Czech>nastavit GPS bod</Czech> <Spanish>Establecer punto GPS</Spanish> <Russian></Russian> <German>Wegpunkt setzen</German> <French>Définir le point GPS</French> <Italian>set GPS Point</Italian> <Portuguese>Definir ponto GPS</Portuguese> <Polish>zadana GPS</Polish> </Key> <Key ID="STR_get_GPS"> <Original>Buy a GPS at Generalstore!</Original> <Czech>nastavit GPS bod</Czech> <Spanish>Comprar un GPS</Spanish> <Russian></Russian> <German>Kauf dir ein GPS</German> <French>Acheter un GPS</French> <Italian>Comprare un GPS</Italian> <Portuguese>Compre um GPS</Portuguese> <Polish>Kup GPS</Polish> </Key> Add these lines under /* Functions for everyone */ in your CfgRemoteExec.hpp F(BIS_fnc_settask,ANYONE) //GPS F(bis_fnc_deletetask,ANYONE) //GPS F(bis_fnc_settasklocal,ANYONE) //GPS Add this under Backend Variables in your configuration.sqf life_gps_point = ""; life_lastgps_point = ""; To delete the Task when you have arrived at the GPS Destination: add to missionfile\init.sqf: [] execVM "scripts\deletetask.sqf"; Add Files--> done. I really don't know if this is required: I added this to core\clientValidator to _vars: ,"life_lastgps_point","life_gps_point" Map Altis: If you use Altis Map change the class in config\Config_GPSPoints.hpp (line 13) to Altis: class Altis { and use this for every Side civ, cop, medic: class Kavala { displayName = "Kavala"; spawnMarker = "civ_spawn_1"; icon = "\a3\ui_f\data\map\MapControl\watertower_ca.paa"; conditions = ""; }; class Athira { displayName = "Athira"; spawnMarker = "civ_spawn_3"; icon = "\a3\ui_f\data\map\MapControl\watertower_ca.paa"; conditions = ""; }; class Pyrgos { displayName = "Pyrgos"; spawnMarker = "civ_spawn_2"; icon = "\a3\ui_f\data\map\MapControl\watertower_ca.paa"; conditions = ""; }; class Sofia { displayName = "Sofia"; spawnMarker = "civ_spawn_4"; icon = "\a3\ui_f\data\map\MapControl\watertower_ca.paa"; conditions = ""; }; instead of this: class Georgetown { displayName = "Georgetown"; gpsMarker = "civ_spawn_1"; icon = "\a3\ui_f\data\map\MapControl\watertower_ca.paa"; conditions = ""; }; class Balavu { displayName = "Balavu"; gpsMarker = "civ_spawn_3"; icon = "\a3\ui_f\data\map\MapControl\watertower_ca.paa"; conditions = ""; }; class Tuvanaka { displayName = "Tuvanaka"; gpsMarker = "civ_spawn_2"; icon = "\a3\ui_f\data\map\MapControl\watertower_ca.paa"; conditions = ""; }; class Lijnhaven { displayName = "Lijnhaven"; gpsMarker = "civ_spawn_4"; icon = "\a3\ui_f\data\map\MapControl\watertower_ca.paa"; conditions = ""; }; Please let me know if I made any mistakes. Have a look into the Config_GPSPoints.hpp to set your Markers correctly Files: GPS_system.rar
  46. 1 point
    Original Post - N/A Original Author - Shakir Darwish Open your "dialog" folder and then open "impound.hpp" Add this to classSellCar: class InsureCar : life_RscButtonMenu { idc = 97480; text = "ensure" ; onButtonClick = "[] call life_fnc_insureCar;"; x = 0.43 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH)); and = 0 . 9 - ( 1 / 25 ); w = (6.25 / 40); h = (1 / 25); }; Go to dialog>functions and add a new file named "fn_insureCar.sqf" Paste this in the new document: #include "..\..\script_macros.hpp" /* File: fn_insureCar.sqf Author: Guit0x "Lintox" Description: Insure a vehicle from the garage. */ private["_vehicle","_vehicleLife","_vid","_pid","_unit","_multiplier","_price","_purchasePrice","_insurancePrice"]; disableSerialization; if ((lbCurSel 2802) isEqualTo -1) exitWith {hint localize "STR_Global_NoSelection"}; _vehicle = lbData[2802,(lbCurSel 2802)]; _vehicle = (call compile format["%1",_vehicle]) select 0; _vehicleLife = _vehicle; _vid = lbValue [ 2802 , (lbCurSel 2802 )]; _pid = getPlayerUID player; _unit = player; if(isNil "_vehicle") exitWith {hint localize "STR_Garage_Selection_Error"}; if ((time - life_action_delay) < 1.5) exitWith {hint localize "STR_NOTF_ActionDelay";}; if (!isClass (missionConfigFile >> "LifeCfgVehicles" >> _vehicleLife)) then { _vehicleLife = "Default"; //Use Default class if it doesn't exist diag_log format["%1: LifeCfgVehicles class doesn't exist",_vehicle]; }; _price = M_CONFIG(getNumber,"LifeCfgVehicles",_vehicleLife,"price"); switch (playerSide) do { case civilian: { _multiplier = LIFE_SETTINGS(getNumber,"vehicle_insurance_multiplier_CIVILIAN"); _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_CIVILIAN"); }; case west: { _multiplier = LIFE_SETTINGS(getNumber,"vehicle_insurance_multiplier_COP"); _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_COP"); }; case independent: { _multiplier = LIFE_SETTINGS(getNumber,"vehicle_insurance_multiplier_MEDIC"); _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_MEDIC"); }; case east: { _multiplier = LIFE_SETTINGS(getNumber,"vehicle_insurance_multiplier_OPFOR"); _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_OPFOR"); }; }; _insurancePrice = _purchasePrice * _multiplier; if(!(_insurancePrice isEqualType 0) || _insurancePrice < 1) then {_insurancePrice = 500}; if(BANK < _insurancePrice) exitWith {hint format[(localize "STR_GNOTF_NotEnoughMoney"),[_insurancePrice] call life_fnc_numberText];}; if (life_HC_isActive) then { [_vid,_pid,_insurancePrice,player,life_garage_type] remoteExecCall ["HC_fnc_insureCar",HC_Life]; } else { [_vid,_pid,_insurancePrice,player,life_garage_type] remoteExecCall ["TON_fnc_insureCar",RSERV]; }; hint localize "STR_InsuranceApply"; BANK = BANK - _insurancePrice; life_action_delay = time; closeDialog 0; Open "function.hpp" in your "dialog" folder and add: class Dialog_Controls { file = "dialog\function"; [...] class insureCar {}; [...] }; Then open your "functions" folder in your "dialog" folder and open "fn_garageLBChange.sqf" Replace this: private["_control","_index","_className","_classNameLife","_dataArr","_vehicleColor","_vehicleInfo","_trunkSpace","_sellPrice","_retrievePrice","_sellMultiplier","_price","_storageFee","_purchasePrice"]; With this: private["_control","_index","_className","_classNameLife","_dataArr","_vehicleColor","_vehicleInfo","_trunkSpace","_sellPrice","_retrievePrice","_sellMultiplier","_insurance","_insuranceMultiplier","_price","_storageFee","_purchasePrice","_insurancePrice"]; After this: _classNameLife = _className; Add this: _insurance = (_dataArr select 2 ); Replace this: switch (playerSide) do { case civilian: { _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_CIVILIAN"); _sellMultiplier = LIFE_SETTINGS(getNumber,"vehicle_sell_multiplier_CIVILIAN"); }; case west: { _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_COP"); _sellMultiplier = LIFE_SETTINGS(getNumber,"vehicle_sell_multiplier_COP"); }; case independent: { _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_MEDIC"); _sellMultiplier = LIFE_SETTINGS(getNumber,"vehicle_sell_multiplier_MEDIC"); }; case east: { _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_OPFOR"); _sellMultiplier = LIFE_SETTINGS(getNumber,"vehicle_sell_multiplier_OPFOR"); }; }; With this: switch (playerSide) do { case civilian: { _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_CIVILIAN"); _sellMultiplier = LIFE_SETTINGS(getNumber,"vehicle_sell_multiplier_CIVILIAN"); _insuranceMultiplier = LIFE_SETTINGS(getNumber,"vehicle_insurance_multiplier_CIVILIAN"); }; case west: { _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_COP"); _sellMultiplier = LIFE_SETTINGS(getNumber,"vehicle_sell_multiplier_COP"); _insuranceMultiplier = LIFE_SETTINGS(getNumber,"vehicle_insurance_multiplier_COP"); }; case independent: { _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_MEDIC"); _sellMultiplier = LIFE_SETTINGS(getNumber,"vehicle_sell_multiplier_MEDIC"); _insuranceMultiplier = LIFE_SETTINGS(getNumber,"vehicle_insurance_multiplier_MEDIC"); }; case east: { _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_OPFOR"); _sellMultiplier = LIFE_SETTINGS(getNumber,"vehicle_sell_multiplier_OPFOR"); _insuranceMultiplier = LIFE_SETTINGS(getNumber,"vehicle_insurance_multiplier_OPFOR"); }; }; After this: _sellPrice = _purchasePrice * _sellMultiplier; Add this: _insurancePrice = _purchasePrice * _insuranceMultiplier; After this: if (!(_retrievePrice isEqualType 0) || _retrievePrice < 1) then {_retrievePrice = 500;}; Add this: if (!(_insurancePrice isEqualType 0) || _insurancePrice < 1) then {_insurancePrice = 500;}; Replace this: (CONTROL(2800,2803)) ctrlSetStructuredText parseText format[ (localize "STR_Shop_Veh_UI_RetrievalP")+ " <t color='#8cff9b'>$%1</t><br/> " +(localize "STR_Shop_Veh_UI_SellP")+ " <t color='#8cff9b'>$%2</t><br/> " +(localize "STR_Shop_Veh_UI_Color")+ " %8<br/> " +(localize "STR_Shop_Veh_UI_MaxSpeed")+ " %3 km/h<br/> " +(localize "STR_Shop_Veh_UI_HPower")+ " %4<br/> " +(localize "STR_Shop_Veh_UI_PSeats")+ " %5<br/> " +(localize "STR_Shop_Veh_UI_Trunk")+ " %6<br/> " +(localize "STR_Shop_Veh_UI_Fuel")+ " %7 ", With this: (CONTROL(2800,2803)) ctrlSetStructuredText parseText format[ (localize "STR_Shop_Veh_UI_RetrievalP")+ " <t color='#8cff9b'>$%1</t><br/> " +(localize "STR_Shop_Veh_UI_SellP")+ " <t color='#8cff9b'>$%2</t><br/> Prix de l'assurance: <t color='#8cff9b'>$%9</t><br/> State Insurance: %10 <br/> " +(localize "STR_Shop_Veh_UI_Color")+ " <t color='#8cff9b'>%8</t><br/> " +(localize "STR_Shop_Veh_UI_MaxSpeed")+ " <t color='#8cff9b'>%3 km/h</t><br/> " +(localize "STR_Shop_Veh_UI_HPower")+ " <t color='#8cff9b'>%4</t><br/> " +(localize "STR_Shop_Veh_UI_PSeats")+ " <t color='#8cff9b'>%5</t><br/> " +(localize "STR_Shop_Veh_UI_Trunk")+ " <t color='#8cff9b'>%6</t><br/> " +(localize "STR_Shop_Veh_UI_Fuel")+ " <t color='#8cff9b'>%7</t> ", Replace this: (_vehicleInfo select 12), _vehicleColor ]; With this: (_vehicleInfo select 12), _vehicleColor, [_insurancePrice] call life_fnc_numberText, if(_insurance == 1) then {"<t color='#8cff9b'>Assuré</t>"} else {"<t color='#FF0000'>Pas d'assurance</t>"}, (_vehicleInfo select 9) ]; if(_insurance == 1) then { ctrlShow [97480,False]; }else{ ctrlShow [97480,True]; }; Open dialog>function>fn_impoundMenu.sqf Replace this: _tmp = [(_x select 2),(_x select 8)]; With this: _tmp = [(_x select 2),(_x select 8),(_x select 9)]; Open CfgRemoteExec.hpp and add this in server only functions: F(TON_fnc_insureCar,SERVER) In Headless Client functions: F(HC_fnc_insureCar,HC) Open your stringtable.xml and add this: <Key ID="STR_InsuranceApply"> <Original>You just insure your vehicle you are now protected against explosions!</Original> < Czech > Now you insure your vehicle is now protected against explosions ! < / Czech > < Spanish > You just make sure your vehicle is now protected against explosions ! < / Spanish > < Italian > Just ensure your vehicle you are now protected against explosions ! < / Italian > < Polish > Just insure your vehicle you are now protected from explosion ! < / Polish > < Russian > You just insure your car, you are now protected against explosions ! < / Russian > < French > You just make your vehicle you are now protected against explosions ! < / French > < Portuguese > You just hold your vehicle you are now protected against explosions ! < / Portuguese > < German > They only insure your vehicle, you are now protected against explosions ! < / German > </Key> Under "<Key ID="STR_pInAct_SellGarage" Then open your Config_Master.hpp and add: /* Vehicle Insurance Prices */ vehicle_insurance_multiplier_CIVILIAN = .25; //Civilian Vehicle Insurance Price = Vehicle Buy Price * multiplier vehicle_insurance_multiplier_COP = .1; //Cop Vehicle Insurance Price = Vehicle Buy Price * multiplier vehicle_insurance_multiplier_MEDIC = .1; //Medic Vehicle Insurance Price = Vehicle Buy Price * multiplier vehicle_insurance_multiplier_OPFOR = -1; // -- NOT IN USE -- Simply left in for east support. In life_server: Open "config.cpp" and under class Ton_System (both life and hc) add: class insureCar {}; In functions>systems>fn_spawnVehicle.sqf: Replace this: _query = format["SELECT id, side, classname, type, pid, alive, active, plate, color, inventory, gear, fuel, damage, blacklist FROM vehicles WHERE id='%1' AND pid='%2'",_vid,_pid]; With this: _query = format["SELECT id, side, classname, type, pid, alive, active, plate, color, inventory, gear, fuel, damage, blacklist, insure FROM vehicles WHERE id='%1' AND pid='%2'",_vid,_pid]; Replace this: _vehicle setVariable ["dbInfo",[(_vInfo select 4),(_vInfo select 7)],true]; With this: _vehicle setVariable ["dbInfo",[(_vInfo select 4),(_vInfo select 7),(_vInfo select 14)],true]; Replace this: [1,_spawntext] remoteExecCall ["life_fnc_broadcast",_unit]; serv_sv_use deleteAt _servIndex; With this: if ((_vInfo select 14) isEqualTo 1) then { [ 1 , "Your vehicle is available and it is assured!" ] RemoteExecCall [ "life_fnc_broadcast" , _unit]; }else{ [ 1 , "Your vehicle is available but is not insured!" ] RemoteExecCall [ "life_fnc_broadcast" , _unit]; }; serv_sv_use deleteAt _servIndex; In functions>systems create a new file named "fn_insureCar.sqf" and paste this: /* File: fn_insureCar.sqf Author: Guit0x "Lintox" Description: Insure a vehicle from the garage. */ private["_vid","_pid","_query","_sql","_unit","_insurancePrice","_thread"]; _vid = [_this,0,-1,[0]] call BIS_fnc_param; _pid = [_this,1,"",[""]] call BIS_fnc_param; _unit = [_this,2,ObjNull,[ObjNull]] call BIS_fnc_param; _insurancePrice = [_this,3,0,[0]] call BIS_fnc_param; _query = format["UPDATE vehicles SET insure='1' WHERE pid='%1' AND id='%2'",_pid,_vid]; waitUntil { ! DB_Async_Active}; _thread = [_query,1] call DB_fnc_asyncCall; For life_hc paste this instead: /* File: fn_insureCar.sqf Author: Guit0x "Lintox" Description: Insure a vehicle from the garage. */ private["_vid","_pid","_query","_sql","_unit","_insurancePrice","_thread"]; _vid = [_this,0,-1,[0]] call BIS_fnc_param; _pid = [_this,1,"",[""]] call BIS_fnc_param; _unit = [_this,2,ObjNull,[ObjNull]] call BIS_fnc_param; _insurancePrice = [_this,3,0,[0]] call BIS_fnc_param; _query = format["UPDATE vehicles SET insure=‘1' WHERE pid='%1' AND id='%2'",_pid,_vid]; waitUntil { ! DB_Async_Active}; _thread = [_query,1] call HC_fnc_asyncCall; In FSM>cleanup.fsm replace the entire document with: /*%FSM<COMPILE "C:\Program Files (x86)\Bohemia Interactive\Tools\FSM Editor Personal Edition\scriptedFSM.cfg, Server-Side Cleanup">*/ /*%FSM<HEAD>*/ /* item0[] = {"init",0,250,-62.908096,-391.651611,27.091887,-341.651672,0.000000,"init"}; item1[] = {"true",8,218,-62.976639,-315.185364,27.023363,-265.185364,0.000000,"true"}; item2[] = {"Share__Work_load",2,250,-64.183350,-224.681931,25.816656,-174.681931,0.000000,"Share " \n "Work-load"}; item3[] = {"Continue__",4,218,-220.591476,74.216980,-130.591476,124.216980,0.000000,"" \n "" \n "Continue" \n "" \n ""}; item4[] = {"Time_Check",4,218,-219.425827,-133.310532,-129.425964,-83.310455,0.000000,"Time Check"}; item5[] = {"Delete_Dead_Cars",2,4346,-220.186951,-29.248400,-130.187195,20.751413,0.000000,"Delete" \n "Dead" \n "Cars"}; item6[] = {"",7,210,-312.538239,95.295059,-304.538239,103.295059,0.000000,""}; item7[] = {"",7,210,-312.798218,-204.081940,-304.798218,-196.081940,0.000000,""}; item8[] = {"End_Cleanup_",1,250,-64.828239,87.581070,25.171984,137.581238,0.000000,"" \n "End Cleanup" \n ""}; item9[] = {"Check_for_HC_",4,218,-65.059021,-30.047342,24.941008,19.952658,0.000000,"" \n "Check for HC" \n ""}; link0[] = {0,1}; link1[] = {1,2}; link2[] = {2,4}; link3[] = {3,6}; link4[] = {4,5}; link5[] = {5,3}; link6[] = {5,9}; link7[] = {6,7}; link8[] = {7,2}; link9[] = {9,8}; globals[] = {0.000000,0,0,0,0,640,480,1,53,6316128,1,-481.887177,425.726196,554.522583,-436.926575,170,901,1}; window[] = {0,-1,-1,-32000,-32000,1065,104,1468,104,1,188}; *//*%FSM</HEAD>*/ class FSM { fsmName = "Server-Side Cleanup"; class States { /*%FSM<STATE "init">*/ class init { name = "init"; init = /*%FSM<STATEINIT""">*/"private [""_impound"",""_cars"",""_objs"",""_totCars"",""_thread""];" \n "_impound = time;" \n "_cars = time;" \n "_objs = time;" \n "cleanupFSM setFSMVariable [""stopfsm"",false];"/*%FSM</STATEINIT""">*/; precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/; class Links { /*%FSM<LINK "true">*/ class true { priority = 0.000000; to="Share__Work_load"; precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/; condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/; action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/; }; /*%FSM</LINK>*/ }; }; /*%FSM</STATE>*/ /*%FSM<STATE "Share__Work_load">*/ class Share__Work_load { name = "Share__Work_load"; init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/; precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/; class Links { /*%FSM<LINK "Time_Check">*/ class Time_Check { priority = 0.000000; to="Delete_Dead_Cars"; precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/; condition=/*%FSM<CONDITION""">*/"((time - _cars) > (3 * 60))"/*%FSM</CONDITION""">*/; action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/; }; /*%FSM</LINK>*/ }; }; /*%FSM</STATE>*/ /*%FSM<STATE "Delete_Dead_Cars">*/ class Delete_Dead_Cars { name = "Delete_Dead_Cars"; init = /*%FSM<STATEINIT""">*/"{" \n " if (!alive _x) then {" \n " _dbInfo = _x getVariable [""dbInfo"",[]];" \n " if (count _dbInfo > 0) then {" \n " _uid = _dbInfo select 0;" \n " _plate = _dbInfo select 1;" \n " _insureSystem = _dbInfo select 2;" \n " diag_log "" destroy vehicle !"";" \n " diag_log format[""insureSystem = %1 "", _insureSystem];" \n " if(_insureSystem == 1) then " \n " { diag_log "" Insured !"";" \n " diag_log format[""insureSystem = %1 "", _insureSystem];" \n "" \n " _query_0 = format [""UPDATE vehicles SET alive='1', insure='0', active='0' WHERE pid='%1' AND plate='%2'"",_uid,_plate];" \n " _query_0 spawn {" \n " " \n " _thread = [_this,1] call DB_fnc_asyncCall;" \n " };" \n " } else {" \n " diag_log "" Not insured !"";" \n " diag_log format[""insureSystem = %1 "", _insureSystem];" \n " _query = format[""UPDATE vehicles SET alive='0' WHERE pid='%1' AND plate='%2'"",_uid,_plate]; " \n " _query spawn {" \n " _thread = [_this,1] call DB_fnc_asyncCall;" \n " };" \n " };" \n " if (!isNil ""_x"" && {!isNull _x}) then {" \n " deleteVehicle _x;" \n " };" \n " };" \n "};" \n "} forEach allMissionObjects ""LandVehicle"";" \n "" \n "{" \n " if (!alive _x) then {" \n " _dbInfo = _x getVariable [""dbInfo"",[]];" \n " if (count _dbInfo > 0) then {" \n " _uid = _dbInfo select 0;" \n " _plate = _dbInfo select 1;" \n " _insureSystem = _dbInfo select 2;" \n " diag_log "" destroy vehicle !"";" \n " diag_log format[""insureSystem = %1 "", _insureSystem];" \n " if(_insureSystem == 1) then" \n " { diag_log "" Insured !"";" \n " diag_log format[""insureSystem = %1 "", _insureSystem];" \n " _query_0 = format [""UPDATE vehicles SET alive='1', insure='0', active='0' WHERE pid='%1' AND plate='%2'"",_uid,_plate];" \n " _query_0 spawn {" \n " " \n " _thread = [_this,1] call DB_fnc_asyncCall;" \n " };} else { " \n " diag_log "" Not Insured !"";" \n " diag_log format[""insureSystem = %1 "", _insureSystem];" \n " _query = format[""UPDATE vehicles SET alive='0' WHERE pid='%1' AND plate='%2'"",_uid,_plate]; " \n " _query spawn {" \n " _thread = [_this,1] call DB_fnc_asyncCall;" \n " };" \n " };" \n " };" \n " if (!isNil ""_x"" && {!isNull _x}) then {" \n " deleteVehicle _x;" \n " };" \n " };" \n "} forEach allMissionObjects ""Air"";" \n "_cars = time;" \n "" \n "//Group cleanup." \n "{" \n " if (units _x isEqualTo [] && local _x) then {" \n " deleteGroup _x;" \n " };" \n "} forEach allGroups;"/*%FSM</STATEINIT""">*/; precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/; class Links { /*%FSM<LINK "Check_for_HC_">*/ class Check_for_HC_ { priority = 0.000000; to="End_Cleanup_"; precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/; condition=/*%FSM<CONDITION""">*/"cleanupFSM getFSMVariable ""stopfsm"""/*%FSM</CONDITION""">*/; action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/; }; /*%FSM</LINK>*/ /*%FSM<LINK "Continue__">*/ class Continue__ { priority = 0.000000; to="Share__Work_load"; precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/; condition=/*%FSM<CONDITION""">*/"!(cleanupFSM getFSMVariable ""stopfsm"")"/*%FSM</CONDITION""">*/; action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/; }; /*%FSM</LINK>*/ }; }; /*%FSM</STATE>*/ /*%FSM<STATE "End_Cleanup_">*/ class End_Cleanup_ { name = "End_Cleanup_"; init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/; precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/; class Links { }; }; /*%FSM</STATE>*/ }; initState="init"; finalStates[] = { "End_Cleanup_", }; }; /*%FSM</COMPILE>*/ For life_hc paste this instead: /*%FSM<COMPILE "D:\Bohemia Interactive\Tools\FSM Editor Personal Edition\scriptedFSM.cfg, Server-Side Cleanup">*/ /*%FSM<HEAD>*/ /* item0[] = {"init",0,250,-65.004578,-391.651611,24.995417,-341.651672,0.000000,"init"}; item1[] = {"true",8,218,-62.976639,-315.185364,27.023363,-265.185364,0.000000,"true"}; item2[] = {"Share__Work_load",2,250,-64.183350,-224.681931,25.816656,-174.681931,0.000000,"Share " \n "Work-load"}; item3[] = {"true",8,218,-54.709698,75.189262,35.290302,125.189262,0.000000,"true"}; item4[] = {"Time_Check",4,218,-219.425827,-133.310532,-129.425964,-83.310455,0.000000,"Time Check"}; item5[] = {"Delete_Dead_Cars",2,4346,-220.186951,-29.248400,-130.187195,20.751413,0.000000,"Delete" \n "Dead" \n "Cars"}; item6[] = {"",7,210,-312.538239,95.295059,-304.538239,103.295059,0.000000,""}; item7[] = {"",7,210,-311.750000,-203.033707,-303.750000,-195.033707,0.000000,""}; link0[] = {0,1}; link1[] = {1,2}; link2[] = {2,4}; link3[] = {3,6}; link4[] = {4,5}; link5[] = {5,3}; link6[] = {6,7}; link7[] = {7,2}; globals[] = {0.000000,0,0,0,0,640,480,1,46,6316128,1,-629.444153,611.207214,293.309357,-434.050568,1243,885,1}; window[] = {2,-1,-1,-1,-1,985,225,1868,225,3,1261}; *//*%FSM</HEAD>*/ class FSM { fsmName = "Server-Side Cleanup"; class States { /*%FSM<STATE "init">*/ class init { name = "init"; init = /*%FSM<STATEINIT""">*/"private[""_impound"",""_cars"",""_objs"",""_totCars"",""_thread""];" \n "_impound = time;" \n "_cars = time;" \n "_objs = time;"/*%FSM</STATEINIT""">*/; precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/; class Links { /*%FSM<LINK "true">*/ class true { priority = 0.000000; to="Share__Work_load"; precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/; condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/; action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/; }; /*%FSM</LINK>*/ }; }; /*%FSM</STATE>*/ /*%FSM<STATE "Share__Work_load">*/ class Share__Work_load { name = "Share__Work_load"; init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/; precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/; class Links { /*%FSM<LINK "Time_Check">*/ class Time_Check { priority = 0.000000; to="Delete_Dead_Cars"; precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/; condition=/*%FSM<CONDITION""">*/"((time - _cars) > (3 * 60))"/*%FSM</CONDITION""">*/; action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/; }; /*%FSM</LINK>*/ }; }; /*%FSM</STATE>*/ /*%FSM<STATE "Delete_Dead_Cars">*/ class Delete_Dead_Cars { name = "Delete_Dead_Cars"; init = /*%FSM<STATEINIT""">*/"{" \n " if(!alive _x) then {" \n "_dbInfo = _x getVariable[""dbInfo"",[]];" \n "if(count _dbInfo > 0) then {" \n "_uid = _dbInfo select 0;" \n "_plate = _dbInfo select 1;" \n "_insureSystem = _dbInfo select 2;" \n " diag_log "" destroy vehicule !"";" \n "diag_log format[""insureSystem = %1 "", _insureSystem];" \n "if(_insureSystem == 1) then " \n "{" \ N " diag_log "" Insured !"";" \n " diag_log format[""insureSystem = %1 "", _insureSystem];" \n " _query_0 = format[""UPDATE vehicles SET alive='1', insure='0', active='0' WHERE pid='%1' AND plate='%2'"",_uid,_plate]; " \n " _query_0 spawn " \n "{" \ N " _thread_0 = [_this,1] call HC_fnc_asyncCall;" \n "};" \ N "}" \ N " else " \n "{" \ N " diag_log "" Not Insured !"";" \n " diag_log format[""insureSystem = %1 "", _insureSystem];" \n " _query = format[""UPDATE vehicles SET alive='0' WHERE pid='%1' AND plate='%2'"",_uid,_plate]; " \n " _query spawn " \n "{" \ N " _thread = [_this,1] call HC_fnc_asyncCall;" \n "};" \ N "};" \ N "};" \ N "if(!isNil ""_x"" && {!isNull _x}) then {" \n "deleteVehicle _x;" \n "};" \ N "};" \ N "} foreach allMissionObjects ""LandVehicle"";" \n "" \ N "{" \ N " if(!alive _x) then {" \n "_dbInfo = _x getVariable[""dbInfo"",[]];" \n "if(count _dbInfo > 0) then {" \n "_uid = _dbInfo select 0;" \n "_plate = _dbInfo select 1;" \n "_insureSystem = _dbInfo select 2;" \n " diag_log "" destroy vehicule !"";" \n "diag_log format[""insureSystem = %1 "", _insureSystem];" \n "if(_insureSystem == 1) then " \n "{" \ N " diag_log "" Insured !"";" \n " diag_log format[""insureSystem = %1 "", _insureSystem];" \n " _query_0 = format[""UPDATE vehicles SET alive='1', insure='0', active='0' WHERE pid='%1' AND plate='%2'"",_uid,_plate]; " \n " _query_0 spawn " \n "{" \ N " _thread_0 = [_this,1] call HC_fnc_asyncCall;" \n "};" \ N "}" \ N " else " \n "{" \ N " diag_log "" Not Insured !"";" \n " diag_log format[""insureSystem = %1 "", _insureSystem];" \n " _query = format[""UPDATE vehicles SET alive='0' WHERE pid='%1' AND plate='%2'"",_uid,_plate]; " \n " _query spawn " \n "{" \ N " _thread = [_this,1] call HC_fnc_asyncCall;" \n "};" \ N "};" \ N "};" \ N "if(!isNil ""_x"" && {!isNull _x}) then {" \n "deleteVehicle _x;" \n "};" \ N "};" \ N "} foreach allMissionObjects ""Air"";" \n "" \ N "_cars = time;" \n "" \ N "//Group cleanup." \n "{" \ N " if(count units _x == 0 && local _x) then {" \n "deleteGroup _x;" \n "};" \ N "} foreach allGroups;"/*%FSM</STATEINIT""">*/; precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/; class Links { /*%FSM<LINK "true">*/ class true { priority = 0.000000; to="Share__Work_load"; precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/; condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/; action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/; }; /*%FSM</LINK>*/ }; }; /*%FSM</STATE>*/ }; initState="init"; finalStates[] = { }; }; /*%FSM</COMPILE>*/ In functions>systems>fn_getVehicles.sqf: Replace this: _query = format["SELECT id, side, classname, type, pid, alive, active, plate, color, inventory, gear, fuel, damage, blacklist FROM vehicles WHERE id='%1' AND pid='%2'",_vid,_pid]; With this: _query = format["SELECT id, side, classname, type, pid, alive, active, plate, color, insure FROM vehicles WHERE pid='%1' AND alive='1' AND active='0' AND side='%2' AND type='%3'",_pid,_side,_type]; Run this query in your SQL Database: ALTER TABLE vehicles ADD insure INT(1) NOT NULL DEFAULT '0'; Done!
  47. 1 point
    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Difficulty: Easy Publish by: AlaskaVet Source AltisLifeRPG.com cache -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Script: barrier menu for Cops / Medics AL4.0 + Version: Altis Life 4.0+ (! 3.1.4.8 not compatible tested in 4.4r3) Author: Maximum ~ Barrier menu for Cops / Medics ~ Expandable with additional barriers ~ Behalf of the barriers easily adaptable instructions: Open your Functions.hpp and inserts under the following class Placeables { file = "core\functions\placeables"; class placeablesInit {}; class medicPlaceablesInit {}; class placeablesMenu {}; class placeablesRemoveAll {}; class placeablePlace {}; class placeableCancel {}; class placeablesPlaceComplete {}; }; Open your configuration.sqf (found in the core folder) and adds the following one /* ************************************** ****** Placeables Variables ***** ************************************** */ life_definePlaceables = //Array aller Absperrungen (Cop + Medic) [ "RoadCone_F", "RoadCone_L_F", "RoadBarrier_F", "RoadBarrier_small_F", "PlasticBarrier_03_orange_F", "Land_CncBarrier_stripes_F", "Land_PortableLight_single_F", "Land_PortableLight_double_F" ]; life_bar_limit = 100; //Maximale Anzahl Absperrungen pro Person Open your fn_keyHandler.sqf (found in the folder core / functions) and replaces your case 57 , case 39 and case 211 (if available, otherwise reinsert) here by: //Space key for Jumping case 57: { if (!_shift && life_barrier_active) then { 0 spawn life_fnc_placeablesPlaceComplete; }; if (isNil "jumpActionTime") then {jumpActionTime = 0;}; if (_shift && {!(animationState player isEqualTo "AovrPercMrunSrasWrflDf")} && {isTouchingGround player} && {stance player isEqualTo "STAND"} && {speed player > 2} && {!life_is_arrested} && {((velocity player) select 2) < 2.5} && {time - jumpActionTime > 1.5}) then { if (life_barrier_active) then { [true] call life_fnc_placeableCancel; }; jumpActionTime = time; //Update the time. [player] remoteExec ["life_fnc_jumpFnc",RANY]; //Global execution _handled = true; }; }; //Ö-Key case 39: { if ({isNull(findDisplay 20000)} && {playerSide in [west,independent]}) then { 0 spawn life_fnc_placeablesMenu; _handled = true; }; _handled = true; }; //ENTF-Key case 211: { if ({playerSide in [west,independent]} && {(typeOf cursorTarget) in life_definePlaceables}) then { deleteVehicle cursorTarget; hintSilent "Die Absperrung wurde entfernt"; }; }; Opens the files fn_initCop.sqf and fn_initMedic.sqf and inserts at the end of the following fn_initCop.sqf: [] spawn life_fnc_placeablesInit; fn_initMedic.sqf: [] spawn life_fnc_medicPlaceablesInit; Open your MasterHandler.hpp (found in the dialog-folder) and adds its following #include "placeables.hpp" Creates a new file placeables.hpp in dialog-folder with the following content class Life_Menu_Placeables { idd = 20000; name= "life_menu_placeables"; movingEnable = false; enableSimulation = true; onLoad = ""; class controlsBackground { class Life_RscTitleBackground: Life_RscText { colorBackground[] = {"(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])"}; idc = -1; x = 0.1; y = 0.2; w = 0.6; h = (1 / 25); }; class MainBackground: Life_RscText { colorBackground[] = {0, 0, 0, 0.7}; idc = -1; x = 0.1; y = 0.2 + (11 / 250); w = 0.6; h = 0.6 - (22 / 250); }; }; class controls { class Title : Life_RscTitle { colorBackground[] = {0, 0, 0, 0}; idc = -1; text = "Available placeables"; x = 0.1; y = 0.2; w = 0.6; h = (1 / 25); }; class PlaceablesList : Life_RscListBox { idc = 20001; text = ""; sizeEx = 0.035; x = 0.12; y = 0.26; w = 0.56; h = 0.370; }; class CloseButtonKey : Life_RscButtonMenu { idc = -1; text = "$STR_Global_Close"; onButtonClick = "closeDialog 0;"; x = -0.06 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH)); y = 0.8 - (1 / 25); w = (6.25 / 40); h = (1 / 25); }; class RemoveAll : life_RscButtonMenu { idc = -1; text = "Remove all"; onButtonClick = "[] call life_fnc_placeablesRemoveAll"; x = 0.1 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH)); y = 0.8 - (1 / 25); w = (6.25 / 40); h = (1 / 25); }; class Place : Life_RscButtonMenu { idc = -1; text = "Place"; colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 0.5}; onButtonClick = "[] spawn life_fnc_placeablePlace;"; x = 0.32; y = 0.69; w = (6.25 / 40); h = (1 / 25); }; }; }; Adds the "placeables" folder of the file attached to your functions-folder placeables.rar
  48. 1 point
    Difficulty: Easy Create Original Idea : Kuchiha Authors: AlaskaVet Okay in core/items make a new file called "fn_weed.sqf" /* Author:AlaskaVet */ //Close inventory closeDialog 0; //Little hint then wait a litle before starting drugs effects hint "Winners don't use drugs !"; sleep 3; //Activate ppEffects we need "chromAberration" ppEffectEnable true; "radialBlur" ppEffectEnable true; enableCamShake true; _smoke = "SmokeShellGreen" createVehicle position player; if (vehicle player != player) then { _smoke attachTo [vehicle player, [-0.6,-1,0]]; } else { _smoke attachTo [player, [0,-0.1,1.5]]; }; //Let's go for 45secs of effetcs for "_i" from 0 to 44 do { "chromAberration" ppEffectAdjust [random 0.25,random 0.25,true]; "chromAberration" ppEffectCommit 1; "radialBlur" ppEffectAdjust [random 0.02,random 0.02,0.15,0.15]; "radialBlur" ppEffectCommit 1; addcamShake[random 3, 1, random 3]; sleep 1; }; //Stop effects "chromAberration" ppEffectAdjust [0,0,true]; "chromAberration" ppEffectCommit 5; "radialBlur" ppEffectAdjust [0,0,0,0]; "radialBlur" ppEffectCommit 5; sleep 6; //Deactivate ppEffects "chromAberration" ppEffectEnable false; "radialBlur" ppEffectEnable false; resetCamShake; Now go Into core/pmenu & open "fn_useItem.sqf" Add under like lock picks like so: case (_item isEqualTo "lockpick"): { [] spawn life_fnc_lockpick; closeDialog 0; }; case (_item isEqualTo "marijuana"): { if(([false,_item,1] call life_fnc_handleInv)) then { [] spawn life_fnc_weed; }; }; Then Go into file "Functions.h" find "class Items" and add: class weed {};
  49. 1 point
    This is a simple guide on how to add the feature of having new civilians spawn with hats, backpacks, vests, etc. It's extremely simple. 1. Go to fn_civLoadout.sqf 2. Open it, replace it with this, or view the code below and make changes where necessary: /* File: fn_civLoadout.sqf Author: Tobias 'Xetoxyc' Sittenauer Edited by Repentz to add custom clothing Description: Loads the civs out with the default gear, with randomized clothing / */ private ["_handle"]; _handle = [] spawn life_fnc_stripDownPlayer; waitUntil {scriptDone _handle}; _clothings = ["U_C_Poloshirt_blue","U_C_Poloshirt_burgundy","U_C_Poloshirt_stripped","U_C_Poloshirt_tricolour","U_C_Poloshirt_salmon","U_C_Poloshirt_redwhite","U_C_Commoner1_1"]; /* Start Repentz */ _repentzHat = ["H_Booniehat_dirty","H_Booniehat_grn","H_Cap_blu"]; _repentzBackpack = ["B_TacticalPack_blk","B_Kitbag_rgr"]; _repentzVest = ["V_Press_F","V_I_G_resistanceLeader_F"]; player addHeadgear (selectRandom _repentzHat); player addBackpack (selectRandom _repentzBackpack); player addVest (selectRandom _repentzVest); /* End Repentz */ player addUniform (selectRandom _clothings); /* ITEMS */ player linkItem "ItemMap"; player linkItem "ItemCompass"; [] call life_fnc_playerSkins; [] call life_fnc_saveGear; You can add as many classnames as you want to the variables for example ,"H_Cap_blu","new classname of hat"
  50. 1 point