Arma Reforger / Arma 4 is due to release sometime tomorrow I hope. There are quite a few resources around concerning the DayZ Enscript scripting language that is used by the Enfusiontm Engine. Here is the scripting guide for Dayz.
https://community.bistudio.com/wiki/DayZ:Enforce_Script_Syntax.
The syntax is rather like C# or C++, but it should not be too hard to pick up once a few examples pop up on the Internet. All mods for Arma 3 will need to be completely re-done for the Enfusion engine, but this is a good thing. If the vehicles in Arma 4 had the detail of RHS and SoG then they would be very good. The videos showed doors opening to let the player in.
If you could do this in the Enscript language, this would be very good. I am not sure you feed a variable into the Print function, but I guess it is rather like Javascript.
1 2 3 4 | void Test() { Print("Hello %s", myName); // printing a variable in Enscript. } |
1 | Print("mapa[" + k + "] = " + a); |
So actually it is rather like Javascript. So you can print a value in the middle of a string. This is not too hard. I wonder how the GUI programming works in the new engine. I hope it is easier than Arma 3. But it is looking good so far.
There is an extension framework for the Enfusion engine here: https://github.com/KeganHollern/Infinity. This allows extra functionality to be added to the existing engine. Could this allow ACE 4 for Arma 4? I think so. And the scriptability of the Enfusion engine vs RV4 would allow extra customization of the workings of the engine. Even allowing the creation of other games with Enfusion. Licensing would apply of course, but the outdated RV4 engine needs to be in the trash bin.
Here is another Enscript example from Dayz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | Mission CreateMission(string path) { SetDispatcher(new DispatcherCaller); g_Game.SetMissionPath(path); if (g_Game.IsMultiplayer() && g_Game.IsServer()) { return new MissionServer; } #ifdef NO_GUI return new MissionDummy; #endif MissionMainMenu m; if (path.Contains("NoCutscene")) { m = new MissionMainMenu(); m.m_NoCutscene = true; return m; } if (path.Contains("intro")) { m = new MissionMainMenu(); m.m_NoCutscene = false; return m; } else { #ifndef NO_GUI_INGAME return new MissionGameplay; #else return new MissionDummy; #endif } } void DestroyMission(Mission mission) { delete mission; } |
This will load a mission if it is running in MP and on a dedicated server.
Source: https://s-platoon.ru/topic/6826-dayz-standalone-062063-enscript-izuchenie/.