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
  #16  
Old 04-14-2012, 11:27 AM
provocating's Avatar
provocating
Demi-God
 
Join Date: Nov 2007
Posts: 2,175
Default

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.
Reply With Quote
  #17  
Old 04-14-2012, 11:43 AM
Noport
Opcode Ninja
 
Join Date: Mar 2009
Location: San francisco
Posts: 426
Default

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;
        }
Reply With Quote
  #18  
Old 04-14-2012, 12:06 PM
provocating's Avatar
provocating
Demi-God
 
Join Date: Nov 2007
Posts: 2,175
Default

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.








Reply With Quote
  #19  
Old 04-14-2012, 12:16 PM
Noport
Opcode Ninja
 
Join Date: Mar 2009
Location: San francisco
Posts: 426
Default

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;
	}  
}
Reply With Quote
  #20  
Old 04-14-2012, 12:17 PM
provocating's Avatar
provocating
Demi-God
 
Join Date: Nov 2007
Posts: 2,175
Default

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
Reply With Quote
  #21  
Old 04-14-2012, 01:17 PM
Noport
Opcode Ninja
 
Join Date: Mar 2009
Location: San francisco
Posts: 426
Default

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/
Reply With Quote
  #22  
Old 04-14-2012, 01:41 PM
provocating's Avatar
provocating
Demi-God
 
Join Date: Nov 2007
Posts: 2,175
Default

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.
Reply With Quote
  #23  
Old 04-14-2012, 02:58 PM
Noport
Opcode Ninja
 
Join Date: Mar 2009
Location: San francisco
Posts: 426
Default

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
Reply With Quote
  #24  
Old 04-14-2012, 04:21 PM
Secrets's Avatar
Secrets
Demi-God
 
Join Date: May 2007
Location: b
Posts: 1,450
Default

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.
Reply With Quote
  #25  
Old 04-14-2012, 04:38 PM
xinu
Sarnak
 
Join Date: Jan 2008
Posts: 67
Default

slight problem character creation still does not work all the races/classes are still locked out i so loath the little sc icon lol.
__________________
Xinux
VGSOH Dev
EQ2 Dev
Still alive and looking for more Developers

EverQuest 2 Emulator
Vanguard SoH Emulator
Reply With Quote
  #26  
Old 04-14-2012, 04:49 PM
provocating's Avatar
provocating
Demi-God
 
Join Date: Nov 2007
Posts: 2,175
Default

Quote:
Originally Posted by xinu View Post
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.
Reply With Quote
  #27  
Old 04-14-2012, 05:55 PM
Secrets's Avatar
Secrets
Demi-God
 
Join Date: May 2007
Location: b
Posts: 1,450
Default

Quote:
Originally Posted by xinu View Post
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.
Reply With Quote
  #28  
Old 04-14-2012, 09:18 PM
xinu
Sarnak
 
Join Date: Jan 2008
Posts: 67
Default

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.
__________________
Xinux
VGSOH Dev
EQ2 Dev
Still alive and looking for more Developers

EverQuest 2 Emulator
Vanguard SoH Emulator
Reply With Quote
  #29  
Old 04-14-2012, 10:58 PM
Akkadius's Avatar
Akkadius
Administrator
 
Join Date: Feb 2009
Location: MN
Posts: 2,071
Default

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!

Reply With Quote
  #30  
Old 04-15-2012, 05:20 AM
501st
Sarnak
 
Join Date: Jan 2009
Location: Virginia
Posts: 51
Default

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
__________________
Rainbowdash Spectrum - 54 Dark Elf Magician - P99
Rainbowdash Poxleitner - 100 Dark Elf Magician - Live/Test
Miku X'Lottl - Vet Rank 11 Khajiit Nightblade - ESO
Reply With Quote
Reply

Thread Tools
Display Modes

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 05:56 AM.


 

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