General obtaining correct self HP\Mana
Reply
obtaining correct self HP\Mana
Problem with the SoD\UF clients on most servers, is that they report the wrong total HP for yourself.

Would it be possible to access an equivalent of Me.PctHPs, but as a Spawn, as you would another player, rather than as yourself? (And yes, Spawn[Foo].PctHPs reports the same as Me.PctHPs, but maybe I am missing some trick)
Wed Mar 02, 2011 6:48 pm
If the client tells you your hp are 50%, but in reality they are 60%, then you have absolutely 0 ways to confirm otherwise. The client only knows what the client knows. Forgive me if I misunderstood what you meant.
Wed Mar 02, 2011 10:58 pm
Project Lead
As nearly as I can tell, the client is calculating that you should have say... 9000 hp, when the server thinks you should have 7000.

Now, you still report 100% HP to other characters, but to yourself, you think you have 70%ish.

I was just wondering if there was a way to query the same sort of data that other characters would see, rather than your clients own calculation of max HPs pct.

The only workaround I can think of is to embed a script into the UI which notes what your max HP is after enough time has passed in 'rested' state to be full, and calculates an apparent hp pct value for the UI to display based on that. Would require 'calibrating' every time you logged in (and would need to keep track of buffs), but might work. Would still break scripts that ask for ${Me.PctHPs} though.

The workaround that is beyond my ability would be to create a plugin to modify Me.PctHPs on the fly.
Thu Mar 03, 2011 8:37 am
You should also try to raise the question to the server admins as to why they do not set the rule value in the database to handle it. This defaults to false on a clean server install.

rule_values
More +
ruleset_id   rule_name                           rule_value
1            Character:SoDClientUseSoDHPManaEnd   true
[/syntax]
_________________
Sorvani
Thu Mar 03, 2011 12:47 pm
Senior Project Member
because the server only officially supports titanium clients, but titanium isn't resizable for my multi-display setup.
Thu Mar 03, 2011 1:33 pm
It wouldn't be impossible to get in there and alter it, but really it's a server issue you should be bugging your server op to resolve. Writing a plugin would be a bit involved to fix something like this, but there would be a workaround similar to what you described. Something like:

Macro
More +
|at the top of sub main add the following
/declare BugFixMaxHPs int outer 0
/declare BugFixPctHPs int outer 0


|in your main loop, or possibly before you do
|any kind of HP check on yourself
/call BugFix


|in your subroutine area
Sub BugFix
    /if (${Me.CurrentHPs} > ${BugFixMaxHPs}) /varset BugFixMaxHPs ${Me.CurrentHPs}
    /varset BugFixPctHPs ${Math.Calc[(${Me.CurrentHPs}/${BugFixMaxHPs})*100].Int}
/return


You would need to be extremely cautious, for example, if you left the main loop for a moment cause you are casting a heal on someone, then your own personal HP wouldn't be getting updated while your macro waited for the heal to finish.

It seems pretty silly that they wont support SoD, but they let you log in with it, and the only change they'd need to really do to make everyones life easier takes 1 query.
Thu Mar 03, 2011 1:49 pm
Project Lead
the issue is that you'd get about 1k free hp just for using the sod client, if you enable the sod hp calculation.
Thu Mar 03, 2011 2:00 pm
is it a PVP server?
Thu Mar 03, 2011 2:19 pm
Project Lead
No, not pretty sure that logic aint gonna work.
Thu Mar 03, 2011 3:44 pm
Pvp or p99 most likely
_________________
Sorvani
Thu Mar 03, 2011 8:01 pm
Senior Project Member
does that fix work for underfoot clients though?

It may sound dumb but I have to ask because the query specifically says "SoDclient"

And is there a similar fix for the mana bar doing the same thing?
Wed Jun 01, 2011 7:16 pm
The rule to switch the server to using the new formula is for SoD+ clients including Underfoot.
Wed Jun 01, 2011 7:54 pm
General obtaining correct self HP\Mana
Reply