Kooby Posted July 14, 2017 Share Posted July 14, 2017 (edited) Hey, sorry for double posting, but the other thread seemed to get a tad too long with the switching of issues. I made a hand equippable item, everything works fine right now...except for one thing, the Swappable is missing. There IS a .zip file for the swappable, it's just not using it for some odd reason. This is the code in the .lua of the item. local assets = { Asset("ANIM", "anim/giita.zip"), Asset("ANIM", "anim/swap_giita.zip"), Asset("ATLAS", "images/inventoryimages/giita.xml"), Asset("IMAGE", "images/inventoryimages/giita.tex"), } local prefabs = { } local function ShouldAcceptItem(inst, item) if item.prefab == "silk" then return true end return false end local function OnGetItemFromPlayer(inst, giver, item) if item.prefab == "silk" then inst.components.finiteuses.current = inst.components.finiteuses.current + 25 end if inst.components.finiteuses.current > inst.components.finiteuses.total then inst.components.finiteuses.current = inst.components.finiteuses.total end end local function OnEquip(inst, owner) owner.AnimState:OverrideSymbol("swap_object", "swap_giita", "swap_giita") owner.AnimState:Show("ARM_carry") owner.AnimState:Hide("ARM_normal") end local function OnUnequip(inst, owner) owner.AnimState:Hide("ARM_carry") owner.AnimState:Show("ARM_normal") end local function fn() local inst = CreateEntity() inst.entity:AddTransform() inst.entity:AddAnimState() inst.entity:AddNetwork() MakeInventoryPhysics(inst) inst.AnimState:SetBank("giita") inst.AnimState:SetBuild("giita") inst.AnimState:PlayAnimation("idle") inst:AddTag("sharp") inst.entity:SetPristine() if not TheWorld.ismastersim then return inst end inst:AddComponent("weapon") inst.components.weapon:SetDamage(60) inst:AddComponent("finiteuses") inst.components.finiteuses:SetMaxUses(150) inst.components.finiteuses:SetUses(150) if inst.components.finiteuses.current < 0 then inst.components.finiteuses.current = 0 end inst:AddComponent("trader") inst.components.trader.onaccept = OnGetItemFromPlayer inst.components.trader:SetAcceptTest(ShouldAcceptItem) inst:AddComponent("inspectable") inst:AddComponent("inventoryitem") inst.components.inventoryitem.imagename = "giita" inst.components.inventoryitem.atlasname = "images/inventoryimages/giita.xml" inst:AddComponent("equippable") inst.components.equippable:SetOnEquip(OnEquip) inst.components.equippable:SetOnUnequip(OnUnequip) MakeHauntableLaunch(inst) return inst end STRINGS.NAMES.GIITA = "Giita the Guitar" STRINGS.CHARACTERS.GENERIC.DESCRIBE.GIITA = "Smells like cake." return Prefab("common/inventory/giita", fn, assets, prefabs) Edited July 14, 2017 by Kooby Link to comment Share on other sites More sharing options...
Arkathorn Posted August 12, 2017 Share Posted August 12, 2017 (edited) The issue is likely within the compiled animation. The specifics for how the Spriter project for a swap animation needs to be set up are very precise, and unclear. From what I can tell, the requirements are this (some may simply be a matter of standardization): Spriter project must be named "swap_itemname" Animation bank name must be "swap_itemname" Animation name must be "BUILD" Animation must override the pivot to set where the hand will grasp the object Image must be located in a subfolder within the spriter project, not next to the project file In the XML of the project file (open the file in a text editor), the line that begins <folder id="0" must be <folder id="0" name="swap_itemname"> ('name' must equal the name of the subfolder containing the image) Edited August 12, 2017 by Arkathorn Link to comment Share on other sites More sharing options...
ZupaleX Posted August 12, 2017 Share Posted August 12, 2017 (edited) I remember that this issue has been fixed already in a different thread a few weeks ago By the ways these requirements are only for hand held items. For wearable items it is not as strict. At least I have wearable items which works as intended without having to do all this bollocks with the animation named BUILD and whatnot, but for hand held item I never got it to work in any other way. Edited August 12, 2017 by ZupaleX Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now