Page 2 of 5 FirstFirst 1234 ... LastLast
Results 16 to 30 of 70

Thread: 1/16/13 changes

  1. #16
    Registered User
    Join Date
    Mar 2007
    Posts
    32

    Re: 1/16/13 changes

    Which version is thiss off? x.10?

  2. #17
    Administrator
    Join Date
    Sep 2005
    Posts
    354

    Re: 1/16/13 changes

    Quote Originally Posted by Reliant View Post
    Which version is thiss off? x.10?
    Believe so... I applied Ieatacid's patch to fresh download and then added showeq42's playerselfposstruct changes to everquest.h. Works until I get the occasional crash mentioned in an earlier post.

  3. #18
    Registered User
    Join Date
    Mar 2007
    Posts
    32

    Re: 1/16/13 changes

    Thanks fran... will give it a go.

    Update: tried a normal 'patch' and it failed. what's the proper patch options / command?

    Update tp the update.. nevermind 'patch -p0 < file' seems to work. I had -p1 and it didn't.
    Last edited by Reliant; 01-19-2013 at 05:36 PM.

  4. #19
    Administrator
    Join Date
    Sep 2005
    Posts
    354

    Re: 1/16/13 changes

    Quote Originally Posted by fransick View Post
    Everything checked out pretty well save random crashes after a few kills:

    Code:
    #0  0x0445c794 in QString::deref() () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #1  0x0445c86e in QString::operator=(QString const&) () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #2  0x080f575f in Player::setLastKill (this=0x8481490, name=..., level=90) at player.cpp:800
    #3  0x08074346 in SpawnShell::killSpawn (this=0x82ec458, data=0x8a37e57 "\233_") at spawnshell.cpp:1475
    #4  0x08074c87 in SpawnShell::qt_invoke (this=0x82ec458, _id=25, _o=0xbfffc390) at spawnshell.moc:412
    #5  0x041855aa in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #6  0x080905ff in EQPacketDispatch::signal (this=0x842e5d8, t0=0x8a37e57 "\233_", t1=32, t2=2 '\002') at packetinfo.moc:99
    #7  0x08089eb9 in EQPacketStream::dispatchPacket (this=0x83410b0, data=0x8a37e57 "\233_", len=32, opCode=11298, opcodeEntry=0x82cf0d0)
        at packetstream.cpp:435
    #8  0x0808c20a in EQPacketStream::processPacket (this=0x83410b0, packet=..., isSubpacket=true) at packetstream.cpp:719
    #9  0x0808c4ea in EQPacketStream::processPacket (this=0x83410b0, packet=..., isSubpacket=false) at packetstream.cpp:807
    #10 0x0808cc30 in EQPacketStream::handlePacket (this=0x83410b0, packet=...) at packetstream.cpp:572
    #11 0x08093252 in EQPacket::dispatchPacket (this=0x8482e18, packet=...) at packet.cpp:659
    #12 0x08095b25 in dispatchPacket (this=0x8482e18) at packet.cpp:583
    #13 EQPacket::processPackets (this=0x8482e18) at packet.cpp:400
    #14 0x08095e00 in EQPacket::qt_invoke (this=0x8482e18, _id=2, _o=0xbfffe768) at packet.moc:577
    #15 0x04185642 in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #16 0x04185724 in QObject::activate_signal(int) () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #17 0x044ccc5a in QTimer::timeout() () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #18 0x041a5e3e in QTimer::event(QEvent*) () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #19 0x04123ffd in QApplication::internalNotify(QObject*, QEvent*) () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #20 0x0412418b in QApplication::notify(QObject*, QEvent*) () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #21 0x0411823c in QEventLoop::activateTimers() () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #22 0x040d3182 in QEventLoop::processEvents(unsigned int) () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #23 0x04139b50 in QEventLoop::enterLoop() () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #24 0x04139ad7 in QEventLoop::exec() () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #25 0x04124d20 in QApplication::exec() () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #26 0x08067a8b in main (argc=1, argv=0xbffff3f4) at main.cpp:737
    A bit more experimentation, and I am no closer to understanding why this happens... hits my main most of the time. if I have SEQ follow an alt in group it happens far less but still eventually will seg out with pretty much the same backtrace above. I messed around with just ignoring the lastkill code but that created downstream issues elsewhere. Any thoughts on what's happening with that code and why it's important?

  5. #20
    Administrator
    Join Date
    Sep 2005
    Posts
    354

    Re: 1/16/13 changes

    Found another consistent segfault. I seem much better at finding issues than solving them lately.

    Happens when I zone into bazaar:
    Code:
    #0  0x006a6d80 in strcpy () from /lib/libc.so.6
    #1  0x0806f868 in SpawnShell::fillSpawnStruct (this=0x8363b00, spawn=0x87d4da8, data=0x854d93c "", len=469, checkLen=true) at spawnshell.cpp:709
    #2  0x08073298 in SpawnShell::zoneEntry (this=0x8363b00, data=0x854d93c "", len=469) at spawnshell.cpp:740
    #3  0x08075238 in SpawnShell::qt_invoke (this=0x8363b00, _id=8, _o=0xbfffc390) at spawnshell.moc:395
    #4  0x04185642 in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #5  0x080905ff in EQPacketDispatch::signal (this=0x8471ba0, t0=0x854d93c "", t1=469, t2=2 '\002') at packetinfo.moc:99
    #6  0x08089eb9 in EQPacketStream::dispatchPacket (this=0x83410a8, data=0x854d93c "", len=469, opCode=24744, opcodeEntry=0x83c37a8)
        at packetstream.cpp:435
    #7  0x0808c29b in EQPacketStream::processPacket (this=0x83410a8, packet=..., isSubpacket=true) at packetstream.cpp:754
    #8  0x0808c5ad in EQPacketStream::processPacket (this=0x83410a8, packet=..., isSubpacket=false) at packetstream.cpp:892
    #9  0x0808cc30 in EQPacketStream::handlePacket (this=0x83410a8, packet=...) at packetstream.cpp:572
    #10 0x08093252 in EQPacket::dispatchPacket (this=0x8482e30, packet=...) at packet.cpp:659
    #11 0x08095b25 in dispatchPacket (this=0x8482e30) at packet.cpp:583
    #12 EQPacket::processPackets (this=0x8482e30) at packet.cpp:400
    #13 0x08095e00 in EQPacket::qt_invoke (this=0x8482e30, _id=2, _o=0xbfffe768) at packet.moc:577
    #14 0x04185642 in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #15 0x04185724 in QObject::activate_signal(int) () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #16 0x044ccc5a in QTimer::timeout() () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #17 0x041a5e3e in QTimer::event(QEvent*) () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #18 0x04123ffd in QApplication::internalNotify(QObject*, QEvent*) () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #19 0x0412418b in QApplication::notify(QObject*, QEvent*) () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #20 0x0411823c in QEventLoop::activateTimers() () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #21 0x040d3182 in QEventLoop::processEvents(unsigned int) () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #22 0x04139b50 in QEventLoop::enterLoop() () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #23 0x04139ad7 in QEventLoop::exec() () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #24 0x04124d20 in QApplication::exec() () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
    #25 0x08067a8b in main (argc=1, argv=0xbffff3f4) at main.cpp:737
    Last edited by BlueAdept; 01-20-2013 at 02:24 PM.

  6. #21
    Developer
    Join Date
    Sep 2005
    Posts
    155

    Re: 1/16/13 changes

    I'm not crashing zoning into the bazaar but I did notice that I only picked up PCs within about 50 feet from my char. I do seem to pick up new chars anywhere in zone when they zone in. For some strange reason I have noticed this problem in other zones. Some effect of them being in trader mode, perhaps?

    I haven't had any time to play this weekend, I'll try to get on alter and see if I'm running into the other crash you're talking about.

  7. #22
    Administrator
    Join Date
    Sep 2005
    Posts
    354

    Re: 1/16/13 changes

    Quote Originally Posted by rogues View Post
    I'm not crashing zoning into the bazaar but I did notice that I only picked up PCs within about 50 feet from my char. I do seem to pick up new chars anywhere in zone when they zone in. For some strange reason I have noticed this problem in other zones. Some effect of them being in trader mode, perhaps?

    I haven't had any time to play this weekend, I'll try to get on alter and see if I'm running into the other crash you're talking about.
    Interesting... I'd be happy if I can get to the bottom of the lastkill segfaults posted earlier as those are far more common and problematic. Bazaar isn't critical but thought it might spark some thought if I posted a backtrace for it.

  8. #23
    Registered User
    Join Date
    Sep 2006
    Posts
    36

    Re: 1/16/13 changes

    Quote Originally Posted by fransick View Post
    Interesting... I'd be happy if I can get to the bottom of the lastkill segfaults posted earlier as those are far more common and problematic. Bazaar isn't critical but thought it might spark some thought if I posted a backtrace for it.
    commenting out line 800 of player.cpp will keep it from crashing until a proper fix is figured out.

    updated playerSelfPosStruct, only thing that was in the wrong place was "animation", which is the player's velocity (signed, walking backwards makes it negative).
    I can't find anywhere in the code animation is actually used, or why it's called animation. Maybe it used to be something else.

    padding2 was always 0x17, rest were 0, during my testing

    Code:
    struct playerSelfPosStruct
    {
    /*0000*/ uint16_t unknown0000;                   // ***Placeholder (update time counter?)
    /*0002*/ uint16_t spawnId;                       // Player's spawn id
    /*0004*/ uint16_t unknown0004;                   // ***Placeholder
    /*0006*/ unsigned pitch:12;                      // pitch (up/down heading)
             unsigned heading:12;                    // Directional heading
             unsigned padding1:8;                    // ***Placeholder
    /*0010*/ float y;                                // y coord (2nd loc value)
    /*0014*/ float deltaZ;                           // Change in z
    /*0018*/ float z;                                // z coord (3rd loc value)
    /*0022*/ signed deltaHeading:10;                 // change in heading
             unsigned padding2:10;                   // ***Placeholder
             unsigned padding3:12;                   // ***Placeholder
    /*0026*/ float x;                                // x coord (1st loc value)
    /*0030*/ float deltaX;                           // Change in y
    /*0034*/ float deltaY;                           // Change in x
    /*0038*/ signed animation:10;                    // velocity
             unsigned padding4:10;                   // ***Placeholder
             unsigned padding5:12;                   // ***Placeholder
    /*0042*/
    };
    Last edited by showeq42; 01-21-2013 at 03:57 AM. Reason: labeled pitch in playerSelfPosStruct

  9. #24
    Registered User
    Join Date
    Sep 2006
    Posts
    36

    Re: 1/16/13 changes

    I got everything in the right spot in playerSpawnPosStruct, and also found where pitch is and labeled it. For players this is the direction they are looking up/down.

    Code:
    struct playerSpawnPosStruct
    {
    /*0000*/ uint16_t spawnId;
    /*0002*/ uint16_t spawnId2;
    /*0004*/ unsigned pitch:12;
             signed   deltaZ:13;      // change in z
             unsigned padding01:7;
    /*0008*/ signed   deltaHeading:10;// change in heading
             signed   x:19;           // x coord
             unsigned padding02:3;
    /*0012*/ unsigned heading:12;     // heading
             signed   deltaY:13;      // change in y
             unsigned padding03:7;
    /*0016*/ signed   deltaX:13;      // change in x
             signed   y:19;           // y coord
    /*0020*/ signed   animation:10;   // velocity
             signed   z:19;           // z coord
             unsigned padding04:3;
    /*0024*/
    };

  10. #25
    Developer
    Join Date
    Sep 2005
    Posts
    155

    Re: 1/16/13 changes

    Thanks, it's looking pretty good. I'm not sure if the changes from the last couple bugs fixed something I had wrong but now I get crashes in the baz too. Not a bit deal to me, just thought I'd mention it.

    Even without the updates I didn't crash last night during a raid.

  11. #26
    Registered User
    Join Date
    Mar 2007
    Posts
    32

    Re: 1/16/13 changes

    I believe I understand 'Animation'. Remember, the server does not send an update for every *single* position update for every character on the screen. It provides basically a point and a velocity vector, and the client-side code computes a new positions for every frame based on this. This is what causes the so-called 'rubber-band' effect. The server is delayed, and the client machine continues to project motion along the previous vector, and then discovers, when it finally gets an update, that the actual position is different than the projected position, and instantly corrects it. Animation is, then, used to 'fill in' the character / mob motion between server updates.

  12. #27
    Developer
    Join Date
    Sep 2005
    Posts
    155

    Re: 1/16/13 changes

    ... and I crashed tonight. Line 800 in player.cpp was commented out.

  13. #28
    Registered User
    Join Date
    Mar 2007
    Posts
    32

    Re: 1/16/13 changes

    Yea, we really need to figure out the segfaults. I cant run for more than ten minutes without dieing -- makes ShowEQ useless cause you have to zone to refresh the display.

  14. #29
    Developer
    Join Date
    Sep 2005
    Posts
    155

    Re: 1/16/13 changes

    Time to put more money in the ieatacid machine

  15. #30
    Registered User
    Join Date
    Sep 2006
    Posts
    36

    Re: 1/16/13 changes

    I get the same crash when I kill a mob

    Code:
    #0  0x000000000042e3c0 in QShared::deref (this=0xffffff0044495254)
        at /usr/lib64/qt-3.3/include/qshared.h:53
    53          bool deref()        { return !--count; }
    
    #1  0x00007ffff7ab98fa in QString::deref (this=0xc08580)
        at tools/qstring.cpp:1552
    1552        if ( d && d->deref() ) {
    
    #2  0x00007ffff7ab99ab in QString::operator= (this=0xc08580, s=...)
        at tools/qstring.cpp:1597
    1597        deref();
    
    #3  0x00000000004c3795 in Player::setLastKill (this=0xc072f0, name=...,
        level=1) at player.cpp:800
    800       m_lastSpawnKilledName = name;
    
    #4  0x0000000000437c85 in SpawnShell::killSpawn (this=0xa8d2c0,
        data=0xc02437 "[]") at spawnshell.cpp:1485
    1485             m_player->setLastKill(spawn->name(), spawn->level());

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

You may post new threads
You may post replies
You may post attachments
You may edit your posts
HTML code is Off
vB code is On
Smilies are On
[IMG] code is On