Announcement

Collapse
No announcement yet.

Able Ability System Info and Support Thread

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • replied
    Hey, awesome plugin so far, but I got 2 Questions:

    1. How do I make my own SpawnActor Task? I'm not able to call a simple SpawnActor, neither in Abl_Custom_Task BP or anywhere in Abl_Ability. Only SpawnActor for Gameplay Task is available which restricts to spawning on Server only. My goal is to simply Spawn a Projectile for visuals on owning client to make up for lag (basic clientside prediction).

    2. What would be the intended way of spawning e.g. a Projectile and initializing it with a velocity depending on a client variable?

    Leave a comment:


  • replied
    Able v3.22 has been submitted. Notes below:

    • Added support for UE 4.24
    • Fixed a crash when using Validate on an empty ability.
    • Able now shows support for all platforms, it technically always had support for all platforms (it contains no platform specific code), but I feel like it's been tested on enough platforms to open that up a bit.

    Leave a comment:


  • replied
    1) you spawn an empty "Target" actor that is replicated at desired location / cursor. then you activate ability from normal character component targeting the "target actor" as context target. than you do a sphere query around the "target actor" from the context as normal.
    2) both are solid designs. depending if you can "Dispel" the ability partially, or entirely only? same goes for stacking and overwriting. as if its 10x10 abilities it can stack up if its 1 ability with 10 ticks, it can "reset" once applied again. though not prolonged. if applied before tick - it would not trigger.

    Leave a comment:


  • replied
    Originally posted by namrog84 View Post
    Hey ExtraLifeMatt, any chance you could do some more tutorials?

    1. Such as an AOE (click to confirm)
    AOE attack (initiate an ability(if have requirements), and have red circle or some indicator on mouse, and then 'click' to confirm ability
    or could be to build a building or spawning a golem somewhere, or whatever. But I am confused on how to handle the indicator on cursor and confirm/commit ability.

    I think what I want here is an ability that just keeps looping (sorta like channeling) that will branch if I commit (left click)(create the actual ability) or (right click?)(cancel ability) or perhaps doing the "finish all tasks" or something. I am not 100% sure what would be the best way to do this.


    2. I am trying to do a passive, but the example project only has 2 examples in it (machine gun and rocket) and your 4-5 youtube videos.
    I am struggling with how I should set up with a healing DoT. or Damage DoT For example, I want to modify a stat once every 10 seconds for 100 seconds.
    Initially I thought I would have it do a 10 second loop. With a custom event at start (modify stat). But then I run into issues about determining a 'time remaining' for UI purposes. I could try and cache AbilityLength*MaxIterations, and figure it out, and if ability is refreshed, just recalculate it? Then I get confused if I consider I want like a 'boost' in that perhaps character is hyped up and I want the loop to be faster (healing once every 5 seconds instead of 10 for the full length). A lot of things have bindings, but plenty of things don't. I am coming from GAS which had a distinct "Duration" but also a "Period" for effects.
    As you can tell, I am just getting confused here.


    edit: I realized the main store page only had link to 1 example, but I can download some more examples from https://extralifestudios.atlassian.n...2419/Tutorials
    Also note a lot of the sample projects contains several hundred mb of unneeded files (textures, hdri) that could make downloading projects much faster/smaller.

    edit:
    Bug report: Is there a way to not make the icons be 2x as big? It is a little weird that it's not consistent with the rest of the UI and same size.
    * https://i.imgur.com/sabm06I.png
    * https://i.imgur.com/uGG2CVy.png
    1. This is actually a difficult thing to do. You would want to ONLY invoke Able once you have the location, so you'd need to handle the indicator or whatever yourself. Basically, wrap your Abilities so when the user tries to execute it it goes, "Is this a ground target Ability? If so, ask the User to pick a location (once the location is picked, pass it to Able), otherwise just call Able."

    2. There's a couple ways to do this. You could either do 10 stacks of the 10 second ability (so time remaining would be Number of Stacks * Ability Length), or you could do a 100 second ability that drops another passive (that does the actual healing,etc) every 10 seconds. That would simplify the UI calculation, but either would work.

    That bug has been around forever, for whatever reason, UE isn't obeying the size I tell it. I'll take a look at it as I do this 4.24 support update.

    Leave a comment:


  • replied
    Hey ExtraLifeMatt, any chance you could do some more tutorials?

    1. Such as an AOE (click to confirm)
    AOE attack (initiate an ability(if have requirements), and have red circle or some indicator on mouse, and then 'click' to confirm ability
    or could be to build a building or spawning a golem somewhere, or whatever. But I am confused on how to handle the indicator on cursor and confirm/commit ability.

    I think what I want here is an ability that just keeps looping (sorta like channeling) that will branch if I commit (left click)(create the actual ability) or (right click?)(cancel ability) or perhaps doing the "finish all tasks" or something. I am not 100% sure what would be the best way to do this.


    2. I am trying to do a passive, but the example project only has 2 examples in it (machine gun and rocket) and your 4-5 youtube videos.
    I am struggling with how I should set up with a healing DoT. or Damage DoT For example, I want to modify a stat once every 10 seconds for 100 seconds.
    Initially I thought I would have it do a 10 second loop. With a custom event at start (modify stat). But then I run into issues about determining a 'time remaining' for UI purposes. I could try and cache AbilityLength*MaxIterations, and figure it out, and if ability is refreshed, just recalculate it? Then I get confused if I consider I want like a 'boost' in that perhaps character is hyped up and I want the loop to be faster (healing once every 5 seconds instead of 10 for the full length). A lot of things have bindings, but plenty of things don't. I am coming from GAS which had a distinct "Duration" but also a "Period" for effects.
    As you can tell, I am just getting confused here.


    edit: I realized the main store page only had link to 1 example, but I can download some more examples from https://extralifestudios.atlassian.n...2419/Tutorials
    Also note a lot of the sample projects contains several hundred mb of unneeded files (textures, hdri) that could make downloading projects much faster/smaller.

    edit:
    Bug report: Is there a way to not make the icons be 2x as big? It is a little weird that it's not consistent with the rest of the UI and same size.
    * https://i.imgur.com/sabm06I.png
    * https://i.imgur.com/uGG2CVy.png
    Last edited by namrog84; 12-09-2019, 10:53 AM.

    Leave a comment:


  • replied
    Originally posted by Demonrras View Post
    Who to check branch status in blueprints?
    I like to cancel ability if don't press the action key...how to do this?
    You can't really check branch status. Simply put the branch of your Ability at the end of your current Ability and let it end naturally if you want it to fail if they don't branch properly. Not quite following you on this one.

    Leave a comment:


  • replied
    Who to check branch status in blueprints?
    I like to cancel ability if don't press the action key...how to do this?
    Last edited by Demonrras; 11-27-2019, 02:03 PM.

    Leave a comment:


  • replied
    Originally posted by Demonrras View Post
    Other Crash report about Able Ability Editor. Just crash while I'm using...
    Thanks, I'll look into this. Looks like you have either a null Ability or Task. Where you using a Custom Task by chance?

    Originally posted by Demonrras View Post
    How I can interrupt or cancel running ability?
    Just call CancelAbility on the Actor's AblAbilityComponent and pass it the Ability you want to cancel (you can mark it as an interrupt, or a normal stop).

    Leave a comment:


  • replied
    How I can interrupt or cancel running ability?
    I wanna to use a single animation with 3 or more attaks...if the player press the action input key on time...keep playing the ability, else interrupt the ability.
    How to do this?
    Last edited by Demonrras; 11-27-2019, 01:05 PM.

    Leave a comment:


  • replied
    Other Crash report about Able Ability Editor. Just crash while I'm using...

    Attached Files

    Leave a comment:


  • replied

    Originally posted by CronofearSW View Post
    Hi, i just bought your plugin and i really like the idea of having a data driven ability system. However i'm not sure how i could use this system to make my game more "moddable". I'm not sure if you can recommend me a workflow for that using your plugin. Like, maybe there's a way to load abilities assets from text files or something like that?

    I've thought about how to do modding with UE4 quite a bit and I don't have a great answer. Looking at other games that do it (ARK, Conan Exiles, etc), it looks like they just ship the entire editor and tools. So, in theory, you could just give your users the Able Editor tool as part of a mod package, but I'm not sure the actual logistics of how to package that and such.

    Leave a comment:


  • replied
    Hi, i just bought your plugin and i really like the idea of having a data driven ability system. However i'm not sure how i could use this system to make my game more "moddable". I'm not sure if you can recommend me a workflow for that using your plugin. Like, maybe there's a way to load abilities assets from text files or something like that?

    Leave a comment:


  • replied
    Originally posted by Demonrras View Post

    The branch are testing the first condition and if TRUE, the result of the next conditions are TRUE too also if I don't press the key condition.
    So you're branching when you don't expect to? I'll check things tonight. There was some recent work in those files so maybe things broke.

    Leave a comment:


  • replied
    Originally posted by Demonrras View Post

    I uncheck the "must be recently pressed" from both input conditions and check verbose...You can see below the verbose log.



    Like image above, this ability have 2 conditions to reach the next ability. The "Must Pass All Conditions" are already checked. The plugin is testing only the first condition.
    The branch are testing the first condition and if TRUE, the result of the next conditions are TRUE too also if I don't press the key condition.

    Leave a comment:


  • replied
    Originally posted by ExtraLifeMatt View Post

    Try removing the "must be recently pressed". Likely one of your inputs was already held down in the past 0.1 seconds (which is what that value applies to). You can mark the Branch task as Verbose and it'll tell you why it's failing.
    I uncheck the "must be recently pressed" from both input conditions and check verbose...You can see below the verbose log.

    LogBlueprintUserMessages: [Frank_Fighter_OverView] OnTaskStart called for Task AblBranchTask_0 at time 0.60.
    LogBlueprintUserMessages: [Frank_Fighter_OverView] Condition AblBranchConditionOnInput_0 returned False.
    LogBlueprintUserMessages: [Frank_Fighter_OverView] OnTaskTick called for Task AblBranchTask_0 at time 0.61. Delta Time = 0.00947
    LogBlueprintUserMessages: [Frank_Fighter_OverView] Condition AblBranchConditionOnInput_0 returned False.
    LogBlueprintUserMessages: [Frank_Fighter_OverView] OnTaskTick called for Task AblBranchTask_0 at time 0.62. Delta Time = 0.00949
    LogBlueprintUserMessages: [Frank_Fighter_OverView] Condition AblBranchConditionOnInput_0 returned False.
    LogBlueprintUserMessages: [Frank_Fighter_OverView] OnTaskTick called for Task AblBranchTask_0 at time 0.63. Delta Time = 0.00943
    LogBlueprintUserMessages: [Frank_Fighter_OverView] Condition AblBranchConditionOnInput_0 returned False.
    LogBlueprintUserMessages: [Frank_Fighter_OverView] OnTaskTick called for Task AblBranchTask_0 at time 0.64. Delta Time = 0.00949
    LogBlueprintUserMessages: [Frank_Fighter_OverView] Condition AblBranchConditionOnInput_0 returned False.
    LogBlueprintUserMessages: [Frank_Fighter_OverView] OnTaskTick called for Task AblBranchTask_0 at time 0.65. Delta Time = 0.00976
    LogBlueprintUserMessages: [Frank_Fighter_OverView] Condition AblBranchConditionOnInput_0 returned False.
    LogBlueprintUserMessages: [Frank_Fighter_OverView] OnTaskTick called for Task AblBranchTask_0 at time 0.66. Delta Time = 0.00967
    LogBlueprintUserMessages: [Frank_Fighter_OverView] Condition AblBranchConditionOnInput_0 returned True.
    LogBlueprintUserMessages: [Frank_Fighter_OverView] Conditions passed. Branching to Ability Default__Fighter_02_3_C
    Like image above, this ability have 2 conditions to reach the next ability. The "Must Pass All Conditions" are already checked. The plugin is testing only the first condition.

    Leave a comment:

Working...
X