Character visual race available in character select

Fixes  -- additional analysis will be needed for equipment / potentially other features of the model
This commit is contained in:
Image 2020-03-05 00:18:57 -05:00
parent 92503df364
commit 8d962dede2
5 changed files with 42 additions and 228 deletions

View file

@ -248,6 +248,8 @@ CREATE TABLE `login_characters` (
`created_date` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
`last_played` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`char_id` int(11) NOT NULL DEFAULT 0,
`soga_model_type` mediumint(8) NOT NULL DEFAULT 0,
`model_type` mediumint(8) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
KEY `ServerIDX` (`account_id`,`server_id`,`char_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

View file

@ -107,7 +107,7 @@ void LoginDatabase::LoadCharacters(LoginAccount* acct, int16 version){
Query query;
Query query2;
int32 id = 0;
MYSQL_RES* result = query.RunQuery2(Q_SELECT, "SELECT lc.char_id, lc.server_id, lc.name, lc.race, lc.class, lc.gender, lc.deity, lc.body_size, lc.body_age, lc.current_zone_id, lc.level, lc.soga_wing_type, lc.soga_chest_type, lc.soga_legs_type, lc.soga_hair_type, lc.legs_type, lc.chest_type, lc.wing_type, lc.hair_type, unix_timestamp(lc.created_date), unix_timestamp(lc.last_played), lc.id, lw.name, lc.facial_hair_type, lc.soga_facial_hair_type from login_characters lc, login_worldservers lw where lw.id = lc.server_id and lc.account_id=%i and lc.deleted=0",acct->getLoginAccountID());
MYSQL_RES* result = query.RunQuery2(Q_SELECT, "SELECT lc.char_id, lc.server_id, lc.name, lc.race, lc.class, lc.gender, lc.deity, lc.body_size, lc.body_age, lc.current_zone_id, lc.level, lc.soga_wing_type, lc.soga_chest_type, lc.soga_legs_type, lc.soga_hair_type, lc.legs_type, lc.chest_type, lc.wing_type, lc.hair_type, unix_timestamp(lc.created_date), unix_timestamp(lc.last_played), lc.id, lw.name, lc.facial_hair_type, lc.soga_facial_hair_type, lc.soga_model_type, lc.model_type from login_characters lc, login_worldservers lw where lw.id = lc.server_id and lc.account_id=%i and lc.deleted=0",acct->getLoginAccountID());
if(result) {
MYSQL_ROW row;
MYSQL_ROW row2;
@ -130,12 +130,10 @@ void LoginDatabase::LoadCharacters(LoginAccount* acct, int16 version){
player->packet->setDataByName("soga_chest_type", atoi(row[12]));
player->packet->setDataByName("soga_legs_type", atoi(row[13]));
player->packet->setDataByName("soga_hair_type", atoi(row[14]));
// player->packet->setDataByName("soga_race_type", atoi(row[15]));
player->packet->setDataByName("legs_type", atoi(row[15]));
player->packet->setDataByName("chest_type", atoi(row[16]));
player->packet->setDataByName("wing_type", atoi(row[17]));
player->packet->setDataByName("hair_type", atoi(row[18]));
//player->packet->setDataByName("race_type", atoi(row[19]));
player->packet->setDataByName("created_date", atol(row[19]));
if (row[20])
player->packet->setDataByName("last_played", atol(row[20]));
@ -153,6 +151,9 @@ void LoginDatabase::LoadCharacters(LoginAccount* acct, int16 version){
player->packet->setDataByName("hair_face_type", atoi(row[23]));
player->packet->setDataByName("soga_hair_face_type", atoi(row[24]));
player->packet->setDataByName("soga_race_type", atoi(row[25]));
player->packet->setDataByName("race_type", atoi(row[26]));
player->packet->setDataByName("unknown3", 57);
player->packet->setDataByName("unknown4", 56);
player->packet->setDataByName("unknown6", 1, 1); //if not here will not display character
@ -255,8 +256,8 @@ int32 LoginDatabase::SaveCharacter(PacketStruct* create, LoginAccount* acct, int
int32 ret_id = 0;
Query query;
string create_char =
string("Insert into login_characters (account_id, server_id, char_id, name, race, class, gender, deity, body_size, body_age, soga_wing_type, soga_chest_type, soga_legs_type, soga_hair_type, soga_facial_hair_type, legs_type, chest_type, wing_type, hair_type, facial_hair_type)"
" values(%i, %i, %i, '%s', %i, %i, %i, %i, %f, %f, %i, %i, %i, %i, %i, %i, %i, %i, %i, %i)");
string("Insert into login_characters (account_id, server_id, char_id, name, race, class, gender, deity, body_size, body_age, soga_wing_type, soga_chest_type, soga_legs_type, soga_hair_type, soga_facial_hair_type, legs_type, chest_type, wing_type, hair_type, facial_hair_type, soga_model_type, model_type)"
" values(%i, %i, %i, '%s', %i, %i, %i, %i, %f, %f, %i, %i, %i, %i, %i, %i, %i, %i, %i, %i, %i, %i)");
query.RunQuery2(Q_INSERT, create_char.c_str(),
acct->getLoginAccountID(),
create->getType_int32_ByName("server_id"), world_charid,
@ -276,7 +277,9 @@ int32 LoginDatabase::SaveCharacter(PacketStruct* create, LoginAccount* acct, int
GetAppearanceID(create->getType_EQ2_16BitString_ByName("chest_file").data),
GetAppearanceID(create->getType_EQ2_16BitString_ByName("wing_file").data),
GetAppearanceID(create->getType_EQ2_16BitString_ByName("hair_file").data),
GetAppearanceID(create->getType_EQ2_16BitString_ByName("face_file").data));
GetAppearanceID(create->getType_EQ2_16BitString_ByName("face_file").data),
GetAppearanceID(create->getType_EQ2_16BitString_ByName("soga_race_file").data),
GetAppearanceID(create->getType_EQ2_16BitString_ByName("race_file").data));
if(query.GetError() && strlen(query.GetError()) > 0){
LogWrite(LOGIN__ERROR, 0, "Login", "Error in SaveCharacter query '%s': %s", query.GetQuery(), query.GetError());
return 0;

View file

@ -21,7 +21,6 @@ extern ConfigReader configReader;
class CharSelectProfile : public DataBuffer{
public:
CharSelectProfile(int16 version){
printf("GetCharSelectProfile\n");
packet = configReader.getStruct("CharSelectProfile",version);
for(int8 i=0;i<24;i++){
packet->setEquipmentByName("equip",0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,i);

View file

@ -429,7 +429,7 @@ void Client::CharacterApproved(int32 server_id,int32 char_id)
database.SaveCharacter(createRequest, GetLoginAccount(),char_id);
// refresh characters for this account
database.LoadCharacters(GetLoginAccount(), GetVersion());
database.LoadCharacters(GetLoginAccount(), GetOrigVersion());
SendCharList();
}
@ -496,8 +496,8 @@ void Client::SendCharList(){
safe_delete(packet);*/
LogWrite(LOGIN__INFO, 0, "Login", "[%s] sending character list.", GetAccountName());
LS_CharSelectList list;
list.loadData(GetAccountID(), GetLoginAccount()->charlist, GetVersion());
EQ2Packet* outapp = list.serialize(GetVersion());
list.loadData(GetAccountID(), GetLoginAccount()->charlist, GetOrigVersion());
EQ2Packet* outapp = list.serialize(GetOrigVersion());
// DumpPacket(outapp);
QueuePacket(outapp);
@ -519,231 +519,39 @@ void Client::SendLoginDenied(){
QueuePacket(app);
}
void Client::SendLoginAccepted(){ //all 0s are a success :)
PacketStruct* packet = configReader.getStruct("LS_LoginReplyMsg",version);
int i =0;
if ( packet )
void Client::SendLoginAccepted() {
PacketStruct* packet = configReader.getStruct("LS_LoginReplyMsg", GetOrigVersion());
int i = 0;
if (packet)
{
packet->setDataByName("account_id", 1);
packet->setDataByName("login_response", 0);
packet->setDataByName("reset_appearance", 0);
packet->setDataByName("do_not_force_soga", 1);
packet->setDataByName("race_unknown", 0x3F);
packet->setDataByName("unknown11", 2); // can be 7
packet->setDataByName("sub_level", 2);
packet->setDataByName("race_flag", 0x1FFFFF);
packet->setDataByName("class_flag", 0x7FFFFFE);
packet->setMediumStringByName("username", GetAccountName());
packet->setMediumStringByName("password", GetAccountName());
packet->setDataByName("unknown5", 0x7C);
packet->setDataByName("unknown7", 0xFF6FFFBF);
packet->setDataByName("account_id", 1);
//packet->setDataByName("login_response", 0);
//packet->setDataByName("reset_appearance", 0);
//packet->setDataByName("do_not_force_soga", 1);
//packet->setDataByName("race_unknown", 0x3F);
//packet->setDataByName("unknown11", 2); // can be 7
packet->setDataByName("sub_level", 2);
packet->setDataByName("race_flag", 0x1FFFFF);
packet->setDataByName("class_flag", 0x7FFFFFE);
packet->setMediumStringByName("username", GetAccountName());
packet->setMediumStringByName("password", GetAccountName());
packet->setDataByName("unknown5", 0x7C);
packet->setDataByName("unknown7", 0xFF6FFFBF);
// Image 2020 Notes
// Login Server only supports AoM at current time, but we will need to keep in mind the structure for 60100 or later calls for additional custom fields
// >=60100
packet->setDataByName("unknown11", 0x0E);
packet->setDataByName("unknown7a", 0xFFFF);
packet->setDataByName("unknown8", 0xFF, 1);
// Image 2020 Notes
// Login Server only supports AoM at current time, but we will need to keep in mind the structure for 60100 or later calls for additional custom fields
// >=60100
//packet->setDataByName("unknown7a", 0xFFFF);
//packet->setDataByName("unknown8", 0xFF, 1);
EQ2Packet* outapp = packet->serialize();
QueuePacket(outapp);
safe_delete(packet);
}
return;
if(version >= 843){
uchar login_accepted_packet[] ={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x7C,0x00,0x00,0xBF,0xBF,0xED,0x03
,0x1F,0x00,0x00,0x00,0x00,0x01,0x18,0x03,0x05,0x3C,0x02,0x03,0x01,0x00,0xF4,0xF4
,0xF4,0xFF,0xFF,0xFF,0x3D,0x02,0x08,0x01,0x00,0xF4,0xF4,0xF4,0xFF,0xFF,0xFF,0x41
,0x02,0x07,0x01,0x00,0xF4,0xF4,0xF4,0xFF,0xFF,0xFF,0xAE,0x0C,0x00,0x00,0x00,0xFF
,0xFF,0xFF,0xFF,0xFF,0xFF,0x34,0x0F,0x10,0x01,0x01,0x93,0x62,0x44,0xCF,0xCF,0xAF
,0x04,0x06,0x3C,0x02,0x03,0x01,0x00,0xB6,0x36,0x36,0xFF,0xFF,0xFF,0x41,0x02,0x07
,0x01,0x00,0xB6,0x36,0x36,0xFF,0xFF,0xFF,0x3D,0x02,0x08,0x01,0x00,0xB6,0x36,0x36
,0xFF,0xFF,0xFF,0x0F,0x09,0x00,0x01,0x01,0x67,0x54,0x42,0xA0,0xA0,0x50,0x0F,0x09
,0x00,0x01,0x01,0x67,0x54,0x42,0xA0,0xA0,0x50,0x34,0x0F,0x10,0x01,0x01,0x93,0x62
,0x44,0xCF,0xCF,0xAF,0x06,0x06,0x31,0x00,0x00,0x01,0x01,0xF4,0xF4,0xF4,0xF4,0xF4
,0xF4,0x31,0x00,0x00,0x01,0x01,0xF4,0xF4,0xF4,0xF4,0xF4,0xF4,0xF3,0x02,0x03,0x00
,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x31,0x00,0x07,0x00,0x00,0xFF,0xFF,0xFF,0xFF
,0xFF,0xFF,0x31,0x00,0x08,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x0E,0x10
,0x01,0x01,0xFF,0xFF,0x00,0x80,0x80,0x00,0x07,0x06,0xE6,0x09,0x00,0x01,0x01,0xBA
,0x7B,0x42,0xBA,0x7B,0x42,0xE6,0x09,0x00,0x01,0x01,0xBA,0x7B,0x42,0xBA,0x7B,0x42
,0xA6,0x01,0x08,0x01,0x01,0x77,0x60,0x46,0x77,0x60,0x46,0xAA,0x01,0x07,0x01,0x01
,0x77,0x60,0x46,0x77,0x60,0x46,0xC7,0x0F,0x03,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF
,0xFF,0xB2,0x0C,0x10,0x01,0x01,0xFF,0xFF,0x00,0x80,0x80,0x00,0x09,0x05,0x33,0x02
,0x03,0x01,0x00,0x2D,0x2D,0x2D,0xFF,0xFF,0xFF,0x34,0x02,0x08,0x01,0x00,0x2D,0x2D
,0x2D,0xFF,0xFF,0xFF,0x38,0x02,0x07,0x01,0x00,0x2D,0x2D,0x2D,0xFF,0xFF,0xFF,0x69
,0x09,0x00,0x01,0x01,0x6D,0x1C,0x1C,0x93,0x6B,0x6B,0x34,0x0F,0x10,0x01,0x01,0x93
,0x62,0x44,0xCF,0xCF,0xAF,0x0A,0x05,0x69,0x09,0x00,0x01,0x01,0xA7,0xA7,0xEB,0xA7
,0xA7,0xEB,0x33,0x02,0x03,0x01,0x00,0xF4,0xF4,0xF4,0xFF,0xFF,0xFF,0x38,0x02,0x07
,0x01,0x00,0xF4,0xF4,0xF4,0xFF,0xFF,0xFF,0x34,0x02,0x08,0x01,0x00,0xF4,0xF4,0xF4
,0xFF,0xFF,0xFF,0x34,0x0F,0x10,0x01,0x01,0x93,0x62,0x44,0xCF,0xCF,0xAF,0x0D,0x04
,0xEA,0x09,0x00,0x01,0x01,0xDD,0xDD,0x8C,0xDD,0xDD,0x8C,0x95,0x02,0x08,0x01,0x00
,0xF4,0xF4,0x0A,0xFF,0xFF,0xFF,0x94,0x02,0x03,0x01,0x00,0xF4,0xF4,0x0A,0xFF,0xFF
,0xFF,0x99,0x02,0x07,0x01,0x00,0xF4,0xF4,0x0A,0xFF,0xFF,0xFF,0x0E,0x04,0xC6,0x02
,0x08,0x01,0x00,0x13,0x13,0x13,0xFF,0xFF,0xFF,0xC5,0x02,0x03,0x01,0x00,0x13,0x13
,0x13,0xFF,0xFF,0xFF,0xCA,0x02,0x07,0x01,0x00,0x13,0x13,0x13,0xFF,0xFF,0xFF,0x14
,0x09,0x00,0x01,0x01,0x9C,0x4F,0x4F,0x2B,0x15,0x15,0x10,0x04,0xDF,0x09,0x00,0x01
,0x01,0x70,0xBA,0x70,0xBA,0x7B,0x42,0x38,0x04,0x08,0x01,0x00,0xB6,0xCD,0x2F,0xFF
,0xFF,0xFF,0x37,0x04,0x03,0x01,0x00,0xB6,0xCD,0x2F,0xFF,0xFF,0xFF,0x3C,0x04,0x07
,0x01,0x00,0xB6,0xCD,0x2F,0xFF,0xFF,0xFF,0x11,0x04,0xDF,0x09,0x00,0x01,0x01,0xBA
,0x7B,0x42,0x62,0xB3,0x62,0x38,0x04,0x08,0x01,0x00,0x1A,0x41,0x1A,0xFF,0xFF,0xFF
,0x3C,0x04,0x07,0x01,0x00,0x1A,0x41,0x1A,0xFF,0xFF,0xFF,0x37,0x04,0x03,0x01,0x00
,0x1A,0x41,0x1A,0xFF,0xFF,0xFF,0x13,0x04,0x59,0x0E,0x00,0x01,0x01,0x3B,0x7C,0x3B
,0xE2,0xE2,0x85,0xB6,0x03,0x08,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xB5,0x03
,0x03,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBA,0x03,0x07,0x00,0x00,0xFF,0xFF
,0xFF,0xFF,0xFF,0xFF,0x14,0x04,0x59,0x0E,0x00,0x01,0x01,0x2B,0x34,0x21,0xE2,0xE2
,0x85,0xA8,0x03,0x08,0x01,0x01,0x18,0x18,0x18,0x18,0x18,0x18,0xA7,0x03,0x03,0x01
,0x01,0x18,0x18,0x18,0x18,0x18,0x18,0xAC,0x03,0x07,0x01,0x01,0x18,0x18,0x18,0x18
,0x18,0x18,0x17,0x04,0x4B,0x0E,0x00,0x01,0x01,0xE6,0x95,0xE6,0xE6,0x95,0xE6,0xDA
,0x01,0x07,0x01,0x01,0x9E,0x9E,0xD8,0xA3,0x6B,0x80,0x92,0x17,0x03,0x01,0x01,0x66
,0x42,0x4B,0x9E,0x9E,0xD8,0xD6,0x01,0x08,0x01,0x01,0x9E,0x9E,0xD8,0xA3,0x6B,0x80
,0x18,0x04,0x4D,0x0E,0x00,0x01,0x01,0xCF,0x2F,0xCF,0xE6,0x95,0xE6,0x92,0x17,0x03
,0x01,0x01,0x70,0x70,0x70,0x67,0x2B,0x67,0xD6,0x01,0x08,0x01,0x01,0x67,0x2B,0x67
,0x50,0x50,0x50,0xDA,0x01,0x07,0x01,0x01,0x67,0x2B,0x67,0x50,0x50,0x50,0x1A,0x04
,0xE4,0x0C,0x00,0x01,0x01,0xBA,0xFF,0xBA,0xD4,0xE9,0xFF,0x92,0x17,0x03,0x01,0x01
,0xDA,0xDA,0xA5,0x60,0x60,0x9E,0xDA,0x01,0x07,0x01,0x01,0x60,0x60,0x9E,0xDA,0xDA
,0xA5,0xD6,0x01,0x08,0x01,0x01,0x60,0x60,0x9E,0xDA,0xDA,0xA5,0x1B,0x04,0x92,0x17
,0x03,0x01,0x01,0x99,0x48,0x48,0xF7,0xCF,0x82,0xDA,0x01,0x07,0x01,0x01,0xF7,0xCF
,0x82,0x99,0x48,0x48,0xD6,0x01,0x08,0x01,0x01,0xF7,0xCF,0x82,0x99,0x48,0x48,0xD7
,0x0E,0x00,0x01,0x01,0x8E,0x46,0x46,0x2B,0x15,0x15,0x1D,0x04,0xA9,0x08,0x00,0x01
,0x01,0xE8,0xB6,0x85,0xE8,0xB6,0x85,0x92,0x17,0x03,0x01,0x01,0x57,0x85,0xAE,0xD8
,0xE8,0xF4,0xD6,0x01,0x08,0x01,0x01,0xD8,0xE8,0xF4,0x95,0xB3,0xCD,0xDA,0x01,0x07
,0x01,0x01,0xD8,0xE8,0xF4,0x95,0xB3,0xCD,0x1E,0x04,0x92,0x17,0x03,0x01,0x01,0x62
,0x57,0x4D,0xA3,0x9E,0x9A,0xD6,0x01,0x08,0x01,0x01,0xFF,0xDA,0xB6,0x6B,0x57,0x44
,0xDA,0x01,0x07,0x01,0x01,0xFF,0xDA,0xB6,0x6B,0x57,0x44,0x3A,0x0E,0x00,0x01,0x01
,0x2B,0x54,0x54,0x2B,0x15,0x15,0x21,0x06,0x64,0x03,0x08,0x01,0x00,0x7E,0x4B,0x46
,0xFF,0xFF,0xFF,0x68,0x03,0x07,0x01,0x00,0x7E,0x4B,0x46,0xFF,0xFF,0xFF,0x63,0x03
,0x03,0x01,0x00,0x7E,0x4B,0x46,0xFF,0xFF,0xFF,0xA9,0x08,0x00,0x01,0x01,0x1F,0x3F
,0x60,0x62,0x62,0x62,0xA9,0x08,0x00,0x01,0x01,0x1F,0x3F,0x60,0x62,0x62,0x62,0x42
,0x0F,0x10,0x01,0x01,0xFF,0xFF,0x00,0x80,0x80,0x00,0x22,0x06,0xD6,0x0C,0x00,0x01
,0x01,0xE6,0x95,0xE6,0x1A,0x1A,0x70,0xD6,0x0C,0x00,0x01,0x01,0xE6,0x95,0xE6,0x1A
,0x1A,0x70,0x64,0x03,0x08,0x01,0x00,0x5D,0x42,0x5D,0xFF,0xFF,0xFF,0x68,0x03,0x07
,0x01,0x00,0x5D,0x42,0x5D,0xFF,0xFF,0xFF,0x63,0x03,0x03,0x01,0x00,0x5D,0x42,0x5D
,0xFF,0xFF,0xFF,0x42,0x0F,0x10,0x01,0x01,0xFF,0xFF,0x00,0x80,0x80,0x00,0x24,0x06
,0x63,0x03,0x03,0x01,0x00,0x99,0xC8,0xE2,0xFF,0xFF,0xFF,0x64,0x03,0x08,0x01,0x00
,0x99,0xC8,0xE2,0xFF,0xFF,0xFF,0x68,0x03,0x07,0x01,0x00,0x99,0xC8,0xE2,0xFF,0xFF
,0xFF,0xD6,0x0C,0x00,0x01,0x01,0x85,0x85,0xA7,0xD1,0xD1,0xAC,0xD6,0x0C,0x00,0x01
,0x01,0x85,0x85,0xA7,0xD1,0xD1,0xAC,0x34,0x0F,0x10,0x01,0x01,0x93,0x62,0x44,0xCF
,0xCF,0xAF,0x25,0x06,0x63,0x03,0x03,0x01,0x00,0xBF,0xA5,0x7E,0xFF,0xFF,0xFF,0x5C
,0x03,0x08,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x60,0x03,0x07,0x00,0x00,0xFF
,0xFF,0xFF,0xFF,0xFF,0xFF,0xB1,0x08,0x00,0x01,0x01,0x90,0x48,0x48,0x90,0x48,0x48
,0xB1,0x08,0x00,0x01,0x01,0x90,0x48,0x48,0x90,0x48,0x48,0x34,0x0F,0x10,0x01,0x01
,0x93,0x62,0x44,0xCF,0xCF,0xAF,0x27,0x06,0xB9,0x16,0x08,0x01,0x01,0x3D,0x54,0x3D
,0xBC,0xBC,0xBC,0xB8,0x16,0x03,0x01,0x01,0x3D,0x54,0x3D,0xBC,0xBC,0xBC,0xBD,0x16
,0x07,0x01,0x01,0x3D,0x54,0x3D,0xBC,0xBC,0xBC,0x34,0x0F,0x10,0x01,0x01,0x31,0x4D
,0x3F,0xCF,0xCF,0xAF,0xCD,0x08,0x00,0x01,0x01,0x2B,0x54,0x3F,0x3F,0x98,0x6B,0xCD
,0x08,0x00,0x01,0x01,0x2B,0x54,0x3F,0x3F,0x98,0x6B,0x28,0x06,0xB9,0x16,0x08,0x01
,0x01,0x21,0x21,0x31,0x3F,0x3F,0x3F,0xB8,0x16,0x03,0x01,0x01,0x21,0x21,0x31,0x3F
,0x3F,0x3F,0xBD,0x16,0x07,0x01,0x00,0x48,0x48,0x54,0xFF,0xFF,0xFF,0x34,0x0F,0x10
,0x01,0x01,0x31,0x4D,0x3F,0xCF,0xCF,0xAF,0xA9,0x08,0x00,0x01,0x01,0x1A,0x1A,0x70
,0xE6,0x95,0xE6,0xA9,0x08,0x00,0x01,0x01,0x1A,0x1A,0x70,0xE6,0x95,0xE6,0x0A,0xD1
,0x00,0x00,0x00,0xD0,0x00,0x00,0x00,0xCF,0x00,0x00,0x00,0x6E,0x00,0x00,0x00,0x70
,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x74
,0x00,0x00,0x00,0x76,0x00,0x00,0x00};
memcpy(login_accepted_packet+16, &account_id, sizeof(int32));
EQ2Packet* app = new EQ2Packet(OP_LoginReplyMsg, login_accepted_packet, sizeof(login_accepted_packet));
QueuePacket(app);
}
else{
uchar login_accepted_packet[] ={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x40,0x18,0x00,0x00,0xff,0xde,0x0d
,0x00,0x00,0x01,0x18,0x03,0x05,0x3c,0x02,0x03,0x01,0x00,0xf4,0xf4,0xf4,0xff,0xff
,0xff,0x3d,0x02,0x08,0x01,0x00,0xf4,0xf4,0xf4,0xff,0xff,0xff,0x41,0x02,0x07,0x01
,0x00,0xf4,0xf4,0xf4,0xff,0xff,0xff,0xae,0x0c,0x00,0x00,0x00,0xff,0xff,0xff,0xff
,0xff,0xff,0x34,0x0f,0x00,0x01,0x01,0x93,0x62,0x44,0xcf,0xcf,0xaf,0x04,0x06,0x3c
,0x02,0x03,0x01,0x00,0xb6,0x36,0x36,0xff,0xff,0xff,0x41,0x02,0x07,0x01,0x00,0xb6
,0x36,0x36,0xff,0xff,0xff,0x3d,0x02,0x08,0x01,0x00,0xb6,0x36,0x36,0xff,0xff,0xff
,0x0f,0x09,0x00,0x01,0x01,0x67,0x54,0x42,0xa0,0xa0,0x50,0x0f,0x09,0x00,0x01,0x01
,0x67,0x54,0x42,0xa0,0xa0,0x50,0x34,0x0f,0x00,0x01,0x01,0x93,0x62,0x44,0xcf,0xcf
,0xaf,0x06,0x06,0x31,0x00,0x00,0x01,0x01,0xf4,0xf4,0xf4,0xf4,0xf4,0xf4,0x31,0x00
,0x00,0x01,0x01,0xf4,0xf4,0xf4,0xf4,0xf4,0xf4,0xf3,0x02,0x03,0x00,0x00,0xff,0xff
,0xff,0xff,0xff,0xff,0x31,0x00,0x07,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0x31
,0x00,0x08,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x0e,0x00,0x01,0x01,0xff
,0xff,0x00,0x80,0x80,0x00,0x07,0x06,0xe6,0x09,0x00,0x01,0x01,0xba,0x7b,0x42,0xba
,0x7b,0x42,0xe6,0x09,0x00,0x01,0x01,0xba,0x7b,0x42,0xba,0x7b,0x42,0xa6,0x01,0x08
,0x01,0x01,0x77,0x60,0x46,0x77,0x60,0x46,0xaa,0x01,0x07,0x01,0x01,0x77,0x60,0x46
,0x77,0x60,0x46,0xc7,0x0f,0x03,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xb2,0x0c
,0x00,0x01,0x01,0xff,0xff,0x00,0x80,0x80,0x00,0x09,0x05,0x33,0x02,0x03,0x01,0x00
,0x2d,0x2d,0x2d,0xff,0xff,0xff,0x34,0x02,0x08,0x01,0x00,0x2d,0x2d,0x2d,0xff,0xff
,0xff,0x38,0x02,0x07,0x01,0x00,0x2d,0x2d,0x2d,0xff,0xff,0xff,0x69,0x09,0x00,0x01
,0x01,0x6d,0x1c,0x1c,0x93,0x6b,0x6b,0x34,0x0f,0x00,0x01,0x01,0x93,0x62,0x44,0xcf
,0xcf,0xaf,0x0a,0x05,0x69,0x09,0x00,0x01,0x01,0xa7,0xa7,0xeb,0xa7,0xa7,0xeb,0x33
,0x02,0x03,0x01,0x00,0xf4,0xf4,0xf4,0xff,0xff,0xff,0x38,0x02,0x07,0x01,0x00,0xf4
,0xf4,0xf4,0xff,0xff,0xff,0x34,0x02,0x08,0x01,0x00,0xf4,0xf4,0xf4,0xff,0xff,0xff
,0x34,0x0f,0x00,0x01,0x01,0x93,0x62,0x44,0xcf,0xcf,0xaf,0x0d,0x04,0xea,0x09,0x00
,0x01,0x01,0xdd,0xdd,0x8c,0xdd,0xdd,0x8c,0x95,0x02,0x08,0x01,0x00,0xf4,0xf4,0x0a
,0xff,0xff,0xff,0x94,0x02,0x03,0x01,0x00,0xf4,0xf4,0x0a,0xff,0xff,0xff,0x99,0x02
,0x07,0x01,0x00,0xf4,0xf4,0x0a,0xff,0xff,0xff,0x0e,0x04,0xc6,0x02,0x08,0x01,0x00
,0x13,0x13,0x13,0xff,0xff,0xff,0xc5,0x02,0x03,0x01,0x00,0x13,0x13,0x13,0xff,0xff
,0xff,0xca,0x02,0x07,0x01,0x00,0x13,0x13,0x13,0xff,0xff,0xff,0x14,0x09,0x00,0x01
,0x01,0x9c,0x4f,0x4f,0x2b,0x15,0x15,0x10,0x04,0xdf,0x09,0x00,0x01,0x01,0x70,0xba
,0x70,0xba,0x7b,0x42,0x38,0x04,0x08,0x01,0x00,0xb6,0xcd,0x2f,0xff,0xff,0xff,0x37
,0x04,0x03,0x01,0x00,0xb6,0xcd,0x2f,0xff,0xff,0xff,0x3c,0x04,0x07,0x01,0x00,0xb6
,0xcd,0x2f,0xff,0xff,0xff,0x11,0x04,0xdf,0x09,0x00,0x01,0x01,0xba,0x7b,0x42,0x62
,0xb3,0x62,0x38,0x04,0x08,0x01,0x00,0x1a,0x41,0x1a,0xff,0xff,0xff,0x3c,0x04,0x07
,0x01,0x00,0x1a,0x41,0x1a,0xff,0xff,0xff,0x37,0x04,0x03,0x01,0x00,0x1a,0x41,0x1a
,0xff,0xff,0xff,0x13,0x04,0x59,0x0e,0x00,0x01,0x01,0x3b,0x7c,0x3b,0xe2,0xe2,0x85
,0xb6,0x03,0x08,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xb5,0x03,0x03,0x00,0x00
,0xff,0xff,0xff,0xff,0xff,0xff,0xba,0x03,0x07,0x00,0x00,0xff,0xff,0xff,0xff,0xff
,0xff,0x14,0x04,0x59,0x0e,0x00,0x01,0x01,0x2b,0x34,0x21,0xe2,0xe2,0x85,0xa8,0x03
,0x08,0x01,0x01,0x18,0x18,0x18,0x18,0x18,0x18,0xa7,0x03,0x03,0x01,0x01,0x18,0x18
,0x18,0x18,0x18,0x18,0xac,0x03,0x07,0x01,0x01,0x18,0x18,0x18,0x18,0x18,0x18,0x17
,0x04,0x4b,0x0e,0x00,0x01,0x01,0xe6,0x95,0xe6,0xe6,0x95,0xe6,0xda,0x01,0x07,0x01
,0x01,0x9e,0x9e,0xd8,0xa3,0x6b,0x80,0x92,0x17,0x03,0x01,0x01,0x66,0x42,0x4b,0x9e
,0x9e,0xd8,0xd6,0x01,0x08,0x01,0x01,0x9e,0x9e,0xd8,0xa3,0x6b,0x80,0x18,0x04,0x4d
,0x0e,0x00,0x01,0x01,0xcf,0x2f,0xcf,0xe6,0x95,0xe6,0x92,0x17,0x03,0x01,0x01,0x70
,0x70,0x70,0x67,0x2b,0x67,0xd6,0x01,0x08,0x01,0x01,0x67,0x2b,0x67,0x50,0x50,0x50
,0xda,0x01,0x07,0x01,0x01,0x67,0x2b,0x67,0x50,0x50,0x50,0x1a,0x04,0xe4,0x0c,0x00
,0x01,0x01,0xba,0xff,0xba,0xd4,0xe9,0xff,0x92,0x17,0x03,0x01,0x01,0xda,0xda,0xa5
,0x60,0x60,0x9e,0xda,0x01,0x07,0x01,0x01,0x60,0x60,0x9e,0xda,0xda,0xa5,0xd6,0x01
,0x08,0x01,0x01,0x60,0x60,0x9e,0xda,0xda,0xa5,0x1b,0x04,0x92,0x17,0x03,0x01,0x01
,0x99,0x48,0x48,0xf7,0xcf,0x82,0xda,0x01,0x07,0x01,0x01,0xf7,0xcf,0x82,0x99,0x48
,0x48,0xd6,0x01,0x08,0x01,0x01,0xf7,0xcf,0x82,0x99,0x48,0x48,0xd7,0x0e,0x00,0x01
,0x01,0x8e,0x46,0x46,0x2b,0x15,0x15,0x1d,0x04,0xa9,0x08,0x00,0x01,0x01,0xe8,0xb6
,0x85,0xe8,0xb6,0x85,0x92,0x17,0x03,0x01,0x01,0x57,0x85,0xae,0xd8,0xe8,0xf4,0xd6
,0x01,0x08,0x01,0x01,0xd8,0xe8,0xf4,0x95,0xb3,0xcd,0xda,0x01,0x07,0x01,0x01,0xd8
,0xe8,0xf4,0x95,0xb3,0xcd,0x1e,0x04,0x92,0x17,0x03,0x01,0x01,0x62,0x57,0x4d,0xa3
,0x9e,0x9a,0xd6,0x01,0x08,0x01,0x01,0xff,0xda,0xb6,0x6b,0x57,0x44,0xda,0x01,0x07
,0x01,0x01,0xff,0xda,0xb6,0x6b,0x57,0x44,0x3a,0x0e,0x00,0x01,0x01,0x2b,0x54,0x54
,0x2b,0x15,0x15,0x21,0x06,0x64,0x03,0x08,0x01,0x00,0x7e,0x4b,0x46,0xff,0xff,0xff
,0x68,0x03,0x07,0x01,0x00,0x7e,0x4b,0x46,0xff,0xff,0xff,0x63,0x03,0x03,0x01,0x00
,0x7e,0x4b,0x46,0xff,0xff,0xff,0xa9,0x08,0x00,0x01,0x01,0x1f,0x3f,0x60,0x62,0x62
,0x62,0xa9,0x08,0x00,0x01,0x01,0x1f,0x3f,0x60,0x62,0x62,0x62,0x42,0x0f,0x00,0x01
,0x01,0xff,0xff,0x00,0x80,0x80,0x00,0x22,0x06,0xd6,0x0c,0x00,0x01,0x01,0xe6,0x95
,0xe6,0x1a,0x1a,0x70,0xd6,0x0c,0x00,0x01,0x01,0xe6,0x95,0xe6,0x1a,0x1a,0x70,0x64
,0x03,0x08,0x01,0x00,0x5d,0x42,0x5d,0xff,0xff,0xff,0x68,0x03,0x07,0x01,0x00,0x5d
,0x42,0x5d,0xff,0xff,0xff,0x63,0x03,0x03,0x01,0x00,0x5d,0x42,0x5d,0xff,0xff,0xff
,0x42,0x0f,0x00,0x01,0x01,0xff,0xff,0x00,0x80,0x80,0x00,0x24,0x06,0x63,0x03,0x03
,0x01,0x00,0x99,0xc8,0xe2,0xff,0xff,0xff,0x64,0x03,0x08,0x01,0x00,0x99,0xc8,0xe2
,0xff,0xff,0xff,0x68,0x03,0x07,0x01,0x00,0x99,0xc8,0xe2,0xff,0xff,0xff,0xd6,0x0c
,0x00,0x01,0x01,0x85,0x85,0xa7,0xd1,0xd1,0xac,0xd6,0x0c,0x00,0x01,0x01,0x85,0x85
,0xa7,0xd1,0xd1,0xac,0x34,0x0f,0x00,0x01,0x01,0x93,0x62,0x44,0xcf,0xcf,0xaf,0x25
,0x06,0x63,0x03,0x03,0x01,0x00,0xbf,0xa5,0x7e,0xff,0xff,0xff,0x5c,0x03,0x08,0x00
,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0x60,0x03,0x07,0x00,0x00,0xff,0xff,0xff,0xff
,0xff,0xff,0xb1,0x08,0x00,0x01,0x01,0x90,0x48,0x48,0x90,0x48,0x48,0xb1,0x08,0x00
,0x01,0x01,0x90,0x48,0x48,0x90,0x48,0x48,0x34,0x0f,0x00,0x01,0x01,0x93,0x62,0x44
,0xcf,0xcf,0xaf,0x27,0x06,0xb9,0x16,0x08,0x01,0x01,0x3d,0x54,0x3d,0xbc,0xbc,0xbc
,0xb8,0x16,0x03,0x01,0x01,0x3d,0x54,0x3d,0xbc,0xbc,0xbc,0x68,0x03,0x07,0x01,0x00
,0x3d,0x54,0x3d,0xff,0xff,0xff,0x34,0x0f,0x00,0x01,0x01,0x31,0x4d,0x3f,0xcf,0xcf
,0xaf,0xcd,0x08,0x00,0x01,0x01,0x2b,0x54,0x3f,0x3f,0x98,0x6b,0xcd,0x08,0x00,0x01
,0x01,0x2b,0x54,0x3f,0x3f,0x98,0x6b,0x28,0x06,0xb9,0x16,0x08,0x01,0x01,0x21,0x21
,0x31,0x3f,0x3f,0x3f,0xb8,0x16,0x03,0x01,0x01,0x21,0x21,0x31,0x3f,0x3f,0x3f,0x68
,0x03,0x07,0x01,0x00,0x48,0x48,0x54,0xff,0xff,0xff,0x34,0x0f,0x00,0x01,0x01,0x31
,0x4d,0x3f,0xcf,0xcf,0xaf,0xa9,0x08,0x00,0x01,0x01,0x1a,0x1a,0x70,0xe6,0x95,0xe6
,0xa9,0x08,0x00,0x01,0x01,0x1a,0x1a,0x70,0xe6,0x95,0xe6,0x0a,0xd1,0x00,0x00,0x00
,0xd0,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x70,0x00,0x00,0x00
,0x71,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x74,0x00,0x00,0x00
,0x76,0x00,0x00,0x00};
memcpy(login_accepted_packet+16, &account_id, sizeof(int32));
EQ2Packet* app = new EQ2Packet(OP_LoginReplyMsg, login_accepted_packet, sizeof(login_accepted_packet));
QueuePacket(app);
}
/*EQ2Packet* app = new EQ2Packet(OP_LoginReplyMsg, 0, sizeof(LS_LoginResponse));
LS_LoginResponse* ls_response = (LS_LoginResponse*)app->pBuffer;
ls_response->accountid = GetAccountID();
QueuePacket(app);*/
}
void Client::SendWorldList(){
EQ2Packet* pack = world_list.MakeServerListPacket(lsadmin, version);
EQ2Packet* dupe = pack->Copy();
@ -751,6 +559,7 @@ void Client::SendWorldList(){
QueuePacket(dupe);
return;
}
void Client::QueuePacket(EQ2Packet* app){
eqnc->EQ2QueuePacket(app);
}

View file

@ -43,6 +43,7 @@ struct LS_CharListAccountInfo{
int8 unknown4;
int32 unknown5[4];
int16 unknown6;
// int8 unknown7; // adds 'free' option..
};
#pragma pack()