Difference between revisions of "User:Unsup"

From Discworld MUD Wiki
Jump to: navigation, search
(Created page with "== Aliases == === Blorples === User:Juliette#Laos provides a nice setup. === "with": Klein bottle, tool, money, etc === I find these kinds of aliases to be rather hand...")
 
(Blanked the page)
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Aliases ==
 
  
=== Blorples ===
 
 
[[User:Juliette#Laos]] provides a nice setup.
 
 
=== "with": Klein bottle, tool, money, etc ===
 
 
I find these kinds of aliases to be rather handy:
 
 
<pre>alias with-tool get $1$ from backpack; hold $1$ in right hand; $2*$; put $1$ into backpack
 
alias with-money get money from backpack; $*$; put money into backpack
 
alias tactics-hands tactics parry $1$; tactics attack $1$
 
alias with-klein-bottle tactics-hands left; get klein bottle from backpack into right hand; $*$; put klein bottle into backpack; tactics-hands both</pre>
 
 
=== Mind space ===
 
 
Both Quow's plugins and his website provide a way to check the mind space taken by spells, it's trivial and better to set in the client, but here's an alias as well:
 
 
<pre>> mindspace-sum mmm nes ccc tpa grg ahsb fnp boa jpct ftf otf ffm wms
 
mmm:25 nes:45 ccc:25 tpa:25 grg:40 ahsb:25 fnp:35 boa:10 jpct:20 ftf:20 otf:15 ffm:15 wms:25
 
Queued command: mindspace-sum-brief mmm nes ccc tpa grg ahsb fnp boa jpct ftf otf ffm wms
 
> 325.000000</pre>
 
 
<pre>alias mindspace-spell-alias alias mindspace-$1$ \$*\$ + $2$; alias mindspace-print-$1$ \$*\$ $1$:$2$
 
 
mindspace-spell-alias cts 15
 
mindspace-spell-alias ahsb 25
 
mindspace-spell-alias asb 5
 
mindspace-spell-alias aiw 25
 
mindspace-spell-alias baf 15
 
mindspace-spell-alias bep 50
 
mindspace-spell-alias bfp 10
 
mindspace-spell-alias boa 10
 
mindspace-spell-alias bhee 5
 
mindspace-spell-alias ceib 25
 
mindspace-spell-alias cbb 10
 
mindspace-spell-alias ccc 25
 
mindspace-spell-alias cips 10
 
mindspace-spell-alias cfd 10
 
mindspace-spell-alias cmseq 60
 
mindspace-spell-alias cms2 60
 
mindspace-spell-alias cms 40
 
mindspace-spell-alias ddd 10
 
mindspace-spell-alias dkdd 60
 
mindspace-spell-alias dwfpp 25
 
mindspace-spell-alias dtid 20
 
mindspace-spell-alias eha 30
 
mindspace-spell-alias ehai 10
 
mindspace-spell-alias eham 10
 
mindspace-spell-alias eha2 10
 
mindspace-spell-alias eff 20
 
mindspace-spell-alias esb 10
 
mindspace-spell-alias fci 15
 
mindspace-spell-alias fae 20
 
mindspace-spell-alias ftf 20
 
mindspace-spell-alias ffm 15
 
mindspace-spell-alias fhe 10
 
mindspace-spell-alias ffod 15
 
mindspace-spell-alias fnp 35
 
mindspace-spell-alias gon 30
 
mindspace-spell-alias grtw 25
 
mindspace-spell-alias gct 5
 
mindspace-spell-alias grg 40
 
mindspace-spell-alias gfr 25
 
mindspace-spell-alias heb 30
 
mindspace-spell-alias irv 5
 
mindspace-spell-alias jpct 20
 
mindspace-spell-alias jmc 20
 
mindspace-spell-alias jhsd 75
 
mindspace-spell-alias kof 30
 
mindspace-spell-alias kid 20
 
mindspace-spell-alias kpp 15
 
mindspace-spell-alias mac 10
 
mindspace-spell-alias masi 60
 
mindspace-spell-alias mpol 5
 
mindspace-spell-alias mgagt 30
 
mindspace-spell-alias mwic 10
 
mindspace-spell-alias mvc 5
 
mindspace-spell-alias mmm 25
 
mindspace-spell-alias mmd 10
 
mindspace-spell-alias mvs 30
 
mindspace-spell-alias nes 45
 
mindspace-spell-alias nha 30
 
mindspace-spell-alias nmd 15
 
mindspace-spell-alias otf 15
 
mindspace-spell-alias obbk 25
 
mindspace-spell-alias ptqwb 50
 
mindspace-spell-alias ppp 10
 
mindspace-spell-alias pfg 30
 
mindspace-spell-alias plg 30
 
mindspace-spell-alias pmg 10
 
mindspace-spell-alias pfga 50
 
mindspace-spell-alias reap 20
 
mindspace-spell-alias rpd 5
 
mindspace-spell-alias rps 30
 
mindspace-spell-alias rvrv 10
 
mindspace-spell-alias sssu 30
 
mindspace-spell-alias sss2 30
 
mindspace-spell-alias sss 10
 
mindspace-spell-alias sfper 20
 
mindspace-spell-alias sfp2 20
 
mindspace-spell-alias sfp 10
 
mindspace-spell-alias smr 40
 
mindspace-spell-alias tdcf 20
 
mindspace-spell-alias tig 50
 
mindspace-spell-alias tmc 10
 
mindspace-spell-alias tpa 25
 
mindspace-spell-alias tea 10
 
mindspace-spell-alias updd 25
 
mindspace-spell-alias vhsc 35
 
mindspace-spell-alias www 45
 
mindspace-spell-alias wamg 15
 
mindspace-spell-alias wbps 30
 
mindspace-spell-alias wgs 35
 
mindspace-spell-alias wms 25
 
mindspace-spell-alias yee 35
 
 
alias mindspace-base math 0
 
 
alias expand-with-prefix-and-base $ifarg3:$1$-$3$$endif$ $ifarg4:$1$-$4$$endif$ $ifarg5:$1$-$5$$endif$ $ifarg6:$1$-$6$$endif$ $ifarg7:$1$-$7$$endif$ $ifarg8:$1$-$8$$endif$ $ifarg9:$1$-$9$$endif$ $ifarg10:$1$-$10$$endif$ $ifarg11:$1$-$11$$endif$ $ifarg12:$1$-$12$$endif$ $ifarg13:$1$-$13$$endif$ $ifarg14:$1$-$14$$endif$ $ifarg15:$1$-$15$$endif$ $ifarg16:$1$-$16$$endif$ $ifarg17:$1$-$17$$endif$ $ifarg18:$1$-$18$$endif$ $ifarg19:$1$-$19$$endif$ $ifarg20:$1$-$20$$endif$ $ifarg21:$1$-$21$$endif$ $ifarg22:$1$-$22$$endif$ $ifarg23:$1$-$23$$endif$ $ifarg24:$1$-$24$$endif$ $ifarg25:$1$-$25$$endif$ $ifarg26:$1$-$26$$endif$ $ifarg27:$1$-$27$$endif$ $ifarg28:$1$-$28$$endif$ $ifarg29:$1$-$29$$endif$ $ifarg30:$1$-$30$$endif$ $ifarg31:$1$-$31$$endif$ $ifarg32:$1$-$32$$endif$ $ifarg33:$1$-$33$$endif$ $ifarg34:$1$-$34$$endif$ $ifarg35:$1$-$35$$endif$ $ifarg36:$1$-$36$$endif$ $ifarg37:$1$-$37$$endif$ $ifarg38:$1$-$38$$endif$ $ifarg39:$1$-$39$$endif$ $ifarg40:$1$-$40$$endif$ $ifarg41:$1$-$41$$endif$ $ifarg42:$1$-$42$$endif$ $ifarg43:$1$-$43$$endif$ $ifarg44:$1$-$44$$endif$ $ifarg45:$1$-$45$$endif$ $ifarg46:$1$-$46$$endif$ $ifarg47:$1$-$47$$endif$ $ifarg48:$1$-$48$$endif$ $ifarg49:$1$-$49$$endif$ $ifarg50:$1$-$50$$endif$ $2$
 
 
alias mindspace-sum expand-with-prefix-and-base mindspace-print frimble $*$; mindspace-sum-brief $*$
 
alias mindspace-sum-brief expand-with-prefix-and-base mindspace mindspace-base $*$
 
</pre>
 
 
 
 
=== Library navigation ===
 
 
This is awkward/slow and better to set client-side (as I did, see below), but here are aliases that help to keep track of the direction:
 
 
<pre>alias alias-swap alias rename $1$ to _tmp; alias rename $2$ to $1$; alias rename _tmp to $2$
 
alias alias-rotate alias rename $1$ to _tmp; alias rename $2$ to $1$; alias rename $3$ to $2$; alias rename $4$ to $3$; alias rename _tmp to $4$
 
 
alias compass-init alias compass-north forward; alias compass-west left; alias compass-east right; alias compass-south backward
 
 
alias lib-backward alias-swap compass-south compass-north; alias-swap compass-west compass-east
 
alias lib-left alias-rotate compass-north compass-east compass-south compass-west
 
alias lib-right alias-rotate compass-north compass-west compass-south compass-east
 
 
alias lbw lib-backward; bw; alias compass-north
 
alias lfw fw; alias compass-north
 
alias llt lib-left; left; alias compass-north
 
alias lrt lib-right; right; alias compass-north</pre>
 
 
 
== Client-side setup ==
 
 
Quow's database (comes with Quow's MUSHclient plugins, available from http://quow.co.uk/) is handy to look up items and to read map data for speedwalking. Here is an SQLite view I use for item lookup:
 
 
<pre>create view shops_and_npcs as
 
select item_name, type, npc_name, sale_price, room_short from
 
      (select item_name, 'shop' as type, null as 'npc_name', sale_price, room_id
 
        from shop_items
 
        union
 
        select item_name, 'npc' as type, npc_name, null, room_id
 
        from npc_items natural inner join npc_info)
 
natural inner join rooms;</pre>
 
 
As a client, I use telnet running inside Emacs (shell-mode), via a proxy for speedwalking, with hi-lock-mode for highlighting, and the following minor mode for hunting, walking, library navigation:
 
 
<pre>;; -*- lexical-binding: t; -*-
 
 
(defun discworld-issue-command (cmd)
 
  (lambda ()
 
    (interactive)
 
    (comint-simple-send (get-buffer-process (current-buffer))
 
                        cmd)))
 
 
(defun discworld-library-enter ()
 
  (interactive)
 
  (setq discworld-north 'forward)
 
  (setq discworld-north-prev 'forward)
 
  (funcall (discworld-issue-command "verbose look"))
 
  (funcall (discworld-issue-command "north"))
 
  (discworld-keys-mode 1))
 
 
(defun discworld-library-revert ()
 
  (interactive)
 
  (setq discworld-north discworld-north-prev))
 
 
(defun discworld-library-move (where)
 
  (lambda ()
 
    (interactive)
 
    (setq discworld-north-prev discworld-north)
 
    (setq discworld-north
 
          (case where
 
            ('forward discworld-north)
 
            ('left (case discworld-north
 
                    ('forward 'right)
 
                    ('right 'backward)
 
                    ('backward 'left)
 
                    ('left 'forward)))
 
            ('right (case discworld-north
 
                      ('forward 'left)
 
                      ('right 'forward)
 
                      ('backward 'right)
 
                      ('left 'backward)))
 
            ('backward (case discworld-north
 
                        ('forward 'backward)
 
                        ('right 'left)
 
                        ('backward 'forward)
 
                        ('left 'right)))))
 
    (message "North: %s" (symbol-name discworld-north))
 
    (funcall (discworld-issue-command (symbol-name where)))))
 
 
(setq discworld-keys-mode-map
 
      (let ((map (make-sparse-keymap "Discworld keys")))
 
        ;; movement
 
        (define-key map "f" (discworld-issue-command "n"))
 
        (define-key map "p" (discworld-issue-command "ne"))
 
        (define-key map "w" (discworld-issue-command "nw"))
 
        (define-key map "t" (discworld-issue-command "e"))
 
        (define-key map "r" (discworld-issue-command "w"))
 
        (define-key map "c" (discworld-issue-command "s"))
 
        (define-key map "v" (discworld-issue-command "se"))
 
        (define-key map "x" (discworld-issue-command "sw"))
 
        ;; other
 
        (define-key map "s" (discworld-issue-command "ka"))
 
        (define-key map "z" (discworld-issue-command "loot"))
 
        (define-key map "a" (discworld-issue-command "lot"))
 
        (define-key map "g" (discworld-issue-command "g"))
 
        (define-key map "b" (discworld-issue-command "bc"))
 
        (define-key map "1" (discworld-issue-command "kl 1"))
 
        (define-key map "2" (discworld-issue-command "kl 2"))
 
        (define-key map "3" (discworld-issue-command "kl 3"))
 
        (define-key map "4" (discworld-issue-command "kl 4"))
 
        (define-key map "5" (discworld-issue-command "kl 5"))
 
        (define-key map "q" 'discworld-keys-mode)
 
 
        ;; right hand
 
        (define-key map "h" (discworld-issue-command "h"))
 
        (define-key map "n" (discworld-issue-command "con"))
 
        (define-key map "e" (discworld-issue-command "ctpa"))
 
        (define-key map [up] (discworld-library-move 'forward))
 
        (define-key map [down] (discworld-library-move 'backward))
 
        (define-key map [left] (discworld-library-move 'left))
 
        (define-key map [right] (discworld-library-move 'right))
 
        map))
 
 
 
(define-minor-mode discworld-keys-mode
 
  "Movement keys"
 
  :lighter " DWK"
 
  :keymap discworld-keys-mode-map
 
  )</pre>
 

Latest revision as of 18:50, 1 March 2019