Making damage per 1 second, using T32

shiFt

Member
Ive made an immolation spell using T32, but im struggling on dealing the damage per second rather than the T32 PERIOD, How do I do this?
 

Sgqvur

FullOfUltimateTruthsAndEt ernalPrinciples, i.e shi
Never really used it but I think T32 has a hardcoded period of 0.03125.

Well not really hardcoded but:

"// =Cons=
// - Only allows one period.
"

>How do I do this?

Well if you can use T32 then you can surely use some other timer [recycling] system or just
simple create timer + attach stuff to timer + detach stuff from timer + destroy timer combo.
 

jrhetf4xb

Member
Just do tick counting ...

JASS:
struct Data
{
    integer ticks;

    private  method periodic()
    {
        this.ticks -= 1;
        if (this.ticks <= 0) 
        {
            // Do all your damage stuff and reset ticks
            this.ticks = R2I(1. / T32_PERIOD); // or just 32 with 0.03125 period
        }

    }

    static method create() -> thistype
    {
        thistype this = thistype.allocate();
        this.ticks = R2I(1. / T32_PERIOD); // 32 ticks per sec
        this.startPeriodic();
    }
}



In other words, just use an integer with a value of 1/T32_PERIOD and subtract 1 every period until it reaches 0 (when 1 second has passed).
 

Sgqvur

FullOfUltimateTruthsAndEt ernalPrinciples, i.e shi
>Just do tick counting ...

This may sound nuts but 32 function calls + 32 comparisons + 32 subtractions per second maybe kinda inefficient compared to 1 function call per second.
 

Sgqvur

FullOfUltimateTruthsAndEt ernalPrinciples, i.e shi
I am just saying that it's kinda ironic that systems designed for speed actually makes the mapper to write code bloat.
 

Romek

Super Moderator
Staff member
How about dealing [ljass]DAMAGE * T32_PERIOD[/ljass] every time the timer expires?
The health of the unit would decrease much smoother too.

> I am just saying that it's kinda ironic that systems designed for speed actually makes the mapper to write code bloat.
If you don't need a timer running at such a high frequency, don't use a system that's optimized for doing exactly that. If you need a lower frequency timer, there are plenty of other systems out there (such as TimerUtils) that'll do just that, very efficiently.
 

Sevion

The DIY Ninja
How about dealing [ljass]DAMAGE * T32_PERIOD[/ljass] every time the timer expires?
The health of the unit would decrease much smoother too.
This.

Makes no sense doing it any other way unless you WANT it to suddenly do that damage every second.

Every T32_PERIOD would be much smoother.
 

Sgqvur

FullOfUltimateTruthsAndEt ernalPrinciples, i.e shi
>How about dealing DAMAGE * T32_PERIOD every time the timer expires?
The health of the unit would decrease much smoother too.

Yeah Good point:

So it is now less efficient and to the player watching the units life dropping that fast would be jaw dropping.

Also note that in the worst case instead of the unit surviving for 0.96875 more seconds and being able to be saved by the player's quick reactions the unit dies and brings frustration to the player making him shout `imba` etc..
 

Romek

Super Moderator
Staff member
> So it is now less efficient and to the player watching the units life dropping that fast would be jaw dropping.
It would drop at exactly the same rate:
If [ljass]DAMAGE[/ljass] is in health/second, then dealing [ljass]DAMAGE[/ljass] damage every second would have the same effect as dealing [ljass]DAMAGE * 0.03125[/ljass] damage every 0.03125 seconds, just the latter would be smoother. T32_PERIOD is 0.03125 by default, though it can be changed.

Once again, if you think that dealing damage at such a high frequency is inefficient, then don't deal damage at such a high frequency. It's really that simple.
 

shiFt

Member
Thanks for explaining Romek, I just thought the smooth damage dealing would raise questions by players as to if the ability is really doing the described damage.
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • The Helper The Helper:
    Friday Yay!
  • mgarcia mgarcia:
    did you guys catch Carl's interview? https://www.youtube.com/watch?v=kuHiMXABkGs
  • mgarcia mgarcia:
    he's the one that informed me about the DVD's working!
  • mgarcia mgarcia:
    he also mentioned the progress on the controllers!
  • The Helper The Helper:
    I did actually it was cool to see the NUON mention
  • The Helper The Helper:
    https://discord.com/channels/985377399338332202/985377399950696481 you can still use this chat too we are two fisted now :)
  • thewrongvine thewrongvine:
    costs me $80 to fill gas tank sad face
  • Ghan Ghan:
    Oof
  • The Helper The Helper:
    Yeah that gas is some expensive stuff :)
  • The Helper The Helper:
    ghan does not have to worry about it he has a tesla and I have a small tank so it does not cost me usually more than 50
  • The Helper The Helper:
    fyi Ghan we are getting an error trying to access stats or world editor tutorials Error 526 Ray ID: 72128c6bf99f6707 • 2022-06-26 02:35:15 UTCInvalid SSL certificate
  • Ghan Ghan:
    An artifact of switching to Cloudflare... the Let's Encrypt certs can't autorenew through Cloudflare.
  • Ghan Ghan:
    I got the forum updated before things expired but there were some other casualties.
  • Ghan Ghan:
    Everything should be fixed now....
  • The Helper The Helper:
    Thank you Ghan!
  • The Helper The Helper:
    Happy Monday!
  • The Helper The Helper:
    new NUON forum mod cubanral!
    +1
  • The Helper The Helper:
  • tom_mai78101 tom_mai78101:
    Started learning how to make tools-assisted speedruns, so I'm lately busy.
  • tom_mai78101 tom_mai78101:
    Here's my current project.
    +3
  • O Old Mountain Shadow:
    that was pretty good!
  • jonas jonas:
    really cool! I saw the game before but always thought it's just a half as good double dragon. Now I realize it actually has a lot of depth!
  • The Helper The Helper:
    I just saw a bunch of running and jumping past all the enemies look like it was scripted as he said I guess I should have watched the whole thing. I only got a couple of minutes in. You should post that video in the forum Tom
  • Darthfett Darthfett:
    "Hi in the chat!"
    +2
  • tom_mai78101 tom_mai78101:
    Currently busy with making the run even better, so I'll post that new one once I'm done. Right now, I had to modify the emulator itself, the tools that makes this video, and some RAM address disassembling / reverse-engineering to get the right values, and such.
    +1

    Staff online

    Members online

    Affiliates

    Hive Workshop NUON Dome World Editor Tutorials

    Network Sponsors

    Apex Steel Pipe - Buys and sells Steel Pipe.
    Top