forked from krrrcks/krrrcks-mudlet
-
Notifications
You must be signed in to change notification settings - Fork 4
Refactory
Kebap edited this page Jun 30, 2017
·
5 revisions
Siehe auch Issue #29
Tools:
- HTML entity encoder/decoder - https://mothereff.in/html-entities - encodierten Text unten einfügen, oben erscheint decodierter Text.
Wird als nächstes betrachtet. Benötigt vermutlich einige Umstellungen im Code. Mit PermRegexTrigger können wohl auch mehrere Patterns eingefügt werden, Substring in Regex umwandeln scheint auch halbwegs leicht machbar.
Noch nicht weiter betrachtet. Derzeit existiert kein Befehl, um Scripts Objekte anzulegen. Müssten in andere Objekte verschoben werden. Da manche Scripts derzeit durch Events aktiviert werden, müsste auch das woanders stattfinden.
<AliasGroup isActive="yes" isFolder="yes">
<name>Krrrcks: Kleinkram</name>
<script>--[[ Hier sammel ich Kleinkram, der nirgendwo anders gut hinpasst. Kleinere Skripte
und Aliase ]]--</script>
<command></command>
<packageName></packageName>
<regex></regex>
item_type = "alias"
item_name = "Krrrcks: Kleinkram"
if exists(item_name, item_type) == 0 then
permGroup(item_name, item_type)
end
<Alias isActive="yes" isFolder="no">
<name>Umlaute</name>
<script>-- echo("<UMLAUTE herausgenommen> <"..command..">\n");
command = string.gsub(command, 'ü', 'ue' );
command = string.gsub(command, 'ö', 'oe' );
command = string.gsub(command, 'ä', 'ae' );
command = string.gsub(command, 'Ä', 'Ae' );
command = string.gsub(command, 'Ö', 'Oe' );
command = string.gsub(command, 'Ü', 'Ue' );
command = string.gsub(command, 'ß', 'ss' );
send(command);</script>
<command></command>
<packageName></packageName>
<regex>ü|ö|ä|Ü|Ö|Ä|ß</regex>
</Alias>
code_type = "alias"
code_name = "Umlaute"
code_group = "Krrrcks: Kleinkram"
code_regex = "ü|ö|ä|Ü|Ö|Ä|ß"
code_string = [[--
-- echo("<UMLAUTE herausgenommen> < "..command.. ">\n");
command = string.gsub(command, 'ü', 'ue' );
command = string.gsub(command, 'ö', 'oe' );
command = string.gsub(command, 'ä', 'ae' );
command = string.gsub(command, 'Ä', 'Ae' );
command = string.gsub(command, 'Ö', 'Oe' );
command = string.gsub(command, 'Ü', 'Ue' );
command = string.gsub(command, 'ß', 'ss' );
send(command);
]]
if exists(code_name, code_type) == 0 then
permAlias(code_name, code_group, code_regex, code_string)
end
local wessen = matches[2]
if wessen == "" then wessen = ME.name end
if wessen then
send("schliesse haus von " .. wessen .. " auf")
send("oeffne haus von " .. wessen)
send("betrete haus von " .. wessen)
send("schliesse haus")
send("schliesse haus ab")
end</script>
<command></command>
<packageName></packageName>
<regex>^#haus(.*)$</regex>
</Alias>
code_type = "alias"
code_name = "Haus betreten"
code_group = "Krrrcks: Kleinkram"
code_regex = "^#haus(.*)$"
code_string = [[--
-- Mit "#haus<name>" ein Seherhaus aufschliessen und betreten;
-- wird der Name weggelassen, wird automatisch ME.name angehaengt.
--
local wessen = matches[2]
if wessen == "" then wessen = ME.name end
if wessen then
send("schliesse haus von " .. wessen .. " auf")
send("oeffne haus von " .. wessen)
send("betrete haus von " .. wessen)
send("schliesse haus")
send("schliesse haus ab")
end
]]
if exists(code_name, code_type) == 0 then
permAlias(code_name, code_group, code_regex, code_string)
end
<Alias isActive="yes" isFolder="no">
<name>Hilfe</name>
<script>fg("yellow")
echo([[
Folgende Sachen gibt es und funktionieren:
* Umlaute werden erkannt und durch passende Umschreibungen ersetzt.
* Einstellungen und auch Globale Variablen
In "Scripts->Einstellugnen" habe ich einige globale Variablen und
einstellbare Sachen hinterlegt:
ME: ME ist ein Table, in dem ich alle möglichen Informationen zum User speichere;
hier landen bspw. der Name, aber auch in welcher Para-Welt man sich befindet etc.
Soweit möglich werden die entsprechenden Werte bspw. aus GMCP-Nachrichten
gezogen.
farben: In diesem Table verwalte ich die für die Trigger und Skripte zu verwendenden
Farben.
* Farbtrigger
In Trigger befinden sich Farbtrigger, welche die Ebenen einfärben.
* Wegeskripte von tf
Ich hatte einige Wegeskripte bei tf, die insbesondere mit einem "/dopath"
zusammenarbeiteten. Ich habe diese nahezu 1:1 rekonstruiert, sie sind in den Skripten
und den Aliasen zu finden.
* Kleinkram
#haus<name> : Wenn man vor einem Seherhaus steht, kann man es damit
aufschließen, betreten und wieder verschließen. Achtung: Kein Leerzeichen
zwischen "#haus" und dem Namen!
]])</script>
<command></command>
<packageName></packageName>
<regex>^#help$</regex>
</Alias>
code_type = "alias"
code_name = "Hilfe"
code_group = "Krrrcks: Kleinkram"
code_regex = "^#help$"
code_string = [[--
fg("yellow")
echo([[
Folgende Sachen gibt es und funktionieren:
* Umlaute werden erkannt und durch passende Umschreibungen ersetzt.
* Einstellungen und auch Globale Variablen
In "Scripts->Einstellungen" habe ich einige globale Variablen und
einstellbare Sachen hinterlegt:
ME: ME ist ein Table, in dem ich alle möglichen Informationen zum User speichere;
hier landen bspw. der Name, aber auch in welcher Para-Welt man sich befindet etc.
Soweit möglich werden die entsprechenden Werte bspw. aus GMCP-Nachrichten
gezogen.
farben: In diesem Table verwalte ich die für die Trigger und Skripte zu verwendenden
Farben.
* Farbtrigger
In Trigger befinden sich Farbtrigger, welche die Ebenen einfärben.
* Wegeskripte von tf
Ich hatte einige Wegeskripte bei tf, die insbesondere mit einem "/dopath"
zusammenarbeiteten. Ich habe diese nahezu 1:1 rekonstruiert, sie sind in den Skripten
und den Aliasen zu finden.
* Kleinkram
#haus<name> : Wenn man vor einem Seherhaus steht, kann man es damit
aufschließen, betreten und wieder verschließen. Achtung: Kein Leerzeichen
zwischen "#haus" und dem Namen!
]])
]]
if exists(code_name, code_type) == 0 then
permAlias(code_name, code_group, code_regex, code_string)
end
<Alias isActive="yes" isFolder="no">
<name>Home</name>
<script>expandAlias("#go haus")
expandAlias("#haus")</script>
<command></command>
<packageName></packageName>
<regex>^#home$</regex>
</Alias>
code_type = "alias"
code_name = " Home "
code_group = "Krrrcks: Kleinkram"
code_regex = "^#home$"
code_string = [[--
expandAlias("#go haus")
expandAlias("#haus")
]]
if exists(code_name, code_type) == 0 then
permAlias(code_name, code_group, code_regex, code_string)
end
<Alias isActive="yes" isFolder="no">
<name>Kämpfer: Grüße</name>
<script>send("stehe still")
send("gruesse " .. matches[2])
</script>
<command></command>
<packageName></packageName>
<regex>^#gruesse (.+)$</regex>
</Alias>
</AliasGroup>
code_type = "alias"
code_name = "Kämpfer: Grüße"
code_group = "Krrrcks: Kleinkram"
code_regex = "^#gruesse (.+)$"
code_string = [[--
send("stehe still")
send("gruesse " .. matches[2])
]]
if exists(code_name, code_type) == 0 then
permAlias(code_name, code_group, code_regex, code_string)
end
<AliasGroup isActive="yes" isFolder="yes">
<name>Krrrcks: Alte Wege</name>
<script>-- Die alten tf-Wegeskripte.
</script>
<command></command>
<packageName></packageName>
<regex></regex>
item_type = "alias"
item_name = "Krrrcks: Alte Wege"
if exists(item_name, item_type) == 0 then
permGroup(item_name, item_type)
end
<Alias isActive="yes" isFolder="no">
<name>Weg ablaufen</name>
<script>-- Die alten tf-Wegeskripte.
--[[ Gestartet werden diese mit "#go <ziel>", dann wird
Ziel ausgewählt und die Sachen zum Mud geschossen. Dabei
ist zu beachten, dass die meisten Skripte bei einem Portal
bzw. beim Sandtiger starten. ]]--
-- Als Beispiel zwei Wege: Sandtiger-Hochebene und zurueck.
wege.he = { "#dopath w n n w w w n nw nw nw w nw nw nw w w no no o no o o", "folge hund" }
wege.he_st = { "folge hund", "#dopath w w sw w sw sw o o so so so o so so so s o o o s s o" }
local kommandos = wege[matches[2]]
if type(kommandos) == "table" then
alt_ws(kommandos)
end
</script>
<command></command>
<packageName></packageName>
<regex>^#go (.*)$</regex>
</Alias>
code_type = "alias"
code_name = "Weg ablaufen"
code_group = "Krrrcks: Alte Wege"
code_regex = "^#go (.*)$"
code_string = [[--
-- Die alten tf-Wegeskripte.
--[[ Gestartet werden diese mit "#go <ziel>", dann wird
Ziel ausgewählt und die Sachen zum Mud geschossen. Dabei
ist zu beachten, dass die meisten Skripte bei einem Portal
bzw. beim Sandtiger starten. ]]--
-- Als Beispiel zwei Wege: Sandtiger-Hochebene und zurueck.
wege.he = { "#dopath w n n w w w n nw nw nw w nw nw nw w w no no o no o o", "folge hund" }
wege.he_st = { "folge hund", "#dopath w w sw w sw sw o o so so so o so so so s o o o s s o" }
local kommandos = wege[matches[2]]
if type(kommandos) == "table" then
alt_ws(kommandos)
end
]]
if exists(code_name, code_type) == 0 then
permAlias(code_name, code_group, code_regex, code_string)
end
<Alias isActive="yes" isFolder="no">
<name>Altes dopath</name>
<script>-- Ersetzt das alte tf-dopath; übergeben wird ein String mit
-- Ausgängen.
-- Bspw: "#dopath o o w n" macht dann jeweils send("o"),
-- send("o"), send("w"), send("n")
alt_dopath(matches[2])</script>
<command></command>
<packageName></packageName>
<regex>^#dopath (.*)$</regex>
</Alias>
</AliasGroup>
</AliasPackage>
code_type = "alias"
code_name = "Altes dopath"
code_group = "Krrrcks: Alte Wege"
code_regex = "^#dopath (.*)$"
code_string = [[--
-- Ersetzt das alte tf-dopath; übergeben wird ein String mit
-- Ausgängen.
-- Bspw: "#dopath o o w n" macht dann jeweils send("o"),
-- send("o"), send("w"), send("n")
alt_dopath(matches[2])
]]
if exists(code_name, code_type) == 0 then
permAlias(code_name, code_group, code_regex, code_string)
end
<KeyPackage>
- <KeyGroup isActive="yes" isFolder="yes">
<name>Keypad</name>
<script />
<command />
<keyCode>-1</keyCode>
<keyModifier>-1</keyModifier>
key_name = "Keypad"
key_parent = ""
key_modifier = ""
key_keycode = ""
key_code = ""
-- This is instead of a group, because permGroup() will not yet accept "key"-type
permKey(key_name, key_parent, modifier, key_keycode, key_code)
- <Key isActive="yes" isFolder="no">
- <name>8: norden</name>
- <script />
- <command>norden</command>
- <keyCode>56</keyCode>
- <keyModifier>536870912</keyModifier>
</Key>
key_name = "8: norden"
key_parent = "Keypad"
key_modifier = mudlet.key.KeyPad
key_keycode = mudlet.key.8
key_code = [[ send("norden") ]]
-- keycodes see here: https://github.com/Mudlet/Mudlet/blob/master/src/mudlet-lua/lua/KeyCodes.lua
permKey(key_name, key_parent, modifier, key_keycode, key_code)
key_keycode = mudlet.key.Plus
key_keycode = mudlet.key.Minus
key_keycode = mudlet.key.Slash
<Key isActive="yes" isFolder="no">
<name>/: kurz</name>
<packageName></packageName>
<script>local newmodus = ""
if ME.modus == "lang" then
newmodus = "kurz"
elseif ME.modus == "kurz" then
newmodus = "ultrakurz"
elseif ME.modus == "ultrakurz" then
newmodus = "lang"
else
newmodus = "kurz"
end
ME.modus = newmodus
send(newmodus)</script>
<command></command>
<keyCode>47</keyCode>
<keyModifier>536870912</keyModifier>
</Key>
key_name = "/: kurz"
key_parent = "Keypad"
key_modifier = mudlet.key.KeyPad
key_keycode = mudlet.key.Slash
key_code = [[
local newmodus = ""
if ME.modus == "lang" then
newmodus = "kurz"
elseif ME.modus == "kurz" then
newmodus = "ultrakurz"
elseif ME.modus == "ultrakurz" then
newmodus = "lang"
else
newmodus = "kurz"
end
ME.modus = newmodus
send(newmodus)
]]
-- keycodes see here: https://github.com/Mudlet/Mudlet/blob/master/src/mudlet-lua/lua/KeyCodes.lua
permKey(key_name, key_parent, modifier, key_keycode, key_code)
key_keycode = mudlet.key.Comma