mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-24 17:21:29 +00:00
Merge git://github.com/EQEmu/Server into Development
Conflicts: changelog.txt
This commit is contained in:
commit
9de4f84f22
@ -1,11 +1,13 @@
|
|||||||
EQEMu Changelog (Started on Sept 24, 2003 15:50)
|
EQEMu Changelog (Started on Sept 24, 2003 15:50)
|
||||||
-------------------------------------------------------
|
-------------------------------------------------------
|
||||||
== 11/14/2014 ==
|
|
||||||
|
== 11/13/2014 ==
|
||||||
Kayen: Implemented target type (44) 'Beams' (which projects an AE infront of caster with a specified length and width).
|
Kayen: Implemented target type (44) 'Beams' (which projects an AE infront of caster with a specified length and width).
|
||||||
Kayen: Implemented target type (32) AE Target HateList
|
Kayen: Implemented target type (32) AE Target HateList
|
||||||
Kayen: Implemented target type (36) Area Client Only
|
Kayen: Implemented target type (36) Area Client Only
|
||||||
Kayen: Implemented target type (37) Area PC Only
|
Kayen: Implemented target type (37) Area PC Only
|
||||||
Kayen: Implemented target type (39) Group No Pet
|
Kayen: Implemented target type (39) Group No Pet
|
||||||
|
Uleat: PlayerLogMerchantTransactions does not support partial stack purchase logging at this time
|
||||||
|
|
||||||
== 11/12/2014 ==
|
== 11/12/2014 ==
|
||||||
Uleat: Changed 'GMTrainee' struct to reflect the actual client hard-coded max skill count (100) - applies to all currently supported clients (6.2->RoF)
|
Uleat: Changed 'GMTrainee' struct to reflect the actual client hard-coded max skill count (100) - applies to all currently supported clients (6.2->RoF)
|
||||||
|
|||||||
@ -12245,7 +12245,7 @@ void Client::Handle_OP_ShopPlayerBuy(const EQApplicationPacket *app)
|
|||||||
mpo->npcid = mp->npcid;
|
mpo->npcid = mp->npcid;
|
||||||
mpo->itemslot = mp->itemslot;
|
mpo->itemslot = mp->itemslot;
|
||||||
|
|
||||||
int16 freeslotid = 0;
|
int16 freeslotid = INVALID_INDEX;
|
||||||
int16 charges = 0;
|
int16 charges = 0;
|
||||||
if (item->Stackable || item->MaxCharges > 1)
|
if (item->Stackable || item->MaxCharges > 1)
|
||||||
charges = mp->quantity;
|
charges = mp->quantity;
|
||||||
@ -12271,6 +12271,9 @@ void Client::Handle_OP_ShopPlayerBuy(const EQApplicationPacket *app)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// this area needs some work..two inventory insertion check failure points
|
||||||
|
// below do not return player's money..is this the intended behavior?
|
||||||
|
|
||||||
if (!TakeMoneyFromPP(mpo->price))
|
if (!TakeMoneyFromPP(mpo->price))
|
||||||
{
|
{
|
||||||
char *hacker_str = nullptr;
|
char *hacker_str = nullptr;
|
||||||
@ -12288,6 +12291,8 @@ void Client::Handle_OP_ShopPlayerBuy(const EQApplicationPacket *app)
|
|||||||
if (!stacked)
|
if (!stacked)
|
||||||
freeslotid = m_inv.FindFreeSlot(false, true, item->Size);
|
freeslotid = m_inv.FindFreeSlot(false, true, item->Size);
|
||||||
|
|
||||||
|
// shouldn't we be reimbursing if these two fail?
|
||||||
|
|
||||||
//make sure we are not completely full...
|
//make sure we are not completely full...
|
||||||
if (freeslotid == MainCursor) {
|
if (freeslotid == MainCursor) {
|
||||||
if (m_inv.GetItem(MainCursor) != nullptr) {
|
if (m_inv.GetItem(MainCursor) != nullptr) {
|
||||||
@ -12342,7 +12347,8 @@ void Client::Handle_OP_ShopPlayerBuy(const EQApplicationPacket *app)
|
|||||||
safe_delete(outapp);
|
safe_delete(outapp);
|
||||||
|
|
||||||
// start QS code
|
// start QS code
|
||||||
if (RuleB(QueryServ, PlayerLogMerchantTransactions)) {
|
// stacking purchases not supported at this time - entire process will need some work to catch them properly
|
||||||
|
if (RuleB(QueryServ, PlayerLogMerchantTransactions) && (!stacked) && m_inv[freeslotid]) {
|
||||||
ServerPacket* qspack = new ServerPacket(ServerOP_QSPlayerLogMerchantTransactions, sizeof(QSMerchantLogTransaction_Struct)+sizeof(QSTransactionItems_Struct));
|
ServerPacket* qspack = new ServerPacket(ServerOP_QSPlayerLogMerchantTransactions, sizeof(QSMerchantLogTransaction_Struct)+sizeof(QSTransactionItems_Struct));
|
||||||
QSMerchantLogTransaction_Struct* qsaudit = (QSMerchantLogTransaction_Struct*)qspack->pBuffer;
|
QSMerchantLogTransaction_Struct* qsaudit = (QSMerchantLogTransaction_Struct*)qspack->pBuffer;
|
||||||
|
|
||||||
@ -12363,11 +12369,11 @@ void Client::Handle_OP_ShopPlayerBuy(const EQApplicationPacket *app)
|
|||||||
qsaudit->items[0].char_slot = freeslotid;
|
qsaudit->items[0].char_slot = freeslotid;
|
||||||
qsaudit->items[0].item_id = m_inv[freeslotid]->GetID();
|
qsaudit->items[0].item_id = m_inv[freeslotid]->GetID();
|
||||||
qsaudit->items[0].charges = mpo->quantity;
|
qsaudit->items[0].charges = mpo->quantity;
|
||||||
qsaudit->items[0].aug_1 = m_inv[freeslotid]->GetAugmentItemID(1);
|
qsaudit->items[0].aug_1 = m_inv[freeslotid]->GetAugmentItemID(0);
|
||||||
qsaudit->items[0].aug_2 = m_inv[freeslotid]->GetAugmentItemID(2);
|
qsaudit->items[0].aug_2 = m_inv[freeslotid]->GetAugmentItemID(1);
|
||||||
qsaudit->items[0].aug_3 = m_inv[freeslotid]->GetAugmentItemID(3);
|
qsaudit->items[0].aug_3 = m_inv[freeslotid]->GetAugmentItemID(2);
|
||||||
qsaudit->items[0].aug_4 = m_inv[freeslotid]->GetAugmentItemID(4);
|
qsaudit->items[0].aug_4 = m_inv[freeslotid]->GetAugmentItemID(3);
|
||||||
qsaudit->items[0].aug_5 = m_inv[freeslotid]->GetAugmentItemID(5);
|
qsaudit->items[0].aug_5 = m_inv[freeslotid]->GetAugmentItemID(4);
|
||||||
|
|
||||||
qspack->Deflate();
|
qspack->Deflate();
|
||||||
if (worldserver.Connected()) { worldserver.SendPacket(qspack); }
|
if (worldserver.Connected()) { worldserver.SendPacket(qspack); }
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user