2

我正在为一个小游戏建立一个wiki,我遇到了一个关于模板的问题。

维基的组织:

这个游戏有区域,由几个级别组成。我的 wiki 每个区域都有一个页面,该页面包含每个级别的缩影,它们链接到该级别的页面。

现在,我的关卡模板有这样的东西:

|-
| [[Image:{{{region_images}}} {{{level}}}.png|200px|link={{{region}}}/{{{level}}}]]

这就是它在区域页面中的使用方式:

{| style="text-align: center;"
{{Level|region=My Region Name|region_images=My Region Filename|level=0}}
{{Level|region=My Region Name|region_images=My Region Filename|level=1}}
{{Level|region=My Region Name|region_images=My Region Filename|level=2}}
{{Level|region=My Region Name|region_images=My Region Filename|level=3}}
{{Level|region=My Region Name|region_images=My Region Filename|level=4}}
{{Level|region=My Region Name|region_images=My Region Filename|level=5}}
{{Level|region=My Region Name|region_images=My Region Filename|level=6}}
|}

如果此 wiki 支持文件名中的非 UTF-8 字符,region 和 region_images 将是相同的,但不幸的是它不支持。

主要问题 :

所以,正如你所看到的,region 和 region_images 到处都是重复的,所以我想我可以制作一个模板来处理它。

我在想我可以这样使用的东西:

{{Region|name=My Region Name|region_images=My Region Filename
|0
|1
|2
|3
|4
|5
|6}}

这将像我之前的示例一样生成关卡模板。但我对模板很陌生,我不确定它是否可行。看来我需要在我的区域模板中列出可变长度的参数,但我找不到类似的东西。如果它不存在,我该怎么做?

附属问题:

其实我把情况简化了一点,但是在这个游戏中关卡可以链接到其他关卡,所以我也想在区域页面中注明。关卡模板有可选参数“prev”和“next”。如果使用它们,则模板会在关卡的缩影旁边添加一个注释。

如果可能(如果我的主要问题已经解决),我想保留这些可选参数并能够执行以下操作:

{{Region|name=My Region Name|region_images=My Region Filename
|0
|1 |prev=Another region
|2 |next=Yet another region
|3
|4 |prev=Another region |next=Yet another region
|5
|6}}

显然,当我为每个级别都有一个 Level 模板时,这很容易做到,但是如果我的理解是正确的,使用这个 Region 模板,我不能有多个“prev”或“next”参数。

提前感谢您的帮助,如果有什么不清楚的地方,请随时提出任何问题!

4

1 回答 1

2

您可以安装ParserFunctions并执行以下操作:

{{Region|name=My Region Name|region_images=My Region Filename
|0
|1 |prev1=Another region
|2 |next2=Yet another region
|3
|4 |prev4=Another region |next4=Yet another region
|5
|6}}

并将其放入区域模板中:

{| style="text-align: center;"
{{#if:{{{0|}}}|{{Level|region={{{name}}}|region_images={{{region_images}}}|level=0|prev={{{prev0|}}}|next={{{next0|}}} }} }}
{{#if:{{{1|}}}|{{Level|region={{{name}}}|region_images={{{region_images}}}|level=1|prev={{{prev1|}}}|next={{{next1|}}} }} }}
{{#if:{{{2|}}}|{{Level|region={{{name}}}|region_images={{{region_images}}}|level=2|prev={{{prev2|}}}|next={{{next2|}}} }} }}
{{#if:{{{3|}}}|{{Level|region={{{name}}}|region_images={{{region_images}}}|level=3|prev={{{prev3|}}}|next={{{next3|}}} }} }}
{{#if:{{{4|}}}|{{Level|region={{{name}}}|region_images={{{region_images}}}|level=4|prev={{{prev4|}}}|next={{{next4|}}} }} }}
{{#if:{{{5|}}}|{{Level|region={{{name}}}|region_images={{{region_images}}}|level=5|prev={{{prev5|}}}|next={{{next5|}}} }} }}
{{#if:{{{6|}}}|{{Level|region={{{name}}}|region_images={{{region_images}}}|level=6|prev={{{prev6|}}}|next={{{next6|}}} }} }}
|}
于 2015-08-23T07:37:21.683 回答