Jump to content

Recommended Posts

Sorry for my english - google translation. (Thank you for your help)

Creating your own character - a snowman. Does snowflakes, works like a boomerang. It works perfectly in the slot is visible. In the hands of a snowman is not visible, but it works.
I followed the instructions:
http://forums.kleientertainment.com/topic/27341-tutorial-the-artists-guide-to-characteritem-modding/
title: But what about items?

File ...scripts/prefabs/vlocka

local assets={     Asset("ANIM", "anim/vlocka.zip"),    Asset("ANIM", "anim/swap_vlocka.zip"),		Asset("ATLAS", "images/inventoryimages/vlocka.xml"),    Asset("IMAGE", "images/inventoryimages/vlocka.tex"),}local prefabs = {}local function OnFinished(inst)    inst.AnimState:PlayAnimation("used")    inst:ListenForEvent("animover", function() inst:Remove() end)endlocal function OnEquip(inst, owner)     owner.AnimState:OverrideSymbol("swap_object", "swap_vlocka", "swap_vlocka")    owner.AnimState:Show("ARM_carry")     owner.AnimState:Hide("ARM_normal") endlocal function OnDropped(inst)    inst.AnimState:PlayAnimation("idle")endlocal function OnUnequip(inst, owner)     owner.AnimState:Hide("ARM_carry")     owner.AnimState:Show("ARM_normal") endlocal function OnThrown(inst, owner, target)    if target ~= owner then        owner.SoundEmitter:PlaySound("dontstarve/wilson/boomerang_throw")    end    inst.AnimState:PlayAnimation("spin_loop", true)endlocal function OnCaught(inst, catcher)    if catcher then        if catcher.components.inventory then            if inst.components.equippable and not catcher.components.inventory:GetEquippedItem(inst.components.equippable.equipslot) then				catcher.components.inventory:Equip(inst)			else                catcher.components.inventory:GiveItem(inst)            end            catcher:PushEvent("catch")        end    endendlocal function ReturnToOwner(inst, owner)    if owner and not (inst.components.finiteuses and inst.components.finiteuses:GetUses() < 1) then        owner.SoundEmitter:PlaySound("dontstarve/wilson/boomerang_return")        inst.components.projectile:Throw(owner, owner)    endendlocal function OnHit(inst, owner, target)    if owner == target then        OnDropped(inst)    else        ReturnToOwner(inst, owner)    end    local impactfx = SpawnPrefab("impact")    if impactfx then	    local follower = impactfx.entity:AddFollower()	    follower:FollowSymbol(target.GUID, target.components.combat.hiteffectsymbol, 0, 0, 0 )        impactfx:FacePoint(inst.Transform:GetWorldPosition())    endendlocal function fn(Sim)	local inst = CreateEntity()	local trans = inst .entity:AddTransform()	local anim = inst.entity:AddAnimState()    MakeInventoryPhysics(inst)    RemovePhysicsColliders(inst)        anim:SetBank("vlocka")    anim:SetBuild("vlocka")    anim:PlayAnimation("idle")    anim:SetRayTestOnBB(true);        inst:AddTag("projectile")    inst:AddTag("thrown")        inst:AddComponent("weapon")    inst.components.weapon:SetDamage(TUNING.BOOMERANG_DAMAGE)    inst.components.weapon:SetRange(TUNING.BOOMERANG_DISTANCE, TUNING.BOOMERANG_DISTANCE+2)    -------        inst:AddComponent("inspectable")        inst:AddComponent("projectile")    inst.components.projectile:SetSpeed(10)    inst.components.projectile:SetCanCatch(true)    inst.components.projectile:SetOnThrownFn(OnThrown)    inst.components.projectile:SetOnHitFn(OnHit)    inst.components.projectile:SetOnMissFn(ReturnToOwner)    inst.components.projectile:SetOnCaughtFn(OnCaught)        inst:AddComponent("inventoryitem")	inst.components.inventoryitem:SetOnDroppedFn(OnDropped)    inst.components.inventoryitem.imagename = "vlocka"    inst.components.inventoryitem.atlasname = "images/inventoryimages/vlocka.xml"        inst:AddComponent("equippable")    inst.components.equippable:SetOnEquip(OnEquip)    inst.components.equippable:SetOnUnequip(OnUnequip)        return instendreturn Prefab( "common/inventory/vlocka", fn, assets, prefabs) 

Picture of the game:
snowman-vlocka.jpg

@nirasa

its probably a problem with

anim:SetBank("vlocka")anim:SetBuild("vlocka")
and

owner.AnimState:OverrideSymbol("swap_object", "swap_vlocka", "swap_vlocka")
which is supposed to contain

owner.AnimState:OverrideSymbol("swap_object", "swap_vlocka"--[[build]],"swap_vlocka" --[[bank]])
and the actual names of the Bank(name of the animationfolder in anim.bin) and the Build(name in build.bin) in your anim/vlocka.zip and anim/swap_vlocka.zip.

If u dont mind to upload anim/vlocka.zip and anim/swap_vlocka.zip here, we can have a look at the actual data.

Edited by Seiai

@Seiai,

 

--[[ ... ]] is Lua's syntax for block comments, they don't have any effect on those lines.

 

I would like to take a peek at swap_vlocka.zip though

i know, i just wanted to mark those two parameters with whats supposed to be in there. i guess the bank in the override is wrong, and i asume u guess the same. Edited by Seiai

@Seiai,

 

--[[ ... ]] is Lua's syntax for block comments, they don't have any effect on those lines.

 

I would like to take a peek at swap_vlocka.zip though

 

I send the whole file with character Wilan. It is not finished.

I can not lua, but still I am learning. File vlocka.lua I copied from the file boomerang.lua and adjusted it.

Thank you both for your response.

wilan_snehulak.zip

i noticed that there is the end of both build.bin missing. you somehow deleted a bit when editing them.

and you named the atlas-0.tex in vlocka.zip altas-0.tex.

use the attached swap_vlocka.zip and vlocka.zip.

then change

anim:SetBank("vlocka")anim:SetBuild("vlocka")
to

anim:SetBank("boomerang")anim:SetBuild("vlocka")
this should make it, so it is visible on the ground.

then change

owner.AnimState:OverrideSymbol("swap_object", "swap_vlocka", "swap_vlocka")
to

owner.AnimState:OverrideSymbol("swap_object", "swap_vlocka", "swap_boomerang")
this should make it visible in your hand and when flying.

then i noticed that you used more space on the template than the boomerang, thats why there is a part missing. You will have to make the vlocka smaller:

swap_vlocka.zip

vlocka.zip

post-628848-0-49004400-1429995266.png

Edited by Seiai

Yeees! It works! Nice. Thank you very much for your help.

 

Edit: redundant post, i edited the above one.

Edit to make it a bit less redundant: vlocka is czech i presume? Greetings from just across the border, iam from austria near the CZ border^^

 

Yes, I'm from Czech republic :-)I greet you, too.

 

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
×
  • Create New...