Jump to content

Drunken Cheetah

Members
  • Posts

    257
  • Joined

  • Days Won

    26

Everything posted by Drunken Cheetah

  1. Bohemia have a vast variety of scripting commands.. https://community.bistudio.com/wiki/Category:Arma_3:_Scripting_Commands
  2. For a start: 2:21:22 Sound: Error: File: mpmissions\__CUR_MP.Altis\sounds\raditation.ogg not found !!! 2:21:22 Sound: Error: File: mpmissions\__CUR_MP.Altis\sounds\raditation.ogg not found !!! Its easier to help if you post the script not just the log file.
  3. Looks exactly what I posted in 2017 here not including the trigger...
  4. That should of given him an error when putting the addaction in the init of the object. Any way, below is the way it should be for the OP. this enableSimulation false; this allowDamage false; this addAction["Rob the Gas Station",life_fnc_robstore]; this addAction[localize"STR_MAR_Station_Shop",life_fnc_weaponShopMenu,"f_station_store"]; this addAction[localize"STR_Shop_Station_Coffee",life_fnc_virt_menu,"f_station_coffee"];
  5. I have made some minor changes to the GUI. While Arma Dialog creator is a great tool, I personally like the feel of the normal altis life GUIs. Therefor, here is a screenshot of how it looks now. If OP or anyone else wants to change it, the code is below. class Experince_Menu { idd = 1458; name= "Experince_Menu"; movingEnable = 0; enableSimulation = 1; onLoad = "[] spawn life_fnc_Experince_menu;"; class ControlsBackground { class Background: Life_RscText{ idc = -1; x = 0.29375 * safezoneW + safezoneX; y = 0.224913 * safezoneH + safezoneY; w = 0.4125 * safezoneW; h = 0.550174 * safezoneH; colorText[] = {0.6706,0.3608,0.3804,1}; colorBackground[] = {0,0,0,0.7}; }; }; class Controls { class Experince_list: Life_RscListBox { idc = 1456; onLBSelChanged = "_this call life_fnc_experince_menu_change"; x = 0.319222 * safezoneW + safezoneX; y = 0.299076 * safezoneH + safezoneY; w = 0.1125 * safezoneW; h = 0.400001 * safezoneH; colorText[] = {0.6,0.6,0.6,1}; colorBackground[] = {0,0,0,0.7}; }; class Description: Life_RscText { type = 13; idc = 1457; size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; x = 0.443797 * safezoneW + safezoneX; y = 0.299957 * safezoneH + safezoneY; w = 0.2375 * safezoneW; h = 0.400001 * safezoneH; colorBackground[] = {0,0,0,0.7}; }; class Welcome_message: Life_RscText { idc = 0; font = "PuristaMedium"; text = "Experince Menu"; //--- ToDo: Localize; x = 0.319531 * safezoneW + safezoneX; y = 0.268927 * safezoneH + safezoneY; w = 0.1125 * safezoneW; h = 0.0249999 * safezoneH; colorBackground[] = {0,0,0,0.7}; }; class buy_experince: Life_RscButtonMenu { onButtonClick = "[] call life_fnc_upgrade_experince;"; idc = 1004; text = "Purchase XP"; //--- ToDo: Localize; x = 0.583428 * safezoneW + safezoneX; y = 0.709066 * safezoneH + safezoneY; w = 0.0979687 * safezoneW; h = 0.022007 * safezoneH; colorText[] = {1,1,1,1}; colorBackground[] = {0,0,0,0.7}; }; class Close: Life_RscButtonMenu { onButtonClick = "closeDialog 0;"; idc = 1005; text = "Close"; //--- ToDo: Localize; x = 0.319531 * safezoneW + safezoneX; y = 0.709066 * safezoneH + safezoneY; w = 0.0928125 * safezoneW; h = 0.022007 * safezoneH; colorText[] = {1,1,1,1}; colorBackground[] = {0,0,0,0.7}; }; class Experince_points: Life_RscText { type = 13; idc = 1455; size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; x = 0.577344 * safezoneW + safezoneX; y = 0.268927 * safezoneH + safezoneY; w = 0.102604 * safezoneW; h = 0.0249999 * safezoneH; colorBackground[] = {0,0,0,0.7}; }; class Experince: Life_RscProgress { idc = 1454; colorBar[] = {1,1,1,1}; texture = "#(argb,8,8,3)color(1,1,1,1)"; x = 0.324687 * safezoneW + safezoneX; y = 0.742077 * safezoneH + safezoneY; w = 0.350625 * safezoneW; h = 0.022007 * safezoneH; }; class Current_experince: Life_RscText { type = 13; idc = 1453; size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; x = 0.444313 * safezoneW + safezoneX; y = 0.709066 * safezoneH + safezoneY; w = 0.0721875 * safezoneW; h = 0.022007 * safezoneH; colorBackground[] = {0,0,0,0.2}; }; }; };
  6. You want to sell something that is provided for free anyway? Where is the logic in that... Not only that, want to sell something that BI strictly don't allow?
  7. Please post the script fn_robStore.sqf As you have posted your mission.sqm, that tell anybody nothing. You'll need to post the Client RPT & Server RPT
  8. You can get the mods required from Steam Workshop, https://steamcommunity.com/sharedfiles/filedetails/?id=837551154 I'd get in quick before Anzus owner finds a way for this to be removed. As like everything else.
  9. In response to my previous thread located here > I am releasing version 2.0 of the Mission Quick Mover Changes: Renamed to Arma 3 Tools Added ini file save/load options Added ability to delete the saved file Ability to open the folders (MPMissionCache & MPMission) This version is rebuilt in Visual Studio 2019, on version 21H2 of Windows 11 Pre-requirements(target framework): .Net Framework 4.7.2 In order to save/load the settings you must keep the IniFile.dll with the program. This is the core file to handle the saving of the inifile, and loading of the inifile (remembering what you saved, and loading when you open the program) Details about the program The program was designed to help mission testers, quickly and efficiently test their mission without needing to re-download the mission every time you make changes. Simply, set your folder paths & select the pbo. When you join the test server, you wont need to re-download the mission everytime. The program was designed to help myself quickly test changes in my own missions. Known Issues: When saving the settings, you sometimes need to press save twice, I think it has something to do with the inifile.dll not being upto date with windows 11, but I could be wrong. If in doubt, always just save settings twice. Error Information: e-10647 - You have either not correctly re-pbo your mission folder, or Arma is caching the pbo. Please check you have re-pbo your mission folder, if you have please close Arma and try again. e-10646 - The path to the PBO cannot be found. You're file name must include .pbo e-10645 - You're MPMissionCache folder can't be detected. Please make sure the path is C:\Users\YOUR_USERNAME\AppData\Local\Arma 3\MPMissionsCache e-10644 - We couldn't detect any folder called Arma 3 in C:\Users\YOUR_USERNAME\AppData\Local You can view extra details if you click the ? in the controlbox. Preview: Any issues, please contact me here. Virus Scan: https://www.virustotal.com/gui/file/eb51902ccf3096fbf14dd2cdb3309c619f227d6ad34b1362cae5498a43ecc780 Arma3Tools.rar
  10. When you say "It was zipped right off a dedi in a great deal of haste" Were you or are you an anzus dev?
  11. The original Vendetta Altis Life was using the 4.4R3 framework(I think or R4). It is quiet old and outdated now, although anzus still runs them just updated versions and more modified, @Fresqo can confirm. Although he was selling the server files and the custom assets, so you should defiantly ask to post this.
  12. If you copied the entire post, it will work. So something else must be wrong with your files.
  13. Add the zeus module in the editor, then add your steam64 id as the owner. Save, reupload and press Y in-game
  14. Please update your file with the following; /* File: fn_broadcast.sqf Author: Bryan "Tonic" Boardwine Description: Broadcast system used in the life mission for multi-notification purposes. */ private ["_type","_message"]; _type = [_this,0,0,[[],0]] call BIS_fnc_param; _message = [_this,1,"",[""]] call BIS_fnc_param; _localize = [_this,2,false,[false]] call BIS_fnc_param; if (_message isEqualTo "") exitWith {}; if (_localize) exitWith { _arr = _this select 3; _msg = switch (count _arr) do { case 0: {localize _message;}; case 1: {format [localize _message,_arr select 0];}; case 2: {format [localize _message,_arr select 0, _arr select 1];}; case 3: {format [localize _message,_arr select 0, _arr select 1, _arr select 2];}; case 4: {format [localize _message,_arr select 0, _arr select 1, _arr select 2, _arr select 3];}; }; if (_type isEqualType []) then { for "_i" from 0 to (count _type)-1 do { switch (_type select _i) do { case 0: {systemChat _msg;}; case 1: {hint _msg;}; case 2: {titleText[_msg,"PLAIN"];}; }; }; } else { switch (_type) do { case 0: {systemChat _msg;}; case 1: {hint _msg;}; case 2: {titleText[_msg,"PLAIN"];}; }; }; }; if (_type isEqualType []) then { for "_i" from 0 to (count _type)-1 do { switch (_type select _i) do { case 0: {systemChat _message}; case 1: {hint format ["%1", _message]}; case 2: {titleText[format ["%1",_message],"PLAIN"];}; case 3: {hint parseText format ["%1", _message]}; }; }; } else { switch (_type) do { case 0: {systemChat _message}; case 1: {hint format ["%1", _message]}; case 2: {titleText[format ["%1",_message],"PLAIN"];}; case 3: {hint parseText format ["%1", _message]}; }; }; Then you should be good to go.
  15. Please send me Altis_Life.Altis/core/functions/network/fn_broadcast.sqf
  16. "Not Work" - Does not help me in anyway shape or form. Please elaborate, what isn't working?
  17. /* Paycheck & Bank System Configurations */ bank_cop = 9500; //Amount of cash in bank for new cops bank_civ = 3500; //Amount of cash in bank for new civillians bank_med = 7500; //Amount of cash in bank for new medics
  18. This script enables admins with an admin rank of 5 to comp every player on the server. You can change the adminLevel required for this if you wish. I based this off the original compensate script already part of the framework. The whole idea is, if you have a server crash or something. You can comp players when its backup etc. First up: Navigate to mission/core/admin and create a new file called fn_compAll.sqf Inside that add the following: #include "..\..\script_macros.hpp" /* File: fn_compAll.sqf Author: Drunken Cheetah Edited By: Maxence Desc: Comps every player, X amount below $500,000 */ private ["_value","_action","_bool"]; if(FETCH_CONST(life_adminlevel) < 5) exitWith {closeDialog 0; hint localize "STR_ANOTF_ErrorLevel";}; _value = parseNumber(ctrlText 9922); if(_value <= 0) exitWith {}; if(_value > 500000) exitWith {hint localize "STR_ANOTF_Fail2"}; _action = [ format [localize "STR_ANOTF_CompWarn2",[_value] call life_fnc_numberText], localize "STR_Admin_Compensate", localize "STR_Global_Yes", localize "STR_Global_No" ] call BIS_fnc_guiMessage; if (_action) then { { [_value,player] remoteExec ["life_fnc_compReceive",_x]; } forEach playableUnits; hint format [localize "STR_ANOTF_Success2",[_value] call life_fnc_numberText]; closeDialog 0; } else { hint localize "STR_NOTF_ActionCancel"; closeDialog 0; }; Navigate to mission/core/admin and create a new file called fn_compReceive.sqf Inside that add the following: #include "..\..\script_macros.hpp" /* File: fn_compReceive.sqf Author: Maxence */ params [ ["_value",0,[0]], ["_from",objNull,[objNull]] ]; if(_value <= 0) exitWith {}; if(_value > 500000) exitWith {}; BANK = BANK + _value; [1] call SOCK_fnc_updatePartial; hint format["Admin %1 just compenstated everyone $%2",(name _from), [_value] call life_fnc_numberText]; Next head to > Functions.hpp and add the following in the class admin class compAll {}; class compReceive {}; Next head to > CfgRemoteExec.hpp and add the following in the file F(life_fnc_compReceive,CLIENT) Next; head over to mission/dialog folder and edit the compensate.hpp file. Copy this entire code block, and save the file. class Life_Admin_Compensate { idd = 9920; name= "life_admin_compensate_give"; movingEnable = 0; enableSimulation = 1; onLoad = "[] spawn {waitUntil {!isNull (findDisplay 9920)}; ((findDisplay 9920) displayCtrl 9921) ctrlSetText localize ""STR_Admin_Amount""};"; 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.5; 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.5; h = 0.3 - (22 / 250); }; }; class controls { class InfoMsg: Life_RscStructuredText { idc = 9921; text = ""; x = 0.347678 * safezoneW + safezoneX; y = 0.362471 * safezoneH + safezoneY; w = 0.190403 * safezoneW; h = 0.0605126 * safezoneH; }; class Title: Life_RscTitle { idc = -1; text = "$STR_Admin_Compensate"; //--- ToDo: Localize; x = 0.347678 * safezoneW + safezoneX; y = 0.334966 * safezoneH + safezoneY; w = 0.190403 * safezoneW; h = 0.0220046 * safezoneH; colorText[] = {0.95,0.95,0.95,1}; }; class AdminCloseComp: Life_RscButtonMenu { onButtonClick = "closeDialog 0;"; idc = 1003; text = "$STR_Global_Close"; //--- ToDo: Localize; x = 0.48096 * safezoneW + safezoneX; y = 0.477995 * safezoneH + safezoneY; w = 0.0595008 * safezoneW; h = 0.0220046 * safezoneH; colorText[] = {1,1,1,1}; colorBackground[] = {0,0,0,0.8}; }; class AdminCompensVer: Life_RscButtonMenu { onButtonClick = "[] spawn life_fnc_adminCompensate;"; idc = 1004; text = "$STR_Admin_Compensate"; //--- ToDo: Localize; x = 0.347678 * safezoneW + safezoneX; y = 0.477995 * safezoneH + safezoneY; w = 0.0595008 * safezoneW; h = 0.0220046 * safezoneH; colorText[] = {1,1,1,1}; 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 AdminCompensTex: Life_RscEdit { idc = 9922; text = ""; x = 0.385759 * safezoneW + safezoneX; y = 0.444989 * safezoneH + safezoneY; w = 0.123762 * safezoneW; h = 0.0220046 * safezoneH; }; class AdminCompenAll: Life_RscButtonMenu { onButtonClick = "[] spawn life_fnc_compAll;"; idc = 1006; text = "Comp All"; //--- ToDo: Localize; x = 0.409559 * safezoneW + safezoneX; y = 0.477995 * safezoneH + safezoneY; w = 0.0666409 * safezoneW; h = 0.0220046 * safezoneH; colorText[] = {1,1,1,1}; 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}; }; }; }; (Feel free to localize the button. I didnt!) Add the following to the mission/stringtable.xml file <Key ID="STR_ANOTF_Fail2"> <Original>You can not go above $500,000</Original> </Key> <Key ID="STR_ANOTF_CompWarn2"> <Original>You are about to comp every player on the server. All money, will go into their bank accounts.</Original> </Key> <Key ID="STR_ANOTF_Success2"> <Original>You just gave $%1 to every player.</Original> </Key> Edit the following string for this next one STR_Admin_Amount <Key ID="STR_Admin_Amount"> <Original>If comping all players, enter the amount below 500k and click 'Comp All', else Put the amount you want to compensate:</Original> </Key> DO NOT JUST COPY THE ABOVE STRING, AS ITS ALREADY IN THE STRINGTABLE And now your done. Dont forget to re-pbo your mission, and go ingame. You can view it in the admin menu > comp dialog. Thanks to Maxence for the compReceive, did'nt even realise.
  19. It is setup to save/load those settings, so you no longer need to re-enter the locations. It mustn't be working for you?
  20. Hey. I've recently created a simple program in VB.net, which will help mission testers, test there mission. All it does is moves the pbo to the mpmissioncache folder so when you join your local server you don't need to download any mission after you've changed 1 line of code. It's rather simple, yet quicker. To be use: run the program from anywhere you'd like, choose your mpmissioncache folder and the pbo mission, then click move pbo. A file will be saved, which contains the path to both so next time you run the program it will remember your choices. Run the server using tadst and choose to run the mission from the pbo instead of the folder. If you run into any errors, don't hesitate to post below. I'll get it sorted asap. Preview: https://gyazo.com/0b8547ebe74163d581764ed8ad7c291f MissionQuick_Move.exe
  21. Before we begin. This has been made for and tested on the latest release for AsYetUntitled. Description: Dynamic Drug Dealer, changes position every X minutes and stays put for X minutes. Compatible with any object/character in Arma 3 for both civ's for store and cops for "Question Dealer". THIS SCRIPT UTILIZES THE LIFE_SERVER FOLDER. BEFORE CONTINUING, PLEASE MAKE SURE TO MAKE A BACKUP OF YOUR LIFE_SERVER FOLDER. I AM NOT RESPONSIBLE FOR ANY MISTAKES MADE. If you don't have it already, create a folder in your life_server > Functions. Create a new file called: fn_initDD.sqf inside that document, add the following; #include "\life_server\script_macros.hpp" /* Author: Drunken Cheetah File: fn_initDD.sqf Desc: Initializes drug dealer before changing spots begins. */ //sleep(5*60); //testing sleep(10*60); []spawn TON_fnc_drugdealerInit; Save that file, and heaed over to life_server >> config.cpp and add the following under TON_Systems class missions { file = "\life_server\Functions\Scripts"; class initDD {}; class drugdealerInit {}; }; save that file, and head to life_server >> init.sqf and add the following after; life_wanted_list = []; >> [] execVM "\life_server\Functions\Scripts\fn_initDD.sqf"; Create a new file in the scripts folder called fn_drugdealerInit.sqf and add the following inside; #include "\life_server\script_macros.hpp" /* File Name: fn_drugdealerInit.sqf Author: Drunken Cheetah Desc: Dynamic drug dealer, moves position every X minutes. Version: 2.2 */ private["_drug1","_positions","_spawnPos","_man","_stayTime","_debug"]; if(LIFE_SETTINGS(getNumber, "enable_drugDealer") isEqualTo 0) exitWith {}; _man = LIFE_SETTINGS(getText, "man_to_use"); _stayTime = LIFE_SETTINGS(getNumber, "drugDealer_position_time"); //change locations here. Make sure each new location has the brackets around it when replacing. e.g [1,2,3,4], _positions = [[8362.88,12441.3,-3.8147e-006],[15769.8,10645,0],[25372.6,20334.4,1.17488],[14312.4,17413.7,1.90735e-006]]; _spawnPos = _positions select floor random count _positions; diag_log "..:: Drunken Cheetahs DRUG DEALER SCRIPT - STARTING ::.."; [3,"<t align='center'><t size='2.4'><t color='#FF0000'>Drug Dealer</t></t><br/> The drug dealer has found a new place to deal from!"] remoteExecCall ["life_fnc_broadcast",0]; _drug1 = createMarker ["drug_dealer",_spawnPos]; "drug_dealer" setMarkerColor "ColorEast"; "drug_dealer" setMarkerType "mil_dot"; "drug_dealer" setMarkerText "Drug Dealer"; dd = createVehicle [_man,_spawnPos, [], 0, "CAN_COLLIDE"]; [dd,[localize "STR_MAR_Question_Dealer",life_fnc_questionDealer,"",0,false,false,"",'isNull objectParent player && player distance _target < 5 && playerSide isEqualTo west && !life_action_inUse']] remoteExec ["addAction",0,dd]; [dd,["Drug Dealer",life_fnc_virt_menu,"drugdealer",0,false,false,"",'playerSide isEqualTo civilian']] remoteExec ["addAction",0,dd]; dd allowDamage false; dd enableSimulation false; sleep(_stayTime * 60); [3,"<t align='center'><t size='2.4'><t color='#FF0000'>Drug Dealer</t></t><br/> The drug dealer is packing up and moving to a new location. When he arrives, his new location will be marked on map!"] remoteExecCall ["life_fnc_broadcast",0]; deleteMarker "drug_dealer"; deleteVehicle dd; []spawn TON_fnc_initDD; save that file, and repack your life_server PBO. Heaed over to your mission folder, and open up config >> config_master.hpp and add the following to it //Drug Dealer - Drunken Cheetah enable_drugDealer = true; //Enable/Disable dynamic dealer -- If false, drug dealer wont be on the map at all. Will be changed next version drugDealer_position_time = 45; //In minutes man_to_use = "C_man_hunter_1_F"; //Character/Object to use as the Drug Dealer Save that file, and re-pack if need be. Head to the editor, and find your locations for where you want the drug dealer. The current locations are actual locations in Altis at okay-ish locations according to my server. The easiest way to get a new location, is place an object in the location you want, right click the object and click Log > Location. It will be copied to your clipboard, with the required brackets around it. Make sure to re-pack your mission, & life_server and you should be good to go. The script will run 10 minutes after the server starts, and the drug dealer will change positions every 45 minutes, thereafter.
  22. Before we begin, this has been made for and tested on the latest release for AsYetUntitled. Description: Automatically creates a safezone, based on empty markers. (You can use locations also, just change it in the script.); This version allows it to change every X minutes based on your adjusted settings. THIS SCRIPT UTILIZES THE LIFE_SERVER FOLDER. BEFORE CONTINUING MAKE SURE TO MAKE A BACKUP, I AM NOT RESPONSIBLE FOR ANY MISTAKES MADE. Create a new folder in your life_server folder called Scripts. Place it in life_server >> Functions >> Scripts After that, create a new document called fn_safezoneAuto.sqf Inside that add the following; https://gyazo.com/5b3639948e99dc664b3f437cb0fd6c5b Save that file, and head over to life_server >> config.cpp add the following in TON_systems class missions { file = "\life_server\Functions\Scripts"; class safezoneAuto {}; }; save that file, and head to life_server >> init.sqf and add the following after: life_wanted_list = []; >> [] execVM "\life_server\Functions\Scripts\fn_safezoneAuto.sqf"; Save that file, and repack your life_server PBO. Head over to your mission file, and open up the config >> config_master.hpp; add the following //Safezones by Drunken Cheetah use_autosafezone = true; //Enable or Disable Safezones timer_safezones = true; //Timer Safezones means every X amount of minutes, the safezone will change. 'use_autosafezone' must be true if this line is true. time_to_change = 30; // In minutes. e.g: 30 = 30 minutes size_of_zone = 450; //450x450 save that file and edit your mission.sqm In your desired locations for the safezones place empty markers, call them safe_kavala, safe_zaros, safe_pyrgos, safe_athira, safe_sofia If you dont wish to use empty markers, get locations. Once you've got your locations, simply edit the fn_safezoneAuto.sqf file at line 10. Thats all there is to it. Make sure you save all files, and start your server. Since this script is a server sided script, it will run when you start it.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.