fixing humanoids and undead being pickpocketable when they shouldnt be #2729
+1
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🍰 Pullrequest
This will change so that all humanoids and undead are no longer pickpocketable, only the ones that should be (as in, those that have a corresponding entry in pickpocketing_loot_template). This is done by removing the check for creature type, which appears to have been errantly written so pickpocket was succesful if the type was correct but even if the creature didnt have a pickpocket loot table.
Issues
All humans and undead are pickpocketable, even if they shouldn't be #2728
How2Test
To test pick pocket you can log in on GM account and do
.learn 921
and.learn 1787
and then do.go cr "creature name"
to teleport to the creature you want to check.Here are a few examples of creatures that have no pickpocket-entry but are still pickpocketable currently: Ice Thistle Yeti, Ragged Owlbeast, Hungering Wraith, Wailing Death. The SQL query
SELECT * FROM pickpocketing_loot_template WHERE entry IN (7458, 7450, 1802, 1804)
will give no results, meaning they shouldn't be pickpocketable, but if you try it ingame they actually are.If you want more examples of humanoids and undead with no pickpocket-entry you could try this SQL query:
SELECT entry, name FROM creature_template WHERE type IN (6,7) AND NOT EXISTS (SELECT * FROM pickpocketing_loot_template AS pplt WHERE pplt.entry = creature_template.entry)