From 5fd5f2b3d1c77c3b85355c452ffc7e1fe2e12162 Mon Sep 17 00:00:00 2001 From: Alexander Pickering Date: Wed, 28 Feb 2018 09:41:23 -0500 Subject: Fixed some types, worked on 0x050 Fixed typos in a bunch of tutorials, did a little more work on 0x050 - Entities --- tutorials/tut050_entities.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'tutorials/tut050_entities.md') 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. -- cgit v1.2.3-70-g09d2