Prevent RemoveItem() script function from clearing inventorySendBuffer

Up to this commit, the following commands in a Lua script led to the target player receiving all three items, as expected:

    tes3mp.AddItem(self.pid, "common_shirt_01", 1, -1)
    tes3mp.AddItem(self.pid, "common_pants_01", 1, -1)
    tes3mp.AddItem(self.pid, "common_shoes_01", 1, -1)
    tes3mp.SendInventory(self.pid)

This, on the other hand, only led to the removal of the last item specified (in this case, the shoes):

    tes3mp.RemoveItem(self.pid, "common_shirt_01", 1)
    tes3mp.RemoveItem(self.pid, "common_pants_01", 1)
    tes3mp.RemoveItem(self.pid, "common_shoes_01", 1)
    tes3mp.SendInventory(self.pid)

Inventory functions are bound to remain confusing, but they should at least be consistent in their behavior.
coverity_scan^2
David Cernat 8 years ago
parent c6eac31d94
commit 7fae28ce91

@ -65,7 +65,6 @@ void ItemFunctions::RemoveItem(unsigned short pid, const char* itemName, unsigne
item.refid = itemName;
item.count = count;
player->inventorySendBuffer.items.clear();
player->inventorySendBuffer.items.push_back(item);
player->inventorySendBuffer.action = Inventory::REMOVEITEM;
}

Loading…
Cancel
Save