Skip to content
Kebap edited this page Jun 30, 2017 · 5 revisions

Siehe auch Issue #29

Tools:

TriggerPackage

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.

ScriptPackage

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.

AliasPackage

1 AliasGroup - Krrrcks: Kleinkram

XML

    <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>

LUA

item_type = "alias"
item_name = "Krrrcks:  Kleinkram"

if exists(item_name, item_type) == 0 then
    permGroup(item_name, item_type)
end

2 Alias - Umlaute

XML

 <Alias isActive="yes" isFolder="no">
            <name>Umlaute</name>
            <script>-- echo(&quot;&lt;UMLAUTE herausgenommen&gt; &lt;&quot;..command..&quot;&gt;\n&quot;);
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>

LUA

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

3 Alias - Haus betreten

XML

Haus betreten <script>-- Mit "#haus<name>" ein Seherhaus aufschliessen und betreten; -- wird der Name weggelassen, wird automatisch ME.name angehaengt.
local wessen = matches[2] 

if wessen == &quot;&quot; then wessen = ME.name end

if wessen then
    send(&quot;schliesse haus von &quot; .. wessen .. &quot; auf&quot;)
    send(&quot;oeffne haus von &quot; .. wessen)
    send(&quot;betrete haus von &quot; .. wessen)
    send(&quot;schliesse haus&quot;)
    send(&quot;schliesse haus ab&quot;)
end</script>
            <command></command>
            <packageName></packageName>
            <regex>^#haus(.*)$</regex>
        </Alias>

LUA

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

4 Alias - Hilfe

XML

     <Alias isActive="yes" isFolder="no">
                <name>Hilfe</name>
                <script>fg(&quot;yellow&quot;)

echo([[
Folgende Sachen gibt es und funktionieren:

* Umlaute werden erkannt und durch passende Umschreibungen ersetzt.

* Einstellungen und auch Globale Variablen
In &quot;Scripts-&gt;Einstellugnen&quot; 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 &quot;/dopath&quot; 
zusammenarbeiteten. Ich habe diese nahezu 1:1 rekonstruiert, sie sind in den Skripten
und den Aliasen zu finden.

* Kleinkram
#haus&lt;name&gt; : Wenn man vor einem Seherhaus steht, kann man es damit  
  aufschließen, betreten und wieder verschließen. Achtung: Kein Leerzeichen
  zwischen &quot;#haus&quot; und dem Namen!
]])</script>
                <command></command>
                <packageName></packageName>
                <regex>^#help$</regex>
            </Alias>

LUA

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

5 Alias - Home

XML

     <Alias isActive="yes" isFolder="no">
                <name>Home</name>
                <script>expandAlias(&quot;#go haus&quot;)
expandAlias(&quot;#haus&quot;)</script>
                <command></command>
                <packageName></packageName>
                <regex>^#home$</regex>
            </Alias>

LUA

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

6 Alias - Kämpfer: Grüße

XML

     <Alias isActive="yes" isFolder="no">
                <name>Kämpfer: Grüße</name>
                <script>send(&quot;stehe still&quot;)
send(&quot;gruesse &quot;  .. matches[2])
</script>
                <command></command>
                <packageName></packageName>
                <regex>^#gruesse (.+)$</regex>
            </Alias>
        </AliasGroup>

LUA

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

7 Aliasgroup - Krrrcks: Alte Wege

XML

     <AliasGroup isActive="yes" isFolder="yes">
            <name>Krrrcks: Alte Wege</name>
            <script>-- Die alten tf-Wegeskripte. 
</script>
            <command></command>
            <packageName></packageName>
            <regex></regex>

LUA

item_type = "alias"
item_name = "Krrrcks: Alte Wege"

if exists(item_name, item_type) == 0 then
    permGroup(item_name, item_type)
end

8 Alias - Weg ablaufen

XML

     <Alias isActive="yes" isFolder="no">
                <name>Weg ablaufen</name>
                <script>-- Die alten tf-Wegeskripte. 

--[[ Gestartet werden diese mit &quot;#go &lt;ziel&gt;&quot;, 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 = { &quot;#dopath w n n w w w n nw nw nw w nw nw nw w w no no o no o o&quot;, &quot;folge hund&quot; }
wege.he_st = { &quot;folge hund&quot;, &quot;#dopath w w sw w sw sw o o so so so o so so so s o o o s s o&quot; }

local kommandos = wege[matches[2]]

if type(kommandos) == &quot;table&quot; then
  alt_ws(kommandos)
end

</script>
                <command></command>
                <packageName></packageName>
                <regex>^#go (.*)$</regex>
            </Alias>

LUA

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

9 Alias - Altes dopath

XML

     <Alias isActive="yes" isFolder="no">
                <name>Altes dopath</name>
                <script>-- Ersetzt das alte tf-dopath; übergeben wird ein String mit 
-- Ausgängen.

-- Bspw: &quot;#dopath o o w n&quot; macht dann jeweils send(&quot;o&quot;), 
-- send(&quot;o&quot;), send(&quot;w&quot;), send(&quot;n&quot;)

alt_dopath(matches[2])</script>
                <command></command>
                <packageName></packageName>
                <regex>^#dopath (.*)$</regex>
            </Alias>
        </AliasGroup>
</AliasPackage>

LUA

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

1 KeyGroup - Keypad

XML

<KeyPackage>
    - <KeyGroup isActive="yes" isFolder="yes">
        <name>Keypad</name> 
        <script /> 
        <command /> 
        <keyCode>-1</keyCode> 
        <keyModifier>-1</keyModifier>

LUA

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)

2 Key - 8: norden

XML

      - <Key isActive="yes" isFolder="no">
      -   <name>8: norden</name> 
        - <script /> 
    -     <command>norden</command> 
      -   <keyCode>56</keyCode> 
        - <keyModifier>536870912</keyModifier> 
        </Key>

LUA

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)

3 Key - 0: schau

4 Key - 5: schau

5 Key - +: unten

key_keycode = mudlet.key.Plus

6 Key - -: oben

key_keycode = mudlet.key.Minus

7 Key - 1: suedwesten

8 Key - 7: nordwesten

9 Key - 9: nordosten

10 Key - 4: westen

11 Key - 6: osten

12 Key - 2: sueden

13 Key - x: raus

key_keycode = mudlet.key.Slash

14 Key - /: kurz

XML

        <Key isActive="yes" isFolder="no">
          <name>/: kurz</name>
          <packageName></packageName>
          <script>local newmodus = &quot;&quot;

if ME.modus == &quot;lang&quot; then
  newmodus = &quot;kurz&quot;
elseif ME.modus == &quot;kurz&quot; then
  newmodus = &quot;ultrakurz&quot;
elseif ME.modus == &quot;ultrakurz&quot; then
  newmodus = &quot;lang&quot;
else
  newmodus = &quot;kurz&quot;
end

ME.modus = newmodus
send(newmodus)</script>
          <command></command>
          <keyCode>47</keyCode>
          <keyModifier>536870912</keyModifier>
        </Key>

LUA

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)

15 Key - ,: ausruestung

key_keycode = mudlet.key.Comma