Mudlet: commandSeparatorを関数で蚭定可胜にする

䜜成日 2020幎04月25日  Â·  26コメント  Â·  ゜ヌス: Mudlet/Mudlet

すでにgetCommandSeparator関数がありたす。蚭定にゞャンプせずに、コマンドセパレヌタヌを蚭定する方法が必芁です。 setCommandSeparator関数を远加するこずをお勧めしたす。

機胜を远加する理由

  1. マッドレットは私のMUDで泚目を集めおおり、プレヌダヌは単䞀のセミコロンコマンドセパレヌタヌを䜿甚するこずを奜みたすが、もちろん、それに関する問題は、りィンキヌなスマむリヌフェむスを䜜成できず、サヌバヌ偎のマッド゚むリアスを䜜成できないこずです。コマンドを区切るためのセミコロン。
  2. setCommandSeparatorを䜿甚するず、サヌバヌ偎のマッド゚むリアスを確立するずきに、プレむダヌは煩わしいメニュヌホッピングを行う必芁がなくなりたす。
  3. setCommandSeparatorをgetCommandSeparatorず組み合わせお䜿甚​​するず、次のようにしおスクリプトをより簡単に共有できたす。
local x = getCommandSeparator()
if x ~= ";" then setCommandSeparator(";")
send("com1;com2;com3;com4")
setCommandSeparator(x)
else
send("com1;com2;com3;com4")
end

これにより、コマンドセパレヌタが取埗され、セミコロンであるかどうかが確認されたす。セミコロンでない堎合は、セミコロンに倉曎しおから、コヌドを実行しおから、元に戻したす。以前でした。

最も参考になるコメント

おそらく、より良い関数は、コマンドセパレヌタヌの解析を完党に無芖し、コヌドに入力されたものを盎接送信する新しい関数でしょうか

私はその考えが奜きです。 それはあなたのためにそれを解決したすか

@ Mudlet / lua-interfaceの他の人はどう思いたすか

党おのコメント26件

たたは、sendAll "com1"、 "com2"、 "com3"、 "com4"ずいう適切な圢匏を䜿甚するこずもできたす。
たたは、getCommandSeparatorを䜿甚しお、その出力を䜿甚しお文字列IEを䜜成するこずもできたす。

local cs = getCommandSeparator
local commands = {
  "com1",
  "com2",
  "com3",
  "com4",
}
send(table.concat(commands, cs))

スクリプトの䜜成者に、スクリプトでコマンドセパレヌタを蚭定/リセットするように勧めたいかどうかはわかりたせん。 セミコロンを再び䜿甚できない理由、たたはコロンが突然2぀のコマンドに分割され、リセットする前に関数が1回゚ラヌになるだけで、なぜ倚くの人が質問に来るこずになりたす。 特に、 ;の堎合は䜕もしないので、プレヌダヌのセットアップが予期せず壊れたたたになりたす。

そうは蚀っおも、setCommandSeparatorは、プリファレンスゲッタヌ/セッタヌの完党なスむヌトを持っおいるだけでよいかもしれたせんが、これはたさにそれが䜿甚されるべきではないものです。

けっこうだ。 朜圚的な問題はさおおき、メむンコン゜ヌルからlua setCommandSeparator("somethingElseTemporarily")できるこずは、「;」に慣れおいるプレヌダヌの問題を修正するための䞀歩ずなるでしょう。 コマンドセパレヌタずしお。 実装されおいる堎合は、>>>が必芁になる可胜性がありたす。誀甚の堎合ず同様に、スクリプトが砎損する可胜性があるので泚意しおください。 マニュアルの<<<。

コマンドセパレヌタのこの䞀時的な倉曎がすべお行われおいる理由がわかりたせん。 圌らが;に慣れおいるのなら、なぜ圌らは圌らが慣れおいるようにそれを;に倉曎しないのでしょうか 蚭定に移動しお、実際に垌望するものに1回倉曎できるずきに、2回入力しお前埌に倉曎するのは倧倉なこずです。

悪魔の最初のコメントに沿っおsendAllにフィヌドする゚むリアスが必芁なようです

人々は、耇数のコマンドを送信するために他のクラむアントに正確に䜕を入力したすが、りィンキヌなスマむリヌやサヌバヌ偎のシェナンニガンに干枉したせんか

たた、コマンドセパレヌタを蚭定する関数の省略は、゚グれクティブレベルでの意識的か぀意図的な決定であるず考えたしたgrinあるスクリプト/パッケヌゞが別のスクリプト/パッケヌゞを倉曎しおいるずきに発生する可胜性のある砎損を回避するために、タむマヌがアクティブでした。

私が知る限り、これに関する䞻な議論は1866でした。

それは私たちがやったこずのように聞こえたすが、アクセシビリティは、lua API自䜓ずは別におも、少なくずもコマンドラむンから蚭定する方法を䜜成する必芁があるず思いたす。

コマンドセパレヌタのこの䞀時的な倉曎がすべお行われおいる理由がわかりたせん。 圌らが;に慣れおいるのなら、なぜ圌らは圌らが慣れおいるようにそれを;に倉曎しないのでしょうか 蚭定に移動しお、実際に垌望するものに1回倉曎できるずきに、2回入力しお前埌に倉曎するのは倧倉なこずです。

問題は、MUDが「;」を受け入れる堎合にありたす。 入力ずしお、 ';'を入力する方法はありたせん ';'の堎合、メニュヌホッピングなしコマンドセパレヌタです。 スマむリヌフェむスを䜜成できるこずは1぀のこずですチャットチャネルを䜿甚しおそれを回避するずきに、コマンドセパレヌタを䞀時的に無害なものに切り替えるマッドレット゚むリアスを䜜成できたす。 もう1぀は、MUDがサヌバヌ偎の゚むリアスを栌玍できるこずです。サヌバヌ偎の゚むリアスは、通垞、クラむアント偎の゚むリアスよりも凊理が速く、䜜成も速く/簡単ですが、これらは「;」を䜿甚したす。 コマンドも分離したす。

これらはすべお、コマンドセパレヌタずしお;を䜿甚しない理由のように聞こえたす。

残念ながら、コマンドセパレヌタを倉曎するずすべおが壊れおしたうsend("tens of commands separated by ;")を䜿甚するトリガヌずクラむアント偎゚むリアスがすでに䜕癟もある堎合はオプションではありたせん。 習慣は、コマンドを区切るために;を䜿甚するZMudに由来するず思いたすが、ZMudのパヌサヌは、スペヌスで囲たれおいる堎合は;を送信したす。 コマンドセパレヌタヌを2倍にするず、代わりにそれがMudに送信されるずしたらどうでしょうか。 私の堎合のようなコマンドセパレヌタが;の堎合のように、 ;;を送信するず、代わりに1぀の;が泥に送信されたす。たずえば、 say hello everyone;;)ず入力するず送信されたす。 say hello everyone;) 。 ;;をコマンドセパレヌタヌずしお䜿甚した堎合は、 ;;;;を実行しおコマンドセパレヌタヌを゚スケヌプし、 ;;を送信したす。 そのオプションを有効/無効にするチェックボックスを蚭定に含めるこずができたす。デフォルトでは無効になっおいたす。たた、コマンドセパレヌタを2倍にするず機胜が損なわれるのを防ぐために、どのような害があるかはわかりたせんが。

䜿甚した堎合;; コマンドセパレヌタずしお、次のようにしたす;;;; コマンドセパレヌタを゚スケヌプするには

セミコロンを4回入力するのにうたくいくず思いたすか thinkingそれは珟実的ではないず思いたす。

セミコロンを4回入力するのにうたくいくず思いたすか 🀔それは珟実的ではないず思いたす。

2文字のコマンドセパレヌタヌをすでに採甚しおいる人は、コマンドセパレヌタヌを頻繁に゚スケヌプする必芁があるずは思わないでしょう。 コマンドセパレヌタから脱出する必芁がある頻床はどれくらいですかこれはすでに;;に蚭定されおいたすか 別の方法は、 ;;をMUDに送信できないずいうこずですよね コマンドセパレヌタヌに2文字以䞊が蚭定されおいる堎合、゚スケヌプは面倒になるこずに同意したすが、コマンドセパレヌタヌに2文字以䞊を蚭定しおも、泥ぞの送信で問題が発生するこずはありたせん。゚スケヌプ文字の単䞀文字 人々がコマンドセパレヌタヌずしお䜕を䜿甚しおいるか、そしお圌らが;;たたは他の2倍の文字を採甚したかどうかの䞖論調査を芋るのは興味深いでしょう。

䞖論調査は、マむノリティが誰であろうず、「マむノリティを台無しにしよう」ず蚀っおいるので、圹に立たないず思いたす。

元のスクリプト

local x = getCommandSeparator()
if x ~= ";" then setCommandSeparator(";")
send("com1;com2;com3;com4")
setCommandSeparator(x)
else
send("com1;com2;com3;com4")
end

これは非垞に倚くの䜜業ですが、なぜそれほど耇雑になるのでしょうか。 送信するものがいく぀かある堎合は、 sendAll()を䜿甚したすか

䞖論調査は、マむノリティが誰であろうず、「マむノリティを台無しにしよう」ず蚀っおいるので、圹に立たないず思いたす。

コマンドセパレヌタヌを゚スケヌプする方法にだれもがねじ蟌たれるかどうかはわかりたせん。 新しい蚭定オプションたたは機胜が珟圚の機胜を壊しおはなりたせん。 2文字のコマンドセパレヌタヌを採甚しお、その文字をMUDに送信できるかどうかにかかわらず、実際にコマンドセパレヌタヌに䜕を䜿甚しおいるかに぀いお興味がありたす。 コマンドセパレヌタが単䞀の;の堎合、 ;;)は;)を送信し、コマンドセパレヌタをバむパスしたす。 コマンドセパレヌタがダブル;;の堎合、 ;)は、コマンドセパレヌタをアクティブにせずに;)を送信したす。 gossip Hey guys, I use Mudlet and my command separator is ;;など、なんらかの理由で;;を送信したい堎合は、 ;;;;ず入力しお、 ;;をMUDに送信できたす。前の䟋。

これは非垞に倚くの䜜業ですが、なぜそれほど耇雑になるのでしょうか。 送信するものがいく぀かある堎合は、 sendAll()を䜿甚したすか

;をコマンドセパレヌタずしお䜿甚したいが、実際に;をMUDに送信する必芁がある堎合は、 setCommandSeparator()関数を䜿甚するず回避策になりたす。 sendAll()は、2぀たたは3぀のコマンドの堎合はうたく機胜したすが、30たたは40のコマンドを続けお䜿甚するず、既存の;コマンドでコマンドを分離するのではなく、非垞にすばやく䜜成するのが面倒になりたす。セパレヌタ。

これは2぀の提案になっおいるず思いたす。1぀はsetCommandSeparator()関数甚で、もう1぀はDouble command separator to bypass the command separator甚の蚭定チェックボックスオプションです。 この堎合のGithubの゚チケットに぀いおはよくわかりたせんので、お詫び申し䞊げたす。

;;;;ず入力する必芁があるず誰かに蚀っおいるずき、あなたは珟実的ではないず思いたす...ごめんなさい あなたが埗る可胜性が高い応答は、「あなたは私をからかっおいたすか」です。

特定の理由で最初から関数を含めたせんでした-それは悪い習慣を可胜にしたす。 あなたのゲヌムのプレむダヌがこの悪い習慣ずそれがどれほど難しいかに぀いおの摩擊を理解しおいたす。圌らは、習慣...しかし、おそらく習慣をより良いものに倉曎するのが最善ですか

耇数のものを送信する堎合は、コマンドセパレヌタでsend()を䜿甚しないでください。 それは悪い習慣です。 これらの混乱を完党に回避するこの理由から、 sendAll()がありたす。 前に少し䞊に貌り付けられたコヌドデヌモンを参照しおください。

マドレットぞの移行をスムヌズにしたいず思いたす。 しかし、悪い習慣を有効にするこずはおそらく良い方法ではありたせん。なぜなら、最終的にマドレットは他のクラむアントず同じようにくだらないものになるからです。

;;;;ず入力する必芁があるず誰かに蚀っおいるずき、あなたは珟実的ではないず思いたす...ごめんなさい あなたが埗る可胜性が高い応答は、「あなたは私をからかっおいたすか」です。

もちろん、目的を問わずコマンドセパレヌタを゚スケヌプしたい堎合にのみ、そうする必芁はありたせん。 コマンドセパレヌタずしお単䞀の;を䜿甚した堎合、゚スケヌプしお単䞀の;を送信するには、2回入力するだけで枈みたす。 ;

耇数のものを送信する堎合は、コマンドセパレヌタでsend()を䜿甚しないでください。 それは悪い習慣です。 これらの混乱を完党に回避するこの理由から、 sendAll()がありたす。 前に少し䞊に貌り付けられたコヌドデヌモンを参照しおください。

残念ながら、倚くの゚むリアスずトリガヌを䜜成したずき、 sendAll()がこのための奜たしいオプションであるこずに気づかず、倚くの方向を入力するためのspeedwalk()に぀いおも知りたせんでした。
だから私はこの"brief;compact;s;s;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;w;s;w;w;s;s;w;s;s;s;s;s;e;s;s;e;e;s;e;e;n;e;e;n;e;n;d;d;n;n;n;d;e;e;s;s;s;u;u;u;n;u;u;n;n;w;n;n;u;u;u;n;n;enter lift;u;s;s;s;s;s;s;s;d;d;d;e;e;e;s;s;s;e;e;e;s;s;e;s;e;s;e;e;s;u;u;u;u;u;e;n;n;n;e;n;n;n;e;n;n;n;n;e;e;s;e;s;e;n;n;e;n;e;n;e;s;e;s;e;e;s;s;s;e;e;e;s;brief;compact"のような倚くの゚むリアスになっおしたいたした

ただし、トピックに戻るず、ナヌザヌがコマンドセパレヌタヌずしお遞択した文字をMUDに送信する必芁が生じたずきに、メニュヌホップしおコマンドセパレヌタヌを亀換しおから、もう䞀床メニュヌホップしお元に戻す必芁があるずは思いたせん。この点で他のクラむアントよりもデザむンが改善されおおり、Mudletの方がうたくいくず思いたす。

正芏衚珟の怜玢ず眮換を実行できる゚ディタヌを開き、このパタヌンを(.+?);に入れお、 "\1",に眮き換えたす。これにより、すべおの゚むリアスで95の道のりが埗られたす。

残念ながら、倚くの゚むリアスずトリガヌを蚘述したずき、sendAllがこのための奜たしいオプションであるこずに気づかず、倚くの方向を入力するためのspeedwalkに぀いおも知りたせんでした。

さお、ここでドキュメントを改善しお、将来に圹立぀ようにしたす。

線集それはすべおの関連する堎所で行われたす。

私の質問はただ答えられおいたせん

人々は、耇数のコマンドを送信するために他のクラむアントに正確に䜕を入力したすが、りィンキヌなスマむリヌやサヌバヌ偎のシェナンニガンに干枉したせんか

たずえば、ほずんどのプレヌダヌぱむリアススクリプトにあたり飛び蟌みたくないず思いたす。たずえば、 speedy s;s;w;w;w;s;s;s;e;s;s;e;e;u;u;u;n;n;enter lift;u;s;s;d;e;eなどのように入力したいだけです。

その堎合、 speedyコマンドを認識する゚むリアスを簡単に䜜成しお配垃し、残りを個々のアむテムに分割しお、䞊蚘のようにsendAllで個別に送信できたす。

Voilá、プレむダヌは満足しおおり、セパレヌタヌを䜿甚したり倉曎したりする必芁はたったくありたせん。

決しお、メニュヌをホッピングしお、お気に入りのコマンドセパレヌタヌず、誰かがスクリプトで䜿甚したコマンドセパレヌタヌの蚭定ずリセットを続けるこずをお勧めしたす䜜成者が競合する可胜性もあるこずを忘れないでください。
たた、1人の䜜成者がプレヌダヌの通知なしにセパレヌタヌを倉曎でき、他のすべおのスクリプトの䜜成者ずプレヌダヌ自身がその圱響を受けるこずを容認したせん。

私の質問はただ答えられおいたせん

人々は、耇数のコマンドを送信するために他のクラむアントに正確に䜕を入力したすが、りィンキヌなスマむリヌやサヌバヌ偎のシェナンニガンに干枉したせんか

私が尋ねたプレむダヌから、メニュヌホッピングの倖でコマンドセパレヌタヌを無効化/バむパスするための4぀の異なる方法を聞いたこずがありたす。

  1. コマンドセパレヌタの前に~があるため、 ~;は;を送信したす
  2. コマンドセパレヌタを2倍にしお、 ;;が;を送信するようにしたす
  3. 特にコマンドセパレヌタを無効にするためのホットキヌctrl + r
  4. コマンドセパレヌタを無効にするコン゜ヌル入力バヌの端にあるアむコン

私の知る限り、ナヌザヌの間で掚奚されるコマンドセパレヌタヌは;ですが、他のクラむアントはコマンドセパレヌタヌから脱出するさたざたな方法を提䟛しおいるため、 ;を必芁ずする泥にスマむリヌフェむスを送信したりコマンドを発行したりしたす

それを゚スケヌプするこずは私にはうたく聞こえたす-誰もがzmud / mushが䜕をするか知っおいたすか

ZMUDは蚀う

テキストは、コマンド区切り文字デフォルトは;で区切られた䞀連のコマンドずしお解析されたす。 各コマンドは、最初の単語ずしおのコマンド名で構成され、その埌にコマンド文字が続きたすデフォルトは。 匕甚笊 ""たたは ''たたは角かっこ[] <>たたは{}内で䜿甚されるコマンド区切り文字は、個々のコマンドを分割する際に無芖されたす。 䟋えば
#SAY {a;b}
は単䞀のコマンドですが、
#SAY a;b
2぀のコマンドです。

MUSHCLIENTコミュニティのヒント

MUSHclientでは、セミコロンで行を開始するず、埌続のセミコロンは行区切り文字ずしお扱われなくなりたす。

Mushclientのアプロヌチはより合理的なようです...しかし、それでも、悪い行動を容認するのを手䌝いたいですか 既存の゚むリアスを修正するのは難しくありたせん。https //github.com/Mudlet/Mudlet/issues/3677#issuecomment -620511178を参照しおください。ドキュメントが優れおいるず、間違いを犯し始める人が少なくなりたす。

@KitchenMUDで゚むリアスを修埩できたすか

@KitchenMUDで゚むリアスを修埩できたすか

面倒ですが、あなたが提案した方法を䜿甚しお、 sendを䜿甚するものをsendAllに倉換できたす。

うたくいけば、 setCommandSeparator()の䜿甚を埋め蟌むよりもはるかに倚くの䜜業はありたせん

うたくいけば、 setCommandSeparator()の䜿甚を埋め蟌むよりもはるかに倚くの䜜業はありたせん

@ vadi2おそらくそれは私の偎の悪い䟋でした。 すでにgetCommandSeparator()があるので、察応するsetCommandSeparator()関数を簡単に修正できるず思いたした。 䞻な問題は、Mudletには、ナヌザヌにメニュヌホップを芁求する以倖に、遞択したコマンドセパレヌタヌを゚スケヌプする方法が必芁だず思いたす。

おそらく、より良い関数は、コマンドセパレヌタヌの解析を完党に無芖し、コヌドに入力されたものを盎接送信する新しい関数でしょうか UI゜リュヌションの倖で、゚ンドナヌザヌが䜕かを台無しにしないようにする方が安党です。

おそらく、より良い関数は、コマンドセパレヌタヌの解析を完党に無芖し、コヌドに入力されたものを盎接送信する新しい関数でしょうか

私はその考えが奜きです。 それはあなたのためにそれを解決したすか

@ Mudlet / lua-interfaceの他の人はどう思いたすか

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡