|
|
 |
 |
 |
 |
|
 |
 |
|
 |
 |
|
 |
|
Development::Development Forum for development topics and for those interested in EQEMu development. (Not a support forum) |
 |
|
 |

12-13-2008, 06:33 AM
|
 |
Developer
|
|
Join Date: Aug 2006
Location: USA
Posts: 5,946
|
|
And right after the AckPacket and WorldClientReady, I get this new opcode 0x58FB, which I am not sure about either:
Code:
25686 [12.13. - 03:48:16] [WORLD__CLIENT_TRACE] [OpCode OP_AckPacket (0x4d38) Size=4]
25686 [12.13. - 03:48:16] [WORLD__CLIENT_TRACE] 0000: 00 00 00 00 - | ....
25686 [12.13. - 03:48:16] [WORLD__CLIENT_TRACE] trevadmin: Recevied EQApplicationPacket
25686 [12.13. - 03:48:16] [WORLD__CLIENT_TRACE] [OpCode OP_WorldClientReady (0x2ebd) Size=0]
25686 [12.13. - 03:48:16] Unable to convert EQ opcode 0x58fb to an Application opcode.
25686 [12.13. - 03:48:16] [WORLD__CLIENT_TRACE] trevadmin: Recevied EQApplicationPacket
25686 [12.13. - 03:48:16] [WORLD__CLIENT_TRACE] [OpCode OP_Unknown (0x58fb) Size=8]
25686 [12.13. - 03:48:16] [WORLD__CLIENT_TRACE] 0000: 49 02 00 00 60 9f 4d 00 - | I...`.M.
25686 [12.13. - 03:48:16] [WORLD__CLIENT_ERR] trevadmin: Received unknown EQApplicationPacket
25686 [12.13. - 03:48:16] [WORLD__CLIENT_ERR] [OpCode OP_Unknown (0x58fb) Size=8]
25686 [12.13. - 03:48:16] [WORLD__CLIENT_ERR] 0000: 49 02 00 00 60 9f 4d 00 - | I...`.M.
25686 [12.13. - 03:48:16] [NET__NET_ACKS] 192.168.1.101:4753: Sending ack with sequence 24
25686 [12.13. - 03:48:16] [NET__NET_ACKS] 192.168.1.101:4753: Set Last Ack Sent to 24
25686 [12.13. - 03:48:16] [NET__APP_TRACE] 192.168.1.101:4753: Pushing non-sequenced packet of length 2
25686 [12.13. - 03:48:16] [NET__NET_COMBINE] 192.168.1.101:4753: Starting combined packet with non-seq packet of len 2
25686 [12.13. - 03:48:16] [NET__NET_COMBINE] 192.168.1.101:4753: Final combined packet not full, len 2
25686 [12.13. - 03:48:18] [NET__NET_TRACE] 192.168.1.101:4753: Received Stats: 0 packets received, 0 packets sent, Deltas: local 14, (14 <- 22 -> 31) remote 31
25686 [12.13. - 03:48:18] [NET__APP_TRACE] 192.168.1.101:4753: Pushing non-sequenced packet of length 38
25686 [12.13. - 03:48:18] [NET__RATES] 192.168.1.101:4753: Adjusting data rate to thresh 47662, decay 3574 based on avg delta 22
25686 [12.13. - 03:48:18] [NET__NET_COMBINE] 192.168.1.101:4753: Starting combined packet with non-seq packet of len 38
25686 [12.13. - 03:48:18] [NET__NET_COMBINE] 192.168.1.101:4753: Final combined packet not full, len 38
25686 [12.13. - 03:48:24] [NET__NET_ACKS] 192.168.1.101:4753: Set Next Ack To Send to 25
25686 [12.13. - 03:48:24] [NET__APP_CREATE] 192.168.1.101:4753: Creating new application packet, length 10
25686 [12.13. - 03:48:24] [NET__APP_CREATE_HEX] 0000: fb 58 41 01 00 00 60 9f - 4d 00 | .XA...`.M.
25686 [12.13. - 03:48:24] [NET__NET_ACKS] 192.168.1.101:4753: Sending ack with sequence 25
25686 [12.13. - 03:48:24] [NET__NET_ACKS] 192.168.1.101:4753: Set Last Ack Sent to 25
25686 [12.13. - 03:48:24] [NET__APP_TRACE] 192.168.1.101:4753: Pushing non-sequenced packet of length 2
25686 [12.13. - 03:48:24] [NET__NET_COMBINE] 192.168.1.101:4753: Starting combined packet with non-seq packet of len 2
25686 [12.13. - 03:48:24] [NET__NET_COMBINE] 192.168.1.101:4753: Final combined packet not full, len 2
25686 [12.13. - 03:48:24] Unable to convert EQ opcode 0x58fb to an Application opcode.
25686 [12.13. - 03:48:24] [WORLD__CLIENT_TRACE] trevadmin: Recevied EQApplicationPacket
25686 [12.13. - 03:48:24] [WORLD__CLIENT_TRACE] [OpCode OP_Unknown (0x58fb) Size=8]
25686 [12.13. - 03:48:24] [WORLD__CLIENT_TRACE] 0000: 41 01 00 00 60 9f 4d 00 - | A...`.M.
25686 [12.13. - 03:48:24] [WORLD__CLIENT_ERR] trevadmin: Received unknown EQApplicationPacket
25686 [12.13. - 03:48:24] [WORLD__CLIENT_ERR] [OpCode OP_Unknown (0x58fb) Size=8]
25686 [12.13. - 03:48:24] [WORLD__CLIENT_ERR] 0000: 41 01 00 00 60 9f 4d 00 - | A...`.M.
Judging by what I see from Titanium clients, this doesn't exist. At least not in the order I have seen them in. It could be that it is an error from not getting anything back from the CRC checks though. Either way, these are all coming in while getting to the char select screen, which loads fine. I don't think they are related to the reason I can't get in game, but worth noting at least.
EDIT: After looking into it a bit more, this 3rd unknown opcode does show up when connecting with Titanium as well, only it uses 0x6A5F, which from what I can tell is the auto-AFK opcode. It is "unknown" in Titanium as well and doesn't cause problems, so it shouldn't be an issue at all for SoF. I am pretty sure we can at least ignore this particular one (0x58FB), since it appears to be AFK related.
Last edited by trevius; 12-13-2008 at 02:55 PM..
|
 |
|
 |
 |
|
 |

12-15-2008, 09:19 AM
|
 |
Developer
|
|
Join Date: Aug 2006
Location: USA
Posts: 5,946
|
|
I finally made a little more progress. I am 1 step closer to being able to get in game now lol. I have been trying to figure out the size of the playerprofile struct so that I could at least get the EQ Debug log to show me reaching the next step. After trying many other ways, I finally figured it out by looking at the IDA Assembly code and finding the error I was getting and then checking the HEX for that was causing the error to happen. I checked the HEX and it came out to be 5C18, which is 23576. I checked IDA for Titanium and the same code matched the PlayerProfile size for Titanium (19592). I did another compile with the new structure size and now I am getting this:
Code:
[Mon Dec 15 07:06:53 2008]01792:Zone Connect -- 0 -- Received MSG_ZONE_ADDRESS
[Mon Dec 15 07:06:53 2008]01793:Zone addr [192.168.1.102:20253] received...
[Mon Dec 15 07:06:53 2008]01794:ZONING
[Mon Dec 15 07:06:53 2008]01795:Networking: Connection Closed [0] with 0 pending bytes.
[Mon Dec 15 07:06:53 2008]01796:Networking: using port [2629].
[Mon Dec 15 07:06:54 2008]01797:Networking: Connection Established [1]
[Mon Dec 15 07:06:54 2008]01798:Connected to 192.168.1.102:20253...
[Mon Dec 15 07:06:54 2008]01799:Zone Connect -- 2 -- Sending MSG_EQ_ADDPLAYER
[Mon Dec 15 07:06:59 2008]01800:Zone Connect -- 3 -- Received MSG_SEND_PC
[Mon Dec 15 07:06:59 2008]01801:Zone Connect -- 4 -- Received MSG_EQ_ADDPLAYER
[Mon Dec 15 07:06:59 2008]01802:fatal error in main thread Code = c0000005 ADDR=0x004c0aa3
[Mon Dec 15 07:06:59 2008]01803:EAX=0000004b EBX=0cf3ab0f ECX=00000088 EDX=f9161180
[Mon Dec 15 07:06:59 2008]01804:ESI=f9161250 EDI=0cf3aa7e EBP=00000000 ESP=0012a378
[Mon Dec 15 07:06:59 2008]01805:Raw Stack
.....Then a bunch of other error logs
So, there is definitely some issues past that point, but it is a step in the right direction lol. Now to figure out what caused the crash... My first guess is that the problem is related to the items structure, since I know at least the following fields were added at the time of SoF release that weren't in Titanium:
heroic_agi
heroic_cha
heroic_dex
heroic_int
heroic_sta
heroic_str
heroic_wis
I also see these that aren't listed in my Items Table currently, but they may just be newly discovered Uknowns that already exist, but aren't labeled properly:
spelldmg
backstabdmg
clairvoyance
dsmitigation
healamt
I am not sure if that would cause a crash or not, but I guess I will try adding those and see what happens.
Not that it really means much to me, but this seems to be the part where those errors get generated if it isn't equal to whatever check is being done here:
Code:
.text:004C0CD3 loc_4C0CD3: ; CODE XREF: sub_4C0A50+5Cj
.text:004C0CD3 ; sub_4C0A50+78j ...
.text:004C0CD3 mov esi, [esp+38h+var_28] ; default
.text:004C0CD7 mov eax, [esp+38h+var_18]
.text:004C0CDB add esi, 10h
.text:004C0CDE dec eax
.text:004C0CDF mov [esp+38h+var_28], esi
.text:004C0CE3 mov [esp+38h+var_18], eax
.text:004C0CE7 jnz loc_4C0AA3
.text:004C0CED mov eax, [esp+38h+var_24]
.text:004C0CF1 pop edi
.text:004C0CF2 pop esi
.text:004C0CF3 pop ebp
.text:004C0CF4 pop ebx
.text:004C0CF5 add esp, 28h
.text:004C0CF8 retn
Last edited by trevius; 12-15-2008 at 06:15 PM..
|
 |
|
 |
 |
|
 |

12-15-2008, 08:07 PM
|
 |
Developer
|
|
Join Date: Aug 2006
Location: USA
Posts: 5,946
|
|
According to the script from 13th floor that dumps items, here:
http://eqitems.13th-floor.org/svn/sc...ump/fields.txt
It looks like the current list of item fields is in this order:
Code:
itemclass
name
lore
lorefile
idfile
id
weight
norent
nodrop
size
slots
price
icon
UNK013
UNK014
benefitflag
tradeskills
cr
dr
pr
mr
fr
svcorruption
astr
asta
aagi
adex
acha
aint
awis
hp
mana
endur
ac
classes
races
deity
skillmodvalue
UNK038
skillmodtype
banedmgrace
banedmgbody
banedmgraceamt
banedmgamt
magic
casttime_
reqlevel
reclevel
recskill
bardtype
bardvalue
light
delay
elemdmgtype
elemdmgamt
range
damage
color
itemtype
material
UNK060
UNK061
sellrate
combateffects
shielding
stunresist
strikethrough
extradmgskill
extradmgamt
spellshield
avoidance
accuracy
charmfileid
factionmod1
factionamt1
factionmod2
factionamt2
factionmod3
factionamt3
factionmod4
factionamt4
charmfile
augtype
augrestrict
augdistiller
augslot1type
augslot1visible
augslot1unk2
augslot2type
augslot2visible
augslot2unk2
augslot3type
augslot3visible
augslot3unk2
augslot4type
augslot4visible
augslot4unk2
augslot5type
augslot5visible
augslot5unk2
pointtype
ldontheme
ldonprice
UNK098
ldonsold
bagtype
bagslots
bagsize
bagwr
book
booktype
filename
loregroup
artifactflag
UNK109
favor
guildfavor
fvnodrop
dotshielding
attack
regen
manaregen
enduranceregen
haste
damageshield
UNK120
UNK121
attuneable
nopet
UNK124
potionbelt
potionbeltslots
stacksize
notransfer
UNK129
questitemflag
UNK131
UNK132
clickeffect
clicktype
clicklevel2
clicklevel
maxcharges
casttime
recastdelay
recasttype
clickunk5
clickname
clickunk7
proceffect
proctype
proclevel2
proclevel
procunk1
procunk2
procunk3
procunk4
procrate
procname
procunk7
worneffect
worntype
wornlevel2
wornlevel
wornunk1
wornunk2
wornunk3
wornunk4
wornunk5
wornname
wornunk7
focuseffect
focustype
focuslevel2
focuslevel
focusunk1
focusunk2
focusunk3
focusunk4
focusunk5
focusname
focusunk7
scrolleffect
scrolltype
scrolllevel2
scrolllevel
scrollunk1
scrollunk2
scrollunk3
scrollunk4
scrollunk5
scrollname
scrollunk7
UNK193
purity
dsmitigation
heroic_str
heroic_int
heroic_wis
heroic_agi
heroic_dex
heroic_sta
heroic_cha
healamt
spelldmg
clairvoyance
backstabdmg
evolvinglevel
verified
created
So, I guess all of the extra fields I posted in the previous post were actually new. I know the herioc stuff went in with the SoF release, so I just need to see if I can find in the patch notes when the others after healamt were added. Then, I should just be able to fill in the anniversary (using anniversary files for SoF still) items file either with these new fields, or maybe just set them all to 0 so that the correct number of fields are at least being sent. The heroic stats do sound cool and should add more variety for possible upgraded gear in the emulator. For anyone that doesn't know already, apparently they add more stats that can increase the cap of the particular stat it is adding to, so you can exceed the caps with the stats from them. That shouldn't be hard at all to code if we can get to that point.
|
 |
|
 |
 |
|
 |

12-16-2008, 12:21 AM
|
 |
Developer
|
|
Join Date: Aug 2006
Location: USA
Posts: 5,946
|
|
I spent most of the day working on this, but this should be the item field list order that is currently used on live according to 13th floor collects:
Code:
/* 000 */ //I(ItemClass) Leave this one off on purpose
/* 001 */ S(Name)
/* 002 */ S(Lore)
/* 003 */ S("")//lorefile - Newly Added - Field is Null
/* 003 */ S(IDFile)
/* 004 */ I(ID)
/* 005 */ I(Weight)
/* 006 */ I(NoRent)
/* 007 */ I(NoDrop)
/* 008 */ I(Size)
/* 009 */ I(Slots)
/* 010 */ I(Price)
/* 011 */ I(Icon)
/* 012 */ I(0)
/* 013 */ I(0)
/* 014 */ I(BenefitFlag)
/* 015 */ I(Tradeskills)
/* 016 */ I(CR)
/* 017 */ I(DR)
/* 018 */ I(PR)
/* 019 */ I(MR)
/* 020 */ I(FR)
/* 020 */ I(0)//svcorruption - Newly Added
/* 021 */ I(AStr)
/* 022 */ I(ASta)
/* 023 */ I(AAgi)
/* 024 */ I(ADex)
/* 025 */ I(ACha)
/* 026 */ I(AInt)
/* 027 */ I(AWis)
/* 028 */ I(HP)
/* 029 */ I(Mana)
/* 111 */ I(Endur) //endur - Relocated
/* 030 */ I(AC)
/* 052 */ I(Classes)//classes - Relocated
/* 053 */ I(Races)//races - Relocated
/* 031 */ I(Deity)
/* 032 */ I(SkillModValue)
/* 033 */ I(0)//UNK038 - Default is 0
/* 034 */ I(SkillModType)
/* 035 */ I(BaneDmgRace)
/* 037 */ I(BaneDmgBody)//banedmgbody - Relocated
/* 103 */ I(BaneDmgRaceAmt)//banedmgraceamt - Relocated
/* 036 */ I(BaneDmgAmt)//banedmgamt - Relocated
/* 038 */ I(Magic)
/* 039 */ I(CastTime_)
/* 040 */ I(ReqLevel)
/* 045 */ I(RecLevel)//reclevel - Relocated
/* 046 */ I(RecSkill)//recskill - Relocated
/* 041 */ I(BardType)
/* 042 */ I(BardValue)
/* 043 */ I(Light)
/* 044 */ I(Delay)
/* 047 */ I(ElemDmgType)
/* 048 */ I(ElemDmgAmt)
/* 049 */ I(Range)
/* 050 */ I(Damage)
/* 051 */ I(Color)
/* 056 */ I(ItemType)
/* 057 */ I(Material)
/* 054 */ I(0)//UNK060 - Default is 0
/* 054 */ I(0)//UNK061 - Default is 0
/* 058 */ F(SellRate)
/* 063 */ I(CombatEffects)
/* 064 */ I(Shielding)
/* 065 */ I(StunResist)
/* 066 */ I(StrikeThrough)
/* 067 */ I(ExtraDmgSkill)
/* 068 */ I(ExtraDmgAmt)
/* 069 */ I(SpellShield)
/* 070 */ I(Avoidance)
/* 071 */ I(Accuracy)
/* 072 */ I(CharmFileID)
/* 073 */ I(FactionMod1)//Swapped these so Faction Amt comes after each Faction Mod
/* 077 */ I(FactionAmt1)//Swapped these so Faction Amt comes after each Faction Mod
/* 074 */ I(FactionMod2)//Swapped these so Faction Amt comes after each Faction Mod
/* 078 */ I(FactionAmt2)//Swapped these so Faction Amt comes after each Faction Mod
/* 075 */ I(FactionMod3)//Swapped these so Faction Amt comes after each Faction Mod
/* 079 */ I(FactionAmt3)//Swapped these so Faction Amt comes after each Faction Mod
/* 076 */ I(FactionMod4)//Swapped these so Faction Amt comes after each Faction Mod
/* 080 */ I(FactionAmt4)//Swapped these so Faction Amt comes after each Faction Mod
/* 081 */ S(CharmFile)
/* 082 */ I(AugType)
/* 104 */ I(AugRestrict)//augrestrict - Relocated
/* 122 */ I(AugDistiller)//augdistiller - Relocated
/* 083 */ I(AugSlotType[0])
/* 084 */ I(AugSlotUnk[0])//augslot1visible - Default 1
/* 084 */ I(0)//augslot1unk2 - Newly Added - Default 0
/* 085 */ I(AugSlotType[1])
/* 086 */ I(AugSlotUnk[1])
/* 084 */ I(0)//augslot2unk2 - Newly Added
/* 087 */ I(AugSlotType[2])
/* 088 */ I(AugSlotUnk[2])
/* 084 */ I(0)//augslot3unk2 - Newly Added
/* 089 */ I(AugSlotType[3])
/* 090 */ I(AugSlotUnk[3])
/* 084 */ I(0)//augslot4unk2 - Newly Added
/* 091 */ I(AugSlotType[4])
/* 092 */ I(AugSlotUnk[4])
/* 084 */ I(0)//augslot5unk2 - Newly Added
/* 128 */ I(PointType)//pointtype - Relocated
/* 093 */ I(LDoNTheme)
/* 094 */ I(LDoNPrice)
/* 084 */ I(70)//UNK098 - Newly Added - Default 70, but some are set to 0
/* 095 */ I(LDoNSold)
/* 096 */ I(BagType)
/* 097 */ I(BagSlots)
/* 098 */ I(BagSize)
/* 099 */ I(BagWR)
/* 100 */ I(Book)
/* 101 */ I(BookType)
/* 102 */ S(Filename)
/* 105 */ I(LoreGroup)
/* 107 */ I(ArtifactFlag)
/* 106 */ I(PendingLoreFlag)//UNK109 - Default 0, but a few are 1
/* 109 */ I(Favor)
/* 121 */ I(GuildFavor)//guildfavor - Relocated
/* 110 */ I(FVNoDrop)
/* 112 */ I(DotShielding)
/* 113 */ I(Attack)
/* 114 */ I(Regen)
/* 115 */ I(ManaRegen)
/* 116 */ I(EnduranceRegen)
/* 117 */ I(Haste)
/* 118 */ I(DamageShield)
/* 123 */ I(-1) //UNK120 - Default is -1
/* 124 */ I(0) //UNK121 - Default is 0
/* 125 */ I(Attuneable)
/* 126 */ I(NoPet)
/* 127 */ I(0) //UNK124 - Default 0, but a few are 1
/* 129 */ I(PotionBelt)
/* 130 */ I(0) //potionbeltslots - Default 0, but a few are 1
/* 131 */ I(StackSize)
/* 132 */ I(NoTransfer)
/* 133 */ I(Stackable)//UNK129 - Default is 0, but some are much higher
/* 133 */ I(0)//questitemflag - Default is 0 (off), flag on = 1
/* 133 */ I(0)//UNK131 - Default is 0, but there is an item set to 1
/* 133 */ I(0)//UNK132 - Default is 0
/* 134 */ I(Click.Effect)
/* 135 */ I(Click.Type)
/* 136 */ I(Click.Level2)
/* 137 */ I(Click.Level)
/* 055 */ I(MaxCharges)//maxcharges - Relocated
/* 060 */ I(CastTime_)//casttime - Relocated - Note Duplicate Entries for CastTime_ and none for CastTime
/* 119 */ I(RecastDelay)//recastdelay - Relocated
/* 120 */ I(RecastType)//recasttype - Relocated
/* 133 */ I(0)//clickunk5 - Newly Added - Default is 0
/* 138 */ S("")//clickname - Newly Added - Default is Null
/* 133 */ I(-1)//clickunk7 - Newly Added - Default is -1, but some set to 0 and some much higher
/* 139 */ I(Proc.Effect)
/* 140 */ I(Proc.Type)
/* 141 */ I(Proc.Level2)
/* 142 */ I(Proc.Level)
/* 133 */ I(0)//procunk1 - Newly Added - Default is 0, but some set to -1 and 1
/* 133 */ I(0)//procunk2 - Newly Added - Default is 0
/* 133 */ I(0)//procunk3 - Newly Added - Default is 0
/* 133 */ I(0)//procunk4 - Newly Added - Default is 0
/* 062 */ I(ProcRate)procrate - Relocated
/* 138 */ S("")//procname - Newly Added - Default is Null
/* 133 */ I(-1)//procunk7 - Newly Added - Default is -1, but some set to 0
/* 144 */ I(Worn.Effect)
/* 145 */ I(Worn.Type)
/* 146 */ I(Worn.Level2)
/* 147 */ I(Worn.Level)
/* 133 */ I(0)//wornunk1 - Newly Added - Default is 0
/* 133 */ I(0)//wornunk2 - Newly Added - Default is 0
/* 133 */ I(0)//wornunk3 - Newly Added - Default is 0
/* 133 */ I(0)//wornunk4 - Newly Added - Default is 0
/* 133 */ I(0)//wornunk5 - Newly Added - Default is 0
/* 138 */ S("")//wornname - Newly Added - Default is Null
/* 133 */ I(-1)//wornunk7 - Newly Added - Default is -1, but some set to 0
/* 149 */ I(Focus.Effect)
/* 150 */ I(Focus.Type)
/* 151 */ I(Focus.Level2)
/* 152 */ I(Focus.Level)
/* 133 */ I(0)//focusunk1 - Newly Added - Default is 0
/* 133 */ I(0)//focusunk2 - Newly Added - Default is 0
/* 133 */ I(0)//focusunk3 - Newly Added - Default is 0
/* 133 */ I(0)//focusunk4 - Newly Added - Default is 0
/* 133 */ I(0)//focusunk5 - Newly Added - Default is 0
/* 138 */ S("")//focusname - Newly Added - Default is Null
/* 133 */ I(-1)//focusunk7 - Newly Added - Default is -1, but some set to 0
/* 154 */ I(Scroll.Effect)
/* 155 */ I(Scroll.Type)
/* 156 */ I(Scroll.Level2)
/* 157 */ I(Scroll.Level)scrollunk1
/* 133 */ I(0)//scrollunk2 - Newly Added - Default is 0
/* 133 */ I(0)//scrollunk3 - Newly Added - Default is 0
/* 133 */ I(0)//scrollunk4 - Newly Added - Default is 0
/* 133 */ I(0)//scrollunk5 - Newly Added - Default is 0
/* 138 */ S("")//scrollname - Newly Added - Default is Null
/* 133 */ I(-1)//scrollunk7 - Newly Added - Default is -1, but some set to 0
/* 158 */ I(0)//UNK193 - Default is 0
/* 133 */ I(0)//purity - Newly Added - Default is 0, but some go up to 75
/* 133 */ I(0)//dsmitigation - Newly Added - Default is 0, but some are up to 2
/* 133 */ I(0)//heroic_str - Newly Added - Default is 0
/* 133 */ I(0)//heroic_int - Newly Added - Default is 0
/* 133 */ I(0)//heroic_wis - Newly Added - Default is 0
/* 133 */ I(0)//heroic_agi - Newly Added - Default is 0
/* 133 */ I(0)//heroic_dex - Newly Added - Default is 0
/* 133 */ I(0)//heroic_sta - Newly Added - Default is 0
/* 133 */ I(0)//heroic_cha - Newly Added - Default is 0
/* 133 */ I(0)//healamt - Newly Added - Default is 0, but some are up to 9
/* 133 */ I(0)//spelldmg - Newly Added - Default is 0, but some are up to 9
/* 133 */ I(0)//clairvoyance - Newly Added - Default is 0, but some are up to 10
/* 133 */ I(0)//backstabdmg - Newly Added - Default is 0, but some are up to 65
/* 133 */ I(0)//evolvinglevel - Newly Added - Default is 0, but some are up to 7
//This doesn't appear to be used /* 102 */ S(verified)//verified
//This doesn't appear to be used /* 102 */ S(serialized)//created
//Unsure where this goes right now (or if it is even used) /* 108 */ I(SummonedFlag)
#undef I
#undef C
#undef S
#undef F
I will try this as soon as I get home tonight. I am guessing that the following fields were added after SoF, so I will comment them out for now and try adding them 1 at a time until it works (hopefully):
Code:
/* 133 */ I(0)//healamt - Newly Added - Default is 0, but some are up to 9
/* 133 */ I(0)//spelldmg - Newly Added - Default is 0, but some are up to 9
/* 133 */ I(0)//clairvoyance - Newly Added - Default is 0, but some are up to 10
/* 133 */ I(0)//backstabdmg - Newly Added - Default is 0, but some are up to 65
/* 133 */ I(0)//evolvinglevel - Newly Added - Default is 0, but some are up to 7
Note that the item field numbers are not correct, but once I have the list working, I will renumber it all manually.
Also, the only thing I am not quite sure about here is the use of quotes on ints and nulls. Does anyone know if I(0) is the same as I("0"), and if S("") is the same as NULL, or if there is a better way to put NULL there? Maybe something like S(NULL)?
|
 |
|
 |

12-16-2008, 01:17 AM
|
Hill Giant
|
|
Join Date: Feb 2006
Posts: 179
|
|
Have you checked Macroquest sources from around that time? I would assume most of the structs are in there.
|

12-16-2008, 03:25 AM
|
 |
Developer
|
|
Join Date: Aug 2006
Location: USA
Posts: 5,946
|
|
I already looked into it a little, but Macroquest reads directly from memory and doesn't do any kind of packet sniffing as far as I can tell. So, it uses offsets and such, which might possibly be useful for figuring out something, but I don't really know what to do with them personally.
|

12-16-2008, 04:48 AM
|
Hill Giant
|
|
Join Date: Feb 2006
Posts: 179
|
|
Just thinking that by comparing MQ Titanium/Emus structs to MQs SoF structs would make it far easier to figure out what new fields need to be added to Emus structs that need to be send to the SoF client.
Im thinking that say a items struct is sent to the client in the same formate its readable from memory. I dont know if this is true, but if it is, looking at MQs SoFs structs should help a lot.
|

12-16-2008, 03:49 PM
|
Hill Giant
|
|
Join Date: Sep 2007
Posts: 117
|
|
Wow, way above my skill level so all I can do is cheer you on.
Just one thought though, perhaps the correct fields could be found by looking at stats on items that were released with SoF.
I think clairvoyance and healamt were on those items but they could have been added later.
|
Thread Tools |
|
Display Modes |
Hybrid Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -4. The time now is 07:41 AM.
|
|
 |
|
 |
|
|
|
 |
|
 |
|
 |