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/23/2017 in all areas

  1. 16 likes
    Ok, where to start... Basically i’m releasing my AdminPanel that i have been working on for sometime now for all to use. I started this project mainly down to the fact of an old community i was a part of didn’t really fully understand how to use programs like Navicat and such and also the ability to manage the server on the go and a learning experience for myself. The github link is : https://github.com/Jason2605/AdminPanel I have a few screenshots of the AdminPanel on my flickr here (first few screenshots are not part of it): https:[email protected]/ The panel has a range of features which should make your server management a lot easier, a few of these are: RCON - This means the ability to kick/ban/message/stop/restart/unban people all from the panel API - Ability to get data from the panels API and use the data on your website, or in a discord bot etc. Ability to edit players database values - money/bank/cop/medic/admin level All setup from the panel itself - No config editing Further in-depth editing - single click license add/remove/blacklist/donator Ability to edit housing Ability to edit gangs Ability to edit vehicles Ability to search for players Full logging system - Everything is logged (apart from changes to staff accounts) Setting page - Easily change database and RCON connection info Profile page - Easily change staff user password Staff page - Easily change each staff accounts password/username/permissions Individual staff permissions - Easily manage each user to allow them to use each part of the panel separately Ability to add notes to players - Lets your admins see if players have committed a rule breaking offence with a warning system out of 3 (changes the colour of the note) Reimbursement logs - Easily add compensation logs, get your admins to add a log when they have given out comp to keep on top of where comp has been going Steam View - Ability to see users steam accounts from the panel More i can't remember! Any problems just submit an issue and ill do my best to get it sorted out, any features or further information you would like just let me know on the github, or on the discord attached to the github. Hope it comes in useful for people out there!
  2. 15 likes
    Working Scripts Archive easy access to all available scripts _____________________________________________________________________________________________________________________________________________ UI and Informational 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 Seat Belts Patdown Player + Seize Objects Realistic Towing Ear Plugs 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 Systems and Complex Features 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 SQL Based Smartphone 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 Ruby Mine Custom Medic & Cop Skins Adding Licenses 4.4 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
  3. 9 likes
    ═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════ Difficulty: Hard Published By: Snipes Murphy Version: 4.x Credit: DiabolicaTrix ═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════ All files are available here: https://github.com/DiabolicaTrix/Life-Banking-System/releases Navigate to the core folder, and drag the banking folder directly into it (these are single files, no files should be replaced) In the session folder, open the file fn_requestReceived.sqf and copy the contents of the file. Then go to your file of the same name, and copy the code just after initializing the CASH, BANK, etc. variables. Open the file fn_updatePartial.sqf, and copy the contents. Paste the code just after the "box 7: ..." In the shop folder, open fn_atmMenu.sqf, and copy the one line. Then replace the contents of your file with the same name by this single line. At the core root, open the configuration.sqf file, and in your file of the same name, copy the rows right after the life_marker In the init.sqf, copy the contents of the file, and in your file, paste the code between the initialization of the "sides" (initCiv, initCop, etc.) and the initialization of the "restrained" In the dialog folder, drag the banking folder directly. In the function, paste the files directly, and replace existing files. Copy the atm.hpp file directly to the dialog folder. Open the MasterHandler.hpp file and copy the contents. Add it to the very end of the file. Drag the sounds folder directly Drag the textures folder directly Drag the Config_Banking.hpp file directly Copy the single line of the Config_Master.hpp file and add it to the end of the Config_Master.hpp file. Copy the contents of description.ext, and add it to the end of CfgSounds In Functions.hpp, add the contents of the file after Vehicle. In the stringtable.xml, add the content to the end of the file, just before the closing tag of Project (</ Project>) In your life_server, navigate to the Mysql folder, and open the file fn_queryRequest.sqf, add "banking_pin" after each query, just after playtime. An example is provided in the file in question. Then, in the same file, copy the rest of the file and paste it before the switch. Copy the contents of fn_updatePartial.sqf, and add the right after box 7. In your database, add a new field in the player table, the field must be an int, with a length of 4, and be non-null (same features as the cash field).
  4. 8 likes
    ============================================================================================================ Difficulty: Easy Tutorial By: Hyper4u ============================================================================================================ Open description.ext and under CfgSounds add save and then open fn_spawnConfirm go to Under add Then you put your sound in root -> sounds and name it Welcome and remember it has to be an .ogg AND DONT FORGET TO LEAVE A LIKE! THANKS
  5. 7 likes
    Adaptive Debit Cards I've looked around for a debit card script previously, and either couldn't find one, it wasn't updated for the latest framework, or it was incomplete. -- So I decided to give it a go myself. If you haven't seen or used Debit Cards on Altis Life before, they essentially make the purchase of items much easier and faster by taking money straight from a player's bank account, instead of their on-hand cash. From what I have also seen in the past, Debit Cards were forced upon the player, leading to problems such as Rebels not being able to rob people for their money, since it was safe and sound in their bank -- Which can easily ruin an economy. I've tried to help server owners out here by adding a few configuration options, including Taxing, setting a Tax amount, charging a custom amount for a Debit Card along with the disabling of debit cards in certain shops. This way, the player can decide weather or not to buy the card, and if they do, they will be charged extra for purchasing items with a Debit Card. How Debit Cards work: If the player is attempting to buy something from a shop, and they have enough money on-hand, the shop will take their cash. If they don't have that money on their person, but they have it in their bank account, that money is taken instead and they will also be charged extra in Tax (if it is enabled on the server). Cash on hand takes priority before Bank balance when buying items. If a player is attempting to sell an item and they have a Debit Card, the money made from the sale will go to their bank account. If they have no Debit Card it will be added to their on-hand cash. DISCLAIMER: These scripts were made on and tested on the most recent Altis Life Framework(v5.0.0) & 4.4r3. They may not work if you are attempting to use them on anything lower. If you are using Altis Life 4.4r3 please make sure your fn_mresArray.sqf has been updated to this: https://github.com/AsYetUntitled/Framework/commit/db66e545ef02faec2a2e9fd152eb5260b3deab8a ADDONS/OPTIONAL UPDATES Once you have finished this tutorial, feel free to install any of the updates below. They are 100% optional. (This list is a work in progress) Virtual Item: Tutorial Altis_Life.Altis 1. Download the file attached to this thread. 2. In Altis_Life.Altis\functions.hpp create the following class inside Life_Client_Core: class Debit { file = "core\debit"; class buyClothesDebit {}; class vehicleShopBuyDebit {}; class virt_buyDebit {}; class virt_sellDebit {}; class weaponShopBuySellDebit {}; class debitCheck {}; class buyDebit {}; }; 3. Open Config_Master.hpp, found in Altis_Life.Altis\config and add the following inside Life_Settings: /* Debit Card Configuration */ debit_tax = true; //Tax a player when they have used a Debit card to purchase something? - This is mainly a money sink in case everyone on your server owns a debit card, as they'll never have money on their person (so they can't be robbed) if they do. debit_taxAmount = 0.15; // Tax the player pays when purchasing with a debit card. Tax = Price * debit_taxAmount. debit_tax must be true. Eg. - If an item is $45,000 and your tax is set to 0.15, amount paid after tax will be $51,750. (total tax paid $6750.) debit_price = 75000; // Price of purchasing a debit card from the bank. debit_weapons = true; // Allows the use of debit cards when purchasing/selling weapons. debit_clothing = true; // Allows the use of debit cards when purchasing/selling clothing. debit_vItems = true; // Allows the use of Debit Cards when purchasing/selling virtual items. debit_vehicles = true; // Allows the use of Debit Cards when purchasing/renting/selling vehicles. 4. In Altis_Life.Altis\core open your configuration.sqf and add the following to Life Variables: IF YOU PLAN ON INSTALLING THE VIRTUAL ITEM ADDON FEEL FREE TO IGNORE THIS life_has_debit = false; 5. Move the debit folder for your version of Altis Life found in the .rar you (should have) downloaded from step 1 in to Altis_Life.Altis\core 6. Navigate to Altis_Life.Altis\dialog and open the following files: bank.hpp Find the following: class CloseButtonKey: Life_RscButtonMenu { idc = -1; text = "$STR_Global_Close"; onButtonClick = "closeDialog 0;"; x = 0.35; y = 0.812; w = (6.25 / 40); h = (1 / 25); }; class MainBackground: Life_RscText { colorBackground[] = {0, 0, 0, 0.7}; idc = -1; x = 0.35; y = 0.2 + (11 / 250); w = 0.3; h = 0.652 - (22 / 250); }; Change to: class CloseButtonKey: Life_RscButtonMenu { idc = -1; text = "$STR_Global_Close"; onButtonClick = "closeDialog 0;"; x = 0.438125 * safezoneW + safezoneX; y = 0.7024 * safezoneH + safezoneY; w = 0.0644531 * safezoneW; h = 0.022 * safezoneH; }; class MainBackground: Life_RscText { colorBackground[] = {0, 0, 0, 0.7}; idc = -1; x = 0.438125 * safezoneW + safezoneX; y = 0.3592 * safezoneH + safezoneY; w = 0.12375 * safezoneW; h = 0.341 * safezoneH; }; Also, add to class controls: class buyDebit: Life_RscButtonMenu { idc = 57623; onButtonClick = "[] call life_fnc_buyDebit"; colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 0.5}; text = "$STR_Debit_PurchaseDebit"; x = 0.444312 * safezoneW + safezoneX; y = 0.6672 * safezoneH + safezoneY; w = 0.113437 * safezoneW; h = 0.022 * safezoneH; }; clothing.hpp Find: class BuyButtonKey: Life_RscButtonMenu { idc = -1; text = "$STR_Global_Buy"; onButtonClick = "[] call life_fnc_buyClothes;"; x = 0.0822359 * safezoneW + safezoneX; y = 0.489992 * safezoneH + safezoneY; w = (6.25 / 40); h = (1 / 25); }; Change to: class BuyButtonKey: Life_RscButtonMenu { idc = -1; text = "$STR_Global_Buy"; onButtonClick = "[0] call life_fnc_debitCheck;"; x = 0.0822359 * safezoneW + safezoneX; y = 0.489992 * safezoneH + safezoneY; w = (6.25 / 40); h = (1 / 25); }; shop_items.hpp Find: class ButtonAddG: Life_RscButtonMenu { idc = -1; text = "$STR_VS_BuyItem"; colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 0.5}; onButtonClick = "[] spawn life_fnc_virt_buy;"; x = 0.12 + (0.35 / 2) - ((6.25 / 40) / 2); y = 0.70; w = (6.25 / 40); h = (1 / 25); }; class ButtonRemoveG: Life_RscButtonMenu { idc = -1; text = "$STR_VS_SellItem"; colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 0.5}; onButtonClick = "[] call life_fnc_virt_sell"; x = 0.53 + (0.35 / 2) - ((6.25 / 40) / 2); y = 0.70; w = (6.25 / 40); h = (1 / 25); }; Change to: class ButtonAddG: Life_RscButtonMenu { idc = -1; text = "$STR_VS_BuyItem"; colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 0.5}; onButtonClick = "[2] call life_fnc_debitCheck"; x = 0.12 + (0.35 / 2) - ((6.25 / 40) / 2); y = 0.70; w = (6.25 / 40); h = (1 / 25); }; class ButtonRemoveG: Life_RscButtonMenu { idc = -1; text = "$STR_VS_SellItem"; colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 0.5}; onButtonClick = "[4] call life_fnc_debitCheck"; x = 0.53 + (0.35 / 2) - ((6.25 / 40) / 2); y = 0.70; w = (6.25 / 40); h = (1 / 25); }; shops.hpp Find: class ButtonBuySell: Life_RscButtonMenu { idc = 38405; text = "$STR_Global_Buy"; onButtonClick = "[] spawn life_fnc_weaponShopBuySell; true"; x = 0.1; y = 0.8 - (1 / 25); w = (6.25 / 40); h = (1 / 25); }; Change to: class ButtonBuySell: Life_RscButtonMenu { idc = 38405; text = "$STR_Global_Buy"; onButtonClick = "[1] call life_fnc_debitCheck;"; x = 0.1; y = 0.8 - (1 / 25); w = (6.25 / 40); h = (1 / 25); }; vehicleShop.hpp AND vehicleShop3D.hpp Find: class RentCar : Life_RscButtonMenu { idc = -1; text = "$STR_Global_RentVeh"; onButtonClick = "[false] spawn life_fnc_vehicleShopBuy;"; x = 0.1 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH)); y = 0.9 - (1 / 25); w = (6.25 / 40); h = (1 / 25); }; class BuyCar : life_RscButtonMenu { idc = 2309; text = "$STR_Global_Buy"; onButtonClick = "[true] spawn life_fnc_vehicleShopBuy;"; x = 0.26 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH)); y = 0.9 - (1 / 25); w = (6.25 / 40); h = (1 / 25); }; Change to: class RentCar : Life_RscButtonMenu { idc = -1; text = "$STR_Global_RentVeh"; onButtonClick = "[5] call life_fnc_debitCheck;"; x = 0.1 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH)); y = 0.9 - (1 / 25); w = (6.25 / 40); h = (1 / 25); }; class BuyCar : life_RscButtonMenu { idc = 2309; text = "$STR_Global_Buy"; onButtonClick = "[3] call life_fnc_debitCheck;"; x = 0.26 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH)); y = 0.9 - (1 / 25); w = (6.25 / 40); h = (1 / 25); }; 7. Go to Altis_Life.Altis\core\session and make changes to the following files -- IF YOU PLAN ON INSTALLING THE VIRTUAL ITEM ADDON FEEL FREE TO IGNORE THIS fn_requestReceived.sqf - Find "switch (playerSide) do {" and add the following to it's respective class: For Altis Life 5.0.0: For Altis Life 4.4r3: It should look like this (5.0.0): case west: { life_has_debit = _this select 12; CONST(life_coplevel,(_this select 7)); CONST(life_medicLevel,0); life_blacklisted = _this select 9; if (LIFE_SETTINGS(getNumber,"save_playerStats") isEqualTo 1) then { life_hunger = ((_this select 10) select 0); life_thirst = ((_this select 10) select 1); player setDamage ((_this select 10) select 2); }; }; fn_updatePartial.sqf - Add the following case below case 7. case 8: { _packet set[2,life_has_debit]; }; fn_updateRequest.sqf - Change the playerSide switch to: switch (playerSide) do { case civilian: { _packet pushBack life_is_arrested; _packet pushBack _alive; _packet pushBack _position; _packet pushBack life_has_debit; }; case west: { _packet pushBack life_has_debit; }; case independent: { _packet pushBack life_has_debit; }; }; 8. Open your stringtable.xml and create the following package: 9. Open cfgRemoteExec.hpp and add the following Server Only Function: IF YOU PLAN ON INSTALLING THE VIRTUAL ITEM ADDON FEEL FREE TO IGNORE THIS F(TON_fnc_debitBought,SERVER) Life_Server IF YOU PLAN ON INSTALLING THE VIRTUAL ITEM ADDON FEEL FREE TO IGNORE THIS SECTION 1. Open life_server\config.cpp and add the following class to class Systems: class debitBought {}; 2. Move fn_debitBought.sqf from your version of Altis Life you (should have) have downloaded from step 1 in to life_server\functions\systems 3. Go to life_server\Functions\MySQL and make the changes to the following files: fn_queryRequest.sqf For Altis Life 5.0.0: For Altis Life 4.4r3: fn_updatePartial.sqf Find: case 7: { _array = [_this,2,[],[[]]] call BIS_fnc_param; [_uid,_side,_array,0] call TON_fnc_keyManagement; }; Add under: For Altis Life 5.0.0: case 8: { _query = format ["UPDATE players SET debit='1' WHERE pid='%1'",_uid]; }; For Altis Life 4.4r3: case 8: { _query = format ["UPDATE players SET debit='1' WHERE playerid='%1'",_uid]; }; fn_updateRequest.sqf Find: private ["_uid","_side","_cash","_bank","_licenses","_gear","_stats","_name","_alive","_position","_query","_thread"]; _uid = [_this,0,"",[""]] call BIS_fnc_param; _name = [_this,1,"",[""]] call BIS_fnc_param; _side = [_this,2,sideUnknown,[civilian]] call BIS_fnc_param; _cash = [_this,3,0,[0]] call BIS_fnc_param; _bank = [_this,4,5000,[0]] call BIS_fnc_param; _licenses = [_this,5,[],[[]]] call BIS_fnc_param; _gear = [_this,6,[],[[]]] call BIS_fnc_param; _stats = [_this,7,[100,100],[[]]] call BIS_fnc_param; _alive = [_this,9,false,[true]] call BIS_fnc_param; _position = [_this,10,[],[[]]] call BIS_fnc_param; Add to the Private array & below _position = [_this,10,[],[[]]] call BIS_fnc_param; (Make sure you add it, do not overwrite what's currently there) private ["_debitCiv","_debit"]; _debitCiv = [_this,11,false,[true]] call BIS_fnc_param; _debit = [_this,8,false,[true]] call BIS_fnc_param; For Altis Life 5.0.0: For Altis Life 4.4r3: Database Changes IF YOU PLAN ON INSTALLING THE VIRTUAL ITEM ADDON FEEL FREE TO IGNORE THIS Execute the following on your database: ALTER TABLE `players` ADD (`debit` int(1) NOT NULL DEFAULT '0'); Battleye Add the following to your remoteexec.txt in your Battleye working directory: !TON_fnc_debitBought All done! All you need to do now is configure the settings to your preference and you should be good to go! I will be revising the scripts on this thread at some point, but at the moment I just don't have the time to do it. I also plan on implementing addons in the future which work alongside debit cards, so keep a look out! If you run in to a problem, don't hesitate to PM me or post on the thread. Debit Cards.rar
  6. 7 likes
    Hi All I've put together a list of what i believe are the most common questions and answers to peoples problems when scripting Altis Life, This should help people find answers to questions more quickly and people are more then welcome to comment if i have left something out with a link and ill update the list. Ill update as i go and hope this helps someone. The aim is that all scripts ect will be working so please let me know if something is broken, Thanks. [Admin please feel free to sticky this if you think it could be off some help ] ========= Mission Editing ========= My mission won't launch after i map edit? Click Here How do i disable fog? Click Here Can i allow players to spawn at there gang base? Click Here How to change open shop objects? Click Here How do i add a radiation zone? Click Here How do i move the federal reserve? Click Here How do i add a second bank to altis? Click Here ========= Script Help ========= How do i change my taser weapon? Click Here How do i add zip ties? Click Here How do i add a welcome side script? Click Here How do i add a suicide vest? Click Here How do i add a push vehicle script? Click Here How do i add anti VDM [4.5]? Click Here How do i add peaceable objects for police? Click Here How do i add effects for marijuana? Click Here How do i add the ability for people to rob a gas station? Click Here How do i add a dynamic market? Click Here How do i install task force radio on my server? Click Here How do i add a bus transportation system? Click Here How to add a new status bar? Click Here How do i add buy-able load outs? Click Here How do i add meth drug? Click Here How do i add a intro cam? Click Here How do i add a outro cam? Click Here How do i add a cop pat down script? Click Here ========= Config Help ========= How do i allow players to save weapons? Click Here Why are licences being removed after i kill someone? Click Here How do i turn off spyglass? Click Here How do i rename a shop? Click Here How do i add a custom difficulty? [Template Included] Click Here How to find a colour code? Click Here How do i change the carry weight of a bag? Click Here How do i add BEC and server restarts? Click Here How do i add license's? Click Here How do i remove snakes from the server? Click Here How do i add more cop ranks? Click Here How do i add car lock and unlock sounds? Click Here How do i increase the animal population around the hunting zone ? Click Here How do i remove public cops? Click Here How do i change the repair kit timing? Click Here How do i change player start cash? Click Here How do i change player starting equipment? Click Here How do i make tool kits infinite? Click Here Key Handler Refrence Click Here ========= Texture Help ========= Where can i find some new textures? Click Here How do i add new car textures? Click Here How do i add vehicle skins? Click Here How do i add different uniforms for cop levels? Click Here or Click Here Cop and Medic skin tutorial Click Here More car textures Click Here ========= Altis Life Server Files ========= Altis Life 4.0 Download Click Here - Altis Life 4.0 Setup Click Here Altis Life 4.4 Download Click Here - Altis Life 4.4 Setup Click Here ========= Other Useful Help ========= Admin Debug Commands Click Here Arma 3 assets list Click Here Auto server build update and backup Click Here
  7. 6 likes
    How to Stop the Gang Bank Duplication Exploit Author: CptGooch Author Website: www.abeloth.com Short description: I got tired of seeing so many servers and even the framework with this exploit. Downloads: fn_gangDeposit.sqf & fn_gangWithdraw.sqf Installation Steps: Replace your fn_gangWithdraw.sqf and fn_gangDeposit.sqf found in dialog\function\ with the downloads provided Add the following to your core/configuration.sqf life_gang_bank_time = 0; Open your stringtable.xml and search (crtl+f) for STR_ATM_DepositInUseG Update the original text to <Original>Reconnecting to bank server. Please wait 10 seconds to deposit into your gang's bank account.</Original> Now find STR_ATM_WithdrawInUseG and update the original text to <Original>Reconnecting to bank server. Please wait 10 seconds to withdraw from your gang's bank account.</Original> Next, open up \dialog\bank.hpp Change your GangWithdraw button action to onButtonClick = "[] spawn {sleep (random 0.5);[] call life_fnc_gangWithdraw};"; And change your GangDeposit action to onButtonClick = "[] spawn {sleep (random 0.5);[] call life_fnc_gangDeposit};"; All done! No more Gang Bank Duping for those #%!#*^.
  8. 6 likes
    SOURCE: http://www.armaholic.com/page.php?id=20465 Fockers Arma3 Scripting Guide Author: Mikie boy Author Website: http://fockers.moonfruit.com Version: 3.0 Short description: This is an old but useful guide from 2013. Chapter 1, 2 and 3 of Fockers Arma3 Scripting Guide Download Link: Fockers_Arma_Scripting_guide_v30.7z Features: The first chapter covers the basics of: Setting up a file, showscripterrors, and window mode Variables, assignment, initialization, and variable types. Init.sqf, interactions between the game world and the scripts. Alignment of code, bracket usage and setting out code. If/else statement, nested if/else statements. While, and both for-loops types. Commands - player, waituntil, getpos, createvehicle, createunit, hint, format, sleep and a few other bits. And a lot of reference on using BIS forums and the Wiki. The second chapter covers the basics of: Part 1: Basic Arrays Selecting elements Subtracting Addition forEach command Part 2: Basic Functions Local and global call Spawn Part 3: Making a basic Patrol function. Few other commands have been thrown in The third chapter covers the basics of: Part 1: Eventhandlers adding removing use of scope and exitwith command example usage and creation of eject and mine functions Part 2: Get and set Variable handle variables Create a driving licence system using eventhandlers and get/set variables to control access to vehicles Few other commands have been thrown in.
  9. 5 likes
    Everything in one service Available from everywhere ArmA Remote Admin's web interface is available on any device. Remotely access your server from your phone, edit users and administrate on the go. Scheduler - Daily routines for your gameservers Use ARA's build in scheduler to create daily routines for your gameservers. Restart your servers on fixed times, send messages, run applications and more. User Account Validation Filter out unwanted accounts by playtime, owned games and VAC bans to prevent cheaters from joining your server. Reserved Slots Support Create reserved slots for specific players with ease RCON access via web interface View ingame messages, send messages, kick/ban users, load different missions and more. User accounts Allow other users with valid Maverick Applications accounts to access certain features of your gameservers such as restarting, scheduler editing, rcon access and more allowing you to easily configure accounts for moderators and other administrators. System Diagnostics View server diagnostics such as server performance, CPU usage, RAM usage and other diagnostics live. Remote Server Control Start/Stop/Restart your server from everywhere by clicking a button Whitelists Add a whitelist to your server and manage it with ease. System Failure Handling Be notified when your server/gameserver crashes or becomes unavailable and have it automatically restarted to ensure uptimes. WebLogs WebLogs provides an overview over everything that is happening to your server. From RCon messages, to bans, kicks and edits of your scheduler, everything is logged. Offline Solution If the master server is not reachable, offline dumped data will be used to keep automatic server restarts and other functionalities running. Click here to visit the website
  10. 5 likes
    Morphine Currently, there's not many ways of Healing in Altis Life. You have First Aid Kits or Medkits. You could argue that the following script is pointless, sure. But, I wanted medics to have a few more items added to their arsenal, so I made morphine which takes up virtual weight, instead of inventory weight. Morphine heals a player over time to almost full health, and can be used by medics to treat injured people. It will also cause a few side-effects on use, which can last a while. It's up to you if you want civilians to have access to this Item, as it can be considered a bit over-powered, however to me it is better than Medkits which offer instant 100% health. It can also be classed as illegal, if needed. DISCLAIMER: This script has been tested and is working on Altis Life version 5.0.0. Use at your own risk if you are using on anything lower. Tutorial 1. In your functions.hpp add the following to class Actions: class injectAction {}; Then add the following to class Items: class morphine {}; 2. Open fn_useItem.sqf and under the following: case (_item isEqualTo "lockpick"): { [] spawn life_fnc_lockpick; closeDialog 0; }; Add: case (_item isEqualTo "morphine"): { if(([false,_item,1] call life_fnc_handleInv)) then { [] spawn life_fnc_morphine; }; }; 3. In config_vItems.hpp add the following class: class morphine { variable = "morphine"; displayName = "STR_Item_Morphine"; weight = 1; buyPrice = 0; sellPrice = 0; illegal = false; edible = -1; icon = "icons\Morphine.paa"; }; Also, add the item to the medical market class med_market { name = "STR_Shops_Market"; side = "med"; conditions = ""; items[] = { "waterBottle", "rabbit", "apple", "redgull", "tbacon", "fuelFull", "peach", "defibrillator", "morphine" }; }; 4. Open CfgRemoteExec.hpp and add the following to the functions for everyone: F(life_fnc_morphine,ANYONE) 5. Make a new file called fn_injectAction.sqf inside core\actions: /* File: fn_injectAction.sqf Author: Ilusionz Description: Handles the animation and script execution for medics when using Morphine on an injured person. */ private["_target"]; _target = cursorTarget; //Error checks if(isNull _target) exitWith {}; if(!isPlayer _target) exitWith {}; if(life_inv_morphine != 0) then { titleText[localize "STR_NOTF_Morphine","PLAIN"]; [player,"AinvPknlMstpSnonWrflDnon_medic1"] remoteExec ["life_fnc_animSync",0]; sleep 2; titleText[localize "STR_NOTF_MorphineInj","PLAIN"]; [] remoteExec ["life_fnc_morphine",_target]; [false,"morphine",1] call life_fnc_handleinv; player playMoveNow "AmovPercMstpSnonWnonDnon"; }; 6. Create a new file inside core\items called fn_morphine.sqf: /* File: fn_morphine.sqf Author: Ilusionz Description: Upon use of Morphine, this script will add health over time while also giving a bit of a high. */ private["_damage","_health"]; closeDialog 0; hint "You suddenly feel very nauseous, yet your pains are fading."; sleep 3; "radialBlur" ppEffectEnable true; enableCamShake true; for "_i" from 0 to 19 do { "radialBlur" ppEffectAdjust [random 0.06,random 0.06,0.25,0.25]; "radialBlur" ppEffectCommit 1; addcamShake[random 3, 1, random 3]; sleep 1; }; for "_health" from 0 to 29 do { while {damage player > 0.1} do { _damage = damage player; _damage = _damage - 0.05; player setDamage (_damage); [] call life_fnc_hudUpdate; sleep 5; }; }; "radialBlur" ppEffectAdjust [0,0,0,0]; "radialBlur" ppEffectCommit 5; sleep 6; "radialBlur" ppEffectEnable false; resetCamShake; 7. Open fn_setupActions.sqf and add the following to the independent case: //Inject Morphine life_actions = life_actions + [player addAction[localize "STR_pAct_Inject",life_fnc_injectAction,"",0,false,false,"",' !isNull cursorTarget && player distance cursorTarget < 3.5 && isPlayer cursorTarget && damage cursorTarget > 0.1']]; 8. Add the following to your Stringtable.xml: <Key ID="STR_NOTF_MorphineInj"> <Original>You have administered morphine!</Original> </Key> <Key ID="STR_NOTF_Morphine"> <Original>You are administering morphine!</Original> </Key> <Key ID="STR_Item_Morphine"> <Original>Morphine Syrette</Original> </Key> <Key ID="STR_pAct_Inject"> <Original>Inject Morphine</Original> </Key> That's it! Attached to this tutorial is an icon for the Morphine, so make sure you download it! Thanks to RyanTT for help with a few issues regarding this script! If you run in to any issues please post below. Morphine.paa
  11. 5 likes
    For those that wish to change their buttons for surrendering, restraining etc, here is a semi comprehensive list. ESC = 1 F1 = 59 F2 = 60 F3 = 61 F4 = 62 F5 = 63 F6 = 64 F7 = 65 F8 = 66 F9 = 67 F10 = 68 F11 = 87 F12 = 88 PRINT = 183 SCROLL = 70 PAUSE = 197 ^ = 41 1 = 2 2 = 3 3 = 4 4 = 5 5 = 6 6 = 7 7 = 8 8 = 9 9 = 10 0 = 11 ß = 12 ´ = 13 # = 43 < = 86 , = 51 . = 52 - = 53 TAB = 15 ENTER = 28 DELETE = 211 BACKSPACE = 14 INSERT = 210 END = 207 PAGEUP = 201 PAGEDOWN = 209 CAPS = 58 A = 30 B = 48 C = 46 D = 32 E = 18 F = 33 G = 34 H = 35 I = 23 J = 36 K = 37 L = 38 M = 50 N = 49 O = 24 P = 25 Q = 16 U = 22 R = 19 S = 31 T = 20 V = 47 W = 17 X = 45 Y = 44 Z = 21 SHIFTL = 42 SHIFTR = 54 UP = 200 DOWN = 208 LEFT = 203 RIGHT = 205 NUM_0 = 82 NUM_1 = 79 NUM_2 = 80 NUM_3 = 81 NUM_4 = 75 NUM_5 = 76 NUM_6 = 77 NUM_7 = 71 NUM_8 = 72 NUM_9 = 73 NUM_+ = 78 NUM = 69 NUM_/ = 181 NUM_* = 55 NUM_- = 74 NUM_, = 83 NUM_ENTER = 156 STRGL = 29 STRGR = 157 WINL = 220 WINR = 219 ALT = 56 SPACE = 57 ALTGR = 184
  12. 4 likes
    Vehicle Indicators Using Maverick Application's Indicator script is a nice feature. I decide to replicate it. Although its not the best. Its free. I'm not using this in my server anymore so thought i would release it here. Extract folder "indicators" inside the indicators.rar to a folder called "scripts" in your mission file. Open "Init.sqf" in your mission main directory and add "[] execVM "scripts\indicators\indicatorInit.sqf";". Open "Functions.hpp" and add the code below: class ALRPG_INDICATORSYSTEM { file = "source\game\content\indicators"; class leftIndicatorLight {}; class rightIndicatorLight {}; class startIndicatorLeft {}; class startIndicatorRight {}; }; Open "cfgRemoteExec.hpp" and add the code below: F(life_fnc_leftIndicatorLight,ANYONE) F(life_fnc_rightIndicatorLight,ANYONE) Open "description.ext" and add the code below class sounds: class blinkerclick { name = "blinkerclick"; sound[] = {"\source\sfx\vehicle\blinkerclick_sfx.ogg", 1.0, 1}; titles[] = {}; }; class blinkerstart { name = "blinkerstart"; sound[] = {"\source\sfx\vehicle\blinkerstart_sfx.ogg", 1.0, 1}; titles[] = {}; }; You will have to change specific file pathing yourself i left it there as an anti-leech for noobs, its pretty self explanatory if you cannot do it then please shut down your server to save everyone some trouble. If you're willing to learn go BI Wiki, everything is there. sounds.rar
  13. 4 likes
  14. 3 likes
    Market Display This is a simple Dialog script for the Y-Menu which upon being opened, will pull a group of items from an array and displays a nice little description of the item along with the item's sell price (if any), buy price (if any) and weight. This was made specifically for virtual items and will not work with items such as weapons, clothing, or other items from Arma 3. Preview DISCLAIMER: These scripts were made on and tested on the most recent Altis Life Framework(v5.0.0) & 4.4r3. They may not work if you are attempting to use them on anything lower. The scripts also do not support Dynamic Markets of any kind. Tutorial 1. In your functions.hpp add the following to dialog\functions: class marketLBChange {}; class marketUpdate {}; class marketMenu {}; 2. Open dialog\functions and make a file called fn_marketLBChange: #include "..\..\script_macros.hpp" /* File: fn_marketLBChange.sqf Author: Bryan "Tonic" Boardwine Modified by Ilusionz */ private _itemControl = _this select 0; private _itemIndex = _this select 1; //Fetch some information. private _iName = _itemControl lbData _itemIndex; private _dName = M_CONFIG(getText,"VirtualItems",_iName,"displayName"); private _bPrice = M_CONFIG(getNumber,"VirtualItems",_iName,"buyPrice"); private _sPrice = M_CONFIG(getNumber,"VirtualItems",_iName,"sellPrice"); private _iWeight = M_CONFIG(getNumber,"VirtualItems",_iName,"weight"); private _iDescrip = M_CONFIG(getText,"VirtualItems",_iName,"description"); ctrlShow [60704,true]; ctrlShow [60705,true]; ctrlShow [60706,true]; ctrlShow [60707,true]; ctrlShow [60708,true]; ctrlShow [60709,true]; ctrlShow [60710,true]; ctrlShow [60711,true]; ctrlShow [60712,true]; ctrlSetText [60704, localize _dName]; ctrlSetText [60710,format ["%1",_iWeight]]; if (!(_bPrice isEqualTo -1)) then { ctrlSetText [60712,format ["$%1",[_bPrice] call life_fnc_numberText]]; } else { ctrlSetText [60712, "N/A"]; }; if (!(_sPrice isEqualTo -1)) then { ctrlSetText [60711,format ["$%1",[_sPrice] call life_fnc_numberText]]; } else { ctrlSetText [60711, "N/A"]; }; (CONTROL(60700,60709)) ctrlSetStructuredText parseText format["%1",_iDescrip]; 3. In dialog\functions make another file called fn_marketMenu.sqf: createDialog "marketdisplay"; [] call life_fnc_marketUpdate; 4. Again in dialog\functions create another file called fn_marketUpdate.sqf: #include "..\..\script_macros.hpp" /* File: fn_marketUpdate.sqf Author: Ilusionz Description: Update and fill the market menu. */ private ["_item_list","_shopItems","_name","_buyPrice","_sellPrice","_weight","_displayName"]; disableSerialization; //Setup control vars. _item_list = CONTROL(60700,67001); ctrlShow [60704,false]; ctrlShow [60705,false]; ctrlShow [60706,false]; ctrlShow [60707,false]; ctrlShow [60708,false]; ctrlShow [60709,false]; ctrlShow [60710,false]; ctrlShow [60711,false]; ctrlShow [60712,false]; //Purge list lbClear _item_list; if (!isClass(missionConfigFile >> "VirtualShops" >> "ymarket")) exitWith {closeDialog 0; hint localize "STR_NOTF_ConfigDoesNotExist";}; ctrlSetText[67003,localize (M_CONFIG(getText,"VirtualShops","ymarket","name"))]; _shopItems = M_CONFIG(getArray,"VirtualShops","ymarket","items"); { _displayName = M_CONFIG(getText,"VirtualItems",_x,"displayName"); _buyPrice = M_CONFIG(getNumber,"VirtualItems",_x,"buyPrice"); _sellPrice = M_CONFIG(getNumber,"VirtualItems",_x,"sellPrice"); _weight = M_CONFIG(getNumber,"VirtualItems",_x,"weight"); _item_list lbAdd format ["%1",(localize _displayName)]; _item_list lbSetData [(lbSize _item_list)-1,_x]; _icon = M_CONFIG(getText,"VirtualItems",_x,"icon"); if (!(_icon isEqualTo "")) then { _item_list lbSetPicture [(lbSize _item_list)-1,_icon]; }; } forEach _shopItems; 5. Open your dialog folder and create market_menu.hpp: class marketDisplay { idd = 60700; name= "marketDisplay"; movingEnable = 0; enableSimulation = 1; class controlsBackground { class Life_RscTitleBackground: Life_RscText { idc = -1; text = "Altis Item Database"; //--- ToDo: Localize; x = 0.298906 * safezoneW + safezoneX; y = 0.27516 * safezoneH + safezoneY; w = 0.170156 * safezoneW; h = 0.022 * safezoneH; 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])"}; }; class MainBackground: Life_RscText { idc = -1; x = 0.298906 * safezoneW + safezoneX; y = 0.2976 * safezoneH + safezoneY; w = 0.402187 * safezoneW; h = 0.407 * safezoneH; colorBackground[] = {0,0,0,0.7}; }; class mText: Life_RscText { idc = -1; text = "Market Database"; //--- ToDo: Localize; x = 0.300969 * safezoneW + safezoneX; y = 0.302 * safezoneH + safezoneY; w = 0.195937 * safezoneW; h = 0.022 * safezoneH; colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])",0.5}; }; class mText2: Life_RscText { idc = -1; text = "Item Information"; //--- ToDo: Localize; x = 0.502062 * safezoneW + safezoneX; y = 0.302 * safezoneH + safezoneY; w = 0.195937 * safezoneW; h = 0.022 * safezoneH; colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])",0.5}; }; }; class controls { class itemList: Life_RscListBox { idc = 67001; onLBSelChanged = "_this call life_fnc_marketLBChange"; x = 0.304062 * safezoneW + safezoneX; y = 0.3328 * safezoneH + safezoneY; w = 0.190781 * safezoneW; h = 0.363 * safezoneH; }; class Title: Life_RscTitle { idc = 67003; text = "Altis Item Database"; //--- ToDo: Localize; x = 0.298906 * safezoneW + safezoneX; y = 0.2756 * safezoneH + safezoneY; w = 0.170156 * safezoneW; h = 0.022 * safezoneH; colorText[] = {0.95,0.95,0.95,1}; sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1) * GUI_GRID_H; }; class ButtonClose: Life_RscButtonMenu { onButtonClick = "closeDialog 0;"; idc = 60702; text = "Close"; //--- ToDo: Localize; x = 0.636641 * safezoneW + safezoneX; y = 0.7046 * safezoneH + safezoneY; w = 0.0644531 * safezoneW; h = 0.022 * safezoneH; colorText[] = {1,1,1,1}; colorBackground[] = {0,0,0,0.8}; }; class ItemName: Life_RscText { idc = 60704; text = ""; x = 0.497937 * safezoneW + safezoneX; y = 0.335 * safezoneH + safezoneY; w = 0.190781 * safezoneW; h = 0.055 * safezoneH; sizeEx = 2.7 * 0.02; }; class BuyPrice: Life_RscText { idc = 60705; text = "Buy Price:"; //--- ToDo: Localize; x = 0.498969 * safezoneW + safezoneX; y = 0.5308 * safezoneH + safezoneY; w = 0.190781 * safezoneW; h = 0.055 * safezoneH; sizeEx = 2.7 * 0.02; }; class SellPrice: Life_RscText { idc = 60706; text = "Sell Price:"; //--- ToDo: Localize; x = 0.498969 * safezoneW + safezoneX; y = 0.5726 * safezoneH + safezoneY; w = 0.190781 * safezoneW; h = 0.055 * safezoneH; sizeEx = 2.7 * 0.02; }; class Weight: Life_RscText { idc = 60707; text = "Weight:"; //--- ToDo: Localize; x = 0.498969 * safezoneW + safezoneX; y = 0.6166 * safezoneH + safezoneY; w = 0.190781 * safezoneW; h = 0.055 * safezoneH; sizeEx = 2.7 * 0.02; }; class Description: Life_RscStructuredText { idc = 60708; text = "Description:"; //--- ToDo: Localize; x = 0.497937 * safezoneW + safezoneX; y = 0.379 * safezoneH + safezoneY; w = 0.06159 * safezoneW; h = 0.044 * safezoneH; }; class DescriptionText: Life_RscStructuredText { idc = 60709; text = ""; x = 0.497937 * safezoneW + safezoneX; y = 0.4164 * safezoneH + safezoneY; w = 0.195937 * safezoneW; h = 0.11 * safezoneH; }; class WeightNum: Life_RscText { idc = 60710; text = ""; x = 0.587635 * safezoneW + safezoneX; y = 0.6166 * safezoneH + safezoneY; w = 0.190781 * safezoneW; h = 0.055 * safezoneH; colorText[] = {"(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])"}; sizeEx = 2.7 * 0.02; }; class SellNum: Life_RscText { idc = 60711; text = ""; x = 0.587657 * safezoneW + safezoneX; y = 0.5726 * safezoneH + safezoneY; w = 0.190781 * safezoneW; h = 0.055 * safezoneH; colorText[] = {"(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])"}; sizeEx = 2.7 * 0.02; }; class BuyNum: Life_RscText { idc = 60712; text = ""; x = 0.587654 * safezoneW + safezoneX; y = 0.5308 * safezoneH + safezoneY; w = 0.190781 * safezoneW; h = 0.055 * safezoneH; colorText[] = {"(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])"}; sizeEx = 2.7 * 0.02; }; }; }; 6. In your dialog folder, open player_inv.hpp and add the following below ButtonSyncData: class marketButton: Life_RscButtonMenu { idc = 60714; onButtonClick = "[] call life_fnc_marketMenu"; text = "$STR_PM_yMarket"; //--- ToDo: Localize; x = 0.598484 * safezoneW + safezoneX; y = 0.66808 * safezoneH + safezoneY; w = 0.0644531 * safezoneW; h = 0.022 * safezoneH; colorText[] = {1,1,1,1}; colorBackground[] = {0,0,0,0.8}; }; 7. Open dialog\MasterHandler.hpp and add the following: #include "market_menu.hpp" 8. Open config_vItems.hpp and add the following class below class cop: If you are using Altis Life 5.0.0: //THIS IS NOT A SHOP, IT IS JUST THE LIST OF ITEMS THE MARKET PULLS - IT IS IN ALPHABETICAL ORDER class ymarket { name = "STR_Shops_yMarket"; conditions = ""; items[] = {"apple", "blastingcharge", "boltcutter", "cannabis", "catshark", "catshark_raw", "cement", "cocaine_processed", "cocaine_unprocessed", "coffee", "copper_refined", "copper_unrefined", "defibrillator", "defusekit", "diamond_cut", "diamond_uncut", "donuts", "fuelEmpty", "fuelFull", "glass", "goat", "goat_raw", "goldbar", "hen", "hen_raw", "heroin_processed", "heroin_unprocessed", "iron_refined", "iron_unrefined", "lockpick", "mackerel", "mackerel_raw", "marijuana", "mullet", "mullet_raw", "mushrooms", "oil_processed", "oil_unprocessed", "ornate", "ornate_raw", "peach", "pickaxe", "rabbit", "rabbit_raw", "redgull", "rock", "rooster", "rooster_raw", "salema", "salema_raw", "sand", "salt_refined", "salt_unrefined", "sheep", "sheep_raw", "spikeStrip", "storagebig", "storagesmall", "toolkit", "tbacon", "tuna", "tuna_raw", "turtle_soup", "turtle_raw", "waterBottle"}; }; If you are using Altis Life 4.x: class ymarket { name = "STR_Shops_yMarket"; side = ""; icense = ""; level[] = { "", "", -1, "" }; items[] = {"apple", "blastingcharge", "boltcutter", "cannabis", "catshark", "catshark_raw", "cement", "cocaine_processed", "cocaine_unprocessed", "coffee", "copper_refined", "copper_unrefined", "defibrillator", "defusekit", "diamond_cut", "diamond_uncut", "donuts", "fuelEmpty", "fuelFull", "glass", "goat", "goat_raw", "goldbar", "hen", "hen_raw", "heroin_processed", "heroin_unprocessed", "iron_refined", "iron_unrefined", "lockpick", "mackerel", "mackerel_raw", "marijuana", "mullet", "mullet_raw", "mushrooms", "oil_processed", "oil_unprocessed", "ornate", "ornate_raw", "peach", "pickaxe", "rabbit", "rabbit_raw", "redgull", "rock", "rooster", "rooster_raw", "salema", "salema_raw", "sand", "salt_refined", "salt_unrefined", "sheep", "sheep_raw", "spikeStrip", "storagebig", "storagesmall", "toolkit", "tbacon", "tuna", "tuna_raw", "turtle_soup", "turtle_raw", "waterBottle"}; }; 9. These scripts introduce a new setting needed on every virtual item you would like on your market display. Which is a small description of the item. If you want to, you can remove it in fn_marketLBChange - but I highly recommend keeping it as filler for the menu (plus a little bonus). Here are a few examples of a few I've used this (don't use these as their weights and prices may be different to yours): class marijuana { variable = "marijuana"; displayName = "STR_Item_Marijuana"; weight = 4; buyPrice = 7000; sellPrice = 5500; illegal = true; edible = -1; icon = "icons\ico_marijuana.paa"; description = "Classic OG kush. Snoop would be proud. Sold at any drug dealer."; }; class redgull { variable = "redgull"; displayName = "STR_Item_RedGull"; weight = 1; buyPrice = 1500; sellPrice = 200; illegal = false; edible = 100; icon = "icons\ico_redgull.paa"; description = "Enery drink that certainly doesn't give you wings. Very high in sugar."; }; class salt_unrefined { variable = "saltUnrefined"; displayName = "STR_Item_Salt"; weight = 5; buyPrice = -1; sellPrice = -1; illegal = false; edible = -1; icon = "icons\ico_saltUnprocessed.paa"; description = "Un-refined Salt. Processed at the Salt Processor. Also gathered from the Tears of the Arma Community."; }; 10. Finally, open your Stringtable.xml and add the following: <Key ID="STR_PM_yMarket"> <Original>Market</Original> </Key> <Key ID="STR_Shops_yMarket"> <Original>Altis Market</Original> </Key> And that's it! All done. SIDE NOTE: Make sure any new items you add to the virtual item config are also added to the market array, otherwise they won't show up!
  15. 3 likes
    ********************************************************************************************* Hey Guys, today i want to share my trunk with all of u and how to install it ********************************************************************************************* to start things of here are some information about it: The trunk has 2 new buttons one to take all (as much as possible) one to store all ( as much as possible) it has ha new layout, and yea, it is not the best but yea go with it, design is not my strongest It will look like this: ********************************************************************************************* Tested in versions: 5.0.0 4.4.1 ********************************************************************************************* first we need to Edit the menu so go to dialog/trunk.hpp and replace everythin with my code that done we go to our functions.hpp / functions.h in the root directory nad add unter class vehicle the following: class vehTakeAllItem {}; class vehStoreAllItem {}; so it should look like this next of we go in the directory core/vehicle and create 2 new sqf files the first one: fn_vehStoreAllItem.sqf: and fn_vehTakeAllItem.sqf: so with this done it should work, if i forgot something please let me know below
  16. 3 likes
    Author: Black Lagoon Original Video: Youtube (but this video not working on 5.0 it is old video) Hi, 1. Download this files, Download files from mega 2. Extract all files to your mission file. 3. Go into your "Functions.hpp" then add this codes after class Master_Directory class Market { file = "core\market"; class openMarketView {}; class refreshMarketView {}; class marketShortView {}; class marketBuy {}; class marketSell {}; class marketGetBuyPrice {}; class marketGetSellPrice {}; class marketconfiguration {}; class marketReset {}; class marketChange {}; class marketGetRow {}; class marketGetPriceRow {}; class marketSetPriceRow {}; }; Like this, class Master_Directory { file = "core"; class initCiv {}; class initCop {}; class initMedic {}; class setupActions {}; class setupEVH {}; class survival {}; class welcomeNotification {}; }; class Market { file = "core\market"; class openMarketView {}; class refreshMarketView {}; class marketShortView {}; class marketBuy {}; class marketSell {}; class marketGetBuyPrice {}; class marketGetSellPrice {}; class marketconfiguration {}; class marketReset {}; class marketChange {}; class marketGetRow {}; class marketGetPriceRow {}; class marketSetPriceRow {}; }; 4. And add this code to into your class Functions. class randomRound {}; 5. Then go into your "dialogs\MasterHandler.hpp" and add this code to end of the file. #include "common_EditorWrapper.hpp" #include "market.hpp" 6. Go into your "dialogs\player_inv.hpp" and add this code after the class ButtonSyncData. class ButtonMarket : Life_RscButtonMenu { idc = 3025; text = "Market"; onButtonClick = "[] spawn life_fnc_openMarketView;"; x = 0.26 + (6.25 / 19.8) + (1 / 250 / (safezoneW / safezoneH)); y = 0.805; w = (6.25 / 40); h = (1 / 25); }; Like this, class ButtonSyncData : life_RscButtonMenu { idc = -1; //shortcuts[] = {0x00050000 + 2}; text = "$STR_PM_SyncData"; onButtonClick = "[] call SOCK_fnc_syncData;"; x = 0.1; y = 0.805; w = (6.25 / 40); h = (1 / 25); }; class ButtonMarket : Life_RscButtonMenu { idc = 3025; text = "Market"; onButtonClick = "[] spawn life_fnc_openMarketView;"; x = 0.26 + (6.25 / 19.8) + (1 / 250 / (safezoneW / safezoneH)); y = 0.805; w = (6.25 / 40); h = (1 / 25); }; 7. Go into your "init.sqf" at the main directory and add this code after "player enableFatigue false;" if(isDedicated && isNil("life_market_prices")) then { [] call life_fnc_marketconfiguration; diag_log "Market prices generated!"; "life_market_prices" addPublicVariableEventHandler { diag_log format["Market prices updated! %1", _this select 1]; }; //Start server fsm [] execFSM "core\fsm\server.fsm"; diag_log "Server FSM executed"; }; Finally, you can edit item prices from fn_marketConfiguration.sqf and you can edit "News: item increased-decreased." broadcast from fn_marketChange.sqf". Sorry for my english
  17. 3 likes
    MySQL Auto-Backup Summary: This tutorial will show you step by step how to setup automated backups of your MySQL DB every 6 hours on a Windows Server. I will assume your are using MySQL 5.7x64 and Workbench 6.3, but you can adapt this guide to MariaDB and Heidi with the same code. Tutorial: Login to your dedicated server. Download my SQL Backup Zip MySQLBackups.zip Extract the zip file to C:\ Open MySQL Workbench, and login as root. Click on users and privileges: Create a new user called backupadmin: Click on administrative roles, and give our newly created backupadmin user the BackupAdmin role: Now open the MySQLBackups folder you extracted to C:\ Edit mysqlbackup.bat in your preferred editing program. Line 43: Change the password to the password you gave backupadmin. Save and Close. Press windows key and R to bring up the run prompt and type Taskschd.msc. Click create task: End a title and for the task: Go to the trigger tab, and select new. Select a start time of your choosing,and set the repeat to 6 hours:. Go to the actions tab and brows to C:\MySQLBackups\mysqlbackup.bat: All Done! Now your DB will backup every 6 hours, and keep those backups for 7 days.
  18. 3 likes
    ArmA Remote Admin is now free! Click here to find out more >
  19. 3 likes
    I highly recommend Maverick! Not just for their outstanding ArmA and Rust Services, but their support is second to none. They really care about their clients.
  20. 2 likes
    Autor: Scarso327 Warning!: The message will come but j dont know how to deactivate the standard arma 3 death messages 1. Open your stringtable.xml and add: <Package name="NHS"> <Key ID="STR_NHS_Died"> <Original>%1 has died from there injuries.</Original> </Key> <Key ID="STR_NHS_Killed"> <Original>%1 has been heavily wounded by %2!</Original> </Key> <Key ID="STR_NHS_Suicide"> <Original>%1 has been heavily wounded!</Original> </Key> <Key ID="STR_NHS_PlayerRevived"> <Original>%1 has been revived!</Original> </Key> </Package> 2. In fn_onPlayerKilled.sqf search and replace: //Make the killer wanted if(!isNull _killer && {_killer != _unit} && {side _killer != west} && {alive _killer}) then { if(vehicle _killer isKindOf "LandVehicle") then { [getPlayerUID _killer,_killer GVAR ["realname",name _killer],"187V"] remoteExecCall ["life_fnc_wantedAdd",RSERV]; //Get rid of this if you don't want automatic vehicle license removal. if(!local _killer) then { [2] remoteExecCall ["life_fnc_removeLicenses",_killer]; }; } else { [getPlayerUID _killer,_killer GVAR ["realname",name _killer],"187"] remoteExecCall ["life_fnc_wantedAdd",RSERV]; if(!local _killer) then { [3] remoteExecCall ["life_fnc_removeLicenses",_killer]; }; }; }; to //Make the killer wanted if(!isNull _killer && {_killer != _unit} && {side _killer != west} && {alive _killer}) then { if(vehicle _killer isKindOf "LandVehicle") then { if(life_HC_isActive) then { [getPlayerUID _killer,_killer GVAR ["realname",name _killer],"187V"] remoteExecCall ["HC_fnc_wantedAdd",HC_Life]; } else { [getPlayerUID _killer,_killer GVAR ["realname",name _killer],"187V"] remoteExecCall ["life_fnc_wantedAdd",RSERV]; }; //Get rid of this if you don't want automatic vehicle license removal. if(!local _killer) then { [2] remoteExecCall ["life_fnc_removeLicenses",_killer]; }; } else { if(life_HC_isActive) then { [getPlayerUID _killer,_killer GVAR ["realname",name _killer],"187"] remoteExecCall ["HC_fnc_wantedAdd",HC_Life]; } else { [getPlayerUID _killer,_killer GVAR ["realname",name _killer],"187"] remoteExecCall ["life_fnc_wantedAdd",RSERV]; }; if(!local _killer) then { [3] remoteExecCall ["life_fnc_removeLicenses",_killer]; }; }; [0,"STR_NHS_Killed",true,[profileName,_killer GVAR ["realname",name _killer]]] remoteExecCall ["life_fnc_broadcast",RCLIENT]; } else { if(side _killer == west && playerSide != west) then { [0,"STR_NHS_Killed",true,[profileName,_killer GVAR ["realname",name _killer]]] remoteExecCall ["life_fnc_broadcast",RCLIENT]; } else { [0,"STR_NHS_Suicide",true,[profileName]] remoteExecCall ["life_fnc_broadcast",RCLIENT]; }; }; 3. Now go in your fn_respawned.sqf and search [] call SOCK_fnc_updateRequest; and add above: [0,"STR_NHS_Died",true,[profileName]] remoteExecCall ["life_fnc_broadcast",RCLIENT]; Image:
  21. 2 likes
    Locked for not posting logs or any other helpful material. PM me when you're ready to follow the posting for help rules
  22. 2 likes
    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!
  23. 2 likes
    Heres How To Add Smoke Trails To Cessna Difficulty : Easy thanks to @Emma in FN_setupactions.sqf in class civillian add new line and add life_smokeTrail = false; life_smokes = []; life_actions = []; life_actions pushBack (player addAction["Smoke Trail", { life_smokeTrail = true; { private _colour = ["SmokeShellRed", "SmokeShellBlue"] select _forEachIndex; for "_i" from 0 to 5 do { private _veh = objectParent player; private _smoke = _colour createVehicle [random(50),random(50),random(50)]; _smoke attachTo [_veh, _x]; life_smokes pushBack _smoke; }; } forEach [[-5,0.855469,-0.6],[5,0.855469,-0.6]]; },"",0,false,false,"",'!life_smokeTrail && {!isNull objectParent player} && {objectParent player isKindOf "Plane"}']); life_actions pushBack (player addAction["Stop Smoke Trail", { life_smokeTrail = false; { deleteVehicle _x; } forEach life_smokes; },"",0,false,false,"",'life_smokeTrail']); https://gyazo.com/fb79d08065db6baf29cf873eec63a781 Screenshot
  24. 2 likes
    Fixed. Please re-download the .rar file, and move the new fn_weaponShopBuySellDebit.sqf and fn_virt_buyDebit.sqf over to your server and over-write the old files. Apologies for any inconvenience. If anyone else is also having the same issue, please do the same (this is for 4.4r3 only). Also, if anyone is having issues with players respawning with no gear, or licenses, please check your fn_mresArray.sqf is updated with the following fix: (4.4r3 only) https://github.com/AsYetUntitled/Framework/commit/db66e545ef02faec2a2e9fd152eb5260b3deab8a Thanks again @Jason_000!
  25. 2 likes
    items[] = { { "arifle_MXM_Black_F", "", 2750, -1 }, { "arifle_MX_Black_F", "", 2500, -1 }, You need to remove the final , in the array since you don't have any more elements after it. Like so: items[] = { { "arifle_MXM_Black_F", "", 2750, -1 }, { "arifle_MX_Black_F", "", 2500, -1 } You really need to look though your config. There's a lot of missing commas and there are commas at the end of arrays that shouldn't be there.
  26. 2 likes
    Just bear with me while I vent for a sec. I understand this forum is for people to come and use others "creations" to further their own interests (server wise) as well as to get help with issues. But what really annoys me, and I mean REALLY annoys me; here's it straight up, the fact that a large percentage of people commenting on this tutorial who have had issues have not even attempted to fix the issues themselfs. And to be frank if you don't attemp to fix these issues yourself how are you expected to be able to run your own server let alone community? I will admit, I myself have not had invested enough time into learning a 'C' language to be able to completely understand the Arma code variant. So listen or don't listen to me, your choice. Here's my two cents for all it's worth. You are wasting your money on sever hosting and more importantly wasting your time if you are going to solely rely on getting scripts from community forums. Don't take that the wrong way this is a great space to get ideas, collaborate and seek advice from other people. But as far as "DIY" goes most of you are hopeless. Here's a real world explanation; I wouldn't employ most of you in a workplace for one simple reason. You're incompetent, useless (excuse my language here) wankers for the most part. Work it out yourselves, it's not that complicated, put the effort in now and reap the rewards later. I made sure that my code worked before I posted it, I did it on 4.4r4 and I may have missed something in the tutorial I don't know. But I went and followed my OWN tutorial and installed it on a fresh mission file before posting to make sure it worked. If there is something wrong with it WORK IT OUT! I'm happy to help people get started on things but I'm not going to hold your hand all the way. If anyone took offence to this, I'm not sorry. And quite frankly if you did take offence to this. Maybe your the issue, think about that. For the people that put effort in, give yourself a pat on the back, you deserve it. For all the people who post tutorials on forums for others to use good on you. For the people who moderate and admin these sites, great job. I sincerely mean that, I really do. P.S I'm not going to respond to any further comments about this. I feel sorry for anyone who is too incapable and ignorant to accept my words as they are; make sure you go forth in life and make nothing of yourselfs. Cheers, David
  27. 2 likes
    Sorry you're having trouble with it. IIRC 4.4Rx uses different queries. When I get back from work on Thursday, I'll add compatibility. Keep in mind I didn't design this with 4.4Rx.
  28. 2 likes
  29. 2 likes
    ________________ Works in all versions ________________ Hi Everyone, Today I bring a script, which indicates who is speaking in the direct communication It will look like this: ___________________________________________________________ 1- navigate to the core folder then the functions folder, Create a file called fn_speaking.sqf and paste 2 - open Functions.hpp in root directory and paste under class functions 3) and open that your playertags.sqf 4)And open that your core\int.sqf
  30. 2 likes
    Make a new mission in the editor. Open the mission folder (It's probably somewhere in your documents) Make a new file inside of the folder with the mission.sqm called initPlayerLocal.sqf - Inside that add this: waitUntil{ !isNull player && alive player }; createDialog "playerSettings"; Once done, make a new file called description.ext - Inside that add the following: #include "dialog\common.hpp" #include "dialog\player_inv.hpp" Make a new folder where the mission.sqm is called dialog and copy altis life's player_inv.hpp over to it. Remove #include "player_sys.sqf" from player_inv.hpp and change idd = playersys_DIALOG to idd = 3000; Go to your altis life folder, inside dialog copy the common.hpp and paste it over to the new mission's dialog folder. Open the mission up in arma, put a playable NPC down and preview the mission. The dialog should pop up immediately (this is just for testing purposes so you can see what you're going to be changing) Press escape, open the GUI editor under the debug console. Once opened press CTRL+I and type the following: missionconfigfile >> "playerSettings" And then you'll be able to edit it. Make sure, before you change anything, to change the GUI to safezone so it's not messed up on other player's screens. Press CTRL+S to save the changes you've made, change the indent to 1 and controls as classes. Once saved it'll be on your clipboard. Someone tell me if I've made a mistake here, it's been a while
  31. 2 likes
    Server Information Website: www.HardlyGaming.net Teamspeak: Hardlygaming.voip.pub Direct Connection Info: 208.167.228.227 UP Time 24/7, 7 days a week Current Framework: 4.4R4 with extDB2 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Server Description Salutations, basement dwellers. Tired of lackluster, lifeless Altis Life communities that are part and parcel clones of previously established mission files? Have you been experiencing any mild gastrointestinal discomfort related to IBS? If you answered "I'm not comfortable responding you obnoxious prick," then we have a 10% success rate solution for you. Hardly Gaming Altis Life RPG. Features include but are not limited to: Overhauled map; heavily tweaked mission file; custom npcs; 1 million dollar start with properly paced money making; active administrators; custom meshes/textures, and so much more that I might just spontaneously combust. (Also Typed in Server Features ) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Server Features Active player base Supporting Staff Unique Server layout Farm-able fields Cinematic outro when leaving the server Custom cell phone Sky Diving Custom skins for civilians, medics, cops. This includes clothing / vehicles etc Introduction music when joining the server Custom Federal Reserve Custom Car features Balanced Money System Admin Events Veteran Owned and Opertated New Updates Weekly 1 million dollar start Custom Bridge to Pyrgos with town in middle So much more... --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Server Map Image Join us today on HardlyGaming! We would love to have you. If you join our Teamspeak just poke a SA(Server Admin) to get your tags! Cant wait to meet you all. Thanks for looking ~Brix
  32. 2 likes
    After the tutorial, Simple_UI per - CptGooch. I added this in my code " fn_hudUpdate.sqf " after : //Update Money _money ctrlSetPosition [safeZoneX+safeZoneW-0.090,safeZoneY+safeZoneH-0.374]; if(_cash >= 1000000) then { _cash = round(_cash / 1000000); _money ctrlSetText format["%1", format["%1 M",[_cash] call life_fnc_numberText]]; } else { if(_cash >= 100000) then { _cash = round(_cash / 1000); _money ctrlSetText format["%1", format["%1 K",[_cash] call life_fnc_numberText]]; } else { _cash = round _cash; _money ctrlSetText format["%1", format["%1",[_cash] call life_fnc_numberText]]; }; }; _money ctrlCommit 0; that: //Update fatigue _ctrlSta ctrlSetPosition [safeZoneX+safeZoneW-0.090,safeZoneY+safeZoneH-0.322]; _ctrlSta ctrlSetText format ["%1%2", round((1 - (getFatigue player)) * 100), "%"]; _ctrlSta ctrlCommit 0; It works, but only works when, Some others are updated, such as. food , water , health, weight, money. Not updated automatically when I'm running with a player. Any idea where I can call the update for my Fatigue. It looks like the tutorial topic has been deleted. Sorry about my English.
  33. 2 likes
    Hi guys, my english is not so good sorry. 1.Go into your database and run this code on your sql console. ALTER TABLE `players` ADD COLUMN `example_level` ENUM('0','1','2','3') NOT NULL DEFAULT '0' COLLATE 'latin1_swedish_ci'; 2.Go into life_server\Functions\MySQL\fn_queryRequest.sqf Now, I will add new level to civilian, you can add new level to other sides. Find this code at "fn_queryRequest.sqf" case civilian: {format ["SELECT pid, name, cash, bankacc, adminlevel, donorlevel, civ_licenses, arrested, civ_gear, civ_stats, civ_alive, civ_position, playtime FROM players WHERE pid='%1'",_uid];}; Then, add "example_level" to end. Like this, case civilian: {format ["SELECT pid, name, cash, bankacc, adminlevel, donorlevel, civ_licenses, arrested, civ_gear, civ_stats, civ_alive, civ_position, playtime, example_level FROM players WHERE pid='%1'",_uid];}; Our level is 13rd in query command, this is important for us. Go into your "core\session\fn_requestReceived.sqf" and find "case civilian:" case civilian: { life_is_arrested = _this select 7; CONST(life_coplevel, 0); CONST(life_medicLevel, 0); life_houses = _this select (_count - 3); if (LIFE_SETTINGS(getNumber,"save_playerStats") isEqualTo 1) then { life_hunger = ((_this select 9) select 0); life_thirst = ((_this select 9) select 1); player setDamage ((_this select 9) select 2); }; And add "example_level" under medic_level.I wrote "_this select 13" because "example_level" in 13rd place in my "fn_queryRequest.sqf" If you add your new level to other sides, you must write that to the side of you wrote. Like this, case civilian: { life_is_arrested = _this select 7; CONST(life_coplevel, 0); CONST(life_medicLevel, 0); CONST(life_examplelevel,(_this select 13)); life_houses = _this select (_count - 3); if (LIFE_SETTINGS(getNumber,"save_playerStats") isEqualTo 1) then { life_hunger = ((_this select 9) select 0); life_thirst = ((_this select 9) select 1); player setDamage ((_this select 9) select 2); }; Finally you can use your level at other scripts. Example, if ((FETCH_CONST(life_examplelevel) isEqualTo 0) && (FETCH_CONST(life_adminlevel) isEqualTo 0)) then { ["NotWhitelisted",false,true] call BIS_fnc_endMission; sleep 35; };
  34. 2 likes
    infiSTAR_config.sqf /* The following 3 options can be disabled by putting the value to -1. For example "_TGV = -1;" */ /* Terrain Grid Value */ _TGV = -1; /* 50, 25, 12.5 */ /* if set to 50 grass will be very low for better client FPS.. default is 25 ~35 is good performance and grass :) */ /* ViewDistance Value */ _VDV = -1; /* ObjectViewDistance */ _VOV = -1;
  35. 2 likes
    Hello @XtG Community, please open up a ticket on our website and put something in the title that we can find you quickly. We are sorry that you were not able to effectively reach out to us as we are indeed very busy. But the change you need should be just a couple of lines, and we will try to get you an answer on that ticket tomorrow then Yours sincerly, Maverick Applications
  36. 2 likes
    +1 I've known this dude for a few months I met him on a server called Abeloth. He's a chill dude and is a good web designer and developer. I would trust this man.
  37. 2 likes
    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Difficulty: Easy Publish by: Heimdall Source AltisLifeRPG.com and publish by AltisDev.com : Link Translate, adapte and edit by: MoNtEcRiStO© Fixed by: Jason_000 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Go to Functions.hpp and add: class backup {}; class callBackup {}; should look something like this: class Functions { file = "core\cop"; ... ... class backup {}; class callBackup {}; }; Create a file in core/functions and name it "fn_callBackup.sqf" and add: /* Script file made by: Maximum Idea based off: Liemans script - did way to much to achieve the same thing. Description: Lets a officer request backup VIA scroll menu, made for ***AltisLifeRPG.com*** */ if (!life_callBackup) exitWith {hint "You can not do that now!"}; _backupTime = 60; [player,_backupTime] remoteExec ["life_fnc_backup",west]; life_callBackup = false; sleep _backupTime + 320; life_callBackup = true; hint format ["%1, You can call Backup again!",name player]; Create a folder inside core/cop and name it "fn_backup.sqf" and add: /* File: fn_backup.sqf */ params [ ["_player", objnull, [objnull]], ["_deleteTime", 60, [0]] ]; if (isNull _player) exitWith {}; if !(playerSide isEqualTo west) exitWith {}; _backupmsg = createMarkerLocal [("_backupmsg" + (_player getVariable["realname",name _player])), getPos _player]; _backupmsg setMarkerTypeLocal "mil_warning"; _backupmsg setMarkerColorLocal "colorRed"; _backupmsg setMarkerTextLocal format ["%1 is requesting backup here!", _player getVariable["realname",name _player]]; [1,format["%1 is in need of backup!",name _player]] remoteExecCall ["life_fnc_broadcast",west]; uiSleep _deleteTime; deleteMarkerLocal _backupmsg; Go to configuration.sqf and add the life Life Variables : life_callBackup = true; For finish go to core/fn_setupActions.sqf an add this: case west: { //Call backup life_actions pushBack (player addAction["<t color='#ADFF2F'>Request Backup</t>",life_fnc_callBackup,"",0,FALSE,FALSE,""]); }; Now open CfgRemoteExec.hpp and add F(life_fnc_backup,CLIENT) Done!
  38. 2 likes
    I have collected some Script Releases from the old Forum wich I can't find here. I only printed the Website in Reading View and basicView with FreePFD. I want to share this, maybe someone is bored and want to get this old stuff working. I am interested on the wantetbased speedradar and I will have a look on it in the next few days. [HOW TO] Molotov Cocktails [HOW TO] Watermark your server [How To]Alcohol with multiple item processing,Drunk Effects, Passouts, and Police Breathalyzing [HowTo] Have Sex with a hooker [HOWTO] midgetgrimm's alcohol system in Altis Life 4.0.0 [HOWTO] Persistent Vehicle Inventory [Script] ShipWreck's by Ryan [Script] Temporary Marriage [Tutorial] Fitness center which energizes [Tutorial] Stable Paintball Script [TUTORIAL] Wasted Death Screen Radar Script Robbing the ATM's In Altis Life Simple Organ Theft with Black Market Sales Speed radar cam (yes another, but different) Speedcontrolscript Give Credit to the author! ALRPG_ressource.rar
  39. 2 likes
    In gangWithdraw.sqf replace: private ["_value"]; _value = parseNumber(ctrlText 2702); _gFund = GANG_FUNDS; group player setVariable ["gbank_in_use_by",player,true]; with: private["_value","_ownerID"]; _value = parseNumber(ctrlText 2702); _gFund = GANG_FUNDS; _ownerID = group player getVariable ["gang_owner",""]; if !(_ownerID isEqualTo getPlayerUID player) exitWith {}; group player setVariable["gbank_in_use_by",player,true];
  40. 2 likes
    Hello! Thought i should share my old police skins i made for my own, and another Altis Life server. You are free to use these however you'd like, but feel free to credit me if you would like. ("sk0gshuggare") NOTE. i produced these skins under the name Savage, they are not stolen. INFO: The pack includes an own uniform for every rank, from cadet to chief with their rank-emblem on the shoulder, and a bonus traffic officer skin. Also includes Carryall and Kitbag skin. If you would like to change the current icons for the ranks, i included every swedish rank-icon in .paa format in there. The vehicles is 3 hunter skins, 2 suv skins, 1 offroad skin, 1 hatchback skin, 1 hellcat skin and 1 hummingbird. They are highly compressed, the total file size of all the skins is 1.83MB, which is nothing, but still has high quality. I'll also be releasing my Swedish medic pack in the near future, so look out for that! >>>DOWNLOAD<<< Here's some photos, enjoy! PICS: CHIEF SKIN (similar from Corporal-Chief but with rank specific emblem) CADET SKIN BONUS TRAFFIC POLICE // sk0gshuggare
  41. 2 likes
    I've uploaded a high quality siren to replace the current version that is included in the Altis Life files, you can edit the siren to your needs there's only a few versions of the different siren modes but you can always chop edit etc. I've also added the mp3 of all the sirens together, just remember to change the timing to match your edit (for the newbies) in your respective files otherwise it will over lap and sound really crappy. Anyway enjoy. Link: https://www.dropbox.com/s/33ub0h7ssal3oth/Rumbler.zip?dl=0
  42. 1 like
    Thanks for the reply guys! Ive fixed it, it was somthing to do with the car spawn, i had the coding wrong with that @HappyDuckie
  43. 1 like
  44. 1 like
    other than a license I recommend just using your admin level to allow access to the shop.
  45. 1 like
    I found the line duplicated, thanks a lot @AltisLifeCoder !!!
  46. 1 like
    Hello, Here is a tutorial to increase the respawn time! This is a simple modification! It's sole objective is to increase the respawn time when a player request a medic! To give the medic the proper time to reach the dead player! I've recovered this from the archive - http://www.altisliferpg.com/topic/2768-tutorial-increasing-respawn-timer-after-requesting-medic/ It was developed for version 3.X of the framework, but I've modified it to work with 4.4R3, 5.0 and so on! Difficulty: Easy Author: Lukedbx (Not a 100% sure if he is the author, but he was the one that original posted this modification for version 3.x) Modified by: xShARkx Step 1. Open core\configuration.sqf Add the following in the backend variables section. life_request_timer = false; Step 2. Open core\medical\fn_onPlayerKilled Find: _RespawnBtn ctrlEnable false; waitUntil {_Timer ctrlSetText format [localize "STR_Medic_Respawn",[(_maxTime - time),"MM:SS"] call BIS_fnc_secondsToString]; round(_maxTime - time) <= 0 || isNull _this}; _RespawnBtn ctrlEnable true; _Timer ctrlSetText localize "STR_Medic_Respawn_2"; Change to: _RespawnBtn ctrlEnable false; waitUntil {_Timer ctrlSetText format [localize "STR_Medic_Respawn",[(_maxTime - time),"MM:SS"] call BIS_fnc_secondsToString]; round(_maxTime - time) <= 0 || isNull _this || life_request_timer}; if (life_request_timer) then { _maxTime = time + (LIFE_SETTINGS(getNumber,"respawn_timer") * 5); //multiples the respawn time set in the master config file by 5, to create the new respawn time! waitUntil {_Timer ctrlSetText format [localize "STR_Medic_Respawn",[(_maxTime - time),"MM:SS"] call BIS_fnc_secondsToString]; round(_maxTime - time) <= 0 || isNull _this}; }; life_request_timer = false; //resets increased respawn timer _RespawnBtn ctrlEnable true; _Timer ctrlSetText localize "STR_Medic_Respawn_2"; The whole section needs to look like this: //Create a thread for something? _unit spawn { private["_maxTime","_RespawnBtn","_Timer"]; disableSerialization; _RespawnBtn = ((findDisplay 7300) displayCtrl 7302); _Timer = ((findDisplay 7300) displayCtrl 7301); if (LIFE_SETTINGS(getNumber,"respawn_timer") < 5) then { _maxTime = time + 5; } else { _maxTime = time + LIFE_SETTINGS(getNumber,"respawn_timer"); }; _RespawnBtn ctrlEnable false; waitUntil {_Timer ctrlSetText format [localize "STR_Medic_Respawn",[(_maxTime - time),"MM:SS"] call BIS_fnc_secondsToString]; round(_maxTime - time) <= 0 || isNull _this || life_request_timer}; if (life_request_timer) then { _maxTime = time + (LIFE_SETTINGS(getNumber,"respawn_timer") * 5); //multiples the respawn time set in the master config file by 5, to create the new respawn time! waitUntil {_Timer ctrlSetText format [localize "STR_Medic_Respawn",[(_maxTime - time),"MM:SS"] call BIS_fnc_secondsToString]; round(_maxTime - time) <= 0 || isNull _this}; }; life_request_timer = false; //resets increased respawn timer _RespawnBtn ctrlEnable true; _Timer ctrlSetText localize "STR_Medic_Respawn_2"; }; Step 3. Open fn_requestMedic Add : life_request_timer = true; Above this part: //Create a thread to monitor duration since last request (prevent spammage). [] spawn { ((findDisplay 7300) displayCtrl 7303) ctrlEnable false; sleep (2 * 60); ((findDisplay 7300) displayCtrl 7303) ctrlEnable true; }; The whole file, should look like this: #include "..\..\script_macros.hpp" /* File: fn_requestMedic.sqf Author: Bryan "Tonic" Boardwine Description: N/A */ private "_medicsOnline"; _medicsOnline = {_x != player && {side _x isEqualTo independent} && {alive _x}} count playableUnits > 0; //Check if medics (indep) are in the room. life_corpse setVariable ["Revive",false,true]; //Set the corpse to a revivable state. if (_medicsOnline) then { //There is medics let's send them the request. [life_corpse,profileName] remoteExecCall ["life_fnc_medicRequest",independent]; } else { //No medics were online, send it to the police. [life_corpse,profileName] remoteExecCall ["life_fnc_medicRequest",west]; }; life_request_timer = true; //Create a thread to monitor duration since last request (prevent spammage). [] spawn { ((findDisplay 7300) displayCtrl 7303) ctrlEnable false; sleep (2 * 60); ((findDisplay 7300) displayCtrl 7303) ctrlEnable true; }; There you go! Now when a player uses the request medic button, the respawn time will increase! You can edit how much it will increase by editing the number 5 in this part: _maxTime = time + (LIFE_SETTINGS(getNumber,"respawn_timer") * 5); //multiples the respawn time set in the master config file by 5, to create the new respawn time! Please be smart! Don't quote the first post with the tutorial, it's stupid and makes the comment page a hell to scroll down! Just quote the first post if you are going to added something, improve something or fix something and just quote the part that matters and not the whole post! if you need to reach me, thank me, complain to me and etc, just use @xShARkx! If you quote the first post for no good damn reason it will be reported and deleted!
  47. 1 like
    Haha thanks! Don't be mean to yourself
  48. 1 like
    OMG @Ilusionz THANK YOU SO MUCH I COULD KISS YOU HAHA (NOT GAY) HEHE
  49. 1 like
    This can be messy. I personally feel the cleanest way to do things is to start with the new framework, and slowly add your custom scripts back in. If you are working on 4.3+, the other way is to follow the commit history on github. https://github.com/AsYetUntitled/Framework/pull/241/files Please keep in mind that the latest release is still 4.4, and 5.0 is still in dev.
  50. 1 like
    same for me we got 15 explosion for no reason in 5 days, véhicules can blow up for a littl arrow on the ground