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 03/24/2018 in all areas

  1. 4 points
  2. 4 points
  3. 3 points
  4. 3 points
    So, I have recently returned to Life/Arma scripting & texturing, did a qucik vanity search looking for some of my old stuff... a lot has changed here it seems but thanks for keeping the credit in this script @suffer4real (And making sure it was clear @AltisLifeRpg )
  5. 2 points
  6. 2 points
    you know i thought everyone using the same scripts is bad BUT EVERYONE MAKING SERVERS USE THE BEN HARRIS FRAMEWORK NOWADAYS AUYDHASIDJNKASHBDASJNAAAAAAAAAAAAAAAAAAAAAAAAA
  7. 2 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","_active"]; //--- 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(_active) exitWith { hint "This can de done once per game!" }; //--- Check For License if !(license_civ_rebel) exitWith { hint "No license!" }; //--- Activate _active = 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
  8. 2 points
    half of the struggle on these forums is working what people are actually saying.. fml
  9. 2 points
    Stop boosting your advertisement with members of your own community please and thank you
  10. 2 points
    OASIS UPDATE 12/04/2018 So, What's New?: Development Update: Most of the scripts are done more info __________________ Graphics Update: We got some new menus for you :-) have a look: p.s: sorry for the marks
  11. 2 points
  12. 2 points
    They stole my landing page. Mine: http://www.sigma-rpe.com/ PBR: http://pbrroleplay.com/ Sigma RPE plans to provide a brand new ArmA 3 role-playing expeirience. With active developers and a great staff team, Sigma will the the pinacle of ArmA 3 Role-Play! | PBR ROLEPLAY plans to provide a brand new ArmA 3 role-playing Experience. With active developers and a great staff team, PBR ROLEPLAY will be the home of ArmA 3 Role-Play! Too lazy to change the text lol
  13. 2 points
    so you are telling me because you spent a lot of money on cars and have a "tazor" your server is good? what a great advertisement /s seriously though, add information that makes you stand out..
  14. 2 points
  15. 2 points
    NORTH LIGHT UPDATE ____________________________________________ [In-Progress] Orange [Completed] Green [On Wait List] Red ___________________________________ TERRAIN UPDATE Terrain Base Newman (Small Town) Port Hood (Shore City) Sierra (Main City in the North) Serenity (Main City in Pines) Highway Roads Winter Roads Country Roads City Roads
  16. 2 points
    NORTH LIGHT UPDATE ____________________________________________ [In-Progress] Orange [Completed] Green [On Wait List] Red ___________________________________ SKINS UPDATE Tahoe Wild Life Trooper Skin Supervisor Skins for Taurus, Tahoe, CVPI, Charger Sheriff's Department Uniforms Sheriff's Department Divisions Skins Emergency Medical Department Skins (Vehicles and Uniforms)
  17. 2 points
    Indeed I do, thank you @Deadlesszombie A little info - I have been in the works now for about 2 months. I specialize in terrain development and have been creating terrains for years now but never released them due to people wanting to steal my work. Shortly after I left Dark Ares Gaming (A use to be popular life server which died due to a corrupt owner) I began experimenting with new toys and learning new things. I have come far along my journey and I have yet to succeed or cease my work. I do a bit of texturing as you all can see from the provided screenshots within the original post.
  18. 2 points
    ASUS ROG is a copyrighted logo. you do realize that right. flipping their logo over... really?
  19. 2 points
    you can add a check like this if (_curTarget in life_vehicles && {player distance _curTarget < 20}) then { dotheflippinghere; }; in your fn_vInteractionMenu.sqf in the regarding lines to make it work or you can just disable the button if its not your vehicle if (_curTarget in life_vehicles && {player distance _curTarget < 20}) then { _Btn2 ctrlEnable true; } else { _Btn2 ctrlEnable false; }; example shows the civilian part button numbers need to be changed to your layout
  20. 2 points
    add this to jail loop: EM_allowed = false; EM_enable = [false, true]; after the person gets out of jail add: EM_allowed = true; EM_enable = [true, true];
  21. 2 points
    I don't understand the purpose of this release. This functionality is already in the framework.
  22. 2 points
    Make your own skins?
  23. 2 points
    Your Z inventory will be replaced by a cell phone. All menu items are the same. 1 new feature has it. You have an "app" with which you can perform dance moves. The script is for only the Altis Life 4.0+ version and does not work for older versions! and 5,0 "Needs Fixing" "Banking, Licenses and Player menu can not be opened in Altis life 5,0 Needs Fixing" Besides, there is no market "app" that you have to insert yourself! Credits: Moves Menu Function : Jack "Scarso" Farhall Whole Phone: Travis Boi Original Post: https://native-network.net/forum/thread/1315-tutorial-neues-z-menü-telefon/ https://gyazo.com/addaa3158f60ab9ba55d5e08581ae642 1. Inside the functions.hpp file add: class Travis_Phone { file = "dialog\CustomPhone\Functions"; class movesMenu {}; class openBankMenu {}; class openInvMenu {}; class openLicensesMenu {}; }; 2. Inside the MasterHandler.hpp file add: #include "CustomPhone\Dialog\player_inv.hpp" #include "CustomPhone\Dialog\player_menu.hpp" #include "CustomPhone\Dialog\key_chain.hpp" #include "CustomPhone\Dialog\moves_menu.hpp" #include "CustomPhone\Dialog\cell_phone.hpp" #include "CustomPhone\Dialog\TR8_Banking.hpp" #include "CustomPhone\Dialog\TR8_Licences.hpp" Then delete or // the following items from MasterHandler.hpp #include "key_chain.hpp" #include "player_inv.hpp" #include "cell_phone.hpp" Now please download the required files Then unzip the files. Open the file, you should now see a file called: common.hpp. The push In the dialog folder from the main mission file. Just slide the "Custom Phone" folder into the dialog folder. Now go to the folder core / pmenu. Now slide in the contents of the downloaded "pmenu" folder. https://www.dropbox.com/s/xznjxfzop8c1qhn/Travis's New Phone.zip?dl=0
  24. 2 points
    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!
  25. 1 point
  26. 1 point
  27. 1 point
    Welcome Today I will be providing the community with a project I have been working on for a while The Altis Life Bounty Hunters Please not that I have been coding this at times when I have been extremely tired so if any problems occur just message me or tag me in your comment I tried to make this as easy as possible for those who do not want to learn how the code is written. I would like to thank TONIC for providing me with the wantedSystem framework to go off. Fresqo who provided the fn_markers.sqf script BoGuu and Alaskavet for being there when I needed some assistance. Difficulty: EASY PEASY Version: Altis Life 4.4 R3 Let's Get Started!!! 1: Download the zip attached, All files I will be using are inside that zip. 2: missionname >> stringtable.xml find somewhere to put a new package, add: <Package name="Bounty"> <Key ID="STR_Bounty_5000"> <Original>$5,000</Original> </Key> <Key ID="STR_Bounty_10000"> <Original>$10,000</Original> </Key> <Key ID="STR_Bounty_15000"> <Original>$15,000</Original> </Key> <Key ID="STR_Bounty_20000"> <Original>$20,000</Original> </Key> <Key ID="STR_Bounty_25000"> <Original>$25,000</Original> </Key> <Key ID="STR_Bounty_30000"> <Original>$30,000</Original> </Key> <Key ID="STR_Bounty_35000"> <Original>$35,000</Original> </Key> <Key ID="STR_Bounty_40000"> <Original>$40,000</Original> </Key> <Key ID="STR_Bounty_45000"> <Original>$45,000</Original> </Key> <Key ID="STR_Bounty_50000"> <Original>$50,000</Original> </Key> <Key ID="STR_Bounty_55000"> <Original>$55,000</Original> </Key> <Key ID="STR_Bounty_60000"> <Original>$60,000</Original> </Key> <Key ID="STR_Bounty_65000"> <Original>$65,000</Original> </Key> <Key ID="STR_Bounty_70000"> <Original>$70,000</Original> </Key> <Key ID="STR_Bounty_75000"> <Original>$75,000</Original> </Key> <Key ID="STR_Bounty_80000"> <Original>$80,000</Original> </Key> <Key ID="STR_Bounty_85000"> <Original>$85,000</Original> </Key> <Key ID="STR_Bounty_90000"> <Original>$90,000</Original> </Key> <Key ID="STR_Bounty_95000"> <Original>$95,000</Original> </Key> <Key ID="STR_Bounty_100000"> <Original>$100,000</Original> </Key> <Key ID="STR_Bounty_200000"> <Original>$200,000</Original> </Key> <Key ID="STR_Bounty_300000"> <Original>$300,000</Original> </Key> <Key ID="STR_Bounty_400000"> <Original>$400,000</Original> </Key> <Key ID="STR_Bounty_500000"> <Original>$500,000</Original> </Key> <Key ID="STR_Bounty_1000000"> <Original>$1,000,000</Original> </Key> <Key ID="STR_Bounty_AddP"> <Original>%1 has been added to the bounty list, he was added for $%2 this has risen he current bounty price to $%3. The last known location has been marked on the map for all bounty hunting units. Normal declaration rules still apply, RDM will be delt with.</Original> </Key> <Key ID="STR_MAR_bountyW"> <Original>Bounty Hunters Armory</Original> </Key> <Key ID="STR_MAR_bounty"> <Original>Bounty Hunters HQ</Original> </Key> <Key ID="STR_GNOTF_BountyMSG"> <Original>You are about to buy a 'Bounty Hunting License' buying this license will give you access to the Bounty Hunters Database, kill someone on the list to get thier bounty! Normal declaration still applys, you can NOT RDM! Do you accept these terms and conditions?</Original> </Key> <Key ID="STR_bounty_bountyList_notBH"> <Original>You are not a civilian, only civilians can add people to the bounty list! I suggest you leave!</Original> </Key> <Key ID="STR_bounty_bountyList_noPlayerSelected"> <Original>No player on the list was selected! Please select a player.</Original> </Key> <Key ID="STR_bounty_bountyList_noAmountSelected"> <Original>No amount was selected, use the drop down menu to select a bounty amount.</Original> </Key> <Key ID="STR_Bounty_BountyKill"> <Original>You have collected a bounty of $%1 for killing someone on the bounty list, nice job!</Original> </Key> <Key ID="STR_Bounty_Title"> <Original>Bounty List</Original> </Key> <Key ID="STR_BountyA_Title"> <Original>Bounty Hunting Database</Original> </Key> <Key ID="STR_Bounty_License"> <Original>Bounty License</Original> </Key> <Key ID="STR_License_bountyH"> <Original>Bounty Hunter</Original> </Key> </Package> 3. missionname >> functions.hpp Add: class BountyHunters { file = "core\BountyHunters"; class bountyAddMenu {}; class bountyAddP {}; class bountyBuy {}; class bountyGrab {}; class bountyHunterReceive {}; class bountyInfo {}; class bountyKill {}; class bountyList {}; class bountyMenu {}; class markers {}; }; 4. missionname >> CfgRemoteExec.hpp Add: In the Right Areas F(life_fnc_bountyHunterReceive,CLIENT)//Bountyhunter F(life_fnc_bountyList,CLIENT)//Bountyhunter F(life_fnc_markers,CLIENT)//Bountyhunter F(life_fnc_bountyReceive,CLIENT)//Bountyhunter F(life_fnc_bountyAdd,SERVER)//Bountyhunter F(life_fnc_amountBounty,SERVER)//Bountyhunter F(life_fnc_bountyFetch,SERVER)//Bountyhunter F(life_fnc_bountyPerson,SERVER)//Bountyhunter F(life_fnc_bountyProfUpdate,SERVER)//Bountyhunter F(life_fnc_bountyRemove,SERVER)//Bountyhunter F(life_fnc_bountyAlter,SERVER)//Bountyhunter F(life_fnc_bountyCrimes,SERVER)//Bountyhunter F(life_fnc_bountyAmountGather,SERVER)//Bountyhunter 5. missionname >> config >> config_license Add: class bountyH { variable = "bountyH"; displayName = "STR_License_bountyH"; price = 100000; illegal = false; side = "civ"; }; 6. missionname >> config >> Master_config Add under the crimes array: /* Bounty System Settings * /* bountys[] = {string, amount, code} */ bountys[] = { {"STR_Bounty_5000", "5000", "1B"}, {"STR_Bounty_10000", "10000", "2B"}, {"STR_Bounty_15000", "15000", "3B"}, {"STR_Bounty_20000", "20000", "4B"}, {"STR_Bounty_25000", "25000", "5B"}, {"STR_Bounty_30000", "30000", "6B"}, {"STR_Bounty_35000", "35000", "7B"}, {"STR_Bounty_40000", "40000", "8B"}, {"STR_Bounty_45000", "45000", "9B"}, {"STR_Bounty_50000", "50000", "10B"}, {"STR_Bounty_55000", "55000", "11B"}, {"STR_Bounty_60000", "60000", "12B"}, {"STR_Bounty_65000", "65000", "13B"}, {"STR_Bounty_70000", "70000", "14B"}, {"STR_Bounty_75000", "75000", "15B"}, {"STR_Bounty_80000", "80000", "16B"}, {"STR_Bounty_85000", "85000", "17B"}, {"STR_Bounty_90000", "90000", "18B"}, {"STR_Bounty_95000", "95000", "19B"}, {"STR_Bounty_100000", "100000", "20B"}, {"STR_Bounty_200000", "200000", "21B"}, {"STR_Bounty_300000", "300000", "22B"}, {"STR_Bounty_400000", "400000", "23B"}, {"STR_Bounty_500000", "500000", "24B"}, {"STR_Bounty_1000000", "1000000", "25B"} }; 7. missionname >> core >> medical >> fn_onPlayerKilled.sqf Underneath the last player set variable add: private _BountyPeeps = []; { if (license_civ_bountyH) then {_BountyPeeps pushBack _x}; } forEach playableUnits; Then under: //Killed by cop stuff... if (side _killer isEqualTo west && playerSide != west) then { life_copRecieve = _killer; //Did I rob the federal reserve? if (!life_use_atm && {CASH > 0}) then { [format [localize "STR_Cop_RobberDead",[CASH] call life_fnc_numberText]] remoteExecCall ["life_fnc_broadcast",RCLIENT]; CASH = 0; }; }; Add: if (side _killer isEqualTo civilian && {_killer != _unit}) then { if (_killer in _BountyPeeps) then { life_bountyHunter = _killer; }; }; if (!isNull _killer) then { life_removeBounty = true; }; 8. Grab the files in the zip file and place them in the respected folders. 9. missionname >> dialog >> masterhandler Add: #include "bounty_list.hpp" #include "bounty_addList.hpp" 10. missionname >> core >> configuration Add under Backend variables life_removeBounty = false; 11. missionname >> core >> pmenu >> fn_p_openMenu Add under case west: ctrlShow[9696,false]; ctrlShow[9898,false] Add under case Civ: ctrlShow[9696,true]; ctrlShow[9898,true] Add under case med: ctrlShow[9696,false]; ctrlShow[9898,false] NOTE: The numbers are what you guys id you bountyList button as, I have two because I have the button and an icon, you may only have 1!!! 12. missionname >> core >> medical >> fn_respawned.sqf Under: //Johnny law got me but didn't let the EMS revive me, reward them half the bounty. if (!isNil "life_copRecieve") then { if (life_HC_isActive) then { [getPlayerUID player,player,life_copRecieve,true] remoteExecCall ["HC_fnc_wantedBounty",HC_Life]; } else { [getPlayerUID player,player,life_copRecieve,true] remoteExecCall ["life_fnc_wantedBounty",RSERV]; }; life_copRecieve = nil; }; Add: if (!isNil "life_bountyHunter") then { if (life_HC_isActive) then { [getPlayerUID player,player,life_bountyHunter] remoteExecCall ["HC_fnc_amountBounty",HC_Life]; } else { [getPlayerUID player,player,life_bountyHunter] remoteExecCall ["life_fnc_amountBounty",RSERV]; }; life_bountyHunter = nil; }; //Remove Bounty... if (life_removeBounty) then { if (life_HC_isActive) then { [getPlayerUID player] remoteExecCall ["HC_fnc_bountyRemove",HC_Life]; } else { [getPlayerUID player] remoteExecCall ["life_fnc_bountyRemove",RSERV]; }; }; 13. missionname >> core >> civilian >> fn_removeLicense Add this case: //Adds the bountyH license to civs case 100: { missionNamespace setVariable [LICENSE_VARNAME("bountyH","civ"),true]; }; 14. missionname >> core >> init.sqf Under if (life_HC_isActive) then { [getPlayerUID player,player getVariable ["realname",name player]] remoteExec ["HC_fnc_wantedProfUpdate",HC_Life]; } else { [getPlayerUID player,player getVariable ["realname",name player]] remoteExec ["life_fnc_wantedProfUpdate",RSERV]; }; Add: if (life_HC_isActive) then { [getPlayerUID player,player getVariable ["realname",name player]] remoteExec ["HC_fnc_bountyProfUpdate",HC_Life]; } else { [getPlayerUID player,player getVariable ["realname",name player]] remoteExec ["life_fnc_bountyProfUpdate",RSERV]; }; life_server edits: 1. life_server >> config.cpp Add under life tag above class Jail_Sys: //Bounty Hunter class Bounty_Sys { file = "\life_server\Functions\BountySystem"; class amountBounty {}; class bountyRemove {}; class bountyAdd {}; class bountyFetch {}; class bountyProfUpdate {}; class bountyCrimes {}; class bountyAmountGather {}; }; 2. Place the bountyFiles life_server side into the folders. 3. life_server >> init.sqf Under: life_wanted_list = []; Add: life_bounty_list = []; mission.sqf edits: 1. Create the NPC: Inside the NPC you created add this: this enableSimulation false; this allowDamage false; this addAction ["Bounty Hunting ($100,000)", life_fnc_bountyBuy,"",0,false,false,"",' !license_civ_bountyH && playerSide isEqualTo civilian']; this addAction["<t color = '#D660D6'>Bounty Add</t>",life_fnc_bountyAddMenu,"",0,false,false,"",'']; this addAction["<t color = '#E6F402'>Bounty List</t>",life_fnc_bountyMenu,"",0,false,false,"",'']; NOTE: This is the code taken from my mission.sqm file, if you paste that into the editor it WILL NOT work, you have to remove the extra " in the line, there should only be two " " not four. DATABASE EDIT: 1. Make a new query and run this code: USE `altislife`; CREATE TABLE `bounty` ( `bountyID` varchar(64) NOT NULL, `bountyName` varchar(32) NOT NULL, `bounty` int(100) NOT NULL, `insert_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`bountyID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; Then Place folders in the right spot and your good to go. Now we SHOULD be finished... Any problems tag me in your comment and I'll reply to them ASAP I don't think i forgot anything. BountyHunter.rar
  28. 1 point
    Has not been updated in a while, you can always manually search. Most scripts for 4.4 work for 5.0
  29. 1 point
    I take this message to thank you for continuing to grow the community. If you have any comments or complaints to make about the different content on the site including people who use the adverts block do not hesitate. A little reminder about this policy: External Links www.altisliferpg.com may includes links to external websites. These links do not fall under the www.altisliferpg.com domain, and AltisLifeRPG is not responsible for the privacy practices or the content of external websites. Your use of any linked website is solely at your own risk.
  30. 1 point
    Closed as of 04/08/18. If a admin or mod would delete this post please do.
  31. 1 point
    If you edited it I would of thought you could of made it look better at least.
  32. 1 point
    Server is backup! Feel free to join! And with more features than ever!
  33. 1 point
    Locked due to being solved
  34. 1 point
    NORTH LIGHT UPDATE ____________________________________________ [In-Progress] Orange [Completed] Green [On Wait List] Red ___________________________________ SKINS UPDATE Tahoe Wild Life Trooper Skin Supervisor Skins for Taurus, Tahoe, CVPI, Charger Sheriff's Department Uniforms Sheriff's Department Divisions Skins Emergency Medical Department Skins (Vehicles and Uniforms)
  35. 1 point
    Why would you want someone to see their own name? some huds feature this but to get their name into a value https://community.bistudio.com/wiki/profileName
  36. 1 point
  37. 1 point
    that is not an error that is one of your maverick scripts logging what it is doing post your rpt logs
  38. 1 point
    Basically how I learned was I started fixing scripts that didn't work, then I went to adding in small things to existing scripts, then I went to making my own scripts. It's not hard it just takes time to learn. If you truly want to learn then start off by trying to make simple things that you want on your server. Look at existing code and use those as ideas. Also be sure to use Google to see if there are specific functions that are pre-made that you can use.
  39. 1 point
    www.anzusgaming.com Hey everyone just a bit of background about ANZUSGaming, myself and the old underbelly have teamed up to run the best modded server ever seen in the Oceania Region. ANZUSGaming Australia Life is very custom with a lot of custom stuff to do and its growing rapidly. Website: http://www.anzusgaming.com Teamspeak: ts.anzusgaming.com Custom Version of the Australia Map Customize your cars! Film a porno and make some money! Go crazy and get taken to the mental health hospital! Rob the art gallery! Dance it up at the club! Grind it out and buy a penthouse! Buy a hot air balloon! Maximum Security Prison Custom stuff to do Nikos Sniper Mission Meth Van Mission Shipwreck Mission Plane Mission Cropdusting Film Porn Custom Bank(With a Real Drill) Multiple Custom Exotic Cars Art Gallery Robbery Dynamic Market Custom Hunting (Hunting Seasons, Hunting Guns) Gang Hideout Attack (Capture a gang hideout and the bikey gang(ai) comes after you) Shipment Price Increasing(Every so often a certain item is of high interest and price goes up) Custom Donor Skins for Vests, Weapons, Vehicles Police Seized Weapons (All seized weapons go into vault rebels can try get it back) Play Soccer with your friends and attend the ANZUSGaming World Cup Graffiti Walls Official Impounds(With impound lots) Tow Truck Driver(With real custom truck) Jewelry Store Robbery Asylum Seeker Mission Auction House Generic Life Stuff Including Legal/Illegal Runs Robbing Turtle Poaching CLICK HERE TO LEARN HOW TO INSTALL THE MODS TO PLAY THIS SERVER ITS EASY!
  40. 1 point
    Ive known jackson for about 2 years now, definitely knows what he is doing <3
  41. 1 point
    So i bought infiStar finally lol. Going through some blacklisted variables to see whats new. Saw this this ROFL 'haHaFuckAntiHakcsManIbypasDatShit','aintNoAntiHackCatchMyVars'
  42. 1 point
    What is funny is typing [''infishit'' ] or [''killme'',''/killme'',''kill me'',''/kill me'',''/suicide'',''suicide''] in any chat group, side, direct or whatever. on a server with infistar You will Get a nice ban / kick for it
  43. 1 point
  44. 1 point
    The ability is present to have certain items available depending on the cop level
  45. 1 point
    @Helmut Server & Teamspeak will not be open to the public untill we will finish the first Beta Stage. this is the reason for "low player" thing. for more updates and info: https://greenislandrp.site/#server Discord: https://discord.gg/TEBczQg
  46. 1 point
    Post me the button you have
  47. 1 point
    21:16:35 Z:\GAMES\steamapps\common\Arma 3 Server\@life_server\addons\backlife_server.pbo - unknown 21:16:35 Z:\GAMES\steamapps\common\Arma 3 Server\@life_server\addons\life_server.pbo - unknown for some odd reason, you have two life server pbos. conflicting addon --> conflicting pbos and previous definition --> someone is already there and defined.
  48. 1 point
    Hello, I have another Dialog today, this time I have a vehicle garage and Shop. Step one: Go into Dialog\Impound.hpp and paste the following. class Life_impound_menu { idd = 2800; name="life_vehicle_shop"; movingEnable = 0; enableSimulation = 1; onLoad = "ctrlShow [2330,false];"; class controlsBackground { class Background: Life_RscText { colorBackground[] = {0,0,0,0.7}; idc = -1; x = 0.716562 * safezoneW + safezoneX; y = 0.016 * safezoneH + safezoneY; w = 0.273281 * safezoneW; h = 0.968 * safezoneH; }; class Background2: Life_RscText { colorBackground[] = {0,0,0,0.7}; idc = -1; x = 0.716563 * safezoneW + safezoneX; y = 0.016 * safezoneH + safezoneY; w = 0.273281 * safezoneW; h = 0.968 * safezoneH; }; class Title: Life_RscStructuredText { idc = 1100; text = "Your Garage"; //--- ToDo: Localize; x = 0.824844 * safezoneW + safezoneX; y = 0.016 * safezoneH + safezoneY; w = 0.0825 * safezoneW; h = 0.033 * safezoneH; }; class VehicleInfoText: Life_RscStructuredText { idc = 1106; text = "Vehicle Information"; //--- ToDo: Localize; x = 0.732031 * safezoneW + safezoneX; y = 0.588 * safezoneH + safezoneY; w = 0.0825 * safezoneW; h = 0.022 * safezoneH; }; class CloseButtonKey: Life_RscButtonMenu { onButtonClick = "closeDialog 0;"; idc = 2400; text = "Exit"; //--- ToDo: Localize; x = 0.732031 * safezoneW + safezoneX; y = 0.951 * safezoneH + safezoneY; w = 0.0670312 * safezoneW; h = 0.022 * safezoneH; }; class SellCar: Life_RscButtonMenu { onButtonClick = "[] call life_fnc_sellGarage;"; idc = 2401; text = "Sell"; //--- ToDo: Localize; x = 0.9125 * safezoneW + safezoneX; y = 0.951 * safezoneH + safezoneY; w = 0.0670312 * safezoneW; h = 0.022 * safezoneH; }; class RetrieveCar: Life_RscButtonMenu { onButtonClick = "[] call life_fnc_unimpound;"; idc = 2402; text = "Retrieve"; //--- ToDo: Localize; x = 0.840312 * safezoneW + safezoneX; y = 0.951 * safezoneH + safezoneY; w = 0.0670312 * safezoneW; h = 0.022 * safezoneH; }; }; class controls { class vehicleInfomationList: Life_RscStructuredText { idc = 2803; x = 0.732031 * safezoneW + safezoneX; y = 0.621 * safezoneH + safezoneY; w = 0.242344 * safezoneW; h = 0.275 * safezoneH; }; class MainHideText: Life_RscText { idc = 2811; text = "Looking for your vehicles..."; //--- ToDo: Localize; x = 0.809375 * safezoneW + safezoneX; y = 0.313 * safezoneH + safezoneY; w = 0.103125 * safezoneW; h = 0.132 * safezoneH; }; class VehicleList: Life_RscListbox { onLBSelChanged = "_this call life_fnc_garageLBChange;"; sizeEX = 0.5; idc = 2802; x = 0.732031 * safezoneW + safezoneX; y = 0.06 * safezoneH + safezoneY; w = 0.242344 * safezoneW; h = 0.517 * safezoneH; }; }; }; Step two: Paste the following code into Dialog\Vehicleshop.hpp class Life_Vehicle_Shop_v2 { idd = 2300; name="life_vehicle_shop"; movingEnabled = 0; enableSimulation = 1; onLoad = "ctrlShow [2330,false];"; class controlsBackground { class Background: Life_RscText { colorBackground[] = {0,0,0,0.7}; idc = -1; x = 0.716562 * safezoneW + safezoneX; y = 0.016 * safezoneH + safezoneY; w = 0.273281 * safezoneW; h = 0.968 * safezoneH; }; class Background2: Life_RscText { colorBackground[] = {0,0,0,0.7}; idc = -1; x = 0.716563 * safezoneW + safezoneX; y = 0.016 * safezoneH + safezoneY; w = 0.273281 * safezoneW; h = 0.968 * safezoneH; }; class Title: Life_RscStructuredText { idc = 1100; text = "Vehicle Shop"; //--- ToDo: Localize; x = 0.824844 * safezoneW + safezoneX; y = 0.016 * safezoneH + safezoneY; w = 0.0825 * safezoneW; h = 0.033 * safezoneH; }; class VehicleInfoText: Life_RscStructuredText { idc = 1106; text = "Vehicle Information"; //--- ToDo: Localize; x = 0.732031 * safezoneW + safezoneX; y = 0.5 * safezoneH + safezoneY; w = 0.0825 * safezoneW; h = 0.022 * safezoneH; }; class CloseBtn: Life_RscButtonMenu { onButtonClick = "closeDialog 0; [] call life_fnc_playerSkins;"; idc = 2400; text = "Exit"; //--- ToDo: Localize; x = 0.732031 * safezoneW + safezoneX; y = 0.951 * safezoneH + safezoneY; w = 0.0670312 * safezoneW; h = 0.022 * safezoneH; }; class BuyCar: Life_RscButtonMenu { onButtonClick = "[true] spawn life_fnc_vehicleShopBuy;"; idc = 2309; text = "Buy"; //--- ToDo: Localize; x = 0.9125 * safezoneW + safezoneX; y = 0.951 * safezoneH + safezoneY; w = 0.0670312 * safezoneW; h = 0.022 * safezoneH; }; class RentCar: Life_RscButtonMenu { onButtonClick = "[false] spawn life_fnc_vehicleShopBuy;"; idc = -1; text = "Rent"; //--- ToDo: Localize; x = 0.840312 * safezoneW + safezoneX; y = 0.951 * safezoneH + safezoneY; w = 0.0670312 * safezoneW; h = 0.022 * safezoneH; }; }; class controls { class vehicleInfomationList: Life_RscStructuredText { idc = 2303; x = 0.732031 * safezoneW + safezoneX; y = 0.533 * safezoneH + safezoneY; w = 0.242344 * safezoneW; h = 0.275 * safezoneH; }; class colorList: Life_RscCombo { idc = 2304; x = 0.840312 * safezoneW + safezoneX; y = 0.819 * safezoneH + safezoneY; w = 0.139219 * safezoneW; h = 0.022 * safezoneH; tooltip = "Use this to change to diffrent vehicle skins."; //--- ToDo: Localize; }; class VehicleList: Life_RscListbox { onLBSelChanged = "_this call life_fnc_vehicleShopLBChange"; idc = 2302; x = 0.732031 * safezoneW + safezoneX; y = 0.06 * safezoneH + safezoneY; w = 0.242344 * safezoneW; h = 0.429 * safezoneH; }; }; }; Step three: Go to Dialog folder again and paste in the following into common.hpp #define ST_LEFT 0x00 #define ST_MULTI 0x10 #define GUI_GRID_CENTER_WAbs ((safezoneW / safezoneH) min 1.2) #define GUI_GRID_CENTER_HAbs (GUI_GRID_CENTER_WAbs / 1.2) #define GUI_GRID_CENTER_W (GUI_GRID_CENTER_WAbs / 40) #define GUI_GRID_CENTER_H (GUI_GRID_CENTER_HAbs / 25) #define GUI_GRID_CENTER_X (safezoneX + (safezoneW - GUI_GRID_CENTER_WAbs)/2) #define GUI_GRID_CENTER_Y (safezoneY + (safezoneH - GUI_GRID_CENTER_HAbs)/2) class Life_Checkbox { access = 0; // Control access (0 - ReadAndWrite, 1 - ReadAndCreate, 2 - ReadOnly, 3 - ReadOnlyVerified) idc = -1; // Control identification (without it, the control won't be displayed) type = 77; // Type style = ST_LEFT + ST_MULTI; // Style default = 0; // Control selected by default (only one within a display can be used) blinkingPeriod = 0; // Time in which control will fade out and back in. Use 0 to disable the effect. x = 0; y = 0; w = 1 * GUI_GRID_CENTER_W; // Width h = 1 * GUI_GRID_CENTER_H; // Height //Colors color[] = { 1, 1, 1, 0.7 }; // Texture color colorFocused[] = { 1, 1, 1, 1 }; // Focused texture color colorHover[] = { 1, 1, 1, 1 }; // Mouse over texture color colorPressed[] = { 1, 1, 1, 1 }; // Mouse pressed texture color colorDisabled[] = { 1, 1, 1, 0.2 }; // Disabled texture color //Background colors colorBackground[] = { 0, 0, 0, 0 }; // Fill color colorBackgroundFocused[] = { 0, 0, 0, 0 }; // Focused fill color colorBackgroundHover[] = { 0, 0, 0, 0 }; // Mouse hover fill color colorBackgroundPressed[] = { 0, 0, 0, 0 }; // Mouse pressed fill color colorBackgroundDisabled[] = { 0, 0, 0, 0 }; // Disabled fill color //Textures textureChecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa"; //Texture of checked CheckBox. textureUnchecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa"; //Texture of unchecked CheckBox. textureFocusedChecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa"; //Texture of checked focused CheckBox (Could be used for showing different texture when focused). textureFocusedUnchecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa"; //Texture of unchecked focused CheckBox. textureHoverChecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa"; textureHoverUnchecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa"; texturePressedChecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa"; texturePressedUnchecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa"; textureDisabledChecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa"; textureDisabledUnchecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa"; tooltip = ""; // Tooltip text tooltipColorShade[] = { 0, 0, 0, 1 }; // Tooltip background color tooltipColorText[] = { 1, 1, 1, 1 }; // Tooltip text color tooltipColorBox[] = { 1, 1, 1, 1 }; // Tooltip frame color //Sounds soundClick[] = { "\A3\ui_f\data\sound\RscButton\soundClick", 0.09, 1 }; // Sound played after control is activated in format {file, volume, pitch} soundEnter[] = { "\A3\ui_f\data\sound\RscButton\soundEnter", 0.09, 1 }; // Sound played when mouse cursor enters the control soundPush[] = { "\A3\ui_f\data\sound\RscButton\soundPush", 0.09, 1 }; // Sound played when the control is pushed down soundEscape[] = { "\A3\ui_f\data\sound\RscButton\soundEscape", 0.09, 1 }; // Sound played when the control is released after pushing down }; class Life_RscScrollBar { color[] = {1,1,1,0.6}; colorActive[] = {1,1,1,1}; colorDisabled[] = {1,1,1,0.3}; thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; shadow = 0; scrollSpeed = 0.06; width = 0; height = 0; autoScrollEnabled = 1; autoScrollSpeed = -1; autoScrollDelay = 5; autoScrollRewind = 0; }; class Life_RscControlsGroup { type = 15; idc = -1; x = 0; y = 0; w = 1; h = 1; shadow = 0; style = 16; class VScrollBar : Life_RscScrollBar { width = 0.021; autoScrollEnabled = 1; }; class HScrollBar : Life_RscScrollBar { height = 0.028; }; class Controls {}; }; class Life_RscControlsGroupNoScrollbars : Life_RscControlsGroup { class VScrollbar : VScrollbar { width = 0; }; class HScrollbar : HScrollbar { height = 0; }; }; class Life_RscHud { idc = -1; type = 0; style = 0x00; colorBackground[] = { 1 , 1 , 1 , 0 }; colorText[] = { 1 , 1 , 1 , 1 }; font = "RobotoCondensedBold"; sizeEx = 0.025; h = 0.25; text = ""; }; class Life_IGUIBack { type = 0; idc = 124; style = 128; text = ""; colorText[] = { 0, 0, 0, 0 }; font = "RobotoCondensed"; sizeEx = 0; shadow = 0; x = 0.1; y = 0.1; w = 0.1; h = 0.1; colorbackground[] = { "(profilenamespace getvariable ['IGUI_BCG_RGB_R',0])", "(profilenamespace getvariable ['IGUI_BCG_RGB_G',1])", "(profilenamespace getvariable ['IGUI_BCG_RGB_B',1])", "(profilenamespace getvariable ['IGUI_BCG_RGB_A',0.8])" }; }; class Life_RscListNBox { style = 16; type = 102; shadow = 0; font = "RobotoCondensed"; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; color[] = {0.95,0.95,0.95,1}; colorText[] = {1,1,1,1.0}; colorDisabled[] = {1,1,1,0.25}; colorScrollbar[] = {0.95,0.95,0.95,1}; colorSelect[] = {0,0,0,1}; colorSelect2[] = {0,0,0,1}; colorSelectBackground[] = {0.8,0.8,0.8,1}; colorSelectBackground2[] = {1,1,1,0.5}; colorPicture[] = {1,1,1,1}; colorPictureSelected[] = {1,1,1,1}; colorPictureDisabled[] = {1,1,1,1}; soundSelect[] = {"",0.1,1}; soundExpand[] = {"",0.1,1}; soundCollapse[] = {"",0.1,1}; period = 1.2; maxHistoryDelay = 0.5; autoScrollSpeed = -1; autoScrollDelay = 5; autoScrollRewind = 0; class ListScrollBar: Life_RscScrollBar{}; class ScrollBar: Life_RscScrollBar{}; }; class Life_RscText { x = 0; y = 0; h = 0.037; w = 0.3; type = 0; style = 0; shadow = 1; colorShadow[] = {0, 0, 0, 0.5}; font = "RobotoCondensed"; SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; text = ""; colorText[] = {1, 1, 1, 1.0}; colorBackground[] = {0, 0, 0, 0}; linespacing = 1; tooltipColorText[] = {1,1,1,1}; tooltipColorBox[] = {1,1,1,1}; tooltipColorShade[] = {0,0,0,0.65}; }; class Life_RscLine: Life_RscText { idc = -1; style = 176; x = 0.17; y = 0.48; w = 0.66; h = 0; text = ""; colorBackground[] = {0, 0, 0, 0}; colorText[] = {1, 1, 1, 1.0}; }; class Life_RscTree { style = 2; font = "RobotoCondensed"; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; expandedTexture = "A3\ui_f\data\gui\Rsccommon\Rsctree\expandedTexture_ca.paa"; hiddenTexture = "A3\ui_f\data\gui\Rsccommon\Rsctree\hiddenTexture_ca.paa"; rowHeight = 0.0439091; color[] = {1, 1, 1, 1}; colorSelect[] = {0.7, 0.7, 0.7, 1}; colorBackground[] = {0, 0, 0, 0}; colorSelectBackground[] = {0, 0, 0, 0.5}; colorBorder[] = {0, 0, 0, 0}; borderSize = 0; }; class Life_RscTitle: Life_RscText { style = 0; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; colorText[] = {0.95, 0.95, 0.95, 1}; }; class life_RscPicture { shadow = 0; type = 0; style = 48; sizeEx = 0.023; font = "RobotoCondensed"; colorBackground[] = {}; colorText[] = {}; x = 0; y = 0; w = 0.2; h = 0.15; tooltipColorText[] = {1,1,1,1}; tooltipColorBox[] = {1,1,1,1}; tooltipColorShade[] = {0,0,0,0.65}; }; class Life_RscTextMulti: Life_RscText { linespacing = 1; style = 0 + 16 + 0x200; }; class Life_RscPictureKeepAspect : Life_RscPicture { style = 0x30 + 0x800; }; class Life_RscStructuredText { type = 13; style = 0; x = 0; y = 0; h = 0.035; w = 0.1; text = ""; size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; colorText[] = {1, 1, 1, 1.0}; shadow = 1; class Attributes { font = "RobotoCondensed"; color = "#ffffff"; align = "left"; shadow = 1; }; }; class Life_RscActiveText { idc = -1; type = 11; style = 0; x = 0; y = 0; h = 0.037; w = 0.3; sizeEx = 0.040; font = "RobotoCondensedLight"; color[] = {1, 1, 1, 1}; colorActive[] = {1, 0.2, 0.2, 1}; soundEnter[] = {"\A3\ui_f\data\sound\onover", 0.09, 1}; soundPush[] = {"\A3\ui_f\data\sound\new1", 0.0, 0}; soundClick[] = {"\A3\ui_f\data\sound\onclick", 0.07, 1}; soundEscape[] = {"\A3\ui_f\data\sound\onescape", 0.09, 1}; action = ""; text = ""; tooltipColorText[] = {1,1,1,1}; tooltipColorBox[] = {1,1,1,1}; tooltipColorShade[] = {0,0,0,0.65}; }; class Life_RscButton { style = 2; x = 0; y = 0; w = 0.095589; h = 0.039216; shadow = 2; font = "RobotoCondensed"; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; colorText[] = {1,1,1,1.0}; colorDisabled[] = {0.4,0.4,0.4,1}; colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",0.7}; colorBackgroundActive[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",1}; colorBackgroundDisabled[] = {0.95,0.95,0.95,1}; offsetX = 0.003; offsetY = 0.003; offsetPressedX = 0.002; offsetPressedY = 0.002; colorFocused[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",1}; colorShadow[] = {0,0,0,1}; colorBorder[] = {0,0,0,1}; borderSize = 0.0; soundEnter[] = {"\A3\ui_f\data\sound\RscButton\soundEnter",0.09,1}; soundPush[] = {"\A3\ui_f\data\sound\RscButton\soundPush",0.09,1}; soundClick[] = {"\A3\ui_f\data\sound\RscButton\soundClick",0.09,1}; soundEscape[] = {"\A3\ui_f\data\sound\RscButton\soundEscape",0.09,1}; }; class Life_RscButtonTextOnly : Life_RscButton { SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; colorBackground[] = {1, 1, 1, 0}; colorBackgroundActive[] = {1, 1, 1, 0}; colorBackgroundDisabled[] = {1, 1, 1, 0}; colorFocused[] = {1, 1, 1, 0}; colorShadow[] = {1, 1, 1, 0}; borderSize = 0.0; }; class Life_RscShortcutButton { idc = -1; style = 0; default = 0; shadow = 1; w = 0.183825; h = "((((safezoneW / safezoneH) min 1.2) / 1.2) / 20)"; color[] = {1,1,1,1.0}; colorFocused[] = {1,1,1,1.0}; color2[] = {0.95,0.95,0.95,1}; colorDisabled[] = {1,1,1,0.25}; colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",1}; colorBackgroundFocused[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",1}; colorBackground2[] = {1,1,1,1}; animTextureDefault = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\normal_ca.paa"; animTextureNormal = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\normal_ca.paa"; animTextureDisabled = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\normal_ca.paa"; animTextureOver = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\over_ca.paa"; animTextureFocused = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\focus_ca.paa"; animTexturePressed = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\down_ca.paa"; periodFocus = 1.2; periodOver = 0.8; class HitZone { left = 0.0; top = 0.0; right = 0.0; bottom = 0.0; }; class ShortcutPos { left = 0; top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2"; w = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1) * (3/4)"; h = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; }; class TextPos { left = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1) * (3/4)"; top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2"; right = 0.005; bottom = 0.0; }; period = 0.4; font = "RobotoCondensed"; size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; text = ""; soundEnter[] = {"\A3\ui_f\data\sound\RscButton\soundEnter",0.09,1}; soundPush[] = {"\A3\ui_f\data\sound\RscButton\soundPush",0.09,1}; soundClick[] = {"\A3\ui_f\data\sound\RscButton\soundClick",0.09,1}; soundEscape[] = {"\A3\ui_f\data\sound\RscButton\soundEscape",0.09,1}; action = ""; class Attributes { font = "RobotoCondensed"; color = "#E5E5E5"; align = "left"; shadow = "true"; }; class AttributesImage { font = "RobotoCondensed"; color = "#E5E5E5"; align = "left"; }; }; class Life_RscButtonMenu : Life_RscShortcutButton { idc = -1; type = 16; style = "0x02 + 0xC0"; default = 0; shadow = 0; x = 0; y = 0; w = 0.095589; h = 0.039216; animTextureNormal = "#(argb,8,8,3)color(1,1,1,1)"; animTextureDisabled = "#(argb,8,8,3)color(1,1,1,1)"; animTextureOver = "#(argb,8,8,3)color(1,1,1,1)"; animTextureFocused = "#(argb,8,8,3)color(1,1,1,1)"; animTexturePressed = "#(argb,8,8,3)color(1,1,1,1)"; animTextureDefault = "#(argb,8,8,3)color(1,1,1,1)"; colorBackground[] = {0,0,0,0.8}; colorBackgroundFocused[] = {1,1,1,1}; colorBackground2[] = {0.75,0.75,0.75,1}; color[] = {1,1,1,1}; colorFocused[] = {0,0,0,1}; color2[] = {0,0,0,1}; colorText[] = {1,1,1,1}; colorDisabled[] = {1,1,1,0.25}; period = 1.2; periodFocus = 1.2; periodOver = 1.2; size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; tooltipColorText[] = {1,1,1,1}; tooltipColorBox[] = {1,1,1,1}; tooltipColorShade[] = {0,0,0,0.65}; class TextPos { left = "0.25 * (((safezoneW / safezoneH) min 1.2) / 40)"; top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2"; right = 0.005; bottom = 0.0; }; class Attributes { font = "RobotoCondensedLight"; color = "#E5E5E5"; align = "left"; shadow = "false"; }; class ShortcutPos { left = "(6.25 * (((safezoneW / safezoneH) min 1.2) / 40)) - 0.0225 - 0.005"; top = 0.005; w = 0.0225; h = 0.03; }; soundEnter[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundEnter",0.09,1}; soundPush[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundPush",0.09,1}; soundClick[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundClick",0.09,1}; soundEscape[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundEscape",0.09,1}; textureNoShortcut = ""; }; class Life_RscShortcutButtonMain : Life_RscShortcutButton { idc = -1; style = 0; default = 0; w = 0.313726; h = 0.104575; color[] = {1, 1, 1, 1.0}; colorDisabled[] = {1, 1, 1, 0.25}; class HitZone { left = 0.0; top = 0.0; right = 0.0; bottom = 0.0; }; class ShortcutPos { left = 0.0145; top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.2)) / 2"; w = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.2) * (3/4)"; h = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.2)"; }; class TextPos { left = "( ((safezoneW / safezoneH) min 1.2) / 32) * 1.5"; top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 20)*2 - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.2)) / 2"; right = 0.005; bottom = 0.0; }; animTextureNormal = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\normal_ca.paa"; animTextureDisabled = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\disabled_ca.paa"; animTextureOver = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\over_ca.paa"; animTextureFocused = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\focus_ca.paa"; animTexturePressed = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\down_ca.paa"; animTextureDefault = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\normal_ca.paa"; period = 0.5; font = "RobotoCondensed"; size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.2)"; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.2)"; text = ""; soundEnter[] = {"\A3\ui_f\data\sound\onover", 0.09, 1}; soundPush[] = {"\A3\ui_f\data\sound\new1", 0.0, 0}; soundClick[] = {"\A3\ui_f\data\sound\onclick", 0.07, 1}; soundEscape[] = {"\A3\ui_f\data\sound\onescape", 0.09, 1}; action = ""; class Attributes { font = "RobotoCondensed"; color = "#E5E5E5"; align = "left"; shadow = "false"; }; class AttributesImage { font = "RobotoCondensed"; color = "#E5E5E5"; align = "false"; }; }; class Life_RscCheckbox { idc = -1; type = 7; style = 0; x = "LINE_X(XVAL)"; y = LINE_Y; w = "LINE_W(WVAL)"; h = 0.029412; colorText[] = {1, 0, 0, 1}; color[] = {0, 0, 0, 0}; colorBackground[] = {0, 0, 1, 1}; colorTextSelect[] = {0, 0.8, 0, 1}; colorSelectedBg[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 1}; colorSelect[] = {0, 0, 0, 1}; colorTextDisable[] = {0.4, 0.4, 0.4, 1}; colorDisable[] = {0.4, 0.4, 0.4, 1}; font = "RobotoCondensed"; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; rows = 1; 5ns = 1; strings[] = {UNCHECKED}; checked_strings[] = {CHECKED}; }; class Life_RscProgress { type = 8; style = 0; x = 0.344; y = 0.619; w = 0.313726; h = 0.0261438; texture = ""; shadow = 2; colorFrame[] = {0, 0, 0, 1}; colorBackground[] = {0,0,0,0.7}; colorBar[] = {"(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])"}; }; class Life_RscListBox { style = 16; idc = -1; type = 5; w = 0.275; h = 0.04; 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_RscEdit { 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; }; class Life_RscSlider { h = 0.025; color[] = {1, 1, 1, 0.8}; colorActive[] = {1, 1, 1, 1}; }; class life_RscXSliderH { style = 1024; type = 43; shadow = 2; x = 0; y = 0; h = 0.029412; w = 0.400000; color[] = { 1, 1, 1, 0.7 }; colorActive[] = { 1, 1, 1, 1 }; colorDisabled[] = { 1, 1, 1, 0.500000 }; arrowEmpty = "\A3\ui_f\data\gui\cfg\slider\arrowEmpty_ca.paa"; arrowFull = "\A3\ui_f\data\gui\cfg\slider\arrowFull_ca.paa"; border = "\A3\ui_f\data\gui\cfg\slider\border_ca.paa"; thumb = "\A3\ui_f\data\gui\cfg\slider\thumb_ca.paa"; }; class Life_RscFrame { type = 0; idc = -1; style = 64; shadow = 2; colorBackground[] = {0, 0, 0, 0}; colorText[] = {1, 1, 1, 1}; font = "RobotoCondensed"; sizeEx = 0.02; text = ""; }; class Life_RscBackground: Life_RscText { type = 0; IDC = -1; style = 512; shadow = 0; x = 0.0; y = 0.0; w = 1.0; h = 1.0; text = ""; ColorBackground[] = {0.48, 0.5, 0.35, 1}; ColorText[] = {0.1, 0.1, 0.1, 1}; font = "RobotoCondensed"; SizeEx = 1; }; class Life_RscHTML { colorText[] = {1, 1, 1, 1.0}; colorBold[] = {1, 1, 1, 1.0}; colorLink[] = {1, 1, 1, 0.75}; colorLinkActive[] = {1, 1, 1, 1.0}; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; prevPage = "\A3\ui_f\data\gui\Rsccommon\Rschtml\arrow_left_ca.paa"; nextPage = "\A3\ui_f\data\gui\Rsccommon\Rschtml\arrow_right_ca.paa"; shadow = 2; class H1 { font = "RobotoCondensed"; fontBold = "RobotoCondensedBold"; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.2)"; align = "left"; }; class H2 { font = "RobotoCondensed"; fontBold = "RobotoCondensedBold"; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; align = "right"; }; class H3 { font = "RobotoCondensed"; fontBold = "RobotoCondensedBold"; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; align = "left"; }; class H4 { font = "RobotoCondensed"; fontBold = "RobotoCondensedBold"; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; align = "left"; }; class H5 { font = "RobotoCondensed"; fontBold = "RobotoCondensedBold"; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; align = "left"; }; class H6 { font = "RobotoCondensed"; fontBold = "RobotoCondensedBold"; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; align = "left"; }; class P { font = "RobotoCondensed"; fontBold = "RobotoCondensedBold"; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; align = "left"; }; }; class Life_RscHitZones { x = 0; y = 0; w = 0.1; h = 0.1; xCount = 1; yCount = 1; xSpace = 0; ySpace = 0; }; class Life_RscMapControl { access = 0; type = 101; idc = 51; style = 48; colorBackground[] = {0.969,0.957,0.949,1}; colorOutside[] = {0,0,0,1}; colorText[] = {0,0,0,1}; font = "TahomaB"; sizeEx = 0.04; colorSea[] = {0.467,0.631,0.851,0.5}; colorForest[] = {0.624,0.78,0.388,0.5}; colorRocks[] = {0,0,0,0.3}; colorCountlines[] = {0.572,0.354,0.188,0.25}; colorMainCountlines[] = {0.572,0.354,0.188,0.5}; colorCountlinesWater[] = {0.491,0.577,0.702,0.3}; colorMainCountlinesWater[] = {0.491,0.577,0.702,0.6}; colorForestBorder[] = {0,0,0,0}; colorRocksBorder[] = {0,0,0,0}; colorPowerLines[] = {0.1,0.1,0.1,1}; colorRailWay[] = {0.8,0.2,0,1}; colorNames[] = {0.1,0.1,0.1,0.9}; colorInactive[] = {1,1,1,0.5}; colorLevels[] = {0.286,0.177,0.094,0.5}; colorTracks[] = {0.84,0.76,0.65,0.15}; colorRoads[] = {0.7,0.7,0.7,1}; colorMainRoads[] = {0.9,0.5,0.3,1}; colorTracksFill[] = {0.84,0.76,0.65,1}; colorRoadsFill[] = {1,1,1,1}; colorMainRoadsFill[] = {1,0.6,0.4,1}; colorGrid[] = {0.1,0.1,0.1,0.6}; colorGridMap[] = {0.1,0.1,0.1,0.6}; stickX[] = {0.2,{"Gamma",1,1.5}}; stickY[] = {0.2,{"Gamma",1,1.5}}; class Legend { colorBackground[] = {1,1,1,0.5}; color[] = {0,0,0,1}; x = "SafeZoneX + (((safezoneW / safezoneH) min 1.2) / 40)"; y = "SafeZoneY + safezoneH - 4.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; w = "10 * (((safezoneW / safezoneH) min 1.2) / 40)"; h = "3.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; font = "RobotoCondensed"; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; }; class ActiveMarker { color[] = {0.3,0.1,0.9,1}; size = 50; }; class Command { color[] = {1,1,1,1}; icon = "\A3\ui_f\data\map\mapcontrol\waypoint_ca.paa"; size = 18; importance = 1; coefMin = 1; coefMax = 1; }; class Task { colorCreated[] = {1,1,1,1}; colorCanceled[] = {0.7,0.7,0.7,1}; colorDone[] = {0.7,1,0.3,1}; colorFailed[] = {1,0.3,0.2,1}; color[] = {"(profilenamespace getvariable ['IGUI_TEXT_RGB_R',0])","(profilenamespace getvariable ['IGUI_TEXT_RGB_G',1])","(profilenamespace getvariable ['IGUI_TEXT_RGB_B',1])","(profilenamespace getvariable ['IGUI_TEXT_RGB_A',0.8])"}; icon = "\A3\ui_f\data\map\mapcontrol\taskIcon_CA.paa"; iconCreated = "\A3\ui_f\data\map\mapcontrol\taskIconCreated_CA.paa"; iconCanceled = "\A3\ui_f\data\map\mapcontrol\taskIconCanceled_CA.paa"; iconDone = "\A3\ui_f\data\map\mapcontrol\taskIconDone_CA.paa"; iconFailed = "\A3\ui_f\data\map\mapcontrol\taskIconFailed_CA.paa"; size = 27; importance = 1; coefMin = 1; coefMax = 1; }; class CustomMark { color[] = {0,0,0,1}; icon = "\A3\ui_f\data\map\mapcontrol\custommark_ca.paa"; size = 24; importance = 1; coefMin = 1; coefMax = 1; }; class Tree { color[] = {0.45,0.64,0.33,0.4}; icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa"; size = 12; importance = "0.9 * 16 * 0.05"; coefMin = 0.25; coefMax = 4; }; class SmallTree { color[] = {0.45,0.64,0.33,0.4}; icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa"; size = 12; importance = "0.6 * 12 * 0.05"; coefMin = 0.25; coefMax = 4; }; class Bush { color[] = {0.45,0.64,0.33,0.4}; icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa"; size = "14/2"; importance = "0.2 * 14 * 0.05 * 0.05"; coefMin = 0.25; coefMax = 4; }; class Church { color[] = {1,1,1,1}; icon = "\A3\ui_f\data\map\mapcontrol\church_CA.paa"; size = 24; importance = 1; coefMin = 0.85; coefMax = 1; }; class Chapel { color[] = {0,0,0,1}; icon = "\A3\ui_f\data\map\mapcontrol\Chapel_CA.paa"; size = 24; importance = 1; coefMin = 0.85; coefMax = 1; }; class Cross { color[] = {0,0,0,1}; icon = "\A3\ui_f\data\map\mapcontrol\Cross_CA.paa"; size = 24; importance = 1; coefMin = 0.85; coefMax = 1; }; class Rock { color[] = {0.1,0.1,0.1,0.8}; icon = "\A3\ui_f\data\map\mapcontrol\rock_ca.paa"; size = 12; importance = "0.5 * 12 * 0.05"; coefMin = 0.25; coefMax = 4; }; class Bunker { color[] = {0,0,0,1}; icon = "\A3\ui_f\data\map\mapcontrol\bunker_ca.paa"; size = 14; importance = "1.5 * 14 * 0.05"; coefMin = 0.25; coefMax = 4; }; class Fortress { color[] = {0,0,0,1}; icon = "\A3\ui_f\data\map\mapcontrol\bunker_ca.paa"; size = 16; importance = "2 * 16 * 0.05"; coefMin = 0.25; coefMax = 4; }; class Fountain { color[] = {0,0,0,1}; icon = "\A3\ui_f\data\map\mapcontrol\fountain_ca.paa"; size = 11; importance = "1 * 12 * 0.05"; coefMin = 0.25; coefMax = 4; }; class ViewTower { color[] = {0,0,0,1}; icon = "\A3\ui_f\data\map\mapcontrol\viewtower_ca.paa"; size = 16; importance = "2.5 * 16 * 0.05"; coefMin = 0.5; coefMax = 4; }; class Lighthouse { color[] = {1,1,1,1}; icon = "\A3\ui_f\data\map\mapcontrol\lighthouse_CA.paa"; size = 24; importance = 1; coefMin = 0.85; coefMax = 1; }; class Quay { color[] = {1,1,1,1}; icon = "\A3\ui_f\data\map\mapcontrol\quay_CA.paa"; size = 24; importance = 1; coefMin = 0.85; coefMax = 1; }; class Fuelstation { color[] = {1,1,1,1}; icon = "\A3\ui_f\data\map\mapcontrol\fuelstation_CA.paa"; size = 24; importance = 1; coefMin = 0.85; coefMax = 1; }; class Hospital { color[] = {1,1,1,1}; icon = "\A3\ui_f\data\map\mapcontrol\hospital_CA.paa"; size = 24; importance = 1; coefMin = 0.85; coefMax = 1; }; class BusStop { color[] = {1,1,1,1}; icon = "\A3\ui_f\data\map\mapcontrol\busstop_CA.paa"; size = 24; importance = 1; coefMin = 0.85; coefMax = 1; }; class Transmitter { color[] = {1,1,1,1}; icon = "\A3\ui_f\data\map\mapcontrol\transmitter_CA.paa"; size = 24; importance = 1; coefMin = 0.85; coefMax = 1; }; class Stack { color[] = {0,0,0,1}; icon = "\A3\ui_f\data\map\mapcontrol\stack_ca.paa"; size = 20; importance = "2 * 16 * 0.05"; coefMin = 0.9; coefMax = 4; }; class Ruin { color[] = {0,0,0,1}; icon = "\A3\ui_f\data\map\mapcontrol\ruin_ca.paa"; size = 16; importance = "1.2 * 16 * 0.05"; coefMin = 1; coefMax = 4; }; class Tourism { color[] = {0,0,0,1}; icon = "\A3\ui_f\data\map\mapcontrol\tourism_ca.paa"; size = 16; importance = "1 * 16 * 0.05"; coefMin = 0.7; coefMax = 4; }; class Watertower { color[] = {1,1,1,1}; icon = "\A3\ui_f\data\map\mapcontrol\watertower_CA.paa"; size = 24; importance = 1; coefMin = 0.85; coefMax = 1; }; class Waypoint { color[] = {0,0,0,1}; size = 24; importance = 1; coefMin = 1; coefMax = 1; icon = "\A3\ui_f\data\map\mapcontrol\waypoint_ca.paa"; }; class WaypointCompleted { color[] = {0,0,0,1}; size = 24; importance = 1; coefMin = 1; coefMax = 1; icon = "\A3\ui_f\data\map\mapcontrol\waypointCompleted_ca.paa"; }; moveOnEdges = 0;//1; x = "SafeZoneXAbs"; y = "SafeZoneY + 1.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; w = "SafeZoneWAbs"; h = "SafeZoneH - 1.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; shadow = 0; ptsPerSquareSea = 5; ptsPerSquareTxt = 3; ptsPerSquareCLn = 10; ptsPerSquareExp = 10; ptsPerSquareCost = 10; ptsPerSquareFor = 9; ptsPerSquareForEdge = 9; ptsPerSquareRoad = 6; ptsPerSquareObj = 9; showCountourInterval = 0; scaleMin = 0.001; scaleMax = 1; scaleDefault = 0.16; maxSatelliteAlpha = 0.85; alphaFadeStartScale = 0.35; alphaFadeEndScale = 0.4; fontLabel = "RobotoCondensed"; sizeExLabel = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; fontGrid = "TahomaB"; sizeExGrid = 0.02; fontUnits = "TahomaB"; sizeExUnits = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; fontNames = "RobotoCondensed"; sizeExNames = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8) * 2"; fontInfo = "RobotoCondensed"; sizeExInfo = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; fontLevel = "TahomaB"; sizeExLevel = 0.02; text = "#(argb,8,8,3)color(1,1,1,1)"; //text = "\a3\ui_f\data\map_background2_co.paa"; class power { icon = "\A3\ui_f\data\map\mapcontrol\power_CA.paa"; size = 24; importance = 1; coefMin = 0.85; coefMax = 1; color[] = {1,1,1,1}; }; class powersolar { icon = "\A3\ui_f\data\map\mapcontrol\powersolar_CA.paa"; size = 24; importance = 1; coefMin = 0.85; coefMax = 1; color[] = {1,1,1,1}; }; class powerwave { icon = "\A3\ui_f\data\map\mapcontrol\powerwave_CA.paa"; size = 24; importance = 1; coefMin = 0.85; coefMax = 1; color[] = {1,1,1,1}; }; class powerwind { icon = "\A3\ui_f\data\map\mapcontrol\powerwind_CA.paa"; size = 24; importance = 1; coefMin = 0.85; coefMax = 1; color[] = {1,1,1,1}; }; class shipwreck { icon = "\A3\ui_f\data\map\mapcontrol\shipwreck_CA.paa"; size = 24; importance = 1; coefMin = 0.85; coefMax = 1; color[] = {1,1,1,1}; }; class LineMarker { lineDistanceMin = 3e-005; lineLengthMin = 5; lineWidthThick = 0.014; lineWidthThin = 0.008; textureComboBoxColor = "#(argb,8,8,3)color(1,1,1,1)"; }; }; class Life_RscCombo { style = 16; type = 4; x = 0; y = 0; w = 0.12; h = 0.035; shadow = 0; colorSelect[] = {0, 0, 0, 1}; soundExpand[] = {"",0.1,1}; colorText[] = {0.95, 0.95, 0.95, 1}; soundCollapse[] = {"",0.1,1}; maxHistoryDelay = 1; colorBackground[] = {0.4,0.4,0.4,0.4}; colorSelectBackground[] = {1, 1, 1, 0.7}; colow_Rscrollbar[] = {1, 0, 0, 1}; soundSelect[] = { "", 0.000000, 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; color[] = {1, 1, 1, 1}; colorActive[] = {1, 0, 0, 1}; colorDisabled[] = {1, 1, 1, 0.25}; font = "RobotoCondensed"; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; class ComboScrollBar : Life_RscScrollBar {}; }; class Life_RscToolbox { colorText[] = {0.95, 0.95, 0.95, 1}; color[] = {0.95, 0.95, 0.95, 1}; colorTextSelect[] = {0.95, 0.95, 0.95, 1}; colorSelect[] = {0.95, 0.95, 0.95, 1}; colorTextDisable[] = {0.4, 0.4, 0.4, 1}; colorDisable[] = {0.4, 0.4, 0.4, 1}; colorSelectedBg[] = {"(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}; font = "RobotoCondensed"; sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; }; And you are now done, Enjoy the Dialog if you want to see what It looks like then have a look below.
  49. 1 point
    Author: StonerGaming Difficulty: Easy/Copy Paste Step 1. Open Config_VItems.hpp. Add under //mined items class uranium_unrefined { variable = "uraniumUnrefined"; displayName = "STR_Item_UraniumOre"; weight = 3; buyPrice = -1; sellPrice = -1; illegal = true; edible = -1; icon = ""; }; class uranium_refined { variable = "uraniumRefined"; displayName = "STR_Item_Uranium"; weight = 1; buyPrice = -1; sellPrice = 6500; //Optional Price illegal = true; edible = -1; icon = ""; }; Step 2. Open Config_VItems.hpp. Add Under Virtual Shops class uranium { name = "STR_Shops_Uranium"; side = "civ"; license = ""; level[] = { "", "", -1, "" }; items[] = { "uranium_refined" }; }; Step 3. Open Config_Gather.hpp. Add under "Class Minerals" class uranium_unrefined { amount = 15; zones[] = { "uranium_mine" }; item = "pickaxe"; mined[] = { "uranium_unrefined" }; zoneSize = 30; }; Step 4. Open Config_License.hpp. Add under //Processing License class uranium { variable = "uranium"; displayName = "STR_License_Uranium"; price = 35000; illegal = true; side = "civ"; }; Step 5. Open Config_Process.hpp. Add class uranium { MaterialsReq[] = {{"uranium_unrefined",1}}; MaterialsGive[] = {{"uranium_refined",1}}; Text = "STR_Process_Uranium"; //ScrollText = "Refine Uranium"; NoLicenseCost = 10000; }; Step 6. Open stringtable.xml. Add <Key ID="STR_Item_Uranium"> <Original>Uranium</Original> </Key> <Key ID="STR_Item_UraniumOre"> <Original>Uranium Ore</Original> </Key> <Key ID="STR_MAR_Uranium_Trader"> <Original>Uranium Trader</Original> </Key> <Key ID="STR_Process_Uranium"> <Original>Processing Uranium</Original> </Key> <Key ID="STR_License_Uranium"> <Original>Uranium Processing</Original> </Key> Step 7. Open your mission.sqm in A3 Editor. Place a marker variable name: uranium_mine Step 8. Place a NPC. add in the init. (For Processing) this enableSimulation false; this allowDamage false; this addAction[localize"STR_Process_Uranium",life_fnc_processAction,"uranium",0,false,false,"",' life_inv_uraniumUnrefined > 0 && !life_is_processing && !life_action_inUse']; this addAction[format ["%1 ($%2)",localize (getText(missionConfigFile >> "Licenses" >> "uranium" >> "displayName")), [(getNumber(missionConfigFile >> "Licenses" >> "uranium" >> "price"))] call life_fnc_numberText],life_fnc_buyLicense,"uranium",0,false,false,"",' !license_civ_uranium && playerSide isEqualTo civilian ']; Step 9. Place a NPC. add in the init. (For Trader) this allowDamage false; this enableSimulation false; this addAction[localize"STR_MAR_Uranium_Trader",life_fnc_virt_menu,"uranium"]; I am 100% sure this version works i have tested it on my server
  50. 1 point
    Yes they can shot inside but do no damage. Read the script.