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

Thread: Beta Updates

  1. #1
    Registered User
    Join Date
    Jun 2003
    Posts
    550

    Beta Updates

    I tried looking through the everquest.h file to find out how to tell it that I now have 10 inventory slots instead of 8. But either it's hidden very well, or I'm that out of practice, that it's not jumping out at me.

    I even tried to do a packet dump, and I don't see anything in the resulting file that's legible.

    I'm glad someone's able to figure this stuff out, cause I've never been able to do more than the simplest updates.

  2. #2
    Developer
    Join Date
    Nov 2007
    Posts
    539

    Re: Beta Updates

    I am getting better at figuring out the packet structures. But I am real slow. Working on emu servers has helped me a lot.

    Razzle

  3. #3
    Registered User
    Join Date
    Jun 2003
    Posts
    550

    Re: Beta Updates

    If you know off the top of your head where I should be looking to increase the number of inventory slots, that can help.

    Or if you need me to send you a copy of my dumps, I can do that too.

    Thanks.

  4. #4
    Developer
    Join Date
    Jun 2003
    Posts
    446

    Re: Beta Updates

    Quote Originally Posted by uRit1u2CBBA= View Post
    If you know off the top of your head where I should be looking to increase the number of inventory slots, that can help.

    Or if you need me to send you a copy of my dumps, I can do that too.

    Thanks.
    In the spawnStruct.

    Code:
    /*0000*/ union
             {
               struct
               {
                   /*0000*/ EquipStruct equip_helmet;     // Equiptment: Helmet visual
                   /*0000*/ EquipStruct equip_chest;      // Equiptment: Chest visual
                   /*0000*/ EquipStruct equip_arms;       // Equiptment: Arms visual
                   /*0000*/ EquipStruct equip_bracers;    // Equiptment: Wrist visual
                   /*0000*/ EquipStruct equip_hands;      // Equiptment: Hands visual
                   /*0000*/ EquipStruct equip_legs;       // Equiptment: Legs visual
                   /*0000*/ EquipStruct equip_feet;       // Equiptment: Boots visual
                   /*0000*/ EquipStruct equip_primary;    // Equiptment: Main visual
                   /*0000*/ EquipStruct equip_secondary;  // Equiptment: Off visual
               } equip;
                /*0000*/ EquipStruct equipment[9];
             };
    Add your new "EquipStruct equip_whatever_new_slot;" and increase the equipment array size by however many you add.

  5. #5
    Registered User
    Join Date
    Jun 2003
    Posts
    550

    Re: Beta Updates

    Perfect. Is the existing 9 from the 8 inventory slots and the "cursor"?

    So adding 2 more slots, I'd increase this value to 11, right?

    Thanks again. There's probably other "unknown" characters that I'd have to account for.

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

    Re: Beta Updates

    I think one of you is talking about visible armor slots, and the other is talking about non-visible main inventory slots. Unless there is some new visible slot, you don't want to change EquipStruct.

  7. #7
    Registered User
    Join Date
    Jun 2003
    Posts
    550

    Re: Beta Updates

    Quote Originally Posted by sammie View Post
    I think one of you is talking about visible armor slots, and the other is talking about non-visible main inventory slots. Unless there is some new visible slot, you don't want to change EquipStruct.
    Hmm .. if he's right, then I think we are talking about two different things.

    There are no new item equip slots, but two new inventory slots.

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

    Re: Beta Updates

    I moved my changes for Test Server to its own thread, since I was able to try them on beta and they didn't work.
    Last edited by sammie; 09-08-2010 at 04:36 PM. Reason: off topic, moved to new thread

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

    Re: Beta Updates

    I was able to get SEQ semi-functional on Beta. Quite a few issues, but I'm still working on it. The biggest outstanding issue so far is that mobs are only decoding inside a small update radius. I ran out of time to work on it last night but I will try to determine in the next few days if this is a change to how mob data is delivered to the client or not. There are still lots of bugs and many many outstanding opcode changes. Any help finding and/or verifying opcodes is appreciated.


    Using a fresh copy of SEQ 5.13.10.2:

    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
    
       retVal = netStream.pos() - netStream.data();

    everquest.h
    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:
    /*20584*/ TributeStruct tributes[MAX_TRIBUTES]; // Current tribute loadout
    /*20624*/ uint8_t unknown20624[212];    // Added 208 bytes for HoT BETA
    /*20628*/ float     expGroupLeadAA;     // Current group lead exp points
    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*/
    };

    zoneopcodes.xml
    Code:
        <opcode id="4540" name="OP_NpcMoveUpdate" updated="09/07/10">
            <comment>Position updates</comment>
            <payload dir="server" typename="uint8_t" sizechecktype="none"/>
        </opcode>
    
        <opcode id="7EEB" name="OP_DeleteSpawn" updated="09/07/10">
            <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="0B93" name="OP_ZoneChange" updated="09/07/10">
            <comment>old ZoneChangeCode</comment>
            <payload dir="both" typename="zoneChangeStruct" sizechecktype="match"/>
        </opcode>
    
        <opcode id="3237" name="OP_Death" updated="09/07/10">
            <comment>old NewCorpseCode</comment>
            <payload dir="server" typename="newCorpseStruct" 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>

  10. #10
    Registered User
    Join Date
    Jun 2003
    Posts
    550

    Re: Beta Updates

    It's not perfect, but it compiles and gives you maps.

    I followed the steps sammie gave above, with one change. In everquest.h, his new line was:

    /*20624*/ uint8_t unknown20624[212]; // Added 208 bytes for HoT BETA

    That needs to be changed to:

    /*20624*/ uint8_t unknown20624[92]; // Added 88 bytes for HoT


    There are other problems, that I've never been able to figure out, but at least this works for now. (Map and radar, but no skittles)

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

    Re: Beta Updates

    If you have no skittles it sounds like you need to find the opcode for OP_ZoneEntry on live. It was 002b on beta and is also now on test after HoT was published. I'm surprised it isn't the same on live servers, too. Should be easy to find, just log unknown packets, zone to a new zone with lots of NPCs, look at the log and look for a packet that contains the names of the mobs. Plug in that opcode and restart SEQ and see if that works.

    Also, OP_NpcMoveUpdate is now 38f9 on Test, and OP_DeleteSpawn is now 59a8. If you get ZoneEntry working and skittles appear but don't move and won't disappear after being killed, you might try these 2 codes.

    I'd do it myself but patching to live with my connection would take over 2 hours and I don't have the time or energy right now.

  12. #12
    Developer
    Join Date
    Oct 2010
    Posts
    215

    Re: Beta Updates

    New at this so bear with me. 59a8 for Op_DeleteSpawn works, but only if you change the opcode for Op_GroupFollow2 from 59a8 to something else. I didn't have anyone else on to check what the group opcodes should be, so I just changed it to something that wasn't already used. Needs work.

    OP_Consider appears to be 3E50.

    OP_CastSpell appears to be 7286.

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

    Re: Beta Updates

    Thanks for the Op codes guys. And the info on how to find them sammie, took me a while to find the logs in /.showeq though =P.
    I figured out the OP_TargetMouse is: 2257.

    Most critical codes in then, just in time for the weekend =)

  14. #14
    Registered User
    Join Date
    Jun 2003
    Posts
    550

    Re: Beta Updates

    Thanks for the codes.

    I misspoke when I said I didn't have skittles. Turned out that I did, but when I targetted anything in-game, it didn't have an effect to SEQ. Sounds like with TargetMouse known, sounds like this should work.

  15. #15
    Registered User
    Join Date
    Jun 2009
    Posts
    7

    Re: Beta Updates

    Have you guys made any other changes from 5.13.10.2 to get skittles on Live servers?

    The reason I am asking, is that I had to put a new HD into my SEQ box yesterday and get everything going from scratch (I even switched from Gentoo to Mandriva - meh). Pretty sure I am handing packets to it properly (via ip_forward = 1 & setting the Linux box as the gateway on my windows box); I can tcpdump & match packets coming from the windows IP.

    SEQ says it found a client from the IP of my windows box, so only thing I am left wondering is about opcodes. And if there's more to these changes than what is above (form Sammie), and uRit1u2CBBA='s changes. There hasn't been a "real" release in 80 days, and I seem to recall having some locally modified code on my end before I lost my HD.

    To be clear, I don't get skittles, nor even a map. I tried the advice above to try & find the ZoneEntry, but I never saw a packet (in the global.txt log file) with any mob names in it.

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