All-In-One-Command-Menu icon indicating copy to clipboard operation
All-In-One-Command-Menu copied to clipboard

Feature request: Custom scripts

Open Bluscream opened this issue 6 years ago • 10 comments

This is kind of a big one and you can deny it or delay it while Super AI and addon 3 are in development, also if you say this is out of scope or you don't have the C++ experience to do that.

Feature Description:

I was always wanting to have a paged scroll menu that lists custom scripts from a specific folder (<arma3>\scripts\ maybe?) and list them in a dynamic (paged) manner so if i ever want to have a quick script (to flip nearest vehicle for example) i can do that without much hassle and without the need of an additional keybind. I think it would fit pretty well and the menu option should just be hidden if no scripts are in that folder or the folder isn't present.

Example Page: (The parts between () and before : are just for reference and should not be shown in the menu)

Title: Custom Scripts
----------------------
Item1: file 1 (scripts\file 1.sqf)
Item2: file 2 (scripts\file 2.sqf)
...
Item 9: file 9 (scripts\file 9.sqf)
Item 10: Reload custom scripts (Only on the last page)
Item 11: Next Page
Item 12: Previous Page

Sadly such a thing would require usage of a extension according to [1][2] but it should definitly be possible ^^ (You can also use C# if you're more familiar with that. I can even help you if you want)

On the plus side, if you set up a extension now for the project you can use that for other stuff that exceeds SQF capabilites aswell :3

Bluscream avatar Oct 05 '19 05:10 Bluscream

I do know some C and C++. I might take a look at this later.

Leopard20 avatar Oct 05 '19 12:10 Leopard20

var fileList = new Arma.FileList(@"S:\Steam\steamapps\common\Arma 3\SQF", recursive: true, calcMD5: true);
            Console.WriteLine(fileList.ToJson(true));
            Console.WriteLine(Converter.SerializeObject(fileList));
_o = "RealTimeAndWeather" callExtension "blu_fnc_getfilesinpath ""S:/Steam/steamapps/common/Arma 3/SQF""";
files = parseSimpleArray _o;
hint parseText (files joinString "<br/>");
C# Class Instance:
{
  "StartTime": "2019-10-28T03:57:43.9611797Z",
  "EndTime": "2019-10-28T03:57:45.3012159Z",
  "Error": null,
  "BaseDirectory": {
    "Path": "S:\\Steam\\steamapps\\common\\Arma 3\\SQF",
    "Directories": [
      {
        "Path": "S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\blu",
        "Directories": [],
        "Files": [
          {
            "Path": "S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\blu\\flipNearest.sqf",
            "Name": "flipNearest",
            "Extension": "sqf",
            "SizeBytes": 207,
            "Created": "2019-10-06T12:10:13.3470244Z",
            "Modified": "2019-10-06T12:18:56.4494851Z",
            "Accessed": "2019-10-06T12:18:56.4494851Z",
            "MD5": "00f1491696df92cdc76e455a26e1af82",
            "Errors": []
          },
          {
            "Path": "S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\blu\\getIn.sqf",
            "Name": "getIn",
            "Extension": "sqf",
            "SizeBytes": 287,
            "Created": "2019-09-16T11:42:23.4457176Z",
            "Modified": "2019-09-16T11:44:23.3161558Z",
            "Accessed": "2019-09-16T11:44:23.3161558Z",
            "MD5": "41b479bcbd505e1e20fa73d48aa81262",
            "Errors": []
          },
          {
            "Path": "S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\blu\\spawnInTank.sqf",
            "Name": "spawnInTank",
            "Extension": "sqf",
            "SizeBytes": 949,
            "Created": "2019-09-16T11:35:31.2324667Z",
            "Modified": "2019-09-16T11:38:15.425006Z",
            "Accessed": "2019-09-16T11:38:15.425006Z",
            "MD5": "45f0a777ed0e8956ad87229f99341f9d",
            "Errors": []
          }
        ],
        "Errors": []
      }
    ],
    "Files": [
      {
        "Path": "S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\addACEActions.sqf",
        "Name": "addACEActions",
        "Extension": "sqf",
        "SizeBytes": 1332,
        "Created": "2019-10-08T14:38:08.712323Z",
        "Modified": "2019-10-09T08:51:33.3106436Z",
        "Accessed": "2019-10-09T08:51:33.3106436Z",
        "MD5": "cda9e3c0bfa176a2862253fbcfdb31ba",
        "Errors": []
      },
      {
        "Path": "S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\blu.sqf",
        "Name": "blu",
        "Extension": "sqf",
        "SizeBytes": 2229,
        "Created": "2019-09-16T11:12:18.7509742Z",
        "Modified": "2019-09-16T11:29:34.1276463Z",
        "Accessed": "2019-09-16T11:29:34.1276463Z",
        "MD5": "9d5ef754106a21480ab5af6d74ecfa76",
        "Errors": []
      },
      {
        "Path": "S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\console.sqf",
        "Name": "console",
        "Extension": "sqf",
        "SizeBytes": 2278,
        "Created": "2019-10-14T14:19:52.5895551Z",
        "Modified": "2019-10-27T23:33:27.5464406Z",
        "Accessed": "2019-10-27T23:33:27.5464406Z",
        "MD5": "b88ee31d4c91e80a15ce1cf4e63ad48e",
        "Errors": []
      },
      {
        "Path": "S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\debugmon.sqf",
        "Name": "debugmon",
        "Extension": "sqf",
        "SizeBytes": 2766,
        "Created": "2019-10-06T11:09:02.473631Z",
        "Modified": "2019-10-09T18:27:14.6502306Z",
        "Accessed": "2019-10-09T18:27:14.6502306Z",
        "MD5": "9e6cae44750526a994869b9865d425ed",
        "Errors": []
      },
      {
        "Path": "S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\ExtasyMenu.sqf",
        "Name": "ExtasyMenu",
        "Extension": "sqf",
        "SizeBytes": 209920,
        "Created": "2019-09-16T00:23:26.2351892Z",
        "Modified": "2019-10-06T11:00:30.8862741Z",
        "Accessed": "2019-10-06T11:00:30.8862741Z",
        "MD5": "6d396a901abd2c8fd02ffc65cb9ca894",
        "Errors": []
      },
      {
        "Path": "S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\fps.sqf",
        "Name": "fps",
        "Extension": "sqf",
        "SizeBytes": 0,
        "Created": "2019-10-14T15:11:40.8986364Z",
        "Modified": "2019-10-14T15:33:16.3211926Z",
        "Accessed": "2019-10-14T15:33:16.3211926Z",
        "MD5": "d41d8cd98f00b204e9800998ecf8427e",
        "Errors": []
      },
      {
        "Path": "S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\fpscounter.sqf",
        "Name": "fpscounter",
        "Extension": "sqf",
        "SizeBytes": 858,
        "Created": "2019-10-14T13:43:05.0067701Z",
        "Modified": "2019-10-14T16:13:19.0921465Z",
        "Accessed": "2019-10-14T16:13:19.0921465Z",
        "MD5": "d1602ef35b3ad8f9a19e4193bc2b1525",
        "Errors": []
      },
      {
        "Path": "S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\FuzionMenu.sqf",
        "Name": "FuzionMenu",
        "Extension": "sqf",
        "SizeBytes": 117337,
        "Created": "2019-09-16T01:04:07.267417Z",
        "Modified": "2016-06-16T11:46:22.2647971Z",
        "Accessed": "2019-09-16T01:04:07.2684179Z",
        "MD5": "be3b88bbda54ccfb011e0dcc8f31c896",
        "Errors": []
      },
      {
        "Path": "S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\heal.sqf",
        "Name": "heal",
        "Extension": "sqf",
        "SizeBytes": 2112,
        "Created": "2019-10-05T18:34:36.553261Z",
        "Modified": "2019-10-06T11:14:17.3364901Z",
        "Accessed": "2019-10-06T11:14:17.3364901Z",
        "MD5": "8f4c6d02d25636d8234c0feac7f3d388",
        "Errors": []
      },
      {
        "Path": "S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\infoText.sqf",
        "Name": "infoText",
        "Extension": "sqf",
        "SizeBytes": 612,
        "Created": "2019-10-27T20:57:17.046212Z",
        "Modified": "2019-10-27T21:00:27.5803171Z",
        "Accessed": "2019-10-27T21:00:27.5803171Z",
        "MD5": "ff77dfd5c4b946975a64c6d91f216c09",
        "Errors": []
      },
      {
        "Path": "S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\infoText2.sqf",
        "Name": "infoText2",
        "Extension": "sqf",
        "SizeBytes": 2721,
        "Created": "2019-10-27T21:00:37.9982206Z",
        "Modified": "2019-10-27T21:00:38.0032202Z",
        "Accessed": "2019-10-27T21:00:38.0032202Z",
        "MD5": "aaebdb4ae09ada98ca3e6d3c5959b98e",
        "Errors": []
      },
      {
        "Path": "S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\invictus.sqf",
        "Name": "invictus",
        "Extension": "sqf",
        "SizeBytes": 70894,
        "Created": "2019-09-16T01:07:57.0939351Z",
        "Modified": "2019-09-16T01:07:57.5144354Z",
        "Accessed": "2019-09-16T01:07:57.5144354Z",
        "MD5": "30e338fc144338047cfb919d5d3028c2",
        "Errors": []
      },
      {
        "Path": "S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\JM3.sqf",
        "Name": "JM3",
        "Extension": "sqf",
        "SizeBytes": 111998,
        "Created": "2019-09-16T01:08:29.5624249Z",
        "Modified": "2019-09-16T01:08:09.9595233Z",
        "Accessed": "2019-09-16T01:08:30.0159009Z",
        "MD5": "d3f5fbf61fd952436c6430d58f12c7ff",
        "Errors": []
      },
      {
        "Path": "S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\NeonsMenu.sqf",
        "Name": "NeonsMenu",
        "Extension": "sqf",
        "SizeBytes": 302395,
        "Created": "2019-09-16T00:27:06.621545Z",
        "Modified": "2014-11-24T15:22:04.3350011Z",
        "Accessed": "2019-09-16T00:27:06.6230524Z",
        "MD5": "6a27461c84689474842fd32be9cac73d",
        "Errors": []
      },
      {
        "Path": "S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\NewScroll.sqf",
        "Name": "NewScroll",
        "Extension": "sqf",
        "SizeBytes": 89788,
        "Created": "2019-09-16T11:02:00.9271538Z",
        "Modified": "2014-12-27T14:27:41.7220621Z",
        "Accessed": "2019-09-16T11:02:00.9576638Z",
        "MD5": "caeb1f40befbe41cd3cd0c18dd924e13",
        "Errors": []
      },
      {
        "Path": "S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\pushBoat.sqf",
        "Name": "pushBoat",
        "Extension": "sqf",
        "SizeBytes": 794,
        "Created": "2019-10-09T12:02:04.0452255Z",
        "Modified": "2019-10-09T18:31:01.9964783Z",
        "Accessed": "2019-10-09T18:31:01.9964783Z",
        "MD5": "6d5ee77858c3715b8993c9d42011ef2b",
        "Errors": []
      },
      {
        "Path": "S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\slowmo.sqf",
        "Name": "slowmo",
        "Extension": "sqf",
        "SizeBytes": 672,
        "Created": "2019-10-05T17:38:34.5056811Z",
        "Modified": "2019-10-05T17:39:12.436063Z",
        "Accessed": "2019-10-05T17:39:12.436063Z",
        "MD5": "465655e6a90f2d9be4826da98f1d9794",
        "Errors": []
      },
      {
        "Path": "S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\tmp.sqf",
        "Name": "tmp",
        "Extension": "sqf",
        "SizeBytes": 605,
        "Created": "2019-10-14T14:15:37.0817788Z",
        "Modified": "2019-10-14T15:03:29.6637873Z",
        "Accessed": "2019-10-14T15:03:29.6637873Z",
        "MD5": "9176e3f1702c4bb9838916d4c1ce9f00",
        "Errors": []
      },
      {
        "Path": "S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\unflip.sqf",
        "Name": "unflip",
        "Extension": "sqf",
        "SizeBytes": 510,
        "Created": "2019-10-09T12:05:17.5171345Z",
        "Modified": "2019-10-09T12:09:43.763722Z",
        "Accessed": "2019-10-09T12:09:43.763722Z",
        "MD5": "df462e073c810946f0720cb21dca2b2e",
        "Errors": []
      },
      {
        "Path": "S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\unlockAllDoors.sqf",
        "Name": "unlockAllDoors",
        "Extension": "sqf",
        "SizeBytes": 1116,
        "Created": "2019-10-09T12:39:23.7222172Z",
        "Modified": "2019-10-09T12:46:34.499194Z",
        "Accessed": "2019-10-09T12:46:34.499194Z",
        "MD5": "31ed5a9c78c8ae6d8a5c940637ea23de",
        "Errors": []
      },
      {
        "Path": "S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\VariableScanner.sqf",
        "Name": "VariableScanner",
        "Extension": "sqf",
        "SizeBytes": 4962,
        "Created": "2019-09-16T01:09:51.7665103Z",
        "Modified": "2019-10-09T17:19:10.8720081Z",
        "Accessed": "2019-10-09T17:19:10.8720081Z",
        "MD5": "04607cf821d0120764c66aeb85f197ac",
        "Errors": []
      },
      {
        "Path": "S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\watch.sqf",
        "Name": "watch",
        "Extension": "sqf",
        "SizeBytes": 253,
        "Created": "2019-10-14T14:19:59.7005543Z",
        "Modified": "2019-10-27T08:40:04.2155805Z",
        "Accessed": "2019-10-27T08:40:04.2155805Z",
        "MD5": "2848bc37e07e70cb1fa286fc873dcc45",
        "Errors": []
      },
      {
        "Path": "S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\Zen_GenerateVRArea.sqf",
        "Name": "Zen_GenerateVRArea",
        "Extension": "sqf",
        "SizeBytes": 3244,
        "Created": "2019-10-07T11:54:40.8854154Z",
        "Modified": "2014-07-16T08:28:38.6395251Z",
        "Accessed": "2019-10-07T11:54:40.8864169Z",
        "MD5": "b90640eb72764ee64b20a5f8b9109454",
        "Errors": []
      }
    ],
    "Errors": []
  }
}
SQF Array:
["2019-10-28T03:57:43.9611797Z",
	"2019-10-28T03:57:45.3012159Z",
	nil,
	["S:\\Steam\\steamapps\\common\\Arma 3\\SQF",
		[["S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\blu",
				[],
				[["S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\blu\\flipNearest.sqf",
						"flipNearest",
						"sqf",
						207,
						"2019-10-06T12:10:13.3470244Z",
						"2019-10-06T12:18:56.4494851Z",
						"2019-10-06T12:18:56.4494851Z",
						"00f1491696df92cdc76e455a26e1af82",
						[]],
					["S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\blu\\getIn.sqf",
						"getIn",
						"sqf",
						287,
						"2019-09-16T11:42:23.4457176Z",
						"2019-09-16T11:44:23.3161558Z",
						"2019-09-16T11:44:23.3161558Z",
						"41b479bcbd505e1e20fa73d48aa81262",
						[]],
					["S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\blu\\spawnInTank.sqf",
						"spawnInTank",
						"sqf",
						949,
						"2019-09-16T11:35:31.2324667Z",
						"2019-09-16T11:38:15.425006Z",
						"2019-09-16T11:38:15.425006Z",
						"45f0a777ed0e8956ad87229f99341f9d",
						[]]],
				[]]],
		[["S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\addACEActions.sqf",
				"addACEActions",
				"sqf",
				1332,
				"2019-10-08T14:38:08.712323Z",
				"2019-10-09T08:51:33.3106436Z",
				"2019-10-09T08:51:33.3106436Z",
				"cda9e3c0bfa176a2862253fbcfdb31ba",
				[]],
			["S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\blu.sqf",
				"blu",
				"sqf",
				2229,
				"2019-09-16T11:12:18.7509742Z",
				"2019-09-16T11:29:34.1276463Z",
				"2019-09-16T11:29:34.1276463Z",
				"9d5ef754106a21480ab5af6d74ecfa76",
				[]],
			["S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\console.sqf",
				"console",
				"sqf",
				2278,
				"2019-10-14T14:19:52.5895551Z",
				"2019-10-27T23:33:27.5464406Z",
				"2019-10-27T23:33:27.5464406Z",
				"b88ee31d4c91e80a15ce1cf4e63ad48e",
				[]],
			["S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\debugmon.sqf",
				"debugmon",
				"sqf",
				2766,
				"2019-10-06T11:09:02.473631Z",
				"2019-10-09T18:27:14.6502306Z",
				"2019-10-09T18:27:14.6502306Z",
				"9e6cae44750526a994869b9865d425ed",
				[]],
			["S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\ExtasyMenu.sqf",
				"ExtasyMenu",
				"sqf",
				209920,
				"2019-09-16T00:23:26.2351892Z",
				"2019-10-06T11:00:30.8862741Z",
				"2019-10-06T11:00:30.8862741Z",
				"6d396a901abd2c8fd02ffc65cb9ca894",
				[]],
			["S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\fps.sqf",
				"fps",
				"sqf",
				0,
				"2019-10-14T15:11:40.8986364Z",
				"2019-10-14T15:33:16.3211926Z",
				"2019-10-14T15:33:16.3211926Z",
				"d41d8cd98f00b204e9800998ecf8427e",
				[]],
			["S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\fpscounter.sqf",
				"fpscounter",
				"sqf",
				858,
				"2019-10-14T13:43:05.0067701Z",
				"2019-10-14T16:13:19.0921465Z",
				"2019-10-14T16:13:19.0921465Z",
				"d1602ef35b3ad8f9a19e4193bc2b1525",
				[]],
			["S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\FuzionMenu.sqf",
				"FuzionMenu",
				"sqf",
				117337,
				"2019-09-16T01:04:07.267417Z",
				"2016-06-16T11:46:22.2647971Z",
				"2019-09-16T01:04:07.2684179Z",
				"be3b88bbda54ccfb011e0dcc8f31c896",
				[]],
			["S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\heal.sqf",
				"heal",
				"sqf",
				2112,
				"2019-10-05T18:34:36.553261Z",
				"2019-10-06T11:14:17.3364901Z",
				"2019-10-06T11:14:17.3364901Z",
				"8f4c6d02d25636d8234c0feac7f3d388",
				[]],
			["S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\infoText.sqf",
				"infoText",
				"sqf",
				612,
				"2019-10-27T20:57:17.046212Z",
				"2019-10-27T21:00:27.5803171Z",
				"2019-10-27T21:00:27.5803171Z",
				"ff77dfd5c4b946975a64c6d91f216c09",
				[]],
			["S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\infoText2.sqf",
				"infoText2",
				"sqf",
				2721,
				"2019-10-27T21:00:37.9982206Z",
				"2019-10-27T21:00:38.0032202Z",
				"2019-10-27T21:00:38.0032202Z",
				"aaebdb4ae09ada98ca3e6d3c5959b98e",
				[]],
			["S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\invictus.sqf",
				"invictus",
				"sqf",
				70894,
				"2019-09-16T01:07:57.0939351Z",
				"2019-09-16T01:07:57.5144354Z",
				"2019-09-16T01:07:57.5144354Z",
				"30e338fc144338047cfb919d5d3028c2",
				[]],
			["S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\JM3.sqf",
				"JM3",
				"sqf",
				111998,
				"2019-09-16T01:08:29.5624249Z",
				"2019-09-16T01:08:09.9595233Z",
				"2019-09-16T01:08:30.0159009Z",
				"d3f5fbf61fd952436c6430d58f12c7ff",
				[]],
			["S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\NeonsMenu.sqf",
				"NeonsMenu",
				"sqf",
				302395,
				"2019-09-16T00:27:06.621545Z",
				"2014-11-24T15:22:04.3350011Z",
				"2019-09-16T00:27:06.6230524Z",
				"6a27461c84689474842fd32be9cac73d",
				[]],
			["S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\NewScroll.sqf",
				"NewScroll",
				"sqf",
				89788,
				"2019-09-16T11:02:00.9271538Z",
				"2014-12-27T14:27:41.7220621Z",
				"2019-09-16T11:02:00.9576638Z",
				"caeb1f40befbe41cd3cd0c18dd924e13",
				[]],
			["S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\pushBoat.sqf",
				"pushBoat",
				"sqf",
				794,
				"2019-10-09T12:02:04.0452255Z",
				"2019-10-09T18:31:01.9964783Z",
				"2019-10-09T18:31:01.9964783Z",
				"6d5ee77858c3715b8993c9d42011ef2b",
				[]],
			["S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\slowmo.sqf",
				"slowmo",
				"sqf",
				672,
				"2019-10-05T17:38:34.5056811Z",
				"2019-10-05T17:39:12.436063Z",
				"2019-10-05T17:39:12.436063Z",
				"465655e6a90f2d9be4826da98f1d9794",
				[]],
			["S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\tmp.sqf",
				"tmp",
				"sqf",
				605,
				"2019-10-14T14:15:37.0817788Z",
				"2019-10-14T15:03:29.6637873Z",
				"2019-10-14T15:03:29.6637873Z",
				"9176e3f1702c4bb9838916d4c1ce9f00",
				[]],
			["S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\unflip.sqf",
				"unflip",
				"sqf",
				510,
				"2019-10-09T12:05:17.5171345Z",
				"2019-10-09T12:09:43.763722Z",
				"2019-10-09T12:09:43.763722Z",
				"df462e073c810946f0720cb21dca2b2e",
				[]],
			["S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\unlockAllDoors.sqf",
				"unlockAllDoors",
				"sqf",
				1116,
				"2019-10-09T12:39:23.7222172Z",
				"2019-10-09T12:46:34.499194Z",
				"2019-10-09T12:46:34.499194Z",
				"31ed5a9c78c8ae6d8a5c940637ea23de",
				[]],
			["S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\VariableScanner.sqf",
				"VariableScanner",
				"sqf",
				4962,
				"2019-09-16T01:09:51.7665103Z",
				"2019-10-09T17:19:10.8720081Z",
				"2019-10-09T17:19:10.8720081Z",
				"04607cf821d0120764c66aeb85f197ac",
				[]],
			["S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\watch.sqf",
				"watch",
				"sqf",
				253,
				"2019-10-14T14:19:59.7005543Z",
				"2019-10-27T08:40:04.2155805Z",
				"2019-10-27T08:40:04.2155805Z",
				"2848bc37e07e70cb1fa286fc873dcc45",
				[]],
			["S:\\Steam\\steamapps\\common\\Arma 3\\SQF\\Zen_GenerateVRArea.sqf",
				"Zen_GenerateVRArea",
				"sqf",
				3244,
				"2019-10-07T11:54:40.8854154Z",
				"2014-07-16T08:28:38.6395251Z",
				"2019-10-07T11:54:40.8864169Z",
				"b90640eb72764ee64b20a5f8b9109454",
				[]]],
		[]]]

What do you think @leopard20 ?

P.S. I wouldn't suggest listing your whole Arma folder :joy: image

Bluscream avatar Oct 28 '19 04:10 Bluscream

That console window looks very scary! 😂

Two things I don't understand here:

  1. What is the purpose of the "blu_fnc_getfilesinpath ""S:/Steam/steamapps/common/Arma 3/SQF"""; part?! I don't see it used in your C# code.
  2. How to get the Arma 3 folder in the first place?

Of course, the file list must be limited to a certain folder to avoid a mess!

I don't know much C#, but it looks very simple to use. Nice one!

Leopard20 avatar Oct 28 '19 12:10 Leopard20

  1. What is the purpose of the "blu_fnc_getfilesinpath ""S:/Steam/steamapps/common/Arma 3/SQF"""; part?! I don't see it used in your C# code.

It is SQF code, used by https://github.com/Bluscream/Bluscream-A3-Extension/blob/master/Bluscream/Bluscream.Arma3.Extension/DllEntry.cs#L91-L102

  1. How to get the Arma 3 folder in the first place?

Well, as of currently it gets any folder you throw at it: https://github.com/Bluscream/Bluscream-A3-Extension/blob/master/Bluscream/Bluscream.Arma3.Extension/Classes/ArmA.cs#L6

Of course, the file list must be limited to a certain folder to avoid a mess!

Yes, if we really want to pack this into a mod that gets used by players and potentially lands on the steam workshop we need to both improve and cripple it a lot. By improving i mean actually parsing options like recursive and calcMD5 from SQF or create new pseudofunctions for them. And by crippling i mean that we need to restrict what can be accessed. Because keep in mind anyone who can run SQF on your PC can execute it (mod authors, server owners) [we don't want dem to spy on our granny furry pr0n, right?]

Also if MD5 calculation is wanted i would split that into a seperate function and call that in sqf for each file because of the DLL execution timeout

EDIT: I outsourced the test app to https://github.com/Bluscream/A3-Extension-Test-App/blob/master/Program.cs

Bluscream avatar Oct 28 '19 19:10 Bluscream

Also @leopard20 i saw you're on the ACE slack, can you be more active there?

Bluscream avatar Oct 29 '19 07:10 Bluscream

By improving i mean actually parsing options like recursive and calcMD5 from SQF or create new pseudofunctions for them. And by crippling i mean that we need to restrict what can be accessed. Because keep in mind anyone who can run SQF on your PC can execute it (mod authors, server owners) [we don't want dem to spy on our granny furry pr0n, right?]

Is MD5 really needed? I mean, this is not a file manager! Just an easy way to access some scripts.

As for restrictions, we could limit it to a certain folder, e.g: Documents\Arma 3\Scripts. Also, if the code is being run in Editor, the mission path is another possibility.

Also @leopard20 i saw you're on the ACE slack, can you be more active there?

I personally don't use ACE in SP (except for some of its useful modules, such as NVG, view distance, UI, etc). That's why. Is there anything specific about ACE features you have in mind? At the moment I'm still working on Super AI (mostly), but feel free to submit feature requests!

Leopard20 avatar Oct 29 '19 13:10 Leopard20

Is MD5 really needed? I mean, this is not a file manager! Just an easy way to access some scripts.

Of course not, i just thought of some more general library (that can be used by anticheats to detect tampered files aswell for example)

As for restrictions, we could limit it to a certain folder,

Yes, i agree but i would scripts from these 3 paths in the following order:

  • <Arma 3 Game Folder>\Scripts
  • %userprofile%\Documents\Arma 3\Scripts
  • <mission path>?

Is there anything specific about ACE features you have in mind?

Mostly little compatibility questions (Like for example how ACE revive affects AIO revive and if ACE "no instant death" can affect AIO medical aswell? But if you're not checking slack regularly i guess i have to stick with Github even for the smol questions.

Bluscream avatar Oct 29 '19 19:10 Bluscream

The mission path can be found using this command (added in today's update): getMissionPath You just pass it to the extension.

Mostly little compatibility questions (Like for example how ACE revive affects AIO revive and if ACE "no instant death" can affect AIO medical aswell?

The ACE revive works on its own. So any setting you use is not tampered with by my mod (at least not automatically). My revive cheat however removes ACE revive due to compatibility issues.

But if you're not checking slack regularly i guess i have to stick with Github even for the smol questions.

Wait. Did you mean the Slack platform?! I thought you meant "I was being slack" or something! LOL I'm not on Slack (at least I don't remember creating an account). That's probably some other guy.

Leopard20 avatar Oct 29 '19 20:10 Leopard20

The mission path can be found using this command

Agreed

My revive cheat however removes ACE revive due to compatibility issues.

That's what i wanted to know

Wait. Did you mean the Slack platform?!

image

You don't have a very unique nickname then :D https://ace3public.slack.com

Bluscream avatar Oct 29 '19 20:10 Bluscream

You don't have a very unique nickname then :D https://ace3public.slack.com

I always use this profile picture in all of my accounts. If you don't see it, it's not me!

Leopard20 avatar Oct 29 '19 20:10 Leopard20