The first time, just as I typed a command. As in I hit enter, the text disappeared from the input box, but then the connection failed, the client crashed and when I logged back in and checked the 'last ooc' command to see if the text was sent at all, it wasn't in the muds history for the channel. The second time though I had just walked away to get something from the kitchen and it crashed 'before' I returned to the keyboard.
Note: You have made changes to how some things with calls to scripts work too, and I have 1) a timer that updates data on the info bar every two seconds or so, based on data from the prompt, showing my current exp, 2) the coloring stuff for my current HP/CP and something that also updates every second that tracks which spells are active. That last one is custom made and not available from Magnum's site (or at least I don't think I ever provided it for anyone else). The code for that is here:
<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE muclient>
<!-- Saved on Sunday, September 08, 2002, 1:33 AM -->
<!-- MuClient version 3.26 -->
<!-- Plugin "Spell_Tracker" generated by Plugin Wizard -->
<muclient>
<plugin
name="Spell_Tracker"
author="kagehi"
id="b5a12674355d40240455d8a1"
language="VBscript"
purpose="Displays a line every 10 seconds that shows the status of spells."
save_state="y"
date_written="2002-09-08 01:26:57"
requires="3.25"
version="1.0"
>
</plugin>
<!-- Get our standard constants -->
<include name="constants.vbs"/>
<!-- Up Triggers -->
<triggers>
<trigger
enabled="y"
match="^Godspeed\."
name="Godspeed_Up"
regexp="y"
keep_evaluating="y"
script="ResetTmr"
sequence="98"
>
</trigger>
<trigger
enabled="y"
match="^Your mind is blessed\."
name="MB_Up"
regexp="y"
keep_evaluating="y"
script="ResetTmr"
sequence="98"
>
</trigger>
<trigger
enabled="y"
match="^Your prayer is answered and you sense God's hand surrounding you, creating"
name="Godshield_Up"
regexp="y"
keep_evaluating="y"
script="ResetTmr"
sequence="98"
>
</trigger>
<trigger
back_colour="8"
enabled="y"
match="^You cast aura of resistance upon yourself and feel immune against stunning"
match_back_colour="y"
match_text_colour="y"
name="AoR_Up"
regexp="y"
keep_evaluating="y"
script="ResetTmr"
sequence="98"
text_colour="14"
>
</trigger>
<trigger
enabled="y"
match="^Your health is blessed\."
name="HB_Up"
regexp="y"
keep_evaluating="y"
script="ResetTmr"
sequence="98"
>
</trigger>
<trigger
enabled="y"
match="^You feel older and wiser all of a sudden\!"
name="WofW_Up"
regexp="y"
keep_evaluating="y"
script="ResetTmr"
sequence="98"
>
</trigger>
<trigger
enabled="y"
match="^from your own soul\."
name="Soullight_Up"
regexp="y"
keep_evaluating="y"
script="ResetTmr"
sequence="98"
>
</trigger>
<trigger
enabled="y"
match="^Your internal body clock feels.*"
name="Clock_Up"
keep_evaluating="y"
regexp="y"
script="ResetTmr"
sequence="98"
>
</trigger>
<trigger
enabled="y"
match="^You cover .* with your punishment\."
name="Pn_Cast"
keep_evaluating="y"
regexp="y"
script="ResetTmr"
sequence="98"
>
</trigger>
<trigger
enabled="y"
match="^You feel wiser and more intelligent\."
name="Prismatic_Aura_Up"
keep_evaluating="y"
regexp="y"
script="ResetTmr"
sequence="98"
>
</trigger>
<trigger
enabled="y"
match="^strength flood your body\."
name="Fortitude_Up"
keep_evaluating="y"
regexp="y"
script="ResetTmr"
sequence="98"
>
</trigger>
<trigger
enabled="y"
match="^\w+ allows you to guard (him|her)\."
name="SG_Up"
keep_evaluating="y"
regexp="y"
script="ResetTmr"
sequence="98"
>
</trigger>
<!-- <trigger
enabled="y"
match="^grow to immense proportions\!"
name="Empower_Up"
keep_evaluating="y"
regexp="y"
script="ResetTmr"
sequence="98"
>
</trigger> -->
<!-- Down Triggers -->
<trigger
enabled="y"
match="^Your blessing of Godspeed is lifted from your body."
name="Godspeed"
regexp="y"
keep_evaluating="y"
script="IcoDrops"
sequence="99"
>
</trigger>
<trigger
enabled="y"
match="^You no longer have a blessed mind.*"
name="Mind_Bless"
regexp="y"
keep_evaluating="y"
script="IcoDrops"
sequence="99"
>
</trigger>
<trigger
enabled="y"
match="^Your inspiration fades."
name="Inspiration"
regexp="y"
keep_evaluating="y"
script="IcoDrops"
sequence="99"
>
</trigger>
<trigger
enabled="y"
match="^You no longer have a blessed health.*"
name="Health_Bless"
regexp="y"
keep_evaluating="y"
script="IcoDrops"
sequence="99"
>
</trigger>
<trigger
enabled="y"
match="^You feel that your immunity again(ts|st) stuns is fading away\."
name="AoR"
regexp="y"
keep_evaluating="y"
script="IcoDrops"
sequence="99"
>
</trigger>
<trigger
enabled="y"
match="^Your body clock is back.*"
name="Body_Clock"
regexp="y"
keep_evaluating="y"
script="IcoDrops"
sequence="99"
>
</trigger>
<trigger
enabled="y"
match="^You do not feel old and wise anymore\.$"
name="Word_of_Wisdom"
regexp="y"
keep_evaluating="y"
script="IcoDrops"
sequence="99"
>
</trigger>
<trigger
enabled="y"
match="^Your Godshield slowly loses.*"
name="Godshield"
regexp="y"
keep_evaluating="y"
script="IcoDrops"
sequence="99"
>
</trigger>
<trigger
enabled="y"
match="^Your fortification fades.*"
name="Fortification"
regexp="y"
keep_evaluating="y"
script="IcoDrops"
sequence="99"
>
</trigger>
<trigger
enabled="y"
match="^Your soul light slowly ebbs away\."
name="Soullight"
regexp="y"
keep_evaluating="y"
script="IcoDrops"
sequence="99"
>
</trigger>
<trigger
enabled="y"
match="^Your prismatic aura dissipates\."
name="Prismatic_Aura"
regexp="y"
keep_evaluating="y"
script="IcoDrops"
sequence="99"
>
</trigger>
<trigger
enabled="y"
match="^You feel that the effects of your fortitude have faded away\."
name="Fortitude"
regexp="y"
keep_evaluating="y"
script="IcoDrops"
sequence="99"
>
</trigger>
<trigger
enabled="y"
match="^You are no longer guarding \w+\."
name="Guardian"
regexp="y"
keep_evaluating="y"
script="IcoDrops"
sequence="99"
>
</trigger>
<!-- <trigger
enabled="y"
match="^You feel your empowerment fading\."
name="Empowerment"
regexp="y"
keep_evaluating="y"
script="IcoDrops"
sequence="99"
>
</trigger> -->
<!-- General Triggers -->
<trigger
enabled="y"
match="^Your stats are: Str .*, Dex .*, Con .*, Wis (.*), Int .*\."
name="CatchStat"
keep_evaluating="y"
regexp="y"
script="MakeAdj"
sequence="98"
>
</trigger>
<trigger
enabled="y"
match="^You have died\."
name="DeathReset"
keep_evaluating="y"
regexp="y"
script="DeathReset"
sequence="98"
>
</trigger>
</triggers>
<!-- Timers -->
<timers>
<timer name="IconTimer" script="IconDec" enabled="y" second="2" active_closed="y">
</timer>
<timer name="ShowThem" script="ShowThem" enabled="y" second="10" active_closed="y">
</timer>
</timers>
<!-- Aliases -->
<aliases>
<alias
name="IconToggle"
script="IconToggle"
match="icons *"
enabled="y"
>
</alias>
</aliases>
<!-- Script -->
<script>
<![CDATA[
sub OnPluginInstall
dim Icnm, Ico, Tms, FTms, Colors, IcDrops,Adj,Ada
' Up indicators, must match the 'name' of the up trigger.
Icnm = "WofW_Up,HB_Up,MB_Up,Fortitude_Up,Clock_Up,Godspeed_Up,Godshield_Up,AoR_Up,Inpiration_Up,SG_Up"
Icnm = Icnm + ",Soullight_Up,Pn_Cast,Prismatic_Aura_Up"
' Down indicators, must match the 'name' of the down trigger.
IcDrops = "Word_of_Wisdom,Health_Bless,Mind_Bless,Fortitude,Body_Clock,Godspeed"
IcDrops = IcDrops & ",Godshield,AoR,Inspiration,Guardian,Soullight,NULL,Prismatic_Aura"
'Symbols that will be used in the display.
Ico = "Ww,Hb,Mb,Ft,Bc,Sp,Sh,Ar,In,Sg,Sl,Pn,()"
'Start status, -21 means it starts disabled. Higher than 0 means this is a casting delay (i.e. time until usable again).
Tms = "-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,950,-21" 'Start Disabled.
'Base times. This is the minimum time a spell is expected to last.
FTms = "1450,1750,1790,3020,580,680,1140,900,1,1800,1800,950,1200"
'This will hold the 'Adjusted' times for spells effected by a stat.
Adj = FTms
'Adjustment amount. This is how many seconds to add 'per' stat point.
Ada = "0,3,3,0,0,0,0,0,0,0,0,0,0"
'We use preset colors here for clearity, instead of calcing them on the fly.
Colors = "#007ffe,#00b2fe,#00e9fe,#00fee0,#00feae" ' Colors by 5% (Blues)
Colors = Colors & ",#00fe77,#00fe44,#00fe11,#26fe00,#59fe00" '(Greens)
Colors = Colors & ",#90fe00,#c3fe00,#fafe00,#fecf00,#fe9d00" '(Yellow-Orange)
Colors = Colors & ",#fe6600,#fe3300,#fe0000,#be4545,#881818" '(Red)
world.setvariable "Icnm",Icnm
world.setvariable "Ico",Ico
dim Test,Test2
Test = split(world.getvariable("Tms"),",")
Test2 = split(Tms,",")
if world.getvariable("Tms") = "" or ubound(Test2) <> ubound(Test) then
world.setvariable "Tms",Tms
world.setvariable "OTms",Tms
world.setvariable "Adj",Adj
end if
if world.getvariable("FTms") <> FTms then
world.setvariable "Adj",Adj
world.setvariable "FTms",Ftms
end if
world.setvariable "Colors",Colors
world.setvariable "IcDrops",IcDrops
world.setvariable "Ada",Ada
end sub
function OnPluginCommand (sText)
world.setvariable "LCTime", Now
OnPluginCommand = vbTrue
end function
sub DeathReset (tname, output, wilds)
call ResetIcons (" ")
end sub
sub ResetIcons (Fill)
dim Tms, Ico, FTms
Tms = split(world.getvariable("Tms"),",")
Ico = split(world.getvariable("Ico"),",")
FTms = split(world.getvariable("FTms"),",")
dim count
for count = 0 to ubound(Tms)
if Ico(count) = "Pn" then
Tms(count) = FTms(count)
else
Tms(count) = -21
end if
next
world.setvariable "Tms", join(Tms,",")
world.note "Icon counters reset!"
end sub
sub IconToggle (name, output, wildcards)
dim Flag
Flag = ucase(wildcards(1))
if Flag = "RESET" then
dim Tms, Ico, FTms
Tms = split(world.getvariable("Tms"),",")
Ico = split(world.getvariable("Ico"),",")
FTms = split(world.getvariable("FTms"),",")
dim count
for count = 0 to ubound(Tms)
if Ico(count) = "Pn" then
Tms(count) = FTms(count)
else
Tms(count) = -21
end if
next
world.setvariable "Tms", join(Tms,",")
world.note "Icon counters reset!"
end if
if Flag = "ON" then
world.enabletimer "ShowThem",1
world.note "Icons will now display!"
end if
if Flag = "OFF" then
world.enabletimer "ShowThem",0
world.note "Icons Off!"
end if
end sub
sub IconDec (name)
dim Adj 'Adjusted times.
Adj = split(world.getvariable("Adj"),",")
dim Ico ' List of icons to display.
dim Tms ' Current times.
Ico = split(world.getvariable("Ico"),",")
Tms = split(world.getvariable("Tms"),",")
dim count
for count = 0 to ubound(Ico)
Tms(count) = int(Tms(count)) + 2
if int(Tms(count)) >= Adj(count) then
Tms(count) = Adj(count)
end if
if Tms(count) < 0 then 'Make sure it stays gray.
Tms(count) = -21
end if
next
world.setvariable "Tms", join(Tms,",")
end sub
sub ShowThem (name)
if abs(DateDiff("n",world.getvariable("LCTime"),Now)) < 5 then
call DisplayIt
end if
end sub
sub ResetTmr (name, output, wildcards)
dim Icnm ' Names.
dim Tms ' Current times.
dim Ada
Ada = split(world.getvariable("Ada"),",")
Icnm = split(world.getvariable("Icnm"),",")
Tms = split(world.getvariable("Tms"),",")
dim count,test
test = 0
for count = 0 to ubound(Icnm)
if Icnm(count) = name then
Tms(count) = 0
if ada(count) > 0 then
test = 1
end if
end if
next
world.setvariable "Tms", join(Tms,",")
if test then
world.enabletrigger "CatchStat", 1
world.send "stats"
end if
end sub
sub IcoDrops (name, output, wildcards)
dim IcDrops
dim Tms ' Current times.
IcDrops = split(world.getvariable("IcDrops"),",")
Tms = split(world.getvariable("Tms"),",")
dim count
for count = 0 to ubound(IcDrops)
if IcDrops(count) = name then
Tms(count) = -21
end if
next
world.setvariable "Tms", join(Tms,",")
call DisplayIt
end sub
sub DisplayIt ()
dim Adj
dim Tms ' Current times.
dim Ico ' List of icons to display.
dim OTms ' Original times at start.
dim Colors
Adj = split(world.getvariable("Adj"),",")
Colors = split(world.getvariable("Colors"),",")
Tms = split(world.getvariable("Tms"),",")
Otms = split(world.getvariable("OTms"),",")
Ico = split(world.getvariable("Ico"),",")
world.colourtell "#FFFFFF","#00","["
dim count
for count = 0 to ubound(Ico)
if Tms(count) < 0 then
world.colourtell "#808080","#00",Ico(count)
else
dim cl,Ft
Ft = Adj(count)
cl = Tms(count) / Ft
cl = int(cl * 19)
if cl > 19 then
cl = 19
end if
if OTms(count) > 0 then
cl = 19 - cl
end if
world.colourtell Colors(cl),"#00",Ico(count)
end if
if count < ubound(Ico) then
world.colourtell "#FFFFFF","#00","-"
end if
next
world.colournote "#FFFFFF","#00","]"
end sub
sub MakeAdj (name, output, wildcards)
dim Adj
dim FTms
dim Ada
Adj = split(world.getvariable("Adj"),",")
Ftms = split(world.getvariable("FTms"),",")
Ada = split(world.getvariable("Ada"),",")
world.enabletrigger "CatchStat", 0
dim ABase, Temp
ABase = 133
Temp = int(wildcards(1))
Temp = Temp - ABase
dim count,ttime,tad
for count = 0 to ubound(Adj)
ttime = Ftms(count)
tad = Ada(count)
Adj(count) = ttime + (Temp * tad)
next
world.setvariable "Adj", join(Adj,",")
call DisplayIt
end sub
]]>
</script>
</muclient>
I know for a fact that the HP/CP coloring system fired just prior to the crash. The one above **should** have continued to fire the entire time I was away from the keyboard, but the last like was the HP/CP one, *not* the spell tracker. That could mean something is going seriously wrong with the spelltracker in this version that didn't happen in prior versions. It certainly doesn't seem to be consistently something caused by typing or by reacting to the muds text. But then, I played for another 2 hours 'after' the crash, but avoiding the use of ctrl-x and ctrl-c to quickly remove and replace commands. I normally do that a lot. Such as typing a long message to a channel, seeing a spell drop, so ctrl-x-ing the message, so I can recast the spell, then ctrl-c-ing the message back, so I can finish typing it.
At this point I have no clue which of these things might be doing it. But the only changes you have made recently are to handling script result codes and triggers. And the triggers in these cases don't even use custom colors, but *build* the lines they display themselves... That leaves either a new bug in the clipboard/input window code or some obscure and intermittent issue with the code you changed for result codes, which worked for everything except Lua before, but may ironically now be failing in on cases for VBScript instead. But that is purely a guess, since nothing else makes much sense to me as a possibility. |