Jump to content

Recommended Posts

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

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 by Scott_NZ

Share this post


Link to post
Share on other sites

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 by [KH]Jman

Share this post


Link to post
Share on other sites

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 by Scott_NZ

Share this post


Link to post
Share on other sites

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 by [KH]Jman

Share this post


Link to post
Share on other sites

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

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 by [KH]Jman

Share this post


Link to post
Share on other sites

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

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 by [KH]Jman

Share this post


Link to post
Share on other sites

@[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:

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 by [KH]Jman

Share this post


Link to post
Share on other sites

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

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

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

What about creating a simple test package, so that other server owners can give it a go and report back.

Edited by .kju [PvPscene]

Share this post


Link to post
Share on other sites
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

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

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 by [KH]Jman

Share this post


Link to post
Share on other sites

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

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 by [KH]Jman

Share this post


Link to post
Share on other sites
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 by HeliJunkie

Share this post


Link to post
Share on other sites
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
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

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×