Page 1 of 2 12 LastLast
Results 1 to 15 of 16

Thread: Test Server Updates

  1. #1
    Registered User
    Join Date
    May 2009
    Posts
    45

    Test Server Updates

    Instead of posting SEQ changes for the Test server haphazardly on various threads, I decided to open this thread to help consolidate info in an easy to find place. My changes are by no means official, but are instead quick hacks to get the SEQ client functional on the Test server. If you have any input, changes or questions or comments about SEQ on Test Server, please feel free to use this thread.


    Latest Test Server Patch: 10/15/2010
    Use SEQ Client: 5.13.10.2
    Known Issues: Several outstanding opcodes.

    Make the following changes to a fresh copy of 5.13.10.2 and recompile:

    src/spawnshell.cpp
    Code:
       // unknowns
       netStream.skipBytes(8);
    
       spawn->isMercenary = netStream.readUInt8();
    
       // unknowns -- changed from 28 to 53 for HoT Beta
       netStream.skipBytes(53);
    
       // now we're at the end
    src/everquest.h
    Code:
    /*
    ** Info sent when you start to cast a spell
    ** Length: 44 Octets
    ** OpCode: StartCastCode
    */
    
    struct startCastStruct
    {
    /*0000*/ int32_t  slot;                   // ***Placeholder
    /*0004*/ uint32_t spellId;                // Spell ID
    /*0008*/ int32_t  inventorySlot;          // ***Placeholder
    /*0012*/ uint8_t  unknown0012[8];         // ***Placeholder (9/1/2010)
    /*0020*/ uint32_t targetId;               // The current selected target
    /*0024*/ uint8_t  unknown0024[4];         // ***Placeholder
    /*0028*/ uint8_t  unknown0028[16];        // ***Placeholder (4/7/2009)
    /*0044*/
    };
    Code:
    /*
    ** Type:   Zone Change Request (before hand)
    ** Length: 92 Octets
    ** OpCode: ZoneChangeCode
    */
    struct zoneChangeStruct
    {
    /*0000*/ char     name[64];             // Character Name
    /*0064*/ uint16_t zoneId;           // zone Id
    /*0066*/ uint16_t zoneInstance;     // zone Instance
    /*0068*/ uint8_t  unknown0068[8];   // unknown
    /*0076*/ uint8_t  unknown0076[12];  // ***Placeholder (6/29/2005)
    /*0088*/ uint8_t  unknown0088[4];   // HoT Beta (9/7/2010)
    /*0092*/
    };
    Code:
    /*18316*/ uint32_t  copper_bank;        // Copper Pieces in Bank
    /*18320*/ uint32_t  platinum_shared;    // Shared platinum pieces
    /*18324*/ uint8_t unknown18324[2124];   // Added 1088 for HoT
    /*19360*/ uint32_t  expansions;         // Bitmask for expansions
    /*19364*/ uint8_t unknown19364[12];
    Code:
    /*20580*/ uint32_t  tributeActive;      // 0 = off, 1=on
    /*20584*/ TributeStruct tributes[MAX_TRIBUTES]; // Current tribute loadout
    /*20624*/ uint8_t unknown20624[92];    // Added 88 bytes for HoT
    /*20628*/ float     expGroupLeadAA;     // Current group lead exp points
    /*20632*/ uint32_t unknown20632;
    conf/zoneopcodes.xml
    Code:
        <opcode id="38F9" name="OP_NpcMoveUpdate" updated="10/21/09">
            <comment>Position updates</comment>
            <payload dir="server" typename="uint8_t" sizechecktype="none"/>
        </opcode>
    
        <opcode id="59A8" name="OP_DeleteSpawn" updated="10/21/09">
            <comment>old DeleteSpawnCode</comment>
            <payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
        </opcode>
    
        <opcode id="002B" name="OP_ZoneEntry" updated="09/07/10">
            <comment>old ZoneEntryCode</comment>
            <payload dir="client" typename="ClientZoneEntryStruct" sizechecktype="match"/>
            <payload dir="server" typename="uint8_t" sizechecktype="none"/>
        </opcode>
    
        <opcode id="5F85" name="OP_GuildMOTD" updated="10/21/09">
            <comment>GuildMOTD</comment>
            <payload dir="server" typename="guildMOTDStruct" sizechecktype="none"/>
        </opcode>
    
        <opcode id="2370" name="OP_InspectAnswer" updated="10/21/09">
            <comment>old InspectDataCode</comment>
            <payload dir="both" typename="inspectDataStruct" sizechecktype="match"/>
        </opcode>
    
        <opcode id="000F" name="OP_SendZonePoints" updated="10/21/09">
            <comment>Coords in a zone that will port you to another zone</comment>
            <payload dir="server" typename="zonePointsStruct" sizechecktype="none"/>
        </opcode>
    
        <opcode id="2257" name="OP_TargetMouse" updated="10/21/09">
            <comment>Targeting a person - old ClientTargetCode</comment>
            <payload dir="both" typename="clientTargetStruct" sizechecktype="match"/>
        </opcode>
    
        <opcode id="27BF" name="OP_GroupFollow2" updated="10/21/09">
            <payload dir="server" typename="groupFollowStruct" sizechecktype="match"/>
            <comment>Player joins your group</comment>
        </opcode>
    
        <opcode id="167B" name="OP_GroupDisband" updated="10/21/09">
            <comment>You disband from group</comment>
            <payload dir="server" typename="groupDisbandStruct" sizechecktype="match"/>
        </opcode>
    
        <opcode id="72F8" name="OP_Stamina" updated="10/21/09">
            <comment>Server updating on hunger/thirst</comment>
            <payload dir="server" typename="staminaStruct" sizechecktype="match"/>
        </opcode>
    
        <opcode id="3E50" name="OP_Consider" updated="10/21/09">
            <comment>old ConsiderCode</comment>
            <payload dir="both" typename="considerStruct" sizechecktype="match"/>
        </opcode>
    
        <opcode id="2963" name="OP_Buff" updated="10/21/09">
            <comment>old BuffDropCode</comment>
            <payload dir="both" typename="buffStruct" sizechecktype="match"/>
        </opcode>
    
        <opcode id="5F0D" name="OP_GroundSpawn" updated="06/12/09">
            <comment>old MakeDropCode</comment>
            <payload dir="server" typename="makeDropStruct" sizechecktype="none"/>
            <payload dir="client" typename="uint8_t" sizechecktype="none"/>
        </opcode>
    
        <opcode id="44AE" name="OP_Logout" updated="10/21/09">
            <comment></comment>
            <payload dir="server" typename="none" sizechecktype="match"/>
        </opcode>
    
        <opcode id="7434" name="OP_RemoveSpawn" updated="06/12/09">
            <comment>Remove spawn from zone</comment>
          <payload dir="both" typename="removeSpawnStruct" sizechecktype="none"/>
        </opcode>
    
        <opcode id="7F9E" name="OP_Death" updated="06/12/09">
            <comment>old NewCorpseCode</comment>
            <payload dir="server" typename="newCorpseStruct" sizechecktype="match"/>
        </opcode>
    
        <opcode id="442A" name="OP_ClickObject" updated="06/12/09">
            <comment>old RemDropCode</comment>
            <payload dir="both" typename="remDropStruct" sizechecktype="match"/>
        </opcode>
    
        <opcode id="50C2" name="OP_BuffFadeMsg" updated="06/12/09">
            <comment>old SpellFadeCode</comment>
            <payload dir="both" typename="spellFadedStruct" sizechecktype="none"/>
        </opcode>
    
        <opcode id="7286" name="OP_CastSpell" updated="06/12/09">
            <comment>old StartCastCode</comment>
            <payload dir="both" typename="startCastStruct" sizechecktype="match"/>
        </opcode>
    
        <opcode id="00BC" name="OP_MoneyOnCorpse" updated="06/12/09">
            <comment>old MoneyOnCorpseCode</comment>
            <payload dir="server" typename="moneyOnCorpseStruct" sizechecktype="match"/>
        </opcode>
    
        <opcode id="5DBC" name="OP_ItemPlayerPacket" updated="09/07/10">
            <comment>Inventory/bank items coming over during zone</comment>
            <payload dir="server" typename="uint8_t" sizechecktype="none"/>
        </opcode>
    Last edited by sammie; 10-15-2010 at 05:09 PM.

  2. #2
    Registered User
    Join Date
    May 2009
    Posts
    45

    Re: Test Server Updates

    As of Oct. 15 patch, you can apply all of these changes to Live except for this line:

    /*18324*/ uint8_t unknown18324[2124]; // Added 1088 for HoT

    That change is only needed on the Test server at the moment. It will probably be pushed live next week.
    Last edited by sammie; 10-15-2010 at 05:13 PM.

  3. #3
    Registered User
    Join Date
    May 2004
    Posts
    41

    Re: Test Server Updates

    Quote Originally Posted by sammie View Post
    As of Oct. 15 patch, you can apply all of these changes to Live except for this line:

    /*18324*/ uint8_t unknown18324[2124]; // Added 1088 for HoT

    That change is only needed on the Test server at the moment. It will probably be pushed live next week.

    Your prediction was correct. It got pushed live today. Made the change and all is well. Thanks!

  4. #4
    Registered User
    Join Date
    Jul 2004
    Posts
    34

    Re: Test Server Updates

    deleted because I'm a tard. Need to patch the same directory, that I am compiling.
    Last edited by pita; 10-21-2010 at 05:30 PM.

  5. #5
    Did you SEQ today? BlueAdept's Avatar
    Join Date
    Dec 2001
    Posts
    2,003

    Re: Test Server Updates

    LOL...happens to everyone eventually
    Filters for ShowEQ can now be found here. filters-5xx-06-20-05.tar.gz

    ShowEQ file section is here. https://sourceforge.net/project/show...roup_id=10131#

    Famous Quotes:

    Ratt: WTF you talkin' about BA? (Ok.. that sounds like a bad combo of Diffrent Strokes and A-Team)

    Razzle: I showeq my wife

  6. #6
    Registered User
    Join Date
    May 2009
    Posts
    45

    Re: Test Server Updates

    Test Server Patch on 10/25 introduced a problem with debug messages filling the terminal similar to "SpawnShell::fillSpawnStruct - expected length: 123, read: 124 for spawn 'soandso'"

    Make the following change and recompile to fix the message:

    src/spawnshell.cpp
    Code:
       // unknowns
       netStream.skipBytes(8);
    
       spawn->isMercenary = netStream.readUInt8();
    
       // unknowns -- changed from 28 to 54 for HoT Patch 10/25
       netStream.skipBytes(54);
    
       // now we're at the end

  7. #7
    Registered User
    Join Date
    May 2009
    Posts
    45

    Re: Test Server Updates

    The Jan. 26 2011 patch on Test server seems to have introduced a change to how corpse clean-up is handled. No longer is OP_DeleteSpawn sent after a player-related corpse disappears. This includes player corpses, familiars, pets, and swarm pets. As a result SEQ doesn't remove the corpse from the spawn list or the map.

    NPC corpses are still handled the old way. The packet order is generally OP_Death, Op_RemoveSpawn, OP_DeleteSpawn. Now on PC related corpses it is just OP_Death, OP_RemoveSpawn.

    Spending any length of time in a zone rapidly builds up tons of mobs and eventually SEQ becomes unstable.

    It might help to capture plenty of logs this weekend from live servers, just in case. I'm going to keep working on it to see if I can figure out exactly what was changed, this is just a heads up since I'm not sure when this might (if ever) go live.

  8. #8
    Developer
    Join Date
    Nov 2007
    Posts
    539

    Re: Test Server Updates

    Thanks for the heads up sammie. I was looking at those opcodes earlier this week. Will have to tie removing Player corpses to OP_RemoveSpawn if this goes live probably.

    Razzle

  9. #9
    Registered User
    Join Date
    May 2009
    Posts
    45

    Re: Test Server Updates

    I'm testing a fix tonight that is working so far. I'm sure it's not the proper way to go but it is keeping the spawnlist and map clean.

    src/spawnshell.cpp:
    Code:
    void SpawnShell::removeSpawn(const uint8_t* data, size_t len, uint8_t dir)
    {
      if(dir==DIR_Client)
        return;
      const removeSpawnStruct* rmSpawn = (const removeSpawnStruct*)data;
    #ifdef SPAWNSHELL_DIAG
      seqDebug("SpawnShell::removeSpawn(id=%d)", rmSpawn->spawnId);
    #endif
    
      Item *item;
    
      if(len==sizeof(removeSpawnStruct))
      {
        // Hack to fix corpse clean-up change
        deleteItem(tSpawn, rmSpawn->spawnId);
        // End Hack
        
        if(!rmSpawn->removeSpawn)
        {
          // Remove a spawn from outside the update radius
          if(showeq_params->useUpdateRadius)
          {
            // Remove it
            deleteItem(tSpawn, rmSpawn->spawnId);
          }
          else
          {
            // Set flag to change its icon
            if((item=m_spawns.find(rmSpawn->spawnId)))
            {
              Spawn *s=(Spawn*)item;
              s->setNotUpdated(true);
            }
          }
        }
      }
      else if((len+1)!=sizeof(removeSpawnStruct))
      {
        seqWarn("OP_RemoveSpawn (dataLen: %d) doesn't match: sizeof(removeSpawnStruct): %d",
                len,sizeof(removeSpawnStruct));
      }
    }
    Also, some zone opcode changes if anyone wants to try out the changes on Test. I'm sure there's some others but they are minor ones.

    zoneopcodes.xml:
    Code:
        <opcode id="5D24" name="OP_NpcMoveUpdate" updated="01/26/11">
            <comment>Position updates</comment>
            <payload dir="server" typename="uint8_t" sizechecktype="none"/>
        </opcode>
    
        <opcode id="1D85" name="OP_DeleteSpawn" updated="01/26/11">
            <comment>old DeleteSpawnCode</comment>
            <payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/>
        </opcode>

  10. #10
    Registered User
    Join Date
    May 2009
    Posts
    45

    Re: Test Server Updates

    Test server patch for 2-2-2011 causes segfault on OP_PlayerProfile. Adding 360 to the structure fixes the segfault, currently testing the following change to everquest.h that seems to fix the problem:

    /*10572*/ uint8_t unknown10572[920]; // Test Patch add 360 (was 560) 2-2-2011

  11. #11
    Registered User
    Join Date
    Dec 2008
    Posts
    4

    Re: Test Server Updates

    Thanks sammie, that segfault fix got me flyturds on live servers after the 02/09 2011 patch.

    The opcodes for OP_NpcMoveUpdate and OP_DeleteSpawn works also.

    I managed to find OP_TargetMouse:

    Code:
    <opcode id="2257" name="OP_TargetMouse" updated="02/09/11">
            <comment>Targeting a person - old ClientTargetCode</comment>
            <payload dir="both" typename="clientTargetStruct" sizechecktype="match"/>
    </opcode>

  12. #12
    Registered User
    Join Date
    May 2004
    Posts
    41

    Re: Test Server Updates

    Did a bit of testing on live and Sammie's segfault fix is working, the opcodes for OP_NpcMoveUpdate and OP_Deletespawn are working, and the changes to spawnshell.cpp are needed for live. The changes to spawnshell.cpp are working for at least mounts and warders, which was all I was able to test. Also seems needed for a few wandering mobs as well.

    For some reason, I already had Helix2's opcode for OP_TargetMouse, and it is also correct.

    All this info made for a very quick fix. Thanks!!!!!

  13. #13
    Registered User
    Join Date
    Dec 2008
    Posts
    4

    Re: Test Server Updates

    Feb 17 patch blew up OP_NpcMoveUpdate.

    This sems to work for me:
    <opcode id="3278" name="OP_NpcMoveUpdate" updated="2/17/11">
    <comment>Position updates</comment>
    <payload dir="server" typename="uint8_t" sizechecktype="none"/>
    </opcode>

  14. #14
    Registered User
    Join Date
    May 2004
    Posts
    41

    Re: Test Server Updates

    Works great, thanks!

  15. #15
    Registered User
    Join Date
    Nov 2010
    Posts
    5

    Re: Test Server Updates

    Server patch for 9-3-2011 causes segfault with Warning: OP_PlayerProfile (0x6022) (dataLen: 28536) doesn't match: sizeof(charProfileStruct):28176
    Im no coder at all but tried to add 320 more to the charProfileStruct as before (see sammie's post above) and it worked for me and i haven't noticed any strange behaviour , running 1 hour now.

    Change in everquest.h

    /*10572*/ uint8_t unknown10572[920]; // Test Patch add 360 (was 560) 2-2-2011

    to:

    /*10572*/ uint8_t unknown10572[1280]; // add 360 (was 920) 9-3-2011

Thread Information

Users Browsing this Thread

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

Tags for this Thread

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