![]() |
I'm still talking to Rothgar. According to him it is extremely difficult trying to make the client hit zero at the exact same time that the server performs the next attack (because auto attack is calculated server-side).
Nonetheless, we'll take whatever he's able to give us. ;) My question is though, how would razieh be able to do it perfectly, yet Rothgar can't:confused: That boggles my mind |
Being out of range does not consume an auto attack. As soon as you move in range the auto attack will fire.
As far as on screen notifications, the most glaring is combat bubbles. They have to have something to do with the mod. |
If being out of range does not consume the auto-attack after all (hey, I don't know the mechanics) then actually your only choice for an attempt at synchronization is to go after the combat bubbles. For that you'd need to be able to visually distinguish your own auto-attack bubbles from all other damage types, including your auto-attack misses, and that for each weapon separately (assuming they don't always miss at the same time and assuming that a miss will still consume the auto-attack for that weapon). Again, no clue about that either. Your timing will be off though by the time it takes for auto-attack to be performed on the server, the damage being calculated on the server and sent back to the client and finally it being displayed in the UI.
Talking about combat bubbles, I tried ages ago to make an ingame real time dps monitor from them but as soon as there were too many bubbles on screen it would choke (data was just dropped, I'm not sure if it never appeared on screen or whether the code entered a race condition). And of course it wasn't terribly useful because I took the raw data without any normalization over time. Someone should try it today. /end derail. |
reins are you sure it does? I tested this with a long delay 2h; after I got the OOR msg I was able to walk up to a mob and stand there, then back out before the next AA round with out hitting it .
|
Coming from a pvp server where targets move out of range all the time, ya i'm positive that being out of range does not consume the auto attack.
Try it with a bow, move to absolute max range then back out a bit. (You can tell by the shading on the ranged auto attack button). Toggle on ranged auto attack then step into range, it should fire immediately. |
Sorry if you already covered this but all it seems that you need to do is...
Create a Progress Bar that starts when an auto attack is triggered whether it lands, misses, etc. Very similar to the progress that bar that starts when you cast a Spell or Combat Art. Then have that progress bar determine it's length based on the delay of your auto attack. If you can create both that should work and you won't have the issues you are discussing such as lag, being out of range, and so on. So basically... You autoattack: Progress bar timer starts based on current delay and does not reset until the next autoattack is done. Not an infinite loop which reads your delay because weapon delays will change, auto attacks can be delayed, and lag can cause the timing to be off. I am not a coder so I have no idea if this can be done or how it would be done. Wish I did because this would be a very helpful addition. However this seems to be the only way to do this and have it still be accurate. Good Luck. :) |
Quote:
|
Ranged auto attack and melee auto attack share the same timer bud, for the record hes right being out of range does not consume an auto attack. But you guys could code a UI that thought it did, it would be fun to see :D
|
Ranged seems not to consume a AA, every time I would step in range it would shoot. That was not true for melee AA though. when I would see the OOR msg i could go and stand by the mob and back out and get the OOR msg again with out ever hitting the mob with melee. Maybe my timing is just to good in melee but I doubt it.
|
Sure you're not just missing? :p Just kidding.
|
I knew someone would say that, that is why I did these test on mobs 60+ levels below me. :rolleyes:
|
So either Landiin and Aditu or reins and razieh are auto-attack noobs like me? I guess either way I'm in good company then. Hope you guys figure it out. :)
|
<- Noob for life!
|
Quote:
|
Quote:
|
Well after discussing with Rothgar, I can only say that I understand the auto attack mechanic much less.
|
Its not very complex. I don't understand why you would be confused especially if Rothgar explained it to you.
Edit: also I am an ultra cool sea turtle now :D |
There is ONLY one source that tells you exactly when you autoattack. That is your log file. The question is can you create a mod that reads a .txt file?? ACT does so I see no reason why not.
Razieh said: 1. It does not automatically loop in any facet Of course not but if it is coded for the progress bar to start when an autoattack hits. It would be dumb to make it loop. Clearly this isn't the case because his progress bar doesn't restart until he autoattacks again. 2. It only restarts when an auto attack hits Your log file tells you exactly when you autoattack. There has to be a way to make a mod that works like ACT's Double attack Plugin only on a UI mod. So instead of hearing "beep", the progress bar restarts. 3. I didn't use your timer codes as a base at all Clearly not. As far as being OOR/Stunned, this is completely mute if done right. You don't autoattack if your out of range. Thus the progress bar can not restart. Razieh stated his progress bar starts and doesn't restart unless a autoattack has occured. So if you can create a Mod that reads your log file (.txt file), then create a regex that states when you autoattack. Your can use that regex to trigger a progress bar that will indicate when your next autoattack is due. To get the right timing for this, you already have DD: /Gamedata.Stats.*_Delay. If you can turn this DD into a timer for the progress bar. You now have a precise progress bar for every single attack regardless of whether your weapon delay changes. You can also use DD:/Gamedata.Self.Autoattack or /Gamedata.Self.Ranged to determine which weapon you are using and calculate the correct delay and bring up the right progress bar. Damn I wish I was a coder because it can be done. |
There's no function in the UI to "read" any kind of file. So... Maybe with external programs like ACT it can be done.
|
Quote:
Oh and I've been a griffon for years. Quote:
|
Griffons are lame imo! Zebras are where its at!
|
Ok not the UI, a mod or XML file.
But can a XML file read a log (.txt) file? |
There are no "Mods" to the game. Anything going on is through the UI. It's written in XML but has many limitations with the game.
|
Hmm...
So can an XML (even 3rd party) read your log file and use something in that file to start a time bar (like Mother's countdown timer window) on your EQ2 screen? If not, what is stopping this? This is just an idea but i dont understand why it wouldn't work. *Write a code that reads you log file like ACT does. *When it sees that you autoattack it sends a trigger to a progress bar (not necessarily EQ2 casting bar but something similar to Mother's or whatever). *The timer is set using the DD stated above to give an accurate countdown. Maybe I am not clear in my explanation, I dunno. To me this would work perfectly if this can be done. If not, can you explain what would keep it from working?? :confused: I don't mean to pyre. I would like to figure this out as well. :) |
Far as I know with the functionality of Mother's timer windows is that the UI itself is setting the countdown and starting it.
There's no way to directly communicate with the UI outside of the UI. The only exception to this is displaying webpages in the in-game browser. So if you wanted to code up some web browser countdown bar... lol. I can't see that being very useful due to lag of the log file being read, and then displayed on screen... I don't think the log file is a very good way to go. Even 1 second of delay makes it pointless, IMHO. |
1 Attachment(s)
This piqued my interest, so I thought I would actually test things out. I'm fairly certain that the OOR messages work differently than I remember they did in EoF beta when I did my tests last. Not really doing a study on it, they seemed to trigger 1-3 times a second at irregular intervals. Somewhat strange.
Anyhow, I used a little tool that I already had which was a long abandoned "Swing Meter" plugin for ACT. Using a 4.0s weapon, it more or less correctly swings each time... though it's oddly early a lot. Could be rounding on the number EQ2 reports plus lag or something... it doesn't matter. Anyhow, if being out of range fully consumed an auto attack, the purposely late swings would always be late in a multiple of ~4000ms. Clearly that's not the case, but it's strange how often it would be be late around the same amount each time. I certainly didn't attempt to do that. So it would seem that being OOR only partially consumes an auto attack but coming into range is not an instant attack either. I think I mentioned this somewhere else, but I'll do so again here. A swing meter like the plugin I abandoned long ago has two major drawbacks. To be accurate with haste, the log file would have to be populated with haste or weapon delay pretty often. I suppose you could set up a chat channel that you cannot see to supply this information to ACT, but it's messy no matter what. Secondly and most importantly, ACT cannot tell the difference between two weapons of the same type. This would make it useless for anyone dual wielding with two piercing weapons for instance. |
I've been thinking. All OOR/Stun/etc things aside. We can make this mod as progress bars by using a similar method as mother's timer window, correct?
If so: Make it so that when an aa/rangedaa occurs, it takes the delay of the weapon and sets the auto attack progress bar timer. Ex: 1. Auto-Attack occurs and sets the timer to true 2. The timer uses the 5.3 delay and counts down 3. The auto-attack is turned off and the timer sets to false We could make it so whenever a CA/spell is used and the casting window is visible, the timer is delayed. Whenever the casting window is no longer visible, it starts the timer again. Ex: 1. stopautoattacktimer if {mainhud.casting.visible=true} -Casting window's onshow=parent.stopautoattacktimer=true 2. startautoattacktimer if {mainhud.casting.visible=false} -Casting window's onhide=parent.startautoattacktimer=true I'm not sure how this part could work out but..whenever the Out of Range Message occurs, it delays the timer untill the message changes???? EDIT: I'm completely unsure about this one Ex: 1. OnScreenMessage onshow=if {MessageText.text='out of range'} then stopautoattacktimer=true 2. OnScreenMessage onhide=if {MessageText.text=''} then startautoattacktimer=true Any thoughts? I'm also unsure of how it would be if you enabled auto attack on an unattackable npc because the timer would start. |
Quote:
Quote:
Quote:
Quote:
Quote:
|
Well I'm sure that this way would work, but I'm not exactly sure if it would be the easiest.
EDIT: Attachment removed, check above^^^^^^^^^^^^ |
1 Attachment(s)
Well it does work, I used movement effectors.
This is pretty much what I've came up with for the movement effectors to work: Code:
SpeedCalc=350/(Parent.Parent.PrimaryDelayValue.Text)To put the above code in simpler terms: 350 divided by 5.0 = 70.000, which comes out exactly to 5 seconds. (if the weapon delay was actually 5.0, but works with any number) Only thing I'm unsure of is how to make it continuous. If we get something from Rothgar telling us when an AutoAttack occurs, my code would work almost perfect. How Raz managed to get around that problem? I have no idea.:confused::confused::confused: |
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. |
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. |
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?
|
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. |
How do you get the UI to read Combat Bubbles?
|
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.
|
Sounds like its all worked out IMO.
If someone uses 2 different delays its worthless. But most that I know don't care. |
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? |
Post the code, and perhaps we can find a better route?
|
1 Attachment(s)
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. :p
Code:
<?xml version="1.0" encoding="utf-8"?> |
| All times are GMT -5. The time now is 05:11 AM. |
vBulletin® - Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
© MMOUI