Challenge! Can anyone make this db lookup run faster?

Scripts and support for your favorite MUD client.
Gizep
Sojourner
Posts: 150
Joined: Thu Mar 10, 2005 4:34 pm
Location: Menzoberranzan
Contact:

Challenge! Can anyone make this db lookup run faster?

Postby Gizep » Sun Dec 23, 2007 6:05 pm

Code: Select all

#CLASS 0
#ALIAS glister {#T+ Statter;glist}

#ALIAS find {#VARIABLE DbRec {%dbget( %item( %find( %0, Name, Name), 1))} {} "Variables";#VARIABLE CurRec {Not Found} {} "Variables";#ADD CurRec " * ";#ADD CurRec {%0};#ADD CurRec " *";#IF (@DbRec.Name != "") {#VARIABLE CurRec @DbRec.Name {} "Variables";#IF (%trim( @DbRec.Worn) != "" & @DbRec.Worn != 0) {#ADD CurRec " * ";#ADD CurRec %trim( @DbRec.Worn)};#IF (%trim( @DbRec.Aflags) != "" & @DbRec.Aflags != 0) {#ADD CurRec " * ";#ADD CurRec %trim( @DbRec.Aflags)};#IF (%trim( @DbRec.Iflags) != "" & @DbRec.Iflags != 0) {#ADD CurRec " * ";#ADD CurRec %trim( @DbRec.Iflags)};#IF (%trim( @DbRec.Wt) != "" & @DbRec.Wt != 0) {#ADD CurRec " * WT:";#ADD CurRec %trim( @DbRec.Wt)};#IF (%trim( @DbRec.Value) != "" & @DbRec.Value != 0) {#ADD CurRec " * Value:";#ADD CurRec %trim( @DbRec.Value)};#IF (%trim( @DbRec.Pages) != "" & @DbRec.Pages != 0) {#ADD CurRec " * Pages:";#ADD CurRec %trim( @DbRec.Pages)};#IF (%trim( @DbRec.AC) != "" & @DbRec.AC != 0) {#ADD CurRec " * AC:";#ADD CurRec %trim( @DbRec.AC)};#IF (%trim( @DbRec.HP) != "" & @DbRec.HP != 0) {#ADD CurRec " * HP:";#ADD CurRec %trim( @DbRec.HP)};#IF (%trim( @DbRec.Dice) != "" & @DbRec.Dice != 0) {#ADD CurRec " * Dice:";#ADD CurRec %trim( @DbRec.Dice)};#IF (%trim( @DbRec.Hit) != "" & @DbRec.Hit != 0) {#ADD CurRec " * Hit:";#ADD CurRec %trim( @DbRec.Hit)};#IF (%trim( @DbRec.Dam) != "" & @DbRec.Dam != 0) {#ADD CurRec " * Dam:";#ADD CurRec %trim( @DbRec.Dam)};#IF (%trim( @DbRec.Spell) != "" & @DbRec.Spell != 0) {#ADD CurRec " * Spe:";#ADD CurRec %trim( @DbRec.Spell)};#IF (%trim( @DbRec.Breath) != "" & @DbRec.Breath != 0) {#ADD CurRec " * Bre:";#ADD CurRec %trim( @DbRec.Breath)};#IF (%trim( @DbRec.Para) != "" & @DbRec.Para != 0) {#ADD CurRec " * Par:";#ADD CurRec %trim( @DbRec.Para)};#IF (%trim( @DbRec.Petri) != "" & @DbRec.Petri != 0) {#ADD CurRec " * Pet:";#ADD CurRec %trim( @DbRec.Petri)};#IF (%trim( @DbRec.Rod) != "" & @DbRec.Rod != 0) {#ADD CurRec " * Rod:";#ADD CurRec %trim( @DbRec.Rod)};#IF (%trim( @DbRec.Armor) != "" & @DbRec.Armor != 0) {#ADD CurRec " * Armor:";#ADD CurRec %trim( @DbRec.Armor)};#IF (%trim( @DbRec.MR) != "" & @DbRec.MR != 0) {#ADD CurRec " * MR:";#ADD CurRec %trim( @DbRec.MR)};#IF (%trim( @DbRec.Str) != "" & @DbRec.Str != 0) {#ADD CurRec " * Str:";#ADD CurRec %trim( @DbRec.Str)};#IF (%trim( @DbRec.Agi) != "" & @DbRec.Agi != 0) {#ADD CurRec " * Agi:";#ADD CurRec %trim( @DbRec.Agi)};#IF (%trim( @DbRec.Dex) != "" & @DbRec.Dex != 0) {#ADD CurRec " * Dex:";#ADD CurRec %trim( @DbRec.Dex)};#IF (%trim( @DbRec.Con) != "" & @DbRec.Con != 0) {#ADD CurRec " * Con:";#ADD CurRec %trim( @DbRec.Con)};#IF (%trim( @DbRec.Pow) != "" & @DbRec.Pow != 0) {#ADD CurRec " * Pow:";#ADD CurRec %trim( @DbRec.Pow)};#IF (%trim( @DbRec.Int) != "" & @DbRec.Int != 0) {#ADD CurRec " * Int:";#ADD CurRec %trim( @DbRec.Int)};#IF (%trim( @DbRec.Wis) != "" & @DbRec.Wis != 0) {#ADD CurRec " * Wis:";#ADD CurRec %trim( @DbRec.Wis)};#IF (%trim( @DbRec.Cha) != "" & @DbRec.Cha != 0) {#ADD CurRec " * Cha:";#ADD CurRec %trim( @DbRec.Cha)};#IF (%trim( @DbRec.Maxstr) != "" & @DbRec.Maxstr != 0) {#ADD CurRec " * Maxstr:";#ADD CurRec %trim( @DbRec.Maxstr)};#IF (%trim( @DbRec.Maxagi) != "" & @DbRec.Maxagi != 0) {#ADD CurRec " * Maxagi:";#ADD CurRec %trim( @DbRec.Maxagi)};#IF (%trim( @DbRec.Maxdex) != "" & @DbRec.Maxdex != 0) {#ADD CurRec " * Maxdex:";#ADD CurRec %trim( @DbRec.Maxdex)};#IF (%trim( @DbRec.Maxcon) != "" & @DbRec.Maxcon != 0) {#ADD CurRec " * Maxcon:";#ADD CurRec %trim( @DbRec.Maxcon)};#IF (%trim( @DbRec.Maxpow) != "" & @DbRec.Maxpow != 0) {#ADD CurRec " * Maxpow:";#ADD CurRec %trim( @DbRec.Maxpow)};#IF (%trim( @DbRec.Maxint) != "" & @DbRec.Maxint != 0) {#ADD CurRec " * Maxint:";#ADD CurRec %trim( @DbRec.Maxint)};#IF (%trim( @DbRec.Maxwis) != "" & @DbRec.Maxwis != 0) {#ADD CurRec " * Maxwis:";#ADD CurRec %trim( @DbRec.Maxwis)};#IF (%trim( @DbRec.Maxcha) != "" & @DbRec.Maxcha != 0) {#ADD CurRec " * Maxcha:";#ADD CurRec %trim( @DbRec.Maxcha)};#IF (%trim( @DbRec.Luck) != "" & @DbRec.Luck != 0) {#ADD CurRec " * Luck:";#ADD CurRec %trim( @DbRec.Luck)};#IF (%trim( @DbRec.Mana) != "" & @DbRec.Mana != 0) {#ADD CurRec " * Mana:";#ADD CurRec %trim( @DbRec.Mana)};#IF (%trim( @DbRec.Move) != "" & @DbRec.Move != 0) {#ADD CurRec " * Moves:";#ADD CurRec %trim( @DbRec.Move)};#IF (%trim( @DbRec.Quality) != "" & @DbRec.Quality != 0) {#ADD CurRec " * Quality:";#ADD CurRec %trim( @DbRec.Quality)};#IF (%trim( @DbRec.Stutter) != "" & @DbRec.Stutter != 0) {#ADD CurRec " * Stutter:";#ADD CurRec %trim( @DbRec.Stutter)};#IF (%trim( @DbRec.Min) != "" & @DbRec.Min != 0) {#ADD CurRec " * Min:";#ADD CurRec %trim( @DbRec.Min)};#IF (%trim( @DbRec.Poison) != "" & @DbRec.Poison != 0) {#ADD CurRec " * Poison:";#ADD CurRec %trim( @DbRec.Poison)};#IF (%trim( @DbRec.Level) != "" & @DbRec.Level != 0) {#ADD CurRec " * Level:";#ADD CurRec %trim( @DbRec.Level)};#IF (%trim( @DbRec.Applications) != "" & @DbRec.Applications != 0) {#ADD CurRec " * Applications:";#ADD CurRec %trim( @DbRec.Applications)};#IF (%trim( @DbRec.Zone) != "" & @DbRec.Zone != 0) {#ADD CurRec " * ";#ADD CurRec %trim( @DbRec.Zone)};#IF (%trim( @DbRec.Date) != "" & @DbRec.Date != 0) {#ADD CurRec " * ";#ADD CurRec %trim( @DbRec.Date)};#IF (%trim( @DbRec.Charge) != "" & @DbRec.Charge != 0) {#ADD CurRec " * Charges:";#ADD CurRec %trim( @DbRec.Charge)};#IF (%trim( @DbRec.Maxcharge) != "" & @DbRec.Maxcharge != 0) {#ADD CurRec " * Max Charges:";#ADD CurRec %trim( @DbRec.Maxcharge)};#IF (%trim( @DbRec.Wlevel) != "" & @DbRec.Wlevel != 0) {#ADD CurRec " * WLevel:";#ADD CurRec %trim( @DbRec.Wlevel)};#IF (%trim( @DbRec.Effects) != "" & @DbRec.Effects != 0) {#ADD CurRec " * ";#ADD CurRec %trim( @DbRec.Effects)};#IF (%trim( @DbRec.Crit) != "" & @DbRec.Crit != 0) {#ADD CurRec " * ";#ADD CurRec %trim( @DbRec.Crit)};#IF (%trim( @DbRec.Ceffects) != "" & @DbRec.Ceffects != 0) {#ADD CurRec " * ";#ADD CurRec %trim( @DbRec.Ceffects)};#IF (%trim( @DbRec.Bonus) != "" & @DbRec.Bonus != 0) {#ADD CurRec " * Bonus";#ADD CurRec %trim( @DbRec.Bonus)};#IF (%trim( @DbRec.Age) != "" & @DbRec.Age != 0) {#ADD CurRec " * Age:";#ADD CurRec %trim( @DbRec.Age)};#IF (%trim( @DbRec.Weight) != "" & @DbRec.Weight != 0) {#ADD CurRec " * Weight:";#ADD CurRec %trim( @DbRec.Weight)};#IF (%trim( @DbRec.Height) != "" & @DbRec.Height != 0) {#ADD CurRec " * Height:";#ADD CurRec %trim( @DbRec.Height)};#IF (%trim( @DbRec.Wspell) != "" & @DbRec.Wspell != 0) {#ADD CurRec " * ";#ADD CurRec %trim( @DbRec.Wspell)};#IF (%trim( @DbRec.Wspelll) != "" & @DbRec.Wspelll != 0) {#ADD CurRec " * ";#ADD CurRec %trim( @DbRec.Wspelll)};#IF (%trim( @DbRec.Wspellll) != "" & @DbRec.Wspellll != 0) {#ADD CurRec " * ";#ADD CurRec %trim( @DbRec.Wspellll)};#IF (%trim( @DbRec.Wspelllll) != "" & @DbRec.Wspelllll != 0) {#ADD CurRec " * ";#ADD CurRec %trim( @DbRec.Wspelllll)};#IF (%trim( @DbRec.Wspellllll) != "" & @DbRec.Wspellllll != 0) {#ADD CurRec " * ";#ADD CurRec %trim( @DbRec.Wspellllll)};#IF (%trim( @DbRec.NOID) != "" & @DbRec.NOID != 0) {#ADD CurRec " * NOID:";#ADD CurRec %trim( @DbRec.NOID)};#IF (%trim( @DbRec.Holds) != "" & @DbRec.Holds != 0) {#ADD CurRec " * Holds:";#ADD CurRec %trim( @DbRec.Holds)};#IF (%trim( @DbRec.Psp) != "" & @DbRec.Psp != 0) {#ADD CurRec " * Psp:";#ADD CurRec %trim( @DbRec.Psp)};#IF (%trim( @DbRec.Wtwt) != "" & @DbRec.Wtwt != 0) {#ADD CurRec " * Wtwt:";#ADD CurRec %trim( @DbRec.Wtwt)};#IF (%trim( @DbRec.Karma) != "" & @DbRec.Karma != 0) {#ADD CurRec " * Karma:";#ADD CurRec %trim( @DbRec.Karma)}};#ADD Return " ";#ADD Return @CurRec;#EXECUTE @Return;#VARIABLE Return {~#SAY} {} "Variables"}

#CLASS {Standard|GStat} {disable}
#TRIGGER {^<} {#T- GStat;#FORALL @GroupItems {#VARIABLE Return {gsa} {} "Variables";find %i};#VARIABLE GroupItems {} {} "Variables"} "" {nocr|prompt}
#TRIGGER {^ ({*})$} {#IF (%pos( "(", %trim( %1)) != 0) {#ADDITEM GroupItems {%left( %trim( %1), %eval( %pos( "(", %trim( %1))-1))}} {#ADDITEM GroupItems {%trim( %1)}}}
#TRIGGER {^{%w} ({*})$} {#IF (%pos( "(", %trim( %1)) != 0) {#ADDITEM GroupItems {%left( %trim( %1), %eval( %pos( "(", %trim( %1))-1))}} {#ADDITEM GroupItems {%trim( %1)}}}
#CLASS 0

#CLASS {Standard|Lookup} {enable}
#TRIGGER {ASSOC{*}~'stat ({*})~'$} {#VARIABLE Return {acc} {_nodef} "Variables";find %1}
#TRIGGER {({%w}) tells you ~'stat ({*})~'$} {#VARIABLE Return {tell} {_nodef} "Variables";#ADD Return " ";#ADD Return %1;find %2}
#TRIGGER {group~-{*}~'stat ({*})~'$} {#VARIABLE Return {gsa} {_nodef} "Variables";find %1}
#CLASS 0

#CLASS {Standard|Stand}
#ALIAS gsa {#IF (@Casting == 1) {#ADDITEM Missed {~gsa %0}} {~gsa %0}}
#ALIAS acc {#IF (@Casting == 1) {#ADDITEM Missed {~acc %0}} {~acc %0}}
#ALIAS tell {#IF (@Casting == 1) {#ADDITEM Missed {~tell %0}} {~tell %0}}

#TRIGGER {You start {casting|chanting}} {#VARIABLE Casting {1} {0} "Variables";#MATH SpellsUsed {@SpellsUsed+1};#ADDKEY Spells {@Spell} {%eval( %db( @Spells, @Spell)-1)};#VARIABLE Missed {} {} "Variables"}
#TRIGGER {You complete your spell.} {#VARIABLE Casting {0} {0} "Variables";#IF (@NeedVit == 2) {#VARIABLE NeedVit {0} {0} "Variables"};#IF (@Missed != "") {#FORALL @Missed {#EXECUTE %i}};#VARIABLE Missed {} {} "Variables"}

#TRIGGER {You abort your prayer before it's done!} {#VARIABLE Casting {0} {0} "Variables";#IF (@Missed != "") {#FORALL @Missed {#EXECUTE %i}};#VARIABLE Missed {} {} "Variables"}

#CLASS {Standard|GStat} {disable}
#TRIGGER {^<} {#T- GStat;#FORALL @GroupItems {#VARIABLE Return {gsa} {} "Variables";find %i};#VARIABLE GroupItems {} {} "Variables"} "" {nocr|prompt}
#TRIGGER {^ ({*})$} {#IF (%pos( "(", %trim( %1)) != 0) {#ADDITEM GroupItems {%left( %trim( %1), %eval( %pos( "(", %trim( %1))-1))}} {#ADDITEM GroupItems {%trim( %1)}}}
#TRIGGER {^{%w} ({*})$} {#IF (%pos( "(", %trim( %1)) != 0) {#ADDITEM GroupItems {%left( %trim( %1), %eval( %pos( "(", %trim( %1))-1))}} {#ADDITEM GroupItems {%trim( %1)}}}
#CLASS 0
#CLASS {Standard|Statter} {disable}
#TRIGGER {The following items exist in the group cache} {#VARIABLE GroupItems {} {} "Variables";#T+ GStat}
#CLASS 0


Mighta got it a lil mixxed up pasting it, but i dont think i missed anything...
As long as we live in this world we are bound to encounter problems. If, at such times, we lose hope and become discouraged, we diminish our ability to face difficulties. If, on the other hand, we remember that it is not just ourselves but everyone who has to undergo suffering, this more realistic perspective will increase our determination and capacity to overcome troubles.
-- The Dali Lama

Return to “MUD Client Help”

Who is online

Users browsing this forum: No registered users and 10 guests