Register to post in forums, or Log in to your existing account
 

Play RetroMUD
Post new topic  Reply to topic     Home » Forums » CMUD Beta Forum
charneus
Wizard


Joined: 19 Jun 2005
Posts: 1876
Location: California

PostPosted: Fri Jun 04, 2010 10:16 pm   

[3.18d]BUG: Gauge flickering
 
Using the following codes in an untitled session (this was first noted in my live session), the gauge flickers with each change. This was tested by doing:

Code:
#LOOP 500 {#SAY {{stats}64/35,61/35,65/35,65/35,58/35,65/35,100,100,100,175,165,You are Standing.,9999,771/771,589/589,1066/1066,193297,5202,23,2500,3720,9,5}}


I also think there's a bug with copying the button, too. You may need to delete the values and put them back in again, though I'm not 100% sure. This gauge flickering, while not entirely detrimental to play, is annoying at the very least, especially when it's updated every two seconds.

Code:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<cmud>
  <button name="Move" type="Gauge" autosize="false" width="60" height="15" autopos="false" left="120" top="0" toolbar="2" toolstyle="true" color="green" textcolor="silver" gaugelowcol="red" priority="24080" copy="yes">
    <caption>%item(@statline,15)%</caption>
    <expr>%item(@statline,15)</expr>
    <gaugemax>100</gaugemax>
    <gaugelow>25</gaugelow>
  </button>
</cmud>


Code:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<cmud>
  <trigger priority="15710" copy="yes">
    <pattern>^~{stats~}(*)</pattern>
    <value>#gagspace
#VAR statline %subchar( %1, "/,", "||")</value>
    <notes>{stats}64/35,61/35,65/35,65/35,58/35,65/35,100,100,100,175,165,You are Standing.,9999,771/771,589/589,1066/1066,193297,5202,23,2500,3720,9,5</notes>
  </trigger>
</cmud>



Charneus
Reply with quote
GeneralStonewall
Magician


Joined: 02 Feb 2004
Posts: 364
Location: USA

PostPosted: Fri Jun 04, 2010 10:29 pm   
 
I can confirm this in my own scripts.
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Fri Jun 04, 2010 11:01 pm   
 
Yep, I see this. The new tables are not optimized for button/gauge updates yet. It's the same problem as in old versions that any update to the variable will cause a change to update the button, even if the button just depends upon a subkey.

However, you are correct that it shouldn't be flickering like this. Seems like it is alternating between setting the gauge to zero and 100 instead of just staying at 100.
Reply with quote
GeneralStonewall
Magician


Joined: 02 Feb 2004
Posts: 364
Location: USA

PostPosted: Wed Jun 16, 2010 1:10 am   
 
This is still an issue in 3.19e. I'm wondering if this could be causing lag every time the gauge is updated. Now that I'm able to fully test my system some more in a newer version, I'm definitely noticing some sort of lag problem.
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Wed Jun 16, 2010 1:15 am   
 
The scripts posted by the original poster in this thread work fine without flickering. So if you are still having flicker issues you need to post your scripts and procedure for reproducing them.
Reply with quote
GeneralStonewall
Magician


Joined: 02 Feb 2004
Posts: 364
Location: USA

PostPosted: Wed Jun 16, 2010 4:57 am   
 
Looks like it has to do with updating the variable for the max value.

Code:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<cmud>
  <alias name="test" copy="yes">
    <value>#99 {#SAY {Health: 4000 MaxHealth: 5000 Mana: 3000 MaxMana: 4500 Endurance: 2342 Willpower: 2312}}</value>
  </alias>
  <var name="Endurance" copy="yes">2342</var>
  <var name="Health" copy="yes">4000</var>
  <var name="Mana" copy="yes">3000</var>
  <var name="MaxEndurance" copy="yes">6000</var>
  <var name="MaxHealth" copy="yes">5000</var>
  <var name="MaxMana" copy="yes">4500</var>
  <var name="MaxWillpower" copy="yes">3503</var>
  <var name="Willpower" copy="yes">2312</var>
  <trigger type="Alarm" priority="70" enabled="false" copy="yes">
    <pattern>*0.1</pattern>
    <value>#SAY {Health: 4000 MaxHealth: 5000 Mana: 3000 MaxMana: 4500 Endurance: 2342 Willpower: 2312}</value>
  </trigger>
  <trigger priority="80" regex="true" copy="yes">
    <pattern>^Health: (\d+) MaxHealth: (\d+) Mana: (\d+) MaxMana: (\d+) Endurance: (\d+) Willpower: (\d+)</pattern>
    <value>Health = %1
MaxHealth = %2
Mana = %3
MaxMana = %4
Endurance = %5
Willpower = %6</value>
  </trigger>
  <button type="Gauge" autosize="false" width="200" height="23" inset="true" toolstyle="true" color="lime" gaugelowcol="red" gaugebackcol="#D4D0C8" priority="111" copy="yes">
    <caption>E: @Endurance / @MaxEndurance</caption>
    <expr>@Endurance</expr>
    <gaugemax>@MaxEndurance</gaugemax>
    <gaugelow>@MaxEndurance/4</gaugelow>
  </button>
  <button type="Gauge" autosize="false" width="200" height="23" inset="true" toolstyle="true" color="lime" gaugelowcol="red" gaugebackcol="#D4D0C8" priority="113" copy="yes">
    <caption>H: @Health / @MaxHealth</caption>
    <expr>@Health</expr>
    <gaugemax>@MaxHealth</gaugemax>
    <gaugelow>@MaxHealth/4</gaugelow>
  </button>
  <button type="Gauge" autosize="false" width="200" height="23" inset="true" toolstyle="true" color="lime" gaugelowcol="red" gaugebackcol="#D4D0C8" priority="110" copy="yes">
    <caption>M: @Mana / @MaxMana</caption>
    <expr>@Mana</expr>
    <gaugemax>@MaxMana</gaugemax>
    <gaugelow>@MaxMana/4</gaugelow>
  </button>
  <button type="Gauge" autosize="false" width="200" height="23" inset="true" toolstyle="true" color="lime" gaugelowcol="red" gaugebackcol="#D4D0C8" priority="112" copy="yes">
    <caption>W: @Willpower / @MaxWillpower</caption>
    <expr>@Willpower</expr>
    <gaugemax>@MaxWillpower</gaugemax>
    <gaugelow>@MaxWillpower/4</gaugelow>
  </button>
</cmud>
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Wed Jun 16, 2010 4:27 pm   
 
I loaded your script and typed the "test" alias, but I didn't get any flicker. Maybe it's OS dependent? My test was on Win7. Or if I'm supposed to use a different method to test it, let me know.
Reply with quote
GeneralStonewall
Magician


Joined: 02 Feb 2004
Posts: 364
Location: USA

PostPosted: Wed Jun 16, 2010 7:25 pm   
 
Nope, that's the test. I also made the alarm to simulate a prompt being updated, so try that too I guess. But yeah, this is definitely happening in a fresh session with nothing but these settings. Perhaps someone else could confirm as well? I'm running Windows XP 64-bit.
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Wed Jun 16, 2010 7:39 pm   
 
Windows XP might explain it. On Vista and Win7 there is an extra screen buffering layer that prevents some types of flicker (which is why text scrolling is slightly slower on Vista and Win7 compared to XP).

I tried turning off the desktop composition on Win7 which is supposed to remove this extra buffering layer, but I still didn't get any flicker. So I'm going to need somebody else to confirm this. If it's only an issue on XP it's going to be a pretty low priority issue.
Reply with quote
GeneralStonewall
Magician


Joined: 02 Feb 2004
Posts: 364
Location: USA

PostPosted: Thu Jun 17, 2010 3:10 am   
 
I think I might've found the issue using the script debugger. In my personal settings I see this in the trigger that's updating the variables that my gauges are using:
Code:

0.0002 | k    Lanira |  Var "health" changed from "5145" to ""
0.0036 | k    Lanira |  Var "health" changed from "" to "5145"
0.0039 | k    Lanira |  Var "max_health" changed from "5145" to ""
0.0039 | k    Lanira |  Var "max_health" changed from "" to "5145"
0.0039 | k    Lanira |  Var "mana" changed from "5775" to ""
0.0029 | k    Lanira |  Var "mana" changed from "" to "5775"
0.0032 | k    Lanira |  Var "max_mana" changed from "5775" to ""
0.0040 | k    Lanira |  Var "max_mana" changed from "" to "5775"
0.0046 | k    Lanira |  Var "endurance" changed from "24570" to ""
0.0043 | k    Lanira |  Var "endurance" changed from "" to "24570"
0.0041 | k    Lanira |  Var "willpower" changed from "26400" to ""
0.0042 | k    Lanira |  Var "willpower" changed from "" to "26400"


This is the part of the script concerning those variables:

Code:
health = %1
max_health = %2
mana = %3
max_mana = %4
endurance = %5
willpower = %6


I see no reason why those variables are being set to null before being set to those values. If I remember correctly, there shouldn't be any variable change going on at all since the values are exactly the same. So, something weird is going on here.

Here's the compiled code:

Code:
0000   PARAMREF   1
0008   VARASSIGN   health <health>   (class Lanira)   
0032   PARAMREF   2
0040   VARASSIGN   max_health <max_health>   (class Lanira)   
0068   PARAMREF   3
0076   VARASSIGN   mana <mana>   (class Lanira)   
0096   PARAMREF   4
0104   VARASSIGN   max_mana <max_mana>   (class Lanira)   
0128   PARAMREF   5
0136   VARASSIGN   endurance <endurance>   (class Lanira)   
0164   PARAMREF   6
0172   VARASSIGN   willpower <willpower>   (class Lanira)


I'll try to replicate this in a fresh session.

Edit: AHA, only seems to happen when the settings are in a separate package. I'll make a new thread for this, since it doesn't seem to be a gauge issue.
Reply with quote
Display posts from previous:   
Post new topic   Reply to topic     Home » Forums » CMUD Beta Forum All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

© 2009 Zugg Software. Hosted by Wolfpaw.net