Skip to content

Instantly share code, notes, and snippets.

@njs50
Created October 26, 2018 06:09
Show Gist options
  • Save njs50/7be6ba9ad16e4ac6d53c7d2e2d5ba72d to your computer and use it in GitHub Desktop.
Save njs50/7be6ba9ad16e4ac6d53c7d2e2d5ba72d to your computer and use it in GitHub Desktop.
prompt parsing trigger
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE MudletPackage>
<MudletPackage version="1.001">
<TriggerPackage>
<Trigger isActive="yes" isFolder="no" isTempTrigger="no" isMultiline="no" isPerlSlashGOption="no" isColorizerTrigger="no" isFilterTrigger="no" isSoundTrigger="no" isColorTrigger="no" isColorTriggerFg="no" isColorTriggerBg="no">
<name>prompt parse</name>
<script>
-- ^&lt;(?:\w+\|)?(\d+)hp (\d+)e \[?(\d+)mv\]? (\d+)wm\s+\d+xp\s+([\-A-Za-z?]+)&gt;\s*$
-- ^&lt;(?:\w+\|)?(\d+)hp (\d+)e \[?(\d+)mv\]? (\d+)wm\s+\d+xp\s+([\-A-Za-z?]+)\s+(.+)&gt;\s*$
-- ^&lt;(?:\w+\|)?(\d+)hp (\d+)e \[?(\d+)mv\]? (\d+)wm\s+\d+xp( .*) ([NESWneswUDud]+|-Dark-|none)(\s.+)?&gt;\s*$
-- &lt;209hp 94e 138mv 138wm 122617xp NESW&gt;
-- &lt;S|472hp 629e 150mv 150wm 12777631xp ??&gt; &lt;-- sleeping prompt
-- &lt;304hp 28e [375mv] 152wm 1260782xp -Dark-&gt;
-- &lt;209hp 94e 138mv 138wm 122751xp NESW leaking guts&gt;
-- &lt;527hp 27e 181mv 161wm 7020514xp 500lhp EW&gt;
-- &lt;209hp 94e 138mv 138wm 122617xp NESW&gt;
-- &lt;527hp 27e 182mv 182wm 7020514xp ?? NESW&gt;
-- &lt;527hp 27e 181mv 161wm 7026324xp 500lhp EW covered in blood&gt;
-- Prompt:
-- ?p' -- MORE -- '&lt;%f?f|@R%hhp@n @G%ee@n @B?m'[%mmv]'!m'%vmv'@n %gwm %xxp?l' %llhp' %d?b' %c'&gt;
-- cecho('\n&lt;green&gt;hi')
-- need to have the group parsed aleady to have things to fill in
if ( not group.leader ) then
echo('\nWaiting for leader before parsing prompt...\n')
if (not player.initPending) then
player.initPending = true
common.initPlayer()
end
else
group[player.name].hp = tonumber(matches[2])
group[player.name].mp = tonumber(matches[3])
group[player.name].moves = tonumber(matches[4])
player.hp = tonumber(matches[2])
player.mp = tonumber(matches[3])
player.moves = tonumber(matches[4])
group.lowest_moves = tonumber(matches[5])
if (matches[6] and matches[6] ~= '') then
-- echo('\nsetting leader hp to ' .. tostring(matches[6]))
group[group.leader].hp = tonumber(matches[6])
end
if (matches[7] == '-Dark-') then
cecho('\n^^&lt;red&gt;\nIt\'s super dark yo! &lt;white&gt;-- making light\n')
murder.newLight()
end
-- echo('\n prompt bits: [' .. string.trim(matches[6] or '??') .. '] : [' .. string.trim((matches[8] or '')) .. ']\n')
end
raiseEvent(common.events.PARSED_PROMPT)</script>
<triggerType>0</triggerType>
<conditonLineDelta>0</conditonLineDelta>
<mStayOpen>0</mStayOpen>
<mCommand></mCommand>
<packageName></packageName>
<mFgColor>#ff0000</mFgColor>
<mBgColor>#ffff00</mBgColor>
<mSoundFile></mSoundFile>
<colorTriggerFgColor>#000000</colorTriggerFgColor>
<colorTriggerBgColor>#000000</colorTriggerBgColor>
<regexCodeList>
<string>^&lt;(?:\w+\|)?(\d+)hp (\d+)e \[?(\d+)mv\]? (\d+)wm\s+\d+xp (\d+)?(?:lhp\s|\?\?\s)?([NESWneswUDud]+|-Dark-|none|\?\?)(\s.+)?&gt;\s*$</string>
</regexCodeList>
<regexCodePropertyList>
<integer>1</integer>
</regexCodePropertyList>
</Trigger>
</TriggerPackage>
</MudletPackage>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment