PDA

View Full Version : UberBar



Deathravin
09-08-2009, 04:48 AM
Uber Bar!
http://members.cox.net/valendros/UberBarAlone.png


Uber Bar with the Skin I just made... (Yes, the health, mana, stamina, and spirit are gone from the bottom... GONE!)
http://members.cox.net/valendros/UberBarSkin.pnghttp://members.cox.net/valendros/uberbar.png

Any other ideas what I could add to it before I repo it? The target thing doesn't work yet, and 50/50 if I'm taking it out...

Oh, and Tillmen & Them made me make this:
http://members.cox.net/valendros/NewInjury.png
mmmm... boobies...
I think it's pretty nifty, but I'm not 100% onboard with it yet LOL...

Joseph
09-08-2009, 05:04 AM
hands, prep, statusbar, obvious paths.

Deathravin
09-08-2009, 05:09 AM
I was thinking about taking the hands & cast bars out of the skin and putting them into uberbar, ya...

the Compass is already nice and small, don't think I need to be adding that (and not sure it would be possible (and CERTAINLY wouldn't be worth it, memory-wise)

the StatusBar COULD go in there... not sure if I'd want it to... but it probably could. Again though, it works fine where it is and it doesn't really take up too much space.


I WANT to get rid of that stupid fucking button menu... the 'main/combat/information' button with the 'look, attack, etc' at the bottom. I've been in and out of the skin and can't find the damn thing listed anywhere. I can block it from being sent to me with Lich but I'd rather not... modifying the XML is... risky...

Morrff
09-08-2009, 02:56 PM
Put in a pulse timer. That has got to be the most annoying thing to me about SF, it has no frigging pulse timer!

ElvenFury
09-08-2009, 02:59 PM
That's one tiny SF window. Are you playing on a netbook or something?

Deathravin
09-08-2009, 04:58 PM
Nah, I play 4 people at once... Me and my two buddies...

As for a pulse timer, I was considering it... Here's the problem with it... The more XML data you push to SF, the more the memory leak makes itself known. This bar is still yet to be tested with that regard.

I can make a very accurate pulse timer now that I know more about how it works. I was thinking about just updating it any time anything else updated, and updating it by itself in the following way:
>90 seconds, 1/2 way, >60 seconds, 30 seconds, 20, 15, 10, 5, 4, 3, 2, 1.

SpiffyJr
09-08-2009, 05:06 PM
Pulse timers can't be accurate by the nature of the pulses. It's a random number from XX to XXX (can't remember the specific seconds). My pulse timer just took the average of the min/max range and used that as the reset point anytime it detected a pulse. You could improve on this quite a bit by using a running average to make a best guess at the next pulse. IIRC the pulses will average around the midpoint over time.

The problem with the counters, as Deathravin said, is that the data is being updated continually (every second with mine) which makes SF leak memory like a stuck pig.

Celephais
09-08-2009, 05:09 PM
You're aware that the pulse occurs (pseudo) randomly, correct? From 92-152 seconds.

Morrff
09-08-2009, 05:11 PM
Also the new mana bread pulses will probably mess with it the way you're handling it currently.

Celephais
09-08-2009, 05:20 PM
You could always take the Casting/Hard round time prompts that are sent and combine them, and then use the unused round time as your pulse counter.

Basically you trap something like:
<castTime value='1212352012'/>
and resend it as:
<roundTime value='1212352012'/>

Then when a pulse occurs just take the prompt time, add 92 to it (Minimum time between mana pulses).

Then you can see if you have "cast RT" that means you've got some time before a pulse, then once it's run out you'll know a pulse could happen any minute now.

Durgrimst
09-17-2009, 11:46 PM
Is this on the repository yet?

Deathravin
09-18-2009, 12:34 AM
I've been playing with the best way to code the mana timer here and there, I think the last time I looked at it, I got frustrated and took it all out to start from scratch... And I've had a hectic week, so maybe I'll get to it again in a couple weeks.
But the rest is working... Just for some reason you can't start it as a fav... not sure why. Even if you have another fav'ed script start it, it still comes up with a funny error.
Ohwell, It's a work in progress...

It's on the repository now. And I guess I'll post it here if anybody has any suggestions (or ideas how to make the favs error stop)...


#uberBar.lic
#Makes you an UBERBAR!
#Combines XPSF, and many other bars into one bar to rule them all.

def ubWoundsFullDis()
displayw = ""
areas = [["nsys", "nerves"],["leftArm", "left arm"],["rightArm", "right arm"],["rightLeg", "right leg"],["leftLeg", "left leg"],["head", "head"],["rightFoot", "right foot"],["leftFoot", "left foot"],["rightHand", "right hand"],["leftHand", "left hand"],["rightEye", "right eye"],["leftEye", "left eye"],["back", "back"],["neck", "neck"],["chest", "chest"],["abdomen", "abdomen"]]
areas.each do |area|
if eval("Wounds.#{area[0]}") > 0 then displayw += "<image id='#{area[0]}' name='Injury#{eval("Wounds.#{area[0]}")}' cmd='cure #{area[1]}' tooltip='cure #{area[1]}' height='0' width='0'/>"
elsif eval("Scars.#{area[0]}") > 0 then displayw += "<image id='#{area[0]}' name='Scar#{eval("Scars.#{area[0]}")}' cmd='cure #{area[1]}' tooltip='cure #{area[1]}' height='0' width='0'/>"
elsif eval("Wounds.#{area[0]}") == 0 then displayw += "<image id='#{area[0]}' name='#{area[0]}' cmd='cure #{area[1]}' tooltip='cure #{area[1]}' height='0' width='0'/>"
elsif eval("Scars.#{area[0]}") == 0 then displayw += "<image id='#{area[0]}' name='#{area[0]}' cmd='cure #{area[1]}' tooltip='cure #{area[1]}' height='0' width='0'/>"
end
end
return displayw
end
def ubWoundsChangeDis(location)
areas = { "nsys" => "nerves", "leftArm" => "left arm", "rightArm" => "right arm", "rightLeg" => "right leg", "leftLeg" => "left leg", "head" => "head", "rightFoot" => "right foot", "leftFoot" => "left foot", "rightHand" => "right hand", "leftHand" => "left hand", "rightEye" => "right eye", "leftEye" => "left eye", "back" => "back", "neck" => "neck", "chest" => "chest", "abdomen" => "abdomen", }
displayw = ""
if eval("Wounds.#{location}") > 0 then displayw = "<image id='#{location}' name='Injury#{eval("Wounds.#{location}")}' cmd='cure #{areas[location]}' tooltip='cure #{areas[location]}' height='0' width='0'/>"
elsif eval("Scars.#{location}") > 0 then displayw = "<image id='#{location}' name='Scar#{eval("Scars.#{location}")}' cmd='cure #{areas[location]}' tooltip='cure #{areas[location]}' height='0' width='0'/>"
else ; displayw = "<image id='#{location}' name='#{location}' cmd='cure #{areas[location]}' tooltip='cure #{areas[location]}' height='0' width='0'/>"
end
return displayw
end
def ubWoundsMash()
woundmash = []
areas = ["nsys","leftArm","rightArm","rightLeg","leftLeg","head","rightFoot","leftFoot","rightHand","leftHand","rightEye","leftEye","back","neck","chest","abdomen"]
areas.each do |area|
woundmash.push eval("(Wounds.#{area} * 10) + Scars.#{area}")
end
return woundmash
end

# Opening Setup
openLines = ["<closeDialog id='UberBar'/>",
"<openDialog type='dynamic' id='UberBar' title='Uber Bar' target='UberBar' location='main' top='0' left='0' align='nw' height='232' width='190' resident='false'>",
"<dialogData id='UberBar'>",
"<skin id='ubinjury' name='InjuriesPanel' controls='nsys,leftArm,rightArm,rightLeg,leftLeg,h ead,rightFoot,leftFoot,rightHand,leftHand,rightEye ,leftEye,back,neck,chest,abdomen' top='5' left='5' width='100' height='150' align='nw'/>"]
tosend = openLines.join
tosend += ubWoundsFullDis()
openLines = ["<label id='ublog' value='Login:' justify='4' anchor_left='ubinjury' align='n' top='5' left='5' height='15' width='50'/>",
"<label id='ubhour' value='AVG/Hr:' justify='4' anchor_left='ubinjury' anchor_top='ublog' top='4' left='5' height='15' width='50'/>",
"<label id='ublast' value='Pulse:' justify='4' anchor_left='ubinjury' anchor_top='ubhour' top='4' left='5' height='15' width='50'/>",
"<label id='ublogv' value='0' justify='6' anchor_left='ublog' align='n' top='5' left='0' height='15' width='50'/>",
"<label id='ubhourv' value='0' justify='6' anchor_left='ubhour' anchor_top='ublogv' top='4' left='0' height='15' width='50'/>",
"<label id='ublastv' value='0' justify='6' anchor_left='ublast' anchor_top='ubhourv' top='4' left='0' height='15' width='50'/>",
"<skin id='ubpulse' name='concentrationBar' controls='concentration' anchor_left='ubinjury' anchor_top='ublast' top='9' left='5' width='0' height='15'/><progressBar id='concentration' value='100' text='Pulse Timer' customText='t' anchor_left='ubinjury' anchor_top='ublast' top='9' left='5' width='100' height='15'/>",
"<skin id='ubheal' name='healthBar' controls='health' anchor_left='ubinjury' anchor_top='ubpulse' top='3' left='5' width='0' height='15'/><progressBar id='health' value='#{percenthealth}' text='#{checkhealth}/#{maxhealth}' customText='t' anchor_left='ubinjury' anchor_top='ubpulse' top='3' left='5' width='100' height='15'/>",
"<skin id='ubmana' name='manaBar' controls='mana' anchor_left='ubinjury' anchor_top='health' top='3' left='4' width='0' height='15'/><progressBar id='mana' value='#{percentmana}' text='#{checkmana}/#{maxmana}' customText='t' anchor_left='ubinjury' anchor_top='health' top='3' left='4' width='100' height='15'/>",
"<skin id='ubstam' name='staminaBar' controls='stamina' anchor_left='ubinjury' anchor_top='mana' top='3' left='5' width='0' height='15'/><progressBar id='stamina' value='#{percentstamina}' text='#{checkstamina}/#{maxstamina}' customText='t' anchor_left='ubinjury' anchor_top='mana' top='3' left='5' width='100' height='15'/>",
"<skin id='ubspir' name='spiritBar' controls='spirit' anchor_left='ubinjury' anchor_top='stamina' top='3' left='5' width='0' height='15'/><progressBar id='spirit' value='#{percentspirit}' text='#{checkspirit}/#{maxspirit}' customText='t' anchor_left='ubinjury' anchor_top='stamina' top='3' left='5' width='100' height='15'/>",
"<progressBar id='ubnext' value='#{XMLData.next_level_value}' text='#{XMLData.next_level_text.delete(' until next level')} until #{Char.level+1}' anchor_top='ubinjury' top='3' left='4' width='186' height='15'/>",
"<progressBar id='ubmind' value='#{XMLData.mind_value}' text='#{XMLData.mind_text}' customText='t' anchor_top='ubnext' top='3' left='4' width='186' height='15'/>",
"<progressBar id='ubstnc' value='#{XMLData.stance_value}' text='#{XMLData.stance_text}' anchor_top='ubmind' top='3' left='4' width='186' height='15'/>",
"<progressBar id='ubencm' value='#{XMLData.encumbrance_value}' text='#{XMLData.encumbrance_text}' anchor_top='ubstnc' top='3' left='4' width='186' height='15'/>"]
tosend += openLines.join
tosend += "</dialogData></openDialog>"

puts(tosend)


# random arrays
areas = ["nsys","leftArm","rightArm","rightLeg","leftLeg","head","rightFoot","leftFoot","rightHand","leftHand","rightEye","leftEye","back","neck","chest","abdomen"]
debug = false
# XP watcher variables
xpnFirstTime = Time.now # Time UB was first run
xpnFirst = XMLData.next_level_text.delete(' until next level').to_i # First experience
xpnTotal = 0 # Zero total xp to start
xpnCur = xpnFirst # Current exp to go
xpnOld = xpnFirst # Last round exp to go
xpnHour = 0 # average Experience per hour
xpnLast = 0 # Last Experience gain

# Stat Variables
oldHP = checkhealth
oldMP = checkmana
oldST = checkstamina
oldSP = checkspirit
oldXP = XMLData.next_level_text
oldMD = XMLData.mind_text
oldSN = XMLData.stance_text
oldEN = XMLData.encumbrance_text
oldIN = XMLData.injuries.to_s
oldWO = ubWoundsMash()

loop {
wait_while { oldHP == checkhealth and oldMP == checkmana and oldST == checkstamina and oldSP == checkspirit and oldXP == XMLData.next_level_text and oldMD == XMLData.mind_text and oldSN == XMLData.stance_text and oldEN == XMLData.encumbrance_text and oldIN == XMLData.injuries.to_s }
nowTime = Time.now
doLines = "<dialogData id='UberBar'>"

if oldHP != checkhealth then echo "updated health" if debug ; oldHP = checkhealth ; doLines += "<skin id='ubheal' name='healthBar' controls='health' anchor_left='ubinjury' anchor_top='ubpulse' top='9' left='5' width='0' height='15'/><progressBar id='health' value='#{percenthealth}' text='#{checkhealth}/#{maxhealth}' customText='t' anchor_left='ubinjury' anchor_top='ubpulse' top='4' left='5' width='100' height='15'/>" end
if oldMP != checkmana then echo "updated mana" if debug ; oldMP = checkmana ; doLines += "<skin id='ubmana' name='manaBar' controls='mana' anchor_left='ubinjury' anchor_top='health' top='3' left='4' width='0' height='15'/><progressBar id='mana' value='#{percentmana}' text='#{checkmana}/#{maxmana}' customText='t' anchor_left='ubinjury' anchor_top='health' top='3' left='4' width='100' height='15'/>" end
if oldST != checkstamina then echo "updated stamina" if debug ; oldST = checkstamina ; doLines += "<skin id='ubstam' name='staminaBar' controls='stamina' anchor_left='ubinjury' anchor_top='mana' top='3' left='5' width='0' height='15'/><progressBar id='stamina' value='#{percentstamina}' text='#{checkstamina}/#{maxstamina}' customText='t' anchor_left='ubinjury' anchor_top='mana' top='3' left='5' width='100' height='15'/>" end
if oldSP != checkspirit then echo "updated spirit" if debug ; oldSP = checkspirit ; doLines += "<skin id='ubspir' name='spiritBar' controls='spirit' anchor_left='ubinjury' anchor_top='stamina' top='3' left='5' width='0' height='15'/><progressBar id='spirit' value='#{percentspirit}' text='#{checkspirit}/#{maxspirit}' customText='t' anchor_left='ubinjury' anchor_top='stamina' top='3' left='5' width='100' height='15'/>" end
if oldMD != XMLData.mind_text then echo "updated mind" if debug ; oldMD = XMLData.mind_text ; doLines += "<progressBar id='ubmind' value='#{XMLData.mind_value}' text='#{XMLData.mind_text}' customText='t' anchor_top='ubnext' top='3' left='4' width='186' height='15'/>" end
if oldSN != XMLData.stance_text then echo "updated stance" if debug ; oldSN = XMLData.stance_text ; doLines += "<progressBar id='ubstnc' value='#{XMLData.stance_value}' text='#{XMLData.stance_text}' anchor_top='ubmind' top='3' left='4' width='186' height='15'/>" end
if oldEN != XMLData.encumbrance_text then echo "updated encumbr" if debug ; oldEN = XMLData.encumbrance_text ; doLines += "<progressBar id='ubencm' value='#{XMLData.encumbrance_value}' text='#{XMLData.encumbrance_text}' anchor_top='ubstnc' top='3' left='4' width='186' height='15'/>" end
if oldXP != XMLData.next_level_text
echo "updated next_level" if debug
xpnCur = XMLData.next_level_text.delete(' until next level').to_i
xpnLast = xpnOld - xpnCur
xpnLast = 0 if xpnLast < 0
xpnTotal += xpnLast
xpnHour = ((1.00 * xpnTotal) / ((nowTime - xpnFirstTime)/3600.00)).to_i
xpnOld = xpnCur
oldXP = XMLData.next_level_text
doLines += "<progressBar id='ubnext' value='#{XMLData.next_level_value}' text='#{xpnCur} until #{Char.level+1}' anchor_top='ubinjury' top='3' left='4' width='186' height='15'/>"
doLines += "<label id='ublogv' value='#{xpnTotal}' justify='6' anchor_left='ublog' align='n' top='5' left='0' height='15' width='50'/>"
doLines += "<label id='ubhourv' value='#{xpnHour}' justify='6' anchor_left='ubhour' anchor_top='ublogv' top='4' left='0' height='15' width='50'/>"
doLines += "<label id='ublastv' value='#{xpnLast}' justify='6' anchor_left='ublast' anchor_top='ubhourv' top='4' left='0' height='15' width='50'/>"
end
if oldIN != XMLData.injuries.to_s
echo "updated injuries" if debug
newWO = ubWoundsMash()
newWO.length.times { |n|
if oldWO[n] != newWO[n] then doLines += ubWoundsChangeDis(areas[n]) end
}
oldIN = XMLData.injuries.to_s
oldWO = ubWoundsMash()
end
doLines += "</dialogData>"
puts(doLines) if doLines != "<dialogData id='UberBar'></dialogData>"
}

I've been going back and forth on making the mind bar green again. I kinda liked it green...

Oh, and here's that skin (http://members.cox.net/valendros/DeathravinSkin.zip), hollar if you want any changes to that either...

deadly
09-20-2009, 06:00 AM
xp thing is busted for capped chars.... kinda like xpsf was. check out gibsxpsf for fixes you may be able to grab info from it.

Gibreficul
09-20-2009, 06:18 AM
the exp part is broken for capped characters. I ended up fixing it for xpsf. The problem is that if you're capped, you never get that "XXXX until next" or whatever it is... the fix I patched in, oversimplified, is...


if $capped
data = matchtimeout(60, "experience\'")
else
data = matchtimeout(60, "until next level'")
end


So, fixing it for capped people is what I'd suggest. I glanced over your code and just didn't want to touch it.

:ohshit:

deadly
09-21-2009, 10:48 PM
found a bug as an empath.

if i take someones nerve wound the whole uberbar window is covered by a HUGE number once I heal down the nerve wound. I cant select specific locations such as left hand, right arm, head, ect to heal it still looks like there is a HUGE area for nerve wound heals. So no matter where I click on the portrait its trying to heal a nerve wound that is no longer there.

Deathravin
09-22-2009, 12:56 AM
Ya, I guess I have to test it with the default skin. always the little things LOL.

Drunken Durfin
09-25-2009, 12:56 AM
Working on a little SF widget myself, sent you a couple of PMs.

Loagan
09-25-2009, 02:01 AM
Is this available to snag up yet? I'd really like to put this on my SF.

geoffire
11-09-2009, 04:18 AM
As someone resolutionally challenged (10" screen) I would love to use this, but this is all i get when I try to run it:

--- Lich: UberBar active.
--- Error: UberBar: (eval):53:in `start_script': uninitialized constant XMLData
--- Lich: UberBar has exited.

I've tried with the skin posted, but no change. I'm new to this so have no clue what to do to get the thing working. Any help? using lich 3.95 and stormfront.

Gibreficul
02-24-2010, 09:32 PM
I updated uberbar for capped characters, and repoed it as:

gibs_uberbar.lic

Enjoy.

Deathravin
04-05-2010, 09:37 AM
Fixed the nerve issue on standard skins since I doubt anybody's using mine ><.

Still to do:
- Capped character support (I'll probably just grab gibs code. I'm a damn theif and I have no capped characters to test it out on).
- Pulse timer. I would really like to get it in since it was the original reason for making it ><.

pabstblueribbon
04-05-2010, 09:41 AM
So does this now properly display nerve damage like SF or is it a line of text like gibs that indicates nerve damage?

Deathravin
04-05-2010, 09:48 AM
It looks just like SF.

pabstblueribbon
04-05-2010, 09:49 AM
Werd.

Deathravin
04-05-2010, 11:15 AM
I have no capped characters, so I'm curious about something...

When you're capped, does the regular SF experience bar stay at 100% or something? What's the need of all the math in the value function?

*edit*
OHHH... So the bar just says:
23541234890123 experience
with a full bar, right?

Alarke
04-05-2010, 11:31 AM
I think the experience bar counts down to the next training point.

Deathravin
04-05-2010, 11:58 AM
Nah, somebodys just going to need to give me a capped character so I can test this stuff out...

how about a nice sorcerer?

Deathravin
04-10-2010, 06:06 PM
Alright... well I was making a GTK version to be used with wizard. I got this far before my brain started melting. I'm pretty sure I can do the exp since login, avg and pulse, and the TNL no problem...

But how the heck can I put the little damage icons where they're supposed to go?
And am I even doing this right?


=begin

So I was thinkin to myself the other day,
'Hey, I want an uberbar for Wizard, and I think other people do too.'
So here it is. Stay classy San Diego.

=end

no_kill_all
no_pause_all
hide_me

Settings.load
window_width = 168
window_height = 232
window_position = Settings['window_position']
window_decorated = Settings['window_decorated']
minbar_height = 19
minbar_width = 84

oldHP = oldMP = oldST = oldSP = oldXP = oldMD = oldSN = oldEN = oldIN = oldWO = uberBar_pulse = uberBar_health = uberBar_mana = uberBar_stamina = uberBar_spirit = uberBar_exp = uberBar_mind = uberBar_stance = uberBar_encumb = uberBar_table = uberBar = done = window_close = nil
capped = false
capped = true if Char.level == 100

# random arrays
#areas = ["nsys","leftArm","rightArm","rightLeg","leftLeg","head","rightFoot","leftFoot","rightHand","leftHand","rightEye","leftEye","back","neck","chest","abdomen"]
debug = true

# XP watcher variables
xpnFirstTime = Time.now # Time UB was first run
if capped then xpnFirst = 100 - ((((XMLData.next_level_text.delete(' experience').to_i / 2500 + 1) * 2500 - XMLData.next_level_text.delete(' experience').to_i) * 100) / 2500) # First experience
else ; xpnFirst = XMLData.next_level_text.delete(' until next level').to_i ; end # First experience
xpnTotal = 0 # Zero total xp to start
xpnCur = xpnFirst # Current exp to go
xpnOld = xpnFirst # Last round exp to go
xpnHour = 0 # average Experience per hour
xpnLast = 0 # Last Experience gain


Gtk.queue {

uberBar = Gtk::Window.new
uberBar.title = 'UberBar'
uberBar.signal_connect('delete_event') { window_close = true }
uberBar.border_width = 2

uberBar_table = Gtk::Table.new 12, 2, true
uberBar.add uberBar_table

uberBar_damage = Gtk::Image.new "#{$script_dir}uberBar/Health.bmp"
uberBar_damage.height_request = minbar_height * 7
uberBar_damage.width_request = minbar_width
uberBar_table.attach uberBar_damage, 0, 1, 0, 8

uberBar_damage_larm = Gtk::Image.new "#{$script_dir}uberBar/Wound1.bmp"
#uberBar_damage_larm

uberBar_pulse = Gtk::ProgressBar.new
uberBar_pulse.height_request = minbar_height
uberBar_pulse.width_request = minbar_width
uberBar_table.attach uberBar_pulse, 1, 2, 3, 4

uberBar_health = Gtk::ProgressBar.new
uberBar_health.height_request = minbar_height
uberBar_health.width_request = minbar_width
uberBar_table.attach uberBar_health, 1, 2, 4, 5

uberBar_mana = Gtk::ProgressBar.new
uberBar_mana.height_request = minbar_height
uberBar_mana.width_request = minbar_width
uberBar_table.attach uberBar_mana, 1, 2, 5, 6

uberBar_stamina = Gtk::ProgressBar.new
uberBar_stamina.height_request = minbar_height
uberBar_stamina.width_request = minbar_width
uberBar_table.attach uberBar_stamina, 1, 2, 6, 7

uberBar_spirit = Gtk::ProgressBar.new
uberBar_spirit.height_request = minbar_height
uberBar_spirit.width_request = minbar_width
uberBar_table.attach uberBar_spirit, 1, 2, 7, 8

uberBar_exp = Gtk::ProgressBar.new
uberBar_exp.height_request = minbar_height
uberBar_exp.width_request = minbar_width
uberBar_table.attach uberBar_exp, 0, 2, 8, 9

uberBar_mind = Gtk::ProgressBar.new
uberBar_mind.height_request = minbar_height
uberBar_mind.width_request = minbar_width
uberBar_table.attach uberBar_mind, 0, 2, 9, 10

uberBar_stance = Gtk::ProgressBar.new
uberBar_stance.height_request = minbar_height
uberBar_stance.width_request = minbar_width
uberBar_table.attach uberBar_stance, 0, 2, 10, 11

uberBar_encumb = Gtk::ProgressBar.new
uberBar_encumb.height_request = minbar_height
uberBar_encumb.width_request = minbar_width
uberBar_table.attach uberBar_encumb, 0, 2, 11, 12

uberBar.show_all
#uberBar.decorated = window_decorated unless window_decorated.nil?
#uberBar.resize(window_width.to_i, window_height.to_i)
#window_position[0] = [[0, window_position[0].to_i].max, (Gdk.screen_width-window_width.to_i)].min
#window_position[1] = [[0, window_position[1].to_i].max, (Gdk.screen_height-window_height.to_i)].min
#uberBar.move(window_position[0].to_i, window_position[1].to_i)
uberBar.keep_above = true

done = true
}

wait_until { done }

before_dying {
done = false
Gtk.queue {
window_width = uberBar.allocation.width
window_height = uberBar.allocation.height
window_decorated = uberBar.decorated?
window_position = uberBar.position
uberBar.destroy
done = true
}
wait_until { done }
Settings['window_width'] = window_width
Settings['window_height'] = window_height
Settings['window_decorated'] = window_decorated
Settings['window_position'] = window_position if (window_position.class == Array) and (window_position[0].to_i > -5) and (window_position[1].to_i > -5)
Settings.save
}

loop {
wait_while { oldHP == checkhealth and oldMP == checkmana and oldST == checkstamina and oldSP = checkspirit and oldMD == XMLData.mind_text and oldSN == XMLData.stance_text and oldEN == XMLData.encumbrance_text }

if oldHP != checkhealth then echo "updated health" if debug ; oldHP = checkhealth ; Gtk.queue { uberBar_health.fraction = percenthealth/100.0 ; uberBar_health.text = "#{checkhealth}/#{maxhealth}" } end
if oldMP != checkmana then echo "updated mana" if debug ; oldMP = checkmana ; Gtk.queue { uberBar_mana.fraction = percentmana/100.0 ; uberBar_mana.text = "#{checkmana}/#{maxmana}" } end
if oldST != checkstamina then echo "updated stamina" if debug ; oldST = checkstamina ; Gtk.queue { uberBar_stamina.fraction = percentstamina/100.0 ; uberBar_stamina.text = "#{checkstamina}/#{maxstamina}" } end
if oldSP != checkspirit then echo "updated spirit" if debug ; oldSP = checkspirit ; Gtk.queue { uberBar_spirit.fraction = percentspirit/100.0 ; uberBar_spirit.text = "#{checkspirit}/#{maxspirit}" } end
if oldMD != XMLData.mind_text then echo "updated mind" if debug ; oldMD = XMLData.mind_text ; Gtk.queue { uberBar_mind.fraction = XMLData.mind_value/100.0 ; uberBar_mind.text = XMLData.mind_text } end
if oldSN != XMLData.stance_text then echo "updated stance" if debug ; oldSN = XMLData.stance_text ; Gtk.queue { uberBar_stance.fraction = XMLData.stance_value/100.0 ; uberBar_stance.text = XMLData.stance_text } end
if oldEN != XMLData.encumbrance_text then echo "updated encumbr" if debug ; oldEN = XMLData.encumbrance_text ; Gtk.queue { uberBar_encumb.fraction = XMLData.encumbrance_value/100.0 ; uberBar_encumb.text = XMLData.encumbrance_text } end

}

2941

1) Am I doing it right so far? (I mean the GTK part)
2) Anybody know how to put an smaller bmp on top of that picture? - the real brain melter for me atm
3) And how the bloody hell do you change the color of the Progress bars?
Can I not do it because they're pictures from the style? is the style locked somehow? how would I make my own style? where do styles come from? Same as babies?
I made the bars very plain and look almost like SF, but it would look so much better if I could keep that theme and just change the bloody colors.


update ideas:
- Ability to Change the theme - standard SF, standard Wizard, burly dude, hot chick (default)....
- Get the damn pulse timer working already - I can probably get that done today or tomorrow.

Tillmen
04-10-2010, 08:53 PM
Use a layout widget and put the images in it. Images put in first show up underneath images put in later. You can see narost for an example. It only has to do this once with the circle, and moves the circle around. You won't need to move anything around, just toggle what's visible when the injuries change.

Deathravin
04-10-2010, 09:38 PM
Ya, I looked at Narost, that's what made my eyes bleed and brain melt... I'll try to take another stab at it.

Any idea about the colors? Or am I stuck with dumb SF-style bars? (Cause I'm not keeping all of them that dumb green color. It's hard to tell what's what)

Deathravin
04-11-2010, 10:21 AM
I guess that's too much code bleh

I'll just give you the nuts & bolts

loop {
wait_while { oldHP == checkhealth and oldMP == checkmana and oldST == checkstamina and oldSP = checkspirit and oldXP == XMLData.next_level_text and oldMD == XMLData.mind_text and oldSN == XMLData.stance_text and oldEN == XMLData.encumbrance_text and oldIN == XMLData.injuries.to_s }
nowTime = Time.now
doLines = ""

if oldHP != checkhealth then echo "updated health" if debug ; oldHP = checkhealth ; doLines += "uberBar_health.fraction = percenthealth/100.0 ; uberBar_health.text = \"#{checkhealth}/#{maxhealth}\" ; " end
if oldMP != checkmana then echo "updated mana" if debug ; oldMP = checkmana ; doLines += "uberBar_mana.fraction = percentmana/100.0 ; uberBar_mana.text = \"#{checkmana}/#{maxmana}\" ; " end
if oldST != checkstamina then echo "updated stamina" if debug ; oldST = checkstamina ; doLines += "uberBar_stamina.fraction = percentstamina/100.0 ; uberBar_stamina.text = \"#{checkstamina}/#{maxstamina}\" ; " end
if oldSP != checkspirit then echo "updated spirit" if debug ; oldSP = checkspirit ; doLines += "uberBar_spirit.fraction = percentspirit/100.0 ; uberBar_spirit.text = \"#{checkspirit}/#{maxspirit}\" ; " end
if oldMD != XMLData.mind_text then echo "updated mind" if debug ; oldMD = XMLData.mind_text ; doLines += "uberBar_mind.fraction = XMLData.mind_value/100.0 ; uberBar_mind.text = XMLData.mind_text ; " end
if oldSN != XMLData.stance_text then echo "updated stance" if debug ; oldSN = XMLData.stance_text ; doLines += "uberBar_stance.fraction = XMLData.stance_value/100.0 ; uberBar_stance.text = XMLData.stance_text ; " end
if oldEN != XMLData.encumbrance_text then echo "updated encumbr" if debug ; oldEN = XMLData.encumbrance_text ; doLines += "uberBar_encumb.fraction = XMLData.encumbrance_value/100.0 ; uberBar_encumb.text = XMLData.encumbrance_text ; " end
if oldIN != XMLData.injuries.to_s then echo "updated wounds" if debug ; oldIN = XMLData.injuries.to_s
woundsev = 0
areas.each do |area|
arean.each do |an|
doLines += "uberBar_damage_layout.move(uberBar_damage_#{area}_ #{an}, -damage_width, -damage_height) ; "
end
if eval("Wounds.#{area}") > 0 then woundsev = eval("Wounds.#{area}") ; doLines += "uberBar_damage_layout.move(uberBar_damage_#{area}_ w#{woundsev}, uberBar_locations[\"#{area}\"][0], uberBar_locations[\"#{area}\"][1]) ; "
elsif eval("Scars.#{area}") > 0 then woundsev = eval("Scars.#{area}") ; doLines += "uberBar_damage_layout.move(uberBar_damage_#{area}_ s#{woundsev}, uberBar_locations[\"#{area}\"][0], uberBar_locations[\"#{area}\"][1]) ; "
end
end
end
if oldXP != XMLData.next_level_text then echo "updated exper" if debug ; oldXP = XMLData.next_level_text
if capped
xpnCur = XMLData.next_level_text.delete(" experience\'").to_i
xpnLast = xpnCur - xpnOld
xpnValue = 100 - ((((xpnCur / 2500 + 1) * 2500 - xpnCur) * 100) / 2500)
xpnText = "#{((xpnCur / 2500 + 1) * 2500 - xpnCur)} until TP"
else
xpnCur = XMLData.next_level_text.delete(' until next level').to_i
xpnLast = xpnOld - xpnCur
xpnValue = XMLData.next_level_value.to_i / 100.0
xpnText = "Level: #{Char.level} #{xpnCur} TNL"
end
xpnLast = 0 if xpnLast < 0
xpnTotal += xpnLast
xpnHour = ((1.00 * xpnTotal) / ((nowTime - xpnFirstTime)/3600.00)).to_i
xpnOld = xpnCur

doLines += "uberBar_exp.fraction = xpnValue ; "
doLines += "uberBar_exp.text = xpnText ; "
end
doLines += "done = true"
done = false
Gtk.queue { eval(doLines) }
wait_while { !done }

}

I think it's funny that I ended up having to do it the same as I do SF; build up a long string of commands then evaluate it at the end.
I wish there were a way to do it fast enough and without errors enough to not require a Trusted script...

I'm going to get rid of a bunch of the bulk through the string/eval method and we should probably see a release later on today.

I'd REALLY like to figure out a way that I don't have to create 96 images (off screen), then move each one into position with each damaged area. Idealy, I'd like to have 16 images (I include feet, it's in the stream, it's in lich, I include it), then change the image to the wound severity. But every way I tried that didn't work.
I'm sure there's a way to do it. But hey, for not knowing a thing about Gtk yesterday, I think I did pretty good.

The release will probably have the crappy SF-esque style, cause I just don't think there's a way to change that green color. It's a styled image, so there ya go.

Deathravin
04-11-2010, 02:16 PM
UberBarWiz.lic is on the repo for anybody that wants to play with it.
It's not for 'wizard' as much as it's just GTK so doesn't rely on SF like the original uberbar. And since it's not SF, I can modify the picture and really anything else.

I updated the original and GTK versions with Gib's capped code. I can't really test but it should work.


Tillmen gave me a great idea of releasing picture and style packs to modify it. And it wouldn't be too hard. I guess if you all want I can do a more SF-ish looking bar, or I can do one with a big picture of Mario or something. Start tossing ideas out, and I might just release em.

2942
that green might be better with white text on top of it...
- I'd like to add options for on-top/not on top
- maybe even a way to use your own picture w/ placements.
- Add in the damn pulse timer. I really need to code a timer. Everybody wants one; I just can't think of a good way to implement it.

I just thought of something that it doesn't do that the SF bar would.
When you click on a wound in the SF bar, it cures that area. This doesn't.

Gibreficul
04-17-2010, 10:23 AM
I have no capped characters, so I'm curious about something...

When you're capped, does the regular SF experience bar stay at 100% or something? What's the need of all the math in the value function?

*edit*
OHHH... So the bar just says:
23541234890123 experience
with a full bar, right?

Exactly, the value of the exp bar is always 100%.

http://sphotos.ak.fbcdn.net/hphotos-ak-ash1/hs464.ash1/25509_1223673203923_1591786654_30470971_3435761_n. jpg

Deathravin
05-06-2010, 11:47 PM
Updated uberbar (for stormfront):
Download it on the repo.

Update list:
- Changed so it won't close on a ;kill all
- Changed so it won't pause on a ;pause all
- Removed from script list
- Changed logic a bit. It should be a bit faster and a LOT easier to update
- Removed pulse bar, I'm over it. It hurts my brain every time I try to start to code it so I give up even though I got SO DAMN CLOSE this last time.
- Added a room #
- Made the window close when the script is stopped.
- Streamlined the Experience bar code
2965

If you have any suggestions what else to put there, please speak up. I can fit another row under the room #... Oh and if somebody wants to make sure the capped exp bar works, that'll be nice.

I think I'm going to put a status bar for the Wizard version. We don't really need it for the stormfront version. But I'll do that tomorrow night I think.

pabstblueribbon
05-07-2010, 04:31 PM
Bbbbbboner. Uh, RT thinger for wizard plz.

Mogonis
05-07-2010, 04:49 PM
What about Coins:

pabstblueribbon
05-07-2010, 04:55 PM
Goddamn it Walter!

You're such an asshole.

Deathravin
05-07-2010, 04:56 PM
Goals for this weekend:

Modify UberBarWiz:
- Add RT
- Add CastRT
- Add Room#
- Add Status Bar (standing, sitting, prone, kneeling, bleeding, poisoned, dead, webbed, stunned, hidden, invisible, grouped)
- Probably change the pack around a bit so I can upload different picture packs.
- Maybe add code so you can change your own pictures.
- Maybe add code so you can change the color of everything.
- MAYBE add code so you can modify what is/isn't shown
Any ideas for more status bar options? Any feelings toward where they're put?


Create ActiveSpells for Wizard/GTK
- Timers for every spell active in ;magic
- ??:??:?? for every spell active in "spells active" list (that aren't listed in ;magic).
- Probably some end-user modification for what to show.
- Maybe some end-user modification for color & formatting.


Modify current ActiveSpells for SF.
- Add in a ??:??:?? for every spell in spells active list (that aren't listed in ;magic) *DONE*
- Maybe some end-user modification for color & formatting.
- Maybe some end-user modification for what to show.

Deathravin
05-07-2010, 04:57 PM
What about Coins:

Coins aren't included in the XML stream. I could add the total of your bank accounts that infomon tracks, but other than that you're out of luck.

SanGreal
05-07-2010, 05:27 PM
Create ActiveSpells for Wizard/GTK
- Timers for every spell active in ;magic
- ??:??:?? for every spell active in "spells active" list (that aren't listed in ;magic).
- Probably some end-user modification for what to show.
- Maybe some end-user modification for color & formatting.


;inactivespells

Gibreficul
05-08-2010, 04:49 AM
Coins aren't included in the XML stream. I could add the total of your bank accounts that infomon tracks, but other than that you're out of luck.

Thanks for being nice about this. he keeps asking different people for this, all tell him the same thing, and he still keeps asking.... like something changed. I assume you got the private message I sent for the fix to capped people? (Gimme a yes answer and I'll check its accuracy when I get a chance.)

l8r chief. (Appreciate all the work you put into this, even though I'm still using the version I modded originally, kinda proud of having figured out some of that mess and having modded it and all that. It doesn't exist without your original work.)

:worship:

Mogonis
05-08-2010, 07:12 AM
Thanks for being nice about this. he keeps asking different people for this, all tell him the same thing, and he still keeps asking.... like something changed.
Heh. Very nice, Gib. But you're wrong about it. I haven't asked specific people. I mentioned it on LNet...maybe twice. And Deathravin's the first to actually say, "No, and here's why."

Kindness. Something you observe, but never practice.

Deathravin
05-08-2010, 09:27 AM
2966
Updated ActiveSpells for SF:
- Better update logic. It will update whenever total spell time remaining increases (spell is cast), any time the total number of spells changes or after 10 seconds since previous update (to try to keep XML updates from killing performance).
- Changed time format to H:MM
- Changed spell number format to 4 digits with leading zeros
- Added all spells not listed in ;magic, but in the active spell XML (for when ;magic is wrong, but you're still spelled up) - a '*' denotes that it's not in ;magic

I can't upload it yet, I have to ask Tillmen to let me get the key back. I guess repo has been updated and all the keys are invalid now.
So I've just included it as an attachment for now.

- Question -
Would you guys rather have it as status bars? that DOES seem like a good idea... * working on it now... gimme a couple hours ^^ *

Deathravin
05-08-2010, 11:04 AM
2968
Created UberSpells - sort of ActiveSpells but using progress bars. I think I'm in Love btw.

THIS I might actually keep up ^^.

Same deal as with ActiveSpells, it will show you spells not listed in ;magic as zero'ed bars with no timer. It's on the repo now.

Anebriated
05-08-2010, 06:53 PM
uberbarwiz bugged out on my cleric after meditating. showing 5 when I have 9..

http://i6.photobucket.com/albums/y249/Kyrthos/uberbug.jpg

Deathravin
05-08-2010, 08:32 PM
I can fix that! LOL
I'm in the middle of rewriting uberbar wiz, I'll take a look at it.

radamanthys
05-08-2010, 10:45 PM
Along the same lines, I was gonna get around to adding a progress bar for bounty countdown to my uberbar. Was something that would be of benefit to me, at least. Figured I'd mention it in case you felt the same.

Boreus
05-08-2010, 10:55 PM
OK never bothered to ask for this before cuz well I figured it was just one of those things, but your new uberspells already does it so..

Could you make the uberbar stay over on the side were I put it when I restart it pleeeease.

Thanks

Gibreficul
05-09-2010, 01:07 AM
I can fix that! LOL
I'm in the middle of rewriting uberbar wiz, I'll take a look at it.

I took a look at uberbarwiz again, and it's still not calculating Login and average per hour correctly, and on startup, the pulse is wrong too. What it looks like it's doing (Since my head hurts too much to rip this apart too) is putting your total experice (XMLData.next_level_text.delete(" experience").to_i) as your login exp at startup, and also as your pulse. The AvG/hr becomes some number with several commas. Hope this helps.

Deathravin
05-09-2010, 08:29 AM
OK never bothered to ask for this before cuz well I figured it was just one of those things, but your new uberspells already does it so..

Could you make the uberbar stay over on the side were I put it when I restart it pleeeease.

Thanks

If you mean the one for SF, the one on the repo right now should do that.
I just made them residents so they'll show up in the bar list where you can turn on/off other bars and SF will remember their locations & sizes.


Along the same lines, I was gonna get around to adding a progress bar for bounty countdown to my uberbar. Was something that would be of benefit to me, at least. Figured I'd mention it in case you felt the same.

UberSpells should already do this. But you can't turn things on or off yet. I think I'll put in a way to send it spell #s you don't want to see...


I took a look at uberbarwiz again, and it's still not calculating Login and average per hour correctly, and on startup, the pulse is wrong too. What it looks like it's doing (Since my head hurts too much to rip this apart too) is putting your total experice (XMLData.next_level_text.delete(" experience").to_i) as your login exp at startup, and also as your pulse. The AvG/hr becomes some number with several commas. Hope this helps.

ya, I know. It's already fixed, but it's not ready for release in it's current state. Probably by the end of the day.

pabstblueribbon
05-09-2010, 09:02 AM
I'm so excited!! ::clappyhands::

Gibreficul
05-09-2010, 10:15 AM
ya, I know. It's already fixed, but it's not ready for release in it's current state. Probably by the end of the day.

Good stuff.

Alorn15
05-09-2010, 10:17 AM
As someone resolutionally challenged (10" screen) I would love to use this, but this is all i get when I try to run it:

--- Lich: UberBar active.
--- Error: UberBar: (eval):53:in `start_script': uninitialized constant XMLData
--- Lich: UberBar has exited.

I've tried with the skin posted, but no change. I'm new to this so have no clue what to do to get the thing working. Any help? using lich 3.95 and stormfront.

That's a really old version of lich. I'd upgrade before seeking support.

Flessen
05-09-2010, 01:03 PM
UberSpells not showing up in game when I type ;uberspells.

No error messages or anything.

Someone
05-09-2010, 01:45 PM
Check to the right of the story window. You can barely see it there. I have to expand the window to the left some to get ahold of it and place it.

Deathravin
05-09-2010, 09:40 PM
2971
Okay, well it's... pretty much done. I just need to remember how to pack images into strings again...

File.open(health_file, 'wb') { |f| f.puts('long ass string of characters'.unpack('m').join('')) }

That's how I unpack it, but I can't remember how he told me to pack it up in the first place. Once I have that, I'll put the new images in the code, and upload my 3 health picture update packs, and release it. I think I have a log file on my work computer of me playing with it, so I'll check there tomorrow if I can't catch Tillmen before then.

Change log
- Changed color to white on black.
- Completely re-made the GTK method (not using tables, just layouts)
- Added status bar, and fit 5 bars worth of icons into 3 bars... BARELY
- Added RT bar
- Added Cast RT bar (small one, it's never over 3 seconds anyway)
- Added ability to relatively easily change the picture.
- Created 3 image packs - One using the SF default skin, one with the chick and one with a burly dude (pictures are in this thread already).
- Thought of another way of doing a pulse timer, wasted 2 hours on it, got frustrated and gave up again.

BTW, if anybody wants to take the little SF bleeding icon and turn it purple for me for a Poisoned indicator, I'd be much happy - I'm dumb with photoshop crap. File is attached.

Still to do:
- Put the XP text back into a table so it does the correct alignment.
- Change the background on some images
- Pack the images
- Bunch of other stuff that would be cool but probably isn't going to happen.

*edit*
ya, it was on the work computer. I'll do this when I get home then ^^
File.open("#{$lich_dir}scripts/uberbar/Health.bmp") { |file| echo [file.read].pack('m').gsub("\n", "") }
In case anybody's curious (and for a place for me to remember how to do it) - btw, I was REALLY close, only part I forgot was the gsub \n part.

Someone
05-09-2010, 09:46 PM
Purple...

Deathravin
05-09-2010, 09:49 PM
6... it took you 6 minutes... I think I want to cry.

And thank you!

Someone
05-09-2010, 10:06 PM
Actually, it took me about 2 minutes from seeing the post. ;)

That said...all I did was "adjust" the hue until it was purple.

Deathravin
05-09-2010, 10:13 PM
Actually, it took me about 2 minutes from seeing the post. ;)

That said...all I did was "adjust" the hue until it was purple.

Well I sat for half an hour staring at GIMP trying to figure it out. And FAILED. I learned how to turn off green which made it kinda dark purple...

radamanthys
05-09-2010, 10:21 PM
UberSpells should already do this. But you can't turn things on or off yet. I think I'll put in a way to send it spell #s you don't want to see...


I never really used UberSpells, the occasional hit of ;magic was always enough to show what's left. Was just gonna plop the info into my Uberbar for fun.

Not playing currently, way too busy. But I'll throw it in there once I get back (or shattered is released, I'll definitely play at least a bit then).

Anebriated
05-09-2010, 11:01 PM
Would there be a quick fix to get the window to stay at the adjusted size? Every time I log in I have to refit it to the space i created for it. Not a huge deal, was just curious.

Love the product though. Great job!

Deathravin
05-09-2010, 11:30 PM
UberBar... I'm not sure it can keep the size, but it can keep the location - and it currently should.
UberBarWiz... I fixed that. Should be good after I finish it up.

Anebriated
05-09-2010, 11:45 PM
<3

I use uberbarwiz :)

Deathravin
05-11-2010, 10:21 PM
UberBarWiz uploaded tonight.
Give it a try, I'm 100% sure I've forgotten something. But I dunno what.

You now require a theme.
UBW-theme-sexy, UBW-theme-dude, UBW-theme-sf

The SF doesn't look 100% right, I know. But this is actually the way it's set up in the SF skin, I guess they just couldn't get it to work right in stormfront so they settled for the way it shows now.

You can have different themes for different characters.
Have fun.

pabstblueribbon
05-12-2010, 03:23 PM
Hmm. Looks the same as the old uberbarwiz. When I apply ubw-theme-whatever, it closes out uberbar, and reopens it with the same old theme.

pabstblueribbon
05-12-2010, 03:47 PM
Nevermind! BAMF!

http://i173.photobucket.com/albums/w73/wtfnancy/Screenshot-1.png

Anebriated
05-13-2010, 02:15 AM
love the new look. two questions, is it possible to have the info scale with the window to avoid empty space? and is there a way to get the window to not always be on top or minimized? whats wrong with going to the background...(i guess thats three)

Silvanostar
05-13-2010, 06:53 PM
there seems to be a small bug. the xp/hr and login counters get all buggy when your pc levels up

Deathravin
05-13-2010, 07:24 PM
there seems to be a small bug. the xp/hr and login counters get all buggy when your pc levels up

I... I can fix that!

Boreus
05-16-2010, 08:31 AM
Ok someone explain this one?

;uberspell
--- Lich: UberSpells active.
[UberSpells: error: This script needs to be trusted to work. (;trust uberspells)]
--- Lich: UberSpells has exited.
>;trust uberspells
--- Lich: 'uberspells' is now a trusted script.
>;uberspell
--- Lich: UberSpells active.
[UberSpells: error: This script needs to be trusted to work. (;trust uberspells)]
--- Lich: UberSpells has exited.

Boreus
05-16-2010, 08:38 AM
Hrm strange It worked when I added the s as in ;uberspells

Deathravin
05-16-2010, 09:43 AM
Ya, trusting scripts are pretty specific. I just add it to my favs then I don't have to worry about it.

Actually... I'm not sure if if it requires trusting... It doesn't need any 'eval'...
No it doesn't... updated to remove the trust. In fact, none of my scripts except the Wiz UberBar themes should require trusting, I just don't know of another way to do certain things without 'eval'.

Mainly putting a variable inside a variable.


def ubWoundsFullDis()
displayw = ""
areas = [["nsys", "nerves"],["leftArm", "left arm"],["rightArm", "right arm"],["rightLeg", "right leg"],["leftLeg", "left leg"],["head", "head"],["rightFoot", "right foot"],["leftFoot", "left foot"],["rightHand", "right hand"],["leftHand", "left hand"],["rightEye", "right eye"],["leftEye", "left eye"],["back", "back"],["neck", "neck"],["chest", "chest"],["abdomen", "abdomen"]]
areas.each do |area|
if eval("Wounds.#{area[0]}") > 0 and area[0] == "nsys" then displayw += "<image id='#{area[0]}' name='Nsys#{eval("Wounds.#{area[0]}")}' cmd='cure #{area[1]}' tooltip='cure #{area[1]}' height='0' width='0'/>"
elsif eval("Scars.#{area[0]}") > 0 and area[0] == "nsys" then displayw += "<image id='#{area[0]}' name='Nsys#{eval("Scars.#{area[0]}")}' cmd='cure #{area[1]}' tooltip='cure #{area[1]}' height='0' width='0'/>"
elsif eval("Wounds.#{area[0]}") > 0 then displayw += "<image id='#{area[0]}' name='Injury#{eval("Wounds.#{area[0]}")}' cmd='cure #{area[1]}' tooltip='cure #{area[1]}' height='0' width='0'/>"
elsif eval("Scars.#{area[0]}") > 0 then displayw += "<image id='#{area[0]}' name='Scar#{eval("Scars.#{area[0]}")}' cmd='cure #{area[1]}' tooltip='cure #{area[1]}' height='0' width='0'/>"
elsif eval("Wounds.#{area[0]}") == 0 then displayw += "<image id='#{area[0]}' name='#{area[0]}' cmd='cure #{area[1]}' tooltip='cure #{area[1]}' height='0' width='0'/>"
elsif eval("Scars.#{area[0]}") == 0 then displayw += "<image id='#{area[0]}' name='#{area[0]}' cmd='cure #{area[1]}' tooltip='cure #{area[1]}' height='0' width='0'/>"
end
end
return displayw
end


In this instance, I am able to have far fewer lines of code because I use an eval. I bet there's a better way to do it, but I just don't know it.

Tillmen
05-16-2010, 12:24 PM
Wounds.send(area[0])

Boreus
05-17-2010, 10:07 AM
That was the wierder part it's in my global Favs and it worked for every other character but that one. And the s in the end wasn't missing in the ;trust uberspells it was only in ;uberspell instead of uberspells when I was doing it manually, in the fav it's uberspells. Just one of those things that make ya go Hmmm.

Sorry couldn't resist

Gilralyn
05-27-2010, 10:14 AM
Hi, All:

Here's a change I made to UberBarWiz that helps me out, since I have two characters running side-by-side. I figured others might find it useful, too. It changes the title of the UberBar to the character's name.



uberBar.title = "#{Char.name}" # currently around line 143


If others find it useful, it'd be nice if this could be added to the "official" UberBarWiz.

Cheers,

Gil.

Sylvan Dreams
06-10-2010, 05:17 PM
I don't know if there's a tangent for capped characters, but could uberbar show experience until next TP pulse?

PS.

My Uberbar is broken on one character:

>;uberbar
--- Lich: uberbar active.
--- Exception: NaN
uberbar:149:in `to_i'
--- Lich: uberbar has exited.

Boreus
06-11-2010, 09:30 AM
OK strange happenings this morning gt disconnected again last night, no surprise there but anyway when I logged back in this morning on of my characters was ) with no experience etc showing in the uberbar window, so I checked list and uberbar wasn't running, I tried starting it and all I can get is this error

--- Lich: uberbar active.
--- Exception: NaN
uberbar:149:in `to_i'
--- Lich: uberbar has exited.

However I MA and the other character has Uberbar up and running with no problems


I relogged and it worked again still weird though

Sylvan Dreams
06-11-2010, 03:07 PM
Logging in fresh still hasn't fixed Uberbar for me on the same character. I broked it :(

Deathravin
06-11-2010, 04:52 PM
nah, that's what I get for updating something without testing it ><... damn me and assuming I can code.

I'll try to fix it when I get home tonight. But I have about a million and a half other things to do. Why is it a game thats supposed to be a haven for not paying attention is taking so much of my attention!?!?

Deathravin
06-14-2010, 04:18 PM
re-uploaded, I think I fixed the NaN.to_i thing.

Fatsix
06-16-2010, 06:45 PM
whats the command line to fire this thing? I downloaded and trusted the files...

;uberbarwiz
Download, trust, and run one of the theme packages from the repository
UBW-theme-sf, -dude or -sexy

Fatsix
06-16-2010, 07:04 PM
got it, needed to run the ubw-theme-sexy, not uberbarwiz

Fatsix
06-16-2010, 07:35 PM
uberspellswiz isnt on the repo anymore....:help:

Deathravin
06-16-2010, 08:01 PM
there wasn't one. I think it's inactivespells, was made by Tillmen. I don't use it :shrug:

I wouldn't mind making one, but I don't really have the screen real estate anyway.

Fatsix
06-17-2010, 08:01 AM
ah ok because when you download and and run uberspells, it tells you that there is a wizard version available uberspellswiz.

Flessen
06-17-2010, 09:37 AM
I have been getting this lately. I have updated ;uberbar to the last one on the ;repos.


>;uberbar
--- Lich: uberbar active.
--- Exception: NaN
uberbar:151:in `to_i'
--- Lich: uberbar has exited.
>;uberbar
--- Lich: uberbar active.
--- Exception: NaN
uberbar:151:in `to_i'
--- Lich: uberbar has exited.
>;uberbar
--- Lich: uberbar active.
--- Exception: NaN
uberbar:151:in `to_i'
--- Lich: uberbar has exited.
>;kill uberbar
--- Lich: uberbar.lic does not appear to be running! Use ';list' or ';listall' to see what's active.
You've gained 1 mental training point.
(To use these new points, click on the "skill goals" link in the quick link bar.)
>;uberbar
--- Lich: uberbar active.
--- Exception: NaN
uberbar:151:in `to_i'
--- Lich: uberbar has exited.

Kavey
09-04-2011, 09:55 AM
I just got this error with uberspells.. anyone know why?
uberspells:86:in `to_i'
It works fine on another character just not on this one. I tried deleting and redownloading to no avail.

Deathravin
09-04-2011, 10:24 AM
I've seen that before, it is odd... what profession is the character? Also put your ";spells" and "spells active" lists in here if you would and I'll take a look.

Kavey
09-04-2011, 11:40 AM
Profession is wizard.

- Minor Spirit:
101: Spirit Warding I - 0:29:23 - 10 bDS, 5 elemTD, 10 spirTD, 7 sorcTD
102: Spirit Barrier - 0:09:14 - -19 pAS, 20 bDS, 20 pDS
107: Spirit Warding II - 0:09:46 - 25 bDS, 7 elemTD, 15 spirTD, 10 sorcTD

- Minor Elemental:
401: Elemental Defense I - 2:18:43 - 5 bDS, 5 pDS, 5 elemTD, 2 spirTD, 3 sorcTD
406: Elemental Defense II - 1:36:28 - 10 bDS, 10 pDS, 10 elemTD, 5 spirTD, 7 sorcTD
414: Elemental Defense III - 1:33:39 - 20 bDS, 20 pDS, 15 elemTD, 7 spirTD, 10 sorcTD
425: Elemental Targeting - 0:17:09 - 33 bAS, 33 pAS, 33 elemCS, 16 sorcCS
430: Elemental Barrier - 0:17:13 - 21 bDS, 21 pDS, 21 elemTD, 10 spirTD, 15 sorcTD

- Major Elemental:
503: Thurfel's Ward - 1:36:40 - 31 bDS, 31 pDS
507: Elemental Deflection - 1:37:19 - 42 bDS, 42 pDS
508: Elemental Bias - 1:37:47 - 20 elemTD, 10 spirTD, 15 sorcTD
509: Strength - 1:40:03 - 15 pAS, 15 str
513: Elemental Focus - 1:46:24 - 39 bAS, -40 pAS
520: Stone Skin - 0:17:17

- Ranger:
601: Natural Colors - 2:58:42 - 10 bDS, 10 pDS
611: Mass Colors - 1:24:51

- Wizard:
905: Prismatic Guard - 1:43:28 - 30 bDS, 15 pDS
911: Mass Blur - 3:29:19 - 20 dodge
913: Melgorehn's Aura - 1:51:15 - 44 bDS, 44 pDS, 31 elemTD, 15 spirTD, 23 sorcTD
920: Call Familiar - 0:32:43

- Council of Light:
9906: Sign of Thought - 0:05:33

Totals: 72 bAS, -11 pAS, 268 bDS, 218 pDS, 33 elemCS, 16 sorcCS, 114 elemTD, 74 spirTD, 90 sorcTD, 15 str, 20 dodge

Your Gift of Lumnis cycle will begin when you next learn from an experience.





You currently have the following active spells:
920
101
430
103
102
601
520
913
905
513
509
508
507
911
503
414
406
425
401
107
202

Kavey
09-04-2011, 01:10 PM
Eh.. i just needed to die
I died and lost all of my spells and now its working fine