EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Development::Development (https://www.eqemulator.org/forums/forumdisplay.php?f=590)
-   -   VoA Development Tracking (https://www.eqemulator.org/forums/showthread.php?t=35177)

trevius 04-10-2012 04:09 AM

VoA Development Tracking
 
This thread was created to help keep track of the development of the Veil of Alaris client. Currently, we are working on the client that has a build date of March 21st 2012. This is likely to change over time with SOE patches. It has not yet been determined how following Live patches will be handled, if at all. As of writing this, you can get this client by fully patching to EQ Live using an F2P (or paid) account.

This thread can be used as a reference for what needs work, and who is working on what. I will try to keep this post updated as people update the thread with any progress or notes.

This thread can be used for any development related work or concerns as well as to report any bugs with the client that haven't already been documented.

This thread will be focused on VoA specific bugs, not general bugs that exists in some or all other clients. Because we are already tracking known issues with previous clients in other threads, this thread will not repeat those same issues. For reference, see the following threads for previous client development tracking:
SoD Development Tracking
Underfoot Development Tracking


Last Update - April 22th 2012


Top Priority Work:
1. AA Purchasing - Purchasing AAs is not yet functional. Need to review how it is handled on Live currently.
2. Selling to merchants - Merchant Lists now display and buying from them works, but it looks like the sell packet now sends the item instance Serialized number instead of the merchant/inventory slot. The code supporting this may need to be adjusted.
3. Guilds - Any character in a guild will crash the client when they try to log in. Most likely, this is just a structure issue that needs to be corrected. It looks like the issue is with the Guild Member List packet.
4. Looting - Looting is functional if right clicking to loot, but left clicking to loot to the cursor doesn't work. This is due to how slots were completely changed around and needs further investigation on how to deal with it properly.
5. Tasks - Tasks are not working at all yet. This is due to packet structure changes that will need encodes before sending them to the client.
6. Adventure Merchants - These bug the client if clicked currently. Probably some struct changes needed.
7. Tradeskill Containers - Clicking a world tradeskill object to open it causes the client to bug. This is probably due to an opcode or structure issue.
8. Popups - Popup windows aren't working at all right now. Most likely a struct change is needed.

I am sure there are plenty of broken systems that need work, and will update this section as more issues are identified.


Medium Priority Work:
1. Wear Change - The Wearchange structure changed slightly and now some armor textures don't seem to show up correctly. Needs further investigation.


Low Priority Work:
Pending further assessment


Client Issues:
None known as of yet


Database and Source Code Changes that will be needed at some point:
Will need to convert the source and database to use the new Live format for item slots to allow bags larger than 10 slots.


New Systems to VoA that did not exist in Underfoot (that may/do require code support):
1. Containers can go above 10 slots and it looks like the max is at least 32 slot (though there is no reason for hard setting a max in the source with the new slot format).
2. Containers can be stored inside other containers. So long as they are empty and the same size or smaller. The client already allows this, but need server support to prevent issues.
3. Player Housing system
4. Two new slots in the base player inventory for a total of 10.
5. Merchant window now has a "Preview" button. Clicking it will bring up a window with a small model of your character exactly as he/she is but with whatever item you had selected equipped. Only for items that can go in visible inventory slots. The character model can be rotated and zoomed in on. Used to preview the appearance of items as they would appear on your character before buying them.
6. Merchant window now has a "Reclaim" tab. Any item you destroy during a single session of EQ (Unsure if it resets when you log) is shown in this tab and can be purchased at the cost of "Reclamation Tokens"
7. New "Zone Guide" window. Brings up a listing of all static zones in game and sorted by name, continent, and recommended level. Selecting a zone also displays all connected zones. At the bottom you can create a "Zone Path" by selecting a Start zone and Destination zone as well as a few other variables. This will then create a Find path (Same path that has been used for NPC Find forever) from where you're standing to the zone line and will attempt to guide you to your destination zone. This functionality has also been tied into the Map window, which itself has received a tiny revamp.
8. In-Game "Polls" window. Shows community polls and the results of said polls.
9. Alert History Window. Displays history of alerts your character has received. Examples being the window with keyboard commands that pops up when you first log a character into the tutorial, or the window that pops up for Free/Silver members reminding them to "Go Gold".
10. Death has been changed. You still receive the same xp hits, still have the rez window etc and still appear at bind. However you appear with all gear still on you and all spells still scribed. Bodies seem to spawn naked and only exist for rezes now. (This is the only new feature that actually bothered me. If this goes in should probably add a rule variable to the database to let server ops turn it on/off at whim.)


Issues with Newly Implemented Systems that did not exist in Underfoot:
Pending further assessment


Recently Resolved Issues:
1. Casting Spells and Click Effects on items is now functional.
2. Character Creation - This is now functional. (Thanks Secrets!)
3. Consume Food/Drink - This is now functional.
4. AAs - AAs now display properly in the AA window and hotkeys can be created.


Attaining the Live F2P (Free to Play) VoA Client:
http://www.everquest.com/
Click the "Play Free" button to download the installer and run it to install EQ.
Once the client is downloaded and fully patched (requires you to create a free account), then just follow the normal EQEmu client setup instructions.

Note that this client is patched from Live, so it is highly recommended to copy your entire EQ folder to another folder and run EQEmu from there. This is so when SOE patches, your VoA client will still be available while the new patch changes are getting adjusted for EQEmu.

Note that this client is currently disabled by default in the current SVN. Anyone who wants to test it on their server will need to uncomment the 2 VoA lines in this file before compiling:
http://code.google.com/p/projecteqem...es/patches.cpp

This post will be updated again regularly with current development status. Devs, please feel free to edit this post as needed.

trevius 04-10-2012 04:09 AM

I am not really sure what the plan is for this client. I don't really think we have enough active devs interested in maintaining a client that keeps up with Live patching. Though, with some recent scripts I made, updating opcodes is a bit easier. That may make it possible to keep up with Live with minimal work as long as it is kept up with for each patch so we don't get too far behind. The further behind we get, the harder it is to catch up, as many packet structures have changed and it takes a while to account for them all and fix them.

One thing I want to mention is that I named the patch files "VoA", which is the same naming convention as our previous clients. The difference is that this client could change at any time due to its source. So, one issue that would need to be dealt with if we tried to keep up with Live is how to handle the patch files in our source. We could have the names change to reflect the date of the eqgame.exe build date, or we could just put that date in the patch file as a comment and name them something like "VoA1", "VoA2" and so on. It isn't the naming that concerns me too much though, it is the number of potential patch files we would eventually have. It is already enough of a pain to update 4 patch files for every new opcode that gets added. I don't even want to think about having to do 20 of them after just 1 year of "chasing Live"! Maybe some sort of sub-patch system could be created that would allow for minor changes within the same expansion of patches. I think we would need some kinda change like that or maybe only support new opcode additions for the current patch as well as the UF and older clients and skip any Live patches in between.

I am just hoping that Steam gets a new complete client for EQ again at some point. If they do, then the work on this VoA client might be able to get the Steam version running in minimal time. That is my main reason for working on this client right now.

trevius 04-11-2012 11:34 PM

There is a new patch from Live with a build date of April 10th. I checked and it looks like they didn't change very much. The current VoA build for the emu is still as functional with the new client as it was with the old one as far as I can tell. I will be working from the new April 11th client from this point on.

I did a bit more testing and it looks like normal melee combat works fine and even looting works fine as long as you right click to loot instead of left clicking to loot to the cursor.

I found another crash with this client. It will crash the client if the character you are logging in is in a guild. Otherwise, it should log in fine.

Since a picture is worth a thousand words, here is a screenshot showing off some of the functionality of the VoA client so far:

http://dl.dropbox.com/u/18293267/Pics/eqemu_voa.jpg

Amra 04-12-2012 04:26 AM

Nice Trev =)

provocating 04-12-2012 01:27 PM

Trevius, I am downloading the F2P right now to archive away, the April 12th patched one.

Is there anything I can help with to help speed up your progress ?

trevius 04-13-2012 01:35 AM

Quote:

Originally Posted by provocating (Post 208786)
Is there anything I can help with to help speed up your progress ?

No, not unless you know how to read through packets and figure out packet structures, opcodes and do encodes/decodes. Though, you can always start learning at any time. I learned how to do it mostly on my own and have a page in the wiki that explains it a little, though it is pretty old.

Secrets 04-13-2012 02:27 AM

Made a commit with membership stuffs. I think I accidentally the whole items though i'm not sure if it is just x64 being nubby again.

Also, if anyone is interested in seeing what is done, I am hosting a non-legit server for testing this client. Simply patch to live and connect to "Secrets VoA Test" under the green server list. Mess around and try to break things.

trevius 04-13-2012 04:40 AM

I haven't tested it yet, but I doubt you broke items. You only added comments to them, so there shouldn't be any issues. It is probably a x64 issue with your server.

*EDIT*

I think I got the item struct issues figured out. I just need to get home and test the changes. Looks like 2 of the new int32s were in the wrong spots. I am still not 100% sure on the positioning of one of them, but it is narrowed down to a very small range of possible positions.

provocating 04-13-2012 08:22 AM

Well I really need to learn it, so I am going to attempt to spend a few hours every day learning the structure.

Also if I checkout the source, are there any modifications that have to be done to support VoA in it's current state ?

trevius 04-13-2012 09:12 AM

Quote:

Originally Posted by provocating (Post 208810)
Also if I checkout the source, are there any modifications that have to be done to support VoA in it's current state ?

Yes, you need to uncomment 2 lines of code in patches.cpp, which is mentioned in at the bottom of the first post in this thread.

provocating 04-13-2012 09:15 AM

Awesome I will work on this over the weekend.

Secrets 04-13-2012 06:03 PM

I tried compiling in non 64, have the same issues as I did in 64. Only one inventory slot shows and no items show up. This is with a new character created on the SoD Client logging into VoA. Not entirely sure why it's doing this unless you forgot to commit something or I missed a revision update. This is with PEQ revision 2100 & latest SVN.

I also noticed item links do work, while inventory is the only thing that is missing.

I should also mention I am using windows.

trevius 04-14-2012 02:21 AM

It appears all of that is being caused by the new packet/opcode you added. We need to identify some of those fields so we know what to set them all to for enabling everything as it should be. Until there is support for it, we should set limits on normal inventory size to 8 even though it can go up to 10 now.

For now, I just set OP_SendMembership in the VoA .conf file to 0x0000 on my server and everything is working fine. Without it being set, we can't create new characters, but at least everything else seems OK. Once the right fields are identified in that packet, I am sure it will allow for some nice rule settings for servers.

Also, I noticed a few things from Live already seem to work in the client such as putting an empty bag inside another bag. I think we will need to add support for that in the source, but it seems basically functional already.

provocating 04-14-2012 06:52 AM

I am guessing you are talking about uncommenting lines 21 and 31? After doing so I get this. It compiles fine with them remarked out.

Code:

../common/patches/patches.o: In function `RegisterAllPatches(EQStreamIdentifier&)':
/home/jkg/eq1/src_r2115/zone/../common/patches/patches.cpp:21: undefined reference to `VoA::Register(EQStreamIdentifier&)'
../common/patches/patches.o: In function `ReloadAllPatches()':
/home/jkg/eq1/src_r2115/zone/../common/patches/patches.cpp:31: undefined reference to `VoA::Reload()'
collect2: ld returned 1 exit status
make[1]: *** [world] Error 1
make[1]: Leaving directory `/home/eq1/src_r2115/world'
make: *** [all] Error 2


provocating 04-14-2012 11:07 AM

I got it to compile, I had used my old makefile not thinking about the changes to it.

So I did my bot changes and used the VoA client, the one I bought and downloaded weeks ago. That client shows no characters on my account and the character creation limit is showing 0/12323 or the like.

With the F2P client I can create a character or select my character but never zone in, the client appears to freeze. The only changes I made that should effect this would be the uncommenting on the patches.cpp The only other files I modify are ones related to bots

I am running x64 and do change the march=athlon64 and take out the -O but I am not sure if that would make the client hang. I am about to go through my logs now.

EDIT

Could this be of relevance ?

Code:

5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: First opcode 0x3594 did not match expected 0x2792
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: Tried patch 6.2_world, and it did not match.
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: First opcode 0x3594 did not match expected 0x2ec9
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: Tried patch 6.2_zone, and it did not match.
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: First opcode 0x3594 did not match expected 0x4dd0
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: Tried patch Titanium_world, and it did not match.
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: First opcode 0x3594 did not match expected 0x7213
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: Tried patch Titanium_zone, and it did not match.
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: First opcode 0x3594 did not match expected 0x6c3c
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: Tried patch SoF_world, and it did not match.
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: First opcode 0x3594 did not match expected 0x737e
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: Tried patch SoF_zone, and it did not match.
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: First opcode 0x3594 did not match expected 0xff4
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: Tried patch SoD_world, and it did not match.
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: First opcode 0x5821 did not match expected 0x5a6b
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: Tried patch SoD_zone, and it did not match.
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: First opcode 0x3594 did not match expected 0x13da
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: Tried patch Underfoot_world, and it did not match.
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: First opcode 0x5821 did not match expected 0x4b61
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: Tried patch Underfoot_zone, and it did not match.
5904 [04.14. - 10:08:56] [NET__IDENTIFY] Unable to identify stream from 192.168.0.45:57482, no match found.

This client I am using was the April 12, 2012 patched one, I verified I have the patch_VoA.conf in my server root.

provocating 04-14-2012 11:27 AM

This is proof coffee is the nectar of the gods. I had another cup and saw there was an error when I copied the zone file over.....dohhhh.

I am in. Screenshots to ensue.

Noport 04-14-2012 11:43 AM

provocating

I hope the examples of code help you if you see / remove them. in patches directory you should see
Voa.cpp
Voa.h
Voa_itemfields.h
Voa_ops.h
Voa.structs.h

this is for world common/patches directory patches.cpp
Code:

#include "../debug.h"
#include "patches.h"

#include "Client62.h"
#include "Titanium.h"
#include "Anniversary.h"
#include "Underfoot.h"
#include "SoF.h"
#include "SoD.h"
#include "HoT.h"
#include "VoA.h"

void RegisterAllPatches(EQStreamIdentifier &into) {
        Client62::Register(into);
        Titanium::Register(into);
        Anniversary::Register(into);
        SoF::Register(into);
        SoD::Register(into);
        Underfoot::Register(into);
        HoT::Register(into);
        VoA::Register(into);
}

void ReloadAllPatches() {
        Client62::Reload();
        Titanium::Reload();
        Anniversary::Reload();
        SoF::Reload();
        SoD::Reload();
        Underfoot::Reload();
        HoT::Reload();
        VoA::Reload();
}

common directory eq_constants.h
Code:

*/
#ifndef EQ_CONSTANTS_H
#define EQ_CONSTANTS_H

#define BIT_Client62                1
#define BIT_Titanium                2
#define BIT_Anniversary    4
#define BIT_SoF                        5
#define BIT_SoD                        8
#define BIT_Underfoot                16
#define BIT_HoT                        16
#define BIT_VoA                        16
#define BIT_TitaniumAndEarlier        3
#define BIT_AnniversaryAndLater 0xFFFFFFFC
#define BIT_SoFAndLater            0xFFFFFFFC
#define BIT_SoDAndLater                    0xFFFFFFF8
#define BIT_UnderfootAndLater        0xFFFFFFF0
#define BIT_HoTAndLater        0xFFFFFFF0 
#define BIT_VoAAndLater                0xFFFFFFF0
#define BIT_AllClients                    0xFFFFFFFF

world clientlist.cpp
Code:

void ClientList::SendClientVersionSummary(const char *Name)
{
        uint32 Client62Count = 0;
        uint32 ClientTitaniumCount = 0;
    uint32 ClientAnniversaryCount = 0;
        uint32 ClientSoFCount = 0;
        uint32 ClientSoDCount = 0;
        uint32 ClientUnderfootCount = 0;
        uint32 ClientHoTCount = 0;
    uint32 ClientVoACount = 0;
       

        LinkedListIterator<ClientListEntry*> Iterator(clientlist);

        Iterator.Reset();

        while(Iterator.MoreElements())
        {
                ClientListEntry* CLE = Iterator.GetData();

                if(CLE && CLE->zone())
                {
                        switch(CLE->GetClientVersion())
                        {
                                case 1:
                                {
                                        ++Client62Count;
                                        break;
                                }
                                case 2:
                                {
                                        ++ClientTitaniumCount;
                                        break;
                                }
                                case 3:
                                {
                                        ++ClientAnniversaryCount;
                                        break;
                                }
                                case 4:
                                {
                                        ++ClientSoFCount;
                                        break;
                                }
                                case 5:
                                {
                                        ++ClientSoDCount;
                                        break;
                                }
                                case 6:
                                {
                                        ++ClientUnderfootCount;
                                        break;
                                }
                case 7:
                                {
                                        ++ClientHoTCount;
                                        break;
                                }
                case 8:
                                {
                                        ++ClientVoACount;
                                        break;
                                }
                                default:
                                        break;
                        }
                }

                Iterator.Advance();

        }

        zoneserver_list.SendEmoteMessage(Name, 0, 0, 13, "There are %i 6.2, %i Titanium, %i Anniversary, %i SoF, %i SoD, %i UF, %i HoT, %i VoA clients currently connected.",
                                          Client62Count, ClientTitaniumCount, ClientAnniversaryCount, ClientSoFCount, ClientSoDCount, ClientUnderfootCount, ClientHoTCount, ClientVoACount);
}

this is for zone
bot.h
Code:

typedef enum EqExpansions {
                ExpansionNone,
                ExpansionEQ,
                ExpansionRoK,
                ExpansionSoV,
                ExpansionSoL,
                ExpansionPoP,
                ExpansionLoY,
                ExpansionLDoN,
                ExpansionGoD,
                ExpansionOoW,
                ExpansionDoN,
                ExpansionDoDH,
                ExpansionPoR,
                ExpansionTSS,
                ExpansionAnV,
                ExpansionSoF,
                ExpansionSoD,
                ExpansionUF,
                ExpansionHoT,
                ExpansionVoA
        };

client.h
Code:

typedef enum {
        EQClientUnknown = 0,
        EQClient62,
        EQClientTitanium,
        EQClientAnniversary,
        EQClientSoF,
        EQClientSoD,
        EQClientUnderfoot,
        EQClientHoT,
        EQClientVoA
} EQClientVersion;

client_packet.cpp
Code:

void Client::Handle_Connect_OP_ZoneEntry(const EQApplicationPacket *app)
{
        if(app->size != sizeof(ClientZoneEntry_Struct))
                return;
        ClientZoneEntry_Struct *cze = (ClientZoneEntry_Struct *) app->pBuffer;

        if(strlen(cze->char_name) > 63)
                return;

        conn_state = ReceivedZoneEntry;

        string StreamDescription = Connection()->Describe();

        if(StreamDescription == "Patch Titanium")
        {
                ClientVersion = EQClientTitanium;
                ClientVersionBit = BIT_Titanium;
        }
        else if(StreamDescription == "Patch 6.2")
        {
                ClientVersion = EQClient62;
                ClientVersionBit = BIT_Client62;
        }
        else if(StreamDescription == "Patch Anniversary")
        {
                ClientVersion = EQClientAnniversary;
                ClientVersionBit = BIT_Anniversary;       
        }
        else if(StreamDescription == "Patch SoF")
        {
                ClientVersion = EQClientSoF;
                ClientVersionBit = BIT_SoF;
        }
        else if(StreamDescription == "Patch SoD")
        {
                ClientVersion = EQClientSoD;
                ClientVersionBit = BIT_SoD;
        }
        else if(StreamDescription == "Patch Underfoot")
        {
                ClientVersion = EQClientUnderfoot;
                ClientVersionBit = BIT_Underfoot;
        }
        else if(StreamDescription == "Patch HoT")
        {
                ClientVersion = EQClientHoT;
                ClientVersionBit = BIT_HoT;
        }
        else if(StreamDescription == "Patch VoA")
        {
                ClientVersion = EQClientVoA;
                ClientVersionBit = BIT_VoA;
        }


provocating 04-14-2012 12:06 PM

I am very impressed with how fast this has been accomplished. Things I noticed not working was my health bar is not registering, was at level 1 instead of 60, guild chat not working and inventory. Not complaining here, in fact I was shocked at how much is actually working, vendors, bots, zoning, all of that works.

I am going to try to get up to speed tonight on how this is done and hopefully will find some information on the wiki on how the client works with the server. I doubt I can get up to speed quick enough to help Trevius and the others but maybe in the future I can help out. If any players want to test the client, our live server is patched up to r2115 so F2P clients should be able to see VoA.


http://www.dragonsofmist.com/Joomla/...uest/voa_1.jpg

http://www.dragonsofmist.com/Joomla/...uest/voa_2.jpg

http://www.dragonsofmist.com/Joomla/...uest/voa_3.jpg

http://www.dragonsofmist.com/Joomla/...uest/voa_4.jpg

Noport 04-14-2012 12:16 PM

world client.cpp

Code:

string StreamDescription = eqs->Describe();

        if(StreamDescription == "Patch Titanium")
        {
                ClientVersionBit = BIT_Titanium;
        }
        else if(StreamDescription == "Patch 6.2")
        {
                ClientVersionBit = BIT_Client62;
        }
        else if(StreamDescription == "Patch Anniversary")
        {
                ClientVersionBit = BIT_Anniversary;
        }
        else if(StreamDescription == "Patch SoF")
        {
                ClientVersionBit = BIT_SoF;
        }
        else if(StreamDescription == "Patch SoD")
        {
                ClientVersionBit = BIT_SoD;
        }
        else if(StreamDescription == "Patch Underfoot")
        {
                ClientVersionBit = BIT_Underfoot;
        }
        else if(StreamDescription == "Patch HoT")
        {
                ClientVersionBit = BIT_HoT;
        }
    else if(StreamDescription == "Patch VoA")
        {
                ClientVersionBit = BIT_VoA;
        } 
}


provocating 04-14-2012 12:17 PM

Not sure if you are reading my threads as I am posting them NoPort, but I did get it working. There again you may be showing me what I need to know to get up to speed on how the client talks to the server, if so...definitely thank you.

EDIT

I am guessing I need to be reading this.

http://www.eqemulator.net/wiki/wikka...=PacketStructs

Noport 04-14-2012 01:17 PM

provocating your welcome

download wireshark-win32or64-1.2.10 start saving logs as *.pcap on f2p or your own server
compile trunk\EQEmuServer\utils\EQExtractor2\EQExtractor2
copy your voa.conf and *.pcap into the same directory as eqextractor2

watch forums for changing or updating opcodes
http://code.google.com/p/projecteqem...2FEQExtractor2
http://www.showeq.net/forums/showthr...-for-VoA/page2
http://www.showeq.net/forums/showthr...6515#post46515
Download showeq-x.xx.xx.x the newer file has opcodes inside
http://sourceforge.net/projects/seq/files/ShowEQ/

provocating 04-14-2012 01:41 PM

I have spent the last 30 minutes reading the wiki on packet structures, pretty easy to understand. A lot of it is redundant from learning packets studying for classes at work. The primitives I already knew from a little C++ and more from C# from what I use at work.

I have got to get the normal daily stuff done here but later this afternoon I plan on getting some PCAPS and observing them as the packets come in. I also learn better from hands on, you can only get so much from reading. Actually doing it help enforce what you read anyway.

Noport 04-14-2012 02:58 PM

Good reading links provocating
packetcollector http://www.eqemulator.org/forums/forumdisplay.php?f=602
http://www.eqemulator.net/wiki/wikka...vOpcodeFinding
http://www.eqemulator.net/wiki/wikka...ka=DevAsmTools
http://www.eqemulator.net/wiki/wikka...DevAsmRoutines

Secrets 04-14-2012 04:21 PM

Trevius, the updates you made to items today fixed my issue with them.

Also, I sent you a packet log of the gold membership options to help identify those fields.

Am ingame and things are optimal now, so good stuff!

If anyone would like to see our progress, Secrets VoA test is ready for the latest live client.

xinu 04-14-2012 04:38 PM

slight problem character creation still does not work all the races/classes are still locked out i so loath the little sc icon lol.

provocating 04-14-2012 04:49 PM

Quote:

Originally Posted by xinu (Post 208843)
i so loath the little sc icon lol.

Yeah me too.

Traitor bastards. How could they turn EQ into what they have.

Also has anyone noticed that when you create a character, you see to have no option for TutorialB ? I created an Iksar Monk, had the option for Cab or Crescent. I was able to create my character just fine and zone into Crescent, no crashes etc.

Secrets 04-14-2012 05:55 PM

Quote:

Originally Posted by xinu (Post 208843)
slight problem character creation still does not work all the races/classes are still locked out i so loath the little sc icon lol.

This was actually me screwing up my opcode copying script, lol. It's fixed now on my server, and if the issue was locally copy patch_VoA.conf to your folder.

xinu 04-14-2012 09:18 PM

Couple of things i've noticed so far.

1. Mend opcode may be wrong (never got it to work)
2. enviromental damage opcode may be wrong (went swimming in the lava)
3. current hp/end are about 25% less then max but will jump to 100% then back down
4. clicking off buffs remove the effect but not the spell icon.
5. Able to use click effects on items higher level then you are
6. Zoneing only says You have entered.
7. clicking on tradeskill object (stove etc etc) you get the sound but it does not open and locks the interface till you camp.

Akkadius 04-14-2012 10:58 PM

Just a few notes for us:

Noticed that slots with cursors are a bit hosed yet.

If you summon a few different items to your cursor stack they get lost after you free up the top level slot. Whenever you zone to another zone, the next one in line shows up and you continually have to repeat the process to get to the bottom of the stack.

When items get held up like this the client still knows you have the items when you try to summon another lore.

AA's obviously aren't sending

Health display issues are another obvious issue.

Other than that it's looking good! :)

http://i.imgur.com/rC1Ii.jpg

501st 04-15-2012 05:20 AM

So I logged on to Live earlier while waiting for something to pop on P99. Was on briefly to explore the new features on VoA that didn't exist in Underfoot. Maybe help you guys populate that list (May go back and packet collect some of them later) when I discovered an amazing feature.


Ladies and Gentlemen let me introduce you to....the Extended Target Window:
Link to Info here (Don't ask why it's on Free Realms Support. I just Googled it to try to find out how to get it open)

Basically to shorten it's description down. The window has 5 extra "Target" slots. They display hp and can be set to display mana/end akin to the Group Window. It's tied into the new Group Roles system of the Group Window. Assign a player to Main Tank role and then assign one of the 5 slots to "Main Tank" and it will display Main Tank's target. Can also display your own etc (list of options in the link provided. In the Screenshot)


Here's the thing that caught my eye though...says this was actually released with Underfoot. At this moment my pants shrunk a couple inches as I logged on my UF client on PEQ to try to get it open. I followed instructions, EQ Button>Actions>Extended Target...nothing there. So tried the slash command. "/xtarget on" and got this response:

"In order to gain access to this feature, you must purchase the Everquest expansion: Underfoot"

Gave the same response on the VoA client so I doubt it's because it was released after the Steam UF client went live. I guess it's possible though

Either way, looks like it would have to be 'hacked' into the UF/VoA clients by telling the client you own that expansion just to get it to open. Kinda like how Secrets got the VoA client to respond to Gold Membership. Likely has some missing packets to even get it working anyway.

Just a heads up, looks like we missed something :P Something cool at that!. I may go back and packet collect a player using this and a few of the new features on VoA (The revamped merchant window and this new "Zone Explorer" are of particular interest) if you guys would like...

-Danyelle

Derision 04-15-2012 07:20 AM

Quote:

Originally Posted by 501st (Post 208858)
So tried the slash command. "/xtarget on" and got this response:

"In order to gain access to this feature, you must purchase the Everquest expansion: Underfoot"

To get rid of this message, in Underfoot you need to make this change:
Code:

--- Underfoot.cpp      (revision 2125)
+++ Underfoot.cpp      (working copy)
@@ -629,7 +629,7 @@
        OUT(platinum_shared);
 //    OUT(unknown13156[84]);
        //OUT(expansions);
-      eq->expansions = 16383;
+      eq->expansions = 0x0000ffff;
 //    OUT(unknown13244[12]);
        OUT(autosplit);
 //    OUT(unknown13260[16]);

You then need to insert some code to send opcode 0x6eb5 (0x00b5 on Live) with two uint32s (5 == number of xtarget slots, followed by 0).

This will let you attempt to use the /xtarget command, however code needs writing to support it.

provocating 04-15-2012 10:05 AM

Anyone notice the skybox changes ? It took me a while to tweak the settings. For a while I was getting a stuttering which you will see in the first screenshot. I am not sure yet if I really like the change, it can be disabled by messing with a few of the advanced settings or just turning the sky back from complex to off.

In particular the new "enable post effects" settings is kind of overwhelming. I noticed it in every zone, but some of the VoA zones the effect was a little over the top.

I absolutely love the fact you can change the quick slot size now, I sized mine back down to 80% and it is so much better than the size that came with UF. Also instead of 2 vert and 2 horiz bars we now get what 10 ? How awesome is that ?

If players want to see any of the newer zones, I took some screenshots which are posted in my forums.

http://www.dragonsofmist.com/phpBB3/....php?f=25&t=90

http://www.dragonsofmist.com/Joomla/...st/voa_sky.jpg

http://www.dragonsofmist.com/Joomla/...t/voa_sky2.jpg

provocating 04-15-2012 03:14 PM

I would like to add that anyone interested in packet structures also read this on the wiki, on top of the one I already mentioned.

http://www.eqemulator.net/wiki/wikka...a=EncodeDecode

501st 04-15-2012 04:59 PM

Quote:

Originally Posted by Derision (Post 208859)
To get rid of this message, in Underfoot you need to make this change:
Code:

--- Underfoot.cpp      (revision 2125)
+++ Underfoot.cpp      (working copy)
@@ -629,7 +629,7 @@
        OUT(platinum_shared);
 //    OUT(unknown13156[84]);
        //OUT(expansions);
-      eq->expansions = 16383;
+      eq->expansions = 0x0000ffff;
 //    OUT(unknown13244[12]);
        OUT(autosplit);
 //    OUT(unknown13260[16]);

You then need to insert some code to send opcode 0x6eb5 (0x00b5 on Live) with two uint32s (5 == number of xtarget slots, followed by 0).

This will let you attempt to use the /xtarget command, however code needs writing to support it.

Success:

http://i.imgur.com/VZQDR.jpg

It now opens just with that diff you posted. (setting eq->expansions to 0x0000ffff). Obviously still needs work to get functioning but hey it opens now! That's step one :P Think that change can get added to the source? lol

That screenshot is on my UF client btw. So yeah it's an 'older' new feature.

-Danyelle

501st 04-15-2012 08:10 PM

If it's useful for you guys at all, I logged on Live and took a massive packet collect. Less for zones and more for client functionality. Involved me killing mobs, dying, using the rez window, zoning (several times), navigating merc hire window, buying a merc, commanding a merc, changing group roles, killing with my merc (Multiple mobs), fiddling with Extended Target settings (My target and Merc's target for the time being), navigating merchant windows, buying, selling, deleting items, looting coin, looting items, looting stacked items (Because stackable items, when multiple copies of that item drop off the same mob, are stacked in the loot window now), I used the new Zone Guide window (opening it, sifting through zones, assigning start and end zones then creating a "Zone Path" with it), I leveled up (2 to 3), I casted spells, navigated the instance select zone for the Neigborhood zones (sorting zones, selecting one and zoning in). I also opened up the Station Cash site but that's kinda pointless.

I have the .txt file with the dump of all the packets extracted from the pcap with EQExtractor2 in a rar file uploaded to this link if anyone wants it. Dunno if it'll be of use to you guys but there you go :)

-Danyelle

Akkadius 04-15-2012 08:28 PM

Quote:

Originally Posted by 501st (Post 208903)
If it's useful for you guys at all, I logged on Live and took a massive packet collect. Less for zones and more for client functionality. Involved me killing mobs, dying, using the rez window, zoning (several times), navigating merc hire window, buying a merc, commanding a merc, changing group roles, killing with my merc (Multiple mobs), fiddling with Extended Target settings (My target and Merc's target for the time being), navigating merchant windows, buying, selling, deleting items, looting coin, looting items, looting stacked items (Because stackable items, when multiple copies of that item drop off the same mob, are stacked in the loot window now), I used the new Zone Guide window (opening it, sifting through zones, assigning start and end zones then creating a "Zone Path" with it), I leveled up (2 to 3), I casted spells, navigated the instance select zone for the Neigborhood zones (sorting zones, selecting one and zoning in). I also opened up the Station Cash site but that's kinda pointless.

I have the .txt file with the dump of all the packets extracted from the pcap with EQExtractor2 in a rar file uploaded to this link if anyone wants it. Dunno if it'll be of use to you guys but there you go :)

-Danyelle

Typically I know it is easier to break apart collects that are in segments of the actions that you perform while taking the capture.

Ex:
'Hiring Mercenary.pcap'
'Ranger Gate.pcap'
'Zoning.pcap'

Some of the guys might have a way to break down the packet capture of that size and go through it that way but I know it is easier to dig through a packet capture if you know what you are looking for within a certain time frame otherwise it because a vast sea of information. Someone else might be able to comment on that as well.

When Secrets was working on Mercenaries before Trevius I had made collects of every action which helps the breakdown of what you are looking for action/opcode wise (Noport go away).

501st 04-15-2012 10:47 PM

Quote:

Originally Posted by Akkadius (Post 208907)
Typically I know it is easier to break apart collects that are in segments of the actions that you perform while taking the capture.

Ex:
'Hiring Mercenary.pcap'
'Ranger Gate.pcap'
'Zoning.pcap'

Some of the guys might have a way to break down the packet capture of that size and go through it that way but I know it is easier to dig through a packet capture if you know what you are looking for within a certain time frame otherwise it because a vast sea of information. Someone else might be able to comment on that as well.

When Secrets was working on Mercenaries before Trevius I had made collects of every action which helps the breakdown of what you are looking for action/opcode wise (Noport go away).

Done

KLS 04-15-2012 11:58 PM

I find it's easier to put them all in one capture but use something like a say message to denote the start and end of the action.

Less loading up different captures, but to each his own. =p

Secrets 04-16-2012 12:50 AM

Quote:

Originally Posted by provocating (Post 208832)
I got it to compile, I had used my old makefile not thinking about the changes to it.

So I did my bot changes and used the VoA client, the one I bought and downloaded weeks ago. That client shows no characters on my account and the character creation limit is showing 0/12323 or the like.

With the F2P client I can create a character or select my character but never zone in, the client appears to freeze. The only changes I made that should effect this would be the uncommenting on the patches.cpp The only other files I modify are ones related to bots

I am running x64 and do change the march=athlon64 and take out the -O but I am not sure if that would make the client hang. I am about to go through my logs now.

EDIT

Could this be of relevance ?

Code:

5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: First opcode 0x3594 did not match expected 0x2792
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: Tried patch 6.2_world, and it did not match.
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: First opcode 0x3594 did not match expected 0x2ec9
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: Tried patch 6.2_zone, and it did not match.
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: First opcode 0x3594 did not match expected 0x4dd0
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: Tried patch Titanium_world, and it did not match.
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: First opcode 0x3594 did not match expected 0x7213
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: Tried patch Titanium_zone, and it did not match.
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: First opcode 0x3594 did not match expected 0x6c3c
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: Tried patch SoF_world, and it did not match.
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: First opcode 0x3594 did not match expected 0x737e
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: Tried patch SoF_zone, and it did not match.
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: First opcode 0x3594 did not match expected 0xff4
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: Tried patch SoD_world, and it did not match.
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: First opcode 0x5821 did not match expected 0x5a6b
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: Tried patch SoD_zone, and it did not match.
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: First opcode 0x3594 did not match expected 0x13da
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: Tried patch Underfoot_world, and it did not match.
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: First opcode 0x5821 did not match expected 0x4b61
5904 [04.14. - 10:08:56] [NET__IDENT_TRACE] 192.168.0.45:57482: Tried patch Underfoot_zone, and it did not match.
5904 [04.14. - 10:08:56] [NET__IDENTIFY] Unable to identify stream from 192.168.0.45:57482, no match found.

This client I am using was the April 12, 2012 patched one, I verified I have the patch_VoA.conf in my server root.

It is of relevance. You are not loading patch_VoA thru patches.cpp in your build.

There are two lines you need to uncomment in that file, ensure that both are uncommented and VoA.cpp is included in your makefile. Most of us test using windows, so that may have something to do with it.

provocating 04-16-2012 02:19 PM

Quote:

Originally Posted by Secrets (Post 208922)
It is of relevance. You are not loading patch_VoA thru patches.cpp in your build.

There are two lines you need to uncomment in that file, ensure that both are uncommented and VoA.cpp is included in your makefile. Most of us test using windows, so that may have something to do with it.

Yeah it ended up me just getting too excited, lack of coffee, etc.

I had compiled it fine, when I was typing I did not catch a syntax error when I copied my zone file over.


All times are GMT -4. The time now is 11:22 AM.

Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.