Module:Sandbox/GuoPC/MomoGoPro
< Module:Sandbox | GuoPC
跳到导航
跳到搜索
用于将使用{{Momotalk}}展示的内容改为以{{MomoTalkPro}}形式呈现,返回对应的代码。
使用方法
{{User:GuoPC/MomoGoPro
|num = <!-- 填入消息的最大轮数 -->
|name = <!-- 填入学生名字的英文/罗马字,如Koharu,用于对应头像 -->
<!-- 其余参数从原本使用的{{Momotalk}}中复制过来即可 -->
}}
说明
- 对于在{{Momotalk}}中未指定
main-style
的,均会在处理后添加inner_style = max-height:65vh;overflow-y:scroll
。 - 目前已适配的消息类型(按“<{{Momotalk}}参数> → <{{MomoTalkPro}}参数>”格式说明):
- 学生
- 新消息:
|i=ss|typei=msg
→|n|1
- 连续消息:
|i=s|typei=msg
→|s|1
- 图片:
|i=ss|typei=img
或|i=s|typei=img
→|i|1
- 新消息:
- 老师
- 消息:
|i=t|typei=msg
→|t
- 回复选项(最多2个):
|i=t|typei=rep|choosei_1=…[|choosei_2=…]
→|c|回复|…[|…]|end|b|t|…|e[|b|t|…|e]
- 羁绊剧情:
|i=t|typei=kzn
→|k|羁绊剧情
- 消息:
- 学生
- 如果可能,修改后请参照原文检查:对于老师不同的回复选项,学生后续的消息是否有差异。如果有,请将对应消息移至
|b|t|…|e
的对应回复之后、|e
之前的位置。如下方#示例,输出中的第一个选项(第8~14行)的部分,需要将第15行移至第10行下方,将第16行移至第13行下方。
示例
以赤司淳子/MomoTalk#原始为例。
- 使用
{{User:GuoPC/MomoGoPro
|num=65
|name=Zunko
|main-style=max-height:65vh;overflow-y:scroll
|1 = ss
|type1 = msg
|avatar1 = {{蔚蓝档案头像|Zunko|50}}
|content1 = 呃呃……為什麼美食都這麼貴呢……
|name1 = 赤司淳子
|2 = ss
|type2 = msg
|avatar2 = {{蔚蓝档案头像|Zunko|50}}
|content2 = 真希望可以不要工作賺錢……
|name2 = 赤司淳子
|3 = t
|type3 = rep
|choose3_1 = 不可以走歪道,要好好做正當的事情…
|choose3_2 = 我也想要不用工作賺錢……
|4 = ss
|type4 = msg
|avatar4 = {{蔚蓝档案头像|Zunko|50}}
|content4 = 話是如此沒錯啦……
|name4 = 赤司淳子
|5 = ss
|type5 = msg
|avatar5 = {{蔚蓝档案头像|Zunko|50}}
|content5 = 等等,老師說出這種話沒問題嗎?
|name5 = 赤司淳子
|6 = ss
|type6 = msg
|avatar6 = {{蔚蓝档案头像|Zunko|50}}
|content6 = 嗯,那也只是說說而已,打工時我可是很認真的。
|name6 = 赤司淳子
|7 = t
|type7 = msg
|content7 = 淳子要打工……?
|8 = ss
|type8 = msg
|avatar8 = {{蔚蓝档案头像|Zunko|50}}
|content8 = 那句話是什麼意思,
|name8 = 赤司淳子
|9 = s
|type9 = msg
|avatar9 = {{蔚蓝档案头像|Zunko|50}}
|content9 = 我去打工又怎麼了!
|name9 = 赤司淳子
|10 = t
|type10 = kzn
|content10 = 前往赤司淳子的羁绊剧情
|11 = ss
|type11 = msg
|avatar11 = {{蔚蓝档案头像|Zunko|50}}
|content11 = 老師、老師!
|name11 = 赤司淳子
|12 = ss
|type12 = msg
|avatar12 = {{蔚蓝档案头像|Zunko|50}}
|content12 = 我發現了一個很厲害的事情!
|name12 = 赤司淳子
|13 = t
|type13 = msg
|content13 = 什麼事?
|14 = ss
|type14 = msg
|avatar14 = {{蔚蓝档案头像|Zunko|50}}
|content14 = 我找到了能用便宜的費用吃一大堆高級海鮮的方法!
|name14 = 赤司淳子
|15 = t
|type15 = rep
|choose15_1 = 那是真的嗎?
|choose15_2 = 淳子,再怎麼想吃高級海鮮,也不能犯罪啊。
|16 = ss
|type16 = msg
|avatar16 = {{蔚蓝档案头像|Zunko|50}}
|content16 = 當然。詳細的方法是秘密……嘿嘿。
|name16 = 赤司淳子
|17 = ss
|type17 = msg
|avatar17 = {{蔚蓝档案头像|Zunko|50}}
|content17 = 你把我當成什麼了?我才不是要犯罪好嗎?
|name17 = 赤司淳子
|18 = ss
|type18 = msg
|avatar18 = {{蔚蓝档案头像|Zunko|50}}
|content18 = 如果想知道詳細的方法,今天的晚餐時間來一趟格黑娜的學園餐廳吧。
|name18 = 赤司淳子
|19 = s
|type19 = msg
|avatar19 = {{蔚蓝档案头像|Zunko|50}}
|content19 = 絕對不能遲到喔!
|name19 = 赤司淳子
|20 = t
|type20 = kzn
|content20 = 前往赤司淳子的羁绊剧情
|21 = ss
|type21 = msg
|avatar21 = {{蔚蓝档案头像|Zunko|50}}
|content21 = 呃呃,
|name21 = 赤司淳子
|22 = s
|type22 = msg
|avatar22 = {{蔚蓝档案头像|Zunko|50}}
|content22 = 如果沒有為了實驗假食物而購買布丁,今天的晚餐應該就能吃得很豪華了呢……
|name22 = 赤司淳子
|23 = t
|type23 = msg
|content23 = 淳子。
|24 = ss
|type24 = msg
|avatar24 = {{蔚蓝档案头像|Zunko|50}}
|content24 = 為什麼?
|name24 = 赤司淳子
|25 = t
|type25 = msg
|content25 = 剛剛在網路上看到只要在黃瓜上塗蜂蜜,就會有哈密瓜的味道耶。
|26 = ss
|type26 = msg
|avatar26 = {{蔚蓝档案头像|Zunko|50}}
|content26 = 又是網路文章啊!再說,蜂蜜比哈密瓜還貴啊!
|name26 = 赤司淳子
|27 = s
|type27 = msg
|avatar27 = {{蔚蓝档案头像|Zunko|50}}
|content27 = 我再也不被假食物騙了!
|name27 = 赤司淳子
|28 = ss
|type28 = msg
|avatar28 = {{蔚蓝档案头像|Zunko|50}}
|content28 = 嘿嘿嘿,老師。你好好羨慕我吧。
|name28 = 赤司淳子
|29 = ss
|type29 = msg
|avatar29 = {{蔚蓝档案头像|Zunko|50}}
|content29 = 今天美食研究會的晚餐菜單就是……肉!
|name29 = 赤司淳子
|30 = t
|type30 = msg
|content30 = ……肉!
|31 = ss
|type31 = msg
|avatar31 = {{蔚蓝档案头像|Zunko|50}}
|content31 = 而且還是昂貴的和牛!
|name31 = 赤司淳子
|32 = t
|type32 = msg
|content32 = ……和牛!
|33 = ss
|type33 = msg
|avatar33 = {{蔚蓝档案头像|Zunko|50}}
|content33 = 呼呼。羨慕吧,老師?
|name33 = 赤司淳子
|34 = s
|type34 = msg
|avatar34 = {{蔚蓝档案头像|Zunko|50}}
|content34 = 今天就讓你好好羨慕我吧!
|name34 = 赤司淳子
|35 = t
|type35 = rep
|choose35_1 = 我也好想吃……
|choose35_2 = 我也要加入美食研究會!
|36 = ss
|type36 = msg
|avatar36 = {{蔚蓝档案头像|Zunko|50}}
|content36 = 不行,原訂要去的烤肉店是有人數限制的。
|name36 = 赤司淳子
|37 = s
|type37 = msg
|avatar37 = {{蔚蓝档案头像|Zunko|50}}
|content37 = 但是我可以回來告訴你那裡的和牛有多好吃!
|name37 = 赤司淳子
|38 = t
|type38 = kzn
|content38 = 前往赤司淳子的羁绊剧情
|39 = ss
|type39 = msg
|avatar39 = {{蔚蓝档案头像|Zunko|50}}
|content39 = 今天中午要跟美食研究會的成員一起去吃蛋糕吃到飽!
|name39 = 赤司淳子
|40 = t
|type40 = msg
|content40 = 蛋糕吃到飽?
|41 = ss
|type41 = msg
|avatar41 = {{蔚蓝档案头像|Zunko|50}}
|content41 = 什麼啊,老師。你不知道蛋糕吃到飽?
|name41 = 赤司淳子
|42 = ss
|type42 = msg
|avatar42 = {{蔚蓝档案头像|Zunko|50}}
|content42 = 所謂的蛋糕吃到飽啊,
|name42 = 赤司淳子
|43 = s
|type43 = msg
|avatar43 = {{蔚蓝档案头像|Zunko|50}}
|content43 = 就是可以在限制時間內,盡情享用各式各樣蛋糕的
|name43 = 赤司淳子
|44 = s
|type44 = msg
|avatar44 = {{蔚蓝档案头像|Zunko|50}}
|content44 = 夢寐以求的店啊。
|name44 = 赤司淳子
|45 = t
|type45 = msg
|content45 = 感覺好膩喔……
|46 = ss
|type46 = msg
|avatar46 = {{蔚蓝档案头像|Zunko|50}}
|content46 = 不要説那種洩氣的話!
|name46 = 赤司淳子
|47 = s
|type47 = msg
|avatar47 = {{蔚蓝档案头像|Zunko|50}}
|content47 = 這可是非常難得、能盡情吃到蛋糕的機會呢!
|name47 = 赤司淳子
|48 = t
|type48 = kzn
|content48 = 前往赤司淳子的羁绊剧情
|49 = ss
|type49 = msg
|avatar49 = {{蔚蓝档案头像|Zunko|50}}
|content49 = 噁……
|name49 = 赤司淳子
|50 = t
|type50 = msg
|content50 = 胃還好嗎?
|51 = ss
|type51 = msg
|avatar51 = {{蔚蓝档案头像|Zunko|50}}
|content51 = 已經好一點了。
|name51 = 赤司淳子
|52 = s
|type52 = msg
|avatar52 = {{蔚蓝档案头像|Zunko|50}}
|content52 = 沒想到曬乾的海帶竟然會在肚子裡膨脹……
|name52 = 赤司淳子
|53 = ss
|type53 = msg
|avatar53 = {{蔚蓝档案头像|Zunko|50}}
|content53 = 不過上次看到亞伽里把海帶乾當作點心,吃了一整桶……
|name53 = 赤司淳子
|54 = s
|type54 = msg
|avatar54 = {{蔚蓝档案头像|Zunko|50}}
|content54 = 亞伽里的肚子到底是什麼結構……
|name54 = 赤司淳子
|55 = ss
|type55 = msg
|avatar55 = {{蔚蓝档案头像|Zunko|50}}
|content55 = 老師,你有聽說過山海經學園附近的中華街嗎?
|name55 = 赤司淳子
|56 = ss
|type56 = msg
|avatar56 = {{蔚蓝档案头像|Zunko|50}}
|content56 = 聽說一整條街都是中華料理店,而且全部都是美食餐廳喔!
|name56 = 赤司淳子
|57 = t
|type57 = rep
|choose57_1 = 我也有聽說過。
|choose57_2 = 嗯,那裡的食物的確很好吃。
|58 = ss
|type58 = msg
|avatar58 = {{蔚蓝档案头像|Zunko|50}}
|content58 = 連老師都聽說了,可見那裡一定有美食餐廳。
|name58 = 赤司淳子
|59 = ss
|type59 = msg
|avatar59 = {{蔚蓝档案头像|Zunko|50}}
|content59 = 什麼。你沒找我就自己去了?真過分!
|name59 = 赤司淳子
|60 = ss
|type60 = msg
|avatar60 = {{蔚蓝档案头像|Zunko|50}}
|content60 = 總之,我身為追求美食的美食研究會的一員,絕對不能錯過這個傳聞。
|name60 = 赤司淳子
|61 = s
|type61 = msg
|avatar61 = {{蔚蓝档案头像|Zunko|50}}
|content61 = 所以啊……如果這個週末有空,你願意跟我一起去山海經學園嗎?
|name61 = 赤司淳子
|62 = t
|type62 = msg
|content62 = 好。
|63 = ss
|type63 = msg
|avatar63 = {{蔚蓝档案头像|Zunko|50}}
|content63 = 嘿嘿,約好了喔?
|name63 = 赤司淳子
|64 = s
|type64 = msg
|avatar64 = {{蔚蓝档案头像|Zunko|50}}
|content64 = 那這個週末就在山海經學園正門口見!
|name64 = 赤司淳子
|65 = t
|type65 = kzn
|content65 = 前往赤司淳子的羁绊剧情
}}
local getArgs = require('Module:Arguments').getArgs local p = {} function p.main(frame) local args = getArgs(frame) return p._main(frame, args) end function p._main(frame, args) if not frame then frame = mw.getCurrentFrame() end local main = {} function ins(str) table.insert(main, str) end function singComp(tab1, tab2) for k, v in ipairs(tab1) do if not (tab2[k] == v) then return false end end return true end ins("") -- 额外参数 local num = args["num"] -- 配置参数 local style = args["main-style"] or "max-height:65vh;overflow-y:scroll" ins("inner_style = " .. style .. "\n") ins("talker_1 = " .. args["name1"] .. "\n") ins("talker_avatar_1 = {{蔚蓝档案头像|" .. args["name"] .. "|50}}\n") -- 对话参数 ins("a|到此已读\n") for i = 1, num do local piece = {args[i], args["type" .. i]} local content = args["content" .. i] if singComp(piece, {"ss", "msg"}) then ins("n|1|" .. content .. "\n") elseif singComp(piece, {"ss", "img"}) or singComp(piece, {"s", "img"}) then ins("i|1|" .. content .. "|300px\n") elseif singComp(piece, {"s", "msg"}) then ins("s|1|" .. content .. "\n") elseif singComp(piece, {"t", "msg"}) then ins("t|" .. content .. "\n") elseif singComp(piece, {"t", "kzn"}) then ins("k|羁绊剧情|前往" .. args["name1"] .. "的羁绊剧情\n") elseif singComp(piece, {"t", "rep"}) then local rep1 = args["choose" .. i .. "_1"] if args["choose" .. i .. "_2"] then local rep2 = args["choose" .. i .. "_2"] ins("c|回复|" .. rep1 .. "|" .. rep2 .. "|end\n") ins("b\n|t|" .. rep1 .. "\n|e\n") ins("b\n|t|" .. rep2 .. "\n|e\n") else ins("c|回复|" .. rep1 .. "|end\n") ins("b\n|t|" .. rep1 .. "\n|e\n") end else error("第" .. i .. "条消息存在未预期的参数组合 (" .. table.concat(piece, ", ") .. ")") end end local code = "{{MomoTalkPro\n" .. table.concat(main, "|") .. "}}" return mw.html.create():tag("pre"):addClass("prettyprint lang-wiki"):wikitext(code) end return p