diff options
Diffstat (limited to 'tutorials/tut050_entities.md')
| -rw-r--r-- | tutorials/tut050_entities.md | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tutorials/tut050_entities.md b/tutorials/tut050_entities.md index 1e1e837..e443cae 100644 --- a/tutorials/tut050_entities.md +++ b/tutorials/tut050_entities.md @@ -27,3 +27,28 @@ garrysmod/addons/artery\_rougelite/data/global/entity\_fountain.txt end scripted_ents.Register(ENT, "artery_fountain") + +garrysmod/addons/artery\_rogelite/data/global/entity\_alter.txt + + local ENT = scripted_ents.Get("prop_dynamic") + + function ENT:Initalize() + self:SetModel("models/props_junk/wood_crate002a.mdl") + end + + function ENT:Use(ply) + --Get all the items the player has that are cursed + local iscursed = function(item) + if item.attribute == -1 then -- Item is cursed + return true + end + end + local to_uncurse_pos = ply:HasItem(iscursed) + while(to_uncurse_pos) do --Will be nil if we don't have any cursed items + local item = ply:RemoveItem(to_uncurse_pos) + item.attribute = nil + ply:GiveItem(item) + end + end + +It may have been tempting here to just set the item's .attribute in our iscursed() function, since it will be the first place we detect a cursed item. **HOWEVER!** There are a lot of places in Artery that this kind of thing can BREAK other addons. Generally speaking, try not to modify items while they're in an inventory. Remove them, modify them, then add them back. |
