|
|
 |
 |
 |
 |
|
 |
 |
|
 |
 |
|
 |
|
Development::Bug Reports Post detailed bug reports and what you would like to see next in the emu here. |

07-18-2008, 06:15 AM
|
Developer
|
|
Join Date: Feb 2004
Location: UK
Posts: 1,540
|
|
I took a quick look at this and my guess is that the main problem is the OP_Charm opcode for Titanium is unknown (set to 0x0000 in patch_Titanium_conf).
This would be the opcode that the server sends to clients to inform them that an existing spawn is now a pet.
There is a value for this opcode in patch_6.2.conf, so it may work on that client (I'm at work and can't test it).
|

07-21-2008, 12:12 AM
|
Hill Giant
|
|
Join Date: Feb 2006
Posts: 179
|
|
Wouldnt the Titanium and 6.2 share the same op code since this is a function long time in the game or did they completely redo the ops at some point so their no commonality.
Basicly, if most op codes are common between the two clients, could ya try copying the 6.2 op code to the Titanium one?
|

07-21-2008, 12:14 AM
|
 |
The PEQ Dude
|
|
Join Date: Apr 2003
Location: -
Posts: 1,988
|
|
Opcodes change every time the client changes, so no they aren't the same.
|

07-21-2008, 01:16 AM
|
Hill Giant
|
|
Join Date: Feb 2006
Posts: 179
|
|
Quote:
Originally Posted by cavedude
Opcodes change every time the client changes, so no they aren't the same.
|
Damn, thats lame.
Well since new people who arrive in the zone know that its a charmed mob, couldnt this be kludged to work by respawning the mob charmed and when charm breaks or forcing some sort of resend of that mobs info to people in the zone when its state changes like when you hand a pet a weapon, etc?
I guess this isnt a killer issue. Just something thats been around a while and was wondering if anyone had bothered to look into it.
|

07-21-2008, 01:19 PM
|
 |
The PEQ Dude
|
|
Join Date: Apr 2003
Location: -
Posts: 1,988
|
|
Quote:
Originally Posted by MNWatchdog
Damn, thats lame.
|
Aye, and a royal pain in the ass, too.
I believe KLS was once long ago working on a workaround for this where the opcode wasn't needed. I think it was along the lines of once a NPC is charmed, the server was forced to send the pet window packet. I have the code archived somewhere, I'll see if I can find it (unless you still have it, KLS) Though, I was never able to get it working which I fully admit may have been an error on part part during merging.
|

07-21-2008, 02:40 PM
|
Administrator
|
|
Join Date: Sep 2006
Posts: 1,348
|
|
Can work around not having the op by sending a despawn packet followed by a new spawn packet with the pet data set. It's inefficient but it gets the job done without having the opcode.
|

07-22-2008, 12:04 AM
|
Hill Giant
|
|
Join Date: Feb 2006
Posts: 179
|
|
How does the server send the update that Ive handed my pet a weapon to everyone?
Could this be done a simular way?
If you can do the respawn idea so that one doesnt lose target when charm breaks, thats quite workable. Right now, Ill break charm early to recharm it and have a melee pull agro off me.
If we lose the target when the charm breaks, it certainly can add a extra undesirable thrill. :p
|

07-23-2008, 02:41 PM
|
Developer
|
|
Join Date: Feb 2004
Location: UK
Posts: 1,540
|
|
Quote:
Originally Posted by Derision
There is a value for this opcode in patch_6.2.conf, so it may work on that client
|
I tried this on the 6.2 client the other day, and the pet window didn't come up when I charmed a mob.
I just found a 6.2 packet collect in the PEQ logs with an example of charm. It would appear the 6.2 opcode for OP_Charm is 0x10a1, not 0xdff as specified in patch_6.2.conf. This works for 6.2 only, not Titanium, so if anyone is still using 6.2, in patch_6.2.conf, change:
to:
Unfortunately it would appear packet collects from the Titanium era client are very rare, at least in the PEQ repository :(
|

07-23-2008, 04:54 PM
|
 |
The PEQ Dude
|
|
Join Date: Apr 2003
Location: -
Posts: 1,988
|
|
Quote:
Originally Posted by Derision
Unfortunately it would appear packet collects from the Titanium era client are very rare, at least in the PEQ repository :(
|
That's because the Titanium client never actually existed on Live, by the time it shipped and hit stores several patches had already occurred on Live. Where as since 0.6.0 was a Live patch for a bit of time, we have tons of logs from it.
|

07-23-2008, 05:43 PM
|
 |
Developer
|
|
Join Date: Aug 2006
Location: USA
Posts: 5,946
|
|
Oh, I thought Titanium was the only full package that actually did exist on live at some point. And that was why Titanium was able to be used while previous packs weren't. Which is also why the previous versions of the emu required actual live patches to work.
|
 |
|
 |

07-24-2008, 04:10 AM
|
Developer
|
|
Join Date: Feb 2004
Location: UK
Posts: 1,540
|
|
I'm feeling rather proud of myself this morning, I found the OP_Charm opcode for Titanium.
I read the Wiki pages that Trevius posted links to a couple of weeks back about using IDA to Disassemble the client
and find Opcodes.
E.g.: http://www.eqemulator.net/wiki/wikka...DevAsmRoutines
I don't know x86 assembler, however I have programmed in 6502 and IBM Mainframe assembly in years gone by, but I
still thought that finding opcodes through disassembly was 'out of my league'.
Well, I downloaded the free version of IDA, and disassembled the 6.2 client. Armed with the 6.2 Opcode, and with the
pointers to the dispatch routines and general methodology outlined in the wiki, I found the Charm routine in the 6.2
client.
I then disassembled the Titanium client and tried to find the same routine there, which I did. I then traced this back
up through the call tree and voila, for Titanium, OP_Charm=0x12e5. Just change this in your patch_Titanium.conf on the
server and restart it.
|
 |
|
 |

07-24-2008, 06:34 AM
|
Hill Giant
|
|
Join Date: Feb 2006
Posts: 179
|
|
Good job fellow old coder. Although I got out of programming some 20 years ago, I too did a fair amount of 6502 on PETs, C64s, VIC 20s of all things. Also, Z80 on my TRS-80
|

07-24-2008, 06:39 AM
|
Developer
|
|
Join Date: Feb 2004
Location: UK
Posts: 1,540
|
|
Although with this opcode, the pet window comes up and you can control the pet with it, I didn't see the pet's health bar in other group members group window. I'm guessing the code just needs altering to send the OP_Charm packet to all group members.
|

07-24-2008, 07:26 AM
|
AX Classic Developer
|
|
Join Date: May 2006
Location: filler
Posts: 2,049
|
|
Quote:
Originally Posted by Derision
I'm feeling rather proud of myself this morning, I found the OP_Charm opcode for Titanium.
|
Only this morning? Hell, you're the main reason why I keep coming back to these forums! You always have a very useful fix for all eras - since you like to fix stuff that started back in the older days, it then benefits the classic people and the "live pursuants', or anyone else for that matter.
When I start my daily 'fiddle' with EqEmu , first thing that comes to mind is, "I wonder if Derision has anything new? I think I'll check the forums ..."
If I were still giving out ranks, I would have had to find a new rank for you.
Thank you for the fix!
|

07-24-2008, 11:43 AM
|
Dragon
|
|
Join Date: May 2006
Location: Cincinnati, OH
Posts: 689
|
|
That is damned impressive. I've seen so many things on here dismissed as not being feasible, and I'm always so proud to see someone find a way to work it. Fantastic work!
|
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 01:03 PM.
|
|
 |
|
 |
|
|
|
 |
|
 |
|
 |