firefly2442 6 Posted May 1, 2012 It appears there has been a change from 1.6 to 1.7.1. I have this: public override string Run(string args) { ReadOnlyCollection<object> arguments = Format.SqfAsObject<ReadOnlyCollection<object>>(args); if (arguments.Count >= 2 && arguments[0] != null && arguments[1] != null) { string database = arguments[0] as string; And it's giving the following error when trying to compile and setup the arguments collection: Error 1 The non-generic method 'Arma2Net.Managed.Format.SqfAsObject(string)' cannot be used with type arguments Is there a different function that I should be using? Thanks. :) Share this post Link to post Share on other sites
Scott_NZ 10 Posted May 1, 2012 (edited) IList<object> arguments; if (!Format.SqfAsCollection(args, out arguments) || arguments.Count < 2 || arguments[0] == null || arguments[1] == null) { throw new FunctionArgumentsInvalidException(); } // use arguments Format.SqfAsCollection will return true/false depending on whether the sqf is a valid array or not, and it will set the out'd variable to the result, like int.TryParse. Edited May 1, 2012 by Scott_NZ Share this post Link to post Share on other sites
[kh]jman 49 Posted May 2, 2012 (edited) Scott, I'm working with firefly on the Arma2NET conversion of Arma2MySQL. I can get Arma2NET working just fine with firefly's new Arma2NETMySQLPlugin when I do a local test i.e mission editor->preview but when I put Arma2NET on our dedicated server and call the plugin from a serverside script it does not work, I cannot even see the log files, it does not seem to output any log anywhere. Any ideas? This is the local log output, I put Arma2NET in dev mode on the local test and server test. 05/02/2012 14:15:34 Arma2Net.Managed.Bridge INFO 05/02/2012 14:15:34 Arma2Net.Managed.Bridge INFO Arma2NET 1.7.1.0 (Developer mode: True), CLR 4.0.30319.1 05/02/2012 14:15:34 Arma2Net.Managed.AddIns.AddInManager INFO Rebuilding addins 05/02/2012 14:15:34 Arma2Net.Managed.AddIns.AddInManager INFO Finding addins 05/02/2012 14:15:34 Arma2Net.Managed.AddIns.AddInManager INFO Activated DateTime from DateTimePlugin.DateTime, DateTimePlugin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=8762987cc8e6095e (Sandboxed: False) 05/02/2012 14:15:34 Arma2Net.Managed.Bridge INFO Initialised 05/02/2012 14:15:54 Arma2Net.Managed.AddIns.AddInManager INFO Activated Arma2NETMySQL from Arma2NETMySQLPlugin.Arma2NETMySQLPlugin, Arma2NETMySQLPlugin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null (Sandboxed: False) Edited May 2, 2012 by [KH]Jman Share this post Link to post Share on other sites
Scott_NZ 10 Posted May 2, 2012 (edited) Is the server running the latest beta patch? I believe callExtension support was only recently added (a few days ago) to the server executable. Edited May 2, 2012 by Scott_NZ Share this post Link to post Share on other sites
[kh]jman 49 Posted May 2, 2012 (edited) Yes. Version 1.60.92329 I'm running the callextension version of Jayarmalib just fine on the same server with no issues. Perhaps you could verify exactly where I would find the "Arma2NET Logs" folder on the dedicated server. I'm running my server config files outside of the game folder i.e: -port=2502 -name=Server-Public -config=C:\Server-Public\Server-Public.cfg -cfg=C:\Server-Public\ArmA2-Public.cfg -profiles=C:\Server-Public -mod=expansion\beta;expansion\beta\expansion;@Arma2NET ... etc Edited May 2, 2012 by [KH]Jman Share this post Link to post Share on other sites
Scott_NZ 10 Posted May 2, 2012 Nlog.dll.nlog stores the configuration for logging, including where to log to. At the moment it should be ${specialfolder:LocalApplicationData}/ArmA 2 OA/Arma2NET Logs/Arma2NET.log (e.g. C:\Users\Scott\AppData\Local\ArmA 2 OA\Arma2NET Logs\Arma2NET.log) Share this post Link to post Share on other sites
[kh]jman 49 Posted May 3, 2012 (edited) Our server runs Windows server 2003 The closest directory path to your example on our server is: C:\Documents and Settings\Administrator\Local Settings\Application Data There is no "Arma2NET Logs" directory at that location or any other. Arma2server does not create or save any data to that "ArmA 2 OA" folder path since all server logs are stored at the paths specified in the server's startup switches. i.e in our server arma2oaserver.RPT, ArmA2-Public.cfg, Server-Public.cfg, Server-Public.log, mpStatistics.log are all stored in C:\Server-Public Edited May 3, 2012 by [KH]Jman Share this post Link to post Share on other sites
Scott_NZ 10 Posted May 3, 2012 Try "Arma2Net.Unmanaged" callExtension "" with BaseFunctionsPlugin loaded, it should return a string saying the version. If it does, it means Arma2NET probably loaded fine but the logging is failing. Share this post Link to post Share on other sites
[kh]jman 49 Posted May 3, 2012 (edited) I'll give it a go thx Scott. ---------- Post added at 11:06 ---------- Previous post was at 11:05 ---------- It's returning an empty string which indicates to me that Arma2NET is not loading on the dedicated. Any ideas? On my local non dedicated i've got @Arma2NET loaded from Arma2 root folder (which works) On the dedicated it's the same. Should I try moving it to expansions\beta ? Edit. Tried that. No go. .NET Framework 4 Client Profile is installed on the server. A serverside "Arma2Net.Unmanaged" callExtension call results in an empty string. Edited May 3, 2012 by [KH]Jman Share this post Link to post Share on other sites
HeliJunkie 11 Posted May 3, 2012 @[KH]Jman: Check if link points to "..\ArmA 2\Expansion\beta\arma2oa.exe" or "...\ArmA 2\Expansion\beta\arma2oaserver.exe" AND the working dir points to "...\ArmA 2" (NOT to "...\ArmA 2\Expansion\beta). Another hint is to copy it into both directorys. * "Arma 2\@Arma2Net" and * "ArmA 2\Expansion\beta\@Arma2Net" I love this mod. Infinite possibilities... Regards HeliJunkie Share this post Link to post Share on other sites
[kh]jman 49 Posted May 3, 2012 (edited) @[KH]Jman:Check if link points to "..\ArmA 2\Expansion\beta\arma2oa.exe" or "...\ArmA 2\Expansion\beta\arma2oaserver.exe" AND the working dir points to "...\ArmA 2" (NOT to "...\ArmA 2\Expansion\beta). Our server is setup correctly. Another hint is to copy it into both directorys. * "Arma 2\@Arma2Net" and * "ArmA 2\Expansion\beta\@Arma2Net Like I said I have tried both. I believe the problem lies in the Arma2NET dlls somewhere when working off dedicated. Edited May 3, 2012 by [KH]Jman Share this post Link to post Share on other sites
Scott_NZ 10 Posted May 3, 2012 Well, I've run out of ideas. I haven't had a chance to test this on a dedicated server but Arma2NET shouldn't care about how it's being run. Share this post Link to post Share on other sites
gossamersolid 155 Posted May 3, 2012 Maybe callExtension functionality on dedicated servers is broken? Somebody should test with another extension and see. Share this post Link to post Share on other sites
[kh]jman 49 Posted May 4, 2012 No callExtension is not broken on dedicated since as I've said jayarmalib works just fine on the serverside. If someone else could do a test with Arma2NET on dedicated making sure its the __SERVER__ thats doing the "Arma2Net.Unmanaged" callExtension call that would be most helpful. Share this post Link to post Share on other sites
.kju 3242 Posted May 4, 2012 (edited) What about creating a simple test package, so that other server owners can give it a go and report back. Edited May 4, 2012 by .kju [PvPscene] Share this post Link to post Share on other sites
gossamersolid 155 Posted May 4, 2012 What about creating a simple test package, so that other server owns can give it a go and report back. This. I'll test if somebody writes a quick test package. Share this post Link to post Share on other sites
Scott_NZ 10 Posted May 4, 2012 I'm going to whip up a modified version of the unmanaged dll which should hopefully tell us everything that's going on. Share this post Link to post Share on other sites
[kh]jman 49 Posted May 4, 2012 (edited) Here's a test mission for all you peeps with a dedicated server. NOTE: This mission will only function as intended on a Windows dedicated server. On mine the server returns an empty string. It should return the time on the server. Make sure .NET Framework 4 Client Profile is installed on the server and it's running the latest arma2server beta 1. Install @Arma2NET on the server making sure you have the DateTimePlugin in it's addins folder and upload the mission. 2. No need to install @Arma2NET on client. In this example only the server calls callExtension. 3. Run the mission and the server time should be displayed in the hint box. 4. You can also check RPT on server for the servertime output and on the client where it gets PV'd from the server. Download here Edited May 4, 2012 by [KH]Jman Share this post Link to post Share on other sites
Scott_NZ 10 Posted May 4, 2012 Here is a replacement dll which should write to C:/arma2net.txt. Please check for its existence after trying it on the dedicated server. https://bitbucket.org/Scott_NZ/arma2net/downloads/Arma2Net.Unmanaged.dll Share this post Link to post Share on other sites
Scott_NZ 10 Posted May 5, 2012 I've started work on a plugin explorer so you can see plugins/functions available to Arma 2 from a separate interface outside of the game. Here's a pic: http://dl.dropbox.com/u/8707714/a2nexplorer.png This will eventually help people figure out if their plugin can be found, and also be a form of documentation. Share this post Link to post Share on other sites
[kh]jman 49 Posted May 5, 2012 (edited) Ok I've tested on the dedicated with the new dll and the test mission. No file is written in c:\ at all and the server returns an empty string once again. My conclusion is that Arma2NET fails to load on Windows dedicated server. Here are the RPT logs: @Arma2NET loaded from Arma2 Root folder: ===================================================================== == E:\Programs\ArmA2-Private\Expansion\beta\arma2oaserver.exe == E:\Programs\ArmA2-Private\Expansion\beta\arma2oaserver.exe -arma2netdev -port=2502 -name=Server-Public -config=E:\Server-Public\Server-Public.cfg -cfg=E:\Server-Public\ArmA2-Public.cfg -profiles=E:\Server-Public -mod=expansion\beta;expansion\beta\expansion;E:\Programs\ArmA2\@CBA;E:\Programs\ArmA2\@CBA_A2;E:\Programs\ArmA2\@CBA_OA;@Arma2NET ===================================================================== Exe timestamp: 2012/04/26 16:34:46 Current time: 2012/05/05 13:31:05 Version 1.60.92329 2012/05/05, 13:31:05 ca\missions\MPScenarios\MP_Deathmatch.chernarus: string @str_mpdeathmatch_subname cannot be localized client-side - move to global stringtable 2012/05/05, 13:31:15 ca\missions\MPScenarios\MP_Deathmatch.chernarus: string @str_mpdeathmatch_subname cannot be localized client-side - move to global stringtable 2012/05/05, 13:31:32 [5340,154.937,0,"XEH: PreInit Started. v1.0.0.179. MISSINIT: missionName=Arma2NET_serverTest, worldName=utes, isMultiplayer=true, isServer=true, isDedicated=true"] 2012/05/05, 13:31:33 [5340,155.81,0,"XEH: PreInit Finished. CACHE DISABLED? (Disable caching with cba_disable_cache.pbo): SLX_XEH_RECOMPILE=false, CBA_COMPILE_RECOMPILE=false, CBA_FUNC_RECOMPILE=false"] 2012/05/05, 13:31:33 [5341,156.073,0,"XEH: PostInit Started"] 2012/05/05, 13:31:33 [5341,156.11,0,"CBA_VERSIONING: cba=1.0.0.180, cba_a2=1.0.0.8, cba_oa=1.0.0.6, "] 2012/05/05, 13:31:33 [5341,156.123,0,"XEH: PostInit Finished. State: _isClient=false, _isJip=false, _isDedClient=false, _isServer=true, _isDedServer=true, _playerCheckDone=true, _sp=false, _startInitDone=true, _postInitDone=true, _mpRespawn=false, _machineType=0, _sessionId=1, _level=0, _timeOut=false, _game=1, BIS_functions=L 1-1-A:1, group=L 1-1-A"] 2012/05/05, 13:31:40 Server: Object 3:2 not found (message 225) 2012/05/05, 13:31:40 ["SERVER _servertime: ","","STRING"] @Arma2NET loaded from expansion\beta (just incase!) ===================================================================== == E:\Programs\ArmA2-Private\Expansion\beta\arma2oaserver.exe == E:\Programs\ArmA2-Private\Expansion\beta\arma2oaserver.exe -arma2netdev -port=2502 -name=Server-Public -config=E:\Server-Public\Server-Public.cfg -cfg=E:\Server-Public\ArmA2-Public.cfg -profiles=E:\Server-Public -mod=expansion\beta;expansion\beta\expansion;E:\Programs\ArmA2\@CBA;E:\Programs\ArmA2\@CBA_A2;E:\Programs\ArmA2\@CBA_OA;expansion\beta\@Arma2NET ===================================================================== Exe timestamp: 2012/04/26 16:34:46 Current time: 2012/05/05 13:34:45 Version 1.60.92329 2012/05/05, 13:34:45 ca\missions\MPScenarios\MP_Deathmatch.chernarus: string @str_mpdeathmatch_subname cannot be localized client-side - move to global stringtable 2012/05/05, 13:35:01 ca\missions\MPScenarios\MP_Deathmatch.chernarus: string @str_mpdeathmatch_subname cannot be localized client-side - move to global stringtable 2012/05/05, 13:35:17 [2234,85.932,0,"XEH: PreInit Started. v1.0.0.179. MISSINIT: missionName=Arma2NET_serverTest, worldName=utes, isMultiplayer=true, isServer=true, isDedicated=true"] 2012/05/05, 13:35:17 [2234,86.864,0,"XEH: PreInit Finished. CACHE DISABLED? (Disable caching with cba_disable_cache.pbo): SLX_XEH_RECOMPILE=false, CBA_COMPILE_RECOMPILE=false, CBA_FUNC_RECOMPILE=false"] 2012/05/05, 13:35:18 [2235,87.044,0,"XEH: PostInit Started"] 2012/05/05, 13:35:18 [2235,87.085,0,"CBA_VERSIONING: cba=1.0.0.180, cba_a2=1.0.0.8, cba_oa=1.0.0.6, "] 2012/05/05, 13:35:18 [2235,87.099,0,"XEH: PostInit Finished. State: _isClient=false, _isJip=false, _isDedClient=false, _isServer=true, _isDedServer=true, _playerCheckDone=true, _sp=false, _startInitDone=true, _postInitDone=true, _mpRespawn=false, _machineType=0, _sessionId=1, _level=0, _timeOut=false, _game=1, BIS_functions=L 1-1-A:1, group=L 1-1-A"] 2012/05/05, 13:35:26 Server: Object 3:2 not found (message 225) 2012/05/05, 13:35:26 ["SERVER _servertime: ","","STRING"] Edited May 5, 2012 by [KH]Jman Share this post Link to post Share on other sites
HeliJunkie 11 Posted May 5, 2012 (edited) Jman;2144124']No callExtension is not broken on dedicated since as I've said jayarmalib works just fine on the serverside. ... jayarma2lib is not a reference for this case. Arma2Net is working with a new internal funtion "callExtension". Jayarma2lib is working with a modified dsound.dll. 2 very diffrent approaches! This is from Jayarma2Lib dev heaven site: In a nutshell' date=' this library works by proxying the DirectSound library on any Windows system; DirectSound is dsound.dll. I then replace the KbAddTopic function, and rename it "jayCall". This function is the access point for all functionality within this library.[/font'] So you can't draw a conclusion that the problem is within Arma2Lib. Edited May 5, 2012 by HeliJunkie Share this post Link to post Share on other sites
xeno 231 Posted May 5, 2012 jayarma2lib is not a reference for this case. Arma2Net is working with a new internal funtion "callExtension".Jayarma2lib is working with a modified dsound.dll. 2 very diffrent approaches! The (new) jayarmalib uses callExtension too :) Available for some time now. Xeno Share this post Link to post Share on other sites
HeliJunkie 11 Posted May 5, 2012 The (new) jayarmalib uses callExtension too :)Available for some time now. Xeno Then it is well hidden ;-) Didn't find other informations.... HeliJunkie Share this post Link to post Share on other sites