Well-met Posted June 18, 2019 Share Posted June 18, 2019 elo I wish to give my custom character immunity to the smacking the Elite Pigs do to you in YOTP, or when bosses punch you in Forge. I want to remap the wilson stategraph and inject it in my modmain but i'm a little lost I did manage to disable stunlock that way so I'm hoping it could more or less be the same deal Quote AddStategraphPostInit("wilson", function(sg) local old_attacked = sg.events.attacked.fn sg.events.attacked.fn = function(inst, data) if not inst.components.health:IsDead() then if inst:HasTag("mynewtag") and data.attacker ~= nil then inst.SoundEmitter:PlaySound("dontstarve/wilson/hit") if inst.hurtsoundoverride ~= nil then inst.SoundEmitter:PlaySound(inst.hurtsoundoverride) elseif not inst:HasTag("mime") then inst.SoundEmitter:PlaySound((inst.talker_path_override or "dontstarve/characters/")..(inst.soundsname or inst.prefab).."/hurt") end return else return old_attacked(inst, data) end end end end) Link to comment Share on other sites More sharing options...
Leonardo Cox Posted June 30, 2019 Share Posted June 30, 2019 Knockback is handled in the knockback eventhandler: EventHandler("knockback", function(inst, data) if not (inst.components.health:IsDead() or inst:HasTag("beaver")) then if inst.sg:HasStateTag("parrying") then inst.sg.statemem.parrying = true inst.sg:GoToState("parry_knockback", { timeleft = (inst.sg.statemem.task ~= nil and GetTaskRemaining(inst.sg.statemem.task)) or (inst.sg.statemem.timeleft ~= nil and math.max(0, inst.sg.statemem.timeleft + inst.sg.statemem.timeleft0 - GetTime())) or inst.sg.statemem.parrytime, knockbackdata = data, }) else inst.sg:GoToState((data.forcelanded or inst.components.inventory:ArmorHasTag("heavyarmor") or inst:HasTag("heavybody")) and "knockbacklanded" or "knockback", data) end end end), copied from SG wilson. So do the same thing you did with the onattacked and just alter this event to your liking. 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