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.

IceEagle132

Members
  • Content count

    376
  • Joined

  • Last visited

Everything posted by IceEagle132

  1. This a older script from the old Altis Life Site. Author: RYN_Ryan Updated By: AlaskaVet All Edits are done in your life_server 1. inside life_server\init.sqf Add: [] execVM "\life_server\Functions\Airdrop\config.sqf"; [] execVM "\life_server\Functions\Airdrop\fn_generateAirdropAuto.sqf"; 2. Open life_server\config.cpp under class TON_System Add: class Airdrop { file = "\life_server\Functions\Airdrop"; class generateAirdrop {}; }; 3. Put the Airdrop folder in life_server\Functions And your All done. To edit were the airdrops drop, Open life_server\Functions\Airdrop\config.sqf Add the cords that you want in this line. All these are near Kavala. airdrop_positions = [[5228.49,12576.7,0],[5560.94,14875.2,0],[7138.13,13083,0],[5863.29,10692.5,0]]; To change the time of how often the drops happen, Open life_server\Functions\Airdrop\config.sqf This is set for 1 every 2 hours _airdrop_time_interval = [1,2]; Enjoy AlaskaVet Airdrop.rar
  2. Author: "John Meiers & TrinityNetwork because I took this from their server. Posted by: AlaskaVet Fist of create a new file inside "Altis_Life.Altis\core\actions" & name it "fn_suicideBomb.sqf" Add the following: #include "..\..\script_macros.hpp" /* ALAH SNACKBAR! */ private["_boom", "_list"]; _player = player; if(vest player != "V_HarnessOGL_gry") exitWith {}; if(life_isSuicide) exitWith {}; life_isSuiciding = true; _player say3D "akbar"; sleep 8; if(vest player != "V_HarnessOGL_gry") exitWith {life_isSuiciding = false;}; if((player getVariable "restrained")) exitWith {life_isSuiciding = false;}; //He's restrained. if((player getVariable "zipted")) exitWith {life_isSuiciding = false;}; //He's restrained. //BOOM removeVest player; removeAllWeapons player: removeAllAssignedItems player; _boom = "Bo_Mk82" createVehicle [0,0,9999]; _boom setPos (getPos player); _boom setVelocity [100,0,0]; if(alive player) then {player setDamage 1;}; life_isSuicide = false; player setVariable["zipted", false, true]; player setVariable["restrained", false, true]; [] call SOCK_fnc_updateRequest; [0,format["BREAKING NEWS: A suicide vest was detonated by %1!",profileName]] remoteExec ["life_fnc_broadcast",0]; The open "configuration.sqf" and in the "Backend Variables" Add life_isSuiciding = false; Now open your "fn_setupActions.sqf" and add under "case civilian" //Suicide alahsnackbar life_actions = life_actions + [player addAction["<t color='#FF0000'>Activate Suicide Vest</t>",life_fnc_suicideBomb,"",0,false,false,"",' vest player == "V_HarnessOGL_gry" && alive player && playerSide == civilian && !life_istazed && !(player getVariable "restrained") && !(player getVariable "Escorting") && !(player getVariable "transporting")']]; Open "Functions.hpp" Under "class Actions" Add class suicideBomb {}; Now open "description.ext" and under "class CfgSounds" Add class akbar { name = "akbar"; sound[] = {"\sounds\akbar.ogg",1.0, 1}; titles[] = {}; }; Then download the sound file from below and add it to your sounds folder. And that's it. The vest is set to "V_HarnessOGL_gry" but you can change it to what ever you want. akbar.ogg
  3. Author: ScarsoLP Post From: Click Me Step One: Create a file in the functions folder called fn_initPayChecks.sqf and then copy and paste the code below. #include "..\..\script_macros.hpp" /* File: fn_initPayChecks.sqf Author: ScarsoLP Description: Changes The Player(s) paycheck depending on what rank/level they are in the Police/NHS/Donator. Also changes the palyer(s) paycheck depending on what licenses they have. */ /* Changes The Paycheck Depending On Levels */ switch (playerSide) do { case west: { switch(FETCH_CONST(life_coplevel)) do { case 0: {life_paycheck = life_paycheck + 0;}; case 1: {life_paycheck = life_paycheck + 2000;}; case 2: {life_paycheck = life_paycheck + 2500;}; case 3: {life_paycheck = life_paycheck + 3000;}; case 4: {life_paycheck = life_paycheck + 3500;}; case 5: {life_paycheck = life_paycheck + 4000;}; case 6: {life_paycheck = life_paycheck + 4500;}; case 7: {life_paycheck = life_paycheck + 5000;}; }; switch(FETCH_CONST(life_donorlevel)) do { case 0: {life_paycheck = life_paycheck + 0;}; case 1: {life_paycheck = life_paycheck + 2000;}; case 2: {life_paycheck = life_paycheck + 2500;}; case 3: {life_paycheck = life_paycheck + 3000;}; case 4: {life_paycheck = life_paycheck + 3500;}; case 5: {life_paycheck = life_paycheck + 4000;}; }; }; case independent: { switch(FETCH_CONST(life_mediclevel)) do { case 0: {life_paycheck = life_paycheck + 0;}; case 1: {life_paycheck = life_paycheck + 2000;}; case 2: {life_paycheck = life_paycheck + 2500;}; case 3: {life_paycheck = life_paycheck + 3000;}; case 4: {life_paycheck = life_paycheck + 3500;}; case 5: {life_paycheck = life_paycheck + 4000;}; }; switch(FETCH_CONST(life_donorlevel)) do { case 0: {life_paycheck = life_paycheck + 0;}; case 1: {life_paycheck = life_paycheck + 2000;}; case 2: {life_paycheck = life_paycheck + 2500;}; case 3: {life_paycheck = life_paycheck + 3000;}; case 4: {life_paycheck = life_paycheck + 3500;}; case 5: {life_paycheck = life_paycheck + 4000;}; }; }; case civilian: { switch(FETCH_CONST(life_donorlevel)) do { case 0: {life_paycheck = life_paycheck + 0;}; case 1: {life_paycheck = life_paycheck + 2000;}; case 2: {life_paycheck = life_paycheck + 2500;}; case 3: {life_paycheck = life_paycheck + 3000;}; case 4: {life_paycheck = life_paycheck + 3500;}; case 5: {life_paycheck = life_paycheck + 4000;}; }; }; }; Step Two: go to the Functions.hpp under class Functions add: class initPayChecks {}; Step Three: Add this call at the bottom in fn_initMedic.sqf, fn_initCop.sqf, fn_initCiv.sqf [] call life_fnc_initPayChecks; There is probably a better file to call for this but I have always had the call here so it will stay here. Now you can change the values in the script to fit what you would like and have a blast
  4. Difficulty: Easy Create Original Idea : Kuchiha Authors: AlaskaVet Okay in core/items make a new file called "fn_weed.sqf" /* Author:AlaskaVet */ //Close inventory closeDialog 0; //Little hint then wait a litle before starting drugs effects hint "Winners don't use drugs !"; sleep 3; //Activate ppEffects we need "chromAberration" ppEffectEnable true; "radialBlur" ppEffectEnable true; enableCamShake true; _smoke = "SmokeShellGreen" createVehicle position player; if (vehicle player != player) then { _smoke attachTo [vehicle player, [-0.6,-1,0]]; } else { _smoke attachTo [player, [0,-0.1,1.5]]; }; //Let's go for 45secs of effetcs for "_i" from 0 to 44 do { "chromAberration" ppEffectAdjust [random 0.25,random 0.25,true]; "chromAberration" ppEffectCommit 1; "radialBlur" ppEffectAdjust [random 0.02,random 0.02,0.15,0.15]; "radialBlur" ppEffectCommit 1; addcamShake[random 3, 1, random 3]; sleep 1; }; //Stop effects "chromAberration" ppEffectAdjust [0,0,true]; "chromAberration" ppEffectCommit 5; "radialBlur" ppEffectAdjust [0,0,0,0]; "radialBlur" ppEffectCommit 5; sleep 6; //Deactivate ppEffects "chromAberration" ppEffectEnable false; "radialBlur" ppEffectEnable false; resetCamShake; Now go Into core/pmenu & open "fn_useItem.sqf" Add under like lock picks like so: case (_item isEqualTo "lockpick"): { [] spawn life_fnc_lockpick; closeDialog 0; }; case (_item isEqualTo "marijuana"): { if(([false,_item,1] call life_fnc_handleInv)) then { [] spawn life_fnc_weed; }; }; Then Go into file "Functions.h" find "class Items" and add: class weed {};
  5. Difficulty: Easy Create Original Idea : Black Lagoon Authors: Heimdall & AltisAurore.fr Source: Link Create a new file in core\civilian and name it: "fn_civPasseport.sqf" /* Montrer son passeport @Author : Heimdall @AltisAurore.fr */ private["_target","_message"]; _target = cursorTarget; if(playerSide != civilian) exitWith { hint "You're not a citizen!"; }; if( isNull _target) then {_target = player;}; if( !(_target isKindOf "Man") ) then {_target = player;}; if( !(alive _target) ) then {_target = player;}; _message = format["<img size='10' color='#FFFFFF' image='icons\civ.paa'/><br/><br/><t size='2.5'>%1</t><br/><t size='1'>Civilian Of Altis(edit depend the map)</t>", name player]; [player, _message] remoteExec ["life_fnc_passeportCiv",_target]; Then open file "CfgRemoteExec.hpp" And add F(life_fnc_passeportCiv,CLIENT) Then, create a second file in core\civilian and name it: "fn_passeportCiv.sqf" /* File : fn_PasseportCiv.sqf Create Original Idea : Black Lagoon Edit : Heimdall @AltisAurore.fr */ private["_msg"]; _msg = _this select 1; hintSilent parseText _msg; Go to "functions.h" file and below the "class civilian ", add : class passeportCiv {}; class civPasseport {}; Then in the core folder open file "fn_setupActions.sqf" add inside of "case civilian" //Passport life_actions = life_actions + [player addAction["<t color='#00FF00'>Present the passport</t>",life_fnc_civPasseport,"",1,false,true,"",' playerSide == civilian && !isNull cursorTarget && cursorTarget isKindOf "Man" ']]; Then add the "civ.paa" into your icons folder: civ.paa
  6. Difficulty: Easy Author: Dexter Go inside of your script folder (If not there make one) Make a new file called "fn_IntroCam.sqf" /* File: fn_IntroCam.sqf Author: Dexter ( script might already be known, havent seen it yet though ) */ private ["_camera", "_camDistance","_randCamX","_randCamY","_camTime"]; _camDistance = 350; _randCamX = 75 - floor(random 150); _randCamY = 75 - floor(random 150); _camTime = 30; // you can change the time for sure, I adjusted mine to the intro music // the one below basically says that if you already joined the server once the time of the camera movement will be faster, else it might get annoying if(!life_firstSpawn) then { _camTime = 30;}; //intro move showCinemaBorder true; camUseNVG false; _camera = "camera" camCreate [(position player select 0)+_randCamX, (position player select 1)+_randCamY,(position player select 2)+_camDistance]; _camera cameraEffect ["internal","back"]; _camera camSetFOV 2.000; _camera camCommit 0; waitUntil {camCommitted _camera}; _camera camSetTarget vehicle player; _camera camSetRelPos [0,0,2]; _camera camCommit _camTime; waitUntil {camCommitted _camera}; _camera cameraEffect ["terminate","back"]; camDestroy _camera; life_firstSpawn = false; Now go inside Altis_Life.Altis\dialog\function and open file "fn_spawnConfirm.sqf" Go to the bottom and Find "life_firstSpawn" and make it look like this: if (life_firstSpawn) then { [] spawn { cutText ["","BLACK IN"]; [] execVM "script\fn_introcam.sqf"; life_firstSpawn = false; }; };
  7. Author: blaster Contributions: Rambo6699(Ciaran Langton, Pink (L.27)), demigod Posted By: AlaslaVet Create A new file in"Altis_Life.Altis\core\civilian" and call it "fn_skyDive.sqf" Add: #include "..\..\script_macros.hpp" /* File: fn_skyDive.sqf Author: blaster Contributions: Rambo6699(Ciaran Langton, Pink (L.27)), demigod Concepts pulled from: Mokomoko http://www.altisliferpg.com/topic/1938-document-server-commands/ Description: Sky diving, with a random coloured smoke that deploys once chute is pulled. */ private ["_backpackName","_backpackItems","_x"]; titleCut ["", "BLACK FADED", 999]; life_action_inUse = true; sleep 2; _backpackName = backpack player; _backpackItems = backpackItems player; sleep 1; removeBackpack player; player addBackpack "B_Parachute"; player setPos [getPos player select 0, getPos player select 1, 3000]; sleep 2; titlecut [" ","BLACK IN",3]; waitUntil {(vehicle player != player)}; waitUntil {isTouchingGround player}; deleteVehicle vehicle player; sleep 1; removeBackpack player; sleep 1; player addBackpack _backpackName; clearAllItemsFromBackpack player; { [_x,true,true] call life_fnc_handleItem; } foreach _backpackItems; life_action_inUse = false; Now Open file "Functions.hpp" And Find "class Civilian" Add: class skyDive {}; Now open the editor and add to the map a new NPC and inside the init add: this enableSimulation false; this allowDamage false; this addAction ["SkyDive", life_fnc_skyDive]; That is all
  8. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Difficulty: Easy Publish by: AlaskaVet Source AltisLifeRPG.com cache -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Script: barrier menu for Cops / Medics AL4.0 + Version: Altis Life 4.0+ (! 3.1.4.8 not compatible tested in 4.4r3) Author: Maximum ~ Barrier menu for Cops / Medics ~ Expandable with additional barriers ~ Behalf of the barriers easily adaptable instructions: Open your Functions.hpp and inserts under the following class Placeables { file = "core\functions\placeables"; class placeablesInit {}; class medicPlaceablesInit {}; class placeablesMenu {}; class placeablesRemoveAll {}; class placeablePlace {}; class placeableCancel {}; class placeablesPlaceComplete {}; }; Open your configuration.sqf (found in the core folder) and adds the following one /* ************************************** ****** Placeables Variables ***** ************************************** */ life_definePlaceables = //Array aller Absperrungen (Cop + Medic) [ "RoadCone_F", "RoadCone_L_F", "RoadBarrier_F", "RoadBarrier_small_F", "PlasticBarrier_03_orange_F", "Land_CncBarrier_stripes_F", "Land_PortableLight_single_F", "Land_PortableLight_double_F" ]; life_bar_limit = 100; //Maximale Anzahl Absperrungen pro Person Open your fn_keyHandler.sqf (found in the folder core / functions) and replaces your case 57 , case 39 and case 211 (if available, otherwise reinsert) here by: //Space key for Jumping case 57: { if (!_shift && life_barrier_active) then { 0 spawn life_fnc_placeablesPlaceComplete; }; if (isNil "jumpActionTime") then {jumpActionTime = 0;}; if (_shift && {!(animationState player isEqualTo "AovrPercMrunSrasWrflDf")} && {isTouchingGround player} && {stance player isEqualTo "STAND"} && {speed player > 2} && {!life_is_arrested} && {((velocity player) select 2) < 2.5} && {time - jumpActionTime > 1.5}) then { if (life_barrier_active) then { [true] call life_fnc_placeableCancel; }; jumpActionTime = time; //Update the time. [player] remoteExec ["life_fnc_jumpFnc",RANY]; //Global execution _handled = true; }; }; //Ö-Key case 39: { if ({isNull(findDisplay 20000)} && {playerSide in [west,independent]}) then { 0 spawn life_fnc_placeablesMenu; _handled = true; }; _handled = true; }; //ENTF-Key case 211: { if ({playerSide in [west,independent]} && {(typeOf cursorTarget) in life_definePlaceables}) then { deleteVehicle cursorTarget; hintSilent "Die Absperrung wurde entfernt"; }; }; Opens the files fn_initCop.sqf and fn_initMedic.sqf and inserts at the end of the following fn_initCop.sqf: [] spawn life_fnc_placeablesInit; fn_initMedic.sqf: [] spawn life_fnc_medicPlaceablesInit; Open your MasterHandler.hpp (found in the dialog-folder) and adds its following #include "placeables.hpp" Creates a new file placeables.hpp in dialog-folder with the following content class Life_Menu_Placeables { idd = 20000; name= "life_menu_placeables"; movingEnable = false; enableSimulation = true; onLoad = ""; class controlsBackground { class Life_RscTitleBackground: Life_RscText { colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"}; idc = -1; x = 0.1; y = 0.2; w = 0.6; h = (1 / 25); }; class MainBackground: Life_RscText { colorBackground[] = {0, 0, 0, 0.7}; idc = -1; x = 0.1; y = 0.2 + (11 / 250); w = 0.6; h = 0.6 - (22 / 250); }; }; class controls { class Title : Life_RscTitle { colorBackground[] = {0, 0, 0, 0}; idc = -1; text = "Available placeables"; x = 0.1; y = 0.2; w = 0.6; h = (1 / 25); }; class PlaceablesList : Life_RscListBox { idc = 20001; text = ""; sizeEx = 0.035; x = 0.12; y = 0.26; w = 0.56; h = 0.370; }; class CloseButtonKey : Life_RscButtonMenu { idc = -1; text = "$STR_Global_Close"; onButtonClick = "closeDialog 0;"; x = -0.06 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH)); y = 0.8 - (1 / 25); w = (6.25 / 40); h = (1 / 25); }; class RemoveAll : life_RscButtonMenu { idc = -1; text = "Remove all"; onButtonClick = "[] call life_fnc_placeablesRemoveAll"; x = 0.1 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH)); y = 0.8 - (1 / 25); w = (6.25 / 40); h = (1 / 25); }; class Place : Life_RscButtonMenu { idc = -1; text = "Place"; colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 0.5}; onButtonClick = "[] spawn life_fnc_placeablePlace;"; x = 0.32; y = 0.69; w = (6.25 / 40); h = (1 / 25); }; }; }; Adds the "placeables" folder of the file attached to your functions-folder placeables.rar
  9. Author: Leon "DerL30N" Beeser" features: Individually Adjustable, relaxing in a Master.hpp, in the following areas: Any adjustment of the automatic save interval, the minimum is two minutes. (But I do not recommend less than 10 or 15 minutes to go) Locking the manual save, after every Autosave Duration of locking the manual storage, ie the time that the player after a "AutoSave" can not save manually. Only possible if the function of locking the manual save is enabled. Disabling and enabling a short; Or informative "Auto store information" in the system chat. (System Chat = Where you always see the BattleEye news, or see if a player enters the server or leaves) Intelligent saving: If a player manually his datastores / syncing, so waiting the script is completed by this operation AND also waiting for 5 minutes until it returns to work. This feature is designed to protect traffic. The 5 minutes arising from the time that must wait the skewer, until he, manually save, the next time, save for a manual. Important information : Developed in version 4.4r3 (Therefore, I recommend to test it once on lower versions. This does not remove the circumstances, there is no Life files are modified, except an entry in the init.sqf and descriptin.ext) An estimated compatible to version 4.0 (Please order tests and especially feedback) Please In attachment there are screenshots and the script followed, the installation HERE IN THE FORUM under installation. installation: 1. Add the following code below #include "config\Config_Master.hpp" inside description.ext #include "derleon\Scripts_Master.hpp" In Functions.hpp add: class autosave { file = "derleon\autosave"; class autoSaveInv {}; }; Inside Altis_Life.Altis \ core \ init.sqf Add the following code at the end: [] spawn life_fnc_autoSaveInv; Copy the downloaded folder named derleon from AutoSave_Scrip.zip And put it inside of Altis_Life.Altis
  10. Difficulty: Easy Author: Tyler O'Connor --------------------------------------------------------------------------------------------------------------------- #1. Go to "scripts" folder (create it if you don't have one) #2. create a file called "al_safezone.sqf" #3. Paste the following code inside /* File: al_safezone.sqf Edited by: Tyler - ALRPG Profile: http://goo.gl/VmgCB0 Description: Allows you to setup markers that execute the SafeZone script. Note: A lot of this is just C&P with different code. It's kinda simple to add / remove stuff */ #define POLICE_ZONES [["pz_xx", 50]] #define CIV_ZONES [["cz_xx", 50]] #define KOS_ZONES [["kos_xx", 50]] #define PZ_MSG "You are entering the Police Base. Do not Kill or Rob here!" #define CIV_MSG "You are entering a Civilian SafeZone. Do not commit crimes, rob people, or kill!" #define KOS_MSG "You are entering a KOS (Kill on sight) area. You may commit crimes, rob, and kill people without initation." if (isDedicated) exitWith {}; waitUntil {!isNull player}; switch (playerSide) do { case civilian: { player addEventHandler ["Fired", { if ({(_this select 0) distance getMarkerPos (_x select 0) < _x select 1} count POLICE_ZONES > 0) then { deleteVehicle (_this select 6); titleText [PZ_MSG, "PLAIN", 3]; }; }]; }; }; switch (playerSide) do { case civilian: { player addEventHandler ["Fired", { if ({(_this select 0) distance getMarkerPos (_x select 0) < _x select 1} count CIV_ZONES > 0) then { deleteVehicle (_this select 6); titleText [CIV_MSG, "PLAIN", 3]; }; }]; }; }; switch (playerSide) do { case civilian: { player addEventHandler ["Fired", { if ({(_this select 0) distance getMarkerPos (_x select 0) < _x select 1} count KOS_ZONES > 0) then { deleteVehicle (_this select 6); titleText [KOS_MSG, "PLAIN", 3]; }; }]; }; }; #4. Save any changes, and Proceed to the Arma 3 editor. (Make sure your mission is in your profile mission folder) #5. Make 3 new empty markers and name them this: pz_xx cz_xx kos_xx #6. Put them were you want your safe zones to be. #7. Now open up your "init.sqf" and add: [] execVM "scripts\al_safezone.sqf";
  11. Hello, Here is a tutorial on how to add intro text to your server. Location of changes: Mission.Map (Eg. AltisLife.Altis or TanoaLife.Tanoa) Difficulty: Easy Publish: HellsGate Notes: In this tutorial, root refers Mission.Map _____________________________________________________________________________________________________________________________________ 1. Navigate to your core folder and create a folder called intro, then create a file called introtext.sqf and paste inside the following: /* File: fn_introtext.sqf Description: Adds some text as the player loads in. */ _onScreenTime = 5; sleep 2; //Wait in seconds before the credits start after player is in-game _role1 = "Welcome to Altis Life"; _role1names = ["A Framework by Tonic"]; _role2 = "Improved upon"; _role2names = ["By The ArmA RPG Life Team"]; _role3 = "Visit Our Website at"; _role3names = ["www.yourwebsite.com"]; _role4 = "Join Our Teamspeak at"; _role4names = ["ts.yourwebsite.com"]; _role5 = "Please enjoy your stay"; _role5names = [profileName]; { sleep 2; _memberFunction = _x select 0; _memberNames = _x select 1; _finalText = format ["<t size='0.55' color='#c500ff' align='right'>%1<br /></t>", _memberFunction]; _finalText = _finalText + "<t size='0.70' color='#ffffff' align='right'>"; {_finalText = _finalText + format ["%1<br />", _x]} forEach _memberNames; _finalText = _finalText + "</t>"; _onScreenTime + (((count _memberNames) - 1) * 0.9); [ _finalText, [safezoneX + safezoneW - 0.8,0.50], //DEFAULT: 0.5,0.35 [safezoneY + safezoneH - 0.8,0.7], //DEFAULT: 0.8,0.7 _onScreenTime, 0.5 ] spawn BIS_fnc_dynamicText; sleep (_onScreenTime); } forEach [ //The list below should have exactly the same amount of roles as the list above [_role1, _role1names], [_role2, _role2names], [_role3, _role3names], [_role4, _role4names], [_role5, _role5names] ]; 2. Go back to your root directory and enter the dialog folder then the function folder. Once in the function folder, open fn_spawnConfirm.sqf and at the bottom underneath [] call life_fnc_welcomeNotification; 2.5. Add the following: [] execVM "core\intro\fn_introtext.sqf "; It should now look like this: if (life_firstSpawn) then { life_firstSpawn = false; [] call life_fnc_welcomeNotification; [] execVM "core\intro\fn_introtext.sqf"; };
  12. hardcore rp

    Authors: Lowheartrate & Panada Old Post Here 1. Make a File inside core\actions Called: fn_gagAction.sqf /* File: fn_gagAction.sqf Author: Lowheartrate & Panda */ private["_unit"]; _unit = cursorTarget; if(isNull _unit) exitWith {}; if((player distance _unit > 3)) exitWith {}; if((_unit getVariable "gagged")) exitWith {}; if(side _unit == west) exitWith {}; if(player == _unit) exitWith {}; if(!isPlayer _unit) exitWith {}; _unit setVariable["gagged",true,true]; [player] remoteExec ["life_fnc_gagged", _unit,false]; hint format["You gagged %1.", _unit getVariable["realname",_unit]]; life_inv_gagkit = life_inv_gagkit - 1; 2. Make a File inside core\actions Called: fn_gagged.sqf /* File: fn_gagged.sqf Author: Lowheartrate & Panda */ private["_gagger"]; _gagger = [_this,0,Objnull,[Objnull]] call BIS_fnc_param; hint format["You have been gagged by %1.", _gagger getVariable["realname",_gagger]]; titleText ["You have a gag over your mouth, you can no longer talk!", "PLAIN"]; enableRadio false; 5 enableChannel false; 3 enableChannel false; 4 enableChannel false; waitUntil{!(player getVariable ["gagged",false]) OR !(player getVariable ["restrained",false])}; hint format["The gag was removed, you can again speak!"]; titleText ["You're not gagged", "PLAIN"]; enableRadio true; 5 enableChannel true; 3 enableChannel true; 4 enableChannel true; 3. Make a File inside core\actions Called: fn_removeGagAction.sqf /* File: fn_removeGagAction.sqf Author: Lowheartrate & Panda */ private["_unit"]; _unit = cursorTarget; if(isNull _unit) exitWith {}; if(!(_unit getVariable "gagged")) exitWith {}; if(player == _unit) exitWith {}; if(!isPlayer _unit) exitWith {}; _unit setVariable["gagged",false,true]; 4. Make a File inside Functions.hpp and add inside class actions: class gagAction {}; class gagged {}; class removeGagAction {}; 5. Now open Config_vItems.hpp and add: class gagkit { variable = "gagkit"; displayName = "STR_Item_GagKit"; weight = 1; buyPrice = 5000; sellPrice = 2500; illegal = true; edible = -1; icon = "textures\icons\gag.paa"; }; 6. Now open stringtable.xml and add: <Key ID="STR_Item_GagKit"> <Original>Gag Kit</Original> </Key> 7. Next in Altis_Life.Altis\core\fn_setupActions.sqf add in case civilian: //Add Gag life_actions = life_actions + [player addAction["<t color='#FF0000'>Put On Gag</t>",life_fnc_gagAction,"",0,false,false,"",'!isNull cursorTarget && player distance cursorTarget < 3.5 && isPlayer cursorTarget && (cursorTarget getVariable["restrained",FALSE]) && !(cursorTarget getVariable ["gagged",FALSE]) && life_inv_gagkit > 0']]; //Remove Gag life_actions = life_actions + [player addAction["<t color='#FFCC00'>Remove Gag</t>",life_fnc_removeGagAction,"",0,false,false,"",'!isNull cursorTarget && player distance cursorTarget < 3.5 && isPlayer cursorTarget && (cursorTarget getVariable["restrained",FALSE]) && (cursorTarget getVariable ["gagged",FALSE])']]; 8. Lasr Open CfgRemoteExec.hpp and add: F(life_fnc_gagged,CLIENT) you That's it. Enjoy gag.paa
  13. hardcore rp

    Author: [STELS]Zealot 1. Inside Altis_Life.Altis make a new folder called scripts. Inside that folder make a new file called zlt_fastrope.sqf: /* v1g Fast Rope by [STELS]Zealot */ #define MAX_SPEED_WHILE_FASTROPING 10 #define MAX_SPEED_ROPES_AVAIL 20 #define STR_TOSS_ROPES "Toss Ropes" #define STR_FAST_ROPE "Fast Rope (Press Space)" #define STR_CUT_ROPES "Cut Ropes" if (isdedicated) exitwith {}; waituntil {player == player}; zlt_rope_ropes = []; zlt_mutexAction = false; zlt_rope_helis = ["O_Heli_Light_02_unarmed_F","O_Heli_Light_02_F","B_Heli_Transport_01_F","B_Heli_Transport_01_camo_F","O_Heli_Attack_02_F","O_Heli_Attack_02_black_F","I_Heli_Transport_02_F","B_Heli_Light_01_F"]; zlt_rope_helidata = [ [ ["O_Heli_Light_02_unarmed_F", "O_Heli_Light_02_F"], [1.35,1.35,-24.95], [-1.45,1.35,-24.95] ], [ ["B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F"], [-1.11,2.5,-24.7], [1.11,2.5,-24.7] ], [ ["O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F"], [1.3,1.3,-25], [-1.3,1.3,-25] ], [ ["I_Heli_Transport_02_F"], [0,-5,-26], [] ], [ ["B_Heli_Light_01_F"], [0.6,0.5,-25.9], [-0.8,0.5,-25.9] ] ]; zlt_fnc_tossropes = { private ["_heli","_ropes","_oropes","_rope"]; _heli = _this; _ropes = []; _oropes = _heli getvariable ["zlt_ropes",[]]; if (count _oropes != 0 ) exitwith {}; _i = 0; { if ((typeof _heli) in (_x select 0)) exitwith { _ropes = _ropes + [_x select 1]; if ( count (_x select 2) !=0 ) then { _ropes = _ropes + [_x select 2]; }; }; _i = _i +1; } foreach zlt_rope_helidata; sleep random 0.3; if ( count (_heli getvariable ["zlt_ropes",[]]) != 0 ) exitwith { zlt_mutexAction = false; }; //_heli animateDoor ['door_R', 1]; //_heli animateDoor ['door_L', 1]; { _rope = createVehicle ["land_rope_f", [0,0,0], [], 0, "CAN_COLLIDE"]; _rope setdir (getdir _heli); _rope attachto [_heli, _x]; _oropes = _oropes + [_rope]; } foreach _ropes; _heli setvariable ["zlt_ropes",_oropes,true]; _heli spawn { private ["_heli","_ropes"]; _heli = _this; while {alive _heli and count (_heli getvariable ["zlt_ropes", []]) != 0 and abs (speed _heli) < MAX_SPEED_ROPES_AVAIL } do { sleep 0.3; }; _ropes = (_heli getvariable ["zlt_ropes", []]); {deletevehicle _x} foreach _ropes; _heli setvariable ["zlt_ropes", [], true]; }; }; zlt_fnc_ropes_cond = { _veh = vehicle player; _flag = (player == driver _veh) and (_veh != player) and {(not zlt_mutexAction)} and {count (_veh getvariable ["zlt_ropes", []]) == 0} and { (typeof _veh) in zlt_rope_helis } and {alive player and alive _veh and (abs (speed _veh) < MAX_SPEED_ROPES_AVAIL ) }; _flag; }; zlt_fnc_fastropeaiunits = { private ["_heli","_grunits"]; diag_log ["zlt_fnc_fastropeaiunits", _this]; _heli = _this select 0; _grunits = _this select 1; dostop (driver _heli ); (driver _heli) setBehaviour "Careless"; (driver _heli) setCombatMode "Blue"; _heli spawn zlt_fnc_tossropes; [_heli, _grunits] spawn { private ["_units","_heli"]; sleep random 0.5; _units = _this select 1; _heli = (_this select 0); _units = _units - [player]; _units = _units - [driver _heli]; {if (!alive _x or isplayer _x or vehicle _x != _heli) then {_units = _units - [_x];}; } foreach _units; { sleep (0.5 + random 0.7); _x spawn zlt_fnc_fastropeUnit; } foreach _units; waituntil {sleep 0.5; { (getpos _x select 2) < 1 } count _units == count _units; }; sleep 10; (driver _heli) doFollow (leader group (driver _heli )); (driver _heli) setBehaviour "Aware"; (driver _heli) setCombatMode "White"; _heli call zlt_fnc_cutropes; }; }; zlt_fnc_fastrope = { diag_log ["fastrope", _this]; zlt_mutexAction = true; sleep random 0.3; if (player == leader group player) then { [vehicle player, units group player] call zlt_fnc_fastropeaiunits; }; player call zlt_fnc_fastropeUnit; zlt_mutexAction = false; }; zlt_fnc_fastropeUnit = { private ["_unit","_heli","_ropes","_rope","_zmax","_zdelta","_zc"]; _unit = _this; _heli = vehicle _unit; if (_unit == _heli) exitWith {}; _ropes = (_heli getvariable ["zlt_ropes", []]); if (count _ropes == 0) exitwith {}; _rope = _ropes call BIS_fnc_selectRandom; _zmax = 22; _zdelta = 7 / 10 ; _zc = _zmax; _unit action ["eject", _heli]; _unit switchmove "gunner_standup01"; _unit setpos [(getpos _unit select 0), (getpos _unit select 1), 0 max ((getpos _unit select 2) - 3)]; while {alive _unit and (getpos _unit select 2) > 1 and (abs (speed _heli)) < MAX_SPEED_WHILE_FASTROPING and _zc > -24} do { _unit attachTo [_rope, [0,0,_zc]]; _zc = _zc - _zdelta; sleep 0.1; }; _unit switchmove ""; detach _unit; }; zlt_fnc_cutropes = { _veh = _this; _ropes = (_veh getvariable ["zlt_ropes", []]); {deletevehicle _x} foreach _ropes; _veh setvariable ["zlt_ropes", [], true]; //_veh animateDoor ['door_R', 0]; //_veh animateDoor ['door_L', 0]; }; zlt_fnc_removeropes = { _veh = vehicle player; if (player == driver _veh) then { (vehicle player) call zlt_fnc_cutropes; }; }; zlt_fnc_createropes = { zlt_mutexAction = true; (vehicle player) call zlt_fnc_tossropes; zlt_mutexAction = false; }; player addAction["<t color='#ffff00'>"+STR_TOSS_ROPES+"</t>", zlt_fnc_createropes, [], -1, false, false, '','[] call zlt_fnc_ropes_cond']; player addAction["<t color='#ff0000'>"+STR_CUT_ROPES+"</t>", zlt_fnc_removeropes, [], 98, false, false, '','not zlt_mutexAction and count ((vehicle player) getvariable ["zlt_ropes", []]) != 0']; player addAction["<t color='#00ff00'>"+STR_FAST_ROPE+"</t>", zlt_fnc_fastrope, [], 99, false, false, '','not zlt_mutexAction and count ((vehicle player) getvariable ["zlt_ropes", []]) != 0 and player != driver vehicle player']; player addEventHandler ["Respawn", { player addAction["<t color='#ffff00'>"+STR_TOSS_ROPES+"</t>", zlt_fnc_createropes, [], -1, false, false, '','[] call zlt_fnc_ropes_cond']; player addAction["<t color='#ff0000'>"+STR_CUT_ROPES+"</t>", zlt_fnc_removeropes, [], 98, false, false, '','not zlt_mutexAction and count ((vehicle player) getvariable ["zlt_ropes", []]) != 0']; player addAction["<t color='#00ff00'>"+STR_FAST_ROPE+"</t>", zlt_fnc_fastrope, [], 99, false, false, '','not zlt_mutexAction and count ((vehicle player) getvariable ["zlt_ropes", []]) != 0 and player != driver vehicle player']; }]; 2. inside Altis_Life.Altis\init.sqf add: [] execVM “scripts\zlt_fastrope.sqf”; All Done Enjoy.
  14. Yea.....So this is no longer needed since you can add it in by default now. they mad a tab for you to add them in.
  15. This is a infiSTAR issue not ours. Message them on how to filter it out.
  16. Open file fn_p_openMenu.sqf Case civilian Add: ctrlShow[1210,false]; ctrlShow[2008,false]; Case West Add: ctrlShow[1207,false]; ctrlShow[1209,false];
  17. you have 0 erros in your server rpt and your EXTDB log?
  18. Do you get a error?
  19. Should be working 100% I updated the post and did a fresh install on a fresh dev branch server so 5.0.0 and worked great.
  20. Everything works fine for me.