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);
Please check demo on Fireball Timing
Forum rules
Posts in this forum are expected to be constructive, realistic and civil. Inflamatory or off topic posts will be removed.
Posts in this forum are expected to be constructive, realistic and civil. Inflamatory or off topic posts will be removed.
Re: Please check demo on Fireball Timing
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').
+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
chumbucket: I don't collect pixels.
Never trust the client. It's in the hands of the enemy : UO Demo internals @ JoinUO
Re: Please check demo on Fireball Timing
*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
*scratches head*
*looks at code*
So am i getting a better alpha-strike or at the very least faster re-cycle?
lol
[broken image]
Re: Please check demo on Fireball Timing
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?
Re: Please check demo on Fireball Timing
A Dragon's Firebreath or Fireball should never miss.
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.
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
chumbucket: I don't collect pixels.
Never trust the client. It's in the hands of the enemy : UO Demo internals @ JoinUO
Re: Please check demo on Fireball Timing
interesting, how does this differ from live?
[broken image]
-
- UOSA Donor!!
- Posts: 5120
- Joined: Tue Jun 30, 2009 7:00 pm
Re: Please check demo on Fireball Timing
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
- nightshark
- UOSA Subscriber!
- Posts: 4550
- Joined: Mon Apr 20, 2009 10:47 pm
Re: Please check demo on Fireball Timing
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)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.
<green> grats pink and co. .... the 3 of you f---ing scrubs together can blow up a bard. IMPRESSIVE
-
- UOSA Donor!!
- Posts: 5120
- Joined: Tue Jun 30, 2009 7:00 pm
Re: Please check demo on Fireball Timing
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
Re: Please check demo on Fireball Timing
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.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.
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!