From cb5a943f10e581f6782614d29766b26ce850de4c Mon Sep 17 00:00:00 2001 From: Machiavelli Date: Sun, 9 Jan 2011 13:30:14 +0100 Subject: Core/DBLayer: CHAR_DEL_AUCTION should be defined as asynchronous. Fixes a crash caused by assertion failure. ("Could not fetch prepared statement 54 on database `characters`, connection type: asynchronous.") --- src/server/shared/Database/Implementation/CharacterDatabase.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.h b/src/server/shared/Database/Implementation/CharacterDatabase.h index d1c9ae875da..af0420123c0 100755 --- a/src/server/shared/Database/Implementation/CharacterDatabase.h +++ b/src/server/shared/Database/Implementation/CharacterDatabase.h @@ -288,7 +288,7 @@ static const PreparedStatementTable CharacterDatabasePreparedStatements[] = {CHAR_LOAD_AUCTION_ITEMS, "SELECT creatorGuid, giftCreatorGuid, count, duration, charges, flags, enchantments, randomPropertyId, durability, playedTime, text, itemguid, itemEntry FROM auctionhouse ah JOIN item_instance ii ON ah.itemguid = ii.guid", CONNECTION_SYNCH}, {CHAR_LOAD_AUCTIONS, "SELECT id, auctioneerguid, itemguid, itemEntry, itemowner, buyoutprice, time, buyguid, lastbid, startbid, deposit FROM auctionhouse ah INNER JOIN item_instance ii ON ii.guid = ah.itemguid", CONNECTION_SYNCH}, {CHAR_ADD_AUCTION, "INSERT INTO auctionhouse (id, auctioneerguid, itemguid, itemowner, buyoutprice, time, buyguid, lastbid, startbid, deposit) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC}, - {CHAR_DEL_AUCTION, "DELETE FROM auctionhouse WHERE id = ?", CONNECTION_SYNCH}, + {CHAR_DEL_AUCTION, "DELETE FROM auctionhouse WHERE id = ?", CONNECTION_ASYNC}, {CHAR_ADD_MAIL, "INSERT INTO mail(id, messageType, stationery, mailTemplateId, sender, receiver, subject, body, has_items, expire_time, deliver_time, money,cod, checked) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC}, {CHAR_DEL_MAIL, "DELETE FROM mail WHERE id = ?", CONNECTION_ASYNC}, {CHAR_ADD_MAIL_ITEM, "INSERT INTO mail_items(mail_id, item_guid, receiver) VALUES (?, ?, ?)", CONNECTION_ASYNC}, -- cgit v1.2.3 From 45459bed23b78fc619475ee2177e826ae4494cd7 Mon Sep 17 00:00:00 2001 From: Derex Date: Sun, 9 Jan 2011 13:53:25 +0100 Subject: Core/Netcode: Fix file descriptor leak under linux platforms with ACE dev poll reactor. close #15 Signed-off-by: Machiavelli --- src/server/authserver/Server/RealmSocket.cpp | 1 + src/server/game/Server/WorldSocket.cpp | 1 + 2 files changed, 2 insertions(+) (limited to 'src') diff --git a/src/server/authserver/Server/RealmSocket.cpp b/src/server/authserver/Server/RealmSocket.cpp index 7d727a94b69..299dd450994 100755 --- a/src/server/authserver/Server/RealmSocket.cpp +++ b/src/server/authserver/Server/RealmSocket.cpp @@ -246,6 +246,7 @@ int RealmSocket::handle_close(ACE_HANDLE h, ACE_Reactor_Mask) if (session_) session_->OnClose(); + reactor()->remove_handler(this, ACE_Event_Handler::DONT_CALL | ACE_Event_Handler::ALL_EVENTS_MASK); return 0; } diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp index eb6d0234faf..084eade7555 100755 --- a/src/server/game/Server/WorldSocket.cpp +++ b/src/server/game/Server/WorldSocket.cpp @@ -459,6 +459,7 @@ int WorldSocket::handle_close (ACE_HANDLE h, ACE_Reactor_Mask) m_Session = NULL; } + reactor()->remove_handler(this, ACE_Event_Handler::DONT_CALL | ACE_Event_Handler::ALL_EVENTS_MASK); return 0; } -- cgit v1.2.3 From 1aa294d3e90eac8d5f3b28f332411bec47f8e44c Mon Sep 17 00:00:00 2001 From: Shauren Date: Sun, 9 Jan 2011 15:14:44 +0100 Subject: Core/Players: Fixed typo in updating soulbound trade times (check every second, not every 1000 seconds) --- src/server/game/Entities/Player/Player.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 7ed20819e68..8d330143ae1 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -1305,7 +1305,8 @@ void Player::Update(uint32 p_time) if (now > m_Last_tick) UpdateItemDuration(uint32(now - m_Last_tick)); - if (now > m_Last_tick + IN_MILLISECONDS) + // check every second + if (now > m_Last_tick + 1) UpdateSoulboundTradeItems(); if (!m_timedquests.empty()) -- cgit v1.2.3 From 01d4080b4d786d7e824018a4915e05872b64f996 Mon Sep 17 00:00:00 2001 From: Machiavelli Date: Sun, 9 Jan 2011 16:22:04 +0100 Subject: Core/Units: Send proper orientation in SMSG_MONSTER_MOVE_TRANSPORT Also get rid of the 100 constant in moveticks segment and use getMSTime() for consistency sake --- src/server/game/Entities/Unit/Unit.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 81b02334d65..bb3a1276fa5 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -426,11 +426,11 @@ void Unit::SendMonsterMoveTransport(Unit *vehicleOwner) data << GetPositionX() - vehicleOwner->GetPositionX(); data << GetPositionY() - vehicleOwner->GetPositionY(); data << GetPositionZ() - vehicleOwner->GetPositionZ(); - data << uint32(100); // should be an increasing constant that indicates movement packet count + data << uint32(getMSTime()); // should be an increasing constant that indicates movement packet count data << uint8(SPLINETYPE_FACING_ANGLE); - data << GetTransOffsetO(); // facing angle? + data << GetOrientation(); // facing angle? data << uint32(SPLINEFLAG_TRANSPORT); - data << uint32(0); // move time + data << uint32(GetTransTime()); // move time data << uint32(1); // amount of waypoints data << GetTransOffsetX(); data << GetTransOffsetY(); -- cgit v1.2.3