Please check demo on Fireball Timing

For ideas on how to make Second Age a better shard. Can it get any better? Maybe.
Forum rules
Posts in this forum are expected to be constructive, realistic and civil. Inflamatory or off topic posts will be removed.
User avatar
Batlin
wobble llama
wobble llama
Posts: 512
Joined: Fri Dec 19, 2008 4:32 am
Location: Ultima Universe

Re: Please check demo on Fireball Timing

Post by Batlin »

There is no area effect actually. It's a graphical effect. 1 out 5 times the fireball animation is done to the place the player is standing (with modified Z towards 'in his face').
integer Q4AY = random(0x01, 0x64);
if(Q4AY > 0x21)
{
doMissile_Loc2Mob(Q4VS, victim, 0x36D4, 0x05, 0x00, 0x01);
}
else
{
location there = getLocation(victim);
integer Q5CG = getZ(there) + 0x06;
setZ(there, Q5CG);
doMissile_Loc2Loc(Q4VS, there, 0x36D4, 0x05, 0x00, 0x01);
}
Q57H = damage;
callback(this, 0x01, 0x19);
+ORC: If you give a man a crack he'll be hungry again tomorrow, but if you teach him how to crack, he'll never be hungry again.
chumbucket: I don't collect pixels.

Never trust the client. It's in the hands of the enemy : UO Demo internals @ JoinUO

tekai
UOSA Donor!!
UOSA Donor!!
Posts: 1153
Joined: Sat Mar 14, 2009 7:11 am

Re: Please check demo on Fireball Timing

Post by tekai »

*looks at code*

*scratches head*

*looks at code*


So am i getting a better alpha-strike or at the very least faster re-cycle?

lol
[broken image]

User avatar
Faust
Posts: 6247
Joined: Mon Sep 22, 2008 7:01 pm

Re: Please check demo on Fireball Timing

Post by Faust »

That code is mainly just the graphical portion tekai and has nothing to do with the frequency of the firebreaths. However, it appears that the damage actually follows after the graphical portion meaning it will happen regardless and no 'miss' will take place as was assumed previously. Batlin, correct me if I am wrong please?

User avatar
Batlin
wobble llama
wobble llama
Posts: 512
Joined: Fri Dec 19, 2008 4:32 am
Location: Ultima Universe

Re: Please check demo on Fireball Timing

Post by Batlin »

A Dragon's Firebreath or Fireball should never miss.
Dragon Firebreath Timing.jpg
Dragon Firebreath Timing.jpg (105.05 KiB) Viewed 1193 times
The screenshot above shows a dragonai script with timer logging added. The values are in ticks and not seconds, 1 tick = 0.25 seconds.

There are 2 timers in operation here, the first one is the breathing timer (0x65) which ranges from to 7-14 seconds, the second one (0x64) prevents a firebreath and is triggered by an active fireball and also ranges from 7-14 seconds.

Since timer 0x65 runs continuously the first fireball can happen from 0-13.75 seconds. The delay between two fireballs ranges from 8.00 seconds up to 28 seconds, this is due to the usage of two timers both started at same tick.

Example:
Timer 1 (0x65): randomized value = 8 seconds (or 32 ticks)
Timer 2 (0x64): randomized value = 7 seconds (or 28 ticks)
Timer 2 ends before Timer 1 and will not prevent a fire attack.

Example:
Timer 1 (0x65): randomized value = 7 seconds (or 28 ticks)
Timer 2 (0x64): randomized value = 8 seconds (or 32 ticks)
Timer 1 ends but because Timer 2 is still active, a fire attack is prevented and Timer 1 is restarted using a new randomized value.

Example:
Timer 1 (0x65): randomized value = 14 seconds (or 56 ticks)
Timer 2 (0x64): randomized value = 14 seconds (or 56 ticks)
Timer 1 ends first (due to queue) and because Timer 2 is still active, a fire attack is prevented and Timer 1 is restarted using a new randomized value and if you are unlucky (sorry, ...your dragon is...) this will be 14 seconds.

As shown on the screenshot, in my test the minimum time registered between two attacks was 33 ticks or 8.25 seconds and the maximum time was 102 ticks or 25.5 seconds. These value differ slightly from the calculations above and this seems to be due to one extra tick being added to the callback at the core level.

The "skips" on the screenshot are prevented fireballs caused by the second timer.
+ORC: If you give a man a crack he'll be hungry again tomorrow, but if you teach him how to crack, he'll never be hungry again.
chumbucket: I don't collect pixels.

Never trust the client. It's in the hands of the enemy : UO Demo internals @ JoinUO

tekai
UOSA Donor!!
UOSA Donor!!
Posts: 1153
Joined: Sat Mar 14, 2009 7:11 am

Re: Please check demo on Fireball Timing

Post by tekai »

interesting, how does this differ from live?
[broken image]

GuardianKnight
UOSA Donor!!
UOSA Donor!!
Posts: 5120
Joined: Tue Jun 30, 2009 7:00 pm

Re: Please check demo on Fireball Timing

Post by GuardianKnight »

Faust wrote:Imagine having a very deep statloss pk and dying to 3 dragon fireballs immediately after a world save finished back when they were 10 seconds before the server was upgraded...

This actually happened to me and was the main reason it got me looking into the issue to begin with. :/

Am I the only one here that has a problem with this? Wouldn't that be the same as me saying i died to a hally mage because of the insta hit so decided to use my uber "listen to me" status to get it changed?

I thought everyone with the ability to change stuff here were forbidden to play.
"I used to be with it, but then they changed what it was. Now what I'm with isn't it, and what's it seems weird and scary to me, and it'll happen to you, too." Grandpa Simpson

User avatar
nightshark
UOSA Subscriber!
UOSA Subscriber!
Posts: 4550
Joined: Mon Apr 20, 2009 10:47 pm

Re: Please check demo on Fireball Timing

Post by nightshark »

GuardianKnight wrote:
Faust wrote:Imagine having a very deep statloss pk and dying to 3 dragon fireballs immediately after a world save finished back when they were 10 seconds before the server was upgraded...

This actually happened to me and was the main reason it got me looking into the issue to begin with. :/

Am I the only one here that has a problem with this? Wouldn't that be the same as me saying i died to a hally mage because of the insta hit so decided to use my uber "listen to me" status to get it changed?

I thought everyone with the ability to change stuff here were forbidden to play.
I thought Faust doesn't actually have the ability to change stuff, he just makes suggestions like anyone else (and afaik writes a bit of code when needed)
<green> grats pink and co. .... the 3 of you f---ing scrubs together can blow up a bard. IMPRESSIVE

GuardianKnight
UOSA Donor!!
UOSA Donor!!
Posts: 5120
Joined: Tue Jun 30, 2009 7:00 pm

Re: Please check demo on Fireball Timing

Post by GuardianKnight »

True but trusting someone's test results when they have it in for a certain class is silly. Let's let tekai test the tamer changes and take his word for it when he wants something changed. That would be just as equal.
"I used to be with it, but then they changed what it was. Now what I'm with isn't it, and what's it seems weird and scary to me, and it'll happen to you, too." Grandpa Simpson

User avatar
Faust
Posts: 6247
Joined: Mon Sep 22, 2008 7:01 pm

Re: Please check demo on Fireball Timing

Post by Faust »

GuardianKnight wrote:
Faust wrote:Imagine having a very deep statloss pk and dying to 3 dragon fireballs immediately after a world save finished back when they were 10 seconds before the server was upgraded...

This actually happened to me and was the main reason it got me looking into the issue to begin with. :/

Am I the only one here that has a problem with this? Wouldn't that be the same as me saying i died to a hally mage because of the insta hit so decided to use my uber "listen to me" status to get it changed?

I thought everyone with the ability to change stuff here were forbidden to play.
How do I have the ability to change stuff here besides making a suggestion that something is wrong and Derrick reconfirms my sources with him fixing eventually? We won't even go into the fact that Derrick had already known about the world save issues that fall under MANY categories besides the firebreath timer. For example, a weapon timer can currently refresh during world saves too since they also use a date stamp variable. If you have a problem with someone listening to me towards inaccurate or exploits getting fixed than you had better jump ship, because a huge playerbase here discusses, helps, and suggests the same sort of material that I have on a daily basis.

FYI, I made the comment about the firebreath well over 6 months ago...

What "uber listen to me status" that I seem to hold to get something fixed so quickly! :lol:

Post Reply