• Content count

  • Joined

  • Last visited

 Content Type 




Klei Bug Tracker

Game Updates

Hot Lava Bug Reporter

Everything posted by CarlZalph

  1. Oh they most certainly do, but they're trying to please the camp of people who want the approximation to begin with. It's a lose-lose situation. Either they stay silent on it and people will be upset that they won't even guess, or they guess and people be upset when it's not a correct guess.
  2. Unfortunately things being planned and what happens is really hard to approximate when it comes to game development cycles. Things break, parts don't "feel" right and need to be reworked or scrapped, ideas get added in last minute.. It's a jumble. It's safe to assume with any game patch release date that the time may explode at any time until the thing is released. The timeframes are like weather forecasts- accurate the first day and then very unreliable for anything more.
  3. Omit hunger announcement?

    Removing the old component won't make the event listener it creates vanish. This is one of those components that was created a long time ago without the foresight of components being able to be removed.
  4. Wortox, Wormwood, Wickerbottom, Webber, Waxwell, Wigfrid. Healer, food/living logs generator, books, spider materials, wood/mining/shadow fuel, armor.
  5. To temporarily block a function in LUA is pretty easy if you have access to the function. Hook the function and in the prehook check your toggle variable, local to the player table or something, and if it's on then don't call the original function. Example in LUA: -- Given: a = {} function a:SomeFunction(a, b, c) print(self, a, b, c) end player = {} -- Do: player.blockmap = false local SomeFunction_old = a.SomeFunction a.SomeFunction = function(self, a, b, c, ...) if player.blockmap == true then return end return SomeFunction_old(self, a, b, c, ...) end -- Test: a:SomeFunction("a", "b")
  6. I went with a new character concept. I liked what was done with both Wortox and Wormwood, and spicing things up with enjoyable gameplay is always welcome.
  7. Specific bird type spawning

    Nah, the code I have there checks the entity's prefab name. Since it'll be character specific this is the way to do that. The birdattractor is a component, so for your character's master's postinit's callback function you'd do an AddComponent with it. Then check the component's file for how to modify the bird spawn rate, and/or look at the feather hat in prefabs/hats.lua for how it uses it.
  8. Specific bird type spawning

    The code I provided to that other thread modifies the rate of crows while adhering to the scarecrow rules. If you want your character to have an increased rate for birds around your character, check out the birdattractor component to modify the rate for him. The line: if pt==pt_2 and v.prefab=="scarecrow" -- We have the owner being our mod character, in this case 'wilson' Should be: if pt==pt_2 and v.prefab=="fiddlesticks" -- We have the owner being our mod character, in this case 'wilson'
  9. Specific bird type spawning

    AddComponentPostInit is done in modmain.lua.
  10. The idea is you replace whatever is in the original install location with what the depot downloaded and run the game through steam as normal. Just note future updates will try to replace things, so you may need to restrict permissions to write in the entire folder from your user's account.
  11. Servers tick at a set rate for logic/physics updates. Going slower than tick rate slows the simulation down, so an entity moving at N units per second would start moving slower in real time, but relative to all other entities moves at the same rate. The movement prediction in this game hides it by showing you a fake version of your player moving to where the client thinks it should be, but not what the server says it is really at. Disabling it you'll feel the latency of your connection and any hiccups the server is having at the time. A small price to pay, something to get used to. In the long run I'd recommend training yourself to compensate for the latency so you know exactly where you're at all the time.
  12. This happens when either there is packet loss from you to the host and your client catches up, or the server suffers from tickrate loss and you have movement prediction enabled.
  13. steam://nav/console download_depot <appid> <depotid> [<target manifestid>] [<delta manifestid>] [<depot flags filter>] : download a single depot AppID is 322330. Depot IDs 322331 Don't Starve Together - Windows 322332 Don't Starve Together - Linux 322333 Don't Starve Together - OSX Manifest IDs are on a per depot basis, so you'll have to look for old records of them or use SteamDB to look them up. ^ For Windows builds, as an example. Good luck!
  14. Oh don't worry yourself over such things, this wasn't a harsh task. You can use ublock's element picker to find offending things on websites you don't want to see. Real easy selecting things, too. Not sure if it looks different in other browsers, but there's an eyedropper icon that lets you go into dynamic selection mode.
  15. This would be a neat way to make it so that someone isn't stuck being the designated blueprint builder.
  16. Well I let the news settle with me overnight to give it some thought. While I wasn't too happy about the Epic exclusivity deal at first, I figure that if Klei really needs that surge of money then go for it; I'd rather they do that then shut down or cancel the project outright. I re-read what the alpha stage entails, and it pushes me more into the camp of being indifferent on their choice. So the alpha part, wherein it's the year exclusive, will have what looks to be 2/N of the game done. Where N is the number of characters planned here, I'll just assume it's 4-6 to be realistic. Worst case scenario N is 4, and thus the alpha stage will have 50% of the game's content there to play. This percentage decreases as the number of characters increases. While some people like to play games as the content is generated bit by bit, I think having a chunk of the game done before trying it out would fit me better. Instead of going through the ups and downs of balancing on the first rocky stages, I'd get the ability to start out at something that isn't quite so skeletal. So for me, from a logical standpoint, this is fine. From an emotional aspect, the idea of Epic and how they're handling everything to try and strong arm consumers onto their platform like this.. This doesn't set well with me at all. Klei's always been pro consumer, so it seems weird to go with this deal that is very anti-consumer on its surface. Appearances can mean a lot to people, especially when emotions are high. The feeling of betrayal is a hard one to overcome, especially with a company; brand loyalty and such. But, in the end, Epic only gets to lay claim to <= 50% of the game. So for this aspect I think it's a win for Klei- Klei gets to get paid for literally half or less of a finished product. Meanwhile other devs have fully finished games and are taking Epic's deals. It just makes me wonder if the deal made was worth more than the potential damage to consumer's trust. I know my knee-jerk reaction was not a good feeling, but after consideration it isn't negative nor good anymore- indifferent. Ultimately time will tell. So, here's to hopefully experiencing a good game when it's all said and done. Every Klei title I've played has been enjoyable to me thus far, so I'll sit back and let the captain sail the ship as it were. -Edit: Another interpretation to the pre-release stage is that there are only 3 characters, but on release all 3 will meet up with each other character's progress and be done. This pushes the percentage to 66% of the game, so not quite so much oomph as if there were 4 or more characters, but still the point holds. Klei's getting paid for an unfinished product by Epic.
  17. HUD.controls

    I believe the proper way is to listen for the playeractivated event from the world in a prefab post init for world, and if it's a client mod then check to see if the data is the ThePlayer in the event listener callback.
  18. @rosalovesyou Modmain, since it'll hook into every pickable component initialized.
  19. With ublock: || Not sure if the id changes or not, so many need a joker field at the end for any id.
  20. -- Given: data = {} data.a = 2 function hookthisfunction(data, other, arguments, here) if data.a == 2 then return "Danger zone!" end return "Safe zone." end -- Do: local hookthisfunction_old = hookthisfunction hookthisfunction = function(data, ...) --[[ prehook here Can modify function arguments before calling the original function. Or just not call the original function at all! ]]-- local retval = hookthisfunction_old(data, ...) --[[ posthook here Can modify the return value. Or just force a static return value and forgo calling the original function at all! ]]-- return retval end -- Debug: print(hookthisfunction(data))
  21. The easiest route I'm seeing is to add a prefab post init to the flower prefab, and in its callback do a prehook to the inst.components.pickable.onpickedfn. In the prehook function change inst.animname to something else like "f1" only if the picker.prefab is your character's prefab name, then call the original function.
  22. That's for the naming and shaming aspect, not for the promotion of a good thing. For instance, it would be bad to say "X went into the server and burned everything ban him from your servers!". However, it would be okay to go "X was with me in my adventurous adventure and we accomplished our goal!". As far as I know, anyway.
  23. Unexpected error?

    You store the old value and compare to it with the new value, then apply your changes if the 'edge' changes, either on rising or falling. -- Game provided a = {} a.current = 15 -- Post init a.old = a.current -- Event callback if a.current < threshold1 then if not (a.old < threshold1) then print("falling edge threshold1") end elseif a.current < threshold2 then if a.old < threshold1 then print("rising edge threshold1") end if not (a.old < threshold2) then print("falling edge threshold2") end elseif a.old < threshold2 then print("rising edge threshold2") end a.old = a.current
  24. Unexpected error?

    It's because you're using a compare operator without an operand. inst:ListenForEvent( "sanitydelta", function(inst, data) local cursanity = inst.components.sanity.current if cursanity < 10 then v:PushEvent("yawn", {grogginess = 60, knockoutduration = 120}) elseif cursanity < 20 then v:PushEvent("yawn", {grogginess = 20}) end end ) This will make it such that if the sanity is on the range of [0,10) that they get knocked out, and with [10,20) they get groggy. You may need to compare an old sanity value to make it fire on edge trigger rather than continuously sending the event "yawn", but that's on you.
  25. Wagstaff with Moggles There's an option to disable the blur post processing function entirely, though not to make it less "cheaty" by making moggles act like goggles too.