Login world, fix sql

TODO: SMSG_UPDATE_OBJECT to see world

Signed-off-by: Yaki Khadafi <elsoldollo@gmail.com>
This commit is contained in:
Yaki Khadafi 2012-08-04 17:48:17 +03:00 committed by Antz
parent fad34d4640
commit ec939a5bce
6 changed files with 95 additions and 92 deletions

View file

@ -249,11 +249,6 @@ CREATE TABLE `characters` (
`power3` int(10) UNSIGNED NOT NULL default '0',
`power4` 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',
`activeSpec` tinyint(3) UNSIGNED NOT NULL default '0',
`exploredZones` longtext,
@ -632,7 +627,6 @@ CREATE TABLE `character_pet` (
`slot` int(11) unsigned NOT NULL default '0',
`curhealth` int(11) unsigned NOT NULL default '1',
`curmana` int(11) unsigned NOT NULL default '0',
`curhappiness` int(11) unsigned NOT NULL default '0',
`savetime` bigint(20) unsigned NOT NULL default '0',
`resettalents_cost` int(11) 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',
`maxpower4` 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',
`agility` int(10) UNSIGNED NOT NULL default '0',
`stamina` int(10) UNSIGNED NOT NULL default '0',

View file

@ -627,9 +627,6 @@ void WorldSession::HandleCharDeleteOpcode(WorldPacket& recv_data)
void WorldSession::HandlePlayerLoginOpcode(WorldPacket & recv_data )
{
ObjectGuid playerGuid;
recv_data >> playerGuid;
if(PlayerLoading() || GetPlayer() != NULL)
{
sLog.outError("Player tryes to login again, AccountId = %d", GetAccountId());
@ -638,7 +635,12 @@ void WorldSession::HandlePlayerLoginOpcode(WorldPacket& recv_data)
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);
if (!holder->Initialize())
@ -684,9 +686,22 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder* holder)
LoadAccountData(holder->GetResult(PLAYER_LOGIN_QUERY_LOADACCOUNTDATA),PER_CHARACTER_CACHE_MASK);
SendAccountDataTimes(PER_CHARACTER_CACHE_MASK);
data.Initialize(SMSG_FEATURE_SYSTEM_STATUS, 2); // added in 2.2.0
data << uint8(2); // unknown value
data << uint8(0); // enable(1)/disable(0) voice chat interface in client
data.Initialize(SMSG_FEATURE_SYSTEM_STATUS, 34); // added in 2.2.0
data << uint8(2); // status
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);
// Send MOTD
@ -762,8 +777,7 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder* holder)
}
data.Initialize(SMSG_LEARNED_DANCE_MOVES, 4+4);
data << uint32(0);
data << uint32(0);
data << uint64(0);
SendPacket(&data);
pCurrChar->SendInitialPacketsBeforeAddToMap();

View file

@ -108,26 +108,29 @@ enum CommandErrors
enum GuildEvents
{
GE_PROMOTION = 0x00,
GE_DEMOTION = 0x01,
GE_MOTD = 0x02,
GE_JOINED = 0x03,
GE_LEFT = 0x04,
GE_REMOVED = 0x05,
GE_LEADER_IS = 0x06,
GE_LEADER_CHANGED = 0x07,
GE_DISBANDED = 0x08,
GE_TABARDCHANGE = 0x09,
GE_UNK1 = 0x0A, // string, string EVENT_GUILD_ROSTER_UPDATE tab content change?
GE_UNK2 = 0x0B, // EVENT_GUILD_ROSTER_UPDATE
GE_SIGNED_ON = 0x0C, // ERR_FRIEND_ONLINE_SS
GE_SIGNED_OFF = 0x0D, // ERR_FRIEND_OFFLINE_S
GE_GUILDBANKBAGSLOTS_CHANGED = 0x0E, // EVENT_GUILDBANKBAGSLOTS_CHANGED
GE_BANKTAB_PURCHASED = 0x0F, // EVENT_GUILDBANK_UPDATE_TABS
GE_UNK5 = 0x10, // EVENT_GUILDBANK_UPDATE_TABS
GE_GUILDBANK_UPDATE_MONEY = 0x11, // EVENT_GUILDBANK_UPDATE_MONEY, string 0000000000002710 is 1 gold
GE_GUILD_BANK_MONEY_WITHDRAWN = 0x12, // MSG_GUILD_BANK_MONEY_WITHDRAWN
GE_GUILDBANK_TEXT_CHANGED = 0x13 // EVENT_GUILDBANK_TEXT_CHANGED
GE_PROMOTION = 0x01,
GE_DEMOTION = 0x02,
GE_MOTD = 0x03,
GE_JOINED = 0x04,
GE_LEFT = 0x05,
GE_REMOVED = 0x06,
GE_LEADER_IS = 0x07,
GE_LEADER_CHANGED = 0x08,
GE_DISBANDED = 0x09,
GE_TABARDCHANGE = 0x0A,
GE_UPDATE_RANK = 0x0B, // string, string EVENT_GUILD_ROSTER_UPDATE tab content change?
GE_CREATE_RANK = 0x0C, // EVENT_GUILD_ROSTER_UPDATE
GE_DELETE_RANK = 0x0D,
GE_RANK_ORDER_CHANGE = 0x0E,
GE_UNK = 0x0F,
GE_SIGNED_ON = 0x10, // ERR_FRIEND_ONLINE_SS
GE_SIGNED_OFF = 0x11, // ERR_FRIEND_OFFLINE_S
GE_GUILDBANKBAGSLOTS_CHANGED = 0x12, // EVENT_GUILDBANKBAGSLOTS_CHANGED
GE_BANKTAB_PURCHASED = 0x13, // EVENT_GUILDBANK_UPDATE_TABS
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

View file

@ -156,7 +156,7 @@ void ReputationMgr::SendState(FactionState const* faction, bool anyRankIncreased
void ReputationMgr::SendInitialReputations()
{
WorldPacket data(SMSG_INITIALIZE_FACTIONS, (4 + 128 * 5));
data << uint32(0x00000080);
data << uint32 (0x00000100);
RepListID a = 0;
@ -179,7 +179,7 @@ void ReputationMgr::SendInitialReputations()
}
// fill in absent fields
for (; a != 128; ++a)
for (; a != 256; ++a)
{
data << uint8(0x00);
data << uint32(0x00000000);

View file

@ -133,8 +133,11 @@ void WorldSession::SendPacket(WorldPacket const* packet)
if (!m_Socket)
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;
}
#ifdef MANGOS_DEBUG
@ -269,7 +272,7 @@ bool WorldSession::Update(PacketFilter& updater)
packet->GetOpcode());
break;
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()),
packet->GetOpcode());
break;

View file

@ -673,12 +673,6 @@ int WorldSocket::ProcessIncoming(WorldPacket* new_pct)
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_)
return -1;