Page 2 of 2 FirstFirst 12
Results 16 to 30 of 30

Thread: Update in Radius only?

  1. #16
    Registered User
    Join Date
    Jun 2003
    Posts
    10

    partial fix

    this isnt a complete fix, but

    go into src/opcode.h

    replace

    #define MobUpdateCode 0x0038

    by

    #define MobUpdateCode 0x0039

    it helps

    have fun

  2. #17
    Developer
    Join Date
    Jun 2003
    Posts
    446
    That makes it a little better, thanks

    What if we increase it more? to, say, 0x0042 or something?

  3. #18
    Registered User
    Join Date
    Jun 2003
    Posts
    10

    increase?

    that won't work at all, just like 0x38

    that number is an "opcode", it's a "unique" number that identifies the type of packet. it got changed in the last patch (and not included in zoo's patch to showeq i believe, i havent checked).

    in our case, 0x39 now means a mob position update packet, while it was 0x38 before. it could just as easily have decreased or jumped to 0x143 (just a random number :P im not sure that's actually a possible numbers, anyone know? isn't there a "version" somewhere?)

  4. #19
    Developer
    Join Date
    Jun 2003
    Posts
    446
    Ahh, I get what you're saying.

  5. #20
    Registered User
    Join Date
    Jul 2003
    Posts
    9
    Is it necessary to remake SEQ after changing the opcode?

  6. #21
    Registered User
    Join Date
    Jun 2003
    Posts
    10
    yes, anytime you change somethijng in there it's a good idea to remove the .o files and make it all over again (removing the .o seems to be nescessary as the makefile dependencies seems to be broken for opcode.h and everquest.h)

  7. #22
    Registered User
    Join Date
    Mar 2002
    Posts
    42
    In fact, it would be beneficial for them in all ways (except perhaps a lot of distance calculations, which I expect would work out to less server overhead overall) to only transmit the info you need.
    Broken tracking? Have the server always update location info for whatever you're tracking. This would even fix tracking players which would be very good. Long wished they did that anyway. Or simply moving the message to come from serverside would also work.

  8. #23
    Registered User
    Join Date
    Feb 2003
    Posts
    90
    What are the chances of throwing all the opcodes into a config file so we can change them at run time rather than only being able to change them at design time?

  9. #24
    Registered User
    Join Date
    Dec 2001
    Posts
    849
    You know, that's a good Question.... There must be a reason it's not done that way, otherwise that would just be silly to not be doing opcodes that way....

    Anyone know?
    "What you've just said is one of the most insanely, idiotic things i've ever heard. At no point in your rambling, incoherant response were you even close to anything that could be considered a rational thought. Everyone in this room is now dumber for having listened to it. I award you NO points, and may god have mercy on your soul."

  10. #25
    Registered User
    Join Date
    Dec 2001
    Posts
    752
    Atm the opcodes are in an headerfile as #defines. That means that the compiler inserts the opcode in the compiled program as numbers. So it is much faster than using a variable.

    I have no clue if the time that is needed to look up an variable is too long, but it surely would slow down seq.
    -- Lord Crush

    Greater Faydark has to be cleaned from all Elves !

    This is a HOTKEY !!!

  11. #26
    Registered User
    Join Date
    Apr 2003
    Posts
    69
    since the opcodes are being used in packet.cpp, line 1852, in a case statement, you can't really put them in a config file unless you change a lot of things.

  12. #27
    Registered User
    Join Date
    Dec 2001
    Posts
    752
    Btw where does it make much difference - just change header-file and recompile
    -- Lord Crush

    Greater Faydark has to be cleaned from all Elves !

    This is a HOTKEY !!!

  13. #28
    Registered User
    Join Date
    Oct 2002
    Posts
    235
    You could alter ShowEQ to use "native" opcodes and put an .ini file that is used to build an index table that translates from the "wire" opcodes to native opcodes so the switch code is retained. If someone would like to do so, look at my post about native vs wire opcodes (it contains how to extract the table from the eqgame.exe.)

  14. #29
    Registered User
    Join Date
    Aug 2002
    Posts
    51

    not a bad idea (opcode lookup-table)

    Fester's idea would work. A switch statement typically builds a jump table where you look up the code location to go to based on the switched variable ... and one extra indirection wouldn't be bad.

    A similar idea would directly store function pointers into the opcode lookup table instead of a standardized index into a switch statement ... which might be faster, might be slower (if you pass a bunch of parameters instead of keeping things global, the function call would be expensive).

    I guess it's moot. Recompiling is not a big deal as there are usually other bugfixes/improvements as often as there are SOE patches.

    I suppose a dynamic opcode table would help people who are finding and testing new opcodes, though =)

  15. #30
    Registered User
    Join Date
    Oct 2002
    Posts
    56

    Opcode Statistics for Future Matches

    The idea of having the opcodes a form of an array of variables would allow for some 'self configuration' in the future. There are certain patterns in the opcodes and some opcodes appear much more often than others which should allow some of them to be identified by their time of occurance or correlation to known events or by the frequency of their appearance. If a simple subsitution is being made from one version of the code to another, the opcodes have been 'replaced' with new ones but they still have the same function. I would expect this is one of the techniques the developers use to indentify opcodes but probably by a manual technique or trial and error/ cause and effect.

    Placing the opcodes into an array of vars would provide the ability to change them without having to recompile the program. A 'best guess' attempt at matching opcodes to new ones could be somewhat automated by combinations of correlation of events - local client loots a corspe (opcode sent) -> client responds. This would require some interaction with the showeq local client but would allow more less skilled showeqers to investigate the data stream and offer observations.

    First step is opcode statistics by zone.... any suggestions on what peeps want to see as results?

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