*Outdated* House of Medakan scripts

Setup, mapping, script help, etc.
Taziar
Posts: 157
Joined: Tue Apr 07, 2015 8:24 pm
Location: Seattle

Re: House of Medakan

Post by Taziar »

OUTDATED

-----Mapping Script-----
*Need Doors script installed for complete functionality.

Place the alias mappingToggle in a macro, I use the home key.
Example: #KEY HOME {mappingToggle}
Pressing the HOME key will toggle the mapping #KEY arrow buttons on/off.
You could also just use the alias... typing mappingToggle into the command line will turn script on/off.

When the script is turned ON the arrow keys become mapping macros:
RIGHT: turns map creation mode on
UP: loads room name/description
DOWN: turns map off
LEFT: turns map follow mode on

With mapping keys on or off:

Type doorSet <direction> to create door in that direction on your map.
--Will save door name from @doorName variable if Doors script is installed.
--Example: doorSet n to create a door north of current map location named @doorName.

Type doorSet <direction> <door name> to create door in direction with given name.
--Example: doorSet s gate to create a door south of current map location named gate.
--Note: the #DOOR command sets door name the same on both sides of door, you will need to manually adjust for doors with different named sides.

Recognized directions: n e s w u d

Type roomColor <color> to change the color of current room location on your map.

Thanks goes to Allette for the roomColor idea.

Code: Select all

#CLASS {Mapping}
#ALIAS mappingToggle {
	#IF (@mapToggle=1) {mapToggle=0} {mapToggle=1}
	#IF (@mapToggle=1) {#T+ Mapping|MapKeys} {#T- Mapping|MapKeys}
	#IF (@mapToggle=1) {#ECHO {Mapping macro keys are enabled.}} {#ECHO {Mapping macro keys are disabled.}}
	}
#ALIAS roomColor {
	mapCreation
	#CALL {%roomcol(,%1)}
	mapFollow
	}
#ALIAS doorSet {
	#IF (%ismember(%1,@mapDirections)) {
		mapCreation
		#IF (%len(%2)) {#DOOR %1 %2} {#DOOR %1 @doorName}
		mapFollow
		}
	}
#ALIAS mapCreation {#MENU {Mapper|File|Map Creation Mode}}
#ALIAS mapOff {#MENU {Mapper|File|Map}}
#ALIAS mapFollow {#MENU {Mapper|File|Follow Mode}}
#ALIAS mapLook {#MENU {Mapper|Actions|Look}}
#VAR mapToggle {0} {0}
#VAR mapDirections {n|e|s|w|u|d} {n|e|s|w|u|d}
#CLASS 0
#CLASS {Mapping|MapKeys} {disable}
#KEY UP {mapLook}
#KEY DOWN {mapOff}
#KEY LEFT {mapFollow}
#KEY RIGHT {mapCreation}
#CLASS 0
Table of Contents
Last edited by Taziar on Wed Jul 05, 2017 10:22 pm, edited 3 times in total.
House of Medakan cMUD Scripts: Table of Contents

House of Medakan zMUD Scripts: Table of Contents
Taziar
Posts: 157
Joined: Tue Apr 07, 2015 8:24 pm
Location: Seattle

Re: House of Medakan

Post by Taziar »

-----NarrateON-----
*You need Markus's Map scripts installed as this script uses his 'find' alias to reset your map location.

This script will work for any side (DS, LS, or SS).

NarrateOn has not been extensively tested...

When fighting any number of cross race opponents type: on

Script will send a find command (look) to set current location, this will get current room name, room short name, and look for any colored names inside asterisk.
If there are no cross race names captured in 2 seconds from the time you enter the command it will NOT narrate.
If you are in a room with a short room name of 1 character or less it will NOT narrate the short room name as some maps use letters or numbers to match up/down exits.

If everything works like it should you will then narrate:
ON! <short room name> <PC Names> (if room has a short name ID)
-or-
ON! <PC Names> <room name> (if room does not have a short name ID)

Example:
Taziar narrates ' ON! 2n Spyder Griznak Tempest Fong'
-or-
Taziar narrates ' ON! Spyder Griznak Tempest Fong Road Inside the City Walls'

Thanks to Spyder for the idea.

Code: Select all

#CLASS {NarrateON}
#ALIAS on {
	#T+ {NarrateON|NarrOnTrigger}
	find
	#ALARM +2 {onNarrate}
	}
#ALIAS onNarrate {
	#IF (%numitems( @onNameALL)) {
		#IF (%len(%roomid())>1) {narrate ON! %roomid() %expandlist(@onNameAll," ")} {narrate ON! %expandlist(@onNameAll," ") %roomname()}
	}
	#T- {NarrateON|NarrOnTrigger}
	#VAR crossNameON {}
	#VAR onNameAll {}
	}
#VAR crossNameON {}
#VAR onNameAll {}
#CLASS 0
#CLASS {NarrateON|NarrOnTrigger} {disable}
#TRIGGER {~*%e[31m&%wCrossNameON%e[0m~*} {#ADDITEM onNameAll @crossNameON} "" {color}
#TRIGGER {~*%e[35m&%wCrossNameON%e[0m~*} {#ADDITEM onNameAll @crossNameON} "" {color}
#TRIGGER {~*%e[36m&%wCrossNameON%e[0m~*} {#ADDITEM onNameAll @crossNameON} "" {color}
#CLASS 0
Table of Contents
Last edited by Taziar on Sun Mar 27, 2016 4:06 pm, edited 5 times in total.
House of Medakan cMUD Scripts: Table of Contents

House of Medakan zMUD Scripts: Table of Contents
Taziar
Posts: 157
Joined: Tue Apr 07, 2015 8:24 pm
Location: Seattle

Re: House of Medakan

Post by Taziar »

NO LONGER SUPPORTED
Truncated version created for Sarryn posted here: RerollSum

-----Reroll Script-----
*ScoreStat script needed to function.

Type reroll to reroll stats as normal. (Must type full command)
Anytime during the reroll process you can type reroll display to show rerolls again. (Must type full command)
Reroll script automatically adds stat sums at the end of each line.
Reroll results are saved for each character and each century mark.


Type helpRerolls for a list of commands.
Type showReroll to display list of current character's saved rerolls.
-Example: showReroll will display list of the current character's available reroll records.
Type showReroll <#> to show <Year> rerolls.
-Example: showReroll 300 will display current character's 300 year rerolls.

Thanks to Sarryn for the reroll stat sum idea.

Code: Select all

#CLASS {Rerolls}
#ALIAS helpRerolls {
	#SHOW {""}
	#SHOW {""}
	#SHOW {"-----ReRoll Script Commands-----"}
	#SHOW {""}
	#SHOW {"Type the reroll command to reroll stats as normal. (Must type full command)"}
	#SHOW {"Anytime during the reroll process you can type reroll display to show rerolls again."}
	#SHOW {"The end of each line will have the stat sum for that line."}
	#SHOW {"Reroll results are saved for each character and each century mark."}
	#SHOW {""}
	#SHOW {"Following commands can be used anytime, not just during the reroll process."}
	#SHOW {""}
	#SHOW {"Type showReroll to show current character's saved rerolls."}
	#SHOW {"-Example: showReroll will display list of current character's saved rerolls by century mark."}
	#SHOW {""}
	#SHOW {"Type showReroll <#> to show current character's rerolls for that year mark."}
	#SHOW {"-Example: showReroll 200 will display current character's 200 year rerolls."}
	#SHOW {""}
	}
#ALIAS showReroll {
	#IF (%len(%1)=0 AND %len(%2)=0) {rollShowFunction1} {}
	#IF (%ismember(%1,@rollCenturyMarks) AND %len(%2)=0) {
		#VAR rollYear %1
		rollShowFunction2
		} {}															
	}
#ALIAS rollShowFunction1 {
	#SHOW {""}
	#SHOW {""}
	#SHOW {--- Reroll Selections for @scoreName ---}
	#SHOW {""}
	#IF (%ismember(%concat(@scoreName,200),@rollCharacters)) {#SHOW "200"}
	#IF (%ismember(%concat(@scoreName,300),@rollCharacters)) {#SHOW "300"}
	#IF (%ismember(%concat(@scoreName,400),@rollCharacters)) {#SHOW "400"}
	#IF (%ismember(%concat(@scoreName,500),@rollCharacters)) {#SHOW "500"}
	#IF (%ismember(%concat(@scoreName,600),@rollCharacters)) {#SHOW "600"}
	#IF (%ismember(%concat(@scoreName,700),@rollCharacters)) {#SHOW "700"}
	#IF (%ismember(%concat(@scoreName,800),@rollCharacters)) {#SHOW "800"}
	#IF (%ismember(%concat(@scoreName,900),@rollCharacters)) {#SHOW "900"}
	#IF (%ismember(%concat(@scoreName,1000),@rollCharacters)) {#SHOW "1000"}
	#SHOW {""}
	}
#ALIAS rollShowFunction2 {
	#VAR rollSelected %concat(@scoreName,@rollYear)
	#T+ {Rerolls|@rollSelected}
	#SHOW {""}
	#LOOP 1,20 {#SHOW {~#%i - Str~[%item(%eval(%concat("@rollSTR",@rollSelected)),%i)~] Int~[%item(%eval(%concat("@rollINT",@rollSelected)),%i)~] Wil~[%item(%eval(%concat("@rollWIL",@rollSelected)),%i)~] Dex~[%item(%eval(%concat("@rollDEX",@rollSelected)),%i)~] Con~[%item(%eval(%concat("@rollCON",@rollSelected)),%i)~] Hps~[%item(%eval(%concat("@rollHPS",@rollSelected)),%i)~] Move~[%item(%eval(%concat("@rollMVP",@rollSelected)),%i)~] Sum~[%item(%eval(%concat("@rollSUM",@rollSelected)),%i)~]}}
	#T- {Rerolls|@rollSelected}
	}
#ALIAS rollSave {
	#IF (@statAge>199 AND @statAge<300) {#VAR rollAge {200}} {}
	#IF (@statAge>299 AND @statAge<400) {#VAR rollAge {300}} {}
	#IF (@statAge>399 AND @statAge<500) {#VAR rollAge {400}} {}
	#IF (@statAge>499 AND @statAge<600) {#VAR rollAge {500}} {}
	#IF (@statAge>599 AND @statAge<700) {#VAR rollAge {600}} {}
	#IF (@statAge>699 AND @statAge<800) {#VAR rollAge {700}} {}
	#IF (@statAge>799 AND @statAge<900) {#VAR rollAge {800}} {}
	#IF (@statAge>899 AND @statAge<1000) {#VAR rollAge {900}} {}
	#IF (@statAge>999 AND @statAge<1100) {#VAR rollAge {1000}} {}
	#VAR rollCurrent %concat(@scoreName,@rollAge)
	#ADDITEM rollCharacters @rollCurrent
	#IF (%class(Rerolls|@rollCurrent)=-1) {
		#PRIORITY {	
			#CLASS {Rerolls|@rollCurrent} {disable}
			#VAR %concat(rollSTR,@rollCurrent) {@rollSTR} {_nodef} {Rerolls|@rollCurrent}
			#VAR %concat(rollINT,@rollCurrent) {@rollINT} {_nodef} {Rerolls|@rollCurrent}
			#VAR %concat(rollWIL,@rollCurrent) {@rollWIL} {_nodef} {Rerolls|@rollCurrent}
			#VAR %concat(rollDEX,@rollCurrent) {@rollDEX} {_nodef} {Rerolls|@rollCurrent}
			#VAR %concat(rollCON,@rollCurrent) {@rollCON} {_nodef} {Rerolls|@rollCurrent}
			#VAR %concat(rollHPS,@rollCurrent) {@rollHPS} {_nodef} {Rerolls|@rollCurrent}
			#VAR %concat(rollMVP,@rollCurrent) {@rollMVP} {_nodef} {Rerolls|@rollCurrent}
			#VAR %concat(rollSUM,@rollCurrent) {@rollSUM} {_nodef} {Rerolls|@rollCurrent}
			}
		}
	}
#ALIAS rollTriggersOff {
	#T- rerollSaveData
	#T- rerollTrigger
	#T- rerollDisplay
	}
#VAR rollYear {}
#VAR rollSelected {}
#VAR rollCurrent {}
#VAR rollCharacters {}
#VAR rollCenturyMarks {200|300|400|500|600|700|800|900|1000}
#VAR rollAge {}
#VAR rollSTR {} {}
#VAR rollINT {} {}
#VAR rollWIL {} {}
#VAR rollDEX {} {}
#VAR rollCON {} {}
#VAR rollHPS {} {}
#VAR rollMVP {} {}
#VAR rollSUM {} {}
#VAR rollMathSUM {}
#TRIGGER {Yeah right!$} {rollTriggersOff}
#TRIGGER {I'm sorry.. but I didn't recognize that command.$} {rollTriggersOff}
#TRIGGER "rerollTrigger" {example: reroll 9} {
	#T+ rerollSaveData
	} "" {disable}
#TRIGGER "rerollSaveData" {~#(*) - Str~[(*)~] Int~[(*)~] Wil~[(*)~] Dex~[(*)~] Con~[(*)~] Hps~[(*)~] Move~[(*)~]} {
	#VAR rollSTR %additem(%2,@rollSTR)
	#VAR rollINT %additem(%3,@rollINT)
	#VAR rollWIL %additem(%4,@rollWIL)
	#VAR rollDEX %additem(%5,@rollDEX)
	#VAR rollCON %additem(%6,@rollCON)
	#VAR rollHPS %additem(%7,@rollHPS)
	#VAR rollMVP %additem(%8,@rollMVP)
	#MATH rollMathSUM %float(%2)+%float(%3)+%float(%4)+%float(%5)+%float(%6)
	#VAR rollSUM %additem(@rollMathSUM,@rollSUM)
	#SUB {~#%1 - Str~[%2~] Int~[%3~] Wil~[%4~] Dex~[%5~] Con~[%6~] Hps~[%7~] Move~[%8~] Sum~[@rollMathSUM~]}
	#IF (%1=20) {rollSave} {}
	#IF (%1=20) {rollTriggersOff} {}
	} "" {disable}
#TRIGGER "rerollDisplay" {~#(*) - Str~[(*)~] Int~[(*)~] Wil~[(*)~] Dex~[(*)~] Con~[(*)~] Hps~[(*)~] Move~[(*)~]} {
	#MATH rollMathSUM %float(%2)+%float(%3)+%float(%4)+%float(%5)+%float(%6)
	#SUB {~# %1 - Str~[%2~] Int~[%3~] Wil~[%4~] Dex~[%5~] Con~[%6~] Hps~[%7~] Move~[%8~] Sum~[@rollMathSUM~]}
	#IF (%1=20) {rollTriggersOff} {}
	} "" {disable}
#ONINPUT {^reroll$} {
	#T+ rerollTrigger
	#ALARM +5 {rollTriggersOff}
	}
#ONINPUT {^reroll display$} {
	#T+ rerollDisplay
	#ALARM +5 {rollTriggersOff}
	}
#CLASS 0
Table of Contents
Last edited by Taziar on Tue May 23, 2017 3:49 am, edited 15 times in total.
House of Medakan cMUD Scripts: Table of Contents

House of Medakan zMUD Scripts: Table of Contents
Taziar
Posts: 157
Joined: Tue Apr 07, 2015 8:24 pm
Location: Seattle

Re: House of Medakan

Post by Taziar »

NO LONGER SUPPORTED

-----Retool-----

Retool Script automatically retools all basic equipment at clan retool mobs.

Type helpRetool for help file.
Type clanEQ <clan-retool mobName> to retool all basic equipment.
-Example: clanEQ Rochodar
--Retools any combination of basic equipment, ABS, Combo, or Dodge.
---All equipment must be worn when entering clanEQ <name>. Process is automatic.

Code: Select all

#CLASS {Retool}
#ALIAS helpRetool {
	#SHOW {""}
	#SHOW {""}
	#SHOW {"-----Retool Commands and Settings-----"}
	#SHOW {""}
	#SHOW {"Type clanEQ <clan-retool mobName> to retool all basic equipment."}
	#SHOW {"-Example: clanEQ Rochodar"}
	#SHOW {"--Retools any combination of basic equipment, ABS, Combo, or Dodge."}
	#SHOW {"---All equipment must be worn when entering clanEQ <name>. Process is automatic."}
	#SHOW {""}
	}
#ALIAS clanEQ {
	#IF (%len(%1)) {
		#RESET Retool
		#VAR retoolMob {%1}
		retoolTrigs on
		equipment
		} {
		#ECHO {}
		#ECHO {"Type retoolEQ <retoolEQ mobName> to retool clan gear."}
		}
	}
#ALIAS retoolSelection {
	#IF (@retoolHead="a full metal helmet and visor") {retoolHeadABS=1} {retoolHeadABS=0}
	#IF (@retoolHead="a camouflaged hood") {retoolHeadDodge=1} {retoolHeadDodge=0}
	#IF (@retoolHead="a rimmed round helmet") {retoolHeadCombo=1} {retoolHeadCombo=0}
	#IF (@retoolArms="a pair of ebony-steel plate vambraces") {retoolArmsABS=1} {retoolArmsABS=0}
	#IF (@retoolArms="a set of cloth sleeves") {retoolArmsDodge=1} {retoolArmsDodge=0}
	#IF (@retoolArms="a pair of riveted chainmail sleeves") {retoolArmsCombo=1} {retoolArmsCombo=0}
	#IF (@retoolBody="a shining steel breastplate") {retoolBodyABS=1} {retoolBodyABS=0}
	#IF (@retoolBody="a bearskin tunic") {retoolBodyDodge=1} {retoolBodyDodge=0}
	#IF (@retoolBody="a tunic of finely-crafted chain") {retoolBodyCombo=1} {retoolBodyCombo=0}
	#IF (@retoolHands="a pair of heavy metal gauntlets") {retoolHandsABS=1} {retoolHandsABS=0}
	#IF (@retoolHands="a pair of dark gloves") {retoolHandsDodge=1} {retoolHandsDodge=0}
	#IF (@retoolHands="a sturdy pair of full leather gauntlets") {retoolHandsCombo=1} {retoolHandsCombo=0}
	#IF (@retoolLegs="a pair of ebony-steel plate greaves") {retoolLegsABS=1} {retoolLegsABS=0}
	#IF (@retoolLegs="a pair of earthen colored breeches") {retoolLegsDodge=1} {retoolLegsDodge=0}
	#IF (@retoolLegs="a set of riveted chainmail leggings") {retoolLegsCombo=1} {retoolLegsCombo=0}
	#IF (@retoolFeet="a pair of thick metal boots") {retoolFeetABS=1} {retoolFeetABS=0}
	#IF (@retoolFeet="a black pair of silver-tooled boots") {retoolFeetDodge=1} {retoolFeetDodge=0}
	#IF (@retoolFeet="a pair of animal-fur boots") {retoolFeetCombo=1} {retoolFeetCombo=0}
	#MATH retoolCountABS @retoolHeadABS+@retoolBodyABS+@retoolArmsABS+@retoolHandsABS+@retoolLegsABS+@retoolFeetABS
	#MATH retoolCountCombo @retoolHeadCombo+@retoolBodyCombo+@retoolArmsCombo+@retoolHandsCombo+@retoolLegsCombo+@retoolFeetCombo
	#MATH retoolCountDodge @retoolHeadDodge+@retoolBodyDodge+@retoolArmsDodge+@retoolHandsDodge+@retoolLegsDodge+@retoolFeetDodge
	#MATH retoolCount @retoolCountABS+@retoolCountCombo+@retoolCountDodge
	retoolProcedure
	}
#ALIAS retoolProcedure {
	#IF (@retoolHeadABS) {
		remove helmet
		give helmet @retoolMob
		}
	#IF (@retoolHeadCombo) {
		remove helmet
		give helmet @retoolMob
		}
	#IF (@retoolHeadDodge) {
		remove hood
		give hood @retoolMob
		}
	#IF (@retoolBodyABS) {
		remove shining
		give shining @retoolMob
		}
	#IF (@retoolBodyCombo) {
		remove tunic
		give tunic @retoolMob
		}
	#IF (@retoolBodyDodge) {
		remove tunic
		give tunic @retoolMob
		}
	#IF (@retoolArmsABS) {
		remove vambraces
		give vambraces @retoolMob
		}
	#IF (@retoolArmsCombo) {
		remove sleeves
		give sleeves @retoolMob
		}
	#IF (@retoolArmsDodge) {
		remove sleeves
		give sleeves @retoolMob
		}
	#IF (@retoolHandsABS) {
		remove gauntlets
		give gauntlets @retoolMob
		}
	#IF (@retoolHandsCombo) {
		remove gauntlets
		give gauntlets @retoolMob
		}
	#IF (@retoolHandsDodge) {
		remove gauntlets
		give gauntlets @retoolMob
		}
	#IF (@retoolLegsABS) {
		remove greaves
		give greaves @retoolMob
		}
	#IF (@retoolLegsCombo) {
		remove leggings
		give leggings @retoolMob
		}
	#IF (@retoolLegsDodge) {
		remove breeches
		give breeches @retoolMob
		}
	#IF (@retoolFeetABS) {
		remove boots
		give boots @retoolMob
		}
	#IF (@retoolFeetCombo) {
		remove boots
		give boots @retoolMob
		}
	#IF (@retoolFeetDodge) {
		remove boots
		give boots @retoolMob
		}
	#IF (@retoolCount=0) {
		#ECHO {You are not wearing any retool-able equipment.}
		retoolTrigs off
		}
	}
#ALIAS retoolCompletion {
	#IF (@retoolHeadABS) {wear visor} {}
	#IF (@retoolHeadCombo) {wear rimmed} {}
	#IF (@retoolHeadDodge) {wear hood} {}
	#IF (@retoolArmsABS) {wear vambraces} {}
	#IF (@retoolArmsCombo) {wear riveted} {}
	#IF (@retoolArmsDodge) {wear cloth} {}
	#IF (@retoolBodyABS) {wear shining} {}
	#IF (@retoolBodyCombo) {wear tunic} {}
	#IF (@retoolBodyDodge) {wear bearskin} {}
	#IF (@retoolHandsABS) {wear heavy} {}
	#IF (@retoolHandsCombo) {wear gauntlets} {}
	#IF (@retoolHandsDodge) {wear gloves} {}
	#IF (@retoolLegsABS) {wear greaves} {}
	#IF (@retoolLegsCombo) {wear riveted} {}
	#IF (@retoolLegsDodge) {wear breeches} {}
	#IF (@retoolFeetABS) {wear thick} {}
	#IF (@retoolFeetCombo) {wear animal} {}
	#IF (@retoolFeetDodge) {wear tooled} {}
	retoolTrigs off
	}
#ALIAS retoolTrigs {
	#IF (%1=on) {
		#LOOP 1,8 {
			#T+ %concat(retoolTrigger,%i)
			} {}
		}
	#IF (%1=off) {
		#LOOP 1,8 {
			#T- %concat(retoolTrigger,%i)
			} {}
		}
	}
#VAR retoolCount {} {}
#VAR retoolCountReceive {} {}
#VAR retoolCountABS {} {}
#VAR retoolCountCombo {} {}
#VAR retoolCountDodge {} {}
#VAR retoolMob {} {}
#VAR retoolHead {} {}
#VAR retoolBody {} {}
#VAR retoolArms {} {}
#VAR retoolHands {} {}
#VAR retoolLegs {} {}
#VAR retoolFeet {} {}
#VAR retoolHeadABS {} {}
#VAR retoolBodyABS {} {}
#VAR retoolArmsABS {} {}
#VAR retoolHandsABS {} {}
#VAR retoolLegsABS {} {}
#VAR retoolFeetABS {} {}
#VAR retoolHeadDodge {} {}
#VAR retoolBodyDodge {} {}
#VAR retoolArmsDodge {} {}
#VAR retoolHandsDodge {} {}
#VAR retoolLegsDodge {} {}
#VAR retoolFeetDodge {} {}
#VAR retoolHeadCombo {} {}
#VAR retoolBodyCombo {} {}
#VAR retoolArmsCombo {} {}
#VAR retoolHandsCombo {} {}
#VAR retoolLegsCombo {} {}
#VAR retoolFeetCombo {} {}
#TRIGGER "retoolTrigger1" {^~<worn on head~>%s&retoolHead%s$} {} "" {disable}
#TRIGGER "retoolTrigger2" {^~<worn on body~>%s&retoolBody%s$} {} "" {disable}
#TRIGGER "retoolTrigger3" {^~<worn on arms~>%s&retoolArms%s$} {} "" {disable}
#TRIGGER "retoolTrigger4" {^~<worn on hands~>%s&retoolHands%s$} {} "" {disable}
#TRIGGER "retoolTrigger5" {^~<worn on legs~>%s&retoolLegs%s$} {} "" {disable}
#TRIGGER "retoolTrigger6" {^~<worn on feet~>%s&retoolFeet%s$} {} "" {disable}
#TRIGGER "retoolTrigger7" {You are using:$} {#ALARM +.5 {retoolSelection}} "" {disable}
#TRIGGER "retoolTrigger8" {gives you} {
	#ADD retoolCountReceive 1
	#IF (@retoolCountReceive=@retoolCount) {retoolCompletion} {}
	} "" {disable}
#CLASS 0
Table of Contents
Last edited by Taziar on Sun Jul 23, 2017 1:13 pm, edited 4 times in total.
House of Medakan cMUD Scripts: Table of Contents

House of Medakan zMUD Scripts: Table of Contents
Taziar
Posts: 157
Joined: Tue Apr 07, 2015 8:24 pm
Location: Seattle

Re: House of Medakan

Post by Taziar »

-----Embrace/Seize Toggle Script-----
*ScoreStat script need to function.

This script enables a Macro key to be used to toggle the Source on/off for either a Male or Female Channeler.
Create a macro key and put sourceToggle as the command.
Example: #KEY F1 {sourceToggle}

ScoreStat script enables and sets gender specific commands on connection.

Code: Select all

#CLASS {SourceToggle} {disable}
#ALIAS sourceToggle {
	#IF (@statGender=female) {
		#IF (@embraceToggle=embrace) {embraceToggle=release} {embraceToggle=embrace}
		@embraceToggle
		} {}
	#IF (@statGender=male) {
		#IF (@seizeToggle=seize) {seizeToggle=release} {seizeToggle=seize}
		@seizeToggle
		} {}
	}
#VAR embraceToggle {release} {release}
#VAR seizeToggle {release} {release}
#TRIGGER {You lose all sense of the True Source here.} {
	embraceToggle=release
	seizeToggle=release
	}
#TRIGGER {You are unable to sense the True Source at all from here.} {
	embraceToggle=release
	seizeToggle=release
	}
#CLASS 0
Table of Contents
Last edited by Taziar on Tue Apr 26, 2016 4:08 pm, edited 4 times in total.
House of Medakan cMUD Scripts: Table of Contents

House of Medakan zMUD Scripts: Table of Contents
Taziar
Posts: 157
Joined: Tue Apr 07, 2015 8:24 pm
Location: Seattle

Re: House of Medakan

Post by Taziar »

MOVED
see new location here: Table of Contents

-----Terinor's Color Script-----
*May conflict with my Color script.

I don't use this script, but I wanted to post this here as it is the random rainbow color script I wrote for Terinor.
Colors the successful messages of a bash, charge, or stab in a rainbow of colors. Each time the output is randomly different.

Type tbc <color> to set the script to be the same as your background color.
-Note: if you dislike a certain color just delete it from the terinorRainbow stringlist variable.

Code: Select all

#CLASS {terinorColorsRandom}
#ALIAS tbc {
   #VAR terinorBC %1
   #ECHO {%1 is now set as your Terinor Background Color.}
   }
#ALIAS selectColor {
    #VAR terinorRandomColor %item(@terinorRainbow, %random(1, %numitems(@terinorRainbow)))
   }
#VAR terinorBC {}
#VAR terinorRainbow {blue|green|cyan|red|magenta|yellow|bold,blue|bold,green|bold,cyan|bold,red|bold,magenta|bold,yellow}
#VAR terinorRandomColor {}
#VAR terinorColor1 {}
#VAR terinorColor2 {}
#VAR terinorColor3 {}
#VAR terinorColor4 {}
#VAR terinorColor5 {}
#VAR terinorColor6 {}
#VAR terinorColor7 {}
#VAR terinorColor8 {}
#VAR terinorColor9 {}
#VAR terinorColor10 {}
#VAR terinorColor11 {}
#VAR terinorColor12 {}
#TRIGGER {Chaaaaarrrge!! %1 bleeds profusely as you skewer %2 with %3!} {
   #LOOP 1,10 {
      selectColor
      #VAR terinorColor%{i} {@terinorRandomColor}
   }
   #SUB {%ansi(@terinorColor1,@terinorBC)Chaaaaarrrge!! %ansi(@terinorColor2,@terinorBC)%1 %ansi(@terinorColor3,@terinorBC)bleeds %ansi(@terinorColor4,@terinorBC)profusely %ansi(@terinorColor5,@terinorBC)as %ansi(@terinorColor6,@terinorBC)you %ansi(@terinorColor7,@terinorBC)skewer %ansi(@terinorColor8,@terinorBC)%2 %ansi(@terinorColor9,@terinorBC)with %ansi(@terinorColor10,@terinorBC)%3!}
   }
#TRIGGER {%1 makes a strange sound as you place %2 in %3 back!} {
   #LOOP 1,12 {
      selectColor
      #VAR terinorColor%{i} {@terinorRandomColor}
   }
   #SUB {%ansi(@terinorColor1,@terinorBC)%1 %ansi(@terinorColor2,@terinorBC)makes %ansi(@terinorColor3,@terinorBC)a %ansi(@terinorColor4,@terinorBC)strange %ansi(@terinorColor5,@terinorBC)sound %ansi(@terinorColor6,@terinorBC)as %ansi(@terinorColor7,@terinorBC)you %ansi(@terinorColor8,@terinorBC)place %ansi(@terinorColor9,@terinorBC)%2 %ansi(@terinorColor10,@terinorBC)in %ansi(@terinorColor11,@terinorBC)%3 %ansi(@terinorColor12,@terinorBC)back!}
   }
#TRIGGER {Your bash at %1 sends %2 sprawling!} {
   #LOOP 1,7 {
      selectColor
      #VAR terinorColor%{i} {@terinorRandomColor}
   }
   #SUB {%ansi(@terinorColor1,@terinorBC)Your %ansi(@terinorColor2,@terinorBC)bash %ansi(@terinorColor3,@terinorBC)at %ansi(@terinorColor4,@terinorBC)%1 %ansi(@terinorColor5,@terinorBC)sends %ansi(@terinorColor6,@terinorBC)%2 %ansi(@terinorColor7,@terinorBC)sprawling!}
   }
#CLASS 0
Table of Contents
Last edited by Taziar on Wed May 03, 2017 2:56 am, edited 1 time in total.
House of Medakan cMUD Scripts: Table of Contents

House of Medakan zMUD Scripts: Table of Contents
Taziar
Posts: 157
Joined: Tue Apr 07, 2015 8:24 pm
Location: Seattle

Re: House of Medakan

Post by Taziar »

OUTDATED
see new version here: ScoreStatTime

-----Time Script-----
*Must have updated ScoreStat script installed to function.

At first connection with each character Time script will show total years, months, days, and hours since game clock started.
Each time command entered after that will show proper data output for the current character since last look or connection.

Typing rent or quit will send a time command, save the data, and then either rent or quit respectively.
If renting linkless type: timeLinkless
-Note: doing so will send a time command, save data, and then automatically disconnect from the current session.

If under level 30 an estimated deletion date notification will display when renting, quiting, or using the timeSetLinkless command.
This notification is also saved in current character comments found on the zMUD character screen.
(These are shown when mouse pointer hovers over character name icon on zMUD character selection screen.)
Note- This will overwrite ScoreStat's %charactercomment(age, gender, class, race) function if character is under level 30.

Code: Select all

#CLASS {Time} {setdef}
#ALIAS helpTime {
	#SHOW {""}
	#SHOW {""}
	#SHOW {"-----Time Script-----"}
	#SHOW {""}
	#SHOW {"ScoreStat script needed for Time script to function."}
	#SHOW {"Sends time command on connection and disconnection."}
	#SHOW {"First time command after installation reads total mud game time."}
	#SHOW {"Time messages after that will read since last connection or last check."}
	#SHOW {"Time script keeps track of game time for each character individually."}
	#SHOW {"Typing rent or quit will automatically set current character's disconnect data."}
	#SHOW {"If linkless renting you can type: timeLinkless to save and disconnect."}
	#SHOW {"Character deletion time shows automatically if under level 30 at disconnect."}
	#SHOW {"Time script saves deletion date in character comments if under level 30."}
	#SHOW {""}
	}
#ALIAS showTimeMessage {
   #IF (@showTimeMessage=1) {showTimeMessage=0} {showTimeMessage=1}
   #IF (@showTimeMessage=1) {#ECHO {Time message information is turned on.}} {#ECHO {Time message information is turned off.}}
   }
#ALIAS timeSetPastData {
	#PRIORITY {	
		timePastAMPM=@timeAMPM
		timePastMonth=@timeMonth
		timePastHour=@timeHour
		timePastDay=@timeDay
		timePastYear=@timeYear
		#VAR %concat("time",@scoreName,"AMPM") @timeAMPM
		#VAR %concat("time",@scoreName,"Month") @timeMonth
		#VAR %concat("time",@scoreName,"Hour") @timeHour
		#VAR %concat("time",@scoreName,"Day") @timeDay
		#VAR %concat("time",@scoreName,"Year") @timeYear
		}
	}
#ALIAS timeCalculations {
	#MATH timeEvalYears (@timeYear*8736)
	#MATH timeEvalMonths (%ismember(@timeMonth,@timeMonthNames)*672)
	#MATH timeEvalDays (@timeDay*24)
	#IF (@timeAMPM=pm)  {#MATH timeEvalHours @timeHour+12} {#MATH timeEvalHours @timeHour}
	#IF (@timeHour=12) {#IF (@timeAMPM=am) {timeEvalHours=0} {timeEvalHours=12}} {}
	#MATH timeCurrentTotal (@timeEvalYears+@timeEvalMonths+@timeEvalDays+@timeEvalHours)
	#MATH timeEvalPastYears (@timePastYear*8736)
	#MATH timeEvalPastMonths (%ismember(@timePastMonth,@timeMonthNames)*672)
	#MATH timeEvalPastDays (@timePastDay*24)
	#IF (@timePastAMPM=pm)  {#MATH timeEvalPastHours @timePastHour+12} {#MATH timeEvalPastHours @timePastHour}
	#IF (@timePastHour=12) {#IF (@timePastAMPM=am) {timeEvalPastHours=0} {timeEvalPastHours=12}} {}
	#MATH timePastTotal (@timeEvalPastYears+@timeEvalPastMonths+@timeEvalPastDays+@timeEvalPastHours)
	#MATH timeTotalHours (@timeCurrentTotal-@timePastTotal)
	#IF (@timeTotalHours > 8736) {
		#MATH timeDisplayYear %format(0,%float(@timeTotalHours/8736))
		#MATH timeTotalMonths (@timeTotalHours-(@timeDisplayYear*8736))
		} {timeDisplayYear=0
			timeTotalMonths=@timeTotalHours
			}
	#IF (@timeTotalMonths > 672) {
		#MATH timeDisplayMonth %format(0,%float(@timeTotalMonths/672))
		#MATH timeTotalDays (@timeTotalMonths-(@timeDisplayMonth*672))
		} {timeDisplayMonth=0
			timeTotalDays=@timeTotalMonths
			}
	#IF (@timeTotalDays > 24) {
		#MATH timeDisplayDay %format(0,%float(@timeTotalDays/24))
		#MATH timeDisplayHour (@timeTotalDays-(@timeDisplayDay*24))
		} {timeDisplayDay=0
			timeDisplayHour=@timeTotalDays
			}
	}
#ALIAS timeCharacter {
	#PRIORITY {
		#IF (%ismember(@scoreName,@timeCharacterList)) {} {
			#SHOW {""}
			#SHOW {Please wait while Time script loads...}
			#ADDITEM timeCharacterList @scoreName
			#VAR %concat("time",@scoreName,"AMPM") {} {_nodef}
			#VAR %concat("time",@scoreName,"Month") {} {_nodef}
			#VAR %concat("time",@scoreName,"Hour") {0} {_nodef}
			#VAR %concat("time",@scoreName,"Day") {0} {_nodef}
			#VAR %concat("time",@scoreName,"Year") {0} {_nodef}
			#SHOW {...Time script loaded.}
			}
		}
	}
#ALIAS timeConnection {
	#PRIORITY {
		#T- serverTrigger
		timePastAMPM=%eval(%concat("@time",@scoreName,"AMPM"))
		timePastMonth=%eval(%concat("@time",@scoreName,"Month"))
		timePastHour=%eval(%concat("@time",@scoreName,"Hour"))
		timePastDay=%eval(%concat("@time",@scoreName,"Day"))
		timePastYear=%eval(%concat("@time",@scoreName,"Year"))
		time
		}
	}
#ALIAS timeDisconnect {
	#T+ serverTrigger
	showTimeMessage=0
	showTimeDisconnect=1
	time
	#TEMP {^The official forums are now at * enjoy!$} {
		#PRIORITY {
			#VAR %concat("time",@scoreName,"AMPM") @timeAMPM
			#VAR %concat("time",@scoreName,"Month") @timeMonth
			#VAR %concat("time",@scoreName,"Hour") @timeHour
			#VAR %concat("time",@scoreName,"Day") @timeDay
			#VAR %concat("time",@scoreName,"Year") @timeYear
			}
		}
	}
#ALIAS timeLinkless {
	timeDisconnect
	#TEMP {^~(Server: } {#DISCONNECT}
	}
#ALIAS timeCharacterDelete {
	#IF (@scoreLevel>29) {showTimeDeletion=0} {showTimeDeletion=1}
	#IF (@scoreLevel>19 AND @scoreLevel<30) {serverDisplayMonths=6} {}
	#IF (@scoreLevel>9 AND @scoreLevel<20) {serverDisplayMonths=3} {}
	#IF (@scoreLevel>4 AND @scoreLevel<10) {serverDisplayMonths=1} {}
	#IF (@scoreLevel>1 AND @scoreLevel<5) {serverDisplayDays=7} {}
	#IF (@scoreLevel=1) {serverDisplayDays=3} {}
	#IF (@serverDisplayMonths>0) {
		#MATH serverDisplayMonth %item(@serverMonthNames,(@serverDisplayMonths+%ismember(@serverMonth,@serverMonthNames)))
		#MATH serverDisplayDay @serverDay
		} {#MATH serverDisplayMonth @serverMonth}
	#IF (@serverDisplayDays>0) {
		#MATH serverDisplayDay @serverDisplayDays+@serverDay
		#IF (@serverDisplayDay>%item(@serverMonthDays,%ismember(@serverMonth,@serverMonthNames))) {
			#MATH serverDisplayDay @serverDisplayDay-%item(@serverMonthDays,%ismember(@serverMonth,@serverMonthNames))
			#MATH serverDisplayMonth %item(@serverMonthNames,(%ismember(@serverMonth,@serverMonthNames)+1))
			} {}
		} {}
	}
#VAR showTimeMessage {0} {0}
#VAR showTimeConnection {1} {1}
#VAR showTimeDisconnect {0} {0}
#VAR showTimeDeletion {0} {0}
#VAR timeMonthNames {Taisham|Jumara|Saban|Aine|Adar|Saven|Amadaine|Tammaz|Maigdhal|Choren|Shaldine|Nesan|Danu}
#VAR timeCharacterList {}
#VAR timeCurrentTotal {0}
#VAR timeTotalMonths {0}
#VAR timeTotalHours {0}
#VAR timeTotalDays {0}
#VAR timeTotalYears {0}
#VAR timeEvalDays {0}
#VAR timeEvalHours {0}
#VAR timeEvalMonths {0}
#VAR timeEvalYears {0}
#VAR timeEvalPastDays {0}
#VAR timeEvalPastHours {0}
#VAR timeEvalPastMonths {0}
#VAR timeEvalPastYears {0}
#VAR timeHour {0}
#VAR timeAMPM {}
#VAR timeDay {0}
#VAR timeMonth {}
#VAR timeYear {0}
#VAR timePastHour {0} {0}
#VAR timePastAMPM {} {}
#VAR timePastDay {0} {0}
#VAR timePastMonth {} {}
#VAR timePastYear {0} {0}
#VAR timePastTotal {0} {0}
#VAR timeDisplayHour {0}
#VAR timeDisplayDay {0}
#VAR timeDisplayMonth {0}
#VAR timeDisplayYear {0}
#VAR serverMonthNames {Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec}
#VAR serverMonthDays {31|28|31|30|31|30|31|31|30|31|30|31}
#VAR serverMonth {}
#VAR serverDay {}
#VAR serverDisplayMonth {}
#VAR serverDisplayMonths {0} {0}
#VAR serverDisplayDay {}
#VAR serverDisplayDays {0} {0}
#TRIGGER {It is &%dtimeHour o'clock &%wtimeAMPM, on the &%d{timeDay}{st|nd|rd|th} day of the month of &%wtimeMonth, year &%dtimeYear.} {
	timeCalculations
	timeSetPastData
	}
#TRIGGER {^The official forums are now at * enjoy!$} {
	#IF (@showTimeMessage=1) {#ECHO {It has been %if(@timeDisplayYear>1,@timeDisplayYear years~," ","")%if(@timeDisplayYear=1,1 year~," ","")%if(@timeDisplayMonth>1,@timeDisplayMonth months~," ","")%if(@timeDisplayMonth=1,1 month~," ","")%if(@timeDisplayDay>1,@timeDisplayDay days~," ","")%if(@timeDisplayDay=1,1 day~," ","")%if(@timeDisplayHour>0,@timeDisplayHour hour,"0 hours")%if(@timeDisplayHour>1,"s "," ")since you last looked. ~(game time~)}} {}
	#IF (@showTimeConnection=1) {#ECHO {It has been %if(@timeDisplayYear>1,@timeDisplayYear years~," ","")%if(@timeDisplayYear=1,1 year~," ","")%if(@timeDisplayMonth>1,@timeDisplayMonth months~," ","")%if(@timeDisplayMonth=1,1 month~," ","")%if(@timeDisplayDay>1,@timeDisplayDay days~," ","")%if(@timeDisplayDay=1,1 day~," ","")%if(@timeDisplayHour>0,@timeDisplayHour hour,"0 hours")%if(@timeDisplayHour>1,"s "," ")since @scoreName last connected. ~(game time~)}} {}
	#IF (@showTimeDisconnect=1) {#ECHO {@{scoreName}'s disconnection time has been saved.}}
	}
#COND {$} {
	#IF (@showTimeMessage=1) {#GAG} {}
	#IF (@showTimeConnection=1) {#GAG} {}
	#IF (@showTimeDisconnect=1) {#GAG} {}
	showTimeMessage=1
	showTimeConnection=0
	showTimeDisconnect=0
	}
#TRIGGER "serverTrigger" {^~(Server~: %w &%wserverMonth &%dserverDay %d~:%d~:%d %d EST, up for %d hours, %d minutes~)$} {
	timeCharacterDelete
	#IF (@showTimeDeletion=1) {#ECHO {@scoreName will delete in %if(@serverDisplayMonths=1,@serverDisplayMonths month,%if(@serverDisplayMonths>1,@serverDisplayMonths months,@serverDisplayDays days)) on @serverDisplayMonth @serverDisplayDay if not logged in before this date.}} {}
	#IF (@showTimeDeletion=1) {#IF (@scoreLevel<30) {#CALL %charcomment(@scoreName will delete on @serverDisplayMonth @serverDisplayDay.)} {}} {}
	}
#ONINPUT {^rent$} {
	timeDisconnect
	rent
	}
#ONINPUT {^quit$} {
	timeDisconnect
	quit
	}
#CLASS 0
Table of Contents
Last edited by Taziar on Wed May 17, 2017 4:29 am, edited 8 times in total.
House of Medakan cMUD Scripts: Table of Contents

House of Medakan zMUD Scripts: Table of Contents
Taziar
Posts: 157
Joined: Tue Apr 07, 2015 8:24 pm
Location: Seattle

Re: House of Medakan

Post by Taziar »

NO LONGER SUPPORTED

-----WeaponType-----
*required for Damage Testing script to function.
Also used in Clumsy script for disarm count functionality. (tracks if you are using a fencing blade)

Automatically sets weapon keywords and names during the course of play.
Required for Damage Testing and Clumsy scripts to fully function.

Can automatically wield disarmed weapons, and even pickup for disarm to ground.
Type toggleAutoWield to toggle automatic wield when disarmed function on/off.

Type helpWeaponType to view help file.

Type weaponMend to automatically mend current weapon.

Type weaponTypes to see a list of available weapon types.
Type weaponTypes <weaponType> to see list of weapon names and keywords.
Type weaponAddKeyword <weaponType> <weaponNumber> <weaponKeyword> to set a weapon's keyword.

Keywords might need to be adjusted depending on other gear used to avoid conflicts.
Note: Default keyword names have tried to be set to not conflict with non-weapon equipment.

Adding and removing weapons to the script use the following commands:

Type weaponAddWeapon <weaponType> <a_weapon_name> <weaponKeyword>
Type weaponRemoveWeapon <weaponType> <weaponNumber>

Thanks goes to Thuvia for gathering all the weapon names used in this script.

Code: Select all

#CLASS {WeaponType}
#ALIAS helpWeaponType {
	#SHOW {""}
	#SHOW {""}
	#SHOW {"-----WeaponType Commands and Settings-----"}
	#SHOW {""}
	#SHOW {"Automatically sets weapon keywords and names during the course of play."}
	#SHOW {"Required for Damage Testing and Clumsy scripts to fully function."}
	#SHOW {""}
	#SHOW {"Script will automatically pick up any weapons when disarmed in combat."}
	#SHOW {"Type toggleAutoWield to toggle automatic wield when disarmed function on/off."}
	#SHOW {""}
	#SHOW {"Type weaponTypes to see a list of available weapon types."}
	#SHOW {""}
	#SHOW {"Type weaponTypes <weaponType> to see list of weapon names and keywords."}
	#SHOW {"Note: must use lower case for types detailed in list above."}
	#SHOW {""}
	#SHOW {"Type weaponAddKeyword <weaponType> <weaponNumber> <weaponKeyword> to set a weapon's keyword."}
	#SHOW {"Example: weaponAddKeyword shortblades 17 copper"}
	#SHOW {"Note: the above example sets the keyword for a copper dagger to the keyword: copper"}
	#SHOW {""}
	#SHOW {"Keywords might need to be adjusted depending on other gear used to avoid conflicts."}
	#SHOW {"Note: Default keyword names have tried to be set to not conflict with non-weapon equipment."}
	#SHOW {""}
	#SHOW {"Adding and removing weapons to the script use the following commands:"}
	#SHOW {""}
	#SHOW {"Type weaponAddWeapon <weaponType> <a_weapon_name> <weaponKeyword>"}
	#SHOW {"Example: weaponAddWeapon clubs a_retooled_weapon_of_DOOM! club "}
	#SHOW {"Note: the above example adds "a retooled weapon of DOOM!" to the clubs weapon type with the keyword club."}
	#SHOW {""}
	#SHOW {"Type weaponRemoveWeapon <weaponType> <weaponNumber>"}
	#SHOW {"Example: weaponRemoveWeapon shortblades 1"}
	#SHOW {"Note: the above example would delete the number 1 selection (a blackened steel kris) from the shortblades list."}
	#SHOW {""}
	}
#ALIAS toggleAutoWield {
	#IF (@weaponAutoWieldDisarm=1) {weaponAutoWieldDisarm=0} {weaponAutoWieldDisarm=1}
	#IF (@weaponAutoWieldDisarm=1) {#ECHO {AutoWield on disarm is turned on.}} {#ECHO {AutoWield on disarm is turned off.}}
	}
#ALIAS weaponAddKeyword {
	#IF (%len(%1)=0) {
		#SHOW {""}
		#SHOW {""}
		#ECHO {"weaponKeyword <weaponType> <weaponNumber> <weaponKeyword>"}
		#ABORT 1
		} {}
	#IF (%ismember(%1,%lower(@weaponTypeList))) {} {
		#SHOW {""}
		#SHOW {""}
		#ECHO {"Not a valid weapon type... (use lower case)"}
		#ABORT 1
		}
	#IF (%item(%eval(%concat("@weaponList",%1)),%2)="") {
		#SHOW {""}
		#SHOW {""}
		#ECHO {"Not a valid weapon number or number missing..."}
		#ABORT 1
		} {}
	#IF (%len(%3)=0) {
		#SHOW {""}
		#SHOW {""}
		#ECHO {"No keyword detected..."}
		#ABORT 1
		} {}
	#IF (%len(%4)>0) {
		#SHOW {""}
		#SHOW {""}
		#ECHO {"Failed! weaponKeyword <weaponType> <weaponNumber> <weaponKeyword>"}
		#ABORT 1
		} {}
	#VAR weaponSaveString {%item(%eval(%concat("@weaponList",%1)),%2)}
	#VAR weaponSaveName @weaponSaveString.1.1
	#DELITEM %concat(weaponList,%1) @weaponSaveString
	#ADDITEM %concat(weaponList,%1) %concat("(",@weaponSaveName,|,%3,")")
	#VAR %concat("@weaponList",%1) %sort(%eval(%concat("@weaponList",%1)))
	#SHOW {""}
	#ECHO {%3 is now set as the keyword for @weaponSaveName.}
	weaponTypes %1
	}
#ALIAS weaponAddWeapon {
	#IF (%len(%1)=0) {
		#SHOW {""}
		#SHOW {""}
		#ECHO {"weaponAddWeapon <weaponType> <a_weapon_name> <weaponKeyword>"}
		#ABORT 1
		} {}
	#IF (%ismember(%1,%lower(@weaponTypeList))) {} {
		#SHOW {""}
		#SHOW {""}
		#ECHO {"Not a valid weapon type... (use lower case)"}
		#ABORT 1
		}
	#IF (%len(%2)=0) {
		#SHOW {""}
		#SHOW {""}
		#ECHO {"a_weapon_name not detected..."}
		#ABORT 1
		} {}
	#IF (%len(%3)=0) {
		#SHOW {""}
		#SHOW {""}
		#ECHO {"No keyword detected..."}
		#ABORT 1
		} {}
	#IF (%len(%4)>0) {
		#SHOW {""}
		#SHOW {""}
		#ECHO {"Failed! weaponAddWeapon <weaponType> <a_weapon_name> <weaponKeyword>"}
		#ABORT 1
		} {}
	#VAR weaponSaveName %concat(~",%replace(%2,_," "),~")
	#ADDITEM %concat(weaponList,%1) %concat("(",@weaponSaveName,|,%3,")")
	#VAR %concat("@weaponList",%1) %sort(%eval(%concat("@weaponList",%1)))
	#SHOW {""}
	#ECHO {%3 is now set as the keyword for @weaponSaveName.}
	weaponTypes %1
	}
#ALIAS weaponRemoveWeapon {
	#IF (%len(%1)=0) {
		#SHOW {""}
		#SHOW {""}
		#ECHO {"weaponRemoveWeapon <weaponType> <weaponNumber>"}
		#ABORT 1
		} {}
	#IF (%ismember(%1,%lower(@weaponTypeList))) {} {
		#SHOW {""}
		#SHOW {""}
		#ECHO {"Not a valid weapon type... (use lower case)"}
		#ABORT 1
		}
	#IF (%item(%eval(%concat("@weaponList",%1)),%2)="") {
		#SHOW {""}
		#SHOW {""}
		#ECHO {"Not a valid weapon number or number missing..."}
		#ABORT 1
		} {}
	#IF (%len(%3)>0) {
		#SHOW {""}
		#SHOW {""}
		#ECHO {"Failed! weaponRemoveWeapon <weaponType> <weaponNumber>"}
		#ABORT 1
		} {}
	#VAR weaponSaveString {%item(%eval(%concat("@weaponList",%1)),%2)}
	#DELITEM %concat(weaponList,%1) @weaponSaveString
	#VAR %concat("@weaponList",%1) %sort(%eval(%concat("@weaponList",%1)))
	#SHOW {""}
	#ECHO {@weaponSaveString has been deleted from the %1 list.}
	weaponTypes %1
	}
#ALIAS weaponCurrentFunction {
	#IF (%ismember(%1,@weaponCurrentName)) {} {
		#VAR weaponCurrentName {%1}
		weaponSetKeyword current
		}
	}
#ALIAS weaponDisarmWield {
	#IF (%ismember(%1,@weaponCurrentName)) {
		#IF (@weaponAutoWieldDisarm) {wield @weaponCurrentKeyword} {}
		} {}
	}
#ALIAS weaponDisarmWieldGround {
	#IF (%ismember(%1,@weaponCurrentName)) {
		#IF (@weaponAutoWieldDisarm) {
			get @weaponCurrentKeyword
			wield @weaponCurrentKeyword
			} {}
		} {}
	}
#ALIAS weaponLastFunction {
	#IF (%ismember(%1,@weaponLastName)) {} {
		#VAR weaponLastName {%1}
		weaponSetKeyword last
		}
	#VAR weaponCurrentName {}
	#VAR weaponCurrentKeyword {}
	}
#ALIAS weaponMend {
	rem @weaponCurrentKeyword
	mend @weaponCurrentKeyword
	}
#ALIAS weaponSetKeyword {
	#IF (%1=current) {#VAR weaponKeywordVariable weaponCurrentKeyword} {}
	#IF (%1=last) {#VAR weaponKeywordVariable weaponLastKeyword} {}
	#IF (%1=sheathed) {#VAR weaponKeywordVariable weaponSheathedKeyword} {}
	#IF (%1=thrown) {#VAR weaponKeywordVariable weaponThrownKeyword} {}
	#FORALL @weaponListAxes {
		#VAR weaponSaveString {%i}
		#IF (%ismember(@weaponName,@weaponSaveString.1.1)) {
			#VAR %eval("@weaponKeywordVariable") {@weaponSaveString.2.1}
			#VAR weaponType {Axes}
			#ABORT 1
			} {}
		}
	#FORALL @weaponListBows {
		#VAR weaponSaveString {%i}
		#IF (%ismember(@weaponName,@weaponSaveString.1.1)) {
			#VAR %eval("@weaponKeywordVariable") {@weaponSaveString.2.1}
			#VAR weaponType {Bows}
			#ABORT 1
			} {}
		}
	#FORALL @weaponListClubs {
		#VAR weaponSaveString {%i}
		#IF (%ismember(@weaponName,@weaponSaveString.1.1)) {
			#VAR %eval("@weaponKeywordVariable") {@weaponSaveString.2.1}
			#VAR weaponType {Clubs}
			#ABORT 1
			} {}
		}
	#FORALL @weaponListFencingBlades {
		#VAR weaponSaveString {%i}
		#IF (%ismember(@weaponName,@weaponSaveString.1.1)) {
			#VAR %eval("@weaponKeywordVariable") {@weaponSaveString.2.1}
			#VAR weaponType {FencingBlades}
			#ABORT 1
			} {}
		}
	#FORALL @weaponListFlails {
		#VAR weaponSaveString {%i}
		#IF (%ismember(@weaponName,@weaponSaveString.1.1)) {
			#VAR %eval("@weaponKeywordVariable") {@weaponSaveString.2.1}
			#VAR weaponType {Flails}
			#ABORT 1
			} {}
		}
	#FORALL @weaponListJavelins {
		#VAR weaponSaveString {%i}
		#IF (%ismember(@weaponName,@weaponSaveString.1.1)) {
			#VAR %eval("@weaponKeywordVariable") {@weaponSaveString.2.1}
			#VAR weaponType {Javelins}
			#ABORT 1
			} {}
		}
	#FORALL @weaponListLances {
		#VAR weaponSaveString {%i}
		#IF (%ismember(@weaponName,@weaponSaveString.1.1)) {
			#VAR %eval("@weaponKeywordVariable") {@weaponSaveString.2.1}
			#VAR weaponType {Lances}
			#ABORT 1
			} {}
		}
	#FORALL @weaponListLongBlades {
		#VAR weaponSaveString {%i}
		#IF (%ismember(@weaponName,@weaponSaveString.1.1)) {
			#VAR %eval("@weaponKeywordVariable") {@weaponSaveString.2.1}
			#VAR weaponType {LongBlades}
			#ABORT 1
			} {}
		}
	#FORALL @weaponListMediumBlades {
		#VAR weaponSaveString {%i}
		#IF (%ismember(@weaponName,@weaponSaveString.1.1)) {
			#VAR %eval("@weaponKeywordVariable") {@weaponSaveString.2.1}
			#VAR weaponType {MediumBlades}
			#ABORT 1
			} {}
		}
	#FORALL @weaponListPolearms {
		#VAR weaponSaveString {%i}
		#IF (%ismember(@weaponName,@weaponSaveString.1.1)) {
			#VAR %eval("@weaponKeywordVariable") {@weaponSaveString.2.1}
			#VAR weaponType {Polearms}
			#ABORT 1
			} {}
		}
	#FORALL @weaponListProjectiles {
		#VAR weaponSaveString {%i}
		#IF (%ismember(@weaponName,@weaponSaveString.1.1)) {
			#VAR %eval("@weaponKeywordVariable") {@weaponSaveString.2.1}
			#VAR weaponType {Projectiles}
			#ABORT 1
			} {}
		}
	#FORALL @weaponListShortBlades {
		#VAR weaponSaveString {%i}
		#IF (%ismember(@weaponName,@weaponSaveString.1.1)) {
			#VAR %eval("@weaponKeywordVariable") {@weaponSaveString.2.1}
			#VAR weaponType {ShortBlades}
			#ABORT 1
			} {}
		}
	#FORALL @weaponListSpears {
		#VAR weaponSaveString {%i}
		#IF (%ismember(@weaponName,@weaponSaveString.1.1)) {
			#VAR %eval("@weaponKeywordVariable") {@weaponSaveString.2.1}
			#VAR weaponType {Spears}
			#ABORT 1
			} {}
		}
	#FORALL @weaponListStaves {
		#VAR weaponSaveString {%i}
		#IF (%ismember(@weaponName,@weaponSaveString.1.1)) {
			#VAR %eval("@weaponKeywordVariable") {@weaponSaveString.2.1}
			#VAR weaponType {Staves}
			#ABORT 1
			} {}
		}
	}
#ALIAS weaponSheathedFunction {
	#IF (%ismember(%1,@weaponLastName)) {} {
		#VAR weaponLastName {%1}
		weaponSetKeyword last
		}
	#IF (%ismember(%1,@weaponSheathedName)) {} {
		#VAR weaponSheathedName {%1}
		weaponSetKeyword sheathed
		}
	#VAR weaponCurrentName {}
	#VAR weaponCurrentKeyword {}
	}
#ALIAS weaponThrownFunction {
	#IF (%ismember(%1,@weaponLastName)) {} {
		#VAR weaponLastName {%1}
		weaponSetKeyword last
		}
	#IF (%ismember(%1,@weaponThrownName)) {} {
		#VAR weaponThrownName {%1}
		weaponSetKeyword thrown
		}
	#VAR weaponCurrentName {}
	#VAR weaponCurrentKeyword {}
	}
#ALIAS weaponTypes {
	#IF (%len(%1)=0) {
		#SHOW {""}
		#ECHO {"Weapon Types"}
		#FORALL @weaponTypeList {#SHOW {%i}}
		} {}
	#IF (%len(%1)>0) {
		#IF (%ismember(%1,%lower(@weaponTypeList))) {
			#SHOW {""}
			#ECHO {" #) Weapon Name|Weapon Keyword"}
			#FORALL %eval(%concat("@","weaponList",%eval(%1))) {#SHOW {" "%ismember((%i),%eval(%concat("@","weaponList",%eval(%1))))") "%i}}
			} {#SHOW {""}
			#SHOW {""}
			#ECHO {Not a valid weapon type... (use lower case)}}
			#SHOW {""}
		} {}
	}
#VAR weaponAutoWieldDisarm {1}
#VAR weaponCurrentKeyword {}
#VAR weaponCurrentName {}
#VAR weaponKeywordVariable {}
#VAR weaponLastKeyword {}
#VAR weaponLastName {}
#VAR weaponListAxes {("a belt axe"|axe)|("a bronze headed war axe"|axe)|("a cleaver of hundredfold steel"|cleaver)|("a cleaver of steel"|cleaver)|("a copper headed throwing axe"|axe)|("a dark, grim axe"|axe)|("a double axe with a long black haft"|axe)|("a finely crafted axe"|axe)|("a handaxe"|axe)|("a heavy axe with a dark, serrated blade"|axe)|("a long-hafted axe with a gold-inlaid head"|axe)|("a long-handled war axe"|axe)|("a saw-toothed axe"|axe)|("a scallop bladed axe"|axe)|("a sharp pickaxe"|pickaxe)|("a single-edged battleaxe"|axe)|("a splayed-back battleaxe"|axe)|("a titanic spiked axe of ebon steel"|axe)|("a wicked knife bladed axe"|axe)|("a woodcutter's axe"|axe)|("an enormous double-bladed battleaxe"|axe)|("Malfeasor, the twin bladed scythe of blood ebony"|malfeasor)|("the Hatchet of Hawkwing"|hatchet)}
#VAR weaponListBows {("a stout longbow"|bow)}
#VAR weaponListClubs {("a bone club"|club)|("a bone-crushing mattock"|mattock)|("a cudgel"|cudgel)|("a dented mace"|mace)|("a hammer"|hammer)|("a heavy club"|club)|("a hefty mace"|mace)|("a massive war maul"|maul)|("a metal banded cudgel"|cudgel)|("a nasty spiked club"|club)|("a razor studded mace"|mace)|("a silver-banded war mallet"|mallet)|("a spiked double handed warhammer"|warhammer)|("a s'redit prod"|prod)|("a steel flanged mace"|mace)|("a tainted war maul"|maul)|("a war hammer"|hammer)}
#VAR weaponListFencingBlades {("a fencing foil"|foil)|("a heron-marked foil"|foil)|("a pearl-handled epee"|epee)|("a rapier"|rapier)|("a ruby-worked rapier"|rapier)|("a sabre"|sabre)|("an emerald-hilted foil"|foil)|("an estoc"|estoc)|("an opal adorned steel tulwar"|tulwar)}
#VAR weaponListFlails {("a ball-and-chain"|chain)|("a bronze chain scourge"|chain)|("a cat of nine tails"|whip)|("a chain scythe"|chain)|("a dark leather riding-crop"|crop)|("a dark, barbed flail"|flail)|("a dusty morning star"|star)|("a firedrop-handled bullwhip"|whip)|("a gilded shambok"|shambok)|("a horsewhip of darkened leather"|horsewhip)|("a hydra"|hydra)|("a jewel handled quirt"|quirt)|("a long length of metal chain"|chain)|("a long, spiked flail"|flail)|("a metal chain"|chain)|("a razored whip"|whip)|("a short whip"|whip)|("a spiked flail"|flail)|("a steel-thorned whip"|whip)|("a tanned reptile tail"|tail)|("a tarnished flail"|flail)|("a tattered whip"|whip)|("a thick bullhide whip"|whip)|("a trainer's whip"|whip)|("a two-handed binnol"|binnol)|("a wood-handled horseman's flail"|flail)|("an iron morning star"|star)|("the battle flail of Shol Arbela"|flail)|("the Blue Scourge of Justice"|justice)}
#VAR weaponListJavelins {("a dark oak javelin"|javelin)|("a harpoon"|harpoon)|("a hide-bound javelin"|javelin)|("a light metal javelin"|javelin)|("a long pine javelin"|javelin)|("a long, barbed javelin"|javelin)|("a long, thin hunting spear"|spear)|("a sharp stone spear"|spear)|("a sleek hunting spear"|spear)}
#VAR weaponListLances {("a diamond-tipped lance"|lance)|("a hollow steel lance"|lance)|("a jousting lance"|lance)|("a steel-shafted lance"|lance)|("a thick leatherleaf lance"|lance)}
#VAR weaponListLongBlades {("a basket-hilted longblade"|sword)|("a brass hilted general's sword"|sword)|("a ceremonial sword"|sword)|("a chipped bastard sword"|sword)|("a colossal sword with an iron pommel"|sword)|("a double bladed broadsword"|sword)|("a falchion"|sword)|("a gargantuan gilded bastard sword"|sword)|("a gleaming black longsword"|sword)|("a great claymore"|sword)|("a hand-and-a-half sword"|sword)|("a heron marked blade with a jeweled hilt"|sword)|("a heron marked longsword"|sword)|("a huge two-handed black sword"|sword)|("a jagged edged warsword"|sword)|("a long lathe practice sword"|sword)|("a long, thin sword"|sword)|("a pale steel longsword"|sword)|("a scimitar with a hilt of twisted iron"|sword)|("a soldier's riding blade"|sword)|("a two-fisted flamberge"|sword)|("a two-handed broadsword"|sword)|("a wickedly scythed longsword"|sword)|("an ivory and gold-hilted longsword"|sword)|("an oddly curved greatsword"|sword)|("an oddly curved longsword"|sword)|("the ancient greatsword, Justice"|sword)|("the massive blade, da'es Ashan"|sword)}
#VAR weaponListMediumBlades {("a black sword"|sword)|("a blade of blazing flame"|sword)|("a blue steel scimitar with silver-wrapped hilt"|sword)|("a bone-handled blade"|sword)|("a cutlass"|sword)|("a gleaming blacksword"|sword)|("a heron mark blade"|sword)|("a kris-edged flamberge"|sword)|("a lathe practice sword"|sword)|("a plain, slightly curved blade"|sword)|("a razored falcata"|sword)|("a ring-quilloned sword"|sword)|("a shining silver plated sword"|sword)|("a shortsword"|sword)|("a single-edged broadsword"|sword)|("a tarnished shortsword"|sword)|("an amber hilted iron sword"|sword)|("the Sword of Kirukan"|sword)}
#VAR weaponListPolearms {("a barbed steel trident"|trident)|("a blue steel trident"|trident)|("a dull glaive"|glaive)|("a heavy gilded glaive"|glaive)|("a hooked pole"|pole)|("a long halberd"|halberd)|("a long poleaxe"|poleaxe)|("a pike"|pike)|("a trolloc catchpole"|catchpole)|("Al'Akir's Despair, the bronze-headed voulge of the Malkieri"|voulge)}
#VAR weaponListProjectiles {("a dirty rock"|rock)|("a huge boulder"|boulder)|("a sharp, pointed dart"|dart)|("a sharpened metal disk"|disk)|("a throwing knife"|knife)|("a throwing spike"|spike)}
#VAR weaponListShortBlades {("a blackened steel kris"|kris)|("a blackened, half-moon sickle"|sickle)|("a curved clear dagger"|clear)|("a dagger"|dagger)|("a dagger of gleaming steel"|dagger)|("a dagger of green jade"|jade)|("a dirk"|dirk)|("a gold hilted stiletto"|stiletto)|("a jeweled dagger"|dagger)|("a long, heavy knife"|knife)|("a pair of aran'gar and osan'gar duelling daggers"|daggers)|("a pair of moonstone hilted dirks"|moonstone)|("a ruby dagger"|dagger)|("a rusty dagger"|dagger)|("a set of steel sai"|sai)|("a sharp, red stone dagger"|red)|("a shiny copper dagger"|dagger)|("a silver hilted stiletto"|stiletto)|("a silver-winged basilard"|basilard)|("a stiletto"|stiletto)|("a triple bladed dagger"|dagger)|("an ebony shortblade"|ebony)|("an ivory-hilted stiletto"|stiletto)|("Mandarb'a'dai"|dagger)|("the glazed katars of Mondoran"|katars)}
#VAR weaponListSpears {("a bamboo shafted short spear"|spear)|("a bent hunting spear"|spear)|("a boarspear"|spear)|("a dark blue tasseled spear"|spear)|("a forked headed spear"|spear)|("a gold-chased war spear"|spear)|("a heartstone tipped spear with an ivory shaft"|spear)|("a hooked spear"|spear)|("a jade shafted partisan"|partisan)|("a langdebeve"|spear)|("a large steel spear"|spear)|("a long shoulder spear"|spear)|("a partisan"|partisan)|("a partisan bearing the arms of Ghealdan"|partisan)|("a shocklance"|shocklance)|("a short steel spear"|spear)|("a sleek, mahogany-shafted spear"|spear)|("a steel bladed spontoon"|spear)|("a winged spear with silver etching"|spear)}
#VAR weaponListStaves {("a blackwood quarterstaff"|staff)|("a bladed feather staff"|staff)|("a cane"|cane)|("a carved sourgum staff"|staff)|("a gnarled wooden staff"|staff)|("a honed staff of light metal"|staff)|("a leather capped helmlock staff"|staff)|("a leatherleaf staff"|staff)|("a quarterstaff"|staff)|("a spiralling snakewood staff"|staff)|("a staff of alder"|staff)|("a staff of iridescent blue"|staff)|("a staff of sungwood"|staff)|("a staff sheathed in fur"|staff)|("a sturdy bamboo staff"|staff)|("a walking staff"|staff)|("a willow stave"|staff)|("a yew staff"|staff)|("an intricate vine-carved staff"|staff)|("an ironshod staff of oak"|staff)|("an old hoe"|hoe)|("Laman's Folly, the spiraled staff of Avendoraldera"|staff)}
#VAR weaponName {}
#VAR weaponSaveName {}
#VAR weaponSaveString {}
#VAR weaponSheathedKeyword {}
#VAR weaponSheathedName {}
#VAR weaponThrownKeyword {}
#VAR weaponThrownName {}
#VAR weaponType {}
#VAR weaponTypeList {Axes|Bows|Clubs|FencingBlades|Flails|Javelins|Lances|LongBlades|MediumBlades|Polearms|Projectiles|ShortBlades|Spears|Staves}
#TRIGGER {^~<wielded~>%s&weaponName%s$} {weaponCurrentFunction @weaponName}
#TRIGGER {^~<wielded two-handed~>%s&weaponName%s$} {weaponCurrentFunction @weaponName}
#TRIGGER {You sheath &weaponName into *.$} {weaponSheathedFunction @weaponName}
#TRIGGER {You try to quietly draw &weaponName from *.$} {weaponCurrentFunction @weaponName}
#TRIGGER {You throw &weaponName at %2.$} {weaponThrownFunction @weaponName}
#TRIGGER {You wield &{weaponName}.$} {weaponCurrentFunction @weaponName}
#TRIGGER {You wield &weaponName with both hands.$} {weaponCurrentFunction @weaponName}
#TRIGGER {You draw &weaponName in a smooth motion, Unfolding the Fan.$} {weaponCurrentFunction @weaponName}
#TRIGGER {You swing &weaponName smoothly, Folding the Fan.$} {weaponSheathedFunction @weaponName}
#TRIGGER {You stop using &{weaponName}.$} {weaponLastFunction @weaponName}
#TRIGGER {^&weaponName is thrown from your hands as you are struck.$} {weaponDisarmWieldGround @weaponName}
#TRIGGER {^You fumble &weaponName as you are struck.$} {weaponDisarmWield @weaponName}
#TRIGGER {~> &weaponName is thrown from your hands as you are struck.$} {weaponDisarmWieldGround @weaponName}
#TRIGGER {~> You fumble &weaponName as you are struck.$} {weaponDisarmWield @weaponName}
#CLASS 0
Table of Contents
Last edited by Taziar on Tue May 23, 2017 3:57 am, edited 8 times in total.
House of Medakan cMUD Scripts: Table of Contents

House of Medakan zMUD Scripts: Table of Contents
Taziar
Posts: 157
Joined: Tue Apr 07, 2015 8:24 pm
Location: Seattle

Re: House of Medakan

Post by Taziar »

OUTDATED
See new version here: Practice


-----Practices-----
*needs updated ScoreStat script to function. Required for DamageTesting script.

Practice %'s automatically save when viewing practices at any trainer.
-Note: after completing a practice session type practice command an additional time to save most current data.
--Note: saves pracs for each character and automatically resets when a practice reset is detected.

Type showPracs to view list of current practices and prac points remaining of current character.
-Note: will show practiced weaves and spell points remaining if character is a channeler.
Type pracSave to save a .txt file of current character's current practices.
-Note: file is called pracSavedData.txt and will add current character prac list to the file when command is typed.
Type pracReset to reset practice data.

All .txt files are saved in the directory currently containing zMUD.exe

Code: Select all

#CLASS {Practices} {setdef}
#ALIAS helpPracs {
	#SHOW {""}
	#SHOW {""}
	#SHOW {"-----Practices Settings and Commands-----"}
	#SHOW {"*Needs updated ScoreStat script to function."}
	#SHOW {""}
	#SHOW {"Practice %'s automatically save when viewing practices at any trainer."}
	#SHOW {"-Note: after completing a practice session type practice command an additional time to save most current data."}
	#SHOW {"--Note: saves pracs for each character and automatically resets when a practice reset is detected."}
	#SHOW {""}
	#SHOW {"Type showPracs to view list of current practices and prac points remaining of current character."}
	#SHOW {"-Note: will show practiced weaves and spell points remaining if character is a channeler."}
	#SHOW {""}
	#SHOW {"Type pracSave to save a .txt file of current character's current practices."}
	#SHOW {""}
	#SHOW {"Type pracReset to reset practice data."}
	#SHOW {""}
	#SHOW {"All .txt files are saved in the directory currently containing zMUD.exe"}
	#SHOW {""}
	}
#ALIAS showPracs {
	#SHOW {""}
	#SHOW {You have %eval(%concat("@pracRemaining",@scoreName)) practice points remaining.}
	#IF (@statClass=channeler) {#SHOW {You have %eval(%concat("@pracSpellRemaining",@scoreName)) spell points remaining.}} {}
	#SHOW {"You are skilled in the following:"}
	pracShowLoop
	}
#ALIAS pracShowLoop {
	#FORALL @pracListWarrior1 {
		#IF (%eval(%concat("@prac",@scoreName,%i))>0) {
			#SHOW {%i %repeat(" ",%eval(20-%len(%i))) ~(%eval(%concat("@prac",@scoreName,%i))~%~)}
			} {}
		}
	#FORALL @pracListWarrior2 {
		#IF (%eval(%concat("@prac",@scoreName,%i))>0) {
			#SHOW {%i %repeat(" ",%eval(20-%len(%i))) ~(%eval(%concat("@prac",@scoreName,%i))~%~)}
			} {}
		}
	#FORALL @pracListRogue {
		#IF (%eval(%concat("@prac",@scoreName,%i))>0) {
			#SHOW {%i %repeat(" ",%eval(20-%len(%i))) ~(%eval(%concat("@prac",@scoreName,%i))~%~)}
			} {}
		}
	#FORALL @pracListHunter {
		#IF (%eval(%concat("@prac",@scoreName,%i))>0) {
			#SHOW {%i %repeat(" ",%eval(20-%len(%i))) ~(%eval(%concat("@prac",@scoreName,%i))~%~) %if((%ismember(%i,@pracListHunterLevels)),~(Level %eval(%concat("@prac",@scoreName,%i,"Level"))~),"")}
			} {}
		}
	#IF (@statClass=channeler) {
		#FORALL @pracListElement {
			#IF (%eval(%concat("@prac",@scoreName,%i))>0) {
				#SHOW {%i %repeat(" ",%eval(20-%len(%i))) ~(%eval(%concat("@prac",@scoreName,%i))~%~) ~(Level %eval(%concat("@prac",@scoreName,%i,"Level"))~)}
				} {}
			}
		} {}
	#IF (@statClass=channeler) {
		#FORALL @pracListWeaves1 {
			#IF (%eval(%concat("@prac",@scoreName,%i))>0) {
				#SHOW {%i %repeat(" ",%eval(20-%len(%i))) ~(%eval(%concat("@prac",@scoreName,%i))~%~)}
				} {}
			}
		} {}
	#IF (@statClass=channeler) {
		#FORALL @pracListWeaves2 {
			#IF (%eval(%concat("@prac",@scoreName,%i))>0) {
				#SHOW {%i %repeat(" ",%eval(20-%len(%i))) ~(%eval(%concat("@prac",@scoreName,%i))~%~)}
				} {}
			}
		} {}
	#IF (@statClass=channeler) {
		#FORALL @pracListWeaves3 {
			#IF (%eval(%concat("@prac",@scoreName,%i))>0) {
				#SHOW {%i %repeat(" ",%eval(20-%len(%i))) ~(%eval(%concat("@prac",@scoreName,%i))~%~)}
				} {}
			}
		} {}
	#IF (@statClass=channeler) {
		#FORALL @pracListWeaves4 {
			#IF (%eval(%concat("@prac",@scoreName,%i))>0) {
				#SHOW {%i %repeat(" ",%eval(20-%len(%i))) ~(%eval(%concat("@prac",@scoreName,%i))~%~)}
				} {}
			}
		} {}
	#IF (@statClass=channeler) {
		#FORALL @pracListWeaves5 {
			#IF (%eval(%concat("@prac",@scoreName,%i))>0) {
				#SHOW {%i %repeat(" ",%eval(20-%len(%i))) ~(%eval(%concat("@prac",@scoreName,%i))~%~)}
				} {}
			}
		} {}
	}
#ALIAS pracSave {
	#FILE 1 pracSavedData.txt
	#WRITE 1 {}
	#WRITE 1 {@scoreName @statClass @statGender @statRace %concat("Level:",@scoreLevel)}
	#WRITE 1 {%concat("STR:",@statSTR) %concat("INT:",@statINT) %concat("WIL:",@statWIL) %concat("DEX:",@statDEX) %concat("CON:",@statCON) %time(c)}
	#WRITE 1 {---Rogue Skills---}
	#FORALL @pracListRogue {
		#IF (%eval(%concat("@prac",@scoreName,%i))>0) {
			#WRITE 1 {%i %repeat(" ",%eval(20-%len(%i))) %eval(%concat("@prac",@scoreName,%i))}
			}
		} {}
	#WRITE 1 {---Warrior Skills---}
	#FORALL @pracListWarrior1 {
		#IF (%eval(%concat("@prac",@scoreName,%i))>0) {
			#WRITE 1 {%i %repeat(" ",%eval(20-%len(%i))) %eval(%concat("@prac",@scoreName,%i))}
			}
		} {}
	#FORALL @pracListWarrior2 {
		#IF (%eval(%concat("@prac",@scoreName,%i))>0) {
			#WRITE 1 {%i %repeat(" ",%eval(20-%len(%i))) %eval(%concat("@prac",@scoreName,%i))}
			}
		} {}
	#WRITE 1 {---Hunter Skills---}
	#FORALL @pracListHunter {
		#IF (%eval(%concat("@prac",@scoreName,%i))>0) {
			#WRITE 1 {%i %repeat(" ",%eval(20-%len(%i))) %eval(%concat("@prac",@scoreName,%i))}
			}
		} {}
	#WRITE 1 {---Channeler Skills---}
	#FORALL @pracListElement {
		#IF (%eval(%concat("@prac",@scoreName,%i))>0) {
			#WRITE 1 {%i %repeat(" ",%eval(20-%len(%i))) %eval(%concat("@prac",@scoreName,%i))}
			}
		} {}
	#FORALL @pracListWeaves1 {
		#IF (%eval(%concat("@prac",@scoreName,%i))>0) {
			#WRITE 1 {%i %repeat(" ",%eval(20-%len(%i))) %eval(%concat("@prac",@scoreName,%i))}
			}
		} {}
	#FORALL @pracListWeaves2 {
		#IF (%eval(%concat("@prac",@scoreName,%i))>0) {
			#WRITE 1 {%i %repeat(" ",%eval(20-%len(%i))) %eval(%concat("@prac",@scoreName,%i))}
			}
		} {}
	#FORALL @pracListWeaves3 {
		#IF (%eval(%concat("@prac",@scoreName,%i))>0) {
			#WRITE 1 {%i %repeat(" ",%eval(20-%len(%i))) %eval(%concat("@prac",@scoreName,%i))}
			}
		} {}
	#FORALL @pracListWeaves4 {
		#IF (%eval(%concat("@prac",@scoreName,%i))>0) {
			#WRITE 1 {%i %repeat(" ",%eval(20-%len(%i))) %eval(%concat("@prac",@scoreName,%i))}
			}
		} {}
	#FORALL @pracListWeaves5 {
		#IF (%eval(%concat("@prac",@scoreName,%i))>0) {
			#WRITE 1 {%i %repeat(" ",%eval(20-%len(%i))) %eval(%concat("@prac",@scoreName,%i))}
			}
		} {}
	#CLOSE 1
	}
#ALIAS pracCharacter {
	#PRIORITY {
		#IF (%ismember(@scoreName,@pracCharacterList)) {} {
			#SHOW {""}
			#SHOW {Please wait while Practices script loads...}
			#ADDITEM pracCharacterList @scoreName
			#VAR %concat("pracRemaining",@scoreName) {0} {_nodef}
			#FORALL @pracListRogue {#VAR %concat("prac",@scoreName,%proper(%i)) {0} {_nodef}}
			#FORALL @pracListWarrior1 {#VAR %concat("prac",@scoreName,%proper(%i)) {0} {_nodef}}
			#FORALL @pracListWarrior2 {#VAR %concat("prac",@scoreName,%proper(%i)) {0} {_nodef}}
			#FORALL @pracListHunter {#VAR %concat("prac",@scoreName,%proper(%i)) {0} {_nodef}}
			#FORALL @pracListHunterLevels {#VAR %concat("prac",@scoreName,%proper(%i),"Level") {0} {_nodef}}
			#IF (@statClass=channeler) {#VAR %concat("pracSpellRemaining",@scoreName) {0} {_nodef}} {}
			#IF (@statClass=channeler) {#FORALL @pracListElement {#VAR %concat("prac",@scoreName,%proper(%i)) {0} {_nodef}}} {}
			#IF (@statClass=channeler) {#FORALL @pracListElement {#VAR %concat("prac",@scoreName,%proper(%i),"Level") {0} {_nodef}}} {}
			#IF (@statClass=channeler) {#FORALL @pracListWeaves1 {#VAR %concat("prac",@scoreName,%proper(%i)) {0} {_nodef}}} {}
			#IF (@statClass=channeler) {#FORALL @pracListWeaves2 {#VAR %concat("prac",@scoreName,%proper(%i)) {0} {_nodef}}} {}
			#IF (@statClass=channeler) {#FORALL @pracListWeaves3 {#VAR %concat("prac",@scoreName,%proper(%i)) {0} {_nodef}}} {}
			#IF (@statClass=channeler) {#FORALL @pracListWeaves4 {#VAR %concat("prac",@scoreName,%proper(%i)) {0} {_nodef}}} {}
			#IF (@statClass=channeler) {#FORALL @pracListWeaves5 {#VAR %concat("prac",@scoreName,%proper(%i)) {0} {_nodef}}} {}
			#SHOW {...Practices script loaded.}
			}
		}
	}
#ALIAS pracTriggers {
	#IF (%1=on) {
		#T+ pracTrigger
		#T+ pracTrigger2
		#T+ pracTrigger3
		#T+ pracTrigger4
		#T+ pracTrigger5
		#T+ pracTrigger6
		} {}
	#IF (%1=off) {
		#T- pracTrigger
		#T- pracTrigger2
		#T- pracTrigger3
		#T- pracTrigger4
		#T- pracTrigger5
		#T- pracTrigger6
		} {}
	}
#ALIAS pracReset {
	#PRIORITY {
		#VAR %concat("pracRemaining",@scoreName) {0}
		#FORALL @pracListRogue {#VAR %concat("prac",@scoreName,%proper(%i)) {0}}
		#FORALL @pracListWarrior1 {#VAR %concat("prac",@scoreName,%proper(%i)) {0}}
		#FORALL @pracListWarrior2 {#VAR %concat("prac",@scoreName,%proper(%i)) {0}}
		#FORALL @pracListHunter {#VAR %concat("prac",@scoreName,%proper(%i)) {0}}
		#FORALL @pracListHunterLevels {#VAR %concat("prac",@scoreName,%proper(%i),"Level") {0}}
		#IF (@statClass=channeler) {#VAR %concat("pracSpellRemaining",@scoreName) {0}} {}
		#IF (@statClass=channeler) {#FORALL @pracListElement {#VAR %concat("prac",@scoreName,%proper(%i)) {0}}} {}
		#IF (@statClass=channeler) {#FORALL @pracListElement {#VAR %concat("prac",@scoreName,%proper(%i),"Level") {0}}} {}
		#IF (@statClass=channeler) {#FORALL @pracListWeaves1 {#VAR %concat("prac",@scoreName,%proper(%i)) {0}}} {}
		#IF (@statClass=channeler) {#FORALL @pracListWeaves2 {#VAR %concat("prac",@scoreName,%proper(%i)) {0}}} {}
		#IF (@statClass=channeler) {#FORALL @pracListWeaves3 {#VAR %concat("prac",@scoreName,%proper(%i)) {0}}} {}
		#IF (@statClass=channeler) {#FORALL @pracListWeaves4 {#VAR %concat("prac",@scoreName,%proper(%i)) {0}}} {}
		#IF (@statClass=channeler) {#FORALL @pracListWeaves5 {#VAR %concat("prac",@scoreName,%proper(%i)) {0}}} {}
		#ECHO {}
		#ECHO {Practice data is reset.}
		}
	}
#VAR pracCharacterList {}
#VAR pracListRogue {"steal"|"pick"|"hide"|"sneak"|"dodge"|"attack"|"backstab"|"palm"|"shortBlades"|"projectiles"}
#VAR pracListWarrior1 {"bash"|"kick"|"rescue"|"shieldParry"|"charge"|"longBlades"|"mediumBlades"|"fencingBlades"|"axes"|"clubs"}
#VAR pracListWarrior2 {"staves"|"lances"|"spears"|"javelins"|"polearms"|"flails"|"bows"|"chains"|"crossbows"|"slings"|"whips"}
#VAR pracListHunter {"search"|"track"|"ride"|"wisdomLore"|"swim"|"notice"|"camouflage"|"rangerSneak"|"coverTracks"|"survival"}
#VAR pracListHunterLevels {"ride"|"wisdomlore"|"survival"}
#VAR pracListElement {"earth"|"air"|"fire"|"water"|"spirit"}
#VAR pracListWeaves1 {"armor"|"blind"|"callLightning"|"changeWeather"|"chill"|"contagion"|"createFog"|"createFood"|"createPhantomObject"|"createWater"}
#VAR pracListWeaves2 {"cureBlindness"|"cureCriticalWounds"|"cureFear"|"cureLightWounds"|"curePoison"|"cureSeriousWounds"|"deafen"|"earthquake"}
#VAR pracListWeaves3 {"elementalStaff"|"fear"|"fireball"|"flameStrike"|"freeze"|"gate"|"hailstorm"|"hammerOfAir"|"heal"|"hurricane"|"iceSpikes"}
#VAR pracListWeaves4 {"incinerate"|"lightBall"|"locateLife"|"locateObject"|"poison"|"refresh"|"removeContagion"|"removeWarding"|"senseWarding"|"shield"}
#VAR pracListWeaves5 {"silence"|"sleep"|"sliceWeaves"|"slow"|"sonicBoom"|"strength"|"swordOfFlame"|"travel"|"wardObject"|"wardingVsDamage"|"wardingVsEvil"|"whirlpool"}
#TRIGGER {You have got (%d) practice sessions left.$} {#VAR %concat("pracRemaining",@scoreName) {%1}}
#COND {^You can practice any of these skills, at a cost of (%d):$} {
	pracTriggers on
	#ALARM +3 {pracTriggers off}
	} {within|param=1}
#TRIGGER {You have got (%d) spell practice sessions left.$} {#VAR %concat("pracSpellRemaining",@scoreName) {%1}}
#COND {^You can practice elements, but they become increasingly costly.$} {
	pracTriggers on
	#ALARM +3 {pracTriggers off}
	} {within|param=1}
#TRIGGER "pracTrigger" {^(%w)%s~((%trim(*))~%~)$} {#VAR %concat("prac",@scoreName,%1) {%2}} "" {disable}
#TRIGGER "pracTrigger2" {^(%w)%s(%w)%s~((%trim(*))~%~)$} {#VAR %concat("prac",@scoreName,%1,%2) {%3}} "" {disable}
#TRIGGER "pracTrigger3" {^(%w)%s(%w)%s(%w)%s~((%trim(*))~%~)$} {#VAR %concat("prac",@scoreName,%1,%2,%3) {%4}} "" {disable}
#TRIGGER "pracTrigger4" {^(%w)%sLevel%s(%d)%s~((%trim(*))~%~)$} {
	#VAR %concat("prac",@scoreName,%1,"Level") {%2}
	#VAR %concat("prac",@scoreName,%1) {%3}
	} "" {disable}
#TRIGGER "pracTrigger5" {^(%w)%s(%w)%sLevel%s(%d)%s~((%trim(*))~%~)$} {
	#VAR %concat("prac",@scoreName,%1,%2,"Level") {%3}
	#VAR %concat("prac",@scoreName,%1,%2) {%4}
	} "" {disable}
#TRIGGER "pracTrigger6" {~* Press ~<Return~> to continue, q to quit ~*~>} {
	#SUB {} {$}
	#CR
	} "" {disable|prompt|nocr}
#TRIGGER {^You've forgotten everything you've learned!$} {pracReset}
#CLASS 0
Table of Contents
Last edited by Taziar on Tue May 09, 2017 5:37 pm, edited 3 times in total.
House of Medakan cMUD Scripts: Table of Contents

House of Medakan zMUD Scripts: Table of Contents
Taziar
Posts: 157
Joined: Tue Apr 07, 2015 8:24 pm
Location: Seattle

Re: House of Medakan

Post by Taziar »

OUTDATED
see new version here: MeleeRound

-----MeleeRounds-----
Needs ScoreStat script for individual character data tracking.
MeleeRounds script need for Clumsy disarm tracker to function.
*After installing script you must reconnect with newest updated ScoreStat script installed.

Keeps track of all hits, parries, and dodges in melee combat.
Cross race stats tracking of hits, parries, and dodges.

Type helpMeleeRounds to view help file in game.

Type attackCount to show melee round hits and misses attempted for current character.
Type attackCrossCount to show melee round hits and misses attempted against Cross Race opponents.

Type defendCount to show melee round hits and misses against current character.
Type defendCrossCount to show melee round hits and misses attempted by Cross Race opponents.

Type meleeCount to show total melee round data for current character.
Type meleeCrossCount to show melee round data for Cross Race attack and defend totals.
Type meleeTotalCount to show ALL melee round data for current character.

Type resetMeleeSession to reset data for current session only.
Type resetMelee to reset ALL data for current character.

Code: Select all

#CLASS {MeleeRounds} {setdef}
#ALIAS helpMeleeRounds {
	#SHOW {""}
	#SHOW {""}
	#SHOW {"----Melee Rounds Script Commands----"}
	#SHOW {"HoM ScoreStat script required to have MOT and Count commands function properly."}
	#SHOW {"HoM WeaponType script required to have disarm stats track properly."}
	#SHOW {""}
	#SHOW {"Type attackCount to show melee round hits and misses attempted for current character."}
	#SHOW {"Type attackCrossCount to show melee round hits and misses attempted against Cross Race opponents."}
	#SHOW {""}
	#SHOW {"Type defendCount to show melee round hits and misses against current character."}
	#SHOW {"Type defendCrossCount to show melee round hits and misses attempted by Cross Race opponents."}
	#SHOW {""}
	#SHOW {"Type meleeCount to show total melee round data for current character."}
	#SHOW {"Type meleeCrossCount to show melee round data for Cross Race attack and defend totals."}
	#SHOW {"Type meleeTotalCount to show ALL melee round data for current character."}
	#SHOW {""}
	#SHOW {"Type resetMeleeSession to reset data for current session only."}
	#SHOW {""}	
	#SHOW {"Type resetMelee to reset ALL data for current character."}
	#SHOW {""}
	}
#ALIAS attackCount {
	#MATH attackRoundPercent (@attackRoundHit*100 / @attackRoundTotal)
	#MATH %concat("attack",@scoreName,"RoundPercent") (%eval(%concat("@attack",@scoreName,"RoundHit"))*100 / %eval(%concat("@attack",@scoreName,"RoundTotal")))
	#MATH attackRoundPercentParry (@attackRoundParry*100 / @attackRoundTotal)
	#MATH %concat("attack",@scoreName,"RoundPercentParry") (%eval(%concat("@attack",@scoreName,"RoundParry"))*100 / %eval(%concat("@attack",@scoreName,"RoundTotal")))
	#MATH attackRoundPercentDodge (@attackRoundDodge*100 / @attackRoundTotal)
	#MATH %concat("attack",@scoreName,"RoundPercentDodge") (%eval(%concat("@attack",@scoreName,"RoundDodge"))*100 / %eval(%concat("@attack",@scoreName,"RoundTotal")))
	#SHOW {""}
	#SHOW {"Attack Data:"}
	#ECHO {This session you've hit your opponents @attackRoundHit out of @attackRoundTotal total melee rounds (@{attackRoundPercent}~% hit)}
	#ECHO {This session your opponents have parried @attackRoundParry out of @attackRoundTotal total melee rounds (@{attackRoundPercentParry}~% parried)}
	#ECHO {This session your opponents have dodged @attackRoundDodge out of @attackRoundTotal total melee rounds (@{attackRoundPercentDodge}~% dodged)}
	#SHOW {Total since %eval(%concat("@",@scoreName,"MOT")):}
	#ECHO {You've hit your opponents %eval(%concat("@attack",@scoreName,"RoundHit")) out of %eval(%concat("@attack",@scoreName,"RoundTotal")) total melee rounds (%eval(%concat("@attack",@scoreName,"RoundPercent"))~% hit)}
	#ECHO {Your opponents have parried %eval(%concat("@attack",@scoreName,"RoundParry")) out of %eval(%concat("@attack",@scoreName,"RoundTotal")) total melee rounds (%eval(%concat("@attack",@scoreName,"RoundPercentParry"))~% parried)}
	#ECHO {Your opponents have dodged %eval(%concat("@attack",@scoreName,"RoundDodge")) out of %eval(%concat("@attack",@scoreName,"RoundTotal")) total melee rounds (%eval(%concat("@attack",@scoreName,"RoundPercentDodge"))~% dodged)}
	#SHOW {""}
	}
#ALIAS attackCrossCount {
	#MATH attackCrossRacePercent (@attackCrossRaceHit*100 / @attackCrossRaceTotal)
	#MATH %concat("attack",@scoreName,"CrossRacePercent") (%eval(%concat("@attack",@scoreName,"CrossRaceHit"))*100 / %eval(%concat("@attack",@scoreName,"CrossRaceTotal")))
	#MATH attackCrossRacePercentParry (@attackCrossRaceParry*100 / @attackCrossRaceTotal)
	#MATH %concat("attack",@scoreName,"CrossRacePercentParry") (%eval(%concat("@attack",@scoreName,"CrossRaceParry"))*100 / %eval(%concat("@attack",@scoreName,"CrossRaceTotal")))
	#MATH attackCrossRacePercentDodge (@attackCrossRaceDodge*100 / @attackCrossRaceTotal)
	#MATH %concat("attack",@scoreName,"CrossRacePercentDodge") (%eval(%concat("@attack",@scoreName,"CrossRaceDodge"))*100 / %eval(%concat("@attack",@scoreName,"CrossRaceTotal")))
	#SHOW {""}
	#SHOW {"Cross Race Attack Data:"}
	#ECHO {This session you've hit your opponents @attackCrossRaceHit out of @attackCrossRaceTotal total melee rounds (@{attackCrossRacePercent}~% hit)}
	#ECHO {This session your opponents have parried @attackCrossRaceParry out of @attackCrossRaceTotal total melee rounds (@{attackCrossRacePercentParry}~% parried)}
	#ECHO {This session your opponents have dodged @attackCrossRaceDodge out of @attackCrossRaceTotal total melee rounds (@{attackCrossRacePercentDodge}~% dodged)}
	#SHOW {Cross Race Attacks since %eval(%concat("@",@scoreName,"MOT")):}
	#ECHO {You've hit your opponents %eval(%concat("@attack",@scoreName,"CrossRaceHit")) out of %eval(%concat("@attack",@scoreName,"CrossRaceTotal")) total melee rounds (%eval(%concat("@attack",@scoreName,"CrossRacePercent"))~% hit)}
	#ECHO {Your opponents have parried %eval(%concat("@attack",@scoreName,"CrossRaceParry")) out of %eval(%concat("@attack",@scoreName,"CrossRaceTotal")) total melee rounds (%eval(%concat("@attack",@scoreName,"CrossRacePercentParry"))~% parried)}
	#ECHO {Your opponents have dodged %eval(%concat("@attack",@scoreName,"CrossRaceDodge")) out of %eval(%concat("@attack",@scoreName,"CrossRaceTotal")) total melee rounds (%eval(%concat("@attack",@scoreName,"CrossRacePercentDodge"))~% dodged)}
	#SHOW {""}
	}
#ALIAS defendCount {
	#MATH defendRoundPercent (@defendRoundHit*100 / @defendRoundTotal)
	#MATH %concat("defend",@scoreName,"RoundPercent") (%eval(%concat("@defend",@scoreName,"RoundHit"))*100 / %eval(%concat("@defend",@scoreName,"RoundTotal")))
	#MATH defendRoundPercentParry (@defendRoundParry*100 / @defendRoundTotal)
	#MATH %concat("defend",@scoreName,"RoundPercentParry") (%eval(%concat("@defend",@scoreName,"RoundParry"))*100 / %eval(%concat("@defend",@scoreName,"RoundTotal")))
	#MATH defendRoundPercentDodge (@defendRoundDodge*100 / @defendRoundTotal)
	#MATH %concat("defend",@scoreName,"RoundPercentDodge") (%eval(%concat("@defend",@scoreName,"RoundDodge"))*100 / %eval(%concat("@defend",@scoreName,"RoundTotal")))
	#SHOW {""}
	#SHOW {"Defense Data:"}
	#ECHO {This session you've been hit @defendRoundHit out of @defendRoundTotal total melee rounds (@{defendRoundPercent}~% hit)}
	#ECHO {This session you've parried @defendRoundParry out of @defendRoundTotal total melee rounds (@{defendRoundPercentParry}~% parried)}
	#ECHO {This session you've dodged @defendRoundDodge out of @defendRoundTotal total melee rounds (@{defendRoundPercentDodge}~% dodged)}
	#SHOW {Total since %eval(%concat("@",@scoreName,"MOT")):}
	#ECHO {You've been hit %eval(%concat("@defend",@scoreName,"RoundHit")) out of %eval(%concat("@defend",@scoreName,"RoundTotal")) total melee rounds (%eval(%concat("@defend",@scoreName,"RoundPercent"))~% hit)}
	#ECHO {You've parried %eval(%concat("@defend",@scoreName,"RoundParry")) out of %eval(%concat("@defend",@scoreName,"RoundTotal")) total melee rounds (%eval(%concat("@defend",@scoreName,"RoundPercentParry"))~% parried)}
	#ECHO {You've dodged %eval(%concat("@defend",@scoreName,"RoundDodge")) out of %eval(%concat("@defend",@scoreName,"RoundTotal")) total melee rounds (%eval(%concat("@defend",@scoreName,"RoundPercentDodge"))~% dodged)}
	#SHOW {""}
	}
#ALIAS defendCrossCount {
	#SHOW {""}
	#MATH defendCrossRacePercent (@defendCrossRaceHit*100 / @defendCrossRaceTotal)
	#MATH %concat("defend",@scoreName,"CrossRacePercent") (%eval(%concat("@defend",@scoreName,"CrossRaceHit"))*100 / %eval(%concat("@defend",@scoreName,"CrossRaceTotal")))
	#MATH defendCrossRacePercentParry (@defendCrossRaceParry*100 / @defendCrossRaceTotal)
	#MATH %concat("defend",@scoreName,"CrossRacePercentParry") (%eval(%concat("@defend",@scoreName,"CrossRaceParry"))*100 / %eval(%concat("@defend",@scoreName,"CrossRaceTotal")))
	#MATH defendCrossRacePercentDodge (@defendCrossRaceDodge*100 / @defendCrossRaceTotal)
	#MATH %concat("defend",@scoreName,"CrossRacePercentDodge") (%eval(%concat("@defend",@scoreName,"CrossRaceDodge"))*100 / %eval(%concat("@defend",@scoreName,"CrossRaceTotal")))
	#SHOW {"Cross Race Defense Data:"}
	#ECHO {This session you've been hit @defendCrossRaceHit out of @defendCrossRaceTotal total melee rounds (@{defendCrossRacePercent}~% hit)}
	#ECHO {This session you've parried @defendCrossRaceParry out of @defendCrossRaceTotal total melee rounds (@{defendCrossRacePercentParry}~% parried)}
	#ECHO {This session you've dodged @defendCrossRaceDodge out of @defendCrossRaceTotal total melee rounds (@{defendCrossRacePercentDodge}~% dodged)}
	#SHOW {Cross Race Defense since %eval(%concat("@",@scoreName,"MOT")):}
	#ECHO {You've been hit %eval(%concat("@defend",@scoreName,"CrossRaceHit")) out of %eval(%concat("@defend",@scoreName,"CrossRaceTotal")) total melee rounds (%eval(%concat("@defend",@scoreName,"CrossRacePercent"))~% hit)}
	#ECHO {You've parried %eval(%concat("@defend",@scoreName,"CrossRaceParry")) out of %eval(%concat("@defend",@scoreName,"CrossRaceTotal")) total melee rounds (%eval(%concat("@defend",@scoreName,"CrossRacePercentParry"))~% parried)}
	#ECHO {You've dodged %eval(%concat("@defend",@scoreName,"CrossRaceDodge")) out of %eval(%concat("@defend",@scoreName,"CrossRaceTotal")) total melee rounds (%eval(%concat("@defend",@scoreName,"CrossRacePercentDodge"))~% dodged)}
	#SHOW {""}
	}
#ALIAS meleeCount {
	#SHOW {""}
	attackCount
	defendCount
	}
#ALIAS meleeCrossCount {
	#SHOW {""}
	attackCrossCount
	defendCrossCount
	}
#ALIAS meleeTotalCount {
	#SHOW {""}
	attackCount
	defendCount
	attackCrossCount
	defendCrossCount
	}
#ALIAS meleeCharacter {
	#PRIORITY {	
		#IF (%ismember(@scoreName,@meleeCharacterList)) {} {
			#SHOW {""}
			#SHOW {Please wait while Melee Rounds script loads...}
			#ADDITEM meleeCharacterList @scoreName
			#VAR %concat("attack",@scoreName,"CrossRaceDodge") {0} {_nodef}
			#VAR %concat("attack",@scoreName,"CrossRaceHit") {0} {_nodef}
			#VAR %concat("attack",@scoreName,"CrossRaceParry") {0} {_nodef}
			#VAR %concat("attack",@scoreName,"CrossRacePercent") {0} {_nodef}
			#VAR %concat("attack",@scoreName,"CrossRacePercentDodge") {0} {_nodef}
			#VAR %concat("attack",@scoreName,"CrossRacePercentParry") {0} {_nodef}
			#VAR %concat("attack",@scoreName,"CrossRaceTotal") {0} {_nodef}
			#VAR %concat("attack",@scoreName,"RoundDodge") {0} {_nodef}
			#VAR %concat("attack",@scoreName,"RoundHit") {0} {_nodef}
			#VAR %concat("attack",@scoreName,"RoundParry") {0} {_nodef}
			#VAR %concat("attack",@scoreName,"RoundPercent") {0} {_nodef}
			#VAR %concat("attack",@scoreName,"RoundPercentDodge") {0} {_nodef}
			#VAR %concat("attack",@scoreName,"RoundPercentParry") {0} {_nodef}
			#VAR %concat("attack",@scoreName,"RoundTotal") {0} {_nodef}
			#VAR %concat("defend",@scoreName,"CrossRaceDodge") {0} {_nodef}
			#VAR %concat("defend",@scoreName,"CrossRaceHit") {0} {_nodef}
			#VAR %concat("defend",@scoreName,"CrossRaceParry") {0} {_nodef}
			#VAR %concat("defend",@scoreName,"CrossRacePercent") {0} {_nodef}
			#VAR %concat("defend",@scoreName,"CrossRacePercentDodge") {0} {_nodef}
			#VAR %concat("defend",@scoreName,"CrossRacePercentParry") {0} {_nodef}
			#VAR %concat("defend",@scoreName,"CrossRaceTotal") {0} {_nodef}
			#VAR %concat("defend",@scoreName,"RoundDodge") {0} {_nodef}
			#VAR %concat("defend",@scoreName,"RoundHit") {0} {_nodef}
			#VAR %concat("defend",@scoreName,"RoundParry") {0} {_nodef}
			#VAR %concat("defend",@scoreName,"RoundPercent") {0} {_nodef}
			#VAR %concat("defend",@scoreName,"RoundPercentDodge") {0} {_nodef}
			#VAR %concat("defend",@scoreName,"RoundPercentParry") {0} {_nodef}
			#VAR %concat("defend",@scoreName,"RoundTotal") {0} {_nodef}
			#VAR %concat(@scoreName,"MOT") {%time("m/d/20y")} {_nodef}
			#SHOW {...Melee Rounds script loaded.}
			}
		}
	}
#ALIAS resetMelee {
	#RESET {meleeRounds}
	#VAR %concat("attack",@scoreName,"CrossRaceDodge") {0}
	#VAR %concat("attack",@scoreName,"CrossRaceHit") {0}
	#VAR %concat("attack",@scoreName,"CrossRaceParry") {0}
	#VAR %concat("attack",@scoreName,"CrossRacePercent") {0}
	#VAR %concat("attack",@scoreName,"CrossRacePercentDodge") {0}
	#VAR %concat("attack",@scoreName,"CrossRacePercentParry") {0}
	#VAR %concat("attack",@scoreName,"CrossRaceTotal") {0}
	#VAR %concat("attack",@scoreName,"RoundDodge") {0}
	#VAR %concat("attack",@scoreName,"RoundHit") {0}
	#VAR %concat("attack",@scoreName,"RoundParry") {0}
	#VAR %concat("attack",@scoreName,"RoundPercent") {0}
	#VAR %concat("attack",@scoreName,"RoundPercentDodge") {0}
	#VAR %concat("attack",@scoreName,"RoundPercentParry") {0}
	#VAR %concat("attack",@scoreName,"RoundTotal") {0}
	#VAR %concat("defend",@scoreName,"CrossRaceDodge") {0}
	#VAR %concat("defend",@scoreName,"CrossRaceHit") {0}
	#VAR %concat("defend",@scoreName,"CrossRaceParry") {0}
	#VAR %concat("defend",@scoreName,"CrossRacePercent") {0}
	#VAR %concat("defend",@scoreName,"CrossRacePercentDodge") {0}
	#VAR %concat("defend",@scoreName,"CrossRacePercentParry") {0}
	#VAR %concat("defend",@scoreName,"CrossRaceTotal") {0}
	#VAR %concat("defend",@scoreName,"RoundDodge") {0}
	#VAR %concat("defend",@scoreName,"RoundHit") {0}
	#VAR %concat("defend",@scoreName,"RoundParry") {0}
	#VAR %concat("defend",@scoreName,"RoundPercent") {0}
	#VAR %concat("defend",@scoreName,"RoundPercentDodge") {0}
	#VAR %concat("defend",@scoreName,"RoundPercentParry") {0}
	#VAR %concat("defend",@scoreName,"RoundTotal") {0}
	#VAR %concat(@scoreName,"MOT") {%time("m/d/20y")}
	#ECHO {Melee Rounds data for @scoreName is now reset.}
	}
#ALIAS resetMeleeSession {
	#RESET {meleeRounds}
	}
#VAR meleeAttack {blast|cleave|crush|hack|hit|lance|pierce|pound|scythe|shoot|slash|slice|smite|stab|sting|strike|whip}
#VAR meleeAttacked {blasts|cleaves|crushes|hacks|hits|lances|pierces|pounds|scythes|shoots|slashes|slices|smites|stabs|stings|strikes|whips}
#VAR meleeAttacking {blasting|cleaving|crushing|hacking|hitting|lancing|piercing|pounding|scything|shooting|slashing|slicing|smiting|stabbing|stinging|striking|whipping}
#VAR meleeCharacterList {}
#VAR meleeSwordForms {Arc of the Moon|Bundling Straw|Cat on Hot Sand|Hummingbird Kisses the Honeyrose|Lightning of Three Prongs|Lizard in the Thornbush|Low Wind Rising|Moon Rises Over the Water|Parting the Silk|Ribbon in the Air|Stones Falling from the Cliff|Striking the Spark|The Cat Dances on the Wall|The Courtier Taps His Fan|The Falcon Swoops|The Falling Leaf|The Heron Spreads Its Wings|The Kingfisher Takes a Silverback|The River Undercuts the Bank|The Swallow Takes Flight|The Wood Grouse Dances|Thistledown Floats on the Wind|Tower of Morning|Water Flows Downhill|Whirlwind on the Mountain|Wind and Rain}
#VAR bodypart {body|branch|crown|head|left arm|left foot|left foreleg|left hand|left leg|left paw|left wing|right arm|right foot|right foreleg|right hand|right leg|right paw|right wing|roots|trunk}
#VAR attackCrossRaceDodge {0} {0}
#VAR attackCrossRaceHit {0} {0}
#VAR attackCrossRaceParry {0} {0}
#VAR attackCrossRacePercent {0} {0}
#VAR attackCrossRacePercentDodge {0} {0}
#VAR attackCrossRacePercentParry {0} {0}
#VAR attackCrossRaceTotal {0} {0}
#VAR attackRoundDodge {0} {0}
#VAR attackRoundHit {0} {0}
#VAR attackRoundParry {0} {0}
#VAR attackRoundPercent {0} {0}
#VAR attackRoundPercentDodge {0} {0}
#VAR attackRoundPercentParry {0} {0}
#VAR attackRoundTotal {0} {0}
#VAR defendCrossRaceDodge {0} {0}
#VAR defendCrossRaceTotal {0} {0}
#VAR defendCrossRaceHit {0} {0}
#VAR defendCrossRaceParry {0} {0}
#VAR defendCrossRacePercent {0} {0}
#VAR defendCrossRacePercentDodge {0} {0}
#VAR defendCrossRacePercentParry {0} {0}
#VAR defendRoundDodge {0} {0}
#VAR defendRoundHit {0} {0}
#VAR defendRoundParry {0} {0}
#VAR defendRoundPercent {0} {0}
#VAR defendRoundPercentDodge {0} {0}
#VAR defendRoundPercentParry {0} {0}
#VAR defendRoundTotal {0} {0}
#TRIGGER {You assume {@meleeSwordForms}, {@meleeAttacking} %1 {@bodypart}} {
	#ADD attackRoundTotal 1
	#ADD attackRoundHit 1
	#ADD %concat("attack",@scoreName,"RoundTotal") 1
	#ADD %concat("attack",@scoreName,"RoundHit") 1
	#IF (@weaponType=FencingBlades) {clumsyDisarmRoundCount} {}
	} "" {}
#TRIGGER {You assume {@meleeSwordForms}, {@meleeAttacking} ~*(%w)*'s {@bodypart}} {
	#ADD attackCrossRaceHit 1
	#ADD attackCrossRaceTotal 1
	#ADD %concat("attack",@scoreName,"CrossRaceTotal") 1
	#ADD %concat("attack",@scoreName,"CrossRaceHit") 1
	} "" {}
#TRIGGER {You flow effortlessly into {@meleeSwordForms}, {@meleeAttacking} %1 {@bodypart}} {
	#ADD attackRoundTotal 1
	#ADD attackRoundHit 1
	#ADD %concat("attack",@scoreName,"RoundTotal") 1
	#ADD %concat("attack",@scoreName,"RoundHit") 1
	#IF (@weaponType=FencingBlades) {clumsyDisarmRoundCount} {}
	} "" {}
#TRIGGER {You flow effortlessly into {@meleeSwordForms}, {@meleeAttacking} ~*(%w)*'s {@bodypart}} {
	#ADD attackCrossRaceHit 1
	#ADD attackCrossRaceTotal 1
	#ADD %concat("attack",@scoreName,"CrossRaceTotal") 1
	#ADD %concat("attack",@scoreName,"CrossRaceHit") 1
	} "" {}
#TRIGGER {You gracefully flow into {@meleeSwordForms}, {@meleeAttacking} %1 {@bodypart}} {
	#ADD attackRoundTotal 1
	#ADD attackRoundHit 1
	#ADD %concat("attack",@scoreName,"RoundTotal") 1
	#ADD %concat("attack",@scoreName,"RoundHit") 1
	#IF (@weaponType=FencingBlades) {clumsyDisarmRoundCount} {}
	} "" {}
#TRIGGER {You gracefully flow into {@meleeSwordForms}, {@meleeAttacking} ~*(%w)*'s {@bodypart}} {
	#ADD attackCrossRaceHit 1
	#ADD attackCrossRaceTotal 1
	#ADD %concat("attack",@scoreName,"CrossRaceTotal") 1
	#ADD %concat("attack",@scoreName,"CrossRaceHit") 1
	} "" {}
#TRIGGER {You spin effortlessly into {@meleeSwordForms}, {@meleeAttacking} %1 {@bodypart}} {
	#ADD attackRoundTotal 1
	#ADD attackRoundHit 1
	#ADD %concat("attack",@scoreName,"RoundTotal") 1
	#ADD %concat("attack",@scoreName,"RoundHit") 1
	#IF (@weaponType=FencingBlades) {clumsyDisarmRoundCount} {}
	} "" {}
#TRIGGER {You spin effortlessly into {@meleeSwordForms}, {@meleeAttacking} ~*(%w)*'s {@bodypart}} {
	#ADD attackCrossRaceHit 1
	#ADD attackCrossRaceTotal 1
	#ADD %concat("attack",@scoreName,"CrossRaceTotal") 1
	#ADD %concat("attack",@scoreName,"CrossRaceHit") 1
	} "" {}
#TRIGGER {You {@meleeAttack} %1 {@bodypart}} {
	#ADD attackRoundTotal 1
	#ADD attackRoundHit 1
	#ADD %concat("attack",@scoreName,"RoundTotal") 1
	#ADD %concat("attack",@scoreName,"RoundHit") 1
	#IF (@weaponType=FencingBlades) {clumsyDisarmRoundCount} {}
	} "" {}
#TRIGGER {You {@meleeAttack} ~*(%w)*'s {@bodypart}} {
	#ADD attackCrossRaceHit 1
	#ADD attackCrossRaceTotal 1
	#ADD %concat("attack",@scoreName,"CrossRaceTotal") 1
	#ADD %concat("attack",@scoreName,"CrossRaceHit") 1
	} "" {}
#TRIGGER {You barely {@meleeAttack} %1 {@bodypart}.$} {
	#ADD attackRoundTotal 1
	#ADD attackRoundHit 1
	#ADD %concat("attack",@scoreName,"RoundTotal") 1
	#ADD %concat("attack",@scoreName,"RoundHit") 1
	#IF (@weaponType=FencingBlades) {clumsyDisarmRoundCount} {}
	} "" {}
#TRIGGER {You barely {@meleeAttack} ~*(%w)*'s {@bodypart}.$} {
	#ADD attackCrossRaceHit 1
	#ADD attackCrossRaceTotal 1
	#ADD %concat("attack",@scoreName,"CrossRaceTotal") 1
	#ADD %concat("attack",@scoreName,"CrossRaceHit") 1
	} "" {}
#TRIGGER {You tickle %1 {@bodypart} with your {@meleeAttack}.$} {
	#ADD attackRoundTotal 1
	#ADD attackRoundHit 1
	#ADD %concat("attack",@scoreName,"RoundTotal") 1
	#ADD %concat("attack",@scoreName,"RoundHit") 1
	#IF (@weaponType=FencingBlades) {clumsyDisarmRoundCount} {}
	} "" {}
#TRIGGER {You tickle ~*(%w)*'s {@bodypart} with your {@meleeAttack}.$} {
	#ADD attackCrossRaceHit 1
	#ADD attackCrossRaceTotal 1
	#ADD %concat("attack",@scoreName,"CrossRaceTotal") 1
	#ADD %concat("attack",@scoreName,"CrossRaceHit") 1
	} "" {}
#TRIGGER {You barely tickle %1 {@bodypart} with your {@meleeAttack}.$} {
	#ADD attackRoundTotal 1
	#ADD attackRoundHit 1
	#ADD %concat("attack",@scoreName,"RoundTotal") 1
	#ADD %concat("attack",@scoreName,"RoundHit") 1
	#IF (@weaponType=FencingBlades) {clumsyDisarmRoundCount} {}
	} "" {}
#TRIGGER {You barely tickle ~*(%w)*'s {@bodypart} with your {@meleeAttack}.$} {
	#ADD attackCrossRaceHit 1
	#ADD attackCrossRaceTotal 1
	#ADD %concat("attack",@scoreName,"CrossRaceTotal") 1
	#ADD %concat("attack",@scoreName,"CrossRaceHit") 1
	} "" {}
#TRIGGER {You try to {@meleeAttack} %1, but %2 deflects the blow.$} {
	#ADD attackRoundTotal 1
	#ADD attackRoundParry 1
	#ADD %concat("attack",@scoreName,"RoundTotal") 1
	#ADD %concat("attack",@scoreName,"RoundParry") 1
	#IF (@weaponType=FencingBlades) {clumsyDisarmRoundCount} {}
	} "" {}
#TRIGGER {You try to {@meleeAttack} ~*(%w)~*, but %2 deflects the blow.$} {
	#ADD attackCrossRaceParry 1
	#ADD attackCrossRaceTotal 1
	#ADD %concat("attack",@scoreName,"CrossRaceTotal") 1
	#ADD %concat("attack",@scoreName,"CrossRaceParry") 1
	} "" {}
#TRIGGER {You try to {@meleeAttack} %1, but %2 parries successfully.$} {
	#ADD attackRoundTotal 1
	#ADD attackRoundParry 1
	#ADD %concat("attack",@scoreName,"RoundTotal") 1
	#ADD %concat("attack",@scoreName,"RoundParry" 1)
	#IF (@weaponType=FencingBlades) {clumsyDisarmRoundCount} {}
	} "" {}
#TRIGGER {You try to {@meleeAttack} ~*(%w)~*, but %2 parries successfully.$} {
	#ADD attackCrossRaceParry 1
	#ADD attackCrossRaceTotal 1
	#ADD %concat("attack",@scoreName,"CrossRaceTotal") 1
	#ADD %concat("attack",@scoreName,"CrossRaceParry") 1
	} "" {}
#TRIGGER {%1 swiftly dodges your attempt to {@meleeAttack} %2.$} {
	#ADD attackRoundTotal 1
	#ADD attackRoundDodge 1
	#ADD %concat("attack",@scoreName,"RoundTotal") 1
	#ADD %concat("attack",@scoreName,"RoundDodge") 1
	#IF (@weaponType=FencingBlades) {clumsyDisarmRoundCount} {}
	} "" {}
#TRIGGER {~*(%w)~* swiftly dodges your attempt to {@meleeAttack} %2.$} {
	#ADD attackCrossRaceDodge 1
	#ADD attackCrossRaceTotal 1
	#ADD %concat("attack",@scoreName,"CrossRaceTotal") 1
	#ADD %concat("attack",@scoreName,"CrossRaceDodge") 1
	} "" {}
#TRIGGER {%1 {@meleeAttacked} your {@bodypart}} {
	#ADD defendRoundTotal 1
	#ADD defendRoundHit 1
	#ADD %concat("defend",@scoreName,"RoundTotal") 1
	#ADD %concat("defend",@scoreName,"RoundHit") 1
	} "" {}
#TRIGGER {~*(%w)~* {@meleeAttacked} your {@bodypart}} {
	#ADD defendCrossRaceHit 1
	#ADD defendCrossRaceTotal 1
	#ADD %concat("defend",@scoreName,"CrossRaceTotal") 1
	#ADD %concat("defend",@scoreName,"CrossRaceHit") 1
	} "" {}
#TRIGGER {~*(%w)~* barely {@meleeAttacked} your {@bodypart}.$} {
	#ADD defendCrossRaceHit 1
	#ADD defendCrossRaceTotal 1
	#ADD %concat("defend",@scoreName,"CrossRaceTotal") 1
	#ADD %concat("defend",@scoreName,"CrossRaceHit") 1
	} "" {}
#TRIGGER {%1 barely tickles your {@bodypart} with * {@meleeAttack}.$} {
	#ADD defendRoundTotal 1
	#ADD defendRoundHit 1
	#ADD %concat("defend",@scoreName,"RoundTotal") 1
	#ADD %concat("defend",@scoreName,"RoundHit") 1
	} "" {}
#TRIGGER {~*(%w)~* barely tickles your {@bodypart} with * {@meleeAttack}.$} {
	#ADD defendCrossRaceHit 1
	#ADD defendCrossRaceTotal 1
	#ADD %concat("defend",@scoreName,"CrossRaceTotal") 1
	#ADD %concat("defend",@scoreName,"CrossRaceHit") 1
	} "" {}
#TRIGGER {%1 tickles your {@bodypart} with * {@meleeAttack}.$} {
	#ADD defendRoundTotal 1
	#ADD defendRoundHit 1
	#ADD %concat("defend",@scoreName,"RoundTotal") 1
	#ADD %concat("defend",@scoreName,"RoundHit") 1
	} "" {}
#TRIGGER {~*(%w)~* tickles your {@bodypart} with * {@meleeAttack}.$} {
	#ADD defendCrossRaceHit 1
	#ADD defendCrossRaceTotal 1
	#ADD %concat("defend",@scoreName,"CrossRaceTotal") 1
	#ADD %concat("defend",@scoreName,"CrossRaceHit") 1
	} "" {}
#TRIGGER {%1 tries to {@meleeAttack} you, but you parry successfully.} {
	#ADD defendRoundTotal 1
	#ADD defendRoundParry 1
	#ADD %concat("defend",@scoreName,"RoundTotal") 1
	#ADD %concat("defend",@scoreName,"RoundParry") 1
	} "" {}
#TRIGGER {~*(%w)~* tries to {@meleeAttack} you, but you parry successfully.} {
	#ADD defendCrossRaceParry 1
	#ADD defendCrossRaceTotal 1
	#ADD %concat("defend",@scoreName,"CrossRaceTotal") 1
	#ADD %concat("defend",@scoreName,"CrossRaceParry") 1
	} "" {}
#TRIGGER {%1 tries to {@meleeAttack} you, but you deflect the blow.} {
	#ADD defendRoundTotal 1
	#ADD defendRoundParry 1
	#ADD %concat("defend",@scoreName,"RoundTotal") 1
	#ADD %concat("defend",@scoreName,"RoundParry") 1
	} "" {}
#TRIGGER {~*(%w)~* tries to {@meleeAttack} you, but you deflect the blow.} {
	#ADD defendCrossRaceParry 1
	#ADD defendCrossRaceTotal 1
	#ADD %concat("defend",@scoreName,"CrossRaceTotal") 1
	#ADD %concat("defend",@scoreName,"CrossRaceParry") 1
	} "" {}
#TRIGGER {You swiftly dodge %1 attempt to {@meleeAttack} you.} {
	#ADD defendRoundTotal 1
	#ADD defendRoundDodge 1
	#ADD %concat("defend",@scoreName,"RoundTotal") 1
	#ADD %concat("defend",@scoreName,"RoundDodge") 1
	} "" {}
#TRIGGER {You swiftly dodge ~*(%w)*'s attempt to {@meleeAttack} you.} {
	#ADD defendCrossRaceDodge 1
	#ADD defendCrossRaceTotal 1
	#ADD %concat("defend",@scoreName,"CrossRaceTotal") 1
	#ADD %concat("defend",@scoreName,"CrossRaceDodge") 1
	} "" {}
#CLASS 0
Table of Contents
Last edited by Taziar on Wed Apr 19, 2017 1:15 am, edited 1 time in total.
House of Medakan cMUD Scripts: Table of Contents

House of Medakan zMUD Scripts: Table of Contents
Locked