Soul Filcher

  • Content count

  • Joined

  • Last visited

  1. Hi, In my mod I'm trying to add a bear trap, but not as a "real trap", and by that I mean it is not added to the trap list and is not meant to capture prey but to damage zombies and players. So far I can place it, but when I try to right-click on it I get the custom context menu shown twice, and when I click that I get an error and it doesn't call the function to actually pick it up. It is the first thing I'm trying to add beyond adding items and changing their distributions, so maybe I went with something way beyond my noob level. The code is mostly a frankenstein made from a few different sources. [spoiler][code]ISSFHuntMenu = {}; ISSFHuntMenu.currentSquare = nil; ISSFHuntMenu.sfbeartrap = nil; ISSFHuntMenu.doSFHuntMenu = function(player, context, worldobjects, test) local removeBearTrap = nil if test and ISWorldObjectContextMenu.Test then return true end if getSpecificPlayer(player):getInventory():contains("BearTrap") then context:addOption(getText("ContextMenu_Place_BearTrap"), worldobjects, ISSFHuntMenu.onAddBearTrap, player) end for i,v in ipairs(worldobjects) do if v:getName() == "Bear Trap" then sfbeartrap = v; context:addOption(getText("ContextMenu_Take_BearTrap"), sfbeartrap, ISSFHuntMenu.onRemoveBearTrap, player) end end return end function ISSFHuntMenu.onAddBearTrap(worldobjects, player) local bo = SFBearTrap:new("media/textures/constructedobjects_01_20.png", player); bo.player = player; getCell():setDrag(bo, player); end ISSFHuntMenu.onRemoveBearTrap = function(worldobjects, player, sfbeartrap) local playerObj = getSpecificPlayer(player) if luautils.walkAdj(playerObj, sfbeartrap:getSquare()) then ISTimedActionQueue.add(ISTakeBearTrap:new(playerObj, sfbeartrap, 60)); end end Events.OnFillWorldObjectContextMenu.Add(ISSFHuntMenu.doSFHuntMenu);[/code][spoiler] The error I get in game when I click to pick the trap is: Attempted index: GetSquare of non-table: null. I know it has something to do with how I made sfbeartrap = v and it being unable to determine the square it is on, but I don't understand enough to fix that.