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 09/12/2016 in all areas

  1. 15 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. 12 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
    Warner's Barrier - Version 3 Updated October 4th 2016 This may work on version 3.x, I can only confirm it works with 4.x. If you get it working with 3.x reply to this post and I will try to get it moved to universal. Thanks :] Features Place 6 unique objects used to control traffic or pedestrians. Seen in real time where your barrier will be placed. Cones and barriers with working caution lights. Remove barriers with ease. Ability to white list for police and medic ranks. Simple Install Install for Scroll Wheel Download the script from the link below. Drag the script into the "Altis_Life.Altis\core\actions" folder. Ensure the script is named fn_barrier and the file extension is .sqf Open Functions.hpp in the Altis_Life.Altis folder. Find the class Actions section and add class barrier {}; to the end of the list. IMAGE Open initPlayerLocal.sqf in the Altis_Life.Altis folder. At the very bottom add BarrierOpen = 0;. Open fn_setupActions.sqf in the Altis_Life.Altis\core folder. Add a new case for west and add the following code. player addaction ["Barriers",life_fnc_barrier,[""],0,false,true,"","vehicle player == player and BarrierOpen == 0"]; IMAGE (Optional) If you want medics to have access to the menu add a case for Independent too. (OPTIONAL) Space Bar to Drop Barrier Open fn_keyHandler.sqf in the "Altis_Life.Altis\core\functions" folder. Inside case 57 add the following code. detach placeable; placeable setVectorUP (surfaceNormal [(getPosATL placeable) select 0,(getPosATL placeable) select 1]); IMAGE Save your fn_keyHandler.sqf before you add the above code, ArmA has been known to have stuff break for no reason. Video Demonstration CLICK ME Download Download - Version 3
  4. 8 likes
    LINKS AND TOOLS EVERY DEVELOPER SHOULD HAVE Created by Repentz I will edit/improve on this when I think of more, this is just a basic list of things. Obfuscation Personal favorite, extremely well made and uses new techniques to stop people from stealing or using your mission: https://armaservices.maverick-apps.de/Products/Obfuscator/ Another tool would be Mikeros tools, but I've never used them nor can I vouch for their security at this time, but it has been around for much longer. https://forums.bistudio.com/topic/113852-mikeros-dos-tools/ Auto Restarts, Rcon, Administration Once again, personal preference is a tool made by maverick applications which gives you many options: https://armaservices.maverick-apps.de/Products/ArmARemoteAdmin/ SQF Editing Tools Atom.io (install SQF package by acemod if you plan on using it) New favorite, visual studio code, ofcourse install SQF packages: https://code.visualstudio.com/ SQL Editing Tools HeidiSQL - free and works for beginner level SQL management NaviCat - Free 14 day trial, although I prefer this program, it is not free forever. Battleye Filters Battleye Filter Creator - Enter your errors one at a time and it outputs filters Classnames Links Basic Clothing, Vests, Helmets Classnames Weapon Classnames /w Ammunition Weapon Ammunition and bullet Classnames Vehicle weapons and specific ammunition Classnames Attachments for weapons, equiptment like NVG's Etc Building Classnames ------- Side Specific Classnames ------- West Classnames East Classnames Independent Classnames Civilian Classnames Misc Keyboard UI Numbers Steam ID to GUID Huge list of png icons that you can resize for Teamspeak icons (16x16)
  5. 7 likes
    Welcome Today I will be providing the community with a project I have been working on for a while The Altis Life Bounty Hunters Please not that I have been coding this at times when I have been extremely tired so if any problems occur just message me or tag me in your comment I tried to make this as easy as possible for those who do not want to learn how the code is written. I would like to thank TONIC for providing me with the wantedSystem framework to go off. Fresqo who provided the fn_markers.sqf script BoGuu and Alaskavet for being there when I needed some assistance. Difficulty: EASY PEASY Version: Altis Life 4.4 R3 Let's Get Started!!! 1: Download the zip attached, All files I will be using are inside that zip. 2: missionname >> stringtable.xml find somewhere to put a new package, add: <Package name="Bounty"> <Key ID="STR_Bounty_5000"> <Original>$5,000</Original> </Key> <Key ID="STR_Bounty_10000"> <Original>$10,000</Original> </Key> <Key ID="STR_Bounty_15000"> <Original>$15,000</Original> </Key> <Key ID="STR_Bounty_20000"> <Original>$20,000</Original> </Key> <Key ID="STR_Bounty_25000"> <Original>$25,000</Original> </Key> <Key ID="STR_Bounty_30000"> <Original>$30,000</Original> </Key> <Key ID="STR_Bounty_35000"> <Original>$35,000</Original> </Key> <Key ID="STR_Bounty_40000"> <Original>$40,000</Original> </Key> <Key ID="STR_Bounty_45000"> <Original>$45,000</Original> </Key> <Key ID="STR_Bounty_50000"> <Original>$50,000</Original> </Key> <Key ID="STR_Bounty_55000"> <Original>$55,000</Original> </Key> <Key ID="STR_Bounty_60000"> <Original>$60,000</Original> </Key> <Key ID="STR_Bounty_65000"> <Original>$65,000</Original> </Key> <Key ID="STR_Bounty_70000"> <Original>$70,000</Original> </Key> <Key ID="STR_Bounty_75000"> <Original>$75,000</Original> </Key> <Key ID="STR_Bounty_80000"> <Original>$80,000</Original> </Key> <Key ID="STR_Bounty_85000"> <Original>$85,000</Original> </Key> <Key ID="STR_Bounty_90000"> <Original>$90,000</Original> </Key> <Key ID="STR_Bounty_95000"> <Original>$95,000</Original> </Key> <Key ID="STR_Bounty_100000"> <Original>$100,000</Original> </Key> <Key ID="STR_Bounty_200000"> <Original>$200,000</Original> </Key> <Key ID="STR_Bounty_300000"> <Original>$300,000</Original> </Key> <Key ID="STR_Bounty_400000"> <Original>$400,000</Original> </Key> <Key ID="STR_Bounty_500000"> <Original>$500,000</Original> </Key> <Key ID="STR_Bounty_1000000"> <Original>$1,000,000</Original> </Key> <Key ID="STR_Bounty_AddP"> <Original>%1 has been added to the bounty list, he was added for $%2 this has risen he current bounty price to $%3. The last known location has been marked on the map for all bounty hunting units. Normal declaration rules still apply, RDM will be delt with.</Original> </Key> <Key ID="STR_MAR_bountyW"> <Original>Bounty Hunters Armory</Original> </Key> <Key ID="STR_MAR_bounty"> <Original>Bounty Hunters HQ</Original> </Key> <Key ID="STR_GNOTF_BountyMSG"> <Original>You are about to buy a 'Bounty Hunting License' buying this license will give you access to the Bounty Hunters Database, kill someone on the list to get thier bounty! Normal declaration still applys, you can NOT RDM! Do you accept these terms and conditions?</Original> </Key> <Key ID="STR_bounty_bountyList_notBH"> <Original>You are not a civilian, only civilians can add people to the bounty list! I suggest you leave!</Original> </Key> <Key ID="STR_bounty_bountyList_noPlayerSelected"> <Original>No player on the list was selected! Please select a player.</Original> </Key> <Key ID="STR_bounty_bountyList_noAmountSelected"> <Original>No amount was selected, use the drop down menu to select a bounty amount.</Original> </Key> <Key ID="STR_Bounty_BountyKill"> <Original>You have collected a bounty of $%1 for killing someone on the bounty list, nice job!</Original> </Key> <Key ID="STR_Bounty_Title"> <Original>Bounty List</Original> </Key> <Key ID="STR_BountyA_Title"> <Original>Bounty Hunting Database</Original> </Key> <Key ID="STR_Bounty_License"> <Original>Bounty License</Original> </Key> <Key ID="STR_License_bountyH"> <Original>Bounty Hunter</Original> </Key> </Package> 3. missionname >> functions.hpp Add: class BountyHunters { file = "core\BountyHunters"; class bountyAddMenu {}; class bountyAddP {}; class bountyBuy {}; class bountyGrab {}; class bountyHunterReceive {}; class bountyInfo {}; class bountyKill {}; class bountyList {}; class bountyMenu {}; class markers {}; }; 4. missionname >> CfgRemoteExec.hpp Add: In the Right Areas F(life_fnc_bountyHunterReceive,CLIENT)//Bountyhunter F(life_fnc_bountyList,CLIENT)//Bountyhunter F(life_fnc_markers,CLIENT)//Bountyhunter F(life_fnc_bountyReceive,CLIENT)//Bountyhunter F(life_fnc_bountyAdd,SERVER)//Bountyhunter F(life_fnc_amountBounty,SERVER)//Bountyhunter F(life_fnc_bountyFetch,SERVER)//Bountyhunter F(life_fnc_bountyPerson,SERVER)//Bountyhunter F(life_fnc_bountyProfUpdate,SERVER)//Bountyhunter F(life_fnc_bountyRemove,SERVER)//Bountyhunter F(life_fnc_bountyAlter,SERVER)//Bountyhunter F(life_fnc_bountyCrimes,SERVER)//Bountyhunter F(life_fnc_bountyAmountGather,SERVER)//Bountyhunter 5. missionname >> config >> config_license Add: class bountyH { variable = "bountyH"; displayName = "STR_License_bountyH"; price = 100000; illegal = false; side = "civ"; }; 6. missionname >> config >> Master_config Add under the crimes array: /* Bounty System Settings * /* bountys[] = {string, amount, code} */ bountys[] = { {"STR_Bounty_5000", "5000", "1B"}, {"STR_Bounty_10000", "10000", "2B"}, {"STR_Bounty_15000", "15000", "3B"}, {"STR_Bounty_20000", "20000", "4B"}, {"STR_Bounty_25000", "25000", "5B"}, {"STR_Bounty_30000", "30000", "6B"}, {"STR_Bounty_35000", "35000", "7B"}, {"STR_Bounty_40000", "40000", "8B"}, {"STR_Bounty_45000", "45000", "9B"}, {"STR_Bounty_50000", "50000", "10B"}, {"STR_Bounty_55000", "55000", "11B"}, {"STR_Bounty_60000", "60000", "12B"}, {"STR_Bounty_65000", "65000", "13B"}, {"STR_Bounty_70000", "70000", "14B"}, {"STR_Bounty_75000", "75000", "15B"}, {"STR_Bounty_80000", "80000", "16B"}, {"STR_Bounty_85000", "85000", "17B"}, {"STR_Bounty_90000", "90000", "18B"}, {"STR_Bounty_95000", "95000", "19B"}, {"STR_Bounty_100000", "100000", "20B"}, {"STR_Bounty_200000", "200000", "21B"}, {"STR_Bounty_300000", "300000", "22B"}, {"STR_Bounty_400000", "400000", "23B"}, {"STR_Bounty_500000", "500000", "24B"}, {"STR_Bounty_1000000", "1000000", "25B"} }; 7. missionname >> core >> medical >> fn_onPlayerKilled.sqf Underneath the last player set variable add: private _BountyPeeps = []; { if (license_civ_bountyH) then {_BountyPeeps pushBack _x}; } forEach playableUnits; Then under: //Killed by cop stuff... if (side _killer isEqualTo west && playerSide != west) then { life_copRecieve = _killer; //Did I rob the federal reserve? if (!life_use_atm && {CASH > 0}) then { [format [localize "STR_Cop_RobberDead",[CASH] call life_fnc_numberText]] remoteExecCall ["life_fnc_broadcast",RCLIENT]; CASH = 0; }; }; Add: if (side _killer isEqualTo civilian && {_killer != _unit}) then { if (_killer in _BountyPeeps) then { life_bountyHunter = _killer; }; }; if (!isNull _killer) then { life_removeBounty = true; }; 8. Grab the files in the zip file and place them in the respected folders. 9. missionname >> dialog >> masterhandler Add: #include "bounty_list.hpp" #include "bounty_addList.hpp" 10. missionname >> core >> configuration Add under Backend variables life_removeBounty = false; 11. missionname >> core >> pmenu >> fn_p_openMenu Add under case west: ctrlShow[9696,false]; ctrlShow[9898,false] Add under case Civ: ctrlShow[9696,true]; ctrlShow[9898,true] Add under case med: ctrlShow[9696,false]; ctrlShow[9898,false] NOTE: The numbers are what you guys id you bountyList button as, I have two because I have the button and an icon, you may only have 1!!! 12. missionname >> core >> medical >> fn_respawned.sqf Under: //Johnny law got me but didn't let the EMS revive me, reward them half the bounty. if (!isNil "life_copRecieve") then { if (life_HC_isActive) then { [getPlayerUID player,player,life_copRecieve,true] remoteExecCall ["HC_fnc_wantedBounty",HC_Life]; } else { [getPlayerUID player,player,life_copRecieve,true] remoteExecCall ["life_fnc_wantedBounty",RSERV]; }; life_copRecieve = nil; }; Add: if (!isNil "life_bountyHunter") then { if (life_HC_isActive) then { [getPlayerUID player,player,life_bountyHunter] remoteExecCall ["HC_fnc_amountBounty",HC_Life]; } else { [getPlayerUID player,player,life_bountyHunter] remoteExecCall ["life_fnc_amountBounty",RSERV]; }; life_bountyHunter = nil; }; //Remove Bounty... if (life_removeBounty) then { if (life_HC_isActive) then { [getPlayerUID player] remoteExecCall ["HC_fnc_bountyRemove",HC_Life]; } else { [getPlayerUID player] remoteExecCall ["life_fnc_bountyRemove",RSERV]; }; }; 13. missionname >> core >> civilian >> fn_removeLicense Add this case: //Adds the bountyH license to civs case 100: { missionNamespace setVariable [LICENSE_VARNAME("bountyH","civ"),true]; }; 14. missionname >> core >> init.sqf Under if (life_HC_isActive) then { [getPlayerUID player,player getVariable ["realname",name player]] remoteExec ["HC_fnc_wantedProfUpdate",HC_Life]; } else { [getPlayerUID player,player getVariable ["realname",name player]] remoteExec ["life_fnc_wantedProfUpdate",RSERV]; }; Add: if (life_HC_isActive) then { [getPlayerUID player,player getVariable ["realname",name player]] remoteExec ["HC_fnc_bountyProfUpdate",HC_Life]; } else { [getPlayerUID player,player getVariable ["realname",name player]] remoteExec ["life_fnc_bountyProfUpdate",RSERV]; }; life_server edits: 1. life_server >> config.cpp Add under life tag above class Jail_Sys: //Bounty Hunter class Bounty_Sys { file = "\life_server\Functions\BountySystem"; class amountBounty {}; class bountyRemove {}; class bountyAdd {}; class bountyFetch {}; class bountyProfUpdate {}; class bountyCrimes {}; class bountyAmountGather {}; }; 2. Place the bountyFiles life_server side into the folders. 3. life_server >> init.sqf Under: life_wanted_list = []; Add: life_bounty_list = []; mission.sqf edits: 1. Create the NPC: Inside the NPC you created add this: this enableSimulation false; this allowDamage false; this addAction ["Bounty Hunting ($100,000)", life_fnc_bountyBuy,"",0,false,false,"",' !license_civ_bountyH && playerSide isEqualTo civilian']; this addAction["<t color = '#D660D6'>Bounty Add</t>",life_fnc_bountyAddMenu,"",0,false,false,"",'']; this addAction["<t color = '#E6F402'>Bounty List</t>",life_fnc_bountyMenu,"",0,false,false,"",'']; NOTE: This is the code taken from my mission.sqm file, if you paste that into the editor it WILL NOT work, you have to remove the extra " in the line, there should only be two " " not four. DATABASE EDIT: 1. Make a new query and run this code: USE `altislife`; CREATE TABLE `bounty` ( `bountyID` varchar(64) NOT NULL, `bountyName` varchar(32) NOT NULL, `bounty` int(100) NOT NULL, `insert_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`bountyID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; Then Place folders in the right spot and your good to go. Now we SHOULD be finished... Any problems tag me in your comment and I'll reply to them ASAP I don't think i forgot anything. BountyHunter.rar
  6. 7 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).
  7. 7 likes
    The problem with public content Hundreds of hours get put into missionfiles daily to make servers stand out from the masses and attract players. Certain people though invest this time into stealing your work and possibly even making money with it. ObfuSQF is the solution to this problem. Obfuscate your missionfile ObfuSQF allows you to easily obfuscate your missionfile and prevent others from stealing your work. Obfuscated missionfiles cannot be opened with popular tools, their content stays completely hidden. Protection against copies ObfuSQF comes with your own private key which allows your missionfile to flawlessly work on your gameserver. If someone attempts to copy your missionfile and use it on their server, ObfuSQF will crash it. Your missionfile will only work on authorized servers. Easy to use Drag and drop your missionfile into your webbrowser, wait for your file to be processed and download your obfuscated missionfile and private key. Working with ObfuSQF is easy, no additional download required. Desktop client Do you automate the process of restarting/packing your missionfile on your server? Use ObfuSQF's desktop client to automate the obfuscation process, visting the website is not required. Click here to visit the website
  8. 6 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
  9. 6 likes
    Welcome to the official advertisement thread for XtG Community's Australia Life Server! Information Links: Website Forums TeamSpeak Server Development Log Post Special Thanks Too: RyanTT Ciaran demigod Aussie The Altis Life Community Wombat Servers XtG Development Team Tonic [Altis Life Framework Conversion] Server & Overall Community Reputation: Official XtG Community Forums Quotes: XtG Community AU - Australia Life RPG (Required Mods) Steam Workshop Collection These mods you download from the workshop should appear automatically into your Arma 3 launcher, you just need to enable all those mods from that collections list. Map Version: 5.0.8 WARNING: This version of the Australia map does require Apex DLC in order to function 100% correctly. However. You can still play on the server regardless if you do not have the DLC. You may experience missing buildings and textures in certain areas. 1: Download all the workshop items from the collection (Link is above.) 2: Launch Arma 3's Launcher and click on the "Mods" tab, Then enable all mods that were stated in the collection. 3: After that simply click play and look for our server! XtG Community AU | Australia Life RPG | Workshop Mod Connection Info: 103.231.91.5:2322 Query Info: 103.231.91.5:2323 Current Server Patch: V0.A5 Alright so we have finally launched our Australia Life server after months of collecting some loyal players, we manage to gather the funds for a nice server not dedicated but its a slot server, works fine so far with 20 players 35 - 70FPS. This is a modded server of the Altis Life 4.4 Framework, we take no credit for any of the code that is in our mission file besides the scripts that contain our header (Author Signature) We run the Australia Map along with several mods including: Australia Map (5.0.8) There are whitelisted rebels, you cannot become a rebel without being whitelisted, you have access to nearly everything in Arma. As many people would think this is bad for Altis life or would defeat the purpose of it, We see this a new way of playing Altis Life, Rebels have up to 10 levels of rank and they earn these ranks by showing the rebel leader they are capable of pure RP and leadership skills. After leveling up you gain access to new vehicles and weapons overtime making you more powerful in the team. The rebels are based off a resistance, they are people that know a lot of what the government is actually doing and how corrupt they are. We have also implemented the Military system using the same faction as cops but only have access to the spawn point and weapons if they are the level required. (Level 7) Civilians have access to illegal stuff still but they are more "Civilized" you can still commit crimes like robbing the Commonwealth Bank or Gas stations but it will be sectioned as "organized crime by gangs". Federal Reserve and other high government associations will only be able to be tampered by the Resistance (Rebels) - These crimes are sectioned as "Terrorism". Police have the same roll as normal, they protect what they can and stop crime where its coming from, although because now that we have whitelisted rebels its a bit difficult for cops so rebels + cops will try to avoid action as much as possible allowing the military to take the necessary action to resolve the rebel resistance. At the moment we are still trying to organize how much change we want to do to the RP method on our server but its coming along nicely. I know i haven't stated much in this post about it. Just a brief description but it gives you the clear idea i hope. Feature Highlights of the server: Sydney, Brisbane, Perth, Adelaide & Melbourne Cities Completed Persistent Player Saving Persistent Vehicle Saving 250k Money Start Capture Gang Hideouts 5 Hidden Christmas Tress (Find them to get a 100k Reward!) Map Size of 1600km(2) (Altis is 260km2) Earplugs Suicide Vest Speed Bomb Dynamic Market System Toilet System Phone Battery System Australian Police Skins For Vehicles Great looking vehicle civilian skins. Good FPS - 40 In-City / 70+ Out-City Dedicated Staff Team & Development Team Storyline Chapter 1 In the year 2019 a country called Australia there lived a population of people of 22 million residents and counting. All mixed of Cops, Medics, Rebels, Civilians, Military Personal and more. It was a everyday life up until the crises of the economy crash. Everything like cars, food, jobs and resources including drugs and guns dropped dramatically in price putting the state at warfare, the people never really knew the truth to why the economy crashed. Rumor had it that some high head was controlling the markets and then died. But out there somewhere was a group of rebels. The resistance of the civilians. The only people left in Australia that wasn't killed and know what the real truth of what happened to the economy. The economy was destroyed by the Government in a attempt to take over Australia and turn the Civilians into slaves. The rebels hide and gather funds in the illegal lands just south of the restricted border where no government agent dares to cross. In the realistic world Civilians still think rebels are bad and do things for a bad cause and the Government doing things for a good cause. The rebels yet have something to prove to the population of Australia. To be continued... Media - Images & Videos
  10. 6 likes
    Hello, Alpha Omega Gaming Network would like to introduce our Altis Life server. We are a serious role playing community that is focusing on recruiting mature people who just want to have a fun game experience. We are seeking to fill Staff, Police and Paramedic positions. Our server’s textures/skins are completely custom. We strive to fill Altis with "never before seen" structure designs. Our mission file has some size to it but as you will come to find out it’s well worth the download time. Please follow our server information below. We welcome all Orphaned Gangs who are looking to make a good long lasting server their home. Team Speak: alphaomegagaming.typefrag.com Website (Forums): www.alphaomegagamingnetwork.com Server IP: 23.229.27.219:2302 Mature Admins Server That is Community Driven Apex Gear ,Vehicles and Aircraft Custom Fed Custom Prison Custom Gang Bases A Huge Freeway System That Rivals Any In The Altis Life Communities. Custom Drugs, Gems and Gold Mining Two Police Departments State and Metro Coast Guard Custom Boat Ramps Active Developer and Map/Graphic Designer
  11. 6 likes
    I'm the owner of another altis popular server, and I must say I am very impressed with the work put into Alpha Omega. I encourage people to check them out, and to keep an eye on them as they evolve as a community.
  12. 6 likes
    Blue Dragon Gaming We are a new community for altis life Built by Great Dev team and Friendly Staff, we have Fantastic Server side hardware running off google infrastructure with a GB connection for those lovely smooth frames. We are Run by " Blue Dragon Computer Systems Company " Base in Australian but the server is located in the US Content: Our Map is all custom layout and architecture with Fantastic content and scripts provided by the Lovely people on " www.altisliferpg.com " . # MoNtEcRiStO© # AlaskaVet # Repentz Thank you for the help with scripts and providing open source content for us Reminds me of the old Arma 2 community days "share the Love" If you would like to be apart of the growing community or would like to share ideas for the Server please feel free to contact me or join the server. Server Name BlueDragon Gaming | Altis Life Begins With You | $500K Start Teamspeak bd-gaming.com:10190 Forums BlueDragon Gaming
  13. 6 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
  14. 5 likes
    Author: David (Yes its custom, omg no way m8) Just something I have been slaving away on for the past 3 hours TUTORIAL -------------------------------Removing The Default HUD-------------------- Step 0.1: Go into your description.ext and comment out: #include "dialog\hud_stats.hpp" to make it: //#include "dialog\hud_stats.hpp" or /*#include "dialog\hud_stats.hpp"*/ step 0.3453: go into "core\functions\fn_hudSetup.sqf" and comment out #include "..\..\script_macros.hpp" /* File: fn_hudSetup.sqf Author: Bryan "Tonic" Boardwine Description: Setups the hud for the player? */ disableSerialization; cutRsc ["playerHUD", "PLAIN", 2, false]; [] call life_fnc_hudUpdate; [] spawn { private["_dam"]; for "_i" from 0 to 1 step 0 do { _dam = damage player; waitUntil {(damage player) != _dam}; [] call life_fnc_hudUpdate; }; }; To make it look like: #include "..\..\script_macros.hpp" /* File: fn_hudSetup.sqf Author: Bryan "Tonic" Boardwine Description: Setups the hud for the player? */ /* disableSerialization; cutRsc ["playerHUD", "PLAIN", 2, false]; [] call life_fnc_hudUpdate; [] spawn { private["_dam"]; for "_i" from 0 to 1 step 0 do { _dam = damage player; waitUntil {(damage player) != _dam}; [] call life_fnc_hudUpdate; }; }; */ Step 0.99: go into "core\functions\fn_hudUpdate.sqf" and comment out: #include "..\..\script_macros.hpp" /* File: fn_hudUpdate.sqf Author: Daniel Stuart Description: Updates the HUD when it needs to. */ disableSerialization; if (isNull LIFEdisplay) then {[] call life_fnc_hudSetup;}; LIFEctrl(2200) progressSetPosition (life_hunger / 100); LIFEctrl(2201) progressSetPosition (1 - (damage player)); LIFEctrl(2202) progressSetPosition (life_thirst / 100); To make it look like: #include "..\..\script_macros.hpp" /* File: fn_hudUpdate.sqf Author: Daniel Stuart Description: Updates the HUD when it needs to. */ /* disableSerialization; if (isNull LIFEdisplay) then {[] call life_fnc_hudSetup;}; LIFEctrl(2200) progressSetPosition (life_hunger / 100); LIFEctrl(2201) progressSetPosition (1 - (damage player)); LIFEctrl(2202) progressSetPosition (life_thirst / 100); */ ---------------------------------Installing My HUD--------------------------------- Step 1: Go into your "Dialog" folder and make a file called custHud.hpp and place the following inside: #include "common.hpp" class custHUD { idd = 1000000; movingEnable = 0; enableSimulation = 1; enableDisplay = 1; duration = 99999; fadein = 0.1; fadeout = 0.1; name = "custHUD"; onLoad = "with uiNameSpace do { custHUD = _this select 0 }"; class controls { class bg: Life_RscText { idc = 1000; x = 0.340156 * safezoneW + safezoneX; y = 0.929 * safezoneH + safezoneY; w = 0.314531 * safezoneW; h = 0.055 * safezoneH; colorBackground[] = {0,0,0,0.3}; }; class healthico: Life_RscPicture { idc = 1200; text = "icons\health.paa"; x = 0.345312 * safezoneW + safezoneX; y = 0.94 * safezoneH + safezoneY; w = 0.020625 * safezoneW; h = 0.033 * safezoneH; }; class foodico: Life_RscPicture { idc = 1201; text = "icons\drink.paa"; x = 0.448438 * safezoneW + safezoneX; y = 0.94 * safezoneH + safezoneY; w = 0.020625 * safezoneW; h = 0.033 * safezoneH; }; class thirstico: Life_RscPicture { idc = 1202; text = "icons\food.paa"; x = 0.551562 * safezoneW + safezoneX; y = 0.94 * safezoneH + safezoneY; w = 0.020625 * safezoneW; h = 0.033 * safezoneH; }; class healthtext: Life_RscStructuredText { idc = 1100; text = ""; x = 0.371094 * safezoneW + safezoneX; y = 0.94 * safezoneH + safezoneY; w = 0.0721875 * safezoneW; h = 0.033 * safezoneH; colorText[] = {1,1,1,1}; class Attributes { color = "#FFFFFF"; align = "LEFT"; valign = "bottom"; underline = false; }; }; class foodtext: Life_RscStructuredText { idc = 1101; text = ""; x = 0.474219 * safezoneW + safezoneX; y = 0.94 * safezoneH + safezoneY; w = 0.0721875 * safezoneW; h = 0.033 * safezoneH; class Attributes { color = "#FFFFFF"; align = "LEFT"; valign = "bottom"; underline = false; }; }; class thirsttext: Life_RscStructuredText { idc = 1102; text = ""; x = 0.577344 * safezoneW + safezoneX; y = 0.94 * safezoneH + safezoneY; w = 0.0721875 * safezoneW; h = 0.033 * safezoneH; class Attributes { color = "#FFFFFF"; align = "LEFT"; valign = "bottom"; underline = false; }; }; class banktitle: Life_RscStructuredText { idc = 1001; text = "Bank"; //--- ToDo: Localize; x = 0.891875 * safezoneW + safezoneX; y = 0.819 * safezoneH + safezoneY; w = 0.0928125 * safezoneW; h = 0.011 * safezoneH; colorBackground[] = {1,0,0,1}; }; class cashtitle: Life_RscStructuredText { idc = 1002; text = "Cash"; //--- ToDo: Localize; x = 0.891875 * safezoneW + safezoneX; y = 0.874 * safezoneH + safezoneY; w = 0.0928125 * safezoneW; h = 0.011 * safezoneH; colorBackground[] = {1,0,0,1}; }; class bankbg: Life_RscText { idc = 1004; x = 0.891875 * safezoneW + safezoneX; y = 0.83 * safezoneH + safezoneY; w = 0.0928125 * safezoneW; h = 0.044 * safezoneH; colorBackground[] = {0,0,0,0.3}; }; class cashbg: Life_RscText { idc = 1005; x = 0.891875 * safezoneW + safezoneX; y = 0.885 * safezoneH + safezoneY; w = 0.0928125 * safezoneW; h = 0.044 * safezoneH; colorBackground[] = {0,0,0,0.3}; }; class bankcount: Life_RscStructuredText { idc = 1103; text = ""; x = 0.897031 * safezoneW + safezoneX; y = 0.841 * safezoneH + safezoneY; w = 0.0825 * safezoneW; h = 0.022 * safezoneH; colorBackground[] = {-1,-1,-1,0}; }; class cashcount: Life_RscStructuredText { idc = 1104; text = ""; x = 0.897031 * safezoneW + safezoneX; y = 0.896 * safezoneH + safezoneY; w = 0.0825 * safezoneW; h = 0.022 * safezoneH; colorBackground[] = {-1,-1,-1,0}; }; class playersbg: Life_RscText { idc = 1003; x = 0.891875 * safezoneW + safezoneX; y = 0.94 * safezoneH + safezoneY; w = 0.0928125 * safezoneW; h = 0.044 * safezoneH; colorBackground[] = {0,0,0,0.3}; }; class playercount: Life_RscStructuredText { idc = 1105; text = ""; x = 0.897031 * safezoneW + safezoneX; y = 0.951 * safezoneH + safezoneY; w = 0.0825 * safezoneW; h = 0.022 * safezoneH; colorBackground[] = {-1,-1,-1,0}; }; class Playerstitle: Life_RscStructuredText { idc = 1006; text = "Players"; //--- ToDo: Localize; x = 0.891875 * safezoneW + safezoneX; y = 0.929 * safezoneH + safezoneY; w = 0.0928125 * safezoneW; h = 0.011 * safezoneH; colorBackground[] = {1,0,0,1}; //sizeEx = 0.9 * GUI_GRID_H; }; class watermark: Life_RscPicture { idc = 1203; text = "textures\logo.paa"; x = 0.0101562 * safezoneW + safezoneX; y = 0.885 * safezoneH + safezoneY; w = 0.0721875 * safezoneW; h = 0.099 * safezoneH; }; }; }; ^^ now, yes it has #include "common,hpp" at the top that was just because I was testing it in editor. So you can remove it but just to be safe i left it there !!!!! THERE IS A WATERMARK ELEMENT AT THE BOTTOM PUT YOUR LOGO THERE (if you have one) BUT MAKE SURE IT'S NOT A SQUARE NUMBER E.G. IT'S NOT 256 X 256 OR 512 X 512, IT NEEDS TO BE SOMETHING LIKE 200 X 300 (IT CAN HAVE WHITE SPACE BTW) KK TY !!!!! Step 2: go into "core\scripts" and create a file called "custHud.sqf" and add the following into it: #include "..\..\script_macros.hpp" /* Author: David Edited: Dark (Custom colours & precise stats) Community: ArmaCentral RP & Altisliferpg.com & InfiniteNetwork.xyz Don't edit or redistribute without asking, 1st not cool, 2nd I will DMCA you, ask slyfoxgaming :) */ disableSerialization; 1 cutRsc ["custHUD","PLAIN"]; waitUntil {!isNull (uiNameSpace getVariable "custHUD")}; //Displays _display = uiNameSpace getVariable "custHUD"; _healthidc = _display displayCtrl 1100; _foodidc = _display displayCtrl 1101; _thirstidc = _display displayCtrl 1102; _bankidc = _display displayCtrl 1103; _cashidc = _display displayCtrl 1104; _playeridc = _display displayCtrl 1105; //titles _banktitle = _display displayCtrl 1001; _cashtitle = _display displayCtrl 1002; _playertitle = _display displayCtrl 1006; //Stats _damage = round ((1 - (damage player)) * 100); // //PLEASE COMMENT OUT >>ONE<< OF THE TWO SETS OF VARIABLES BELOW // //THIS ONE OS FOR TEXT E.G. | IM HEALTHY | NEED SOME FOOD | NOT THIRSTY | _hunger = life_hunger; _thirst = life_thirst; //THIS ONE OS FOR EXACT VALUES E.G.| 100% HEALTH | 100% FOOD | 100% THIRST | _hunger = round (life_hunger); _thirst = round (life_thirst); _cash = [CASH] call life_fnc_numberText; _bank = [BANK] call life_fnc_numberText; _players = count playableUnits; //Colours _colourDefault = parseText "#adadad"; _colour108 = parseText "#FF7000"; _colour107 = parseText "#FF9000"; _colour106 = parseText "#FFBB00"; _colour105 = parseText "#FFCC00"; _colour104 = parseText "#81CCDD"; _colour103 = parseText "#33AACC"; _colour102 = parseText "#3388CC"; _colour101 = parseText "#3366CC"; _colour100 = parseText "#336600"; _colour90 = parseText "#339900"; _colour80 = parseText "#33CC00"; _colour70 = parseText "#33FF00"; _colour60 = parseText "#66FF00"; _colour50 = parseText "#CCFF00"; _colour40 = parseText "#CCCC00"; _colour30 = parseText "#CC9900"; _colour20 = parseText "#CC6600"; _colour10 = parseText "#CC3300"; _colour0 = parseText "#CC0000"; _colourDead = parseText "#000000"; _colourDamage = _colourDefault; switch true do { case(_damage >= 100) : {_colourDamage = _colour100;}; case((_damage >= 90) && (_damage < 100)) : {_colourDamage = _colour100;}; case((_damage >= 80) && (_damage < 90)) : {_colourDamage = _colour80;}; case((_damage >= 70) && (_damage < 80)) : {_colourDamage = _colour70;}; case((_damage >= 60) && (_damage < 70)) : {_colourDamage = _colour60;}; case((_damage >= 50) && (_damage < 60)) : {_colourDamage = _colour50;}; case((_damage >= 40) && (_damage < 50)) : {_colourDamage = _colour40;}; case((_damage >= 30) && (_damage < 40)) : {_colourDamage = _colour30;}; case((_damage >= 20) && (_damage < 30)) : {_colourDamage = _colour20;}; case((_damage >= 10) && (_damage < 20)) : {_colourDamage = _colour10;}; case((_damage >= 1) && (_damage < 10)) : {_colourDamage = _colour0;}; case(_damage < 1) :{_colourDamage = _colourDead;}; }; _colourHunger = _colourDefault; switch true do { case(_hunger >= 100) :{_colourHunger = _colour100;}; case((_hunger >= 90) && (_hunger < 100)) : {_colourHunger = _colour90;}; case((_hunger >= 80) && (_hunger < 90)) : {_colourHunger = _colour80;}; case((_hunger >= 70) && (_hunger < 80)) : {_colourHunger = _colour70;}; case((_hunger >= 60) && (_hunger < 70)) : {_colourHunger = _colour60;}; case((_hunger >= 50) && (_hunger < 60)) : {_colourHunger = _colour50;}; case((_hunger >= 40) && (_hunger < 50)) : {_colourHunger = _colour40;}; case((_hunger >= 30) && (_hunger < 40)) : {_colourHunger = _colour30;}; case((_hunger >= 20) && (_hunger < 30)) : {_colourHunger = _colour20;}; case((_hunger >= 10) && (_hunger < 20)) : {_colourHunger = _colour10;}; case((_hunger >= 1) && (_hunger < 10)) : {_colourHunger = _colour0;}; case(_hunger < 1) :{_colourHunger = _colourDead;}; }; _colourThirst = _colourDefault; switch true do { case(_thirst >= 100) : {_colourThirst = _colour101;}; case((_thirst >= 90) && (_thirst < 100)) : {_colourThirst = _colour102;}; case((_thirst >= 80) && (_thirst < 90)) : {_colourThirst = _colour103;}; case((_thirst >= 70) && (_thirst < 80)) : {_colourThirst = _colour104;}; case((_thirst >= 60) && (_thirst < 70)) : {_colourThirst = _colour105;}; case((_thirst >= 50) && (_thirst < 60)) : {_colourThirst = _colour106;}; case((_thirst >= 40) && (_thirst < 50)) : {_colourThirst = _colour107;}; case((_thirst >= 30) && (_thirst < 40)) : {_colourThirst = _colour108;}; case((_thirst >= 20) && (_thirst < 30)) : {_colourThirst = _colour20;}; case((_thirst >= 10) && (_thirst < 20)) : {_colourThirst = _colour10;}; case((_thirst >= 1) && (_thirst < 10)) : {_colourThirst = _colour0;}; case(_thirst < 1) : {_colourThirst = _colourDead;}; }; if (_damage < 100) then { _healthtext = parseText format["Very Healthy"]; } else { if (_damage < 85) then { _healthtext = parseText format["A few scratches"]; } else { if (_damage < 70) then { _healthtext = parseText format["Slightly injured"]; } else { if (_damage < 60) then { _healthtext = parseText format["Not feeling well"]; } else { if (_damage < 50 ) then { _healthtext = parseText format["Starting to feel pain"]; } else { if (_damage < 40) then { _healthtext = parseText format["I feel pain"]; } else { if (_damage < 30) then { _healthtext = parseText format["Something must be broken"]; } else { if (_damage < 20) then { _healthtext = parseText format["Horribly injured"]; } else { if (_damage < 10) then { _healthtext = parseText format["Extremely injured"]; } else { if (_damage == 0) then { _healthtext = parseText format["Dead</t>"]; };};};};};};};};};}; if (_hunger > 90) then { _hungertext = parseText format["I'm not hungry"]; } else { if (_hunger > 80) then { _hungertext = parseText format["Not hungry at all"]; } else { if (_hunger > 70) then { _hungertext = parseText format["Could use some crackers"]; } else { if (_hunger > 60) then { _hungertext = parseText format["Might need something soon"]; } else { if (_hunger > 50) then { _hungertext = parseText format["Stomach is feeling empty"]; } else { if (_hunger > 40) then { _hungertext = parseText format["I should eat soon"]; } else { if (_hunger > 30) then { _hungertext = parseText format["My stomach is grumbling"]; } else { if (_hunger > 20) then { _hungertext = parseText format["I need to eat now"]; } else { if (_hunger > 10) then { _hungertext = parseText format["Starvation is kicking in"]; } else { if (_hunger == 0) then { _hungertext = parseText format["Dead</t>"]; };};};};};};};};};}; if (_thirst > 80) then { _thirsttext = parseText format["Not thirsty"]; } else { if (_thirst > 70) then { _thirsttext = parseText format["Could use a glass of water"]; } else { if (_thirst > 60) then { _thirsttext = parseText format["Should drink something soon"]; } else { if (_thirst > 50) then { _thirsttext = parseText format["Throat is a little dry"]; } else { if (_thirst > 40) then { _thirsttext = parseText format["I should drink soon"]; } else { if (_thirst > 30) then { _thirsttext = parseText format["My throat is dry"]; } else { if (_thirst > 20) then { _thirsttext = parseText format["I should drink now"]; } else { if (_thirst > 10) then { _thirsttext = parseText format["Dehydration Feels Horrible"]; } else { if (_thirst == 0) then { _thirsttext = parseText format["DEAD</t>"]; };};};};};};};};}; _healthidc ctrlSetStructuredText (parseText format ["<t font='TahomaB' size='0.7' color='%3'>%2%1</t>","%",_damage,_colourDamage]); _foodidc ctrlSetStructuredText (parseText format ["<t font='TahomaB' size='0.7' color='%3'>%2%1</t>","%",_hunger,_colourHunger]); _thirstidc ctrlSetStructuredText (parseText format ["<t font='TahomaB' size='0.7' color='%3'>%2%1</t>","%",_thirst,_colourThirst]); ////^^^^^^^^^^^ HAS EXACT VALUES E.G. HUNGER 100% | THIRST 100% | HEALTH 100% //// //// COMMENT ONE OF THE TWO OUT AS IF YOU DONT, IT WONT WORK ---- REFER TO THE VARIABLES AT THE TOP, THE ONE YOU COMMENTED OUT CORROSPONDS TO THE ONE YOU SHOULD USE NOW!!!!!!!! //// //// THIS ONE BELOW HAS TEXT E.G. HEALTH: SERIOUSLY INJURED | THIRST: NOT THIRSTY | HUNGER: NOT HUNGRY _healthidc ctrlSetStructuredText (parseText format ["<t font='TahomaB' size='0.7' color='%2'>%1</t>",_healthtext,_colourDamage]); _foodidc ctrlSetStructuredText (parseText format ["<t font='TahomaB' size='0.7' color='%2'>%1</t>",_hungertext,_colourHunger]); _thirstidc ctrlSetStructuredText (parseText format ["<t font='TahomaB' size='0.7' color='%2'>%1</t>",_thirsttext,_colourThirst]); //DONT COMMENT THE BELLOW OUT _cashidc ctrlSetStructuredText (parseText format ["$%1",_cash]); _bankidc ctrlSetStructuredText (parseText format ["$%1",_bank]); _playeridc ctrlSetStructuredText (parseText format ["%1",_players]); _cashtitle ctrlSetStructuredText (parseText format ["<t font='TahomaB' size='0.5'>Cash</t>"]); _banktitle ctrlSetStructuredText (parseText format ["<t font='TahomaB' size='0.5'>Bank</t>"]); _playertitle ctrlSetStructuredText (parseText format ["<t font='TahomaB' size='0.5'>Players</t>"]); ^^^^ hope it works haven't tested it Step 3: Go into your "core\fn_initCop.sqf & fn_initCiv.sqf & fn_initMed.sqf" and add the following line near the bottom: [] execVM "core\scripts\custHud.sqf"; Step 3: add the same line into your "core\functions\fn_hudupdate.sqf" BELLOW OR ABOVE WHAT YOU COMMENTED OUT!!! [] execVM "core\scripts\custHud.sqf"; Step 4: Go into each file listed bellow and add the following code at the bottom of each: [] call life_fnc_hudUpdate; Files: fn_bankDeposit.sqf fn_bankTransfer.sqf fn_bankWithdraw.sqf fn_gangWithdraw.sqf fn_gangDeposit.sqf fn_giveMoney.sqf anywhere else money is taken or received.sqf Step 5: Go into your description.ext and add the following under "class RscTitles" #include "dialog\custHud.hpp" Put the below images into the ini section folder, if you don't have one (you should) make one and... Done health.paa drink.paa food.paa
  15. 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
  16. 5 likes
    ============================================================================================================ Difficulty: Easy Tutorial By: Hyper4u ============================================================================================================ Go to root -> core -> admin and create a file called fn_adminLoadout.sqf and place this code inside: Then go to root -> functions.hpp and then go to class Admin and at the bottom add this then go to root -> dialog -> admin_menu.hpp and add this ---- Optional --- "If you wanna have skinned admin clothes" go to root -> core -> admin -> fn_adminLoadout.sqf and add this at the bottom then go to core-> functions -> fn_playerSkins.sqf and add this under every case (west, independent, civilian) And change "U_Competitor" to the clothes you want the skins on. go to root -> textures and inside textures create a folder named admin and inside the folder you put your skin and name it uniform.jpg AND DONT FORGET TO LEAVE A LIKE! THANKS
  17. 5 likes
    Hello guys today i'm just going to start off by introducing my self, hi! I'm buttery and I like to do a lot of this in my spare time.. which is all the time to be honest _____________________________________________________________________________________________________________________________________________________________________ What are we making? What we are going to be doing here is making a CPR Kit which you can buy from the market. What does it do? The CPR Kit is used on down players, it has a 15% chance of revival every time it is used(has unlimited uses) and after every try it automatically restart the process till the player is picked up, unless you cancel the action. _____________________________________________________________________________________________________________________________________________________________________ In core\items make a file called fn_cprkit.sqf #include "..\..\script_macros.hpp" private["_target","_revivable","_targetName","_ui","_progressBar","_titleText","_cP","_title"]; _target = cursorTarget; if(isNull _target) exitWith {}; _revivable = _target getVariable ["Revive",FALSE]; if(_revivable) exitWith {}; if(player distance _target > 5) exitWith {}; if(life_action_inUse) exitWith {}; if(_target == player) exitWith {}; _title = format[localize "STR_CPR_Progress"]; life_action_inUse = true; if(_target == player) exitWith {}; _target setVariable ["Reviving",player,TRUE]; disableSerialization; 5 cutRsc ["life_progress","PLAIN"]; _ui = uiNamespace getVariable ["life_progress",displayNull]; _progressBar = _ui displayCtrl 38201; _titleText = _ui displayCtrl 38202; _titleText ctrlSetText format["%2 (1%1)...","%",_title]; _progressBar progressSetPosition 0.01; _cP = 0.01; while {true} do { if(animationState player != "AinvPknlMstpSnonWnonDnon_medic_1") then { [player,"AinvPknlMstpSnonWnonDnon_medic_1"] remoteExecCall ["life_fnc_animSync",RCLIENT]; player playMoveNow "AinvPknlMstpSnonWnonDnon_medic_1"; }; sleep .15; _cP = _cP + .01; _progressBar progressSetPosition _cP; _titleText ctrlSetText format["%3 (%1%2)...",round(_cP * 100),"%",_title]; if(_cP >= 1 OR !alive player) exitWith {}; if(life_istazed) exitWith {}; if(life_isknocked) exitWith {}; if(life_interrupted) exitWith {}; if((player getVariable ["restrained",false])) exitWith {}; if(player distance _target > 4) exitWith {_badDistance = true;}; if(_target getVariable ["Revive",FALSE]) exitWith {}; if(_target getVariable ["Reviving",ObjNull] != player) exitWith {}; }; 5 cutText ["","PLAIN"]; player playActionNow "stop"; _target setVariable ["Reviving",NIL,TRUE]; if(!alive player OR life_istazed OR life_isknocked) exitWith {life_action_inUse = false;}; if(_target getVariable ["Revive",FALSE]) exitWith {hint localize "STR_Medic_RevivedRespawned"}; if((player getVariable ["restrained",false])) exitWith {life_action_inUse = false;}; if(!isNil "_badDistance") exitWith {titleText[localize "STR_Medic_TooFar","PLAIN"]; life_action_inUse = false;}; if(life_interrupted) exitWith {life_interrupted = false; titleText[localize "STR_NOTF_ActionCancel","PLAIN"]; life_action_inUse = false;}; life_action_inUse = false; _break = floor (random 100); if (_break < 85) exitWith {[] spawn life_fnc_cprkit;}; _target setVariable ["Revive",TRUE,TRUE]; [profileName] remoteExecCall ["life_fnc_cprrevived",_target]; sleep .6; player reveal _target; Now you are going to need to set the stringtable for "STR_CPR_Progress" Under <Key ID="STR_Medic_Progress"> <Original>Reviving %1</Original> <Czech>Oživení %1</Czech> <Spanish>Reviviendo %1</Spanish> <Russian></Russian> <German>Wird wiederbelebt %1</German> <French>Réanimations %1</French> <Italian>Rianimando %1</Italian> <Portuguese>Revivendo %1</Portuguese> <Polish>Reanimacja %1</Polish> </Key> add <Key ID="STR_CPR_Progress"> <Original>Performing CPR</Original> </Key> Now we also need to add the function, so in Functions.hpp add class cprkit {}; inside class Items { file = "core\items"; Now we need to make life_fnc_cprrevived actually do something In core\medical create a new file called fn_cprrevived.sqf #include "..\..\script_macros.hpp" private ["_dir"]; [life_save_gear] spawn life_fnc_loadDeadGear; life_corpse setVariable ["realname",nil,true]; [life_corpse] remoteExecCall ["life_fnc_corpse",RANY]; _dir = getDir life_corpse; closeDialog 0; life_deathCamera cameraEffect ["TERMINATE","BACK"]; camDestroy life_deathCamera; player setDir _dir; player setPosASL (visiblePositionASL life_corpse); life_corpse setVariable ["Revive",nil,true]; life_corpse setVariable ["name",nil,true]; [life_corpse] remoteExecCall ["life_fnc_corpse",RANY]; deleteVehicle life_corpse; life_action_inUse = false; life_is_alive = true; player setVariable ["Revive",nil,true]; player setVariable ["name",nil,true]; player setVariable ["Reviving",nil,true]; [] call life_fnc_playerSkins; [] call life_fnc_hudUpdate; [] call SOCK_fnc_updateRequest; player setDamage 0.60; Now we also need to make this a function, so in Functions.hpp add class cprrevived {}; inside class Medical_System { file = "core\medical"; Next we are going to set the item to be usable which we will create in a moment In fn_useItem.sqf add case (_item isEqualTo "cprKit"): { [] spawn life_fnc_cprKit; }; Now im gonna make so when the CPR kit is dropped it will create the defibrillator item on the floor In fn_dropItems.sqf add case "cprKit": { if (_value > 0) then { _pos = _unit modelToWorld[0,3,0]; _pos = [(_pos select 0), (_pos select 1), 0]; _obj = "Land_Defibrillator_F" createVehicle _pos; [_obj] remoteExecCall ["life_fnc_simDisable",RANY]; _obj setPos _pos; _obj setVariable ["item",[_item,_value],true]; missionNamespace setVariable [_itemName,0]; }; }; Now we make the cprkit an actual item.. in Config_vItems.sqf where all the other items are listed add class cprKit { variable = "cprKit"; displayName = "STR_Item_CPRMediKit"; weight = 5; buyPrice = 20000; sellPrice = 7500; illegal = false; edible = -1; icon = "icons\ico_defib.paa"; }; We will add STR_Item_CPRMediKit in a moment If you want an icon make one otherwise use the one listed below Under class VirtualShops { is where you can choose what shops you can but these from for example lets say we want only gang shops to get this it would look like such class gang { name = "STR_Shops_Gang"; side = "civ"; conditions = ""; items[] = { "waterBottle", "rabbit", "apple", "redgull", "tbacon", "pickaxe", "fuelFull", "peach", "boltcutter", "blastingcharge", "cprKit" }; }; Now we add another stringtable Under STR_Item_Goat add <Key ID="STR_Item_CPRMediKit"> <Original>CPR MediKit</Original> </Key> Now we want the cprkit to save in players and vehicles inventories Config_Master.hpp Were gonna add ,"cprKit" in saved_virtualItems[] = { and save_vehicle_items[] = { Lastly we gotta make being revived able to be run remotely In CfgRemoteExec.hpp add F(life_fnc_cprrevived,CLIENT) Under /* Client only functions */ _____________________________________________________________________________________________________________________________________________________________________ CPR Kit Icon Download put in icons\ _____________________________________________________________________________________________________________________________________________________________________ If you have any questions at all just leave a comment and I will help you out!
  18. 5 likes
    Autor: Entity Replace the spawnSelection.hpp by that: class life_spawn_selection { idd = 38500; movingEnabled = 0; enableSimulation = 1; class controlsBackground { class life_RscTitleBackground: Life_RscText { idc = 1000; x = 0.0101577 * safezoneW + safezoneX; y = 0.0291999 * safezoneH + safezoneY; w = 0.170156 * safezoneW; h = 0.9438 * safezoneH; colorBackground[] = {0.294,0.286,0.286,0.8}; }; class Title: Life_RscText { idc = 1001; text = "Spawn Selection"; x = 0.0132501 * safezoneW + safezoneX; y = 0.0402 * safezoneH + safezoneY; w = 0.164999 * safezoneW; h = 0.0242 * safezoneH; }; class MapView: Life_RscMapControl { idc = 38502; x = 0.183407 * safezoneW + safezoneX; y = 0.0292 * safezoneH + safezoneY; w = 0.8085 * safezoneW; h = 0.9438 * safezoneH; maxSatelliteAlpha = 0.75; alphaFadeStartScale = 1.15; alphaFadeEndScale = 1.29; }; }; class controls { class spawnList: Life_RscListNbox { idc = 38510; x = 0.0153125 * safezoneW + safezoneX; y = 0.071 * safezoneH + safezoneY; w = 0.159844 * safezoneW; h = 0.847 * safezoneH; text = ""; sizeEx = 0.041; coloumns[] = {0,0,0.9}; drawSideArrows = 1; idcLeft = -1; idcRight = -1; rowHeight = 0.050; onLBSelChanged = "_this call life_fnc_spawnPointSelected;"; }; class spawnButton: Life_RscButtonMenu { idc = -1; text = "Enter"; x = 0.0153125 * safezoneW + safezoneX; y = 0.9246 * safezoneH + safezoneY; w = 0.159844 * safezoneW; h = 0.033 * safezoneH; style = "0x02"; 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}; colorBackgroundActive[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",1}; colorBackgroundDisabled[] = {0.95,0.95,0.95,0}; offsetX = 0.003; offsetY = 0.003; offsetPressedX = 0.002; offsetPressedY = 0.002; colorShadow[] = {0,0,0,1}; colorBorder[] = {0,0,0,0}; borderSize = 0.008; onButtonClick = "[] call life_fnc_spawnConfirm"; }; }; }; Screenshot:http://imgur.com/nrCSz9c Finish !
  19. 5 likes
    (given permission to post by Montecristo) This kind of behavior from an arma community is unacceptable and in my opinion should have no part in the Altis Life communitie(s) Bgill678 has been banned from this website/discord and more issues of him being removed from other structure based communities should hopefully come very soon. Yesterday my community was attacked by another community that goes by the name of 'Elemental Gaming Networks'. 3-4 of their members including their owner who goes by the name 'Bailey' or Bgill678 had joined our teamspeak and spammed our TFR Channel with this: https://gyazo.com/24e5b788284d731a33f28a660525f58e We then joined their teamspeak to discuss this, being cautious I decided to turn on my VPN and we discussed/argued about why this had happened, two of our community directors also joined the teamspeak. This is when my our directors started getting ddosed by members of their community, obviously I can't prove this but it's quite clear. They also claim a few of their members lost connection aswell We banned them off our teamspeak, they did the same. We then joined their teamspeak, here they are: https://gyazo.com/320a3b2deb60724f172deb29782a3fd1 I then joined their website and found more evidence of this: https://gyazo.com/bd7a73ef8fc1068ffe82570fd14a9022
  20. 4 likes
    Hello Altis Life Community, I am an independent texture artist and have been for at least a year. I have worked for many life servers, texturing clothing and vehicles for the police, ems, and civilians. Some of my work can be seen here If you want any textures done, please contact me either in the comments or through a private message! Thank you and enjoy, Sneaky
  21. 4 likes
    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Difficulty: Easy Publish by: suffer4real Source AltisLifeRPG.com cache -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Script: RyanTTs Dynamic Market System Version: Altis Life 4.4r3 ___________________________________________________________________________________ First Make sure you make a backup just in case you do something wrong. I am having this script running on a clean 4.4r3 and that should work. Let's start shall we ? Mission File : open your : functions.h and paste this code under the core/actions class. class DynMarket { file = "core\DynMarket"; class bought {}; class update {}; class DisplayPrices {}; class LoadIntoListbox {}; class ForcePrice {}; class DYNMARKET_getPrice {}; class DYNMARKET_getIcon {}; }; 2. i will add a Dynmarket folder in the attachments and place it in the core folder. DynMarket.rar 3. now open the init.sqf file in the core folder and put this code right above the last 3 lines DYNAMICMARKET_boughtItems = []; [player] remoteExec ["TON_fnc_playerLogged",RSERV]; 4. open your fn_virt_sell.sqf and replace with this : #include "..\..\script_macros.hpp" /* File: fn_virt_sell.sqf Author: Bryan "Tonic" Boardwine Description: Sell a virtual item to the store / shop */ private["_type","_index","_price","_amount","_name"]; if ((lbCurSel 2402) isEqualTo -1) exitWith {}; _type = lbData[2402,(lbCurSel 2402)]; _price = -2; _itemNameToSearchFor = _type; { _curItemName = _x select 0; _curItemPrice = _x select 1; if (_curItemName==_itemNameToSearchFor) then {_price=_curItemPrice}; } forEach DYNMARKET_prices; if (_price isEqualTo -1) exitWith {}; if (_price isEqualTo -2) then { _price = M_CONFIG(getNumber,"VirtualItems",_type,"sellPrice"); if (_price isEqualTo -1) exitWith {}; }; _amount = ctrlText 2405; if (!([_amount] call TON_fnc_isnumber)) exitWith {hint localize "STR_Shop_Virt_NoNum";}; _amount = parseNumber (_amount); if (_amount > (ITEM_VALUE(_type))) exitWith {hint localize "STR_Shop_Virt_NotEnough"}; if ((time - life_action_delay) < 0.2) exitWith {hint localize "STR_NOTF_ActionDelay";}; life_action_delay = time; _price = (_price * _amount); _name = M_CONFIG(getText,"VirtualItems",_type,"displayName"); if ([false,_type,_amount] call life_fnc_handleInv) then { hint format[localize "STR_Shop_Virt_SellItem",_amount,(localize _name),[_price] call life_fnc_numberText]; CASH = CASH + _price; [0] call SOCK_fnc_updatePartial; [] call life_fnc_virt_update; DYNAMICMARKET_boughtItems pushBack [_type,_amount]; }; if (life_shop_type isEqualTo "drugdealer") then { private["_array","_ind","_val"]; _array = life_shop_npc getVariable["sellers",[]]; _ind = [getPlayerUID player,_array] call TON_fnc_index; if (!(_ind isEqualTo -1)) then { _val = ((_array select _ind) select 2); _val = _val + _price; _array set[_ind,[getPlayerUID player,profileName,_val]]; life_shop_npc setVariable["sellers",_array,true]; } else { _array pushBack [getPlayerUID player,profileName,_price]; life_shop_npc setVariable["sellers",_array,true]; }; }; if (life_shop_type isEqualTo "gold" && (LIFE_SETTINGS(getNumber,"noatm_timer")) > 0) then { [] spawn { life_use_atm = false; sleep ((LIFE_SETTINGS(getNumber,"noatm_timer")) * 60); life_use_atm = true; }; }; [0] call SOCK_fnc_updatePartial; [3] call SOCK_fnc_updatePartial; 5. now open your CfgRemoteExec.hpp and paste this right below the server functions F(TON_fnc_playerLogged,SERVER) //DynMarket F(TON_fnc_getUpdate,SERVER) //DynMarket F(TON_fnc_changePrice, SERVER) //DynMarket F(life_fnc_update,CLIENT) //DynMarket 6. open your masterhandler.hpp and add these 2: #include "dynmarket_changeprice.hpp" #include "dynmarket_prices.hpp" 7. now download these 2 files and place them in your dialog folder. dialog.rar 8. now we go to the @life_server part. now open your config.cpp and paste this under your system classes class DynMarket { file = "\life_server\Functions\DynMarket"; class calculatePrices {}; class config {}; class getUpdate {}; class HandleDB {}; class playerLogged {}; class sleeper {}; }; 9. now open your functions folder and download and paste this folder in it. DynMarketlifeversion.rar 10. now open your init.sqf and paste this : [] execVM "\life_server\Functions\DynMarket\fn_config.sqf"; 11. now go to the Database and run this query : CREATE TABLE `dynmarket` ( `id` INT NOT NULL DEFAULT 1, `prices` TEXT NOT NULL, PRIMARY KEY (`id`)); INSERT INTO `dynmarket` VALUES (1,'[]'); 12. from this point it will be your own preference to put a button in your Y menu or ether put a option on a AI. for the Y menu follow this : go to your player_inv.hpp and open it and search for Class ButtonSyncData and below that you paste this : class ButtonMarket : Life_RscButtonMenu { idc = 3025; text = "Börse"; onButtonClick = "createDialog ""life_dynmarket_prices"";"; x = 0.26 + (6.25 / 19.8) + (1 / 250 / (safezoneW / safezoneH)); y = 0.805; w = (6.25 / 40); h = (1 / 25); }; now open your fn_p_openMenu.sqf and add this code tho the independent class and to the west. ctrlShow[3025,false]; Now if you would like to add this option to an AI or Object add this : this addAction ["Börse abrufen",{createDialog 'life_dynmarket_prices'},"",0,false,false,"",'playerSide isEqualTo civilian']; Well Done recompile your files and you are Ready to go. dialog.rar DynMarket.rar DynMarketlifeversion.rar
  22. 4 likes
    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.
  23. 4 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
  24. 4 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
  25. 4 likes
    Allright so this is a tutorial on how to add a option to the cop interaction menu (windows-key on restrained civ) where they get a button to revoke said civilians drivers license! Core script credit: @Repentz Difficulty: Easy Note: When I say root I mean your mission folder (AltisLife.Altis or TanoaLife.Tanoa). ______________________________________________________________________________________________________________________________________________________________________________________________ Step 1: Create a file called fn_revokeDriverLicense.sqf in root -> Core -> Actions and paste this in: /* File: fn_revokeDriverLicense.sqf */ private["_unit"]; params [ ["_unit", ObjNull,[ObjNull]] ]; if(isNull _unit) exitWith {}; [0,format["%1 has revoked %2's Driver License.",name player, name _unit]] remoteExecCall ["life_fnc_broadcast",west]; [4] remoteExecCall ["life_fnc_removeLicenses",_unit]; Step 2: Go to root -> core -> cop and open the file: fn_copInteractionMenu.sqf Find the list of #define Btn1 37450 etc. and paste this in the middle of the last button and the Title: #define Btn9 37458 It should look like this: #define Btn1 37450 #define Btn2 37451 #define Btn3 37452 #define Btn4 37453 #define Btn5 37454 #define Btn6 37455 #define Btn7 37456 #define Btn8 37457 #define Btn9 37458 #define Title 37401 Scroll down a bit and find this: _display = findDisplay 37400; _Btn1 = _display displayCtrl Btn1; _Btn2 = _display displayCtrl Btn2; _Btn3 = _display displayCtrl Btn3; _Btn4 = _display displayCtrl Btn4; _Btn5 = _display displayCtrl Btn5; _Btn6 = _display displayCtrl Btn6; _Btn7 = _display displayCtrl Btn7; _Btn8 = _display displayCtrl Btn8; life_pInact_curTarget = _curTarget; and paste this below the next to last row: _Btn9 = _display displayCtrl Btn9; Scroll down a bit more to this: //SeizeWeapons Button _Btn8 ctrlSetText localize "STR_pInAct_Seize"; _Btn8 buttonSetAction "[life_pInact_curTarget] spawn life_fnc_seizePlayerAction; closeDialog 0;"; Below it you want to paste this: //Revoke License Button _Btn9 ctrlSetText localize "STR_pInAct_RevokeLicense"; _Btn9 buttonSetAction "[life_pInact_curTarget] spawn life_fnc_revokeDriverLicense; closeDialog 0;"; Step 3: Go to root -> Core -> Civilian and open fn_removeLicenses.sqf Under the section called Case 3 paste this in: // Revoking drivers license case 4: { missionNamespace setVariable [LICENSE_VARNAME("driver", "civ"), false]; hint localize "STR_Civ_LicenseRevoked"; }; Step 4: Go to root -> dialog and open pInteraction.hpp Find this: class ButtonEight: Life_RscButtonMenu { idc = 37457; 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 = ""; sizeEx = 0.025; x = BGX + 0.03; y = BGY + 0.42; w = 0.4; h = 0.038; }; And paste this below it: class ButtonNine: Life_RscButtonMenu { idc = 37458; 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 = ""; sizeEx = 0.025; x = BGX + 0.03; y = BGY + 0.47; w = 0.4; h = 0.038; }; Step 5: Go to your mission root and open Functions.hpp and paste this in the Actions section: class revokeDriverLicense{}; Step 6: Go to your mission root and open CfgRemoteExec.hpp and paste this at the bottom of Client Only Functions: F(life_fnc_revokeDriverLicense,CLIENT) Step 7 (Last step!): Go to your mission root and open your stringtable and add this: <Key ID="STR_Civ_LicenseRevoked"> <Original>You have lost your drivers license.</Original> </Key> And we're done! Now if you restrain a civilian with as a cop, you'll have another button in the interaction menu that removes the restrained civilian's drivers license!
  26. 4 likes
    Author: (unknown) https://www.altisliferpg.com/topic/7276-tutorial-responsive-good-cop-radar-anpr-easy-implementation-screenshot/?page=1 Where I got the script from: https://altisdev.com/topic/6710/radar-intégrée-dans-un-véhicule-modification/6 I also did an English translation! Now, lets get into how to make the script! Step 1: go into core\cop\fn_radar.sqf replace by this: /* File: fn_radar.sqf Author: Herman Description: Version 1.2 */ if (!(vehicle player != player)) exitWith {}; if (playerSide != west) exitWith {}; _speed = 0; _info = ""; _vehicle = []; _owner = []; _cars = []; { if (alive _x) then { _cars set[(count _cars), _x]; }; } forEach nearestObjects[vehicle player, ["Car"], 100]; if (count _cars < 2) exitWith { hint parseText format["<t color='#5A80EB'><t align='center'><t size='1.5'>ERROR!</t></t><br/><t color='#FF0000'><t size='1'>No Vehicle!</t></t>"]; }; _vehicle = (_cars select 1); _type = getText(configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "displayName"); if (count(crew(_vehicle)) == 0) exitWith { hint parseText format["<t color='#5A80EB'><t align='center'><t size='1.5'>ERROR!</t></t><br/><t color='#FF0000'><t size='1'>No vehicles in motion!</t></t>"]; }; _speed = round speed(_vehicle); _owner = [_vehicle getVariable "vehicle_info_owners"] call life_fnc_vehicleOwners; // Format speed & owner below here if (_speed > 110) then { _info = format["<t color='#5A80EB'><t size='1.5'><t align='center'>Radar<br/><t color='#FF0000'><t align='center'><t size='1'>Speed %1 km/h", _speed]; } else { _info = format["<t color='#5A80EB'><t size='1.5'><t align='center'>Radar<br/><t color='#33CC33'><t align='center'><t size='1'>Speed %1 km/h", _speed]; }; if (isNil { _owner }) then { _info = _info + format["<br/><t color='#FFD700'><t size='1.5'><t align='center'>Owner:<br/><t color='#33CC33'><t align='center'><t size='1.8'> Not Found!"]; } else { _info = _info + format["<br/><t color='#5A80EB'><t size='1.5'><t align='center'>Owner(s):<br/><t color='#33CC33'><t align='center'><t size='1'> %1", _owner]; }; _info = _info + format["<br/><t color='#5A80EB'><t size='1.5'><t align='center'>Véhicule:<br/><t color='#33CC33'><t align='center'><t size='1'> %1", _type]; if ((_driver getVariable "isWanted")) then { _info = _info + format["<br/><t color='#F00'><t size='1.5'><t align='center'>The driver is wanted"]; } else { _info = _info + format["<br/><t color='#0F0'><t size='1.5'><t align='center'>The driver is wanted"]; }; hint parseText _info; Step 2: go into core\functions\fn_hudupadate.sqf then add this to it: if(playerSide == civilian) then { if(wanted_status > 0) then { LIFEctrl(IDC_LIFE_BAR_WANTED) progressSetPosition (100); LIFEctrl(IDC_LIFE_BAR_CLEAR) progressSetPosition (0); //LIFEctrl(IDC_LIFE_WANTED_TEXT) ctrlSetText format["$%1", ([wanted_status] call life_fnc_numberText)]; LIFEctrl(IDC_LIFE_WANTED_TEXT) ctrlSetText format["%1", "WANTED"]; player setVariable ["isWanted", true, true]; } else { LIFEctrl(IDC_LIFE_BAR_WANTED) progressSetPosition (0); LIFEctrl(IDC_LIFE_BAR_CLEAR) progressSetPosition (100); LIFEctrl(IDC_LIFE_WANTED_TEXT) ctrlSetText format["%1", "NOT WANTED"]; player setVariable ["isWanted", false, true]; }; } Step 3: core\functions\fn_keyHandler.sqf replace case 38 with this (should be around line 200 and something): case 38: //Shift-L = Gyrophare / L= Radar { _veh = vehicle player; if (_shift && !_alt && !_ctrlKey) then { if(playerSide in [west,independent] && _veh != player && ((driver _veh) == player)) then { if(!isNil {_veh getVariable "lights"}) then { if(playerSide == west) then { [_veh] call life_fnc_sirenLights; } else { [_veh] call life_fnc_medicSirenLights; }; }; }; _handled = true; }; if (!_alt && !_ctrlKey && playerSide == west) then { [] call life_fnc_radar; }; }; Done! Any questions post a comment and ask! (if you paste something and it looks funny, go here)
  27. 4 likes
    maca134 Third Party Developer Site: http://marma.io mARMA is a web-based tool that monitors various aspects of your ARMA server. Inspired by the well-known tool ASM, mARMA has been developed further to make remote-administration easier. mARMA has been written so work is as many places as possible including GSP servers, Windows & Linux dedicated servers. Monitor Performance CPS, FPS, IO, Memory, Objects, Players are monitored by default. Ability to add monitor any ingame custom values, i.e Vehicles, Buildings, Dead Bodies, Rabbits Custom Message Events & Metric History The ability log custom messages to mARMA.io. Maybe you want to log what your admins are doing? Live Maps 2D & 3D Maps Support for AIATIP / CUPS Terrains / Bornholm / Esseker Watch player movements, with red tail lines. Remote Execute Commands Run Custom SQF Code to execute on your server. Ability to save SQF Code for future use or for other admins on your server. Share Access with other Admins You are able to define what your admins are allowed to access i.e access Performance, Live Maps, Remote Code Execution etc… We have more feature just around the corner too! Developers: Torndeco & Maca134 http://marma.io
  28. 4 likes
    I like how you keep updating your post on the changes you do to your server.
  29. 4 likes
    Good luck with this new ad, i just hope your last attempted hasn't messed your chances up.
  30. 4 likes
    @Kaiman™ * Publiclir.se problem has been solved! I hopped on teamviewer and helped him out! The problem was the missing [] execVM "\life_server\Functions\DynMarket\fn_config.sqf"; in the Life_Server\init.sqf file. Remember that line folks on 4.4 +
  31. 4 likes
  32. 4 likes
    Do you have any proof because at the moment your just slandering a server and looking silly.
  33. 4 likes
    ARMA NEXUS METROPOLIS What we need: We need developers, and we need players. Developers will be expected to be active, we will treat you with respect and let you work at your own pace. Once you get to know us you will find we are very friendly people. [We do not pay developers nor ourselves, all money goes towards the server] Content: Over 200 new vehicles Strict Roleplay Custom Scripts to improve your experience Contact: Forums: http://arma-nexus.com/forums/ Discord: https://discord.gg/JyP7svp Teamspeak: ts3.arma-nexus.com More Screenshots: Phone and UI: http://images.akamai.steamusercontent.com/ugc/480020637374968318/ED38AD4D25D3FA31F9DBD8A8C619817F32AA8341/ A few cars: http://images.akamai.steamusercontent.com/ugc/276237827945429295/0EEC4FFAD30C20D14A9423B9DA28E4790A83FDAB/ Map: http://images.akamai.steamusercontent.com/ugc/276237827945447174/05914009861D15B65170B87BEDF19F1BB7356E42/ More Map: http://images.akamai.steamusercontent.com/ugc/276237827945447030/7B78B4507CB41B3F525C2D795EC263761C789A6A/ Even More Map: http://images.akamai.steamusercontent.com/ugc/276237827945446842/EC1567CEFA78F41E500646FB57AB47DC35DFBE30/ Also Map: http://images.akamai.steamusercontent.com/ugc/276237827945446675/B547478C51EA500C7CF1BB8E8ACD79FE32F3D306/ Come on the discord or forums and contact me if you're interested in developing, feel free to join and discuss things if you're interested, thanks.
  34. 4 likes
    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Difficulty: Easy Publish by: suffer4real Source AltisLifeRPG.com cache -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Hello, many of you probably know this problem. Then let's start Open your " fn_initCop.sqf " and replaced this block: if(!(str(player) in ["cop_1","cop_2","cop_3","cop_4"])) then { if((FETCH_CONST(life_coplevel) == 1) && (FETCH_CONST(life_adminlevel) == 1)) then { ["NotWhitelisted",false,true] call BIS_fnc_endMission; sleep 35; }; }; Replace With : if(!(str(player) in ["cop_99"])) then { if((FETCH_CONST(life_coplevel) < 1) && (FETCH_CONST(life_adminlevel) == 0)) then { ["NotWhitelisted",false,true] call BIS_fnc_endMission; sleep 35; }; }; Now open your Mission.sqm and change cop_1, cop_2, cop_3, cop_4 with your desired name Example: ( WhiteListed - Cop 1 )
  35. 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.
  36. 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). 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: //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"}; }; 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!
  37. 3 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
  38. 3 likes
    Welcome to the official advertisement thread for XtG Community's Altis Life HD Server! Information Links: Website Forums XtG Community AU/NZ - Altis Life HD | Art Gallery | AI Missions | 250k Start Current Server Patch: V1 Connection Info: 45.121.210.47:2372 Query Info: 45.121.210.47:2373 So i decided to come back to the Altis Life RPG forums just to advertise my server, I hope i don't get banned again. XtG Community is starting to finally grow grossing at the 4th best Altis Life server in Australia. Wanted to say a huge thanks to all of our player supporters and community members. What makes us different? The server in general. We're not affiliated with the AltisLifeRPG Framework, We still use Tonics database functions etc but most of the mission file of AltisLifeRPG have been removed and re-written into a new format "ALRPG FrameworK" - We created our map layout with all of its resources and content. Bringing you something different. Elite IV - Owner & Developer of XtG Community - "It's been a dream of mine to operate and develop a community from the ground up and keep it active with sum of players, Ever since the growth of XtG Community (2010) we have expanded our knowledge and grown so well i must say we're here to stay. I'm currently 19 years old at the date of this post, with somewhat advanced knowledge in Java and Intermediate knowledge in C#/C++ & Arma 3 Scripting. Running the server with very little money budget! I ain't giving up." Feature Highlights of the server: Dynamic Market System Convoy Missions The Purge Events Immersive Introduction Visually & Audio Resistance Faction / Bases Toilet Script Cell Phone Script Indicator Script Casino Skilling System Active & Supportive Staff Friendly Community Custom Vehicle Skins For Civilian & Police extDB Loading Screen Speed Cameras Active Playerbase & Staff Shipwrecks Drag Dead Bodies & Hide Them Unique Server Layout Overwhelming Amount of Farm-able Resources Steal Kidneys Function Black Market System Highscores Ranking System for Players/Gangs/Player Levels 0 Client & Server RPT Errors. Storyline In the year 2019 a country called Australia there lived a population of people of 22 million residents and counting. All mixed of Police, Medics, Resistance, Civilians, Military Personal and more. It was a everyday life up until the crises of the economy crash. Everything like cars, food, jobs and resources including drugs and guns dropped dramatically in price putting the state at warfare, the people never really knew the truth to why the economy crashed. Rumor had it that some high head was controlling the markets and then died. The death of the government associate was extremely overwhelming on the stock marketers and everyone to this day is still trying to piece everything correctly. Most people believe and blame the Resistance for the assassination of the government associate which caused the economy to crash in an attempt to try and bring everyone to their knees. The only problem is, That's what the media said. Before the crisis happened of the government politician being killed, someone higher than him wanted to be further up the markets, wanted more control, wanted everything. HE hired the hit of the government politician and anyone involving the hit was.... killed. Other government politicians were promised if they were to chip in to the deal at around 3 million each (With all 20 politics) they would get 15% each zone on the markets. That didn't happen. Instead he took it all, using the money they given him to hire a hit. A resistance members is true to their code and live by the means of "Assassination" in the true world of real organized crime, Resistance live to the name. They are the only people left in the world to know what really happened. Now the government has ruled out any private contractors and mercenary's. In an attempt to shut them up hes put every military personal, DEA, SAS, AOS and even the damn cop force to look and KILL ON SIGHT any contractor or anyone part of the hitmen underground. The Resistance now have to hide and gather funds in the illegal lands just south of the restricted border where no government agent dares to cross and take private contracts through their encrypted database, Even some corrupt police officers use the hitman network still. In the realistic world Civilians still think Resistance are bad people and do things for a bad cause and the Government doing things for a good cause but the Resistance still yet have something to prove to the population of Australia. Proudly Supported By: Special thanks to: Media - Videos & Screenshots
  39. 3 likes
    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.
  40. 3 likes
    Hi, after some doing i was able to make a Zip Tie script PLEASE READ THIS. This script was made for my server, i decided to release it anyways. It is provided as is, and wont be updated anymore. You can currently Ziptie civs not cops, anyone can pull people out of vehicles. You will have to script this to your server needs. If you dont know how your going to have to learn. If I ever update this script i will be rewriting everything. Feel free to update it on your own, but remember to share with the community. Difficulty: Medium Author: jmuirhead(With some help from AlaskaVet) This is my first tutorial, let me know what needs change or if im missing anything. Also thanks to AlaskaVet for helping me with a large portion of it! 1. Open your functions.hpp and in the civilian class add the following. class civInteractionMenu {}; It should look something like this: class Civilian { file = "core\civilian"; class jailMe {}; class civMarkers {}; class jail {}; class tazed {}; class knockedOut {}; class knockoutAction {}; class robReceive {}; class robPerson {}; class removeLicenses {}; class demoChargeTimer {}; class civLoadout {}; class freezePlayer {}; class civInteractionMenu {}; class civStripGuns {}; }; 2. Now we're going to add a new item. Open the Config_vItems.hpp and add class zipties { variable = "zipties"; displayName = "STR_Item_ZipTies"; weight = 0; buyPrice = 1200; sellPrice = -1; illegal = true; edible = -1; icon = "icons\ziptie.paa"; }; at the bottom. 3. Open up stringtable.xml and add: <Key ID="STR_Item_ZipTies"> <Original>ZipTies</Original> </Key> 3. Go to the /core/functions/ and open fn_keyHandler.sqf 4. Add case 48: { //The number, 48, is the key that has to be pressed in order to zip tie someone currently "b" if(_shift) then {_handled = true;}; //This makes it so they have to hold shift + key(48) to work. if(playerSide in [west,independent]) exitWith {};//Makes it so police and EMS cant zip tie people if !(license_civ_rebel) exitWith { hintSilent "You need a rebel training!"; };//Add required license's. Remove the whole line if you dont want any checks if(_shift && playerSide == civilian && !isNull cursorTarget && cursorTarget isKindOf "Man" && (isPlayer cursorTarget) && (side cursorTarget in [civilian,east]) && alive cursorTarget && cursorTarget distance player < 3.5 && !(cursorTarget getVariable "Escorting") && !(cursorTarget getVariable "restrained") && speed cursorTarget < 1) then { if([false,"zipties",1] call life_fnc_handleInv) then//Removes the zipties from the inventory { [] call life_fnc_RestrainAction; hintSilent "You have cuffed him! "; } else { hintSilent "You don't have zipties"; }; }; }; 5. Go to /core/civilian/ create a new file. Name it: fn_civInteractionMenu.sqf #include "..\..\script_macros.hpp" /* File: fn_civInteractionMenu.sqf Author: jmuirhead(help from AlaskaVet) Description: Replaces the mass addactions for various cop actions towards another player. */ #define Btn1 37450 #define Btn2 37451 #define Btn3 37452 #define Btn4 37453 #define Btn5 37454 #define Btn6 37455 #define Btn7 37456 #define Btn8 37457 #define Btn9 37458 #define Title 37401 private["_display","_curTarget","_seizeRank","_Btn1","_Btn2","_Btn3","_Btn4","_Btn5","_Btn6","_Btn7","_Btn9"]; disableSerialization; _curTarget = param [0,ObjNull,[ObjNull]]; if(isNull _curTarget) exitWith {closeDialog 0;}; //Bad target if(!dialog) then { createDialog "pInteraction_Menu"; }; if(!isPlayer _curTarget && side _curTarget == civilian) exitWith {closeDialog 0;}; //Bad side check? if(player distance _curTarget > 5 ) exitWith {closeDialog 0;}; // Prevents menu accessing from far distances. _display = findDisplay 37400; _Btn1 = _display displayCtrl Btn1; _Btn2 = _display displayCtrl Btn2; _Btn3 = _display displayCtrl Btn3; _Btn4 = _display displayCtrl Btn4; _Btn5 = _display displayCtrl Btn5; _Btn6 = _display displayCtrl Btn6; _Btn7 = _display displayCtrl Btn7; _Btn9 = _display displayCtrl Btn9; life_pInact_curTarget = _curTarget; //Set Unrestrain Button _Btn1 ctrlSetText localize "STR_pInAct_Unrestrain"; _Btn1 buttonSetAction "[life_pInact_curTarget] call life_fnc_unrestrain; closeDialog 0;"; //Set Escort Button _Btn2 ctrlSetText localize "STR_pInAct_Escort"; _Btn2 buttonSetAction "[life_pInact_curTarget] call life_fnc_escortAction; closeDialog 0;"; _Btn3 ctrlSetText localize "STR_pInAct_StopEscort"; _Btn3 buttonSetAction "[life_pInact_curTarget] call life_fnc_stopEscorting; [life_pInact_curTarget] call life_fnc_civInteractionMenu;"; _Btn4 ctrlSetText localize "STR_pInAct_PutInCar"; _Btn4 buttonSetAction "[life_pInact_curTarget] call life_fnc_putInCar;"; 6. Now go to your /core/actions/ and open fn_restrainAction and replace it with this code #include "..\..\script_macros.hpp" /* File: fn_restrainAction.sqf Author: Bryan "Tonic" Boardwine Description: Retrains the target. */ private["_unit"]; _unit = cursorObject; if(isNull _unit) exitWith {}; //Not valid if((player distance _unit > 3)) exitWith {}; if((_unit getVariable "restrained")) exitWith {}; if(side _unit isEqualTo west) exitWith {}; if(player isEqualTo _unit) exitWith {}; if (side player isEqualTo civilian) then { if(life_inv_zipties < 1) exitWith { hintSilent "You dont have any zipties"; }; life_inv_zipties = life_inv_zipties - 1; hintSilent "You have ziptied him"; }; if(!isPlayer _unit) exitWith {}; //Broadcast! _unit setVariable["restrained",true,true]; [player] remoteExec ["life_fnc_restrain",_unit]; [0,"STR_NOTF_Restrained",true,[_unit getVariable["realname", name _unit], profileName]] remoteExecCall ["life_fnc_broadcast",west]; 7. Go to your /core/vehicle/ and open fn_vInteractionMenu.sqf and replace the code with #include "..\..\script_macros.hpp" /* File: fn_vInteractionMenu.sqf Author: Bryan "Tonic" Boardwine Description: Replaces the mass addactions for various vehicle actions */ #define Btn1 37450 #define Btn2 37451 #define Btn3 37452 #define Btn4 37453 #define Btn5 37454 #define Btn6 37455 #define Title 37401 private["_display","_curTarget","_Btn1","_Btn2","_Btn3","_Btn4","_Btn5","_Btn6","_dlcVehicles"]; if(!dialog) then { createDialog "vInteraction_Menu"; }; disableSerialization; _curTarget = param [0,ObjNull,[ObjNull]]; if(isNull _curTarget) exitWith {closeDialog 0;}; //Bad target _isVehicle = if((_curTarget isKindOf "landVehicle") OR (_curTarget isKindOf "Ship") OR (_curTarget isKindOf "Air")) then {true} else {false}; if(!_isVehicle) exitWith {closeDialog 0;}; _display = findDisplay 37400; _Btn1 = _display displayCtrl Btn1; _Btn2 = _display displayCtrl Btn2; _Btn3 = _display displayCtrl Btn3; _Btn4 = _display displayCtrl Btn4; _Btn5 = _display displayCtrl Btn5; _Btn6 = _display displayCtrl Btn6; life_vInact_curTarget = _curTarget; _dlcVehicles = ["C_Kart_01_Blu_F","C_Kart_01_Red_F","C_Kart_01_Fuel_F","C_Kart_01_Vrana_F","B_Heli_Transport_03_F","B_Heli_Transport_03_unarmed_F","O_Heli_Transport_04_F","O_Heli_Transport_04_ammo_F","O_Heli_Transport_04_bench_F","O_Heli_Transport_04_box_F","O_Heli_Transport_04_covered_F","O_Heli_Transport_04_fuel_F","O_Heli_Transport_04_medevac_F","O_Heli_Transport_04_repair_F"]; //Set Repair Action _Btn1 ctrlSetText localize "STR_vInAct_Repair"; _Btn1 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_repairTruck;"; if("ToolKit" in (items player) && (damage _curTarget < 1)) then {_Btn1 ctrlEnable true;} else {_Btn1 ctrlEnable false;}; if(playerSide == west) then { _Btn2 ctrlSetText localize "STR_vInAct_Registration"; _Btn2 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_searchVehAction;"; _Btn3 ctrlSetText localize "STR_vInAct_SearchVehicle"; _Btn3 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_vehInvSearch;"; _Btn4 ctrlSetText localize "STR_vInAct_PullOut"; _Btn4 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_pulloutAction;"; if(count crew _curTarget == 0) then {_Btn4 ctrlEnable false;}; _Btn5 ctrlSetText localize "STR_vInAct_Impound"; _Btn5 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_impoundAction;"; if(_curTarget isKindOf "Ship") then { _Btn6 ctrlSetText localize "STR_vInAct_PushBoat"; _Btn6 buttonSetAction "[] spawn life_fnc_pushObject; closeDialog 0;"; if(_curTarget isKindOf "Ship" && {local _curTarget} && {count crew _curTarget == 0}) then { _Btn6 ctrlEnable true;} else {_Btn6 ctrlEnable false}; } else { if((typeOf (_curTarget) in _dlcVehicles) && !(288520 in getDLCs 1)) then { if(_curTarget isKindOf "Air") then { _Btn6 ctrlSetText localize "STR_vInAct_GetInHeli"; } else { _Btn6 ctrlSetText localize "STR_vInAct_GetInKart"; }; _Btn6 buttonSetAction "player moveInDriver life_vInact_curTarget; closeDialog 0;"; if(count crew _curTarget == 0 && {canMove _curTarget} && {locked _curTarget == 0}) then {_Btn6 ctrlEnable true;} else {_Btn6 ctrlEnable false}; } else { _Btn6 ctrlSetText localize "STR_vInAct_Unflip"; _Btn6 buttonSetAction "life_vInact_curTarget setPos [getPos life_vInact_curTarget select 0, getPos life_vInact_curTarget select 1, (getPos life_vInact_curTarget select 2)+0.5]; closeDialog 0;"; if(count crew _curTarget == 0 && {canMove _curTarget}) then { _Btn6 ctrlEnable false;} else {_Btn6 ctrlEnable true;}; }; }; } else { if(_curTarget isKindOf "Ship") then { _Btn2 ctrlSetText localize "STR_vInAct_PushBoat"; _Btn2 buttonSetAction "[] spawn life_fnc_pushObject; closeDialog 0;"; if(_curTarget isKindOf "Ship" && {local _curTarget} && {count crew _curTarget == 0}) then { _Btn2 ctrlEnable true;} else {_Btn2 ctrlEnable false}; } else { if((typeOf (_curTarget) in _dlcVehicles) && !(288520 in getDLCs 1)) then { if(_curTarget isKindOf "Air") then { _Btn2 ctrlSetText localize "STR_vInAct_GetInHeli"; } else { _Btn2 ctrlSetText localize "STR_vInAct_GetInKart"; }; _Btn2 buttonSetAction "player moveInDriver life_vInact_curTarget; closeDialog 0;"; if(count crew _curTarget == 0 && {canMove _curTarget} && {locked _curTarget == 0}) then {_Btn2 ctrlEnable true;} else {_Btn2 ctrlEnable false}; } else { _Btn2 ctrlSetText localize "STR_vInAct_Unflip"; _Btn2 buttonSetAction "life_vInact_curTarget setPos [getPos life_vInact_curTarget select 0, getPos life_vInact_curTarget select 1, (getPos life_vInact_curTarget select 2)+0.5]; closeDialog 0;"; if(count crew _curTarget == 0 && {canMove _curTarget}) then { _Btn2 ctrlEnable false;} else {_Btn2 ctrlEnable true;}; }; }; if(typeOf _curTarget == "O_Truck_03_device_F") then { _Btn3 ctrlSetText localize "STR_vInAct_DeviceMine"; _Btn3 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_deviceMine"; if(!isNil {(_curTarget getVariable "mining")} OR !local _curTarget && {_curTarget in life_vehicles}) then { _Btn3 ctrlEnable false; } else { _Btn3 ctrlEnable true; }; } else { _Btn3 ctrlShow false; }; if(license_civ_rebel) then { _Btn4 ctrlSetText localize "STR_vInAct_PullOut"; _Btn4 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_pulloutAction;"; if(count crew _curTarget == 0) then {_Btn4 ctrlEnable false;}; } else{ _Btn4 ctrlShow false; }; _Btn5 ctrlShow false; _Btn6 ctrlShow false; }; 7.Go to your/core/functions/ and open fn_actionKeyHandler.sqf Find if (isPlayer _curObject && _curObject isKindOf "Man") then { if ((_curObject getVariable ["restrained",false]) && !dialog && playerSide isEqualTo west) then { [_curObject] call life_fnc_copInteractionMenu; }; and right after the last semi-colon and before the " } else { " and add if ((_curObject getVariable ["restrained",false]) && !dialog && playerSide == civilian) then { [_curObject] call life_fnc_civInteractionMenu; }; It should look something like this if(isPlayer _curObject && _curObject isKindOf "Man") then { if((_curObject getVariable ["restrained",false]) && !dialog && playerSide == west) then { [_curObject] call life_fnc_copInteractionMenu; }; if ((_curObject getVariable ["restrained",false]) && !dialog && playerSide == civilian) then { [_curObject] call life_fnc_civInteractionMenu; }; } else { Thats it! Let's hope i didnt forget anything. Enjoy! If you get any error post your rpt logs. Click here to see how on the offical wiki. Here is the ziptie icon for those who need it. ziptie.paa
  41. 3 likes
    If you dont know how to do that, why did you purchase the script?
  42. 3 likes
    Well I have used some of the tutorials found here and thought it is only fair for me to put one up for what I made the other day. Apologies if my script is not optimised etc, one of my friends told me I write "wet" code. Difficulty: Easy Framework Version: 4.4r3 10 damage every 5 seconds can be set to whatever you want. If wearing the set clothing no damage but you still get the effects. Right start with the map side, in the mission editor you need to create a trigger point, the size does not matter, you can have it as big or as small as you want. Once created you need to edit its properties so right click the trigger point and click properties. you should get this menu. the Variable name can be anything you want, you need to set the "Trigger: Activation" and "Trigger: Expression" Trigger: Activation Type: None Activation: Anybody Activation Type: Present Repeatable: Yes Server Only: No Trigger: Expression Condition: this && (local player) && (vehicle player in thisList) On Activation: hint parseText format ["<t color='#0eb0ff'>You have entered a radioactive area!</t>"]; player setVariable ["exitRad",false]; player call life_fnc_radArea; On Deactivation: hint parseText format ["<t color='#0eb0ff'>You are leaving the radioactive area!</t>"]; player setVariable ["exitRad",true]; Click ok, save the mission and that is the map side done. Now for the mission file. Create a new file in Altis_Life.Altis\core\functions called fn_radArea.sqf, then copy and paste the below script inside it. If you want to set how often damage is caused just edit the "sleep 5," to however long you want. If you want to edit how much damage is caused edit the "_player setDamage (_damage + 0.1)" remember 0 is 100% of health 1 is dead. To set what clothing is required to be warn edit the "if ((_uniform isEqualTo "U_B_Wetsuit") && (_vest isEqualTo "V_RebreatherB") && (_goggles isEqualTo "G_Diving")) then". #include "..\..\script_macros.hpp" /* fn_radArea.sqf Created by Fuel for RebornRoleplay.com [UK/EU] Reborn Roleplay | RebornRoleplay.co.uk */ _player = [_this,0,objNull,[objNull]] call BIS_fnc_param; _damage = getDammage _player; _uniform = uniform _player; _vest = vest _player; _goggles = goggles _player; _rad1 = ppEffectCreate ["ChromAberration",200]; _rad2 = ppEffectCreate ["DynamicBlur",500]; _rad3 = ppEffectCreate ["FilmGrain",2000]; if (!alive _player || (_damage == 1) || (_player getVariable ["exitRad",true])) exitWith { _player setVariable ["exitRad",true]; _rad1 ppEffectEnable false; _rad1 ppEffectAdjust [0,0,true]; _rad1 ppEffectCommit 1; _rad2 ppEffectEnable false; _rad2 ppEffectAdjust [0]; _rad2 ppEffectCommit 1; _rad3 ppEffectEnable false; _rad3 ppEffectAdjust [0,0,0,0,0,true]; _rad3 ppEffectCommit 1;}; // this is the check to see if they are wearing protective clothing if ((_uniform isEqualTo "U_B_Wetsuit") && (_vest isEqualTo "V_RebreatherB") && (_goggles isEqualTo "G_Diving")) then { //rad sound _player say2d "rad"; // edit this for the length of the effect for "_i" from 0 to 4 do { _rad1 ppEffectEnable true; _rad1 ppEffectAdjust [-0.02,0,true]; _rad1 ppEffectCommit 1; _rad2 ppEffectEnable true; _rad2 ppEffectAdjust [0.03]; _rad2 ppEffectCommit 1; _rad3 ppEffectEnable true; _rad3 ppEffectAdjust [0.12,1.52,3.54,2,2,true]; _rad3 ppEffectCommit 1; }; sleep 5; //loops the script until they exit [_player] remoteExec ["life_fnc_radArea",_player]; } else { //rad sound _player say2d "rad"; // edit this for the length of the effect for "_i" from 0 to 4 do { _rad1 ppEffectEnable true; _rad1 ppEffectAdjust [-0.02,0,true]; _rad1 ppEffectCommit 1; _rad2 ppEffectEnable true; _rad2 ppEffectAdjust [0.03]; _rad2 ppEffectCommit 1; _rad3 ppEffectEnable true; _rad3 ppEffectAdjust [0.12,1.52,3.54,2,2,true]; _rad3 ppEffectCommit 1; }; sleep 5; //set the damage to player _player setDamage (_damage + 0.1); //loops the script until they exit [_player] remoteExec ["life_fnc_radArea",_player]; }; Now open your Functions.hpp, and paste class radArea {}; inside of class Functions { file = "core\functions"; Now open cfgRemoteEcec.hpp, and paste F(life_fnc_radArea,CLIENT) inside of class CfgRemoteExec { class Functions { mode = 1; jip = 0; /* Client only functions */ Now open description.ext, and paste class rad { name = "rad"; sound[] = {"\sounds\rad.ogg", 0.25, 1}; titles[] = {}; }; inside of class CfgSounds { sounds[] = {}; Now copy the attached sound file called rad.ogg and paste it into Altis_life.Altis/sounds/ And you are done, I do not think I have missed anything. here if a quick video of it in action. rad.ogg
  43. 3 likes
    ============================================================================================================ Difficulty: Easy Tutorial By: Hyper4u ============================================================================================================ Open fn_keyHandler.sqf add save and your done! now press "§" button ingame on a vehicle with a player in or just a player Here are the different key codes you can use AND DONT FORGET TO LEAVE A LIKE! THANKS
  44. 3 likes
    If you little knowledge whats the reason your setting a server up (do you not like other servers , Keep getting banned , many more reasons). What have you done so far to the server or is it vanilla?. Will you be giving the server a chance or shut it down after a few days? devs hate putting work in to a server just to shut down.
  45. 3 likes
    Sorry to say but your ad is a bit plain you need to add a bit more to your ad ie add some pics, what custom scripts you have, what type of player you want, what members get as you put you want dedication and activity from our members, some history. If you do this you will get people to join. Just trying to help.
  46. 3 likes
    You gotta remove some extra stuff when you disable spyglass with Dynamic market. Hit me up on steam and i will help you out
  47. 3 likes
    Add me on steam (link should be further up) or contact me on discord and I'll help you out:)
  48. 3 likes
    I went and took a look at this server and its really good has a lot of really good custom stuff, recommend you taking a look. Big thumbs up
  49. 3 likes
    I dug deeper... "150+ slots. We are currently developing 500 player slots!"
  50. 3 likes
    Come check out our new Altis server. We have much custom content to give you the best experience you can have. We will continue to put out new content. We have very friendly and fun staff. We are still fairly new and need players to help find any bugs/issues. We also will take our community opinion on what they would like see added to the server and try to put it in to keep things fresh and fun. Looking for good cops and medics. Come give us a try and let us know what you think. Website. Realaltis.com Teamspeak- ts.realaltis.com