EQ2Interface

EQ2Interface (https://www.eq2interface.com/forums/index.php)
-   Request (https://www.eq2interface.com/forums/forumdisplay.php?f=25)
-   -   Autoattack timer (https://www.eq2interface.com/forums/showthread.php?t=11124)

dragowulf 11-22-2008 01:54 AM

Quote:

Originally Posted by Jida (Post 77817)
The top bar in that is the actual auto attack timer that your creating

The bottom bar is the progress bar for each combat art he is casting.

they are linked together one on top of the other.

That is the feature i asked about earlier ;)

and for the record, you cant dual wield while wearing a shield :|

That's weird...lol I just finished changing it to that

And reins is correct, the very top bar is the casting bar, the other 2 are primary and secondary

Jida 11-22-2008 01:58 AM

I missed it i guess. just saw the sheild and was like , umm.. what?

dragowulf 11-22-2008 05:37 AM

What color does the autoattack combat bubble use????

dragowulf 11-22-2008 05:46 AM

1 Attachment(s)
Here's a newer version in which I added the horizontal resizability and the more compact Secondary page. I'm still working on CombatBubbles, so give me some time.

The finished product is going to be a big mess of code :p

dragowulf 11-22-2008 06:00 AM

Ok I figured out the default color of autoattacks. It is ff8000

nluerdarea 11-22-2008 01:13 PM

OK, I disabled third party combat bubbles in my options window, is there anything else I need to disable?

Also, are these still triggering on any bubble?

dragowulf 11-22-2008 01:54 PM

Quote:

Originally Posted by nluerdarea (Post 77846)
OK, I disabled third party combat bubbles in my options window, is there anything else I need to disable?

Also, are these still triggering on any bubble?

Yes. Refer to three posts down. I'm still working on it.

reins 11-22-2008 02:49 PM

Quote:

Originally Posted by dragowulf (Post 77830)
Ok I figured out the default color of autoattacks. It is ff8000

Don't worry about the color, just make it a requirement that people turn off third party combat bubbles, because as GM9 said, the color is configurable.

ALso, if third party bubbles are enabled, you could delay the auto attack bar due to the bubbles not processing quick enough.

nluerdarea 11-22-2008 08:07 PM

Quote:

Originally Posted by reins (Post 77851)
Don't worry about the color, just make it a requirement that people turn off third party combat bubbles, because as GM9 said, the color is configurable.

ALso, if third party bubbles are enabled, you could delay the auto attack bar due to the bubbles not processing quick enough.

I personally would worry about color as I think it is a great approach to it. I believe gm9 said you could read the value that is set for autoattack unless I am wrong?

reins 11-22-2008 08:11 PM

Quote:

Originally Posted by nluerdarea (Post 77865)
I personally would worry about color as I think it is a great approach to it. I believe gm9 said you could read the value that is set for autoattack unless I am wrong?

The problem is that if you have 3rd party bubbles on, that is alot of processing that will be happening, and the more bubbles the more delayed your bubbles will be. It will make the bar less accurate.

nluerdarea 11-22-2008 08:16 PM

Oh, i fully agree with turning off 3rd party bubbles, but the problem is, getting hit uses the same styles so it will trigger it as well, you need to differentiate between the red getting hit and the orange hitting

reins 11-22-2008 08:22 PM

Ah thats true, just noticed it. How do you process a miss? I don't see miss notifications showing up in combat bubbles.

nluerdarea 11-22-2008 08:33 PM

Misses do show up in the combat bubbles and if I am not mistaken, combat art misses have the border, autoattack misses do not

gm9 stated earlier that you would need to check the value to ensure that it is either an integer or "miss". this would exclude double attack, reflect, parry, etc from triggering it

so if we could make sure that only autoattack style bubbles that are either an orange integer or the word miss will trigger it should do the trick. of course having 3rd party bubbles off will make these calculations faster.

On another note, does this take into account haste already or does that still need to be implemented?

reins 11-22-2008 11:40 PM

Haste is take care of via the delay dynamic data.

Also, you wouldn't necessarily need to filter out the integers and Misses, all the other notifications show up at the same time, so even if you reset the auto attack bar each time it all happens so quickly that it won't affect anything.

I think it would be less cpu intensive if you don't do word compares or integer checks. You'd also have to check for the parry, riposte, block, dodge words because an auto attack could be avoided via any of those methods. So just resetting it regardless of the combatbubble as long as it is the right color and does not have the shadow is the way to go iMO

dragowulf 11-23-2008 02:16 AM

Sorry I was gone all day.

reins is right, filtering out misses/riposite/block/etc would be unnecessary code. The way I see it is if Color/ShadowStyle checking is not enough, the Font checking too would be enough. We could also make it so it only fires with a certain color regardless of the ShadowStyle. But the problem with that is the person would have to change the color manually instead of using the default color (which is the orange one), and you could change the color to white or whatever color we choose.

reins 11-23-2008 03:15 AM

Quote:

Originally Posted by dragowulf (Post 77876)
Sorry I was gone all day.

reins is right, filtering out misses/riposite/block/etc would be unnecessary code. The way I see it is if Color/ShadowStyle checking is not enough, the Font checking too would be enough. We could also make it so it only fires with a certain color regardless of the ShadowStyle. But the problem with that is the person would have to change the color manually instead of using the default color (which is the orange one), and you could change the color to white or whatever color we choose.

There is no way around the ShadowStyle, if you don't check it then the bar will reset on combat arts, which is incorrect. In the combat bubbles, you can't change the color of only auto attack, you change the color of your outgoing damage. So you have to check that the combat bubble text is the specified color, and has no shadowstyle.

dragowulf 11-23-2008 06:25 AM

Ok I believe I got it working with CombatBubbles. But here are the probs I see: Riposite damage gets counted in and the timer resets, and a secondary weapon screws up the timer as well.

Since this is mainly for DPS classes, I'm sure the riposite problem means nothing because tanks are usually the ones getting attacked. The other problem?? I have no clue

Anyone know where there's an attack dummy????

nluerdarea 11-23-2008 07:03 AM

I would like to use this on my pally, so ripostes would be a problem for me, but I don't see a way around it.

I thought the second problem was already solved. This is the way I saw it

When dual wielding, both fire at the same time initially. Then the delays kick in for both bars. When an autoattack fires, the bar closest to finishing is reset.

Would that not work?

gm9 11-23-2008 07:24 AM

That's what I thought also. Did you see my post here drago?

oldweasel 11-23-2008 09:29 AM

Any way to post this "officially"?

Would love to try it (even in beta shape), but am not really sure how to install and bring it up in-game (new at this).

This information is usually placed on the downloads page, is it ready enough to make a formal page? Is there a page already with install instructions that I am missing?

Thanks for the hard work! This looks incredible!!

reins 11-23-2008 12:17 PM

Quote:

Originally Posted by dragowulf (Post 77881)
Ok I believe I got it working with CombatBubbles. But here are the probs I see: Riposite damage gets counted in and the timer resets, and a secondary weapon screws up the timer as well.

Since this is mainly for DPS classes, I'm sure the riposite problem means nothing because tanks are usually the ones getting attacked. The other problem?? I have no clue

Anyone know where there's an attack dummy????

As far as an attack dummy, go to the tabernacle of pain in Kunzar Jungle, there is a wall there you can attack. You could also get access to a guild hall that has training dummy's.

As far as the secondary weapon, just use gm9's logic tree that he posted, that gives you the entire flow you need to use.

dragowulf 11-23-2008 05:42 PM

1 Attachment(s)
Quote:

Originally Posted by oldweasel (Post 77885)
Any way to post this "officially"?

Would love to try it (even in beta shape), but am not really sure how to install and bring it up in-game (new at this).

When it is ready for release I'll upload it officially.

Quote:

Originally Posted by reins (Post 77892)
As far as the secondary weapon, just use gm9's logic tree that he posted, that gives you the entire flow you need to use.

I'm not sure about that.

After thorough testing I see now that it works well with ShadowStyles/TextColor. It will no longer reset when getting hurt, or using a combat art. Again, the problem is the Secondary weapon. Whether the SecondaryPage is there or not, the Combat bubbles will fire two different autoattacks, which will reset the bars. As of now I see no way around this.

I'll take a look at his tree, but till then here's the newest code:
Code:

<?xml version="1.0" encoding="utf-8"?>
<Page eq2usescomwndcontrols="true" Location="263,327" MaximumSize="16384,54" MinimumSize="44,54" Name="AutoAttackTimer" PackLocation="center,bottom" ScrollExtent="385,54" Size="385,54" UserMovable="true" UserResizable="true">
<Composite AbsorbsInput="false" DynamicData="/GameData.Self.AutoAttack" Name="TimerPages" OnHide="hide_window Custom.AutoAttacktimer" OnShow="MeleePage.Visible=true
show_window Custom.AutoAttacktimer" PackSize="a,f" ScrollExtent="385,54" Size="385,54" SpacingType="Fill" Visible="false">
<Button AbsorbsInput="false" Name="CombatBubbleOnShow" OnPress="Parent.Parent.Parent.Parent.ProxyActor.CombatBubble.OnActivate=TMP2
Parent.Parent.Parent.Parent.ProxyActor.CombatBubble.OnShow=TMP" TMP="Activated=(LowerText.ShadowStyle=='/ShadowStyles.Outline.BlackOutline1')" TMP2="Activated=false
Parent.Parent.AutoAttackTimer.TimerPages.Trigger.Activated=(LowerText.TextColor=='#FF8000')" Visible="false"/>
<Button AbsorbsInput="false" Name="Trigger" OnActivate="Activated=false
Parent.SizeLocationCalc.Press=true
Parent.MeleePage.Primary.ProgressPage.ProgressTimer.Activated=(Parent.MeleePage.Visible=='true')
Parent.MeleePage.Secondary.ProgressPage.ProgressTimer.Activated=(Parent.MeleePage.Visible=='true')
Parent.Ranged.ProgressPage.ProgressTimer.Activated=(Parent.Ranged.Visible=='true')" Visible="false"/>
<Button AbsorbsInput="false" Location="-350,0" Name="SizeLocationCalc" OnPress="Calc1=Size
Calc2=Calc1*2/2
Calc3=Calc2-TMP
Calc4=Calc3/5
Calc5=Calc4/2
LocationCalc=Calc5-Calc4
SizeCalc=Calc5" PackSize="a,f" ScrollExtent="350,8" Size="350,8" TMP="5" Visible="false"/>
<Page AbsorbsInput="false" Name="MeleePage" ScrollExtent="385,54" OnShow="Secondary.Visible=false
Secondary.Visible=Secondary.DelayValue.Visible
Parent.CombatBubbleOnShow.Press=true" PackSize="a,f" Size="385,54" Visible="false">
<Page AbsorbsInput="false" Name="Primary" PackSize="a,f" ScrollExtent="385,37" Size="385,37">
<Text AbsorbsInput="false" Font="/TextStyles.Large.LargeStyle" Location="25,2" Margin="1,0,2,2" Name="AutoAttackText" PackSize="a,f" ScrollExtent="356,21" ShadowStyle="/ShadowStylesNew.OutlineDrop.style" Size="356,21" TextAlignment="Center" TextAlignmentVertical="Center" TextColor="#F0D080">Melee Auto Attack</Text>
<Text AbsorbsInput="false" DynamicData="/GameData.Stats.Primary_Delay" Enabled="false" Font="/TextStyles.Small.SmallStyle" Location="0,24" Name="DelayValue" ScrollExtent="24,12" ShadowStyle="/ShadowStylesNew.Drop.style" Size="24,12" TextAlignment="Right" TextAlignmentVertical="Center" UserScrollable="false"/>
<Page AbsorbsInput="false" Location="28,26" Name="ProgressPage" PackSize="a,f" ScrollExtent="350,8" Size="350,8">
<Page BackgroundOpacity="0.475" Location="68,0" Name="Marker20" PackLocation="npn,nfn" ScrollExtent="1,8" Size="1,8"/>
<Page BackgroundOpacity="0.475" Location="137,0" Name="Marker40" PackLocation="npn,nfn" ScrollExtent="1,8" Size="1,8"/>
<Page BackgroundOpacity="0.475" Location="205,0" Name="Marker60" PackLocation="npn,nfn" ScrollExtent="1,8" Size="1,8"/>
<Page BackgroundOpacity="0.475" Location="274,0" Name="Marker80" PackLocation="npn,nfn" ScrollExtent="1,8" Size="1,8"/>
<Button AbsorbsInput="false" AMT="',0'" Location="-350,0" Name="ProgressTimer" OnActivate="Activated=false
Press=true" OnEffectFinished="Location=Parent.Parent.Parent.Parent.SizeLocationCalc.LocationCalc ## AMT" OnPress="SpeedCalc=Parent.Parent.Parent.Parent.SizeLocationCalc.SizeCalc/Parent.Parent.DelayValue.Text
Parent.TimerTriggerPrimary.Speed=SpeedCalc ## ',0'" OnPressEffector="TimerTriggerPrimary" PackSize="a,f" ScrollExtent="350,8" Size="350,8" Style="ProgressTimerStyle" Visible="false"/>
<LocationEffector Name="TimerTriggerPrimary"/>
</Page>
<Image AbsorbsInput="false" Location="28,26" Name="Bkg" PackSize="a,f" ScrollExtent="350,8" Size="350,8" SourceRect="220,472,380,478" SourceResource="/images/window_elements_generic.dds"/>
<Page AbsorbsInput="false" BackgroundOpacity="1.000" Location="25,23" Name="Frame" PackSize="a,f" RStyleDefault="/rectlist.chat_bubble_frame" ScrollExtent="356,14" Size="356,14"/>
</Page>
<Page AbsorbsInput="false" Location="0,36" Name="Secondary" PackSize="a,f" ScrollExtent="385,14" Size="385,14" Visible="false">
<Text AbsorbsInput="false" DynamicData="/GameData.Stats.Secondary_Delay" Enabled="false" Font="/TextStyles.Small.SmallStyle" Location="0,1" Name="DelayValue" OnHide="Parent.Visible=false" OnShow="Parent.Visible=true" ScrollExtent="24,12" ShadowStyle="/ShadowStylesNew.Drop.style" Size="24,12" TextAlignment="Right" TextAlignmentVertical="Center" UserScrollable="false" Visible="false"/>
<Page AbsorbsInput="false" Location="28,3" Name="ProgressPage" PackSize="a,f" ScrollExtent="350,8" Size="350,8">
<Page BackgroundOpacity="0.475" Location="68,0" Name="Marker20" PackLocation="npn,nfn" ScrollExtent="1,8" Size="1,8"/>
<Page BackgroundOpacity="0.475" Location="137,0" Name="Marker40" PackLocation="npn,nfn" ScrollExtent="1,8" Size="1,8"/>
<Page BackgroundOpacity="0.475" Location="205,0" Name="Marker60" PackLocation="npn,nfn" ScrollExtent="1,8" Size="1,8"/>
<Page BackgroundOpacity="0.475" Location="274,0" Name="Marker80" PackLocation="npn,nfn" ScrollExtent="1,8" Size="1,8"/>
<Button AbsorbsInput="false" AMT="',0'" Location="-350,0" Name="ProgressTimer" OnActivate="Activated=false
Press=true" OnEffectFinished="Location=Parent.Parent.Parent.Parent.SizeLocationCalc.LocationCalc ## AMT" OnPress="SpeedCalc=Parent.Parent.Parent.Parent.SizeLocationCalc.SizeCalc/Parent.Parent.DelayValue.Text
Parent.TimerTriggerSecondary.Speed=SpeedCalc ## &apos;,0&apos;" OnPressEffector="TimerTriggerSecondary" PackSize="a,f" ScrollExtent="350,8" Size="350,8" Style="ProgressTimerStyle" Visible="false"/>
<LocationEffector Name="TimerTriggerSecondary"/>
</Page>
<Image AbsorbsInput="false" Location="28,3" Name="Bkg" PackSize="a,f" ScrollExtent="350,8" Size="350,8" SourceRect="220,472,380,478" SourceResource="/images/window_elements_generic.dds"/>
<Page AbsorbsInput="false" BackgroundOpacity="1.000" Location="25,0" Name="Frame" PackSize="a,f" RStyleDefault="/rectlist.chat_bubble_frame" ScrollExtent="356,14" Size="356,14"/>
</Page>
</Page>
<Page AbsorbsInput="false" DynamicData="/GameData.Self.RangedAutoAttack" Name="Ranged" OnHide="Parent.MeleePage.Visible=true" OnShow="Parent.MeleePage.Visible=false" PackSize="a,f" ScrollExtent="385,37" Size="385,37" Visible="false">
<Text AbsorbsInput="false" Font="/TextStyles.Large.LargeStyle" Location="25,2" Margin="1,0,2,2" Name="AutoAttackText" PackSize="a,f" ScrollExtent="356,21" ShadowStyle="/ShadowStylesNew.OutlineDrop.style" Size="356,21" TextAlignment="Center" TextAlignmentVertical="Center" TextColor="#F0D080">Ranged Auto Attack</Text>
<Text AbsorbsInput="false" DynamicData="/GameData.Stats.Ranged_Delay" Enabled="false" Font="/TextStyles.Small.SmallStyle" Location="0,24" Name="DelayValue" ScrollExtent="24,12" ShadowStyle="/ShadowStylesNew.Drop.style" Size="24,12" TextAlignment="Right" TextAlignmentVertical="Center" UserScrollable="false"/>
<Page AbsorbsInput="false" Location="28,26" Name="ProgressPage" PackSize="a,f" ScrollExtent="350,8" Size="350,8">
<Page BackgroundOpacity="0.475" Location="68,0" Name="Marker20" PackLocation="npn,nfn" ScrollExtent="1,8" Size="1,8"/>
<Page BackgroundOpacity="0.475" Location="137,0" Name="Marker40" PackLocation="npn,nfn" ScrollExtent="1,8" Size="1,8"/>
<Page BackgroundOpacity="0.475" Location="205,0" Name="Marker60" PackLocation="npn,nfn" ScrollExtent="1,8" Size="1,8"/>
<Page BackgroundOpacity="0.475" Location="274,0" Name="Marker80" PackLocation="npn,nfn" ScrollExtent="1,8" Size="1,8"/>
<Button AbsorbsInput="false" AMT="',0'" Location="-350,0" Name="ProgressTimer" OnActivate="Activated=false
Press=true" OnEffectFinished="Location=Parent.Parent.Parent.SizeLocationCalc.LocationCalc ## AMT" OnPress="SpeedCalc=Parent.Parent.Parent.SizeLocationCalc.SizeCalc/Parent.Parent.DelayValue.Text
SpeedCalc=SpeedCalc*2
Parent.TimerTriggerRanged.Speed=SpeedCalc ## &apos;,0&apos;" OnPressEffector="TimerTriggerRanged" PackSize="a,f" ScrollExtent="350,8" Size="350,8" Style="ProgressTimerStyle" Visible="false"/>
<LocationEffector Name="TimerTriggerRanged"/>
</Page>
<Image AbsorbsInput="false" Location="28,26" Name="Bkg" PackSize="a,f" ScrollExtent="350,8" Size="350,8" SourceRect="220,472,380,478" SourceResource="/images/window_elements_generic.dds"/>
<Page AbsorbsInput="false" BackgroundOpacity="1.000" Location="25,23" Name="Frame" PackSize="a,f" RStyleDefault="/rectlist.chat_bubble_frame" ScrollExtent="356,14" Size="356,14"/>
</Page>
</Composite>
<ButtonStyle Name="ProgressTimerStyle" RStyleDefault="Progress_Timer.progress_timer_rect"/>
<Namespace Name="Progress_Timer">
<ImageStyle Name="progress_timer_fill">
<ImageFrame Name="progress_fill" Source="images/window_elements_generic.dds" SourceRect="218,464,219,470"/>
</ImageStyle>
<RectangleStyle Center="progress_timer_fill" CenterShrinkV="true" CenterStretchH="false" Name="progress_timer_rect" NorthStretch="false" SouthStretch="false" TitleStretch="false" WestStretch="false"/>
</Namespace>
<Page AbsorbsInput="false" Name="WindowFrame" PackSize="a,f" ScrollExtent="385,54" Size="385,54">
<Page AbsorbsInput="false" BackgroundOpacity="1.000" Location="-1,-2" Name="Frame" PackLocation="left,top" PackSize="a,f" RStyleDefault="/WindowElements.DesktopWindowFrame.data.frame.rect" ScrollExtent="387,57" Size="387,57"/>
<Page AbsorbsInput="false" BackgroundOpacity="1.000" Location="-1,-2" Name="Bkg" PackLocation="left,top" PackSize="a,f" RStyleDefault="/WindowElements.DesktopWindowFrame.data.bkg.rect" ScrollExtent="390,59" Size="390,59"/>
</Page>
</Page>


dragowulf 11-23-2008 09:04 PM

1 Attachment(s)
How do you do: Visible=false if DelayValue.Text=Parent.Primary.DelayValue.Text

Here's my latest code. My last code was calculating the Size/Location wrong in decimals, so I fixed that.

gm9 11-23-2008 09:26 PM

Quote:

Originally Posted by dragowulf (Post 77911)
How do you do: Visible=false if DelayValue.Text=Parent.Primary.DelayValue.Text

CONDITION=DelayValue.Text==Parent.Primary.DelayValue.Text
Visible=CONDITION ? false : true

dragowulf 11-23-2008 11:53 PM

Thank you gm9, I seem to have got that working . I never took a class for any scripting language (a la xml, lua, etc) or learned it officially, so I'm still learning but I wont forgot what I've been taught. I've been learning xml through EQ2 so bear with me. :p

Now gm9; I understand your logic tree. My problem is that when you are dual wielding with different weapons, the CombatBubbles screw up because of the different delays, and the same color/shadowstyle. I'm not sure how to fix this, but it definitely is an issue. Any ideas?

Code:

if (RangedAutoAttack) {
        start ranged bar;
} else {
        if (SecondaryDelay) {
                if (PrimaryBar.Position == SecondaryBar.Position) {
                        trigger PrimaryBar;
                        trigger SecondaryBar;
                }elseif (PrimaryBar.Position < SecondaryBar.Position) {
                        trigger PrimaryBar;
                }else{
                        trigger SecondaryBar;
                }
        }else{
                trigger PrimaryBar;
        }
}



All times are GMT -5. The time now is 04:00 PM.

vBulletin® - Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
© MMOUI