View Single Post
  #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