Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash - MovementRelocation on elevators #40

Open
Undergarun opened this issue Apr 24, 2014 · 7 comments
Open

Crash - MovementRelocation on elevators #40

Undergarun opened this issue Apr 24, 2014 · 7 comments
Labels

Comments

@Undergarun
Copy link
Member

http://pastebin.com/LVAW0r8t

When player use elevators.

@rsa Maybe on Cataclysm elevators don't send ObjectGuid?

@Undergarun
Copy link
Member Author

Also after:Player::HandleFall so something is wrong in HandleMovementOpcodes

Thread 1 (Thread 0x7f7b45979700 (LWP 22984)):
#0 TransportInfo::GetTransportGuid (this=0x0) at /root/WorldOfWarcraft434Server/src/game/TransportSystem.cpp:317
No locals.
#1 0x00000000007ee239 in Player::HandleFall (this=0x7f7b2c006cc0, movementInfo=...) at /root/WorldOfWarcraft434Server/src/game/Player.cpp:23747
z_diff = 75.0271454
hasFlyMountAura = false
#2 0x0000000000b4f62d in WorldSession::HandleMovementOpcodes (this=0x7f7b04003070, recv_data=...) at /root/WorldOfWarcraft434Server/src/game/MovementHandler.cpp:346
opcode = CMSG_MOVE_FALL_LAND
mover = 0x7f7b2c006cc0
plMover =
newTime =
data = { = {static DEFAULT_SIZE = 64, _rpos = 140166191068032, _wpos = 4194304, _bitpos = 551, _curbitval = 193 '\301', _storage = {<std::_Vector_base<unsigned char, std::allocator >> = {_M_impl = {<std::allocator> = {<__gnu_cxx::new_allocator> = {}, }, _M_start = 0x7f7b3647a200 "\020\002", _M_finish = 0x7f7affd41508 "@\261", _M_end_of_storage = 0x7f7affd414f0 "`1\005\376z\177"}}, }}, m_opcode = CMSG_ADD_VOICE_IGNORE}
movementInfo = {guid = {{m_guid = 26578, m_guidBytes = "\322g\000\000\000\000\000"}, static Null = {{m_guid = 0, m_guidBytes = "\000\000\000\000\000\000\000"}, static Null = }}, moveFlags = 1, moveFlags2 = 2048, time = 43093104, pos = { = {G3D::Vector3 = {x = 1826.74622, y = -4520.80469, z = 23.5339775}, _vptr.Location = 0xc46770 <vtable for Position+16>, {orientation = 4.68636322, o = 4.68636322}}, m_phaseMask = /build/buildd/gdb-7.5/gdb/findvar.c:176: internal-error: extract_typed_address: type is not a pointer or reference

@Dramacydal
Copy link
Member

GetTransportInfo()->GetTransportGuid().IsEmpty() =>
(!GetTransportInfo() || GetTransportInfo()->GetTransportGuid().IsEmpty())

@Dramacydal
Copy link
Member

but obviously transportinfo should always be initialized so you somehow lost it between merges

@rsa
Copy link
Member

rsa commented Apr 30, 2014

this DB problem (same as more old with Transport) - seems wrong object type in base. need make initializing TransportInfo for all classes and do check like published...

@Undergarun
Copy link
Member Author

I really apreciate a fix for that or even a workaround, realm crash as soon as any player reach elevator and i can't get bugreports from players to continue developing this branch on a unstable realm.

@Undergarun
Copy link
Member Author

Maybe not-related but state of all elevator GOs are 0 and maybe should be GO_STATE_TRANSPORT_SPEC = 0x18, // additional mask that have all transport gameobjects in enum GOState. Problem is #define MAX_GO_STATE 3 so check skip gameobject to be loaded.

@Dramacydal
Copy link
Member

this is not related
GO_STATE_TRANSPORT_SPEC should not be set in core, only manually added in values update part of SMSG_UPDATE_OBJECT

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants