Print Page | Close Window

Battle Condenser

Printed From: Dark and Shattered Lands (DSL)
Category: Mud Client Help
Forum Name: Mac Client Scripts
Forum Description: (scripts for Mac Clients)
URL: http://www.dsl-mud.org/forum/forum_posts.asp?TID=60043
Printed Date: 27 April 2024 at 8:07am
Software Version: Web Wiz Forums 10.17 - http://www.webwizforums.com


Topic: Battle Condenser
Posted By: gnome power
Subject: Battle Condenser
Date Posted: 10 March 2012 at 1:00am
Quote Functions of this program:

1. Redirect combat spam to a miniconsole in small font, so you can tell at a glance what the combat looks like, but you aren't spammed by it in your main console window.

2. Echo condensed combat round summaries in your main console, which is robust to any number of attackers, any number of targets, any number of weapon nouns, skills etc.  Reports attacker, victim, total damage, number of hits, number of attempted hits, weapon nouns, and flags.

3. Generates HP, MP, and MV visual meters that adjust in real time.

4.  If under the Killing Rage status, the HP bar converts to a display that reports the total damage you have taken since raging, and the number of hp vamp flags you have inflicted since raging.  This resets as soon as your rage drops.

5. Generates a tick timer meter that adjusts in real time.

6. Gags unnecessary text, such as dodges, parries, chain arcs, etc.

7. Generates an xp meter that changes in real time. (You have to type score once and let it capture your character level in order to calibrate itself.)

note: As it is, this script is subject to a couple stipulations:

a. Your prompt must be a specific format: %T-(charactername) <%h/%H %m/%M %v/%V> (%S) [%e] (%X/%x)%c

b. You can't just pick and choose parts of the script to put in, unfortunately.  As it stands now, the prompt, tick timer, and condenser components are connected and removing any one will break the system.

c. This script is long, so prepare for a long post...


Steps to install:

1. In the Triggers tab, add a new group called Battle Condenser Script, and leave it empty.

In this Triggers tab, add the following items and input the following information:

a. 

name: Battle Damage Analyzer

regex field 0:

^(Your|[a-zA-Z\s\']+\'s) ([a-zA-Z]+\s?[a-zA-Z]*) (does\sGHASTLY\sthings\sto|does\sHORRID\sthings\sto|does\sDREADFUL\sthings\sto|does\sHIDEOUS\sthings\sto|does\sINDESCRIBABLE\sthings\sto|does\sUNSPEAKABLE\sthings\sto|misses|scratches|grazes|hits|injures|wounds|mauls|decimates|devastates|maims|MUTILATES|DISEMBOWELS|DISMEMBERS|MASSACRES|MANGLES|\*\*\*\sDEMOLISHES*\s\*\*\*|\*\*\*\sDEVASTATES*\s\*\*\*|\=\=\=\sOBLITERATES*\s\=\=\=|\>\>\>\sANNIHILATES\s\<\<\<|\<\<\<\sERADICATES\s\>\>\>) ([-a-zA-Z\'\s]+)([\.!])$

regex field 1:

^([a-zA-Z\s]+) (do[es]*\sGHASTLY\sthings\sto|do[es]*\sHORRID\sthings\sto|do[es]*\sDREADFUL\sthings\sto|do[es]*\sHIDEOUS\sthings\sto|do[es]*\sINDESCRIBABLE\sthings\sto|do[es]*\sUNSPEAKABLE\sthings\sto|miss[es]*|scratch[es]*|graze[s]*|hit[s]*|injure[s]*|wound[s]*|maul[s]*|decimate[s]*|devastate[s]*|maim[s]*|MUTILATE[S]*|DISEMBOWEL[S]*|DISMEMBER[S]*|MASSACRE[S]*|MANGLE[S]*|\*\*\*\sDEMOLISH[ES]*\s\*\*\*|\*\*\*\sDEVASTATE[S]*\s\*\*\*|\=\=\=\sOBLITERATE[S]*\s\=\=\=|\>\>\>\sANNIHILATE[S]*\s\<\<\<|\<\<\<\sERADICATE[S]*\s\>\>\>) ([-a-zA-Z\'\s]+)([\.!])$

(Don't forget to set both pulldown menus to perl regex)

Then add the following script to the main field:

--gnome power 3/9/12 version of battle condenser

damAssign = 0

punctuation=""

tail = ""

color = "olive_drab"

predam=""

deleteLine()

if rex.match(matches[6],"[.!]") then

attacker = matches[2]

noun = matches[3]

damVerb = matches[4]

damTarget = matches[5]

punctuation = matches[6]

else

attacker = matches[2]

noun = ""

damVerb = matches[3]

damTarget = matches[4]

punctuation = matches[5]

end

if rex.match(attacker,"'s") then

attacker = string.sub(attacker, 1, -3) -- chop two last letters off

end

if rex.match(damVerb,"scratch[es]*") then

damAssign = 2.5

color = "green"

elseif rex.match(damVerb,"graze[s]*") then

damAssign = 6.5

color = "green"

elseif rex.match(damVerb,"hit[s]*") then

damAssign = 10.5

color = "green"

elseif rex.match(damVerb,"injure[s]*") then

damAssign = 14.5

color = "green"

elseif rex.match(damVerb,"wound[s]*") then

damAssign = 18.5

color = "green"

elseif rex.match(damVerb,"maul[s]*") then

damAssign = 22.5

color = "green"

elseif rex.match(damVerb,"decimate[s]*") then

damAssign = 26.5

color = "green"

elseif rex.match(damVerb,"devastate[s]*") then

damAssign = 30.5

color = "green"

elseif rex.match(damVerb,"maim[s]*") then

damAssign = 34.5

color = "green"

elseif rex.match(damVerb,"MUTILATE[S]*") then

damAssign = 38.5

color = "yellow"

elseif rex.match(damVerb,"DISEMBOWEL[S]*") then

damAssign = 42.5

color = "yellow"

elseif rex.match(damVerb,"DISMEMBER[S]*") then

damAssign = 46.5

color = "yellow"

elseif rex.match(damVerb,"MASSACRE[S]*") then

damAssign = 50.5

color = "yellow"

elseif rex.match(damVerb,"MANGLE[S]*") then

damAssign = 54.5

color = "yellow"

elseif rex.match(damVerb,"DEMOLISH[ES]") then

damAssign = 58.5

predam = "*** "

color = "red"

tail = " ***"

if rex.match(damVerb,"DEMOLISHES") then damVerb = "DEMOLISHES"

elseif rex.match(damVerb,"DEMOLISH") then damVerb = "DEMOLISH" end

elseif rex.match(damVerb,"DEVASTATE[S]") then

damAssign = 68

predam = "*** "

color = "red"

tail = " ***"

if rex.match(damVerb,"DEVASTATES") then damVerb = "DEVASTATES"

elseif rex.match(damVerb,"DEVASTATE") then damVerb = "DEVASTATE" end

elseif rex.match(damVerb,"OBLITERATE[S]") then

damAssign = 88

predam = "=== "

color = "red"

tail = " ==="

damVerb = "OBLITERATES"

elseif rex.match(damVerb,"ANNIHILATE[S]*") then

damAssign = 113

predam = ">>> "

color = "red"

tail = " <<<"

if rex.match(damVerb,"ANNIHILATES") then damVerb = "ANNIHILATES"

elseif rex.match(damVerb,"ANNIHILATE") then damVerb = "ANNIHILATE" end

elseif rex.match(damVerb,"ERADICATE[S]") then

damAssign = 138

predam = "<<< "

color = "red"

tail = " >>>"

if rex.match(damVerb,"ERADICATES") then damVerb = "ERADICATES"

elseif rex.match(damVerb,"ERADICATE") then damVerb = "ERADICATE" end

elseif rex.match(damVerb,"GHASTLY") then

damAssign = 163

damVerb = "GHASTLY"

elseif rex.match(damVerb,"HORRID") then

damAssign = 188

damVerb = "HORRID"

elseif rex.match(damVerb,"DREADFUL") then

damAssign = 213

damVerb = "DREADFUL"

elseif rex.match(damVerb,"HIDEOUS") then

damAssign = 238

damVerb = "HIDEOUS"

elseif rex.match(damVerb,"INDESCRIBABLE") then

damAssign = 263

damVerb = "INDESCRIBABLE"

elseif rex.match(damVerb,"UNSPEAKABLE") then

damAssign = 276

damVerb = "UNSPEAKABLE"

end

cecho("battle_window",attacker .. " ".. noun .." ".. predam .."<"..color..">" ..damVerb .."<white>" .. tail .. " " .. damTarget .. punctuation .. " [ " .. damAssign .. " ]\n") --reports damage into the miniconsole

if not battle_data then

battle_data = {}

end

if not battle_data[attacker] then

battle_data[attacker]= {}

end

if not battle_data[attacker][damTarget] then

battle_data[attacker][damTarget]= {}

end

if not battle_data[attacker][damTarget][noun] then

battle_data[attacker][damTarget][noun]= {}

end

if not battle_data[attacker][damTarget][noun]["hits"] then

battle_data[attacker][damTarget][noun]["hits"]= 0

end

if not battle_data[attacker][damTarget][noun]["misses"] then

battle_data[attacker][damTarget][noun]["misses"]= 0

end

if damAssign > 0 then

battle_data[attacker][damTarget][noun]["hits"] = battle_data[attacker][damTarget][noun]["hits"] + 1

else

battle_data[attacker][damTarget][noun]["misses"] = battle_data[attacker][damTarget][noun]["misses"] + 1

end --if

if not battle_data[attacker][damTarget][noun]["total_hits"] then

battle_data[attacker][damTarget][noun]["total_hits"]=0

end

battle_data[attacker][damTarget][noun]["total_hits"] = battle_data[attacker][damTarget][noun]["total_hits"] + 1

if not battle_data[attacker][damTarget][noun]["dam"] then

battle_data[attacker][damTarget][noun]["dam"] = 0

end

battle_data[attacker][damTarget][noun]["dam"] = battle_data[attacker][damTarget][noun]["dam"] + damAssign

if tostring(promptCurrentHP) == "???" then

if not damageTaken then

damageTaken = 0

end

if rex.match(damTarget,"[Yy]ou[r]*") then

damageTaken = damageTaken + damAssign

end

else

damageTaken = 0

end






Replies:
Posted By: gnome power
Date Posted: 10 March 2012 at 1:01am
b. Add item

name: Enemy Battle Evasion Counter

regex 0 (remember to set everything to "perl regex" pulldown menu option):

^You parry ([a-zA-Z\s\']+) attack.

regex 1:

^You block ([a-zA-Z\s\']+) attack with your shield.

regex 2:

^You dodge ([a-zA-Z\s\']+) attack.

(note: this doesn't count danger senses currently.  The echos don't allow you to know who the attacker is, so I'm not sure how to deal with that. Suggestions are welcome.)

main script:

attacker = matches[2]

if rex.match(attacker,"'s") then

attacker = string.sub(attacker, 1, -3) -- chop two last letters off

end

--attacker = attacker:gsub("^%l", string.upper) -- uppercase first letter only

if not battle_data then

battle_data = battle_data or {}

end

if not battle_data[attacker] then

battle_data[attacker]=battle_data[attacker] or {}

end

if not battle_data[attacker]["you"] then

battle_data[attacker]["you"] = {}

end

if not battle_data[attacker]["you"]["evaded"] then

battle_data[attacker]["you"]["evaded"] = {}

end

if not battle_data[attacker]["you"]["evaded"]["misses"] then

--battle_data[attacker]["you"]["evaded"]["misses"] = {}

battle_data[attacker]["you"]["evaded"]["misses"] = 0

end

battle_data[attacker]["you"]["evaded"]["misses"] = battle_data[attacker]["you"]["evaded"]["misses"] + 1

c.  New item

name: My Battle Evasion Counter

perl regex 0:

^([a-zA-Z\s\']+) dodges your attack.

perl regex 1:

^([a-zA-Z\s\']+) parries your attack.

perl regex 2:

^([a-zA-Z\s\']+) blocks your attack with a shield.

perl regex 3:

^([a-zA-Z\s\']+) senses they're about to be hit and deflects the blow.

main field:

if matches[2] ~= nil then

damTarget = matches[2]

end

if not battle_data then

battle_data = battle_data or {}

end

if not battle_data["You"] then

battle_data["You"] = {}

end

if not battle_data["You"][damTarget] then

battle_data["You"][damTarget] = {}

end

if not battle_data["You"][damTarget]["evaded"] then

battle_data["You"][damTarget]["evaded"] = {}

end

if not battle_data["You"][damTarget]["evaded"]["total_hits"] then

--battle_data["You"][damTarget]["evaded"]["total_hits"] = {}

battle_data["You"][damTarget]["evaded"]["total_hits"] = 0

end

battle_data["You"][damTarget]["evaded"]["total_hits"] = battle_data["You"][damTarget]["evaded"]["total_hits"] + 1

deleteLine()

d. new item:

name: Lightning Flag Counter

regex 0:

^([a-zA-Z\s\']+) is struck by lightning from ([a-zA-Z\s\']+)

(Note: I haven't added the regex for getting hit by lightning flag or several other flags.  If you provide these echos to me I can add them.)

main field:

if not battle_data then

battle_data = battle_data or {}

end

if not battle_data[attacker] then

battle_data[attacker]=battle_data[attacker] or {}

end

if not battle_data[attacker][damTarget] then

battle_data[attacker][damTarget]= {}

end

if not battle_data[attacker][damTarget][noun] then

battle_data[attacker][damTarget][noun]= {}

end

if not battle_data[attacker][damTarget][noun]["L"] then

battle_data[attacker][damTarget][noun]["L"] = {}

end

battle_data[attacker][damTarget][noun]["L"] = 1

deleteLine()

e. new item

name: flaming flag counter

perl regex 0:

^([a-zA-Z\s\']+) is burned by ([a-zA-Z\s\']+)

f. new item

name: hp vamp flag counter

perl regex 0:

^([a-zA-Z\s\']+) draws life from ([a-zA-Z\s\']+)

perl regex 1:

^You feel ([a-zA-Z\s\']+) drawing your life away.

main field:

if not battle_data then

battle_data = battle_data or {}

end

if not battle_data[attacker] then

battle_data[attacker]=battle_data[attacker] or {}

end

if not battle_data[attacker][damTarget] then

battle_data[attacker][damTarget]= {}

end

if not battle_data[attacker][damTarget][noun] then

battle_data[attacker][damTarget][noun]= {}

end

if not battle_data[attacker][damTarget][noun]["H"] then

battle_data[attacker][damTarget][noun]["H"] = {}

end

battle_data[attacker][damTarget][noun]["H"] = 1

deleteLine()

if promptCurrentHP == "???" then

if not hpVamps then

hpVamps = 0

end

if rex.match(attacker,"[Yy]ou[r]*") then

hpVamps = hpVamps + 1

end

else

hpVamps = 0

end

g. new item

name: Mana Vamp Flag Counter

perl regex 0:

^You feel something drawing your energy away

perl regex 1:

^([a-zA-Z\s\']+) draws energy from ([a-zA-Z\s\']+)

main field:

if not battle_data then

battle_data = battle_data or {}

end

if not battle_data[attacker] then

battle_data[attacker]=battle_data[attacker] or {}

end

if not battle_data[attacker][damTarget] then

battle_data[attacker][damTarget]= {}

end

if not battle_data[attacker][damTarget][noun] then

battle_data[attacker][damTarget][noun]= {}

end

if not battle_data[attacker][damTarget][noun]["M"] then

battle_data[attacker][damTarget][noun]["M"] = {}

end

battle_data[attacker][damTarget][noun]["M"] = 1

deleteLine()

h. new item

name: stun flag counter

perl regex 0:

^([a-zA-Z\s\']+) is knocked to the ground by ([a-zA-Z\s\']+)

(note: This script is specifically designed not to gag the stun echo)

if not battle_data then

battle_data = battle_data or {}

end

if not battle_data[attacker] then

battle_data[attacker]=battle_data[attacker] or {}

end

if not battle_data[attacker][damTarget] then

battle_data[attacker][damTarget]= {}

end

if not battle_data[attacker][damTarget][noun] then

battle_data[attacker][damTarget][noun]= {}

end

if not battle_data[attacker][damTarget][noun]["S"] then

battle_data[attacker][damTarget][noun]["S"] = {}

end

battle_data[attacker][damTarget][noun]["S"] = 1

i. new item

name: Freeze Flag Counter

perl regex 0:

^([a-zA-Z\s\']+) freezes ([a-zA-Z\s\']+)

main field:

if not battle_data then

battle_data = battle_data or {}

end

if not battle_data[attacker] then

battle_data[attacker]=battle_data[attacker] or {}

end

if not battle_data[attacker][damTarget] then

battle_data[attacker][damTarget]= {}

end

if not battle_data[attacker][damTarget][noun] then

battle_data[attacker][damTarget][noun]= {}

end

if not battle_data[attacker][damTarget][noun]["F"] then

battle_data[attacker][damTarget][noun]["F"] = {}

end

battle_data[attacker][damTarget][noun]["F"] = 1

deleteLine()

j. new item

name: condition tracker

perl regex 0:

([a-zA-Z\s']+) is in excellent condition.[\s]*$

perl regex 1:

([a-zA-Z\s']+) has a few scratches.[\s]*$

perl regex 2:

([a-zA-Z\s']+) has some small wounds and bruises.[\s]*$

perl regex 3:

([a-zA-Z\s']+) has quite a few wounds.[\s]*$

perl regex 4:

([a-zA-Z\s']+) has some big nasty wounds and scratches.[\s]*$

perl regex 5:

([a-zA-Z\s']+) looks pretty hurt.[\s]*$

perl regex 6:

([a-zA-Z\s']+) is in awful condition.[\s]*$

perl regex 7:

^([a-zA-Z\s\']+) is DEAD!!

main field:

percentage = ""

wascondition = 0

conditiontext =""

if not rex.match(matches[1],"is DEAD") then

isDead = 0

else

isDead = 1

end

if battle_data then

deleteLine()

outputDamage()

battle_data = nil

if rex.match(matches[1],"excellent condition") then

percentage = " [<green>100%<white>]"

wascondition = 1

conditiontext = " is in excellent condition."

elseif rex.match(matches[1],"few scratches") then

percentage = " [<green>90-99%<white>]"

wascondition = 1

conditiontext = " has a few scratches."

elseif rex.match(matches[1],"has some small wounds and bruises") then

percentage = " [<green>75-89%<white>]"

wascondition = 1

conditiontext = " has some small wounds and bruises."

elseif rex.match(matches[1],"has quite a few wounds") then

percentage = " [<green>50-74%<white>]"

wascondition = 1

conditiontext = " has quite a few wounds."

elseif rex.match(matches[1],"has some big nasty wounds and scratches") then

percentage = " [<green>30-49%<white>]"

wascondition = 1

conditiontext = " has some big nasty wounds and scratches."

elseif rex.match(matches[1],"looks pretty hurt") then

percentage = " [<green>15-29%<white>]"

wascondition = 1

conditiontext = " looks pretty hurt."

elseif rex.match(matches[1],"is in awful condition") then

percentage = " [<green>0-14%<white>]"

wascondition = 1

conditiontext = " is in awful condition."

end

end

if wascondition == 1 then

if isDead == 0 then

cecho("<red>"..tostring(matches[2]).."<white>"..tostring(conditiontext)..tostring(percentage))

else

cecho("<red>"..tostring(matches[2]).."<white>"..tostring(conditiontext))

end

end

cecho("battle_window","\n") --puts a space into the miniconsole

if isDead == 1 then

cecho("battle_window",tostring(matches[2]).." is DEAD!! \n\n")

cecho("<purple>"..tostring(matches[2]).." is DEAD!! <white>\n")

end

k. new item

name: Combat Text Gag

perl regex 0:

^You parry ([a-zA-Z\s\']+) attack.

perl regex 1:

You block ([a-zA-Z\s\']+) attack with your shield.

perl regex 2:

You dodge ([a-zA-Z\s\']+) attack.

perl regex 3:

^([-a-zA-Z\s\']+)dodges your attack.

perl regex 4:

^([a-zA-Z\s\']+)parries your attack.

perl regex 5:

^([a-zA-Z\s\']+)blocks your attack with a shield.

perl regex 6:

^([a-zA-Z\s\']+)senses they're about to be hit and deflects the blow.

perl regex 7:

^([a-zA-Z\s\']+)senses your attack coming and avoids its blow.

perl regex 8:

^The bolt arcs to

perl regex 9:

^A lightning bolt leaps from your hand and arcs to

perl regex 10:

You sense you're about to be hit and deflect the blow.

perl regex 11:

You sense an attack coming and avoid its blow.

perl regex 12:

A lightning bolt leaps from ([a-zA-Z\s\']+) hand and arcs to ([a-zA-Z\s\']+).

main script:

deleteLine()




Posted By: gnome power
Date Posted: 10 March 2012 at 1:02am
2. In triggers tab, Add Group and call it Prompt.  In this folder,

a. create new item

name: Parse Prompt

perl regex 0:

^[Quiet\s]*([0-9]+):([0-9]+)([amp]+)-\(([a-zA-Z\s']+)\) \<([?\d]+)\/([?\d]+) (\d+)\/(\d+) (\d+)\/(\d+)\> \((\w+)\) \[([a-zA-Z0-9-]*)\] \((\d+)/(\d+)\)

main script:

--prompt %T-(name) <%h/%H %m/%M %v/%V> (%S) [%e] (%X/%x)%c

promptHours = matches[2]

promptMin = matches[3]

promptAMPM = matches[4]

promptName = matches[5]

promptCurrentHP = matches[6]

promptMaxHP = matches[7]

promptCurrentMP = matches[8]

promptMaxMP = matches[9]

promptCurrentMV = matches[10]

promptMaxMV = matches[11]

promptStance = matches[12]

promptDirs = matches[13]

promptCurrentXP = matches[14]

promptTotalXP = matches[15]

refreshStatBars()

if promptCurrentHP == "???" then

if not damageTaken then

damageTaken = 0

end

if not hpVamps then

hpVamps = 0

end

setGauge("hp_bar", 1, 1,"<font color=\"white\">Dam: "..tostring(damageTaken).." V: "..tostring(hpVamps))

else

setGauge("hp_bar", promptCurrentHP, promptMaxHP,"<font color=\"white\">"..promptCurrentHP.." / "..promptMaxHP.." HP")

end

setGauge("mana_bar", promptCurrentMP, promptMaxMP,"<font color=\"white\">"..promptCurrentMP.." / "..promptMaxMP.." MP")

setGauge("end_bar", promptCurrentMV, promptMaxMV,"<font color=\"white\">"..promptCurrentMV.." / "..promptMaxMV.." MV")

charLevel = charLevel or 42

setGauge("xp_bar", promptCurrentXP, (promptCurrentXP+promptTotalXP)/charLevel,"<font color=\"white\">"..promptCurrentXP.." tnl (setLevel: "..charLevel..")")

if (promptMin ~= last_time) then

last_time = promptMin

echo("\nTick change\n")

if current_tick_timer then

killTimer(current_tick_timer)

current_tick_timer = nil

end

incrementGauge("tick_bar",37,.1) --gauge name, remaining tick time, increment

end

-- display time to tick if less than 5 seconds

if remainingTime < 5 then

echo("\nTick in " .. remainingTime .. " seconds.\n")

end

if battle_data then

outputDamage()

battle_data = nil

end

b. Add Item

name: Level Up

perl regex 0:

^You raise a level!!

main script:

charLevel = charLevel + 1

c. Add item

name: Set My Level

perl regex 0:

^LEVEL: (\d+)

main script:

if charLevel ~= matches[2] then

charLevel = matches[2]

echo("Level set to "..charLevel)

end

3. In "Scripts" tab, Add New Group called Battle Condenser.  In this folder, paste this to main script field:

function outputDamage()

if battle_data then

echo("\n")

end

for attackers, damTargets in pairs (battle_data) do

--convert "You" and "Your" to character name for attacker

myName = tostring(attackers)

if rex.match(tostring(attackers),"[Yy]ou[r]*") then

attackerName = tostring(promptName)

else

attackerName = tostring(attackers)

end

for victims, nouns in pairs (damTargets) do

hitTot = 0

totHitTot = 0

damageTot = 0

flagreport = ""

nounList = nil

--convert "You" and "Your" to character name for victim

if rex.match(tostring(victims),"[Yy]ou[r]*") then

victimName = tostring(promptName)

else

victimName = tostring(victims)

end

for nountypes, info in pairs (nouns) do

--generate flag results

if info["L"] == 1 then

if not rex.match(tostring(flagreport),"L") then

flagreport = tostring(flagreport).."<gold>L<white>"

end

end

if info["F"] == 1 then

if not rex.match(tostring(flagreport),"F") then

flagreport = tostring(flagreport).."<red>F<white>"

end

end

if info["H"] == 1 then

if not rex.match(tostring(flagreport),"H") then

flagreport = tostring(flagreport).."<cornsilk>H<white>"

end

end

if info["M"] == 1 then

if not rex.match(tostring(flagreport),"M") then

flagreport = tostring(flagreport).."<deep_pink>M<white>"

end

end

if info["S"] == 1 then

if not rex.match(tostring(flagreport),"S") then

flagreport = tostring(flagreport).."<dark_orchid>S<white>"

end

end

if info["F"] == 1 then

if not rex.match(tostring(flagreport),"F") then

flagreport = tostring(flagreport).."<powder_blue>F<white>"

end

end

if not rex.match(tostring(nountypes),"evaded") then

if not rex.match(tostring(nountypes),"nil") then

if not nounList then

nounList = tostring(nountypes)

elseif not rex.match(tostring(nountypes),tostring(Nounlist)) then

nounList = tostring(nounList)..", "..tostring(nountypes)

end

end

end

--sum up the damage, hits, and total_hits

if info.dam then

if info.dam > 0 then

damageTot = damageTot + info.dam

end

end

if info.hits then

hitTot = hitTot + info.hits

end

if info.total_hits then

totHitTot = totHitTot + info.total_hits

end

end

--output for specific attacker/victim combination

--nounList = string.sub(nounList, 1, 3) -- chop two first letters off

if hitTot > 0 then

cecho("<light_blue>"..tostring(attackerName).."<white> => <red>"..tostring(victimName).."<white>: "..tostring(damageTot).." ("..tostring(hitTot).."/"..tostring(totHitTot)..") ["..tostring(nounList).."] "..tostring(flagreport).."\n")

end

end

end

end

4. In Scripts tab, add new group called Tick Timer.  Paste to main script field:

function incrementGauge(inputGauge,totalTime,timeIncrementationInput)

timeIncrementation = timeIncrementationInput or 0.1

remainingTime = totalTime or 42

gauge = inputGauge

if remainingTime > 0 then

current_tick_timer = tempTimer(timeIncrementation, [[

remainingTime = remainingTime - timeIncrementation

remainingTime = round(remainingTime,1)

setGauge(gauge,remainingTime, 41, "<font color=\"white\">Tick: "..remainingTime)

incrementGauge(gauge,remainingTime,timeIncrementation)]])

end

end


5. In Scripts tab, add new group called Create Gauge Bars.  Paste to main script field:

function create_hp_bar(x,y)

createGauge("hp_bar", 0, 0, 0, 0, nil, "red")

moveGauge("hp_bar", x,y)

resizeGauge("hp_bar", 150, 20)

setGaugeStyleSheet("hp_bar", [[background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #f04141, stop: 0.1 #ef2929, stop: 0.49 #cc0000, stop: 0.5 #a40000, stop: 1 #cc0000);

border-top: 1px black solid;

border-left: 1px black solid;

border-bottom: 1px black solid;

border-radius: 7;

padding: 3px;]],

[[background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #bd3333, stop: 0.1 #bd2020, stop: 0.49 #990000, stop: 0.5 #700000, stop: 1 #990000);

border-width: 1px;

border-color: black;

border-style: solid;

border-radius: 7;

padding: 3px;]])

end

function create_group_hp_bar(name, x,y)

createGauge(name.."_hp_bar", 0, 0, 0, 0, nil, "red")

moveGauge(name.."_hp_bar", x,y)

resizeGauge(name.."_hp_bar", 100, 5)

setGaugeStyleSheet(name.."_hp_bar", [[background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #f04141, stop: 0.1 #ef2929, stop: 0.49 #cc0000, stop: 0.5 #a40000, stop: 1 #cc0000);

border-top: 1px black solid;

border-left: 1px black solid;

border-bottom: 1px black solid;

border-radius: 7;

padding: 3px;]],

[[background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #bd3333, stop: 0.1 #bd2020, stop: 0.49 #990000, stop: 0.5 #700000, stop: 1 #990000);

border-width: 1px;

border-color: black;

border-style: solid;

border-radius: 7;

padding: 3px;]])

end

function create_group_mana_bar(name,x,y)

createGauge(name.."_mana_bar", 0, 0, 0, 0, nil, "blue")

moveGauge(name.."_mana_bar", x,y)

resizeGauge(name.."_mana_bar", 100, 5)

setGaugeStyleSheet(name.."_mana_bar", [[background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #414df0, stop: 0.1 #1120ee, stop: 0.49 #0d17a0, stop: 0.5 #030963, stop: 1 #0d17a0);

border-top: 1px black solid;

border-left: 1px black solid;

border-bottom: 1px black solid;

border-radius: 7;

padding: 3px;]],

[[background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #646bce, stop: 0.1 #454dbf, stop: 0.49 #323781, stop: 0.5 #1d1f49, stop: 1 #323781);

border-width: 1px;

border-color: black;

border-style: solid;

border-radius: 7;

padding: 3px;]])

end

function create_mana_bar(x,y)

createGauge("mana_bar", 0, 0, 0, 0, nil, "blue")

moveGauge("mana_bar", x,y)

resizeGauge("mana_bar", 150, 20)

setGaugeStyleSheet("mana_bar", [[background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #414df0, stop: 0.1 #1120ee, stop: 0.49 #0d17a0, stop: 0.5 #030963, stop: 1 #0d17a0);

border-top: 1px black solid;

border-left: 1px black solid;

border-bottom: 1px black solid;

border-radius: 7;

padding: 3px;]],

[[background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #646bce, stop: 0.1 #454dbf, stop: 0.49 #323781, stop: 0.5 #1d1f49, stop: 1 #323781);

border-width: 1px;

border-color: black;

border-style: solid;

border-radius: 7;

padding: 3px;]])

end

function create_end_bar(x,y)

createGauge("end_bar", 0, 0, 0, 0, nil, "green")

moveGauge("end_bar", x,y)

resizeGauge("end_bar", 150, 20)

setGaugeStyleSheet("end_bar", [[background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #98f041, stop: 0.1 #8cf029, stop: 0.49 #66cc00, stop: 0.5 #52a300, stop: 1 #66cc00);

border-top: 1px black solid;

border-left: 1px black solid;

border-bottom: 1px black solid;

border-radius: 7;

padding: 3px;]],

[[background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #78bd33, stop: 0.1 #6ebd20, stop: 0.49 #4c9900, stop: 0.5 #387000, stop: 1 #4c9900);

border-width: 1px;

border-color: black;

border-style: solid;

border-radius: 7;

padding: 3px;]])

end

function create_tick_bar(x,y)

createGauge("tick_bar", 0, 0, 0, 0, nil, "gray")

moveGauge("tick_bar", x,y)

resizeGauge("tick_bar", 300, 5)

setGaugeStyleSheet("tick_bar", [[background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #dcdde0, stop: 0.1 #bdbec1, stop: 0.49 #999a9f, stop: 0.5 #707175, stop: 1 #999a9f);

border-top: 1px black solid;

border-left: 1px black solid;

border-bottom: 1px black solid;

border-radius: 7;

padding: 3px;]],

[[background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #4e5055, stop: 0.1 #383a3d, stop: 0.49 #2a2b2c, stop: 0.5 #0d0d0d, stop: 1 #2a2b2c);

border-width: 1px;

border-color: black;

border-style: solid;

border-radius: 7;

padding: 3px;]])

end

function create_xp_bar(x,y)

createGauge("xp_bar", 0, 0, 0, 0, nil, "gray")

moveGauge("xp_bar", x,y)

resizeGauge("xp_bar", 150, 5)

setGaugeStyleSheet("xp_bar", [[background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #de7ffa, stop: 0.1 #cc3cf6, stop: 0.49 #b511e4, stop: 0.5 #5a0971, stop: 1 #b511e4);

border-top: 1px black solid;

border-left: 1px black solid;

border-bottom: 1px black solid;

border-radius: 7;

padding: 3px;]],

[[background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #e1bda3, stop: 0.1 #c98b5e, stop: 0.49 #a76739, stop: 0.5 #7a4e2e, stop: 1 #a76739);

border-width: 1px;

border-color: black;

border-style: solid;

border-radius: 7;

padding: 3px;]])

end

function refreshStatBars()

create_hp_bar(0,550)

create_mana_bar(150,550)

create_end_bar(300,550)

end

(note: you can change the coordinates of create_hp_bar, create_mana_bar, and create_end_bar in function refreshStatBars() in order to put them on different pixels on your screen.)

6. in Scripts tab, add new group named Math, and paste this into main script field:

function round(num, idp)

if idp and idp>0 then

local mult = 10^idp

return math.floor(num * mult + 0.5) / mult

end

return math.floor(num + 0.5)

end

7.  in Scripts tab, add new group named onConnect, and paste this into main script field (NOTE: IF you already have an onConnect function from different code floating around this forum, you don't want to duplicat ethat function.  Instead, just add the functions in here that you don't have already to your existing onConnect function)

function onConnect()

window_w, window_h = getMainWindowSize()

create_tick_bar(0,570)

create_xp_bar(300,570)

createConsole("battle_window", 8, 80, 25, 493, 320)

refreshStatBars()

global_width, global_height = getMainWindowSize()

global_width = global_width - 15

global_chatPosX = global_width - global_chatWidth

global_chatPosY = 0

end

(NOTE2: you can change the position of tick bar and xp bar by adjusting the coordinates in the create_tick_bar(x,y) and create_xp_bar(x,y) functions respectively.  Also, you can adjust the position and size of the battle spam miniconsole by adjusting the numbers in that function)
----

And then you're done!

Any questions and suggestions for future design adjustments are welcome.


Posted By: Jeckyl
Date Posted: 10 March 2012 at 1:53am
Where is a good source to learn this from scratch? :p

-------------
<-- This is what happens when you try to pk with the Illuminati.

--

If we changed everything that everyone whined about, DSL would be a kitten paradise and there would be minutely copyovers. -Bioteq


Posted By: gnome power
Date Posted: 10 March 2012 at 1:58am
I only just learned Lua over the weekend.  Just scoured google until stuff made sense.  Asked a couple questions in the Mudlet forums.


Posted By: Jeckyl
Date Posted: 10 March 2012 at 12:39pm
import/export functionality == much easier. :p

I got it up, going to go through the code and figure it out (if I can).

Thanks!


-------------
<-- This is what happens when you try to pk with the Illuminati.

--

If we changed everything that everyone whined about, DSL would be a kitten paradise and there would be minutely copyovers. -Bioteq


Posted By: gnome power
Date Posted: 10 March 2012 at 12:44pm
Cool, if you have any questions let me know.

I didn't do the export because I had trouble installing other people's xml files when I first got mudlet.  Is there a trick to it?


Posted By: Ashtai
Date Posted: 15 March 2012 at 1:12pm
Is there a reason you formatted your regular expressions like that?

-------------


Posted By: gnome power
Date Posted: 15 March 2012 at 2:20pm
Feel free to improve it, but I made the damage specific because a more general form would catch undesirable strings.


Posted By: Drax
Date Posted: 15 March 2012 at 11:11pm
This topic would be improved tremendously by pictures of the script in action!

-------------
http://drax.nanobit.net" rel="nofollow"> <-- Click here.


Posted By: gnome power
Date Posted: 15 March 2012 at 11:25pm

Gray bar is tick timer, purple bar is xp progress.


Posted By: Drax
Date Posted: 16 March 2012 at 6:19am
That's seriously nifty, GP. Innovative and very nicely put together, by the looks of it. Clap

I'm assuming the hp, mana and xp bars update with each new prompt. How often does the bar for the tick timer update?


-------------
http://drax.nanobit.net" rel="nofollow"> <-- Click here.


Posted By: gnome power
Date Posted: 16 March 2012 at 8:42am
Originally posted by Drax Drax wrote:

That's seriously nifty, GP. Innovative and very nicely put together, by the looks of it. Clap

I'm assuming the hp, mana and xp bars update with each new prompt. How often does the bar for the tick timer update?

Thanks, Drax. :)

The tick-timer counts down automatically in increments of 0.1 seconds.


Posted By: Hedmric
Date Posted: 16 March 2012 at 10:20am
I have the ubuntu/linux version of mudlet.  It should work the same eh?



Posted By: Ardath
Date Posted: 16 March 2012 at 10:42am
I'm not about to put my battles off to the side like that, and I made a similar health thing that is smaller...  there must be a better way to send this to someone than posting 7 pages of Lua?  My capture windows aren't tabbed - theres just 1 for channels, 1 for tell/gtells below it.  No need to ever fiddle with it ever again unless you want to scroll up or resize the windows - those tabs got in the way when I used that script.  Good luck using Mudlet, the input bar is not as usable for some features as the CMud one.


-------------
It is easier for people to read your logs if you would end your prompt with "%c"


Posted By: gnome power
Date Posted: 16 March 2012 at 11:15am
I've got some ideas for the tabs down the line.  Might want to put a character sheet in one, a control panel for my scripts (when they get more complicated and need on/off toggles) in another, etc.  The combat spam was actually a requested feature because people were saying they needed to see the flow of spam to get a sense of if they just got ambushed or something.  I like it there, personally, but to each his own.  I can make it togglable if there's interest in that.

There's  an xml exporter but when I tried using others posted here, they didn't work, so that's why I did it this way. If someone knows the secret to getting xml files off these forums to work, that would be great.


Posted By: Jeckyl
Date Posted: 16 March 2012 at 11:56am
Try doing an export, and host the resulting file somewhere, and provide a link to the file(s) for download. Might be easier? If you need a place to host, I can take care of that. At the very least, we can figure out how it works, and if its feasible.

-------------
<-- This is what happens when you try to pk with the Illuminati.

--

If we changed everything that everyone whined about, DSL would be a kitten paradise and there would be minutely copyovers. -Bioteq


Posted By: gnome power
Date Posted: 16 March 2012 at 12:04pm
Yeah, that's doable. Github?


Posted By: Jeckyl
Date Posted: 16 March 2012 at 1:07pm
Sure, if that's where you want to put it. I have my own hosting account, and wouldn't mind hosting it there...I've been thinking about setting up a subdomain and site for dsl related stuffs. Either way works for me. I'll reset my mudlet stuff this weekend, and try to import it if you can export it.

-------------
<-- This is what happens when you try to pk with the Illuminati.

--

If we changed everything that everyone whined about, DSL would be a kitten paradise and there would be minutely copyovers. -Bioteq


Posted By: Hedmric
Date Posted: 17 March 2012 at 7:05pm
I've copy and pasted everything you had here as per the instructions, but i'm not seeing any text.  My gauges are up, showing all my info and the tick timer is working...I just can't see anything..

What am I doing wrong?  Is there something else I have to do to get my windows sized correctly?


Posted By: Hedmric
Date Posted: 17 March 2012 at 7:18pm
These are the errors:

[ERROR:] object:<WindowResizeEvent> function:<handleWindowResizeEvent>
         <attempt to call a nil value>
[ERROR:] object:<> function:<onConnect>
         <[string "function onConnect()..."]:9: attempt to perform arithmetic on global 
'global_chatWidth' (a nil value)>
[ERROR:] object:<Battle Damage Analyzer> function:<Trigger8>
         <[string "function Trigger8()..."]:25: bad argument #1 to 'match' (string expected, got 
nil)>


Posted By: Hedmric
Date Posted: 17 March 2012 at 9:19pm
well, i've got the battle text working, and I can see stuff.  This is pretty awesome so far!!


Posted By: RayFinkle
Date Posted: 17 March 2012 at 9:45pm
Could you start working on a drunk to common translator?

-------------
**I am a freemium player**


Posted By: gnome power
Date Posted: 17 March 2012 at 9:59pm
Originally posted by Hedmric Hedmric wrote:

well, i've got the battle text working, and I can see stuff.  This is pretty awesome so far!!

I'm glad you like it. :)

Are you still having any issues or is everything working fine?


Posted By: Ashass
Date Posted: 06 May 2012 at 6:58pm
#1 thing to help make this script better (and run faster, high likelyhood) is consider which components go together, and move those off into functions. That way the entire thing doesn't need to parse, and you can more easily share parts of the code without having a giant blob.

Granted, I know you're just sharing as-is, but you'll do yourself a favor later if you ever want to modify the script by moving things out into functions.


Posted By: gnome power
Date Posted: 06 May 2012 at 7:04pm
Yeah, that's a good point.

I'm not a very experienced programmer, so I didn't think of it earlier.  

Thanks.


Posted By: sifaka
Date Posted: 01 July 2012 at 4:06pm
Wow, this is great! I have the hp/mana/mv bars and the main console working properly, but I don't have the mini console, or the tick timer. I'm brand new to Lua, is createConsole a user defined function? I notice onConnect calls it, but I don't see it anywhere else in the text. Any advice is much appreciated!



Posted By: gnome power
Date Posted: 01 July 2012 at 4:25pm
createConsole is part of the native mudlet platform.  Do you have the most updated version of mudlet?  It should be the program called Mudlet-2.0-test4.

One thing you may need to do is change the position of the miniconsole.  I have it set for my screen, but I find that if I change my window dimensions at all it messes up my positioning.  Depending on how different your window dimensions are from mine, your miniConsole may be appearing off your monitor altogether.  The way to test what dimensions you want is to make an alias that creates a miniConsole (make sure to print some text in it or you may not see it), and then fiddle with the dimensions until you can see it appear on your screen.

For the tick timer, did you change your prompt to exactly the specified format?

And, glad you like it! :D  Welcome aboard.


Posted By: sifaka
Date Posted: 01 July 2012 at 5:34pm
Updating to 2.0-test4 fixed everything. Thanks!


Posted By: gnome power
Date Posted: 01 July 2012 at 6:05pm
Okay cool.

By the way, if you get a chance, check out what the script does while you battlerage.  It's pretty neat, imo. :)


Posted By: jharel
Date Posted: 04 November 2012 at 1:12pm
I want this for Cmud.. :(


Posted By: gnome power
Date Posted: 04 November 2012 at 1:19pm
Convince one of the Cmud guys to write a dang Lua wrapper and it can happen.

Otherwise, just download Mudlet. It exists for most OSes.


Posted By: jharel
Date Posted: 15 November 2012 at 11:43pm
Too true! Downloaded a mudlet client for Win 7, a bit sluggish (or I am just not used to the format).  This is a brilliant script though, congrats.


Posted By: gnome power
Date Posted: 16 November 2012 at 8:46am
Awesome.  :)

I don't know about the slow-ness, it seems to work pretty well for me.  But I'm on a different OS so maybe it's not as good on Windows.


Posted By: gnome power
Date Posted: 16 November 2012 at 9:27am
edit: Nevermind, was going to suggest another script but forgot I already included it into the current script.


Posted By: Ericka
Date Posted: 16 November 2012 at 1:54pm
Question for gnome and others: What's the best way to configure Mudlet for multiple characters that use different trigs/alises? I'm guessing I should just make different alias/trig folders for each char and enable/disable them as needed.

That's one thing I definitely miss about Atlantis. The World:Character structure was really easy to use.


-------------
Aeltor OOC: 'if you werent sboosted phonivia id tear your a few new holes as a
monk'


Posted By: Jor'Mox
Date Posted: 16 November 2012 at 1:58pm
You could do that, or you could set up your triggers/aliases to check a variable that stores your character name/class and act accordingly.

-------------
No price is too high to pay for the privilege of owning yourself. - Friedrich Nietzsche


Posted By: gnome power
Date Posted: 16 November 2012 at 3:05pm
Originally posted by Ericka Ericka wrote:

Question for gnome and others: What's the best way to configure Mudlet for multiple characters that use different trigs/alises? I'm guessing I should just make different alias/trig folders for each char and enable/disable them as needed.

That's one thing I definitely miss about Atlantis. The World:Character structure was really easy to use.

My guess is it would be pretty easy to do, just based on the fact that I already use a prompt that states the character name.

Can just make a library of names you want each trigger to function for, and have it check if the current alt is on that list at the beginning of the trigger.


Posted By: Elathan
Date Posted: 27 March 2013 at 10:25pm
As far as the prompt goes. My current prompt has color in it and has which room I'm in named in the prompt. Is there a way to add that to the prompt you need for this script to work?


Posted By: Elathan
Date Posted: 27 March 2013 at 10:27pm
This is my current prompt by the way:

prompt {W({x%h{W/{x%Hhp %m{W/{x%Mm %v{W/{x%Vmv{W){W-{C%e{W-{x%c{w({c%r{w|{y%S{w){R({W%d{R){c%t{W>{x%c



Posted By: gnome power
Date Posted: 27 March 2013 at 11:09pm
It would just require changing the regex.

Do you know how to do so?


Posted By: Elathan
Date Posted: 27 March 2013 at 11:29pm
Reply do you mean changing it from Pearl Regex to something else?


Posted By: Elathan
Date Posted: 27 March 2013 at 11:35pm
lol I typed reply...


Posted By: Jor'Mox
Date Posted: 28 March 2013 at 7:41am
No. He means changing the regular expression so that it will match your prompt.

Oh, and colors don't matter. So I think I stripped color codes out properly, this is what I'm seeing for your prompt:
prompt (%h/%Hhp %m/%Mm %v/%Vmv)-%e-%c(%r|%S)(%d)%t>%c

-------------
No price is too high to pay for the privilege of owning yourself. - Friedrich Nietzsche


Posted By: gnome power
Date Posted: 28 March 2013 at 8:27am
Unfortunately I don't have the time at this point to customize the prompt for people, I think a few things would have to change in the SmartPrompt code as well to display it properly.  You'll have to comb through it yourself or use the standard prompt until I get time (which may not be for awhile, work is hectic).


Posted By: Jor'Mox
Date Posted: 28 March 2013 at 8:46am
Hey GP, think you can throw the parts you think will break here, so I don't have to dig them out? I have a feeling I'll have better luck fixing things than most people would.

Edit: And, yes, I know, I should try and smash this apart and reconstruct it in the framework I have been building, but my time isn't limitless, and I've been working on other stuff for now.

-------------
No price is too high to pay for the privilege of owning yourself. - Friedrich Nietzsche


Posted By: gnome power
Date Posted: 28 March 2013 at 9:13am
Hi Jor'mox, thanks!

The regex would have to change to capture the room exits.

Also, in the Parse Prompt trigger folder it would need a new variable for directions, and the cecho would need to change to reflect it.

It's not very much actually.


Posted By: Jor'Mox
Date Posted: 28 March 2013 at 10:02am
So, I get the regex bit, but I'm looking at the parse prompt trigger stuff... and I don't see why you are saying I would need to create a new variable for the directions. You seem to have one there already, is there some reason that this would need to change? (I know I need to change the assignment to match with the regex, but that is different.)


-------------
No price is too high to pay for the privilege of owning yourself. - Friedrich Nietzsche


Posted By: Jor'Mox
Date Posted: 28 March 2013 at 10:49am
So, first, the new regex needed to capture your prompt as specified:

Pattern 0: ^[Quiet\s]*\(([\d\?]+)/(\d+)hp (\d+)/(\d+)m (\d+)/(\d+)mv\)\-([\w\-]+)\-
Pattern 1: \([\w\s\'\-]+\|(\w+)\)\([\w\s]+\)(\d+)\:(\d+)([ap]m)\>

Check the "multiline / AND Trigger" check box, and set "line delta" to 1.

And here are the new variable assignments to match your prompt for the Prompt Parsing trigger. Note that Name and both XP variables are dummy values as they are not in your prompt.
promptHours = multimatches[2][3]
promptMin = multimatches[2][4]
promptAMPM = multimatches[2][5]
promptName = "You"
promptCurrentHP = multimatches[1][2]
promptMaxHP = multimatches[1][3]
promptCurrentMP = multimatches[1][4]
promptMaxMP = multimatches[1][5]
promptCurrentMV = multimatches[1][6]
promptMaxMV = multimatches[1][7]
promptStance = multimatches[2][2]
promptDirs = multimatches[1][8]
promptCurrentXP = 0
promptTotalXP = 1



-------------
No price is too high to pay for the privilege of owning yourself. - Friedrich Nietzsche


Posted By: gnome power
Date Posted: 28 March 2013 at 7:01pm
Thanks, j. I forgot that it was already there. Really, i could and should make it universal by parsing number labels in any order. That will go on the to-do list.

I think the battle condenser has a minor break if name is set to "you." It will no longer know how to identify personal actions and distinguish from others, so for instance he would lose background highlighting of personal injuries. I would suggest to him to stick it in there and just leave it off the cecho.


Posted By: Jor'Mox
Date Posted: 28 March 2013 at 7:15pm
So... it specifically checks to be sure it isn't "You" after it replaces "You" and "Your" with the person's name? Why? Seems excessive.


-------------
No price is too high to pay for the privilege of owning yourself. - Friedrich Nietzsche


Posted By: gnome power
Date Posted: 28 March 2013 at 7:45pm
Originally posted by Jor'Mox Jor'Mox wrote:

So... it specifically checks to be sure it isn't "You" after it replaces "You" and "Your" with the person's name? Why? Seems excessive.

Hm, on second thought, I think you're right.



Print Page | Close Window

Forum Software by Web Wiz Forums® version 10.17 - http://www.webwizforums.com
Copyright ©2001-2013 Web Wiz Ltd. - http://www.webwiz.co.uk