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