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',
|
||||
`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',
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue