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

Thread: New ZEMs

  1. #1
    Registered User
    Join Date
    Apr 2002
    Posts
    151

    New ZEMs

    I understand that since we only receive "1/330th" updates that we can't calculate the absolute ZEM values directly.

    Has anyone done any work to get approximate updated ZEM values for the PoP zones, Veksar, and other zones?

    I know *someone* has to have done a little digging into this. A lot of you are number crunchers who wouldn't be caught dead in a zone that wasn't maximizing your XP.

    KaL

  2. #2
    Registered User Mr. Suspicious's Avatar
    Join Date
    May 2002
    Posts
    667
    Saw some indications here and there in the past that ZEMS can be found in the active memory, no clue at which memory locations and/or if they are still kept clientside.
    Before asking anything read the pre-face section of http://www.smoothwall.org/download/p....9/doc.faq.pdf

    after you've read it, you know what to do next...




    "Stay alert! Trust noone! Keep your Lazers Handy! Have a nice day." -- Provided courtesy of the Computer. The Computer never lies.

  3. #3
    Registered User
    Join Date
    Sep 2002
    Posts
    231
    It is stored in active memory. Currently, it is a float value at memory location 006fd73c+0x1e8.

    If you're using windbg.exe, simply open up a memory dump or attach it to EQ and you will see it by typing "df 006fd73c+0x1e8 L 1" in the command window.


    Note: 0.75 is "No Experience Modifyer". 0.85 would be 10% bonus, 0.65 would be -10% against .....etc....

  4. #4
    Registered User
    Join Date
    Nov 2002
    Posts
    47
    Any chance someone knows the new PoP ZEM and could post it? I'm at work and KaL has made me curious... If not I'll just check it out when I get home.

  5. #5
    Registered User
    Join Date
    Apr 2002
    Posts
    151
    Outstanding, Amadeus. I'll have to start cataloging ZEMs now

    Thank you!

  6. #6
    Registered User
    Join Date
    Dec 2001
    Posts
    1,262
    The ZEM for PoS and PoV is 1.19.

    I agree with KaL.. great job Amadeus!

    --Jeeves
    "Only two things are infinite, the universe and human stupidity, and I'm not sure about the former." --Albert Einstein

  7. #7
    Registered User
    Join Date
    Sep 2002
    Posts
    231
    It's nothing ...if you guys lose the offset after a patch and can't find it..just send me a PM over at the MQ boards (I check that more frequently than here).

    Oh...and for the effort...I think most (if not all) of the LoY zones have a 10% modifier (0.85).

  8. #8
    Registered User
    Join Date
    Dec 2002
    Posts
    126
    Originally posted by Amadeus
    It's nothing ...
    So PoS and PoV do 'not' have a bonus or were you refering to the first post? Sorry.. i'm confused.

  9. #9
    Registered User
    Join Date
    Oct 2002
    Posts
    235

    PoS/PoV

    PoS/PoV (and all other PoP zones) used to be 1.45 ZEM.
    They are now 1.19 ZEM.

    Alfred, he means finding the location is "nothing" and not "the bonus".

    All in all this is good. Approx 56 percent more exp in a 6 person group, when you only lose 26 percent. That is a net gain of 30 percent.

  10. #10
    Registered User
    Join Date
    Apr 2002
    Posts
    151
    I checked these today.

    BoT, PoS, PoV, PoN, PoI, PoJ, PoD, CoD, PoTorment: 1.19

    HoH: 1.105

    Veksar, Ssra: 1.00

    Umbral Plains, Acrylia Caverns: 0.899

    Cazic Thule, Velketor's Labyrinth, Akheva Ruins, Sebilis, Howling Stones: 0.85

    Netherbian Lair, Grimling Forest, Skyfire: 0.80

    Of note:
    The Grey: 0.649
    LoIO: 0.60
    Last edited by KaL; 06-19-2003 at 09:57 AM.

  11. #11
    Registered User
    Join Date
    Apr 2002
    Posts
    151
    My next question is, of course, where is the new 'sweet spot'?

    It used to be (your level - 5) where the XP just about doubled from (your level - 6), and XP gains for mobs higher than that were marginal. This meant mobs at (your level - 5) were the best bang for your buck to kill.

    Is this still true, or did they make the sweet spot larger? Like say -10?

    If anyone has done any preliminary work on this, it would be appreciated.

    I know I get a little over a blue of aa at level 65 soloing golems in PoV after the patch.

  12. #12
    Registered User
    Join Date
    Dec 2001
    Posts
    118
    I don't think this can be determined until experience is working again.

    Maybe experience is stored at a location in memory also and can be checked for 100% accuracy instead of having to zone after each mob.

    Any insight, Ama?

  13. #13
    Registered User
    Join Date
    Apr 2002
    Posts
    151
    Good point.. would be good to find the exact XP on the mobs we kill. Even if you have to zone, you only need 1 per mob level if you're soloing to see what they give.

  14. #14
    Registered User
    Join Date
    Sep 2002
    Posts
    231
    No...experience is not stored in memory as a number, it is only stored as a x of 330 in the same way that the packet information is sent to SEQ.

    However, I can give you the location of AA exp as a value of x of 330 if you're interested...as I don't think that's a part of SEQ yet.

    For those interested...this is the entire CHARINFO struct as stored in active memory. I'm using a dll extension to read it and spout out information. ...I have changed personal information, of course.

    Code:
    0:010> dd 00760ff4 L 1
    00760ff4  059ff4f8
    0:010> !c:\games\macroquest-dev\mqext\release\mqext.pchar 059ff4f8
    
    Name = Amadeus (offset 0x2)
    Lastname =  (offset 0x42)
    Gender = 0 (offset 0x88)
    Race = 4 (offset 0x8c)
    Class = 6 (offset 0x90)
    Level = 65 (offset 0x98)
    Exp = 32 (offset 0x9c)
    PracticePoints = 33 (offset 0xa0)
    Mana = 4108 (offset 0xa4)
    BaseHP = 2131 (offset 0xa8)
    Stunned = 0 (offset 0xac)
    BaseSTR = 70 (offset 0xb0)
    BaseSTA = 85 (offset 0xb4)
    BaseCHA = 75 (offset 0xb8)
    BaseDEX = 80 (offset 0xbc)
    BaseINT = 75 (offset 0xc0)
    BaseAGI = 95 (offset 0xc4)
    BaseWIS = 105 (offset 0xc8)
    Face = 4 (offset 0xcc)
    EquipType = 13606448 (offset 0xd0)
    emptyforexpansion = 13606456 (offset 0xd8)
    EquipColor = 13606460 (offset 0xdc)
    Equipment = 13606492 (offset 0xfc)
    InventoryBagIDs = 13606580 (offset 0x154)
    languages = 13606616 (offset 0x178)
    Buff = 13607144 (offset 0x388)
    InventoryBag1 = 13607384 (offset 0x478)
    InventoryBag2 = 13607424 (offset 0x4a0)
    InventoryBag3 = 13607464 (offset 0x4c8)
    InventoryBag4 = 13607504 (offset 0x4f0)
    InventoryBag5 = 13607544 (offset 0x518)
    InventoryBag6 = 13607584 (offset 0x540)
    InventoryBag7 = 13607624 (offset 0x568)
    InventoryBag8 = 13607664 (offset 0x590)
    InventoryBag9 = 13607704 (offset 0x5b8)
    SpellBook = 13609184 (offset 0xb80)
    MemorizedSpells = 13611232 (offset 0x1380)
    y = -802.999634 (offset 0x13c4)
    x = 89.087608 (offset 0x13c8)
    z = 4.126000 (offset 0x13cc)
    heading = 166.426529 (offset 0x13d0)
    standstate = 100 (offset 0x13d4)
    Plat = 611 (offset 0x13d8)
    Gold = 14 (offset 0x13dc)
    Silver = 5 (offset 0x13e0)
    Copper = 0 (offset 0x13e4)
    BankPlat = 82531 (offset 0x13e8)
    BankGold = 8 (offset 0x13ec)
    BankSilver = 15 (offset 0x13f0)
    BankCopper = 26 (offset 0x13f4)
    Skill = 13611384 (offset 0x1418)
    UnknownFlag0x160c = 65280 [256 512 1024 2048 4096 8192 16384 32768 ] (Offset: 0x160c)
    UnknownFloat0x1610 = 5.000000 (offset 0x1610)
    UnknownFloat0x1614 = 3.000000 (offset 0x1614)
    UnknownFloat0x1618 = 2.500000 (offset 0x1618)
    UnknownFloat0x161c = 5.500000 (offset 0x161c)
    AutoSplit = 0 (offset 0x1668)
    UnknownFlag0x1688 = 106365 [1 4 8 16 32 64 256 512 1024 2048 4096 32768 65536 ] (Offset: 0x1688)
    UnknownFlag0x16a8 = 31 [1 2 4 8 16 ] (Offset: 0x16a8)
    UnknownFlag0x16b0 = 1612766537 [1 8 64 256 1024 2048 4096 16384 32768 2097152 536870912 1073741824 ] (Offset: 0x16b0)
    hungerlevel = 4778 (offset 0x16c0)
    thirstlevel = 4442 (offset 0x16c4)
    zoneId = 151 (offset 0x16dc)
    pSpawn = 94383936 (offset 0x16e0)
    Inventory = 13612100 (offset 0x16e4)
    Cursor = 94479632 (offset 0x175c)
    STR = 119 (offset 0x1764)
    STA = 164 (offset 0x1768)
    CHA = 88 (offset 0x176c)
    DEX = 118 (offset 0x1770)
    INT = 112 (offset 0x1774)
    AGI = 128 (offset 0x1778)
    WIS = 280 (offset 0x177c)
    UnknownData0x1780 = 368 (offset 0x1780)
    SaveMagic = 98 (offset 0x1784)
    SaveFire = 119 (offset 0x1788)
    SaveCold = 112 (offset 0x178c)
    SavePosion = 52 (offset 0x1790)
    SaveDisease = 56 (offset 0x1794)
    CurrWeight = 92 (offset 0x1798)
    UnknownData0x17a0 = 573 (offset 0x17a0)
    UnknownData0x17e0 = 257 (offset 0x17e0)
    ShortBuff = 13612356 (offset 0x17e4)
    UnknownData0x18d8 = 0 (offset 0x18d8)
    UnknownData0x1950 = 235 (offset 0x1950)
    UnknownData0x19a4 = 0 (offset 0x19a4)
    UnknownData0x19ec = 618 (offset 0x19ec)
    UnknownData0x1a5c = 100 (offset 0x1a5c)
    UnknownData0x1a6c = 100 (offset 0x1a6c)
    ZoneBoundId = 224 (offset 0x1be0)
    ZoneBoundX = -2076.250000 (offset 0x1bf4)
    ZoneBoundY = 1683.000000 (offset 0x1c08)
    ZoneBoundZ = -51.249001 (offset 0x1c1c)
    UnknownFloat0x1c20 = 9.000000 (offset 0x1c20)
    UnknownFloat0x1c24 = 9.000000 (offset 0x1c24)
    UnknownFloat0x1c28 = 9.000000 (offset 0x1c28)
    UnknownFloat0x1c2c = 9.000000 (offset 0x1c2c)
    UnknownFloat0x1c30 = -1.000000 (offset 0x1c30)
    GuildStatus = 65535 (offset 0x2a20)   // WRONG
    Diety = 215 (offset 0x2bc0)
    GuildID = 80 (offset 0x2bc4)
    UnknownFloat0x2bc8 = 0.013465 (offset 0x2bc8)
    UnknownFloat0x2bcc = 0.450664 (offset 0x2bcc)
    Anon = 2 (offset 0x2bd2)
    AAExp = 51 (offset 0x2da0)
    AAPoints = 0 (offset 0x2f50)
    UnknownFloat0x3284 = 0.427611 (offset 0x3284)
    Server = yourserver (offset 0x3908)
    Bank = 13621052 (offset 0x39dc)
    You'll notice that my AAExp value is 51 ..which means I'm at 51/330 percent to AA ding. AAPoints is the number of points unspent ....I don't think spent AAPoints is stored anywhere.

    Oh..and some of these like Bank, Buffs, etc.. won't make sense unless you have the c struct to look at for reference...

  15. #15
    Registered User
    Join Date
    May 2003
    Posts
    34
    Although all of this may be sequential in memory it isn't in the same order when it is sent from the server to the client. The raw exp value is sent when you zone and the client calculates the x/330 value. After that the server only tells the client to add ticks to the calculated value.

    The raw aaxp used to be sent to the client. It may still be, but I don't see it in the initial packet. I don't see that the x/330 value is being sent either, but I haven't investigated it too much.

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