Jump to content

Clients Can Hear Sound & Move But Stuck On Loading?


Stoney

Recommended Posts

an sql even in my knowledge would only run as often as you set it, (ie: every 2 hours) but in that case you may as well just restart every 2 hours

 

 

 

 

test results for myself and a few other on our server

 

 

Delete current character from DB - successful respawn

Log to lobby, delete currentstate in database - stuck on loading

Log to lobby, set currentstate to [] - stuck on loading

 

This works everytime for me?

Edit: except when restarting the server, when setting currentstate to [[]] it doesnt work on restart but works on relog :/

 

[], or other value don't work for me as well,

Some combination of currentstate worked in the past, but I've not found the magic word yet...

Link to comment
Share on other sites

Doesn't work on restart, trying to find something that works on restart.

 

Conclusion: It's definitely related to currentstate in the database, but no single solution works that I can find.

 

Best solution so far, using something in the server pbo to set currentstate to ["","",42,[]] on player logout, working on this now. Only issue is that on server restart a player will need to relog to get in. There may be a solution to this that can be called via sql on server startup batch file, as regular in game current state will work on server restart most of the time.

 

We don't have this problem on DayZ Epoch Chernarus, DayZ Epoch Panthera or DayZ Epoch Origins, it's only on DayZ OverPoch Namalsk, the strange thing is, removed Overwatch from Namalsk so it's DayZ Epoch Namalsk, wiping the database and swapping startup and mission file results in the same bug, so it's not related to OverPoch.

 

What I will do now is try and figure out how to set player variable currentstate in DB to ["","",42,[]] so at least they can relog between restarts.

Link to comment
Share on other sites

Doesn't work on restart, trying to find something that works on restart.

 

Conclusion: It's definitely related to currentstate in the database, but no single solution works that I can find.

 

Best solution so far, using something in the server pbo to set currentstate to ["","",42,[]] on player logout, working on this now. Only issue is that on server restart a player will need to relog to get in. There may be a solution to this that can be called via sql on server startup batch file, as regular in game current state will work on server restart most of the time.

 

We don't have this problem on DayZ Epoch Chernarus, DayZ Epoch Panthera or DayZ Epoch Origins, it's only on DayZ OverPoch Namalsk, the strange thing is, removed Overwatch from Namalsk so it's DayZ Epoch Namalsk, wiping the database and swapping startup and mission file results in the same bug, so it's not related to OverPoch.

 

What I will do now is try and figure out how to set player variable currentstate in DB to ["","",42,[]] so at least they can relog between restarts.

 

Indeed, I have this problem on a vanilla Napf Epoch 1.0.5.1 local server.

 

What's strange is that writing ["","",42,[]] in currentstate doesn't work for me (whatever the value I write in it, still stuck), but I can always connect once on my server after a restart.

Link to comment
Share on other sites

Anyone got an idea what code can be put in server_onPlayerDisconnect to set their current state on logout?
 
I know it should have this below, but not sure of the rest and whether you would need to call server_playerSync

_currentState set

One observation, on our server, if you relog and wait in the lobby at least 30 seconds you can respawn normally without the bug.

Link to comment
Share on other sites

I have a few observations from looking at the server and the code.

 

1st observation, when you got to abort there is a second timer running behind/underneath the abort menu. What is the purpose of this? Is the server using the second timer and client is observed by the server as aborting early and messing up the Currentstate value? 

 

Has anybody that is having the issue waited for the second abort timer to count down before they abort to see if it has any effect on the Currentstate value or the ability to relog?

 

2nd obsevation.   I have been comparing the 1.0.4.2 code to the 1.0.5.1 code and have not seen alot of major changes. They did add a line in the server_sendToClient.sqf

 

On line 5 they added...

 

if(isNull _unit) exitWith {diag_log format ["ERROR: sendToClient is Null: %1", _unit]};

 

Now IDK if the hang issue is related to this line, i have removed it but have not had time to test it with players I know have the hanging issue because of work.

 

If anyone can test these please do and report back.

 

MGT, i am going to try and find that code.

 

 

OK MGT, server_playerSync.sqf  line 168

 

1st edit

 

NVM, my mistake

Link to comment
Share on other sites

I have made changes to the server_playerSync.sqf to try and accomplish what MGT was doing. One of the players who always hangs is having no troubles relogging with this edit but it is a WIP. Someone smarter than me is going to have to look and see if they can figure out how to save last tagged friends. I didn't try to make that work, i was just trying to get people able to relog.

 

It will need testing with a larger player base to see if it fixed the issue.

 

Basically what I think I have done here is bypass the _currentstate to the fix.

 

http://pastebin.com/6Lq66WM0

Link to comment
Share on other sites

I apologize if I'm wrong but the code you posted seems to set unreferenced variables only (post fixed with 'fix'), only if _currentstatefix is defined, but where is it defined ?

The hive_ext command which should use these variables is still using the old variables. Can you confirm that this code is the one you're using to fix players log in ?

 

I don't know the arma script very well so don't be offended if I'm wrong :)

Link to comment
Share on other sites

I apologize if I'm wrong but the code you posted seems to set unreferenced variables only (post fixed with 'fix'), only if _currentstatefix is defined, but where is it defined ?

The hive_ext command which should use these variables is still using the old variables. Can you confirm that this code is the one you're using to fix players log in ?

 

I don't know the arma script very well so don't be offended if I'm wrong :)

 

 

Honestly I don't know the code either very well. 

 

The fixes are defined the same as the originals.

 

         _currentWpn = currentMuzzle _character;
         _currentWpnfix =   currentMuzzle _character;
 
         _currentAnim = animationState _character;
         _currentAnimfix =  animationState _character;
 
          _temp = round(_character getVariable ["temperature",100]);
          _tempfix = round(_character getVariable ["temperature",42]);
 
         _currentState = [_currentWpn,_currentAnim,_temp]; <------ Original line
 
          if (_currentstatefix) then {                                           <--------Then right after. I put this
          _currentWpnfix = "";
          _currentAnimfix = "";
          _tempfix = round(_character getVariable ["temperature",42]);
};
 
8:20:26   Error position: <_currentstatefix) then {
_currentWpnfix >
 8:20:26   Error Undefined variable in expression: _currentstatefix
 8:20:26 File z\addons\dayz_server\compile\server_playerSync.sqf, line 172
 
 
But you are right, _currentstatefix  is undefined and gives out errors like crazy so it is not the fix.
 
 
Very strange how he was able to log in and out without issue with this broken code in place.
 
Only other change was removing this from server_sendToClient.sqf
 
Line 5:    if(isNull _unit) exitWith {diag_log format ["ERROR: sendToClient is Null: %1", _unit]};
 
The really strange thing is this is the guys state when he logs out.
 
["M9SD","amovpercmstpslowwrfldnon_player_idlesteady01",42,[]]
 
And mine.
 
["Pecheneg_DZ","aidlpercmstpsraswrfldnon_idlesteady03",42,["406"]]
 
So the _temp is being changed. IDK what i have done here but log in and out is working fine. Maybe i am going about this all wrong. I need someone who knows what they are doing to look at it and clean it or bury it.
Link to comment
Share on other sites

To be honest, modifying the currentstate in the DB only worked twice for me, on a fresh epoch server running napf, but after some days, whatever the changes I do in the currenstate in the DB, nothing works anymore.

Link to comment
Share on other sites

I have a few observations from looking at the server and the code.

 

1st observation, when you got to abort there is a second timer running behind/underneath the abort menu. What is the purpose of this? Is the server using the second timer and client is observed by the server as aborting early and messing up the Currentstate value? 

 

Has anybody that is having the issue waited for the second abort timer to count down before they abort to see if it has any effect on the Currentstate value or the ability to relog?

 

I reported this around a week ago on the Epoch Git.  I have not dug deeper as I have been busy debugging my new mod version so have not been able to say if it is related or not to this login issue.

 

Have had a bit of a browse though the thread with the work MGT and others have been doing to try and track this down.  Would be great if we could get a summary of where it now seems to stand. 

 

What I have picked up from the thread is that it is believed to revolve around the currentstate DB values and changing these will mainly correct the issue apart from on server restart.

 

What value currently is known to stop the login process completing correctly (need to know how to consistantly reporduce the issue) ?.

What value seems to correct the problem (["","",42,[]]  works for all but restarts) ?.

 

I am sort of wondering if it may be a timing issue.  Anyone tried to put a delay in the login sqf to pause the script for XX seconds and then continue to see if that helps ?.

 

I have noticed the "player has no identity" type message in my own test server logs and have got this login issue now and then.

 

I will have a look at the code now to see if anything pops out and will have a go testing tonight as well to see if I can add anything to what MGT has already discovered.

Link to comment
Share on other sites

I am sort of wondering if it may be a timing issue.  Anyone tried to put a delay in the login sqf to pause the script for XX seconds and then continue to see if that helps ?.

 

I added uiSleep30; in server_playerLogin on line 6, worked a few times then hung on loading.

Link to comment
Share on other sites

Current state.

 

Before abort

["M4A1_AIM_SD_camo","amovpercmstpsraswrfldnon_gear",42,[]]
 
After Abort
["M4A1_AIM_SD_camo","amovpercmstpsraswrfldnon_gear",42,[]]
 
After re-login
["M4A1_AIM_SD_camo","amovpercmstpsraswrfldnon_gear",42,[]]
 
After abort (after second abort counter counted down).
["M4A1_AIM_SD_camo","amovpercmstpsraswrfldnon_gear",42,[]]
 
Seems when you click abort has little affect on current state.
 
Note I didn't have any issues logging in during these tests.
Link to comment
Share on other sites

I added uiSleep30; in server_playerLogin on line 6, worked a few times then hung on loading.

 

In the server_monitor there is a variable at the bottom.

 

allowConnection = true;

 

Seems this is not stopping connections whilst server monitor is still loading.

 

How about sleeping until that variable is true (check every 30 seconds or so with a "waiting for server to be ready message).  Not sure where it is being set unless it is in the variables.sqf.

 

Edit:

 

The player_monitor.fsm also references it based on the Github search.  FSM files are hard to read without the correct tool so will have to wait until I get home to take a proper look.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
×
×
  • Create New...