Mar 212009
Achaea MUD ZMUD script for recording various statics about yourself.
#CLASS {Triggers|Stats} #VAR SleepStates {You are badly in need of sleep.|You are feeling quite tired.|You are feeling fairly tired.|You are slightly tired.|You are in no need of sleep.|You are fully rested.} #VAR FoodStates {and you are starving to death.|and you are weak from hunger.|and you are feeling a bit peckish.|and you are not hungry.|and you are reasonably full.|and you are utterly satiated.} #VAR DefenseList {Diamond-hard skin protects you.DiamondSkinYour water weird allows you to walk on water.WaterWierdYou are feeling quite selfish.SelfishnessYou have accepted a blessing for aid in times of need.BlessingMagically supple granite coats your body.StoneskinYou are surrounded by a non-conducting chargeshield.ChargeShieldYou are surrounded by 1 reflection of yourself.ReflectionYour mind has been touched by Thoth, the Deathgod.DeathSightYou are blind.BlindYou are surrounded by a nearly invisible magical shield.Shield} #VAR _RunOnPrompt {} {} #ONINPUT "TrigScore" {^score$} { #ADDKEY Mud ResetTrigger TrigInvPack #T+ TrigNewPrompt } #COND {^(%w)*~((%w) (%w)~)$} { #ADDKEY Personal Name %1 #ADDKEY Personal Sex %2 #ADDKEY Personal Race %3 } #COND {^You are level%s(%d)%s~((%w)~)%sand%s(%d)~%%sof the way to the next level.$} { #ADDKEY Personal Level %1 #ADDKEY Personal LevelName %2 #ADDKEY Personal LevelProgress %3 } #COND {^Health:%s(%d)/(%d)%sMana:%s(%d)/(%d)$} { #ADDKEY Personal Health %1 #ADDKEY Personal HealthMax %2 #ADDKEY Personal Mana %3 #ADDKEY Personal ManaMax %4 } #COND {^Endurance:%s(%d)/(%d)%sWillpower:%s(%d)/(%d)$} { #ADDKEY Personal Endurance %1 #ADDKEY Personal EnduranceMax %2 #ADDKEY Personal Willpower %3 #ADDKEY Personal WillpowerMax %4 } #COND {^Strength:%s(%d)%sDexterity:%s(%d)%sConstitution:%s(%d)%sIntelligence:%s(%d)$} { #ADDKEY Personal Strength %1 #ADDKEY Personal Dexterity %2 #ADDKEY Personal Constitution %3 #ADDKEY Personal Intelligence %4 } #COND {^You are ranked (%d)%w in Achaea.$} {#ADDKEY Personal Rank %1} #ONINPUT "TrigRift" {^info rift$} { Rift = "" #ADDKEY Mud ResetTrigger TrigRift #T+ TrigNewPrompt } #COND {^Glancing into the Rift, you see:$} {#TEMP {^$} {#STATE TrigRift 0}} #COND {^~[(*)~](*)} {#ADDKEY Rift %trim( %2) %number( %1)} #COND {^~[(*)~](*)~[(*)~](*)} { #ADDKEY Rift %trim( %2) %number( %1) #ADDKEY Rift %trim( %4) %number( %3) } {reparse} #COND {^~[(*)~](*)~[(*)~](*)~[(*)~](*)} { #ADDKEY Rift %trim( %2) %number( %1) #ADDKEY Rift %trim( %4) %number( %3) #ADDKEY Rift %trim( %6) %number( %5) #STATE TrigRift 2 } {reparse} #ONINPUT "TrigStat" {^stat$} { #ADDKEY Mud ResetTrigger TrigStat #T+ TrigNewPrompt } #COND {^*({@FoodStates})$} {#ADDKEY Personal FoodLevel %ismember( %1, @FoodStates)} #COND {^({@SleepStates})$} {#ADDKEY Personal SleepLevel %ismember( %1, @SleepStates)} #COND {^You have%s(%d)%sLesso[ns],%s(%d)%sCredi[ts],%s(%d)%sBound Credi[ts].$} { #ADDKEY Personal Lessons %1 #ADDKEY Personal Credits %2 #ADDKEY Personal BoundCredits %3 } #TRIGGER "TrigWielding" {^{You are wielding:|You aren't wielding anything in either hand.}$} { @InvWield = "" #TEMP {^$} { #STATE TrigWielding 0 #T- TrigWielding } } "" {disable} #COND {^%s(%w%d):%s(*)$} {#ADDKEY InvWield {%1} {%2}} {looplines|param=10|disable} #ONINPUT {^ii$} { #T+ TrigWielding #T+ TrigHolding #T+ TrigWearing #ADDKEY Mud ResetTrigger TrigWearing #T+ TrigNewPrompt } #TRIGGER "TrigHolding" {^{You are holding:|You aren't holding anything.}$} { #VAR InvHolding "" _nodef #TEMP {^$} { #STATE TrigHolding 0 #T- TrigHolding } _debug Hit } "" {disable} #COND {^%s(%w%d)%s(*)$} {#ADDKEY InvHolding {%1} {%2}} {looplines|param=99|disable} #TRIGGER "TrigWearing" {^{You are wearing:|You aren't wearing anything.}$} { @InvWearing = "" #TEMP {^$} { #STATE TrigWearing 0 #T- TrigWearing } } "" {disable} #COND {^%s(%w%d)%s(*)$} {#ADDKEY InvWearing {%1} {%2}} {looplines|param=99|disable} #TRIGGER "TrigNewPrompt" (@Mud.PromptWaiting) { #T- TrigNewPrompt #STATE @Mud.ResetTrigger 0 #IF (not %null( @_RunOnPrompt)) { #EXEC @_RunOnPrompt _RunOnPrompt = "" } } "" {disable} #ONINPUT "TrigDef" {^def$} { #LOOPDB @Defenses {#ADDKEY Defenses %key 0} #TEMP {^You are protected by %x defence[s.]$} {#STATE TrigDef 0} } #COND {^$} {} #COND {^({@DefenseList})$} {#ADDKEY Defenses %db( @DefenseList, %1) 1} {looplines|param=99} #CLASS 0 #CLASS {Triggers|Stats|Sleep} #TRIGGER {^You open your eyes and stretch languidly, feeling deliciously well-rested.$} { #EXEC _SendCommandOnPrompt "stand" #ADDKEY Personal Sleeping 0 #ADDKEY Personal SleepLevel 6 } #TRIGGER {^Your exhausted mind can stay awake no longer, and you fall into a deep sleep.$} { #ADDKEY Personal SleepLevel 1 #ADDKEY Personal Sleeping 1 #STOP } #TRIGGER {^You close your eyes, curl up in a ball, and fall asleep.$} {#ADDKEY Personal Sleeping 1} #TRIGGER {^You struggle to stay awake as your eyelids shut repeatedly of their own accord.$} {#ADDKEY Personal SleepLevel 1} #TRIGGER {^You are asleep and can do nothing. WAKE will attempt to wake you.$} {#ADDKEY Personal Sleeping 1} #ONINPUT "TrigSleep" {^sleep$} {} #TRIGGER {^You feel your eyelids drooping; a sure sign that you need sleep.$} {#ADDKEY Personal SleepLevel 2} #TRIGGER {^You open your eyes and yawn mightily.$} { #EXEC _SendCommandOnPrompt "stand" #ADDKEY Personal Sleeping 0 } #TRIGGER {^The first faint feelings of exhaustion prick at your consciousness.$} {#ADDKEY Personal SleepLevel 4} #TRIGGER {^You yawn suddenly and mightily.$} {#ADDKEY Personal SleepLevel 3} #CLASS 0 #CLASS {Triggers|Stats|Food} #TRIGGER {^Your legs collapse from under you and consciousness leaves you as you pass out from extreme hunger.$} {#ADDKEY Personal FoodLevel 1} #TRIGGER {^Your mental equilibrium is disturbed by overpowering thoughts of food.$} { #ADDKEY Personal FoodLevel 1 #ADDKEY Personal EQ 0 } #TRIGGER {^Your stomach notifies you that it is beginning to feel hungry. Perhaps you should find yourself some food.$} {#ADDKEY Personal FoodLevel 2} #CLASS 0 #CLASS {Triggers|Stats|EQBal} #TRIGGER {^You have recovered balance on all limbs.$} {#ADDKEY Personal Balance 1} #TRIGGER {^You have recovered equilibrium.$} {#ADDKEY Personal EQ 1} #TRIGGER {^You must regain balance first.$} { #COLOR Bright,Red #ADDKEY Personal Balance 0 #NODIR } #TRIGGER {^You must regain equilibrium first.$} { #COLOR bright,red #ADDKEY Personal EQ 0 } #TRIGGER {^You are recovering equilibrium and cannot move yet.$} { #COLOR Bright,Red #NODIR } #TRIGGER "TrigSalve" {^You may apply another salve to yourself.$} {#ADDKEY Personal Salve 1} #TRIGGER {^You may eat another plant.$} {#ADDKEY Personal Eat 1} #TRIGGER {^You messily spread the salve over your body, to no effect.$} {#ADDKEY Personal Salve 1} #CLASS 0 #CLASS {Triggers|Stats|HealthMana} #TRIGGER {^The elixir heals and soothes you.$} {#ADDKEY Personal Elixir 0} #TRIGGER {^You cease your meditation having achieved full will and mana.$} {#ADDKEY Personal Meditating 0} #TRIGGER {^You close your eyes, bow your head, and empty your mind of all thought.$} {#ADDKEY Personal Meditating 1} #TRIGGER {^You may drink another health or mana elixir.$} {#ADDKEY Personal Elixir 1} #TRIGGER {^You snap your head up as you break your meditation.$} {#ADDKEY Personal Meditating 0} #TRIGGER {^Your mind feels stronger and more alert.$} {#ADDKEY Personal Elixir 0} #TRIGGER {^What is it that you wish to drink?$} {#ADDKEY Personal Elixir 1} #TRIGGER {^You bleed (%d) health.$} { #IF (%1 > 50) {#CW Bright,Red} #ADDKEY Personal Bleeding %1 #ADDKEY Mud IgnoreNextPrompt 1 #IF (@Personal.Bleeding > 30) {#EXEC _ActionAdd Clot} } #CLASS 0 #CLASS {Triggers|Stats|SkillsLists} #VAR SkillList {Vision|Tattoos|Survival|Weaponry|Riding|Elementalism|Crystalism|Enchantment|Chivalry|Runelore} #VAR CheckingSkill {Skillselementalism} #ONINPUT "TrigSkill" {^ab ({@SkillList})$} { CheckingSkill = Skills%1 @Skills%1 = "" #TEMP {AB} {#STATE TrigSkill 0} "" {case} } #COND {^You} {} #COND {^(%w)%s} {#ADDKEY {@CheckingSkill} %1 1} {looplines|param=50} #CLASS 0 #CLASS {Triggers|Stats|tPack} #ONINPUT "TrigInvPack" {^p pack$} { @InvPack = "" #TEMP TrigPPack {^(%d) gold sovereig[ns].$} { #STATE TrigInvPack 0 #ADDKEY Personal GoldInPack %%1 } tPack #ADDKEY Mud ResetTrigger TrigInvPack #T+ TrigNewPrompt } #COND {^"(*)"%s(*)$} {#ADDKEY InvPack {%1} {%2}} {looplines|param=99} #TRIGGER {^You get (%d) gold sovereign[s ]from a*} { #ADDKEY Personal GoldInPack %eval( @Personal.GoldInPack - %1) #ADDKEY Personal GoldInHand %eval( @Personal.GoldInHand + %1) } #TRIGGER {^You put (%d) gold sovereign[s ]in a*} { #ADDKEY Personal GoldInPack %eval( @Personal.GoldInPack + %1) #ADDKEY Personal GoldInHand %if( %eval( @Personal.GoldInHand - %1)<0, 0, %eval( @Personal.GoldInHand - %1)) } #TRIGGER {^You hold no ~"gold~".$} {#ADDKEY Personal GoldInHand 0} #TRIGGER {^You have %d item[s ]and (%d) gold sovereign[s.]$} {#ADDKEY Personal GoldInHand %1} #TRIGGER {^You pay (%d) sovereign*} {#ADDKEY Personal GoldInHand %eval( @Personal.GoldInHand - %1)} #ONINPUT {^put gold in pack$} {#ADDKEY Personal GoldInHand 0} #CLASS 0 #CLASS {Triggers|Stats|tCity} #VAR Citizens {Cheryl|Kaelyn|Sheara|Neveos|Verrucht|Rastriana|Koradhil|Ganelon|Dagis|Daine|Gervasius|Uli|Miralla|Lisbethae|Dreidin|Ulander|Liliana} #ONINPUT "TrigCwho" {^cwho$} { #VAR Citizens "" _nodef tCity #ADDKEY Mud ResetTrigger TrigCwho #T+ TrigNewPrompt } #COND {^Citizen%sRank%sCT%sClass$} {} #COND {^-------%s----%s--%s-----$} {} #COND {%e[36m(%w)} {#ADDITEM Citizens %1} {looplines|param=99|color} #CLASS 0 #CLASS {Triggers|Stats|tTattos} #VAR sBodyParts {Right arm|Right leg|Left arm|Left leg|Head|Torso} #VAR sTattoos {shield|mindseye|moss} #VAR Rightarm {ContainsshieldCharges27ActiveN} #VAR Rightleg {ContainsmindseyeCharges61ActiveN} #VAR Leftleg {} #VAR Torso {} #VAR Head {} #ONINPUT {^tattoos$} { #VAR Rightarm "" _nodef tTattos #VAR Rightleg "" _nodef tTattos #VAR Leftleg "" _nodef tTattos #VAR Rightleg "" _nodef tTattos #VAR Torso "" _nodef tTattos #VAR Head "" _nodef tTattos } #COND {^Body%sPart%sTattoo%sCharges%sActive$} {} #COND {------------------------------------------------------------} {} #COND {^({@sBodyParts})%sa ({@sTattoos}) tattoo%s(%d)%s([YN])$} { #ADDKEY %replace( %1, " ", "") Contains %2 #ADDKEY %replace( %1, " ", "") Charges %3 #ADDKEY %replace( %1, " ", "") Active %4 } {looplines|param=12} #CLASS 0