Jump to content

Search the Community

Showing results for tags 'market menu'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Altis Life RPG
    • Headquarters
    • Introductions
    • RULES
  • Altis Life RPG Community
    • General Discussion
    • Helper Recruitment
    • Altis Life Server Advertising
    • Discord (join us for discuss)
  • Tools and Administration
    • Altis Life RPG (official Framework)
    • Altis Life Wiki
    • Server Setup and Configuration
    • Database
    • Security
    • Maintenance
  • Altis Life Customization
    • Server & Scripting Help Desk
    • Releases & Download
    • Misc & Tools
  • Kool Kids Klub's Oof
  • Kool Kids Klub's Secret Spot

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me


CPU


Memory


Hard Drive


Graphic Card


PSU


Case


Monitor


Description - Other Accessories

Found 1 result

  1. Market Display This is a simple Dialog script for the Y-Menu which upon being opened, will pull a group of items from an array and displays a nice little description of the item along with the item's sell price (if any), buy price (if any) and weight. This was made specifically for virtual items and will not work with items such as weapons, clothing, or other items from Arma 3. Preview DISCLAIMER: These scripts were made on and tested on the most recent Altis Life Framework(v5.0.0) & 4.4r3. They may not work if you are attempting to use them on anything lower. The scripts also do not support Dynamic Markets of any kind. Tutorial 1. In your functions.hpp add the following to dialog\functions: class marketLBChange {}; class marketUpdate {}; class marketMenu {}; 2. Open dialog\functions and make a file called fn_marketLBChange: #include "..\..\script_macros.hpp" /* File: fn_marketLBChange.sqf Author: Bryan "Tonic" Boardwine Modified by Ilusionz */ private _itemControl = _this select 0; private _itemIndex = _this select 1; //Fetch some information. private _iName = _itemControl lbData _itemIndex; private _dName = M_CONFIG(getText,"VirtualItems",_iName,"displayName"); private _bPrice = M_CONFIG(getNumber,"VirtualItems",_iName,"buyPrice"); private _sPrice = M_CONFIG(getNumber,"VirtualItems",_iName,"sellPrice"); private _iWeight = M_CONFIG(getNumber,"VirtualItems",_iName,"weight"); private _iDescrip = M_CONFIG(getText,"VirtualItems",_iName,"description"); ctrlShow [60704,true]; ctrlShow [60705,true]; ctrlShow [60706,true]; ctrlShow [60707,true]; ctrlShow [60708,true]; ctrlShow [60709,true]; ctrlShow [60710,true]; ctrlShow [60711,true]; ctrlShow [60712,true]; ctrlSetText [60704, localize _dName]; ctrlSetText [60710,format ["%1",_iWeight]]; if (!(_bPrice isEqualTo -1)) then { ctrlSetText [60712,format ["$%1",[_bPrice] call life_fnc_numberText]]; } else { ctrlSetText [60712, "N/A"]; }; if (!(_sPrice isEqualTo -1)) then { ctrlSetText [60711,format ["$%1",[_sPrice] call life_fnc_numberText]]; } else { ctrlSetText [60711, "N/A"]; }; (CONTROL(60700,60709)) ctrlSetStructuredText parseText format["%1",_iDescrip]; 3. In dialog\functions make another file called fn_marketMenu.sqf: createDialog "marketdisplay"; [] call life_fnc_marketUpdate; 4. Again in dialog\functions create another file called fn_marketUpdate.sqf: #include "..\..\script_macros.hpp" /* File: fn_marketUpdate.sqf Author: Ilusionz Description: Update and fill the market menu. */ private ["_item_list","_shopItems","_name","_buyPrice","_sellPrice","_weight","_displayName"]; disableSerialization; //Setup control vars. _item_list = CONTROL(60700,67001); ctrlShow [60704,false]; ctrlShow [60705,false]; ctrlShow [60706,false]; ctrlShow [60707,false]; ctrlShow [60708,false]; ctrlShow [60709,false]; ctrlShow [60710,false]; ctrlShow [60711,false]; ctrlShow [60712,false]; //Purge list lbClear _item_list; if (!isClass(missionConfigFile >> "VirtualShops" >> "ymarket")) exitWith {closeDialog 0; hint localize "STR_NOTF_ConfigDoesNotExist";}; ctrlSetText[67003,localize (M_CONFIG(getText,"VirtualShops","ymarket","name"))]; _shopItems = M_CONFIG(getArray,"VirtualShops","ymarket","items"); { _displayName = M_CONFIG(getText,"VirtualItems",_x,"displayName"); _buyPrice = M_CONFIG(getNumber,"VirtualItems",_x,"buyPrice"); _sellPrice = M_CONFIG(getNumber,"VirtualItems",_x,"sellPrice"); _weight = M_CONFIG(getNumber,"VirtualItems",_x,"weight"); _item_list lbAdd format ["%1",(localize _displayName)]; _item_list lbSetData [(lbSize _item_list)-1,_x]; _icon = M_CONFIG(getText,"VirtualItems",_x,"icon"); if (!(_icon isEqualTo "")) then { _item_list lbSetPicture [(lbSize _item_list)-1,_icon]; }; } forEach _shopItems; 5. Open your dialog folder and create market_menu.hpp: class marketDisplay { idd = 60700; name= "marketDisplay"; movingEnable = 0; enableSimulation = 1; class controlsBackground { class Life_RscTitleBackground: Life_RscText { idc = -1; text = "Altis Item Database"; //--- ToDo: Localize; x = 0.298906 * safezoneW + safezoneX; y = 0.27516 * safezoneH + safezoneY; w = 0.170156 * safezoneW; h = 0.022 * safezoneH; colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"}; }; class MainBackground: Life_RscText { idc = -1; x = 0.298906 * safezoneW + safezoneX; y = 0.2976 * safezoneH + safezoneY; w = 0.402187 * safezoneW; h = 0.407 * safezoneH; colorBackground[] = {0,0,0,0.7}; }; class mText: Life_RscText { idc = -1; text = "Market Database"; //--- ToDo: Localize; x = 0.300969 * safezoneW + safezoneX; y = 0.302 * safezoneH + safezoneY; w = 0.195937 * safezoneW; h = 0.022 * safezoneH; colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])",0.5}; }; class mText2: Life_RscText { idc = -1; text = "Item Information"; //--- ToDo: Localize; x = 0.502062 * safezoneW + safezoneX; y = 0.302 * safezoneH + safezoneY; w = 0.195937 * safezoneW; h = 0.022 * safezoneH; colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])",0.5}; }; }; class controls { class itemList: Life_RscListBox { idc = 67001; onLBSelChanged = "_this call life_fnc_marketLBChange"; x = 0.304062 * safezoneW + safezoneX; y = 0.3328 * safezoneH + safezoneY; w = 0.190781 * safezoneW; h = 0.363 * safezoneH; }; class Title: Life_RscTitle { idc = 67003; text = "Altis Item Database"; //--- ToDo: Localize; x = 0.298906 * safezoneW + safezoneX; y = 0.2756 * safezoneH + safezoneY; w = 0.170156 * safezoneW; h = 0.022 * safezoneH; colorText[] = {0.95,0.95,0.95,1}; sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1) * GUI_GRID_H; }; class ButtonClose: Life_RscButtonMenu { onButtonClick = "closeDialog 0;"; idc = 60702; text = "Close"; //--- ToDo: Localize; x = 0.636641 * safezoneW + safezoneX; y = 0.7046 * safezoneH + safezoneY; w = 0.0644531 * safezoneW; h = 0.022 * safezoneH; colorText[] = {1,1,1,1}; colorBackground[] = {0,0,0,0.8}; }; class ItemName: Life_RscText { idc = 60704; text = ""; x = 0.497937 * safezoneW + safezoneX; y = 0.335 * safezoneH + safezoneY; w = 0.190781 * safezoneW; h = 0.055 * safezoneH; sizeEx = 2.7 * 0.02; }; class BuyPrice: Life_RscText { idc = 60705; text = "Buy Price:"; //--- ToDo: Localize; x = 0.498969 * safezoneW + safezoneX; y = 0.5308 * safezoneH + safezoneY; w = 0.190781 * safezoneW; h = 0.055 * safezoneH; sizeEx = 2.7 * 0.02; }; class SellPrice: Life_RscText { idc = 60706; text = "Sell Price:"; //--- ToDo: Localize; x = 0.498969 * safezoneW + safezoneX; y = 0.5726 * safezoneH + safezoneY; w = 0.190781 * safezoneW; h = 0.055 * safezoneH; sizeEx = 2.7 * 0.02; }; class Weight: Life_RscText { idc = 60707; text = "Weight:"; //--- ToDo: Localize; x = 0.498969 * safezoneW + safezoneX; y = 0.6166 * safezoneH + safezoneY; w = 0.190781 * safezoneW; h = 0.055 * safezoneH; sizeEx = 2.7 * 0.02; }; class Description: Life_RscStructuredText { idc = 60708; text = "Description:"; //--- ToDo: Localize; x = 0.497937 * safezoneW + safezoneX; y = 0.379 * safezoneH + safezoneY; w = 0.06159 * safezoneW; h = 0.044 * safezoneH; }; class DescriptionText: Life_RscStructuredText { idc = 60709; text = ""; x = 0.497937 * safezoneW + safezoneX; y = 0.4164 * safezoneH + safezoneY; w = 0.195937 * safezoneW; h = 0.11 * safezoneH; }; class WeightNum: Life_RscText { idc = 60710; text = ""; x = 0.587635 * safezoneW + safezoneX; y = 0.6166 * safezoneH + safezoneY; w = 0.190781 * safezoneW; h = 0.055 * safezoneH; colorText[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"}; sizeEx = 2.7 * 0.02; }; class SellNum: Life_RscText { idc = 60711; text = ""; x = 0.587657 * safezoneW + safezoneX; y = 0.5726 * safezoneH + safezoneY; w = 0.190781 * safezoneW; h = 0.055 * safezoneH; colorText[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"}; sizeEx = 2.7 * 0.02; }; class BuyNum: Life_RscText { idc = 60712; text = ""; x = 0.587654 * safezoneW + safezoneX; y = 0.5308 * safezoneH + safezoneY; w = 0.190781 * safezoneW; h = 0.055 * safezoneH; colorText[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"}; sizeEx = 2.7 * 0.02; }; }; }; 6. In your dialog folder, open player_inv.hpp and add the following below ButtonSyncData: class marketButton: Life_RscButtonMenu { idc = 60714; onButtonClick = "[] call life_fnc_marketMenu"; text = "$STR_PM_yMarket"; //--- ToDo: Localize; x = 0.598484 * safezoneW + safezoneX; y = 0.66808 * safezoneH + safezoneY; w = 0.0644531 * safezoneW; h = 0.022 * safezoneH; colorText[] = {1,1,1,1}; colorBackground[] = {0,0,0,0.8}; }; 7. Open dialog\MasterHandler.hpp and add the following: #include "market_menu.hpp" 8. Open config_vItems.hpp and add the following class below class cop: If you are using Altis Life 5.0.0: //THIS IS NOT A SHOP, IT IS JUST THE LIST OF ITEMS THE MARKET PULLS - IT IS IN ALPHABETICAL ORDER class ymarket { name = "STR_Shops_yMarket"; conditions = ""; items[] = {"apple", "blastingcharge", "boltcutter", "cannabis", "catshark", "catshark_raw", "cement", "cocaine_processed", "cocaine_unprocessed", "coffee", "copper_refined", "copper_unrefined", "defibrillator", "defusekit", "diamond_cut", "diamond_uncut", "donuts", "fuelEmpty", "fuelFull", "glass", "goat", "goat_raw", "goldbar", "hen", "hen_raw", "heroin_processed", "heroin_unprocessed", "iron_refined", "iron_unrefined", "lockpick", "mackerel", "mackerel_raw", "marijuana", "mullet", "mullet_raw", "mushrooms", "oil_processed", "oil_unprocessed", "ornate", "ornate_raw", "peach", "pickaxe", "rabbit", "rabbit_raw", "redgull", "rock", "rooster", "rooster_raw", "salema", "salema_raw", "sand", "salt_refined", "salt_unrefined", "sheep", "sheep_raw", "spikeStrip", "storagebig", "storagesmall", "toolkit", "tbacon", "tuna", "tuna_raw", "turtle_soup", "turtle_raw", "waterBottle"}; }; If you are using Altis Life 4.x: class ymarket { name = "STR_Shops_yMarket"; side = ""; icense = ""; level[] = { "", "", -1, "" }; items[] = {"apple", "blastingcharge", "boltcutter", "cannabis", "catshark", "catshark_raw", "cement", "cocaine_processed", "cocaine_unprocessed", "coffee", "copper_refined", "copper_unrefined", "defibrillator", "defusekit", "diamond_cut", "diamond_uncut", "donuts", "fuelEmpty", "fuelFull", "glass", "goat", "goat_raw", "goldbar", "hen", "hen_raw", "heroin_processed", "heroin_unprocessed", "iron_refined", "iron_unrefined", "lockpick", "mackerel", "mackerel_raw", "marijuana", "mullet", "mullet_raw", "mushrooms", "oil_processed", "oil_unprocessed", "ornate", "ornate_raw", "peach", "pickaxe", "rabbit", "rabbit_raw", "redgull", "rock", "rooster", "rooster_raw", "salema", "salema_raw", "sand", "salt_refined", "salt_unrefined", "sheep", "sheep_raw", "spikeStrip", "storagebig", "storagesmall", "toolkit", "tbacon", "tuna", "tuna_raw", "turtle_soup", "turtle_raw", "waterBottle"}; }; 9. These scripts introduce a new setting needed on every virtual item you would like on your market display. Which is a small description of the item. If you want to, you can remove it in fn_marketLBChange - but I highly recommend keeping it as filler for the menu (plus a little bonus). Here are a few examples of a few I've used this (don't use these as their weights and prices may be different to yours): class marijuana { variable = "marijuana"; displayName = "STR_Item_Marijuana"; weight = 4; buyPrice = 7000; sellPrice = 5500; illegal = true; edible = -1; icon = "icons\ico_marijuana.paa"; description = "Classic OG kush. Snoop would be proud. Sold at any drug dealer."; }; class redgull { variable = "redgull"; displayName = "STR_Item_RedGull"; weight = 1; buyPrice = 1500; sellPrice = 200; illegal = false; edible = 100; icon = "icons\ico_redgull.paa"; description = "Enery drink that certainly doesn't give you wings. Very high in sugar."; }; class salt_unrefined { variable = "saltUnrefined"; displayName = "STR_Item_Salt"; weight = 5; buyPrice = -1; sellPrice = -1; illegal = false; edible = -1; icon = "icons\ico_saltUnprocessed.paa"; description = "Un-refined Salt. Processed at the Salt Processor. Also gathered from the Tears of the Arma Community."; }; 10. Finally, open your Stringtable.xml and add the following: <Key ID="STR_PM_yMarket"> <Original>Market</Original> </Key> <Key ID="STR_Shops_yMarket"> <Original>Altis Market</Original> </Key> And that's it! All done. SIDE NOTE: Make sure any new items you add to the virtual item config are also added to the market array, otherwise they won't show up!
×
×
  • Create New...