思いついたらQ:名前の横の絵文字どうやるの?完テキなら名前の横に:ts:ってすればいいよ。絵文字一覧からコピーしてみてね。前後に半角英数字があるとうまく反映されないかも?Q:新規○△×?人によって定義が違うよ。卓募集に挙手するかどうかの目安かな。Q:げんみ?現行未通過。今そのシナリオを遊んでいる人、まだそのシナリオを遊んでいないことを指すみたい。Q:ダイス振れるの?もっと!→PlayQ:ねこちゃん設定→プロフィール→高度な設定→にゃあQ:ねこちゃん見づらい引用元 設定→プラグイン→プラグインのインストール→「」内コピペ続きを読む/// @ 0.12.4### { name: "変身プラグイン" version: "1.0.0" author: "hayrick" description: "①猫語が人間語になります。 ②好きな語尾つけられます。設定で好きな文字を入れてね。" config: { endWord: { type: 'string' label: '語尾' description: '例:ワン' default: '' } repls: { type: 'string' label: '置換リスト' description: '例: ["にゃ", "な"], ["ニャ", "ナ"],["nya", "na"] ...' default: '["にゃ", "な"], ["ニャ", "ナ"],["nya", "na"]' } }}// objのnullなプロパティを再帰的に除去@remove_null_property(object) { if Core:type(object) != 'obj' { return object } let new_obj = {} each let kv Obj:kvs(object) { let v = remove_null_property(kv[1]) if Core:type(v) != 'null' { Obj:set(new_obj kv[0] v) } } return new_obj}@validate(repls) { if Core:type(repls) != 'arr' { return [[] false] } let new_repls = [] var ok = true each let r repls { if Core:type(r) != 'arr' { ok = false continue } elif r.len != 2 { ok = false continue } elif Core:type(r[0]) != 'str' || Core:type(r[1]) != 'str' { ok = false continue } new_repls.push(r) } return [new_repls ok]}@replace(text repls) { if Core:type(text) != 'str' { return text } each let r repls { text = text.replace(r[0] r[1]) } return text}let a = validate(Json:parse(`[{Plugin:config.repls}]`))let repls = a[0]let ok = a[1]@view(note) { if ((note.text == null) || (note.text == "")) { note = remove_null_property(note) return note } elif note.text.incl("`") { note = remove_null_property(note) return note } else { note.text = replace(note.text repls) note.cw = replace(note.cw repls) if note.renote != null { note.renote.text = replace(note.renote.text repls) note.renote.cw = replace(note.renote.cw repls) } if note.reply != null { note.reply.text = replace(note.reply.text repls) note.reply.cw = replace(note.reply.cw repls) } note = remove_null_property(note) return note }}let b = Plugin:config.endWordlet endWord = b@post(note) { let bark:str = endWord let noteText:str = note.text let barkPoint:num = 0 let barkText:str = "" for let i=1 noteText.len { barkText = noteText.slice(noteText.len-i, noteText.len-i+1) if !(barkText == "!" || barkText == "?" || barkText == "!" || barkText == "?" || barkText == "。" || barkText == ";") { barkPoint = i break} } barkText = [noteText.slice(0, noteText.len+1-barkPoint ), bark].join() barkText = [barkText , noteText.slice(noteText.len-barkPoint +1, noteText.len)].join() note.text = barkText note = remove_null_property(note) note}if !ok { // Json:parseが例外落ちしたら機能しません Mk:dialog('Word Replace' '置換リストの一部がうまく読み込めませんでした' 'error')}Plugin:register_note_view_interruptor(view)Plugin:register_note_post_interruptor(post)畳むQ:設定してるのに一度見たRNがずっと流れる!リアクションを押さないと一度見たと認識されない……Q:鯖支援できる?できるよ。今できるのはアマギフを送ること。支援は義務ではないので無理のない課金をね。支援ページ Q:なんでほかにもお役立ちまとめあるのに作ったんですか?楽しかったから…… Q&A
Q:名前の横の絵文字どうやるの?
完テキなら名前の横に:ts:ってすればいいよ。絵文字一覧からコピーしてみてね。
前後に半角英数字があるとうまく反映されないかも?
Q:新規○△×?
人によって定義が違うよ。卓募集に挙手するかどうかの目安かな。
Q:げんみ?
現行未通過。今そのシナリオを遊んでいる人、まだそのシナリオを遊んでいないことを指すみたい。
Q:ダイス振れるの?
もっと!→Play
Q:ねこちゃん
設定→プロフィール→高度な設定→にゃあ
Q:ねこちゃん見づらい
引用元
設定→プラグイン→プラグインのインストール→「」内コピペ
畳む
Q:設定してるのに一度見たRNがずっと流れる!
リアクションを押さないと一度見たと認識されない……
Q:鯖支援できる?
できるよ。今できるのはアマギフを送ること。
支援は義務ではないので無理のない課金をね。
支援ページ
Q:なんでほかにもお役立ちまとめあるのに作ったんですか?
楽しかったから……