mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 21:01:29 +00:00
Fix for possible server crash when applying poison
This commit is contained in:
parent
cd95f58625
commit
594ec4faee
@ -2812,24 +2812,19 @@ void Client::Handle_OP_ApplyPoison(const EQApplicationPacket *app)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32 ApplyPoisonSuccessResult = 0;
|
|
||||||
ApplyPoison_Struct* ApplyPoisonData = (ApplyPoison_Struct*)app->pBuffer;
|
ApplyPoison_Struct* ApplyPoisonData = (ApplyPoison_Struct*)app->pBuffer;
|
||||||
|
|
||||||
|
uint32 ApplyPoisonSuccessResult = 0;
|
||||||
|
|
||||||
const EQEmu::ItemInstance* PrimaryWeapon = GetInv().GetItem(EQEmu::invslot::slotPrimary);
|
const EQEmu::ItemInstance* PrimaryWeapon = GetInv().GetItem(EQEmu::invslot::slotPrimary);
|
||||||
const EQEmu::ItemInstance* SecondaryWeapon = GetInv().GetItem(EQEmu::invslot::slotSecondary);
|
const EQEmu::ItemInstance* SecondaryWeapon = GetInv().GetItem(EQEmu::invslot::slotSecondary);
|
||||||
const EQEmu::ItemInstance* PoisonItemInstance = GetInv()[ApplyPoisonData->inventorySlot];
|
const EQEmu::ItemInstance* PoisonItemInstance = GetInv().GetItem(ApplyPoisonData->inventorySlot);
|
||||||
const EQEmu::ItemData* poison=PoisonItemInstance->GetItem();
|
|
||||||
const EQEmu::ItemData* primary=nullptr;
|
|
||||||
const EQEmu::ItemData* secondary=nullptr;
|
|
||||||
bool IsPoison = PoisonItemInstance &&
|
|
||||||
(poison->ItemType == EQEmu::item::ItemTypePoison);
|
|
||||||
|
|
||||||
if (PrimaryWeapon) {
|
const EQEmu::ItemData* primary = (PrimaryWeapon ? PrimaryWeapon->GetItem() : nullptr);
|
||||||
primary=PrimaryWeapon->GetItem();
|
const EQEmu::ItemData* secondary = (SecondaryWeapon ? SecondaryWeapon->GetItem() : nullptr);
|
||||||
}
|
const EQEmu::ItemData* poison = (PoisonItemInstance ? PoisonItemInstance->GetItem() : nullptr);
|
||||||
|
|
||||||
if (SecondaryWeapon) {
|
bool IsPoison = (poison && poison->ItemType == EQEmu::item::ItemTypePoison);
|
||||||
secondary=SecondaryWeapon->GetItem();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (IsPoison && GetClass() == ROGUE) {
|
if (IsPoison && GetClass() == ROGUE) {
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user