Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Development

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

Reply
 
Thread Tools Display Modes
  #31  
Old 02-16-2012, 06:47 PM
BooPlumb
Fire Beetle
 
Join Date: Aug 2011
Posts: 13
Default

Quote:
Originally Posted by Caryatis View Post
Got to say, its pretty fun arguing with you Noport since you understand nothing, its fucking hilarious to see where you take things lol.



Good for you, the rest of us like to think of other people. What good does it do the EQEmu community, since nobody else is stupid enough to waste all that time saving every build of the client for 7 years?

Either way, I've probably ragged on you enough and given that you translate english worse than a free online translator, there is 0 chance of you understanding anything. Given your attitude, I doubt you have any worries about ever contributing more to this community than I did so keep telling yourself you are awesome at VS because nobody else is saying that lol.
What I find really fucking hilarious is you to come into a thread about VoA which noport is doing something with whatever it is and constantly ride his ass everywhere he goes like some pimple he can't get rid of. You sir are the definition of a troll and should shut the fuck up or get your thumb out of your ass and help contribute some useful information.

"But blah blah this blah blah that, everyone is wrong but me"

Whatever you may say, he seems passionate about getting whatever he is doing to work. So sit back, shut the fuck up and just watch and see where it goes, or help out. Maybe it won't go anywhere, but in all actuality it COULD go somewhere. So what, he may be wasting his time on this over something else. Luckily that's not for you to decide.
Reply With Quote
  #32  
Old 02-16-2012, 07:00 PM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

Get back on subject please.

I realize noport has some weird fascination with clients that become outdated quickly. I also realize he doesn't really speak english, but when I have to come in threads to where people outright call him stupid though it's not okay.
Reply With Quote
  #33  
Old 02-17-2012, 05:49 AM
Noport
Opcode Ninja
 
Join Date: Mar 2009
Location: San francisco
Posts: 426
Default

trevius I don't known how to tell you where correct i had my opcode in the wrong place i didn't want to listen to you because i thought i was right. I wasn't now i have to make new opcode notes 0/8 Chararters
I'm very sorry and i'll take it like a man and suck it up i apologize for getting mad at you. This was a great learning experince for me lesson learned from my mistake.
Reply With Quote
  #34  
Old 02-17-2012, 09:19 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

My Post in English after being translated to Chinese and then back to English (using Google Translator):

noport,

I know your intentions are good, I can tell you always try to help people. I have no problem with your attitude, there is no reason to apologize, I did.

The only problem I am with you, I have a hard time understanding what you want to say almost every time you do post. In addition, I do not know that you understand that you are not completely answer. I know that English is not your primary language, I believe it is very difficult to express in their own language correctly, you are still learning. It is particularly complex, because you want to convey the information is very technical, I think the translation is not clear, because it may give you seem to. To all English-speaking people (not just me), it is difficult to understand what you posted about.

I hope this post does not offend you, because this is not the intention. I just tried to explain that people have a difficult time, you're talking about.

A recent example is that in this thread:
http://www.eqemulator.org/forums/sho...253#post207253

Where you set up an operation code to solve the script / source code is not related to the machine code was to try. You did not even say which client operation code should be tried. I do not need a direct response to this case one of your posts. I just give one thing, I makes no sense to most recent example, perhaps it's significance. Almost all the jobs you do is very difficult for me to understand.

Because it is, I still do not know you have been to do as the "Voice of America client compatibility, I have seen that your information is not consistent, as far as possible I can understand, for example, you say you have my server play on the Voice of America client, then a few posts above, you say you have the UF client eqgame.exe If this is the case, then you are actually playing We believe that the UF client, regardless of all of your other files Voice of America or not.

I have seen the only thing you the refernce update source code is the opcode itself. Although the opcode is important, they are actually an easy thing to do we do now, especially if we have the opportunity to get that we are for customers EQLive collection efforts. May be the hardest part of a new client work is the structure of the packet, I can not think of any I've seen you refer to their time. In order to allow you to use the Voice of America client to log on to EQEmu complete, you will certainly need to adjust multiple data packet structure, encoding / decoding. Collected again from EQLive to make this process easier than trying to get an old client work, we do not have access to these packets to identify the structure (for example, when I started the special forces of the client placed in the first place).

I'm sure I could probably get the Voice of America client to log on to perhaps an hour or in the character selection screen. As far as I can tell you, this is how far you have used from the Voice of America eqgame.exe can get. The most difficult part is to get all the way in the game, but the use of ridicule hot work has been completed, it may not be too hard, working too hard. After that, it will take a very long time to test each system and see what is working and what is not, and then fix everything opcode and packet structure, not the right to work. This is why I do not want to start Live / Voice of America customers until we have things will not change the main reason. Once the great work of the customers, because in hour t, on-site repair and if we want people to be able to use a fully patched client, we will start updating again.

Do not make me wrong, although I think this is a great attempt, a new customer for EQEmu. I was the beginning of SOF placed in the first EQEmu past titanium. If not, we can almost certainly still be able to use the titanium today. I do not know anything about the operation code or packet structure, my first time can be, but I learned a lot, Denisov, superoxide dismutase (SOD), UF is now quite a lot of other developers such as Kowloon south help laughing at the (main). I live peristent, and kept working until I have real results, other developers can see the upgrade EQEmu past the actual potential of the titanium. This is basically how do I become a part of the development team in the first place.

Therefore, for any progress can be made to new customers for EQEmu. I just do not want to "chase" them to do so, this will become a full-time work, to maintain EQEmu latest frequent changes. You might think that DEVS is too lazy or busy work in new customers, but is not the case. Yes, we are busy and may be lazy, but a new customer came along, there is a reliable source legally get it, it will not be repaired like Live monthly, and then we will begin to update it EQEmu (or at least I know).

I definitely do not want anyone in any way work in EQEmu, detur. If you can submit the changes, you can get the Voice of America is working perfectly, then I believe we can add it to the source. If you are not willing to share your changes that you, as well. However, if you do not intend to share your changes, then I do not know why you would bother them to publish or find help our development staff and community to make it work here.

Again, I mean any offense without this position. I just want to you and society, why EQEmu on DEVS work is not yet on the Voice of America customer side must be clear. However, I almost want to start working, so I can compare my results so far have been provided. I also hope it is clear, it is difficult to understand your position, even though they may make perfect sense to you.


My original Post in Chinese after being translated from English (using Google Translator):
noport,

我知道你的意图是好的,我可以告诉你总是试图帮助人们。我与你的态度有没有问题,没有理由你道 歉,我什么。

我与你的唯一的问题是,我有一个很难理解它是什么你想说的几乎每一次你做什么职位。另外,我不知道你明白你 是不是完全的答复。我知道英语不是你的主要语言,我相信这是很难正确表达自己的语言,你还在学习。它特别复 杂,因为你想传达的信息是非常技术性的,我觉得翻译不清晰的信息,因为它可能给你似乎。向所有讲英语的人( 不只是我),这是很难理解你所张贴有关。

我希望这个职位没有得罪你,因为这是不是我们的原意。我只是试图解释说,人有困难的时间后,你 在说什么。

最近的一个例子是,你在这个线程后:
http://www.eqemulator.org/forums/sho...253#post207253

在那里,你建议设置一个操作码来解决脚本/源代码的问题是不相关的机器码在有人尝试。你还甚至没有说哪个客户端,操作码是应该受到审判。我不需要直接 响应这个例子您的文章之一。我只是给一个东西,我是没有意义的,最近的例子时,也许它的意义。几乎所有你做 的职位是我很难了解。

因为它是,我仍然不知道你一直在为“美国之音客户端兼容性做的事情。我已经看到你的信息是不是一致的,尽量 我可以理解。例如,你说你有我的服务器上播放美国之音客户端,那么上面这几个职位,你说你提出的用友客户端 eqgame.exe。如果是这样的话,那么你实际上是玩我们认为用友客户端,无论你的所有其他文件美国之 音或不。

我曾经见过你refernce更新源代码的唯一的事情是操作码本身。虽然操作码是重要的,他们实际上是一个 容易的事我们现在要做的,尤其是如果我们有机会得到我们正在努力为客户EQLive收集。可能得到一个新的 客户端工作中最难的部分是数据包的结构,我想不出任何我见过你引用它们的时间。为了让您能够使用美国之音客 户端登录到EQEmu完全,你肯定会需要调整多个数据包结构,编码/解码。再次收集,从EQLive使这个过程更容易比试图让一个旧的客户端工作的地方,我们并没有对这些数据 包的访问,找出结构(例如,当我开始对特种部队的客户端工作摆在首位) 。

我敢肯定,我大概可以得到美国之音客户端登录到也许一个小时或工作中的字符选择屏幕。至于我可以告诉大家, 这是多远,你已经使用从美国之音eqgame.exe,而能够得到。最困难的部分是能够得到所有的方式在游 戏中,但使用的嘲笑热已经完成的工作,它可能不会过于辛苦,工作压力太大。之后,它会花费很长的时间来测试 每一个系统,并看到什么是工作的,哪些不是,然后修复操作码和数据包结构的每一件事,不工作的权利。这是我 为什么不想要启动的Live /美国之音客户的工作,直到我们有东西是不会改变的主要原因。因为一旦把伟大的工作得到客户,因为我们在小时 吨,现场将修补和如果我们希望人们能够使用一个完全补丁的客户,我们便开始更新一遍。

不要让我错了,虽然我认为这是伟大的尝试,有新客户为EQEmu。我是一开始SOF工作摆在首位获得EQE mu过去钛。如果不,我们几乎可以肯定仍然可以使用钛今天。我不知道任何有关操作码或包结构,当我第一次开 始就可以了,但我学到了很多东西,索夫,超氧化物歧化酶(SOD),用友现在相当多的与其他开发商如九龙南 的帮助下,嘲笑(主要)。我住peristent,并不停地工作,直到我有真正的结果,其他开发者可以看到 升级EQEmu过去钛的实际潜力。这基本上是我如何成为摆在首位的开发团队的一部分。

因此,我对任何可以向新客户为EQEmu方面所取得的进展。我只是不希望“追”,他们这样做,这将成为一个 全职工作,保持EQEmu最新的频繁变动。你可能会认为DEVS是太懒惰或忙碌的工作在新的客户,但情况并 非如此。是的,我们都很忙,可能懒惰,但如果一个新的客户来到沿,有可靠的来源合法得到它,它不会像Liv e每月进行修补,然后我们将开始更新它EQEmu (或至少我知道)。

我绝对不希望任何人以任何方式在EQEmu工作detur。如果你能提交的变化,可以得到美国之音工作完美 ,那么我相信我们可以得到它添加到源。如果你是不是愿意分享你的变化,那是你的,以及。但是,如果你不打算 分享您的更改,然后我不知道你为什么会打扰他们在这里发布或寻找帮助我们的开发人员和社区,使 其工作。

再次,我的意思是没有这个职位的任何罪行。我只是想向你和社会,为什么EQEmu DEVS工作目前还没有对美国之音客户端要明确。不过,我几乎要开始工作,就这样我可以比较一下我的结果你 迄今已提供。我也希望它是明确的,这是很难理解你的职位,即使他们可能给你作出完美的感。


My original Post in English before any translation (using Google Translator):

Noport,

I know that your intentions are good, and I can tell that you are always trying to help people. I have no problems with your attitude and there is no reason for you to apologise to me for anything.

My only problem with you is that I have a very hard time understanding what it is you are trying to say almost every time you make a post about anything. Also, I am not sure you understand everything you are reply to either completely. I know English isn't your primary language and I am sure it is hard to express yourself properly in a language that you are still learning. It is especially complicated because you are trying to convey information that is very technical, and I think the translation is not making your information as clear as it may seem to you. To all English speaking people (not just me), it is hard to understand what you are posting about.

I hope that this post does not offend you, as that is not the intention. I am simply trying to explain that people have a hard time following what you are saying.

One recent example is your post in this thread:
http://www.eqemulator.org/forums/sho...253#post207253

There, you advised someone to try setting an opcode to resolve a scripting/source code issue that is not related to opcodes at all. You also did not even say which client that opcode was supposed to be tried for. I don't need a response directly about this example of one of your posts. I am just giving one recent example of something that makes no sense to me, when maybe it does make sense to you. Almost all posts you make are this hard for me to understand.

As it is, I still don't know anything about what you have been doing for the VoA client compatibility. The information I have seen from you is not consistent as far as I can understand. For example, you say you have played on my server with the VoA client, then a few posts above this, you said you moved the eqgame.exe from the UF client. If that is the case, then you are actually playing on what we consider the UF client, whether all of your other files are from VoA or not.

The only things I have ever seen you refernce in updating source code are the opcodes themselves. While opcodes are important, they are actually one of the easier things for us to do now, especially if we have access to get EQLive collects for the client we are working on. Probably the hardest part of getting a new client working are the packet structures, and I can't think of any time I have ever seen you reference them. In order for you to be able to use the VoA client to log completely into EQEmu, you will definitely need to adjust multiple packet structures and encodes/decodes. Again, having collects from EQLive makes this process considerably easier than trying to get an older client working where we don't have access to those packets to figure out the structures (such as when I started working on the SoF client in the first place).

I am pretty sure that I could probably get the VoA client to log into the Character Select screen in maybe an hour or 2 of work. As far as I can tell, that is how far you have been able to get while using the eqgame.exe from VoA. The hard part is being able to get all of the way in-game, but using the work that Derision had already done for HoT, it probably wouldn't be overly hard to get that working too. After that, it would take a long time to test every system and see what is working and what is not and then fix opcodes and packet structures for each thing that isn't working right. That is the main reason why I don't even want to start working on a Live/VoA client until we have something that isn't going to change. Because as soon as we put in tons of hours to get a client working great, Live would patch and we would have to start updating it all again if we want people to be able to use a fully patched client.

Don't get me wrong though, I think it is great to try to have newer clients for EQEmu. I was the one that started the work on SoF in the first place to get EQEmu past Titanium. If it wasn't for that, we would almost certainly still be using Titanium today. I didn't know anything about opcodes or packet structures when I first started on it, but I learned a lot and have done it quite a bit now with SoF, SoD, and UF, with the help of the other developers such as KLS and Derision (primarily). I stayed peristent and kept working at it until I had real results that the other devs could see actual potential in for upgrading EQEmu past Titanium. That is basically how I became part of the dev team in the first place.

So, I am all for any progress that can be made toward newer clients for EQEmu. I just don't want to "chase Live" with the frequent changes that they do which would become a full time job to keep EQEmu up to date. You may think the Devs are just too lazy or busy to work on newer clients, but that is not the case. Yes, we are busy and probably lazy too, but if a new client came along that had a reliable source to get it legally and it wasn't going to be patched monthly like Live, then we would get started working on updating EQEmu for it (or at least I I know would).

I would definitely not want to detur anyone from working on EQEmu in any way. If you are able to submit a change that can get VoA working perfectly, then I am sure we can get it added to the source. If you are not willing to share your changes, then that is up to you as well. But, if you aren't planning to share your changes, then I don't know why you would bother posting about them here or looking for help from our Devs and community to make it work.

Again, I mean no offense in any of this post. I just want to be clear to you and to the community why the EQEmu Devs are not currently working on a VoA client. Though, I almost want to start working on one just so I can compare my results to what you have been providing so far. I also wanted it to be clear that it is hard to understand your posts even if they may make perfect sense to you.



I made the 3 different versions of this post to show how everything does not always translate as it is intended. Though, Google Translator does a pretty damn good job!
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #35  
Old 02-18-2012, 07:01 AM
Noport
Opcode Ninja
 
Join Date: Mar 2009
Location: San francisco
Posts: 426
Default

Well good news made it past Create a Character. How many Eq Emulator users would be interested in my precompiled server files Rev2103? Supports Clients listed below.

Code:
[02.18. - 00:00:00] [NET__IDENTIFY] Registered patch 6.2
[02.18. - 00:00:00] [NET__IDENTIFY] Registered patch Titanium
[02.18. - 00:00:00] [NET__IDENTIFY] Registered patch Anniversary
[02.18. - 00:00:00] [NET__IDENTIFY] Registered patch SoF
[02.18. - 00:00:00] [NET__IDENTIFY] Registered patch SoD
[02.18. - 00:00:00] [NET__IDENTIFY] Registered patch Underfoot
[02.18. - 00:00:00] [NET__IDENTIFY] Registered patch HoT
[02.18. - 00:00:00] [NET__IDENTIFY] Registered patch VoA
Reply With Quote
  #36  
Old 02-18-2012, 07:47 AM
dwarfiron
Fire Beetle
 
Join Date: Jan 2012
Posts: 7
Default

It means we will have working VOA and HOT and will be able to build houses?
If yes i can't wait for it !
Reply With Quote
  #37  
Old 02-18-2012, 01:32 PM
gibroni
Hill Giant
 
Join Date: Jun 2009
Location: glendale
Posts: 193
Default

if its a fully working server then ya there might be people interested in a download to try out
Reply With Quote
  #38  
Old 02-18-2012, 03:09 PM
Caryatis
Dragon
 
Join Date: May 2009
Location: Milky Way
Posts: 541
Default

He just got a character created, shit like houses dont code themselves. We still don't have features from Gates of Discord and before(expeditions, shared tasks, etc). Just connecting with a client doesnt make all the cool things of that client work.
Reply With Quote
  #39  
Old 02-19-2012, 06:03 PM
Phantons
Sarnak
 
Join Date: Feb 2008
Posts: 35
Default

Even if it was just logging in and playing with the VoA client, I would like to. Just so I can be playing on the latest client.
__________________
On all servers, I am Zephr/Zephfr/Zentail.
Reply With Quote
  #40  
Old 02-20-2012, 07:45 PM
Noport
Opcode Ninja
 
Join Date: Mar 2009
Location: San francisco
Posts: 426
Default

I'll keep you all updated i'm updating more opcodes at the same time trying to support others with there server settings. The more opcodes i have on Voa makes it a better client.
Reply With Quote
  #41  
Old 04-06-2012, 03:22 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

I spent a day working on VoA just to have something prepared in case Steam gets a new VoA client sometime soon.

I wrote a couple of scripts that make updating our patch_<expansion>.conf files a bit easier based on some other opcode info we have. It still requires some manual work to get all of the opcodes, but not nearly as much work as before.

Here is the March 21 2012 client .conf file I made using these new scripts with a few adjustments I made manually while working on the client:

Code:
# ShowEQ Import Notes:
#  ZERO THE FILE first
#  perl -pi -e 's/0x[0-9a-fA-F]{4}/0x0000/g' opcodes.conf
# Unknown Mapping:
# OP_Action2 -> OP_Damage
# OP_EnvDamage -> OP_Damage ---> might have been a one time mistake
# Name Differences:
# OP_CancelInvite -> OP_GroupCancelInvite
# OP_GMFind -> OP_FindPersonRequest
# OP_CommonMessage -> OP_ChannelMessage

OP_Unknown=0x0000
OP_ExploreUnknown=0x0000			# used for unknown explorer

# V = Verified correct
# C = Most likely correct 
# U = Unsure, but should be correct or close

# world packets
# Required to reach Char Select:		
OP_SendLoginInfo=0x4d5c					# 
OP_ApproveWorld=0x655c					# 
OP_LogServer=0x1497						# 
OP_SendCharInfo=0x7f9e					# 
OP_ExpansionInfo=0x7e4d					# 
OP_GuildsList=0x5b0b					# 
OP_EnterWorld=0x710e					# 
OP_PostEnterWorld=0x7930				# 
OP_World_Client_CRC1=0x7ce4				# 
OP_World_Client_CRC2=0x7705				# 
OP_SendSpellChecksum=0x0000				# 
OP_SendSkillCapsChecksum=0x0000			# 

# haracter Select Related:
OP_DeleteCharacter=0x5ca5				# 
OP_CharacterCreateRequest=0x4eba		# 
OP_CharacterCreate=0x3237				# 
OP_RandomNameGenerator=0x26aa			# 
OP_ApproveName=0x3154					# 

OP_MOTD=0x0b80							# 
OP_SetChatServer=0x2c38					# 
OP_SetChatServer2=0x441c				# 
OP_ZoneServerInfo=0x16f5				# 
OP_WorldComplete=0x6c63					# 
OP_WorldUnknown001=0x4274				# 
OP_FloatListThing=0x1910				# 

# Reasons for Disconnect:
OP_ZoneUnavail=0x20bc					# 
OP_WorldClientReady=0x0b89				# Testing VoA 0x3f24
OP_CharacterStillInZone=0x0000			# 
OP_WorldChecksumFailure=0x0000			# 
OP_WorldLoginFailed=0x0000				# 
OP_WorldLogout=0x0000					# 
OP_WorldLevelTooHigh=0x0000				# 
OP_CharInacessable=0x0000				# 
OP_UserCompInfo=0x0000					# 
# OP_SendExeChecksum=0x0000				# 
# OP_SendBaseDataChecksum=0x0000		# 

# Zone in opcodes
OP_AckPacket=0x3594						# 
OP_ZoneEntry=0x5821						# Testing VoA 0x5821
OP_ReqNewZone=0x4118					# 
OP_NewZone=0x43ac						# 
OP_ZoneSpawns=0x5f5e					# 
OP_PlayerProfile=0x6afd					# Testing VoA 0x6022
OP_TimeOfDay=0x6015						# 
OP_LevelUpdate=0x6a99					# 
OP_Stamina=0x7686						# 
OP_RequestClientZoneChange=0x224f		# 
OP_ZoneChange=0x0976					# 

OP_LockoutTimerInfo=0x0000				# 
OP_ZoneServerReady=0x0000				# 
OP_ZoneInUnknown=0x0000					# 
OP_LogoutReply=0x0000					# 
OP_PreLogoutReply=0x0000				# 

# Required to fully log in
OP_SpawnAppearance=0x3f55				# 
OP_ChangeSize=0x0000					#
OP_TributeUpdate=0x0000					# 
OP_TributeTimer=0x1525					# Testing VoA 0x1525
OP_TaskDescription=0x2e4f				# 
OP_TaskActivity=0x512b					# 
OP_CompletedTasks=0x3141				# 
OP_Weather=0x3e50						# 
OP_SendAATable=0x6a7e					# Testing VoA 0x6a7e
OP_UpdateAA=0x5363						# Testing VoA 0x5363
OP_RespondAA=0x0643						# Testing VoA 0x0643 or maybe 0x7bf6
OP_ReqClientSpawn=0x2c27				# 
OP_SpawnDoor=0x7113						# 
OP_GroundSpawn=0x33e5					# 
OP_SendZonepoints=0x399f				# 
OP_SendAAStats=0x4e22					#  
OP_WorldObjectsSent=0x7b73				# 
OP_BlockedBuffs=0x1681					# 
OP_RemoveBlockedBuffs=0x6a86			# 
OP_ClearBlockedBuffs=0x7ae1				# 
OP_SendExpZonein=0x0f14					# 
OP_SendTributes=0x010d					# 
OP_TributeInfo=0x047c					# 
OP_SendGuildTributes=0x0000				# 
OP_AAExpUpdate=0x1318					# 
OP_ExpUpdate=0x0000						# Testing VoA 0x0555
OP_HPUpdate=0x2369						# 
OP_ManaChange=0x569a					# 
OP_TGB=0x3672							# 
OP_SpecialMesg=0x039d					# 
OP_GuildMemberList=0x51bc				# 
OP_GuildMOTD=0x0000						# Testing VoA 0x0a1d
OP_CharInventory=0x0000					# Testing VoA 0x6cfe
OP_WearChange=0x1a58					# 
OP_ClientUpdate=0x7062					# 
OP_ClientReady=0x6cdc					# 
OP_SetServerFilter=0x053a				# 

# Guild Opcodes
OP_GetGuildMOTD=0x3415					# 
OP_GetGuildMOTDReply=0x709d				# 
OP_GuildMemberUpdate=0x589f				# 
OP_GuildInvite=0x5488					# 
OP_GuildRemove=0x47d3					# 
OP_GuildPeace=0x2bff					# 
OP_SetGuildMOTD=0x5f85					# 
OP_GuildList=0x0000						# 
OP_GuildWar=0x5408						# 
OP_GuildLeader=0x0598					# 
OP_GuildDelete=0x230e					# 
OP_GuildInviteAccept=0x2b5a				# 
OP_GuildDemote=0x1899					# 
OP_GuildPublicNote=0x2dbd				# 
OP_GuildManageBanker=0x0000				# 
OP_GuildBank=0x0000						# 
OP_SetGuildRank=0x4ffe					# 
OP_GuildUpdateURLAndChannel=0x03d1		# 
OP_GuildMemberLevelUpdate=0x0000		# 
OP_ZoneGuildList=0x0000					# 
OP_GetGuildsList=0x0000					# 
OP_GuildStatus=0x4cf2					#
OP_GuildCreate=0x0000					#
# OP_GuildManageRemove=0x0000			# 
# OP_GuildManageAdd=0x0000				# 
# OP_GuildManageStatus=0x0000			# 

# GM/guide opcodes
OP_GMServers=0x6989						# 
OP_GMBecomeNPC=0x56e7					# 
OP_GMZoneRequest=0x701f					# 
OP_GMZoneRequest2=0x01					# 
OP_GMGoto=0x15a1						# 
OP_GMSearchCorpse=0x5a81				# 
OP_GMHideMe=0x28ef						# 
OP_GMDelCorpse=0x072f					# 
OP_GMApproval=0x481f					# 
OP_GMToggle=0x2042						#  
OP_GMSummon=0x6e47						# 
OP_GMEmoteZone=0x307d					# 
OP_GMEmoteWorld=0x0c2d					# 
OP_GMFind=0x6e27						# 
OP_GMKick=0x5a56						# 
OP_GMKill=0x51fe						# 
OP_GMNameChange=0x0000					# 
OP_GMLastName=0x7bfb					# 

OP_InspectAnswer=0x0c54					# 
OP_BeginCast=0x0d5a						# 
OP_BuffFadeMsg=0x71bf					# 
OP_ConsentResponse=0x35c6				# 
OP_MemorizeSpell=0x3887					# 
OP_SwapSpell=0x28a7						# 
OP_CastSpell=0x50c2						# 
OP_Consider=0x70c6						# 
OP_FormattedMessage=0x4675				# 
OP_SimpleMessage=0x0698					#  
OP_Buff=0x3a18							# 
OP_Illusion=0x10b7						# 
OP_MoneyOnCorpse=0x4074					# 
OP_RandomReply=0x6d5d					# 
OP_DenyResponse=0x0370					# 
OP_SkillUpdate=0x7f01					# 
OP_GMTrainSkillConfirm=0x0000			# 
OP_RandomReq=0x303e						# 
OP_Death=0x6685							# 
OP_Bind_Wound=0x7b64					# 
OP_GMTraining=0x5960					# 
OP_GMEndTraining=0x4a61					# 
OP_GMTrainSkill=0x4885					# 
OP_Animation=0x5bd9						# 
OP_Begging=0x32af						# 
OP_Consent=0x6bb9						# 
OP_ConsentDeny=0x6b7f					# 
OP_AutoFire=0x23fc						# 
OP_PetCommands=0x7312					# 
OP_DeleteSpell=0x0142					# 
OP_Surname=0x777c						# 
OP_ClearSurname=0x0000					# 
OP_FaceChange=0x0507					# 
OP_SenseHeading=0x1b8a					# 
OP_Action=0x1b85						# 
OP_ConsiderCorpse=0x0e94				# 
OP_HideCorpse=0x0000					#  
OP_CorpseDrag=0x0000					#
OP_CorpseDrop=0x0000					#
OP_Bug=0x3365							# 
OP_Feedback=0x52b5						# 
OP_Report=0x211a						# 
OP_Damage=0x631a						#  or OP_Action2?
OP_ChannelMessage=0x2e79				# 
OP_Assist=0x5658						# 
OP_AssistGroup=0x43bc					# 
OP_MoveCoin=0x2963						# 
OP_ZonePlayerToBind=0x2480				# 
OP_KeyRing=0x3b85						# 
OP_WhoAllRequest=0x177a					# 
OP_WhoAllResponse=0x15de				# 
OP_FriendsWho=0x73d6					# 
OP_ConfirmDelete=0x604d					# 
OP_Logout=0x6275						# 
OP_Rewind=0x09e3						# 
OP_TargetCommand=0x3088					#  
OP_InspectRequest=0x2683				# 
OP_Hide=0x3497							# 
OP_Jump=0x083b							# 
OP_Camp=0x3cd6							# 
OP_Emote=0x0000							# 
OP_SetRunMode=0x3d06					# 
OP_BankerChange=0x0000					# 
OP_TargetMouse=0x3edc					#  
OP_MobHealth=0x5cb0						# 
OP_InitialMobHealth=0x0000				# 
OP_TargetHoTT=0x460e					# 
OP_TargetBuffs=0x7c24					# 
OP_BuffCreate=0x0c98                	# 
OP_BuffRemoveRequest=0x3567				#
OP_DeleteSpawn=0x3164					# 
OP_AutoAttack=0x2257					# 
OP_AutoAttack2=0x0000					# 
OP_Consume=0x2ee2						# 
OP_MoveItem=0x1cb3						# 
OP_DeleteItem=0x7547					# 
OP_DeleteCharge=0x6a90					# 
OP_ItemPacket=0x2dd3					# 
OP_ItemLinkResponse=0x6948				# 
OP_ItemLinkClick=0x3c66					# 
OP_NewSpawn=0x016c						# 
OP_Track=0x2444							# 
OP_TrackTarget=0x538f					# 
OP_TrackUnknown=0x03e7					# 
OP_ClickDoor=0x48f9						# 
OP_MoveDoor=0x231f						# 
OP_RemoveAllDoors=0x24a3				# 
OP_EnvDamage=0x2730						# 
OP_BoardBoat=0x7554						# 
OP_Forage=0x3c02						# 
OP_LeaveBoat=0x7286						# 
OP_ControlBoat=0x0ca5					# 
OP_SafeFallSuccess=0x6df7				# 
OP_RezzComplete=0x7108					# 
OP_RezzRequest=0x6024					# 
OP_RezzAnswer=0x2d41					# 
OP_Shielding=0x7598						# 
OP_RequestDuel=0x0e71					# 
OP_MobRename=0x6884						# 
OP_AugmentItem=0x4cc6					# 
OP_WeaponEquip1=0x11bc					# 
OP_WeaponEquip2=0x3f24					# Testing VoA 0x2121
OP_WeaponUnequip2=0x7b87				# 
OP_ApplyPoison=0x5cd3					# 
OP_Save=0x47e7							# 
OP_TestBuff=0x712b						# 
OP_CustomTitles=0x6ade					# 
OP_Split=0x0ed5							# 
OP_YellForHelp=0x1f87					# 
OP_LoadSpellSet=0x440f					# 
OP_Bandolier=0x3ad1						# 
OP_PotionBelt=0x7b7f					# 
OP_DuelResponse=0x1df9					# 
OP_DuelResponse2=0x36f8					# 
OP_SaveOnZoneReq=0x2913					# 
OP_ReadBook=0x41b5						# 
OP_Dye=0x32c6							# 
OP_InterruptCast=0x7706					# 
OP_AAAction=0x55dd						# 
OP_LeadershipExpToggle=0x69d0			# 
OP_LeadershipExpUpdate=0x3703			# 
OP_PurchaseLeadershipAA=0x6e58			# 
OP_UpdateLeadershipAA=0x0297			# 
OP_MarkNPC=0x6b9e						# 
OP_ClearNPCMarks=0x074f					# 
OP_DoGroupLeadershipAbility=0x0000		# 
OP_GroupLeadershipAAUpdate=0x0000		# 
OP_DelegateAbility=0x105b				# 
OP_SetGroupTarget=0x42c7				# 
OP_Charm=0x17f7							# 
OP_Stun=0x41a6							# 
OP_SendFindableNPCs=0x3015				# 
OP_FindPersonRequest=0x19a8				# 
OP_FindPersonReply=0x7e45				# 
OP_Sound=0x2d1d							# 
OP_PetBuffWindow=0x4895					# 
OP_LevelAppearance=0x78b9				# 
OP_Translocate=0x42ef					# 
OP_Sacrifice=0x2dc6						# 
OP_PopupResponse=0x0000					# 
OP_OnLevelMessage=0x0000				# 
OP_AugmentInfo=0x0000					# 
OP_Petition=0x31d1						# 
OP_SomeItemPacketMaybe=0x1513			# 
OP_PVPStats=0x0000						# 
OP_PVPLeaderBoardRequest=0x0000			# 
OP_PVPLeaderBoardReply=0x0000			# 
OP_PVPLeaderBoardDetailsRequest=0x0000	# 
OP_PVPLeaderBoardDetailsReply=0x0000	# 
OP_RestState=0x0000						# 
OP_RespawnWindow=0x435b					# 
OP_DisciplineTimer=0x74ca				# 
OP_LDoNButton=0x597d					# 
OP_SetStartCity=0x179d					# 
OP_VoiceMacroIn=0x0fce					# 
OP_VoiceMacroOut=0x1c36					# 
OP_ItemViewUnknown=0x0000				# 
OP_VetRewardsAvaliable=0x3637			#  Mispelled?
OP_VetClaimRequest=0x032b				# 
OP_VetClaimReply=0x7b6e					# 
OP_CrystalCountUpdate=0x0000			# 
OP_DisciplineUpdate=0x0d8d				# 
OP_BecomeCorpse=0x0000					# 
OP_Action2=0x0000						# OP_Damage?
OP_MobUpdate=0x4656						# Same as OP_SpawnPositionUpdate
OP_NPCMoveUpdate=0x2339					#
OP_CameraEffect=0x6812					# 
OP_SpellEffect=0x0989					# 
OP_RemoveNimbusEffect=0x0000			# 
OP_AltCurrency=0x2536
OP_AltCurrencyMerchantRequest=0x5aac
OP_AltCurrencyMerchantReply=0x17c7
OP_AltCurrencyPurchase=0x6efe
OP_AltCurrencySell=0x32d9
OP_AltCurrencySellSelection=0x7eac
OP_AltCurrencyReclaim=0x1560
OP_CrystalReclaim=0x0000
OP_CrystalCreate=0x0000
OP_Untargetable=0x101e
OP_IncreaseStats=0x4acf

OP_DzQuit=0x0000
OP_DzListTimers=0x0000
OP_DzAddPlayer=0x0000
OP_DzRemovePlayer=0x0000
OP_DzSwapPlayer=0x0000
OP_DzMakeLeader=0x0000
OP_DzPlayerList=0x0000
OP_DzJoinExpeditionConfirm=0x0000
OP_DzJoinExpeditionReply=0x0000
OP_DzExpeditionInfo=0x0000
OP_DzMemberStatus=0x0000
OP_DzLeaderStatus=0x0000
OP_DzExpeditionEndsWarning=0x0000
OP_DzExpeditionList=0x0000
OP_DzMemberList=0x0000
OP_DzCompass=0x0000
OP_DzChooseZone=0x0000

# New Opcodes
OP_SpawnPositionUpdate=0x0000			# 
OP_ManaUpdate=0x7c94					# 
OP_EnduranceUpdate=0x5851				# 
OP_MobManaUpdate=0x4d27					# 
OP_MobEnduranceUpdate=0x190c			# 
       
# Looting
OP_LootRequest=0x1d85					# 
OP_EndLootRequest=0x0bc					# 
OP_LootItem=0x6d37						# 
OP_LootComplete=0x4ca1					# 

# bazaar trader stuff stuff:
OP_BazaarSearch=0x2881					# 
OP_TraderDelItem=0x0000					# 
OP_BecomeTrader=0x358a					# 
OP_TraderShop=0x49f4					# 
OP_Trader=0x058c						# 
OP_TraderBuy=0x783c						# 
OP_Barter=0x766f						# 
OP_ShopItem=0x0000						# 
OP_BazaarInspect=0x0000					# 
OP_Bazaar=0x0000						# 
OP_TraderItemUpdate=0x0000				# 

# pc/npc trading
OP_TradeRequest=0x0c24					# 
OP_TradeAcceptClick=0x064a				# 
OP_TradeRequestAck=0x606a				# 
OP_TradeCoins=0x0149					# 
OP_FinishTrade=0x3ff6					# 
OP_CancelTrade=0x527e					# 
OP_TradeMoneyUpdate=0x1ebb				# 
OP_MoneyUpdate=0x528f					# 
OP_TradeBusy=0x2c03						# 

# Sent after canceling trade or after closing tradeskill object
OP_FinishWindow=0x3c27					# 
OP_FinishWindow2=0x6759					# 

# Sent on Live for what seems to be item existance verification
# Ex. Before Right Click Effect happens from items
OP_ItemVerifyRequest=0x0000				# 
OP_ItemVerifyReply=0x0000				# 

# merchant crap	
OP_ShopPlayerSell=0x0b27				# 
OP_ShopRequest=0x4194					# 
OP_ShopEnd=0x3753						# 
OP_ShopEndConfirm=0x4762				# 
OP_ShopPlayerBuy=0x436a					# 
OP_ShopDelItem=0x63c8					# 

# tradeskill stuff:	
OP_ClickObject=0x5f0d					# 
OP_ClickObjectAction=0x29df				# 
OP_ClearObject=0x38d1					# 
OP_RecipeDetails=0x068					# 
OP_RecipesFavorite=0x0000				# 
OP_RecipesSearch=0x0239					# 
OP_RecipeReply=0x1ecf					# 
OP_RecipeAutoCombine=0x66bf				# 
OP_TradeSkillCombine=0x4212				# 

# Tribute Packets:
OP_OpenGuildTributeMaster=0x0000		# 
OP_OpenTributeMaster=0x3ba3				# 
OP_SelectTribute=0x314f					# 
OP_TributeItem=0x0000					# 
OP_TributeMoney=0x1772					# 
OP_TributeToggle=0x0000					# 
OP_TributePointUpdate=0x0000			# 
OP_TributeNPC=0x0000					# 
OP_GuildTributeInfo=0x0000				# 
OP_OpenTributeReply=0x0000				# 
# OP_GuildTributeStatus=0x0000			# 

# Adventure packets:
OP_LeaveAdventure=0x771f				# 
OP_AdventureFinish=0x3168				# 
OP_AdventureInfoRequest=0x05d8			# 
OP_AdventureInfo=0x164b					# 
OP_AdventureRequest=0x3a75				# 
OP_AdventureDetails=0x05				# 
OP_AdventureData=0x21df					# 
OP_AdventureUpdate=0x6129				# 
OP_AdventureMerchantRequest=0x0000		# 
OP_AdventureMerchantResponse=0x0000		# 
OP_AdventureMerchantPurchase=0x0000		# 
OP_AdventureMerchantSell=0x0000			# 
OP_AdventurePointsUpdate=0x7d05			# 
OP_AdventureStatsRequest=0x684c			# 
OP_AdventureStatsReply=0x15a7			# 
OP_AdventureLeaderboardRequest=0x0b89	# 
OP_AdventureLeaderboardReply=0x6bfb		# 

# Group Opcodes
OP_GroupDisband=0x4200					# 
OP_GroupInvite=0x3288					# 
OP_GroupFollow=0x1190					# 
OP_GroupUpdate=0x0000					#  
OP_GroupUpdateB=0x0000					#  
OP_GroupCancelInvite=0x0000				#  - Same as OP_CancelInvite?
OP_GroupAcknowledge=0x0000				# 
OP_GroupDelete=0x0000					# 
OP_CancelInvite=0x2736					# 
OP_GroupFollow2=0x6c16					# 
OP_GroupInvite2=0x5251					# 
OP_GroupDisbandYou=0x0000				# 
OP_GroupDisbandOther=0x0000				# 
OP_GroupLeaderChange=0x0000				# 
OP_GroupRoles=0x0000					# 
OP_GroupMakeLeader=0x13da

# LFG/LFP Opcodes
OP_LFGCommand=0x457d					# 
OP_LFGGetMatchesRequest=0x49e7			# 
OP_LFGGetMatchesResponse=0x4817			# 
OP_LFPGetMatchesRequest=0x5fc7			# 
OP_LFPGetMatchesResponse=0x3d0c			# 
OP_LFPCommand=0x20c6					# 
OP_LFGAppearance=0x0000					# 
OP_LFGResponse=0x0000					# 

# Raid Opcodes
OP_RaidInvite=0x550f					# 
OP_RaidUpdate=0x0000					# Testing VoA 0x0c08
OP_RaidJoin=0x0000						# 

# Button-push commands
OP_Taunt=0x732c							# 
OP_CombatAbility=0x16a5					# 
OP_SenseTraps=0x416b					# 
OP_PickPocket=0x13bd					# 
OP_DisarmTraps=0x0000					# 
OP_Disarm=0x6def						# 
OP_Sneak=0x1d22							# 
OP_Fishing=0x7093						# 
OP_InstillDoubt=0x221a					# 
OP_FeignDeath=0x6145					# 
OP_Mend=0x10a6							# 
OP_LDoNOpen=0x7c87						# 

# Task packets
OP_TaskActivityComplete=0x0000			# 
OP_TaskMemberList=0x0000				# 
OP_OpenNewTasksWindow=0x0000			# 
OP_AvaliableTask=0x0000					#  Mispelled?
OP_AcceptNewTask=0x0000					# 
OP_TaskHistoryRequest=0x6d1f			# 
OP_TaskHistoryReply=0x189b				# 
OP_CancelTask=0x47ea					# 
OP_DeclineAllTasks=0x0000				# 

# Title opcodes
OP_NewTitlesAvailable=0x6d95			# 
OP_RequestTitles=0x0000					# 
OP_SendTitleList=0x0000					# 
OP_SetTitle=0x725b						# 
OP_SetTitleReply=0x38e8					# 

# mail opcodes
OP_Command=0x0000						# 
OP_MailboxHeader=0x0000					# 
OP_MailHeader=0x0000					# 
OP_MailBody=0x0000						# 
OP_NewMail=0x0000						# 
OP_SentConfirm=0x0000					# 

# # # # # # # # # # #  Below this point should not be needed		# # # # # # # # # # # 

# This section are all unknown in Titanium
OP_ForceFindPerson=0x0000				# 
OP_LocInfo=0x0000						# 
OP_ReloadUI=0x0000						# 
OP_ItemName=0x0000						# 
OP_ItemLinkText=0x0000					# 
OP_MultiLineMsg=0x0000					# 
OP_MendHPUpdate=0x0000					# 
OP_TargetReject=0x0000					# 
OP_SafePoint=0x0000						# 
OP_ApproveZone=0x0000					# 
OP_ZoneComplete=0x0000					# 
OP_ClientError=0x0000					# 
OP_DumpName=0x0000						# 
OP_Heartbeat=0x0000						# 
OP_CrashDump=0x0000						# 
OP_LoginComplete=0x0000					# 

# discovered opcodes not yet used:
OP_PickLockSuccess=0x0000				# 
OP_PlayMP3=0x0000						# 
OP_ReclaimCrystals=0x0000				# 
OP_DynamicWall=0x0000					# 
OP_OpenDiscordMerchant=0x0000			# 
OP_DiscordMerchantInventory=0x0000		# 
OP_GiveMoney=0x0000						# 
OP_RequestKnowledgeBase=0x0000			# 
OP_KnowledgeBase=0x0000					# 
OP_SlashAdventure=0x0000				# /adventure
OP_BecomePVPPrompt=0x0000				# 
OP_MoveLogRequest=0x0000				# gone I think
OP_MoveLogDisregard=0x0000				# gone I think

# named unknowns, to make looking for real unknown easier
OP_AnnoyingZoneUnknown=0x0000			# 
OP_Some6ByteHPUpdate=0x0000				# seems to happen when you target group members
OP_QueryResponseThing=0x0000			# 


#  realityincarnate: these are just here to stop annoying several thousand byte packet dumps
#OP_LoginUnknown1=0x46d3				# U OP_SendSpellChecksum
#OP_LoginUnknown2=0x040b				# U OP_SendSkillCapsChecksum

# Petition Opcodes
OP_PetitionSearch=0x0000				# search term for petition
OP_PetitionSearchResults=0x0000			# (list of?) matches from search
OP_PetitionSearchText=0x0000			# text results of search

OP_PetitionUpdate=0x0000				# 
OP_PetitionCheckout=0x0000				# 
OP_PetitionCheckIn=0x0000				# 
OP_PetitionQue=0x0000					# 
OP_PetitionUnCheckout=0x0000			# 
OP_PetitionDelete=0x0000				# 
OP_DeletePetition=0x0000				# 
OP_PetitionResolve=0x0000				# 
OP_PDeletePetition=0x0000				# 
OP_PetitionBug=0x0000					# 
OP_PetitionRefresh=0x0000				# 
OP_PetitionCheckout2=0x0000				# 
OP_PetitionViewPetition=0x0000			# 

# Login opcodes
OP_SessionReady=0x0000					# 
OP_Login=0x0000							# 
OP_ServerListRequest=0x0000				# 
OP_PlayEverquestRequest=0x0000			# 
OP_PlayEverquestResponse=0x0000			# 
OP_ChatMessage=0x0000					# 
OP_LoginAccepted=0x0000					# 
OP_ServerListResponse=0x0000			# 
OP_Poll=0x0000							# 
OP_EnterChat=0x0000						# 
OP_PollResponse=0x0000					# 

# raw opcodes
OP_RAWSessionRequest=0x0000				# 
OP_RAWSessionResponse=0x0000			# 
OP_RAWCombined=0x0000					# 
OP_RAWSessionDisconnect=0x0000			# 
OP_RAWKeepAlive=0x0000					# 
OP_RAWSessionStatRequest=0x0000			# 
OP_RAWSessionStatResponse=0x0000		# 
OP_RAWPacket=0x0000						# 
OP_RAWFragment=0x0000					# 
OP_RAWOutOfOrderAck=0x0000				# 
OP_RAWAck=0x0000						# 
OP_RAWAppCombined=0x0000				# 
OP_RAWOutOfSession=0x0000				# 

# we need to document the differences between these packets to make identifying them easier
OP_Some3ByteHPUpdate=0x0000				# initial HP update for mobs
OP_InitialHPUpdate=0x0000				#
Here is the PP struct, which should be almost perfect for the current March 21 2012 client. I did have to add 20 bytes in near the end, which is probably because I miscalculated the struct somewhere and had 20 bytes missing. Either way, this struct is functional:
Code:
struct PlayerProfile_Struct
{
/*00000*/ uint32  checksum;				//
//BEGIN SUB-STRUCT used for shrouding stuff...
/*00004*/ uint32  gender;				// Player Gender - 0 Male, 1 Female
/*00008*/ uint32  race;					// Player race
/*00012*/ uint32  class_;				// Player class
/*00016*/ uint8  unknown00016[40];		// #### uint32  unknown00016;   in Titanium ####uint8[40]
/*00056*/ uint8   level;				// Level of player
/*00057*/ uint8   level1;				// Level of player (again?)
/*00058*/ uint8   unknown00058[2];		// ***Placeholder
/*00060*/ BindStruct binds[5];			// Bind points (primary is first)
/*00160*/ uint32  deity;				// deity
/*00164*/ uint32  intoxication;			// Alcohol level (in ticks till sober?)
/*00168*/ uint32  spellSlotRefresh[MAX_PP_MEMSPELL]; // Refresh time (millis) - 4 Octets Each
/*00216*/ uint8   unknown00208[6];		// Seen 00 00 00 00 00 00 00 00 00 00 00 00 02 01
/*00222*/ uint32  abilitySlotRefresh;
/*00226*/ uint8   haircolor;			// Player hair color
/*00227*/ uint8   beardcolor;			// Player beard color
/*00228*/ uint8   eyecolor1;			// Player left eye color
/*00229*/ uint8   eyecolor2;			// Player right eye color
/*00230*/ uint8   hairstyle;			// Player hair style
/*00231*/ uint8   beard;				// Player beard type
/*00232*/ uint8	  unknown00232[4];		// was 14 288
/*00236*/ union
	 {
		struct
		{
		/*236*/ EquipStruct equip_helmet; // Equiptment: Helmet visual
		/*252*/ EquipStruct equip_chest; // Equiptment: Chest visual
		/*268*/ EquipStruct equip_arms; // Equiptment: Arms visual
		/*284*/ EquipStruct equip_bracers; // Equiptment: Wrist visual
		/*300*/ EquipStruct equip_hands; // Equiptment: Hands visual
		/*316*/ EquipStruct equip_legs; // Equiptment: Legs visual
		/*332*/ EquipStruct equip_feet; // Equiptment: Boots visual
		/*348*/ EquipStruct equip_primary; // Equiptment: Main visual
		/*364*/ EquipStruct equip_secondary; // Equiptment: Off visual
		} equip;
		/*00236*/ EquipStruct equipment[9]; //Live Shows [108] for this part
	 };
/*00344*/ uint8 unknown00344[36];		// EquipStruct is now 16 bytes instead of 12
/*00380*/ uint8 unknown00380[220];		// Live Shows [160]
/*00600*/ Color_Struct item_tint[9];	// RR GG BB 00
/*00636*/ AA_Array  aa_array[MAX_PP_AA_ARRAY];	// [3600] AAs 12 bytes each
/*04236*/ uint32  points;				// Unspent Practice points - RELOCATED???
/*04240*/ uint32  mana;					// Current mana
/*04244*/ uint32  cur_hp;				// Current HP without +HP equipment
/*04248*/ uint32  STR;					// Strength - 6e 00 00 00 - 110
/*04252*/ uint32  STA;					// Stamina - 73 00 00 00 - 115
/*04256*/ uint32  CHA;					// Charisma - 37 00 00 00 - 55
/*04260*/ uint32  DEX;					// Dexterity - 50 00 00 00 - 80
/*04264*/ uint32  INT;					// Intelligence - 3c 00 00 00 - 60
/*04268*/ uint32  AGI;					// Agility - 5f 00 00 00 - 95
/*04272*/ uint32  WIS;					// Wisdom - 46 00 00 00 - 70
/*04276*/ uint8   unknown04188[28];		// 
/*04304*/ uint8   face;					// Player face - Actually int32?
/*04305*/ uint8   unknown04217[147];	// was [175]
/*04452*/ uint8   unknown04452[36];		// Spell related new to VoA March 21 2012
/*04488*/ int32   spell_book[MAX_PP_SPELLBOOK];	// List of the Spells in spellbook 720 = 90 pages [2880] was [1920]
/*06408*/ uint8   unknown06284[960];			// Spacer for the end of the book for now (pages 60 to 90)
/*07368*/ int32   mem_spells[MAX_PP_MEMSPELL];	// [48] List of spells memorized
/*07416*/ uint8   unknown07284[20];		//#### uint8 unknown04396[32]; in Titanium ####[28]
/*07436*/ uint32  platinum;				// Platinum Pieces on player
/*07440*/ uint32  gold;					// Gold Pieces on player
/*07444*/ uint32  silver;				// Silver Pieces on player
/*07448*/ uint32  copper;				// Copper Pieces on player
/*07452*/ uint32  platinum_cursor;		// Platinum Pieces on cursor
/*07456*/ uint32  gold_cursor;			// Gold Pieces on cursor
/*07460*/ uint32  silver_cursor;		// Silver Pieces on cursor
/*07464*/ uint32  copper_cursor;		// Copper Pieces on cursor
/*07468*/ uint32  skills[MAX_PP_SKILL];	// [300] List of skills
		  //uint32  innateSkills[25];	// -72
/*07768*/ uint8   unknown07644[236]; // -272 - 16 = -256 + 236 = -20
/*08004*/ uint32  toxicity;				// Potion Toxicity (15=too toxic, each potion adds 3)
/*08008*/ uint32  thirst_level;			// Drink (ticks till next drink)
/*08012*/ uint32  hunger_level;			// Food (ticks till next eat)
/*08016*/ SpellBuff_Struct buffs[BUFF_COUNT];	// [2200] Buffs currently on the player (30 Max) - (Each Size 88)
/*10216*/ SpellBuff_Struct MoreBuffs[5];	// 440 -1064 (-116 to go)
/*10656*/ uint8   unknown08492[1056];		// End of Buffs - was [360] - Added 360 for Feb 8 2011, not sure exactly where these extra bytes go, but know they go before zone_id.
/*11712*/ Disciplines_Struct  disciplines;	// [400] Known disciplines
/*12112*/ uint8   unknown11252[400];		// Discs?
/*12512*/ uint32  recastTimers[MAX_RECAST_TYPES]; // [80] Timers (UNIX Time of last use)
/*12912*/ uint8   unknown11732[480];		// Some type of Timers was 160
/*13072*/ uint32  endurance;			// Current endurance
/*13076*/ uint8   unknown13076[20];		// 
/*13096*/ uint32  aapoints_spent;		// Number of spent AA points
/*13100*/ uint32  aapoints;				// Unspent AA points
/*13104*/ uint8 unknown11924[4];
/*13108*/ Bandolier_Struct bandoliers[MAX_PLAYER_BANDOLIER]; // [6400] bandolier contents
/*19508*/ PotionBelt_Struct  potionbelt;	// [360] potion belt 72 extra octets by adding 1 more belt slot
/*19868*/ uint8 unknown18688[8];
/*19876*/ uint32 available_slots;
/*19880*/ uint8 unknown18700[80];		//
//END SUB-STRUCT used for shrouding. 
/*19960*/ char    name[64];				// Name of player - 19960 for Live 1180 difference
/*20024*/ char    last_name[32];		// Last name of player
/*20056*/ uint8   unknown18876[12];		//#### Not In Titanium #### new to SoF[12]
/*20068*/ int32   guild_id;				// guildid
/*20072*/ uint32  birthday;				// character birthday
/*20076*/ uint32  account_startdate;	// Date the Account was started
/*20080*/ uint32  lastlogin;			// character last save time
/*20084*/ uint32  timePlayedMin;		// time character played
/*20088*/ uint8   pvp;					// 1=pvp, 0=not pvp
/*20089*/ uint8   anon;					// 2=roleplay, 1=anon, 0=not anon
/*20090*/ uint8   gm;					// 0=no, 1=yes (guessing!)
/*20091*/ int8    guildrank;			// 0=member, 1=officer, 2=guildleader -1=no guild
/*20092*/ uint32  guildbanker;
/*20096*/ uint8 unknown18912[12];		// was 4
/*20108*/ uint32  exp;					// Current Experience
/*20112*/ uint8 unknown18920[8];
/*20120*/ uint32  timeentitledonaccount;
/*20124*/ uint8   languages[MAX_PP_LANGUAGE]; // List of languages
/*20149*/ uint8   unknown18957[7];    //#### uint8   unknown13109[4]; in Titanium ####[7]
/*20156*/ float     y;                  // Players y position (NOT positive about this switch)
/*20160*/ float     x;                  // Players x position
/*20164*/ float     z;                  // Players z position
/*20168*/ float     heading;            // Players heading
/*20172*/ uint8   unknown18980[4];		// ***Placeholder
/*20176*/ uint32  platinum_bank;		// Platinum Pieces in Bank
/*20180*/ uint32  gold_bank;			// Gold Pieces in Bank
/*20184*/ uint32  silver_bank;			// Silver Pieces in Bank
/*20188*/ uint32  copper_bank;			// Copper Pieces in Bank
/*20192*/ uint32  platinum_shared;		// Shared platinum pieces
/*20196*/ uint32  unknown20196[3];		// 
/*20208*/ uint8 unknown19004[2112];		//
/*22320*/ uint32  expansions;			// Bitmask for expansions ff 7f 00 00 - SoD
/*22324*/ uint8 unknown21132[12];
/*22336*/ uint32  autosplit;			// 0 = off, 1 = on
/*22340*/ uint8 unknown21148[16];
/*22356*/ uint16  zone_id;				// see zones.h
/*22358*/ uint16  zoneInstance;			// Instance id
/*22360*/ char      groupMembers[MAX_GROUP_MEMBERS][64];// 384 all the members in group, including self
/*22744*/ char      groupLeader[64];	// Leader of the group ?
/*22808*/ uint8 unknown21616[540];		// was [604]
/*23348*/ uint32  entityid;
/*23352*/ uint32  leadAAActive;			// 0 = leader AA off, 1 = leader AA on
/*23356*/ uint8 unknown22228[4];
/*23360*/ sint32  ldon_points_guk;		// Earned GUK points
/*23364*/ sint32  ldon_points_mir;		// Earned MIR points
/*23368*/ sint32  ldon_points_mmc;		// Earned MMC points
/*23372*/ sint32  ldon_points_ruj;		// Earned RUJ points
/*23376*/ sint32  ldon_points_tak;		// Earned TAK points
/*23380*/ sint32  ldon_points_available;// Available LDON points
/*23384*/ uint8 unknown22256[136];		// was [144]
/*23520*/ uint8 unknown23520[8];		//
/*23528*/ float  tribute_time_remaining;// Time remaining on tribute (millisecs)
/*23532*/ uint32  career_tribute_points;// Total favor points for this char
/*23536*/ uint32  unknown22332;			// *** Placeholder
/*23540*/ uint32  tribute_points;		// Current tribute points
/*23544*/ uint32  unknown22340;			// *** Placeholder
/*23548*/ uint32  tribute_active;		// 0 = off, 1=on
/*23552*/ Tribute_Struct tributes[MAX_PLAYER_TRIBUTES]; // [60] Current tribute loadout
/*23612*/ uint8 unknown22348[64];		// 
/*23676*/ double group_leadership_exp;	// Current group lead exp points
/*23684*/ double raid_leadership_exp;	// Current raid lead AA exp points
/*23692*/ uint32  group_leadership_points; // Unspent group lead AA points
/*23696*/ uint32  raid_leadership_points;  // Unspent raid lead AA points
/*23700*/ LeadershipAA_Struct leader_abilities; // [128]Leader AA ranks 19332
/*23828*/ uint8 unknown22632[128];		// was [132]
/*23956*/ uint32  air_remaining;		// Air supply (seconds)
/*23960*/ uint32  PVPKills;
/*23964*/ uint32  PVPDeaths;
/*23968*/ uint32  PVPCurrentPoints;
/*23972*/ uint32  PVPCareerPoints;
/*23976*/ uint32  PVPBestKillStreak;
/*23980*/ uint32  PVPWorstDeathStreak;
/*23984*/ uint32  PVPCurrentKillStreak;
/*23988*/ PVPStatsEntry_Struct PVPLastKill;		// size 88
/*24076*/ PVPStatsEntry_Struct PVPLastDeath;	// size 88
/*24164*/ uint32  PVPNumberOfKillsInLast24Hours;
/*24168*/ PVPStatsEntry_Struct PVPRecentKills[50];	// size 4400 - 88 each
/*28568*/ uint32 expAA;					// Exp earned in current AA point
/*28572*/ uint8  unknown27380[40];
/*28612*/ uint32 currentRadCrystals;	// Current count of radiant crystals
/*28616*/ uint32 careerRadCrystals;		// Total count of radiant crystals ever
/*28620*/ uint32 currentEbonCrystals;	// Current count of ebon crystals
/*28624*/ uint32 careerEbonCrystals;	// Total count of ebon crystals ever
/*28628*/ uint8  groupAutoconsent;		// 0=off, 1=on
/*28629*/ uint8  raidAutoconsent;		// 0=off, 1=on
/*28630*/ uint8  guildAutoconsent;		// 0=off, 1=on
/*28631*/ uint8  unknown27439;			// ***Placeholder (6/29/2005)
/*28632*/ uint32 level3;				// SoF looks at the level here to determine how many leadership AA you can bank.
/*28636*/ uint32 showhelm;				// 0=no, 1=yes
/*28640*/ uint32 RestTimer;
/*28644*/ uint8  unknown27452[1036];	// ***Placeholder (2/13/2007) was[1028]or[940]or[1380] - END of Struct 
/*29680*/ uint8  unknown29680[28];		// was 8 (added 20 to the end to get the right packet size)
/*29688*/
};
Note that for this PP to work, you have to change the following field to be 12 instead of 10:

Code:
static const uint32 MAX_PP_MEMSPELL		= 12;
Otherwise, you can add 8 bytes after the 2 fields that use that value and leave it as 10.

Also, here are the character select struct changes that are required to see characters properly:

Code:
struct CharacterSelectEntry_Struct {
/*0000*/	uint8 level;				//
/*0000*/	uint8 hairstyle;			//
/*0002*/	uint8 gender;				//
/*0003*/	char name[1];				//variable length, edi+0
/*0000*/	uint8 beard;				//
/*0000*/	uint8 haircolor;			//
/*0000*/	uint8 face;					//
/*0000*/	CharSelectEquip	equip[9];
/*0000*/	uint32 primary;				//
/*0000*/	uint32 secondary;			//
/*0000*/	uint8 u15;					// 0xff
/*0000*/	uint32 deity;				//
/*0000*/	uint16 zone;				//
/*0000*/	uint16 instance;
/*0000*/	uint8 gohome;				//
/*0000*/	uint8 u19;					// 0xff
/*0000*/	uint32 race;				//
/*0000*/	uint8 tutorial;				//
/*0000*/	uint8 class_;				//
/*0000*/	uint8 eyecolor1;			//
/*0000*/	uint8 beardcolor;			//
/*0000*/	uint8 eyecolor2;			//
/*0000*/	uint32 drakkin_heritage;	// Drakkin Heritage
/*0000*/	uint32 drakkin_tattoo;		// Drakkin Tattoo
/*0000*/	uint32 drakkin_details;		// Drakkin Details (Facial Spikes)
/*0000*/	uint8 unknown;				// New field to Live
/*0000*/	uint8 char_enabled;			// 0 for disabled character, 1 for enabled
/*0000*/	uint32 LastLogin;			// Unix timestamp of last login - 1212696584
/*0000*/	uint8 unknown2;				// 
/*0000*/	uint8 unknown3;				// 
/*0000*/	uint32 unknown4;			// Seen 01 00 00 00
};
There are a few unknowns there which I am not sure about. Also, I assume there is a new separate packet that sets the character creation limit (0/0 characters). So, until that is figured out, you can only use accounts that have existing characters on them.

Other than that, I think the only other thing I had to do was add 37 bytes to the spawn struct and I was able to get all of the way in-game. Unfortunately, the game closes immediately after you completely zone in. I found a few other struct size changes that were required, but still haven't figured out what is causing the client to close. My best guess is that it is due to me setting the inventory opcode to 0x0000 to prevent the packet from crashing the client completely. Maybe if I can figure out the item struct changes it will work, but that is probably the biggest change required for Live clients to work and I don't think it will be easy due to how slots were changed around.

I may work on it a bit more if I get time, but figured I would share the info I have so far in case anyone else wants to work on it.

If Steam doesn't release a functional client that we can use for EQEmu, we will need some way for the community to get a compatible client legally. Maybe there is a way we can do an update every 6 months or so to work with Live clients, but that still leaves out anyone that tries to join between those times after a new patch is in place that breaks compatibility. I just don't want to have to do this type of thing every month as it takes quite a bit of time. At least with the new scripts I made, it should make filling in 90% of the opcodes much quicker.

There may be a chance that Steam isn't getting a new client just because SOE knows that is where we have been getting our clients. If they were smart, they would just put a good VoA client on Steam and not a F2P HoT client or maybe the HoT client would be a different download to get just the patcher, since it still costs money to buy VoA (only up to HoT is free). Then, at least they would still make money off of EQEmu players vs forcing us to try to use Live patched clients which are free to everyone. If they want to stop EQEmu, there are much easier ways to do it, though I don't want to give them any ideas lol. I imagine they don't really care as much as you might think they would. So, hopefully EQ1 isn't on Steam right now just because Steam is always slow to get EQ client updates put up on their site.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!

Last edited by trevius; 04-06-2012 at 03:37 AM..
Reply With Quote
  #42  
Old 04-06-2012, 03:53 AM
Noport
Opcode Ninja
 
Join Date: Mar 2009
Location: San francisco
Posts: 426
Default

(Built Mar 21 2012 14:32:0
Now have 0/10 characters
you need too swap opcode like this OP_LogServer=0x5b0b with OP_GuildsList=0x1497
trevius Feel free take over
Code:
 

OP_MOTD=0x1a7b      			# V 0x1a7b 04/03/12
OP_SetChatServer=0x2c38     		# V 0x2c38 04/03/12
OP_SetChatServer2=0x441c    		# V 0x441c 04/03/12
OP_ZoneServerInfo=0x16f5		# V 0x16f5 04/03/12
OP_WorldComplete=0x3aef 		# V 0x3aef 04/03/12 
OP_FloatListThing=0x45d7		# V 0x45d7 04/03/12

# Reasons for Disconnect:
OP_ZoneUnavail=0x66e4			# This is not the right opcode. Produces a 'Your character is inaccessible' message.
OP_WorldClientReady=0x3f24      	# V 0x3f24 04/03/12 
OP_CharacterStillInZone=0x0000		# 
OP_WorldChecksumFailure=0x0000		# 
OP_WorldLoginFailed=0x0000		# 
OP_WorldLogout=0x0000			# 
OP_WorldLevelTooHigh=0x0000		# 
OP_CharInacessable=0x0000		# 
OP_UserCompInfo=0x7e2f			# V 0x7e2f 04/03/12
# OP_SendExeChecksum=0x0000		# 
# OP_SendBaseDataChecksum=0x0000	# 

# Zone in opcodes                       
OP_AckPacket=0x3594			# V 0x3594 04/03/12
OP_ZoneEntry=0x5821 			# V 0x5821 04/03/12
OP_ReqNewZone=0x5417			# V 0x5417 04/03/12 
OP_NewZone=0x43ac			# V 0x43ac 04/03/12
OP_ZoneSpawns=0x0000			# 
OP_PlayerProfile=0x6afd 		# V 0x6afd 04/03/12
OP_TimeOfDay=0x6015			# V 0x6015 04/03/12
OP_LevelUpdate=0x6e1c			# V 0x6e1c 04/03/12 
OP_Stamina=0x7686			# V 0x7686 04/03/12 
OP_RequestClientZoneChange=0x18ea	# V 0x18ea 04/03/12
OP_ZoneChange=0x0000			# 
OP_LockoutTimerInfo=0x0000		# 
OP_ZoneServerReady=0x0000		# 
OP_ZoneInUnknown=0x0000			# 
OP_LogoutReply=0x0000			# 
OP_PreLogoutReply=0x0000		# 

# Required to fully log in              
OP_SpawnAppearance=0x3f55		# V 0x3f55 04/03/12
OP_TributeUpdate=0x047c			# V 0x047c 04/03/12 
OP_TributeTimer=0x0000			#
OP_TaskDescription=0x2e4f		# V 0x2e4f 04/03/12
OP_TaskActivity=0x512B			# V 0x512B 04/03/12
OP_CompletedTasks=0x3141		# V 0x3141 04/03/12 
OP_Weather=0x4658			# V 0x4658 04/03/12
OP_SendAATable=0x6a7e			# V 0x6a7e 04/03/12 
OP_UpdateAA=0x2ac1			# V 0x2ac1 04/03/12
OP_RespondAA=0x7bf6			# V 0x7bf6 04/03/12
OP_ReqClientSpawn=0x47e7		# V 0x47e7 04/03/12
OP_SpawnDoor=0x7113		        # V 0x7113 04/03/12
OP_GroundSpawn=0x33e5			# V 0x33e5 04/03/12
OP_SendZonepoints=0x399f   		# V 0x399f 04/03/12
OP_SendAAStats=0x5832			# V 0x5832 04/03/12
OP_WorldObjectsSent=0x7b73		# V 0x7b73 04/03/12
OP_BlockedBuffs=0x664a			# V 0x664a 04/03/12
OP_SendExpZonein=0x54e8			# V 0x54e8 04/03/12
OP_SendTributes=0x0000			#
OP_TributeInfo=0x4775			# V 0x4775 04/03/12
OP_SendGuildTributes=0x0000		#
OP_AAExpUpdate=0x1318			# V 0x1318 04/03/12 
OP_ExpUpdate=0x0000   			# V 0x0000 04/03/12 
OP_HPUpdate=0x2369			# V 0x2369 04/03/12
OP_ManaChange=0x8543			# V 0x8543 04/03/12 
OP_TGB=0x3672				# V 0x3672 04/03/12 
OP_SpecialMesg=0x039d			# V 0x039d 04/03/12 
OP_GuildMemberList=0x51bc		# V 0x51bc 04/03/12
OP_GuildMOTD=0x0a1d  			# V 0x0a1d 04/03/12
OP_CharInventory=0x6cfe    		# V 0x6cfe 04/03/12 
OP_WearChange=0x1a58			# V 0x1a58 04/03/12
OP_ClientUpdate=0x7062			# V 0x7062 04/03/12 
OP_ClientReady=0x6cdc			# V 0x6cdc 04/03/12 
OP_SetServerFilter=0x053a		# V 0x053a 04/03/12
OP_LeaderExpUpdate=0x3703               # V 0x3703 04/03/12 
OP_Lockouts=0x488b                      # V 0x488b 04/03/12 

# Guild Opcodes
OP_GetGuildMOTD=0x709d			# V 0x709d 04/03/12 
OP_GetGuildMOTDReply=0x0000		#
OP_GuildMemberUpdate=0x589f		# V 0x589f 04/03/12
OP_GuildInvite=0x0000			#
OP_GuildRemove=0x0000			#
OP_GuildPeace=0x0000			#
OP_SetGuildMOTD=0x0000			#
#OP_GuildList=0x5b0b			#
OP_GuildWar=0x0000			#
OP_GuildLeader=0x0000			#
OP_GuildDelete=0x0000			#
OP_GuildInviteAccept=0x0000		#
OP_GuildDemote=0x0000			#
OP_GuildPublicNote=0x17a2		# V 0x17a2 04/03/12
OP_GuildManageBanker=0x0000		#
OP_GuildBank=0x7b22			# V 0x7b22 04/03/12
OP_SetGuildRank=0x0000			#
OP_GuildUpdateURLAndChannel=0x0000	#
OP_GuildMemberLevelUpdate=0x0000	# 
OP_ZoneGuildList=0x0000			# 
OP_GetGuildsList=0x0000			# 
# OP_GuildManageRemove=0x0000		# 
# OP_GuildManageAdd=0x0000		# 
# OP_GuildManageStatus=0x0000		# 

# GM/guide opcodes
OP_GMServers=0x0000			#
OP_GMBecomeNPC=0x0000			#
OP_GMZoneRequest=0x6f79			# V 0x6f79 04/03/12
OP_GMZoneRequest2=0x02d6		# V 0x02d6 04/03/12
OP_GMGoto=0x0000			#
OP_GMSearchCorpse=0x0000		#
OP_GMHideMe=0x0000			#
OP_GMDelCorpse=0x0000			#
OP_GMApproval=0x0000			#
OP_GMToggle=0x0000			#
OP_GMSummon=0x0000			#
OP_GMEmoteZone=0x0000			#
OP_GMEmoteWorld=0x0000			#
OP_GMFind=0x0000			#
OP_GMKick=0x6980			# V 0x6980 04/03/12
OP_GMKill=0x0000			#
OP_GMNameChange=0x0000			#
OP_GMLastName=0x23a1			# V 0x23a1 04/03/12

OP_InspectAnswer=0x0c54			# V 0x0c54 04/03/12
OP_BeginCast=0x0d5a			# V 0x0d5a 04/03/12
OP_BuffFadeMsg=0x3887			# V 0x3887 04/03/12
OP_ConsentResponse=0x35c6		# V 0x35c6 04/03/12 
OP_MemorizeSpell=0x2917			# V 0x2917 04/03/12 
OP_SwapSpell=0x28A7			# V 0x28A7 04/03/12
OP_CastSpell=0x71bf    			# V 0x71bf 04/03/12 
OP_Consider=0x70c6			# V 0x70c6 04/03/12
OP_FormattedMessage=0x4675		# V 0x4675 04/03/12 
OP_SimpleMessage=0x0698			# V 0x0698 04/03/12
OP_Buff=0x0000				#
OP_Illusion=0x10b7			# V 0x10b7 04/03/12 
OP_MoneyOnCorpse=0x4074			# V 0x4074 04/03/12 
OP_RandomReply=0x07fb			# V 0x07fb 04/03/12
OP_DenyResponse=0x0370			# V 0x0370 04/03/12 
OP_SkillUpdate=0x7f01			# V 0x7f01 04/03/12
OP_GMTrainSkillConfirm=0x0000		#
OP_RandomReq=0x303E			# V 0x303E 04/03/12
OP_Death=0x6685  			# V 0x6685 04/03/12  	
OP_Bind_Wound=0x0000			#
OP_GMTraining=0x0000			#
OP_GMEndTraining=0x0000			#
OP_GMTrainSkill=0x0000			#
OP_Animation=0x0b93			# V 0x0b93 04/03/12
OP_Begging=0x13e7			# V 0x13e7 04/03/12
OP_Consent=0x6bb9			# V 0x6bb9 04/03/12
OP_ConsentDeny=0x6b7f			# V 0x6b7f 04/03/12 
OP_AutoFire=0x0000			#
OP_PetCommands=0x10a1			# V 0x10a1 04/03/12
OP_DeleteSpell=0x0000			#
OP_Surname=0x4668			# V 0x4668 04/03/12
OP_ClearSurname=0x0000			#
OP_FaceChange=0x0000			#
OP_SenseHeading=0x05ac			# V 0x05ac 04/03/12
OP_Action=0x1b85			# V 0x1b85 04/03/12
OP_ConsiderCorpse=0x00dd		# V 0x00dd 04/03/12
OP_HideCorpse=0x0000			#
OP_Bug=0x7ac3				# V 0x7ac3 04/03/12
OP_Feedback=0x52b5			# V 0x52b5 04/03/12 
OP_Report=0x0375			# V 0x0375 04/03/12
OP_Damage=0x7519			# V 0x7519 04/03/12 
OP_ChannelMessage=0x2e79		# V 0x2e79 04/03/12
OP_Assist=0x0000			#
OP_AssistGroup=0x0000			#
OP_MoveCoin=0x0000			#
OP_ZonePlayerToBind=0x0000		#
OP_KeyRing=0x0000			#
OP_WhoAllRequest=0x117a			# V 0x117a 04/03/12
OP_WhoAllResponse=0x15de		# V 0x15de 04/03/12
OP_FriendsWho=0x0000			#
OP_ConfirmDelete=0x3838			# V 0x3838 04/03/12
OP_Logout=0x3401			# V 0x3401 04/03/12 
OP_Rewind=0x0000			#
OP_TargetCommand=0x40b6			# V 0x40b6 04/03/12
OP_InspectRequest=0x2683		# V 0x2683 04/03/12
OP_Hide=0x6f64				# V 0x6f64 04/03/12
OP_Jump=0x08b3				# V 0x08b3 04/03/12 
OP_Camp=0x2eeb				# V 0x2eeb 04/03/12
OP_Emote=0x7434				# V 0x7434 04/03/12 
OP_SetRunMode=0x4ed9			# V 0x4ed9 04/03/12
OP_BankerChange=0x0000			#
OP_TargetMouse=0x3edc			# V 0x3edc 04/03/12
OP_MobHealth=0x5cb0			# V 0x5cb0 04/03/12
OP_InitialMobHealth=0x010d		# V 0x010d 04/03/12
OP_TargetHoTT=0x0000			#
OP_TargetBuffs=0x0000			#
OP_BuffCreate=0x0000
OP_DeleteSpawn=0x28c7			# V 0x28c7 04/03/12
OP_AutoAttack=0x1df9			# V 0x1df9 04/03/12
OP_AutoAttack2=0x701f			# V 0x701f 04/03/12
OP_Consume=0x31c2			# V 0x31c2 04/03/12
OP_MoveItem=0x2963			# V 0x2963 04/03/12
OP_DeleteItem=0x0000			#
OP_DeleteCharge=0x0000			#
OP_ItemPacket=0x2dd3			# V 0x2dd3 04/03/12
OP_ItemLinkResponse=0x24C9		# V 0x24C9 04/03/12 
OP_ItemLinkClick=0x6948			# V 0x6948 04/03/12
OP_NewSpawn=0x0000			#
OP_Track=0x79e0				# V 0x79e0 04/03/12  	
OP_TrackTarget=0x0000			#
OP_TrackUnknown=0x0000			#
OP_ClickDoor=0x48f9			# V 0x48f9 04/03/12 
OP_MoveDoor=0x231F			# V 0x231F 04/03/12
OP_EnvDamage=0x2730			# V 0x2730 04/03/12 
OP_BoardBoat=0x4298			# V 0x4298 04/03/12
OP_Forage=0x7c33			# V 0x7c33 04/03/12
OP_LeaveBoat=0x67c9			# V 0x67c9 04/03/12
OP_ControlBoat=0x0000			#
OP_SafeFallSuccess=0x0000		#
OP_RezzComplete=0x0000			#
OP_RezzRequest=0x0000			#
OP_RezzAnswer=0x0000			#
OP_Shielding=0x0000			#
OP_RequestDuel=0x0000			#
OP_MobRename=0x0000			#
OP_AugmentItem=0x0000			#
OP_WeaponEquip1=0x7404			# V 0x7404 04/03/12 //looks like 1 & 2 use same opcode- 2nd uint32 specifies weapon 1 or 2
OP_WeaponEquip2=0x0000			#
OP_WeaponUnequip2=0x0000		#
OP_ApplyPoison=0x0000			#
OP_Save=0x1436				# V 0x1436 04/03/12 
OP_TestBuff=0x0000			#
OP_CustomTitles=0x6ade			# V 0x6ade 04/03/12
OP_Split=0x10a6				# V 0x10a6 04/03/12
OP_YellForHelp=0x61ef			# V 0x61ef 04/03/12
OP_LoadSpellSet=0x61ac			# V 0x61ac 04/03/12
OP_Bandolier=0x0000			#
OP_PotionBelt=0x0000			#
OP_DuelResponse=0x0000			#
OP_DuelResponse2=0x0000			#
OP_SaveOnZoneReq=0x2913			# V 0x2913 04/03/12
OP_ReadBook=0x0000			#
OP_Dye=0x0000				#
OP_InterruptCast=0x0000			#
OP_AAAction=0x0a4f			# V 0x0a4f 04/03/12
OP_LeadershipExpToggle=0x0000		#
OP_LeadershipExpUpdate=0x0000		#
OP_PurchaseLeadershipAA=0x0000		#
OP_UpdateLeadershipAA=0x0000		#
OP_MarkNPC=0x0000			#
OP_ClearNPCMarks=0x0000			#
OP_DoGroupLeadershipAbility=0x0000	#
OP_GroupLeadershipAAUpdate=0x1aae	# V 0x1aae 04/03/12
OP_DelegateAbility=0x0000		#
OP_SetGroupTarget=0x0000		#
OP_Charm=0x0000				#
OP_Stun=0x0000				#
OP_SendFindableNPCs=0x3015		# V 0x3015 04/03/12
OP_FindPersonRequest=0x1089		# V 0x1089 04/03/12
OP_FindPersonReply=0x0000		#
OP_Sound=0x0000				#
OP_PetBuffWindow=0x0000			#
OP_LevelAppearance=0x0000		#
OP_Translocate=0x0000			#
OP_Sacrifice=0x0000			#
OP_PopupResponse=0x0000			#
OP_OnLevelMessage=0x0000		#
OP_AugmentInfo=0x0000			#
OP_Petition=0x0000			#
OP_SomeItemPacketMaybe=0x4200		# V 0x420 04/03/12
OP_SomeItemPacketMaybe=0x0000		#
OP_PVPStats=0x0000			#
OP_PVPLeaderBoardRequest=0x0000		#
OP_PVPLeaderBoardReply=0x0000		#
OP_PVPLeaderBoardDetailsRequest=0x0000	#
OP_PVPLeaderBoardDetailsReply=0x0000	#
OP_RestState=0x0000			#
OP_RespawnWindow=0x063b			# V 0x063b 04/03/12
OP_DisciplineTimer=0x0000		#
OP_LDoNButton=0x0000			#
OP_SetStartCity=0x0000			#
OP_VoiceMacroIn=0x0000			#
OP_VoiceMacroOut=0x0000			#
OP_ItemViewUnknown=0x0000		#
OP_VetRewardsAvaliable=0x0000		#
OP_VetClaimRequest=0x0000		#
OP_VetClaimReply=0x0000			#
OP_CrystalCountUpdate=0x0000		#
OP_DisciplineUpdate=0x0000		# 
OP_BecomeCorpse=0x0000			# 
OP_Action2=0x631a			# V 0x631a 04/03/12
OP_MobUpdate=0x4656			# V 0x4656 04/03/12
OP_NPCMoveUpdate=0x2339			# V 0x2339 04/03/12
OP_CameraEffect=0x0000			#
OP_SpellEffect=0x0000			#

OP_DzQuit=0x1539
OP_DzListTimers=0x21e9
OP_DzAddPlayer=0x3657
OP_DzRemovePlayer=0x054e
OP_DzSwapPlayer=0x4661
OP_DzMakeLeader=0x226f
OP_DzPlayerList=0x74e4
OP_DzJoinExpeditionConfirm=0x3c5e
OP_DzJoinExpeditionReply=0x1154
OP_DzExpeditionInfo=0x1150
OP_DzMemberStatus=0x2d17
OP_DzLeaderStatus=0x2caf
OP_DzExpeditionEndsWarning=0x6ac2
OP_DzExpeditionList=0x70d8
OP_DzMemberList=0x15c4
OP_DzCompass=0x01cb
OP_DzChooseZone=0x0000

# New Opcodes
OP_SpawnPositionUpdate=0x0000	       #
OP_ManaUpdate=0x7c94		       # V 0x7c94 04/03/12
OP_EnduranceUpdate=0x5851	       # V 0x5851 04/03/12
OP_MobManaUpdate=0x190c		       # V 0x190c 04/03/12
OP_MobEnduranceUpdate=0x4d27	       # V 0x4d27 04/03/12
OP_MovementHistory=0x1910              # V 0x1910 04/03/12
OP_Shroud=0x1d51                       # V 0x1d51 04/03/12 
OP_GroupLeader=0x5fe3                  # V 0x5fe3 04/03/12
OP_DzSwitchInfo=0x28ce                 # V 0x28ce 04/03/12 
OP_DzInfo=0x6c75                       # V 0x6c75 04/03/12 
OP_EndUpdate=0x5851                    # V 0x5851 04/03/12 
OP_SpawnRename=0x0598                  # V 0x1055 04/03/12 
OP_GroupInvited=0x3288                 # V 0x3288 04/03/12  
OP_RemoveSpawn=0x3164                  # V 0x3164 04/03/12
OP_CorpseLocResponse=0x2222            # V 0x2222 04/03/12
OP_CommonMessage=0x2e79                # V 0x2e79 04/03/12
OP_Marketplace=0x7c11                  # V 0x7c11 04/03/12  
OP_WelcomeScreenTitle=0x097f           # V 0x097f 04/03/12
OP_VeteranRewards=0x5d0f               # V 0x5d0f 04/03/12
OP_WelcomeScreenURL=0x3ef9             # V 0x3ef9 04/03/12 
OP_Claims=0x3637                       # V 0x3637 04/03/12 
OP_PollQuestions=0x47b3                # V 0x47b3 04/03/12
OP_PollResponses=0xa1e6                # V 0xa1e6 04/03/12
OP_ShroudProgression=0x064d            # V 0x064d 04/03/12
OP_Fellowship=0x01e5                   # V 0x01e5 04/03/12
OP_ExpandedGuildInfo=0x03d1            # V 0x03d1 04/03/12 
OP_OpenTradeskillContainer=0x29df      # V 0x29df 04/03/12 
OP_TradeskillRecipes=0x1ecf            # V 0x1ecf 04/03/12 
OP_ItemPlayerPacket=0x6cfe             # V 0x6cfe 04/03/12 
OP_GuildExtendedInfo=0x7161            # V 0x7161 04/03/12
OP_RequestZoneChange=0x24d8            # V 0x24d8 04/03/12
OP_DeltaCheck=0x16c1                   # V 0x16c1 04/03/12
OP_FindResponse=0x71b1                 # V 0x71b1 04/03/12
OP_NPCMoveUpdate=0x2339                # V 0x2339 04/03/12
OP_Marketplace=0x0c32                  # V 0x0c32 04/03/12
OP_DzMembers=0x012f                    # V 0x012f 04/03/12 
OP_Campfire=0x4292                     # V 0x4292 04/03/12 
OP_VoiceChat=0x0fd3                    # V 0x0fd3 04/03/12 
OP_TradeDeny=0x2c03                    # V 0x2c03 04/03/12 

# Looting                          
OP_LootRequest=0x1d85		       # V 0x1d85 04/03/12 
OP_EndLootRequest=0x00bc	       # V 0x00bc 04/03/12
OP_LootItem=0x5bd9		       # V 0x5bd9 04/03/12
OP_LootComplete=0x528f		       # V 0x528f 04/03/12

# bazaar trader stuff stuff:        
OP_BazaarSearch=0x2881		       # V 0x2881 04/03/12
OP_TraderDelItem=0x0000		       #
OP_BecomeTrader=0x0000		       #
OP_TraderShop=0x0681		       # V 0x0681 04/03/12
OP_Trader=0x358a		       # V 0x358a 04/03/12 
OP_TraderBuy=0x783c		       # V 0x783c 04/03/12 
OP_Barter=0x0000		       #
OP_ShopItem=0x0000		       # 
OP_BazaarInspect=0x0000		       # 
OP_Bazaar=0x0000		       # 
OP_TraderItemUpdate=0x0000	       # 

# pc/npc trading
OP_TradeRequest=0x0c24		       # V 0x0c24 04/03/12 
OP_TradeAcceptClick=0x064a	       # V 0x064a 04/03/12
OP_TradeRequestAck=0x606a	       # V 0x606a 04/03/12
OP_TradeCoins=0x1418		       # V 0x1418 04/03/12
OP_FinishTrade=0x1ebb		       # V 0x1ebb 04/03/12
OP_CancelTrade=0x527e		       # V 0x527e 04/03/12
OP_TradeMoneyUpdate=0x0000	       #
OP_MoneyUpdate=0x0000		       #
OP_TradeBusy=0x0000		       #

# Sent after canceling trade or after closing tradeskill object
OP_FinishWindow=0x0000		       #
OP_FinishWindow2=0x0000		       #

# Sent on Live for what seems to be item existance verification
# Ex. Before Right Click Effect happens from items
OP_ItemVerifyRequest=0x0000	       #
OP_ItemVerifyReply=0x0000	       #

# merchant crap
OP_ShopPlayerSell=0xfe13	       # V 0xfe13 04/03/12
OP_ShopRequest=0x45f9		       # V 0x45f9 04/03/12
OP_ShopEnd=0x7e03		       # V 0x7e03 04/03/12
OP_ShopEndConfirm=0x0000	       #
OP_ShopPlayerBuy=0x0af6		       # V 0x0af6 04/03/12
OP_ShopDelItem=0x0000		       #

# tradeskill stuff:
OP_ClickObject=0x5f0d		       # V 0x5f0d 04/03/12
OP_ClickObjectAction=0x0000	       #
OP_ClearObject=0x0000		       #
OP_RecipeDetails=0x0000		       #
OP_RecipesFavorite=0x0000	       #
OP_RecipesSearch=0x0000		       #
OP_RecipeReply=0x0000		       #
OP_RecipeAutoCombine=0x0000	       #
OP_TradeSkillCombine=0x0840	       # V 0x0840 04/03/12

# Tribute Packets:
OP_OpenGuildTributeMaster=0x0000       #
OP_OpenTributeMaster=0x0000	       #
OP_SelectTribute=0x0000		       #
OP_TributeItem=0x0000		       #
OP_TributeMoney=0x0000		       #
OP_TributeToggle=0x0000		       #
OP_TributePointUpdate=0x0000	       #
OP_TributeNPC=0x0000		       # 
OP_GuildTributeInfo=0x28c1	       # V 0x28c1 04/03/12
OP_OpenTributeReply=0x0000	       # 
# OP_GuildTributeStatus=0x6774	       # V 0x6774 04/03/12

# Adventure packets:
OP_LeaveAdventure=0x0000	       #	
OP_AdventureFinish=0x0000	       #
OP_AdventureInfoRequest=0x0000	       #	
OP_AdventureInfo=0x0000		       #
OP_AdventureRequest=0x0000	       #
OP_AdventureDetails=0x0000	       #
OP_AdventureData=0x0000		       #
OP_AdventureUpdate=0x0000	       #
OP_AdventureMerchantRequest=0x0000     #
OP_AdventureMerchantResponse=0x0000    #
OP_AdventureMerchantPurchase=0x0000    #
OP_AdventureMerchantSell=0x0000	       #
OP_AdventurePointsUpdate=0x0000	       #
OP_AdventureStatsRequest=0x0000	       #
OP_AdventureStatsReply=0x0000	       #
OP_AdventureLeaderboardRequest=0x0000  #
OP_AdventureLeaderboardReply=0x0000    #

# Group Opcodes
OP_GroupInvite=0x3288		       # V 0x3288 04/03/12
OP_GroupFollow=0x74e9		       # V 0x74e9 04/03/12 
OP_GroupUpdate=0x367f		       # V 0x367f 04/03/12
OP_GroupUpdate2=0x4b82		       # V 0x4b82 04/03/12
OP_GroupCancelInvite=0x2736	       # V 0x2736 04/03/12
OP_GroupAcknowledge=0x0000	       #
OP_GroupDelete=0x0000		       # 
OP_CancelInvite=0x0000		       #
OP_GroupFollow2=0x44c2		       # V 0x44c2 04/03/12 
OP_GroupInvite2=0x5251		       # V 0x5251 04/03/12
OP_GroupDisband=0x367b		       # V 0x367b 04/03/12
OP_GroupDisband2=0x4b82		       # V 0x4b82 04/03/12
OP_GroupLeaderChange=0x0000	       #
OP_GroupRoles=0x6364		       # V 0x6364 04/03/12

# LFG/LFP Opcodes
OP_LFGCommand=0x68ac	               # V 0x68ac 04/03/12
OP_LFGGetMatchesRequest=0x20c6	       # V 0x20c6 04/03/12 
OP_LFGGetMatchesResponse=0x3d0c	       # V 0x3d0c 04/03/12 
OP_LFPGetMatchesRequest=0x35a6	       # V 0x35a6 04/03/12
OP_LFPCommand=0x6f82		       # V 0x6f82 04/03/12
OP_LFGAppearance=0x0000		       # 
OP_LFGResponse=0x0000		       # 

# Raid Opcodes
OP_RaidInvite=0x0c08		       # V 0x0c08 04/03/12 
OP_RaidUpdate=0x0000		       #  
OP_RaidJoin=0x550f		       # V 0x550f 04/03/12 

# Button-push commands
OP_Taunt=0x0000			       #
OP_CombatAbility=0x0000		       #
OP_SenseTraps=0x5666		       # V 0x5666 04/03/12
OP_PickPocket=0x0000		       #
OP_DisarmTraps=0x34e8		       # V 0x34e8 04/03/12 
OP_Disarm=0x0000		       #
OP_Sneak=0x4312			       # V 0x4312 04/03/12
OP_Fishing=0x0000		       #
OP_InstillDoubt=0x0000		       #
OP_FeignDeath=0x0000		       #
OP_Mend=0x14ef			       # V 0x14ef 04/03/12
OP_LDoNOpen=0x0000		       #

# Task packets
OP_TaskActivityComplete=0x0000	       #
OP_TaskMemberList=0x0000	       #
OP_OpenNewTasksWindow=0x0000	       #
OP_AvaliableTask=0x0000		       #
OP_AcceptNewTask=0x0000		       #
OP_TaskHistoryRequest=0x0000	       #
OP_TaskHistoryReply=0x0000	       #
OP_CancelTask=0x0000		       #
OP_DeclineAllTasks=0x0000	       # 

# Title opcodes
OP_NewTitlesAvailable=0x0000	       #
OP_RequestTitles=0x0000		       #
OP_SendTitleList=0x0000		       #
OP_SetTitle=0x0000		       #
OP_SetTitleReply=0x0000		       #

# mail opcodes
OP_Command=0x0000		       # 
OP_MailboxHeader=0x0000		       # 
OP_MailHeader=0x0000		       # 
OP_MailBody=0x0000		       # 
OP_NewMail=0x0000		       # 
OP_SentConfirm=0x0000		       #
# # # # # # # # # # #  Below this point should not be needed		# # # # # # # # # # # 

# This section are all unknown in Titanium
OP_ForceFindPerson=0x0000	       # 
OP_LocInfo=0x0000		       # 
OP_ReloadUI=0x0000		       # 
OP_ItemName=0x0000		       # 
OP_ItemLinkText=0x0000		       # 
OP_MultiLineMsg=0x0000		       # 
OP_MendHPUpdate=0x1ffa		       # V 0x1ffa 04/03/12
OP_TargetReject=0x0000		       # 
OP_SafePoint=0x0000		       # 
OP_IncreaseStats=0x0000		       # 
OP_ApproveZone=0x0000		       # 
OP_ZoneComplete=0x0000		       # 
OP_ClientError=0x0000		       # 
OP_DumpName=0x0000		       # 
OP_Heartbeat=0x0000		       # 
OP_CrashDump=0x0000		       # 
OP_LoginComplete=0x0000		       # 

# discovered opcodes not yet used:
OP_PickLockSuccess=0x0000	       # 
OP_PlayMP3=0x0000		       # 
OP_ReclaimCrystals=0x0000	       # 
OP_DynamicWall=0x0000		       # 
OP_OpenDiscordMerchant=0x0000	       # 
OP_DiscordMerchantInventory=0x0000     # 
OP_GiveMoney=0x0000		       # 
OP_RequestKnowledgeBase=0x0000	       # 
OP_KnowledgeBase=0x0000		       # 
OP_SlashAdventure=0x0000	       # /adventure
OP_BecomePVPPrompt=0x0000	       # 
OP_MoveLogRequest=0x0000	       # gone I think
OP_MoveLogDisregard=0x0000	       # gone I think

# named unknowns, to make looking for real unknown easier
OP_AnnoyingZoneUnknown=0x0000	       # 
OP_Some6ByteHPUpdate=0x0000	       # seems to happen when you target group members
OP_QueryResponseThing=0x0000	       # 


#  realityincarnate: these are just here to stop annoying several thousand byte packet dumps
#OP_LoginUnknown1=0x0000	       # U OP_SendSpellChecksum
#OP_LoginUnknown2=0x0000	       # U OP_SendSkillCapsChecksum

# Petition Opcodes
OP_PetitionSearch=0x0000	       # search term for petition
OP_PetitionSearchResults=0x0000	       # (list of?) matches from search
OP_PetitionSearchText=0x0000	       # text results of search

OP_PetitionUpdate=0x0000	       # 
OP_PetitionCheckout=0x0000	       # 
OP_PetitionCheckIn=0x0000	       # 
OP_PetitionQue=0x0000		       # 
OP_PetitionUnCheckout=0x0000	       # 
OP_PetitionDelete=0x0000	       # 
OP_DeletePetition=0x0000	       # 
OP_PetitionResolve=0x0000	       # 
OP_PDeletePetition=0x0000	       # 
OP_PetitionBug=0x0000		       # 
OP_PetitionRefresh=0x0000	       # 
OP_PetitionCheckout2=0x0000	       # 
OP_PetitionViewPetition=0x0000	       # 

#Login opcodes 
OP_SessionReady=0x0000 
OP_Login=0x0000
OP_ServerListRequest=0x0000
OP_PlayEverquestRequest=0x0000 
OP_PlayEverquestResponse=0x0000 
OP_ChatMessage=0x0000 
OP_LoginAccepted=0x0000 
OP_ServerListResponse=0x0000 
OP_Poll=0x0000 
OP_EnterChat=0x0000 
OP_PollResponse=0x0000

# raw opcodes
OP_RAWSessionRequest=0x0000	       # 
OP_RAWSessionResponse=0x0000	       # 
OP_RAWCombined=0x0000		       # 
OP_RAWSessionDisconnect=0x0000	       # 
OP_RAWKeepAlive=0x0000		       # 
OP_RAWSessionStatRequest=0x0000	       # 
OP_RAWSessionStatResponse=0x0000       # 
OP_RAWPacket=0x0000		       # 
OP_RAWFragment=0x0000		       # 
OP_RAWOutOfOrderAck=0x0000	       # 
OP_RAWAck=0x0000		       # 
OP_RAWAppCombined=0x0000	       # 
OP_RAWOutOfSession=0x0000	       # 

# we need to document the differences between these packets to make identifying them easier
OP_Some3ByteHPUpdate=0x6537	       # V 0x6537 04/03/12 initial HP update for mobs merc
OP_InitialHPUpdate=0x0000	       #
OP_MercenaryDataRequest=0x33b8         # V 0x33b8 04/03/12
OP_MercenaryDataResponse=0x0327        # V 0x0327 04/03/12
OP_MercenaryHire=0x0000                #
OP_MercenaryAssign=0x0000              #
OP_MercenaryTimer=0x0000               #
OP_MercenaryDismiss=0x2ef8             # V 0x2ef8 04/03/12
OP_Mercenarysuspend=0x1a79             # V 0x1a79 04/03/12
Reply With Quote
  #43  
Old 04-06-2012, 05:29 AM
Noport
Opcode Ninja
 
Join Date: Mar 2009
Location: San francisco
Posts: 426
Default

VoA and HoT are using the same opcodes same client we can make opcode changes and have the latest client VoA. I have access to both HoT and VoA on sony
Reply With Quote
  #44  
Old 04-07-2012, 03:48 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Noport, that is because HoT and VoA are the same client on Live. No matter what expansions you own or do not own, there is no difference in clients when you are fully patched to Live. If you are referring to the clients that are compatible with EQEmu, then HoT and VoA are 2 different build dates and use different opcodes and packet structures.

Anyway, I got the issue with it crashing out fixed. Now, the Live/VoA client can log in and quite a bit is functional, but there is still quite a bit that needs to be done to make it even playable. I will probably try to get what I have done up on the SVN soon and just comment out the patch registration for VoA until it is more finalized. That way, people can work on it or test it out in the meantime.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #45  
Old 04-07-2012, 04:44 AM
Noport
Opcode Ninja
 
Join Date: Mar 2009
Location: San francisco
Posts: 426
Default

Thank you trevius that sounds like a great plan
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 12:46 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3