 |

11-17-2008, 04:58 AM
|
|
gm10-1
|
|
Join Date: Feb 2006
Posts: 6,479
|
|
Aditu's post above is quite interesting. I see now why Rothgar thinks that a bar counting down the delay is too much of a hack, I wouldn't have thought that the variance would be this big.
So given Aditu's data you will need a way to trigger a progressbar restart even if it has not yet reached zero. While you could do that OnShow of the combat bubbles that wouldn't take care of a dual-wield situation because you could not know whether the second value is from your second weapon or again from your first weapon with a big variance, right? Unless we are certain that the variance always affects both weapons in the same way, but unless they have exactly the same delay that would be unlikely. So unless there is something else that can be used as a trigger which I am not seeing I'd say we need Rothgar's data.
|

11-17-2008, 11:41 AM
|
|
A Berserk Golem
|
|
Join Date: Mar 2006
Server: Unrest
Posts: 58
|
|
Combat bubbles
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.
|

11-17-2008, 01:01 PM
|
|
gm10-1
|
|
Join Date: Feb 2006
Posts: 6,479
|
|
Yes, can be done, but how do you take care of dual wield (my post above), I don't think there is any way to differentiate which weapon the bubble is for, is there?
|

11-17-2008, 01:18 PM
|
|
A Berserk Golem
|
|
Join Date: Mar 2006
Server: Unrest
Posts: 58
|
|
Only time that would be an issue is if the delays are different.
Otherwise its a non issue. because they will be naturally synced. and you just need to reset the timer from the last hit.
Most of the people I know have delays synced for melee weapons.
you switch to ranged attack, you will know that it switched and therefore use the bow/throwing weapon delay.
Last edited by Jida : 11-17-2008 at 01:22 PM.
|

11-17-2008, 02:38 PM
|
|
A Brown Bear
|
|
Join Date: Aug 2005
Server: Antonia Bayle
Posts: 12
|
|
How do you get the UI to read Combat Bubbles?
|

11-17-2008, 02:49 PM
|
|
gm10-1
|
|
Join Date: Feb 2006
Posts: 6,479
|
|
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.
|

11-17-2008, 02:59 PM
|
|
A Berserk Golem
|
|
Join Date: Mar 2006
Server: Unrest
Posts: 58
|
|
Sounds like its all worked out IMO.
If someone uses 2 different delays its worthless.
But most that I know don't care.
|

11-17-2008, 10:21 PM
|
 |
A man among men
|
|
Join Date: Dec 2004
Server: Nagafen
Posts: 934
|
|
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?
__________________
May Jesus Have Mercy On Us
|

11-17-2008, 10:23 PM
|
 |
A Griffon
|
|
Join Date: Oct 2004
Server: Antonia Bayle
Posts: 3,287
|
|
Post the code, and perhaps we can find a better route?
|

11-17-2008, 10:40 PM
|
 |
A man among men
|
|
Join Date: Dec 2004
Server: Nagafen
Posts: 934
|
|
Ok. I'm using a LocationEffector. To make the delay count down, I took the Size of the movementbar and divided it by the Delay, which equals the Speed of the LocationEffector, which in turn counts down the delay number exactly and perfectly.
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">
<Page eq2usescomwndcontrols="true" Loaded="true" MaximumSize="429,43" Name="AutoAttackTimer" Press="true" ScrollExtent="429,43" Size="429,43">
<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">10.0</Text>
<Page AbsorbsInput="false" Name="CalcPage">
<Button AbsorbsInput="false" DynamicData="/GameData.Self.AutoAttack" MaximumSize="0,0" Name="AutoAttack" OnShow="SpeedCalc=350/(Parent.Parent.PrimaryDelayValue.Text)
Parent.Parent.MoveRight.Speed=SpeedCalc ## ',0'
Parent.Parent.ProgressPage.ProgressTimer.Visible=false
Parent.Parent.ProgressPage.ProgressTimer.Visible=true" Opacity="0.000" Rotation="0.500" SpeedCalc="35.000" TextMaxLines="0" Visible="false" />
</Page>
<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" />
<Page BackgroundColor="#FF0000" BackgroundOpacity="1.000" Location="-350,0" Name="ProgressTimer" OnHide="Location='-350,0'" OnShowEffector="MoveRight" PackSize="a,f" RStyleDefault="ProgressBar" ScrollExtent="350,8" Size="350,8" Visible="false" />
</Page>
<LocationEffector Loop="true" Name="MoveRight" Speed="35,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>
</Page>
__________________
May Jesus Have Mercy On Us
Last edited by dragowulf : 11-17-2008 at 11:00 PM.
|

11-17-2008, 11:25 PM
|
|
A Berserk Golem
|
|
Join Date: Apr 2005
Posts: 57
|
|
nice job on the progress. /cheer
|

11-18-2008, 02:56 AM
|
|
gm10-1
|
|
Join Date: Feb 2006
Posts: 6,479
|
|
Quote:
Originally Posted by dragowulf
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.
Last edited by gm9 : 11-18-2008 at 02:58 AM.
|

11-18-2008, 08:23 AM
|
 |
A man among men
|
|
Join Date: Dec 2004
Server: Nagafen
Posts: 934
|
|
Quote:
Originally Posted by gm9
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  . 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. 
Or
Any ideas???
__________________
May Jesus Have Mercy On Us
Last edited by dragowulf : 11-18-2008 at 08:40 AM.
|

11-18-2008, 09:14 AM
|
|
gm10-1
|
|
Join Date: Feb 2006
Posts: 6,479
|
|
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. 
|

11-18-2008, 08:14 PM
|
 |
A man among men
|
|
Join Date: Dec 2004
Server: Nagafen
Posts: 934
|
|
Quote:
Originally Posted by gm9
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 
__________________
May Jesus Have Mercy On Us
|

11-18-2008, 09:33 PM
|
 |
A man among men
|
|
Join Date: Dec 2004
Server: Nagafen
Posts: 934
|
|
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
__________________
May Jesus Have Mercy On Us
Last edited by dragowulf : 11-18-2008 at 09:35 PM.
|

11-19-2008, 12:58 AM
|
 |
A man among men
|
|
Join Date: Dec 2004
Server: Nagafen
Posts: 934
|
|
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='-350,0'
Parent.ProgressTimer2.Press=true" OnPress="SpeedCalc=350/Parent.Parent.PrimaryDelayValue.Text
Parent.Parent.MoveRight.Speed=SpeedCalc ## ',0'" 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='-350,0'
Parent.ProgressTimer.Press=true" OnPress="SpeedCalc=350/Parent.Parent.PrimaryDelayValue.Text
Parent.Parent.MoveRight.Speed=SpeedCalc ## ',0'" 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 
__________________
May Jesus Have Mercy On Us
|

11-19-2008, 09:14 AM
|
|
A Berserk Golem
|
|
Join Date: Mar 2006
Server: Unrest
Posts: 58
|
|
Quote:
Originally Posted by dragowulf
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.
|

11-19-2008, 11:21 AM
|
|
A Griffon
|
|
Join Date: Jan 2005
Server: Crushbone
Posts: 115
|
|
So, it crashes to desktop randomly?
And you said the miss combat bubbles do not work at all?
__________________
|

11-19-2008, 06:07 PM
|
 |
A man among men
|
|
Join Date: Dec 2004
Server: Nagafen
Posts: 934
|
|
Quote:
Originally Posted by nluerdarea
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.
__________________
May Jesus Have Mercy On Us
|

11-19-2008, 06:08 PM
|
|
gm10-1
|
|
Join Date: Feb 2006
Posts: 6,479
|
|
Quote:
Originally Posted by dragowulf
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).
|

11-19-2008, 06:14 PM
|
 |
A man among men
|
|
Join Date: Dec 2004
Server: Nagafen
Posts: 934
|
|
Quote:
Originally Posted by gm9
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.
__________________
May Jesus Have Mercy On Us
|

11-19-2008, 06:25 PM
|
|
gm10-1
|
|
Join Date: Feb 2006
Posts: 6,479
|
|
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.
|

11-19-2008, 06:27 PM
|
 |
A man among men
|
|
Join Date: Dec 2004
Server: Nagafen
Posts: 934
|
|
Quote:
Originally Posted by gm9
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.
__________________
May Jesus Have Mercy On Us
Last edited by dragowulf : 11-19-2008 at 06:30 PM.
|

11-19-2008, 06:29 PM
|
|
gm10-1
|
|
Join Date: Feb 2006
Posts: 6,479
|
|
I looked at the latest code I see, which is post #167?
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -5. The time now is 03:50 PM.
|
 |