rons0n Posted March 18, 2016 Share Posted March 18, 2016 So apparently they did something new with chester and it's now conflicting with my Dogoo in my Plutia mod. I just need to figure out what this means: [00:02:40]: [string "scripts/stategraphs/SGchester.lua"]:316: attempt to index field 'sounds' (a nil value) LUA ERROR stack traceback: scripts/stategraphs/SGchester.lua:316 in (field) fn (Lua) <315-328> scripts/stategraph.lua:568 in (method) UpdateState (Lua) <536-580> scripts/stategraph.lua:607 in (method) Update (Lua) <599-627> scripts/stategraph.lua:125 in (method) Update (Lua) <109-148> scripts/update.lua:209 in () ? (Lua) <150-223> I know its probably something missing but I'm kinda just sitting here all confused. Anything intel is appreciated! Link to comment https://forums.kleientertainment.com/forums/topic/65521-custom-chester-problemnewest-update/ Share on other sites More sharing options...
Muche Posted March 18, 2016 Share Posted March 18, 2016 Here are chester related changes in v170540 (hutch not included here): Spoiler --- data/scripts/prefabs/chester.old.lua +++ data/scripts/prefabs/chester.new.lua @@ -15,6 +15,10 @@ local assets = Asset("ANIM", "anim/chester_snow_build.zip"), Asset("SOUND", "sound/chester.fsb"), + + Asset("MINIMAP_IMAGE", "chester"), + Asset("MINIMAP_IMAGE", "chestershadow"), + Asset("MINIMAP_IMAGE", "chestersnow"), } local prefabs = @@ -24,6 +28,18 @@ local prefabs = "chester_transform_fx", } +local sounds = +{ + hurt = "dontstarve/creatures/chester/hurt", + pant = "dontstarve/creatures/chester/pant", + death = "dontstarve/creatures/chester/death", + open = "dontstarve/creatures/chester/open", + close = "dontstarve/creatures/chester/close", + pop = "dontstarve/creatures/chester/pop", + boing = "dontstarve/creatures/chester/boing", + lick = "dontstarve/creatures/chester/lick", +} + local function ShouldWakeUp(inst) return DefaultWakeTest(inst) or not inst.components.follower:IsNearLeader(WAKE_TO_FOLLOW_DISTANCE) end @@ -63,10 +79,11 @@ end local function MorphShadowChester(inst) inst.AnimState:SetBuild("chester_shadow_build") inst:AddTag("spoiler") + inst.MiniMapEntity:SetIcon("chestershadow.png") inst.components.container:WidgetSetup("shadowchester") - local leader = inst.components.follower.leader + local leader = inst.components.follower.leader if leader ~= nil then inst.components.follower.leader:MorphShadowEyebone() end @@ -78,6 +95,7 @@ end local function MorphSnowChester(inst) inst.AnimState:SetBuild("chester_snow_build") inst:AddTag("fridge") + inst.MiniMapEntity:SetIcon("chestersnow.png") local leader = inst.components.follower.leader if leader ~= nil then @@ -93,6 +111,7 @@ local function MorphNormalChester(inst) inst.AnimState:SetBuild("chester_build") inst:RemoveTag("fridge") inst:RemoveTag("spoiler") + inst.MiniMapEntity:SetIcon("chester.png") inst.components.container:WidgetSetup("chester") @@ -147,7 +166,7 @@ local function DoMorph(inst, fn) inst.MorphChester = nil inst:StopWatchingWorldState("isfullmoon", CheckForMorph) inst:RemoveEventCallback("onclose", CheckForMorph) - fn(inst) + fn(inst) end local function MorphChester(inst) @@ -185,11 +204,19 @@ local function OnIsShadowChesterDirty(inst) end end -local function create_chester() - --print("chester - create_chester") +local function OnHaunt(inst) + if math.random() <= TUNING.HAUNT_CHANCE_ALWAYS then + inst.components.hauntable.panic = true + inst.components.hauntable.panictimer = TUNING.HAUNT_PANIC_TIME_SMALL + inst.components.hauntable.hauntvalue = TUNING.HAUNT_SMALL + return true + end + return false +end +local function create_chester() local inst = CreateEntity() - + inst.entity:AddTransform() inst.entity:AddAnimState() inst.entity:AddSoundEmitter() @@ -210,6 +237,7 @@ local function create_chester() inst:AddTag("scarytoprey") inst:AddTag("chester") inst:AddTag("notraptrigger") + inst:AddTag("noauradamage") inst.MiniMapEntity:SetIcon("chester.png") inst.MiniMapEntity:SetCanUseCache(false) @@ -233,46 +261,34 @@ local function create_chester() ------------------------------------------ - --print(" combat") inst:AddComponent("combat") inst.components.combat.hiteffectsymbol = "chester_body" inst.components.combat:SetKeepTargetFunction(ShouldKeepTarget) - --inst:ListenForEvent("attacked", OnAttacked) - --print(" health") inst:AddComponent("health") inst.components.health:SetMaxHealth(TUNING.CHESTER_HEALTH) inst.components.health:StartRegen(TUNING.CHESTER_HEALTH_REGEN_AMOUNT, TUNING.CHESTER_HEALTH_REGEN_PERIOD) - inst:AddTag("noauradamage") - --print(" inspectable") inst:AddComponent("inspectable") inst.components.inspectable:RecordViews() - --inst.components.inspectable.getstatus = GetStatus - --print(" locomotor") inst:AddComponent("locomotor") inst.components.locomotor.walkspeed = 3 inst.components.locomotor.runspeed = 7 - --print(" follower") inst:AddComponent("follower") inst:ListenForEvent("stopfollowing", OnStopFollowing) inst:ListenForEvent("startfollowing", OnStartFollowing) - --print(" knownlocations") inst:AddComponent("knownlocations") - --print(" burnable") MakeSmallBurnableCharacter(inst, "chester_body") - --(" container") inst:AddComponent("container") inst.components.container:WidgetSetup("chester") inst.components.container.onopenfn = OnOpen inst.components.container.onclosefn = OnClose - --print(" sleeper") inst:AddComponent("sleeper") inst.components.sleeper:SetResistance(3) inst.components.sleeper.testperiod = GetRandomWithVariance(6, 2) @@ -280,21 +296,13 @@ local function create_chester() inst.components.sleeper:SetWakeTest(ShouldWakeUp) MakeHauntableDropFirstItem(inst) - AddHauntableCustomReaction(inst, function(inst, haunter) - if math.random() <= TUNING.HAUNT_CHANCE_ALWAYS then - inst.components.hauntable.panic = true - inst.components.hauntable.panictimer = TUNING.HAUNT_PANIC_TIME_SMALL - inst.components.hauntable.hauntvalue = TUNING.HAUNT_SMALL - return true - end - return false - end, false, false, true) + AddHauntableCustomReaction(inst, OnHaunt, false, false, true) + + inst.sounds = sounds - --print(" sg") inst:SetStateGraph("SGchester") inst.sg:GoToState("idle") - --print(" brain") inst:SetBrain(brain) inst.ChesterState = "NORMAL" @@ -305,7 +313,6 @@ local function create_chester() inst.OnSave = OnSave inst.OnPreLoad = OnPreLoad - --print("chester - create_chester END") return inst end --- data/scripts/prefabs/chester_eyebone.old.lua +++ data/scripts/prefabs/chester_eyebone.new.lua @@ -4,33 +4,34 @@ local assets = Asset("ANIM", "anim/chester_eyebone_build.zip"), Asset("ANIM", "anim/chester_eyebone_snow_build.zip"), Asset("ANIM", "anim/chester_eyebone_shadow_build.zip"), - Asset("INV_IMAGE", "chester_eyebone" ), - Asset("INV_IMAGE", "chester_eyebone_closed" ), - Asset("INV_IMAGE", "chester_eyebone_closed_shadow" ), - Asset("INV_IMAGE", "chester_eyebone_closed_snow" ), - Asset("INV_IMAGE", "chester_eyebone_shadow" ), - Asset("INV_IMAGE", "chester_eyebone_snow" ), - Asset("MINIMAP_IMAGE", "treasure_chest"), --for debugging + Asset("INV_IMAGE", "chester_eyebone"), + Asset("INV_IMAGE", "chester_eyebone_closed"), + Asset("INV_IMAGE", "chester_eyebone_closed_shadow"), + Asset("INV_IMAGE", "chester_eyebone_closed_snow"), + Asset("INV_IMAGE", "chester_eyebone_shadow"), + Asset("INV_IMAGE", "chester_eyebone_snow"), } local SPAWN_DIST = 30 local function OpenEye(inst) - inst.isOpenEye = true - inst.components.inventoryitem:ChangeImageName(inst.openEye) + if not inst.isOpenEye then + inst.isOpenEye = true + inst.components.inventoryitem:ChangeImageName(inst.openEye) + inst.AnimState:PlayAnimation("idle_loop", true) + end end local function CloseEye(inst) - inst.isOpenEye = nil - inst.components.inventoryitem:ChangeImageName(inst.closedEye) + if inst.isOpenEye then + inst.isOpenEye = nil + inst.components.inventoryitem:ChangeImageName(inst.closedEye) + inst.AnimState:PlayAnimation("dead", true) + end end local function RefreshEye(inst) - if inst.isOpenEye then - OpenEye(inst) - else - CloseEye(inst) - end + inst.components.inventoryitem:ChangeImageName(inst.isOpenEye and inst.openEye or inst.closedEye) end local function MorphShadowEyebone(inst) @@ -58,7 +59,7 @@ local function MorphNormalEyebone(inst) inst.AnimState:SetBuild("chester_eyebone_build") inst.openEye = "chester_eyebone" - inst.closedEye = "chester_eyebone_closed" + inst.closedEye = "chester_eyebone_closed" RefreshEye(inst) inst.EyeboneState = "NORMAL" @@ -77,7 +78,7 @@ local function SpawnChester(inst) local pt = inst:GetPosition() --print(" near", pt) - + local spawn_pt = GetSpawnPoint(pt) if spawn_pt ~= nil then --print(" at", spawn_pt) @@ -98,7 +99,6 @@ end local StartRespawn local function StopRespawn(inst) - --print("chester_eyebone - StopRespawn") if inst.respawntask ~= nil then inst.respawntask:Cancel() inst.respawntask = nil @@ -109,7 +109,6 @@ end local function RebindChester(inst, chester) chester = chester or TheSim:FindFirstEntityWithTag("chester") if chester ~= nil then - inst.AnimState:PlayAnimation("idle_loop", true) OpenEye(inst) inst:ListenForEvent("death", function() StartRespawn(inst, TUNING.CHESTER_RESPAWN_TIME) end, chester) @@ -121,7 +120,6 @@ local function RebindChester(inst, chester) end local function RespawnChester(inst) - --print("chester_eyebone - RespawnChester") StopRespawn(inst) RebindChester(inst, TheSim:FindFirstEntityWithTag("chester") or SpawnChester(inst)) end @@ -132,26 +130,20 @@ StartRespawn = function(inst, time) time = time or 0 inst.respawntask = inst:DoTaskInTime(time, RespawnChester) inst.respawntime = GetTime() + time - inst.AnimState:PlayAnimation("dead", true) CloseEye(inst) end local function FixChester(inst) - inst.fixtask = nil - --take an existing chester if there is one - if not RebindChester(inst) then - inst.AnimState:PlayAnimation("dead", true) + inst.fixtask = nil + --take an existing chester if there is one + if not RebindChester(inst) then CloseEye(inst) - - if inst.components.inventoryitem.owner ~= nil then - local time_remaining = 0 - local time = GetTime() - if inst.respawntime and inst.respawntime > time then - time_remaining = inst.respawntime - time - end - StartRespawn(inst, time_remaining) - end - end + + if inst.components.inventoryitem.owner ~= nil then + local time_remaining = inst.respawntime ~= nil and math.max(0, inst.respawntime - GetTime()) or 0 + StartRespawn(inst, time_remaining) + end + end end local function OnPutInInventory(inst) @@ -161,7 +153,6 @@ local function OnPutInInventory(inst) end local function OnSave(inst, data) - --print("chester_eyebone - OnSave") data.EyeboneState = inst.EyeboneState if inst.respawntime ~= nil then local time = GetTime() @@ -184,14 +175,13 @@ local function OnLoad(inst, data) if data.respawntimeremaining ~= nil then inst.respawntime = data.respawntimeremaining + GetTime() + else + OpenEye(inst) end end local function GetStatus(inst) - --print("smallbird - GetStatus") - if inst.respawntask ~= nil then - return "WAITING" - end + return inst.respawntask ~= nil and "WAITING" or nil end local function fn() @@ -201,10 +191,6 @@ local function fn() inst.entity:AddAnimState() inst.entity:AddNetwork() - --so I can find the thing while testing - --inst.entity:AddMiniMapEntity() - --inst.MiniMapEntity:SetIcon("treasure_chest.png") - MakeInventoryPhysics(inst) inst:AddTag("chester_eyebone") @@ -213,7 +199,7 @@ local function fn() inst.AnimState:SetBank("eyebone") inst.AnimState:SetBuild("chester_eyebone_build") - inst.AnimState:PlayAnimation("idle_loop", true) + inst.AnimState:PlayAnimation("dead", true) inst.entity:SetPristine() @@ -221,15 +207,14 @@ local function fn() return inst end - inst:AddComponent("inventoryitem") - inst.components.inventoryitem:SetOnPutInInventoryFn(OnPutInInventory) - inst.EyeboneState = "NORMAL" inst.openEye = "chester_eyebone" inst.closedEye = "chester_eyebone_closed" - inst.isOpenEye = nil - OpenEye(inst) + + inst:AddComponent("inventoryitem") + inst.components.inventoryitem:SetOnPutInInventoryFn(OnPutInInventory) + inst.components.inventoryitem:ChangeImageName(inst.closedEye) inst:AddComponent("inspectable") inst.components.inspectable.getstatus = GetStatus @@ -251,4 +236,4 @@ local function fn() return inst end -return Prefab("chester_eyebone", fn, assets) \ No newline at end of file +return Prefab("chester_eyebone", fn, assets) --- data/scripts/stategraphs/SGchester.old.lua +++ data/scripts/stategraphs/SGchester.new.lua @@ -1,5 +1,31 @@ require("stategraphs/commonstates") +local NUM_FX_VARIATIONS = 7 +local MAX_RECENT_FX = 4 +local MIN_FX_SCALE = .5 +local MAX_FX_SCALE = 1.6 + +local function SpawnMoveFx(inst, scale) + local fx = SpawnPrefab("hutch_move_fx") + if fx ~= nil then + if inst.sg.mem.recentfx == nil then + inst.sg.mem.recentfx = {} + end + local recentcount = #inst.sg.mem.recentfx + local rand = math.random(NUM_FX_VARIATIONS - recentcount) + if recentcount > 0 then + while table.contains(inst.sg.mem.recentfx, rand) do + rand = rand + 1 + end + if recentcount >= MAX_RECENT_FX then + table.remove(inst.sg.mem.recentfx, 1) + end + end + table.insert(inst.sg.mem.recentfx, rand) + fx:SetVariation(rand, fx._min_scale + (fx._max_scale - fx._min_scale) * scale) + fx.Transform:SetPosition(inst.Transform:GetWorldPosition()) + end +end local actionhandlers = { @@ -13,10 +39,15 @@ local events= EventHandler("attacked", function(inst) if inst.components.health and not inst.components.health:IsDead() then inst.sg:GoToState("hit") - inst.SoundEmitter:PlaySound("dontstarve/creatures/chester/hurt") + + inst.SoundEmitter:PlaySound(inst.sounds.hurt) + end end), EventHandler("death", function(inst) inst.sg:GoToState("death") end), + EventHandler("morph", function(inst, data) + inst.sg:GoToState("morph", data.morphfn) + end), } local states= @@ -43,29 +74,33 @@ local states= { TimeEvent(7*FRAMES, function(inst) inst.sg.mem.pant_ducking = inst.sg.mem.pant_ducking or 1 - inst.SoundEmitter:PlaySound("dontstarve/creatures/chester/pant", nil, inst.sg.mem.pant_ducking) + + inst.SoundEmitter:PlaySound(inst.sounds.pant, nil, inst.sg.mem.pant_ducking) if inst.sg.mem.pant_ducking and inst.sg.mem.pant_ducking > .35 then inst.sg.mem.pant_ducking = inst.sg.mem.pant_ducking - .05 end end), - }, + }, }, - - + + State{ name = "death", tags = {"busy"}, - + onenter = function(inst) inst.components.container:Close() inst.components.container:DropEverything() - inst.SoundEmitter:PlaySound("dontstarve/creatures/chester/death") + inst.components.container.canbeopened = false + + inst.SoundEmitter:PlaySound(inst.sounds.death) + inst.AnimState:PlayAnimation("death") inst.Physics:Stop() - RemovePhysicsColliders(inst) + RemovePhysicsColliders(inst) end, }, - + State{ name = "open", @@ -75,6 +110,9 @@ local states= inst.Physics:Stop() inst.components.sleeper:WakeUp() inst.AnimState:PlayAnimation("open") + if inst.SoundEmitter:PlayingSound("hutchMusic") then + inst.SoundEmitter:SetParameter("hutchMusic", "intensity", 1) + end end, events= @@ -84,7 +122,7 @@ local states= timeline= { - TimeEvent(0*FRAMES, function(inst) inst.SoundEmitter:PlaySound("dontstarve/creatures/chester/open") end), + TimeEvent(0*FRAMES, function(inst) inst.SoundEmitter:PlaySound( inst.sounds.open ) end), }, }, @@ -112,7 +150,7 @@ local states= TimeEvent(3*FRAMES, function(inst) inst.sg.mem.pant_ducking = inst.sg.mem.pant_ducking or 1 - inst.SoundEmitter:PlaySound("dontstarve/creatures/chester/pant", nil, inst.sg.mem.pant_ducking) + inst.SoundEmitter:PlaySound( inst.sounds.pant , nil, inst.sg.mem.pant_ducking) if inst.sg.mem.pant_ducking and inst.sg.mem.pant_ducking > .35 then inst.sg.mem.pant_ducking = inst.sg.mem.pant_ducking - .05 end @@ -127,6 +165,12 @@ local states= inst.AnimState:PlayAnimation("closed") end, + onexit = function(inst) + if not inst.sg.statemem.muffled and inst.SoundEmitter:PlayingSound("hutchMusic") then + inst.SoundEmitter:SetParameter("hutchMusic", "intensity", 0) + end + end, + events= { EventHandler("animover", function(inst) inst.sg:GoToState("idle") end ), @@ -134,7 +178,13 @@ local states= timeline= { - TimeEvent(0*FRAMES, function(inst) inst.SoundEmitter:PlaySound("dontstarve/creatures/chester/close") end), + TimeEvent(0*FRAMES, function(inst) inst.SoundEmitter:PlaySound( inst.sounds.close ) end), + TimeEvent(4*FRAMES, function(inst) + if inst.SoundEmitter:PlayingSound("hutchMusic") then + inst.sg.statemem.muffled = true + inst.SoundEmitter:SetParameter("hutchMusic", "intensity", 0) + end + end) }, }, @@ -177,7 +227,7 @@ local states= SpawnPrefab("chester_transform_fx").Transform:SetPosition(x, y + 1, z) end), TimeEvent(60*FRAMES, function(inst) - inst.SoundEmitter:PlaySound("dontstarve/creatures/chester/pop") + inst.SoundEmitter:PlaySound( inst.sounds.pop ) if inst.MorphChester ~= nil then inst:MorphChester() end @@ -189,33 +239,181 @@ local states= EventHandler("animqueueover", function(inst) inst.sg:GoToState("idle") end ), }, }, + + State{ + name = "morph", + tags = {"busy"}, + onenter = function(inst, morphfn) + inst.Physics:Stop() + + inst.SoundEmitter:PlaySound("dontstarve/creatures/chester/raise") + inst.AnimState:PlayAnimation("transition", false) + + --Remove ability to open chester for short time. + inst.components.container.canbeopened = false + inst.components.container:Close() + + inst.sg.statemem.morphfn = morphfn + end, + + timeline = + { + + TimeEvent(1*FRAMES, function(inst) + inst.SoundEmitter:PlaySound("dontstarve/creatures/hutch/bounce") + end), + TimeEvent(22*FRAMES, function(inst) + inst.SoundEmitter:PlaySound("dontstarve/creatures/hutch/clap") + end), + TimeEvent(27*FRAMES, function(inst) + inst.SoundEmitter:PlaySound("dontstarve/creatures/hutch/clap") + end), + TimeEvent(32*FRAMES, function(inst) + inst.SoundEmitter:PlaySound("dontstarve/creatures/hutch/clap") + end), + TimeEvent(36*FRAMES, function(inst) + local x, y, z = inst.Transform:GetWorldPosition() + SpawnPrefab("chester_transform_fx").Transform:SetPosition(x, y + 1, z) + end), + TimeEvent(37*FRAMES, function(inst) + inst.SoundEmitter:PlaySound("dontstarve/creatures/hutch/clap") + end), + TimeEvent(40*FRAMES, function(inst) + if inst.sg.statemem.morphfn ~= nil then + local morphfn = inst.sg.statemem.morphfn + inst.sg.statemem.morphfn = nil + morphfn(inst) + end + inst.SoundEmitter:PlaySound( inst.sounds.pop ) + end), + }, + + events = + { + EventHandler("animover", function(inst) inst.sg:GoToState("idle") end ), + }, + + onexit = function(inst) + if inst.sg.statemem.morphfn ~= nil then + --In case state was interrupted + local morphfn = inst.sg.statemem.morphfn + inst.sg.statemem.morphfn = nil + morphfn(inst) + end + --Add ability to open chester again. + inst.components.container.canbeopened = true + end, + + }, } CommonStates.AddWalkStates(states, { walktimeline = { --TimeEvent(0*FRAMES, function(inst) end), + TimeEvent(1*FRAMES, function(inst) - inst.SoundEmitter:PlaySound("dontstarve/creatures/chester/boing") - inst.components.locomotor:RunForward() + inst.SoundEmitter:PlaySound( inst.sounds.boing ) + + inst.components.locomotor:RunForward() + + --Cave chester leaves slime as he bounces + if inst.leave_slime then + inst.sg.statemem.slimein = true + if inst.sg.mem.lastspawnlandingmovefx ~= nil and inst.sg.mem.lastspawnlandingmovefx + 2 > GetTime() then + inst.sg.statemem.slimeout = true + SpawnMoveFx(inst, .45 + math.random() * .1) + end + end + end), + + TimeEvent(2 * FRAMES, function(inst) + if inst.sg.statemem.slimeout then + SpawnMoveFx(inst, .2 + math.random() * .1) + end + end), + + TimeEvent(4 * FRAMES, function(inst) + if inst.sg.statemem.slimeout and math.random() < .7 then + SpawnMoveFx(inst, .1 + math.random() * .1) + end + end), + + TimeEvent(7 * FRAMES, function(inst) + if inst.sg.statemem.slimeout and math.random() < .3 then + SpawnMoveFx(inst, 0) + end end), - --TimeEvent(12*FRAMES, function(inst) PlayFootstep(inst) end), + + TimeEvent(10 * FRAMES, function(inst) + if inst.sg.statemem.slimein and math.random() < .6 then + SpawnMoveFx(inst, .05 + math.random() * .1) + end + end), + + TimeEvent(12 * FRAMES, function(inst) + if inst.sg.statemem.slimein then + SpawnMoveFx(inst, .25 + math.random() * .1) + end + end), + + TimeEvent(13*FRAMES, function(inst) + if inst.sounds.land_hit ~= nil then + inst.SoundEmitter:PlaySound(inst.sounds.land_hit) + end + if inst.sg.statemem.slimein then + if inst.sounds.land ~= nil then + inst.SoundEmitter:PlaySound(inst.sounds.land) + end + SpawnMoveFx(inst, .8 + math.random() * .2) + inst.sg.mem.lastspawnlandingmovefx = GetTime() + end + end), + TimeEvent(14*FRAMES, function(inst) PlayFootstep(inst) inst.components.locomotor:WalkForward() end), - } + }, + + endtimeline = + { + TimeEvent(1*FRAMES, function(inst) +--[[ + if inst.sounds.land_hit then + inst.SoundEmitter:PlaySound( inst.sounds.land_hit ) + end + ]] + if inst.sg.statemem.slimein then + if inst.sounds.land ~= nil then + inst.SoundEmitter:PlaySound(inst.sounds.land) + end + SpawnMoveFx(inst, .4 + math.random() * .2) + inst.sg.mem.lastspawnlandingmovefx = GetTime() + end + end), + }, + }, nil, true) CommonStates.AddSleepStates(states, { starttimeline = { - TimeEvent(0*FRAMES, function(inst) inst.SoundEmitter:PlaySound("dontstarve/creatures/chester/close") end) + TimeEvent(0*FRAMES, function(inst) inst.SoundEmitter:PlaySound( inst.sounds.close ) end) + }, + + sleeptimeline = + { + TimeEvent(1*FRAMES, function(inst) + if inst.sounds.sleep then + inst.SoundEmitter:PlaySound( inst.sounds.sleep ) + end + end) }, waketimeline = { - TimeEvent(0*FRAMES, function(inst) inst.SoundEmitter:PlaySound("dontstarve/creatures/chester/open") end) + TimeEvent(0*FRAMES, function(inst) inst.SoundEmitter:PlaySound( inst.sounds.open ) end) }, }) In particular, chester's stategraph now doesn't have hard-coded references to chester's sounds, it expects them in chester's instance. Link to comment https://forums.kleientertainment.com/forums/topic/65521-custom-chester-problemnewest-update/#findComment-735513 Share on other sites More sharing options...
rons0n Posted March 18, 2016 Author Share Posted March 18, 2016 @Muche, Thanks mate. A small change like that and I completely ignored it. Now my characters back on track~Appreciated! Link to comment https://forums.kleientertainment.com/forums/topic/65521-custom-chester-problemnewest-update/#findComment-735573 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