mirror of
https://github.com/mangosfour/server.git
synced 2025-12-17 16:37:00 +00:00
Merge commit 'origin/master' into 320
Conflicts: sql/mangos.sql
This commit is contained in:
commit
b493c840e1
10 changed files with 111 additions and 78 deletions
|
|
@ -24,7 +24,7 @@ CREATE TABLE `db_version` (
|
||||||
`version` varchar(120) default NULL,
|
`version` varchar(120) default NULL,
|
||||||
`creature_ai_version` varchar(120) default NULL,
|
`creature_ai_version` varchar(120) default NULL,
|
||||||
`cache_id` int(10) default '0',
|
`cache_id` int(10) default '0',
|
||||||
`required_8498_01_mangos_spell_proc_event` bit(1) default NULL
|
`required_8499_01_mangos_spell_elixir` bit(1) default NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes';
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes';
|
||||||
|
|
||||||
--
|
--
|
||||||
|
|
@ -17044,14 +17044,29 @@ INSERT INTO `spell_elixir` VALUES
|
||||||
(45373,0x1),
|
(45373,0x1),
|
||||||
(46837,0xB),
|
(46837,0xB),
|
||||||
(46839,0xB),
|
(46839,0xB),
|
||||||
|
(53747,0x2),
|
||||||
|
(53748,0x1),
|
||||||
|
(53746,0x1),
|
||||||
|
(53749,0x1),
|
||||||
|
(53751,0x2),
|
||||||
(53752,0x3),
|
(53752,0x3),
|
||||||
(53755,0x3),
|
(53755,0x3),
|
||||||
(53758,0x3),
|
(53758,0x3),
|
||||||
(53760,0x3),
|
(53760,0x3),
|
||||||
|
(53763,0x2),
|
||||||
|
(53764,0x2),
|
||||||
(54212,0x3),
|
(54212,0x3),
|
||||||
(62380,0x3),
|
(54452,0x1),
|
||||||
(67019,0x3);
|
(54494,0x1),
|
||||||
|
(54497,0x2),
|
||||||
|
(60340,0x1),
|
||||||
|
(60341,0x1),
|
||||||
|
(60343,0x2),
|
||||||
|
(60344,0x1),
|
||||||
|
(60345,0x1),
|
||||||
|
(60346,0x1),
|
||||||
|
(60347,0x2),
|
||||||
|
(62380,0x3);
|
||||||
|
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `spell_elixir` ENABLE KEYS */;
|
/*!40000 ALTER TABLE `spell_elixir` ENABLE KEYS */;
|
||||||
|
|
|
||||||
24
sql/updates/8499_01_mangos_spell_elixir.sql
Normal file
24
sql/updates/8499_01_mangos_spell_elixir.sql
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
ALTER TABLE db_version CHANGE COLUMN required_8498_01_mangos_spell_proc_event required_8499_01_mangos_spell_elixir bit;
|
||||||
|
|
||||||
|
/* Elexirs added in 3.x */
|
||||||
|
DELETE FROM `spell_elixir` WHERE `entry` IN
|
||||||
|
(53747,53748,53746,53749,53751,53763,53764,54452,54494,54497,60340,60341,60343,60344,60345,60346,60347);
|
||||||
|
|
||||||
|
INSERT INTO `spell_elixir` (`entry`, `mask`) VALUES
|
||||||
|
(53747,0x2),
|
||||||
|
(53748,0x1),
|
||||||
|
(53746,0x1),
|
||||||
|
(53749,0x1),
|
||||||
|
(53751,0x2),
|
||||||
|
(53763,0x2),
|
||||||
|
(53764,0x2),
|
||||||
|
(54452,0x1),
|
||||||
|
(54494,0x1),
|
||||||
|
(54497,0x2),
|
||||||
|
(60340,0x1),
|
||||||
|
(60341,0x1),
|
||||||
|
(60343,0x2),
|
||||||
|
(60344,0x1),
|
||||||
|
(60345,0x1),
|
||||||
|
(60346,0x1),
|
||||||
|
(60347,0x2);
|
||||||
|
|
@ -106,6 +106,7 @@ pkgdata_DATA = \
|
||||||
8488_01_mangos_spell_chain.sql \
|
8488_01_mangos_spell_chain.sql \
|
||||||
8488_02_mangos_spell_bonus_data.sql \
|
8488_02_mangos_spell_bonus_data.sql \
|
||||||
8498_01_mangos_spell_proc_event.sql \
|
8498_01_mangos_spell_proc_event.sql \
|
||||||
|
8499_01_mangos_spell_elixir.sql \
|
||||||
README
|
README
|
||||||
|
|
||||||
## Additional files to include when running 'make dist'
|
## Additional files to include when running 'make dist'
|
||||||
|
|
@ -192,4 +193,5 @@ EXTRA_DIST = \
|
||||||
8488_01_mangos_spell_chain.sql \
|
8488_01_mangos_spell_chain.sql \
|
||||||
8488_02_mangos_spell_bonus_data.sql \
|
8488_02_mangos_spell_bonus_data.sql \
|
||||||
8498_01_mangos_spell_proc_event.sql \
|
8498_01_mangos_spell_proc_event.sql \
|
||||||
|
8499_01_mangos_spell_elixir.sql \
|
||||||
README
|
README
|
||||||
|
|
|
||||||
|
|
@ -421,7 +421,7 @@ uint32 GameEventMgr::Initialize() // return the next e
|
||||||
m_ActiveEvents.clear();
|
m_ActiveEvents.clear();
|
||||||
uint32 delay = Update();
|
uint32 delay = Update();
|
||||||
sLog.outBasic("Game Event system initialized." );
|
sLog.outBasic("Game Event system initialized." );
|
||||||
isSystemInit = true;
|
m_IsGameEventsInit = true;
|
||||||
return delay;
|
return delay;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -445,11 +445,14 @@ uint32 GameEventMgr::Update() // return the next e
|
||||||
StopEvent(itr);
|
StopEvent(itr);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!isSystemInit)
|
if (!m_IsGameEventsInit)
|
||||||
{
|
{
|
||||||
int16 event_nid = (-1) * (itr);
|
int16 event_nid = (-1) * (itr);
|
||||||
// spawn all negative ones for this event
|
// spawn all negative ones for this event
|
||||||
GameEventSpawn(event_nid);
|
GameEventSpawn(event_nid);
|
||||||
|
|
||||||
|
// disable any event specific quest (for cases where creature is spawned, but event not active).
|
||||||
|
UpdateEventQuests(itr, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -740,7 +743,7 @@ void GameEventMgr::UpdateEventQuests(uint16 event_id, bool Activate)
|
||||||
|
|
||||||
GameEventMgr::GameEventMgr()
|
GameEventMgr::GameEventMgr()
|
||||||
{
|
{
|
||||||
isSystemInit = false;
|
m_IsGameEventsInit = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
MANGOS_DLL_SPEC bool IsHolidayActive( HolidayIds id )
|
MANGOS_DLL_SPEC bool IsHolidayActive( HolidayIds id )
|
||||||
|
|
|
||||||
|
|
@ -94,7 +94,7 @@ class GameEventMgr
|
||||||
GameEventIdMap mGameEventPoolIds;
|
GameEventIdMap mGameEventPoolIds;
|
||||||
GameEventDataMap mGameEvent;
|
GameEventDataMap mGameEvent;
|
||||||
ActiveEvents m_ActiveEvents;
|
ActiveEvents m_ActiveEvents;
|
||||||
bool isSystemInit;
|
bool m_IsGameEventsInit;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define gameeventmgr MaNGOS::Singleton<GameEventMgr>::Instance()
|
#define gameeventmgr MaNGOS::Singleton<GameEventMgr>::Instance()
|
||||||
|
|
|
||||||
|
|
@ -1057,8 +1057,7 @@ bool Map::UnloadGrid(const uint32 &x, const uint32 &y, bool pForce)
|
||||||
GridMaps[gx][gy]->unloadData();
|
GridMaps[gx][gy]->unloadData();
|
||||||
delete GridMaps[gx][gy];
|
delete GridMaps[gx][gy];
|
||||||
}
|
}
|
||||||
// x and y are swapped
|
VMAP::VMapFactory::createOrGetVMapManager()->unloadMap(GetId(), gx, gy);
|
||||||
VMAP::VMapFactory::createOrGetVMapManager()->unloadMap(GetId(), gy, gx);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
((MapInstanced*)m_parentMap)->RemoveGridMapReference(GridPair(gx, gy));
|
((MapInstanced*)m_parentMap)->RemoveGridMapReference(GridPair(gx, gy));
|
||||||
|
|
|
||||||
|
|
@ -11419,8 +11419,7 @@ void Player::AddItemToBuyBackSlot( Item *pItem )
|
||||||
uint32 eslot = slot - BUYBACK_SLOT_START;
|
uint32 eslot = slot - BUYBACK_SLOT_START;
|
||||||
|
|
||||||
SetUInt64Value( PLAYER_FIELD_VENDORBUYBACK_SLOT_1 + (eslot * 2), pItem->GetGUID() );
|
SetUInt64Value( PLAYER_FIELD_VENDORBUYBACK_SLOT_1 + (eslot * 2), pItem->GetGUID() );
|
||||||
ItemPrototype const *pProto = pItem->GetProto();
|
if (ItemPrototype const *pProto = pItem->GetProto())
|
||||||
if( pProto )
|
|
||||||
SetUInt32Value( PLAYER_FIELD_BUYBACK_PRICE_1 + eslot, pProto->SellPrice * pItem->GetCount() );
|
SetUInt32Value( PLAYER_FIELD_BUYBACK_PRICE_1 + eslot, pProto->SellPrice * pItem->GetCount() );
|
||||||
else
|
else
|
||||||
SetUInt32Value( PLAYER_FIELD_BUYBACK_PRICE_1 + eslot, 0 );
|
SetUInt32Value( PLAYER_FIELD_BUYBACK_PRICE_1 + eslot, 0 );
|
||||||
|
|
@ -11468,10 +11467,10 @@ void Player::RemoveItemFromBuyBackSlot( uint32 slot, bool del )
|
||||||
void Player::SendEquipError( uint8 msg, Item* pItem, Item *pItem2 )
|
void Player::SendEquipError( uint8 msg, Item* pItem, Item *pItem2 )
|
||||||
{
|
{
|
||||||
sLog.outDebug( "WORLD: Sent SMSG_INVENTORY_CHANGE_FAILURE (%u)", msg);
|
sLog.outDebug( "WORLD: Sent SMSG_INVENTORY_CHANGE_FAILURE (%u)", msg);
|
||||||
WorldPacket data( SMSG_INVENTORY_CHANGE_FAILURE, (msg == EQUIP_ERR_CANT_EQUIP_LEVEL_I ? 22 : 18) );
|
WorldPacket data(SMSG_INVENTORY_CHANGE_FAILURE, (msg == EQUIP_ERR_CANT_EQUIP_LEVEL_I ? 22 : (msg == EQUIP_ERR_OK ? 1 : 18)));
|
||||||
data << uint8(msg);
|
data << uint8(msg);
|
||||||
|
|
||||||
if(msg)
|
if (msg != EQUIP_ERR_OK)
|
||||||
{
|
{
|
||||||
data << uint64(pItem ? pItem->GetGUID() : 0);
|
data << uint64(pItem ? pItem->GetGUID() : 0);
|
||||||
data << uint64(pItem2 ? pItem2->GetGUID() : 0);
|
data << uint64(pItem2 ? pItem2->GetGUID() : 0);
|
||||||
|
|
@ -11640,27 +11639,18 @@ void Player::RemoveAllEnchantments(EnchantmentSlot slot)
|
||||||
// NOTE: no need to remove these from stats, since these aren't equipped
|
// NOTE: no need to remove these from stats, since these aren't equipped
|
||||||
// in inventory
|
// in inventory
|
||||||
for(int i = INVENTORY_SLOT_ITEM_START; i < INVENTORY_SLOT_ITEM_END; ++i)
|
for(int i = INVENTORY_SLOT_ITEM_START; i < INVENTORY_SLOT_ITEM_END; ++i)
|
||||||
{
|
if (Item* pItem = GetItemByPos(INVENTORY_SLOT_BAG_0, i))
|
||||||
Item* pItem = GetItemByPos( INVENTORY_SLOT_BAG_0, i );
|
if (pItem->GetEnchantmentId(slot))
|
||||||
if( pItem && pItem->GetEnchantmentId(slot) )
|
|
||||||
pItem->ClearEnchantment(slot);
|
pItem->ClearEnchantment(slot);
|
||||||
}
|
|
||||||
|
|
||||||
// in inventory bags
|
// in inventory bags
|
||||||
for(int i = INVENTORY_SLOT_BAG_START; i < INVENTORY_SLOT_BAG_END; ++i)
|
for(int i = INVENTORY_SLOT_BAG_START; i < INVENTORY_SLOT_BAG_END; ++i)
|
||||||
{
|
if (Bag* pBag = (Bag*)GetItemByPos( INVENTORY_SLOT_BAG_0, i ))
|
||||||
Bag* pBag = (Bag*)GetItemByPos( INVENTORY_SLOT_BAG_0, i );
|
|
||||||
if( pBag )
|
|
||||||
{
|
|
||||||
for(uint32 j = 0; j < pBag->GetBagSize(); ++j)
|
for(uint32 j = 0; j < pBag->GetBagSize(); ++j)
|
||||||
{
|
if (Item* pItem = pBag->GetItemByPos(j))
|
||||||
Item* pItem = pBag->GetItemByPos(j);
|
if (pItem->GetEnchantmentId(slot))
|
||||||
if( pItem && pItem->GetEnchantmentId(slot) )
|
|
||||||
pItem->ClearEnchantment(slot);
|
pItem->ClearEnchantment(slot);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// duration == 0 will remove item enchant
|
// duration == 0 will remove item enchant
|
||||||
void Player::AddEnchantmentDuration(Item *item,EnchantmentSlot slot,uint32 duration)
|
void Player::AddEnchantmentDuration(Item *item,EnchantmentSlot slot,uint32 duration)
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ void WorldSession::SendNameQueryOpcode(Player *p)
|
||||||
// guess size
|
// guess size
|
||||||
WorldPacket data( SMSG_NAME_QUERY_RESPONSE, (8+1+1+1+1+1+10) );
|
WorldPacket data( SMSG_NAME_QUERY_RESPONSE, (8+1+1+1+1+1+10) );
|
||||||
data.append(p->GetPackGUID()); // player guid
|
data.append(p->GetPackGUID()); // player guid
|
||||||
data << uint8(0); // added in 3.1
|
data << uint8(0); // added in 3.1; if > 1, then end of packet
|
||||||
data << p->GetName(); // played name
|
data << p->GetName(); // played name
|
||||||
data << uint8(0); // realm name for cross realm BG usage
|
data << uint8(0); // realm name for cross realm BG usage
|
||||||
data << uint8(p->getRace());
|
data << uint8(p->getRace());
|
||||||
|
|
@ -104,7 +104,7 @@ void WorldSession::SendNameQueryOpcodeFromDBCallBack(QueryResult *result, uint32
|
||||||
// guess size
|
// guess size
|
||||||
WorldPacket data( SMSG_NAME_QUERY_RESPONSE, (8+1+1+1+1+1+1+10) );
|
WorldPacket data( SMSG_NAME_QUERY_RESPONSE, (8+1+1+1+1+1+1+10) );
|
||||||
data.appendPackGUID(MAKE_NEW_GUID(guid, 0, HIGHGUID_PLAYER));
|
data.appendPackGUID(MAKE_NEW_GUID(guid, 0, HIGHGUID_PLAYER));
|
||||||
data << uint8(0); // added in 3.1
|
data << uint8(0); // added in 3.1; if > 1, then end of packet
|
||||||
data << name;
|
data << name;
|
||||||
data << uint8(0); // realm name for cross realm BG usage
|
data << uint8(0); // realm name for cross realm BG usage
|
||||||
data << uint8(pRace); // race
|
data << uint8(pRace); // race
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "8498"
|
#define REVISION_NR "8502"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
#ifndef __REVISION_SQL_H__
|
#ifndef __REVISION_SQL_H__
|
||||||
#define __REVISION_SQL_H__
|
#define __REVISION_SQL_H__
|
||||||
#define REVISION_DB_CHARACTERS "required_8469_01_characters_character_spell"
|
#define REVISION_DB_CHARACTERS "required_8469_01_characters_character_spell"
|
||||||
#define REVISION_DB_MANGOS "required_8498_01_mangos_spell_proc_event"
|
#define REVISION_DB_MANGOS "required_8499_01_mangos_spell_elixir"
|
||||||
#define REVISION_DB_REALMD "required_8332_01_realmd_realmcharacters"
|
#define REVISION_DB_REALMD "required_8332_01_realmd_realmcharacters"
|
||||||
#endif // __REVISION_SQL_H__
|
#endif // __REVISION_SQL_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue