Deploying to gh-pages from @ LingASDJ/RW-API-Code@a03a596759 🚀
This commit is contained in:
parent
c6ddc85ed5
commit
f8a46bbc35
16
api-dev.html
16
api-dev.html
File diff suppressed because one or more lines are too long
|
@ -1,5 +1,5 @@
|
|||
import{_ as e,J as p,o as c,c as r,k as s,a,N as n,w as o,V as t}from"./chunks/framework.636577e8.js";const Q=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"api-dev.md","filePath":"api-dev.md"}'),i={name:"api-dev.md"},d=s("div",{style:{display:"flex","align-content":"flex-start","flex-wrap":"nowrap","flex-direction":"row","justify-content":"center"}},[s("h1",null,"RTS-Code-API---开发规范")],-1),h=s("div",{style:{display:"flex","align-content":"flex-start","flex-wrap":"nowrap","flex-direction":"row","justify-content":"center"}},[s("img",{src:"https://rwapi-code.netlify.app/images/title.png"})],-1),u={class:"tip custom-block"},D=s("p",{class:"custom-block-title"},"TIP",-1),_=s("br",null,null,-1),y=s("br",null,null,-1),C=s("br",null,null,-1),b=s("blockquote",null,[s("p",null,[a("1.确保代码的解释通俗易懂,能让新手迅速入门"),s("br"),a("2.编写的代码应该以以下格式进行:")]),s("h3",null,"代码的格式编写规范:"),a("1.代码的英文名和附属信息(参考站点已添加的代码例子)"),s("br")],-1),A=s("p",null,[a("2.代码的简介"),s("br"),a(" 3.代码的要点指示"),s("br"),a(" 4.代码的演示例子"),s("br"),a(" 5.代码的扩展例子(可选)"),s("br"),a(" 6.GIF演示/视频演示(可选)")],-1),m={class:"tip custom-block"},F=s("p",{class:"custom-block-title"},"TIP",-1),g=s("br",null,null,-1),f={class:"warning custom-block"},k=s("p",{class:"custom-block-title"},"WARNING",-1),v=s("div",{class:"warning custom-block"},[s("p",{class:"custom-block-title"},"WARNING"),s("p",null,"有一些代码或许有一些新的写法,或该写法可能已经废弃,如果遇到这些代码,编写者需要注明,并提供推荐代码。")],-1),q={class:"info custom-block"},P=s("p",{class:"custom-block-title"},"INFO",-1),T=t(`<h4 id="其他说明" tabindex="-1">其他说明: <a class="header-anchor" href="#其他说明" aria-label="Permalink to "其他说明:""></a></h4><p>有关于MarkDown的其他书写格式,请参考MD书写规范<br><a href="https://docs.github.com/zh/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax" target="_blank" rel="noreferrer">MD文档参考--点我立刻学习</a></p><h4 id="附加说明" tabindex="-1">附加说明: <a class="header-anchor" href="#附加说明" aria-label="Permalink to "附加说明:""></a></h4><div class="language-txt"><button title="Copy Code" class="copy"></button><span class="lang">txt</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">由于插件众多,为避免MD格式冲突,换行建议最好使用<br>进行换行,</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">如果要在一些扩展格式渲染演示,请使用<font>标签,</span></span></code></pre></div><h4 id="部署策略" tabindex="-1">部署策略: <a class="header-anchor" href="#部署策略" aria-label="Permalink to "部署策略:""></a></h4><div class="info custom-block"><p class="custom-block-title">INFO</p><p>1.本地部署</p></div>`,6),w={class:"tip custom-block"},x=s("p",{class:"custom-block-title"},"TIP",-1),I=s("br",null,null,-1),N=s("blockquote",null,[s("p",null,[a("npm i docsify-cli -g"),s("br"),a("docsify serve docs")])],-1),E=s("div",{class:"info custom-block"},[s("p",{class:"custom-block-title"},"INFO"),s("p",null,"2.Netlify部署")],-1),S={class:"tip custom-block"},R=s("p",{class:"custom-block-title"},"TIP",-1),V=s("br",null,null,-1),M=s("br",null,null,-1),O=s("br",null,null,-1),G=t(`<h4 id="_1-md扩展格式" tabindex="-1">1.MD扩展格式: <a class="header-anchor" href="#_1-md扩展格式" aria-label="Permalink to "1.MD扩展格式:""></a></h4><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">::: info</span></span>
|
||||
import{_ as e,v as p,b as c,F as s,L as a,E as n,O as o,R as t,M as i}from"./chunks/framework.c741a37c.js";const U=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"api-dev.md","filePath":"api-dev.md"}'),r={name:"api-dev.md"},d=s("div",{style:{display:"flex","align-content":"flex-start","flex-wrap":"nowrap","flex-direction":"row","justify-content":"center"}},[s("h1",null,"RTS-Code-API---开发规范")],-1),u=s("div",{style:{display:"flex","align-content":"flex-start","flex-wrap":"nowrap","flex-direction":"row","justify-content":"center"}},[s("img",{src:"https://rwapi-code.netlify.app/images/title.png"})],-1),h={class:"tip custom-block"},D=s("p",{class:"custom-block-title"},"TIP",-1),y=s("br",null,null,-1),C=s("br",null,null,-1),b=s("br",null,null,-1),_=s("blockquote",null,[s("p",null,[a("1.确保代码的解释通俗易懂,能让新手迅速入门"),s("br"),a("2.编写的代码应该以以下格式进行:")]),s("h3",null,"代码的格式编写规范:"),a("1.代码的英文名和附属信息(参考站点已添加的代码例子)"),s("br")],-1),m=s("p",null,[a("2.代码的简介"),s("br"),a(" 3.代码的要点指示"),s("br"),a(" 4.代码的演示例子"),s("br"),a(" 5.代码的扩展例子(可选)"),s("br"),a(" 6.GIF演示/视频演示(可选)")],-1),A={class:"tip custom-block"},F=s("p",{class:"custom-block-title"},"TIP",-1),g=s("br",null,null,-1),f={class:"warning custom-block"},k=s("p",{class:"custom-block-title"},"WARNING",-1),v=s("div",{class:"warning custom-block"},[s("p",{class:"custom-block-title"},"WARNING"),s("p",null,"有一些代码或许有一些新的写法,或该写法可能已经废弃,如果遇到这些代码,编写者需要注明,并提供推荐代码。")],-1),q={class:"info custom-block"},P=s("p",{class:"custom-block-title"},"INFO",-1),w=t(`<h4 id="其他说明" tabindex="-1">其他说明: <a class="header-anchor" href="#其他说明" aria-label="Permalink to "其他说明:""></a></h4><p>有关于MarkDown的其他书写格式,请参考MD书写规范<br><a href="https://docs.github.com/zh/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax" target="_blank" rel="noreferrer">MD文档参考--点我立刻学习</a></p><h4 id="附加说明" tabindex="-1">附加说明: <a class="header-anchor" href="#附加说明" aria-label="Permalink to "附加说明:""></a></h4><div class="language-txt"><button title="Copy Code" class="copy"></button><span class="lang">txt</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">由于插件众多,为避免MD格式冲突,换行建议最好使用<br>进行换行,</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">如果要在一些扩展格式渲染演示,请使用<font>标签,</span></span></code></pre></div><h4 id="部署策略" tabindex="-1">部署策略: <a class="header-anchor" href="#部署策略" aria-label="Permalink to "部署策略:""></a></h4><div class="info custom-block"><p class="custom-block-title">INFO</p><p>1.本地部署</p></div>`,6),x={class:"tip custom-block"},I=s("p",{class:"custom-block-title"},"TIP",-1),E=s("br",null,null,-1),N=s("blockquote",null,[s("p",null,[a("npm i docsify-cli -g"),s("br"),a("docsify serve docs")])],-1),T=s("div",{class:"info custom-block"},[s("p",{class:"custom-block-title"},"INFO"),s("p",null,"2.Netlify部署")],-1),R={class:"tip custom-block"},M=s("p",{class:"custom-block-title"},"TIP",-1),O=s("br",null,null,-1),G=s("br",null,null,-1),S=s("br",null,null,-1),$=t(`<h4 id="_1-md扩展格式" tabindex="-1">1.MD扩展格式: <a class="header-anchor" href="#_1-md扩展格式" aria-label="Permalink to "1.MD扩展格式:""></a></h4><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">::: info</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">信息文本</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">:::</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"></span></span>
|
||||
|
@ -30,8 +30,8 @@ import{_ as e,J as p,o as c,c as r,k as s,a,N as n,w as o,V as t}from"./chunks/f
|
|||
<span class="line highlighted"><span style="color:#A6ACCD;">RTS-APICODE</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">//代码突出演示</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">可以通过1-4来让1到4行突出显示,</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">也可以通过1,4,5来指定行数突出显示</span></span></code></pre></div><h3 id="_2-媒体插入" tabindex="-1">2.媒体插入 <a class="header-anchor" href="#_2-媒体插入" aria-label="Permalink to "2.媒体插入""></a></h3><h4 id="_1-视频演示-可选" tabindex="-1">1.视频演示---(可选) <a class="header-anchor" href="#_1-视频演示-可选" aria-label="Permalink to "1.视频演示---(可选)""></a></h4>`,12),B=s("iframe",{src:"https://vdse.bdstatic.com//192d9a98d782d9c74c96f09db9378d93.mp4",scrolling:"no",border:"0",frameborder:"no",framespacing:"0",allowfullscreen:"true",width:"100%",height:"400"},`
|
||||
`,-1),$=t(`<div class="language-html"><button title="Copy Code" class="copy"></button><span class="lang">html</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;"><</span><span style="color:#F07178;">iframe</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">src</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">视频地址</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">scrolling</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">no</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;"> border=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">0</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">frameborder</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">no</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">framespacing</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">0</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">allowfullscreen</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">true</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">width</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">100%</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">height</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">400</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">></span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">也可以通过1,4,5来指定行数突出显示</span></span></code></pre></div><h3 id="_2-媒体插入" tabindex="-1">2.媒体插入 <a class="header-anchor" href="#_2-媒体插入" aria-label="Permalink to "2.媒体插入""></a></h3><h4 id="_1-视频演示-可选" tabindex="-1">1.视频演示---(可选) <a class="header-anchor" href="#_1-视频演示-可选" aria-label="Permalink to "1.视频演示---(可选)""></a></h4>`,12),j=s("iframe",{src:"https://vdse.bdstatic.com//192d9a98d782d9c74c96f09db9378d93.mp4",scrolling:"no",border:"0",frameborder:"no",framespacing:"0",allowfullscreen:"true",width:"100%",height:"400"},`
|
||||
`,-1),H=t(`<div class="language-html"><button title="Copy Code" class="copy"></button><span class="lang">html</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;"><</span><span style="color:#F07178;">iframe</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">src</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">视频地址</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">scrolling</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">no</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;"> border=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">0</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">frameborder</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">no</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">framespacing</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">0</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">allowfullscreen</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">true</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">width</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">100%</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">height</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">400</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">></span></span>
|
||||
<span class="line"><span style="color:#89DDFF;"></</span><span style="color:#F07178;">iframe</span><span style="color:#89DDFF;">></span></span></code></pre></div><h4 id="_3-插入表格" tabindex="-1">3.插入表格 <a class="header-anchor" href="#_3-插入表格" aria-label="Permalink to "3.插入表格""></a></h4><h3 id="代码演示" tabindex="-1">代码演示: <a class="header-anchor" href="#代码演示" aria-label="Permalink to "代码演示:""></a></h3><table><thead><tr><th>A</th><th>B</th><th>C</th></tr></thead><tbody><tr><td>1</td><td>2</td><td>3</td></tr></tbody></table><h3 id="代码例子" tabindex="-1">代码例子: <a class="header-anchor" href="#代码例子" aria-label="Permalink to "代码例子:""></a></h3><div class="language-markdown"><button title="Copy Code" class="copy"></button><span class="lang">markdown</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">|A|B|C| </span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">|-|-|-</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">|1|2|3|</span></span></code></pre></div><p>如果你仍然不会Markdown表格写法,这里给你一个链接:</p><h3><a href="https://tableconvert.com/zh-cn/markdown-to-markdown" target="_blank">TableConvert-MD-点击进入</a></h3><h3 id="_4-扩展写法-高级" tabindex="-1">4.扩展写法(高级) <a class="header-anchor" href="#_4-扩展写法-高级" aria-label="Permalink to "4.扩展写法(高级)""></a></h3><p>有一些时候,我们可能需要在已经标记的后面再添加东西, 但Markdown解析方式在标签后面再有一个标签就不会识别了。<br> 所以这里我们必须直接使用原生Html的代码, 通过浏览器的检查元素,你应该能迅速找到模块框架, 将它的模块元素区域复制下来,并调用。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>该文档可能还有很多缺陷,如果你有更好的建议,请发送Issues或者PR给我。</p></div><div class="info custom-block"><p class="custom-block-title">INFO</p><p>编写于2023-5-9 RTS-Code-API[第3版-第3次修订]</p></div>`,12);function j(H,W,z,J,X,K){const l=p("font");return c(),r("div",null,[d,h,s("div",u,[D,s("p",null,[a("0.如果你确定你想"),n(l,{color:"orange"},{default:o(()=>[a("帮忙开发此站点")]),_:1}),a(","),_,a(" 就可以点击右上角的Github按钮,"),n(l,{color:"orange"},{default:o(()=>[a("Clone我们的库")]),_:1}),a(","),y,a(" 编写代码并进行PR申请,我非常感谢你的帮忙,感谢各位的支持与帮助。"),C]),b,A]),s("div",m,[F,s("p",null,[a("使用外部资源时,请使用支持HTTPS协议的资源地址传输。"),g,a(" 否则在"),n(l,{color:"orange"},{default:o(()=>[a("Google Chrome等一系列以CEF的内核")]),_:1}),a("上会因为强制替换HTTPS导致资源无法打开。")])]),s("div",f,[k,s("p",null,[a("不能使用过于高深的说明,严禁出现谜语人话语,无用话语,任何玩梗, 夹带私货等一系列与本站无关的东西,违者将不能通过"),n(l,{color:"green"},{default:o(()=>[a("PR审核")]),_:1})])]),v,s("div",q,[P,s("p",null,[a("为了更好的方便一起编写站点的贡献者,本站点提供了以下的"),n(l,{color:"green"},{default:o(()=>[a("扩展MD格式供各位书写")]),_:1})])]),T,s("div",w,[x,s("p",null,[a("如果要本地测试,请确保设备有"),n(l,{color:"green"},{default:o(()=>[a("Node.js")]),_:1}),a(" 并在项目根目录使用以下命令:"),I]),N]),E,s("div",S,[R,s("p",null,[a("如果你已经发送了PR请求,可以通过我的Netlify预览站点进行预览,"),V,a(" Netlify会在你的PR请求下面显示你的预览页面地址。"),M,a(" 点击"),s("b",null,[n(l,{color:"orange"},{default:o(()=>[a("😎 Deploy Preview后面的链接")]),_:1})]),a("即可看见效果"),O,a(" 由于某些原因,TX会拦截Netlify的站点,请使用浏览器预览。")])]),G,B,$])}const U=e(i,[["render",j]]);export{Q as __pageData,U as default};
|
||||
<span class="line"><span style="color:#A6ACCD;">|1|2|3|</span></span></code></pre></div><p>如果你仍然不会Markdown表格写法,这里给你一个链接:</p><h3><a href="https://tableconvert.com/zh-cn/markdown-to-markdown" target="_blank">TableConvert-MD-点击进入</a></h3><h3 id="_4-扩展写法-高级" tabindex="-1">4.扩展写法(高级) <a class="header-anchor" href="#_4-扩展写法-高级" aria-label="Permalink to "4.扩展写法(高级)""></a></h3><p>有一些时候,我们可能需要在已经标记的后面再添加东西, 但Markdown解析方式在标签后面再有一个标签就不会识别了。<br> 所以这里我们必须直接使用原生Html的代码, 通过浏览器的检查元素,你应该能迅速找到模块框架, 将它的模块元素区域复制下来,并调用。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>该文档可能还有很多缺陷,如果你有更好的建议,请发送Issues或者PR给我。</p></div><div class="info custom-block"><p class="custom-block-title">INFO</p><p>编写于2023-5-9 RTS-Code-API[第3版-第3次修订]</p></div>`,12);function W(z,B,L,J,X,K){const l=i("font");return p(),c("div",null,[d,u,s("div",h,[D,s("p",null,[a("0.如果你确定你想"),n(l,{color:"orange"},{default:o(()=>[a("帮忙开发此站点")]),_:1}),a(","),y,a(" 就可以点击右上角的Github按钮,"),n(l,{color:"orange"},{default:o(()=>[a("Clone我们的库")]),_:1}),a(","),C,a(" 编写代码并进行PR申请,我非常感谢你的帮忙,感谢各位的支持与帮助。"),b]),_,m]),s("div",A,[F,s("p",null,[a("使用外部资源时,请使用支持HTTPS协议的资源地址传输。"),g,a(" 否则在"),n(l,{color:"orange"},{default:o(()=>[a("Google Chrome等一系列以CEF的内核")]),_:1}),a("上会因为强制替换HTTPS导致资源无法打开。")])]),s("div",f,[k,s("p",null,[a("不能使用过于高深的说明,严禁出现谜语人话语,无用话语,任何玩梗, 夹带私货等一系列与本站无关的东西,违者将不能通过"),n(l,{color:"green"},{default:o(()=>[a("PR审核")]),_:1})])]),v,s("div",q,[P,s("p",null,[a("为了更好的方便一起编写站点的贡献者,本站点提供了以下的"),n(l,{color:"green"},{default:o(()=>[a("扩展MD格式供各位书写")]),_:1})])]),w,s("div",x,[I,s("p",null,[a("如果要本地测试,请确保设备有"),n(l,{color:"green"},{default:o(()=>[a("Node.js")]),_:1}),a(" 并在项目根目录使用以下命令:"),E]),N]),T,s("div",R,[M,s("p",null,[a("如果你已经发送了PR请求,可以通过我的Netlify预览站点进行预览,"),O,a(" Netlify会在你的PR请求下面显示你的预览页面地址。"),G,a(" 点击"),s("b",null,[n(l,{color:"orange"},{default:o(()=>[a("😎 Deploy Preview后面的链接")]),_:1})]),a("即可看见效果"),S,a(" 由于某些原因,TX会拦截Netlify的站点,请使用浏览器预览。")])]),$,j,H])}const V=e(r,[["render",W]]);export{U as __pageData,V as default};
|
37
assets/api-dev.md.0aa495ac.lean.js
Normal file
37
assets/api-dev.md.0aa495ac.lean.js
Normal file
|
@ -0,0 +1,37 @@
|
|||
import{_ as e,v as p,b as c,F as s,L as a,E as n,O as o,R as t,M as i}from"./chunks/framework.c741a37c.js";const U=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"api-dev.md","filePath":"api-dev.md"}'),r={name:"api-dev.md"},d=s("div",{style:{display:"flex","align-content":"flex-start","flex-wrap":"nowrap","flex-direction":"row","justify-content":"center"}},[s("h1",null,"RTS-Code-API---开发规范")],-1),u=s("div",{style:{display:"flex","align-content":"flex-start","flex-wrap":"nowrap","flex-direction":"row","justify-content":"center"}},[s("img",{src:"https://rwapi-code.netlify.app/images/title.png"})],-1),h={class:"tip custom-block"},D=s("p",{class:"custom-block-title"},"TIP",-1),y=s("br",null,null,-1),C=s("br",null,null,-1),b=s("br",null,null,-1),_=s("blockquote",null,[s("p",null,[a("1.确保代码的解释通俗易懂,能让新手迅速入门"),s("br"),a("2.编写的代码应该以以下格式进行:")]),s("h3",null,"代码的格式编写规范:"),a("1.代码的英文名和附属信息(参考站点已添加的代码例子)"),s("br")],-1),m=s("p",null,[a("2.代码的简介"),s("br"),a(" 3.代码的要点指示"),s("br"),a(" 4.代码的演示例子"),s("br"),a(" 5.代码的扩展例子(可选)"),s("br"),a(" 6.GIF演示/视频演示(可选)")],-1),A={class:"tip custom-block"},F=s("p",{class:"custom-block-title"},"TIP",-1),g=s("br",null,null,-1),f={class:"warning custom-block"},k=s("p",{class:"custom-block-title"},"WARNING",-1),v=s("div",{class:"warning custom-block"},[s("p",{class:"custom-block-title"},"WARNING"),s("p",null,"有一些代码或许有一些新的写法,或该写法可能已经废弃,如果遇到这些代码,编写者需要注明,并提供推荐代码。")],-1),q={class:"info custom-block"},P=s("p",{class:"custom-block-title"},"INFO",-1),w=t(`<h4 id="其他说明" tabindex="-1">其他说明: <a class="header-anchor" href="#其他说明" aria-label="Permalink to "其他说明:""></a></h4><p>有关于MarkDown的其他书写格式,请参考MD书写规范<br><a href="https://docs.github.com/zh/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax" target="_blank" rel="noreferrer">MD文档参考--点我立刻学习</a></p><h4 id="附加说明" tabindex="-1">附加说明: <a class="header-anchor" href="#附加说明" aria-label="Permalink to "附加说明:""></a></h4><div class="language-txt"><button title="Copy Code" class="copy"></button><span class="lang">txt</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">由于插件众多,为避免MD格式冲突,换行建议最好使用<br>进行换行,</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">如果要在一些扩展格式渲染演示,请使用<font>标签,</span></span></code></pre></div><h4 id="部署策略" tabindex="-1">部署策略: <a class="header-anchor" href="#部署策略" aria-label="Permalink to "部署策略:""></a></h4><div class="info custom-block"><p class="custom-block-title">INFO</p><p>1.本地部署</p></div>`,6),x={class:"tip custom-block"},I=s("p",{class:"custom-block-title"},"TIP",-1),E=s("br",null,null,-1),N=s("blockquote",null,[s("p",null,[a("npm i docsify-cli -g"),s("br"),a("docsify serve docs")])],-1),T=s("div",{class:"info custom-block"},[s("p",{class:"custom-block-title"},"INFO"),s("p",null,"2.Netlify部署")],-1),R={class:"tip custom-block"},M=s("p",{class:"custom-block-title"},"TIP",-1),O=s("br",null,null,-1),G=s("br",null,null,-1),S=s("br",null,null,-1),$=t(`<h4 id="_1-md扩展格式" tabindex="-1">1.MD扩展格式: <a class="header-anchor" href="#_1-md扩展格式" aria-label="Permalink to "1.MD扩展格式:""></a></h4><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">::: info</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">信息文本</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">:::</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"></span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">::: tip</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">小提示文本</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">:::</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"></span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">::: warning</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">警告文本</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">:::</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"></span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">::: danger</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">危险文本</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">:::</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"></span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">::: details</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">这是一个折叠框</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">:::</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"></span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">#### 代码突出显示</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">::: code-group</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">\`\`\`ini{2} [演示例子]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">[action_copyArry]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">RTS-APICODE</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"></span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">可以通过1-4来让1到4行突出显示,</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">也可以通过1,4,5来指定行数突出显示</span></span></code></pre></div><h4 id="实际格式演示" tabindex="-1">实际格式演示: <a class="header-anchor" href="#实际格式演示" aria-label="Permalink to "实际格式演示:""></a></h4><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>注意文本</p></div><div class="info custom-block"><p class="custom-block-title">INFO</p><p>信息文本</p></div><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>小提示文本</p></div><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>警告文本</p></div><div class="danger custom-block"><p class="custom-block-title">DANGER</p><p>危险文本</p></div><details class="details custom-block"><summary>Details</summary><p>这是一个折叠框</p></details><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight has-highlighted-lines"><code><span class="line"><span style="color:#89DDFF;">[action_copyArry]</span></span>
|
||||
<span class="line highlighted"><span style="color:#A6ACCD;">RTS-APICODE</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">//代码突出演示</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">可以通过1-4来让1到4行突出显示,</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">也可以通过1,4,5来指定行数突出显示</span></span></code></pre></div><h3 id="_2-媒体插入" tabindex="-1">2.媒体插入 <a class="header-anchor" href="#_2-媒体插入" aria-label="Permalink to "2.媒体插入""></a></h3><h4 id="_1-视频演示-可选" tabindex="-1">1.视频演示---(可选) <a class="header-anchor" href="#_1-视频演示-可选" aria-label="Permalink to "1.视频演示---(可选)""></a></h4>`,12),j=s("iframe",{src:"https://vdse.bdstatic.com//192d9a98d782d9c74c96f09db9378d93.mp4",scrolling:"no",border:"0",frameborder:"no",framespacing:"0",allowfullscreen:"true",width:"100%",height:"400"},`
|
||||
`,-1),H=t(`<div class="language-html"><button title="Copy Code" class="copy"></button><span class="lang">html</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;"><</span><span style="color:#F07178;">iframe</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">src</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">视频地址</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">scrolling</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">no</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;"> border=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">0</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">frameborder</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">no</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">framespacing</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">0</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">allowfullscreen</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">true</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">width</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">100%</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">height</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">400</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">></span></span>
|
||||
<span class="line"><span style="color:#89DDFF;"></</span><span style="color:#F07178;">iframe</span><span style="color:#89DDFF;">></span></span></code></pre></div><h4 id="_3-插入表格" tabindex="-1">3.插入表格 <a class="header-anchor" href="#_3-插入表格" aria-label="Permalink to "3.插入表格""></a></h4><h3 id="代码演示" tabindex="-1">代码演示: <a class="header-anchor" href="#代码演示" aria-label="Permalink to "代码演示:""></a></h3><table><thead><tr><th>A</th><th>B</th><th>C</th></tr></thead><tbody><tr><td>1</td><td>2</td><td>3</td></tr></tbody></table><h3 id="代码例子" tabindex="-1">代码例子: <a class="header-anchor" href="#代码例子" aria-label="Permalink to "代码例子:""></a></h3><div class="language-markdown"><button title="Copy Code" class="copy"></button><span class="lang">markdown</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">|A|B|C| </span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">|-|-|-</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">|1|2|3|</span></span></code></pre></div><p>如果你仍然不会Markdown表格写法,这里给你一个链接:</p><h3><a href="https://tableconvert.com/zh-cn/markdown-to-markdown" target="_blank">TableConvert-MD-点击进入</a></h3><h3 id="_4-扩展写法-高级" tabindex="-1">4.扩展写法(高级) <a class="header-anchor" href="#_4-扩展写法-高级" aria-label="Permalink to "4.扩展写法(高级)""></a></h3><p>有一些时候,我们可能需要在已经标记的后面再添加东西, 但Markdown解析方式在标签后面再有一个标签就不会识别了。<br> 所以这里我们必须直接使用原生Html的代码, 通过浏览器的检查元素,你应该能迅速找到模块框架, 将它的模块元素区域复制下来,并调用。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>该文档可能还有很多缺陷,如果你有更好的建议,请发送Issues或者PR给我。</p></div><div class="info custom-block"><p class="custom-block-title">INFO</p><p>编写于2023-5-9 RTS-Code-API[第3版-第3次修订]</p></div>`,12);function W(z,B,L,J,X,K){const l=i("font");return p(),c("div",null,[d,u,s("div",h,[D,s("p",null,[a("0.如果你确定你想"),n(l,{color:"orange"},{default:o(()=>[a("帮忙开发此站点")]),_:1}),a(","),y,a(" 就可以点击右上角的Github按钮,"),n(l,{color:"orange"},{default:o(()=>[a("Clone我们的库")]),_:1}),a(","),C,a(" 编写代码并进行PR申请,我非常感谢你的帮忙,感谢各位的支持与帮助。"),b]),_,m]),s("div",A,[F,s("p",null,[a("使用外部资源时,请使用支持HTTPS协议的资源地址传输。"),g,a(" 否则在"),n(l,{color:"orange"},{default:o(()=>[a("Google Chrome等一系列以CEF的内核")]),_:1}),a("上会因为强制替换HTTPS导致资源无法打开。")])]),s("div",f,[k,s("p",null,[a("不能使用过于高深的说明,严禁出现谜语人话语,无用话语,任何玩梗, 夹带私货等一系列与本站无关的东西,违者将不能通过"),n(l,{color:"green"},{default:o(()=>[a("PR审核")]),_:1})])]),v,s("div",q,[P,s("p",null,[a("为了更好的方便一起编写站点的贡献者,本站点提供了以下的"),n(l,{color:"green"},{default:o(()=>[a("扩展MD格式供各位书写")]),_:1})])]),w,s("div",x,[I,s("p",null,[a("如果要本地测试,请确保设备有"),n(l,{color:"green"},{default:o(()=>[a("Node.js")]),_:1}),a(" 并在项目根目录使用以下命令:"),E]),N]),T,s("div",R,[M,s("p",null,[a("如果你已经发送了PR请求,可以通过我的Netlify预览站点进行预览,"),O,a(" Netlify会在你的PR请求下面显示你的预览页面地址。"),G,a(" 点击"),s("b",null,[n(l,{color:"orange"},{default:o(()=>[a("😎 Deploy Preview后面的链接")]),_:1})]),a("即可看见效果"),S,a(" 由于某些原因,TX会拦截Netlify的站点,请使用浏览器预览。")])]),$,j,H])}const V=e(r,[["render",W]]);export{U as __pageData,V as default};
|
|
@ -1,2 +0,0 @@
|
|||
import{_ as e,J as p,o as c,c as r,k as s,a,N as n,w as o,V as t}from"./chunks/framework.636577e8.js";const Q=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"api-dev.md","filePath":"api-dev.md"}'),i={name:"api-dev.md"},d=s("div",{style:{display:"flex","align-content":"flex-start","flex-wrap":"nowrap","flex-direction":"row","justify-content":"center"}},[s("h1",null,"RTS-Code-API---开发规范")],-1),h=s("div",{style:{display:"flex","align-content":"flex-start","flex-wrap":"nowrap","flex-direction":"row","justify-content":"center"}},[s("img",{src:"https://rwapi-code.netlify.app/images/title.png"})],-1),u={class:"tip custom-block"},D=s("p",{class:"custom-block-title"},"TIP",-1),_=s("br",null,null,-1),y=s("br",null,null,-1),C=s("br",null,null,-1),b=s("blockquote",null,[s("p",null,[a("1.确保代码的解释通俗易懂,能让新手迅速入门"),s("br"),a("2.编写的代码应该以以下格式进行:")]),s("h3",null,"代码的格式编写规范:"),a("1.代码的英文名和附属信息(参考站点已添加的代码例子)"),s("br")],-1),A=s("p",null,[a("2.代码的简介"),s("br"),a(" 3.代码的要点指示"),s("br"),a(" 4.代码的演示例子"),s("br"),a(" 5.代码的扩展例子(可选)"),s("br"),a(" 6.GIF演示/视频演示(可选)")],-1),m={class:"tip custom-block"},F=s("p",{class:"custom-block-title"},"TIP",-1),g=s("br",null,null,-1),f={class:"warning custom-block"},k=s("p",{class:"custom-block-title"},"WARNING",-1),v=s("div",{class:"warning custom-block"},[s("p",{class:"custom-block-title"},"WARNING"),s("p",null,"有一些代码或许有一些新的写法,或该写法可能已经废弃,如果遇到这些代码,编写者需要注明,并提供推荐代码。")],-1),q={class:"info custom-block"},P=s("p",{class:"custom-block-title"},"INFO",-1),T=t("",6),w={class:"tip custom-block"},x=s("p",{class:"custom-block-title"},"TIP",-1),I=s("br",null,null,-1),N=s("blockquote",null,[s("p",null,[a("npm i docsify-cli -g"),s("br"),a("docsify serve docs")])],-1),E=s("div",{class:"info custom-block"},[s("p",{class:"custom-block-title"},"INFO"),s("p",null,"2.Netlify部署")],-1),S={class:"tip custom-block"},R=s("p",{class:"custom-block-title"},"TIP",-1),V=s("br",null,null,-1),M=s("br",null,null,-1),O=s("br",null,null,-1),G=t("",12),B=s("iframe",{src:"https://vdse.bdstatic.com//192d9a98d782d9c74c96f09db9378d93.mp4",scrolling:"no",border:"0",frameborder:"no",framespacing:"0",allowfullscreen:"true",width:"100%",height:"400"},`
|
||||
`,-1),$=t("",12);function j(H,W,z,J,X,K){const l=p("font");return c(),r("div",null,[d,h,s("div",u,[D,s("p",null,[a("0.如果你确定你想"),n(l,{color:"orange"},{default:o(()=>[a("帮忙开发此站点")]),_:1}),a(","),_,a(" 就可以点击右上角的Github按钮,"),n(l,{color:"orange"},{default:o(()=>[a("Clone我们的库")]),_:1}),a(","),y,a(" 编写代码并进行PR申请,我非常感谢你的帮忙,感谢各位的支持与帮助。"),C]),b,A]),s("div",m,[F,s("p",null,[a("使用外部资源时,请使用支持HTTPS协议的资源地址传输。"),g,a(" 否则在"),n(l,{color:"orange"},{default:o(()=>[a("Google Chrome等一系列以CEF的内核")]),_:1}),a("上会因为强制替换HTTPS导致资源无法打开。")])]),s("div",f,[k,s("p",null,[a("不能使用过于高深的说明,严禁出现谜语人话语,无用话语,任何玩梗, 夹带私货等一系列与本站无关的东西,违者将不能通过"),n(l,{color:"green"},{default:o(()=>[a("PR审核")]),_:1})])]),v,s("div",q,[P,s("p",null,[a("为了更好的方便一起编写站点的贡献者,本站点提供了以下的"),n(l,{color:"green"},{default:o(()=>[a("扩展MD格式供各位书写")]),_:1})])]),T,s("div",w,[x,s("p",null,[a("如果要本地测试,请确保设备有"),n(l,{color:"green"},{default:o(()=>[a("Node.js")]),_:1}),a(" 并在项目根目录使用以下命令:"),I]),N]),E,s("div",S,[R,s("p",null,[a("如果你已经发送了PR请求,可以通过我的Netlify预览站点进行预览,"),V,a(" Netlify会在你的PR请求下面显示你的预览页面地址。"),M,a(" 点击"),s("b",null,[n(l,{color:"orange"},{default:o(()=>[a("😎 Deploy Preview后面的链接")]),_:1})]),a("即可看见效果"),O,a(" 由于某些原因,TX会拦截Netlify的站点,请使用浏览器预览。")])]),G,B,$])}const U=e(i,[["render",j]]);export{Q as __pageData,U as default};
|
|
@ -1,4 +1,4 @@
|
|||
import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5 as ln,a6 as un,a7 as dn,a8 as fn,a9 as hn,aa as pn,ab as mn,ac as gn,ad as bn,ae as _n,Z as In,d as yn,u as En,j as wn,A as Tn,af as vn,ag as An,ah as Sn,ai as Cn}from"./chunks/framework.636577e8.js";import{t as rt}from"./chunks/theme.1c2630bb.js";/**
|
||||
import{_ as tn,v as nn,C as rn,O as an,N as sn,e as on,f as cn,F as v,u as ln,Q as le,a5 as un,c as dn,A as fn,H as hn,a6 as pn,a7 as mn,a8 as gn,a9 as bn,aa as _n,ab as In,ac as yn,ad as En,ae as Tn,af as vn,ag as wn,ah as An,ai as Sn,Y as Cn}from"./chunks/framework.c741a37c.js";import{t as rt}from"./chunks/theme.68f9eca1.js";/**
|
||||
* @license
|
||||
* Copyright 2017 Google LLC
|
||||
*
|
||||
|
@ -28,7 +28,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/const it=function(t){const e=[];let n=0;for(let r=0;r<t.length;r++){let i=t.charCodeAt(r);i<128?e[n++]=i:i<2048?(e[n++]=i>>6|192,e[n++]=i&63|128):(i&64512)===55296&&r+1<t.length&&(t.charCodeAt(r+1)&64512)===56320?(i=65536+((i&1023)<<10)+(t.charCodeAt(++r)&1023),e[n++]=i>>18|240,e[n++]=i>>12&63|128,e[n++]=i>>6&63|128,e[n++]=i&63|128):(e[n++]=i>>12|224,e[n++]=i>>6&63|128,e[n++]=i&63|128)}return e},Rn=function(t){const e=[];let n=0,r=0;for(;n<t.length;){const i=t[n++];if(i<128)e[r++]=String.fromCharCode(i);else if(i>191&&i<224){const a=t[n++];e[r++]=String.fromCharCode((i&31)<<6|a&63)}else if(i>239&&i<365){const a=t[n++],s=t[n++],o=t[n++],c=((i&7)<<18|(a&63)<<12|(s&63)<<6|o&63)-65536;e[r++]=String.fromCharCode(55296+(c>>10)),e[r++]=String.fromCharCode(56320+(c&1023))}else{const a=t[n++],s=t[n++];e[r++]=String.fromCharCode((i&15)<<12|(a&63)<<6|s&63)}}return e.join("")},at={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:typeof atob=="function",encodeByteArray(t,e){if(!Array.isArray(t))throw Error("encodeByteArray takes an array as a parameter");this.init_();const n=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[];for(let i=0;i<t.length;i+=3){const a=t[i],s=i+1<t.length,o=s?t[i+1]:0,c=i+2<t.length,l=c?t[i+2]:0,d=a>>2,h=(a&3)<<4|o>>4;let g=(o&15)<<2|l>>6,b=l&63;c||(b=64,s||(g=64)),r.push(n[d],n[h],n[g],n[b])}return r.join("")},encodeString(t,e){return this.HAS_NATIVE_SUPPORT&&!e?btoa(t):this.encodeByteArray(it(t),e)},decodeString(t,e){return this.HAS_NATIVE_SUPPORT&&!e?atob(t):Rn(this.decodeStringToByteArray(t,e))},decodeStringToByteArray(t,e){this.init_();const n=e?this.charToByteMapWebSafe_:this.charToByteMap_,r=[];for(let i=0;i<t.length;){const a=n[t.charAt(i++)],o=i<t.length?n[t.charAt(i)]:0;++i;const l=i<t.length?n[t.charAt(i)]:64;++i;const h=i<t.length?n[t.charAt(i)]:64;if(++i,a==null||o==null||l==null||h==null)throw new Dn;const g=a<<2|o>>4;if(r.push(g),l!==64){const b=o<<4&240|l>>2;if(r.push(b),h!==64){const en=l<<6&192|h;r.push(en)}}}return r},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let t=0;t<this.ENCODED_VALS.length;t++)this.byteToCharMap_[t]=this.ENCODED_VALS.charAt(t),this.charToByteMap_[this.byteToCharMap_[t]]=t,this.byteToCharMapWebSafe_[t]=this.ENCODED_VALS_WEBSAFE.charAt(t),this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[t]]=t,t>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(t)]=t,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(t)]=t)}}};class Dn extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const Mn=function(t){const e=it(t);return at.encodeByteArray(e,!0)},st=function(t){return Mn(t).replace(/\./g,"")},Nn=function(t){try{return at.decodeString(t,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};/**
|
||||
*/const it=function(t){const e=[];let n=0;for(let r=0;r<t.length;r++){let i=t.charCodeAt(r);i<128?e[n++]=i:i<2048?(e[n++]=i>>6|192,e[n++]=i&63|128):(i&64512)===55296&&r+1<t.length&&(t.charCodeAt(r+1)&64512)===56320?(i=65536+((i&1023)<<10)+(t.charCodeAt(++r)&1023),e[n++]=i>>18|240,e[n++]=i>>12&63|128,e[n++]=i>>6&63|128,e[n++]=i&63|128):(e[n++]=i>>12|224,e[n++]=i>>6&63|128,e[n++]=i&63|128)}return e},Rn=function(t){const e=[];let n=0,r=0;for(;n<t.length;){const i=t[n++];if(i<128)e[r++]=String.fromCharCode(i);else if(i>191&&i<224){const a=t[n++];e[r++]=String.fromCharCode((i&31)<<6|a&63)}else if(i>239&&i<365){const a=t[n++],s=t[n++],o=t[n++],c=((i&7)<<18|(a&63)<<12|(s&63)<<6|o&63)-65536;e[r++]=String.fromCharCode(55296+(c>>10)),e[r++]=String.fromCharCode(56320+(c&1023))}else{const a=t[n++],s=t[n++];e[r++]=String.fromCharCode((i&15)<<12|(a&63)<<6|s&63)}}return e.join("")},at={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:typeof atob=="function",encodeByteArray(t,e){if(!Array.isArray(t))throw Error("encodeByteArray takes an array as a parameter");this.init_();const n=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[];for(let i=0;i<t.length;i+=3){const a=t[i],s=i+1<t.length,o=s?t[i+1]:0,c=i+2<t.length,l=c?t[i+2]:0,d=a>>2,h=(a&3)<<4|o>>4;let g=(o&15)<<2|l>>6,b=l&63;c||(b=64,s||(g=64)),r.push(n[d],n[h],n[g],n[b])}return r.join("")},encodeString(t,e){return this.HAS_NATIVE_SUPPORT&&!e?btoa(t):this.encodeByteArray(it(t),e)},decodeString(t,e){return this.HAS_NATIVE_SUPPORT&&!e?atob(t):Rn(this.decodeStringToByteArray(t,e))},decodeStringToByteArray(t,e){this.init_();const n=e?this.charToByteMapWebSafe_:this.charToByteMap_,r=[];for(let i=0;i<t.length;){const a=n[t.charAt(i++)],o=i<t.length?n[t.charAt(i)]:0;++i;const l=i<t.length?n[t.charAt(i)]:64;++i;const h=i<t.length?n[t.charAt(i)]:64;if(++i,a==null||o==null||l==null||h==null)throw new Dn;const g=a<<2|o>>4;if(r.push(g),l!==64){const b=o<<4&240|l>>2;if(r.push(b),h!==64){const en=l<<6&192|h;r.push(en)}}}return r},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let t=0;t<this.ENCODED_VALS.length;t++)this.byteToCharMap_[t]=this.ENCODED_VALS.charAt(t),this.charToByteMap_[this.byteToCharMap_[t]]=t,this.byteToCharMapWebSafe_[t]=this.ENCODED_VALS_WEBSAFE.charAt(t),this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[t]]=t,t>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(t)]=t,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(t)]=t)}}};class Dn extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const Nn=function(t){const e=it(t);return at.encodeByteArray(e,!0)},st=function(t){return Nn(t).replace(/\./g,"")},Mn=function(t){try{return at.decodeString(t,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};/**
|
||||
* @license
|
||||
* Copyright 2022 Google LLC
|
||||
*
|
||||
|
@ -58,7 +58,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/const Pn=()=>On().__FIREBASE_DEFAULTS__,Bn=()=>{if(typeof process>"u"||typeof process.env>"u")return;const t={}.__FIREBASE_DEFAULTS__;if(t)return JSON.parse(t)},kn=()=>{if(typeof document>"u")return;let t;try{t=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch{return}const e=t&&Nn(t[1]);return e&&JSON.parse(e)},Fn=()=>{try{return Pn()||Bn()||kn()}catch(t){console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${t}`);return}},$n=()=>{var t;return(t=Fn())===null||t===void 0?void 0:t.config};/**
|
||||
*/const Pn=()=>On().__FIREBASE_DEFAULTS__,Fn=()=>{if(typeof process>"u"||typeof process.env>"u")return;const t={}.__FIREBASE_DEFAULTS__;if(t)return JSON.parse(t)},Bn=()=>{if(typeof document>"u")return;let t;try{t=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch{return}const e=t&&Mn(t[1]);return e&&JSON.parse(e)},kn=()=>{try{return Pn()||Fn()||Bn()}catch(t){console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${t}`);return}},$n=()=>{var t;return(t=kn())===null||t===void 0?void 0:t.config};/**
|
||||
* @license
|
||||
* Copyright 2017 Google LLC
|
||||
*
|
||||
|
@ -88,7 +88,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/const xn="FirebaseError";class k extends Error{constructor(e,n,r){super(n),this.code=e,this.customData=r,this.name=xn,Object.setPrototypeOf(this,k.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,x.prototype.create)}}class x{constructor(e,n,r){this.service=e,this.serviceName=n,this.errors=r}create(e,...n){const r=n[0]||{},i=`${this.service}/${e}`,a=this.errors[e],s=a?jn(a,r):"Error",o=`${this.serviceName}: ${s} (${i}).`;return new k(i,o,r)}}function jn(t,e){return t.replace(Vn,(n,r)=>{const i=e[r];return i!=null?String(i):`<${r}?>`})}const Vn=/\{\$([^}]+)}/g;function H(t,e){if(t===e)return!0;const n=Object.keys(t),r=Object.keys(e);for(const i of n){if(!r.includes(i))return!1;const a=t[i],s=e[i];if(Ne(a)&&Ne(s)){if(!H(a,s))return!1}else if(a!==s)return!1}for(const i of r)if(!n.includes(i))return!1;return!0}function Ne(t){return t!==null&&typeof t=="object"}/**
|
||||
*/const xn="FirebaseError";class B extends Error{constructor(e,n,r){super(n),this.code=e,this.customData=r,this.name=xn,Object.setPrototypeOf(this,B.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,x.prototype.create)}}class x{constructor(e,n,r){this.service=e,this.serviceName=n,this.errors=r}create(e,...n){const r=n[0]||{},i=`${this.service}/${e}`,a=this.errors[e],s=a?jn(a,r):"Error",o=`${this.serviceName}: ${s} (${i}).`;return new B(i,o,r)}}function jn(t,e){return t.replace(Vn,(n,r)=>{const i=e[r];return i!=null?String(i):`<${r}?>`})}const Vn=/\{\$([^}]+)}/g;function H(t,e){if(t===e)return!0;const n=Object.keys(t),r=Object.keys(e);for(const i of n){if(!r.includes(i))return!1;const a=t[i],s=e[i];if(Me(a)&&Me(s)){if(!H(a,s))return!1}else if(a!==s)return!1}for(const i of r)if(!n.includes(i))return!1;return!0}function Me(t){return t!==null&&typeof t=="object"}/**
|
||||
* @license
|
||||
* Copyright 2019 Google LLC
|
||||
*
|
||||
|
@ -118,7 +118,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/function ye(t){return t&&t._delegate?t._delegate:t}class v{constructor(e,n,r){this.name=e,this.instanceFactory=n,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}/**
|
||||
*/function ye(t){return t&&t._delegate?t._delegate:t}class w{constructor(e,n,r){this.name=e,this.instanceFactory=n,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}/**
|
||||
* @license
|
||||
* Copyright 2019 Google LLC
|
||||
*
|
||||
|
@ -148,7 +148,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/class Gn{constructor(e,n){this.name=e,this.container=n,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){const n=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(n)){const r=new Ln;if(this.instancesDeferred.set(n,r),this.isInitialized(n)||this.shouldAutoInitialize())try{const i=this.getOrInitializeService({instanceIdentifier:n});i&&r.resolve(i)}catch{}}return this.instancesDeferred.get(n).promise}getImmediate(e){var n;const r=this.normalizeInstanceIdentifier(e==null?void 0:e.identifier),i=(n=e==null?void 0:e.optional)!==null&&n!==void 0?n:!1;if(this.isInitialized(r)||this.shouldAutoInitialize())try{return this.getOrInitializeService({instanceIdentifier:r})}catch(a){if(i)return null;throw a}else{if(i)return null;throw Error(`Service ${this.name} is not available`)}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,!!this.shouldAutoInitialize()){if(Xn(e))try{this.getOrInitializeService({instanceIdentifier:D})}catch{}for(const[n,r]of this.instancesDeferred.entries()){const i=this.normalizeInstanceIdentifier(n);try{const a=this.getOrInitializeService({instanceIdentifier:i});r.resolve(a)}catch{}}}}clearInstance(e=D){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){const e=Array.from(this.instances.values());await Promise.all([...e.filter(n=>"INTERNAL"in n).map(n=>n.INTERNAL.delete()),...e.filter(n=>"_delete"in n).map(n=>n._delete())])}isComponentSet(){return this.component!=null}isInitialized(e=D){return this.instances.has(e)}getOptions(e=D){return this.instancesOptions.get(e)||{}}initialize(e={}){const{options:n={}}=e,r=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(r))throw Error(`${this.name}(${r}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);const i=this.getOrInitializeService({instanceIdentifier:r,options:n});for(const[a,s]of this.instancesDeferred.entries()){const o=this.normalizeInstanceIdentifier(a);r===o&&s.resolve(i)}return i}onInit(e,n){var r;const i=this.normalizeInstanceIdentifier(n),a=(r=this.onInitCallbacks.get(i))!==null&&r!==void 0?r:new Set;a.add(e),this.onInitCallbacks.set(i,a);const s=this.instances.get(i);return s&&e(s,i),()=>{a.delete(e)}}invokeOnInitCallbacks(e,n){const r=this.onInitCallbacks.get(n);if(r)for(const i of r)try{i(e,n)}catch{}}getOrInitializeService({instanceIdentifier:e,options:n={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:Kn(e),options:n}),this.instances.set(e,r),this.instancesOptions.set(e,n),this.invokeOnInitCallbacks(r,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,r)}catch{}return r||null}normalizeInstanceIdentifier(e=D){return this.component?this.component.multipleInstances?e:D:e}shouldAutoInitialize(){return!!this.component&&this.component.instantiationMode!=="EXPLICIT"}}function Kn(t){return t===D?void 0:t}function Xn(t){return t.instantiationMode==="EAGER"}/**
|
||||
*/class Gn{constructor(e,n){this.name=e,this.container=n,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){const n=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(n)){const r=new Ln;if(this.instancesDeferred.set(n,r),this.isInitialized(n)||this.shouldAutoInitialize())try{const i=this.getOrInitializeService({instanceIdentifier:n});i&&r.resolve(i)}catch{}}return this.instancesDeferred.get(n).promise}getImmediate(e){var n;const r=this.normalizeInstanceIdentifier(e==null?void 0:e.identifier),i=(n=e==null?void 0:e.optional)!==null&&n!==void 0?n:!1;if(this.isInitialized(r)||this.shouldAutoInitialize())try{return this.getOrInitializeService({instanceIdentifier:r})}catch(a){if(i)return null;throw a}else{if(i)return null;throw Error(`Service ${this.name} is not available`)}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,!!this.shouldAutoInitialize()){if(Yn(e))try{this.getOrInitializeService({instanceIdentifier:D})}catch{}for(const[n,r]of this.instancesDeferred.entries()){const i=this.normalizeInstanceIdentifier(n);try{const a=this.getOrInitializeService({instanceIdentifier:i});r.resolve(a)}catch{}}}}clearInstance(e=D){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){const e=Array.from(this.instances.values());await Promise.all([...e.filter(n=>"INTERNAL"in n).map(n=>n.INTERNAL.delete()),...e.filter(n=>"_delete"in n).map(n=>n._delete())])}isComponentSet(){return this.component!=null}isInitialized(e=D){return this.instances.has(e)}getOptions(e=D){return this.instancesOptions.get(e)||{}}initialize(e={}){const{options:n={}}=e,r=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(r))throw Error(`${this.name}(${r}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);const i=this.getOrInitializeService({instanceIdentifier:r,options:n});for(const[a,s]of this.instancesDeferred.entries()){const o=this.normalizeInstanceIdentifier(a);r===o&&s.resolve(i)}return i}onInit(e,n){var r;const i=this.normalizeInstanceIdentifier(n),a=(r=this.onInitCallbacks.get(i))!==null&&r!==void 0?r:new Set;a.add(e),this.onInitCallbacks.set(i,a);const s=this.instances.get(i);return s&&e(s,i),()=>{a.delete(e)}}invokeOnInitCallbacks(e,n){const r=this.onInitCallbacks.get(n);if(r)for(const i of r)try{i(e,n)}catch{}}getOrInitializeService({instanceIdentifier:e,options:n={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:Kn(e),options:n}),this.instances.set(e,r),this.instancesOptions.set(e,n),this.invokeOnInitCallbacks(r,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,r)}catch{}return r||null}normalizeInstanceIdentifier(e=D){return this.component?this.component.multipleInstances?e:D:e}shouldAutoInitialize(){return!!this.component&&this.component.instantiationMode!=="EXPLICIT"}}function Kn(t){return t===D?void 0:t}function Yn(t){return t.instantiationMode==="EAGER"}/**
|
||||
* @license
|
||||
* Copyright 2019 Google LLC
|
||||
*
|
||||
|
@ -163,7 +163,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/class Yn{constructor(e){this.name=e,this.providers=new Map}addComponent(e){const n=this.getProvider(e.name);if(n.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);n.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);const n=new Gn(e,this);return this.providers.set(e,n),n}getProviders(){return Array.from(this.providers.values())}}/**
|
||||
*/class Xn{constructor(e){this.name=e,this.providers=new Map}addComponent(e){const n=this.getProvider(e.name);if(n.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);n.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);const n=new Gn(e,this);return this.providers.set(e,n),n}getProviders(){return Array.from(this.providers.values())}}/**
|
||||
* @license
|
||||
* Copyright 2017 Google LLC
|
||||
*
|
||||
|
@ -178,7 +178,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/var u;(function(t){t[t.DEBUG=0]="DEBUG",t[t.VERBOSE=1]="VERBOSE",t[t.INFO=2]="INFO",t[t.WARN=3]="WARN",t[t.ERROR=4]="ERROR",t[t.SILENT=5]="SILENT"})(u||(u={}));const Jn={debug:u.DEBUG,verbose:u.VERBOSE,info:u.INFO,warn:u.WARN,error:u.ERROR,silent:u.SILENT},Qn=u.INFO,Zn={[u.DEBUG]:"log",[u.VERBOSE]:"log",[u.INFO]:"info",[u.WARN]:"warn",[u.ERROR]:"error"},er=(t,e,...n)=>{if(e<t.logLevel)return;const r=new Date().toISOString(),i=Zn[e];if(i)console[i](`[${r}] ${t.name}:`,...n);else throw new Error(`Attempted to log a message with an invalid logType (value: ${e})`)};class Ee{constructor(e){this.name=e,this._logLevel=Qn,this._logHandler=er,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in u))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel=typeof e=="string"?Jn[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if(typeof e!="function")throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,u.DEBUG,...e),this._logHandler(this,u.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,u.VERBOSE,...e),this._logHandler(this,u.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,u.INFO,...e),this._logHandler(this,u.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,u.WARN,...e),this._logHandler(this,u.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,u.ERROR,...e),this._logHandler(this,u.ERROR,...e)}}const tr=(t,e)=>e.some(n=>t instanceof n);let Pe,Be;function nr(){return Pe||(Pe=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function rr(){return Be||(Be=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}const ct=new WeakMap,ue=new WeakMap,lt=new WeakMap,J=new WeakMap,we=new WeakMap;function ir(t){const e=new Promise((n,r)=>{const i=()=>{t.removeEventListener("success",a),t.removeEventListener("error",s)},a=()=>{n(A(t.result)),i()},s=()=>{r(t.error),i()};t.addEventListener("success",a),t.addEventListener("error",s)});return e.then(n=>{n instanceof IDBCursor&&ct.set(n,t)}).catch(()=>{}),we.set(e,t),e}function ar(t){if(ue.has(t))return;const e=new Promise((n,r)=>{const i=()=>{t.removeEventListener("complete",a),t.removeEventListener("error",s),t.removeEventListener("abort",s)},a=()=>{n(),i()},s=()=>{r(t.error||new DOMException("AbortError","AbortError")),i()};t.addEventListener("complete",a),t.addEventListener("error",s),t.addEventListener("abort",s)});ue.set(t,e)}let de={get(t,e,n){if(t instanceof IDBTransaction){if(e==="done")return ue.get(t);if(e==="objectStoreNames")return t.objectStoreNames||lt.get(t);if(e==="store")return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return A(t[e])},set(t,e,n){return t[e]=n,!0},has(t,e){return t instanceof IDBTransaction&&(e==="done"||e==="store")?!0:e in t}};function sr(t){de=t(de)}function or(t){return t===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...n){const r=t.call(Q(this),e,...n);return lt.set(r,e.sort?e.sort():[e]),A(r)}:rr().includes(t)?function(...e){return t.apply(Q(this),e),A(ct.get(this))}:function(...e){return A(t.apply(Q(this),e))}}function cr(t){return typeof t=="function"?or(t):(t instanceof IDBTransaction&&ar(t),tr(t,nr())?new Proxy(t,de):t)}function A(t){if(t instanceof IDBRequest)return ir(t);if(J.has(t))return J.get(t);const e=cr(t);return e!==t&&(J.set(t,e),we.set(e,t)),e}const Q=t=>we.get(t);function ut(t,e,{blocked:n,upgrade:r,blocking:i,terminated:a}={}){const s=indexedDB.open(t,e),o=A(s);return r&&s.addEventListener("upgradeneeded",c=>{r(A(s.result),c.oldVersion,c.newVersion,A(s.transaction))}),n&&s.addEventListener("blocked",()=>n()),o.then(c=>{a&&c.addEventListener("close",()=>a()),i&&c.addEventListener("versionchange",()=>i())}).catch(()=>{}),o}const lr=["get","getKey","getAll","getAllKeys","count"],ur=["put","add","delete","clear"],Z=new Map;function ke(t,e){if(!(t instanceof IDBDatabase&&!(e in t)&&typeof e=="string"))return;if(Z.get(e))return Z.get(e);const n=e.replace(/FromIndex$/,""),r=e!==n,i=ur.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!(i||lr.includes(n)))return;const a=async function(s,...o){const c=this.transaction(s,i?"readwrite":"readonly");let l=c.store;return r&&(l=l.index(o.shift())),(await Promise.all([l[n](...o),i&&c.done]))[0]};return Z.set(e,a),a}sr(t=>({...t,get:(e,n,r)=>ke(e,n)||t.get(e,n,r),has:(e,n)=>!!ke(e,n)||t.has(e,n)}));/**
|
||||
*/var u;(function(t){t[t.DEBUG=0]="DEBUG",t[t.VERBOSE=1]="VERBOSE",t[t.INFO=2]="INFO",t[t.WARN=3]="WARN",t[t.ERROR=4]="ERROR",t[t.SILENT=5]="SILENT"})(u||(u={}));const Jn={debug:u.DEBUG,verbose:u.VERBOSE,info:u.INFO,warn:u.WARN,error:u.ERROR,silent:u.SILENT},Qn=u.INFO,Zn={[u.DEBUG]:"log",[u.VERBOSE]:"log",[u.INFO]:"info",[u.WARN]:"warn",[u.ERROR]:"error"},er=(t,e,...n)=>{if(e<t.logLevel)return;const r=new Date().toISOString(),i=Zn[e];if(i)console[i](`[${r}] ${t.name}:`,...n);else throw new Error(`Attempted to log a message with an invalid logType (value: ${e})`)};class Ee{constructor(e){this.name=e,this._logLevel=Qn,this._logHandler=er,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in u))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel=typeof e=="string"?Jn[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if(typeof e!="function")throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,u.DEBUG,...e),this._logHandler(this,u.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,u.VERBOSE,...e),this._logHandler(this,u.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,u.INFO,...e),this._logHandler(this,u.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,u.WARN,...e),this._logHandler(this,u.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,u.ERROR,...e),this._logHandler(this,u.ERROR,...e)}}const tr=(t,e)=>e.some(n=>t instanceof n);let Pe,Fe;function nr(){return Pe||(Pe=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function rr(){return Fe||(Fe=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}const ct=new WeakMap,ue=new WeakMap,lt=new WeakMap,J=new WeakMap,Te=new WeakMap;function ir(t){const e=new Promise((n,r)=>{const i=()=>{t.removeEventListener("success",a),t.removeEventListener("error",s)},a=()=>{n(A(t.result)),i()},s=()=>{r(t.error),i()};t.addEventListener("success",a),t.addEventListener("error",s)});return e.then(n=>{n instanceof IDBCursor&&ct.set(n,t)}).catch(()=>{}),Te.set(e,t),e}function ar(t){if(ue.has(t))return;const e=new Promise((n,r)=>{const i=()=>{t.removeEventListener("complete",a),t.removeEventListener("error",s),t.removeEventListener("abort",s)},a=()=>{n(),i()},s=()=>{r(t.error||new DOMException("AbortError","AbortError")),i()};t.addEventListener("complete",a),t.addEventListener("error",s),t.addEventListener("abort",s)});ue.set(t,e)}let de={get(t,e,n){if(t instanceof IDBTransaction){if(e==="done")return ue.get(t);if(e==="objectStoreNames")return t.objectStoreNames||lt.get(t);if(e==="store")return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return A(t[e])},set(t,e,n){return t[e]=n,!0},has(t,e){return t instanceof IDBTransaction&&(e==="done"||e==="store")?!0:e in t}};function sr(t){de=t(de)}function or(t){return t===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...n){const r=t.call(Q(this),e,...n);return lt.set(r,e.sort?e.sort():[e]),A(r)}:rr().includes(t)?function(...e){return t.apply(Q(this),e),A(ct.get(this))}:function(...e){return A(t.apply(Q(this),e))}}function cr(t){return typeof t=="function"?or(t):(t instanceof IDBTransaction&&ar(t),tr(t,nr())?new Proxy(t,de):t)}function A(t){if(t instanceof IDBRequest)return ir(t);if(J.has(t))return J.get(t);const e=cr(t);return e!==t&&(J.set(t,e),Te.set(e,t)),e}const Q=t=>Te.get(t);function ut(t,e,{blocked:n,upgrade:r,blocking:i,terminated:a}={}){const s=indexedDB.open(t,e),o=A(s);return r&&s.addEventListener("upgradeneeded",c=>{r(A(s.result),c.oldVersion,c.newVersion,A(s.transaction))}),n&&s.addEventListener("blocked",()=>n()),o.then(c=>{a&&c.addEventListener("close",()=>a()),i&&c.addEventListener("versionchange",()=>i())}).catch(()=>{}),o}const lr=["get","getKey","getAll","getAllKeys","count"],ur=["put","add","delete","clear"],Z=new Map;function Be(t,e){if(!(t instanceof IDBDatabase&&!(e in t)&&typeof e=="string"))return;if(Z.get(e))return Z.get(e);const n=e.replace(/FromIndex$/,""),r=e!==n,i=ur.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!(i||lr.includes(n)))return;const a=async function(s,...o){const c=this.transaction(s,i?"readwrite":"readonly");let l=c.store;return r&&(l=l.index(o.shift())),(await Promise.all([l[n](...o),i&&c.done]))[0]};return Z.set(e,a),a}sr(t=>({...t,get:(e,n,r)=>Be(e,n)||t.get(e,n,r),has:(e,n)=>!!Be(e,n)||t.has(e,n)}));/**
|
||||
* @license
|
||||
* Copyright 2019 Google LLC
|
||||
*
|
||||
|
@ -193,7 +193,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/class dr{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(n=>{if(fr(n)){const r=n.getImmediate();return`${r.library}/${r.version}`}else return null}).filter(n=>n).join(" ")}}function fr(t){const e=t.getComponent();return(e==null?void 0:e.type)==="VERSION"}const fe="@firebase/app",Fe="0.9.7";/**
|
||||
*/class dr{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(n=>{if(fr(n)){const r=n.getImmediate();return`${r.library}/${r.version}`}else return null}).filter(n=>n).join(" ")}}function fr(t){const e=t.getComponent();return(e==null?void 0:e.type)==="VERSION"}const fe="@firebase/app",ke="0.9.7";/**
|
||||
* @license
|
||||
* Copyright 2019 Google LLC
|
||||
*
|
||||
|
@ -208,7 +208,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/const O=new Ee("@firebase/app"),hr="@firebase/app-compat",pr="@firebase/analytics-compat",mr="@firebase/analytics",gr="@firebase/app-check-compat",br="@firebase/app-check",_r="@firebase/auth",Ir="@firebase/auth-compat",yr="@firebase/database",Er="@firebase/database-compat",wr="@firebase/functions",Tr="@firebase/functions-compat",vr="@firebase/installations",Ar="@firebase/installations-compat",Sr="@firebase/messaging",Cr="@firebase/messaging-compat",Rr="@firebase/performance",Dr="@firebase/performance-compat",Mr="@firebase/remote-config",Nr="@firebase/remote-config-compat",Or="@firebase/storage",Pr="@firebase/storage-compat",Br="@firebase/firestore",kr="@firebase/firestore-compat",Fr="firebase";/**
|
||||
*/const O=new Ee("@firebase/app"),hr="@firebase/app-compat",pr="@firebase/analytics-compat",mr="@firebase/analytics",gr="@firebase/app-check-compat",br="@firebase/app-check",_r="@firebase/auth",Ir="@firebase/auth-compat",yr="@firebase/database",Er="@firebase/database-compat",Tr="@firebase/functions",vr="@firebase/functions-compat",wr="@firebase/installations",Ar="@firebase/installations-compat",Sr="@firebase/messaging",Cr="@firebase/messaging-compat",Rr="@firebase/performance",Dr="@firebase/performance-compat",Nr="@firebase/remote-config",Mr="@firebase/remote-config-compat",Or="@firebase/storage",Pr="@firebase/storage-compat",Fr="@firebase/firestore",Br="@firebase/firestore-compat",kr="firebase";/**
|
||||
* @license
|
||||
* Copyright 2019 Google LLC
|
||||
*
|
||||
|
@ -223,7 +223,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/const he="[DEFAULT]",$r={[fe]:"fire-core",[hr]:"fire-core-compat",[mr]:"fire-analytics",[pr]:"fire-analytics-compat",[br]:"fire-app-check",[gr]:"fire-app-check-compat",[_r]:"fire-auth",[Ir]:"fire-auth-compat",[yr]:"fire-rtdb",[Er]:"fire-rtdb-compat",[wr]:"fire-fn",[Tr]:"fire-fn-compat",[vr]:"fire-iid",[Ar]:"fire-iid-compat",[Sr]:"fire-fcm",[Cr]:"fire-fcm-compat",[Rr]:"fire-perf",[Dr]:"fire-perf-compat",[Mr]:"fire-rc",[Nr]:"fire-rc-compat",[Or]:"fire-gcs",[Pr]:"fire-gcs-compat",[Br]:"fire-fst",[kr]:"fire-fst-compat","fire-js":"fire-js",[Fr]:"fire-js-all"};/**
|
||||
*/const he="[DEFAULT]",$r={[fe]:"fire-core",[hr]:"fire-core-compat",[mr]:"fire-analytics",[pr]:"fire-analytics-compat",[br]:"fire-app-check",[gr]:"fire-app-check-compat",[_r]:"fire-auth",[Ir]:"fire-auth-compat",[yr]:"fire-rtdb",[Er]:"fire-rtdb-compat",[Tr]:"fire-fn",[vr]:"fire-fn-compat",[wr]:"fire-iid",[Ar]:"fire-iid-compat",[Sr]:"fire-fcm",[Cr]:"fire-fcm-compat",[Rr]:"fire-perf",[Dr]:"fire-perf-compat",[Nr]:"fire-rc",[Mr]:"fire-rc-compat",[Or]:"fire-gcs",[Pr]:"fire-gcs-compat",[Fr]:"fire-fst",[Br]:"fire-fst-compat","fire-js":"fire-js",[kr]:"fire-js-all"};/**
|
||||
* @license
|
||||
* Copyright 2019 Google LLC
|
||||
*
|
||||
|
@ -268,7 +268,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/class xr{constructor(e,n,r){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},n),this._name=n.name,this._automaticDataCollectionEnabled=n.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new v("app",()=>this,"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw S.create("app-deleted",{appName:this._name})}}function dt(t,e={}){let n=t;typeof e!="object"&&(e={name:e});const r=Object.assign({name:he,automaticDataCollectionEnabled:!1},e),i=r.name;if(typeof i!="string"||!i)throw S.create("bad-app-name",{appName:String(i)});if(n||(n=$n()),!n)throw S.create("no-options");const a=z.get(i);if(a){if(H(n,a.options)&&H(r,a.config))return a;throw S.create("duplicate-app",{appName:i})}const s=new Yn(i);for(const c of pe.values())s.addComponent(c);const o=new xr(n,r,s);return z.set(i,o),o}function ft(t=he){const e=z.get(t);if(!e&&t===he)return dt();if(!e)throw S.create("no-app",{appName:t});return e}function E(t,e,n){var r;let i=(r=$r[t])!==null&&r!==void 0?r:t;n&&(i+=`-${n}`);const a=i.match(/\s|\//),s=e.match(/\s|\//);if(a||s){const o=[`Unable to register library "${i}" with version "${e}":`];a&&o.push(`library name "${i}" contains illegal characters (whitespace or "/")`),a&&s&&o.push("and"),s&&o.push(`version name "${e}" contains illegal characters (whitespace or "/")`),O.warn(o.join(" "));return}R(new v(`${i}-version`,()=>({library:i,version:e}),"VERSION"))}/**
|
||||
*/class xr{constructor(e,n,r){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},n),this._name=n.name,this._automaticDataCollectionEnabled=n.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new w("app",()=>this,"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw S.create("app-deleted",{appName:this._name})}}function dt(t,e={}){let n=t;typeof e!="object"&&(e={name:e});const r=Object.assign({name:he,automaticDataCollectionEnabled:!1},e),i=r.name;if(typeof i!="string"||!i)throw S.create("bad-app-name",{appName:String(i)});if(n||(n=$n()),!n)throw S.create("no-options");const a=z.get(i);if(a){if(H(n,a.options)&&H(r,a.config))return a;throw S.create("duplicate-app",{appName:i})}const s=new Xn(i);for(const c of pe.values())s.addComponent(c);const o=new xr(n,r,s);return z.set(i,o),o}function ft(t=he){const e=z.get(t);if(!e&&t===he)return dt();if(!e)throw S.create("no-app",{appName:t});return e}function E(t,e,n){var r;let i=(r=$r[t])!==null&&r!==void 0?r:t;n&&(i+=`-${n}`);const a=i.match(/\s|\//),s=e.match(/\s|\//);if(a||s){const o=[`Unable to register library "${i}" with version "${e}":`];a&&o.push(`library name "${i}" contains illegal characters (whitespace or "/")`),a&&s&&o.push("and"),s&&o.push(`version name "${e}" contains illegal characters (whitespace or "/")`),O.warn(o.join(" "));return}R(new w(`${i}-version`,()=>({library:i,version:e}),"VERSION"))}/**
|
||||
* @license
|
||||
* Copyright 2021 Google LLC
|
||||
*
|
||||
|
@ -283,7 +283,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/const jr="firebase-heartbeat-database",Vr=1,U="firebase-heartbeat-store";let ee=null;function ht(){return ee||(ee=ut(jr,Vr,{upgrade:(t,e)=>{switch(e){case 0:t.createObjectStore(U)}}}).catch(t=>{throw S.create("idb-open",{originalErrorMessage:t.message})})),ee}async function Hr(t){try{return(await ht()).transaction(U).objectStore(U).get(pt(t))}catch(e){if(e instanceof k)O.warn(e.message);else{const n=S.create("idb-get",{originalErrorMessage:e==null?void 0:e.message});O.warn(n.message)}}}async function $e(t,e){try{const r=(await ht()).transaction(U,"readwrite");return await r.objectStore(U).put(e,pt(t)),r.done}catch(n){if(n instanceof k)O.warn(n.message);else{const r=S.create("idb-set",{originalErrorMessage:n==null?void 0:n.message});O.warn(r.message)}}}function pt(t){return`${t.name}!${t.options.appId}`}/**
|
||||
*/const jr="firebase-heartbeat-database",Vr=1,U="firebase-heartbeat-store";let ee=null;function ht(){return ee||(ee=ut(jr,Vr,{upgrade:(t,e)=>{switch(e){case 0:t.createObjectStore(U)}}}).catch(t=>{throw S.create("idb-open",{originalErrorMessage:t.message})})),ee}async function Hr(t){try{return(await ht()).transaction(U).objectStore(U).get(pt(t))}catch(e){if(e instanceof B)O.warn(e.message);else{const n=S.create("idb-get",{originalErrorMessage:e==null?void 0:e.message});O.warn(n.message)}}}async function $e(t,e){try{const r=(await ht()).transaction(U,"readwrite");return await r.objectStore(U).put(e,pt(t)),r.done}catch(n){if(n instanceof B)O.warn(n.message);else{const r=S.create("idb-set",{originalErrorMessage:n==null?void 0:n.message});O.warn(r.message)}}}function pt(t){return`${t.name}!${t.options.appId}`}/**
|
||||
* @license
|
||||
* Copyright 2021 Google LLC
|
||||
*
|
||||
|
@ -313,7 +313,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/function Xr(t){R(new v("platform-logger",e=>new dr(e),"PRIVATE")),R(new v("heartbeat",e=>new Wr(e),"PRIVATE")),E(fe,Fe,t),E(fe,Fe,"esm2017"),E("fire-js","")}Xr("");var Yr="firebase",Jr="9.19.1";/**
|
||||
*/function Yr(t){R(new w("platform-logger",e=>new dr(e),"PRIVATE")),R(new w("heartbeat",e=>new Wr(e),"PRIVATE")),E(fe,ke,t),E(fe,ke,"esm2017"),E("fire-js","")}Yr("");var Xr="firebase",Jr="9.19.1";/**
|
||||
* @license
|
||||
* Copyright 2020 Google LLC
|
||||
*
|
||||
|
@ -328,7 +328,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/E(Yr,Jr,"app");const mt="@firebase/installations",Te="0.6.4";/**
|
||||
*/E(Xr,Jr,"app");const mt="@firebase/installations",ve="0.6.4";/**
|
||||
* @license
|
||||
* Copyright 2019 Google LLC
|
||||
*
|
||||
|
@ -343,7 +343,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/const gt=1e4,bt=`w:${Te}`,_t="FIS_v2",Qr="https://firebaseinstallations.googleapis.com/v1",Zr=60*60*1e3,ei="installations",ti="Installations";/**
|
||||
*/const gt=1e4,bt=`w:${ve}`,_t="FIS_v2",Qr="https://firebaseinstallations.googleapis.com/v1",Zr=60*60*1e3,ei="installations",ti="Installations";/**
|
||||
* @license
|
||||
* Copyright 2019 Google LLC
|
||||
*
|
||||
|
@ -358,7 +358,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/const ni={"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"not-registered":"Firebase Installation is not registered.","installation-not-found":"Firebase Installation not found.","request-failed":'{$requestName} request failed with error "{$serverCode} {$serverStatus}: {$serverMessage}"',"app-offline":"Could not process request. Application offline.","delete-pending-registration":"Can't delete installation while there is a pending registration request."},P=new x(ei,ti,ni);function It(t){return t instanceof k&&t.code.includes("request-failed")}/**
|
||||
*/const ni={"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"not-registered":"Firebase Installation is not registered.","installation-not-found":"Firebase Installation not found.","request-failed":'{$requestName} request failed with error "{$serverCode} {$serverStatus}: {$serverMessage}"',"app-offline":"Could not process request. Application offline.","delete-pending-registration":"Can't delete installation while there is a pending registration request."},P=new x(ei,ti,ni);function It(t){return t instanceof B&&t.code.includes("request-failed")}/**
|
||||
* @license
|
||||
* Copyright 2019 Google LLC
|
||||
*
|
||||
|
@ -373,7 +373,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/function yt({projectId:t}){return`${Qr}/projects/${t}/installations`}function Et(t){return{token:t.token,requestStatus:2,expiresIn:ii(t.expiresIn),creationTime:Date.now()}}async function wt(t,e){const r=(await e.json()).error;return P.create("request-failed",{requestName:t,serverCode:r.code,serverMessage:r.message,serverStatus:r.status})}function Tt({apiKey:t}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":t})}function ri(t,{refreshToken:e}){const n=Tt(t);return n.append("Authorization",ai(e)),n}async function vt(t){const e=await t();return e.status>=500&&e.status<600?t():e}function ii(t){return Number(t.replace("s","000"))}function ai(t){return`${_t} ${t}`}/**
|
||||
*/function yt({projectId:t}){return`${Qr}/projects/${t}/installations`}function Et(t){return{token:t.token,requestStatus:2,expiresIn:ii(t.expiresIn),creationTime:Date.now()}}async function Tt(t,e){const r=(await e.json()).error;return P.create("request-failed",{requestName:t,serverCode:r.code,serverMessage:r.message,serverStatus:r.status})}function vt({apiKey:t}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":t})}function ri(t,{refreshToken:e}){const n=vt(t);return n.append("Authorization",ai(e)),n}async function wt(t){const e=await t();return e.status>=500&&e.status<600?t():e}function ii(t){return Number(t.replace("s","000"))}function ai(t){return`${_t} ${t}`}/**
|
||||
* @license
|
||||
* Copyright 2019 Google LLC
|
||||
*
|
||||
|
@ -388,7 +388,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/async function si({appConfig:t,heartbeatServiceProvider:e},{fid:n}){const r=yt(t),i=Tt(t),a=e.getImmediate({optional:!0});if(a){const l=await a.getHeartbeatsHeader();l&&i.append("x-firebase-client",l)}const s={fid:n,authVersion:_t,appId:t.appId,sdkVersion:bt},o={method:"POST",headers:i,body:JSON.stringify(s)},c=await vt(()=>fetch(r,o));if(c.ok){const l=await c.json();return{fid:l.fid||n,registrationStatus:2,refreshToken:l.refreshToken,authToken:Et(l.authToken)}}else throw await wt("Create Installation",c)}/**
|
||||
*/async function si({appConfig:t,heartbeatServiceProvider:e},{fid:n}){const r=yt(t),i=vt(t),a=e.getImmediate({optional:!0});if(a){const l=await a.getHeartbeatsHeader();l&&i.append("x-firebase-client",l)}const s={fid:n,authVersion:_t,appId:t.appId,sdkVersion:bt},o={method:"POST",headers:i,body:JSON.stringify(s)},c=await wt(()=>fetch(r,o));if(c.ok){const l=await c.json();return{fid:l.fid||n,registrationStatus:2,refreshToken:l.refreshToken,authToken:Et(l.authToken)}}else throw await Tt("Create Installation",c)}/**
|
||||
* @license
|
||||
* Copyright 2019 Google LLC
|
||||
*
|
||||
|
@ -463,7 +463,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/const St=new Map;function Ct(t,e){const n=K(t);Rt(n,e),di(n,e)}function Rt(t,e){const n=St.get(t);if(n)for(const r of n)r(e)}function di(t,e){const n=fi();n&&n.postMessage({key:t,fid:e}),hi()}let M=null;function fi(){return!M&&"BroadcastChannel"in self&&(M=new BroadcastChannel("[Firebase] FID Change"),M.onmessage=t=>{Rt(t.data.key,t.data.fid)}),M}function hi(){St.size===0&&M&&(M.close(),M=null)}/**
|
||||
*/const St=new Map;function Ct(t,e){const n=K(t);Rt(n,e),di(n,e)}function Rt(t,e){const n=St.get(t);if(n)for(const r of n)r(e)}function di(t,e){const n=fi();n&&n.postMessage({key:t,fid:e}),hi()}let N=null;function fi(){return!N&&"BroadcastChannel"in self&&(N=new BroadcastChannel("[Firebase] FID Change"),N.onmessage=t=>{Rt(t.data.key,t.data.fid)}),N}function hi(){St.size===0&&N&&(N.close(),N=null)}/**
|
||||
* @license
|
||||
* Copyright 2019 Google LLC
|
||||
*
|
||||
|
@ -478,7 +478,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/const pi="firebase-installations-database",mi=1,B="firebase-installations-store";let te=null;function ve(){return te||(te=ut(pi,mi,{upgrade:(t,e)=>{switch(e){case 0:t.createObjectStore(B)}}})),te}async function q(t,e){const n=K(t),i=(await ve()).transaction(B,"readwrite"),a=i.objectStore(B),s=await a.get(n);return await a.put(e,n),await i.done,(!s||s.fid!==e.fid)&&Ct(t,e.fid),e}async function Dt(t){const e=K(t),r=(await ve()).transaction(B,"readwrite");await r.objectStore(B).delete(e),await r.done}async function X(t,e){const n=K(t),i=(await ve()).transaction(B,"readwrite"),a=i.objectStore(B),s=await a.get(n),o=e(s);return o===void 0?await a.delete(n):await a.put(o,n),await i.done,o&&(!s||s.fid!==o.fid)&&Ct(t,o.fid),o}/**
|
||||
*/const pi="firebase-installations-database",mi=1,F="firebase-installations-store";let te=null;function we(){return te||(te=ut(pi,mi,{upgrade:(t,e)=>{switch(e){case 0:t.createObjectStore(F)}}})),te}async function q(t,e){const n=K(t),i=(await we()).transaction(F,"readwrite"),a=i.objectStore(F),s=await a.get(n);return await a.put(e,n),await i.done,(!s||s.fid!==e.fid)&&Ct(t,e.fid),e}async function Dt(t){const e=K(t),r=(await we()).transaction(F,"readwrite");await r.objectStore(F).delete(e),await r.done}async function Y(t,e){const n=K(t),i=(await we()).transaction(F,"readwrite"),a=i.objectStore(F),s=await a.get(n),o=e(s);return o===void 0?await a.delete(n):await a.put(o,n),await i.done,o&&(!s||s.fid!==o.fid)&&Ct(t,o.fid),o}/**
|
||||
* @license
|
||||
* Copyright 2019 Google LLC
|
||||
*
|
||||
|
@ -493,7 +493,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/async function Ae(t){let e;const n=await X(t.appConfig,r=>{const i=gi(r),a=bi(t,i);return e=a.registrationPromise,a.installationEntry});return n.fid===me?{installationEntry:await e}:{installationEntry:n,registrationPromise:e}}function gi(t){const e=t||{fid:li(),registrationStatus:0};return Mt(e)}function bi(t,e){if(e.registrationStatus===0){if(!navigator.onLine){const i=Promise.reject(P.create("app-offline"));return{installationEntry:e,registrationPromise:i}}const n={fid:e.fid,registrationStatus:1,registrationTime:Date.now()},r=_i(t,n);return{installationEntry:n,registrationPromise:r}}else return e.registrationStatus===1?{installationEntry:e,registrationPromise:Ii(t)}:{installationEntry:e}}async function _i(t,e){try{const n=await si(t,e);return q(t.appConfig,n)}catch(n){throw It(n)&&n.customData.serverCode===409?await Dt(t.appConfig):await q(t.appConfig,{fid:e.fid,registrationStatus:0}),n}}async function Ii(t){let e=await xe(t.appConfig);for(;e.registrationStatus===1;)await At(100),e=await xe(t.appConfig);if(e.registrationStatus===0){const{installationEntry:n,registrationPromise:r}=await Ae(t);return r||n}return e}function xe(t){return X(t,e=>{if(!e)throw P.create("installation-not-found");return Mt(e)})}function Mt(t){return yi(t)?{fid:t.fid,registrationStatus:0}:t}function yi(t){return t.registrationStatus===1&&t.registrationTime+gt<Date.now()}/**
|
||||
*/async function Ae(t){let e;const n=await Y(t.appConfig,r=>{const i=gi(r),a=bi(t,i);return e=a.registrationPromise,a.installationEntry});return n.fid===me?{installationEntry:await e}:{installationEntry:n,registrationPromise:e}}function gi(t){const e=t||{fid:li(),registrationStatus:0};return Nt(e)}function bi(t,e){if(e.registrationStatus===0){if(!navigator.onLine){const i=Promise.reject(P.create("app-offline"));return{installationEntry:e,registrationPromise:i}}const n={fid:e.fid,registrationStatus:1,registrationTime:Date.now()},r=_i(t,n);return{installationEntry:n,registrationPromise:r}}else return e.registrationStatus===1?{installationEntry:e,registrationPromise:Ii(t)}:{installationEntry:e}}async function _i(t,e){try{const n=await si(t,e);return q(t.appConfig,n)}catch(n){throw It(n)&&n.customData.serverCode===409?await Dt(t.appConfig):await q(t.appConfig,{fid:e.fid,registrationStatus:0}),n}}async function Ii(t){let e=await xe(t.appConfig);for(;e.registrationStatus===1;)await At(100),e=await xe(t.appConfig);if(e.registrationStatus===0){const{installationEntry:n,registrationPromise:r}=await Ae(t);return r||n}return e}function xe(t){return Y(t,e=>{if(!e)throw P.create("installation-not-found");return Nt(e)})}function Nt(t){return yi(t)?{fid:t.fid,registrationStatus:0}:t}function yi(t){return t.registrationStatus===1&&t.registrationTime+gt<Date.now()}/**
|
||||
* @license
|
||||
* Copyright 2019 Google LLC
|
||||
*
|
||||
|
@ -508,7 +508,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/async function Ei({appConfig:t,heartbeatServiceProvider:e},n){const r=wi(t,n),i=ri(t,n),a=e.getImmediate({optional:!0});if(a){const l=await a.getHeartbeatsHeader();l&&i.append("x-firebase-client",l)}const s={installation:{sdkVersion:bt,appId:t.appId}},o={method:"POST",headers:i,body:JSON.stringify(s)},c=await vt(()=>fetch(r,o));if(c.ok){const l=await c.json();return Et(l)}else throw await wt("Generate Auth Token",c)}function wi(t,{fid:e}){return`${yt(t)}/${e}/authTokens:generate`}/**
|
||||
*/async function Ei({appConfig:t,heartbeatServiceProvider:e},n){const r=Ti(t,n),i=ri(t,n),a=e.getImmediate({optional:!0});if(a){const l=await a.getHeartbeatsHeader();l&&i.append("x-firebase-client",l)}const s={installation:{sdkVersion:bt,appId:t.appId}},o={method:"POST",headers:i,body:JSON.stringify(s)},c=await wt(()=>fetch(r,o));if(c.ok){const l=await c.json();return Et(l)}else throw await Tt("Generate Auth Token",c)}function Ti(t,{fid:e}){return`${yt(t)}/${e}/authTokens:generate`}/**
|
||||
* @license
|
||||
* Copyright 2019 Google LLC
|
||||
*
|
||||
|
@ -523,7 +523,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/async function Se(t,e=!1){let n;const r=await X(t.appConfig,a=>{if(!Nt(a))throw P.create("not-registered");const s=a.authToken;if(!e&&Ai(s))return a;if(s.requestStatus===1)return n=Ti(t,e),a;{if(!navigator.onLine)throw P.create("app-offline");const o=Ci(a);return n=vi(t,o),o}});return n?await n:r.authToken}async function Ti(t,e){let n=await je(t.appConfig);for(;n.authToken.requestStatus===1;)await At(100),n=await je(t.appConfig);const r=n.authToken;return r.requestStatus===0?Se(t,e):r}function je(t){return X(t,e=>{if(!Nt(e))throw P.create("not-registered");const n=e.authToken;return Ri(n)?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e})}async function vi(t,e){try{const n=await Ei(t,e),r=Object.assign(Object.assign({},e),{authToken:n});return await q(t.appConfig,r),n}catch(n){if(It(n)&&(n.customData.serverCode===401||n.customData.serverCode===404))await Dt(t.appConfig);else{const r=Object.assign(Object.assign({},e),{authToken:{requestStatus:0}});await q(t.appConfig,r)}throw n}}function Nt(t){return t!==void 0&&t.registrationStatus===2}function Ai(t){return t.requestStatus===2&&!Si(t)}function Si(t){const e=Date.now();return e<t.creationTime||t.creationTime+t.expiresIn<e+Zr}function Ci(t){const e={requestStatus:1,requestTime:Date.now()};return Object.assign(Object.assign({},t),{authToken:e})}function Ri(t){return t.requestStatus===1&&t.requestTime+gt<Date.now()}/**
|
||||
*/async function Se(t,e=!1){let n;const r=await Y(t.appConfig,a=>{if(!Mt(a))throw P.create("not-registered");const s=a.authToken;if(!e&&Ai(s))return a;if(s.requestStatus===1)return n=vi(t,e),a;{if(!navigator.onLine)throw P.create("app-offline");const o=Ci(a);return n=wi(t,o),o}});return n?await n:r.authToken}async function vi(t,e){let n=await je(t.appConfig);for(;n.authToken.requestStatus===1;)await At(100),n=await je(t.appConfig);const r=n.authToken;return r.requestStatus===0?Se(t,e):r}function je(t){return Y(t,e=>{if(!Mt(e))throw P.create("not-registered");const n=e.authToken;return Ri(n)?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e})}async function wi(t,e){try{const n=await Ei(t,e),r=Object.assign(Object.assign({},e),{authToken:n});return await q(t.appConfig,r),n}catch(n){if(It(n)&&(n.customData.serverCode===401||n.customData.serverCode===404))await Dt(t.appConfig);else{const r=Object.assign(Object.assign({},e),{authToken:{requestStatus:0}});await q(t.appConfig,r)}throw n}}function Mt(t){return t!==void 0&&t.registrationStatus===2}function Ai(t){return t.requestStatus===2&&!Si(t)}function Si(t){const e=Date.now();return e<t.creationTime||t.creationTime+t.expiresIn<e+Zr}function Ci(t){const e={requestStatus:1,requestTime:Date.now()};return Object.assign(Object.assign({},t),{authToken:e})}function Ri(t){return t.requestStatus===1&&t.requestTime+gt<Date.now()}/**
|
||||
* @license
|
||||
* Copyright 2019 Google LLC
|
||||
*
|
||||
|
@ -553,7 +553,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/async function Mi(t,e=!1){const n=t;return await Ni(n),(await Se(n,e)).token}async function Ni(t){const{registrationPromise:e}=await Ae(t);e&&await e}/**
|
||||
*/async function Ni(t,e=!1){const n=t;return await Mi(n),(await Se(n,e)).token}async function Mi(t){const{registrationPromise:e}=await Ae(t);e&&await e}/**
|
||||
* @license
|
||||
* Copyright 2019 Google LLC
|
||||
*
|
||||
|
@ -583,7 +583,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/const Ot="installations",Pi="installations-internal",Bi=t=>{const e=t.getProvider("app").getImmediate(),n=Oi(e),r=j(e,"heartbeat");return{app:e,appConfig:n,heartbeatServiceProvider:r,_delete:()=>Promise.resolve()}},ki=t=>{const e=t.getProvider("app").getImmediate(),n=j(e,Ot).getImmediate();return{getId:()=>Di(n),getToken:i=>Mi(n,i)}};function Fi(){R(new v(Ot,Bi,"PUBLIC")),R(new v(Pi,ki,"PRIVATE"))}Fi();E(mt,Te);E(mt,Te,"esm2017");/**
|
||||
*/const Ot="installations",Pi="installations-internal",Fi=t=>{const e=t.getProvider("app").getImmediate(),n=Oi(e),r=j(e,"heartbeat");return{app:e,appConfig:n,heartbeatServiceProvider:r,_delete:()=>Promise.resolve()}},Bi=t=>{const e=t.getProvider("app").getImmediate(),n=j(e,Ot).getImmediate();return{getId:()=>Di(n),getToken:i=>Ni(n,i)}};function ki(){R(new w(Ot,Fi,"PUBLIC")),R(new w(Pi,Bi,"PRIVATE"))}ki();E(mt,ve);E(mt,ve,"esm2017");/**
|
||||
* @license
|
||||
* Copyright 2019 Google LLC
|
||||
*
|
||||
|
@ -643,7 +643,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/function Vi(t){if(!t.startsWith(Ce)){const e=I.create("invalid-gtag-resource",{gtagURL:t});return m.warn(e.message),""}return t}function Pt(t){return Promise.all(t.map(e=>e.catch(n=>n)))}function Hi(t,e){let n;return window.trustedTypes&&(n=window.trustedTypes.createPolicy(t,e)),n}function zi(t,e){const n=Hi("firebase-js-sdk-policy",{createScriptURL:Vi}),r=document.createElement("script"),i=`${Ce}?l=${t}&id=${e}`;r.src=n?n==null?void 0:n.createScriptURL(i):i,r.async=!0,document.head.appendChild(r)}function qi(t){let e=[];return Array.isArray(window[t])?e=window[t]:window[t]=e,e}async function Wi(t,e,n,r,i,a){const s=r[i];try{if(s)await e[s];else{const c=(await Pt(n)).find(l=>l.measurementId===i);c&&await e[c.appId]}}catch(o){m.error(o)}t("config",i,a)}async function Gi(t,e,n,r,i){try{let a=[];if(i&&i.send_to){let s=i.send_to;Array.isArray(s)||(s=[s]);const o=await Pt(n);for(const c of s){const l=o.find(h=>h.measurementId===c),d=l&&e[l.appId];if(d)a.push(d);else{a=[];break}}}a.length===0&&(a=Object.values(e)),await Promise.all(a),t("event",r,i||{})}catch(a){m.error(a)}}function Ki(t,e,n,r){async function i(a,s,o){try{a==="event"?await Gi(t,e,n,s,o):a==="config"?await Wi(t,e,n,r,s,o):a==="consent"?t("consent","update",o):t("set",s)}catch(c){m.error(c)}}return i}function Xi(t,e,n,r,i){let a=function(...s){window[r].push(arguments)};return window[i]&&typeof window[i]=="function"&&(a=window[i]),window[i]=Ki(a,t,e,n),{gtagCore:a,wrappedGtag:window[i]}}function Yi(t){const e=window.document.getElementsByTagName("script");for(const n of Object.values(e))if(n.src&&n.src.includes(Ce)&&n.src.includes(t))return n;return null}/**
|
||||
*/function Vi(t){if(!t.startsWith(Ce)){const e=I.create("invalid-gtag-resource",{gtagURL:t});return m.warn(e.message),""}return t}function Pt(t){return Promise.all(t.map(e=>e.catch(n=>n)))}function Hi(t,e){let n;return window.trustedTypes&&(n=window.trustedTypes.createPolicy(t,e)),n}function zi(t,e){const n=Hi("firebase-js-sdk-policy",{createScriptURL:Vi}),r=document.createElement("script"),i=`${Ce}?l=${t}&id=${e}`;r.src=n?n==null?void 0:n.createScriptURL(i):i,r.async=!0,document.head.appendChild(r)}function qi(t){let e=[];return Array.isArray(window[t])?e=window[t]:window[t]=e,e}async function Wi(t,e,n,r,i,a){const s=r[i];try{if(s)await e[s];else{const c=(await Pt(n)).find(l=>l.measurementId===i);c&&await e[c.appId]}}catch(o){m.error(o)}t("config",i,a)}async function Gi(t,e,n,r,i){try{let a=[];if(i&&i.send_to){let s=i.send_to;Array.isArray(s)||(s=[s]);const o=await Pt(n);for(const c of s){const l=o.find(h=>h.measurementId===c),d=l&&e[l.appId];if(d)a.push(d);else{a=[];break}}}a.length===0&&(a=Object.values(e)),await Promise.all(a),t("event",r,i||{})}catch(a){m.error(a)}}function Ki(t,e,n,r){async function i(a,s,o){try{a==="event"?await Gi(t,e,n,s,o):a==="config"?await Wi(t,e,n,r,s,o):a==="consent"?t("consent","update",o):t("set",s)}catch(c){m.error(c)}}return i}function Yi(t,e,n,r,i){let a=function(...s){window[r].push(arguments)};return window[i]&&typeof window[i]=="function"&&(a=window[i]),window[i]=Ki(a,t,e,n),{gtagCore:a,wrappedGtag:window[i]}}function Xi(t){const e=window.document.getElementsByTagName("script");for(const n of Object.values(e))if(n.src&&n.src.includes(Ce)&&n.src.includes(t))return n;return null}/**
|
||||
* @license
|
||||
* Copyright 2020 Google LLC
|
||||
*
|
||||
|
@ -658,7 +658,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/const Ji=30,Qi=1e3;class Zi{constructor(e={},n=Qi){this.throttleMetadata=e,this.intervalMillis=n}getThrottleMetadata(e){return this.throttleMetadata[e]}setThrottleMetadata(e,n){this.throttleMetadata[e]=n}deleteThrottleMetadata(e){delete this.throttleMetadata[e]}}const Bt=new Zi;function ea(t){return new Headers({Accept:"application/json","x-goog-api-key":t})}async function ta(t){var e;const{appId:n,apiKey:r}=t,i={method:"GET",headers:ea(r)},a=xi.replace("{app-id}",n),s=await fetch(a,i);if(s.status!==200&&s.status!==304){let o="";try{const c=await s.json();!((e=c.error)===null||e===void 0)&&e.message&&(o=c.error.message)}catch{}throw I.create("config-fetch-failed",{httpStatus:s.status,responseMessage:o})}return s.json()}async function na(t,e=Bt,n){const{appId:r,apiKey:i,measurementId:a}=t.options;if(!r)throw I.create("no-app-id");if(!i){if(a)return{measurementId:a,appId:r};throw I.create("no-api-key")}const s=e.getThrottleMetadata(r)||{backoffCount:0,throttleEndTimeMillis:Date.now()},o=new aa;return setTimeout(async()=>{o.abort()},n!==void 0?n:Ui),kt({appId:r,apiKey:i,measurementId:a},s,o,e)}async function kt(t,{throttleEndTimeMillis:e,backoffCount:n},r,i=Bt){var a;const{appId:s,measurementId:o}=t;try{await ra(r,e)}catch(c){if(o)return m.warn(`Timed out fetching this Firebase app's measurement ID from the server. Falling back to the measurement ID ${o} provided in the "measurementId" field in the local Firebase config. [${c==null?void 0:c.message}]`),{appId:s,measurementId:o};throw c}try{const c=await ta(t);return i.deleteThrottleMetadata(s),c}catch(c){const l=c;if(!ia(l)){if(i.deleteThrottleMetadata(s),o)return m.warn(`Failed to fetch this Firebase app's measurement ID from the server. Falling back to the measurement ID ${o} provided in the "measurementId" field in the local Firebase config. [${l==null?void 0:l.message}]`),{appId:s,measurementId:o};throw c}const d=Number((a=l==null?void 0:l.customData)===null||a===void 0?void 0:a.httpStatus)===503?Oe(n,i.intervalMillis,Ji):Oe(n,i.intervalMillis),h={throttleEndTimeMillis:Date.now()+d,backoffCount:n+1};return i.setThrottleMetadata(s,h),m.debug(`Calling attemptFetch again in ${d} millis`),kt(t,h,r,i)}}function ra(t,e){return new Promise((n,r)=>{const i=Math.max(e-Date.now(),0),a=setTimeout(n,i);t.addEventListener(()=>{clearTimeout(a),r(I.create("fetch-throttle",{throttleEndTimeMillis:e}))})})}function ia(t){if(!(t instanceof k)||!t.customData)return!1;const e=Number(t.customData.httpStatus);return e===429||e===500||e===503||e===504}class aa{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach(e=>e())}}async function sa(t,e,n,r,i){if(i&&i.global){t("event",n,r);return}else{const a=await e,s=Object.assign(Object.assign({},r),{send_to:a});t("event",n,s)}}/**
|
||||
*/const Ji=30,Qi=1e3;class Zi{constructor(e={},n=Qi){this.throttleMetadata=e,this.intervalMillis=n}getThrottleMetadata(e){return this.throttleMetadata[e]}setThrottleMetadata(e,n){this.throttleMetadata[e]=n}deleteThrottleMetadata(e){delete this.throttleMetadata[e]}}const Ft=new Zi;function ea(t){return new Headers({Accept:"application/json","x-goog-api-key":t})}async function ta(t){var e;const{appId:n,apiKey:r}=t,i={method:"GET",headers:ea(r)},a=xi.replace("{app-id}",n),s=await fetch(a,i);if(s.status!==200&&s.status!==304){let o="";try{const c=await s.json();!((e=c.error)===null||e===void 0)&&e.message&&(o=c.error.message)}catch{}throw I.create("config-fetch-failed",{httpStatus:s.status,responseMessage:o})}return s.json()}async function na(t,e=Ft,n){const{appId:r,apiKey:i,measurementId:a}=t.options;if(!r)throw I.create("no-app-id");if(!i){if(a)return{measurementId:a,appId:r};throw I.create("no-api-key")}const s=e.getThrottleMetadata(r)||{backoffCount:0,throttleEndTimeMillis:Date.now()},o=new aa;return setTimeout(async()=>{o.abort()},n!==void 0?n:Ui),Bt({appId:r,apiKey:i,measurementId:a},s,o,e)}async function Bt(t,{throttleEndTimeMillis:e,backoffCount:n},r,i=Ft){var a;const{appId:s,measurementId:o}=t;try{await ra(r,e)}catch(c){if(o)return m.warn(`Timed out fetching this Firebase app's measurement ID from the server. Falling back to the measurement ID ${o} provided in the "measurementId" field in the local Firebase config. [${c==null?void 0:c.message}]`),{appId:s,measurementId:o};throw c}try{const c=await ta(t);return i.deleteThrottleMetadata(s),c}catch(c){const l=c;if(!ia(l)){if(i.deleteThrottleMetadata(s),o)return m.warn(`Failed to fetch this Firebase app's measurement ID from the server. Falling back to the measurement ID ${o} provided in the "measurementId" field in the local Firebase config. [${l==null?void 0:l.message}]`),{appId:s,measurementId:o};throw c}const d=Number((a=l==null?void 0:l.customData)===null||a===void 0?void 0:a.httpStatus)===503?Oe(n,i.intervalMillis,Ji):Oe(n,i.intervalMillis),h={throttleEndTimeMillis:Date.now()+d,backoffCount:n+1};return i.setThrottleMetadata(s,h),m.debug(`Calling attemptFetch again in ${d} millis`),Bt(t,h,r,i)}}function ra(t,e){return new Promise((n,r)=>{const i=Math.max(e-Date.now(),0),a=setTimeout(n,i);t.addEventListener(()=>{clearTimeout(a),r(I.create("fetch-throttle",{throttleEndTimeMillis:e}))})})}function ia(t){if(!(t instanceof B)||!t.customData)return!1;const e=Number(t.customData.httpStatus);return e===429||e===500||e===503||e===504}class aa{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach(e=>e())}}async function sa(t,e,n,r,i){if(i&&i.global){t("event",n,r);return}else{const a=await e,s=Object.assign(Object.assign({},r),{send_to:a});t("event",n,s)}}/**
|
||||
* @license
|
||||
* Copyright 2020 Google LLC
|
||||
*
|
||||
|
@ -673,7 +673,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/async function oa(){if(_e())try{await Ie()}catch(t){return m.warn(I.create("indexeddb-unavailable",{errorInfo:t==null?void 0:t.toString()}).message),!1}else return m.warn(I.create("indexeddb-unavailable",{errorInfo:"IndexedDB is not available in this environment."}).message),!1;return!0}async function ca(t,e,n,r,i,a,s){var o;const c=na(t);c.then(b=>{n[b.measurementId]=b.appId,t.options.measurementId&&b.measurementId!==t.options.measurementId&&m.warn(`The measurement ID in the local Firebase config (${t.options.measurementId}) does not match the measurement ID fetched from the server (${b.measurementId}). To ensure analytics events are always sent to the correct Analytics property, update the measurement ID field in the local config or remove it from the local config.`)}).catch(b=>m.error(b)),e.push(c);const l=oa().then(b=>{if(b)return r.getId()}),[d,h]=await Promise.all([c,l]);Yi(a)||zi(a,d.measurementId),i("js",new Date);const g=(o=s==null?void 0:s.config)!==null&&o!==void 0?o:{};return g[Li]="firebase",g.update=!0,h!=null&&(g[$i]=h),i("config",d.measurementId,g),d.measurementId}/**
|
||||
*/async function oa(){if(_e())try{await Ie()}catch(t){return m.warn(I.create("indexeddb-unavailable",{errorInfo:t==null?void 0:t.toString()}).message),!1}else return m.warn(I.create("indexeddb-unavailable",{errorInfo:"IndexedDB is not available in this environment."}).message),!1;return!0}async function ca(t,e,n,r,i,a,s){var o;const c=na(t);c.then(b=>{n[b.measurementId]=b.appId,t.options.measurementId&&b.measurementId!==t.options.measurementId&&m.warn(`The measurement ID in the local Firebase config (${t.options.measurementId}) does not match the measurement ID fetched from the server (${b.measurementId}). To ensure analytics events are always sent to the correct Analytics property, update the measurement ID field in the local config or remove it from the local config.`)}).catch(b=>m.error(b)),e.push(c);const l=oa().then(b=>{if(b)return r.getId()}),[d,h]=await Promise.all([c,l]);Xi(a)||zi(a,d.measurementId),i("js",new Date);const g=(o=s==null?void 0:s.config)!==null&&o!==void 0?o:{};return g[Li]="firebase",g.update=!0,h!=null&&(g[$i]=h),i("config",d.measurementId,g),d.measurementId}/**
|
||||
* @license
|
||||
* Copyright 2019 Google LLC
|
||||
*
|
||||
|
@ -688,7 +688,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/class la{constructor(e){this.app=e}_delete(){return delete L[this.app.options.appId],Promise.resolve()}}let L={},Ve=[];const He={};let re="dataLayer",ua="gtag",ze,Ft,qe=!1;function da(){const t=[];if(Un()&&t.push("This is a browser extension environment."),ot()||t.push("Cookies are not available."),t.length>0){const e=t.map((r,i)=>`(${i+1}) ${r}`).join(" "),n=I.create("invalid-analytics-context",{errorInfo:e});m.warn(n.message)}}function fa(t,e,n){da();const r=t.options.appId;if(!r)throw I.create("no-app-id");if(!t.options.apiKey)if(t.options.measurementId)m.warn(`The "apiKey" field is empty in the local Firebase config. This is needed to fetch the latest measurement ID for this Firebase app. Falling back to the measurement ID ${t.options.measurementId} provided in the "measurementId" field in the local Firebase config.`);else throw I.create("no-api-key");if(L[r]!=null)throw I.create("already-exists",{id:r});if(!qe){qi(re);const{wrappedGtag:a,gtagCore:s}=Xi(L,Ve,He,re,ua);Ft=a,ze=s,qe=!0}return L[r]=ca(t,Ve,He,e,ze,re,n),new la(t)}function ha(t=ft()){t=ye(t);const e=j(t,W);return e.isInitialized()?e.getImmediate():pa(t)}function pa(t,e={}){const n=j(t,W);if(n.isInitialized()){const i=n.getImmediate();if(H(e,n.getOptions()))return i;throw I.create("already-initialized")}return n.initialize({options:e})}function ma(t,e,n,r){t=ye(t),sa(Ft,L[t.app.options.appId],e,n,r).catch(i=>m.error(i))}const We="@firebase/analytics",Ge="0.9.5";function ga(){R(new v(W,(e,{options:n})=>{const r=e.getProvider("app").getImmediate(),i=e.getProvider("installations-internal").getImmediate();return fa(r,i,n)},"PUBLIC")),R(new v("analytics-internal",t,"PRIVATE")),E(We,Ge),E(We,Ge,"esm2017");function t(e){try{const n=e.getProvider(W).getImmediate();return{logEvent:(r,i,a)=>ma(n,r,i,a)}}catch(n){throw I.create("interop-component-reg-failed",{reason:n})}}}ga();const Ke="@firebase/performance",ge="0.6.4";/**
|
||||
*/class la{constructor(e){this.app=e}_delete(){return delete L[this.app.options.appId],Promise.resolve()}}let L={},Ve=[];const He={};let re="dataLayer",ua="gtag",ze,kt,qe=!1;function da(){const t=[];if(Un()&&t.push("This is a browser extension environment."),ot()||t.push("Cookies are not available."),t.length>0){const e=t.map((r,i)=>`(${i+1}) ${r}`).join(" "),n=I.create("invalid-analytics-context",{errorInfo:e});m.warn(n.message)}}function fa(t,e,n){da();const r=t.options.appId;if(!r)throw I.create("no-app-id");if(!t.options.apiKey)if(t.options.measurementId)m.warn(`The "apiKey" field is empty in the local Firebase config. This is needed to fetch the latest measurement ID for this Firebase app. Falling back to the measurement ID ${t.options.measurementId} provided in the "measurementId" field in the local Firebase config.`);else throw I.create("no-api-key");if(L[r]!=null)throw I.create("already-exists",{id:r});if(!qe){qi(re);const{wrappedGtag:a,gtagCore:s}=Yi(L,Ve,He,re,ua);kt=a,ze=s,qe=!0}return L[r]=ca(t,Ve,He,e,ze,re,n),new la(t)}function ha(t=ft()){t=ye(t);const e=j(t,W);return e.isInitialized()?e.getImmediate():pa(t)}function pa(t,e={}){const n=j(t,W);if(n.isInitialized()){const i=n.getImmediate();if(H(e,n.getOptions()))return i;throw I.create("already-initialized")}return n.initialize({options:e})}function ma(t,e,n,r){t=ye(t),sa(kt,L[t.app.options.appId],e,n,r).catch(i=>m.error(i))}const We="@firebase/analytics",Ge="0.9.5";function ga(){R(new w(W,(e,{options:n})=>{const r=e.getProvider("app").getImmediate(),i=e.getProvider("installations-internal").getImmediate();return fa(r,i,n)},"PUBLIC")),R(new w("analytics-internal",t,"PRIVATE")),E(We,Ge),E(We,Ge,"esm2017");function t(e){try{const n=e.getProvider(W).getImmediate();return{logEvent:(r,i,a)=>ma(n,r,i,a)}}catch(n){throw I.create("interop-component-reg-failed",{reason:n})}}}ga();const Ke="@firebase/performance",ge="0.6.4";/**
|
||||
* @license
|
||||
* Copyright 2020 Google LLC
|
||||
*
|
||||
|
@ -733,7 +733,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/const w=new Ee(zt);w.logLevel=u.INFO;/**
|
||||
*/const T=new Ee(zt);T.logLevel=u.INFO;/**
|
||||
* @license
|
||||
* Copyright 2020 Google LLC
|
||||
*
|
||||
|
@ -748,7 +748,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/let ie,qt;class f{constructor(e){if(this.window=e,!e)throw p.create("no window");this.performance=e.performance,this.PerformanceObserver=e.PerformanceObserver,this.windowLocation=e.location,this.navigator=e.navigator,this.document=e.document,this.navigator&&this.navigator.cookieEnabled&&(this.localStorage=e.localStorage),e.perfMetrics&&e.perfMetrics.onFirstInputDelay&&(this.onFirstInputDelay=e.perfMetrics.onFirstInputDelay)}getUrl(){return this.windowLocation.href.split("?")[0]}mark(e){!this.performance||!this.performance.mark||this.performance.mark(e)}measure(e,n,r){!this.performance||!this.performance.measure||this.performance.measure(e,n,r)}getEntriesByType(e){return!this.performance||!this.performance.getEntriesByType?[]:this.performance.getEntriesByType(e)}getEntriesByName(e){return!this.performance||!this.performance.getEntriesByName?[]:this.performance.getEntriesByName(e)}getTimeOrigin(){return this.performance&&(this.performance.timeOrigin||this.performance.timing.navigationStart)}requiredApisAvailable(){return!fetch||!Promise||!ot()?(w.info("Firebase Performance cannot start if browser does not support fetch and Promise or cookie is disabled."),!1):_e()?!0:(w.info("IndexedDB is not supported by current browswer"),!1)}setupObserver(e,n){if(!this.PerformanceObserver)return;new this.PerformanceObserver(i=>{for(const a of i.getEntries())n(a)}).observe({entryTypes:[e]})}static getInstance(){return ie===void 0&&(ie=new f(qt)),ie}}function Ea(t){qt=t}/**
|
||||
*/let ie,qt;class f{constructor(e){if(this.window=e,!e)throw p.create("no window");this.performance=e.performance,this.PerformanceObserver=e.PerformanceObserver,this.windowLocation=e.location,this.navigator=e.navigator,this.document=e.document,this.navigator&&this.navigator.cookieEnabled&&(this.localStorage=e.localStorage),e.perfMetrics&&e.perfMetrics.onFirstInputDelay&&(this.onFirstInputDelay=e.perfMetrics.onFirstInputDelay)}getUrl(){return this.windowLocation.href.split("?")[0]}mark(e){!this.performance||!this.performance.mark||this.performance.mark(e)}measure(e,n,r){!this.performance||!this.performance.measure||this.performance.measure(e,n,r)}getEntriesByType(e){return!this.performance||!this.performance.getEntriesByType?[]:this.performance.getEntriesByType(e)}getEntriesByName(e){return!this.performance||!this.performance.getEntriesByName?[]:this.performance.getEntriesByName(e)}getTimeOrigin(){return this.performance&&(this.performance.timeOrigin||this.performance.timing.navigationStart)}requiredApisAvailable(){return!fetch||!Promise||!ot()?(T.info("Firebase Performance cannot start if browser does not support fetch and Promise or cookie is disabled."),!1):_e()?!0:(T.info("IndexedDB is not supported by current browswer"),!1)}setupObserver(e,n){if(!this.PerformanceObserver)return;new this.PerformanceObserver(i=>{for(const a of i.getEntries())n(a)}).observe({entryTypes:[e]})}static getInstance(){return ie===void 0&&(ie=new f(qt)),ie}}function Ea(t){qt=t}/**
|
||||
* @license
|
||||
* Copyright 2020 Google LLC
|
||||
*
|
||||
|
@ -763,7 +763,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/let Wt;function wa(t){const e=t.getId();return e.then(n=>{Wt=n}),e}function Re(){return Wt}function Ta(t){const e=t.getToken();return e.then(n=>{}),e}/**
|
||||
*/let Wt;function Ta(t){const e=t.getId();return e.then(n=>{Wt=n}),e}function Re(){return Wt}function va(t){const e=t.getToken();return e.then(n=>{}),e}/**
|
||||
* @license
|
||||
* Copyright 2020 Google LLC
|
||||
*
|
||||
|
@ -778,7 +778,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/function Xe(t,e){const n=t.length-e.length;if(n<0||n>1)throw p.create("invalid String merger input");const r=[];for(let i=0;i<t.length;i++)r.push(t.charAt(i)),e.length>i&&r.push(e.charAt(i));return r.join("")}/**
|
||||
*/function Ye(t,e){const n=t.length-e.length;if(n<0||n>1)throw p.create("invalid String merger input");const r=[];for(let i=0;i<t.length;i++)r.push(t.charAt(i)),e.length>i&&r.push(e.charAt(i));return r.join("")}/**
|
||||
* @license
|
||||
* Copyright 2019 Google LLC
|
||||
*
|
||||
|
@ -793,7 +793,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/let ae;class _{constructor(){this.instrumentationEnabled=!0,this.dataCollectionEnabled=!0,this.loggingEnabled=!1,this.tracesSamplingRate=1,this.networkRequestsSamplingRate=1,this.logEndPointUrl="https://firebaselogging.googleapis.com/v0cc/log?format=json_proto",this.flTransportEndpointUrl=Xe("hts/frbslgigp.ogepscmv/ieo/eaylg","tp:/ieaeogn-agolai.o/1frlglgc/o"),this.transportKey=Xe("AzSC8r6ReiGqFMyfvgow","Iayx0u-XT3vksVM-pIV"),this.logSource=462,this.logTraceAfterSampling=!1,this.logNetworkAfterSampling=!1,this.configTimeToLive=12}getFlTransportFullUrl(){return this.flTransportEndpointUrl.concat("?key=",this.transportKey)}static getInstance(){return ae===void 0&&(ae=new _),ae}}/**
|
||||
*/let ae;class _{constructor(){this.instrumentationEnabled=!0,this.dataCollectionEnabled=!0,this.loggingEnabled=!1,this.tracesSamplingRate=1,this.networkRequestsSamplingRate=1,this.logEndPointUrl="https://firebaselogging.googleapis.com/v0cc/log?format=json_proto",this.flTransportEndpointUrl=Ye("hts/frbslgigp.ogepscmv/ieo/eaylg","tp:/ieaeogn-agolai.o/1frlglgc/o"),this.transportKey=Ye("AzSC8r6ReiGqFMyfvgow","Iayx0u-XT3vksVM-pIV"),this.logSource=462,this.logTraceAfterSampling=!1,this.logNetworkAfterSampling=!1,this.configTimeToLive=12}getFlTransportFullUrl(){return this.flTransportEndpointUrl.concat("?key=",this.transportKey)}static getInstance(){return ae===void 0&&(ae=new _),ae}}/**
|
||||
* @license
|
||||
* Copyright 2020 Google LLC
|
||||
*
|
||||
|
@ -808,7 +808,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/var F;(function(t){t[t.UNKNOWN=0]="UNKNOWN",t[t.VISIBLE=1]="VISIBLE",t[t.HIDDEN=2]="HIDDEN"})(F||(F={}));const va=["firebase_","google_","ga_"],Aa=new RegExp("^[a-zA-Z]\\w*$"),Sa=40,Ca=100;function Ra(){const t=f.getInstance().navigator;return t!=null&&t.serviceWorker?t.serviceWorker.controller?2:3:1}function Gt(){switch(f.getInstance().document.visibilityState){case"visible":return F.VISIBLE;case"hidden":return F.HIDDEN;default:return F.UNKNOWN}}function Da(){const e=f.getInstance().navigator.connection;switch(e&&e.effectiveType){case"slow-2g":return 1;case"2g":return 2;case"3g":return 3;case"4g":return 4;default:return 0}}function Ma(t){return t.length===0||t.length>Sa?!1:!va.some(n=>t.startsWith(n))&&!!t.match(Aa)}function Na(t){return t.length!==0&&t.length<=Ca}/**
|
||||
*/var k;(function(t){t[t.UNKNOWN=0]="UNKNOWN",t[t.VISIBLE=1]="VISIBLE",t[t.HIDDEN=2]="HIDDEN"})(k||(k={}));const wa=["firebase_","google_","ga_"],Aa=new RegExp("^[a-zA-Z]\\w*$"),Sa=40,Ca=100;function Ra(){const t=f.getInstance().navigator;return t!=null&&t.serviceWorker?t.serviceWorker.controller?2:3:1}function Gt(){switch(f.getInstance().document.visibilityState){case"visible":return k.VISIBLE;case"hidden":return k.HIDDEN;default:return k.UNKNOWN}}function Da(){const e=f.getInstance().navigator.connection;switch(e&&e.effectiveType){case"slow-2g":return 1;case"2g":return 2;case"3g":return 3;case"4g":return 4;default:return 0}}function Na(t){return t.length===0||t.length>Sa?!1:!wa.some(n=>t.startsWith(n))&&!!t.match(Aa)}function Ma(t){return t.length!==0&&t.length<=Ca}/**
|
||||
* @license
|
||||
* Copyright 2020 Google LLC
|
||||
*
|
||||
|
@ -838,7 +838,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/const Ba="0.0.1",y={loggingEnabled:!0},ka="FIREBASE_INSTALLATIONS_AUTH";function Fa(t,e){const n=$a();return n?(Ye(n),Promise.resolve()):xa(t,e).then(Ye).then(r=>La(r),()=>{})}function $a(){const t=f.getInstance().localStorage;if(!t)return;const e=t.getItem(Ht);if(!e||!ja(e))return;const n=t.getItem(Vt);if(n)try{return JSON.parse(n)}catch{return}}function La(t){const e=f.getInstance().localStorage;!t||!e||(e.setItem(Vt,JSON.stringify(t)),e.setItem(Ht,String(Date.now()+_.getInstance().configTimeToLive*60*60*1e3)))}const Ua="Could not fetch config, will use default configs";function xa(t,e){return Ta(t.installations).then(n=>{const r=Oa(t.app),i=Pa(t.app),a=`https://firebaseremoteconfig.googleapis.com/v1/projects/${r}/namespaces/fireperf:fetch?key=${i}`,s=new Request(a,{method:"POST",headers:{Authorization:`${ka} ${n}`},body:JSON.stringify({app_instance_id:e,app_instance_id_token:n,app_id:Kt(t.app),app_version:$t,sdk_version:Ba})});return fetch(s).then(o=>{if(o.ok)return o.json();throw p.create("RC response not ok")})}).catch(()=>{w.info(Ua)})}function Ye(t){if(!t)return t;const e=_.getInstance(),n=t.entries||{};return n.fpr_enabled!==void 0?e.loggingEnabled=String(n.fpr_enabled)==="true":e.loggingEnabled=y.loggingEnabled,n.fpr_log_source?e.logSource=Number(n.fpr_log_source):y.logSource&&(e.logSource=y.logSource),n.fpr_log_endpoint_url?e.logEndPointUrl=n.fpr_log_endpoint_url:y.logEndPointUrl&&(e.logEndPointUrl=y.logEndPointUrl),n.fpr_log_transport_key?e.transportKey=n.fpr_log_transport_key:y.transportKey&&(e.transportKey=y.transportKey),n.fpr_vc_network_request_sampling_rate!==void 0?e.networkRequestsSamplingRate=Number(n.fpr_vc_network_request_sampling_rate):y.networkRequestsSamplingRate!==void 0&&(e.networkRequestsSamplingRate=y.networkRequestsSamplingRate),n.fpr_vc_trace_sampling_rate!==void 0?e.tracesSamplingRate=Number(n.fpr_vc_trace_sampling_rate):y.tracesSamplingRate!==void 0&&(e.tracesSamplingRate=y.tracesSamplingRate),e.logTraceAfterSampling=Je(e.tracesSamplingRate),e.logNetworkAfterSampling=Je(e.networkRequestsSamplingRate),t}function ja(t){return Number(t)>Date.now()}function Je(t){return Math.random()<=t}/**
|
||||
*/const Fa="0.0.1",y={loggingEnabled:!0},Ba="FIREBASE_INSTALLATIONS_AUTH";function ka(t,e){const n=$a();return n?(Xe(n),Promise.resolve()):xa(t,e).then(Xe).then(r=>La(r),()=>{})}function $a(){const t=f.getInstance().localStorage;if(!t)return;const e=t.getItem(Ht);if(!e||!ja(e))return;const n=t.getItem(Vt);if(n)try{return JSON.parse(n)}catch{return}}function La(t){const e=f.getInstance().localStorage;!t||!e||(e.setItem(Vt,JSON.stringify(t)),e.setItem(Ht,String(Date.now()+_.getInstance().configTimeToLive*60*60*1e3)))}const Ua="Could not fetch config, will use default configs";function xa(t,e){return va(t.installations).then(n=>{const r=Oa(t.app),i=Pa(t.app),a=`https://firebaseremoteconfig.googleapis.com/v1/projects/${r}/namespaces/fireperf:fetch?key=${i}`,s=new Request(a,{method:"POST",headers:{Authorization:`${Ba} ${n}`},body:JSON.stringify({app_instance_id:e,app_instance_id_token:n,app_id:Kt(t.app),app_version:$t,sdk_version:Fa})});return fetch(s).then(o=>{if(o.ok)return o.json();throw p.create("RC response not ok")})}).catch(()=>{T.info(Ua)})}function Xe(t){if(!t)return t;const e=_.getInstance(),n=t.entries||{};return n.fpr_enabled!==void 0?e.loggingEnabled=String(n.fpr_enabled)==="true":e.loggingEnabled=y.loggingEnabled,n.fpr_log_source?e.logSource=Number(n.fpr_log_source):y.logSource&&(e.logSource=y.logSource),n.fpr_log_endpoint_url?e.logEndPointUrl=n.fpr_log_endpoint_url:y.logEndPointUrl&&(e.logEndPointUrl=y.logEndPointUrl),n.fpr_log_transport_key?e.transportKey=n.fpr_log_transport_key:y.transportKey&&(e.transportKey=y.transportKey),n.fpr_vc_network_request_sampling_rate!==void 0?e.networkRequestsSamplingRate=Number(n.fpr_vc_network_request_sampling_rate):y.networkRequestsSamplingRate!==void 0&&(e.networkRequestsSamplingRate=y.networkRequestsSamplingRate),n.fpr_vc_trace_sampling_rate!==void 0?e.tracesSamplingRate=Number(n.fpr_vc_trace_sampling_rate):y.tracesSamplingRate!==void 0&&(e.tracesSamplingRate=y.tracesSamplingRate),e.logTraceAfterSampling=Je(e.tracesSamplingRate),e.logNetworkAfterSampling=Je(e.networkRequestsSamplingRate),t}function ja(t){return Number(t)>Date.now()}function Je(t){return Math.random()<=t}/**
|
||||
* @license
|
||||
* Copyright 2020 Google LLC
|
||||
*
|
||||
|
@ -853,7 +853,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/let De=1,se;function Xt(t){return De=2,se=se||Ha(t),se}function Va(){return De===3}function Ha(t){return za().then(()=>wa(t.installations)).then(e=>Fa(t,e)).then(()=>Qe(),()=>Qe())}function za(){const t=f.getInstance().document;return new Promise(e=>{if(t&&t.readyState!=="complete"){const n=()=>{t.readyState==="complete"&&(t.removeEventListener("readystatechange",n),e())};t.addEventListener("readystatechange",n)}else e()})}function Qe(){De=3}/**
|
||||
*/let De=1,se;function Yt(t){return De=2,se=se||Ha(t),se}function Va(){return De===3}function Ha(t){return za().then(()=>Ta(t.installations)).then(e=>ka(t,e)).then(()=>Qe(),()=>Qe())}function za(){const t=f.getInstance().document;return new Promise(e=>{if(t&&t.readyState!=="complete"){const n=()=>{t.readyState==="complete"&&(t.removeEventListener("readystatechange",n),e())};t.addEventListener("readystatechange",n)}else e()})}function Qe(){De=3}/**
|
||||
* @license
|
||||
* Copyright 2020 Google LLC
|
||||
*
|
||||
|
@ -868,7 +868,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/const Me=10*1e3,qa=5.5*1e3,Yt=3,Wa=1e3;let G=Yt,C=[],Ze=!1;function Ga(){Ze||(Y(qa),Ze=!0)}function Y(t){setTimeout(()=>{if(G!==0){if(!C.length)return Y(Me);Ka()}},t)}function Ka(){const t=C.splice(0,Wa),e=t.map(r=>({source_extension_json_proto3:r.message,event_time_ms:String(r.eventTime)})),n={request_time_ms:String(Date.now()),client_info:{client_type:1,js_client_info:{}},log_source:_.getInstance().logSource,log_event:e};Xa(n,t).catch(()=>{C=[...t,...C],G--,w.info(`Tries left: ${G}.`),Y(Me)})}function Xa(t,e){return Ya(t).then(n=>(n.ok||w.info("Call to Firebase backend failed."),n.json())).then(n=>{const r=Number(n.nextRequestWaitMillis);let i=Me;isNaN(r)||(i=Math.max(r,i));const a=n.logResponseDetails;Array.isArray(a)&&a.length>0&&a[0].responseAction==="RETRY_REQUEST_LATER"&&(C=[...e,...C],w.info("Retry transport request later.")),G=Yt,Y(i)})}function Ya(t){const e=_.getInstance().getFlTransportFullUrl();return fetch(e,{method:"POST",body:JSON.stringify(t)})}function Ja(t){if(!t.eventTime||!t.message)throw p.create("invalid cc log");C=[...C,t]}function Qa(t){return(...e)=>{const n=t(...e);Ja({message:n,eventTime:Date.now()})}}/**
|
||||
*/const Ne=10*1e3,qa=5.5*1e3,Xt=3,Wa=1e3;let G=Xt,C=[],Ze=!1;function Ga(){Ze||(X(qa),Ze=!0)}function X(t){setTimeout(()=>{if(G!==0){if(!C.length)return X(Ne);Ka()}},t)}function Ka(){const t=C.splice(0,Wa),e=t.map(r=>({source_extension_json_proto3:r.message,event_time_ms:String(r.eventTime)})),n={request_time_ms:String(Date.now()),client_info:{client_type:1,js_client_info:{}},log_source:_.getInstance().logSource,log_event:e};Ya(n,t).catch(()=>{C=[...t,...C],G--,T.info(`Tries left: ${G}.`),X(Ne)})}function Ya(t,e){return Xa(t).then(n=>(n.ok||T.info("Call to Firebase backend failed."),n.json())).then(n=>{const r=Number(n.nextRequestWaitMillis);let i=Ne;isNaN(r)||(i=Math.max(r,i));const a=n.logResponseDetails;Array.isArray(a)&&a.length>0&&a[0].responseAction==="RETRY_REQUEST_LATER"&&(C=[...e,...C],T.info("Retry transport request later.")),G=Xt,X(i)})}function Xa(t){const e=_.getInstance().getFlTransportFullUrl();return fetch(e,{method:"POST",body:JSON.stringify(t)})}function Ja(t){if(!t.eventTime||!t.message)throw p.create("invalid cc log");C=[...C,t]}function Qa(t){return(...e)=>{const n=t(...e);Ja({message:n,eventTime:Date.now()})}}/**
|
||||
* @license
|
||||
* Copyright 2020 Google LLC
|
||||
*
|
||||
|
@ -883,7 +883,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/let oe;function Jt(t,e){oe||(oe=Qa(es)),oe(t,e)}function V(t){const e=_.getInstance();!e.instrumentationEnabled&&t.isAuto||!e.dataCollectionEnabled&&!t.isAuto||f.getInstance().requiredApisAvailable()&&(t.isAuto&&Gt()!==F.VISIBLE||(Va()?ce(t):Xt(t.performanceController).then(()=>ce(t),()=>ce(t))))}function ce(t){if(!Re())return;const e=_.getInstance();!e.loggingEnabled||!e.logTraceAfterSampling||setTimeout(()=>Jt(t,1),0)}function Za(t){const e=_.getInstance();if(!e.instrumentationEnabled)return;const n=t.url,r=e.logEndPointUrl.split("?")[0],i=e.flTransportEndpointUrl.split("?")[0];n===r||n===i||!e.loggingEnabled||!e.logNetworkAfterSampling||setTimeout(()=>Jt(t,0),0)}function es(t,e){return e===0?ts(t):ns(t)}function ts(t){const e={url:t.url,http_method:t.httpMethod||0,http_response_code:200,response_payload_bytes:t.responsePayloadBytes,client_start_time_us:t.startTimeUs,time_to_response_initiated_us:t.timeToResponseInitiatedUs,time_to_response_completed_us:t.timeToResponseCompletedUs},n={application_info:Qt(t.performanceController.app),network_request_metric:e};return JSON.stringify(n)}function ns(t){const e={name:t.name,is_auto:t.isAuto,client_start_time_us:t.startTimeUs,duration_us:t.durationUs};Object.keys(t.counters).length!==0&&(e.counters=t.counters);const n=t.getAttributes();Object.keys(n).length!==0&&(e.custom_attributes=n);const r={application_info:Qt(t.performanceController.app),trace_metric:e};return JSON.stringify(r)}function Qt(t){return{google_app_id:Kt(t),app_instance_id:Re(),web_app_info:{sdk_version:$t,page_url:f.getInstance().getUrl(),service_worker_status:Ra(),visibility_state:Gt(),effective_connection_type:Da()},application_process_state:0}}/**
|
||||
*/let oe;function Jt(t,e){oe||(oe=Qa(es)),oe(t,e)}function V(t){const e=_.getInstance();!e.instrumentationEnabled&&t.isAuto||!e.dataCollectionEnabled&&!t.isAuto||f.getInstance().requiredApisAvailable()&&(t.isAuto&&Gt()!==k.VISIBLE||(Va()?ce(t):Yt(t.performanceController).then(()=>ce(t),()=>ce(t))))}function ce(t){if(!Re())return;const e=_.getInstance();!e.loggingEnabled||!e.logTraceAfterSampling||setTimeout(()=>Jt(t,1),0)}function Za(t){const e=_.getInstance();if(!e.instrumentationEnabled)return;const n=t.url,r=e.logEndPointUrl.split("?")[0],i=e.flTransportEndpointUrl.split("?")[0];n===r||n===i||!e.loggingEnabled||!e.logNetworkAfterSampling||setTimeout(()=>Jt(t,0),0)}function es(t,e){return e===0?ts(t):ns(t)}function ts(t){const e={url:t.url,http_method:t.httpMethod||0,http_response_code:200,response_payload_bytes:t.responsePayloadBytes,client_start_time_us:t.startTimeUs,time_to_response_initiated_us:t.timeToResponseInitiatedUs,time_to_response_completed_us:t.timeToResponseCompletedUs},n={application_info:Qt(t.performanceController.app),network_request_metric:e};return JSON.stringify(n)}function ns(t){const e={name:t.name,is_auto:t.isAuto,client_start_time_us:t.startTimeUs,duration_us:t.durationUs};Object.keys(t.counters).length!==0&&(e.counters=t.counters);const n=t.getAttributes();Object.keys(n).length!==0&&(e.custom_attributes=n);const r={application_info:Qt(t.performanceController.app),trace_metric:e};return JSON.stringify(r)}function Qt(t){return{google_app_id:Kt(t),app_instance_id:Re(),web_app_info:{sdk_version:$t,page_url:f.getInstance().getUrl(),service_worker_status:Ra(),visibility_state:Gt(),effective_connection_type:Da()},application_process_state:0}}/**
|
||||
* @license
|
||||
* Copyright 2020 Google LLC
|
||||
*
|
||||
|
@ -898,7 +898,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/const rs=100,is="_",as=[Ut,xt,jt];function ss(t,e){return t.length===0||t.length>rs?!1:e&&e.startsWith(Lt)&&as.indexOf(t)>-1||!t.startsWith(is)}function os(t){const e=Math.floor(t);return e<t&&w.info(`Metric value should be an Integer, setting the value as : ${e}.`),e}/**
|
||||
*/const rs=100,is="_",as=[Ut,xt,jt];function ss(t,e){return t.length===0||t.length>rs?!1:e&&e.startsWith(Lt)&&as.indexOf(t)>-1||!t.startsWith(is)}function os(t){const e=Math.floor(t);return e<t&&T.info(`Metric value should be an Integer, setting the value as : ${e}.`),e}/**
|
||||
* @license
|
||||
* Copyright 2020 Google LLC
|
||||
*
|
||||
|
@ -913,7 +913,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/class N{constructor(e,n,r=!1,i){this.performanceController=e,this.name=n,this.isAuto=r,this.state=1,this.customAttributes={},this.counters={},this.api=f.getInstance(),this.randomId=Math.floor(Math.random()*1e6),this.isAuto||(this.traceStartMark=`${ba}-${this.randomId}-${this.name}`,this.traceStopMark=`${_a}-${this.randomId}-${this.name}`,this.traceMeasure=i||`${be}-${this.randomId}-${this.name}`,i&&this.calculateTraceMetrics())}start(){if(this.state!==1)throw p.create("trace started",{traceName:this.name});this.api.mark(this.traceStartMark),this.state=2}stop(){if(this.state!==2)throw p.create("trace stopped",{traceName:this.name});this.state=3,this.api.mark(this.traceStopMark),this.api.measure(this.traceMeasure,this.traceStartMark,this.traceStopMark),this.calculateTraceMetrics(),V(this)}record(e,n,r){if(e<=0)throw p.create("nonpositive trace startTime",{traceName:this.name});if(n<=0)throw p.create("nonpositive trace duration",{traceName:this.name});if(this.durationUs=Math.floor(n*1e3),this.startTimeUs=Math.floor(e*1e3),r&&r.attributes&&(this.customAttributes=Object.assign({},r.attributes)),r&&r.metrics)for(const i of Object.keys(r.metrics))isNaN(Number(r.metrics[i]))||(this.counters[i]=Math.floor(Number(r.metrics[i])));V(this)}incrementMetric(e,n=1){this.counters[e]===void 0?this.putMetric(e,n):this.putMetric(e,this.counters[e]+n)}putMetric(e,n){if(ss(e,this.name))this.counters[e]=os(n??0);else throw p.create("invalid custom metric name",{customMetricName:e})}getMetric(e){return this.counters[e]||0}putAttribute(e,n){const r=Ma(e),i=Na(n);if(r&&i){this.customAttributes[e]=n;return}if(!r)throw p.create("invalid attribute name",{attributeName:e});if(!i)throw p.create("invalid attribute value",{attributeValue:n})}getAttribute(e){return this.customAttributes[e]}removeAttribute(e){this.customAttributes[e]!==void 0&&delete this.customAttributes[e]}getAttributes(){return Object.assign({},this.customAttributes)}setStartTime(e){this.startTimeUs=e}setDuration(e){this.durationUs=e}calculateTraceMetrics(){const e=this.api.getEntriesByName(this.traceMeasure),n=e&&e[0];n&&(this.durationUs=Math.floor(n.duration*1e3),this.startTimeUs=Math.floor((n.startTime+this.api.getTimeOrigin())*1e3))}static createOobTrace(e,n,r,i){const a=f.getInstance().getUrl();if(!a)return;const s=new N(e,Lt+a,!0),o=Math.floor(f.getInstance().getTimeOrigin()*1e3);s.setStartTime(o),n&&n[0]&&(s.setDuration(Math.floor(n[0].duration*1e3)),s.putMetric("domInteractive",Math.floor(n[0].domInteractive*1e3)),s.putMetric("domContentLoadedEventEnd",Math.floor(n[0].domContentLoadedEventEnd*1e3)),s.putMetric("loadEventEnd",Math.floor(n[0].loadEventEnd*1e3)));const c="first-paint",l="first-contentful-paint";if(r){const d=r.find(g=>g.name===c);d&&d.startTime&&s.putMetric(Ut,Math.floor(d.startTime*1e3));const h=r.find(g=>g.name===l);h&&h.startTime&&s.putMetric(xt,Math.floor(h.startTime*1e3)),i&&s.putMetric(jt,Math.floor(i*1e3))}V(s)}static createUserTimingTrace(e,n){const r=new N(e,n,!1,n);V(r)}}/**
|
||||
*/class M{constructor(e,n,r=!1,i){this.performanceController=e,this.name=n,this.isAuto=r,this.state=1,this.customAttributes={},this.counters={},this.api=f.getInstance(),this.randomId=Math.floor(Math.random()*1e6),this.isAuto||(this.traceStartMark=`${ba}-${this.randomId}-${this.name}`,this.traceStopMark=`${_a}-${this.randomId}-${this.name}`,this.traceMeasure=i||`${be}-${this.randomId}-${this.name}`,i&&this.calculateTraceMetrics())}start(){if(this.state!==1)throw p.create("trace started",{traceName:this.name});this.api.mark(this.traceStartMark),this.state=2}stop(){if(this.state!==2)throw p.create("trace stopped",{traceName:this.name});this.state=3,this.api.mark(this.traceStopMark),this.api.measure(this.traceMeasure,this.traceStartMark,this.traceStopMark),this.calculateTraceMetrics(),V(this)}record(e,n,r){if(e<=0)throw p.create("nonpositive trace startTime",{traceName:this.name});if(n<=0)throw p.create("nonpositive trace duration",{traceName:this.name});if(this.durationUs=Math.floor(n*1e3),this.startTimeUs=Math.floor(e*1e3),r&&r.attributes&&(this.customAttributes=Object.assign({},r.attributes)),r&&r.metrics)for(const i of Object.keys(r.metrics))isNaN(Number(r.metrics[i]))||(this.counters[i]=Math.floor(Number(r.metrics[i])));V(this)}incrementMetric(e,n=1){this.counters[e]===void 0?this.putMetric(e,n):this.putMetric(e,this.counters[e]+n)}putMetric(e,n){if(ss(e,this.name))this.counters[e]=os(n??0);else throw p.create("invalid custom metric name",{customMetricName:e})}getMetric(e){return this.counters[e]||0}putAttribute(e,n){const r=Na(e),i=Ma(n);if(r&&i){this.customAttributes[e]=n;return}if(!r)throw p.create("invalid attribute name",{attributeName:e});if(!i)throw p.create("invalid attribute value",{attributeValue:n})}getAttribute(e){return this.customAttributes[e]}removeAttribute(e){this.customAttributes[e]!==void 0&&delete this.customAttributes[e]}getAttributes(){return Object.assign({},this.customAttributes)}setStartTime(e){this.startTimeUs=e}setDuration(e){this.durationUs=e}calculateTraceMetrics(){const e=this.api.getEntriesByName(this.traceMeasure),n=e&&e[0];n&&(this.durationUs=Math.floor(n.duration*1e3),this.startTimeUs=Math.floor((n.startTime+this.api.getTimeOrigin())*1e3))}static createOobTrace(e,n,r,i){const a=f.getInstance().getUrl();if(!a)return;const s=new M(e,Lt+a,!0),o=Math.floor(f.getInstance().getTimeOrigin()*1e3);s.setStartTime(o),n&&n[0]&&(s.setDuration(Math.floor(n[0].duration*1e3)),s.putMetric("domInteractive",Math.floor(n[0].domInteractive*1e3)),s.putMetric("domContentLoadedEventEnd",Math.floor(n[0].domContentLoadedEventEnd*1e3)),s.putMetric("loadEventEnd",Math.floor(n[0].loadEventEnd*1e3)));const c="first-paint",l="first-contentful-paint";if(r){const d=r.find(g=>g.name===c);d&&d.startTime&&s.putMetric(Ut,Math.floor(d.startTime*1e3));const h=r.find(g=>g.name===l);h&&h.startTime&&s.putMetric(xt,Math.floor(h.startTime*1e3)),i&&s.putMetric(jt,Math.floor(i*1e3))}V(s)}static createUserTimingTrace(e,n){const r=new M(e,n,!1,n);V(r)}}/**
|
||||
* @license
|
||||
* Copyright 2020 Google LLC
|
||||
*
|
||||
|
@ -943,7 +943,7 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/const cs=5e3;function tt(t){Re()&&(setTimeout(()=>us(t),0),setTimeout(()=>ls(t),0),setTimeout(()=>ds(t),0))}function ls(t){const e=f.getInstance(),n=e.getEntriesByType("resource");for(const r of n)et(t,r);e.setupObserver("resource",r=>et(t,r))}function us(t){const e=f.getInstance(),n=e.getEntriesByType("navigation"),r=e.getEntriesByType("paint");if(e.onFirstInputDelay){let i=setTimeout(()=>{N.createOobTrace(t,n,r),i=void 0},cs);e.onFirstInputDelay(a=>{i&&(clearTimeout(i),N.createOobTrace(t,n,r,a))})}else N.createOobTrace(t,n,r)}function ds(t){const e=f.getInstance(),n=e.getEntriesByType("measure");for(const r of n)nt(t,r);e.setupObserver("measure",r=>nt(t,r))}function nt(t,e){const n=e.name;n.substring(0,be.length)!==be&&N.createUserTimingTrace(t,n)}/**
|
||||
*/const cs=5e3;function tt(t){Re()&&(setTimeout(()=>us(t),0),setTimeout(()=>ls(t),0),setTimeout(()=>ds(t),0))}function ls(t){const e=f.getInstance(),n=e.getEntriesByType("resource");for(const r of n)et(t,r);e.setupObserver("resource",r=>et(t,r))}function us(t){const e=f.getInstance(),n=e.getEntriesByType("navigation"),r=e.getEntriesByType("paint");if(e.onFirstInputDelay){let i=setTimeout(()=>{M.createOobTrace(t,n,r),i=void 0},cs);e.onFirstInputDelay(a=>{i&&(clearTimeout(i),M.createOobTrace(t,n,r,a))})}else M.createOobTrace(t,n,r)}function ds(t){const e=f.getInstance(),n=e.getEntriesByType("measure");for(const r of n)nt(t,r);e.setupObserver("measure",r=>nt(t,r))}function nt(t,e){const n=e.name;n.substring(0,be.length)!==be&&M.createUserTimingTrace(t,n)}/**
|
||||
* @license
|
||||
* Copyright 2020 Google LLC
|
||||
*
|
||||
|
@ -958,4 +958,4 @@ import{_ as tn,o as nn,b as rn,w as an,l as sn,p as on,m as cn,k as T,W as le,a5
|
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/class fs{constructor(e,n){this.app=e,this.installations=n,this.initialized=!1}_init(e){this.initialized||((e==null?void 0:e.dataCollectionEnabled)!==void 0&&(this.dataCollectionEnabled=e.dataCollectionEnabled),(e==null?void 0:e.instrumentationEnabled)!==void 0&&(this.instrumentationEnabled=e.instrumentationEnabled),f.getInstance().requiredApisAvailable()?Ie().then(n=>{n&&(Ga(),Xt(this).then(()=>tt(this),()=>tt(this)),this.initialized=!0)}).catch(n=>{w.info(`Environment doesn't support IndexedDB: ${n}`)}):w.info('Firebase Performance cannot start if the browser does not support "Fetch" and "Promise", or cookies are disabled.'))}set instrumentationEnabled(e){_.getInstance().instrumentationEnabled=e}get instrumentationEnabled(){return _.getInstance().instrumentationEnabled}set dataCollectionEnabled(e){_.getInstance().dataCollectionEnabled=e}get dataCollectionEnabled(){return _.getInstance().dataCollectionEnabled}}const hs="[DEFAULT]";function ps(t=ft()){return t=ye(t),j(t,"performance").getImmediate()}const ms=(t,{options:e})=>{const n=t.getProvider("app").getImmediate(),r=t.getProvider("installations-internal").getImmediate();if(n.name!==hs)throw p.create("FB not default");if(typeof window>"u")throw p.create("no window");Ea(window);const i=new fs(n,r);return i._init(e),i};function gs(){R(new v("performance",ms,"PUBLIC")),E(Ke,ge),E(Ke,ge,"esm2017")}gs();const bs=t=>(on("data-v-980a75a4"),t=t(),cn(),t),_s=bs(()=>T("div",{"data-v-98ddab3d":"","data-v-8f7cd5e4":"",class:"VPContent",id:"VPContent"},[T("div",{"data-v-6c4a3ffe":"","data-v-98ddab3d":"",class:"NotFound"},[T("img",{src:"https://rwapi-code.netlify.app/images/logo.png",alt:"",class:"notfound-img"}),T("p",{"data-v-6c4a3ffe":"",class:"code"},"404"),T("h1",{"data-v-6c4a3ffe":"",class:"title"}," 你干嘛~,这里什么都没有! "),T("div",{"data-v-6c4a3ffe":"",class:"divider"}),T("blockquote",{"data-v-6c4a3ffe":"",class:"quote"}," 你寻找的页面可能不存在或被迁移…… "),T("div",{"data-v-6c4a3ffe":"",class:"action"},[T("a",{"data-v-6c4a3ffe":"",class:"link",href:"/","aria-label":"go to home"}," 返回主页 ")])])],-1)),Is={__name:"NotFound",setup(t){const{Layout:e}=rt;return(n,r)=>(nn(),rn(sn(e),null,{"not-found":an(()=>[_s]),_:1}))}},ys=tn(Is,[["__scopeId","data-v-980a75a4"]]),Es=()=>{const e=dt({apiKey:"AIzaSyANVvapu0ihi1cM8ZzuXTkwjx9lM_J1RyQ",authDomain:"rw-api-code-d0779.firebaseapp.com",projectId:"rw-api-code-d0779",storageBucket:"rw-api-code-d0779.appspot.com",messagingSenderId:"363611843335",appId:"1:363611843335:web:f15aef7ab427f52b4033a2",measurementId:"G-XJH5TKP5VL"});return ha(e),ps(e),"Firebase initialized successfully"};(async function(){try{const t=await Es();console.log(t)}catch(t){console.error(t)}})();function ws(t){return new Promise(e=>setTimeout(e,t))}async function Ts(){try{await navigator.permissions.query({name:"clipboard-write"})}catch(t){console.error(t)}}async function vs(){try{await ws(1e3);const t=document.getElementsByClassName("copy");for(let e=0;e<t.length;e++){const n=t[e];n.addEventListener("touchend",async()=>{await Ts();const a=[...n.parentNode.querySelector("code").querySelectorAll("span")],s=[...new Set(a.map(o=>o.textContent))].join("");try{await navigator.clipboard.writeText(s)}catch{const c=document.createElement("textarea");c.value=s,document.body.appendChild(c),c.select(),document.execCommand("copy"),document.body.removeChild(c)}})}}catch(t){console.error(t)}}vs();const As={...rt,Layout:ys};function Zt(t){if(t.extends){const e=Zt(t.extends);return{...e,...t,async enhanceApp(n){e.enhanceApp&&await e.enhanceApp(n),t.enhanceApp&&await t.enhanceApp(n)}}}return t}const $=Zt(As),Ss=yn({name:"VitePressApp",setup(){const{site:t}=En();return wn(()=>{Tn(()=>{document.documentElement.lang=t.value.lang,document.documentElement.dir=t.value.dir})}),vn(),An(),Sn(),$.setup&&$.setup(),()=>Cn($.Layout)}});async function Cs(){const t=Ds(),e=Rs();e.provide(un,t);const n=dn(t.route);return e.provide(fn,n),e.component("Content",hn),e.component("ClientOnly",pn),Object.defineProperties(e.config.globalProperties,{$frontmatter:{get(){return n.frontmatter.value}},$params:{get(){return n.page.value.params}}}),$.enhanceApp&&await $.enhanceApp({app:e,router:t,siteData:mn}),{app:e,router:t,data:n}}function Rs(){return gn(Ss)}function Ds(){let t=le,e;return bn(n=>{let r=_n(n);return r?(t&&(e=r),(t||e===r)&&(r=r.replace(/\.js$/,".lean.js")),le&&(t=!1),In(()=>import(r),[])):null},$.NotFound)}le&&Cs().then(({app:t,router:e,data:n})=>{e.go().then(()=>{ln(e.route,n.site),t.mount("#app")})});export{Cs as createApp};
|
||||
*/class fs{constructor(e,n){this.app=e,this.installations=n,this.initialized=!1}_init(e){this.initialized||((e==null?void 0:e.dataCollectionEnabled)!==void 0&&(this.dataCollectionEnabled=e.dataCollectionEnabled),(e==null?void 0:e.instrumentationEnabled)!==void 0&&(this.instrumentationEnabled=e.instrumentationEnabled),f.getInstance().requiredApisAvailable()?Ie().then(n=>{n&&(Ga(),Yt(this).then(()=>tt(this),()=>tt(this)),this.initialized=!0)}).catch(n=>{T.info(`Environment doesn't support IndexedDB: ${n}`)}):T.info('Firebase Performance cannot start if the browser does not support "Fetch" and "Promise", or cookies are disabled.'))}set instrumentationEnabled(e){_.getInstance().instrumentationEnabled=e}get instrumentationEnabled(){return _.getInstance().instrumentationEnabled}set dataCollectionEnabled(e){_.getInstance().dataCollectionEnabled=e}get dataCollectionEnabled(){return _.getInstance().dataCollectionEnabled}}const hs="[DEFAULT]";function ps(t=ft()){return t=ye(t),j(t,"performance").getImmediate()}const ms=(t,{options:e})=>{const n=t.getProvider("app").getImmediate(),r=t.getProvider("installations-internal").getImmediate();if(n.name!==hs)throw p.create("FB not default");if(typeof window>"u")throw p.create("no window");Ea(window);const i=new fs(n,r);return i._init(e),i};function gs(){R(new w("performance",ms,"PUBLIC")),E(Ke,ge),E(Ke,ge,"esm2017")}gs();const bs=t=>(on("data-v-980a75a4"),t=t(),cn(),t),_s=bs(()=>v("div",{"data-v-98ddab3d":"","data-v-8f7cd5e4":"",class:"VPContent",id:"VPContent"},[v("div",{"data-v-6c4a3ffe":"","data-v-98ddab3d":"",class:"NotFound"},[v("img",{src:"https://rwapi-code.netlify.app/images/logo.png",alt:"",class:"notfound-img"}),v("p",{"data-v-6c4a3ffe":"",class:"code"},"404"),v("h1",{"data-v-6c4a3ffe":"",class:"title"}," 你干嘛~,这里什么都没有! "),v("div",{"data-v-6c4a3ffe":"",class:"divider"}),v("blockquote",{"data-v-6c4a3ffe":"",class:"quote"}," 你寻找的页面可能不存在或被迁移…… "),v("div",{"data-v-6c4a3ffe":"",class:"action"},[v("a",{"data-v-6c4a3ffe":"",class:"link",href:"/","aria-label":"go to home"}," 返回主页 ")])])],-1)),Is={__name:"NotFound",setup(t){const{Layout:e}=rt;return(n,r)=>(nn(),rn(sn(e),null,{"not-found":an(()=>[_s]),_:1}))}},ys=tn(Is,[["__scopeId","data-v-980a75a4"]]),Es=()=>{const e=dt({apiKey:"AIzaSyANVvapu0ihi1cM8ZzuXTkwjx9lM_J1RyQ",authDomain:"rw-api-code-d0779.firebaseapp.com",projectId:"rw-api-code-d0779",storageBucket:"rw-api-code-d0779.appspot.com",messagingSenderId:"363611843335",appId:"1:363611843335:web:f15aef7ab427f52b4033a2",measurementId:"G-XJH5TKP5VL"});return ha(e),ps(e),"Firebase initialized successfully"};(async function(){try{const t=await Es();console.log(t)}catch(t){console.error(t)}})();function Ts(t){return new Promise(e=>setTimeout(e,t))}async function vs(){try{await navigator.permissions.query({name:"clipboard-write"})}catch(t){console.error(t)}}async function ws(){try{await Ts(1e3);const t=document.getElementsByClassName("copy");for(let e=0;e<t.length;e++){const n=t[e];n.addEventListener("touchend",async()=>{await vs();const a=[...n.parentNode.querySelector("code").querySelectorAll("span")],s=[...new Set(a.map(o=>o.textContent))].join("");try{await navigator.clipboard.writeText(s)}catch{const c=document.createElement("textarea");c.value=s,document.body.appendChild(c),c.select(),document.execCommand("copy"),document.body.removeChild(c)}})}}catch(t){console.error(t)}}ws();const As={...rt,Layout:ys};function Zt(t){if(t.extends){const e=Zt(t.extends);return{...e,...t,async enhanceApp(n){e.enhanceApp&&await e.enhanceApp(n),t.enhanceApp&&await t.enhanceApp(n)}}}return t}const $=Zt(As),Ss=ln({name:"VitePressApp",setup(){const{site:t}=dn();return fn(()=>{hn(()=>{document.documentElement.lang=t.value.lang,document.documentElement.dir=t.value.dir})}),pn(),mn(),gn(),$.setup&&$.setup(),()=>bn($.Layout)}});async function Cs(){const t=Ds(),e=Rs();e.provide(_n,t);const n=In(t.route);return e.provide(yn,n),e.component("Content",En),e.component("ClientOnly",Tn),Object.defineProperties(e.config.globalProperties,{$frontmatter:{get(){return n.frontmatter.value}},$params:{get(){return n.page.value.params}}}),$.enhanceApp&&await $.enhanceApp({app:e,router:t,siteData:vn}),{app:e,router:t,data:n}}function Rs(){return wn(Ss)}function Ds(){let t=le,e;return An(n=>{let r=Sn(n);return r?(t&&(e=r),(t||e===r)&&(r=r.replace(/\.js$/,".lean.js")),le&&(t=!1),Cn(()=>import(r),[])):null},$.NotFound)}le&&Cs().then(({app:t,router:e,data:n})=>{e.go().then(()=>{un(e.route,n.site),t.mount("#app")})});export{Cs as createApp};
|
1
assets/chunks/@localSearchIndexroot.3549d91b.js
Normal file
1
assets/chunks/@localSearchIndexroot.3549d91b.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
assets/chunks/framework.c741a37c.js
Normal file
2
assets/chunks/framework.c741a37c.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
7
assets/chunks/theme.68f9eca1.js
Normal file
7
assets/chunks/theme.68f9eca1.js
Normal file
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
|||
import{_ as e,o as t,c as i}from"./chunks/framework.636577e8.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","action":null,"hero":{"name":"铁锈战争-API-Code","text":"轻松编码,轻松学习","tagline":"学习Mod,制作Mod,创新Mod","image":{"src":"https://rwapi-code.netlify.app/images/logo.png","alt":"RW-API-Code"},"actions":[{"theme":"alt","text":"编写指南","link":"/api-dev"},{"theme":"brand","text":"Github","link":"https://github.com/LingASDJ/RW-API-Code"}]},"features":[{"title":"单位代码表","details":"学习最基础的铁锈单位API-Code","link":"/src/Unit/core","linkText":"让我们立刻开始吧!"},{"title":"地图代码表","details":"学习铁锈的地图TMX代码表","linkText":"让我们立刻开始吧![开发中]"},{"title":"调试代码表","details":"学习铁锈的高级调试代码表(仅Android)","linkText":"让我们立刻开始吧![开发中]"},{"title":"RW-Engine指南","details":"学习铁锈Mod RW-Engine的使用(仅Android)","link":"/src/RW-Engine/quick-start","linkText":"让我们立刻开始吧![开发中]"}]},"headers":[],"relativePath":"index.md","filePath":"index.md"}'),n={name:"index.md"};function a(o,d,l,r,s,c){return t(),i("div")}const x=e(n,[["render",a]]);export{m as __pageData,x as default};
|
||||
import{_ as t,v as e,b as i}from"./chunks/framework.c741a37c.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","action":null,"hero":{"name":"铁锈战争-API-Code","text":"轻松编码,轻松学习","tagline":"学习Mod,制作Mod,创新Mod","image":{"src":"https://rwapi-code.netlify.app/images/logo.png","alt":"RW-API-Code"},"actions":[{"theme":"alt","text":"编写指南","link":"/api-dev"},{"theme":"brand","text":"Github","link":"https://github.com/LingASDJ/RW-API-Code"}]},"features":[{"title":"单位代码表","details":"学习最基础的铁锈单位API-Code","link":"/src/Unit/core","linkText":"让我们立刻开始吧!"},{"title":"地图代码表","details":"学习铁锈的地图TMX代码表","linkText":"让我们立刻开始吧![开发中]"},{"title":"调试代码表","details":"学习铁锈的高级调试代码表(仅Android)","linkText":"让我们立刻开始吧![开发中]"},{"title":"RW-Engine指南","details":"学习铁锈Mod RW-Engine的使用(仅Android)","link":"/src/RW-Engine/quick-start","linkText":"让我们立刻开始吧![开发中]"}]},"headers":[],"relativePath":"index.md","filePath":"index.md"}'),n={name:"index.md"};function a(d,o,s,l,r,c){return e(),i("div")}const x=t(n,[["render",a]]);export{m as __pageData,x as default};
|
|
@ -1 +1 @@
|
|||
import{_ as e,o as t,c as i}from"./chunks/framework.636577e8.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","action":null,"hero":{"name":"铁锈战争-API-Code","text":"轻松编码,轻松学习","tagline":"学习Mod,制作Mod,创新Mod","image":{"src":"https://rwapi-code.netlify.app/images/logo.png","alt":"RW-API-Code"},"actions":[{"theme":"alt","text":"编写指南","link":"/api-dev"},{"theme":"brand","text":"Github","link":"https://github.com/LingASDJ/RW-API-Code"}]},"features":[{"title":"单位代码表","details":"学习最基础的铁锈单位API-Code","link":"/src/Unit/core","linkText":"让我们立刻开始吧!"},{"title":"地图代码表","details":"学习铁锈的地图TMX代码表","linkText":"让我们立刻开始吧![开发中]"},{"title":"调试代码表","details":"学习铁锈的高级调试代码表(仅Android)","linkText":"让我们立刻开始吧![开发中]"},{"title":"RW-Engine指南","details":"学习铁锈Mod RW-Engine的使用(仅Android)","link":"/src/RW-Engine/quick-start","linkText":"让我们立刻开始吧![开发中]"}]},"headers":[],"relativePath":"index.md","filePath":"index.md"}'),n={name:"index.md"};function a(o,d,l,r,s,c){return t(),i("div")}const x=e(n,[["render",a]]);export{m as __pageData,x as default};
|
||||
import{_ as t,v as e,b as i}from"./chunks/framework.c741a37c.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","action":null,"hero":{"name":"铁锈战争-API-Code","text":"轻松编码,轻松学习","tagline":"学习Mod,制作Mod,创新Mod","image":{"src":"https://rwapi-code.netlify.app/images/logo.png","alt":"RW-API-Code"},"actions":[{"theme":"alt","text":"编写指南","link":"/api-dev"},{"theme":"brand","text":"Github","link":"https://github.com/LingASDJ/RW-API-Code"}]},"features":[{"title":"单位代码表","details":"学习最基础的铁锈单位API-Code","link":"/src/Unit/core","linkText":"让我们立刻开始吧!"},{"title":"地图代码表","details":"学习铁锈的地图TMX代码表","linkText":"让我们立刻开始吧![开发中]"},{"title":"调试代码表","details":"学习铁锈的高级调试代码表(仅Android)","linkText":"让我们立刻开始吧![开发中]"},{"title":"RW-Engine指南","details":"学习铁锈Mod RW-Engine的使用(仅Android)","link":"/src/RW-Engine/quick-start","linkText":"让我们立刻开始吧![开发中]"}]},"headers":[],"relativePath":"index.md","filePath":"index.md"}'),n={name:"index.md"};function a(d,o,s,l,r,c){return e(),i("div")}const x=t(n,[["render",a]]);export{m as __pageData,x as default};
|
1
assets/src_Debug_test.md.03f04e38.js
Normal file
1
assets/src_Debug_test.md.03f04e38.js
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as t,v as s,b as e,F as a}from"./chunks/framework.c741a37c.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"src/Debug/test.md","filePath":"src/Debug/test.md"}'),r={name:"src/Debug/test.md"},n=a("p",null,"fasa",-1),o=[n];function c(_,d,i,p,f,u){return s(),e("div",null,o)}const h=t(r,[["render",c]]);export{m as __pageData,h as default};
|
1
assets/src_Debug_test.md.03f04e38.lean.js
Normal file
1
assets/src_Debug_test.md.03f04e38.lean.js
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as t,v as s,b as e,F as a}from"./chunks/framework.c741a37c.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"src/Debug/test.md","filePath":"src/Debug/test.md"}'),r={name:"src/Debug/test.md"},n=a("p",null,"fasa",-1),o=[n];function c(_,d,i,p,f,u){return s(),e("div",null,o)}const h=t(r,[["render",c]]);export{m as __pageData,h as default};
|
|
@ -1 +0,0 @@
|
|||
import{_ as e,o as t,c as s,k as a}from"./chunks/framework.636577e8.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"src/Debug/test.md","filePath":"src/Debug/test.md"}'),o={name:"src/Debug/test.md"},r=a("p",null,"fasa",-1),c=[r];function n(_,d,i,p,l,f){return t(),s("div",null,c)}const h=e(o,[["render",n]]);export{u as __pageData,h as default};
|
|
@ -1 +0,0 @@
|
|||
import{_ as e,o as t,c as s,k as a}from"./chunks/framework.636577e8.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"src/Debug/test.md","filePath":"src/Debug/test.md"}'),o={name:"src/Debug/test.md"},r=a("p",null,"fasa",-1),c=[r];function n(_,d,i,p,l,f){return t(),s("div",null,c)}const h=e(o,[["render",n]]);export{u as __pageData,h as default};
|
1
assets/src_Map_tsada.md.5947f45b.js
Normal file
1
assets/src_Map_tsada.md.5947f45b.js
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as a,v as t,b as s}from"./chunks/framework.c741a37c.js";const f=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"src/Map/tsada.md","filePath":"src/Map/tsada.md"}'),e={name:"src/Map/tsada.md"};function r(c,d,n,o,p,_){return t(),s("div")}const m=a(e,[["render",r]]);export{f as __pageData,m as default};
|
1
assets/src_Map_tsada.md.5947f45b.lean.js
Normal file
1
assets/src_Map_tsada.md.5947f45b.lean.js
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as a,v as t,b as s}from"./chunks/framework.c741a37c.js";const f=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"src/Map/tsada.md","filePath":"src/Map/tsada.md"}'),e={name:"src/Map/tsada.md"};function r(c,d,n,o,p,_){return t(),s("div")}const m=a(e,[["render",r]]);export{f as __pageData,m as default};
|
|
@ -1 +0,0 @@
|
|||
import{_ as a,o as t,c as e}from"./chunks/framework.636577e8.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"src/Map/tsada.md","filePath":"src/Map/tsada.md"}'),s={name:"src/Map/tsada.md"};function r(c,o,n,d,p,_){return t(),e("div")}const f=a(s,[["render",r]]);export{m as __pageData,f as default};
|
|
@ -1 +0,0 @@
|
|||
import{_ as a,o as t,c as e}from"./chunks/framework.636577e8.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"src/Map/tsada.md","filePath":"src/Map/tsada.md"}'),s={name:"src/Map/tsada.md"};function r(c,o,n,d,p,_){return t(),e("div")}const f=a(s,[["render",r]]);export{m as __pageData,f as default};
|
|
@ -1,4 +1,4 @@
|
|||
import{_ as n,o as e,c as s,V as a}from"./chunks/framework.636577e8.js";const q=JSON.parse('{"title":"QuickStart","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"src/RW-Engine/quick-start.md","filePath":"src/RW-Engine/quick-start.md"}'),t={name:"src/RW-Engine/quick-start.md"},o=a(`<h1 id="quickstart" tabindex="-1"><strong>QuickStart</strong> <a class="header-anchor" href="#quickstart" aria-label="Permalink to "**QuickStart**""></a></h1><h2 id="一-安装rw-engine" tabindex="-1">一.安装RW-Engine <a class="header-anchor" href="#一-安装rw-engine" aria-label="Permalink to "一.安装RW-Engine""></a></h2><h3 id="下载rw-engine" tabindex="-1">下载RW-Engine <a class="header-anchor" href="#下载rw-engine" aria-label="Permalink to "下载RW-Engine""></a></h3><pre><code>蓝奏云:
|
||||
import{_ as n,v as s,b as e,R as a}from"./chunks/framework.c741a37c.js";const q=JSON.parse('{"title":"QuickStart","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"src/RW-Engine/quick-start.md","filePath":"src/RW-Engine/quick-start.md"}'),t={name:"src/RW-Engine/quick-start.md"},o=a(`<h1 id="quickstart" tabindex="-1"><strong>QuickStart</strong> <a class="header-anchor" href="#quickstart" aria-label="Permalink to "**QuickStart**""></a></h1><h2 id="一-安装rw-engine" tabindex="-1">一.安装RW-Engine <a class="header-anchor" href="#一-安装rw-engine" aria-label="Permalink to "一.安装RW-Engine""></a></h2><h3 id="下载rw-engine" tabindex="-1">下载RW-Engine <a class="header-anchor" href="#下载rw-engine" aria-label="Permalink to "下载RW-Engine""></a></h3><pre><code>蓝奏云:
|
||||
</code></pre><h3 id="安装rw-engine" tabindex="-1">安装RW-Engine <a class="header-anchor" href="#安装rw-engine" aria-label="Permalink to "安装RW-Engine""></a></h3><pre><code>解压下载的ZIP,将里面的RW_Engine这个文件夹整个复制到你的mod的目录下。
|
||||
|
||||
文件结构:
|
||||
|
@ -28,4 +28,4 @@ import{_ as n,o as e,c as s,V as a}from"./chunks/framework.636577e8.js";const q=
|
|||
<span class="line"><span style="color:#A6ACCD;">isVisible:true</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">sendMessageTo:memory.LTVSystem</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">sendMessageWithTags:setText</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">sendMessageWithData:</span><span style="color:#F07178;">text</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">B站关注学画画的十山月</span><span style="color:#89DDFF;">"</span></span></code></pre></div>`,15),l=[o];function i(r,p,c,u,d,y){return e(),s("div",null,l)}const h=n(t,[["render",i]]);export{q as __pageData,h as default};
|
||||
<span class="line"><span style="color:#A6ACCD;">sendMessageWithData:</span><span style="color:#F07178;">text</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">B站关注学画画的十山月</span><span style="color:#89DDFF;">"</span></span></code></pre></div>`,15),l=[o];function i(r,p,c,u,d,y){return s(),e("div",null,l)}const h=n(t,[["render",i]]);export{q as __pageData,h as default};
|
31
assets/src_RW-Engine_quick-start.md.20e72dd5.lean.js
Normal file
31
assets/src_RW-Engine_quick-start.md.20e72dd5.lean.js
Normal file
|
@ -0,0 +1,31 @@
|
|||
import{_ as n,v as s,b as e,R as a}from"./chunks/framework.c741a37c.js";const q=JSON.parse('{"title":"QuickStart","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"src/RW-Engine/quick-start.md","filePath":"src/RW-Engine/quick-start.md"}'),t={name:"src/RW-Engine/quick-start.md"},o=a(`<h1 id="quickstart" tabindex="-1"><strong>QuickStart</strong> <a class="header-anchor" href="#quickstart" aria-label="Permalink to "**QuickStart**""></a></h1><h2 id="一-安装rw-engine" tabindex="-1">一.安装RW-Engine <a class="header-anchor" href="#一-安装rw-engine" aria-label="Permalink to "一.安装RW-Engine""></a></h2><h3 id="下载rw-engine" tabindex="-1">下载RW-Engine <a class="header-anchor" href="#下载rw-engine" aria-label="Permalink to "下载RW-Engine""></a></h3><pre><code>蓝奏云:
|
||||
</code></pre><h3 id="安装rw-engine" tabindex="-1">安装RW-Engine <a class="header-anchor" href="#安装rw-engine" aria-label="Permalink to "安装RW-Engine""></a></h3><pre><code>解压下载的ZIP,将里面的RW_Engine这个文件夹整个复制到你的mod的目录下。
|
||||
|
||||
文件结构:
|
||||
---units
|
||||
---你的mod1
|
||||
---RW_Engine
|
||||
---mod-info.txt
|
||||
---.........
|
||||
---你的mod2
|
||||
</code></pre><h2 id="二-使用rw-engine" tabindex="-1">二.使用RW-Engine <a class="header-anchor" href="#二-使用rw-engine" aria-label="Permalink to "二.使用RW-Engine""></a></h2><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>如没特殊注明,函数均支持commonCallBack</p></div><h3 id="linetextview-函数列表" tabindex="-1">LineTextView-函数列表 <a class="header-anchor" href="#linetextview-函数列表" aria-label="Permalink to "LineTextView-函数列表""></a></h3><div class="info custom-block"><p class="custom-block-title">INFO</p><p>函数列表: 1.setText <br> Data: ("text",type="string") <br> 设置显示的文本 <br> 2.setTextMax <br> Data: ("textMax",type="number") <br> 设置一行所能显示的最大文本数量 <br> 3.setTextColor <br> Data: ("commonHeadLength",type="number") ("indexStart",type="number") ("indexEnd",type="number") ("color",type="number") <br> 设置文本的颜色 <br> 4.setTextScale <br> Data: ("textScale",type="number") <br> 设置文本的缩放</p></div><h3 id="linetextview-使用" tabindex="-1">LineTextView-使用 <a class="header-anchor" href="#linetextview-使用" aria-label="Permalink to "LineTextView-使用""></a></h3><p>LineTextView作为RW-Engine最基本的组件 <br> 默认以ini被铁锈加载。 <br> 所以使用LineTextView有俩种方式 <br> 第一种是spawnUnits,生成一个LineTextView <br> 或者在附属添加LineTextView <br> 第二种是copyForm这个ini <br></p><div class="info custom-block"><p class="custom-block-title">INFO</p><p>第一种方式</p></div><br><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">@memory LTVSystem:unit</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[hiddenAction_created]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">autoTriggerOnEvent:created</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">resetCustomTimer:true</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;">#创建文本框</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">spawnUnits:LineTextViewSystem</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;">#文本框会自动发送tag为addLTVSystemToEpoll给该单位</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[hiddenAction_addLTVSystemToEpoll]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">autoTriggerOnEvent:newMessage(</span><span style="color:#F07178;">withTag</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">addLTVSystemToEpoll</span><span style="color:#89DDFF;">"</span><span style="color:#A6ACCD;">)</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">setUnitMemory:</span><span style="color:#F07178;">LTVSystem</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> eventSource</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[action_setTextTest]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">text:setText</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">isVisible:true</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">sendMessageTo:memory.LTVSystem</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">sendMessageWithTags:setText</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">sendMessageWithData:</span><span style="color:#F07178;">text</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">B站关注学画画的十山月</span><span style="color:#89DDFF;">"</span></span></code></pre></div>`,15),l=[o];function i(r,p,c,u,d,y){return s(),e("div",null,l)}const h=n(t,[["render",i]]);export{q as __pageData,h as default};
|
|
@ -1 +0,0 @@
|
|||
import{_ as n,o as e,c as s,V as a}from"./chunks/framework.636577e8.js";const q=JSON.parse('{"title":"QuickStart","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"src/RW-Engine/quick-start.md","filePath":"src/RW-Engine/quick-start.md"}'),t={name:"src/RW-Engine/quick-start.md"},o=a("",15),l=[o];function i(r,p,c,u,d,y){return e(),s("div",null,l)}const h=n(t,[["render",i]]);export{q as __pageData,h as default};
|
|
@ -1,4 +1,4 @@
|
|||
import{_ as n,J as i,o,c,k as s,a,N as t,w as p,V as e}from"./chunks/framework.636577e8.js";const _=JSON.parse('{"title":"[canBuild]建造组","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"src/Unit/canbuild.md","filePath":"src/Unit/canbuild.md"}'),r={name:"src/Unit/canbuild.md"},d=e(`<h1 id="canbuild-建造组" tabindex="-1"><strong>[canBuild]建造组</strong> <a class="header-anchor" href="#canbuild-建造组" aria-label="Permalink to "**[canBuild]建造组**""></a></h1><h3 id="canbuild-name" tabindex="-1">[canBuild_NAME] <a class="header-anchor" href="#canbuild-name" aria-label="Permalink to "[canBuild_NAME]""></a></h3><h4 id="canbuild-name-代码简介" tabindex="-1">[canBuild_NAME]-代码简介 <a class="header-anchor" href="#canbuild-name-代码简介" aria-label="Permalink to "[canBuild_NAME]-代码简介""></a></h4><p>代码: [canBuild_NAME] 中文释义:可建造_名字 类型:字符型 canBuild_NAME = 组名 如果不填写此组名 将默认拥有一个命名为空格的组名。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>建议将NAME命名为此组的描述或可建造单位的昵称。<br> 以便于阅读代码。</p></div><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-3tq4l" id="tab-IrdXI5r" checked="checked"><label for="tab-IrdXI5r">allureluoli</label></div><div class="blocks"><div class="language-bash active"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[</span><span style="color:#A6ACCD;">canBuild_造小坦</span><span style="color:#89DDFF;">]</span></span>
|
||||
import{_ as n,v as i,b as o,F as s,L as a,E as c,O as t,R as e,M as p}from"./chunks/framework.c741a37c.js";const v=JSON.parse('{"title":"[canBuild]建造组","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"src/Unit/canbuild.md","filePath":"src/Unit/canbuild.md"}'),r={name:"src/Unit/canbuild.md"},d=e(`<h1 id="canbuild-建造组" tabindex="-1"><strong>[canBuild]建造组</strong> <a class="header-anchor" href="#canbuild-建造组" aria-label="Permalink to "**[canBuild]建造组**""></a></h1><h3 id="canbuild-name" tabindex="-1">[canBuild_NAME] <a class="header-anchor" href="#canbuild-name" aria-label="Permalink to "[canBuild_NAME]""></a></h3><h4 id="canbuild-name-代码简介" tabindex="-1">[canBuild_NAME]-代码简介 <a class="header-anchor" href="#canbuild-name-代码简介" aria-label="Permalink to "[canBuild_NAME]-代码简介""></a></h4><p>代码: [canBuild_NAME] 中文释义:可建造_名字 类型:字符型 canBuild_NAME = 组名 如果不填写此组名 将默认拥有一个命名为空格的组名。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>建议将NAME命名为此组的描述或可建造单位的昵称。<br> 以便于阅读代码。</p></div><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-j0Bss" id="tab-bhILEGV" checked="checked"><label for="tab-bhILEGV">allureluoli</label></div><div class="blocks"><div class="language-bash active"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[</span><span style="color:#A6ACCD;">canBuild_造小坦</span><span style="color:#89DDFF;">]</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[</span><span style="color:#A6ACCD;">canBuild_SmallTank</span><span style="color:#89DDFF;">]</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[</span><span style="color:#A6ACCD;">canBuild_建造科技</span><span style="color:#89DDFF;">]</span></span></code></pre></div></div></div><div class="danger custom-block"><p class="custom-block-title">DANGER</p><p>[canBuild_NAME] 中的NAME命名禁止重复,否则会引发报错。<br> 其中下划线作为分隔符也是重要的,如果没有将引发报错。</p></div><h4 id="canbuild-name-演示例子" tabindex="-1">[canBuild_NAME]-演示例子 <a class="header-anchor" href="#canbuild-name-演示例子" aria-label="Permalink to "[canBuild_NAME]-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[canBuild_SmallTank]</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;">#英文命名</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[canBuild_小坦克]</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;">#中文命名</span></span>
|
||||
|
@ -30,4 +30,4 @@ import{_ as n,J as i,o,c,k as s,a,N as t,w as p,V as e}from"./chunks/framework.6
|
|||
<span class="line"><span style="color:#A6ACCD;">isLockedAlt2Message: 第三个原因是我觉得你应该把雪糕分我一半吃。</span></span></code></pre></div><h3 id="addresources" tabindex="-1">addResources <a class="header-anchor" href="#addresources" aria-label="Permalink to "addResources""></a></h3><h4 id="addresources-代码简介" tabindex="-1">addResources-代码简介 <a class="header-anchor" href="#addresources-代码简介" aria-label="Permalink to "addResources-代码简介""></a></h4><p>代码:addResources 中文释义: 增加资源 类型: 资源</p><h4 id="addresources-用法" tabindex="-1">addResources-用法 <a class="header-anchor" href="#addresources-用法" aria-label="Permalink to "addResources-用法""></a></h4><p>填写所需的资源名和数量,在放置建筑物或生产单位时,将这些资源添加到自身中。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>使用逗号分隔,可以添加多种资源。</p></div><h4 id="addresources-演示例子" tabindex="-1">addResources-演示例子 <a class="header-anchor" href="#addresources-演示例子" aria-label="Permalink to "addResources-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[canBuild_SmallTank]</span><span style="color:#A6ACCD;"> </span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">addResources: </span><span style="color:#F07178;">ammo</span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;">5, </span><span style="color:#F07178;">setFlag</span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;">1</span></span></code></pre></div><h3 id="price" tabindex="-1">price <a class="header-anchor" href="#price" aria-label="Permalink to "price""></a></h3><h4 id="price-代码简介" tabindex="-1">price-代码简介 <a class="header-anchor" href="#price-代码简介" aria-label="Permalink to "price-代码简介""></a></h4><p>代码:price 中文释义: 价格 类型: 资源</p><h4 id="price-用法" tabindex="-1">price-用法 <a class="header-anchor" href="#price-用法" aria-label="Permalink to "price-用法""></a></h4><p>填写所需的资源名和数量,会覆盖默认需要的资源和价格。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>用处如建造一个建筑时候附送一个单位。此代码可用设定为两者价钱之和,矿场600,送矿车1400,而建造时花2000,送1400,卖600,可避免玩家刷钱。(抄自HX代码表)</p></div><h4 id="price-演示例子" tabindex="-1">price-演示例子 <a class="header-anchor" href="#price-演示例子" aria-label="Permalink to "price-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[canBuild_SmallTank]</span><span style="color:#A6ACCD;"> </span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">price: 5000,</span><span style="color:#F07178;">ammo</span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;">5</span></span></code></pre></div><h3 id="isguiblinking" tabindex="-1">isGuiBlinking <a class="header-anchor" href="#isguiblinking" aria-label="Permalink to "isGuiBlinking""></a></h3><h4 id="isguiblinking-代码简介" tabindex="-1">isGuiBlinking-代码简介 <a class="header-anchor" href="#isguiblinking-代码简介" aria-label="Permalink to "isGuiBlinking-代码简介""></a></h4><p>代码:isGuiBlinking 中文释义: 界面闪烁 类型: 逻辑布尔值</p><h4 id="isguiblinking-用法" tabindex="-1">isGuiBlinking-用法 <a class="header-anchor" href="#isguiblinking-用法" aria-label="Permalink to "isGuiBlinking-用法""></a></h4><p>为true时在UI中拥有闪烁效果。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>可以添加条件判断语句。<br> 满足某些条件时闪烁此UI,用来提示某些单位可以建造了。</p></div><h4 id="isguiblinking-演示例子" tabindex="-1">isGuiBlinking-演示例子 <a class="header-anchor" href="#isguiblinking-演示例子" aria-label="Permalink to "isGuiBlinking-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[canBuild_SmallTank]</span><span style="color:#A6ACCD;"> </span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">isGuiBlinking:true</span></span></code></pre></div>`,59);function m(g,A,y,C,q,D){const l=i("font");return o(),c("div",null,[d,s("div",h,[u,s("p",null,[a("可以用来告知玩家被锁定原因。"),k,a(" 能够通过转义字符 "),t(l,{color:"red"},{default:p(()=>[a("\\n")]),_:1}),a(" 实现文本换行。")])]),b])}const v=n(r,[["render",m]]);export{_ as __pageData,v as default};
|
||||
<span class="line"><span style="color:#A6ACCD;">isGuiBlinking:true</span></span></code></pre></div>`,59);function m(g,A,y,C,q,D){const l=p("font");return i(),o("div",null,[d,s("div",h,[u,s("p",null,[a("可以用来告知玩家被锁定原因。"),k,a(" 能够通过转义字符 "),c(l,{color:"red"},{default:t(()=>[a("\\n")]),_:1}),a(" 实现文本换行。")])]),b])}const L=n(r,[["render",m]]);export{v as __pageData,L as default};
|
33
assets/src_Unit_canbuild.md.0e95237f.lean.js
Normal file
33
assets/src_Unit_canbuild.md.0e95237f.lean.js
Normal file
|
@ -0,0 +1,33 @@
|
|||
import{_ as n,v as i,b as o,F as s,L as a,E as c,O as t,R as e,M as p}from"./chunks/framework.c741a37c.js";const v=JSON.parse('{"title":"[canBuild]建造组","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"src/Unit/canbuild.md","filePath":"src/Unit/canbuild.md"}'),r={name:"src/Unit/canbuild.md"},d=e(`<h1 id="canbuild-建造组" tabindex="-1"><strong>[canBuild]建造组</strong> <a class="header-anchor" href="#canbuild-建造组" aria-label="Permalink to "**[canBuild]建造组**""></a></h1><h3 id="canbuild-name" tabindex="-1">[canBuild_NAME] <a class="header-anchor" href="#canbuild-name" aria-label="Permalink to "[canBuild_NAME]""></a></h3><h4 id="canbuild-name-代码简介" tabindex="-1">[canBuild_NAME]-代码简介 <a class="header-anchor" href="#canbuild-name-代码简介" aria-label="Permalink to "[canBuild_NAME]-代码简介""></a></h4><p>代码: [canBuild_NAME] 中文释义:可建造_名字 类型:字符型 canBuild_NAME = 组名 如果不填写此组名 将默认拥有一个命名为空格的组名。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>建议将NAME命名为此组的描述或可建造单位的昵称。<br> 以便于阅读代码。</p></div><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-j0Bss" id="tab-bhILEGV" checked="checked"><label for="tab-bhILEGV">allureluoli</label></div><div class="blocks"><div class="language-bash active"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[</span><span style="color:#A6ACCD;">canBuild_造小坦</span><span style="color:#89DDFF;">]</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[</span><span style="color:#A6ACCD;">canBuild_SmallTank</span><span style="color:#89DDFF;">]</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[</span><span style="color:#A6ACCD;">canBuild_建造科技</span><span style="color:#89DDFF;">]</span></span></code></pre></div></div></div><div class="danger custom-block"><p class="custom-block-title">DANGER</p><p>[canBuild_NAME] 中的NAME命名禁止重复,否则会引发报错。<br> 其中下划线作为分隔符也是重要的,如果没有将引发报错。</p></div><h4 id="canbuild-name-演示例子" tabindex="-1">[canBuild_NAME]-演示例子 <a class="header-anchor" href="#canbuild-name-演示例子" aria-label="Permalink to "[canBuild_NAME]-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[canBuild_SmallTank]</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;">#英文命名</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[canBuild_小坦克]</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;">#中文命名</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[canBuild_%TK]</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;">#符号命名</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[canBuild_P P]</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;">#字母与空格的组合也会被视为单独的组名</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[canBuild_/(ㄒoㄒ)/~~]</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;">#多种字符</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[canBuild_🆒]</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;">#甚至是emoji</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[canBuild_ ]</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;">#仅用一个空格作为组名 但是多个空格会被视为和一个空格相同</span></span></code></pre></div><h3 id="name" tabindex="-1">name <a class="header-anchor" href="#name" aria-label="Permalink to "name""></a></h3><h4 id="name-代码简介" tabindex="-1">name-代码简介 <a class="header-anchor" href="#name-代码简介" aria-label="Permalink to "name-代码简介""></a></h4><p>代码:name 中文释义:名字 类型:字符型</p><div class="danger custom-block"><p class="custom-block-title">DANGER</p><p>如果没有name而填入其他代码将引发报错,且name:不能不填<br> 需要为空可以填写 name:NONE</p></div><h4 id="name-用法" tabindex="-1">name-用法 <a class="header-anchor" href="#name-用法" aria-label="Permalink to "name-用法""></a></h4><p>name应填写单位[core]内中 name属性的名称, 它决定了需要建造哪个单位。</p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>注意! 如果你填了两个相同的name,建造栏会自动合并,建造栏中不会出现两个相同的单位。<br> 其中根据代码自上而下的先后顺序判断优先级。</p></div><h4 id="name-示例" tabindex="-1">name-示例 <a class="header-anchor" href="#name-示例" aria-label="Permalink to "name-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[canBuild_SmallTank]</span><span style="color:#A6ACCD;"> </span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">name: SmallTank</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[canBuild_小坦克]</span><span style="color:#A6ACCD;"> </span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">name: 小坦克</span></span></code></pre></div><h3 id="pos" tabindex="-1">pos <a class="header-anchor" href="#pos" aria-label="Permalink to "pos""></a></h3><h4 id="pos-代码简介" tabindex="-1">pos-代码简介 <a class="header-anchor" href="#pos-代码简介" aria-label="Permalink to "pos-代码简介""></a></h4><p>代码:pos 英文全称:position 中文释义:名次 类型:浮点数</p><h4 id="pos-用法" tabindex="-1">pos-用法 <a class="header-anchor" href="#pos-用法" aria-label="Permalink to "pos-用法""></a></h4><p>pos:属性数值表示排序的序号,其中越小的越靠前。</p><div class="info custom-block"><p class="custom-block-title">INFO</p><p>如果没有填写pos,将默认为1,并按照代码顺序依次递增。<br> 其中数值可以为小数,可以为负,也可以为整数。</p></div><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>小数点后位数过长将会影响判断,建议用整数。</p></div><h4 id="pos-演示例子" tabindex="-1">pos-演示例子 <a class="header-anchor" href="#pos-演示例子" aria-label="Permalink to "pos-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[canBuild_SmallTank]</span><span style="color:#A6ACCD;"> </span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">pos:0.1</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[canBuild_小坦克]</span><span style="color:#A6ACCD;"> </span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">pos:-2</span></span></code></pre></div><h3 id="tech" tabindex="-1">tech <a class="header-anchor" href="#tech" aria-label="Permalink to "tech""></a></h3><h4 id="tech-代码简介" tabindex="-1">tech-代码简介 <a class="header-anchor" href="#tech-代码简介" aria-label="Permalink to "tech-代码简介""></a></h4><p>代码:tech 英文全称:technology 中文释义:科技 类型:整数</p><h4 id="tech-用法" tabindex="-1">tech-用法 <a class="header-anchor" href="#tech-用法" aria-label="Permalink to "tech-用法""></a></h4><p>填写数字设置单位的科技等级,共有3个级别,1级GUI显示为绿色,2、3级显示为黄色。</p><div class="info custom-block"><p class="custom-block-title">INFO</p><p>与[core]中的科技等级不同的是,超过3或者为负也不会报错。<br> 而且会受到原单位科技等级的影响,优先级低于原单位设置的科技等级。</p></div><h4 id="tech-演示例子" tabindex="-1">tech-演示例子 <a class="header-anchor" href="#tech-演示例子" aria-label="Permalink to "tech-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[canBuild_SmallTank]</span><span style="color:#A6ACCD;"> </span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">tech: -1</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[canBuild_小坦克]</span><span style="color:#A6ACCD;"> </span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">tech: 2</span></span></code></pre></div><h3 id="forcenano" tabindex="-1">forceNano <a class="header-anchor" href="#forcenano" aria-label="Permalink to "forceNano""></a></h3><h4 id="forcenano-代码简介" tabindex="-1">forceNano-代码简介 <a class="header-anchor" href="#forcenano-代码简介" aria-label="Permalink to "forceNano-代码简介""></a></h4><p>代码:forceNano 中文释义: 建造方式 类型: 布尔值</p><h4 id="forcenano-用法" tabindex="-1">forceNano-用法 <a class="header-anchor" href="#forcenano-用法" aria-label="Permalink to "forceNano-用法""></a></h4><p>当属性设置为true时,则将目标当作是建筑物建造。 (即使是一个单位)</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>默认为 false。<br> 对于没有建筑能力的单位将会在地图上凭空生成一个虚影而不会继续建造。</p></div><h4 id="forcenano-演示例子" tabindex="-1">forceNano-演示例子 <a class="header-anchor" href="#forcenano-演示例子" aria-label="Permalink to "forceNano-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[canBuild_SmallTank]</span><span style="color:#A6ACCD;"> </span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">forceNano: true</span></span></code></pre></div><h3 id="isvisible" tabindex="-1">isVisible <a class="header-anchor" href="#isvisible" aria-label="Permalink to "isVisible""></a></h3><h4 id="isvisible-代码简介" tabindex="-1">isVisible-代码简介 <a class="header-anchor" href="#isvisible-代码简介" aria-label="Permalink to "isVisible-代码简介""></a></h4><p>代码:isVisible 中文释义: 可见条件 类型: 逻辑布尔值</p><h4 id="isvisible-用法" tabindex="-1">isVisible-用法 <a class="header-anchor" href="#isvisible-用法" aria-label="Permalink to "isVisible-用法""></a></h4><p>当属性设置为true时,则使单位建造可见。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>其中可以将属性设置为条件判断语句。<br> 如果满足条件,则从界面中显示此单位。<br> 默认为true。</p></div><h4 id="isvisible-演示例子" tabindex="-1">isVisible-演示例子 <a class="header-anchor" href="#isvisible-演示例子" aria-label="Permalink to "isVisible-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[canBuild_SmallTank]</span><span style="color:#A6ACCD;"> </span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">isVisible: if self.hp() > 50</span></span></code></pre></div><h3 id="islocked" tabindex="-1">isLocked <a class="header-anchor" href="#islocked" aria-label="Permalink to "isLocked""></a></h3><h4 id="islocked-代码简介" tabindex="-1">isLocked-代码简介 <a class="header-anchor" href="#islocked-代码简介" aria-label="Permalink to "isLocked-代码简介""></a></h4><p>代码:isLocked 中文释义: 锁定 类型: 逻辑布尔值</p><h4 id="islocked-用法" tabindex="-1">isLocked-用法 <a class="header-anchor" href="#islocked-用法" aria-label="Permalink to "isLocked-用法""></a></h4><p>当属性设置为true时,则使单位锁定。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>其中可以将属性设置为条件判断语句。<br> 如果满足条件,则使单位锁定。<br> 默认为false。</p></div><h4 id="islocked-演示例子" tabindex="-1">isLocked-演示例子 <a class="header-anchor" href="#islocked-演示例子" aria-label="Permalink to "isLocked-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[canBuild_SmallTank]</span><span style="color:#A6ACCD;"> </span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">isLocked: if self.hp() < 50</span></span></code></pre></div><h3 id="islockedmessage" tabindex="-1">isLockedMessage <a class="header-anchor" href="#islockedmessage" aria-label="Permalink to "isLockedMessage""></a></h3><h4 id="islockedmessage-代码简介" tabindex="-1">isLockedMessage-代码简介 <a class="header-anchor" href="#islockedmessage-代码简介" aria-label="Permalink to "isLockedMessage-代码简介""></a></h4><p>代码:isLockedMessage 中文释义: 锁定消息 类型: 字符串</p><h4 id="islockedmessage-用法" tabindex="-1">isLockedMessage-用法 <a class="header-anchor" href="#islockedmessage-用法" aria-label="Permalink to "isLockedMessage-用法""></a></h4><p>填写被锁定时显示的文本。</p>`,64),h={class:"tip custom-block"},u=s("p",{class:"custom-block-title"},"TIP",-1),k=s("br",null,null,-1),b=e(`<h4 id="islockedmessage-演示例子" tabindex="-1">isLockedMessage-演示例子 <a class="header-anchor" href="#islockedmessage-演示例子" aria-label="Permalink to "isLockedMessage-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[canBuild_SmallTank]</span><span style="color:#A6ACCD;"> </span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">isLockedMessage: 因为你太菜这个单位不给你用嗷。\\n 想用的话就努力变强吧!</span></span></code></pre></div><h3 id="islockedmessage-lang" tabindex="-1">isLockedMessage_{LANG} <br> <a class="header-anchor" href="#islockedmessage-lang" aria-label="Permalink to "isLockedMessage_{LANG} <br>""></a></h3><h4 id="islockedmessage-lang-代码简介" tabindex="-1">isLockedMessage-{LANG}代码简介 <a class="header-anchor" href="#islockedmessage-lang-代码简介" aria-label="Permalink to "isLockedMessage-{LANG}代码简介""></a></h4><p>代码:isLockedMessage 中文释义: 锁定消息 类型: 字符串 是isLockedMessage的多语言版本,用于设置在不同语言下显示的锁定内容,用法一致。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>将{LANG}替换为语言文字的缩写即可,例如:<br> zh 代表简体中文,es,代表英文。</p></div><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[canBuild_SmallTank]</span><span style="color:#A6ACCD;"> </span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">isLockedMessage_es: You are BAKA! \\n if think use it ,go get stronger.</span></span></code></pre></div><h3 id="islockedalt" tabindex="-1">isLockedAlt <a class="header-anchor" href="#islockedalt" aria-label="Permalink to "isLockedAlt""></a></h3><h4 id="islockedalt-代码简介" tabindex="-1">isLockedAlt-代码简介 <a class="header-anchor" href="#islockedalt-代码简介" aria-label="Permalink to "isLockedAlt-代码简介""></a></h4><p>代码:isLockedAlt 中文释义: 另外的锁定 类型: 逻辑布尔值</p><h4 id="islockedalt-用法" tabindex="-1">isLockedAlt-用法 <a class="header-anchor" href="#islockedalt-用法" aria-label="Permalink to "isLockedAlt-用法""></a></h4><p>和isLocked完全一样,只是为了多一个锁定的条件。</p><h4 id="islockedalt-演示例子" tabindex="-1">isLockedAlt-演示例子 <a class="header-anchor" href="#islockedalt-演示例子" aria-label="Permalink to "isLockedAlt-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[canBuild_SmallTank]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">isLockedAlt: if self.energy(</span><span style="color:#F07178;">greaterThan</span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;">90)</span></span></code></pre></div><h3 id="islockedaltmessage" tabindex="-1">isLockedAltMessage <a class="header-anchor" href="#islockedaltmessage" aria-label="Permalink to "isLockedAltMessage""></a></h3><h4 id="islockedaltmessage-代码简介" tabindex="-1">isLockedAltMessage-代码简介 <a class="header-anchor" href="#islockedaltmessage-代码简介" aria-label="Permalink to "isLockedAltMessage-代码简介""></a></h4><p>代码:isLockedAltMessage 中文释义: 另外的锁定消息 类型: 字符串</p><h4 id="islockedaltmessage-用法" tabindex="-1">isLockedAltMessage-用法 <a class="header-anchor" href="#islockedaltmessage-用法" aria-label="Permalink to "isLockedAltMessage-用法""></a></h4><p>和isLockedMessage的完全一样,只是为了表达另一个的原因。 用来描述isLockedAlt。</p><h4 id="islockedaltmessage-演示例子" tabindex="-1">isLockedAltMessage-演示例子 <a class="header-anchor" href="#islockedaltmessage-演示例子" aria-label="Permalink to "isLockedAltMessage-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[canBuild_SmallTank]</span><span style="color:#A6ACCD;"> </span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">isLockedAltMessage: 还有因为这个单位丑拒。</span></span></code></pre></div><h3 id="islockedalt2" tabindex="-1">isLockedAlt2 <a class="header-anchor" href="#islockedalt2" aria-label="Permalink to "isLockedAlt2""></a></h3><h4 id="islockedalt2-代码简介" tabindex="-1">isLockedAlt2-代码简介 <a class="header-anchor" href="#islockedalt2-代码简介" aria-label="Permalink to "isLockedAlt2-代码简介""></a></h4><p>代码:isLockedAlt2 中文释义: 另外的锁定2 类型: 逻辑布尔值</p><h4 id="islockedalt2-用法" tabindex="-1">isLockedAlt2-用法 <a class="header-anchor" href="#islockedalt2-用法" aria-label="Permalink to "isLockedAlt2-用法""></a></h4><p>和isLocked完全一样,评价就是梅开二度。</p><h4 id="islockedalt2-演示例子" tabindex="-1">isLockedAlt2-演示例子 <a class="header-anchor" href="#islockedalt2-演示例子" aria-label="Permalink to "isLockedAlt2-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[canBuild_SmallTank]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">isLockedAlt2: if self.energy() < 100</span></span></code></pre></div><h3 id="islockedalt2message" tabindex="-1">isLockedAlt2Message <a class="header-anchor" href="#islockedalt2message" aria-label="Permalink to "isLockedAlt2Message""></a></h3><h4 id="islockedalt2message-代码简介" tabindex="-1">isLockedAlt2Message-代码简介 <a class="header-anchor" href="#islockedalt2message-代码简介" aria-label="Permalink to "isLockedAlt2Message-代码简介""></a></h4><p>代码:isLockedAlt2Message 中文释义: 另外的锁定消息2 类型: 字符串</p><h4 id="islockedalt2message-用法" tabindex="-1">isLockedAlt2Message-用法 <a class="header-anchor" href="#islockedalt2message-用法" aria-label="Permalink to "isLockedAlt2Message-用法""></a></h4><p>和isLockedMessage的完全一样。 用来描述isLockedAlt2。</p><h4 id="islockedalt2message-演示例子" tabindex="-1">isLockedAlt2Message-演示例子 <a class="header-anchor" href="#islockedalt2message-演示例子" aria-label="Permalink to "isLockedAlt2Message-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[canBuild_SmallTank]</span><span style="color:#A6ACCD;"> </span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">isLockedAlt2Message: 第三个原因是我觉得你应该把雪糕分我一半吃。</span></span></code></pre></div><h3 id="addresources" tabindex="-1">addResources <a class="header-anchor" href="#addresources" aria-label="Permalink to "addResources""></a></h3><h4 id="addresources-代码简介" tabindex="-1">addResources-代码简介 <a class="header-anchor" href="#addresources-代码简介" aria-label="Permalink to "addResources-代码简介""></a></h4><p>代码:addResources 中文释义: 增加资源 类型: 资源</p><h4 id="addresources-用法" tabindex="-1">addResources-用法 <a class="header-anchor" href="#addresources-用法" aria-label="Permalink to "addResources-用法""></a></h4><p>填写所需的资源名和数量,在放置建筑物或生产单位时,将这些资源添加到自身中。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>使用逗号分隔,可以添加多种资源。</p></div><h4 id="addresources-演示例子" tabindex="-1">addResources-演示例子 <a class="header-anchor" href="#addresources-演示例子" aria-label="Permalink to "addResources-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[canBuild_SmallTank]</span><span style="color:#A6ACCD;"> </span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">addResources: </span><span style="color:#F07178;">ammo</span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;">5, </span><span style="color:#F07178;">setFlag</span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;">1</span></span></code></pre></div><h3 id="price" tabindex="-1">price <a class="header-anchor" href="#price" aria-label="Permalink to "price""></a></h3><h4 id="price-代码简介" tabindex="-1">price-代码简介 <a class="header-anchor" href="#price-代码简介" aria-label="Permalink to "price-代码简介""></a></h4><p>代码:price 中文释义: 价格 类型: 资源</p><h4 id="price-用法" tabindex="-1">price-用法 <a class="header-anchor" href="#price-用法" aria-label="Permalink to "price-用法""></a></h4><p>填写所需的资源名和数量,会覆盖默认需要的资源和价格。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>用处如建造一个建筑时候附送一个单位。此代码可用设定为两者价钱之和,矿场600,送矿车1400,而建造时花2000,送1400,卖600,可避免玩家刷钱。(抄自HX代码表)</p></div><h4 id="price-演示例子" tabindex="-1">price-演示例子 <a class="header-anchor" href="#price-演示例子" aria-label="Permalink to "price-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[canBuild_SmallTank]</span><span style="color:#A6ACCD;"> </span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">price: 5000,</span><span style="color:#F07178;">ammo</span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;">5</span></span></code></pre></div><h3 id="isguiblinking" tabindex="-1">isGuiBlinking <a class="header-anchor" href="#isguiblinking" aria-label="Permalink to "isGuiBlinking""></a></h3><h4 id="isguiblinking-代码简介" tabindex="-1">isGuiBlinking-代码简介 <a class="header-anchor" href="#isguiblinking-代码简介" aria-label="Permalink to "isGuiBlinking-代码简介""></a></h4><p>代码:isGuiBlinking 中文释义: 界面闪烁 类型: 逻辑布尔值</p><h4 id="isguiblinking-用法" tabindex="-1">isGuiBlinking-用法 <a class="header-anchor" href="#isguiblinking-用法" aria-label="Permalink to "isGuiBlinking-用法""></a></h4><p>为true时在UI中拥有闪烁效果。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>可以添加条件判断语句。<br> 满足某些条件时闪烁此UI,用来提示某些单位可以建造了。</p></div><h4 id="isguiblinking-演示例子" tabindex="-1">isGuiBlinking-演示例子 <a class="header-anchor" href="#isguiblinking-演示例子" aria-label="Permalink to "isGuiBlinking-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[canBuild_SmallTank]</span><span style="color:#A6ACCD;"> </span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">isGuiBlinking:true</span></span></code></pre></div>`,59);function m(g,A,y,C,q,D){const l=p("font");return i(),o("div",null,[d,s("div",h,[u,s("p",null,[a("可以用来告知玩家被锁定原因。"),k,a(" 能够通过转义字符 "),c(l,{color:"red"},{default:t(()=>[a("\\n")]),_:1}),a(" 实现文本换行。")])]),b])}const L=n(r,[["render",m]]);export{v as __pageData,L as default};
|
|
@ -1 +0,0 @@
|
|||
import{_ as n,J as i,o,c,k as s,a,N as t,w as p,V as e}from"./chunks/framework.636577e8.js";const _=JSON.parse('{"title":"[canBuild]建造组","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"src/Unit/canbuild.md","filePath":"src/Unit/canbuild.md"}'),r={name:"src/Unit/canbuild.md"},d=e("",64),h={class:"tip custom-block"},u=s("p",{class:"custom-block-title"},"TIP",-1),k=s("br",null,null,-1),b=e("",59);function m(g,A,y,C,q,D){const l=i("font");return o(),c("div",null,[d,s("div",h,[u,s("p",null,[a("可以用来告知玩家被锁定原因。"),k,a(" 能够通过转义字符 "),t(l,{color:"red"},{default:p(()=>[a("\\n")]),_:1}),a(" 实现文本换行。")])]),b])}const v=n(r,[["render",m]]);export{_ as __pageData,v as default};
|
|
@ -1,4 +1,4 @@
|
|||
import{_ as t,J as o,o as r,c,k as e,a,N as n,w as l,V as i}from"./chunks/framework.636577e8.js";const E=JSON.parse('{"title":"[core]组","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"src/Unit/core.md","filePath":"src/Unit/core.md"}'),p={name:"src/Unit/core.md"},d=i(`<h1 id="core-组" tabindex="-1"><strong>[core]组</strong> <a class="header-anchor" href="#core-组" aria-label="Permalink to "**[core]组**""></a></h1><h2 id="第一类-通用代码组" tabindex="-1">第一类-通用代码组 <a class="header-anchor" href="#第一类-通用代码组" aria-label="Permalink to "第一类-通用代码组""></a></h2><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>以下的代码为<code>通用代码</code>,多半是必要的代码,如果不包括这些,可能在<code>绝大多数情况下导致错误</code>。</p></div><h3 id="name" tabindex="-1">name <a class="header-anchor" href="#name" aria-label="Permalink to "name""></a></h3><h4 id="name-代码简介" tabindex="-1">name-代码简介 <a class="header-anchor" href="#name-代码简介" aria-label="Permalink to "name-代码简介""></a></h4><p>代码:name 中文释义:名字 类型:字符型 隶属于:通用代码组</p><h4 id="name-要点指示" tabindex="-1">name-要点指示 <a class="header-anchor" href="#name-要点指示" aria-label="Permalink to "name-要点指示""></a></h4><hr><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-wPNWR" id="tab-kIArhcf" checked="checked"><label for="tab-kIArhcf">JDSALing</label><input type="radio" name="group-wPNWR" id="tab-uQkIB_F"><label for="tab-uQkIB_F">Tobby3600</label></div><div class="blocks"><div class="language-bash active"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">定义单位原始名称,可以是中文。</span></span>
|
||||
import{_ as t,v as o,b as r,F as e,L as a,E as n,O as l,R as i,M as c}from"./chunks/framework.c741a37c.js";const M=JSON.parse('{"title":"[core]组","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"src/Unit/core.md","filePath":"src/Unit/core.md"}'),p={name:"src/Unit/core.md"},d=i(`<h1 id="core-组" tabindex="-1"><strong>[core]组</strong> <a class="header-anchor" href="#core-组" aria-label="Permalink to "**[core]组**""></a></h1><h2 id="第一类-通用代码组" tabindex="-1">第一类-通用代码组 <a class="header-anchor" href="#第一类-通用代码组" aria-label="Permalink to "第一类-通用代码组""></a></h2><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>以下的代码为<code>通用代码</code>,多半是必要的代码,如果不包括这些,可能在<code>绝大多数情况下导致错误</code>。</p></div><h3 id="name" tabindex="-1">name <a class="header-anchor" href="#name" aria-label="Permalink to "name""></a></h3><h4 id="name-代码简介" tabindex="-1">name-代码简介 <a class="header-anchor" href="#name-代码简介" aria-label="Permalink to "name-代码简介""></a></h4><p>代码:name 中文释义:名字 类型:字符型 隶属于:通用代码组</p><h4 id="name-要点指示" tabindex="-1">name-要点指示 <a class="header-anchor" href="#name-要点指示" aria-label="Permalink to "name-要点指示""></a></h4><hr><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-TalJ6" id="tab-0XplRtX" checked="checked"><label for="tab-0XplRtX">JDSALing</label><input type="radio" name="group-TalJ6" id="tab-lCuXBoq"><label for="tab-lCuXBoq">Tobby3600</label></div><div class="blocks"><div class="language-bash active"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">定义单位原始名称,可以是中文。</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">游戏使用它区分其它单位。</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">如果没有在[displayText或者语言文件设置显示名称],</span></span>
|
||||
|
@ -16,13 +16,13 @@ import{_ as t,J as o,o as r,c,k as e,a,N as n,w as l,V as i}from"./chunks/framew
|
|||
<span class="line"><span style="color:#A6ACCD;">displayText_zh:中文标题</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">displayDescription: -English Description</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">displayDescription_zh:-中文描述</span></span></code></pre></div><hr><h3 id="price" tabindex="-1">price <a class="header-anchor" href="#price" aria-label="Permalink to "price""></a></h3><h4 id="price-代码简介" tabindex="-1">price-代码简介 <a class="header-anchor" href="#price-代码简介" aria-label="Permalink to "price-代码简介""></a></h4><p>代码:price 中文释义:价格 类型:整数 隶属于:通用代码组</p><h4 id="price-要点指示" tabindex="-1">price-要点指示 <a class="header-anchor" href="#price-要点指示" aria-label="Permalink to "price-要点指示""></a></h4><p>定义单位的价格,显示在单位信息中,建造时也以此价格为准。</p><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-Gt4Zt" id="tab-800grxJ" checked="checked"><label for="tab-800grxJ">Tobby3600</label></div><div class="blocks"><div class="language-bash active"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">默认情况下,price只需要填写一个整数,此时使用的是游戏内自带的资金credit;</span><span style="color:#A6ACCD;"> </span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">displayDescription_zh:-中文描述</span></span></code></pre></div><hr><h3 id="price" tabindex="-1">price <a class="header-anchor" href="#price" aria-label="Permalink to "price""></a></h3><h4 id="price-代码简介" tabindex="-1">price-代码简介 <a class="header-anchor" href="#price-代码简介" aria-label="Permalink to "price-代码简介""></a></h4><p>代码:price 中文释义:价格 类型:整数 隶属于:通用代码组</p><h4 id="price-要点指示" tabindex="-1">price-要点指示 <a class="header-anchor" href="#price-要点指示" aria-label="Permalink to "price-要点指示""></a></h4><p>定义单位的价格,显示在单位信息中,建造时也以此价格为准。</p><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-gm7Dc" id="tab-F0plxC0" checked="checked"><label for="tab-F0plxC0">Tobby3600</label></div><div class="blocks"><div class="language-bash active"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">默认情况下,price只需要填写一个整数,此时使用的是游戏内自带的资金credit;</span><span style="color:#A6ACCD;"> </span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">想要更改资源类型,可以使用:</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">\`</span><span style="color:#FFCB6B;">price:资源1</span><span style="color:#C3E88D;">=数值1,资源2=数值2,资源3=数值3,……</span><span style="color:#89DDFF;">\`</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">的格式</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">(前提是此资源要在使用的单位进行定义)。</span></span></code></pre></div></div></div><h4 id="price-演示例子" tabindex="-1">price-演示例子 <a class="header-anchor" href="#price-演示例子" aria-label="Permalink to "price-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">price:120,石油=80,铁=60</span></span></code></pre></div><hr><h3 id="radius" tabindex="-1">radius <a class="header-anchor" href="#radius" aria-label="Permalink to "radius""></a></h3><h4 id="radius-代码简介" tabindex="-1">radius-代码简介 <a class="header-anchor" href="#radius-代码简介" aria-label="Permalink to "radius-代码简介""></a></h4><p>代码:radius 中文释义:半径 类型:整数 隶属于:通用代码组</p><h4 id="radius-要点指示" tabindex="-1">radius-要点指示 <a class="header-anchor" href="#radius-要点指示" aria-label="Permalink to "radius-要点指示""></a></h4><p>半径定义单位的<code>实际碰撞体积和显示范围</code>,在未设置<code>选择框大小</code>时,半径决定是单位选择框的大小。 半径的单位是像素(px)。</p><h4 id="radius-演示例子" tabindex="-1">radius-演示例子 <a class="header-anchor" href="#radius-演示例子" aria-label="Permalink to "radius-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">radius:20</span></span></code></pre></div><hr><h3 id="mass" tabindex="-1">mass <a class="header-anchor" href="#mass" aria-label="Permalink to "mass""></a></h3><h4 id="mass-代码简介" tabindex="-1">mass-代码简介 <a class="header-anchor" href="#mass-代码简介" aria-label="Permalink to "mass-代码简介""></a></h4><p>代码:mass 中文释义:质量 类型:整数 隶属于:通用代码组</p><h4 id="mass-要点指示" tabindex="-1">mass-要点指示 <a class="header-anchor" href="#mass-要点指示" aria-label="Permalink to "mass-要点指示""></a></h4><p>质量决定单位在各种碰撞时的效果。<code>质量越大,其他单位越难推动</code>。</p><h4 id="mass-演示例子" tabindex="-1">mass-演示例子 <a class="header-anchor" href="#mass-演示例子" aria-label="Permalink to "mass-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">mass:2000</span></span></code></pre></div><hr><h3 id="maxhp" tabindex="-1">maxHp <a class="header-anchor" href="#maxhp" aria-label="Permalink to "maxHp""></a></h3><h4 id="maxhp-代码简介" tabindex="-1">maxHp-代码简介 <a class="header-anchor" href="#maxhp-代码简介" aria-label="Permalink to "maxHp-代码简介""></a></h4><p>代码:maxHp 中文释义:最大生命值 类型:整数 隶属于:通用代码组</p><h4 id="maxhp-要点指示" tabindex="-1">maxHp-要点指示 <a class="header-anchor" href="#maxhp-要点指示" aria-label="Permalink to "maxHp-要点指示""></a></h4><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-fLH5m" id="tab-ghWIRey" checked="checked"><label for="tab-ghWIRey">tobby3600</label></div><div class="blocks"><div class="language-bash active"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">最大生命值定义单位在不修改它时最多能够有多少血量,</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">mass:2000</span></span></code></pre></div><hr><h3 id="maxhp" tabindex="-1">maxHp <a class="header-anchor" href="#maxhp" aria-label="Permalink to "maxHp""></a></h3><h4 id="maxhp-代码简介" tabindex="-1">maxHp-代码简介 <a class="header-anchor" href="#maxhp-代码简介" aria-label="Permalink to "maxHp-代码简介""></a></h4><p>代码:maxHp 中文释义:最大生命值 类型:整数 隶属于:通用代码组</p><h4 id="maxhp-要点指示" tabindex="-1">maxHp-要点指示 <a class="header-anchor" href="#maxhp-要点指示" aria-label="Permalink to "maxHp-要点指示""></a></h4><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-5HhIZ" id="tab-mm05lnw" checked="checked"><label for="tab-mm05lnw">tobby3600</label></div><div class="blocks"><div class="language-bash active"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">最大生命值定义单位在不修改它时最多能够有多少血量,</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">单位默认生成时即是这个血量。</span></span>
|
||||
<span class="line"><span style="color:#82AAFF;">maxHp可以通过单位参考.maxHp</span><span style="color:#89DDFF;">()</span><span style="color:#A6ACCD;">来获取,</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">也可以通过[action]进行修改。</span></span></code></pre></div></div></div><h4 id="maxhp-演示例子" tabindex="-1">maxHp-演示例子 <a class="header-anchor" href="#maxhp-演示例子" aria-label="Permalink to "maxHp-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
|
@ -48,7 +48,7 @@ import{_ as t,J as o,o as r,c,k as e,a,N as n,w as l,V as i}from"./chunks/framew
|
|||
<span class="line"><span style="color:#A6ACCD;">maxShield:3000</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">shieldRegen:0.5</span></span></code></pre></div><hr><h3 id="energymax" tabindex="-1">energyMax <a class="header-anchor" href="#energymax" aria-label="Permalink to "energyMax""></a></h3><h4 id="energymax-代码简介" tabindex="-1">energyMax-代码简介 <a class="header-anchor" href="#energymax-代码简介" aria-label="Permalink to "energyMax-代码简介""></a></h4><p>代码:energyMax 中文释义:能量值 类型:浮点型 隶属于:单位统计代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>默认值为0。可以用作炮塔,激光防御和行动的弹药的能量。</p></div><h4 id="energymax-演示例子" tabindex="-1">energyMax-演示例子 <a class="header-anchor" href="#energymax-演示例子" aria-label="Permalink to "energyMax-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">energyMax:5</span></span></code></pre></div><hr><h3 id="energyregen" tabindex="-1">energyRegen <a class="header-anchor" href="#energyregen" aria-label="Permalink to "energyRegen""></a></h3><h4 id="energyregen-代码简介" tabindex="-1">energyRegen-代码简介 <a class="header-anchor" href="#energyregen-代码简介" aria-label="Permalink to "energyRegen-代码简介""></a></h4><p>代码:energyRegen 中文释义:能量恢复速度 类型:浮点型 隶属于:单位统计代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>能量每帧恢复速度,游戏内一秒为60帧,所以不要写太大。可以写负值。</p></div><h4 id="energyregen-演示例子" tabindex="-1">energyRegen-演示例子 <a class="header-anchor" href="#energyregen-演示例子" aria-label="Permalink to "energyRegen-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">energyRegen:0.4</span></span></code></pre></div><hr><h3 id="energyregenwhenrecharging" tabindex="-1">energyRegenWhenRecharging <a class="header-anchor" href="#energyregenwhenrecharging" aria-label="Permalink to "energyRegenWhenRecharging""></a></h3><h4 id="energyregenwhenrecharging-代码简介" tabindex="-1">energyRegenWhenRecharging-代码简介 <a class="header-anchor" href="#energyregenwhenrecharging-代码简介" aria-label="Permalink to "energyRegenWhenRecharging-代码简介""></a></h4><p>代码:energyRegenWhenRecharging 中文释义:充能时能量恢复速度 类型:浮点型 隶属于:单位统计代码组</p>`,77),D={class:"tip custom-block"},A=e("p",{class:"custom-block-title"},"TIP",-1),P=i(`<h4 id="energyregenwhenrecharging-演示例子" tabindex="-1">energyRegenWhenRecharging-演示例子 <a class="header-anchor" href="#energyregenwhenrecharging-演示例子" aria-label="Permalink to "energyRegenWhenRecharging-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">energyRegen:0.4</span></span></code></pre></div><hr><h3 id="energyregenwhenrecharging" tabindex="-1">energyRegenWhenRecharging <a class="header-anchor" href="#energyregenwhenrecharging" aria-label="Permalink to "energyRegenWhenRecharging""></a></h3><h4 id="energyregenwhenrecharging-代码简介" tabindex="-1">energyRegenWhenRecharging-代码简介 <a class="header-anchor" href="#energyregenwhenrecharging-代码简介" aria-label="Permalink to "energyRegenWhenRecharging-代码简介""></a></h4><p>代码:energyRegenWhenRecharging 中文释义:充能时能量恢复速度 类型:浮点型 隶属于:单位统计代码组</p>`,77),D={class:"tip custom-block"},F=e("p",{class:"custom-block-title"},"TIP",-1),A=i(`<h4 id="energyregenwhenrecharging-演示例子" tabindex="-1">energyRegenWhenRecharging-演示例子 <a class="header-anchor" href="#energyregenwhenrecharging-演示例子" aria-label="Permalink to "energyRegenWhenRecharging-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">energyMax:1</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">energyRegenWhenRecharging:0.4</span></span></code></pre></div><hr><h3 id="energyneedstorechargetofull" tabindex="-1">energyNeedsToRechargeToFull <a class="header-anchor" href="#energyneedstorechargetofull" aria-label="Permalink to "energyNeedsToRechargeToFull""></a></h3><h4 id="energyneedstorechargetofull-代码简介" tabindex="-1">energyNeedsToRechargeToFull-代码简介 <a class="header-anchor" href="#energyneedstorechargetofull-代码简介" aria-label="Permalink to "energyNeedsToRechargeToFull-代码简介""></a></h4><p>代码:energyNeedsToRechargeToFull 中文释义:能量需要充满 类型:布尔型 隶属于:单位统计代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>如果能量耗尽,则需要完全充能才能进行攻击。</p></div><h4 id="energyneedstorechargetofull-演示例子" tabindex="-1">energyNeedsToRechargeToFull-演示例子 <a class="header-anchor" href="#energyneedstorechargetofull-演示例子" aria-label="Permalink to "energyNeedsToRechargeToFull-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">energyMax:4</span></span>
|
||||
|
@ -61,7 +61,7 @@ import{_ as t,J as o,o as r,c,k as e,a,N as n,w as l,V as i}from"./chunks/framew
|
|||
<span class="line"><span style="color:#676E95;font-style:italic;">#如果受到40以下的常规攻击,则进行最低伤害判定</span></span></code></pre></div><hr><h3 id="borrowresourceswhilealive" tabindex="-1">borrowResourcesWhileAlive <a class="header-anchor" href="#borrowresourceswhilealive" aria-label="Permalink to "borrowResourcesWhileAlive""></a></h3><h4 id="borrowresourceswhilealive-代码简介" tabindex="-1">borrowResourcesWhileAlive-代码简介 <a class="header-anchor" href="#borrowresourceswhilealive-代码简介" aria-label="Permalink to "borrowResourcesWhileAlive-代码简介""></a></h4><p>代码:armour 中文释义:资源活着时借用 类型:Price型 隶属于:单位统计代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>创建时获取这些资源,删除或销毁时将其返回。 例如用于电力逻辑,负数供电和正数耗电。</p></div><h4 id="borrowresourceswhilealive-演示例子" tabindex="-1">borrowResourcesWhileAlive-演示例子 <a class="header-anchor" href="#borrowresourceswhilealive-演示例子" aria-label="Permalink to "borrowResourcesWhileAlive-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">borrowResourcesWhileAlive:5000</span></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;">#单位活着的时候给予5000金币,死亡扣除5000金币</span></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;">#一个小型贷款系统,</span></span></code></pre></div><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-1Yi68" id="tab-INV9rHa" checked="checked"><label for="tab-INV9rHa">考考你</label><input type="radio" name="group-1Yi68" id="tab-g3E3UWW"><label for="tab-g3E3UWW">显示答案</label></div><div class="blocks"><div class="language-bash active"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">如果这里要通过这个代码做一个小的贷款系统,</span></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;">#一个小型贷款系统,</span></span></code></pre></div><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-KFEGT" id="tab-gzMVmvx" checked="checked"><label for="tab-gzMVmvx">考考你</label><input type="radio" name="group-KFEGT" id="tab-jzi6qZI"><label for="tab-jzi6qZI">显示答案</label></div><div class="blocks"><div class="language-bash active"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">如果这里要通过这个代码做一个小的贷款系统,</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">并经过一段时间让单位死亡。</span><span style="color:#A6ACCD;"> </span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">只需要4行代码即可实现,试试看。</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">提示:dieOnZeroEnergy:true</span></span>
|
||||
|
@ -116,4 +116,4 @@ import{_ as t,J as o,o as r,c,k as e,a,N as n,w as l,V as i}from"./chunks/framew
|
|||
<span class="line"><span style="color:#A6ACCD;">footprint: -1,-1,1,1</span></span></code></pre></div><hr><h3 id="constructionfootprint" tabindex="-1">constructionFootprint <a class="header-anchor" href="#constructionfootprint" aria-label="Permalink to "constructionFootprint""></a></h3><h4 id="constructionfootprint-代码简介" tabindex="-1">constructionFootprint-代码简介 <a class="header-anchor" href="#constructionfootprint-代码简介" aria-label="Permalink to "constructionFootprint-代码简介""></a></h4><p>代码:constructionFootprint 中文释义:建筑覆盖范围 类型:多整型 隶属于:构建代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>基础规则同上,这个区域内不能建造建筑,但是单位可以通过。<br> 一般需要设定比上一个面积大。<br> 好处是即使建造的密密麻麻,单位也有路可走。</p></div><h4 id="constructionfootprint-演示例子" tabindex="-1">constructionFootprint-演示例子 <a class="header-anchor" href="#constructionfootprint-演示例子" aria-label="Permalink to "constructionFootprint-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">constructionFootprint: -1,-1,1,3</span></span></code></pre></div><hr><h3 id="displayfootprint" tabindex="-1">displayFootprint <a class="header-anchor" href="#displayfootprint" aria-label="Permalink to "displayFootprint""></a></h3><h4 id="displayfootprint-代码简介" tabindex="-1">displayFootprint-代码简介 <a class="header-anchor" href="#displayfootprint-代码简介" aria-label="Permalink to "displayFootprint-代码简介""></a></h4><p>代码:displayFootprint 中文释义:建筑选择UI 类型:多整型 隶属于:构建代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>基础规则同上,用于选择单位时UI显示。不设定则默认为建筑覆盖区域。</p></div><h4 id="displayfootprint-演示例子" tabindex="-1">displayFootprint-演示例子 <a class="header-anchor" href="#displayfootprint-演示例子" aria-label="Permalink to "displayFootprint-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">displayFootprint: 0,0,1,1</span></span></code></pre></div><hr><h3 id="buildingselectionoffset" tabindex="-1">buildingSelectionOffset <a class="header-anchor" href="#buildingselectionoffset" aria-label="Permalink to "buildingSelectionOffset""></a></h3><h4 id="buildingselectionoffset-代码简介" tabindex="-1">buildingSelectionOffset-代码简介 <a class="header-anchor" href="#buildingselectionoffset-代码简介" aria-label="Permalink to "buildingSelectionOffset-代码简介""></a></h4><p>代码:buildingSelectionOffset 中文释义:建筑UI调整 类型:整型 隶属于:构建代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>基础规则同上,用于选择单位时UI显示。不设定则默认为建筑覆盖区域。</p></div><h4 id="buildingselectionoffset-演示例子" tabindex="-1">buildingSelectionOffset-演示例子 <a class="header-anchor" href="#buildingselectionoffset-演示例子" aria-label="Permalink to "buildingSelectionOffset-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">buildingSelectionOffset: 4</span></span></code></pre></div><hr>`,183);function F(_,T,R,w,B,I){const s=o("font");return r(),c("div",null,[d,e("p",null,[a("主要在"),n(s,{color:"orange"},{default:l(()=>[a("启用多个自定义Mod")]),_:1}),a("进行优先级定义"),h,a(" 以逗号分隔的名称列表。像"),n(s,{color:"orange"},{default:l(()=>[a("名称一样,但优先级较低")]),_:1}),a(",对于"),n(s,{color:"orange"},{default:l(()=>[a("启用多个自定义mod")]),_:1}),a("有用。")]),u,e("div",b,[g,e("p",null,[a("早期是用于在"),n(s,{color:"orange"},{default:l(()=>[a("builtFrom")]),_:1}),a("的代码,并结合科技等级使用。如果工厂的等级低于单位的目标科技等级,则会在工厂里面隐藏该单位。"),m,a("自铁锈1.09后出现"),n(s,{color:"orange"},{default:l(()=>[a("overrideAndReplace")]),_:1}),a("后,该方法则不建议使用。有关于新策略,请参考"),n(s,{color:"orange"},{default:l(()=>[a("overrideAndReplace")]),_:1}),a("代码文档指南。"),y,a(" 设置单位的科技等级,共有3个级别,1级GUI显示为绿色,2、3级显示为黄色。超过3报错。")])]),C,e("div",k,[f,e("p",null,[a("若设置成true,则会在单位死亡时产生血迹,"),q,a(" 图像在"),n(s,{color:"orange"},{default:l(()=>[a("drawable/blood_mark.png"),v,a("当hideScorchMark:true")]),_:1}),a("时可以隐藏非生物则为黑色爆炸效果。")])]),x,e("div",D,[A,e("p",null,[a("能量恢复是持续的,如果你设置了"),n(s,{color:"orange"},{default:l(()=>[a("energyNeedsToRechargeToFull")]),_:1}),a(", 那么攻击时按energyRegen恢复,耗尽时的灰条按此处设定值恢复。")])]),P])}const N=t(p,[["render",F]]);export{E as __pageData,N as default};
|
||||
<span class="line"><span style="color:#A6ACCD;">buildingSelectionOffset: 4</span></span></code></pre></div><hr>`,183);function P(T,R,w,_,B,I){const s=c("font");return o(),r("div",null,[d,e("p",null,[a("主要在"),n(s,{color:"orange"},{default:l(()=>[a("启用多个自定义Mod")]),_:1}),a("进行优先级定义"),h,a(" 以逗号分隔的名称列表。像"),n(s,{color:"orange"},{default:l(()=>[a("名称一样,但优先级较低")]),_:1}),a(",对于"),n(s,{color:"orange"},{default:l(()=>[a("启用多个自定义mod")]),_:1}),a("有用。")]),u,e("div",b,[g,e("p",null,[a("早期是用于在"),n(s,{color:"orange"},{default:l(()=>[a("builtFrom")]),_:1}),a("的代码,并结合科技等级使用。如果工厂的等级低于单位的目标科技等级,则会在工厂里面隐藏该单位。"),m,a("自铁锈1.09后出现"),n(s,{color:"orange"},{default:l(()=>[a("overrideAndReplace")]),_:1}),a("后,该方法则不建议使用。有关于新策略,请参考"),n(s,{color:"orange"},{default:l(()=>[a("overrideAndReplace")]),_:1}),a("代码文档指南。"),y,a(" 设置单位的科技等级,共有3个级别,1级GUI显示为绿色,2、3级显示为黄色。超过3报错。")])]),C,e("div",k,[f,e("p",null,[a("若设置成true,则会在单位死亡时产生血迹,"),q,a(" 图像在"),n(s,{color:"orange"},{default:l(()=>[a("drawable/blood_mark.png"),v,a("当hideScorchMark:true")]),_:1}),a("时可以隐藏非生物则为黑色爆炸效果。")])]),x,e("div",D,[F,e("p",null,[a("能量恢复是持续的,如果你设置了"),n(s,{color:"orange"},{default:l(()=>[a("energyNeedsToRechargeToFull")]),_:1}),a(", 那么攻击时按energyRegen恢复,耗尽时的灰条按此处设定值恢复。")])]),A])}const E=t(p,[["render",P]]);export{M as __pageData,E as default};
|
119
assets/src_Unit_core.md.0ec23ba0.lean.js
Normal file
119
assets/src_Unit_core.md.0ec23ba0.lean.js
Normal file
|
@ -0,0 +1,119 @@
|
|||
import{_ as t,v as o,b as r,F as e,L as a,E as n,O as l,R as i,M as c}from"./chunks/framework.c741a37c.js";const M=JSON.parse('{"title":"[core]组","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"src/Unit/core.md","filePath":"src/Unit/core.md"}'),p={name:"src/Unit/core.md"},d=i(`<h1 id="core-组" tabindex="-1"><strong>[core]组</strong> <a class="header-anchor" href="#core-组" aria-label="Permalink to "**[core]组**""></a></h1><h2 id="第一类-通用代码组" tabindex="-1">第一类-通用代码组 <a class="header-anchor" href="#第一类-通用代码组" aria-label="Permalink to "第一类-通用代码组""></a></h2><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>以下的代码为<code>通用代码</code>,多半是必要的代码,如果不包括这些,可能在<code>绝大多数情况下导致错误</code>。</p></div><h3 id="name" tabindex="-1">name <a class="header-anchor" href="#name" aria-label="Permalink to "name""></a></h3><h4 id="name-代码简介" tabindex="-1">name-代码简介 <a class="header-anchor" href="#name-代码简介" aria-label="Permalink to "name-代码简介""></a></h4><p>代码:name 中文释义:名字 类型:字符型 隶属于:通用代码组</p><h4 id="name-要点指示" tabindex="-1">name-要点指示 <a class="header-anchor" href="#name-要点指示" aria-label="Permalink to "name-要点指示""></a></h4><hr><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-TalJ6" id="tab-0XplRtX" checked="checked"><label for="tab-0XplRtX">JDSALing</label><input type="radio" name="group-TalJ6" id="tab-lCuXBoq"><label for="tab-lCuXBoq">Tobby3600</label></div><div class="blocks"><div class="language-bash active"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">定义单位原始名称,可以是中文。</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">游戏使用它区分其它单位。</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">如果没有在[displayText或者语言文件设置显示名称],</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">那么它也将作为单位的显示名称。</span><span style="color:#A6ACCD;"> </span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">具体描述文件位置(内部</span><span style="color:#A6ACCD;">):</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">1.assets/translationsStrings_zh.properties</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">格式:units.单位名称.name</span><span style="color:#A6ACCD;">=写单位显示的名称</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">units.单位名称.description</span><span style="color:#A6ACCD;">= [[填单位显示的描述]]</span></span></code></pre></div><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">ini文件的单独定义(外部-推荐</span><span style="color:#A6ACCD;">):</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">2.displayText:</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-单位的标题</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">displayDescription:</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-单位的描述</span></span></code></pre></div></div></div><p>特别提醒:<code>displayText支持本地化</code>,例如如果要写一个<code>多语言的单位描述</code>,可以通过以下例子:</p><h4 id="name-演示例子" tabindex="-1">name-演示例子 <a class="header-anchor" href="#name-演示例子" aria-label="Permalink to "name-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">name: Ling</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">displayText: English Title Text</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">displayText_zh:中文标题</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">displayDescription: -English Description</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">displayDescription_zh:-中文描述</span></span></code></pre></div><hr><h3 id="price" tabindex="-1">price <a class="header-anchor" href="#price" aria-label="Permalink to "price""></a></h3><h4 id="price-代码简介" tabindex="-1">price-代码简介 <a class="header-anchor" href="#price-代码简介" aria-label="Permalink to "price-代码简介""></a></h4><p>代码:price 中文释义:价格 类型:整数 隶属于:通用代码组</p><h4 id="price-要点指示" tabindex="-1">price-要点指示 <a class="header-anchor" href="#price-要点指示" aria-label="Permalink to "price-要点指示""></a></h4><p>定义单位的价格,显示在单位信息中,建造时也以此价格为准。</p><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-gm7Dc" id="tab-F0plxC0" checked="checked"><label for="tab-F0plxC0">Tobby3600</label></div><div class="blocks"><div class="language-bash active"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">默认情况下,price只需要填写一个整数,此时使用的是游戏内自带的资金credit;</span><span style="color:#A6ACCD;"> </span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">想要更改资源类型,可以使用:</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">\`</span><span style="color:#FFCB6B;">price:资源1</span><span style="color:#C3E88D;">=数值1,资源2=数值2,资源3=数值3,……</span><span style="color:#89DDFF;">\`</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">的格式</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">(前提是此资源要在使用的单位进行定义)。</span></span></code></pre></div></div></div><h4 id="price-演示例子" tabindex="-1">price-演示例子 <a class="header-anchor" href="#price-演示例子" aria-label="Permalink to "price-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">price:120,石油=80,铁=60</span></span></code></pre></div><hr><h3 id="radius" tabindex="-1">radius <a class="header-anchor" href="#radius" aria-label="Permalink to "radius""></a></h3><h4 id="radius-代码简介" tabindex="-1">radius-代码简介 <a class="header-anchor" href="#radius-代码简介" aria-label="Permalink to "radius-代码简介""></a></h4><p>代码:radius 中文释义:半径 类型:整数 隶属于:通用代码组</p><h4 id="radius-要点指示" tabindex="-1">radius-要点指示 <a class="header-anchor" href="#radius-要点指示" aria-label="Permalink to "radius-要点指示""></a></h4><p>半径定义单位的<code>实际碰撞体积和显示范围</code>,在未设置<code>选择框大小</code>时,半径决定是单位选择框的大小。 半径的单位是像素(px)。</p><h4 id="radius-演示例子" tabindex="-1">radius-演示例子 <a class="header-anchor" href="#radius-演示例子" aria-label="Permalink to "radius-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">radius:20</span></span></code></pre></div><hr><h3 id="mass" tabindex="-1">mass <a class="header-anchor" href="#mass" aria-label="Permalink to "mass""></a></h3><h4 id="mass-代码简介" tabindex="-1">mass-代码简介 <a class="header-anchor" href="#mass-代码简介" aria-label="Permalink to "mass-代码简介""></a></h4><p>代码:mass 中文释义:质量 类型:整数 隶属于:通用代码组</p><h4 id="mass-要点指示" tabindex="-1">mass-要点指示 <a class="header-anchor" href="#mass-要点指示" aria-label="Permalink to "mass-要点指示""></a></h4><p>质量决定单位在各种碰撞时的效果。<code>质量越大,其他单位越难推动</code>。</p><h4 id="mass-演示例子" tabindex="-1">mass-演示例子 <a class="header-anchor" href="#mass-演示例子" aria-label="Permalink to "mass-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">mass:2000</span></span></code></pre></div><hr><h3 id="maxhp" tabindex="-1">maxHp <a class="header-anchor" href="#maxhp" aria-label="Permalink to "maxHp""></a></h3><h4 id="maxhp-代码简介" tabindex="-1">maxHp-代码简介 <a class="header-anchor" href="#maxhp-代码简介" aria-label="Permalink to "maxHp-代码简介""></a></h4><p>代码:maxHp 中文释义:最大生命值 类型:整数 隶属于:通用代码组</p><h4 id="maxhp-要点指示" tabindex="-1">maxHp-要点指示 <a class="header-anchor" href="#maxhp-要点指示" aria-label="Permalink to "maxHp-要点指示""></a></h4><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-5HhIZ" id="tab-mm05lnw" checked="checked"><label for="tab-mm05lnw">tobby3600</label></div><div class="blocks"><div class="language-bash active"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">最大生命值定义单位在不修改它时最多能够有多少血量,</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">单位默认生成时即是这个血量。</span></span>
|
||||
<span class="line"><span style="color:#82AAFF;">maxHp可以通过单位参考.maxHp</span><span style="color:#89DDFF;">()</span><span style="color:#A6ACCD;">来获取,</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">也可以通过[action]进行修改。</span></span></code></pre></div></div></div><h4 id="maxhp-演示例子" tabindex="-1">maxHp-演示例子 <a class="header-anchor" href="#maxhp-演示例子" aria-label="Permalink to "maxHp-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">maxHp:600</span></span></code></pre></div><h3 id="altnames" tabindex="-1">altNames <a class="header-anchor" href="#altnames" aria-label="Permalink to "altNames""></a></h3><h4 id="altnames-代码简介" tabindex="-1">altNames-代码简介 <a class="header-anchor" href="#altnames-代码简介" aria-label="Permalink to "altNames-代码简介""></a></h4><p>代码:altNames 中文释义:别名/曾用名 类型:字符型 隶属于:通用代码组</p><h4 id="altnames-要点指示" tabindex="-1">altNames-要点指示 <a class="header-anchor" href="#altnames-要点指示" aria-label="Permalink to "altNames-要点指示""></a></h4><p>altNames代码要点指示:</p><h4 id="jdsaling的小提示" tabindex="-1"><strong>JDSALing的小提示</strong> <a class="header-anchor" href="#jdsaling的小提示" aria-label="Permalink to "**JDSALing的小提示**""></a></h4>`,51),h=e("br",null,null,-1),u=i(`<h4 id="altnames-演示例子" tabindex="-1">altNames-演示例子 <a class="header-anchor" href="#altnames-演示例子" aria-label="Permalink to "altNames-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">altNames:ling,tobby3600,coldmint</span></span></code></pre></div><hr><h3 id="class" tabindex="-1">class <a class="header-anchor" href="#class" aria-label="Permalink to "class""></a></h3><h4 id="class-代码简介" tabindex="-1">class-代码简介 <a class="header-anchor" href="#class-代码简介" aria-label="Permalink to "class-代码简介""></a></h4><p>代码:class 中文释义:类 类型:字符型 隶属于:通用代码组</p><p>无实际用处,可以删除。<br> Luke:保留供将来使用,默认情况下必须为<code>CustomUnitMetadata</code>。由于该代码无实际用途,可以忽略该代码<br> 该代码后面什么都可以输,但没有实际用途。或许在未来会有用。</p><h4 id="class-演示例子" tabindex="-1">class-演示例子 <a class="header-anchor" href="#class-演示例子" aria-label="Permalink to "class-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">class:CustomUnitMetadata</span></span></code></pre></div><hr><h3 id="strictlevel" tabindex="-1">strictLevel <a class="header-anchor" href="#strictlevel" aria-label="Permalink to "strictLevel""></a></h3><h4 id="strictlevel-代码简介" tabindex="-1">strictLevel-代码简介 <a class="header-anchor" href="#strictlevel-代码简介" aria-label="Permalink to "strictLevel-代码简介""></a></h4><p>代码:strictLevel 中文释义:严格级别 类型:数字固定型 隶属于:通用代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>建议添加到"all-units.template"以应用于所有单位,进行统一查错。<br> 默认值为0,忽略代码重复。设为1时如果当前单位内有重复代码,则报错。</p></div><h4 id="strictlevel-演示例子" tabindex="-1">strictLevel-演示例子 <a class="header-anchor" href="#strictlevel-演示例子" aria-label="Permalink to "strictLevel-演示例子""></a></h4><div class="language-all-units.template,ini"><button title="Copy Code" class="copy"></button><span class="lang">all-units.template,ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">strictLevel:1</span></span></code></pre></div><hr><h3 id="techlevel" tabindex="-1">techLevel <a class="header-anchor" href="#techlevel" aria-label="Permalink to "techLevel""></a></h3><h4 id="techlevel-代码简介" tabindex="-1">techLevel-代码简介 <a class="header-anchor" href="#techlevel-代码简介" aria-label="Permalink to "techLevel-代码简介""></a></h4><p>代码:techLevel 中文释义:科技等级 类型:数字固定型 隶属于:通用代码组</p>`,20),b={class:"tip custom-block"},g=e("p",{class:"custom-block-title"},"TIP",-1),m=e("br",null,null,-1),y=e("br",null,null,-1),C=i(`<h4 id="techlevel-演示例子" tabindex="-1">techLevel-演示例子 <a class="header-anchor" href="#techlevel-演示例子" aria-label="Permalink to "techLevel-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">techLevel:2</span></span></code></pre></div><hr><h3 id="buildspeed" tabindex="-1">buildSpeed <a class="header-anchor" href="#buildspeed" aria-label="Permalink to "buildSpeed""></a></h3><h4 id="buildspeed-代码简介" tabindex="-1">buildSpeed-代码简介 <a class="header-anchor" href="#buildspeed-代码简介" aria-label="Permalink to "buildSpeed-代码简介""></a></h4><p>代码:buildSpeed 中文释义:建造速度 类型:浮点/秒型 隶属于:通用代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>建造此单位需要的时间,填秒。<br> 以前的计算方式为:此处所填时间=1÷(60x你需要的秒)如果定义了工厂速率则需要乘以建造乘数。</p></div><h4 id="buildspeed-演示例子" tabindex="-1">buildSpeed-演示例子 <a class="header-anchor" href="#buildspeed-演示例子" aria-label="Permalink to "buildSpeed-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">buildSpeed:30s</span></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;">#或者:</span></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;">## 下方可能有误差</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">buildSpeed:0.0006</span></span></code></pre></div><hr><h3 id="isbio" tabindex="-1">isBio <a class="header-anchor" href="#isbio" aria-label="Permalink to "isBio""></a></h3><h4 id="isbio-代码简介" tabindex="-1">isBio-代码简介 <a class="header-anchor" href="#isbio-代码简介" aria-label="Permalink to "isBio-代码简介""></a></h4><p>代码:isBio 中文释义:是生物 类型:布尔型 隶属于:通用代码组</p>`,13),k={class:"tip custom-block"},f=e("p",{class:"custom-block-title"},"TIP",-1),q=e("br",null,null,-1),v=e("br",null,null,-1),x=i(`<h4 id="isbio-演示例子" tabindex="-1">isBio-演示例子 <a class="header-anchor" href="#isbio-演示例子" aria-label="Permalink to "isBio-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">isBio:true</span></span></code></pre></div><hr><h3 id="isbug" tabindex="-1">isBug <a class="header-anchor" href="#isbug" aria-label="Permalink to "isBug""></a></h3><h4 id="isbug-代码简介" tabindex="-1">isBug-代码简介 <a class="header-anchor" href="#isbug-代码简介" aria-label="Permalink to "isBug-代码简介""></a></h4><p>代码:isBug 中文释义:是虫子 类型:布尔型 隶属于:通用代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>若设置成true,则会认定为虫子,用于沙盒中的单独分类。</p></div><h4 id="isbug-演示例子" tabindex="-1">isBug-演示例子 <a class="header-anchor" href="#isbug-演示例子" aria-label="Permalink to "isBug-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">isBug:true</span></span></code></pre></div><hr><h3 id="isbuilder" tabindex="-1">isBuilder <a class="header-anchor" href="#isbuilder" aria-label="Permalink to "isBuilder""></a></h3><h4 id="isbuilder-代码简介" tabindex="-1">isBuilder-代码简介 <a class="header-anchor" href="#isbuilder-代码简介" aria-label="Permalink to "isBuilder-代码简介""></a></h4><p>代码:isBuilder 中文释义:是建造者 类型:布尔型 隶属于:通用代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>若设置成true,则会需要此单位建造建筑物,则通常需要此代码。 并且默认设为[ai] useAsBuilder。</p></div><h4 id="isbuilder-演示例子" tabindex="-1">isBuilder-演示例子 <a class="header-anchor" href="#isbuilder-演示例子" aria-label="Permalink to "isBuilder-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">isBuilder:true</span></span></code></pre></div><hr><h3 id="streamingcost" tabindex="-1">streamingCost <a class="header-anchor" href="#streamingcost" aria-label="Permalink to "streamingCost""></a></h3><h4 id="streamingcost-代码简介" tabindex="-1">streamingCost-代码简介 <a class="header-anchor" href="#streamingcost-代码简介" aria-label="Permalink to "streamingCost-代码简介""></a></h4><p>代码:streamingCost 中文释义:流式资金 类型:整数型 隶属于:通用代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>和价格一样,但在建造时逐渐消耗资金,如果在构建过程中资源耗尽,<br> 建造或生产队列将暂停。就像是红警中那样。铁锈默认是预先扣除资金。<br> 若使用该代码,则玩家的每秒资金将会根据流式资金的算法进行扣减。</p></div><h4 id="streamingcost-演示例子" tabindex="-1">streamingCost-演示例子 <a class="header-anchor" href="#streamingcost-演示例子" aria-label="Permalink to "streamingCost-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">streamingCost:1145</span></span></code></pre></div><hr><h3 id="switchpricewithstreamingcost" tabindex="-1">switchPriceWithStreamingCost <a class="header-anchor" href="#switchpricewithstreamingcost" aria-label="Permalink to "switchPriceWithStreamingCost""></a></h3><h4 id="switchpricewithstreamingcost-代码简介" tabindex="-1">switchPriceWithStreamingCost-代码简介 <a class="header-anchor" href="#switchpricewithstreamingcost-代码简介" aria-label="Permalink to "switchPriceWithStreamingCost-代码简介""></a></h4><p>代码:switchPriceWithStreamingCost(S.P.S.C.)<br> 中文释义:流式资金模式全局切换 类型:布尔型 隶属于:通用代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>快捷设置为默认资金消耗方式或为流式建造方式。 建议使用模板快速将一个模组为所有单位切换流资源。 例如all-units.template.</p></div><h4 id="switchpricewithstreamingcost-演示例子" tabindex="-1">switchPriceWithStreamingCost-演示例子 <a class="header-anchor" href="#switchpricewithstreamingcost-演示例子" aria-label="Permalink to "switchPriceWithStreamingCost-演示例子""></a></h4><div class="language-ini,all-units.template"><button title="Copy Code" class="copy"></button><span class="lang">ini,all-units.template</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">switchPriceWithStreamingCost:true</span></span></code></pre></div><h2 id="第二类-单位统计代码组" tabindex="-1">第二类-单位统计代码组 <a class="header-anchor" href="#第二类-单位统计代码组" aria-label="Permalink to "第二类-单位统计代码组""></a></h2><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>非必须存在的代码,请根据情况自行使用</p></div><h3 id="selfregenrate" tabindex="-1">selfRegenRate <a class="header-anchor" href="#selfregenrate" aria-label="Permalink to "selfRegenRate""></a></h3><h4 id="selfregenrate-代码简介" tabindex="-1">selfRegenRate-代码简介 <a class="header-anchor" href="#selfregenrate-代码简介" aria-label="Permalink to "selfRegenRate-代码简介""></a></h4><p>代码:selfRegenRate 中文释义:生命恢复速度 类型:浮点型 隶属于:单位统计代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>此数值决定每帧增加血量。游戏内默认速度下,一秒为60逻辑帧,而你看到的FPS帧数为渲染帧,所以电脑上几百帧和手机上60帧和省电模式下30帧并不影响计算。所以不要写太大。可以写负值用于自毁。</p></div><h4 id="selfregenrate-演示例子" tabindex="-1">selfRegenRate-演示例子 <a class="header-anchor" href="#selfregenrate-演示例子" aria-label="Permalink to "selfRegenRate-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">maxHp:500</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">selfRegenRate:0.5</span></span></code></pre></div><hr><h3 id="maxshield" tabindex="-1">maxShield <a class="header-anchor" href="#maxshield" aria-label="Permalink to "maxShield""></a></h3><h4 id="maxshield-代码简介" tabindex="-1">maxShield-代码简介 <a class="header-anchor" href="#maxshield-代码简介" aria-label="Permalink to "maxShield-代码简介""></a></h4><p>代码:maxShield 中文释义:护盾值 类型:整型 隶属于:单位统计代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>单位最大护盾值,默认生成时即为此值。如果设置了startShieldAtZero:true,则初始为0.</p></div><h4 id="maxshield-演示例子" tabindex="-1">maxShield-演示例子 <a class="header-anchor" href="#maxshield-演示例子" aria-label="Permalink to "maxShield-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">maxShield:3000</span></span></code></pre></div><hr><h3 id="startshieldatzero" tabindex="-1">startShieldAtZero <a class="header-anchor" href="#startshieldatzero" aria-label="Permalink to "startShieldAtZero""></a></h3><h4 id="startshieldatzero-代码简介" tabindex="-1">startShieldAtZero-代码简介 <a class="header-anchor" href="#startshieldatzero-代码简介" aria-label="Permalink to "startShieldAtZero-代码简介""></a></h4><p>代码:startShieldAtZero 中文释义:护盾初始值为0 类型:布尔型 隶属于:单位统计代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>如果为true,则单位护盾值从0开始增加。</p></div><h4 id="startshieldatzero-演示例子" tabindex="-1">startShieldAtZero-演示例子 <a class="header-anchor" href="#startshieldatzero-演示例子" aria-label="Permalink to "startShieldAtZero-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">maxShield:3000</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">startShieldAtZero:true</span></span></code></pre></div><hr><h3 id="shieldregen" tabindex="-1">shieldRegen <a class="header-anchor" href="#shieldregen" aria-label="Permalink to "shieldRegen""></a></h3><h4 id="shieldregen-代码简介" tabindex="-1">shieldRegen-代码简介 <a class="header-anchor" href="#shieldregen-代码简介" aria-label="Permalink to "shieldRegen-代码简介""></a></h4><p>代码:shieldRegen 中文释义:护盾恢复速度 类型:浮点型 隶属于:单位统计代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>此数值决定每帧增加护盾值,游戏内一秒为60帧,所以不要写太大。可以写负值。</p></div><h4 id="shieldregen-演示例子" tabindex="-1">shieldRegen-演示例子 <a class="header-anchor" href="#shieldregen-演示例子" aria-label="Permalink to "shieldRegen-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">maxShield:3000</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">shieldRegen:0.5</span></span></code></pre></div><hr><h3 id="energymax" tabindex="-1">energyMax <a class="header-anchor" href="#energymax" aria-label="Permalink to "energyMax""></a></h3><h4 id="energymax-代码简介" tabindex="-1">energyMax-代码简介 <a class="header-anchor" href="#energymax-代码简介" aria-label="Permalink to "energyMax-代码简介""></a></h4><p>代码:energyMax 中文释义:能量值 类型:浮点型 隶属于:单位统计代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>默认值为0。可以用作炮塔,激光防御和行动的弹药的能量。</p></div><h4 id="energymax-演示例子" tabindex="-1">energyMax-演示例子 <a class="header-anchor" href="#energymax-演示例子" aria-label="Permalink to "energyMax-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">energyMax:5</span></span></code></pre></div><hr><h3 id="energyregen" tabindex="-1">energyRegen <a class="header-anchor" href="#energyregen" aria-label="Permalink to "energyRegen""></a></h3><h4 id="energyregen-代码简介" tabindex="-1">energyRegen-代码简介 <a class="header-anchor" href="#energyregen-代码简介" aria-label="Permalink to "energyRegen-代码简介""></a></h4><p>代码:energyRegen 中文释义:能量恢复速度 类型:浮点型 隶属于:单位统计代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>能量每帧恢复速度,游戏内一秒为60帧,所以不要写太大。可以写负值。</p></div><h4 id="energyregen-演示例子" tabindex="-1">energyRegen-演示例子 <a class="header-anchor" href="#energyregen-演示例子" aria-label="Permalink to "energyRegen-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">energyRegen:0.4</span></span></code></pre></div><hr><h3 id="energyregenwhenrecharging" tabindex="-1">energyRegenWhenRecharging <a class="header-anchor" href="#energyregenwhenrecharging" aria-label="Permalink to "energyRegenWhenRecharging""></a></h3><h4 id="energyregenwhenrecharging-代码简介" tabindex="-1">energyRegenWhenRecharging-代码简介 <a class="header-anchor" href="#energyregenwhenrecharging-代码简介" aria-label="Permalink to "energyRegenWhenRecharging-代码简介""></a></h4><p>代码:energyRegenWhenRecharging 中文释义:充能时能量恢复速度 类型:浮点型 隶属于:单位统计代码组</p>`,77),D={class:"tip custom-block"},F=e("p",{class:"custom-block-title"},"TIP",-1),A=i(`<h4 id="energyregenwhenrecharging-演示例子" tabindex="-1">energyRegenWhenRecharging-演示例子 <a class="header-anchor" href="#energyregenwhenrecharging-演示例子" aria-label="Permalink to "energyRegenWhenRecharging-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">energyMax:1</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">energyRegenWhenRecharging:0.4</span></span></code></pre></div><hr><h3 id="energyneedstorechargetofull" tabindex="-1">energyNeedsToRechargeToFull <a class="header-anchor" href="#energyneedstorechargetofull" aria-label="Permalink to "energyNeedsToRechargeToFull""></a></h3><h4 id="energyneedstorechargetofull-代码简介" tabindex="-1">energyNeedsToRechargeToFull-代码简介 <a class="header-anchor" href="#energyneedstorechargetofull-代码简介" aria-label="Permalink to "energyNeedsToRechargeToFull-代码简介""></a></h4><p>代码:energyNeedsToRechargeToFull 中文释义:能量需要充满 类型:布尔型 隶属于:单位统计代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>如果能量耗尽,则需要完全充能才能进行攻击。</p></div><h4 id="energyneedstorechargetofull-演示例子" tabindex="-1">energyNeedsToRechargeToFull-演示例子 <a class="header-anchor" href="#energyneedstorechargetofull-演示例子" aria-label="Permalink to "energyNeedsToRechargeToFull-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">energyMax:4</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">energyNeedsToRechargeToFull:true</span></span></code></pre></div><hr><h3 id="armour" tabindex="-1">armour <a class="header-anchor" href="#armour" aria-label="Permalink to "armour""></a></h3><h4 id="armour-代码简介" tabindex="-1">armour-代码简介 <a class="header-anchor" href="#armour-代码简介" aria-label="Permalink to "armour-代码简介""></a></h4><p>代码:armour 中文释义:装甲 类型:整型 隶属于:单位统计代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>抵消敌方攻击所造成的伤害。</p></div><h4 id="armour-演示例子" tabindex="-1">armour-演示例子 <a class="header-anchor" href="#armour-演示例子" aria-label="Permalink to "armour-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">armour:40</span></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;">#如果受到40以上的常规攻击,则进行抵消,反之返回1伤害点。</span></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;">#例如45伤害,40护甲,那么将获得5点伤害。</span></span></code></pre></div><hr><h3 id="armourmindamagetokeep" tabindex="-1">armourMinDamageToKeep <a class="header-anchor" href="#armourmindamagetokeep" aria-label="Permalink to "armourMinDamageToKeep""></a></h3><h4 id="armourmindamagetokeep-代码简介" tabindex="-1">armourMinDamageToKeep-代码简介 <a class="header-anchor" href="#armourmindamagetokeep-代码简介" aria-label="Permalink to "armourMinDamageToKeep-代码简介""></a></h4><p>代码:armourMinDamageToKeep 中文释义:装甲最低伤害 类型:整型 隶属于:单位统计代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>至少造成多少点伤害,默认为1.防止护甲太高完全打不动。</p></div><h4 id="armourmindamagetokeep-演示例子" tabindex="-1">armourMinDamageToKeep-演示例子 <a class="header-anchor" href="#armourmindamagetokeep-演示例子" aria-label="Permalink to "armourMinDamageToKeep-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">armour:40</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">armourMinDamageToKeep:2</span></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;">#如果受到40以下的常规攻击,则进行最低伤害判定</span></span></code></pre></div><hr><h3 id="borrowresourceswhilealive" tabindex="-1">borrowResourcesWhileAlive <a class="header-anchor" href="#borrowresourceswhilealive" aria-label="Permalink to "borrowResourcesWhileAlive""></a></h3><h4 id="borrowresourceswhilealive-代码简介" tabindex="-1">borrowResourcesWhileAlive-代码简介 <a class="header-anchor" href="#borrowresourceswhilealive-代码简介" aria-label="Permalink to "borrowResourcesWhileAlive-代码简介""></a></h4><p>代码:armour 中文释义:资源活着时借用 类型:Price型 隶属于:单位统计代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>创建时获取这些资源,删除或销毁时将其返回。 例如用于电力逻辑,负数供电和正数耗电。</p></div><h4 id="borrowresourceswhilealive-演示例子" tabindex="-1">borrowResourcesWhileAlive-演示例子 <a class="header-anchor" href="#borrowresourceswhilealive-演示例子" aria-label="Permalink to "borrowResourcesWhileAlive-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">borrowResourcesWhileAlive:5000</span></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;">#单位活着的时候给予5000金币,死亡扣除5000金币</span></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;">#一个小型贷款系统,</span></span></code></pre></div><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-KFEGT" id="tab-gzMVmvx" checked="checked"><label for="tab-gzMVmvx">考考你</label><input type="radio" name="group-KFEGT" id="tab-jzi6qZI"><label for="tab-jzi6qZI">显示答案</label></div><div class="blocks"><div class="language-bash active"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">如果这里要通过这个代码做一个小的贷款系统,</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">并经过一段时间让单位死亡。</span><span style="color:#A6ACCD;"> </span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">只需要4行代码即可实现,试试看。</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">提示:dieOnZeroEnergy:true</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">(</span><span style="color:#FFCB6B;">无能量时死亡</span><span style="color:#89DDFF;">|</span><span style="color:#FFCB6B;">如果能量值为零,该单位死亡</span><span style="color:#89DDFF;">)</span></span></code></pre></div><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#676E95;font-style:italic;">#参考答案为:</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[</span><span style="color:#A6ACCD;">core</span><span style="color:#89DDFF;">]</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">borrowResourcesWhileAlive:5000</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">energyMax:1</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">energyRegen:-0.4</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">dieOnZeroEnergy:true</span></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;">#原理是通过能量为0单位死亡并通过这个代码还钱,</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">是很简陋的贷款思路,当然,在后续会有更加高级的思路。</span></span></code></pre></div></div></div><hr><h3 id="generation-resources" tabindex="-1">generation_resources <a class="header-anchor" href="#generation-resources" aria-label="Permalink to "generation_resources""></a></h3><h4 id="generation-resources-代码简介" tabindex="-1">generation_resources-代码简介 <a class="header-anchor" href="#generation-resources-代码简介" aria-label="Permalink to "generation_resources-代码简介""></a></h4><p>代码:generation_resources 中文释义:资源获取 类型:Price型 隶属于:单位统计代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>单位定时获得的资源,可自定义资源。</p></div><h4 id="generation-resources-演示例子" tabindex="-1">generation_resources-演示例子 <a class="header-anchor" href="#generation-resources-演示例子" aria-label="Permalink to "generation_resources-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">generation_resources:10</span></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;">#or</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">generation_resources:</span><span style="color:#F07178;">credits</span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;">10</span></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;">#常规产出10credits/1s游戏资金</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">-----------我是分界线----------</span></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;">#自定义资源写法</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">generation_resources:金属=5</span></span></code></pre></div><hr><h3 id="generation-active" tabindex="-1">generation_active <a class="header-anchor" href="#generation-active" aria-label="Permalink to "generation_active""></a></h3><h4 id="generation-active-代码简介" tabindex="-1">generation_active-代码简介 <a class="header-anchor" href="#generation-active-代码简介" aria-label="Permalink to "generation_active-代码简介""></a></h4><p>代码:generation_active 中文释义:资源获取条件 类型:逻辑布尔型 隶属于:单位统计代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>获取资源条件。可用于受损时无法产出。</p></div><h4 id="generation-active-演示例子" tabindex="-1">generation_active-演示例子 <a class="header-anchor" href="#generation-active-演示例子" aria-label="Permalink to "generation_active-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;">#1.14写法</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">generation_resources:金属=5</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">generation_active: if not self.hp(</span><span style="color:#F07178;">lessThan</span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;">100)</span></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;">#1.15写法</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">generation_resources:金属=5</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">generation_active: if not self.hp<100</span></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;">#效果:单位低于1000血量可以产出资源</span></span></code></pre></div><hr><h3 id="generation-credits" tabindex="-1">generation_credits <a class="header-anchor" href="#generation-credits" aria-label="Permalink to "generation_credits""></a></h3><h4 id="generation-credits-代码简介" tabindex="-1">generation_credits-代码简介 <a class="header-anchor" href="#generation-credits-代码简介" aria-label="Permalink to "generation_credits-代码简介""></a></h4><p>代码:generation_credits 中文释义:资金获取 类型:整型 隶属于:单位统计代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>生成资源,仅用于默认的资金,也就是铁锈默认的金钱。</p></div><h4 id="generation-credits-演示例子" tabindex="-1">generation_credits-演示例子 <a class="header-anchor" href="#generation-credits-演示例子" aria-label="Permalink to "generation_credits-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#F07178;">generation_credits</span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;">5</span></span></code></pre></div><h3 id="generation-delay" tabindex="-1">generation_delay <a class="header-anchor" href="#generation-delay" aria-label="Permalink to "generation_delay""></a></h3><div class="danger custom-block"><p class="custom-block-title">DANGER</p><p>此代码为老旧代码,作者Luke不推荐使用。</p></div><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>警告:请勿使用40以外的数值,否则会有视觉Bug。 例如使用30,资金生成3,实际就为6,但是一旦这类单位多了,游戏的资金显示会出问题。</p></div><hr><h4 id="generation-delay-代码简介" tabindex="-1">generation_delay-代码简介 <a class="header-anchor" href="#generation-delay-代码简介" aria-label="Permalink to "generation_delay-代码简介""></a></h4><p>代码:generation_delay 中文释义:资金获取时间 类型:整型 隶属于:单位统计代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>多久帧添加添加一次资源(generation_credits指定数值)。 默认值为40,一秒为60帧。</p></div><h4 id="generation-delay-演示例子" tabindex="-1">generation_delay-演示例子 <a class="header-anchor" href="#generation-delay-演示例子" aria-label="Permalink to "generation_delay-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#F07178;">generation_delay</span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;">40</span></span></code></pre></div><h2 id="第三类-ui和图形代码" tabindex="-1">第三类-UI和图形代码 <a class="header-anchor" href="#第三类-ui和图形代码" aria-label="Permalink to "第三类-UI和图形代码""></a></h2><h3 id="showineditor" tabindex="-1">showInEditor <a class="header-anchor" href="#showineditor" aria-label="Permalink to "showInEditor""></a></h3><h4 id="showineditor-代码简介" tabindex="-1">showInEditor-代码简介 <a class="header-anchor" href="#showineditor-代码简介" aria-label="Permalink to "showInEditor-代码简介""></a></h4><p>代码:showInEditor 中文释义:沙盒中可见 类型:布尔型 隶属于:UI和图形代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>设置为false可在沙盒编辑器中隐藏单位。(默认为true)</p></div><h4 id="showineditor-演示例子" tabindex="-1">showInEditor-演示例子 <a class="header-anchor" href="#showineditor-演示例子" aria-label="Permalink to "showInEditor-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">showInEditor:false</span></span></code></pre></div><h3 id="displaytext-lang" tabindex="-1">displayText_LANG <a class="header-anchor" href="#displaytext-lang" aria-label="Permalink to "displayText_LANG""></a></h3><h4 id="displaytext-lang-代码简介" tabindex="-1">displayText_{LANG}-代码简介 <a class="header-anchor" href="#displaytext-lang-代码简介" aria-label="Permalink to "displayText_{LANG}-代码简介""></a></h4><p>代码:displayText_{LANG} 中文释义:界面显示文本多语言 类型:字符型 隶属于:UI和图形代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>为单位名称添加多语言支持。此方法并不方便,不如设置游戏内部语言文件,建议催Luke改。有关常见语言代码,请参考下表</p></div><table><thead><tr><th style="text-align:center;">语言代码</th><th style="text-align:center;">所属国家/地区</th><th style="text-align:center;">语言代码</th><th style="text-align:center;">所属国家/地区</th></tr></thead><tbody><tr><td style="text-align:center;">zh</td><td style="text-align:center;">(中文通用)</td><td style="text-align:center;">en(可忽略)</td><td style="text-align:center;">(英语通用)</td></tr><tr><td style="text-align:center;">zh-cn</td><td style="text-align:center;">(简体)</td><td style="text-align:center;">ru</td><td style="text-align:center;">(俄语)</td></tr><tr><td style="text-align:center;">zh-tw</td><td style="text-align:center;">(台湾)</td><td style="text-align:center;">ja</td><td style="text-align:center;">(日语)</td></tr><tr><td style="text-align:center;">zh-hk</td><td style="text-align:center;">中文(香港)</td><td style="text-align:center;">es-ES</td><td style="text-align:center;">(西班牙)</td></tr><tr><td style="text-align:center;">de</td><td style="text-align:center;">(德语)</td><td style="text-align:center;">fr-FR</td><td style="text-align:center;">法语(法国)</td></tr></tbody></table><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>其它自查(此列表并不全),不过你应该不会闲着支持这么多语言。另外英文的语言代码<code>en</code>可以忽略,因为英文在软件里为默认语言,故而无需加<code>en</code>,当然加了也没事。</p></div><p>如果你不想进行多语言化,你应该直接<code>displayText:坦克</code>,而不是<code>displayText_zh:坦克</code>,如果你写了<code>displayText_zh:坦克</code>,<br>你必须再声明一个<code>displayText:Tank</code>,否则,游戏会找不到<code>默认语言缺省值</code>,将会导致<code>mod报错而无法运行</code>。所有可以使用多语言的都有这个检查,还请各位Modder留意。(若有特别的代码,将会在它里面特别提示)</p><h4 id="displaytext-lang-演示例子" tabindex="-1">displayText_{LANG}-演示例子 <a class="header-anchor" href="#displaytext-lang-演示例子" aria-label="Permalink to "displayText_{LANG}-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;">#English</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">displayText:Tank</span></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;">#Chinese</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">displayText_zh:坦克</span></span></code></pre></div><hr><h3 id="displaydescription-lang" tabindex="-1">displayDescription_LANG <a class="header-anchor" href="#displaydescription-lang" aria-label="Permalink to "displayDescription_LANG""></a></h3><h4 id="displaydescription-代码简介" tabindex="-1">displayDescription-代码简介 <a class="header-anchor" href="#displaydescription-代码简介" aria-label="Permalink to "displayDescription-代码简介""></a></h4><p>代码:displayDescription_{LANG} 中文释义:界面显示描述 类型:字符型 隶属于:UI和图形代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>单位显示给玩家的单位描述,可以使用多语言,具体使用方法参考在<code>displayText</code>的演示说明,这里不再过多讨论。</p></div><h4 id="displaydescription-演示例子" tabindex="-1">displayDescription-演示例子 <a class="header-anchor" href="#displaydescription-演示例子" aria-label="Permalink to "displayDescription-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">displayText:坦克</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">displayDescription:只能对地,弱输出,只能在地上行走。</span></span></code></pre></div><hr><h3 id="displaylocalekey" tabindex="-1">displayLocaleKey <a class="header-anchor" href="#displaylocalekey" aria-label="Permalink to "displayLocaleKey""></a></h3><h4 id="displaylocalekey-代码简介" tabindex="-1">displayLocaleKey-代码简介 <a class="header-anchor" href="#displaylocalekey-代码简介" aria-label="Permalink to "displayLocaleKey-代码简介""></a></h4><p>代码:displayLocaleKey 中文释义:界面显示内部调用 类型:字符型 隶属于:UI和图形代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>调用内部语言文件的单位名称和说明的翻译文件。用处不大,通常是在<code>替换原版单位的同时直接调用它的原始描述</code>。该代码例子需要会拆包,如果你是初学者,该代码了解即可。</p></div><h4 id="displaylocalekey-演示例子" tabindex="-1">displayLocaleKey-演示例子 <a class="header-anchor" href="#displaylocalekey-演示例子" aria-label="Permalink to "displayLocaleKey-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">displayLocaleKey: units.mechArtillery</span></span></code></pre></div><hr><h3 id="displayradius" tabindex="-1">displayRadius <a class="header-anchor" href="#displayradius" aria-label="Permalink to "displayRadius""></a></h3><h4 id="displayradius-代码简介" tabindex="-1">displayRadius-代码简介 <a class="header-anchor" href="#displayradius-代码简介" aria-label="Permalink to "displayRadius-代码简介""></a></h4><p>代码:displayRadius 中文释义:单位选择时显示圆圈 类型:整形 隶属于:UI和图形代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>修改选择单位时显示的绿色圆圈,不更改实际碰撞(radius)和可选择范围。</p></div><h4 id="displayradius-演示例子" tabindex="-1">displayRadius-演示例子 <a class="header-anchor" href="#displayradius-演示例子" aria-label="Permalink to "displayRadius-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">displayRadius:25</span></span></code></pre></div><hr><h3 id="uitargetradius" tabindex="-1">uiTargetRadius <a class="header-anchor" href="#uitargetradius" aria-label="Permalink to "uiTargetRadius""></a></h3><h4 id="uitargetradius-代码简介" tabindex="-1">uiTargetRadius-代码简介 <a class="header-anchor" href="#uitargetradius-代码简介" aria-label="Permalink to "uiTargetRadius-代码简介""></a></h4><p>代码:uiTargetRadius 中文释义:为目标时半径 类型:整形 隶属于:UI和图形代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>默认为显示半径值。攻击/回收/等单位时使用的半径</p></div><h4 id="uitargetradius-演示例子" tabindex="-1">uiTargetRadius-演示例子 <a class="header-anchor" href="#uitargetradius-演示例子" aria-label="Permalink to "uiTargetRadius-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">uiTargetRadius:25</span></span></code></pre></div><hr><h3 id="shieldrenderradius" tabindex="-1">shieldRenderRadius <a class="header-anchor" href="#shieldrenderradius" aria-label="Permalink to "shieldRenderRadius""></a></h3><h4 id="shieldrenderradius-代码简介" tabindex="-1">shieldRenderRadius-代码简介 <a class="header-anchor" href="#shieldrenderradius-代码简介" aria-label="Permalink to "shieldRenderRadius-代码简介""></a></h4><p>代码:shieldRenderRadius 中文释义:单位护盾显示半径 类型:整形 隶属于:UI和图形代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>护盾绘制半径,默认值比半径大一点。 可以设置在单位上显示更大或更小的护盾圈。</p></div><h4 id="shieldrenderradius-演示例子" tabindex="-1">shieldRenderRadius-演示例子 <a class="header-anchor" href="#shieldrenderradius-演示例子" aria-label="Permalink to "shieldRenderRadius-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">shieldRenderRadius:20</span></span></code></pre></div><hr><h3 id="shielddisplayonlydeflection" tabindex="-1">shieldDisplayOnlyDeflection <a class="header-anchor" href="#shielddisplayonlydeflection" aria-label="Permalink to "shieldDisplayOnlyDeflection""></a></h3><h4 id="shielddisplayonlydeflection-代码简介" tabindex="-1">shieldDisplayOnlyDeflection-代码简介 <a class="header-anchor" href="#shielddisplayonlydeflection-代码简介" aria-label="Permalink to "shieldDisplayOnlyDeflection-代码简介""></a></h4><p>代码:shieldDisplayOnlyDeflection 中文释义:护盾只在受攻击时显示 类型:布尔型 隶属于:UI和图形代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>隐藏护盾,只在受到攻击时显示。</p></div><h4 id="shielddisplayonlydeflection-演示例子" tabindex="-1">shieldDisplayOnlyDeflection-演示例子 <a class="header-anchor" href="#shielddisplayonlydeflection-演示例子" aria-label="Permalink to "shieldDisplayOnlyDeflection-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">shieldDisplayOnlyDeflection:true</span></span></code></pre></div><hr><h3 id="shielddeflectiondisplayrate" tabindex="-1">shieldDeflectionDisplayRate <a class="header-anchor" href="#shielddeflectiondisplayrate" aria-label="Permalink to "shieldDeflectionDisplayRate""></a></h3><h4 id="shielddeflectiondisplayrate-代码简介" tabindex="-1">shieldDeflectionDisplayRate-代码简介 <a class="header-anchor" href="#shielddeflectiondisplayrate-代码简介" aria-label="Permalink to "shieldDeflectionDisplayRate-代码简介""></a></h4><p>代码:shieldDeflectionDisplayRate 中文释义:护盾消失速度 类型:浮点型 隶属于:UI和图形代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>默认值为4。数值越大消失越快。</p></div><h4 id="shielddeflectiondisplayrate-演示例子" tabindex="-1">shieldDeflectionDisplayRate-演示例子 <a class="header-anchor" href="#shielddeflectiondisplayrate-演示例子" aria-label="Permalink to "shieldDeflectionDisplayRate-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">shieldDeflectionDisplayRate:3</span></span></code></pre></div><hr><h3 id="showonminimap" tabindex="-1">showOnMinimap <a class="header-anchor" href="#showonminimap" aria-label="Permalink to "showOnMinimap""></a></h3><h4 id="showonminimap-代码简介" tabindex="-1">showOnMinimap-代码简介 <a class="header-anchor" href="#showonminimap-代码简介" aria-label="Permalink to "showOnMinimap-代码简介""></a></h4><p>代码:showOnMinimap 中文释义:显示在小地图上 类型:布尔型 隶属于:UI和图形代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>默认为true。如果为false,则在小地图上不显示此单位。</p></div><h4 id="showonminimap-演示例子" tabindex="-1">showOnMinimap-演示例子 <a class="header-anchor" href="#showonminimap-演示例子" aria-label="Permalink to "showOnMinimap-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">showOnMinimap:true</span></span></code></pre></div><hr><h3 id="showonminimaptoenemies" tabindex="-1">showOnMinimapToEnemies <a class="header-anchor" href="#showonminimaptoenemies" aria-label="Permalink to "showOnMinimapToEnemies""></a></h3><h4 id="showonminimaptoenemies-代码简介" tabindex="-1">showOnMinimapToEnemies-代码简介 <a class="header-anchor" href="#showonminimaptoenemies-代码简介" aria-label="Permalink to "showOnMinimapToEnemies-代码简介""></a></h4><p>代码:showOnMinimapToEnemies 中文释义:显示于敌人小地图 类型:布尔型 隶属于:UI和图形代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>是否在敌人小地图上显示。</p></div><h4 id="showonminimaptoenemies-演示例子" tabindex="-1">showOnMinimapToEnemies-演示例子 <a class="header-anchor" href="#showonminimaptoenemies-演示例子" aria-label="Permalink to "showOnMinimapToEnemies-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">showOnMinimapToEnemies:true</span></span></code></pre></div><hr><h3 id="showactionswithmixedselectionifotherunitshavetag" tabindex="-1">showActionsWithMixedSelectionIfOtherUnitsHaveTag <a class="header-anchor" href="#showactionswithmixedselectionifotherunitshavetag" aria-label="Permalink to "showActionsWithMixedSelectionIfOtherUnitsHaveTag""></a></h3><h4 id="showactionswithmixedselectionifotherunitshavetag-代码简介" tabindex="-1">showActionsWithMixedSelectionIfOtherUnitsHaveTag-代码简介 <a class="header-anchor" href="#showactionswithmixedselectionifotherunitshavetag-代码简介" aria-label="Permalink to "showActionsWithMixedSelectionIfOtherUnitsHaveTag-代码简介""></a></h4><p>代码:showActionsWithMixedSelectionIfOtherUnitsHaveTag 中文释义:混合所选单位所显示的行为 类型:标签型 隶属于:UI和图形代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>如果选择的单位都包含此处使用的标签,则合并“行为(action)”。比如你的步兵通过部署转化成另一个单位,在混合时可以当作同一个单位处理,不再是默认的谁都无法执行操作。例子如红警的盟军大兵在混合选中后依旧可执行部署或解除。</p></div><h4 id="showactionswithmixedselectionifotherunitshavetag-演示例子" tabindex="-1">showActionsWithMixedSelectionIfOtherUnitsHaveTag-演示例子 <a class="header-anchor" href="#showactionswithmixedselectionifotherunitshavetag-演示例子" aria-label="Permalink to "showActionsWithMixedSelectionIfOtherUnitsHaveTag-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">showActionsWithMixedSelectionIfOtherUnitsHaveTag:tag_联系</span></span></code></pre></div><h2 id="第四类-构建代码" tabindex="-1">第四类-构建代码 <a class="header-anchor" href="#第四类-构建代码" aria-label="Permalink to "第四类-构建代码""></a></h2><h3 id="isbuilding" tabindex="-1">isBuilding <a class="header-anchor" href="#isbuilding" aria-label="Permalink to "isBuilding""></a></h3><h4 id="isbuilding-代码简介" tabindex="-1">isBuilding-代码简介 <a class="header-anchor" href="#isbuilding-代码简介" aria-label="Permalink to "isBuilding-代码简介""></a></h4><p>代码:isBuilding 中文释义:是建筑 类型:布尔型 隶属于:构建代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>定义单位是否为建筑物。为true时无论移动方式是什么都会强制为建筑。</p></div><h4 id="isbuilding-演示例子" tabindex="-1">isBuilding-演示例子 <a class="header-anchor" href="#isbuilding-演示例子" aria-label="Permalink to "isBuilding-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">isBuilding:true</span></span></code></pre></div><hr><h3 id="footprint" tabindex="-1">footprint <a class="header-anchor" href="#footprint" aria-label="Permalink to "footprint""></a></h3><h4 id="footprint-代码简介" tabindex="-1">footprint-代码简介 <a class="header-anchor" href="#footprint-代码简介" aria-label="Permalink to "footprint-代码简介""></a></h4><p>代码:footprint 中文释义:建筑碰撞范围 类型:多整型 隶属于:构建代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>填四个数值(左,上,右,下),单位是格子,建筑默认占一格,向左和向上需要填负数,填整数在选择时有偏移。 四个数值可以完全颠倒,这样不会阻碍单位移动。决定建筑单位碰撞体积,此区域内单位不能通过,如果在单位运动途中单位则会绕过。单位实际可选择面积使用的是radius。</p></div><h4 id="footprint-演示例子" tabindex="-1">footprint-演示例子 <a class="header-anchor" href="#footprint-演示例子" aria-label="Permalink to "footprint-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;">##(1x1)</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">footprint: 0,0,0,0</span></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;">##(2X2)</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">footprint: 0,0,1,1</span></span>
|
||||
<span class="line"><span style="color:#676E95;font-style:italic;">##(3X3)</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">footprint: -1,-1,1,1</span></span></code></pre></div><hr><h3 id="constructionfootprint" tabindex="-1">constructionFootprint <a class="header-anchor" href="#constructionfootprint" aria-label="Permalink to "constructionFootprint""></a></h3><h4 id="constructionfootprint-代码简介" tabindex="-1">constructionFootprint-代码简介 <a class="header-anchor" href="#constructionfootprint-代码简介" aria-label="Permalink to "constructionFootprint-代码简介""></a></h4><p>代码:constructionFootprint 中文释义:建筑覆盖范围 类型:多整型 隶属于:构建代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>基础规则同上,这个区域内不能建造建筑,但是单位可以通过。<br> 一般需要设定比上一个面积大。<br> 好处是即使建造的密密麻麻,单位也有路可走。</p></div><h4 id="constructionfootprint-演示例子" tabindex="-1">constructionFootprint-演示例子 <a class="header-anchor" href="#constructionfootprint-演示例子" aria-label="Permalink to "constructionFootprint-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">constructionFootprint: -1,-1,1,3</span></span></code></pre></div><hr><h3 id="displayfootprint" tabindex="-1">displayFootprint <a class="header-anchor" href="#displayfootprint" aria-label="Permalink to "displayFootprint""></a></h3><h4 id="displayfootprint-代码简介" tabindex="-1">displayFootprint-代码简介 <a class="header-anchor" href="#displayfootprint-代码简介" aria-label="Permalink to "displayFootprint-代码简介""></a></h4><p>代码:displayFootprint 中文释义:建筑选择UI 类型:多整型 隶属于:构建代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>基础规则同上,用于选择单位时UI显示。不设定则默认为建筑覆盖区域。</p></div><h4 id="displayfootprint-演示例子" tabindex="-1">displayFootprint-演示例子 <a class="header-anchor" href="#displayfootprint-演示例子" aria-label="Permalink to "displayFootprint-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">displayFootprint: 0,0,1,1</span></span></code></pre></div><hr><h3 id="buildingselectionoffset" tabindex="-1">buildingSelectionOffset <a class="header-anchor" href="#buildingselectionoffset" aria-label="Permalink to "buildingSelectionOffset""></a></h3><h4 id="buildingselectionoffset-代码简介" tabindex="-1">buildingSelectionOffset-代码简介 <a class="header-anchor" href="#buildingselectionoffset-代码简介" aria-label="Permalink to "buildingSelectionOffset-代码简介""></a></h4><p>代码:buildingSelectionOffset 中文释义:建筑UI调整 类型:整型 隶属于:构建代码组</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>基础规则同上,用于选择单位时UI显示。不设定则默认为建筑覆盖区域。</p></div><h4 id="buildingselectionoffset-演示例子" tabindex="-1">buildingSelectionOffset-演示例子 <a class="header-anchor" href="#buildingselectionoffset-演示例子" aria-label="Permalink to "buildingSelectionOffset-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[core]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">buildingSelectionOffset: 4</span></span></code></pre></div><hr>`,183);function P(T,R,w,_,B,I){const s=c("font");return o(),r("div",null,[d,e("p",null,[a("主要在"),n(s,{color:"orange"},{default:l(()=>[a("启用多个自定义Mod")]),_:1}),a("进行优先级定义"),h,a(" 以逗号分隔的名称列表。像"),n(s,{color:"orange"},{default:l(()=>[a("名称一样,但优先级较低")]),_:1}),a(",对于"),n(s,{color:"orange"},{default:l(()=>[a("启用多个自定义mod")]),_:1}),a("有用。")]),u,e("div",b,[g,e("p",null,[a("早期是用于在"),n(s,{color:"orange"},{default:l(()=>[a("builtFrom")]),_:1}),a("的代码,并结合科技等级使用。如果工厂的等级低于单位的目标科技等级,则会在工厂里面隐藏该单位。"),m,a("自铁锈1.09后出现"),n(s,{color:"orange"},{default:l(()=>[a("overrideAndReplace")]),_:1}),a("后,该方法则不建议使用。有关于新策略,请参考"),n(s,{color:"orange"},{default:l(()=>[a("overrideAndReplace")]),_:1}),a("代码文档指南。"),y,a(" 设置单位的科技等级,共有3个级别,1级GUI显示为绿色,2、3级显示为黄色。超过3报错。")])]),C,e("div",k,[f,e("p",null,[a("若设置成true,则会在单位死亡时产生血迹,"),q,a(" 图像在"),n(s,{color:"orange"},{default:l(()=>[a("drawable/blood_mark.png"),v,a("当hideScorchMark:true")]),_:1}),a("时可以隐藏非生物则为黑色爆炸效果。")])]),x,e("div",D,[F,e("p",null,[a("能量恢复是持续的,如果你设置了"),n(s,{color:"orange"},{default:l(()=>[a("energyNeedsToRechargeToFull")]),_:1}),a(", 那么攻击时按energyRegen恢复,耗尽时的灰条按此处设定值恢复。")])]),A])}const E=t(p,[["render",P]]);export{M as __pageData,E as default};
|
|
@ -1 +0,0 @@
|
|||
import{_ as t,J as o,o as r,c,k as e,a,N as n,w as l,V as i}from"./chunks/framework.636577e8.js";const E=JSON.parse('{"title":"[core]组","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"src/Unit/core.md","filePath":"src/Unit/core.md"}'),p={name:"src/Unit/core.md"},d=i("",51),h=e("br",null,null,-1),u=i("",20),b={class:"tip custom-block"},g=e("p",{class:"custom-block-title"},"TIP",-1),m=e("br",null,null,-1),y=e("br",null,null,-1),C=i("",13),k={class:"tip custom-block"},f=e("p",{class:"custom-block-title"},"TIP",-1),q=e("br",null,null,-1),v=e("br",null,null,-1),x=i("",77),D={class:"tip custom-block"},A=e("p",{class:"custom-block-title"},"TIP",-1),P=i("",183);function F(_,T,R,w,B,I){const s=o("font");return r(),c("div",null,[d,e("p",null,[a("主要在"),n(s,{color:"orange"},{default:l(()=>[a("启用多个自定义Mod")]),_:1}),a("进行优先级定义"),h,a(" 以逗号分隔的名称列表。像"),n(s,{color:"orange"},{default:l(()=>[a("名称一样,但优先级较低")]),_:1}),a(",对于"),n(s,{color:"orange"},{default:l(()=>[a("启用多个自定义mod")]),_:1}),a("有用。")]),u,e("div",b,[g,e("p",null,[a("早期是用于在"),n(s,{color:"orange"},{default:l(()=>[a("builtFrom")]),_:1}),a("的代码,并结合科技等级使用。如果工厂的等级低于单位的目标科技等级,则会在工厂里面隐藏该单位。"),m,a("自铁锈1.09后出现"),n(s,{color:"orange"},{default:l(()=>[a("overrideAndReplace")]),_:1}),a("后,该方法则不建议使用。有关于新策略,请参考"),n(s,{color:"orange"},{default:l(()=>[a("overrideAndReplace")]),_:1}),a("代码文档指南。"),y,a(" 设置单位的科技等级,共有3个级别,1级GUI显示为绿色,2、3级显示为黄色。超过3报错。")])]),C,e("div",k,[f,e("p",null,[a("若设置成true,则会在单位死亡时产生血迹,"),q,a(" 图像在"),n(s,{color:"orange"},{default:l(()=>[a("drawable/blood_mark.png"),v,a("当hideScorchMark:true")]),_:1}),a("时可以隐藏非生物则为黑色爆炸效果。")])]),x,e("div",D,[A,e("p",null,[a("能量恢复是持续的,如果你设置了"),n(s,{color:"orange"},{default:l(()=>[a("energyNeedsToRechargeToFull")]),_:1}),a(", 那么攻击时按energyRegen恢复,耗尽时的灰条按此处设定值恢复。")])]),P])}const N=t(p,[["render",F]]);export{E as __pageData,N as default};
|
|
@ -1 +0,0 @@
|
|||
import{_ as a,o as e,c as s,V as n}from"./chunks/framework.636577e8.js";const f=JSON.parse('{"title":"[graphics]图像组","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"src/Unit/graphics.md","filePath":"src/Unit/graphics.md"}'),l={name:"src/Unit/graphics.md"},t=n("",298),o=[t];function i(r,c,p,h,d,m){return e(),s("div",null,o)}const g=a(l,[["render",i]]);export{f as __pageData,g as default};
|
|
@ -1,4 +1,4 @@
|
|||
import{_ as a,o as e,c as s,V as n}from"./chunks/framework.636577e8.js";const f=JSON.parse('{"title":"[graphics]图像组","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"src/Unit/graphics.md","filePath":"src/Unit/graphics.md"}'),l={name:"src/Unit/graphics.md"},t=n(`<h1 id="graphics-图像组" tabindex="-1"><strong>[graphics]图像组</strong> <a class="header-anchor" href="#graphics-图像组" aria-label="Permalink to "**[graphics]图像组**""></a></h1><h3 id="image" tabindex="-1">image <a class="header-anchor" href="#image" aria-label="Permalink to "image""></a></h3><h4 id="image-代码简介" tabindex="-1">image-代码简介 <a class="header-anchor" href="#image-代码简介" aria-label="Permalink to "image-代码简介""></a></h4><p>代码:image 中文释义:图像 类型:字符型</p><div class="danger custom-block"><p class="custom-block-title">DANGER</p><p>如果需要隐藏单位的图像请使用空白透明的图像替代。<br> 请勿直接忽略此项,会直接报错导致此单位代码无法加载。</p></div><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>铁锈战争支持多种图片格式,如:jpg,png,bmp...等,但也有一部分的格式并不支持,如webp这种的。<br> 尽量使用png格式的图片也许不失为一个好的选择。</p></div><h4 id="image-用法" tabindex="-1">image-用法 <a class="header-anchor" href="#image-用法" aria-label="Permalink to "image-用法""></a></h4><p>填写图片文件或图片文件的路径,图片文件将作为单位的主体图像。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>路径可使用相对路径或绝对路径。<br> 绝对路径中的根目录是以模组包内的首层目录为根目录的。<br> 相对路径则是以ini代码文件的目录为起始目录。<br> 图片和代码在同一目录下直接填写路径的用法相当于使用了相对路径。<br> 此方法基本适用于[graphics]组内所有需要引用图像文件的地方。</p></div><h4 id="image-示例" tabindex="-1">image-示例 <a class="header-anchor" href="#image-示例" aria-label="Permalink to "image-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
import{_ as a,v as e,b as s,R as n}from"./chunks/framework.c741a37c.js";const f=JSON.parse('{"title":"[graphics]图像组","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"src/Unit/graphics.md","filePath":"src/Unit/graphics.md"}'),l={name:"src/Unit/graphics.md"},t=n(`<h1 id="graphics-图像组" tabindex="-1"><strong>[graphics]图像组</strong> <a class="header-anchor" href="#graphics-图像组" aria-label="Permalink to "**[graphics]图像组**""></a></h1><h3 id="image" tabindex="-1">image <a class="header-anchor" href="#image" aria-label="Permalink to "image""></a></h3><h4 id="image-代码简介" tabindex="-1">image-代码简介 <a class="header-anchor" href="#image-代码简介" aria-label="Permalink to "image-代码简介""></a></h4><p>代码:image 中文释义:图像 类型:字符型</p><div class="danger custom-block"><p class="custom-block-title">DANGER</p><p>如果需要隐藏单位的图像请使用空白透明的图像替代。<br> 请勿直接忽略此项,会直接报错导致此单位代码无法加载。</p></div><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>铁锈战争支持多种图片格式,如:jpg,png,bmp...等,但也有一部分的格式并不支持,如webp这种的。<br> 尽量使用png格式的图片也许不失为一个好的选择。</p></div><h4 id="image-用法" tabindex="-1">image-用法 <a class="header-anchor" href="#image-用法" aria-label="Permalink to "image-用法""></a></h4><p>填写图片文件或图片文件的路径,图片文件将作为单位的主体图像。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>路径可使用相对路径或绝对路径。<br> 绝对路径中的根目录是以模组包内的首层目录为根目录的。<br> 相对路径则是以ini代码文件的目录为起始目录。<br> 图片和代码在同一目录下直接填写路径的用法相当于使用了相对路径。<br> 此方法基本适用于[graphics]组内所有需要引用图像文件的地方。</p></div><h4 id="image-示例" tabindex="-1">image-示例 <a class="header-anchor" href="#image-示例" aria-label="Permalink to "image-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">image: ROOT:\\124\\255\\tank.png </span><span style="color:#676E95;font-style:italic;"># 绝对路径</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
170
assets/src_Unit_graphics.md.f3da4d2a.lean.js
Normal file
170
assets/src_Unit_graphics.md.f3da4d2a.lean.js
Normal file
|
@ -0,0 +1,170 @@
|
|||
import{_ as a,v as e,b as s,R as n}from"./chunks/framework.c741a37c.js";const f=JSON.parse('{"title":"[graphics]图像组","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"src/Unit/graphics.md","filePath":"src/Unit/graphics.md"}'),l={name:"src/Unit/graphics.md"},t=n(`<h1 id="graphics-图像组" tabindex="-1"><strong>[graphics]图像组</strong> <a class="header-anchor" href="#graphics-图像组" aria-label="Permalink to "**[graphics]图像组**""></a></h1><h3 id="image" tabindex="-1">image <a class="header-anchor" href="#image" aria-label="Permalink to "image""></a></h3><h4 id="image-代码简介" tabindex="-1">image-代码简介 <a class="header-anchor" href="#image-代码简介" aria-label="Permalink to "image-代码简介""></a></h4><p>代码:image 中文释义:图像 类型:字符型</p><div class="danger custom-block"><p class="custom-block-title">DANGER</p><p>如果需要隐藏单位的图像请使用空白透明的图像替代。<br> 请勿直接忽略此项,会直接报错导致此单位代码无法加载。</p></div><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>铁锈战争支持多种图片格式,如:jpg,png,bmp...等,但也有一部分的格式并不支持,如webp这种的。<br> 尽量使用png格式的图片也许不失为一个好的选择。</p></div><h4 id="image-用法" tabindex="-1">image-用法 <a class="header-anchor" href="#image-用法" aria-label="Permalink to "image-用法""></a></h4><p>填写图片文件或图片文件的路径,图片文件将作为单位的主体图像。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>路径可使用相对路径或绝对路径。<br> 绝对路径中的根目录是以模组包内的首层目录为根目录的。<br> 相对路径则是以ini代码文件的目录为起始目录。<br> 图片和代码在同一目录下直接填写路径的用法相当于使用了相对路径。<br> 此方法基本适用于[graphics]组内所有需要引用图像文件的地方。</p></div><h4 id="image-示例" tabindex="-1">image-示例 <a class="header-anchor" href="#image-示例" aria-label="Permalink to "image-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">image: ROOT:\\124\\255\\tank.png </span><span style="color:#676E95;font-style:italic;"># 绝对路径</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">image: \\124\\255\\tank.png </span><span style="color:#676E95;font-style:italic;"># 相对路径</span></span></code></pre></div><h3 id="image-back" tabindex="-1">image_back <a class="header-anchor" href="#image-back" aria-label="Permalink to "image_back""></a></h3><h4 id="image-back-代码简介" tabindex="-1">image_back-代码简介 <a class="header-anchor" href="#image-back-代码简介" aria-label="Permalink to "image_back-代码简介""></a></h4><p>代码:image_back 中文释义:背景图像 类型:字符型</p><h4 id="image-back-用法" tabindex="-1">image_back-用法 <a class="header-anchor" href="#image-back-用法" aria-label="Permalink to "image_back-用法""></a></h4><p>填写图片文件或图片文件的路径,图片文件将作为单位的背景图像。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>在单位后面后面绘制的图像,不随单位转动。<br> 如无需要可以选择不填,可以作为单位角标和工厂底图使用。</p></div><h4 id="image-back-示例" tabindex="-1">image_back-示例 <a class="header-anchor" href="#image-back-示例" aria-label="Permalink to "image_back-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">image_back: ROOT:\\124\\255\\background.png </span><span style="color:#676E95;font-style:italic;"># 绝对路径</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">image_back: \\124\\255\\background.png </span><span style="color:#676E95;font-style:italic;"># 相对路径</span></span></code></pre></div><h3 id="image-wreak" tabindex="-1">image_wreak <a class="header-anchor" href="#image-wreak" aria-label="Permalink to "image_wreak""></a></h3><h4 id="image-wreak-代码简介" tabindex="-1">image_wreak-代码简介 <a class="header-anchor" href="#image-wreak-代码简介" aria-label="Permalink to "image_wreak-代码简介""></a></h4><p>代码:image_wreak 中文释义:死亡图像 类型:字符型</p><h4 id="image-wreak-用法" tabindex="-1">image_wreak-用法 <a class="header-anchor" href="#image-wreak-用法" aria-label="Permalink to "image_wreak-用法""></a></h4><p>填写图片文件或图片文件的路径,图片文件将作为单位的死亡图像。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>作为在单位后面死亡后绘制的图像。<br> 不填写此项不会影响代码的运行,同时可以使用NONE作为路径名将表示没有任何图像。</p></div><div class="info custom-block"><p class="custom-block-title">INFO</p><p>如果不填死亡图像,默认将以单位的主体图像作为死亡图像使用。</p></div><h4 id="image-wreak-示例" tabindex="-1">image_wreak-示例 <a class="header-anchor" href="#image-wreak-示例" aria-label="Permalink to "image_wreak-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">image_wreak: ROOT:\\124\\255\\image_wreak.png </span><span style="color:#676E95;font-style:italic;"># 绝对路径</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">image_wreak: \\124\\255\\image_wreak.png </span><span style="color:#676E95;font-style:italic;"># 相对路径</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">image_wreak: NONE</span></span></code></pre></div><h3 id="image-shield" tabindex="-1">image_shield <a class="header-anchor" href="#image-shield" aria-label="Permalink to "image_shield""></a></h3><h4 id="image-shield-代码简介" tabindex="-1">image_shield-代码简介 <a class="header-anchor" href="#image-shield-代码简介" aria-label="Permalink to "image_shield-代码简介""></a></h4><p>代码:image_shield 中文释义:护盾图像 类型:字符型</p><h4 id="image-shield-用法" tabindex="-1">image_shield-用法 <a class="header-anchor" href="#image-shield-用法" aria-label="Permalink to "image_shield-用法""></a></h4><p>填写图片文件或图片文件的路径,图片文件将作为单位的护盾图像。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>作为在单位的护盾所绘制的图像。<br> 本项仅作为自定义护盾图像使用,如设置护盾且未填此项时将使用默认护盾。<br> 不填写此项不会影响代码的运行,同时可以使用NONE作为路径名将表示没有任何图像。</p></div><h4 id="image-shield-示例" tabindex="-1">image_shield-示例 <a class="header-anchor" href="#image-shield-示例" aria-label="Permalink to "image_shield-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">image_shield: ROOT:\\124\\255\\image_shield.png </span><span style="color:#676E95;font-style:italic;"># 绝对路径</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">image_shield: \\124\\255\\image_shield.png </span><span style="color:#676E95;font-style:italic;"># 相对路径</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">image_shield: NONE</span></span></code></pre></div><h3 id="image-offsetx" tabindex="-1">image_offsetX <a class="header-anchor" href="#image-offsetx" aria-label="Permalink to "image_offsetX""></a></h3><h4 id="image-offsetx-代码简介" tabindex="-1">image_offsetX-代码简介 <a class="header-anchor" href="#image-offsetx-代码简介" aria-label="Permalink to "image_offsetX-代码简介""></a></h4><p>代码:image_offsetX 中文释义:图像X轴偏移 类型:整数</p><h4 id="image-offsetx-用法" tabindex="-1">image_offsetX-用法 <a class="header-anchor" href="#image-offsetx-用法" aria-label="Permalink to "image_offsetX-用法""></a></h4><p>作用于主体图像,填写的数值会作为偏移的像素大小,可以为负。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>偏移的方向依据X的数值而定。<br> X轴以单位中心点为坐标,X增大则图像向右偏移。</p></div><h4 id="image-offsetx-示例" tabindex="-1">image_offsetX-示例 <a class="header-anchor" href="#image-offsetx-示例" aria-label="Permalink to "image_offsetX-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">image_offsetX:1 </span><span style="color:#676E95;font-style:italic;"># 偏移量为 1</span></span></code></pre></div><h3 id="image-offsety" tabindex="-1">image_offsetY <a class="header-anchor" href="#image-offsety" aria-label="Permalink to "image_offsetY""></a></h3><h4 id="image-offsety-代码简介" tabindex="-1">image_offsetY-代码简介 <a class="header-anchor" href="#image-offsety-代码简介" aria-label="Permalink to "image_offsetY-代码简介""></a></h4><p>代码:image_offsetY 中文释义:图像Y轴偏移 类型:整数</p><h4 id="image-offsety-用法" tabindex="-1">image_offsetY-用法 <a class="header-anchor" href="#image-offsety-用法" aria-label="Permalink to "image_offsetY-用法""></a></h4><p>作用于主体图像,填写的数值会作为偏移的像素大小,可以为负。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>偏移的方向依据Y的数值而定。<br> X轴以单位中心点为坐标,Y增大则图像向下偏移。</p></div><h4 id="image-offsety-示例" tabindex="-1">image_offsetY-示例 <a class="header-anchor" href="#image-offsety-示例" aria-label="Permalink to "image_offsetY-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">image_offsetY:1 </span><span style="color:#676E95;font-style:italic;"># 偏移量为 1</span></span></code></pre></div><h3 id="isvisible" tabindex="-1">isVisible <a class="header-anchor" href="#isvisible" aria-label="Permalink to "isVisible""></a></h3><h4 id="isvisible-代码简介" tabindex="-1">isVisible-代码简介 <a class="header-anchor" href="#isvisible-代码简介" aria-label="Permalink to "isVisible-代码简介""></a></h4><p>代码:isVisible 中文释义:可见 类型:逻辑布尔值</p><h4 id="isvisible-用法" tabindex="-1">isVisible-用法 <a class="header-anchor" href="#isvisible-用法" aria-label="Permalink to "isVisible-用法""></a></h4><p>填写布尔值或逻辑判断语句,作用于全部图像,会决定单位图像是否可见。</p><div class="info custom-block"><p class="custom-block-title">INFO</p><p>默认值为true。<br> 即使图像隐藏,在小地图上还是可以看见的。</p></div><h4 id="isvisible-示例" tabindex="-1">isVisible-示例 <a class="header-anchor" href="#isvisible-示例" aria-label="Permalink to "isVisible-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">isVisible:false </span><span style="color:#676E95;font-style:italic;"># 使用布尔值</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">isVisible:if self.hp() > 200 </span><span style="color:#676E95;font-style:italic;"># 使用逻辑语句</span></span></code></pre></div><h3 id="isvisibletoenemies" tabindex="-1">isVisibleToEnemies <a class="header-anchor" href="#isvisibletoenemies" aria-label="Permalink to "isVisibleToEnemies""></a></h3><h4 id="isvisibletoenemies-代码简介" tabindex="-1">isVisibleToEnemies-代码简介 <a class="header-anchor" href="#isvisibletoenemies-代码简介" aria-label="Permalink to "isVisibleToEnemies-代码简介""></a></h4><p>代码:isVisibleToEnemies 中文释义:对敌人可见 类型:逻辑布尔值</p><h4 id="isvisibletoenemies-用法" tabindex="-1">isVisibleToEnemies-用法 <a class="header-anchor" href="#isvisibletoenemies-用法" aria-label="Permalink to "isVisibleToEnemies-用法""></a></h4><p>填写布尔值或逻辑判断语句,作用于全部图像,会决定单位图像是否被敌人可见。</p><div class="info custom-block"><p class="custom-block-title">INFO</p><p>与showOnMinimapToEnemies,canOnlyBeAttackedByUnitsWithTags一起使用时,可以创建隐形系统。<br> (抄自HX代码表)</p></div><h4 id="isvisibletoenemies-示例" tabindex="-1">isVisibleToEnemies-示例 <a class="header-anchor" href="#isvisibletoenemies-示例" aria-label="Permalink to "isVisibleToEnemies-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">isVisibleToEnemies:false </span><span style="color:#676E95;font-style:italic;"># 使用布尔值</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">isVisibleToEnemies:if self.hp() > 200 </span><span style="color:#676E95;font-style:italic;"># 使用逻辑语句</span></span></code></pre></div><h3 id="teamcolorsusehue" tabindex="-1">teamColorsUseHue <a class="header-anchor" href="#teamcolorsusehue" aria-label="Permalink to "teamColorsUseHue""></a></h3><h4 id="teamcolorsusehue-代码简介" tabindex="-1">teamColorsUseHue-代码简介 <a class="header-anchor" href="#teamcolorsusehue-代码简介" aria-label="Permalink to "teamColorsUseHue-代码简介""></a></h4><p>代码:teamColorsUseHue 中文释义:阵营色色相 类型:布尔值</p><h4 id="teamcolorsusehue-用法" tabindex="-1">teamColorsUseHue-用法 <a class="header-anchor" href="#teamcolorsusehue-用法" aria-label="Permalink to "teamColorsUseHue-用法""></a></h4><p>填写布尔值决定如何使用,大概就是在单位主体图像上附着一层半透明的阵营色滤镜。</p><div class="info custom-block"><p class="custom-block-title">INFO</p><p>默认为false。</p></div><h4 id="teamcolorsusehue-示例" tabindex="-1">teamColorsUseHue-示例 <a class="header-anchor" href="#teamcolorsusehue-示例" aria-label="Permalink to "teamColorsUseHue-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">teamColorsUseHue:true </span><span style="color:#676E95;font-style:italic;"># 使用布尔值</span></span></code></pre></div><h3 id="teamcoloringmode" tabindex="-1">teamColoringMode <a class="header-anchor" href="#teamcoloringmode" aria-label="Permalink to "teamColoringMode""></a></h3><h4 id="teamcoloringmode-代码简介" tabindex="-1">teamColoringMode-代码简介 <a class="header-anchor" href="#teamcoloringmode-代码简介" aria-label="Permalink to "teamColoringMode-代码简介""></a></h4><p>代码:teamColoringMode 中文释义:阵营色模式 类型:字符串</p><h4 id="teamcolorsusehue-用法-1" tabindex="-1">teamColorsUseHue-用法 <a class="header-anchor" href="#teamcolorsusehue-用法-1" aria-label="Permalink to "teamColorsUseHue-用法""></a></h4><p>填写对应的字符串选择图像的着色逻辑。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>默认是纯绿,即pureGreen。<br> 一共有disabled、hueShift、hueAdd、pureGreen,四种模式。<br> 中文便是,禁用,色相偏移,色相添加,纯绿。</p></div><h4 id="teamcoloringmode-示例" tabindex="-1">teamColoringMode-示例 <a class="header-anchor" href="#teamcoloringmode-示例" aria-label="Permalink to "teamColoringMode-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">teamColoringMode:disabled </span><span style="color:#676E95;font-style:italic;"># 禁用 会使单位不使用阵营色</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">teamColoringMode:hueShift </span><span style="color:#676E95;font-style:italic;"># 色相偏移 颜色会影响周围其他像素的着色</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">teamColoringMode:hueShift </span><span style="color:#676E95;font-style:italic;"># 色相添加 像极了使用teamColorsUseHue,加了一层颜色滤镜</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">teamColoringMode:pureGreen </span><span style="color:#676E95;font-style:italic;"># 纯绿 默认就是这个</span></span></code></pre></div><h3 id="scaleimagesto" tabindex="-1">scaleImagesTo <a class="header-anchor" href="#scaleimagesto" aria-label="Permalink to "scaleImagesTo""></a></h3><h4 id="scaleimagesto-代码简介" tabindex="-1">scaleImagesTo-代码简介 <a class="header-anchor" href="#scaleimagesto-代码简介" aria-label="Permalink to "scaleImagesTo-代码简介""></a></h4><p>代码:scaleImagesTo 中文释义:图像缩放到 类型:浮点数</p><h4 id="scaleimagesto-用法" tabindex="-1">scaleImagesTo-用法 <a class="header-anchor" href="#scaleimagesto-用法" aria-label="Permalink to "scaleImagesTo-用法""></a></h4><p>填写单位像素以缩放图像,同时影响腿部和阴影图像。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>这里的像素大小指的是每帧图像宽度的像素大小。<br> 例如图像原每帧宽度12,这里填24,图像将被等比例放大2倍。</p></div><h4 id="scaleimagesto-示例" tabindex="-1">scaleImagesTo-示例 <a class="header-anchor" href="#scaleimagesto-示例" aria-label="Permalink to "scaleImagesTo-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">scaleImagesTo:12.5</span></span></code></pre></div><h3 id="imagescale" tabindex="-1">imageScale <a class="header-anchor" href="#imagescale" aria-label="Permalink to "imageScale""></a></h3><h4 id="imagescale-代码简介" tabindex="-1">imageScale-代码简介 <a class="header-anchor" href="#imagescale-代码简介" aria-label="Permalink to "imageScale-代码简介""></a></h4><p>代码:imageScale 中文释义:图像缩放比例 类型:浮点数</p><h4 id="imagescale-用法" tabindex="-1">imageScale-用法 <a class="header-anchor" href="#imagescale-用法" aria-label="Permalink to "imageScale-用法""></a></h4><p>填写需要缩放的百分比,缩放单位主体图像的大小。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>效果基本与scaleImagesTo相同,但百分比更为直观。<br> 默认值为1,也就是100%。</p></div><h4 id="imagescale-示例" tabindex="-1">imageScale-示例 <a class="header-anchor" href="#imagescale-示例" aria-label="Permalink to "imageScale-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">imageScale:12.5</span></span></code></pre></div><h3 id="drawlayer" tabindex="-1">drawLayer <a class="header-anchor" href="#drawlayer" aria-label="Permalink to "drawLayer""></a></h3><h4 id="drawlayer-代码简介" tabindex="-1">drawLayer-代码简介 <a class="header-anchor" href="#drawlayer-代码简介" aria-label="Permalink to "drawLayer-代码简介""></a></h4><p>代码:drawLayer 中文释义:绘制图层 类型:字符串</p><h4 id="drawlayer-用法" tabindex="-1">drawLayer-用法 <a class="header-anchor" href="#drawlayer-用法" aria-label="Permalink to "drawLayer-用法""></a></h4><p>填写希望图像所在的图层,以影响单位图像的绘制。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>官方给出了8种可填写的图层样式,具体可见示例。<br> 陆上单位默认图层便是ground或ground2,运输船这类便是ground2。</p></div><h4 id="drawlayer-示例" tabindex="-1">drawLayer-示例 <a class="header-anchor" href="#drawlayer-示例" aria-label="Permalink to "drawLayer-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">drawLayer:ground</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">drawLayer:ground2</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">drawLayer:wreaks</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">drawLayer:underwater</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">drawLayer:bottom</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">drawLayer:experimentals</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">drawLayer:air</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">drawLayer:top</span></span></code></pre></div><h3 id="whenbeingbuiltmaketransparenttill" tabindex="-1">whenBeingBuiltMakeTransparentTill <a class="header-anchor" href="#whenbeingbuiltmaketransparenttill" aria-label="Permalink to "whenBeingBuiltMakeTransparentTill""></a></h3><h4 id="whenbeingbuiltmaketransparenttill-代码简介" tabindex="-1">whenBeingBuiltMakeTransparentTill-代码简介 <a class="header-anchor" href="#whenbeingbuiltmaketransparenttill-代码简介" aria-label="Permalink to "whenBeingBuiltMakeTransparentTill-代码简介""></a></h4><p>代码:whenBeingBuiltMakeTransparentTill 中文释义:建造时透明度 类型:浮点数</p><h4 id="whenbeingbuiltmaketransparenttill-用法" tabindex="-1">whenBeingBuiltMakeTransparentTill-用法 <a class="header-anchor" href="#whenbeingbuiltmaketransparenttill-用法" aria-label="Permalink to "whenBeingBuiltMakeTransparentTill-用法""></a></h4><p>填写0-1之间的小数,以影响建造时的透明度情况。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>若设为0则表示透明度为0,建造一开始就不透明。<br> 设为1则将完全建造时才会不透明。<br> 所谓透明到不透明,也就是从虚影到实体的转变。</p></div><div class="info custom-block"><p class="custom-block-title">INFO</p><p>0-1可以理解为0%和100%,取超过100%的数字不会报错但也并没有什么意义。</p></div><h4 id="whenbeingbuiltmaketransparenttill-示例" tabindex="-1">whenBeingBuiltMakeTransparentTill-示例 <a class="header-anchor" href="#whenbeingbuiltmaketransparenttill-示例" aria-label="Permalink to "whenBeingBuiltMakeTransparentTill-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">whenBeingBuiltMakeTransparentTill:0</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">whenBeingBuiltMakeTransparentTill:0.5</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">whenBeingBuiltMakeTransparentTill:1</span></span></code></pre></div><h3 id="icon-zoomed-out" tabindex="-1">icon_zoomed_out <a class="header-anchor" href="#icon-zoomed-out" aria-label="Permalink to "icon_zoomed_out""></a></h3><h4 id="icon-zoomed-out-代码简介" tabindex="-1">icon_zoomed_out-代码简介 <a class="header-anchor" href="#icon-zoomed-out-代码简介" aria-label="Permalink to "icon_zoomed_out-代码简介""></a></h4><p>代码:icon_zoomed_out 中文释义:缩放图标 类型:字符串</p><h4 id="icon-zoomed-out-用法" tabindex="-1">icon_zoomed_out-用法 <a class="header-anchor" href="#icon-zoomed-out-用法" aria-label="Permalink to "icon_zoomed_out-用法""></a></h4><p>填写缩放图标的文件路径,改变单位缩放时显示的图标。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>路径引用规则和文件格式与image相同。<br> 默认图标将根据运动类型或单位类型使用内置的图标。</p></div><div class="info custom-block"><p class="custom-block-title">INFO</p><p>绘制图标时请注意图标的大小。<br> 具体可以参考默认图标。<br> 资源文件在游戏根目录\\res\\drawable\\中,安卓安装包同理。</p></div><h4 id="icon-zoomed-out-示例" tabindex="-1">icon_zoomed_out-示例 <a class="header-anchor" href="#icon-zoomed-out-示例" aria-label="Permalink to "icon_zoomed_out-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">icon_zoomed_out:mytubiao.png</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">icon_zoomed_out:tank_icon.png</span></span></code></pre></div><h3 id="icon-zoomed-out-nevershow" tabindex="-1">icon_zoomed_out_neverShow <a class="header-anchor" href="#icon-zoomed-out-nevershow" aria-label="Permalink to "icon_zoomed_out_neverShow""></a></h3><h4 id="icon-zoomed-out-nevershow-代码简介" tabindex="-1">icon_zoomed_out_neverShow-代码简介 <a class="header-anchor" href="#icon-zoomed-out-nevershow-代码简介" aria-label="Permalink to "icon_zoomed_out_neverShow-代码简介""></a></h4><p>代码:icon_zoomed_out_neverShow 中文释义:缩放图标不显示 类型:布尔值</p><h4 id="icon-zoomed-out-nevershow-用法" tabindex="-1">icon_zoomed_out_neverShow-用法 <a class="header-anchor" href="#icon-zoomed-out-nevershow-用法" aria-label="Permalink to "icon_zoomed_out_neverShow-用法""></a></h4><p>填写布尔值决定缩放图标是否显示。</p><div class="info custom-block"><p class="custom-block-title">INFO</p><p>默认为false。</p></div><h4 id="icon-zoomed-out-nevershow-示例" tabindex="-1">icon_zoomed_out_neverShow-示例 <a class="header-anchor" href="#icon-zoomed-out-nevershow-示例" aria-label="Permalink to "icon_zoomed_out_neverShow-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">icon_zoomed_out_neverShow:false</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">icon_zoomed_out_neverShow:true</span></span></code></pre></div><h3 id="icon-zoomed-out-nevershow-1" tabindex="-1">icon_zoomed_out_neverShow <a class="header-anchor" href="#icon-zoomed-out-nevershow-1" aria-label="Permalink to "icon_zoomed_out_neverShow""></a></h3><h4 id="icon-zoomed-out-nevershow-代码简介-1" tabindex="-1">icon_zoomed_out_neverShow-代码简介 <a class="header-anchor" href="#icon-zoomed-out-nevershow-代码简介-1" aria-label="Permalink to "icon_zoomed_out_neverShow-代码简介""></a></h4><p>代码:icon_zoomed_out_neverShow 中文释义:缩放图标不显示 类型:布尔值</p><h4 id="icon-zoomed-out-nevershow-用法-1" tabindex="-1">icon_zoomed_out_neverShow-用法 <a class="header-anchor" href="#icon-zoomed-out-nevershow-用法-1" aria-label="Permalink to "icon_zoomed_out_neverShow-用法""></a></h4><p>填写布尔值决定缩放图标是否显示。</p><div class="info custom-block"><p class="custom-block-title">INFO</p><p>默认为false。</p></div><h4 id="icon-zoomed-out-nevershow-示例-1" tabindex="-1">icon_zoomed_out_neverShow-示例 <a class="header-anchor" href="#icon-zoomed-out-nevershow-示例-1" aria-label="Permalink to "icon_zoomed_out_neverShow-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">icon_zoomed_out_neverShow:false</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">icon_zoomed_out_neverShow:true</span></span></code></pre></div><h3 id="showselectionindicator" tabindex="-1">showSelectionIndicator <a class="header-anchor" href="#showselectionindicator" aria-label="Permalink to "showSelectionIndicator""></a></h3><h4 id="showselectionindicator-代码简介" tabindex="-1">showSelectionIndicator-代码简介 <a class="header-anchor" href="#showselectionindicator-代码简介" aria-label="Permalink to "showSelectionIndicator-代码简介""></a></h4><p>代码:showSelectionIndicator 中文释义:显示选择指示 类型:布尔值</p><h4 id="showselectionindicator-用法" tabindex="-1">showSelectionIndicator-用法 <a class="header-anchor" href="#showselectionindicator-用法" aria-label="Permalink to "showSelectionIndicator-用法""></a></h4><p>填写布尔值决定选择框是否显示。</p><div class="info custom-block"><p class="custom-block-title">INFO</p><p>默认为true。</p></div><h4 id="showselectionindicator-示例" tabindex="-1">showSelectionIndicator-示例 <a class="header-anchor" href="#showselectionindicator-示例" aria-label="Permalink to "showSelectionIndicator-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">showSelectionIndicator:false</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">showSelectionIndicator:true</span></span></code></pre></div><h3 id="image-offseth" tabindex="-1">image_offsetH <a class="header-anchor" href="#image-offseth" aria-label="Permalink to "image_offsetH""></a></h3><h4 id="image-offseth-代码简介" tabindex="-1">image_offsetH-代码简介 <a class="header-anchor" href="#image-offseth-代码简介" aria-label="Permalink to "image_offsetH-代码简介""></a></h4><p>代码:image_offsetH 中文释义:高度绘制偏移 类型:浮点数</p><h4 id="image-offseth-用法" tabindex="-1">image_offsetH-用法 <a class="header-anchor" href="#image-offseth-用法" aria-label="Permalink to "image_offsetH-用法""></a></h4><p>填写浮点数决定高度的偏移大小。</p><div class="info custom-block"><p class="custom-block-title">INFO</p><p>默认为true。</p></div><h4 id="image-offseth-示例" tabindex="-1">image_offsetH-示例 <a class="header-anchor" href="#image-offseth-示例" aria-label="Permalink to "image_offsetH-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">image_offsetH:1</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">image_offsetH:1.2</span></span></code></pre></div><h3 id="image-turret" tabindex="-1">image_turret <a class="header-anchor" href="#image-turret" aria-label="Permalink to "image_turret""></a></h3><h4 id="image-turret-代码简介" tabindex="-1">image_turret-代码简介 <a class="header-anchor" href="#image-turret-代码简介" aria-label="Permalink to "image_turret-代码简介""></a></h4><p>代码:image_turret 中文释义:炮塔图像 类型:字符串</p><h4 id="image-turret-用法" tabindex="-1">image_turret-用法 <a class="header-anchor" href="#image-turret-用法" aria-label="Permalink to "image_turret-用法""></a></h4><p>填写图像路径,用于给炮塔设置图像文件,也可以在每个炮塔上单独设置。</p><div class="info custom-block"><p class="custom-block-title">INFO</p><p>设置的炮塔图像会默认应用于所有未设置图像的炮塔上。</p></div><h4 id="image-turret-示例" tabindex="-1">image_turret-示例 <a class="header-anchor" href="#image-turret-示例" aria-label="Permalink to "image_turret-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">image_turret:ROOT:\\124\\255\\image_shield.png </span><span style="color:#676E95;font-style:italic;"># 绝对路径</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">image_turret:\\124\\255\\image_shield.png </span><span style="color:#676E95;font-style:italic;"># 相对路径</span></span></code></pre></div><h3 id="turretimagescale" tabindex="-1">turretImageScale <a class="header-anchor" href="#turretimagescale" aria-label="Permalink to "turretImageScale""></a></h3><h4 id="turretimagescale-代码简介" tabindex="-1">turretImageScale-代码简介 <a class="header-anchor" href="#turretimagescale-代码简介" aria-label="Permalink to "turretImageScale-代码简介""></a></h4><p>代码:turretImageScale 中文释义:炮塔图像比例 类型:浮点数</p><h4 id="turretimagescale-用法" tabindex="-1">turretImageScale-用法 <a class="header-anchor" href="#turretimagescale-用法" aria-label="Permalink to "turretImageScale-用法""></a></h4><p>填写百分比以缩放图像,仅影响炮塔。</p><div class="info custom-block"><p class="custom-block-title">INFO</p><p>和imageScale用法一致。</p></div><h4 id="turretimagescale-示例" tabindex="-1">turretImageScale-示例 <a class="header-anchor" href="#turretimagescale-示例" aria-label="Permalink to "turretImageScale-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">turretImageScale:0.1</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">turretImageScale:2</span></span></code></pre></div><h3 id="scaleturretimagesto" tabindex="-1">scaleTurretImagesTo <a class="header-anchor" href="#scaleturretimagesto" aria-label="Permalink to "scaleTurretImagesTo""></a></h3><h4 id="scaleturretimagesto-代码简介" tabindex="-1">scaleTurretImagesTo-代码简介 <a class="header-anchor" href="#scaleturretimagesto-代码简介" aria-label="Permalink to "scaleTurretImagesTo-代码简介""></a></h4><p>代码:scaleTurretImagesTo 中文释义:将炮塔图像缩放到 类型:浮点数</p><h4 id="scaleturretimagesto-用法" tabindex="-1">scaleTurretImagesTo-用法 <a class="header-anchor" href="#scaleturretimagesto-用法" aria-label="Permalink to "scaleTurretImagesTo-用法""></a></h4><p>填写像素将炮塔图像大小缩放到指定像素。</p><div class="info custom-block"><p class="custom-block-title">INFO</p><p>仅用填写宽度。</p></div><h4 id="scaleturretimagesto-示例" tabindex="-1">scaleTurretImagesTo-示例 <a class="header-anchor" href="#scaleturretimagesto-示例" aria-label="Permalink to "scaleTurretImagesTo-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">scaleTurretImagesTo:11.2</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">scaleTurretImagesTo:33</span></span></code></pre></div><h3 id="teamcolorsonturret" tabindex="-1">teamColorsOnTurret <a class="header-anchor" href="#teamcolorsonturret" aria-label="Permalink to "teamColorsOnTurret""></a></h3><h4 id="teamcolorsonturret-代码简介" tabindex="-1">teamColorsOnTurret-代码简介 <a class="header-anchor" href="#teamcolorsonturret-代码简介" aria-label="Permalink to "teamColorsOnTurret-代码简介""></a></h4><p>代码:teamColorsOnTurret 中文释义:炮塔图像使用阵营色 类型:布尔值</p><h4 id="teamcolorsonturret-用法" tabindex="-1">teamColorsOnTurret-用法 <a class="header-anchor" href="#teamcolorsonturret-用法" aria-label="Permalink to "teamColorsOnTurret-用法""></a></h4><p>填写布尔值决定炮塔图像是否使用阵营色。</p><div class="info custom-block"><p class="custom-block-title">INFO</p><p>默认为false。</p></div><h4 id="teamcolorsonturret-示例" tabindex="-1">teamColorsOnTurret-示例 <a class="header-anchor" href="#teamcolorsonturret-示例" aria-label="Permalink to "teamColorsOnTurret-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">teamColorsOnTurret:true </span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">teamColorsOnTurret:false</span></span></code></pre></div><h3 id="lock-body-rotation-with-main-turret" tabindex="-1">lock_body_rotation_with_main_turret <a class="header-anchor" href="#lock-body-rotation-with-main-turret" aria-label="Permalink to "lock_body_rotation_with_main_turret""></a></h3><h4 id="lock-body-rotation-with-main-turret-代码简介" tabindex="-1">lock_body_rotation_with_main_turret-代码简介 <a class="header-anchor" href="#lock-body-rotation-with-main-turret-代码简介" aria-label="Permalink to "lock_body_rotation_with_main_turret-代码简介""></a></h4><p>代码:lock_body_rotation_with_main_turret 中文释义:锁定主体旋转随主炮塔 类型:布尔值</p><h4 id="lock-body-rotation-with-main-turret-用法" tabindex="-1">lock_body_rotation_with_main_turret-用法 <a class="header-anchor" href="#lock-body-rotation-with-main-turret-用法" aria-label="Permalink to "lock_body_rotation_with_main_turret-用法""></a></h4><p>填写布尔值决定锁定主体图像是否旋转追随主炮塔图像。</p><h4 id="lock-body-rotation-with-main-turret-示例" tabindex="-1">lock_body_rotation_with_main_turret-示例 <a class="header-anchor" href="#lock-body-rotation-with-main-turret-示例" aria-label="Permalink to "lock_body_rotation_with_main_turret-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">lock_body_rotation_with_main_turret:true </span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">lock_body_rotation_with_main_turret:false</span></span></code></pre></div><h3 id="lock-leg-rotation-with-main-turret" tabindex="-1">lock_leg_rotation_with_main_turret <a class="header-anchor" href="#lock-leg-rotation-with-main-turret" aria-label="Permalink to "lock_leg_rotation_with_main_turret""></a></h3><h4 id="lock-leg-rotation-with-main-turret-代码简介" tabindex="-1">lock_leg_rotation_with_main_turret-代码简介 <a class="header-anchor" href="#lock-leg-rotation-with-main-turret-代码简介" aria-label="Permalink to "lock_leg_rotation_with_main_turret-代码简介""></a></h4><p>代码:lock_leg_rotation_with_main_turret 中文释义:锁定腿脚旋转随主炮塔 类型:布尔值</p><h4 id="lock-leg-rotation-with-main-turret-用法" tabindex="-1">lock_leg_rotation_with_main_turret-用法 <a class="header-anchor" href="#lock-leg-rotation-with-main-turret-用法" aria-label="Permalink to "lock_leg_rotation_with_main_turret-用法""></a></h4><p>填写布尔值决定锁定腿脚图像是否旋转追随主炮塔图像。</p><h4 id="lock-leg-rotation-with-main-turret-示例" tabindex="-1">lock_leg_rotation_with_main_turret-示例 <a class="header-anchor" href="#lock-leg-rotation-with-main-turret-示例" aria-label="Permalink to "lock_leg_rotation_with_main_turret-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">lock_leg_rotation_with_main_turret:true </span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">lock_leg_rotation_with_main_turret:false</span></span></code></pre></div><h3 id="image-shadow" tabindex="-1">image_shadow <a class="header-anchor" href="#image-shadow" aria-label="Permalink to "image_shadow""></a></h3><h4 id="image-shadow-代码简介" tabindex="-1">image_shadow-代码简介 <a class="header-anchor" href="#image-shadow-代码简介" aria-label="Permalink to "image_shadow-代码简介""></a></h4><p>代码:image_shadow 中文释义:阴影图像 类型:字符串</p><h4 id="image-shadow-用法" tabindex="-1">image_shadow-用法 <a class="header-anchor" href="#image-shadow-用法" aria-label="Permalink to "image_shadow-用法""></a></h4><p>填写填NONE或AUTO,或图像文件的路径,决定该单位使用哪种阴影图像。</p><h4 id="image-shadow-示例" tabindex="-1">image_shadow-示例 <a class="header-anchor" href="#image-shadow-示例" aria-label="Permalink to "image_shadow-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">image_shadow:NONE </span><span style="color:#676E95;font-style:italic;">#不使用阴影图像</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">image_shadow:AUTO </span><span style="color:#676E95;font-style:italic;">#使用自动生成的阴影图像</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">image_shadow:./shadow/shadowA.png </span><span style="color:#676E95;font-style:italic;">#使用自定义的阴影图像</span></span></code></pre></div><h3 id="shadowoffsetx" tabindex="-1">shadowOffsetX <a class="header-anchor" href="#shadowoffsetx" aria-label="Permalink to "shadowOffsetX""></a></h3><h4 id="shadowoffsetx-代码简介" tabindex="-1">shadowOffsetX-代码简介 <a class="header-anchor" href="#shadowoffsetx-代码简介" aria-label="Permalink to "shadowOffsetX-代码简介""></a></h4><p>代码:shadowOffsetX 中文释义:阴影图像偏移X轴 类型:浮点数</p><h4 id="shadowoffsetx-用法" tabindex="-1">shadowOffsetX-用法 <a class="header-anchor" href="#shadowoffsetx-用法" aria-label="Permalink to "shadowOffsetX-用法""></a></h4><p>作用于阴影图像,填写的数值会作为偏移的像素大小,可以为负。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>偏移的方向依据X的数值而定。<br> X轴以阴影图像中心点为坐标,X增大则图像向右偏移。</p></div><h4 id="shadowoffsetx-示例" tabindex="-1">shadowOffsetX-示例 <a class="header-anchor" href="#shadowoffsetx-示例" aria-label="Permalink to "shadowOffsetX-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">shadowOffsetX:14</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">shadowOffsetX:-14.5</span></span></code></pre></div><h3 id="shadowoffsety" tabindex="-1">shadowOffsetY <a class="header-anchor" href="#shadowoffsety" aria-label="Permalink to "shadowOffsetY""></a></h3><h4 id="shadowoffsety-代码简介" tabindex="-1">shadowOffsetY-代码简介 <a class="header-anchor" href="#shadowoffsety-代码简介" aria-label="Permalink to "shadowOffsetY-代码简介""></a></h4><p>代码:shadowOffsetY 中文释义:阴影图像偏移Y轴 类型:浮点数</p><h4 id="shadowoffsety-用法" tabindex="-1">shadowOffsetY-用法 <a class="header-anchor" href="#shadowoffsety-用法" aria-label="Permalink to "shadowOffsetY-用法""></a></h4><p>作用于阴影图像,填写的数值会作为偏移的像素大小,可以为负。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>偏移的方向依据Y的数值而定。<br> Y轴以阴影图像中心点为坐标,Y增大则图像向右偏移。</p></div><h4 id="shadowoffsety-示例" tabindex="-1">shadowOffsetY-示例 <a class="header-anchor" href="#shadowoffsety-示例" aria-label="Permalink to "shadowOffsetY-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">shadowOffsetY:14</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">shadowOffsetY:-14.5</span></span></code></pre></div><h3 id="image-shadow-frames" tabindex="-1">image_shadow_frames <a class="header-anchor" href="#image-shadow-frames" aria-label="Permalink to "image_shadow_frames""></a></h3><h4 id="image-shadow-frames-代码简介" tabindex="-1">image_shadow_frames-代码简介 <a class="header-anchor" href="#image-shadow-frames-代码简介" aria-label="Permalink to "image_shadow_frames-代码简介""></a></h4><p>代码:image_shadow_frames 中文释义:阴影图像指定 类型:布尔值</p><h4 id="image-shadow-frames-用法" tabindex="-1">image_shadow_frames-用法 <a class="header-anchor" href="#image-shadow-frames-用法" aria-label="Permalink to "image_shadow_frames-用法""></a></h4><p>填写布尔值,决定阴影是否随单位移动而改变方向。</p><div class="info custom-block"><p class="custom-block-title">INFO</p><p>填写为true则不改变。</p></div><h4 id="image-shadow-frames-示例" tabindex="-1">image_shadow_frames-示例 <a class="header-anchor" href="#image-shadow-frames-示例" aria-label="Permalink to "image_shadow_frames-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">image_shadow_frames:true</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">image_shadow_frames:false</span></span></code></pre></div><h3 id="lock-shadow-rotation-with-main-turret" tabindex="-1">lock_shadow_rotation_with_main_turret <a class="header-anchor" href="#lock-shadow-rotation-with-main-turret" aria-label="Permalink to "lock_shadow_rotation_with_main_turret""></a></h3><h4 id="lock-shadow-rotation-with-main-turret-代码简介" tabindex="-1">lock_shadow_rotation_with_main_turret-代码简介 <a class="header-anchor" href="#lock-shadow-rotation-with-main-turret-代码简介" aria-label="Permalink to "lock_shadow_rotation_with_main_turret-代码简介""></a></h4><p>代码:lock_shadow_rotation_with_main_turret 中文释义:阴影锁定为主炮塔方向 类型:布尔值</p><h4 id="lock-shadow-rotation-with-main-turret-用法" tabindex="-1">lock_shadow_rotation_with_main_turret-用法 <a class="header-anchor" href="#lock-shadow-rotation-with-main-turret-用法" aria-label="Permalink to "lock_shadow_rotation_with_main_turret-用法""></a></h4><p>填写布尔值,决定是否将身体图像阴影锁定到主炮塔的方向。</p><div class="info custom-block"><p class="custom-block-title">INFO</p><p>填写为true则锁定。</p></div><h4 id="lock-shadow-rotation-with-main-turret-示例" tabindex="-1">lock_shadow_rotation_with_main_turret-示例 <a class="header-anchor" href="#lock-shadow-rotation-with-main-turret-示例" aria-label="Permalink to "lock_shadow_rotation_with_main_turret-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">lock_shadow_rotation_with_main_turret:true</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">lock_shadow_rotation_with_main_turret:false</span></span></code></pre></div><h3 id="total-frames" tabindex="-1">total_frames <a class="header-anchor" href="#total-frames" aria-label="Permalink to "total_frames""></a></h3><h4 id="total-frames-代码简介" tabindex="-1">total_frames-代码简介 <a class="header-anchor" href="#total-frames-代码简介" aria-label="Permalink to "total_frames-代码简介""></a></h4><p>代码:total_frames 中文释义:图像帧数 类型:正整数</p><h4 id="total-frames-用法" tabindex="-1">total_frames-用法 <a class="header-anchor" href="#total-frames-用法" aria-label="Permalink to "total_frames-用法""></a></h4><p>填写数字,将图像分割为指定份数,用于动画。</p><div class="info custom-block"><p class="custom-block-title">INFO</p><p>默认值为1,第一帧编号为0。</p></div><h4 id="total-frames-示例" tabindex="-1">total_frames-示例 <a class="header-anchor" href="#total-frames-示例" aria-label="Permalink to "total_frames-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">total_frames:5</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">total_frames:3</span></span></code></pre></div><h3 id="frame-width" tabindex="-1">frame_width <a class="header-anchor" href="#frame-width" aria-label="Permalink to "frame_width""></a></h3><h4 id="frame-width-代码简介" tabindex="-1">frame_width-代码简介 <a class="header-anchor" href="#frame-width-代码简介" aria-label="Permalink to "frame_width-代码简介""></a></h4><p>代码:frame_width 中文释义:图像宽度 类型:正整数</p><h4 id="frame-width-用法" tabindex="-1">frame_width-用法 <a class="header-anchor" href="#frame-width-用法" aria-label="Permalink to "frame_width-用法""></a></h4><p>填写像素大小,作为图像的帧宽度。将自动根据图像的帧宽度将图像分割为不同的帧,并覆盖总帧数。</p><h4 id="frame-width-示例" tabindex="-1">frame_width-示例 <a class="header-anchor" href="#frame-width-示例" aria-label="Permalink to "frame_width-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">frame_width:23</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">frame_width:23</span></span></code></pre></div><h3 id="frame-height" tabindex="-1">frame_height <a class="header-anchor" href="#frame-height" aria-label="Permalink to "frame_height""></a></h3><h4 id="frame-height-代码简介" tabindex="-1">frame_height-代码简介 <a class="header-anchor" href="#frame-height-代码简介" aria-label="Permalink to "frame_height-代码简介""></a></h4><p>代码:frame_height 中文释义:图像高度 类型:正整数</p><h4 id="frame-height-用法" tabindex="-1">frame_height-用法 <a class="header-anchor" href="#frame-height-用法" aria-label="Permalink to "frame_height-用法""></a></h4><p>填写像素大小,作为图像帧的高度。</p><div class="info custom-block"><p class="custom-block-title">INFO</p><p>默认为图像的高度。</p></div><h4 id="frame-height-示例" tabindex="-1">frame_height-示例 <a class="header-anchor" href="#frame-height-示例" aria-label="Permalink to "frame_height-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">frame_height:23</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">frame_height:23</span></span></code></pre></div><h3 id="splasteffect" tabindex="-1">splastEffect <a class="header-anchor" href="#splasteffect" aria-label="Permalink to "splastEffect""></a></h3><h4 id="splasteffect-代码简介" tabindex="-1">splastEffect-代码简介 <a class="header-anchor" href="#splasteffect-代码简介" aria-label="Permalink to "splastEffect-代码简介""></a></h4><p>代码:splastEffect 中文释义:水波效果 类型:布尔值</p><h4 id="splasteffect-用法" tabindex="-1">splastEffect-用法 <a class="header-anchor" href="#splasteffect-用法" aria-label="Permalink to "splastEffect-用法""></a></h4><p>填写布尔值,决定在水上时是否创建水波效果。</p><div class="info custom-block"><p class="custom-block-title">INFO</p><p>效果为内置的,默认为false。</p></div><h4 id="splasteffect-示例" tabindex="-1">splastEffect-示例 <a class="header-anchor" href="#splasteffect-示例" aria-label="Permalink to "splastEffect-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">splastEffect:true</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">splastEffect:false</span></span></code></pre></div><h3 id="dusteffect" tabindex="-1">dustEffect <a class="header-anchor" href="#dusteffect" aria-label="Permalink to "dustEffect""></a></h3><h4 id="dusteffect-代码简介" tabindex="-1">dustEffect-代码简介 <a class="header-anchor" href="#dusteffect-代码简介" aria-label="Permalink to "dustEffect-代码简介""></a></h4><p>代码:dustEffect 中文释义:灰尘效果 类型:布尔值</p><h4 id="dusteffect-用法" tabindex="-1">dustEffect-用法 <a class="header-anchor" href="#dusteffect-用法" aria-label="Permalink to "dustEffect-用法""></a></h4><p>填写布尔值,决定在水上时是否创建灰尘效果。</p><div class="info custom-block"><p class="custom-block-title">INFO</p><p>效果为内置的,默认为false。</p></div><h4 id="dusteffect-示例" tabindex="-1">dustEffect-示例 <a class="header-anchor" href="#dusteffect-示例" aria-label="Permalink to "dustEffect-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">dustEffect:true</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">dustEffect:false</span></span></code></pre></div><h3 id="splasteffectreverse" tabindex="-1">splastEffectReverse <a class="header-anchor" href="#splasteffectreverse" aria-label="Permalink to "splastEffectReverse""></a></h3><h4 id="splasteffectreverse-代码简介" tabindex="-1">splastEffectReverse-代码简介 <a class="header-anchor" href="#splasteffectreverse-代码简介" aria-label="Permalink to "splastEffectReverse-代码简介""></a></h4><p>代码:splastEffectReverse 中文释义:逆向水波效果 类型:布尔值</p><h4 id="splasteffectreverse-用法" tabindex="-1">splastEffectReverse-用法 <a class="header-anchor" href="#splasteffectreverse-用法" aria-label="Permalink to "splastEffectReverse-用法""></a></h4><p>填写布尔值,决定在水上时倒车时是否产生水波效果。</p><div class="info custom-block"><p class="custom-block-title">INFO</p><p>效果为内置的,默认为false。</p></div><h4 id="splasteffectreverse-示例" tabindex="-1">splastEffectReverse-示例 <a class="header-anchor" href="#splasteffectreverse-示例" aria-label="Permalink to "splastEffectReverse-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">splastEffectReverse:true</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">splastEffectReverse:false</span></span></code></pre></div><h3 id="dusteffectreverse" tabindex="-1">dustEffectReverse <a class="header-anchor" href="#dusteffectreverse" aria-label="Permalink to "dustEffectReverse""></a></h3><h4 id="dusteffectreverse-代码简介" tabindex="-1">dustEffectReverse-代码简介 <a class="header-anchor" href="#dusteffectreverse-代码简介" aria-label="Permalink to "dustEffectReverse-代码简介""></a></h4><p>代码:dustEffectReverse 中文释义:逆向灰尘效果 类型:布尔值</p><h4 id="dusteffectreverse-用法" tabindex="-1">dustEffectReverse-用法 <a class="header-anchor" href="#dusteffectreverse-用法" aria-label="Permalink to "dustEffectReverse-用法""></a></h4><p>填写布尔值,决定在水上时倒车时是否产生灰尘效果。</p><div class="info custom-block"><p class="custom-block-title">INFO</p><p>效果为内置的,默认为false。</p></div><h4 id="dusteffectreverse-示例" tabindex="-1">dustEffectReverse-示例 <a class="header-anchor" href="#dusteffectreverse-示例" aria-label="Permalink to "dustEffectReverse-示例""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">dustEffectReverse:true</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#89DDFF;">[graphics]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">dustEffectReverse:false</span></span></code></pre></div>`,298),o=[t];function i(r,c,p,h,d,m){return e(),s("div",null,o)}const g=a(l,[["render",i]]);export{f as __pageData,g as default};
|
File diff suppressed because one or more lines are too long
26
assets/src_Unit_loginboolean.md.62d5a6a0.lean.js
Normal file
26
assets/src_Unit_loginboolean.md.62d5a6a0.lean.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
33
assets/src_Unit_movement.md.21a1d6a5.js
Normal file
33
assets/src_Unit_movement.md.21a1d6a5.js
Normal file
|
@ -0,0 +1,33 @@
|
|||
import{_ as t,v as n,b as o,L as a,R as e}from"./chunks/framework.c741a37c.js";const b=JSON.parse('{"title":"[movement]组","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"src/Unit/movement.md","filePath":"src/Unit/movement.md"}'),l={name:"src/Unit/movement.md"},s=e(`<h1 id="movement-组" tabindex="-1"><strong>[movement]组</strong> <a class="header-anchor" href="#movement-组" aria-label="Permalink to "**[movement]组**""></a></h1><h2 id="第一类-通用代码组" tabindex="-1">第一类-通用代码组 <a class="header-anchor" href="#第一类-通用代码组" aria-label="Permalink to "第一类-通用代码组""></a></h2><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>以下的代码为<code>通用代码</code>,多半是必要的代码,如果不包括这些,可能在<code>绝大多数情况下导致错误</code>。</p></div><h3 id="movementtype" tabindex="-1">movementType <a class="header-anchor" href="#movementtype" aria-label="Permalink to "movementType""></a></h3><h4 id="movementtype-代码简介" tabindex="-1">movementType-代码简介 <a class="header-anchor" href="#movementtype-代码简介" aria-label="Permalink to "movementType-代码简介""></a></h4><p>代码:movementType 中文释义:运动类型 类型:字符串 隶属于:通用代码组</p><h4 id="string-要点指示" tabindex="-1">string-要点指示 <a class="header-anchor" href="#string-要点指示" aria-label="Permalink to "string-要点指示""></a></h4><p>定义单位的运动类型,判定单位是否可在某种地形上运动,可用值为NONE、LAND、BUILDING、AIR、WATER、HOVER、OVER_CLIFF、OVER_CLIFF_WATER。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>不同的运动类型特点如下</p><table><thead><tr><th>类型</th><th>可跨陆地</th><th>可跨悬崖</th><th>可跨水</th><th>可跨岩浆</th></tr></thead><tbody><tr><td>NONE</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td></tr><tr><td>LAND</td><td>✓</td><td>×</td><td>×</td><td>×</td></tr><tr><td>BUILDING</td><td>✓</td><td>×</td><td>×</td><td>×</td></tr><tr><td>AIR</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td></tr><tr><td>WATER</td><td>×</td><td>×</td><td>✓</td><td>×</td></tr><tr><td>HOVER</td><td>✓</td><td>×</td><td>✓</td><td>×</td></tr><tr><td>OVER_CLIFF</td><td>✓</td><td>✓</td><td>×</td><td>×</td></tr><tr><td>OVER_CLIFF_WATER</td><td>✓</td><td>✓</td><td>✓</td><td>×</td></tr></tbody></table></div><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>类型NONE虽然说移动无视地形,但是只能在LAND类型地块进行放置</p></div><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>NONE移动类型在多选单位进行移动时会有卡寻路的问题 BUILDING移动类型似乎已经废弃,和LAND没有任何区别</p></div><h4 id="movementtype-演示例子" tabindex="-1">movementType-演示例子 <a class="header-anchor" href="#movementtype-演示例子" aria-label="Permalink to "movementType-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">movementType:LAND</span></span></code></pre></div><hr><h2 id="第二类-速度相关组" tabindex="-1">第二类-速度相关组 <a class="header-anchor" href="#第二类-速度相关组" aria-label="Permalink to "第二类-速度相关组""></a></h2><h3 id="movespeed" tabindex="-1">moveSpeed <a class="header-anchor" href="#movespeed" aria-label="Permalink to "moveSpeed""></a></h3><h4 id="movespeed-代码简介" tabindex="-1">moveSpeed-代码简介 <a class="header-anchor" href="#movespeed-代码简介" aria-label="Permalink to "moveSpeed-代码简介""></a></h4><p>代码:moveSpeed 中文释义:移动速度 类型:浮点数 隶属于:通用代码组</p><h4 id="movespeed-要点指示" tabindex="-1">moveSpeed-要点指示 <a class="header-anchor" href="#movespeed-要点指示" aria-label="Permalink to "moveSpeed-要点指示""></a></h4><p>定义单位的移动速度,显示在单位信息中</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>移动速度的单位是<strong>像素/帧</strong>,同时铁锈战争地图图块大小为20x20,且一秒60帧,所以说移动速度为1的话,每秒可以移动三格</p></div><h4 id="movespeed-演示例子" tabindex="-1">moveSpeed-演示例子 <a class="header-anchor" href="#movespeed-演示例子" aria-label="Permalink to "moveSpeed-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">moveSpeed:0.5</span></span></code></pre></div><hr><h3 id="moveaccelerationspeed" tabindex="-1">moveAccelerationSpeed <a class="header-anchor" href="#moveaccelerationspeed" aria-label="Permalink to "moveAccelerationSpeed""></a></h3><h4 id="moveaccelerationspeed-代码简介" tabindex="-1">moveAccelerationSpeed-代码简介 <a class="header-anchor" href="#moveaccelerationspeed-代码简介" aria-label="Permalink to "moveAccelerationSpeed-代码简介""></a></h4><p>代码:moveAccelerationSpeed 中文释义:加速度 类型:浮点数 隶属于:速度相关组</p><h4 id="moveaccelerationspeed-要点指示" tabindex="-1">moveAccelerationSpeed-要点指示 <a class="header-anchor" href="#moveaccelerationspeed-要点指示" aria-label="Permalink to "moveAccelerationSpeed-要点指示""></a></h4><p>定义单位的加速度,单位在移动时会从零开始加速直到移动速度</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>加速度也是按帧计算的,如果你需要一秒加速0.6,你需要填写的值为0.01</p></div><h4 id="moveaccelerationspeed-演示例子" tabindex="-1">moveAccelerationSpeed-演示例子 <a class="header-anchor" href="#moveaccelerationspeed-演示例子" aria-label="Permalink to "moveAccelerationSpeed-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">moveSpeed:1</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">moveAccelerationSpeed:0.01</span></span></code></pre></div><hr><h3 id="movedecelerationspeed" tabindex="-1">moveDecelerationSpeed <a class="header-anchor" href="#movedecelerationspeed" aria-label="Permalink to "moveDecelerationSpeed""></a></h3><h4 id="movedecelerationspeed-代码简介" tabindex="-1">moveDecelerationSpeed-代码简介 <a class="header-anchor" href="#movedecelerationspeed-代码简介" aria-label="Permalink to "moveDecelerationSpeed-代码简介""></a></h4><p>代码:moveDecelerationSpeed 中文释义:减速度 类型:浮点数 隶属于:速度相关组</p><h4 id="movedecelerationspeed-要点指示" tabindex="-1">moveDecelerationSpeed-要点指示 <a class="header-anchor" href="#movedecelerationspeed-要点指示" aria-label="Permalink to "moveDecelerationSpeed-要点指示""></a></h4><p>定义单位的减速度,单位在停止移动时会从运动速度开始减速直到零</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>减速度也是按帧计算的,如果你需要一秒减速0.6,你需要填写的值为0.01</p></div><h4 id="movedecelerationspeed-演示例子" tabindex="-1">moveDecelerationSpeed-演示例子 <a class="header-anchor" href="#movedecelerationspeed-演示例子" aria-label="Permalink to "moveDecelerationSpeed-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">moveSpeed:1</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">moveDecelerationSpeed:0.01</span></span></code></pre></div><hr><h3 id="reversespeedpercentage" tabindex="-1">reverseSpeedPercentage <a class="header-anchor" href="#reversespeedpercentage" aria-label="Permalink to "reverseSpeedPercentage""></a></h3><h4 id="reversespeedpercentageed-代码简介" tabindex="-1">reverseSpeedPercentageed-代码简介 <a class="header-anchor" href="#reversespeedpercentageed-代码简介" aria-label="Permalink to "reverseSpeedPercentageed-代码简介""></a></h4><p>代码:reverseSpeedPercentage 中文释义:倒车速度比率 类型:浮点数 隶属于:速度相关组</p><h4 id="reversespeedpercentage-要点指示" tabindex="-1">reverseSpeedPercentage-要点指示 <a class="header-anchor" href="#reversespeedpercentage-要点指示" aria-label="Permalink to "reverseSpeedPercentage-要点指示""></a></h4><p>定义单位倒车时的速度,单位在逆向运动时会按照运动速度与倒车速度比率的乘积运行</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>这个值默认为0.6 如果这个值等于0,那么无论什么距离向后运动都会先转弯 如果在0到1之间,那么短距离向后运动会倒车而不是转弯 如果等于1,那么无论什么距离,向后运动会倒车而不是转弯</p></div><h4 id="reversespeedpercentagepeed-演示例子" tabindex="-1">reverseSpeedPercentagepeed-演示例子 <a class="header-anchor" href="#reversespeedpercentagepeed-演示例子" aria-label="Permalink to "reverseSpeedPercentagepeed-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">moveSpeed:1</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">reverseSpeedPercentage:0.4</span></span></code></pre></div><hr><h3 id="maxturnspeed" tabindex="-1">maxTurnSpeed <a class="header-anchor" href="#maxturnspeed" aria-label="Permalink to "maxTurnSpeed""></a></h3><h4 id="maxturnspeed-代码简介" tabindex="-1">maxTurnSpeed-代码简介 <a class="header-anchor" href="#maxturnspeed-代码简介" aria-label="Permalink to "maxTurnSpeed-代码简介""></a></h4><p>代码:maxTurnSpeed 中文释义:转弯速度 类型:浮点数 隶属于:速度相关组</p><h4 id="maxturnspeed-要点指示" tabindex="-1">maxTurnSpeed-要点指示 <a class="header-anchor" href="#maxturnspeed-要点指示" aria-label="Permalink to "maxTurnSpeed-要点指示""></a></h4><p>定义单位转弯的速度</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>转弯速度的单位是<strong>度/帧</strong>,如果转弯速度为1,那么一秒将旋转60度</p></div><h4 id="maxturnspeed-演示例子" tabindex="-1">maxTurnSpeed-演示例子 <a class="header-anchor" href="#maxturnspeed-演示例子" aria-label="Permalink to "maxTurnSpeed-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">maxTurnSpeed:1.5</span></span></code></pre></div><hr><h3 id="turnacceleration" tabindex="-1">turnAcceleration <a class="header-anchor" href="#turnacceleration" aria-label="Permalink to "turnAcceleration""></a></h3><h4 id="turnacceleration-代码简介" tabindex="-1">turnAcceleration-代码简介 <a class="header-anchor" href="#turnacceleration-代码简介" aria-label="Permalink to "turnAcceleration-代码简介""></a></h4><p>代码:turnAcceleration 中文释义:转弯速度 类型:浮点数 隶属于:速度相关组</p><h4 id="turnacceleration-要点指示" tabindex="-1">turnAcceleration-要点指示 <a class="header-anchor" href="#turnacceleration-要点指示" aria-label="Permalink to "turnAcceleration-要点指示""></a></h4><p>定义单位转弯的加速度,开始转弯时将从零开始加速直到转弯速度</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>转弯加速度是按帧计算的,如果想要每秒增加0.6需要填0.01</p></div><h4 id="turnacceleration-演示例子" tabindex="-1">turnAcceleration-演示例子 <a class="header-anchor" href="#turnacceleration-演示例子" aria-label="Permalink to "turnAcceleration-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">maxTurnSpeed:1.5</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">turnAcceleration:0.01</span></span></code></pre></div><hr><h2 id="第三类-高度相关组" tabindex="-1">第三类-高度相关组 <a class="header-anchor" href="#第三类-高度相关组" aria-label="Permalink to "第三类-高度相关组""></a></h2><h3 id="targetheight" tabindex="-1">targetHeight <a class="header-anchor" href="#targetheight" aria-label="Permalink to "targetHeight""></a></h3><h4 id="targetheight-代码简介" tabindex="-1">targetHeight-代码简介 <a class="header-anchor" href="#targetheight-代码简介" aria-label="Permalink to "targetHeight-代码简介""></a></h4><p>代码:targetHeight 中文释义:到达高度 类型:浮点数 隶属于:高度相关组</p><h4 id="targetheight-要点指示" tabindex="-1">targetHeight-要点指示 <a class="header-anchor" href="#targetheight-要点指示" aria-label="Permalink to "targetHeight-要点指示""></a></h4><p>定义单位的高度,当单位创建完成时会从0到达这个高度</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>如果运动类型为AIR,targetHeight默认值将为20</p></div><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-6GKwI" id="tab-HIh-trv" checked="checked"><label for="tab-HIh-trv">摸鱼人time</label></div><div class="blocks"><div class="language-bash active"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">大部分单位能被什么类型的攻击方式攻击不取决于移动类型,而是取决于高度</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">如果高度是负数,那么可以被水下攻击命中</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">如果高度位于0到10之间,可以被对表面攻击命中</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">如果高度大于10,可以被对空攻击命中</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">如果高度不为0的地面悬浮单位,对地的范围攻击(比如火炮</span><span style="color:#A6ACCD;">)将无法对其造成伤害,但是可以被瞄准</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">建筑高度大于等于0是,只能被对表面攻击命中</span></span></code></pre></div></div></div><h4 id="targetheight-演示例子" tabindex="-1">targetHeight-演示例子 <a class="header-anchor" href="#targetheight-演示例子" aria-label="Permalink to "targetHeight-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">targetHeight:10</span></span></code></pre></div><hr><h3 id="targetheightdrift" tabindex="-1">targetHeightDrift <a class="header-anchor" href="#targetheightdrift" aria-label="Permalink to "targetHeightDrift""></a></h3><h4 id="targetheightdrift-代码简介" tabindex="-1">targetHeightDrift-代码简介 <a class="header-anchor" href="#targetheightdrift-代码简介" aria-label="Permalink to "targetHeightDrift-代码简介""></a></h4><p>代码:targetHeightDrift 中文释义:高度浮动 类型:浮点数 隶属于:高度相关组</p><h4 id="targetheight-要点指示-1" tabindex="-1">targetHeight-要点指示 <a class="header-anchor" href="#targetheight-要点指示-1" aria-label="Permalink to "targetHeight-要点指示""></a></h4><p>定义单位的高度浮动,单位会在到达高度上下浮动</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>如果运动类型为AIR,targetHeightDrift默认值将为2.5</p></div><h4 id="targetheightdrift-演示例子" tabindex="-1">targetHeightDrift-演示例子 <a class="header-anchor" href="#targetheightdrift-演示例子" aria-label="Permalink to "targetHeightDrift-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">targetHeight:10</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">targetHeightDrift:1</span></span></code></pre></div><hr><h3 id="landonground" tabindex="-1">landOnGround <a class="header-anchor" href="#landonground" aria-label="Permalink to "landOnGround""></a></h3><h4 id="landonground-代码简介" tabindex="-1">landOnGround-代码简介 <a class="header-anchor" href="#landonground-代码简介" aria-label="Permalink to "landOnGround-代码简介""></a></h4><p>代码:landOnGround 中文释义:降落到地面 类型:布尔值 隶属于:高度相关组</p><h4 id="landonground-要点指示" tabindex="-1">landOnGround-要点指示 <a class="header-anchor" href="#landonground-要点指示" aria-label="Permalink to "landOnGround-要点指示""></a></h4><p>定义单位在不移动时是否降落到地面</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>只有单位投影所在地块可以降落时才会降落</p></div><h4 id="landonground-演示例子" tabindex="-1">landOnGround-演示例子 <a class="header-anchor" href="#landonground-演示例子" aria-label="Permalink to "landOnGround-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">landOnGround:true</span></span></code></pre></div><hr><h3 id="fallingacceleration" tabindex="-1">fallingAcceleration <a class="header-anchor" href="#fallingacceleration" aria-label="Permalink to "fallingAcceleration""></a></h3><h4 id="fallingacceleration-代码简介" tabindex="-1">fallingAcceleration-代码简介 <a class="header-anchor" href="#fallingacceleration-代码简介" aria-label="Permalink to "fallingAcceleration-代码简介""></a></h4><p>代码:fallingAcceleration 中文释义:降落加速度 类型:浮点值 隶属于:高度相关组</p><h4 id="fallingacceleration-要点指示" tabindex="-1">fallingAcceleration-要点指示 <a class="header-anchor" href="#fallingacceleration-要点指示" aria-label="Permalink to "fallingAcceleration-要点指示""></a></h4><p>定义单位在降落到地面时的加速度</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>加速度是按帧来计算的,如果想一秒加速0.6则填写0.01</p></div><h4 id="fallingacceleration-演示例子" tabindex="-1">fallingAcceleration-演示例子 <a class="header-anchor" href="#fallingacceleration-演示例子" aria-label="Permalink to "fallingAcceleration-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">fallingAcceleration:0.01</span></span></code></pre></div><hr><h3 id="slowdeathfall" tabindex="-1">slowDeathFall <a class="header-anchor" href="#slowdeathfall" aria-label="Permalink to "slowDeathFall""></a></h3><h4 id="slowdeathfall-代码简介" tabindex="-1">slowDeathFall-代码简介 <a class="header-anchor" href="#slowdeathfall-代码简介" aria-label="Permalink to "slowDeathFall-代码简介""></a></h4><p>代码:slowDeathFall 中文释义:死亡坠落 类型:布尔值 隶属于:高度相关组</p><h4 id="slowdeathfall-要点指示" tabindex="-1">slowDeathFall-要点指示 <a class="header-anchor" href="#slowdeathfall-要点指示" aria-label="Permalink to "slowDeathFall-要点指示""></a></h4><p>定义单位在死亡时是否坠落到地面</p><h4 id="targetheightdrift-演示例子-1" tabindex="-1">targetHeightDrift-演示例子 <a class="header-anchor" href="#targetheightdrift-演示例子-1" aria-label="Permalink to "targetHeightDrift-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">slowDeathFall:true</span></span></code></pre></div><hr><h3 id="fallingaccelerationdead" tabindex="-1">fallingAccelerationDead <a class="header-anchor" href="#fallingaccelerationdead" aria-label="Permalink to "fallingAccelerationDead""></a></h3><h4 id="fallingaccelerationdead-代码简介" tabindex="-1">fallingAccelerationDead-代码简介 <a class="header-anchor" href="#fallingaccelerationdead-代码简介" aria-label="Permalink to "fallingAccelerationDead-代码简介""></a></h4><p>代码:fallingAccelerationDead 中文释义:死亡坠落加速度 类型:浮点值 隶属于:高度相关组</p><h4 id="fallingaccelerationdead-要点指示" tabindex="-1">fallingAccelerationDead-要点指示 <a class="header-anchor" href="#fallingaccelerationdead-要点指示" aria-label="Permalink to "fallingAccelerationDead-要点指示""></a></h4><p>定义单位在死亡坠毁到地面时的加速度</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>加速度是按帧来计算的,如果想一秒加速0.6则填写0.01</p></div><h4 id="fallingaccelerationdead-演示例子" tabindex="-1">fallingAccelerationDead-演示例子 <a class="header-anchor" href="#fallingaccelerationdead-演示例子" aria-label="Permalink to "fallingAccelerationDead-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">fallingAccelerationDead:0.01</span></span></code></pre></div><hr><h3 id="heightchangerate" tabindex="-1">heightChangeRate <a class="header-anchor" href="#heightchangerate" aria-label="Permalink to "heightChangeRate""></a></h3><h4 id="heightchangerate-代码简介" tabindex="-1">heightChangeRate-代码简介 <a class="header-anchor" href="#heightchangerate-代码简介" aria-label="Permalink to "heightChangeRate-代码简介""></a></h4><p>代码:heightChangeRate 中文释义:高度改变速率 类型:浮点值 隶属于:高度相关组</p><h4 id="heightchangerate-要点指示" tabindex="-1">heightChangeRate-要点指示 <a class="header-anchor" href="#heightchangerate-要点指示" aria-label="Permalink to "heightChangeRate-要点指示""></a></h4><p>定义单位在被创建,转换,浮动是高度改变的速度</p><h4 id="heightchangerate-演示例子" tabindex="-1">heightChangeRate-演示例子 <a class="header-anchor" href="#heightchangerate-演示例子" aria-label="Permalink to "heightChangeRate-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">heightChangeRate:0.4</span></span></code></pre></div><hr><h2 id="第四类-杂项" tabindex="-1">第四类-杂项 <a class="header-anchor" href="#第四类-杂项" aria-label="Permalink to "第四类-杂项""></a></h2><h3 id="moveignoringbody" tabindex="-1">moveIgnoringBody <a class="header-anchor" href="#moveignoringbody" aria-label="Permalink to "moveIgnoringBody""></a></h3><h4 id="moveignoringbody-代码简介" tabindex="-1">moveIgnoringBody-代码简介 <a class="header-anchor" href="#moveignoringbody-代码简介" aria-label="Permalink to "moveIgnoringBody-代码简介""></a></h4><p>代码:moveIgnoringBody 中文释义:移动忽略转向 类型:布尔值 隶属于:杂项</p><h4 id="moveignoringbody-要点指示" tabindex="-1">moveIgnoringBody-要点指示 <a class="header-anchor" href="#moveignoringbody-要点指示" aria-label="Permalink to "moveIgnoringBody-要点指示""></a></h4><p>定义单位移动时是否需要考虑角度</p><h4 id="moveignoringbody-演示例子" tabindex="-1">moveIgnoringBody-演示例子 <a class="header-anchor" href="#moveignoringbody-演示例子" aria-label="Permalink to "moveIgnoringBody-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">moveIgnoringBody:true</span></span></code></pre></div><hr><h3 id="moveslidingmode" tabindex="-1">moveSlidingMode <a class="header-anchor" href="#moveslidingmode" aria-label="Permalink to "moveSlidingMode""></a></h3><h4 id="moveslidingmode-代码简介" tabindex="-1">moveSlidingMode-代码简介 <a class="header-anchor" href="#moveslidingmode-代码简介" aria-label="Permalink to "moveSlidingMode-代码简介""></a></h4><p>代码:moveSlidingMode 中文释义:移动滑动 类型:布尔值 隶属于:杂项</p><h4 id="moveslidingmode-要点指示" tabindex="-1">moveSlidingMode-要点指示 <a class="header-anchor" href="#moveslidingmode-要点指示" aria-label="Permalink to "moveSlidingMode-要点指示""></a></h4><p>定义单位移动后是否进行滑动</p><p>####moveSlidingMode-演示例子</p><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">moveSlidingMode:true</span></span></code></pre></div><hr>`,149),i=e(`<h4 id="moveslidingdir-演示例子" tabindex="-1">moveSlidingDir-演示例子 <a class="header-anchor" href="#moveslidingdir-演示例子" aria-label="Permalink to "moveSlidingDir-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">moveSlidingDir:-1</span></span></code></pre></div><hr><h3 id="joinsgroupformations" tabindex="-1">joinsGroupFormations <a class="header-anchor" href="#joinsgroupformations" aria-label="Permalink to "joinsGroupFormations""></a></h3><h4 id="joinsgroupformations-代码简介" tabindex="-1">joinsGroupFormations-代码简介 <a class="header-anchor" href="#joinsgroupformations-代码简介" aria-label="Permalink to "joinsGroupFormations-代码简介""></a></h4><p>代码:joinsGroupFormations 中文释义:加入到队形 类型:布尔值 隶属于:杂项</p><h4 id="joinsgroupformations-要点指示" tabindex="-1">joinsGroupFormations-要点指示 <a class="header-anchor" href="#joinsgroupformations-要点指示" aria-label="Permalink to "joinsGroupFormations-要点指示""></a></h4><p>定义单位移动时是否要按队形行动</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>默认值为true,这使大部分单位在移动时会排列为一个方阵,着不仅有效的使单位在一定程度上散开,避免aoe伤害,也能加快寻路运算速度,但是会使大量单位行进时部分单位一直撞墙 如果改为false,每个单位将单独进行寻路,这使得单位会挤在一起并且可能造成卡顿</p></div><h4 id="joinsgroupformations-演示例子" tabindex="-1">joinsGroupFormations-演示例子 <a class="header-anchor" href="#joinsgroupformations-演示例子" aria-label="Permalink to "joinsGroupFormations-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">joinsGroupFormations:true</span></span></code></pre></div><hr>`,12),r=e(`<div class="tip custom-block"><p class="custom-block-title">TIP</p><p>这个代码只能和<strong>moveSpeed:0</strong>一起使用,但是可以通过setUnitStats改变移动速度</p></div><h4 id="ignoremoveorders-演示例子" tabindex="-1">ignoreMoveOrders-演示例子 <a class="header-anchor" href="#ignoremoveorders-演示例子" aria-label="Permalink to "ignoreMoveOrders-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">ignoreMoveOrders:true</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">moveSpeed:0</span></span></code></pre></div><hr>`,4);function d(c,p,h,m,g,u){return n(),o("div",null,[s,a(" ### moveSlidingDir #### moveSlidingDir-代码简介 代码:moveSlidingDir 中文释义:移动滑动角度 类型:浮点数 隶属于:杂项 #### moveSlidingDir-要点指示 定义单位移动滑动的角度 "),i,a(" ### ignoreMoveOrders #### ignoreMoveOrders-代码简介 代码:ignoreMoveOrders 中文释义:忽略移动指令:布尔值 隶属于:杂项 #### ignoreMoveOrders-要点指示 定义单位是否接受来自玩家的移动指令 "),r])}const f=t(l,[["render",d]]);export{b as __pageData,f as default};
|
33
assets/src_Unit_movement.md.21a1d6a5.lean.js
Normal file
33
assets/src_Unit_movement.md.21a1d6a5.lean.js
Normal file
|
@ -0,0 +1,33 @@
|
|||
import{_ as t,v as n,b as o,L as a,R as e}from"./chunks/framework.c741a37c.js";const b=JSON.parse('{"title":"[movement]组","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"src/Unit/movement.md","filePath":"src/Unit/movement.md"}'),l={name:"src/Unit/movement.md"},s=e(`<h1 id="movement-组" tabindex="-1"><strong>[movement]组</strong> <a class="header-anchor" href="#movement-组" aria-label="Permalink to "**[movement]组**""></a></h1><h2 id="第一类-通用代码组" tabindex="-1">第一类-通用代码组 <a class="header-anchor" href="#第一类-通用代码组" aria-label="Permalink to "第一类-通用代码组""></a></h2><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>以下的代码为<code>通用代码</code>,多半是必要的代码,如果不包括这些,可能在<code>绝大多数情况下导致错误</code>。</p></div><h3 id="movementtype" tabindex="-1">movementType <a class="header-anchor" href="#movementtype" aria-label="Permalink to "movementType""></a></h3><h4 id="movementtype-代码简介" tabindex="-1">movementType-代码简介 <a class="header-anchor" href="#movementtype-代码简介" aria-label="Permalink to "movementType-代码简介""></a></h4><p>代码:movementType 中文释义:运动类型 类型:字符串 隶属于:通用代码组</p><h4 id="string-要点指示" tabindex="-1">string-要点指示 <a class="header-anchor" href="#string-要点指示" aria-label="Permalink to "string-要点指示""></a></h4><p>定义单位的运动类型,判定单位是否可在某种地形上运动,可用值为NONE、LAND、BUILDING、AIR、WATER、HOVER、OVER_CLIFF、OVER_CLIFF_WATER。</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>不同的运动类型特点如下</p><table><thead><tr><th>类型</th><th>可跨陆地</th><th>可跨悬崖</th><th>可跨水</th><th>可跨岩浆</th></tr></thead><tbody><tr><td>NONE</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td></tr><tr><td>LAND</td><td>✓</td><td>×</td><td>×</td><td>×</td></tr><tr><td>BUILDING</td><td>✓</td><td>×</td><td>×</td><td>×</td></tr><tr><td>AIR</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td></tr><tr><td>WATER</td><td>×</td><td>×</td><td>✓</td><td>×</td></tr><tr><td>HOVER</td><td>✓</td><td>×</td><td>✓</td><td>×</td></tr><tr><td>OVER_CLIFF</td><td>✓</td><td>✓</td><td>×</td><td>×</td></tr><tr><td>OVER_CLIFF_WATER</td><td>✓</td><td>✓</td><td>✓</td><td>×</td></tr></tbody></table></div><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>类型NONE虽然说移动无视地形,但是只能在LAND类型地块进行放置</p></div><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>NONE移动类型在多选单位进行移动时会有卡寻路的问题 BUILDING移动类型似乎已经废弃,和LAND没有任何区别</p></div><h4 id="movementtype-演示例子" tabindex="-1">movementType-演示例子 <a class="header-anchor" href="#movementtype-演示例子" aria-label="Permalink to "movementType-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">movementType:LAND</span></span></code></pre></div><hr><h2 id="第二类-速度相关组" tabindex="-1">第二类-速度相关组 <a class="header-anchor" href="#第二类-速度相关组" aria-label="Permalink to "第二类-速度相关组""></a></h2><h3 id="movespeed" tabindex="-1">moveSpeed <a class="header-anchor" href="#movespeed" aria-label="Permalink to "moveSpeed""></a></h3><h4 id="movespeed-代码简介" tabindex="-1">moveSpeed-代码简介 <a class="header-anchor" href="#movespeed-代码简介" aria-label="Permalink to "moveSpeed-代码简介""></a></h4><p>代码:moveSpeed 中文释义:移动速度 类型:浮点数 隶属于:通用代码组</p><h4 id="movespeed-要点指示" tabindex="-1">moveSpeed-要点指示 <a class="header-anchor" href="#movespeed-要点指示" aria-label="Permalink to "moveSpeed-要点指示""></a></h4><p>定义单位的移动速度,显示在单位信息中</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>移动速度的单位是<strong>像素/帧</strong>,同时铁锈战争地图图块大小为20x20,且一秒60帧,所以说移动速度为1的话,每秒可以移动三格</p></div><h4 id="movespeed-演示例子" tabindex="-1">moveSpeed-演示例子 <a class="header-anchor" href="#movespeed-演示例子" aria-label="Permalink to "moveSpeed-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">moveSpeed:0.5</span></span></code></pre></div><hr><h3 id="moveaccelerationspeed" tabindex="-1">moveAccelerationSpeed <a class="header-anchor" href="#moveaccelerationspeed" aria-label="Permalink to "moveAccelerationSpeed""></a></h3><h4 id="moveaccelerationspeed-代码简介" tabindex="-1">moveAccelerationSpeed-代码简介 <a class="header-anchor" href="#moveaccelerationspeed-代码简介" aria-label="Permalink to "moveAccelerationSpeed-代码简介""></a></h4><p>代码:moveAccelerationSpeed 中文释义:加速度 类型:浮点数 隶属于:速度相关组</p><h4 id="moveaccelerationspeed-要点指示" tabindex="-1">moveAccelerationSpeed-要点指示 <a class="header-anchor" href="#moveaccelerationspeed-要点指示" aria-label="Permalink to "moveAccelerationSpeed-要点指示""></a></h4><p>定义单位的加速度,单位在移动时会从零开始加速直到移动速度</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>加速度也是按帧计算的,如果你需要一秒加速0.6,你需要填写的值为0.01</p></div><h4 id="moveaccelerationspeed-演示例子" tabindex="-1">moveAccelerationSpeed-演示例子 <a class="header-anchor" href="#moveaccelerationspeed-演示例子" aria-label="Permalink to "moveAccelerationSpeed-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">moveSpeed:1</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">moveAccelerationSpeed:0.01</span></span></code></pre></div><hr><h3 id="movedecelerationspeed" tabindex="-1">moveDecelerationSpeed <a class="header-anchor" href="#movedecelerationspeed" aria-label="Permalink to "moveDecelerationSpeed""></a></h3><h4 id="movedecelerationspeed-代码简介" tabindex="-1">moveDecelerationSpeed-代码简介 <a class="header-anchor" href="#movedecelerationspeed-代码简介" aria-label="Permalink to "moveDecelerationSpeed-代码简介""></a></h4><p>代码:moveDecelerationSpeed 中文释义:减速度 类型:浮点数 隶属于:速度相关组</p><h4 id="movedecelerationspeed-要点指示" tabindex="-1">moveDecelerationSpeed-要点指示 <a class="header-anchor" href="#movedecelerationspeed-要点指示" aria-label="Permalink to "moveDecelerationSpeed-要点指示""></a></h4><p>定义单位的减速度,单位在停止移动时会从运动速度开始减速直到零</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>减速度也是按帧计算的,如果你需要一秒减速0.6,你需要填写的值为0.01</p></div><h4 id="movedecelerationspeed-演示例子" tabindex="-1">moveDecelerationSpeed-演示例子 <a class="header-anchor" href="#movedecelerationspeed-演示例子" aria-label="Permalink to "moveDecelerationSpeed-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">moveSpeed:1</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">moveDecelerationSpeed:0.01</span></span></code></pre></div><hr><h3 id="reversespeedpercentage" tabindex="-1">reverseSpeedPercentage <a class="header-anchor" href="#reversespeedpercentage" aria-label="Permalink to "reverseSpeedPercentage""></a></h3><h4 id="reversespeedpercentageed-代码简介" tabindex="-1">reverseSpeedPercentageed-代码简介 <a class="header-anchor" href="#reversespeedpercentageed-代码简介" aria-label="Permalink to "reverseSpeedPercentageed-代码简介""></a></h4><p>代码:reverseSpeedPercentage 中文释义:倒车速度比率 类型:浮点数 隶属于:速度相关组</p><h4 id="reversespeedpercentage-要点指示" tabindex="-1">reverseSpeedPercentage-要点指示 <a class="header-anchor" href="#reversespeedpercentage-要点指示" aria-label="Permalink to "reverseSpeedPercentage-要点指示""></a></h4><p>定义单位倒车时的速度,单位在逆向运动时会按照运动速度与倒车速度比率的乘积运行</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>这个值默认为0.6 如果这个值等于0,那么无论什么距离向后运动都会先转弯 如果在0到1之间,那么短距离向后运动会倒车而不是转弯 如果等于1,那么无论什么距离,向后运动会倒车而不是转弯</p></div><h4 id="reversespeedpercentagepeed-演示例子" tabindex="-1">reverseSpeedPercentagepeed-演示例子 <a class="header-anchor" href="#reversespeedpercentagepeed-演示例子" aria-label="Permalink to "reverseSpeedPercentagepeed-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">moveSpeed:1</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">reverseSpeedPercentage:0.4</span></span></code></pre></div><hr><h3 id="maxturnspeed" tabindex="-1">maxTurnSpeed <a class="header-anchor" href="#maxturnspeed" aria-label="Permalink to "maxTurnSpeed""></a></h3><h4 id="maxturnspeed-代码简介" tabindex="-1">maxTurnSpeed-代码简介 <a class="header-anchor" href="#maxturnspeed-代码简介" aria-label="Permalink to "maxTurnSpeed-代码简介""></a></h4><p>代码:maxTurnSpeed 中文释义:转弯速度 类型:浮点数 隶属于:速度相关组</p><h4 id="maxturnspeed-要点指示" tabindex="-1">maxTurnSpeed-要点指示 <a class="header-anchor" href="#maxturnspeed-要点指示" aria-label="Permalink to "maxTurnSpeed-要点指示""></a></h4><p>定义单位转弯的速度</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>转弯速度的单位是<strong>度/帧</strong>,如果转弯速度为1,那么一秒将旋转60度</p></div><h4 id="maxturnspeed-演示例子" tabindex="-1">maxTurnSpeed-演示例子 <a class="header-anchor" href="#maxturnspeed-演示例子" aria-label="Permalink to "maxTurnSpeed-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">maxTurnSpeed:1.5</span></span></code></pre></div><hr><h3 id="turnacceleration" tabindex="-1">turnAcceleration <a class="header-anchor" href="#turnacceleration" aria-label="Permalink to "turnAcceleration""></a></h3><h4 id="turnacceleration-代码简介" tabindex="-1">turnAcceleration-代码简介 <a class="header-anchor" href="#turnacceleration-代码简介" aria-label="Permalink to "turnAcceleration-代码简介""></a></h4><p>代码:turnAcceleration 中文释义:转弯速度 类型:浮点数 隶属于:速度相关组</p><h4 id="turnacceleration-要点指示" tabindex="-1">turnAcceleration-要点指示 <a class="header-anchor" href="#turnacceleration-要点指示" aria-label="Permalink to "turnAcceleration-要点指示""></a></h4><p>定义单位转弯的加速度,开始转弯时将从零开始加速直到转弯速度</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>转弯加速度是按帧计算的,如果想要每秒增加0.6需要填0.01</p></div><h4 id="turnacceleration-演示例子" tabindex="-1">turnAcceleration-演示例子 <a class="header-anchor" href="#turnacceleration-演示例子" aria-label="Permalink to "turnAcceleration-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">maxTurnSpeed:1.5</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">turnAcceleration:0.01</span></span></code></pre></div><hr><h2 id="第三类-高度相关组" tabindex="-1">第三类-高度相关组 <a class="header-anchor" href="#第三类-高度相关组" aria-label="Permalink to "第三类-高度相关组""></a></h2><h3 id="targetheight" tabindex="-1">targetHeight <a class="header-anchor" href="#targetheight" aria-label="Permalink to "targetHeight""></a></h3><h4 id="targetheight-代码简介" tabindex="-1">targetHeight-代码简介 <a class="header-anchor" href="#targetheight-代码简介" aria-label="Permalink to "targetHeight-代码简介""></a></h4><p>代码:targetHeight 中文释义:到达高度 类型:浮点数 隶属于:高度相关组</p><h4 id="targetheight-要点指示" tabindex="-1">targetHeight-要点指示 <a class="header-anchor" href="#targetheight-要点指示" aria-label="Permalink to "targetHeight-要点指示""></a></h4><p>定义单位的高度,当单位创建完成时会从0到达这个高度</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>如果运动类型为AIR,targetHeight默认值将为20</p></div><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-6GKwI" id="tab-HIh-trv" checked="checked"><label for="tab-HIh-trv">摸鱼人time</label></div><div class="blocks"><div class="language-bash active"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">大部分单位能被什么类型的攻击方式攻击不取决于移动类型,而是取决于高度</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">如果高度是负数,那么可以被水下攻击命中</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">如果高度位于0到10之间,可以被对表面攻击命中</span></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">如果高度大于10,可以被对空攻击命中</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">如果高度不为0的地面悬浮单位,对地的范围攻击(比如火炮</span><span style="color:#A6ACCD;">)将无法对其造成伤害,但是可以被瞄准</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#FFCB6B;">建筑高度大于等于0是,只能被对表面攻击命中</span></span></code></pre></div></div></div><h4 id="targetheight-演示例子" tabindex="-1">targetHeight-演示例子 <a class="header-anchor" href="#targetheight-演示例子" aria-label="Permalink to "targetHeight-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">targetHeight:10</span></span></code></pre></div><hr><h3 id="targetheightdrift" tabindex="-1">targetHeightDrift <a class="header-anchor" href="#targetheightdrift" aria-label="Permalink to "targetHeightDrift""></a></h3><h4 id="targetheightdrift-代码简介" tabindex="-1">targetHeightDrift-代码简介 <a class="header-anchor" href="#targetheightdrift-代码简介" aria-label="Permalink to "targetHeightDrift-代码简介""></a></h4><p>代码:targetHeightDrift 中文释义:高度浮动 类型:浮点数 隶属于:高度相关组</p><h4 id="targetheight-要点指示-1" tabindex="-1">targetHeight-要点指示 <a class="header-anchor" href="#targetheight-要点指示-1" aria-label="Permalink to "targetHeight-要点指示""></a></h4><p>定义单位的高度浮动,单位会在到达高度上下浮动</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>如果运动类型为AIR,targetHeightDrift默认值将为2.5</p></div><h4 id="targetheightdrift-演示例子" tabindex="-1">targetHeightDrift-演示例子 <a class="header-anchor" href="#targetheightdrift-演示例子" aria-label="Permalink to "targetHeightDrift-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">targetHeight:10</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">targetHeightDrift:1</span></span></code></pre></div><hr><h3 id="landonground" tabindex="-1">landOnGround <a class="header-anchor" href="#landonground" aria-label="Permalink to "landOnGround""></a></h3><h4 id="landonground-代码简介" tabindex="-1">landOnGround-代码简介 <a class="header-anchor" href="#landonground-代码简介" aria-label="Permalink to "landOnGround-代码简介""></a></h4><p>代码:landOnGround 中文释义:降落到地面 类型:布尔值 隶属于:高度相关组</p><h4 id="landonground-要点指示" tabindex="-1">landOnGround-要点指示 <a class="header-anchor" href="#landonground-要点指示" aria-label="Permalink to "landOnGround-要点指示""></a></h4><p>定义单位在不移动时是否降落到地面</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>只有单位投影所在地块可以降落时才会降落</p></div><h4 id="landonground-演示例子" tabindex="-1">landOnGround-演示例子 <a class="header-anchor" href="#landonground-演示例子" aria-label="Permalink to "landOnGround-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">landOnGround:true</span></span></code></pre></div><hr><h3 id="fallingacceleration" tabindex="-1">fallingAcceleration <a class="header-anchor" href="#fallingacceleration" aria-label="Permalink to "fallingAcceleration""></a></h3><h4 id="fallingacceleration-代码简介" tabindex="-1">fallingAcceleration-代码简介 <a class="header-anchor" href="#fallingacceleration-代码简介" aria-label="Permalink to "fallingAcceleration-代码简介""></a></h4><p>代码:fallingAcceleration 中文释义:降落加速度 类型:浮点值 隶属于:高度相关组</p><h4 id="fallingacceleration-要点指示" tabindex="-1">fallingAcceleration-要点指示 <a class="header-anchor" href="#fallingacceleration-要点指示" aria-label="Permalink to "fallingAcceleration-要点指示""></a></h4><p>定义单位在降落到地面时的加速度</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>加速度是按帧来计算的,如果想一秒加速0.6则填写0.01</p></div><h4 id="fallingacceleration-演示例子" tabindex="-1">fallingAcceleration-演示例子 <a class="header-anchor" href="#fallingacceleration-演示例子" aria-label="Permalink to "fallingAcceleration-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">fallingAcceleration:0.01</span></span></code></pre></div><hr><h3 id="slowdeathfall" tabindex="-1">slowDeathFall <a class="header-anchor" href="#slowdeathfall" aria-label="Permalink to "slowDeathFall""></a></h3><h4 id="slowdeathfall-代码简介" tabindex="-1">slowDeathFall-代码简介 <a class="header-anchor" href="#slowdeathfall-代码简介" aria-label="Permalink to "slowDeathFall-代码简介""></a></h4><p>代码:slowDeathFall 中文释义:死亡坠落 类型:布尔值 隶属于:高度相关组</p><h4 id="slowdeathfall-要点指示" tabindex="-1">slowDeathFall-要点指示 <a class="header-anchor" href="#slowdeathfall-要点指示" aria-label="Permalink to "slowDeathFall-要点指示""></a></h4><p>定义单位在死亡时是否坠落到地面</p><h4 id="targetheightdrift-演示例子-1" tabindex="-1">targetHeightDrift-演示例子 <a class="header-anchor" href="#targetheightdrift-演示例子-1" aria-label="Permalink to "targetHeightDrift-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">slowDeathFall:true</span></span></code></pre></div><hr><h3 id="fallingaccelerationdead" tabindex="-1">fallingAccelerationDead <a class="header-anchor" href="#fallingaccelerationdead" aria-label="Permalink to "fallingAccelerationDead""></a></h3><h4 id="fallingaccelerationdead-代码简介" tabindex="-1">fallingAccelerationDead-代码简介 <a class="header-anchor" href="#fallingaccelerationdead-代码简介" aria-label="Permalink to "fallingAccelerationDead-代码简介""></a></h4><p>代码:fallingAccelerationDead 中文释义:死亡坠落加速度 类型:浮点值 隶属于:高度相关组</p><h4 id="fallingaccelerationdead-要点指示" tabindex="-1">fallingAccelerationDead-要点指示 <a class="header-anchor" href="#fallingaccelerationdead-要点指示" aria-label="Permalink to "fallingAccelerationDead-要点指示""></a></h4><p>定义单位在死亡坠毁到地面时的加速度</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>加速度是按帧来计算的,如果想一秒加速0.6则填写0.01</p></div><h4 id="fallingaccelerationdead-演示例子" tabindex="-1">fallingAccelerationDead-演示例子 <a class="header-anchor" href="#fallingaccelerationdead-演示例子" aria-label="Permalink to "fallingAccelerationDead-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">fallingAccelerationDead:0.01</span></span></code></pre></div><hr><h3 id="heightchangerate" tabindex="-1">heightChangeRate <a class="header-anchor" href="#heightchangerate" aria-label="Permalink to "heightChangeRate""></a></h3><h4 id="heightchangerate-代码简介" tabindex="-1">heightChangeRate-代码简介 <a class="header-anchor" href="#heightchangerate-代码简介" aria-label="Permalink to "heightChangeRate-代码简介""></a></h4><p>代码:heightChangeRate 中文释义:高度改变速率 类型:浮点值 隶属于:高度相关组</p><h4 id="heightchangerate-要点指示" tabindex="-1">heightChangeRate-要点指示 <a class="header-anchor" href="#heightchangerate-要点指示" aria-label="Permalink to "heightChangeRate-要点指示""></a></h4><p>定义单位在被创建,转换,浮动是高度改变的速度</p><h4 id="heightchangerate-演示例子" tabindex="-1">heightChangeRate-演示例子 <a class="header-anchor" href="#heightchangerate-演示例子" aria-label="Permalink to "heightChangeRate-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">heightChangeRate:0.4</span></span></code></pre></div><hr><h2 id="第四类-杂项" tabindex="-1">第四类-杂项 <a class="header-anchor" href="#第四类-杂项" aria-label="Permalink to "第四类-杂项""></a></h2><h3 id="moveignoringbody" tabindex="-1">moveIgnoringBody <a class="header-anchor" href="#moveignoringbody" aria-label="Permalink to "moveIgnoringBody""></a></h3><h4 id="moveignoringbody-代码简介" tabindex="-1">moveIgnoringBody-代码简介 <a class="header-anchor" href="#moveignoringbody-代码简介" aria-label="Permalink to "moveIgnoringBody-代码简介""></a></h4><p>代码:moveIgnoringBody 中文释义:移动忽略转向 类型:布尔值 隶属于:杂项</p><h4 id="moveignoringbody-要点指示" tabindex="-1">moveIgnoringBody-要点指示 <a class="header-anchor" href="#moveignoringbody-要点指示" aria-label="Permalink to "moveIgnoringBody-要点指示""></a></h4><p>定义单位移动时是否需要考虑角度</p><h4 id="moveignoringbody-演示例子" tabindex="-1">moveIgnoringBody-演示例子 <a class="header-anchor" href="#moveignoringbody-演示例子" aria-label="Permalink to "moveIgnoringBody-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">moveIgnoringBody:true</span></span></code></pre></div><hr><h3 id="moveslidingmode" tabindex="-1">moveSlidingMode <a class="header-anchor" href="#moveslidingmode" aria-label="Permalink to "moveSlidingMode""></a></h3><h4 id="moveslidingmode-代码简介" tabindex="-1">moveSlidingMode-代码简介 <a class="header-anchor" href="#moveslidingmode-代码简介" aria-label="Permalink to "moveSlidingMode-代码简介""></a></h4><p>代码:moveSlidingMode 中文释义:移动滑动 类型:布尔值 隶属于:杂项</p><h4 id="moveslidingmode-要点指示" tabindex="-1">moveSlidingMode-要点指示 <a class="header-anchor" href="#moveslidingmode-要点指示" aria-label="Permalink to "moveSlidingMode-要点指示""></a></h4><p>定义单位移动后是否进行滑动</p><p>####moveSlidingMode-演示例子</p><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">moveSlidingMode:true</span></span></code></pre></div><hr>`,149),i=e(`<h4 id="moveslidingdir-演示例子" tabindex="-1">moveSlidingDir-演示例子 <a class="header-anchor" href="#moveslidingdir-演示例子" aria-label="Permalink to "moveSlidingDir-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">moveSlidingDir:-1</span></span></code></pre></div><hr><h3 id="joinsgroupformations" tabindex="-1">joinsGroupFormations <a class="header-anchor" href="#joinsgroupformations" aria-label="Permalink to "joinsGroupFormations""></a></h3><h4 id="joinsgroupformations-代码简介" tabindex="-1">joinsGroupFormations-代码简介 <a class="header-anchor" href="#joinsgroupformations-代码简介" aria-label="Permalink to "joinsGroupFormations-代码简介""></a></h4><p>代码:joinsGroupFormations 中文释义:加入到队形 类型:布尔值 隶属于:杂项</p><h4 id="joinsgroupformations-要点指示" tabindex="-1">joinsGroupFormations-要点指示 <a class="header-anchor" href="#joinsgroupformations-要点指示" aria-label="Permalink to "joinsGroupFormations-要点指示""></a></h4><p>定义单位移动时是否要按队形行动</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>默认值为true,这使大部分单位在移动时会排列为一个方阵,着不仅有效的使单位在一定程度上散开,避免aoe伤害,也能加快寻路运算速度,但是会使大量单位行进时部分单位一直撞墙 如果改为false,每个单位将单独进行寻路,这使得单位会挤在一起并且可能造成卡顿</p></div><h4 id="joinsgroupformations-演示例子" tabindex="-1">joinsGroupFormations-演示例子 <a class="header-anchor" href="#joinsgroupformations-演示例子" aria-label="Permalink to "joinsGroupFormations-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">joinsGroupFormations:true</span></span></code></pre></div><hr>`,12),r=e(`<div class="tip custom-block"><p class="custom-block-title">TIP</p><p>这个代码只能和<strong>moveSpeed:0</strong>一起使用,但是可以通过setUnitStats改变移动速度</p></div><h4 id="ignoremoveorders-演示例子" tabindex="-1">ignoreMoveOrders-演示例子 <a class="header-anchor" href="#ignoremoveorders-演示例子" aria-label="Permalink to "ignoreMoveOrders-演示例子""></a></h4><div class="language-ini"><button title="Copy Code" class="copy"></button><span class="lang">ini</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">[movement]</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">ignoreMoveOrders:true</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">moveSpeed:0</span></span></code></pre></div><hr>`,4);function d(c,p,h,m,g,u){return n(),o("div",null,[s,a(" ### moveSlidingDir #### moveSlidingDir-代码简介 代码:moveSlidingDir 中文释义:移动滑动角度 类型:浮点数 隶属于:杂项 #### moveSlidingDir-要点指示 定义单位移动滑动的角度 "),i,a(" ### ignoreMoveOrders #### ignoreMoveOrders-代码简介 代码:ignoreMoveOrders 中文释义:忽略移动指令:布尔值 隶属于:杂项 #### ignoreMoveOrders-要点指示 定义单位是否接受来自玩家的移动指令 "),r])}const f=t(l,[["render",d]]);export{b as __pageData,f as default};
|
1
assets/style.3eb2ec2f.css
Normal file
1
assets/style.3eb2ec2f.css
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
|||
{"src_debug_test.md":"570c021d","src_unit_canbuild.md":"4de7e6d1","src_rw-engine_quick-start.md":"63d360c2","api-dev.md":"16552aef","src_map_tsada.md":"c90fb471","index.md":"a99e9a50","src_unit_loginboolean.md":"965cc06d","src_unit_core.md":"86792e60","src_unit_graphics.md":"89d19ab6"}
|
||||
{"src_rw-engine_quick-start.md":"20e72dd5","src_debug_test.md":"03f04e38","src_map_tsada.md":"5947f45b","api-dev.md":"0aa495ac","index.md":"7175d133","src_unit_canbuild.md":"0e95237f","src_unit_graphics.md":"f3da4d2a","src_unit_movement.md":"21a1d6a5","src_unit_loginboolean.md":"62d5a6a0","src_unit_core.md":"0ec23ba0"}
|
||||
|
|
14
index.html
14
index.html
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
54
src/Unit/movement.html
Normal file
54
src/Unit/movement.html
Normal file
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user