Jump to content

Repentz

Members
  • Content Count

    340
  • Joined

  • Last visited

  • Days Won

    31

Everything posted by Repentz

  1. Repentz

    [Tutorial] Simple Morphine/Bandages

    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
  2. Repentz

    Unique Map Icons [Modded]

    Here's some Unique map icons I've made for anyone who wants them: Drive download: https://drive.google.com/open?id=1BhIU6_nXVK2znd5gx6Z0k67Ul-H0-WHw Rep_Markers.pbo
  3. Repentz

    Professional Looking HUD

    Hey everyone, decided I'm going to start releasing assets I've made and or contributed to from Orion, here's the HUD: I won't go into too much detail on how to set it all up, just give the assets. Looks like this, + seatbelt icon in vehicle: hud_stats.hpp //--------------------------------- //By Repentz //--------------------------------- #define INFINITE 1e+1000 #define IDC_LIFE_BAR_FOOD 2200 #define IDC_LIFE_BAR_FOOD_RING 3200 #define IDC_LIFE_BAR_WATER 2201 #define IDC_LIFE_BAR_WATER_RING 3201 #define IDC_LIFE_BAR_HEALTH 2202 #define IDC_LIFE_BAR_HEALTH_RING 3202 //#define IDC_LIFE_BAR_POOP 4202 #define IDC_LIFE_BAR_Speaker 3007 #define IDC_LIFE_BAR_SeatBelt 4203 class playerHUD { idd = -1; duration = INFINITE; movingEnable = 0; fadein = 0; fadeout = 0; name = "playerHUD"; onLoad = "uiNamespace setVariable ['playerHUD',_this select 0]"; objects[] = {}; controls[] = { LIFE_BAR_FOOD_RING, LIFE_BAR_WATER_RING, LIFE_BAR_HEALTH_RING, LIFE_BAR_Speaker, LIFE_BAR_SeatBelt }; class LIFE_BAR_SeatBelt: Life_RscPicture { idc = IDC_LIFE_BAR_SeatBelt; text = ""; x = 0.952292 * safezoneW + safezoneX; y = 0.574333 * safezoneH + safezoneY; w = 0.0331042 * safezoneW; h = 0.0589743 * safezoneH; }; class LIFE_BAR_Speaker: Life_RscPicture { idc = IDC_LIFE_BAR_Speaker; text = ""; x = 0.952292 * safezoneW + safezoneX; y = 0.640333 * safezoneH + safezoneY; w = 0.0331042 * safezoneW; h = 0.0589743 * safezoneH; }; class LIFE_BAR_HEALTH_RING: Life_RscPicture { idc = IDC_LIFE_BAR_HEALTH_RING; text = ""; x = 0.952292 * safezoneW + safezoneX; y = 0.706333 * safezoneH + safezoneY; w = 0.0331042 * safezoneW; h = 0.0589743 * safezoneH; }; class LIFE_BAR_FOOD_RING: Life_RscPicture { idc = IDC_LIFE_BAR_FOOD_RING; text = ""; x = 0.952292 * safezoneW + safezoneX; y = 0.772333 * safezoneH + safezoneY; w = 0.0331042 * safezoneW; h = 0.0589743 * safezoneH; }; class LIFE_BAR_WATER_RING: Life_RscPicture { idc = IDC_LIFE_BAR_WATER_RING; text = ""; x = 0.952292 * safezoneW + safezoneX; y = 0.838333 * safezoneH + safezoneY; w = 0.0331042 * safezoneW; h = 0.0589743 * safezoneH; }; }; HudUpdate: #include "..\..\script_macros.hpp" //--------------------------------- //By Repentz //--------------------------------- #define INFINITE 1e+1000 #define IDC_LIFE_BAR_FOOD 2200 #define IDC_LIFE_BAR_FOOD_RING 3200 #define IDC_LIFE_BAR_WATER 2201 #define IDC_LIFE_BAR_WATER_RING 3201 #define IDC_LIFE_BAR_HEALTH 2202 #define IDC_LIFE_BAR_HEALTH_RING 3202 #define IDC_LIFE_BAR_Speaker 3007 #define IDC_LIFE_BAR_SeatBelt 4203 disableSerialization; if(isNull LIFEdisplay) then {[] call life_fnc_hudSetup;}; //[LIFE_ID_PlayerTags,"onEachFrame"] call BIS_fnc_removeStackedEventHandler; LIFE_ID_PlayerTags = ["LIFE_PlayerTags","onEachFrame","life_fnc_playerTags"] call BIS_fnc_addStackedEventHandler; if(!isNil "life_seatbelt") then { if ( vehicle player != player ) then { if(life_seatbelt) then { LIFEctrl(IDC_LIFE_BAR_SeatBelt) ctrlSetText "VindicateAssets\images\textures\HUD\seatbeltOn.paa"; } else { LIFEctrl(IDC_LIFE_BAR_SeatBelt) ctrlSetText "VindicateAssets\images\textures\HUD\seatbeltOff.paa"; }; } else { LIFEctrl(IDC_LIFE_BAR_SeatBelt) ctrlSetText ""; }; }; if(!isNil "life_fadeSound") then { if(life_fadeSound) then { LIFEctrl(IDC_LIFE_BAR_Speaker) ctrlSetText "VindicateAssets\images\textures\HUD\earplugsY.paa"; } else { LIFEctrl(IDC_LIFE_BAR_Speaker) ctrlSetText "VindicateAssets\images\textures\HUD\earplugsN.paa"; }; }; if(!isNil "life_thirst") then { if (life_thirst <= 100) then { LIFEctrl(IDC_LIFE_BAR_WATER_RING) ctrlSetText "VindicateAssets\images\textures\HUD\water0.paa"; }; if (life_thirst <= 90) then { LIFEctrl(IDC_LIFE_BAR_WATER_RING) ctrlSetText "VindicateAssets\images\textures\HUD\water1.paa"; }; if (life_thirst <= 80) then { LIFEctrl(IDC_LIFE_BAR_WATER_RING) ctrlSetText "VindicateAssets\images\textures\HUD\water2.paa"; }; if (life_thirst <= 70) then { LIFEctrl(IDC_LIFE_BAR_WATER_RING) ctrlSetText "VindicateAssets\images\textures\HUD\water3.paa"; }; if (life_thirst <= 60) then { LIFEctrl(IDC_LIFE_BAR_WATER_RING) ctrlSetText "VindicateAssets\images\textures\HUD\water4.paa"; }; if (life_thirst <= 50) then { LIFEctrl(IDC_LIFE_BAR_WATER_RING) ctrlSetText "VindicateAssets\images\textures\HUD\water5.paa"; }; if (life_thirst <= 40) then { LIFEctrl(IDC_LIFE_BAR_WATER_RING) ctrlSetText "VindicateAssets\images\textures\HUD\water6.paa"; }; if (life_thirst <= 30) then { LIFEctrl(IDC_LIFE_BAR_WATER_RING) ctrlSetText "VindicateAssets\images\textures\HUD\water7.paa"; }; if (life_thirst <= 20) then { LIFEctrl(IDC_LIFE_BAR_WATER_RING) ctrlSetText "VindicateAssets\images\textures\HUD\water8.paa"; }; if (life_thirst <= 10) then { LIFEctrl(IDC_LIFE_BAR_WATER_RING) ctrlSetText "VindicateAssets\images\textures\HUD\water9.paa"; }; if (life_thirst <= 0) then { LIFEctrl(IDC_LIFE_BAR_WATER_RING) ctrlSetText "VindicateAssets\images\textures\HUD\water10.paa"; }; }; if (damage player >= 0) then { LIFEctrl(IDC_LIFE_BAR_HEALTH_RING) ctrlSetText "VindicateAssets\images\textures\HUD\health0.paa"; }; if (damage player >= 0.01) then { LIFEctrl(IDC_LIFE_BAR_HEALTH_RING) ctrlSetText "VindicateAssets\images\textures\HUD\health1.paa"; }; if (damage player >= 0.02) then { LIFEctrl(IDC_LIFE_BAR_HEALTH_RING) ctrlSetText "VindicateAssets\images\textures\HUD\health2.paa"; }; if (damage player >= 0.03) then { LIFEctrl(IDC_LIFE_BAR_HEALTH_RING) ctrlSetText "VindicateAssets\images\textures\HUD\health3.paa"; }; if (damage player >= 0.07) then { LIFEctrl(IDC_LIFE_BAR_HEALTH_RING) ctrlSetText "VindicateAssets\images\textures\HUD\health4.paa"; }; if (damage player >= 0.13) then { LIFEctrl(IDC_LIFE_BAR_HEALTH_RING) ctrlSetText "VindicateAssets\images\textures\HUD\health5.paa"; }; if (damage player >= 0.2) then { LIFEctrl(IDC_LIFE_BAR_HEALTH_RING) ctrlSetText "VindicateAssets\images\textures\HUD\health6.paa"; }; if (damage player >= 0.3) then { LIFEctrl(IDC_LIFE_BAR_HEALTH_RING) ctrlSetText "VindicateAssets\images\textures\HUD\health7.paa"; }; if (damage player >= 0.4) then { LIFEctrl(IDC_LIFE_BAR_HEALTH_RING) ctrlSetText "VindicateAssets\images\textures\HUD\health8.paa"; }; if (damage player >= 0.7) then { LIFEctrl(IDC_LIFE_BAR_HEALTH_RING) ctrlSetText "VindicateAssets\images\textures\HUD\health9.paa"; }; if (damage player >= 1) then { LIFEctrl(IDC_LIFE_BAR_HEALTH_RING) ctrlSetText "VindicateAssets\images\textures\HUD\health10.paa"; }; if(!isNil "life_hunger") then { if (life_hunger <= 100) then { LIFEctrl(IDC_LIFE_BAR_FOOD_RING) ctrlSetText "VindicateAssets\images\textures\HUD\food0.paa"; }; if (life_hunger <= 90) then { LIFEctrl(IDC_LIFE_BAR_FOOD_RING) ctrlSetText "VindicateAssets\images\textures\HUD\food1.paa"; }; if (life_hunger <= 80) then { LIFEctrl(IDC_LIFE_BAR_FOOD_RING) ctrlSetText "VindicateAssets\images\textures\HUD\food2.paa"; }; if (life_hunger <= 70) then { LIFEctrl(IDC_LIFE_BAR_FOOD_RING) ctrlSetText "VindicateAssets\images\textures\HUD\food3.paa"; }; if (life_hunger <= 60) then { LIFEctrl(IDC_LIFE_BAR_FOOD_RING) ctrlSetText "VindicateAssets\images\textures\HUD\food4.paa"; }; if (life_hunger <= 50) then { LIFEctrl(IDC_LIFE_BAR_FOOD_RING) ctrlSetText "VindicateAssets\images\textures\HUD\food5.paa"; }; if (life_hunger <= 40) then { LIFEctrl(IDC_LIFE_BAR_FOOD_RING) ctrlSetText "VindicateAssets\images\textures\HUD\food6.paa"; }; if (life_hunger <= 30) then { LIFEctrl(IDC_LIFE_BAR_FOOD_RING) ctrlSetText "VindicateAssets\images\textures\HUD\food7.paa"; }; if (life_hunger <= 20) then { LIFEctrl(IDC_LIFE_BAR_FOOD_RING) ctrlSetText "VindicateAssets\images\textures\HUD\food8.paa"; }; if (life_hunger <= 10) then { LIFEctrl(IDC_LIFE_BAR_FOOD_RING) ctrlSetText "VindicateAssets\images\textures\HUD\food9.paa"; }; if (life_hunger <= 0) then { LIFEctrl(IDC_LIFE_BAR_FOOD_RING) ctrlSetText "VindicateAssets\images\textures\HUD\food1.paa"; }; }; hudSetup: #include "..\..\script_macros.hpp" disableSerialization; 2 cutRsc ["playerHUD","PLAIN"]; [] call life_fnc_hudUpdate; [] spawn { private["_dam"]; while {true} do { _dam = damage player; waitUntil {(damage player) != _dam}; [] call life_fnc_hudUpdate; }; }; setupActions for all life_actions pushBack (player addAction["<t color = '#009900'>Put on Seatbelt</t>",life_fnc_seatbelt,"",6,false,false,"",' !life_seatbelt && vehicle player != player ']); life_actions pushBack (player addAction["<t color = '#ff3300'>Remove Seatbelt</t>",life_fnc_seatbelt,"",6,false,false,"",' life_seatbelt && vehicle player != player ']); Assets included named HUD.rar HUD.rar
  4. CREATE EBO’S AND MAKE THEM SIGNABLE FOR ANY ADDON By: Travis Butts So something has been kept hidden from everyone for the reason of them wanting there server fully protected and not wanted people to unbin there stuff, etc. I have been holding this in my pocket for a long time and have not told anyone for the reason of my things and one other server being only ones with EBO's. I feel like this should be released for those that would like to know how to EBO their addons. Q: Why make addons into EBO? A: Security; Almost nobody can get into an EBO's these days, and it gives you an extremely good chance of having your assets remain secure, more-so than obfuscation. Up until this point, almost nobody knew how to make ebo's signable, meaning you could not restrict people from joining your servers with unknown addons if you used ebo files, now you can because this method is public. Step 1: Download the EBO Encunter by Dougemm https://drive.google.com/open?id=1cIynBLnBZib27aFoRNYrSwqcGYHU8n0M Step 2: Pack addons with pboProject with the following settings, if sign with key is off this is because you do not have a key selected in the options https://armaservices.maverick-applications.com/Products/MikerosDosTools/DownloadFree.aspx?download=pboProject.2.24.6.43.Installer.exe Step 3: Once packed, drag and drop pbo on the EBO Encunter and wait for it to turn into a ebo. Step 4: Now you should have a EBO File and the key which was made for the PBO, rename the .pbo part on the bikey to .ebo Step 5: In your server config put this in it, regularCheck = "{}"; Step 6: Put the key file in Keys, run the addons and you should be all good to go!
  5. Repentz

    [Tutorial] Seatbelts

    SEATBELTS handledamage: by Snipes mad dialog, eventHandlers, addaction, etc: by Repentz This script allows you to put on/take off your seatbelt when inside a vehicle, I have also fixed the problem of the seatbelt not disabling when exiting your vehicle Currently, the seatbelt reduces crash damage by 50%, I would put in an ejection function, but arma 3 desync leads to the script thinking you have crashed and ejecting you. Let's begin Go into core/Configuration.sqf, place this in the variables: life_seatbelt = false; Next, let's go into core/setupActions.sqf, place this at the very bottom to enable for all sides: life_actions pushBack (player addAction["<t color = '#D660D6'>Put on Seatbelt</t>",life_fnc_seatbelt,"",7,false,false,"",' !life_seatbelt && vehicle player != player ']); life_actions pushBack (player addAction["<t color = '#D660D6'>Remove Seatbelt</t>",life_fnc_seatbelt,"",7,false,false,"",' life_seatbelt && vehicle player != player ']); Go into core/functions/handleDamage.sqf, place this near the bottom before hudUpdate if ((vehicle _unit) isKindOf "Car" && (isNull _source || _source isEqualTo _unit)) then { _damage = if (life_seatbelt) then { _damage / 2 } else { _damage}; }; Create a file in core/functions called fn_seatBelt.sqf: /* //--By Repentz for altisLifeRPG */ #include "..\..\script_macros.hpp" /* fn_seatBelt.sqf */ //playSound "seatbelt"; //--Enable this to play a sound when you put your seatbelt on if(!life_seatbelt) then { life_seatbelt = true; } else { life_seatbelt = false; }; //[] call life_fnc_hudUpdate; //--Enable this if you are putting a hud option to display when your seatbelt is on. Go into functions.hpp in main directory, find functions section, add this: class seatbelt {}; Go into initPlayerLocal in your main directory, add this after "if (LIFE_SETTINGS(getNumber,"spyGlass_toggle") isEqualTo 1) then {[] execVM "SpyGlass\fn_initSpy.sqf";};" if (hasInterface) then { player addEventHandler ["GetOutMan", { life_seatbelt = false; //[] call life_fnc_hudUpdate; //--Enable if you are putting a hud option to display when your seatbelt is on }]; }; if (hasInterface) then { player addEventHandler ["GetInMan", { life_seatbelt = false; //[] call life_fnc_hudUpdate; //--Enable if you are putting a hud option to display when your seatbelt is on }]; }; Optional: If you want to have a icon display when you're inside your vehicle, and your seatbelt is on or off, put this in your hud_stats.hpp: #define IDC_LIFE_BAR_SeatBelt 4203 then LIFE_BAR_SeatBelt then class LIFE_BAR_SeatBelt: Life_RscPicture { idc = IDC_LIFE_BAR_SeatBelt; text = ""; x = 0.952292 * safezoneW + safezoneX; y = 0.664333 * safezoneH + safezoneY; w = 0.0331042 * safezoneW; h = 0.0589743 * safezoneH; }; This is still for optional icon display, go into hudUpdate: #define IDC_LIFE_BAR_SeatBelt 4203 then if(!isNil "life_seatbelt") then { if ( vehicle player != player ) then { if(life_seatbelt) then { LIFEctrl(IDC_LIFE_BAR_SeatBelt) ctrlSetText "rg_client\HUD\seatbeltOn.paa"; } else { LIFEctrl(IDC_LIFE_BAR_SeatBelt) ctrlSetText "rg_client\HUD\seatbeltOff.paa"; }; } else { LIFEctrl(IDC_LIFE_BAR_SeatBelt) ctrlSetText ""; }; }; You will have to find your own icons, sounds, and position the icon wherever you wish if you want these features, also remember for the seatbelt sound to call it in description.ext as a new sound. Done.
  6. Repentz

    [Tutorial] Slot Machines

    Slot Machines By Papabear This script will allow your players to gamble away their money, everyone knows how slots work so.. I have also taken the time to stop duping/exploiting with this script with updatePartial calls, which everyone should look into. This script is based around a 1 million dollar start, the way it is, most people will lose money, if you wish to switch prices do so in the fn_slotSpin.sqf Let's begin. Download these icons, place them wherever you choose, but make sure the fn_slotSpin calls to the right location of them: Link 1: https://drive.google.com/open?id=0B21RLPd9cvL-WWsyeUdfWUsxUTg Link 2: http://www.filedropper.com/slotmachine Go into functions.hpp in main directory, place this under the civilian array: class slotSpin {}; class slotmachine {}; Go into core/civilian, add these new sqf files, first is called fn_slotmachine.sqf: /* Creates the Slot Machine GUI */ createDialog "SlotMachineGUI"; disableSerialization; Next, add a file called fn_slotSpin.sqf: /* File: fn_slotSpin.sqf Author: Jacob "PapaBear" Tyler Description: Takes bet, spins slots, determines if win, pays */ private["_slot","_slot1","_slot2","_slot3","_winnings","_slotcash","_betamt","_display"]; _betamt = [_this,0,1,[0]] call BIS_fnc_param; if(life_cash < _betamt) exitWith {hint format["You do not have enough money to play.",_betamt];}; life_cash = life_cash - _betamt; disableSerialization; _display = findDisplay 5780; _slotPic1 = _display displayCtrl 5771; _slotPic2 = _display displayCtrl 5772; _slotPic3 = _display displayCtrl 5773; _winningsText = _display displayCtrl 5775; _bet1 = _display displayCtrl 5778; _bet2 = _display displayCtrl 5779; _bet3 = _display displayCtrl 5781; _bet4 = _display displayCtrl 5782; _bet1 ctrlEnable false; _bet2 ctrlEnable false; _bet3 ctrlEnable false; _bet4 ctrlEnable false; _number = ceil(random 7); _pplayer = _this select 0; if (_number isEqualTo 0) then {_slot1 = 0; _slotPic1 ctrlSetText "textures\SlotMachine\slot_zero.paa";}; if (_number isEqualTo 1) then {_slot1 = 100; _slotPic1 ctrlSetText "textures\SlotMachine\slot_one.paa";}; if (_number isEqualTo 2) then {_slot1 = 200; _slotPic1 ctrlSetText "textures\SlotMachine\slot_two.paa";}; if (_number isEqualTo 3) then {_slot1 = 300; _slotPic1 ctrlSetText "textures\SlotMachine\slot_three.paa";}; if (_number isEqualTo 4) then {_slot1 = 400; _slotPic1 ctrlSetText "textures\SlotMachine\slot_four.paa";}; if (_number isEqualTo 5) then {_slot1 = 500; _slotPic1 ctrlSetText "textures\SlotMachine\slot_five.paa";}; if (_number isEqualTo 6) then {_slot1 = 600; _slotPic1 ctrlSetText "textures\SlotMachine\slot_six.paa";}; if (_number isEqualTo 7) then {_slot1 = 700; _slotPic1 ctrlSetText "textures\SlotMachine\slot_seven.paa";}; life_action_inUse = true; sleep 0.5; _number = ceil(random 7); _pplayer = _this select 0; if (_number isEqualTo 0) then {_slot2 = 0; _slotPic2 ctrlSetText "textures\SlotMachine\slot_zero.paa";}; if (_number isEqualTo 1) then {_slot2 = 10; _slotPic2 ctrlSetText "textures\SlotMachine\slot_one.paa";}; if (_number isEqualTo 2) then {_slot2 = 20; _slotPic2 ctrlSetText "textures\SlotMachine\slot_two.paa";}; if (_number isEqualTo 3) then {_slot2 = 30; _slotPic2 ctrlSetText "textures\SlotMachine\slot_three.paa";}; if (_number isEqualTo 4) then {_slot2 = 40; _slotPic2 ctrlSetText "textures\SlotMachine\slot_four.paa";}; if (_number isEqualTo 5) then {_slot2 = 50; _slotPic2 ctrlSetText "textures\SlotMachine\slot_five.paa";}; if (_number isEqualTo 6) then {_slot2 = 60; _slotPic2 ctrlSetText "textures\SlotMachine\slot_six.paa";}; if (_number isEqualTo 7) then {_slot2 = 70; _slotPic2 ctrlSetText "textures\SlotMachine\slot_seven.paa";}; sleep 0.5; _number = ceil(random 7); _pplayer = _this select 0; if (_number isEqualTo 0) then {_slot3 = 0; _slotPic3 ctrlSetText "textures\SlotMachine\slot_zero.paa";}; if (_number isEqualTo 1) then {_slot3 = 1; _slotPic3 ctrlSetText "textures\SlotMachine\slot_one.paa"; }; if (_number isEqualTo 2) then {_slot3 = 2; _slotPic3 ctrlSetText "textures\SlotMachine\slot_two.paa"; }; if (_number isEqualTo 3) then {_slot3 = 3; _slotPic3 ctrlSetText "textures\SlotMachine\slot_three.paa"; }; if (_number isEqualTo 4) then {_slot3 = 4; _slotPic3 ctrlSetText "textures\SlotMachine\slot_four.paa"; ;}; if (_number isEqualTo 5) then {_slot3 = 5; _slotPic3 ctrlSetText "textures\SlotMachine\slot_five.paa"; }; if (_number isEqualTo 6) then {_slot3 = 6; _slotPic3 ctrlSetText "textures\SlotMachine\slot_six.paa"; }; if (_number isEqualTo 7) then {_slot3 = 7; _slotPic3 ctrlSetText "textures\SlotMachine\slot_seven.paa"; }; sleep 0.5; _slot = _slot1 + _slot2 + _slot3; //cases for wins switch (_slot) do { case 111:{_winnings = 4000;}; case 110:{_winnings = 800;}; case 123:{_winnings = 900;}; case 211:{_winnings = 80;}; case 123:{_winnings = 800;}; case 234:{_winnings = 800;}; case 345:{_winnings = 9000;}; case 456:{_winnings = 1100;}; case 567:{_winnings = 1200;}; case 311:{_winnings = 800;}; case 411:{_winnings = 800;}; case 511:{_winnings = 800;}; case 611:{_winnings = 800;}; case 110:{_winnings = 800;}; case 112:{_winnings = 800;}; case 113:{_winnings = 800;}; case 114:{_winnings = 800;}; case 115:{_winnings = 800;}; case 116:{_winnings = 800;}; case 121:{_winnings = 600;}; case 131:{_winnings = 600;}; case 141:{_winnings = 600;}; case 151:{_winnings = 600;}; case 171:{_winnings = 600;}; case 121:{_winnings = 600;}; case 222:{_winnings = 3000;}; case 333:{_winnings = 2000;}; case 444:{_winnings = 2000;}; case 555:{_winnings = 1500;}; case 666:{_winnings = 25000;}; case 777:{_winnings = 45000;}; default {_winnings = 0;} }; //multiple winnings by bet amount _slotcash = _winnings * ( _betamt / 1000 ); life_cash = life_cash + _slotcash; _winningsText ctrlSetStructuredText parseText format["<t size='2.6px' color='#0099ff'>%1$</t>",_slotcash]; _bet1 ctrlEnable true; _bet2 ctrlEnable true; _bet3 ctrlEnable true; _bet4 ctrlEnable true; life_action_inUse = false; [0] call SOCK_fnc_updatePartial; Next, go into your dialog folder, add this and call it slot_machine.hpp: /* File: slot_machine.hpp Author: Jacob "PapaBear" Tyler Description: Takes bet, spins slots, determines if win, pays */ class SlotMachineGUI { idd = 5780; movingEnabled = false; enableSimulation = true; class controlsBackground { class RscFrame_1800: life_RscText { idc = -1; x = 0.29375 * safezoneW + safezoneX; y = 0.225 * safezoneH + safezoneY; w = 0.4125 * safezoneW; h = 0.55 * safezoneH; colorBackground[] = {0,0,0,0.7}; }; class RscText_1000: life_RscText { idc = -1; text = "Winnings:"; //--- ToDo: Localize; x = 0.355625 * safezoneW + safezoneX; y = 0.709 * safezoneH + safezoneY; w = 0.2475 * safezoneW; h = 0.055 * safezoneH; sizeEx = 3 * 0.03; }; class RscText_1003: life_RscText { idc = -1; text = "Betting"; //--- ToDo: Localize; x = 0.298906 * safezoneW + safezoneX; y = 0.577 * safezoneH + safezoneY; w = 0.0567187 * safezoneW; h = 0.033 * safezoneH; sizeEx = 2 * 0.03; }; class RscText_1002: life_RscText { idc = -1; text = "Slot Machine"; //--- ToDo: Localize; x = 0.298906 * safezoneW + safezoneX; y = 0.225 * safezoneH + safezoneY; w = 0.309375 * safezoneW; h = 0.055 * safezoneH; colorText[] = {0,0.49,0.92,1}; sizeEx = 3 * 0.03; }; }; class controls { class SLOT_1: life_RscPicture { idc = 5771; text = "textures\SlotMachine\slot_empty.paa"; x = 0.2955 * safezoneW + safezoneX; y = 0.313 * safezoneH + safezoneY; w = 0.122 * safezoneW; h = 0.198 * safezoneH; }; class SLOT_2: life_RscPicture { idc = 5772; text = "textures\SlotMachine\slot_empty.paa"; x = 0.4195 * safezoneW + safezoneX; y = 0.313 * safezoneH + safezoneY; w = 0.122 * safezoneW; h = 0.198 * safezoneH; }; class SLOT_3: life_RscPicture { idc = 5773; text = "textures\SlotMachine\slot_empty.paa"; x = 0.543 * safezoneW + safezoneX; y = 0.313 * safezoneH + safezoneY; w = 0.122 * safezoneW; h = 0.198 * safezoneH; }; class Winnings: Life_RscStructuredText { idc = 5775; test = ""; x = 0.469062 * safezoneW + safezoneX; y = 0.709 * safezoneH + safezoneY; w = 0.2 * safezoneW; h = 0.055 * safezoneH; }; class EXIT_BTN: life_RscButtonMenu { idc = -1; text = "$STR_Global_Close"; onButtonClick = "closeDialog 0;"; x = 0.649531 * safezoneW + safezoneX; y = 0.225 * safezoneH + safezoneY; w = 0.0567187 * safezoneW; h = 0.022 * safezoneH; colorBackground[] = {0,0,0,0}; }; class RscText_1005: Life_RscText { idc = -1; text = "5.000$"; //--- ToDo: Localize; x = 0.371094 * safezoneW + safezoneX; y = 0.577 * safezoneH + safezoneY; w = 0.061875 * safezoneW; h = 0.033 * safezoneH; colorText[] = {0,0.49,0.92,1}; sizeEx = 2 * 0.03; }; class RscText_1006: Life_RscText { idc = -1; text = "10.000$"; //--- ToDo: Localize; x = 0.448438 * safezoneW + safezoneX; y = 0.577 * safezoneH + safezoneY; w = 0.061875 * safezoneW; h = 0.033 * safezoneH; colorText[] = {0,0.49,0.92,1}; sizeEx = 2 * 0.03; }; class RscText_1007: Life_RscText { idc = -1; text = "25.000$"; //--- ToDo: Localize; x = 0.536094 * safezoneW + safezoneX; y = 0.577 * safezoneH + safezoneY; w = 0.061875 * safezoneW; h = 0.033 * safezoneH; colorText[] = {0,0.49,0.92,1}; sizeEx = 2 * 0.03; }; class RscText_1008: Life_RscText { idc = -1; text = "50.000$"; //--- ToDo: Localize; x = 0.62375 * safezoneW + safezoneX; y = 0.577 * safezoneH + safezoneY; w = 0.061875 * safezoneW; h = 0.033 * safezoneH; colorText[] = {0,0.49,0.92,1}; sizeEx = 2 * 0.03; }; class BET_5K: life_RscButtonMenu { idc = 5778; tooltip = "5000$"; //--- ToDo: Localize; colorBackground[] = {0,0,0,0}; onButtonClick = "[5000] spawn life_fnc_slotSpin;"; x = 0.371094 * safezoneW + safezoneX; y = 0.577 * safezoneH + safezoneY; w = 0.0515625 * safezoneW; h = 0.033 * safezoneH; colorBackgroundFocused[] = {0,0,0,0}; colorBackground2[] = {0,0,0,0}; color[] = {1,1,1,1}; colorFocused[] = {0,0,0,0}; color2[] = {0,0,0,0}; colorText[] = {1,1,1,1}; }; class BET_50K: life_RscButtonMenu { idc = 5779; tooltip = "50000$"; //--- ToDo: Localize; colorBackground[] = {0,0,0,0}; onButtonClick = "[50000] spawn life_fnc_slotSpin;"; x = 0.62375 * safezoneW + safezoneX; y = 0.577 * safezoneH + safezoneY; w = 0.061875 * safezoneW; h = 0.033 * safezoneH; colorBackgroundFocused[] = {0,0,0,0}; colorBackground2[] = {0,0,0,0}; color[] = {1,1,1,1}; colorFocused[] = {0,0,0,0}; color2[] = {0,0,0,0}; colorText[] = {1,1,1,1}; }; class BET_25K: life_RscButtonMenu { idc = 5781; tooltip = "25000$"; //--- ToDo: Localize; colorBackground[] = {0,0,0,0}; onButtonClick = "[25000] spawn life_fnc_slotSpin;"; x = 0.536094 * safezoneW + safezoneX; y = 0.577 * safezoneH + safezoneY; w = 0.061875 * safezoneW; h = 0.033 * safezoneH; colorBackgroundFocused[] = {0,0,0,0}; colorBackground2[] = {0,0,0,0}; color[] = {1,1,1,1}; colorFocused[] = {0,0,0,0}; color2[] = {0,0,0,0}; colorText[] = {1,1,1,1}; }; class BET_10K: life_RscButtonMenu { idc = 5782; tooltip = "10000$"; //--- ToDo: Localize; colorBackground[] = {0,0,0,0}; onButtonClick = "[10000] spawn life_fnc_slotSpin;"; x = 0.448438 * safezoneW + safezoneX; y = 0.577 * safezoneH + safezoneY; w = 0.061875 * safezoneW; h = 0.033 * safezoneH; colorBackgroundFocused[] = {0,0,0,0}; colorBackground2[] = {0,0,0,0}; color[] = {1,1,1,1}; colorFocused[] = {0,0,0,0}; color2[] = {0,0,0,0}; colorText[] = {1,1,1,1}; }; }; }; Now, let's define it in masterhandler.h inside the dialogs folder: #include "slot_machine.hpp" Now, go into eden editor, or however you wish to add this, it will call for the slot machine (let me know if it doesn't work, if not try removing a " on either side of Spin Slots Add this to an NPC, or preferably a infostand of your choice (off topic, but I also recommend switching the majority of your NPC's to infostands or some objects) this addAction ["Spin Slots", life_fnc_slotmachine]; Should be working, let me know if it's not Done.
  7. Repentz

    [Tutorial] Action Dialog Menu

    From the old AltisLifeRPG Forums, credits go to: Scarso327 In the pmenu folder in the core folder you need to create a .sqf called fn_movesMenu.sqf #include "..\..\script_macros.hpp" File: fn_movesMenu.sqf Author: Jack "Scarso" Farhall*/ private["_display", "_list", "_moves"]; disableSerialization; _moves = [ ["Kung Fu", "AmovPercMstpSnonWnonDnon_exerciseKata"], ["Push Ups", "AmovPercMstpSnonWnonDnon_exercisePushup"], ["Knee Bends (Fast)", "AmovPercMstpSnonWnonDnon_exercisekneeBendB"], ["Knee Bends (Normal)", "AmovPercMstpSnonWnonDnon_exercisekneeBendA"], ["Scared", "AmovPercMstpSnonWnonDnon_Scared"] ]; waitUntil { !isNull(findDisplay 2900) }; _display = findDisplay 2900; _list = _display displayCtrl 2902; lbClear _list; { _list lbAdd format["%1", _x select 0]; _list lbSetdata[(lbSize _list) - 1, str(_x select 1)]; } foreach _moves; Step Two: Now find class Player_Menu in the functions.h and add the class below class movesMenu {}; Step Three: Ok now go into the dialogs folder and create a file called moves_menu.hpp and add this class life_moves_menu { idd = 2900; name = "life_moves_menu"; movingEnable = false; enableSimulation = true; onLoad = "[] spawn life_fnc_movesMenu;"; 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.8; 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.8; h = 0.6 - (2 / 250); }; }; class controls { class Title: Life_RscTitle { colorBackground[] = {0,0,0,0}; idc = 2901; text = "CGI Moves Menu By Scarso327"; x = 0.1; y = 0.2; w = 0.6; h = (1 / 25); }; class movesList: Life_RscListBox { idc = 2902; text = ""; sizeEx = 0.035; x = 0.12; y = 0.26; w = 0.30; h = 0.4; }; 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.88 - (1 / 25); w = (6.25 / 40); h = (1 / 25); }; class performMove: Life_RscButtonMenu { idc = -1; text = "Move"; onButtonClick = "_move = lbData[2902,lbCurSel (2902)];_move = call compile format[""%1"", _move]; player playMove _move; closeDialog 0;"; x = 0.1 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH)); y = 0.88 - (1 / 25); w = (6.25 / 40); h = (1 / 25); }; }; }; Also Add This to the MasterHandler In the dialogs folder #include "moves_menu.hpp" Step Four: Ok now stay in the dialogs folder and find player_inv.hpp and add this class ButtonMoves: life_RscButtonMenu { idc = -1; text = "Moves Menu"; onButtonClick = "closeDialog 0; createDialog " "life_moves_menu" ";"; x = 0.1 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH)); y = 0.805; w = (6.25 / 40); h = (1 / 25); }; Final Step: Replace The class ButtonAdminMenu with (this is because the moves menu is in the place the admin menu is in default altis life) class ButtonAdminMenu: Life_RscButtonMenu { idc = 2021; text = "$STR_PM_AdminMenu"; onButtonClick = "createDialog " "life_admin_menu" ";"; x = 0.1 + (6.25 / 19.8) + (1 / 250 / (safezoneW / safezoneH)); y = 0.805; w = (6.25 / 40); h = (1 / 25); };
  8. Repentz

    Fast mission testing method

    I've noticed most newer people who dev on server decide to use the old "pack pbo-> start up dedicated server -> join and download pbo -> redo" method which usually takes several minutes This method only works on a local computer, i HIGHLY recommend setting one up if you don't have one. WARNING: if you plan to open your eden editor, launch a new normal arma 3 instead, cause it will add @life_server etc to your reqired addons if you don't. With this method (originally shown to me by Optix) , you can test things within 15 seconds to a minute depending on your machine and task. How to do this: Locate your main Arma 3 steam directory Find Arma3.exe [NOT Arma3server.exe] Right click Arma3.exe and create a shortcut of it Put this shortcut on your desktop Right click the shortcut and go to properties Enter the following into the "Target" section "C:\Program Files (x86)\Steam\steamapps\common\Arma 3\arma3.exe" "[email protected];@life_server" -noSplash -skipIntro -showScriptErrors Change what you need in this, such as mods, locations, etc. I recommend keeping on showScriptErrors, very useful for finding out why your code does not work. Save this, now go into your main arma 3 directory Your mission should be in your 'MPMissions' folder, make sure it is not in a PBO format Make sure you only have one mission in here, move the others out until you're done, or rename them to 'whatever.Altis324' putting numbers at the end so the mission is not read Launch the shortcut and let your game load Go to multiplayer, click on 'Host Server' No need to change anything here unless you want a friend joining, if so change LAN to multiplayer and make sure you've port forwarded 2302-2303 Click the host server button Click the map you are running your server on Click the mission file you are testing Load into the mission the same way you normally would If you wish to re-test something, you can edit code in the non-pbo mission you have in MPMissions without messing up your server ingame Once you are done editing your code, simply abort from the mission like you would when you log out of any server It will bring you back to the create game menu, where to reload your new code you simply have to run your mission again Important tips if this does not work for you: This works best with a non-pbo mission, just leave the 'whatever.Altis' in your MPMissions and you can edit it at any time This only works on a local server you have set up
  9. Repentz

    [Tutorial] Realistic Tazer

    This script changes how tazing players works, instead of applying a tazing animation, it will use a ragdoll animation to simulate losing control of your body. Now this ragdoll will only last 5 seconds, so i have added the effect of applying full fatigue, and damaging the player to 60% health, to force limping. Step one: open up fn_tazed, replace all with this: #include "..\..\script_macros.hpp" /* File: fn_tazed.sqf Author: Bryan "Tonic" Boardwine Editor: Repentz to improve the function Description: Starts the tazed animation and broadcasts out what it needs to. */ private["_unit","_shooter","_curWep","_curMags","_attach"]; _unit = param [0,Objnull,[Objnull]]; _shooter = param [1,Objnull,[Objnull]]; if(isNull _unit OR isNull _shooter) exitWith {player allowDamage true; life_istazed = false;}; if(player getVariable["restrained",false]) exitWith {}; _time = time; if(_shooter isKindOf "Man" && alive player) then { if(!life_istazed) then { life_istazed = true; "DynamicBlur" ppEffectEnable true; "DynamicBlur" ppEffectAdjust [20]; "DynamicBlur" ppEffectCommit 1; player allowDamage false; if(isNull objectParent player) then { for [{_x=1},{_x<=10},{_x=_x+1}] do { call SOCK_fnc_tazeRagdoll; sleep 0.1; if(animationState player == "unconscious") exitWith{}}; }; //[_unit] remoteExecCall ["life_fnc_tazeSound",RCLIENT]; [0,"STR_NOTF_Tazed",true,[profileName, _shooter getVariable["realname",name _shooter]]] remoteExecCall ["life_client_fnc_broadcast",-2]; disableUserInput true; player setDamage 0; waitUntil{animationState player != "unconscious"}; _anim = if(isNull objectParent player) then {"Incapacitated"} else {"kia_driver_mid01"}; [player,_anim] remoteExec ["life_client_fnc_animSync",0]; waitUntil{time - _time >= 15}; player allowDamage true; if(!(player getVariable["Escorting",false])) then { detach player; }; "DynamicBlur" ppEffectEnable false; life_istazed = false; disableUserInput false; player playMoveNow "amovppnemstpsraswrfldnon"; player setFatigue 1; //no running for you player setdamage 0.6; //especially no running for you }; } else { _unit allowDamage true; life_iztazed = false; }; Next, create a new file called fn_tazeRagdoll.sqf, place it in core -> session Put the following into it: if (!isNull objectParent player) exitWith {}; private "_tazered"; _tazered = "Land_Can_V3_F" createVehicleLocal [0,0,0]; _tazered setMass 1e10; _tazered attachTo [player, [0,0,0], "Spine3"]; _tazered setVelocity [0,0,6]; detach _tazered; 0 = _tazered spawn { deleteVehicle _this; }; Call this function in functions.h under file = "Core\session"; place: class tazeRagdoll {}; Tell me how it works.
  10. You must not obfuscate or compress on the pboproject tool
  11. Repentz

    [Tutorial] Block Changing Names

    This script stops people from changing their name once they join the server with their first name. Credit goes to some guy named "said11" Go to fn_requestReceived.sqf After failMission "SpyGlass"; }; place this, line ~30 ish if(profileName != _this select 1) exitWith { hint format["Your old nickname %1",_this select 1]; [format["For your key is fixed another nickname, enter your old nickname in the profile of the game!<br/><br/>Your old nickname <t color='#b20303'>%1</t><br/><br/>If you have any problems with the change nickname - refer to the forum <t color='#665bff'>vk.com/russlandlife</t>", _this select 1], "Registered nickname change", "adopt" ] call BIS_fnc_guiMessage; ["NameExists",false,false] call BIS_fnc_endMission; }; Add this new class to your description.ext: class NameExists { title = "Change the nickname"; subTitle = ""; description = "For your key is fixed another nickname, enter your old nickname in the profile of the game!"; pictureBackground = ""; picture = ""; pictureColor[] = {0,0.3,0.6,1}; }; This should work, if it does not let me know.
  12. Repentz

    Working Scripts [Updated]

    Working Scripts Archive easy access to all available scripts _____________________________________________________________________________________________________________________________________________ UI and Informational Professional looking HUD Intro Music Intro Music 2 Intro Text Intro Cam Intro Video Outro Script StatusBar Removing Default Statusbar Spawn Menu Redone Updated HUD IPAD Y Menu IPAD Y Menu 2 AI Based Scripts Dynamic Airdrop Improvements & Basic Features Brighter Nights Simply Morphine and Bandages Dynamic market 5.0 Custom Spawn Loadouts for Civilians Seat Belts Patdown Player + Seize Objects Realistic Towing Ear Plugs Rubber Bullets Realistic CPR Kit Actions Menu Tag System Speed Bomb Zip Ties Police Backup Jaws of Life Realistic Tazer Hand Gestures Buyable Loadouts Backpack Custom Capacity Marijuana Effects Gag Action Fastrope Auto Save Adding Smoke Effect to Processing Placeable Objects for Police Invisible Backpacks for police/med Anti VDM Block Changing Names Cops can enter locked vehicles Warner's Barriers Configurable Jail Time Adding police radar GPS System Car Alarm Boat Rental Civilian Passports Police Gate Opening Hotkey Adding Smoke Trails to Cesna Suicide Vest Automatic Messages Animal Tracking (for Hunting) Wedding rings Systems and Complex Features Questing System Zipties Revised [Fully Working, With Gag and Blindfolds] Vehicle Insurance RYANTTS DYNAMIC MARKET SYSTEM OPFOR 4.4 Advanced Banking System, With Pins MrKraken's Gas Station Robbery Script Bounty Hunting Framework [Dialog, DB, Player Interaction] Altis Central Bank - Second Fed Purge [Server Event] Crafting System Slot Machines Bus Transportation Physical Cellphone Gang Capturable Areas Tutorials Basic Coding Tutorial Moving the Federal Reserve Task force Radio Black screen when not in channel ETC Separate Police/Civ Cash & Bank Account Gang Name Spawns Custom Medic & Cop Skins Adding Licenses 4.4 Tobacco-field Civilian Whitelisting Installing Task Force Radio (Addon/Mod) Mining with Shift+C Custom Paychecks Official Paid Scripts Maverick Applications Let me know if i missed anything
  13. Repentz

    [Tutorial] New Life Rule Timer [4.x]

    NEW LIFE RULE TIMER Credits to Ciaran for original creation of the script This script will display a timer when a player dies that will carry on to their next life, it will last a defined amount of time and will disappear if you are revived. https://gyazo.com/6a126c8ef164998b826a582a68f85367 INSTRUCTIONS Create a .Sqf file called fn_newLifeRule Place the file into your core\medical folder Place this code into the newly created file: /* New Life Rule Timer Released to AltisLifeRPG.com Credits to Ciaran for original creation of the script */ private["_uiDisp","_time","_timer"]; if(playerSide isEqualTo west) exitWith {}; if(playerSide isEqualTo independent) exitWith {}; disableSerialization; 7 cutRsc ["life_nlrtimer","PLAIN"]; _uiDisp = uiNamespace getVariable "life_nlrtimer"; _timer = _uiDisp displayCtrl 38301; _time = time + (10 * 60); life_nlrtimer_running = true; while {true} do { if(isNull _uiDisp) then { 7 cutRsc ["life_nlrtimer","PLAIN"]; _uiDisp = uiNamespace getVariable "life_nlrtimer"; _timer = _uiDisp displayCtrl 38301; }; if(round(_time - time) < 1) exitWith {}; if(life_nlrtimer_stop) exitWith {life_nlrtimer_stop = false;}; _timer ctrlSetText format["NLR: %1",[(_time - time),"MM:SS"] call BIS_fnc_secondsToString]; sleep 0.1; }; life_nlrtimer_running = false; 7 cutText["","PLAIN"]; Go into your functions.hpp in main directory Find class Medical_System { Place this as one of the classes below: class newLifeRule {}; Save and exit Functions.hpp Go into core, open up configuration.sqf Add these two under backend variables where all the other checks are life_nlrtimer_running = false; life_nlrtimer_stop = false; Go into core\medical\fn_revived.sqf and add this to the bottom: life_nlrtimer_stop = true; Save the file and close it Go into core\medical\fn_onPlayerKilled.sqf Find [] spawn life_fnc_deathScreen; Place this code right below it: //Credits to Ciaran for original creation of the script if(life_nlrtimer_running) then { life_nlrtimer_stop = true; waitUntil {!life_nlrtimer_running}; }; [] spawn life_fnc_newLifeRule; Save and exit this file Go into your dialog folder, open progress.hpp At the very bottom, place this code: //Credits to Ciaran for original creation of the script class life_nlrtimer { name = "life_nlrtimer"; idd = 38300; fadeIn = 1; duration = 99999999999; fadeout = 1; movingEnable = 0; onLoad = "uiNamespace setVariable['life_nlrtimer',_this select 0]"; objects[] = {}; class controlsBackground { class TimerIcon : life_RscPicture { idc = -1; text = "\a3\ui_f\data\IGUI\RscTitles\MPProgress\timer_ca.paa"; x = 0.00499997 * safezoneW + safezoneX; y = 0.291 * safezoneH + safezoneY; w = 0.04; h = 0.045; }; class TimerText : life_RscText { colorBackground[] = {0,0,0,0}; idc = 38301; text = ""; x = 0.0204688 * safezoneW + safezoneX; y = 0.2778 * safezoneH + safezoneY; w = 0.09125 * safezoneW; h = 0.055 * safezoneH; }; }; }; Save and exit this file, setup is complete. Let me know if there are any issues.
  14. Repentz

    Best Server Hosting

    Yes OVH is simply worth it in arma now adays since it seems like people enjoy ddosing, we've gotten over 3,000 ddos attacks in the past 6 months, almost nothing has effected it.
  15. This section is to help new communities gain a player base through free advertisement, this means we may be very critical when asking you about specifics of your server, do not take it personally and your best bet is to provide a good enough presentation of your server that people will actually be interested. Please note, if you fail to follow the requirements we have listed here, your advertisement may be subject to removal: Your server must have time and effort put into it, simply putting up a basic life server and calling it 'custom' won't work Your advertisement has to be in decent quality, if it's low effort it may be removed We require proof if your server having unique scripts or effort put into it, this includes screenshots, videos, etc If your advertisement is criticized in the reply section, do not take it personally, if the comment is harassing or threatening simply report it Try to list your unique scripts or edits first, if you are going to use these terms make sure YOU created them, and that they aren't public or stolen Saying things such as you have a 'custom map' doesn't mean anything to people, everyone has done map edits
  16. Repentz

    [UNIVERSAL] Anti-Autoclicker

    We had to put ours in our core/init.sqf for anyone else who is having issues.
  17. Repentz

    [UNIVERSAL] Anti-Autoclicker

    Nice
  18. Repentz

    [Script] Brighter Nights

    So an issue I see on a lot of servers is night time is horrible, I found this awhile back and well, it does this: [Note: the level of brightness you add can be configured, so if it's too bright for you, don't worry.] Before: After: Install Instructions: Place this code at the bottom of your initPlayerLocal.sqf [] spawn { _adjustLight = { CHBN_adjustBrightness = CHBN_adjustBrightness max 0 min 1; _brightness = if (CHBN_adjustBrightness > 0) then {200 * abs (1 - (2 ^ CHBN_adjustBrightness))} else {0}; CHBN_light setLightAttenuation [10e10,(30000 / (_brightness max 10e-10)),4.31918e-005,4.31918e-005]; CHBN_light setLightAmbient CHBN_adjustColor; }; waitUntil {time > 0}; if (missionNamespace getVariable ["CHBN_running",false]) exitWith {systemChat "CHBN script is running. Addon disabled."}; CHBN_running = true; CHBN_adjustBrightness = missionNamespace getVariable ["CHBN_adjustBrightness",1]; // edit the level of brightness here, set to 1, can be 0.1 to however high you want it CHBN_adjustColor = missionNamespace getVariable ["CHBN_adjustColor",[0.5,0.7,1]]; if (!isNil "CHBN_light") then {deleteVehicle CHBN_light}; CHBN_light = "#lightpoint" createVehicleLocal [0,0,0]; CHBN_light setLightBrightness 1; CHBN_light setLightDayLight false; call _adjustLight; for "_i" from 0 to 1 step 0 do { _adjustBrightness = CHBN_adjustBrightness; _adjustColor = CHBN_adjustColor; waitUntil {!(_adjustBrightness isEqualTo CHBN_adjustBrightness) || !(_adjustColor isEqualTo CHBN_adjustColor)}; call _adjustLight; }; }; To edit the brightness, change the ["CHBN_adjustBrightness",1]; 0.1 to whatever, personally i prefer 0.7
  19. Repentz

    [Tutorial] Realistic Vehicle Towing

    Realistic Vehicle Towing Credits: Stay Alive Tactical Team Hey there, this script allows you to tow vehicles realistically using ropes, yes, it does check if the vehicle is locked. Video of it in use: 1. In initServer.sqf, place this near the bottom, if you don't have an initServer, create one in your main directory. diag_log "Attempting to initialize Towing Script..."; [] execVM "core\initTowing.sqf"; 2. Create a new file inside core or wherever you're calling it named initTowing.sqf 3. Place the following code inside: Click me, script was too long to post in this forums, just copy it from here. Pastebin Backup (optional) For towing only for a specific side or sides, place the call to initTowing in either initMedic, initCop, etc instead of initServer. 4. Done! Let me know if it works for you!
  20. Moving Federal Reserve By Repentz This tutorial will teach you how to properly move the federal reserve from its original position. Let's begin You must first open your mission in Eden and physically move the cargo box named 'fed_bank', do not change this objects name Make your new banks structure, make sure you have a main building, and an inside building for breaking in twice, both need openable doors, or you may just have one main building but that will require more editing Get the location of your structures In your mission file, open fn_repairDoor, change the below to your new objects location and classnames: case "Land_Dome_Big_F": {_cpRate = 0.008;}; In actionKeyHandler, change this classname to yours if needed: ((nearestObject [_pos,"Land_Dome_Big_F"]) In fn_houseMenu, change this classname to yours if needed: ((nearestObject [_pos,"Land_Dome_Big_F"]) Open fn_boltcutter, change this to your preference line 12: private _vaultHouse = ALTIS_TANOA("Land_Research_house_V1_F","Land_Medevac_house_V1_F"); _altisArray = [16019.5,16952.9,0]; _tanoaArray = [11074.2,11501.5,0.00137329]; and, line 19 (((nearestObject [_pos,"Land_Dome_Big_F"]) and, line 22 if ((typeOf _building) == _vaultHouse && (nearestObject [_pos,"Land_Dome_Big_F"]) and, line 36 if ((nearestObject [_pos,"Land_Dome_Big_F"]) == _building || (nearestObject [_pos,_vaultHouse]) == _building) then { and, line 55 case "Land_Dome_Big_F": {_cpRate = 0.003;}; Open fn_blastingCharge, change this to yours if needed: private _vaultHouse = ALTIS_TANOA("Land_Research_house_V1_F","Land_Medevac_house_V1_F"); _altisArray = [16019.5,16952.9,0]; _tanoaArray = [11074.2,11501.5,0.00137329]; Now, go to your life_server, open init.sqf, find line ~182 and change these: /* Setup the federal reserve building(s) */ private _vaultHouse = ALTIS_TANOA("Land_Research_house_V1_F","Land_Medevac_house_V1_F"); _altisArray = [16019.5,16952.9,0]; _tanoaArray = [11074.2,11501.5,0.00137329]; private _pos = ALTIS_TANOA(_altisArray,_tanoaArray); _dome = nearestObject [_pos,"Land_Dome_Big_F"]; If there's any issues let me know.
  21. Repentz

    Quest System for Maverick Talent Tree

    RELIC QUESTING SYSTEM [Complete] You may attempt to install this, let me know if it works. Disclaimer: I have been given permission to release my work of the questing system added into maverick apps modular talent tree Requirements: Have a valid purchased copy of maverick apps modular talent tree What this does: Adds a questing system to your talent tree, giving experience per quest completion and.. - Stage 1: Find the 4 relics hidden around the map, bring them to an NPC for a reward [unlocks quest 2] - Stage 2: Rob the gold convoy (another maverick apps script) to receive the next relic and bring it to the NPC [unlocks quest 3] - Stage 3: Rob the federal reserve to receive the last relic, allowing you to collect a expensive virtual item from a new zone I've added in. Features: - Cannot trade relics to other players - Anti market trading of relics - Removal of the relics on player death to stop transfer of the virtual items - (optional) Complete rework of the federal reserve system to simply give money + virtual items, experience, etc. ___________________________________________________________________________________________________________________________________________________________________________________ TUTORIAL ___________________________________________________________________________________________________________________________________________________________________________________ Mission.SQM: 1. Place this into 4 separate objects on your map that you place, I used statues: this addAction["Collect Relic",life_fnc_relic1,"",0,false,false,"",'playerSide == civilian && vehicle player == player && player distance _target < 4']; Replace 'life_fnc_relic1' with relic1 -> relic4 for each 2. Place this into an NPC, it will be your relic dealer, your players must trade the relics to him for rewards: this addAction["Trade in your relics for the reward",life_fnc_relicReward,"",0,false,false,"",'playerSide == civilian && vehicle player == player && player distance _target < 4']; this addAction["Trade in your transport relic",life_fnc_relicRewardTransport,"",0,false,false,"",'playerSide == civilian && vehicle player == player && player distance _target < 4']; this addAction["Trade in your federal reserve relic",life_fnc_relicRewardFed,"",0,false,false,"",'playerSide == civilian && vehicle player == player && player distance _target < 4']; this addAction[localize"STR_Shops_Archeologist",life_fnc_virt_menu,"archeologist"]; Functions: 1. Download Quests.rar 2. Place it in your core folder 3. Open functions.h, place this block somewhere in life_client_core class Quests { file = "core\quests\Relics"; class relic1 {}; class relic2 {}; class relic3 {}; class relic4 {}; class relicReward {}; class relicRewardTransport {}; class relicRewardFed {}; }; Virtual Items: 1. Edited by moderators: please get your own icons, original icons were from copyrighted sources 2. place them in your icons folder (make sure the virtual items code listed below calls to right location)' 3. Open Config_Vitems and place these in class VirtualItems: //relics class relic1 { variable = "relic1"; displayName = "STR_Item_relic1"; weight = 3; buyPrice = -1; sellPrice = -1; illegal = false; edible = -1; icon = "images\icons\ico_relic1.paa"; }; class relic2 { variable = "relic2"; displayName = "STR_Item_relic2"; weight = 3; buyPrice = -1; sellPrice = -1; illegal = false; edible = -1; icon = "images\icons\ico_relic2.paa"; }; class relic3 { variable = "relic3"; displayName = "STR_Item_relic3"; weight = 3; buyPrice = -1; sellPrice = -1; illegal = false; edible = -1; icon = "images\icons\ico_relic3.paa"; }; class relic4 { variable = "relic4"; displayName = "STR_Item_relic4"; weight = 3; buyPrice = -1; sellPrice = -1; illegal = false; edible = -1; icon = "images\icons\ico_relic4.paa"; }; //relicTransport class relicTransport { variable = "relicTransport"; displayName = "STR_Item_relicTransport"; weight = 3; buyPrice = -1; sellPrice = -1; illegal = true; edible = -1; icon = "images\icons\ico_relicTransport.paa"; }; //RelicFed class relicFed { variable = "relicFed"; displayName = "STR_Item_relicFed"; weight = 3; buyPrice = -1; sellPrice = -1; illegal = true; edible = -1; icon = "images\icons\ico_relicFed.paa"; }; //relic end 4. Somewhere at the end of your federal reserve robbery reward file, place this so the player gains the relic upon completion [true,"relicFed",1] call life_fnc_handleInv; or make it so it appears in the box, but i recommend the first option 5. In configuration.sqf, place these below life_civGang = grpNull; mav_ttm_var_relicReward = 0; mav_ttm_var_relicReward2 = 0; mav_ttm_var_relicReward3 = 0; 6. Open fn_dropItems, place these in the switch (_item) do array: //nodrop case "relic1": { if (_value > 0) then { missionNamespace setVariable [_itemName,0]; }; }; case "relic2": { if (_value > 0) then { missionNamespace setVariable [_itemName,0]; }; }; case "relic3": { if (_value > 0) then { missionNamespace setVariable [_itemName,0]; }; }; case "relic4": { if (_value > 0) then { missionNamespace setVariable [_itemName,0]; }; }; case "relicTransport": { if (_value > 0) then { missionNamespace setVariable [_itemName,0]; }; }; case "relicFed": { if (_value > 0) then { missionNamespace setVariable [_itemName,0]; }; }; 7. Open fn_giveItem.sqf, place this under: if (isNull _unit) exitWith {ctrlShow[2002,true];}; if (_item == "relic1" || _item == "relic2" || _item == "relic3" || _item == "relic4" || _item == "relicTransport" || _item == "relicFed") exitWith { hint "You cannot trade these items"}; 8. open fn_ vehStoreItem, place this underneath: if (_ctrl == "goldbar" && {!(life_trunk_vehicle isKindOf "LandVehicle")}) //Relic if (_ctrl == "relic1" || _ctrl == "relic2" || _ctrl == "relic3" || _ctrl == "relic4" || _ctrl == "relicTransport" || _ctrl == "planeTreasure" || _ctrl == "excavator") exitWith {hint "you cannot store this item"}; 9. Optional if you have the virtual auction house script, if you do, open fn_vAH_sell.sqf and place this under: (_bad) exitWith {closeDialog 0;}; if (_classname == "relic1" || _classname == "relic2" || _classname == "relic3" || _classname == "relic4" || _classname == "relicTransport" || _classname == "relicFed" || _classname == "excavator" || _classname == "planeTreasure") exitWith {hint "You cannot sell these items"}; 10. For your relic transport, you can change how you obtain it if you don't have the script, but i placed this unto the virtual loot: {"relicTransport", 2}, 11. Open stringtable.xml, place these into it somewhere: <Key ID="STR_Item_relic1"> <Original>Takhi Relic</Original> </Key> <Key ID="STR_Item_relic2"> <Original>Arkhan Relic</Original> </Key> <Key ID="STR_Item_relic3"> <Original>Shakrhi Relic</Original> </Key> <Key ID="STR_Item_relic4"> <Original>Lewni Relic</Original> </Key> <Key ID="STR_Item_relicTransport"> <Original>Prized Relic</Original> </Key> <Key ID="STR_Item_relicFed"> <Original>Federal Reserve Relic</Original> </Key> Maverick addition: 1. Open actions.cpp inside maverick_perkset_1 folder, place these near the bottom, you can edit the values obviously: class relic { expToAdd = 1375; message = "Relic Quest Complete!"; }; class relic2 { expToAdd = 1900; message = "Relic Quest 2 Complete!"; }; class relic3 { expToAdd = 2300; message = "Relic Quest 3 Complete!"; }; 2. Download the relicreward.rar file, place all the files inside \maverick\talent-tree-modular\modules\maverick_perkset_1\functions folder 3. Open the perks.cpp file inside the maverick_perkset_1 folder, add these at the bottom: class functions_relicReward { displayName = "Quest: Collecting Relics"; requiredPerkPoints = 9999; requiredLevel = 1; requiredPerk = ""; subtitle = "Collecting Hidden Relics"; description = "Bring all the hidden relics around the map (4) to the archeologist <br/><br/><t color='#10FF45'>Reward: 1375 xp</t>"; initScript = "maverick\talent-tree-modular\modules\maverick_perkset_1\functions\functions_relicReward.sqf"; limitToSides[] = {}; color[] = {0,0.46,0.76,1}; }; class functions_relicReward2 { displayName = "Quest: Collecting Relics 2"; requiredPerkPoints = 9999; requiredLevel = 1; requiredPerk = "functions_relicReward"; subtitle = "Gold Transport Relic"; description = "Intercept the gold transport and gather the relic inside the main transport vehicle, bring it to the archeologist <br/><br/><t color='#10FF45'>Reward: 1900 xp</t>"; initScript = "maverick\talent-tree-modular\modules\maverick_perkset_1\functions\functions_relicReward2.sqf"; limitToSides[] = {}; color[] = {0,0.46,0.76,1}; }; class functions_relicReward3 { displayName = "Quest: Collecting Relics 3"; requiredPerkPoints = 9999; requiredLevel = 1; requiredPerk = "functions_relicReward2"; subtitle = "Federal Reserve Relic"; description = "Rob the federal reserve, gather the relic from the reward and bring it to the archeologist <br/><br/><t color='#10FF45'>Reward: 2300 xp and the ability to loot oil rig cargo</t>"; initScript = "maverick\talent-tree-modular\modules\maverick_perkset_1\functions\functions_relicReward3.sqf"; limitToSides[] = {}; color[] = {0,0.46,0.76,1}; }; quests.rar relicreward.rar
  22. Repentz

    [4.0-5.0] Spawn with a random weapon

    This script in general could be used for many different things, such as reward prizes etc, looks good.
  23. Repentz

    X[PHONE]

    Very nice, I wish more people put effort into their UI instead of running original.
  24. Repentz

    Professional Looking HUD

    Yeah it is a big upgrade from the original
  25. Repentz

    Quest System for Maverick Talent Tree

    look up maverickapps
×