XivParty - Party List Addon For Windower 4

Language: JP EN DE FR
users online
Forum » Windower » General » XivParty - Party List Addon for Windower 4
XivParty - Party List Addon for Windower 4
First Page 2 3 ... 8 9 10 11
Offline
Posts: 32
By Wiking 2023-02-09 01:59:43
Link | Quote | Reply
 
Bahamut.Brixy said: »
Works perfect! I'm still adjusting colors and such but hopefully I'll have a public version soon for those that want it.


Woah, that looks cool. Have you hidden the native party list or are you running 4k res(are they hidden behind the xivparty)?
 Ragnarok.Tylas
Offline
Server: Ragnarok
Game: FFXI
user: Tylas11
Posts: 59
By Ragnarok.Tylas 2023-02-09 05:34:10
Link | Quote | Reply
 
Sockfoot said: »
Using a sleep or schedule? Never been a big fan of prerender for that reason, though it does still live in a few of mine from before.
Yea it will have to be some timer based solution, that would also allow animations to be frame rate independent. They are tuned for 30 fps at the moment.
 
Offline
Posts:
By 2023-02-09 08:07:00
 Undelete | Edit  | Link | Quote | Reply
 
Post deleted by User.
Offline
Posts: 142
By Sockfoot 2023-02-09 10:20:51
Link | Quote | Reply
 
KujahFoxfire said: »
Ragnarok.Tylas said: »
Sockfoot said: »
Using a sleep or schedule? Never been a big fan of prerender for that reason, though it does still live in a few of mine from before.
Yea it will have to be some timer based solution, that would also allow animations to be frame rate independent. They are tuned for 30 fps at the moment.


Is it maybe an option to just not update while player status is 4 (event)?. Im not sure there is a need for it to be updating while locked with an npc/interation but I might be wrong.

Not tested but something like below?

Code
windower.register_event('prerender', function()
	local player = windower.ffix.get_player()
	if isZoning or not isInitialized or player.status == 4 then return end

	Settings:update()
	model:updatePlayers()

	view:visible(isSetupEnabled or not Settings.hideSolo or not isSolo(), const.visSolo)
	view:update()
end)
That might be a potential solution but I think generally running things off framerate in a game where people use different frame rates isn't the best practice. Again, no slight intended as we have all done it!
 Bismarck.Xurion
Offline
Server: Bismarck
Game: FFXI
user: Xurion
Posts: 694
By Bismarck.Xurion 2023-02-09 11:21:12
Link | Quote | Reply
 
A low-hanging fruit could be to simply switch from the prerender event to the incoming packet event.
 
Offline
Posts:
By 2023-02-09 11:50:08
 Undelete | Edit  | Link | Quote | Reply
 
Post deleted by User.
 Ragnarok.Tylas
Offline
Server: Ragnarok
Game: FFXI
user: Tylas11
Posts: 59
By Ragnarok.Tylas 2023-02-09 13:25:24
Link | Quote | Reply
 
Sockfoot said: »
That might be a potential solution but I think generally running things off framerate in a game where people use different frame rates isn't the best practice. Again, no slight intended as we have all done it!
Tried "loop" from the functions library, which is based on coroutine.sleep. When you set it the interval to 30 fps you get something like 20-21 with quite a noticeable jitter. This is not usable for smooth animations. I'll have find a more precise timer or try some magic in prerender.
 Shiva.Thorny
Offline
Server: Shiva
Game: FFXI
user: Rairin
Posts: 2808
By Shiva.Thorny 2023-02-09 15:03:37
Link | Quote | Reply
 
os.clock() has ms timing, you could try setting a constant minimum delay like 0.03 sec whenever you update, and skip render if that delay hasn't elapsed since last update

it wouldn't be fully immune to jitter, but at higher framerates the polling interval should keep it pretty smooth

if you're using windower's font objects, still have to consider whether windower is cacheing them or rendering every frame though.. you probably aren't changing most actual elements every frame because packets are only coming in every 400ms(250 w/ packetflow) so performance issues might be unavoidable if the cost is coming from windower's rendering that many objects rather than your updating itself
[+]
 Ragnarok.Tylas
Offline
Server: Ragnarok
Game: FFXI
user: Tylas11
Posts: 59
By Ragnarok.Tylas 2023-02-09 16:05:23
Link | Quote | Reply
 
That sounds like the most reasonable approach.

I'm not making any calls to Windower primitives unless something actually changed. Performance shouldn't be an issue, I developed this on an 8 year old i5 and never saw any noticeable performance hit at 30 or 60 fps. This whole ordeal only came up because of the insane frame rates FastCS is causing.

I noticed from using the config plugin that if you can't fully reach the target frame rate, animations seem to slow down. It is possible that the same is happening with FastCS, otherwise I wouldn't expect stuttering at the 270 fps I observed.

Edit: After some digging I found that os.clock returns wall-time on Windows but cpu-time on Linux. This might cause issues for people trying to run the game on Linux or Steam Deck. :/
 Shiva.Thorny
Offline
Server: Shiva
Game: FFXI
user: Rairin
Posts: 2808
By Shiva.Thorny 2023-02-09 19:02:28
Link | Quote | Reply
 
that's a shame, there are a lot of ways to do it with ffi, but doesn't seem that windower has that in v4
Offline
Posts: 142
By Sockfoot 2023-02-09 23:15:44
Link | Quote | Reply
 
local gettime = require('socket').gettime

then
now = gettime() and check against that.

Ragnarok.Tylas said: »
Sockfoot said: »
That might be a potential solution but I think generally running things off framerate in a game where people use different frame rates isn't the best practice. Again, no slight intended as we have all done it!
Tried "loop" from the functions library, which is based on coroutine.sleep. When you set it the interval to 30 fps you get something like 20-21 with quite a noticeable jitter. This is not usable for smooth animations. I'll have find a more precise timer or try some magic in prerender.
It might have just been the way I was doing things, but I've seen coroutine.schedule act ... oddly, which seems to be in place in loop(). Not all the time by any means.
 Shiva.Thorny
Offline
Server: Shiva
Game: FFXI
user: Rairin
Posts: 2808
By Shiva.Thorny 2023-02-10 05:31:43
Link | Quote | Reply
 
Ragnarok.Tylas said: »
I'm not making any calls to Windower primitives unless something actually changed.

If this is the case, then I would assume the overhead is coming from windower's primitives themselves rather than anything you're doing. Checking every frame is certainly unnecessary, but monitoring a few lua end variables should not be enough to cause framerate drops unless you're doing something terribly wrong.
 Ragnarok.Tylas
Offline
Server: Ragnarok
Game: FFXI
user: Tylas11
Posts: 59
By Ragnarok.Tylas 2023-02-10 16:34:37
Link | Quote | Reply
 
socket.gettime seems to do the trick, msec precision and no noticeable jitter in the animations. Seems to work fine with FastCS as well now. I'll wrap this up in a new release with a few other minor fixes soon.

Shiva.Thorny said: »
If this is the case, then I would assume the overhead is coming from windower's primitives themselves rather than anything you're doing. Checking every frame is certainly unnecessary, but monitoring a few lua end variables should not be enough to cause framerate drops unless you're doing something terribly wrong.
Just the presence of the primitives can't be the cause of the slowdown, otherwise this fix wouldn't work. Updating does a few calls to the Windower API, but mostly stuff like get_party and get_mob_by_target. It might also be related to my class library, which makes function lookups a bit more convoluted than they would need to be. But that's a price I'm willing to pay for polymorphism. :D

Either way, the issue is solved. Thanks all for your help.
[+]
Offline
Posts: 25
By Jhoo 2023-02-11 05:36:55
Link | Quote | Reply
 
Morning, i like the new update.
HAve couple question:
1 - there is a way to add more than 16 buff icon ?
2 - there is a way you can add party distance
thx
 Ragnarok.Tylas
Offline
Server: Ragnarok
Game: FFXI
user: Tylas11
Posts: 59
By Ragnarok.Tylas 2023-02-11 12:13:34
Link | Quote | Reply
 
Jhoo said: »
HAve couple question:
1 - there is a way to add more than 16 buff icon ?
2 - there is a way you can add party distance
1 - Yes there is, I assume you're using the ffxi2 layout which has them capped to 16 due to limited space. You can edit the layout XML and change <numIconsByRow>16,0</numIconsByRow> to 32,0. Or try fitting two rows by making the icons smaller. For details check the readme on GitHub.

2 - There are party distance options like the dimming of the bars or the "//xp range" command. If you want a numerical display, that would need to be a new feature although fairly easy to add. I'm not sure if I can fit yet another number in the layouts, but I can add a customization option.
[+]
Offline
Posts: 25
By Jhoo 2023-02-12 07:31:52
Link | Quote | Reply
 
1 - 32 buff are enough :) - need to BL some I don’t really need to have.
2 - would be awesome to have party distance! even if I have to sacrifice job icon that is nice to see but don’t really need.
But awesome work so far.
Offline
Posts: 25
By Jhoo 2023-02-13 03:34:40
Link | Quote | Reply
 
Stupid questions probably, but:
My buffs populate from right to left, and newer ls going to the very end to the left.
There is a way to let them populate from the right, and still populating from right to left ?
Offline
Posts: 123
By duos 2023-02-16 17:18:15
Link | Quote | Reply
 
Amazing job! loved it! thanks for making the UI size/position adjustable real time.


Question, is it possible to make ffxi2 layout have the buffs come at the right side instead of left?

The way I have it is that the party list is slightly towards the middle (so I don't watch the bottom right of the screen all the time as a whm).
[+]
 Ragnarok.Tylas
Offline
Server: Ragnarok
Game: FFXI
user: Tylas11
Posts: 59
By Ragnarok.Tylas 2023-02-17 12:34:08
Link | Quote | Reply
 
duos said: »
Question, is it possible to make ffxi2 layout have the buffs come at the right side instead of left?
Sure, edit ffxi2.xml and set buffIcons/alignRight to false, then adjust the X position to move the icons to the right. You can check the readme on GitHub for details about all the parameters.

In general when you edit layouts, I recommend to use the setup mode to test your changes. After you save the xml, just reload the layout instead of the whole addon.

Jhoo said: »
My buffs populate from right to left, and newer ls going to the very end to the left.
There is a way to let them populate from the right, and still populating from right to left ?
The order is not by newest buff but by the custom order set in bufforder.lua. No matter if aligned right or left, they will always read from left to right in that set order. If you want to change the order you can edit the bufforder.lua file.
[+]
Offline
Posts: 25
By Jhoo 2023-02-18 12:30:00
Link | Quote | Reply
 
Tylas what happen if i comment buffs i dont neeed.
they keep showing.
 Ragnarok.Tylas
Offline
Server: Ragnarok
Game: FFXI
user: Tylas11
Posts: 59
By Ragnarok.Tylas 2023-02-19 10:21:15
Link | Quote | Reply
 
Jhoo said: »
Tylas what happen if i comment buffs i dont neeed.
they keep showing.
That's not how it works. You are only supposed to change the line order in bufforder.lua, deleting lines will not hide buffs. That's what the in-game "filter" command is for.
 Ragnarok.Tylas
Offline
Server: Ragnarok
Game: FFXI
user: Tylas11
Posts: 59
By Ragnarok.Tylas 2023-02-19 10:37:26
Link | Quote | Reply
 
Version 2.1.0 has been released.

Frame rate independent updating should fix issues with FastCS and make animations have the same speed regardless of 30 or 60 fps. The update interval can be changed in the settings file if you so desire.

I've added numeric party member distances as an alternative to the range indicators. Activate using "//xp range num", available in all layouts except ffxi2 by default. Of course you can add it to that one as well if you copy the whole <range> node from another layout and customize it a bit.

Next up are two new commands that should help a bit covering the original game UI with the ffxi2 layout. "ShowEmptyRows" will make party lists always be fully expanded when there is at least one party member. "SwapSingleAlliance" will show members of alliance1 in the UI of alliance2 as long as there is only one alliance party. This helps prevent a gap where the original UI would be visible. Try a combination of these commands plus "alignBottom" to best fit your needs.
Protip: both "showEmptyRows" and "alignBottom" can be set for each party separately if you add 0,1 or 2 to the command. 0 being main party, the other two are for the alliances.

Lastly I've added a layout customization option for changing the HP/TP bar colors the same way as the numbers change. I did not add this to any default layouts though.
[+]
Offline
Posts: 99
By Tathamet 2023-02-19 12:56:11
Link | Quote | Reply
 
Beautiful, thank you!

[+]
Offline
Posts: 25
By Jhoo 2023-02-23 11:06:40
Link | Quote | Reply
 
Ragnarok.Tylas said: »

Lastly I've added a layout customization option for changing the HP/TP bar colors the same way as the numbers change. I did not add this to any default layouts though.

i have added to layout:
<hporangebarcolor>#f8631d</hporangebarcolor>
<hpredbarcolor>#FF0500</hpredbarcolor>
<hpyellowbarcolor>#F3F37CFF</hpyellowbarcolor>

but once the hp drop it change color but not get back to green.
am i doing something wrong ?
 Siren.Akson
Offline
Server: Siren
Game: FFXI
user: AKs0n
Posts: 2172
By Siren.Akson 2023-02-23 11:09:23
Link | Quote | Reply
 
Ragnarok.Tylas said: »
Version 2.0.0 is finally here!

Enjoy!
This is beyond Impressive. Since downloading the original version I cannot imagine playing this game w/o such UI. Now this just takes everything to a whole New Level. This was well worth the wait.
[+]
 Ragnarok.Tylas
Offline
Server: Ragnarok
Game: FFXI
user: Tylas11
Posts: 59
By Ragnarok.Tylas 2023-02-24 14:43:14
Link | Quote | Reply
 
Jhoo said: »
but once the hp drop it change color but not get back to green.
This was due to a bug, thanks for letting me know.
I've released a fix in version 2.1.1.
[+]
Offline
Posts: 25
By Jhoo 2023-02-25 01:22:18
Link | Quote | Reply
 
Ragnarok.Tylas said: »
Jhoo said: »
but once the hp drop it change color but not get back to green.
This was due to a bug, thanks for letting me know.
I've released a fix in version 2.1.1.

I'll test 2.1.1 !!.
Actually I solved this way on from line 106 to 117 from uistatusbar.lua

if self.barType == const.barTypeHp then
if val >= 0 then
if valPercent < 25 then
color = self.hpRedColor
barColor = self.hpRedBarColor
elseif valPercent < 75 then
color = self.hpOrangeColor
barColor = self.hpOrangeBarColor
elseif valPercent > 75 then
color = self.hpYellowColor
barColor = self.hpYellowBarColor
end
Thanks for your work!!
 Phoenix.Criky
Offline
Server: Phoenix
Game: FFXI
user: ojofer
Posts: 10
By Phoenix.Criky 2023-02-25 08:39:58
Link | Quote | Reply
 
I agree! It's so nice to be able to just click on other players in other alliance parties instead off having to click through or tab through everyone!
 Bismarck.Xurion
Offline
Server: Bismarck
Game: FFXI
user: Xurion
Posts: 694
By Bismarck.Xurion 2023-02-25 10:14:18
Link | Quote | Reply
 
Another way to target alliance members is with CTRL+F1~F6 and ALT+F1~F6.
First Page 2 3 ... 8 9 10 11
Log in to post.