Jump to content

firefly2442

Member
  • Content Count

    563
  • Joined

  • Last visited

  • Medals

Posts posted by firefly2442


  1. 59 minutes ago, sammael said:

    I can`t download ArmaConnect app. when I press link  -page just reloaded and nothing  - so I download amaConnect-debug.apk from dropbox

    Not working. Just sat 0% downloading maps

     

    win 10x64

    Galaxy S4

     

    Did you also install and run the two mods from the .7z?  Those are needed.  Arma 3 needs to be running with those mods in order to download the maps images.


  2. I've updated the compiled binaries and test version on Dropbox.

     

    https://www.dropbox.com/sh/u6s6u9rjrkrabsk/AABHegbwkS0RMYHH2aV4sSe7a?dl=0

     

    * New map download system (smaller APK binary)
    * Bug fixes around threading and UI display
    * New altitude display feature
    * Updated upstream TileView library
    * Added a low resolution version of Tanoa
    * Altis and Stratis supported at fairly high resolution

     

    Please give it a try and let me know what you think.  I'm curious to hear if people report any network issues with it.

    • Like 2

  3. Just wanted to post this script in case it's helpful for people.  For our Arma 3 Linux server (headless) we use:

     

    • LinuxGSM - for Arma 3 server startup and updating
    • Arma3Sync - for providing delta diffs of mods
    • Apache - for serving up mod files
    • Steam - for updating Arma 3 server and downloading mods from the workshop

     

    I wrote a little Python script that automates the updating of mods via Steam workshop, copies keys, updates mods via Arma3Sync and then restarts the server all via the command-line.  No more manually downloading and extracting files! :rthumb:

     

    If you have suggestions or improvements, feel free to fork the file or post here.

     

    • Like 4

  4. Well, I'm trying to get back into development of this application and mod (before I forget everything I did, hehe). I've made a couple changes on Github this evening but I'm still struggling with Android activities and threading. I think I'm running into some concurrency and/or race conditions. If anyone is an Android developer and could offer assistance I would sure appreciate it. :)


  5. One small suggestion on the development side, take it or leave it. :) You may want to consider splitting the binaries and/or translations into their own projects on Github. When the .dll and other binaries are rebuilt, it will continue taking up space in the Git history. By moving the translations out into another project, it might be easier to focus on just the development side and get a better picture as to what changes have been done as opposed to sifting through tons of translation changes. Two options:

    1) Git submodules (pro- works well, easy to setup another project. con: people need to know how to use submodules)

    2) The brand new Git large file store (I have no experience with this)


  6. Has anybody had issues with running two instances of ArmA2Net on the same machine?

    Here's what I've tried:

    1.

    - One server directory

    - Two services running using the same mod folders and just a different config file (for server name)

    2.

    - Two server directories

    - Two services, each running from their own server directory

    What seems to happen for me is that the first server will init the mission fine. If somebody tries to go into the second server and init the mission, the server crashes and reboots. There's no error in the arma server RPT besides it saying it did a minidump, etc.

    I know it's possible that it's my C# Assembly causing the crashing, but I can't see a way it'd be responsible.

    Any assistance would be greatly appreciated.

    And when you say that the server crashes, this happens in both case 1 and 2? I would try something very simple first (maybe this is a dumb idea but it might help you narrow it down). Make a very simple Arma2NET project and have it just print something to a file when it's called. Now try it in case 1 and 2 and see what happens. What is the plugin doing? Can you provide some details on that? Maybe they're both trying to access the same resource (database, or whatever) at the same time?


  7. I could compile and load Arma2NET on linux, but im strugging to port inidbi using xbuild. Does anyone have knowledge about mono?

    Yeah, I also had trouble with Mono and the associated libraries when trying to port Arma2NETMySQL. Arma2NET easily compiled but Mono just doesn't seem to have a very active development. The provided binary packages were out-of-date, and there were other issues.


  8. Any chance of arma 2 version?

    Well, actually yes. I don't think there's anything there that would prevent you from using it with Arma 2. It would of course need the maps saved over but all the basic SQF code should work. I don't have much chance to work on this at the moment so Arma 2 support is pretty low on the list. I need to fix up the Android part currently. If anyone wants to help contribute, that would be awesome.


  9. Well, I can get DayZ standalone to work but I can't seem to get the DayZ mod querying properly. What are the ports that you have set in your server config?

    I don't know PHP well enough, and eventhough I'd be an interesting process to dig deeper into GameQ I don't really have time either right now.. I did some debugging and it seems that at GameQ::sockets_listen(), it never reaches any data:
    [.....]// We had error or no streams left, kill the loopif($streams === FALSE || ($streams <= 0)){echo 'Ending loop...';$loop_active = FALSE;break;}// Loop the sockets that received data backforeach($read AS $socket){echo 'Got data... <br>';// See if we have a responseif(($response = stream_socket_recvfrom($socket, 8192)) === FALSE){	echo 'Waiting for response...';	continue; // No response yet so lets continue.}[.....]

    It never enters the foreach -loop, and the 'Ending loop...' echo I added gets printed.

    But as I said, this is probably nothing, as I don't have time to dig deeper into the GameQ class at the moment sadly. Hopefully you can check it out when you have time, this could be really helpful! Thank you in advance!


  10. Ahh, sorry, I read it too quickly. I updated the upstream GameQ library and tried it and I get the same results. It looks like this is a known issue: https://github.com/Austinb/GameQ/issues/202

    I don't have time to look at it right at the moment but maybe this weekend. If you're good with PHP, maybe you can glance at it?

    Cheers.

    Thanks for the quick answer. But as I said in my post, I've tried with different types, including source:

    array(

    'id' => 'CCG OverPoch EU 3',

    'type' => 'source',

    'host' => '37.187.154.231:2402'

    )

    with no luck. Can you try if this server works for you? It's up and running at the moment.


  11. Try changing the type to "source". I updated the example awhile back, see here for the commit: https://github.com/firefly2442/phparma2serverstatus/commit/ee861234ed5cf9cfe0504de97f6ab990fd9584f1

    Just so you're aware, I haven't tried it with DayZ. But if it works or doesn't work, let me know.

    Does this still work? I tried it with a DayZ OverPoch server (37.187.154.231:2402) with following:

    array(

    'id' => 'CCG OverPoch EU 3',

    'type' => 'armedassault2oa',

    'host' => '37.187.154.231:2402'

    )

    And it just says it's offline, eventhough the server is up and running. I've tried different types from 'source' to 'armedassault2' etc. Also tried other servers, disabled my firewall... Running this on Windows 7, with WAMP server. var_dump gives:

    array (size=17)

    'gq_address' => string '37.187.154.231' (length=14)

    'gq_dedicated' => boolean false

    'gq_gametype' => boolean false

    'gq_hostname' => boolean false

    'gq_joinlink' => string 'steam://connect/37.187.154.231:2402/' (length=36)

    'gq_mapname' => boolean false

    'gq_maxplayers' => boolean false

    'gq_mod' => boolean false

    'gq_numplayers' => boolean false

    'gq_online' => boolean false

    'gq_password' => boolean false

    'gq_port' => string '2402' (length=4)

    'gq_protocol' => string 'source' (length=6)

    'gq_transport' => string 'udp' (length=3)

    'gq_type' => string 'armedassault2oa' (length=15)

    'players' =>

    array (size=0)

    empty

    'teams' =>

    array (size=0)

    empty


  12. I have no experience with Bluestacks so I can't comment on that. The only other program/app that has similar functionality that I know of is Athena. http://forums.bistudio.com/showthread.php?181928-Athena

    Great work.

    Is there anything similar to this for dual screen PC setups?

    Or, can anyone confirm if this works with Bluestacks?

    I have tried and it did not work although am unsure if Bluestacks has any LAN return capabilities.


  13. Yes, it's absolutely possible. Basically, I wrote the stored procedures part first and the straight queries and async second. It would definitely be do-able and if you were able to add it in I could merge it in so others could benefit. Good luck! :)

    Did you find any pitfall that prevents you to implement async on procedures, or is just due the lack of time?

    I mean, that if its posible, I can implement that myself. (I want to use procedures but have not performance issues).

    Btw, thanks for the project, is really good.


  14. The example mission for Arma 3 uses async. See server_events.sqf https://github.com/firefly2442/Arma2NetMySQLPlugin-Arma3-ExampleMission

    The double quotes problem...i fixed it with thousand call compiles and str() tricks :P

    For the second (and biggest problem with the 'skips') I never thought that multiple SQLs might be doing this....You are probably right.

    If a player connects while the server is streaming data....it would try to load his character also from the database.

    I really wish i could find a working example of async calls....but i cant find any :/

    I understand what the concept does, i just dont know how to implement it.

    The example in : http://arma2netmysqlplugin.readthedocs.org/en/latest/#using-the-plugin isnt very helpful about what happens 'after' the call.

    -Thanks again for your answer


  15. Maybe try something like this? http://bogdan.org.ua/2007/10/18/mysql-insert-if-not-exists-syntax.html

    ok thanks now i have another problem i hope you can help with

    i got it to input info like playerid, name,etc into a the table but if i reconnect it makes another entry how can i make it so if that playeruid already exists into the table to not run the code

    this is what i got and it is working

    _query = format ["INSERT INTO player_stats (playerUID, playerName, playerWins, playerLosts, playerKills) VALUES('%1', '%2', '0', '0', '0')", _playerID, _playerName];
    "Arma2Net.Unmanaged" callExtension format ["Arma2NETMySQLCommand ['dbserver', '%1']", _query];
    

    ---------- Post added at 16:59 ---------- Previous post was at 16:50 ----------

    For your first question, it might be getting hung on this:

    Hitpoints = '[]'

    . Try just using the empty string '' instead. Or maybe that was formatted as an integer value in MySQL? Basically, whatever type that's set as, I'm guessing you're passing in something it doesn't like.

    Regarding the double quotes, I would recommend stripping those out before saving them to the database. You'll just have more headaches later on otherwise.

    For the multiple queries and missing items, I'm not sure. Have you tried the async method instead? That actually should be faster and perhaps it's more reliable? Also, are you sure writing to the database is only being called via the server one at a time? If you have multiple threads or different scripts spawning off, you can't have more than one trying to write/read from the database at the same time.

    Anyone knows why i've been getting errors like this one ?

    11/09/2014 13:26:29 function: Arma2NETMySQLCommand ['dayz_epoch',"UPDATE object_data SET Hitpoints = '[]', Damage = '0' WHERE ObjectID = '6467'"]
    11/09/2014 13:26:29 maxResultSize: 10239
    11/09/2014 13:26:29 Result size: 4
    11/09/2014 13:26:29 Result: [[]]
    11/09/2014 13:26:32 Caught exception of type System.Reflection.TargetInvocationException
    11/09/2014 13:26:32 System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentException: Value does not fall within the expected range.
      at Arma2NETMySQLPlugin.Arma2NETMySQLPluginCommand.Invoke(String args, Int32 maxResultSize)
      at Arma2Net.Managed.AddInManager.DomainInvokeAddIn(AddInArguments args)
      --- End of inner exception stack trace ---
      at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
      at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
      at System.Delegate.DynamicInvokeImpl(Object[] args)
      at Arma2Net.Managed.AddInManager.DomainDoCallback()
      at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate)
      at Arma2Net.Managed.AddInManager.DoCallbackImpl(AppDomain domain, Delegate func, Object arg)
      at Arma2Net.Managed.AddInManager.DoCallbackWithResult[T,TResult](AppDomain domain, Func`2 func, T arg)
      at Arma2Net.Managed.AddInManager.InvokeAddIn(String addInName, String arguments, Int32 maxResultSize)
      at Arma2Net.Managed.Bridge.InvokeBuiltInOrAddIn(String function, Int32 maxResultSize)
      at Arma2Net.Managed.Bridge.InvokeFunction(String function, Int32 maxResultSize)
    

    or

    11/09/2014 13:26:56 function: Arma2NETMySQLCommand ['dayz_epoch','SELECT Worldspace from object_data where ObjectUID = ''6048414236097''']
    11/09/2014 13:26:56 maxResultSize: 10239
    11/09/2014 13:26:56 Result size: 66
    11/09/2014 13:26:56 Result: [[["[325,[6047.64,1427.83,0.00263214],""0,1,0,1"",""1,0,0,1""]"]]]
    11/09/2014 13:26:56 Caught exception of type System.Reflection.TargetInvocationException
    11/09/2014 13:26:56 System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentException: Value does not fall within the expected range.
      at Arma2NETMySQLPlugin.Arma2NETMySQLPluginCommand.Invoke(String args, Int32 maxResultSize)
      at Arma2Net.Managed.AddInManager.DomainInvokeAddIn(AddInArguments args)
      --- End of inner exception stack trace ---
      at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
      at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
      at System.Delegate.DynamicInvokeImpl(Object[] args)
      at Arma2Net.Managed.AddInManager.DomainDoCallback()
      at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate)
      at Arma2Net.Managed.AddInManager.DoCallbackImpl(AppDomain domain, Delegate func, Object arg)
      at Arma2Net.Managed.AddInManager.DoCallbackWithResult[T,TResult](AppDomain domain, Func`2 func, T arg)
      at Arma2Net.Managed.AddInManager.InvokeAddIn(String addInName, String arguments, Int32 maxResultSize)
      at Arma2Net.Managed.Bridge.InvokeBuiltInOrAddIn(String function, Int32 maxResultSize)
      at Arma2Net.Managed.Bridge.InvokeFunction(String function, Int32 maxResultSize)
    

    Ok on the 2nd example i know its the double quotes are pissing it off....but how can i retrieve data then when i need to have double quotes in the db cell ?

    I've tried:

    _sql = "Arma2Net.Unmanaged" callExtension format["Arma2NETMySQLCommand ['dayz_epoch','SELECT Worldspace from object_data where ObjectUID = ''%1''']",_pid];
    _result = call compile _sql;
    

    and

    _sql = format["SELECT Worldspace from object_data where ObjectUID = '%1'", _pid];
    _qresult = _sql call myserver_hiveReadWrite;
    _qselect = _qresult select 0 select 0 select 0;

    where myserver_hiveReadWrite is

    myserver_hiveReadWrite = {
    private["_mykey","_qres","_mydata"];
    _mykey = _this;
    _mydata = format["Arma2NETMySQLCommand ['dayz_epoch",""%1""]",_mykey];
    SQL_RESULT = "Arma2Net.Unmanaged" callExtension _mydata;
    _qres = call compile format ["%1",SQL_RESULT];
    _qres
    };

    Also on another note...I notice something weird....When i have tons of entries in my db and i parse them one by one so i can spawn them on the map, sometimes some objects are getting skipped. Although in the logs the SQL query was executed fine. For example

    for "_i" from 0 to (_objectCount) do {
    if (_i != _objectCount) then {
    	_keyvg = format["SELECT `ObjectID`, `ObjectUID`, `Classname`, `CharacterID`, `Worldspace`, `Inventory`, `Hitpoints`, `Fuel`, `Damage` FROM object_data WHERE `Instance`='%1' AND `Classname` IS NOT NULL LIMIT %2,1",dayZ_instance, _i];
    	_data2 = _keyvg call myserver_hiveReadWriteLarge;
    	_response = _data2 select 0 select 0;
    	if ((_response select 2) isKindOf "ModularItems") then {
    		_BuildingQueue set [_bQty,_response];
    		_bQty = _bQty + 1;
    	} else {
    		_objectQueue set [_vQty,_response];
    		_vQty = _vQty + 1;
    	};
    };
    sleep 0.0001;    ////////////
    };

    This function checks whether the row has a vehicle or a building, and add it to the proper array.

    Notice the sleep in the end ? If i dont put that there....It might skip some objects. Not that the sleep saves the days....But it helps....

    For example....here is the diag_log entry, while streaming objects:

    ">>>HIVE ["5959","60382140201447","OutHouse_DZ","76561198017478031","[292.742,[6038.19,1402,-0.143723],[[-0.922254,0.386585,0],[0,0,1]]]","[[[],[]],[[],[]],[[],[]]]","[]","0","0"] OutHouse_DZ"
    ">>>HIVE ["6127","6039314122016","Plastic_Pole_EP1_DZ","76561198017478031","[171.11,[6039.29,1412.18,0],[[0.154541,-0.987986,0],[0,0,1]]]","[]","[]","0","0"] Plastic_Pole_EP1_DZ"
    ">>>HIVE ["6131","60275140882220","CinderWallHalf_DZ","76561198017478031","[40.4377,[6027.52,1408.78,-0.0235214],[[0.648621,0.761111,0],[0.538187,-0.458644,0.707107]]]","[]","[]","0","0"] CinderWallHalf_DZ"
    ">>>HIVE ["6173","60351141250123","CinderWall_DZ","76561198017478031","[227.203,[6035.05,1412.53,0.0175705],[[-0.733765,-0.679404,0],[0,0,1]]]","[]","[]","0","0"] CinderWall_DZ"
    ">>>HIVE <null> any"
    Error in expression <t 0;
    
    diag_log (format[">>>HIVE %1 %2", _response, (_response select 2)]);
    if ((>
     Error position: <_response, (_response select 2)]);
    if ((>
     Error Undefined variable in expression: _response
    ">>>HIVE ["6333","60353141733319","Land_psi_bouda","76561198017478031","[318.667,[6035.35,1417.31,0.301598]]","[]","[]","3","0"] Land_psi_bouda"
    ">>>HIVE ["6366","60349142362300","Land_MBG_Garage_Single_D","76561198017478031","[300.118,[6034.88,1423.57,0.201233]]","[]","[]","0","0"] Land_MBG_Garage_Single_D"
    ">>>HIVE ["6367","6048514236271","HeliH","76561198017478031","[71.1653,[6048.46,1423.59,0.219681]]","[]","[]","0","0"] HeliH"
    

    See that null there ? If i restart the server, it will grab it correctly though....It might skip something else.

    Its as if the query is slower than then loop or something, which is weird since this is on a XEON machine, with 32GB ram, and the standard professional mysql server (no xampp and crap like that).

    Any input would be really appreciated.

    -Thanks

×