Advertisement
Guest User

Untitled

a guest
Jan 5th, 2017
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.24 KB | None | 0 0
  1. /*
  2. Author: Larrow, edited by Haleks
  3.  
  4. Description: awesome loot search function
  5.  
  6. Returns:
  7.  
  8. */
  9. rvg_lootContModels = ["barreltrash_f.p3d","officecabinet_01_f.p3d","officetable_01_f.p3d","officetable_01_f.p3d","cashdesk_f.p3d","icebox_f.p3d","almara.p3d","case_bedroom_b.p3d","fridge.p3d","kitchenstove_elec.p3d","lekarnicka.p3d","metalcase_01.p3d","dhangar_whiteskrin.p3d","library_a.p3d","skrin_bar.p3d","case_wooden_b.p3d","truhla_stara.p3d","skrin_opalena.p3d","dhangar_brownskrin.p3d","case_a.p3d","case_cans_b.p3d","case_bedroom_a.p3d","desk.p3d","dhangar_knihovna.p3d","dhangar_psacistul.p3d","pultskasou.p3d","icebox.p3d","chest_ep1.p3d","cabinet_ep1.p3d","woodenbox_f.p3d","garbagebin_02_f.p3d","garbagebags_f.p3d","garbagebarrel_01_f.p3d","garbagepallet_f.p3d","garbagewashingmachine_f.p3d","luggageheap_02_f.p3d","luggageheap_05_f.p3d","luggageheap_04_f.p3d","garbageheap_01_f.p3d","garbageheap_02_f.p3d","garbageheap_03_f.p3d","garbageheap_04_f.p3d","junkpile_f.p3d","garbagebin_01_f.p3d","garbagecontainer_closed_f.p3d","wheeliebin_01_f.p3d","crateswooden_f.p3d","garbagecontainer_open_f.p3d",
  10. "sacks_goods_f.p3d","sacks_heap_f.p3d","paperbox_closed_f.p3d","paperbox_open_full_f.p3d","scrap_mrap_01_f.p3d","pallet_milboxes_f.p3d","scrapheap_1_f.p3d","scrapheap_2_f.p3d","fishinggear_01_f.p3d","fishinggear_02_f.p3d","tabledesk_f.p3d","barreltrash_grey_f.p3d","woodencrate_01_f.p3d","woodencrate_01_stack_x3_f.p3d","woodencrate_01_stack_x5_f.p3d","kontejner.p3d","kontejner_sklo.p3d","kontejner_papir.p3d","kontejner_plasty.p3d","misc_garb_heap_ep1.p3d","popelnice.p3d","kontejner.p3d","misc_gcontainer_big.p3d","popelnice.p3d","bag_ep1.p3d","bags_ep1.p3d","cwa_bags_stack.p3d","bags_stack_ep1.p3d","sack_ep1.p3d","wicker_basket_ep1.p3d","crates_ep1.p3d","usbasicammo.p3d","ammobednax.p3d","usbasicweapons.p3d","usspecialweapons.p3d","misc_backpackheap.p3d","misc_backpackheap_ep1.p3d","hromada_beden_dekorativnix.p3d","box_c.p3d","drevena_bedna.p3d","wreck_hmmwv_f.p3d","wreck_skodovka_f.p3d","wreck_cardismantled_f.p3d","wreck_truck_f.p3d","wreck_car2_f.p3d","wreck_car_f.p3d","wreck_car3_f.p3d","wreck_hunter_f.p3d","wreck_offroad_f.p3d","wreck_offroad2_f.p3d","wreck_uaz_f.p3d","wreck_ural_f.p3d","wreck_truck_dropside_f.p3d","wreck_van_f.p3d","lada_wrecked.p3d","hmmwv_wrecked.p3d","jeept.p3d","jeept_horeznacky.p3d","jeept_tanker.p3d","hiluxt.p3d","datsun01t.p3d","datsun02t.p3d","skodovka_wrecked.p3d","uaz_wrecked.p3d","ural_wrecked.p3d",
  11. "garbage_paleta.p3d",
  12. "garbage_misc.p3d"
  13. ];
  14. rvg_searchedLoot = [];
  15. rvg_noLootString = [
  16. "You found nothing.",
  17. "Nothing here...",
  18. "Empty...",
  19. "Nothing but junk.",
  20. "It's empty."
  21. ];
  22.  
  23. fn_findString = {
  24. params ["_obj", "_rvg_lootContModels"];
  25. _r = "";
  26. {
  27. if ([_x, str _obj] call bis_fnc_inString) exitWith {
  28. _r = _x
  29. };
  30. } forEach _rvg_lootContModels;
  31. _r
  32. };
  33.  
  34. player setVariable [ "rvg_lootSearchAction", player addAction [ "Search #", {
  35. nul = [] spawn {
  36. player setVariable ["_isSearching", true];
  37. _obj = rvg_lootTarget select 0;
  38. titleText ["", "PLAIN DOWN"];
  39. //player playAction "gear";
  40. player playActionNow "medicStartRightSide";
  41. _sound = selectRandom ["rum1", "rum2", "rum3", "rum4", "rum5", "rum6", "rum7", "rum8"];
  42. [player, _sound] remoteExec ["say3D", 0, false];
  43. sleep 2;
  44. if (!(_obj in rvg_searchedLoot) && {!(_obj in (missionNamespace getVariable "buildings_manager"))}) then {
  45. rvg_searchedLoot pushBackUnique _obj;
  46. if (!(isNil {_obj getVariable "_uncheckedLoot"})) exitWith {};
  47. for "_lootType" from 0 to 3 do {
  48. if (((missionNameSpace getVariable "rvg_specialLootChances") select _lootType) > random 100) exitWith {
  49. _lootholder = createVehicle ["GroundWeaponHolder", ASLToATL getPosASL player, [], 0, "CAN_COLLIDE"];
  50. _lootholder setVariable ["_uncheckedLoot", [0, _lootType], true];
  51. 0 = loot_to_clean pushBack _lootholder;
  52. 0 = (missionNamespace getVariable "buildings_manager") pushBack _obj;
  53. missionNamespace setVariable ["rvgLootTimeStamp_" + str _obj, date select 2, true];
  54. missionNameSpace setVariable ["specialLoot" + str _obj, _lootholder, true];
  55. };
  56. };
  57. };
  58. player playActionNow "medicStop";
  59. sleep 0.1;
  60. if !(isNil {missionNameSpace getVariable ("specialLoot" + str _obj)}) then {
  61. player action ["Gear", (missionNameSpace getVariable ("specialLoot" + str _obj))];
  62. } else {
  63. titleText [selectRandom rvg_noLootString, "PLAIN DOWN"];
  64. };
  65. player setVariable ["_isSearching", nil];
  66. };
  67. },
  68. [],
  69. 1,
  70. true,
  71. true,
  72. "",
  73. "
  74. if (!isnil 'rvg_lootTarget' && {isnil {player getVariable '_isSearching'}}) then {
  75. player setUserActionText [ player getvariable 'rvg_lootSearchAction', format [ 'Search %1', (((rvg_lootTarget select 1) splitString './_' ) select 0)]];
  76. true
  77. };
  78. "
  79. ] ];
  80.  
  81. rvgLootScanEH = addMissionEventHandler ["Draw3D",{
  82. rvg_lootTarget = nil;
  83. if !(player isEqualTo (vehicle player)) exitWith {};
  84. _objs = lineIntersectsObjs [ATLToASL positionCameraToWorld [0,0,0], ATLToASL positionCameraToWorld[0,0,4], player, objNull, true, 32];
  85. if !(count _objs isEqualTo 0) then {
  86. _obj = _objs select ((count _objs) - 1);
  87. _objValidStr = [_obj, rvg_lootContModels] call fn_findString;
  88. if !(_objValidStr isEqualTo "") then {
  89. rvg_lootTarget = [_obj, _objValidStr];
  90. };
  91. };
  92. }];
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement