2023年政策修订增补工作正在进行中,欢迎参与!
  • Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

Module:Sandbox/GuoPC/MomoGoPro

萌娘百科,万物皆可萌的百科全书!转载请标注来源页面的网页链接,并声明引自萌娘百科。内容不可商用。
跳转到导航 跳转到搜索
Template-info.svg 模块文档  [查看] [编辑] [历史] [刷新]

用于将使用{{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 = 前往赤司淳子的羁绊剧情
}}
输出
{{MomoTalkPro
|inner_style = max-height:65vh;overflow-y:scroll
|talker_1 = 赤司淳子
|talker_avatar_1 = {{蔚蓝档案头像|Zunko|50}}
|a|到此已读
|n|1|呃呃……為什麼美食都這麼貴呢……
|n|1|真希望可以不要工作賺錢……
|c|回复|不可以走歪道,要好好做正當的事情…|我也想要不用工作賺錢……|end
|b
|t|不可以走歪道,要好好做正當的事情…
|e
|b
|t|我也想要不用工作賺錢……
|e
|n|1|話是如此沒錯啦……
|n|1|等等,老師說出這種話沒問題嗎?
|n|1|嗯,那也只是說說而已,打工時我可是很認真的。
|t|淳子要打工……?
|n|1|那句話是什麼意思,
|s|1|我去打工又怎麼了!
|k|羁绊剧情|前往赤司淳子的羁绊剧情
|n|1|老師、老師!
|n|1|我發現了一個很厲害的事情!
|t|什麼事?
|n|1|我找到了能用便宜的費用吃一大堆高級海鮮的方法!
|c|回复|那是真的嗎?|淳子,再怎麼想吃高級海鮮,也不能犯罪啊。|end
|b
|t|那是真的嗎?
|e
|b
|t|淳子,再怎麼想吃高級海鮮,也不能犯罪啊。
|e
|n|1|當然。詳細的方法是秘密……嘿嘿。
|n|1|你把我當成什麼了?我才不是要犯罪好嗎?
|n|1|如果想知道詳細的方法,今天的晚餐時間來一趟格黑娜的學園餐廳吧。
|s|1|絕對不能遲到喔!
|k|羁绊剧情|前往赤司淳子的羁绊剧情
|n|1|呃呃,
|s|1|如果沒有為了實驗假食物而購買布丁,今天的晚餐應該就能吃得很豪華了呢……
|t|淳子。
|n|1|為什麼?
|t|剛剛在網路上看到只要在黃瓜上塗蜂蜜,就會有哈密瓜的味道耶。
|n|1|又是網路文章啊!再說,蜂蜜比哈密瓜還貴啊!
|s|1|我再也不被假食物騙了!
|n|1|嘿嘿嘿,老師。你好好羨慕我吧。
|n|1|今天美食研究會的晚餐菜單就是……肉!
|t|……肉!
|n|1|而且還是昂貴的和牛!
|t|……和牛!
|n|1|呼呼。羨慕吧,老師?
|s|1|今天就讓你好好羨慕我吧!
|c|回复|我也好想吃……|我也要加入美食研究會!|end
|b
|t|我也好想吃……
|e
|b
|t|我也要加入美食研究會!
|e
|n|1|不行,原訂要去的烤肉店是有人數限制的。
|s|1|但是我可以回來告訴你那裡的和牛有多好吃!
|k|羁绊剧情|前往赤司淳子的羁绊剧情
|n|1|今天中午要跟美食研究會的成員一起去吃蛋糕吃到飽!
|t|蛋糕吃到飽?
|n|1|什麼啊,老師。你不知道蛋糕吃到飽?
|n|1|所謂的蛋糕吃到飽啊,
|s|1|就是可以在限制時間內,盡情享用各式各樣蛋糕的
|s|1|夢寐以求的店啊。
|t|感覺好膩喔……
|n|1|不要説那種洩氣的話!
|s|1|這可是非常難得、能盡情吃到蛋糕的機會呢!
|k|羁绊剧情|前往赤司淳子的羁绊剧情
|n|1|噁……
|t|胃還好嗎?
|n|1|已經好一點了。
|s|1|沒想到曬乾的海帶竟然會在肚子裡膨脹……
|n|1|不過上次看到亞伽里把海帶乾當作點心,吃了一整桶……
|s|1|亞伽里的肚子到底是什麼結構……
|n|1|老師,你有聽說過山海經學園附近的中華街嗎?
|n|1|聽說一整條街都是中華料理店,而且全部都是美食餐廳喔!
|c|回复|我也有聽說過。|嗯,那裡的食物的確很好吃。|end
|b
|t|我也有聽說過。
|e
|b
|t|嗯,那裡的食物的確很好吃。
|e
|n|1|連老師都聽說了,可見那裡一定有美食餐廳。
|n|1|什麼。你沒找我就自己去了?真過分!
|n|1|總之,我身為追求美食的美食研究會的一員,絕對不能錯過這個傳聞。
|s|1|所以啊……如果這個週末有空,你願意跟我一起去山海經學園嗎?
|t|好。
|n|1|嘿嘿,約好了喔?
|s|1|那這個週末就在山海經學園正門口見!
|k|羁绊剧情|前往赤司淳子的羁绊剧情
}}
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