Monty_Droppings Posted February 4, 2017 Share Posted February 4, 2017 (edited) In my character mod in DS:ROG, I had a hat for my character that functioned as a dual insulator. I did it with this following code in the local function onequip(inst, owner): inst.temperatureTask = inst:DoTaskInTime(5, function(inst) if GetSeasonManager():GetCurrentTemperature() > 35 then inst.components.insulator:SetSummer() else inst.components.insulator:SetWinter() end end) In DST, there doesn't seem to be GetSeasonManager, so looking at the straw hat code for a summer insulator, I thought I'd try this: inst.temperatureTask = inst:DoTaskInTime(5, function(inst) if TheWorld.state.temperature > 35 then inst.components.insulator:SetSummer() else inst.components.insulator:SetWinter() end end) But no dice, any idea whats going wrong? Full DST attempt: http://pastebin.com/1nwQsubE ROG version of the dual insulating hat that worked: http://pastebin.com/ZVefxdjL Edited February 4, 2017 by Monty_Droppings Link to comment Share on other sites More sharing options...
Maris Posted February 4, 2017 Share Posted February 4, 2017 First tell what's wrong Link to comment Share on other sites More sharing options...
Monty_Droppings Posted February 4, 2017 Author Share Posted February 4, 2017 4 hours ago, Maris said: First tell what's wrong Well I mean the my DST version of the code just isn't working. I can load and play the game fine with my character mod, it's just when I put the hat on to test insulation, it works in the winter but does nothing in the summer to stop overheating. Link to comment Share on other sites More sharing options...
Maris Posted February 5, 2017 Share Posted February 5, 2017 Test your code using prints. Example: print("Declare the task...") inst.temperatureTask = inst:DoTaskInTime(5, function(inst) print("Check temperature:", TheWorld.state.temperature) if TheWorld.state.temperature > 35 then inst.components.insulator:SetSummer() print("Summer!") else inst.components.insulator:SetWinter() print("Winter") end print("Check insulator type:", (inst.components.insulator.type == SEASONS.WINTER) and "winter" or "summer" ) end) Link to comment Share on other sites More sharing options...
Monty_Droppings Posted February 5, 2017 Author Share Posted February 5, 2017 2 hours ago, Maris said: Test your code using prints. Example: print("Declare the task...") inst.temperatureTask = inst:DoTaskInTime(5, function(inst) print("Check temperature:", TheWorld.state.temperature) if TheWorld.state.temperature > 35 then inst.components.insulator:SetSummer() print("Summer!") else inst.components.insulator:SetWinter() print("Winter") end print("Check insulator type:", (inst.components.insulator.type == SEASONS.WINTER) and "winter" or "summer" ) end) I'm not sure what that means even after googling(I even looked through the forum guide), like what is "printing?" . I don't actually know lua, I've just been looking at functions that do similar things to what I want and fiddle with it until sometimes they work. Link to comment Share on other sites More sharing options...
Monty_Droppings Posted February 5, 2017 Author Share Posted February 5, 2017 Well I figured it out. I idiotically put that in the unequip function rather than onequip. The code works correctly now. 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