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)

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


All times are GMT -4. The time now is 03:56 PM.

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