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)

speedycerv 11-17-2008 11:25 PM

nice job on the progress. /cheer

gm9 11-18-2008 02:56 AM

Quote:

Originally Posted by dragowulf (Post 77358)
How can you make the script constant??????? I've noticed that EQ2 does not respond very well to loops.

I made an auto attack timer work, but it only works for when the auto attack is triggered and when you toggle the auto attack on/off the game crashes.

Any ideas?

If you don't care about misses just trigger it from the combat bubble exclusively. Or loop it exactly once (which is no problem even in view of EQ2's loop detection) and assume you won't miss more than once in a row. Increase that number until you have a reasonable likelyhood of success. But keep triggering from the bubble anyway to resync.

dragowulf 11-18-2008 08:23 AM

Quote:

Originally Posted by gm9 (Post 77365)
If you don't care about misses just trigger it from the combat bubble exclusively. Or loop it exactly once (which is no problem even in view of EQ2's loop detection) and assume you won't miss more than once in a row. Increase that number until you have a reasonable likelyhood of success. But keep triggering from the bubble anyway to resync.

I'm not sure how I would do that :confused:. And wouldn't the miss combat bubbles also trigger it???

I already have problems with my code. It only works initially when the first auto attack is triggered, but when you turn off auto attack and then turn it back on it crashes. Maybe there's a flaw in my code.

Maybe someone should take a look. :o
Or
Any ideas???

gm9 11-18-2008 09:14 AM

If there combat bubbles telling you that you missed then you need to trigger from those (assuming a miss consumes an auto-attack). Sorry, I seriously haven't much of a clue about auto-attacking. ;)

dragowulf 11-18-2008 08:14 PM

Quote:

Originally Posted by gm9 (Post 77365)
If you don't care about misses just trigger it from the combat bubble exclusively. Or loop it exactly once (which is no problem even in view of EQ2's loop detection) and assume you won't miss more than once in a row. Increase that number until you have a reasonable likelyhood of success. But keep triggering from the bubble anyway to resync.

Combat bubbles don't work. I just tried and nothing :(

dragowulf 11-18-2008 09:33 PM

When I turn off the autoattack and turn it back on, I get an error. I don't know why or how, but that's what I'm getting. I've tried sooooooooooooooooooooooo many ways around it, but every attempt is a failed one.

The error I get when the client shuts down is:
runtime error R6025
- pure virtual function call

dragowulf 11-19-2008 12:58 AM

I got it to resynch, but it breaks randomly. I'm still not sure how to solve the 6025 error (check my last post) though. That remains a mystery.

Heres my latest code:
Code:

<?xml version="1.0" encoding="utf-8"?>
<Page eq2usescomwndcontrols="true" Location="317,572" Name="AutoAttack" OnHide="Visible=true
show_window Custom.AutoAttack" PackLocation="center,bottom" ScrollExtent="429,43" Size="429,43" UserMovable="true">
<Text AbsorbsInput="false" Font="/TextStyles.Large.LargeStyle" Margin="1,0,2,2" Name="AutoAttackText" PackSize="absolute,fixed" ScrollExtent="429,22" ShadowStyle="/ShadowStylesNew.OutlineDrop.style" Size="429,22" TextAlignment="Center" TextColor="#F0D080">Primary Auto Attack</Text>
<Text AbsorbsInput="false" Color="#00FF40" DynamicData="/GameData.Stats.Primary_Delay" Enabled="false" Font="/TextStyles.Small.SmallStyle" Location="0,22" Name="PrimaryDelayValue" ScrollExtent="39,12" ShadowStyle="/ShadowStylesNew.Drop.style" Size="39,12" TextAlignment="Right" TextAlignmentVertical="Center" UserScrollable="false">2.0</Text>
<Page AbsorbsInput="false" Location="43,24" Name="ProgressPage" PackLocation="top,left" 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" BackgroundColor="#FFFFFF" BackgroundOpacity="1.000" DynamicData="/GameData.Self.AutoAttack" Location="0,0" Name="CalcTimer" OnShow="Parent.ProgressTimer.Press=true" Opacity="1.000" Rotation="0.500" Size="0,0" Visible="false" />
<Button AbsorbsInput="false" BackgroundColor="#FFFFFF" BackgroundOpacity="1.000" Location="-350,0" Name="ProgressTimer" OnEffectFinished="Location=&apos;-350,0&apos;
Parent.ProgressTimer2.Press=true" OnPress="SpeedCalc=350/Parent.Parent.PrimaryDelayValue.Text
Parent.Parent.MoveRight.Speed=SpeedCalc ## &apos;,0&apos;" OnPressEffector="MoveRight" Opacity="1.000" Rotation="0.500" Size="350,8" Visible="false" />
<Button AbsorbsInput="false" BackgroundColor="#FFFFFF" BackgroundOpacity="1.000" Location="-350,0" Name="ProgressTimer2" OnEffectFinished="Location=&apos;-350,0&apos;
Parent.ProgressTimer.Press=true" OnPress="SpeedCalc=350/Parent.Parent.PrimaryDelayValue.Text
Parent.Parent.MoveRight.Speed=SpeedCalc ## &apos;,0&apos;" OnPressEffector="MoveRight" Opacity="1.000" Rotation="0.500" Size="350,8" Visible="true" />
</Page>
<LocationEffector Name="MoveRight" Speed="0,0" />
<RectangleStyle Center="progress_fill" CenterShrinkV="true" CenterStretchH="false" Name="ProgressBar" NorthStretch="false" SouthStretch="false" TitleStretch="false" WestStretch="false" />
<ImageStyle Name="progress_fill">
<ImageFrame Name="progress_fill" Source="images/window_elements_generic.dds" SourceRect="218,464,219,470" />
</ImageStyle>
<Page AbsorbsInput="false" BackgroundOpacity="1.000" Location="40,21" Name="Frame" RStyleDefault="/rectlist.chat_bubble_frame" ScrollExtent="356,14" Size="356,14" />
<Image AbsorbsInput="false" Location="43,24" Name="Bkg" PackSize="absolute,fixed" ScrollExtent="350,8" Size="350,8" SourceRect="220,472,380,478" SourceResource="/images/window_elements_generic.dds" />
</Page>

Anyone home??? lol :p

Jida 11-19-2008 09:14 AM

Quote:

Originally Posted by dragowulf (Post 77474)
When I turn off the autoattack and turn it back on, I get an error. I don't know why or how, but that's what I'm getting. I've tried sooooooooooooooooooooooo many ways around it, but every attempt is a failed one.

The error I get when the client shuts down is:
runtime error R6025
- pure virtual function call

http://support.microsoft.com/kb/125749

I would contact the EQ2 Dev team regarding this issue and send them your logs.

It seems that you inadvertently have found a bug with the interface and virtual function calls.

nluerdarea 11-19-2008 11:21 AM

So, it crashes to desktop randomly?

And you said the miss combat bubbles do not work at all?

dragowulf 11-19-2008 06:07 PM

Quote:

Originally Posted by nluerdarea (Post 77524)
So, it crashes to desktop randomly?

And you said the miss combat bubbles do not work at all?

No it doesn't crash randomly. My code seems to work (besides the code's loop breaking randomly). When I first initiate auto attack I don't crash, it only crashes and gives me the 6025 error when I re-initiate the auto attack.

The combat bubbles do not toggle visiblilty on and off themselves. With a previous version of my code I tried to make them toggle on and off in order to resync the progressbars and I got a 6025 error.

gm9 11-19-2008 06:08 PM

Quote:

Originally Posted by dragowulf (Post 77558)
The combat bubbles do not toggle visiblilty on and off themselves.

What do you mean? OnShow scripting should work, I know I used that in the past, would be strange if they changed that (make sure the page is set to visible=false in the xml).

dragowulf 11-19-2008 06:14 PM

Quote:

Originally Posted by gm9 (Post 77560)
What do you mean? OnShow scripting should work, I know I used that in the past, would be strange if they changed that (make sure the page is set to visible=false in the xml).

I get the error becuase I had the code to toggle that in the auto attack onshow and for some reason it crashes. Use my code and then try it.

gm9 11-19-2008 06:25 PM

Had not looked at your code yet. What you did was to have ProgressTimer call ProgressTimer2 and vice versa in an endless loop. And when you toggle autoattack again you trigger the already running loop again. That's certain to crash the game, you can't do that. Don't ever do endless loops.

dragowulf 11-19-2008 06:27 PM

Quote:

Originally Posted by gm9 (Post 77563)
Had not looked at your code yet. What you did was to have ProgressTimer call ProgressTimer2 and vice versa in an endless loop. And when you toggle autoattack again you trigger the already running loop again. That's certain to crash the game, you can't do that. Don't ever do endless loops.

That is my previous code. It didn't work even with the first ProgressTimer. That was just an experiment (it didn't crash the gaem, but the loop breaks randomly). I still got the crash with JUST the first ProgressTimer.

gm9 11-19-2008 06:29 PM

I looked at the latest code I see, which is post #167?

dragowulf 11-19-2008 06:37 PM

Quote:

Originally Posted by gm9 (Post 77566)
I looked at the latest code I see, which is post #167?

Code:

<?xml version="1.0" encoding="utf-8"?>
<Page eq2usescomwndcontrols="true" Location="317,572" Name="AutoAttack" PackLocation="center,bottom" ScrollExtent="429,43" Size="429,43" UserMovable="true">
<Text AbsorbsInput="false" Font="/TextStyles.Large.LargeStyle" Margin="1,0,2,2" Name="AutoAttackText" PackSize="absolute,fixed" ScrollExtent="429,22" ShadowStyle="/ShadowStylesNew.OutlineDrop.style" Size="429,22" TextAlignment="Center" TextColor="#F0D080">Primary Auto Attack</Text>
<Text AbsorbsInput="false" Color="#00FF40" DynamicData="/GameData.Stats.Primary_Delay" Enabled="false" Font="/TextStyles.Small.SmallStyle" Location="0,22" Name="PrimaryDelayValue" ScrollExtent="39,12" ShadowStyle="/ShadowStylesNew.Drop.style" Size="39,12" TextAlignment="Right" TextAlignmentVertical="Center" UserScrollable="false">2.0</Text>
<Page AbsorbsInput="false" Location="43,24" Name="ProgressPage" PackLocation="top,left" 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" BackgroundColor="#FFFFFF" BackgroundOpacity="1.000" DynamicData="/GameData.Self.AutoAttack" Location="0,0" Name="CalcTimer" OnShow="Parent.ProgressTimer.Press=true" Opacity="1.000" Rotation="0.500" Size="0,0" Visible="false" />
<Button AbsorbsInput="false" BackgroundColor="#FFFFFF" BackgroundOpacity="1.000" Location="-350,0" Name="ProgressTimer" OnEffectFinished="Location=&apos;-350,0&apos;" OnPress="SpeedCalc=350/Parent.Parent.PrimaryDelayValue.Text
Parent.Parent.MoveRight.Speed=SpeedCalc ## &apos;,0&apos;" OnPressEffector="MoveRight" Opacity="1.000" Rotation="0.500" Size="350,8" Visible="false" />
</Page>
<LocationEffector Name="MoveRight" Speed="0,0" />
<RectangleStyle Center="progress_fill" CenterShrinkV="true" CenterStretchH="false" Name="ProgressBar" NorthStretch="false" SouthStretch="false" TitleStretch="false" WestStretch="false" />
<ImageStyle Name="progress_fill">
<ImageFrame Name="progress_fill" Source="images/window_elements_generic.dds" SourceRect="218,464,219,470" />
</ImageStyle>
<Page AbsorbsInput="false" BackgroundOpacity="1.000" Location="40,21" Name="Frame" RStyleDefault="/rectlist.chat_bubble_frame" ScrollExtent="356,14" Size="356,14" />
<Image AbsorbsInput="false" Location="43,24" Name="Bkg" PackSize="absolute,fixed" ScrollExtent="350,8" Size="350,8" SourceRect="220,472,380,478" SourceResource="/images/window_elements_generic.dds" />
</Page>

It still crashes when I turn on/off auto attack

gm9 11-19-2008 07:07 PM

Not entirely sure from looking at it but maybe you are creating a race condition between the effector and the OnEffect Finished? IIRC the OnShow of the AutoAttack fires twice so you will trigger it twice.

dragowulf 11-19-2008 08:19 PM

Quote:

Originally Posted by gm9 (Post 77571)
Not entirely sure from looking at it but maybe you are creating a race condition between the effector and the OnEffect Finished? IIRC the OnShow of the AutoAttack fires twice so you will trigger it twice.

Any ways around???

Drumstix42 11-19-2008 11:48 PM

Create a variable name and button that will be pressed first, and then a value that will trigger the code only after that value has been set?

/shrug

dragowulf 11-20-2008 12:23 AM

Quote:

Originally Posted by Drumstix42 (Post 77588)
Create a variable name and button that will be pressed first, and then a value that will trigger the code only after that value has been set?

/shrug

I tried that. I might be doing something wrong, but I'm not sure. I have done many commutative things, but I cannot seem to get any to work.

I might have missed something or did something wrong. I'm thinking that it could have something to do with the MovementEffectors, but they worked as a loop together, so I would believe that would be ruled out.

...Anyone else wanna have a go at it????

ananigma 11-20-2008 02:37 AM

I think it's gonna be hard to keep it from working right until you get the code to only trigger when autoattack lands or misses. Any other substitute will bug it out.

Here's the problem I had. I got a code to work just from having autoattack on but when I spammed Ca's. It crashed.

I determined the reason was when we use a ca, the game automatically pauses (or shuts off autoattack) and then reapplies after you are done casting. So everytime I would cast a CA, the autoattack trigger would reapply over and over in between the delay. With a delay of 4 seconds or so, and spamming 3-4 cas in between. You can see how that would cause a problem.

So there may not be a whole lot wrong with your code Dragowulf but you'll never really be able to know that until the trigger is coded correctly.

On that subject, instead of having ProxyActor read combat bubbles. Is there a way to get it to read the chat window? Say everytime "YOU" is shown, it will trigger the timer?? ("YOU" is the text for autoattacks)

gm9 11-20-2008 05:46 AM

Quote:

Originally Posted by ananigma (Post 77596)
On that subject, instead of having ProxyActor read combat bubbles. Is there a way to get it to read the chat window? Say everytime "YOU" is shown, it will trigger the timer?? ("YOU" is the text for autoattacks)

No you can't. Just make it read combat bubbles, that's dead easy. E.g. by simple modification of drago's code above (I only modified the OnShow/OnHide code of the window and removed his trigger):

Code:

<?xml version="1.0" encoding="utf-8"?>
<Page eq2usescomwndcontrols="true" Location="317,572" Name="AutoAttack" OnShow="parent.parent.ProxyActor.CombatBubble.OnShow='Parent.Parent.AutoAttack.ProgressPage.ProgressTimer.Press=true'" OnHide="parent.parent.ProxyActor.CombatBubble.OnShow=''" PackLocation="center,bottom" ScrollExtent="429,43" Size="429,43" UserMovable="true">
<Text AbsorbsInput="false" Font="/TextStyles.Large.LargeStyle" Margin="1,0,2,2" Name="AutoAttackText" PackSize="absolute,fixed" ScrollExtent="429,22" ShadowStyle="/ShadowStylesNew.OutlineDrop.style" Size="429,22" TextAlignment="Center" TextColor="#F0D080">Primary Auto Attack</Text>
<Text AbsorbsInput="false" Color="#00FF40" DynamicData="/GameData.Stats.Primary_Delay" Enabled="false" Font="/TextStyles.Small.SmallStyle" Location="0,22" Name="PrimaryDelayValue" ScrollExtent="39,12" ShadowStyle="/ShadowStylesNew.Drop.style" Size="39,12" TextAlignment="Right" TextAlignmentVertical="Center" UserScrollable="false">2.0</Text>
<Page AbsorbsInput="false" Location="43,24" Name="ProgressPage" PackLocation="top,left" 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" BackgroundColor="#FFFFFF" BackgroundOpacity="1.000" Location="-350,0" Name="ProgressTimer" OnEffectFinished="Location=&apos;-350,0&apos;" OnPress="SpeedCalc=350/Parent.Parent.PrimaryDelayValue.Text
Parent.Parent.MoveRight.Speed=SpeedCalc ## &apos;,0&apos;" OnPressEffector="MoveRight" Opacity="1.000" Rotation="0.500" Size="350,8" Visible="false" />
</Page>
<LocationEffector Name="MoveRight" Speed="0,0" />
<RectangleStyle Center="progress_fill" CenterShrinkV="true" CenterStretchH="false" Name="ProgressBar" NorthStretch="false" SouthStretch="false" TitleStretch="false" WestStretch="false" />
<ImageStyle Name="progress_fill">
<ImageFrame Name="progress_fill" Source="images/window_elements_generic.dds" SourceRect="218,464,219,470" />
</ImageStyle>
<Page AbsorbsInput="false" BackgroundOpacity="1.000" Location="40,21" Name="Frame" RStyleDefault="/rectlist.chat_bubble_frame" ScrollExtent="356,14" Size="356,14" />
<Image AbsorbsInput="false" Location="43,24" Name="Bkg" PackSize="absolute,fixed" ScrollExtent="350,8" Size="350,8" SourceRect="220,472,380,478" SourceResource="/images/window_elements_generic.dds" />
</Page>

You'll just need to make sure that the bubbles are for auto-attacks via the ShadowStyle (I'd assume that auto-attack misses have the same ShadowStyle) and add bars for the different weapons. Maybe there's even a way to differentiate dual wielding from the bubbles, I don't know.

dragowulf 11-20-2008 08:45 AM

That works, but confusing with two weapons and CAs, and possibly even DA, etc.

Go to find a way to differentiate weapons.

gm9 11-20-2008 09:06 AM

Well to toggle bars:

Melee Bar:
/GameData.Self.AutoAttack

Dual wield melee bar:
/GameData.Stats.SecondaryDelay

Ranged Bar:
/GameData.Self.RangedAutoAttack

To filter CAs you need to amend the OnShow code of the CombatBubble to check for the ShadowStyle (would have added that had I known the name of it, someone will need to check in game).

dragowulf 11-20-2008 06:23 PM

I'll try something and get back to you

dragowulf 11-21-2008 01:52 AM

I've made quite a bit of progress. I have got both Primary/Secondary working together nicely. I just am trying to figure out how to make the bars stop resetting.

gm9 11-21-2008 02:56 AM

What's the issue with resetting?

dragowulf 11-21-2008 03:04 AM

Quote:

Originally Posted by gm9 (Post 77714)
What's the issue with resetting?

It resynchs upon each time anything happens with the combat bubbles (ie. when u attack, get hurt, riposite, etc.). I think I can fix it by making the OnPress take off the bubble's OnShow and then when effect is finished it would be reapplied.

I also have a new problem. (NOTE: I want to keep secondary and primary in the same window). What happens is that when I have dual wield weapons equipped upon logging in, it works fine. But when I have only the primary equipped upon logging in, it doesn't work. I've tried a couple things and I think I could use some help.

I changed a lot and renamed it eq2ui_autoattacktimer. I haven't got to ranged yet, but I'm assuming it will be easy.
Code:

<?xml version="1.0" encoding="utf-8"?>
<Page eq2usescomwndcontrols="true" Location="317,572" MinimumSize="400,43" Name="AutoAttackTimer" OnHide="Parent.Parent.ProxyActor.CombatBubble.OnShow=&apos;&apos;" PackLocation="center,bottom" ScrollExtent="400,82" Size="400,82" UserMovable="true">
<Composite AbsorbsInput="false" MinimumSize="400,43" Name="TimerPages" PackSize="a,a" ScrollExtent="400,82" Size="400,82" SpacingType="Fill">
<Page AbsorbsInput="false" DynamicData="/GameData.Self.AutoAttack" MaximumSize="400,39" MinimumSize="400,39" Name="Primary" ScrollExtent="400,39" Size="400,39" Visible="false">
<Text AbsorbsInput="false" Font="/TextStyles.Large.LargeStyle" Location="40,4" Margin="1,0,2,2" Name="AutoAttackText" ScrollExtent="356,21" ShadowStyle="/ShadowStylesNew.OutlineDrop.style" Size="356,21" TextAlignment="Center" TextAlignmentVertical="Center" TextColor="#F0D080">Primary Auto Attack</Text>
<Text AbsorbsInput="false" DynamicData="/GameData.Stats.Primary_Delay" Enabled="false" Font="/TextStyles.Small.SmallStyle" Location="4,26" Name="DelayValue" ScrollExtent="35,12" ShadowStyle="/ShadowStylesNew.Drop.style" Size="35,12" TextAlignment="Right" TextAlignmentVertical="Center" UserScrollable="false" />
<Page AbsorbsInput="false" Location="43,28" Name="ProgressPage" 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" Location="-350,0" MaximumSize="350,8" MinimumSize="350,8" Name="ProgressTimer" OnEffectFinished="Location=&apos;-350,0&apos;" OnPress="SpeedCalc=350/Parent.Parent.DelayValue.Text
Parent.TimerTriggerPrimary.Speed=SpeedCalc ## &apos;,0&apos;" OnPressEffector="TimerTriggerPrimary" ScrollExtent="350,8" Size="350,8" Style="ProgressTimerStyle" Visible="false" />
<LocationEffector Name="TimerTriggerPrimary" />
</Page>
<Image AbsorbsInput="false" Location="43,28" Name="Bkg" ScrollExtent="350,8" Size="350,8" SourceRect="220,472,380,478" SourceResource="/images/window_elements_generic.dds" />
<Page AbsorbsInput="false" BackgroundOpacity="1.000" Location="40,25" Name="Frame" RStyleDefault="/rectlist.chat_bubble_frame" ScrollExtent="356,14" Size="356,14" />
</Page>
<Page AbsorbsInput="false" Location="0,39" MaximumSize="400,39" MinimumSize="400,39" Name="Secondary" OnHide="Parent.Parent.Parent.Parent.ProxyActor.CombatBubble.OnShow=TMP2" OnShow="Parent.Parent.Parent.Parent.ProxyActor.CombatBubble.OnShow=TMP" ScrollExtent="400,39" Size="400,39" TMP="Parent.Parent.AutoAttackTimer.TimerPages.Primary.ProgressPage.ProgressTimer.Press=true Parent.Parent.AutoAttackTimer.TimerPages.Secondary.ProgressPage.ProgressTimer.Press=true" Visible="false">
<Text AbsorbsInput="false" Font="/TextStyles.Large.LargeStyle" Location="40,4" Margin="1,0,2,2" Name="AutoAttackText" ScrollExtent="356,21" ShadowStyle="/ShadowStylesNew.OutlineDrop.style" Size="356,21" TextAlignment="Center" TextAlignmentVertical="Center" TextColor="#F0D080">Secondary Auto Attack</Text>
<Text AbsorbsInput="false" DynamicData="/GameData.Stats.Secondary_Delay" Enabled="false" Font="/TextStyles.Small.SmallStyle" Location="4,26" Name="DelayValue" OnHide="Parent.Visible=false" OnShow="Parent.Visible=true" ScrollExtent="35,12" ShadowStyle="/ShadowStylesNew.Drop.style" Size="35,12" TextAlignment="Right" TextAlignmentVertical="Center" UserScrollable="false" Visible="false" />
<Page AbsorbsInput="false" Location="43,28" Name="ProgressPage" 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" Location="-350,0" MaximumSize="350,8" MinimumSize="350,8" Name="ProgressTimer" OnEffectFinished="Location=&apos;-350,0&apos;" OnPress="SpeedCalc=350/Parent.Parent.DelayValue.Text
Parent.TimerTriggerSecondary.Speed=SpeedCalc ## &apos;,0&apos;" OnPressEffector="TimerTriggerSecondary" ScrollExtent="350,8" Size="350,8" Style="ProgressTimerStyle" Visible="false" />
<LocationEffector Name="TimerTriggerSecondary" />
</Page>
<Image AbsorbsInput="false" Location="43,28" Name="Bkg" ScrollExtent="350,8" Size="350,8" SourceRect="220,472,380,478" SourceResource="/images/window_elements_generic.dds" />
<Page AbsorbsInput="false" BackgroundOpacity="1.000" Location="40,25" Name="Frame" RStyleDefault="/rectlist.chat_bubble_frame" ScrollExtent="356,14" Size="356,14" />
</Page>
<Page AbsorbsInput="false" DynamicData="/GameData.Self.RangedAutoAttack" Location="0,39" MaximumSize="400,39" MinimumSize="400,39" Name="Ranged" ScrollExtent="400,39" Size="400,39" Visible="false">
<Text AbsorbsInput="false" Font="/TextStyles.Large.LargeStyle" Location="40,4" Margin="1,0,2,2" Name="AutoAttackText" 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="4,26" Name="DelayValue" ScrollExtent="35,12" ShadowStyle="/ShadowStylesNew.Drop.style" Size="35,12" TextAlignment="Right" TextAlignmentVertical="Center" UserScrollable="false" />
<Page AbsorbsInput="false" Location="43,28" Name="ProgressPage" 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" Location="-350,0" MaximumSize="350,8" MinimumSize="350,8" Name="ProgressTimer" OnEffectFinished="Location=&apos;-350,0&apos;" OnPress="SpeedCalc=350/Parent.Parent.DelayValue.Text
Parent.TimerTriggerRanged.Speed=SpeedCalc ## &apos;,0&apos;" OnPressEffector="TimerTriggerRanged" ScrollExtent="350,8" Size="350,8" Style="ProgressTimerStyle" Visible="false" />
<LocationEffector Name="TimerTriggerRanged" />
</Page>
<Image AbsorbsInput="false" Location="43,28" Name="Bkg" ScrollExtent="350,8" Size="350,8" SourceRect="220,472,380,478" SourceResource="/images/window_elements_generic.dds" />
<Page AbsorbsInput="false" BackgroundOpacity="1.000" Location="40,25" Name="Frame" 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 Location="-1,-2" MinimumSize="402,46" Name="WindowFrame" PackSize="absolute,absolute" ScrollExtent="402,85" Size="402,85">
<Page AbsorbsInput="false" BackgroundOpacity="1.000" MinimumSize="402,46" Name="Frame" PackLocation="left,top" PackSize="absolute,absolute" RStyleDefault="/WindowElements.DesktopWindowFrame.data.frame.rect" ScrollExtent="402,85" Size="402,85" />
<Page AbsorbsInput="false" BackgroundOpacity="1.000" MinimumSize="402,46" Name="Bkg" PackLocation="left,top" PackSize="absolute,absolute" RStyleDefault="/WindowElements.DesktopWindowFrame.data.bkg.rect" ScrollExtent="402,85" Size="402,85" />
</Page>
</Page>


gm9 11-21-2008 03:20 AM

Well you'd really need to check the ShadowStyle at least, and if necessary because other messages are sharing the style whether it's an integer or says "Missed". If you stop it from retriggerin before the Effect is finished you can't resync where necessary (see Aditu's post above, there is quite a lot of variance in the timing).

dragowulf 11-21-2008 03:26 AM

Quote:

Originally Posted by gm9 (Post 77719)
Well you'd really need to check the ShadowStyle at least, and if necessary because other messages are sharing the style whether it's an integer or says "Missed". If you stop it from retriggerin before the Effect is finished you can't resync where necessary (see Aditu's post above, there is quite a lot of variance in the timing).

I'm not quite sure what you want me to do with the shadowstyle

gm9 11-21-2008 03:30 AM

Quote:

Originally Posted by dragowulf (Post 77720)
I'm not quite sure what you want me to do with the shadowstyle

The following:

Quote:

Originally Posted by Jida (Post 77330)
There is a difference with auto attack combat bubbles and non auto attack combat bubbles.

If you disable all bubbles but your own its easier to see.

The difference is the outline around the numbers that fly above the monsters head.

So, if you can somehow in the UI see the combat bubble spam, and only reset it when you see the appropriate type appear. Then all is well in the world.

Quote:

Originally Posted by gm9 (Post 77347)
eq2ui_proxyactor.xml, add an OnShow event script to the CombatBubble page to trigger the bar to count down if LowerText has a specific ShadowStyle set (or not set). You probably do not need to read the actual value of the bubble unless there is something else sharing the same ShadowStyle which is not auto-attack related.


Jida 11-21-2008 10:36 AM

So, how do i test the code he keeps putting in that block.

Pretend i have no clue how to do it ;)... because I don't.

reins 11-21-2008 11:33 AM

In the UI file is it possible to test if the progress bar current value is within a certain amount of time to finishing?

I'm not good with explaining whats going on in my brain, so I'll just give the example.

On combatbubble show,
if auto attack is on and the player is dual wielding, then
check each attack bar's remaining time, if it is less than 1/8 of a second then reset that bar

That would take care of the variance, as well as determine which bar you need to reset, primary or secondary. Also, not only do you need to check the ShadowStyle, but you need to check the font color as well, which will need to be white if I'm not mistaken. You won't need to make this check if you have only your combat bubbles showing though.

Jida 11-21-2008 11:46 AM

Quote:

Originally Posted by reins (Post 77749)
You won't need to make this check if you have only your combat bubbles showing though.

My test only had my attacks showing, I have NO idea if you can see others auto attacks and if they have an outline different than what is currently being looked at.

gm9 11-21-2008 12:06 PM

Note that if you need to check for colors (I don't think you do) then you need to read them from the system variable first because they are freely configurable.

reins 11-21-2008 12:28 PM

You'll only need to check the color if you have all combat bubbles showing, that can be turned off in options though.

nluerdarea 11-21-2008 04:13 PM

Sounds like almost all the setbacks have been hurdled, just need to code something up =)

Jida 11-21-2008 04:22 PM

Quote:

Originally Posted by reins (Post 77756)
You'll only need to check the color if you have all combat bubbles showing, that can be turned off in options though.

I agree, it should be a requirement for the person using the Addon to show only self combat bubbles.

dragowulf 11-21-2008 05:28 PM

1 Attachment(s)
That's what I've been doing :p
Quote:

Originally Posted by nluerdarea (Post 77776)
Sounds like almost all the setbacks have been hurdled, just need to code something up =)


Ok, it's almost fully functional. I think the only problem is the CombatBubbles (and lag), but this is working better than I thought. I still notice little problems with Primary/Secondary working together, but I'm sure we can fix that. I'm under the impression that the Primary/Secondary problem has to do with the CombatBubbles.

I noticed that Ranged Combat bubbles function differently than melee. What happens is that you don't see the combat bubble until the arrow hits the target (It takes half of the delay time). I had to multipy the ranged SpeedCalc by 2 so that the ranged speed of the bar would be on par with the attack.

Please report any bugs/issues in this thread


Remember to put <include>eq2ui_custom_autoattacktimer.xml</include> inside your eq2ui_custom file. You don't need to type anything to make it work, just auto-attack
Code:

<?xml version="1.0" encoding="utf-8"?>
<Page eq2usescomwndcontrols="true" Location="317,572" MinimumSize="400,43" Name="AutoAttackTimer" PackLocation="center,bottom" ScrollExtent="400,43" Size="400,43" UserMovable="true">
<Composite AbsorbsInput="false" MinimumSize="400,43" Name="TimerPages" PackSize="a,a" ScrollExtent="400,82" Size="400,82" SpacingType="Fill">
<Button AbsorbsInput="false" Location="0,0" Name="CombatBubbleOnShow" OnPress="Parent.Parent.Parent.Parent.ProxyActor.CombatBubble.OnShow=TMP" ScrollExtent="0,0" Size="0,0" TMP="Parent.Parent.AutoAttackTimer.TimerPages.MeleePage.Primary.ProgressPage.ProgressTimer.Press=true Parent.Parent.AutoAttackTimer.TimerPages.MeleePage.Secondary.ProgressPage.ProgressTimer.Press=true Parent.Parent.AutoAttackTimer.TimerPages.Ranged.ProgressPage.ProgressTimer.Press=true" Visible="false"/>
<Page AbsorbsInput="false" MinimumSize="400,43" Name="MeleePage" ScrollExtent="400,82" OnShow="Secondary.Visible=false
Secondary.Visible=Secondary.DelayValue.Visible
Parent.CombatBubbleOnShow.Press=true" PackSize="a,a" Size="400,82" Visible="false">
<Page AbsorbsInput="false" DynamicData="/GameData.Self.AutoAttack" MaximumSize="400,39" MinimumSize="400,39" Name="Primary" OnHide="hide_window Custom.AutoAttacktimer" OnShow="Parent.Visible=true
show_window Custom.AutoAttacktimer" ScrollExtent="400,39" Size="400,39" Visible="false">
<Text AbsorbsInput="false" Font="/TextStyles.Large.LargeStyle" Location="40,4" Margin="1,0,2,2" Name="AutoAttackText" ScrollExtent="356,21" ShadowStyle="/ShadowStylesNew.OutlineDrop.style" Size="356,21" TextAlignment="Center" TextAlignmentVertical="Center" TextColor="#F0D080">Primary Auto Attack</Text>
<Text AbsorbsInput="false" DynamicData="/GameData.Stats.Primary_Delay" Enabled="false" Font="/TextStyles.Small.SmallStyle" Location="4,26" Name="DelayValue" ScrollExtent="35,12" ShadowStyle="/ShadowStylesNew.Drop.style" Size="35,12" TextAlignment="Right" TextAlignmentVertical="Center" UserScrollable="false"/>
<Page AbsorbsInput="false" Location="43,28" Name="ProgressPage" 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" Location="-350,0" MaximumSize="350,8" MinimumSize="350,8" Name="ProgressTimer" OnEffectFinished="Location=&apos;-350,0&apos;" OnPress="SpeedCalc=350/Parent.Parent.DelayValue.Text
Parent.TimerTriggerPrimary.Speed=SpeedCalc ## &apos;,0&apos;" OnPressEffector="TimerTriggerPrimary" ScrollExtent="350,8" Size="350,8" Style="ProgressTimerStyle" Visible="false"/>
<LocationEffector Name="TimerTriggerPrimary"/>
</Page>
<Image AbsorbsInput="false" Location="43,28" Name="Bkg" ScrollExtent="350,8" Size="350,8" SourceRect="220,472,380,478" SourceResource="/images/window_elements_generic.dds"/>
<Page AbsorbsInput="false" BackgroundOpacity="1.000" Location="40,25" Name="Frame" RStyleDefault="/rectlist.chat_bubble_frame" ScrollExtent="356,14" Size="356,14"/>
</Page>
<Page AbsorbsInput="false" Location="0,39" MaximumSize="400,39" MinimumSize="400,39" Name="Secondary" OnHide="Parent.Parent.Parent.Size=&apos;400,43&apos;" OnShow="Parent.Parent.Parent.Size=&apos;400,82&apos;
Parent.Parent.Parent.WindowFrame.Size=&apos;402,85&apos;
Parent.Parent.Parent.WindowFrame.Frame.Size=&apos;402,85&apos;
Parent.Parent.Parent.WindowFrame.Bkg.Size=&apos;402,85&apos;" ScrollExtent="400,39" Size="400,39" Visible="false">
<Text AbsorbsInput="false" Font="/TextStyles.Large.LargeStyle" Location="40,4" Margin="1,0,2,2" Name="AutoAttackText" ScrollExtent="356,21" ShadowStyle="/ShadowStylesNew.OutlineDrop.style" Size="356,21" TextAlignment="Center" TextAlignmentVertical="Center" TextColor="#F0D080">Secondary Auto Attack</Text>
<Text AbsorbsInput="false" DynamicData="/GameData.Stats.Secondary_Delay" Enabled="false" Font="/TextStyles.Small.SmallStyle" Location="4,26" Name="DelayValue" OnHide="Parent.Visible=false" OnShow="Parent.Visible=true" ScrollExtent="35,12" ShadowStyle="/ShadowStylesNew.Drop.style" Size="35,12" TextAlignment="Right" TextAlignmentVertical="Center" UserScrollable="false" Visible="false"/>
<Page AbsorbsInput="false" Location="43,28" Name="ProgressPage" 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" Location="-350,0" MaximumSize="350,8" MinimumSize="350,8" Name="ProgressTimer" OnEffectFinished="Location=&apos;-350,0&apos;" OnPress="SpeedCalc=350/Parent.Parent.DelayValue.Text
Parent.TimerTriggerSecondary.Speed=SpeedCalc ## &apos;,0&apos;" OnPressEffector="TimerTriggerSecondary" ScrollExtent="350,8" Size="350,8" Style="ProgressTimerStyle" Visible="false"/>
<LocationEffector Name="TimerTriggerSecondary"/>
</Page>
<Image AbsorbsInput="false" Location="43,28" Name="Bkg" ScrollExtent="350,8" Size="350,8" SourceRect="220,472,380,478" SourceResource="/images/window_elements_generic.dds"/>
<Page AbsorbsInput="false" BackgroundOpacity="1.000" Location="40,25" Name="Frame" RStyleDefault="/rectlist.chat_bubble_frame" ScrollExtent="356,14" Size="356,14"/>
</Page>
</Page>
<Page AbsorbsInput="false" DynamicData="/GameData.Self.RangedAutoAttack" Location="0,39" MaximumSize="400,39" MinimumSize="400,39" Name="Ranged" OnHide="Parent.MeleePage.Visible=true" OnShow="Parent.Parent.Size=&apos;400,43&apos;
Parent.Parent.WindowFrame.Size=&apos;402,46&apos;
Parent.Parent.WindowFrame.Frame.Size=&apos;402,46&apos;
Parent.Parent.WindowFrame.Bkg.Size=&apos;402,46&apos;
Parent.MeleePage.Visible=false" ScrollExtent="400,39" Size="400,39" Visible="false">
<Text AbsorbsInput="false" Font="/TextStyles.Large.LargeStyle" Location="40,4" Margin="1,0,2,2" Name="AutoAttackText" 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="4,26" Name="DelayValue" ScrollExtent="35,12" ShadowStyle="/ShadowStylesNew.Drop.style" Size="35,12" TextAlignment="Right" TextAlignmentVertical="Center" UserScrollable="false"/>
<Page AbsorbsInput="false" Location="43,28" Name="ProgressPage" 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" Location="-350,0" MaximumSize="350,8" MinimumSize="350,8" Name="ProgressTimer" OnEffectFinished="Location=&apos;-350,0&apos;" OnPress="SpeedCalc=350/Parent.Parent.DelayValue.Text
SpeedCalc=SpeedCalc*2
Parent.TimerTriggerRanged.Speed=SpeedCalc ## &apos;,0&apos;" OnPressEffector="TimerTriggerRanged" ScrollExtent="350,8" Size="350,8" Style="ProgressTimerStyle" Visible="false"/>
<LocationEffector Name="TimerTriggerRanged"/>
</Page>
<Image AbsorbsInput="false" Location="43,28" Name="Bkg" ScrollExtent="350,8" Size="350,8" SourceRect="220,472,380,478" SourceResource="/images/window_elements_generic.dds"/>
<Page AbsorbsInput="false" BackgroundOpacity="1.000" Location="40,25" Name="Frame" 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 Location="-1,-2" MinimumSize="402,46" Name="WindowFrame" PackSize="absolute,absolute" ScrollExtent="402,46" Size="402,46">
<Page AbsorbsInput="false" BackgroundOpacity="1.000" MinimumSize="402,46" Name="Frame" PackLocation="left,top" PackSize="absolute,absolute" RStyleDefault="/WindowElements.DesktopWindowFrame.data.frame.rect" ScrollExtent="402,46" Size="402,46"/>
<Page AbsorbsInput="false" BackgroundOpacity="1.000" MinimumSize="402,46" Name="Bkg" PackLocation="left,top" PackSize="absolute,absolute" RStyleDefault="/WindowElements.DesktopWindowFrame.data.bkg.rect" ScrollExtent="402,46" Size="402,46"/>
</Page>
</Page>


Jida 11-21-2008 06:31 PM

It updates on EVERY bubble, should only be the ones with no border.

I guess you already knew that.

I have more features to make it a little more complex once you get it functional ;)


All times are GMT -5. The time now is 08:00 AM.

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