mirror of
https://github.com/mangosfour/server.git
synced 2025-12-12 10:37:03 +00:00
Login world, fix sql
TODO: SMSG_UPDATE_OBJECT to see world Signed-off-by: Yaki Khadafi <elsoldollo@gmail.com>
This commit is contained in:
parent
fad34d4640
commit
ec939a5bce
6 changed files with 95 additions and 92 deletions
|
|
@ -249,11 +249,6 @@ CREATE TABLE `characters` (
|
||||||
`power3` int(10) UNSIGNED NOT NULL default '0',
|
`power3` int(10) UNSIGNED NOT NULL default '0',
|
||||||
`power4` int(10) UNSIGNED NOT NULL default '0',
|
`power4` int(10) UNSIGNED NOT NULL default '0',
|
||||||
`power5` int(10) UNSIGNED NOT NULL default '0',
|
`power5` int(10) UNSIGNED NOT NULL default '0',
|
||||||
`power6` int(10) UNSIGNED NOT NULL default '0',
|
|
||||||
`power7` int(10) UNSIGNED NOT NULL default '0',
|
|
||||||
`power8` int(10) UNSIGNED NOT NULL default '0',
|
|
||||||
`power9` int(10) UNSIGNED NOT NULL default '0',
|
|
||||||
`power10` int(10) UNSIGNED NOT NULL default '0',
|
|
||||||
`specCount` tinyint(3) UNSIGNED NOT NULL default '1',
|
`specCount` tinyint(3) UNSIGNED NOT NULL default '1',
|
||||||
`activeSpec` tinyint(3) UNSIGNED NOT NULL default '0',
|
`activeSpec` tinyint(3) UNSIGNED NOT NULL default '0',
|
||||||
`exploredZones` longtext,
|
`exploredZones` longtext,
|
||||||
|
|
@ -632,7 +627,6 @@ CREATE TABLE `character_pet` (
|
||||||
`slot` int(11) unsigned NOT NULL default '0',
|
`slot` int(11) unsigned NOT NULL default '0',
|
||||||
`curhealth` int(11) unsigned NOT NULL default '1',
|
`curhealth` int(11) unsigned NOT NULL default '1',
|
||||||
`curmana` int(11) unsigned NOT NULL default '0',
|
`curmana` int(11) unsigned NOT NULL default '0',
|
||||||
`curhappiness` int(11) unsigned NOT NULL default '0',
|
|
||||||
`savetime` bigint(20) unsigned NOT NULL default '0',
|
`savetime` bigint(20) unsigned NOT NULL default '0',
|
||||||
`resettalents_cost` int(11) unsigned NOT NULL default '0',
|
`resettalents_cost` int(11) unsigned NOT NULL default '0',
|
||||||
`resettalents_time` bigint(20) unsigned NOT NULL default '0',
|
`resettalents_time` bigint(20) unsigned NOT NULL default '0',
|
||||||
|
|
@ -901,11 +895,6 @@ CREATE TABLE `character_stats` (
|
||||||
`maxpower3` int(10) UNSIGNED NOT NULL default '0',
|
`maxpower3` int(10) UNSIGNED NOT NULL default '0',
|
||||||
`maxpower4` int(10) UNSIGNED NOT NULL default '0',
|
`maxpower4` int(10) UNSIGNED NOT NULL default '0',
|
||||||
`maxpower5` int(10) UNSIGNED NOT NULL default '0',
|
`maxpower5` int(10) UNSIGNED NOT NULL default '0',
|
||||||
`maxpower6` int(10) UNSIGNED NOT NULL default '0',
|
|
||||||
`maxpower7` int(10) UNSIGNED NOT NULL default '0',
|
|
||||||
`maxpower8` int(10) UNSIGNED NOT NULL default '0',
|
|
||||||
`maxpower9` int(10) UNSIGNED NOT NULL default '0',
|
|
||||||
`maxpower10` int(10) UNSIGNED NOT NULL default '0',
|
|
||||||
`strength` int(10) UNSIGNED NOT NULL default '0',
|
`strength` int(10) UNSIGNED NOT NULL default '0',
|
||||||
`agility` int(10) UNSIGNED NOT NULL default '0',
|
`agility` int(10) UNSIGNED NOT NULL default '0',
|
||||||
`stamina` int(10) UNSIGNED NOT NULL default '0',
|
`stamina` int(10) UNSIGNED NOT NULL default '0',
|
||||||
|
|
|
||||||
|
|
@ -627,9 +627,6 @@ void WorldSession::HandleCharDeleteOpcode(WorldPacket& recv_data)
|
||||||
|
|
||||||
void WorldSession::HandlePlayerLoginOpcode(WorldPacket & recv_data )
|
void WorldSession::HandlePlayerLoginOpcode(WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
ObjectGuid playerGuid;
|
|
||||||
recv_data >> playerGuid;
|
|
||||||
|
|
||||||
if(PlayerLoading() || GetPlayer() != NULL)
|
if(PlayerLoading() || GetPlayer() != NULL)
|
||||||
{
|
{
|
||||||
sLog.outError("Player tryes to login again, AccountId = %d", GetAccountId());
|
sLog.outError("Player tryes to login again, AccountId = %d", GetAccountId());
|
||||||
|
|
@ -638,7 +635,12 @@ void WorldSession::HandlePlayerLoginOpcode(WorldPacket& recv_data)
|
||||||
|
|
||||||
m_playerLoading = true;
|
m_playerLoading = true;
|
||||||
|
|
||||||
DEBUG_LOG("WORLD: Recvd Player Logon Message");
|
ObjectGuid playerGuid;
|
||||||
|
|
||||||
|
recv_data.ReadGuidMask<2, 3, 0, 6, 4, 5, 1, 7>(playerGuid);
|
||||||
|
recv_data.ReadGuidBytes<2, 7, 0, 3, 5, 6, 1, 4>(playerGuid);
|
||||||
|
|
||||||
|
DEBUG_LOG("WORLD: Recvd Player Logon Message from %s", playerGuid.GetString().c_str());
|
||||||
|
|
||||||
LoginQueryHolder* holder = new LoginQueryHolder(GetAccountId(), playerGuid);
|
LoginQueryHolder* holder = new LoginQueryHolder(GetAccountId(), playerGuid);
|
||||||
if (!holder->Initialize())
|
if (!holder->Initialize())
|
||||||
|
|
@ -684,9 +686,22 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder* holder)
|
||||||
LoadAccountData(holder->GetResult(PLAYER_LOGIN_QUERY_LOADACCOUNTDATA),PER_CHARACTER_CACHE_MASK);
|
LoadAccountData(holder->GetResult(PLAYER_LOGIN_QUERY_LOADACCOUNTDATA),PER_CHARACTER_CACHE_MASK);
|
||||||
SendAccountDataTimes(PER_CHARACTER_CACHE_MASK);
|
SendAccountDataTimes(PER_CHARACTER_CACHE_MASK);
|
||||||
|
|
||||||
data.Initialize(SMSG_FEATURE_SYSTEM_STATUS, 2); // added in 2.2.0
|
data.Initialize(SMSG_FEATURE_SYSTEM_STATUS, 34); // added in 2.2.0
|
||||||
data << uint8(2); // unknown value
|
data << uint8(2); // status
|
||||||
data << uint8(0); // enable(1)/disable(0) voice chat interface in client
|
data << uint32(1); // Scrolls of Ressurection?
|
||||||
|
data << uint32(1);
|
||||||
|
data << uint32(2);
|
||||||
|
data << uint32(0);
|
||||||
|
data.WriteBit(true);
|
||||||
|
data.WriteBit(true);
|
||||||
|
data.WriteBit(false);
|
||||||
|
data.WriteBit(true);
|
||||||
|
data.WriteBit(false);
|
||||||
|
data.WriteBit(false); // enable(1)/disable(0) voice chat interface in client
|
||||||
|
data << uint32(1);
|
||||||
|
data << uint32(0);
|
||||||
|
data << uint32(10);
|
||||||
|
data << uint32(60);
|
||||||
SendPacket(&data);
|
SendPacket(&data);
|
||||||
|
|
||||||
// Send MOTD
|
// Send MOTD
|
||||||
|
|
@ -762,8 +777,7 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder* holder)
|
||||||
}
|
}
|
||||||
|
|
||||||
data.Initialize(SMSG_LEARNED_DANCE_MOVES, 4+4);
|
data.Initialize(SMSG_LEARNED_DANCE_MOVES, 4+4);
|
||||||
data << uint32(0);
|
data << uint64(0);
|
||||||
data << uint32(0);
|
|
||||||
SendPacket(&data);
|
SendPacket(&data);
|
||||||
|
|
||||||
pCurrChar->SendInitialPacketsBeforeAddToMap();
|
pCurrChar->SendInitialPacketsBeforeAddToMap();
|
||||||
|
|
|
||||||
|
|
@ -108,26 +108,29 @@ enum CommandErrors
|
||||||
|
|
||||||
enum GuildEvents
|
enum GuildEvents
|
||||||
{
|
{
|
||||||
GE_PROMOTION = 0x00,
|
GE_PROMOTION = 0x01,
|
||||||
GE_DEMOTION = 0x01,
|
GE_DEMOTION = 0x02,
|
||||||
GE_MOTD = 0x02,
|
GE_MOTD = 0x03,
|
||||||
GE_JOINED = 0x03,
|
GE_JOINED = 0x04,
|
||||||
GE_LEFT = 0x04,
|
GE_LEFT = 0x05,
|
||||||
GE_REMOVED = 0x05,
|
GE_REMOVED = 0x06,
|
||||||
GE_LEADER_IS = 0x06,
|
GE_LEADER_IS = 0x07,
|
||||||
GE_LEADER_CHANGED = 0x07,
|
GE_LEADER_CHANGED = 0x08,
|
||||||
GE_DISBANDED = 0x08,
|
GE_DISBANDED = 0x09,
|
||||||
GE_TABARDCHANGE = 0x09,
|
GE_TABARDCHANGE = 0x0A,
|
||||||
GE_UNK1 = 0x0A, // string, string EVENT_GUILD_ROSTER_UPDATE tab content change?
|
GE_UPDATE_RANK = 0x0B, // string, string EVENT_GUILD_ROSTER_UPDATE tab content change?
|
||||||
GE_UNK2 = 0x0B, // EVENT_GUILD_ROSTER_UPDATE
|
GE_CREATE_RANK = 0x0C, // EVENT_GUILD_ROSTER_UPDATE
|
||||||
GE_SIGNED_ON = 0x0C, // ERR_FRIEND_ONLINE_SS
|
GE_DELETE_RANK = 0x0D,
|
||||||
GE_SIGNED_OFF = 0x0D, // ERR_FRIEND_OFFLINE_S
|
GE_RANK_ORDER_CHANGE = 0x0E,
|
||||||
GE_GUILDBANKBAGSLOTS_CHANGED = 0x0E, // EVENT_GUILDBANKBAGSLOTS_CHANGED
|
GE_UNK = 0x0F,
|
||||||
GE_BANKTAB_PURCHASED = 0x0F, // EVENT_GUILDBANK_UPDATE_TABS
|
GE_SIGNED_ON = 0x10, // ERR_FRIEND_ONLINE_SS
|
||||||
GE_UNK5 = 0x10, // EVENT_GUILDBANK_UPDATE_TABS
|
GE_SIGNED_OFF = 0x11, // ERR_FRIEND_OFFLINE_S
|
||||||
GE_GUILDBANK_UPDATE_MONEY = 0x11, // EVENT_GUILDBANK_UPDATE_MONEY, string 0000000000002710 is 1 gold
|
GE_GUILDBANKBAGSLOTS_CHANGED = 0x12, // EVENT_GUILDBANKBAGSLOTS_CHANGED
|
||||||
GE_GUILD_BANK_MONEY_WITHDRAWN = 0x12, // MSG_GUILD_BANK_MONEY_WITHDRAWN
|
GE_BANKTAB_PURCHASED = 0x13, // EVENT_GUILDBANK_UPDATE_TABS
|
||||||
GE_GUILDBANK_TEXT_CHANGED = 0x13 // EVENT_GUILDBANK_TEXT_CHANGED
|
GE_BANKTAB_UPDATED = 0x14, // EVENT_GUILDBANK_UPDATE_TABS
|
||||||
|
GE_GUILDBANK_UPDATE_MONEY = 0x15, // EVENT_GUILDBANK_UPDATE_MONEY, string 0000000000002710 is 1 gold
|
||||||
|
GE_GUILD_BANK_MONEY_WITHDRAWN = 0x16, // MSG_GUILD_BANK_MONEY_WITHDRAWN
|
||||||
|
GE_GUILDBANK_TEXT_CHANGED = 0x17 // EVENT_GUILDBANK_TEXT_CHANGED
|
||||||
};
|
};
|
||||||
|
|
||||||
enum PetitionTurns
|
enum PetitionTurns
|
||||||
|
|
|
||||||
|
|
@ -156,7 +156,7 @@ void ReputationMgr::SendState(FactionState const* faction, bool anyRankIncreased
|
||||||
void ReputationMgr::SendInitialReputations()
|
void ReputationMgr::SendInitialReputations()
|
||||||
{
|
{
|
||||||
WorldPacket data(SMSG_INITIALIZE_FACTIONS, (4 + 128 * 5));
|
WorldPacket data(SMSG_INITIALIZE_FACTIONS, (4 + 128 * 5));
|
||||||
data << uint32(0x00000080);
|
data << uint32 (0x00000100);
|
||||||
|
|
||||||
RepListID a = 0;
|
RepListID a = 0;
|
||||||
|
|
||||||
|
|
@ -179,7 +179,7 @@ void ReputationMgr::SendInitialReputations()
|
||||||
}
|
}
|
||||||
|
|
||||||
// fill in absent fields
|
// fill in absent fields
|
||||||
for (; a != 128; ++a)
|
for (; a != 256; ++a)
|
||||||
{
|
{
|
||||||
data << uint8(0x00);
|
data << uint8(0x00);
|
||||||
data << uint32(0x00000000);
|
data << uint32(0x00000000);
|
||||||
|
|
|
||||||
|
|
@ -133,8 +133,11 @@ void WorldSession::SendPacket(WorldPacket const* packet)
|
||||||
if (!m_Socket)
|
if (!m_Socket)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (packet->GetOpcode() >= NUM_MSG_TYPES && packet->GetOpcode() != MSG_WOW_CONNECTION)
|
if (opcodeTable[packet->GetOpcode()].status == STATUS_UNHANDLED)
|
||||||
|
{
|
||||||
|
sLog.outError("SESSION: tried to send an unhandled opcode 0x%.4X", packet->GetOpcode());
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef MANGOS_DEBUG
|
#ifdef MANGOS_DEBUG
|
||||||
|
|
||||||
|
|
@ -269,7 +272,7 @@ bool WorldSession::Update(PacketFilter& updater)
|
||||||
packet->GetOpcode());
|
packet->GetOpcode());
|
||||||
break;
|
break;
|
||||||
case STATUS_UNHANDLED:
|
case STATUS_UNHANDLED:
|
||||||
DEBUG_LOG("SESSION: received not handled opcode %s (0x%.4X)",
|
sLog.outError("SESSION: received not handled opcode %s (0x%.4X)",
|
||||||
LookupOpcodeName(packet->GetOpcode()),
|
LookupOpcodeName(packet->GetOpcode()),
|
||||||
packet->GetOpcode());
|
packet->GetOpcode());
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -673,12 +673,6 @@ int WorldSocket::ProcessIncoming(WorldPacket* new_pct)
|
||||||
|
|
||||||
const ACE_UINT16 opcode = new_pct->GetOpcode();
|
const ACE_UINT16 opcode = new_pct->GetOpcode();
|
||||||
|
|
||||||
if (opcode >= NUM_MSG_TYPES && opcode != MSG_WOW_CONNECTION)
|
|
||||||
{
|
|
||||||
sLog.outError("SESSION: received nonexistent opcode 0x%.4X", opcode);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (closing_)
|
if (closing_)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue