SphereServer BugTracker - SphereServer
View Issue Details
0002532SphereServerexecutable - genericpublic02-07-15 01:4915-09-15 10:43
Rizz 
XuN 
normalcrashalways
resolvedfixed 
 
 
Automated (specify build number)
None
None
2364
0002532: Party issue
Is not possible to leave the party

Some console errors

01:51:DEBUG:>> 3816 | 5 | NetworkInput::processGameClientData | +0 <-- exception catch point (below is guessed and could be incorrect!)
01:51:DEBUG:>> 3816 | 6 | PacketCharStatusReq::onReceive | +0
01:51:DEBUG:>> 3816 | 7 | CClient::addCharStatWindow | +0
01:51:DEBUG:>> 3816 | 8 | CCharRefArray::FindChar | +0
01:51:DEBUG:5c:Parsing Packet len=10 id=0x34 [2015/07/02 01:51:38]
        0 1 2 3 4 5 6 7 8 9 A B C D E F
       -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
0000 34 ed ed ed ed 04 00 04 b4 17 4.........
01:51:DEBUG:__ thread (3816) __ | # | _____ function _____________ | ticks passed from previous function start ______
01:51:DEBUG:>> 3816 | 0 | CWorld::OnTick | +0
01:51:DEBUG:>> 3816 | 1 | CSector::OnTick | +0
01:51:DEBUG:>> 3816 | 2 | CChar::OnTick | +0 <-- exception catch point (below is guessed and could be incorrect!)
01:51:DEBUG:>> 3816 | 3 | CChar::OnTickStatusUpdate | +0
01:51:DEBUG:>> 3816 | 4 | CClient::UpdateStats | +0
01:51:DEBUG:>> 3816 | 5 | CClient::addManaUpdate | +0
01:51:DEBUG:>> 3816 | 6 | CPartyDef::AddStatsUpdate | +0
01:51:DEBUG:__ thread (3816) __ | # | _____ function _____________ | ticks passed from previous function start ______
01:51:DEBUG:>> 3816 | 0 | CWorld::OnTick | +0
01:51:DEBUG:>> 3816 | 1 | CSector::OnTick | +0
01:51:DEBUG:>> 3816 | 2 | CChar::OnTick | +0 <-- exception catch point (below is guessed and could be incorrect!)
01:51:DEBUG:>> 3816 | 3 | CChar::OnTickStatusUpdate | +0
01:51:DEBUG:>> 3816 | 4 | CClient::UpdateStats | +0
01:51:DEBUG:>> 3816 | 5 | CClient::addManaUpdate | +0
01:51:DEBUG:>> 3816 | 6 | CPartyDef::AddStatsUpdate | +0
01:51:DEBUG:__ thread (3816) __ | # | _____ function _____________ | ticks passed from previous function start ______
01:51:DEBUG:>> 3816 | 0 | CWorld::OnTick | +0
01:51:DEBUG:>> 3816 | 1 | CSector::OnTick | +0
01:51:DEBUG:>> 3816 | 2 | CChar::OnTick | +0 <-- exception catch point (below is guessed and could be incorrect!)
01:51:DEBUG:>> 3816 | 3 | CChar::OnTickStatusUpdate | +0
01:51:DEBUG:>> 3816 | 4 | CClient::UpdateStats | +0
01:51:DEBUG:>> 3816 | 5 | CClient::addManaUpdate | +0
01:51:DEBUG:>> 3816 | 6 | CPartyDef::AddStatsUpdate | +0
01:51:DEBUG:__ thread (3816) __ | # | _____ function _____________ | ticks passed from previous function start ______
01:51:DEBUG:>> 3816 | 0 | CWorld::OnTick | +0
01:51:DEBUG:>> 3816 | 1 | CSector::OnTick | +0
01:51:DEBUG:>> 3816 | 2 | CChar::OnTick | +0 <-- exception catch point (below is guessed and could be incorrect!)
01:51:DEBUG:>> 3816 | 3 | CChar::OnTickStatusUpdate | +0
01:51:DEBUG:>> 3816 | 4 | CClient::UpdateStats | +0
01:51:DEBUG:>> 3816 | 5 | CClient::addManaUpdate | +0
01:51:DEBUG:>> 3816 | 6 | CPartyDef::AddStatsUpdate | +0
01:51:CRITICAL:"Access Violation" (0x192b26), in CChar::Tick() 0000001 "update stats"
01:51:DEBUG:__ thread (3816) __ | # | _____ function _____________ | ticks passed from previous function start ______
01:51:DEBUG:>> 3816 | 0 | CWorld::OnTick | +0
01:51:DEBUG:>> 3816 | 1 | CSector::OnTick | +0
01:51:DEBUG:>> 3816 | 2 | CChar::OnTick | +0 <-- exception catch point (below is guessed and could be incorrect!)
01:51:DEBUG:>> 3816 | 3 | CChar::OnTickStatusUpdate | +0
01:51:DEBUG:>> 3816 | 4 | CClient::UpdateStats | +0
01:51:DEBUG:>> 3816 | 5 | CClient::addManaUpdate | +0
01:51:DEBUG:>> 3816 | 6 | CPartyDef::AddStatsUpdate | +0
01:51:DEBUG:__ thread (3816) __ | # | _____ function _____________ | ticks passed from previous function start ______
01:51:DEBUG:>> 3816 | 0 | CWorld::OnTick | +0
01:51:DEBUG:>> 3816 | 1 | CSector::OnTick | +0
01:51:DEBUG:>> 3816 | 2 | CChar::OnTick | +0 <-- exception catch point (below is guessed and could be incorrect!)
01:51:DEBUG:>> 3816 | 3 | CChar::OnTickStatusUpdate | +0
01:51:DEBUG:>> 3816 | 4 | CClient::UpdateStats | +0
01:51:DEBUG:>> 3816 | 5 | CClient::addManaUpdate | +0
01:51:DEBUG:>> 3816 | 6 | CPartyDef::AddStatsUpdate | +0
01:51:DEBUG:__ thread (3816) __ | # | _____ function _____________ | ticks passed from previous function start ______
01:51:DEBUG:>> 3816 | 0 | CWorld::OnTick | +0
01:51:DEBUG:>> 3816 | 1 | CSector::OnTick | +0
01:51:DEBUG:>> 3816 | 2 | CChar::OnTick | +0 <-- exception catch point (below is guessed and could be incorrect!)
01:51:DEBUG:>> 3816 | 3 | CChar::OnTickStatusUpdate | +0
01:51:DEBUG:>> 3816 | 4 | CClient::UpdateStats | +0
01:51:DEBUG:>> 3816 | 5 | CClient::addManaUpdate | +0
01:51:DEBUG:>> 3816 | 6 | CPartyDef::AddStatsUpdate | +0
01:51:DEBUG:__ thread (3816) __ | # | _____ function _____________ | ticks passed from previous function start ______
01:51:DEBUG:>> 3816 | 0 | CWorld::OnTick | +0
01:51:DEBUG:>> 3816 | 1 | CSector::OnTick | +0
01:51:DEBUG:>> 3816 | 2 | CChar::OnTick | +0 <-- exception catch point (below is guessed and could be incorrect!)
01:51:DEBUG:>> 3816 | 3 | CChar::OnTickStatusUpdate | +0
01:51:DEBUG:>> 3816 | 4 | CClient::UpdateStats | +0
01:51:DEBUG:>> 3816 | 5 | CClient::addManaUpdate | +0
01:51:DEBUG:>> 3816 | 6 | CPartyDef::AddStatsUpdate | +0
01:51:CRITICAL:"Access Violation" (0x192b26), in CChar::Tick() 0000001 "update stats"
01:51:DEBUG:__ thread (3816) __ | # | _____ function _____________ | ticks passed from previous function start ______
01:51:DEBUG:>> 3816 | 0 | CWorld::OnTick | +0
01:51:DEBUG:>> 3816 | 1 | CSector::OnTick | +0
01:51:DEBUG:>> 3816 | 2 | CChar::OnTick | +0 <-- exception catch point (below is guessed and could be incorrect!)
01:51:DEBUG:>> 3816 | 3 | CChar::OnTickStatusUpdate | +0
01:51:DEBUG:>> 3816 | 4 | CClient::UpdateStats | +0
01:51:DEBUG:>> 3816 | 5 | CClient::addManaUpdate | +0
01:51:DEBUG:>> 3816 | 6 | CPartyDef::AddStatsUpdate | +0
01:51:DEBUG:__ thread (3816) __ | # | _____ function _____________ | ticks passed from previous function start ______
01:51:DEBUG:>> 3816 | 0 | CWorld::OnTick | +0
01:51:DEBUG:>> 3816 | 1 | CSector::OnTick | +0
01:51:DEBUG:>> 3816 | 2 | CChar::OnTick | +0 <-- exception catch point (below is guessed and could be incorrect!)
01:51:DEBUG:>> 3816 | 3 | CChar::OnTickStatusUpdate | +0
01:51:DEBUG:>> 3816 | 4 | CClient::UpdateStats | +0
01:51:DEBUG:>> 3816 | 5 | CClient::addManaUpdate | +0
01:51:DEBUG:>> 3816 | 6 | CPartyDef::AddStatsUpdate | +0
01:51:DEBUG:__ thread (3816) __ | # | _____ function _____________ | ticks passed from previous function start ______
01:51:DEBUG:>> 3816 | 0 | CWorld::OnTick | +0
01:51:DEBUG:>> 3816 | 1 | CSector::OnTick | +0
01:51:DEBUG:>> 3816 | 2 | CChar::OnTick | +0 <-- exception catch point (below is guessed and could be incorrect!)
01:51:DEBUG:>> 3816 | 3 | CChar::OnTickStatusUpdate | +0
01:51:DEBUG:>> 3816 | 4 | CClient::UpdateStats | +0
01:51:DEBUG:>> 3816 | 5 | CClient::addManaUpdate | +0
01:51:DEBUG:>> 3816 | 6 | CPartyDef::AddStatsUpdate | +0
No tags attached.
Issue History
02-07-15 01:49RizzNew Issue
02-07-15 01:54RizzNote Added: 0002891
02-07-15 10:56RizzNote Added: 0002893
02-07-15 11:00RizzNote Added: 0002894
08-07-15 10:40XuNNote Added: 0002904
08-08-15 00:16CorujaNote Added: 0002941
15-09-15 10:43XuNNote Added: 0002973
15-09-15 10:43XuNStatusnew => resolved
15-09-15 10:43XuNResolutionopen => fixed
15-09-15 10:43XuNAssigned To => XuN

Notes
(0002891)
Rizz   
02-07-15 01:54   
When it happens, you cannot logout your pg
(0002893)
Rizz   
02-07-15 10:56   
I was in party with 2 other players, Master tried to disband but I was still in party.
So i tried to leave the party and was not possible then I tried to log out.
My char was stuck in game flagged as "online" while my client was closed.
I waited 10 minutes, char still online.
I tried to login again but I was stuck everytime in the char selection screen (after the server choice).

Was not possible to detect why i could not enter the game, console was spamming like a crazy.
(0002894)
Rizz   
02-07-15 11:00   
Mmm may the uosteam maps leads to this problem?

01:33:CRITICAL:(negotiate.scp,128)"Access Violation" (0xfbf986), in CScriptObj::WriteVal()
01:33:DEBUG:command 'MEMBERS' ret '' [02F027A0]
01:33:ERROR:(negotiate.scp,128)Can't resolve <PARTY.MEMBERS>

01:33:DEBUG:command 'MEMBER.0' ret '' [02F027A0]
01:33:ERROR:(negotiate.scp,129)Can't resolve <PARTY.MEMBER.0>
01:33:ERROR:(negotiate.scp,130)Can't resolve <DISTANCE 0>
01:33:ERROR:(negotiate.scp,130)Undefined symbol '' ['>= 18)']


01:33:DEBUG:>> 3816 | 21 | CClient::r_GetRef | +0
01:33:DEBUG:command 'MEMBER.-1' ret '' [02F027A0]
01:33:ERROR:(negotiate.scp,129)Can't resolve <PARTY.MEMBER.-1>
01:33:ERROR:(negotiate.scp,130)Can't resolve <DISTANCE 0>
01:33:ERROR:(negotiate.scp,130)Undefined symbol '' ['>= 18)']

negotiate.scp from row 128 to 134

FOR X 0 <EVAL <PARTY.MEMBERS> - 1>
 REF1 = <PARTY.MEMBER.<DLOCAL.X>>
 IF (<REF1>) && (<REF1> != <UID>) && (<DISTANCE <REF1>> >= 18)
  LOCAL.COUNT ++
  LOCAL.DATA = <LOCAL.DATA> D<HVAL <REF1.UID>> W<HVAL <REF1.P.X>> W<HVAL <REF1.P.Y>> <HVAL <REF1.MAP>>
 ENDIF
ENDFOR
(0002904)
XuN   
08-07-15 10:40   
Try to invert the for:

FOR X <EVAL <PARTY.MEMBERS> - 1> 0


Probably this problem is caused because of the left player: If you have 3 players and player 1 leaves... then player 1 will be the last player 2, but the loop will go to player 2, who is player 3 in this case ... and when loops reach player 3 ... there's no player 3 anymore. You can additionally add a safe check there adding something like if (<PARTY.MEMBER.<DLOCAL.X>>) ref1=<PARTY.MEMBER.<DLOCAL.X>>


Reply with the results, please :)
(0002941)
Coruja   
08-08-15 00:16   
it still occour on latest nightly?
(0002973)
XuN   
15-09-15 10:43   
Flagging this as resolved, cannot reproduce it.