Jump to content

onputininventory function and ondrop function not running


Recommended Posts

This is a bit of an extension of a previous post, but I cannot get these two functions to run. I think I am not setting up the functions properly, but I cannot find out how to set them up right.

 

local function setHealing(owner)
if self.owner ~= nil then
	local sanity = owner.components.sanity and owner.components.sanity.GetPercent() or 0
	local currentHealth = owner.components.health and owner.components.health.current or 0
	local maxHealth = owner.components.health and owner.components.health.maxhealth or 0
	local self = inst.components.inventoryitem
		healing = sanity * (maxHealth - currentHealth)
		self.components.healer:SetHealthAmount(healing)
	end
end
-- I am not sure if I am doing the code above properly, so I need help. I created a post before, as stated, but I have not gotten any help at all.
local function onputininventoryfn(owner)
	print("PickedUp")
	owner:ListenForEvent("sanitydelta", setHealing)
end

local function ondropfn(inst)
    owner:RemoveEventCallback("sanitydelta", setHealing)
end

 

Link to comment
Share on other sites

I'm not sure if this will work for you, at least when I did a quick test, my print was run.

instead of 

local function onputininventoryfn(owner)
	owner:ListenForEvent("sanitydelta", setHealing)

use

local function onputininventoryfn(inst, owner)
	inst:ListenForEvent("sanitydelta", setHealing, owner)

See also this post to understand why:

 

Spoiler

This is my code that I used that worked:


inst.components.inventoryitem.onputininventoryfn = function(inst, player) 
		inst:ListenForEvent("healthdelta", function() print("onputininventoryfn") end, player)
end

 

 

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
  • Create New...