fn_restrictWeapons.sqf 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. private ["_allItems", "_class", "_lastIndex", "_i", "_role", "_items", "_restricted", "_primary", "_secondary", "_base", "_x", "_name"];
  2. _allItems = [];
  3. _restricted = [];
  4. _lastRole = "";
  5. _currentRole = "";
  6. _class = missionConfigFile >> "CfgRespawnInventory";
  7. _lastIndex = ((count _class) - 1);
  8. for "_i" from 0 to _lastIndex do
  9. {
  10. _role = _class select _i;
  11. _items = getArray (_role >> "restrictions");
  12. {
  13. if (!(_x in _allItems)) then
  14. {
  15. _allItems = _allItems + [_x];
  16. };
  17. } forEach _items;
  18. };
  19. while { true } do
  20. {
  21. sleep 2;
  22. _currentRole = player getVariable ["role", "none"];
  23. if (_lastRole != _currentRole) then
  24. {
  25. _lastRole = _currentRole;
  26. _safeItems = getArray (missionConfigFile >> "CfgRespawnInventory" >> _lastRole >> "restrictions");
  27. _restricted = (_allItems - _safeItems);
  28. };
  29. _primary = primaryWeapon player;
  30. _secondary = secondaryWeapon player;
  31. _backpack = backpack player;
  32. _uniform = uniform player;
  33. _headgear = headgear player;
  34. {
  35. _item = _x select 0;
  36. _config = _x select 1;
  37. _command = _x select 2;
  38. _class = configName (inheritsFrom (configFile >> _config >> _item));
  39. _base = configName (inheritsFrom (configFile >> _config >> _class));
  40. if ((_item in _restricted) || (_class in _restricted) || (_base in _restricted)) then
  41. {
  42. call compile format["%1", _command];
  43. _name = getText (configFile >> _config >> _item >> "displayName");
  44. hint parseText format["<t color='#FF0000' size='2.2'>Restricted<br/>Item</t><br/>--------------------<br/>You class you have selected is not qualified to use the %1.<br/><br/>Make sure to play your class!", _name];
  45. };
  46. } forEach
  47. [
  48. [_primary, "CfgWeapons", "player removeWeapon _item"],
  49. [_secondary, "CfgWeapons", "player removeWeapon _item"],
  50. [_backpack, "CfgBackpacks", "removeBackpack player"],
  51. [_uniform, "CfgWeapons", "removeUniform player"],
  52. [_headgear, "CfgWeapons", "removeHeadgear player"]
  53. ];
  54. };