Old 1.0 End Commit

This commit is contained in:
LingASDJ 2023-04-12 00:01:51 +08:00
parent c0544cab1a
commit 98c8b16d55
67 changed files with 1205 additions and 12707 deletions

View File

@ -1,38 +0,0 @@
---
name: 错误报告
about: 创建报告以帮助我们改进
title: ''
labels: ''
assignees: ''
---
**描述错误**
清晰简明地描述错误的内容。
**重现步骤**
重现行为的步骤:
1. 进入“...”
2. 点击“...”
3. 滚动至“...”
4. 查看错误
**期望行为**
清晰简明地描述你期望发生的情况。
**屏幕截图**
如果可用,添加屏幕截图以帮助解释您的问题。
**桌面设备(请填写以下信息):**
- 操作系统:[例如iOS]
- 浏览器:[例如Chrome、Safari]
- 版本:[例如22]
**手机设备(请填写以下信息):**
- 设备:[例如iPhone6]
- 操作系统:[例如iOS8.1]
- 浏览器:[例如默认浏览器、Safari]
- 版本:[例如22]
**其他上下文**
在此处添加有关问题的任何其他上下文。

View File

@ -1,20 +0,0 @@
---
name: 功能请求
about: 为此项目提出建议
title: ''
labels: ''
assignees: ''
---
**您的功能请求是否与问题有关?请描述。**
清晰简明地描述问题是什么。例如:我总是感到沮丧,因为[...]
**描述您想要的解决方案**
清晰简明地描述您希望发生的情况。
**描述您考虑过的替代方案**
清晰简明地描述您考虑过的任何替代解决方案或功能。
**其他上下文**
在此处添加有关功能请求的任何其他上下文或屏幕截图。

View File

@ -1,10 +0,0 @@
version: 2
updates:
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: weekly
day: saturday
time: "15:00"
timezone: Asia/Shanghai
open-pull-requests-limit: 10

View File

@ -1,29 +0,0 @@
name: Code Review
on:
pull_request:
branches: [ main ] # 只有针对主分支的 PR 会触发此工作流程
jobs:
code-review:
name: Code Review
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3 # 检查代码库,将其检出到 runner 中
- name: Setup Node.js
uses: actions/setup-node@v3 # 安装 Node.js 运行环境和依赖包
with:
node-version: '12.x'
- name: Install dependencies
run:
npm install
npm i vitepress -D
npm run docs:build
- name: Setup code review
uses: reviewdog/action-eslint@v1 # 使用 reviewdog 工具进行代码审查
with:
github_token: ${{ secrets.GITHUB_TOKEN }} # 授权访问 GitHub API
eslint_level: error # 设置 Eslint 输出级别为 error
# 这个 workflow 文件使用 `pull_request` 事件来监听新的 PR 提交并且只有针对主分支的操作才会触发它。code-review job 使用 `actions/checkout` action 将代码库检出到 runner 中,使用 `actions/setup-node` action 安装 Node.js 运行环境和依赖包,接着通过运行 `npm run lint` 进行代码风格检查和运行 `npm test` 命令来运行测试。最后,在 Setup code review 步骤中,我们使用 `reviewdog/action-eslint` action 来进行代码审查,并将输出级别设置为 `error`。
#
# 需要注意的是,在此示例中,我们使用了 Eslint 工具来进行代码风格检查。如果您的项目使用其他工具或规则,请相应地更改该命令或引用其他 action。

View File

@ -1,20 +0,0 @@
name: First interaction
on:
issues:
types: [opened]
pull_request_target:
types: [opened]
jobs:
welcome:
runs-on: ubuntu-latest
steps:
- name: Welcome new contributor
uses: actions/first-interaction@v1.1.1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
issue-message: |
你好呀!感谢您打开我们项目的第一期。感谢您的反馈,并期待尽快解决此问题。
pr-message: |
恭喜你打开了你的第一个拉取请求!我们的团队将很快对其进行审核并提供任何必要的反馈。感谢您为我们的项目做出贡献!

View File

@ -1,58 +0,0 @@
name: Auto Merge
on:
pull_request:
types:
- labeled
- unlabeled
- synchronize
- opened
- edited
- ready_for_review
- reopened
- unlocked
pull_request_review:
types:
- submitted
status: { }
# 定义作业 jobs包括检查 PR 合规性和自动合并发布版本的 PR 到 master 分支两个步骤
jobs:
# 检查 PR 合规性
check:
runs-on: ubuntu-latest # 运行环境为最新版 ubuntu
# 步骤,包括代码 checkout、Node.js 环境设置、依赖安装、代码 lint、单元测试等操作
steps:
- name: Checkout code # 步骤名称为Checkout code
uses: actions/checkout@v3 # 使用 actions/checkout 动作
- name: Setup Node.js environment # 步骤名称为Setup Node.js environment
uses: actions/setup-node@v3 # 使用 actions/setup-node 动作安装 Node.js 环境
with:
node-version: '14.x'
- name: Install dependencies # 步骤名称为Install dependencies
run: |# 安装依赖
npm install
npm i vitepress -D
# - name: Lint code # 步骤名称为Lint code
# run: |# 执行 lint 命令
# npm run lint
- name: Run unit tests # 步骤名称为Run unit tests
run: |# 执行单元测试,如果没有测试用例返回 0
npm run test || exit 0
# 合并发布版本的 PR 到 master 分支
auto-merge:
runs-on: ubuntu-latest # 运行环境为最新版 ubuntu
# 步骤,使用 pascalgn/automerge-action 动作实现自动合并发布版本的 PR 到 master 分支,并定义了环境变量 GITHUB_TOKEN 和 MERGE_FILTER_AUTHOR 条件过滤器。
steps:
- name: Automerge # 步骤名称为Automerge
uses: pascalgn/automerge-action@v0.15.6 # 使用 pascalgn/automerge-action 动作进行自动合并 PR 操作
env:
GITHUB_TOKEN: '${{ secrets.RELEASE_TOKEN }}' # 设置 GitHub Token 密钥,从 secrets 中获取
MERGE_LABELS: ''
MERGE_FILTER_AUTHOR: 'LingASDJ' # 只有作者是 mason369 的 PR 才会被自动合并。

View File

@ -1,55 +0,0 @@
name: build-and-deploy
on:
push:
branches: [ main ]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
persist-credentials: false
- name: Install and Build
run: |
npm install
npm i vitepress -D
npm run docs:build
- name: Deploy
uses: JamesIves/github-pages-deploy-action@v4.4.1
with:
ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
BRANCH: gh-pages
FOLDER: dist
# 判断工作流是否全部成功,如果有任意一个步骤失败,则发送失败邮件;否则发送成功邮件。
# - name: Send Mail 发送邮件
# if: ${{ !cancelled() && success() }}
# uses: bingblue/send-nodemailer@master
# with:
# user: '${{ secrets.EMAIL_USERNAME }}'
# pass: '${{ secrets.EMAIL_PASSWORD }}'
# host: 'smtp.gmail.com'
# port: 465
# secure: true
# from: '构建与部署 <maosenyang00@gmail.com>'
# to: 1960638223@qq.com,1694181697@qq.com
# subject: 'Success部署成功'
# html: '<h2>构建部署执行完毕!</h2>'
# - name: Send Mail 发送邮件
# if: ${{ !cancelled() && failure() }}
# uses: bingblue/send-nodemailer@master
# with:
# user: '${{ secrets.EMAIL_USERNAME }}'
# pass: '${{ secrets.EMAIL_PASSWORD }}'
# host: 'smtp.gmail.com'
# port: 465
# secure: true
# from: '构建与部署 <maosenyang00@gmail.com>'
# to: 1960638223@qq.com,1694181697@qq.com
# subject: 'Failed部署失败'
# html: '<h2>部署失败请重新检查代码。</h2>'

View File

@ -1,17 +0,0 @@
# 监听 main 分支
name: Contributes
on:
push:
branches:
- main
jobs:
# 任务
contrib-readme-en-job:
runs-on: ubuntu-latest
name: A job to automate contrib in readme
steps:
- name: Contribute List
uses: akhilmhdh/contributors-readme-action@v2.3.6
env:
GITHUB_TOKEN: ${{ secrets.CONTRIBUTORS_TOKEN }}

View File

@ -1,17 +0,0 @@
name: Release
on:
push:
branches:
- main
jobs:
release-please:
runs-on: ubuntu-latest
steps:
- uses: GoogleCloudPlatform/release-please-action@v3
id: release
with:
token: ${{ secrets.RELEASE_TOKEN }}
release-type: node
package-name: standard-version
changelog-types: '[{"type": "types", "section":"Types", "hidden": false},{"type": "revert", "section":"Reverts", "hidden": false},{"type": "feat", "section": "Features", "hidden": false},{"type": "fix", "section": "Bug Fixes", "hidden": false},{"type": "improvement", "section": "Feature Improvements", "hidden": false},{"type": "docs", "section":"Docs", "hidden": false},{"type": "style", "section":"Styling", "hidden": false},{"type": "refactor", "section":"Code Refactoring", "hidden": false},{"type": "perf", "section":"Performance Improvements", "hidden": false},{"type": "test", "section":"Tests", "hidden": false},{"type": "build", "section":"Build System", "hidden": false},{"type": "ci", "section":"CI", "hidden":false},{"type": "update", "section":"update", "hidden":false},{"type": "Update", "section":"Update", "hidden":false},{"type": "mods", "section":"MODS", "hidden":false},{"type": "mod", "section":"MOD", "hidden":false},{"type": "更新", "section":"更新", "hidden":false},{"type": "del", "section":"Delete", "hidden":false}]'

2
.gitignore vendored
View File

@ -1,2 +0,0 @@
node_modules
rustedwarfareapicode/.vitepress/dist/

0
.nojekyll Normal file
View File

1
CNAME Normal file
View File

@ -0,0 +1 @@
rustedwarfareapicode.top

156
DEV.md Normal file
View File

@ -0,0 +1,156 @@
<div style="display:flex;align-content: flex-start;flex-wrap: nowrap;flex-direction: row;justify-content: center;">
<h1>RTS-Code-API---开发规范</h1>
</div>
<div style="display:flex;align-content: flex-start;flex-wrap: nowrap;flex-direction: row;justify-content: center;">
<img src="https://rwapi-code.netlify.app/images/title.png">
</div>
> [!TIP] 0.如果你确定你想<font color=orange>帮忙开发此站点</font>,<br>
就可以点击右上角的Github按钮<font color=orange>Clone我们的库</font><br>
编写代码并进行PR申请我非常感谢你的帮忙感谢各位的支持与帮助。<br>
> 1.确保代码的解释通俗易懂,能让新手迅速入门<br>2.编写的代码应该以以下格式进行:
> <h3>代码的格式编写规范:</h3>1.代码的英文名和附属信息(参考站点已添加的代码例子)<br>
2.代码的简介<br>
3.代码的要点指示<br>
4.代码的演示例子<br>
5.代码的扩展例子(可选)<br>
6.GIF演示/视频演示(可选)
> [!TIP] 使用外部资源时请使用支持HTTPS协议的资源地址传输。<br>
否则在<font color=orange>Google Chrome等一系列以CEF的内核</font>上会因为强制替换HTTPS导致资源无法打开。
> [!WARNING] 不能使用过于高深的说明,严禁出现谜语人话语,无用话语,任何玩梗,
夹带私货等一系列与本站无关的东西,违者将不能通过<font color=green>PR审核</font>
> [!WARNING] 有一些代码或许有一些新的写法,或该写法可能已经废弃,如果遇到这些代码,编写者需要注明,并提供推荐代码。
!> 为了更好的方便一起编写站点的贡献者,本站点提供了以下的<font color=green>扩展MD格式供各位书写</font>
#### MD扩展格式
```bash
!> 注意文本
?> 小提示文本
> [!WARNING] 警告文本
> [!NOTE] 笔记文本
> [!TIP] 重要提示文本
> [!ATTENTION] 不推荐文本
注意以下必须在START-END内进行使用才能生效,
且将chat后面的"*"换为空格:
<!--chat*:start -->
#### **tobby3600**
我是第一个消息文本
#### **JDSALing**
我是第二个消息文本
<!--chat*:end -->
实际生成代码:
<!-- chat:start -->
#### **tobby3600**
我是第一个消息文本
#### **JDSALing**
我是第二个消息文本
<!-- chat:end -->
```
#### 其他说明:
有关于MarkDown的其他书写格式请参考MD书写规范
[MD文档参考--点我立刻学习](https://docs.github.com/zh/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax)
#### 附加说明:
```txt
由于插件众多为避免MD格式冲突换行建议最好使用<br>进行换行,
如果要在一些扩展格式渲染演示,请使用<font>标签,
```
#### 部署策略:
!> 1.本地部署
> [!NOTE] 如果要本地测试,请确保设备有<font color=green>Node.js</font>
并在项目根目录使用以下命令:<br>
> npm i docsify-cli -g<br>docsify serve docs
!> 2.Netlify部署
> [!NOTE] 如果你已经发送了PR请求可以通过我的Netlify预览站点进行预览<br>
Netlify会在你的PR请求下面显示你的预览页面地址。<br>
如下图所示,点击<b><font color=orange>😎 Deploy Preview后面的链接</font></b>即可看见效果<br>
由于某些原因TX会拦截Netlify的站点请使用浏览器预览。
<img src="images/example.png">
#### 实际格式演示:
!> 注意文本
?> 小提示文本
> [!WARNING] 警告文本
> [!NOTE] 笔记文本
> [!TIP] 重要提示文本
> [!ATTENTION] 不推荐文本
<!-- chat:start -->
#### **tobby3600**
我是第一个消息文本
#### **JDSALing**
我是第二个消息文本
<!-- chat:end -->
> [!TIP] 如果要添加你的聊天MD头像和名字请发送Issues给我
#### 单位代码文档推荐格式:
```markdown
### xxxx
#### xxxx-代码简介
?> 代码:xxxx 中文释义:xxxx 类型:xxxx 隶属于:xxxx
> [!TIP] xxxxxx
#### 视频/GIF演示---(可选)
#### 聊天气泡[追加内容]---(可选)
#### xxxx代码-演示例子
***ini
xxxx
***
```
#### 表格推荐格式
### 代码演示:
|A|B|C|
|-|-|-
|1|2|3|
### 代码例子:
```markdown
|A|B|C|
|-|-|-
|1|2|3|
```
如果你仍然不会Markdown表格写法这里给你一个链接
<h3><a href="https://tableconvert.com/zh-cn/markdown-to-markdown" target="_blank">TableConvert-MD-点击进入</a></h3>
### 扩展写法(高级)
有一些时候,我们可能需要在已经标记的后面再添加东西,
但Markdown解析方式在标签后面再有一个标签就不会识别了。
所以这里我们必须直接使用原生Html的代码
通过浏览器的检查元素,你应该能迅速找到模块框架,
将它的模块元素区域复制下来,并调用。
<!-- MarkDown表格必须有上方的分割线以告诉浏览器是表格 -->
!> 该文档可能还有很多缺陷如果你有更好的建议请发送Issues或者PR给我。
?> 编写于2023-3-9 RTS-Code-API[第2版-第2次修订]

201
LICENSE Normal file
View File

@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
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.

View File

@ -1,64 +1,27 @@
# RW-API-Code-V2
[English Docs](README_en.md)
<div style="display:flex;align-content: flex-start;flex-wrap: nowrap;flex-direction: row;justify-content: center;">
<img src="https://rwapi-code.netlify.app/images/logo.png">
</div>
简单的代码,简单的学习。
基于VitePress框架的铁锈战争API代码。
在这里你可以研究RTS单元代码以及地图代码调试代码或更多
你准备好了吗?让我们开始吧
# 项目规则与说明
* 此代码仅供参考。如果有任何错误或遗漏请随时提及Github问题
* RW API Code是一个非官方的第三方RustedWarfare代码网站提供高效和高度学习的服务态度。
* 如果您想合作开发请Fork我们的主要分支机构并申请PullRecust
## 铁锈战争代码表1.15-API
### 贡献者
## 项目鸣谢人员:
> * Tobby3600--合作编辑LogicBoolean组代码
> * JDSALing--提供网站编写
> * 华夏有衣--提供Excel超级代码表
> * Luke-Hoschke--铁锈战争开发者
> * Cold_Mint--提供资源高速加载
> * 王某人--提供MT基础代码高亮文件
> * 十山月--合作编辑Action组代码
> * 指挥中心--提供LogicBoolean组代码例子
<!-- readme: collaborators,contributors -start -->
<!-- readme: collaborators,contributors -end -->
# 站点简介:
> * 本站点主要提供铁锈战争的代码API教程与指导皆在为铁锈带来更好的Mod质量。
> * 本站点提供--地图Mapping代码表单位Unit代码表调试Debug代码表。
<div style="display:flex;align-content: flex-start;flex-wrap: nowrap;flex-direction: row;justify-content: center;">
<font size="6px" color="#42b983">RTS-Code-API-1.15-CopyRight-2023</font>
</div>
# 开发说明
## 1.前提条件Node.js 18或以上
```文本
如果你没有Node.js你可以从下面的链接下载。
什么我不确定Node.js是什么
我建议立即关闭这个页面。
```
Node.js链接[Node.js](https://nodejs.org/zh-cn)
## 2.安装Vite Press
```bash
npm i vitepress -D
```
## 3.Package.json框架结构
```json
{
"scripts": {
"docs:dev": "vitepress dev rustedwarfareapicode",
"docs:build": "vitepress build rustedwarfareapicode",
"docs:preview": "vitepress preview rustedwarfareapicode"
},
"devDependencies": {
"vitepress": "^1.0.0-alpha.65"
}
}
```
## 4.本地部署
开发测试:
```bash
npm run docs:dev
```
构建测试:
```bash
npm run docs:build
```
预览测试:
```bash
npm run docs:preview
```
# Netlify部署
当您提交PR时它会自动为您处理。
# 项目使用的许可证
[Apache许可证-2.0](https://github.com/LingASDJ/RW-API-Code/blob/main/LICENSE)
<!-- 执行命令docsify serve docs -->

View File

@ -1,63 +0,0 @@
# RW-API-CODE
Easy Code,Easy Study.
Rusted Warfare API Code Base on VitePress Frame Work.
In this.You Can Study RTS Unit Code,And Map Code,Debug Code Or More And More,
Do you Ready? Let's Go!
# Rules
* The code is for reference only. If there are any errors or omissions, please feel free to mention Github Issues
* RW-API-Code is an unofficial third-party RustedWarfare code website that provides an efficient and highly learned service attitude.
* If you want to collaborate on development, please Fork our main branch and apply for PullRequst
# Dev
## 1.Prerequisite: Node.js 18 or above
```txt
If you don't have Node.js, you can download it from the link below.
What, I'm not sure what Node.js is doing? I suggest closing this page immediately.
```
Node.js Link:[Node.js](https://nodejs.org/en)
## 2.Install Vite Press
```bash
npm i vitepress -D
```
## 3.Package.json Framework
```json
{
"scripts": {
"docs:dev": "vitepress dev rustedwarfareapicode",
"docs:build": "vitepress build rustedwarfareapicode",
"docs:preview": "vitepress preview rustedwarfareapicode"
},
"devDependencies": {
"vitepress": "^1.0.0-alpha.65"
}
}
```
## 4.Local Deployment
DEV TEST:
```bash
npm run docs:dev
```
Build TEST:
```bash
npm run docs:build
```
Preview TEST:
```bash
npm run docs:preview
```
# Netlify Deployment
When you submit your PR, it will automatically process it for you.
# License
[Apache License-2.0](https://github.com/LingASDJ/RW-API-Code/blob/main/LICENSE)

20
_coverpage.md Normal file
View File

@ -0,0 +1,20 @@
![logo](/images/title.png)
<h1 id="anchors">RustedWarfare-API Code<small>0.1 Demo</small> </h1>
<h2><p id='mainx'>Rusted Warfare Code API<p><h2>
<h3 id="anchors">学习Mod,制作Mod,创新Mod</h3>
<h3 id="anchors">Map Code/Unit Code/Debug Code</h3>
<h3 id="anchors">铁锈战争代码API站点--欢迎您!</h3>
[地图代码表](map_code/1.14/code)
[调试代码表](debug_code/1.15/code)
[RTS-Code-API文档指南](/DEV.md)
[单位代码表](unit_code/1.15/code?id=铁锈战争-115-单位代码表-beta1)
[致谢人员表](/README.md)
![](https://rwapi-code.netlify.app/images/back.png)

11
_sidebar.md Normal file
View File

@ -0,0 +1,11 @@
<!-- docs/_sidebar.md -->
* [铁锈战争-1.15-Code-API](/README.md)
* [单位Mod代码表](unit_code/index.md "学习铁锈战争的单位代码表")
* [Rusted Warfare --- 1.15代码表测试版](unit_code/1.15/code.md?id=铁锈战争-115-单位代码表-beta1 "RTS-1.15的单位代码表")
* [地图Mod代码表](map_code/index.md "学习铁锈战争的地图代码表")
* [1.14地图代码表-Beta版](map_code/1.14/code.md "RTS-1.14的地图代码表")
* [调试Mod代码表](debug_code/index.md "学习高级调试代码的代码表")
* [1.15调试代码表-Beta版](debug_code/1.15/code.md "RTS-1.15的调试代码表")
* [开放型教程中心](/comingsoon.md "敬请期待")
* [RTS-Code-API文档指南](/DEV.md)
* [RW-Engine文档指南](rwEngine_code/code.md)

1
comingsoon.md Normal file
View File

@ -0,0 +1 @@
AAA

55
debug_code/1.15/code.md Normal file
View File

@ -0,0 +1,55 @@
<div style="display:flex;align-content: flex-start;flex-wrap: nowrap;flex-direction: row;justify-content: center;">
<h1>RW_1.15-Debug代码表</h1>
</div>
## &nbsp; Zero.前言:
本教程仅适合 Moder 使用,当然一般人也可以看看,
不过别乱调试就行。否则出问题自行重置设置或后果自负。<br>
<font color="red">注:指令不区分大小写!</font>
## &nbsp; One.什么是高级调试Debug?
铁锈战争是一个多语言,有很多元素的一款游戏。
但我们可爱的开发者Luke,设置里面远远没有包含全部游戏设置。
在 1.14 开始,卢克偷偷加了一个 Debug 按钮并且不做任何说明与
提示。
我通过筛查Dex我发现了这个东西并将资料整理出来。
## &nbsp; Two.高级调试的Debug位置:
<img src="https://rwapi-code.netlify.app/images/debug.png">
那么,这里就是高级调试指令按钮了。
当你点了之后,你会看见一个这种界面。
然后现在来到这个界面你就成功一半了,接下来就是如何使用这
个界面。
声明:下列指令全部由我 Apk 拆包分析后得出来的。仅供学习交流,切勿滥用。
<!-- tabs:start -->
# **[Debug-Nomal] 常规调试组**
| 1. | autosave on/off | 启用/关闭自动保存 |
|:------:|:------------------:|:----------------:|
| 2. | reset | 重置所有调试,但是语言不会变回来 |
| 3. | storage reset | 恢复铁锈存储出厂设置 |
| 4. | save logs | 保存游戏常规日志 |
| 5. | opengl view | 启用 opengl 视图 |
| 6. | showhpchanges on | 开启动态血条显示 |
| 7. | showhpchanges off | 关闭动态血条显示 |
# **[Debug-Extra] 扩展调试组**
# **[Debug-Miscs] 杂项调试组**
<!-- | 1. | old map render | 启用旧版地图渲染 |
|:------:|:------------------:|:----------------:|
| 2. | surface view2 | 启用多线程曲面视图 |
| 3. | nonsurface view | 启用非曲面视图 |
| 4. | surface view | 启用表面视图 |
| 6. | watch memory | 启用内存监控 | -->
<!-- tabs:end -->

17
debug_code/index.md Normal file
View File

@ -0,0 +1,17 @@
<div style="display:flex;align-content: flex-start;flex-wrap: nowrap;flex-direction: row;justify-content: center;">
<img src="https://rwapi-code.netlify.app/images/title.png">
</div>
<b><font size="5px" color="#000">&nbsp;&nbsp;&nbsp;&nbsp;这是来自于1.15的高级调试器的Beta版本目前该代码表包含了全部1.15调试代码,<br><br>
&nbsp;&nbsp;&nbsp;&nbsp;用户可以根据自己的编码能力进行学习,我建议各位从浅到深慢慢学习,并且一定要动手去试试看,不能一直看着代码表而不去动手。否则可能会事倍功半。<br>
&nbsp;&nbsp;&nbsp;&nbsp;总之RTS-API-CODE欢迎各位的到来。以及本站点仍然处于建设中如有代码遗漏之处<br>
&nbsp;&nbsp;&nbsp;&nbsp;请您指出并批评纠正。</font></b>
<a href="#/debug_code/1.15/code.md">
<h2 style="color:green">点击我,开始熟悉调试代码表!</h2>
</a>

BIN
icon.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
images/allcn.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

BIN
images/avaters/ling.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
images/back.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 966 KiB

BIN
images/ban.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

BIN
images/cache.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 438 KiB

BIN
images/clscache.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 441 KiB

BIN
images/debug.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 409 KiB

BIN
images/example.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

BIN
images/gamelog.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 514 KiB

BIN
images/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
images/orhash.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

BIN
images/resetram.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 495 KiB

BIN
images/severerrorhead.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

BIN
images/showhp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 876 KiB

BIN
images/title.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

BIN
images/ui04x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 KiB

BIN
images/ui4x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

BIN
images/version.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 515 KiB

472
index.html Normal file
View File

@ -0,0 +1,472 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>RW-Code-API</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="description" content="Description">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">
<link rel="shortcut icon" href="icon.jpg" type="image/x-icon">
<script src="https://rustedwarfareapicode.top/js/EditMd.js"></script>
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify@4/lib/themes/vue.css">
</head>
<body>
<div data-app id="main" style="margin: 0 auto;">
<div class="loading">
<h1>正在载入数据中……</h1>
</div>
</div>
<noscript>
<div class="nojs">
<div class="nojs-content">
<h1>⚠️ JavaScript-JS已被禁用</h1>
<p>
很抱歉当你看见这个界面代表你的浏览器可能尚未启用JS,因此我们无法构建<font color="#00cc00">[铁锈战争API-Code]</font>页面。
</p>
<p>
若您确信自己已开启JS技术那么可能是您的浏览器不支持请使用我们为你推荐的浏览器进行使用。
</p>
<hr />
<a class="nojs-btn" href="https://viayoo.com/zh-cn/" target="_blank" rel="noopener">Via-大道至简 (手机端)</a>
<a class="nojs-btn" href="https://www.google.cn/chrome/" target="_blank" rel="noopener">Google Chrome
(PC端)</a>
<br /><br />
<p>
<h1>RTS-API-Code-2023</h1>
</p>
</div>
</div>
</noscript>
<style>
.loading {
-webkit-text-size-adjust: 100%;
font-size: 16px;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
box-sizing: inherit;
padding: 0;
margin: 0;
position: fixed;
top: 0;
left: 0;
height: 100%;
width: 100%;
z-index: 9999999999;
display: flex;
align-items: center;
justify-content: center;
}
/* JS报错页面优化升级 */
.nojs {
-webkit-text-size-adjust: 100%;
font-size: 16px;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
box-sizing: inherit;
padding: 0;
margin: 0;
position: fixed;
top: 0;
left: 0;
height: 100%;
width: 100%;
z-index: 9999999999;
background: repeating-linear-gradient(-45deg,
#d7ba01,
#d7ba01 90px,
#1d0d0d 0,
#1d0d0d 180px);
display: flex;
align-items: center;
justify-content: center;
}
.nojs del {
padding: 4px 8px;
background: #1d1d1d;
background: repeating-linear-gradient(-45deg,
#e6c700,
#e6c700 45px,
rgba(0, 0, 0, 0.5) 0,
rgba(0, 0, 0, 0.5) 30px);
color: #cbcbcb;
border-radius: 4px;
}
/* 布局约束调整 */
.sidebar li {
margin: 0;
}
.nojs-content {
-webkit-text-size-adjust: 100%;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
box-sizing: inherit;
margin: 0;
vertical-align: middle;
width: 70%;
font-weight: 700;
font-size: 18px;
font-family: -apple-system, Noto Sans SC, BlinkMacSystemFont,
Segoe UI, Microsoft YaHei UI, Microsoft Yahei, 微软雅黑,
Helvetica, Arial, sans-serif;
padding: 48px 64px;
word-break: break-word;
text-align: center;
line-height: 2;
border-radius: 16px;
background: rgba(45, 42, 43, 0.8);
backdrop-filter: blur(16px);
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
border: 4px solid #0d0d0d;
color: #beb9b9;
box-shadow: 0 0 2rem rgba(0, 0, 0, 0.5),
inset 0 0 2rem rgba(0, 0, 0, 0.5);
}
.nojs .nojs-btn {
-webkit-text-size-adjust: 100%;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
font-weight: 700;
word-break: break-word;
line-height: 2;
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
box-sizing: inherit;
outline-width: 0;
display: inline-block;
border: 2px solid #000;
padding: 8px 24px;
margin: 0 8px;
text-decoration: none;
color: #fff;
font-family: sans-serif;
font-size: 14px;
cursor: pointer;
text-align: center;
transition: background 50ms ease-out, transform 0.15s ease;
background: #368dff;
border-radius: 24px;
transform: scale(1.05);
}
/* 公用样式 */
.nojs .nojs-btn:hover {
background: #0366e8;
transform: scale(1.05);
}
.nojs .nojs-btn:focus {
outline: 1px solid #fff;
outline-offset: -4px;
}
.nojs .nojs-btn:active {
transform: scale(0.99);
}
.nojs del {
padding: 4px 8px;
background: #1d1d1d;
background: repeating-linear-gradient(-45deg,
#995d22,
#995d22 15px,
rgba(0, 0, 0, 0.5) 0,
rgba(0, 0, 0, 0.5) 30px);
color: #cbcbcb;
border-radius: 4px;
}
.markdown-section {
margin: 0 auto;
max-width: 100%;
padding: 30px 15px 40px;
position: relative;
}
.nojs .nojs-link {
background: #0d47a1;
color: #fff;
border: 2px solid #093777;
padding: 4px 6px;
text-decoration: none;
border-radius: 4px;
}
.nojs .nojs-btn:focus,
.nojs .nojs-link:hover {
background: #0f5ad6;
}
.nojs .nojs-link:active {
background: #0d4fba;
}
.rtsqs {
border-radius: 7px;
color: darkblue;
}
</style>
<script>
window.$docsify = {
el: '#main',
loadSidebar: true,
subMaxLevel: 3,
coverpage: true,
name: '铁锈战争API-Code',
plugins: [
EditOnGithubPlugin.create(
'https://github.com/LingASDJ/RW-API-Code/tree/main/docs/',
null,
function (file) {
return '在GitHub上合作编辑RTS-Code-API的文档'
}
)
],
tabs: {
persist: true, // default
sync: true, // default
theme: 'classic', // default
tabComments: true, // default
tabHeadings: true // default
},
'flexible-alerts': {
note: {
label: "随录笔记"
},
tip: {
label: "特别注意"
},
warning: {
label: "警告"
},
attention: {
label: "不推荐"
}
},
// Valine: {
// appId: 'e3Ipwd8kr6LEeNRLk487mmtB-gzGzoHsz',
// appKey: 'gQYoj8j4KehzLWLGvpr5sKeP',
// placeholder: "可以将你的一些见解发表到这里说不定能帮助到其他萌新或者让一些陷入迷途的人豁然开朗呢支持MarkDown语法。",
// avatar: 'hide'
// },
scrollToTop: {
auto: true,
text: 'Top↑',
right: 15,
bottom: 15,
offset: 500
},
timeUpdater: {
text: "> 最后编写更新时间: {docsify-updated}",
formatUpdated: "{YYYY}/{MM}/{DD}",
whereToPlace: "top", // "top" or "bottom", default to "bottom"
},
chat: {
// chat panel title
title: '',
// set avatar url
users: [
{ nickname: 'tobby3600', avatar: 'https://rwapi-code.netlify.app/images/avaters/tobby3600.jpg' },
{ nickname: 'JDSALing', avatar: 'https://rwapi-code.netlify.app/images/avaters/ling.jpg' },
{ nickname: 'shishanyue', avatar: 'https://rwapi-code.netlify.app/images/avaters/shishanyue.jpg' },
],
// myself: 'JDSALing',
animation: 50,
// Panel navigation bar style, supporting "mac" and "windows"
os: 'none',
},
repo: 'https://github.com/LingASDJ/RW-API-Code',
// 完整配置参数
search: {
maxAge: 86400000, // 过期时间单位毫秒1.9分钟
paths: 'auto', // or 'auto'
search: [
'auto', // => /zh-cn/README.md
],
// 支持本地化
placeholder: {
'/': '搜索你需要的!探索你所想的!'
},
// 支持本地化
noData: {
'/': '尚未找到匹配结果……'
},
// 搜索标题的最大层级, 1 - 6
depth: 3,
hideOtherSidebarContent: true, // 是否隐藏其他侧边栏内容
// 避免搜索索引冲突
// 同一域下的多个网站之间
//namespace: 'website-1',
// 使用不同的索引作为路径前缀namespaces
// 注意:仅适用于 paths: 'auto' 模式
//
// 初始化索引时,我们从侧边栏查找第一个路径
// 如果它与列表中的前缀匹配,我们将切换到相应的索引
pathNamespaces: ['/zh-cn', '/ru-ru', '/ru-ru/v1'],
// 您可以提供一个正则表达式来匹配前缀。在这种情况下,
// 匹配到的字符串将被用来识别索引
pathNamespaces: /^(\/(zh-cn|ru-ru))?(\/(v1|v2))?/
}
}
</script>
<!-- Docsify v4 -->
</script>
<script src="//cdn.jsdelivr.net/npm/docsify@4"></script>
<!-- 插件引入 -->
<script src="https://cdn.jsdelivr.net/npm/docsify-tabs@1"></script>
<script src="https://cdn.jsdelivr.net/npm/docsify-updated/src/time-updater.js"></script>
<script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/search.min.js"></script>
<script src="//unpkg.com/docsify-scroll-to-top/dist/docsify-scroll-to-top.min.js"></script>
<script src="https://rustedwarfareapicode.top/js/RW-ini-1.15.js"></script>
<script src="https://rustedwarfareapicode.top/js/docsify-copy-code.min.js"></script>
<script src='//unpkg.com/valine/dist/Valine.min.js'></script>
<script src="//unpkg.com/docsify-valine/dist/docsify-valine.min.js"></script>
<script src="//cdn.jsdelivr.net/npm/docsify-chat/lib/docsify-chat.min.js"></script>
<script src="https://unpkg.com/docsify-plugin-flexible-alerts"></script>
<style>
/* 主页样式 */
#mainx {
color: #0080ff;
}
#main {
font-size: large;
}
#anchors {
color: #ffffff;
}
section.cover .cover-main>p:last-child a {
border-radius: 2rem;
background: #42b983;
border: 1px solid #42b983;
border-color: var(--theme-color, #42b983);
box-sizing: border-box;
color: fff;
color: #ffffff;
display: inline-block;
font-size: 1.05rem;
letter-spacing: .1rem;
margin: 0.5rem 1rem;
padding: 0.75em 2rem;
text-decoration: none;
transition: all .15s ease;
}
section.cover a,
section.cover a:hover {
text-decoration: none;
}
section.cover a {
color: inherit;
}
* {
-webkit-font-smoothing: antialiased;
-webkit-overflow-scrolling: touch;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-webkit-text-size-adjust: none;
-webkit-touch-callout: none;
box-sizing: border-box;
}
/* 公用样式 */
.token.selector {
color: #42b983;
}
.token.punctuation {
color: #42b983;
}
.search .matching-post:hover {
border-bottom: 1px solid #eee;
background: rgba(163, 230, 40, 0.5);
border-radius: 12px;
}
.markdown-section code,
.markdown-section pre {
border-radius: 21px
}
.sidebar ul li.active>a {
border-right: 2px solid;
color: #42b983;
color: #42b983;
font-weight: 600;
background: azure;
border-radius: 5px;
text-decoration: none;
}
section.cover.has-mask .mask {
background-color: #070707;
opacity: .75;
position: absolute;
top: 0;
bottom: 0;
width: 100%;
}
.sidebar ul li a:hover {
text-decoration: #42b983;
}
.markdown-section a {
color: #42b983;
color: var(--theme-color, #42b983);
font-weight: 600;
text-decoration: none;
}
.markdown-section a:hover {
color: #075632;
color: var(--theme-color, #075632);
font-weight: 600;
}
.markdown-section output:after,
.markdown-section pre:after {
color: #42b983;
font-size: .6rem;
font-weight: 600;
height: 15px;
line-height: 15px;
padding: 5px 10px 0;
position: absolute;
right: 0;
text-align: right;
top: 0;
content: attr(data-lang);
}
</style>
</body>
</html>

8
js/EditMd.js Normal file
View File

@ -0,0 +1,8 @@
/**
* Minified by jsDelivr using Terser v3.14.1.
* Original file: /npm/docsify-edit-on-github@1.0.3/index.js
*
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
*/
!function(t){t.EditOnGithubPlugin={},t.EditOnGithubPlugin.create=function(n,i,e){function u(t){return header=['<div style="overflow: auto">','<p style="display:flex;align-content: flex-start;flex-wrap: nowrap;flex-direction: row;justify-content: center"><a style="font-size: 1.5rem; text-decoration: none; cursor: pointer"','onclick="EditOnGithubPlugin.onClick(event)">',t,"</a></p>","</div>"].join("")}return e=e||"Edit on github",i=i||n.replace(/\/blob\//,"/edit/"),t.EditOnGithubPlugin.editDoc=function(t,n){var e=n.route.file;if(e){var u=i+e;return window.open(u),t.preventDefault(),!1}return!0},function(n,i){if(t.EditOnGithubPlugin.onClick=function(t){EditOnGithubPlugin.editDoc(t,i)},(r=e)&&"[object Function]"==={}.toString.call(r))n.afterEach(function(t){return u(e(i.route.file))+t});else{var o=u(e);n.afterEach(function(t){return o+t})}var r}}}(window);
//# sourceMappingURL=/sm/eef821f4877f09e27be373326100cefe923735a9bb303de51b16f9079d063a86.map

42
js/RW-ini-1.15.js Normal file
View File

@ -0,0 +1,42 @@
Prism.languages.ini = {
/**
* The component mimics the behavior of the Win32 API parser.
*
* @see {@link https://github.com/PrismJS/prism/issues/2775#issuecomment-787477723}
*/
'comment': {
pattern: /(^[ \f\t\v]*)[#;][^\n\r]*/m,
lookbehind: true
},
'section': {
pattern: /(^[ \f\t\v]*)\[[^\n\r\]]*\]?/m,
lookbehind: true,
inside: {
'section-name': {
pattern: /(^\[[ \f\t\v]*)[^ \f\t\v\]]+(?:[ \f\t\v]+[^ \f\t\v\]]+)*/,
lookbehind: true,
alias: 'selector'
},
'punctuation': /\[|\]/
}
},
'key': {
pattern: /(^[ \f\t\v]*)[^ \f\n\r\t\v=]+(?:[ \f\t\v]+[^ \f\n\r\t\v=]+)*(?=[ \f\t\v]*:)/m,
lookbehind: true,
alias: 'attr-name'
},
'value': {
pattern: /(=[ \f\t\v]*)[^ \f\n\r\t\v]+(?:[ \f\t\v]+[^ \f\n\r\t\v]+)*/,
lookbehind: true,
alias: 'attr-value',
inside: {
'inner-value': {
pattern: /^("|').+(?=\1$)/,
lookbehind: true
}
}
},
'punctuation': /=/
};

9
js/docsify-copy-code.min.js vendored Normal file
View File

@ -0,0 +1,9 @@
/*!
* docsify-copy-code
* v2.1.1
* https://github.com/jperasmus/docsify-copy-code
* (c) 2017-2020 JP Erasmus <jperasmus11@gmail.com>
* MIT license
*/
!function(){"use strict";function s(o){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o})(o)}!function(o,e){void 0===e&&(e={});var t=e.insertAt;if(o&&"undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],c=document.createElement("style");c.type="text/css","top"===t&&n.firstChild?n.insertBefore(c,n.firstChild):n.appendChild(c),c.styleSheet?c.styleSheet.cssText=o:c.appendChild(document.createTextNode(o))}}(".docsify-copy-code-button,.docsify-copy-code-button span{cursor:pointer;transition:all .25s ease}.docsify-copy-code-button{position:absolute;z-index:1;top:0;right:0;overflow:visible;padding:.65em .8em;border:0;border-radius:0;outline:0;font-size:1em;background:grey;background:var(--theme-color,grey);color:#fff;opacity:0}.docsify-copy-code-button span{border-radius:3px;background:inherit;pointer-events:none}.docsify-copy-code-button .error,.docsify-copy-code-button .success{position:absolute;z-index:-100;top:50%;right:0;padding:.5em .65em;font-size:.825em;opacity:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.docsify-copy-code-button.error .error,.docsify-copy-code-button.success .success{right:100%;opacity:1;-webkit-transform:translate(-115%,-50%);transform:translate(-115%,-50%)}.docsify-copy-code-button:focus,pre:hover .docsify-copy-code-button{opacity:1}"),document.querySelector('link[href*="docsify-copy-code"]')&&console.warn("[Deprecation] Link to external docsify-copy-code stylesheet is no longer necessary."),window.DocsifyCopyCodePlugin={init:function(){return function(o,e){o.ready(function(){console.warn("[Deprecation] Manually initializing docsify-copy-code using window.DocsifyCopyCodePlugin.init() is no longer necessary.")})}}},window.$docsify=window.$docsify||{},window.$docsify.plugins=[function(o,r){o.doneEach(function(){var o=Array.apply(null,document.querySelectorAll("pre[data-lang]")),c={buttonText:"复制到剪贴板",errorText:"出现错误",successText:"已复制到剪贴板"};r.config.copyCode&&Object.keys(c).forEach(function(t){var n=r.config.copyCode[t];"string"==typeof n?c[t]=n:"object"===s(n)&&Object.keys(n).some(function(o){var e=-1<location.href.indexOf(o);return c[t]=e?n[o]:c[t],e})});var e=['<button class="docsify-copy-code-button">','<span class="label">'.concat(c.buttonText,"</span>"),'<span class="error">'.concat(c.errorText,"</span>"),'<span class="success">'.concat(c.successText,"</span>"),"</button>"].join("");o.forEach(function(o){o.insertAdjacentHTML("beforeend",e)})}),o.mounted(function(){document.querySelector(".content").addEventListener("click",function(o){if(o.target.classList.contains("docsify-copy-code-button")){var e="BUTTON"===o.target.tagName?o.target:o.target.parentNode,t=document.createRange(),n=e.parentNode.querySelector("code"),c=window.getSelection();t.selectNode(n),c.removeAllRanges(),c.addRange(t);try{document.execCommand("copy")&&(e.classList.add("success"),setTimeout(function(){e.classList.remove("success")},1e3))}catch(o){console.error("docsify-copy-code: ".concat(o)),e.classList.add("error"),setTimeout(function(){e.classList.remove("error")},1e3)}"function"==typeof(c=window.getSelection()).removeRange?c.removeRange(t):"function"==typeof c.removeAllRanges&&c.removeAllRanges()}})})}].concat(window.$docsify.plugins||[])}();
//# sourceMappingURL=docsify-copy-code.min.js.map

8
map_code/1.14/code.md Normal file
View File

@ -0,0 +1,8 @@
dafasfSSFASF
# 遇到困难睡大觉
遇到困难睡大觉
```ini
卡了
```

1
map_code/index.md Normal file
View File

@ -0,0 +1 @@
132

1184
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,10 +0,0 @@
{
"scripts": {
"docs:dev": "vitepress dev rustedwarfareapicode",
"docs:build": "vitepress build rustedwarfareapicode",
"docs:preview": "vitepress preview rustedwarfareapicode"
},
"devDependencies": {
"vitepress": "^1.0.0-alpha.65"
}
}

View File

@ -1,41 +0,0 @@
// node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/index.js
import "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/styles/fonts.css";
// node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/without-fonts.js
import "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/styles/vars.css";
import "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/styles/base.css";
import "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/styles/utils.css";
import "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/styles/components/custom-block.css";
import "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/styles/components/vp-code.css";
import "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/styles/components/vp-code-group.css";
import "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/styles/components/vp-doc.css";
import "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/styles/components/vp-sponsor.css";
import VPBadge from "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/components/VPBadge.vue";
import Layout from "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/Layout.vue";
import { default as default2 } from "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/components/VPHomeHero.vue";
import { default as default3 } from "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/components/VPHomeFeatures.vue";
import { default as default4 } from "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/components/VPHomeSponsors.vue";
import { default as default5 } from "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/components/VPDocAsideSponsors.vue";
import { default as default6 } from "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/components/VPTeamPage.vue";
import { default as default7 } from "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/components/VPTeamPageTitle.vue";
import { default as default8 } from "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/components/VPTeamPageSection.vue";
import { default as default9 } from "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/components/VPTeamMembers.vue";
var theme = {
Layout,
enhanceApp: ({ app }) => {
app.component("Badge", VPBadge);
}
};
var without_fonts_default = theme;
export {
default5 as VPDocAsideSponsors,
default3 as VPHomeFeatures,
default2 as VPHomeHero,
default4 as VPHomeSponsors,
default9 as VPTeamMembers,
default6 as VPTeamPage,
default8 as VPTeamPageSection,
default7 as VPTeamPageTitle,
without_fonts_default as default
};
//# sourceMappingURL=@theme_index.js.map

View File

@ -1,7 +0,0 @@
{
"version": 3,
"sources": ["../../../../node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/index.js", "../../../../node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/without-fonts.js"],
"sourcesContent": ["import './styles/fonts.css';\nexport * from './without-fonts';\nexport { default as default } from './without-fonts';\n", "import './styles/vars.css';\nimport './styles/base.css';\nimport './styles/utils.css';\nimport './styles/components/custom-block.css';\nimport './styles/components/vp-code.css';\nimport './styles/components/vp-code-group.css';\nimport './styles/components/vp-doc.css';\nimport './styles/components/vp-sponsor.css';\nimport VPBadge from './components/VPBadge.vue';\nimport Layout from './Layout.vue';\n// Note: if we add more optional components here, i.e. components that are not\n// used in the theme by default unless the user imports them, make sure to update\n// the `lazyDefaultThemeComponentsRE` regex in src/node/build/bundle.ts.\nexport { default as VPHomeHero } from './components/VPHomeHero.vue';\nexport { default as VPHomeFeatures } from './components/VPHomeFeatures.vue';\nexport { default as VPHomeSponsors } from './components/VPHomeSponsors.vue';\nexport { default as VPDocAsideSponsors } from './components/VPDocAsideSponsors.vue';\nexport { default as VPTeamPage } from './components/VPTeamPage.vue';\nexport { default as VPTeamPageTitle } from './components/VPTeamPageTitle.vue';\nexport { default as VPTeamPageSection } from './components/VPTeamPageSection.vue';\nexport { default as VPTeamMembers } from './components/VPTeamMembers.vue';\nconst theme = {\n Layout,\n enhanceApp: ({ app }) => {\n app.component('Badge', VPBadge);\n }\n};\nexport default theme;\n"],
"mappings": ";AAAA,OAAO;;;ACAP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO,aAAa;AACpB,OAAO,YAAY;AAInB,SAAoB,WAAXA,gBAA6B;AACtC,SAAoB,WAAXA,gBAAiC;AAC1C,SAAoB,WAAXA,gBAAiC;AAC1C,SAAoB,WAAXA,gBAAqC;AAC9C,SAAoB,WAAXA,gBAA6B;AACtC,SAAoB,WAAXA,gBAAkC;AAC3C,SAAoB,WAAXA,gBAAoC;AAC7C,SAAoB,WAAXA,gBAAgC;AACzC,IAAM,QAAQ;AAAA,EACV;AAAA,EACA,YAAY,CAAC,EAAE,IAAI,MAAM;AACrB,QAAI,UAAU,SAAS,OAAO;AAAA,EAClC;AACJ;AACA,IAAO,wBAAQ;",
"names": ["default"]
}

View File

@ -1,19 +0,0 @@
{
"hash": "cfff58c0",
"browserHash": "db198c51",
"optimized": {
"vue": {
"src": "../../../../node_modules/_vue@3.2.47@vue/dist/vue.runtime.esm-bundler.js",
"file": "vue.js",
"fileHash": "bdf893bb",
"needsInterop": false
},
"@theme/index": {
"src": "../../../../node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/index.js",
"file": "@theme_index.js",
"fileHash": "ea36232e",
"needsInterop": false
}
},
"chunks": {}
}

View File

@ -1 +0,0 @@
{"type":"module"}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,30 +0,0 @@
import { defineConfig } from 'vitepress'
// https://vitepress.dev/reference/site-config
export default defineConfig({
title: "RW-API_Code",
description: "Easy Code",
themeConfig: {
// https://vitepress.dev/reference/default-theme-config
nav: [
{ text: 'Home', link: '/' },
{ text: 'Examples', link: '/markdown-examples' }
],
sidebar: [
{
text: 'RW-API-Code',
items: [
{ text: '主页-Home', link: '/markdown-examples' },
{ text: '核心-CORE', link: '/src/Unit/core' },
{ text: '可建造-CORE', link: '/src/Unit/canbuild' },
{ text: '逻辑组-LogicBoolean', link: '/src/Unit/loginboolean' }
]
}
],
socialLinks: [
{ icon: 'github', link: 'https://github.com/vuejs/vitepress' }
]
}
})

View File

@ -1,49 +0,0 @@
---
outline: deep
---
# Runtime API Examples
This page demonstrates usage of some of the runtime APIs provided by VitePress.
The main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:
```md
<script setup>
import { useData } from 'vitepress'
const { theme, page, frontmatter } = useData()
</script>
## Results
### Theme Data
<pre>{{ theme }}</pre>
### Page Data
<pre>{{ page }}</pre>
### Page Frontmatter
<pre>{{ frontmatter }}</pre>
```
<script setup>
import { useData } from 'vitepress'
const { site, theme, page, frontmatter } = useData()
</script>
## Results
### Theme Data
<pre>{{ theme }}</pre>
### Page Data
<pre>{{ page }}</pre>
### Page Frontmatter
<pre>{{ frontmatter }}</pre>
## More
Check out the documentation for the [full list of runtime APIs](https://vitepress.dev/reference/runtime-api#usedata).

View File

@ -1,25 +0,0 @@
---
# https://vitepress.dev/reference/default-theme-home-page
layout: home
hero:
name: "RW-API_Code"
text: "Easy Code"
tagline: My great project tagline
actions:
- theme: brand
text: Markdown Examples
link: /markdown-examples
- theme: alt
text: API Examples
link: /api-examples
features:
- title: Feature A
details: Lorem ipsum dolor sit amet, consectetur adipiscing elit
- title: Feature B
details: Lorem ipsum dolor sit amet, consectetur adipiscing elit
- title: Feature C
details: Lorem ipsum dolor sit amet, consectetur adipiscing elit
---

View File

@ -1,85 +0,0 @@
# Markdown Extension Examples
This page demonstrates some of the built-in markdown extensions provided by VitePress.
## Syntax Highlighting
VitePress provides Syntax Highlighting powered by [Shiki](https://github.com/shikijs/shiki), with additional features like line-highlighting:
**Input**
````
```js{4}
export default {
data () {
return {
msg: 'Highlighted!'
}
}
}
```
````
**Output**
```js{4}
export default {
data () {
return {
msg: 'Highlighted!'
}
}
}
```
## Custom Containers
**Input**
```md
::: info
This is an info box.
:::
::: tip
This is a tip.
:::
::: warning
This is a warning.
:::
::: danger
This is a dangerous warning.
:::
::: details
This is a details block.
:::
```
**Output**
::: info
This is an info box.
:::
::: tip
This is a tip.
:::
::: warning
This is a warning.
:::
::: danger
This is a dangerous warning.
:::
::: details
This is a details block.
:::
## More
Check out the documentation for the [full list of markdown extensions](https://vitepress.dev/guide/markdown).

View File

@ -1 +0,0 @@
xx

View File

@ -1,770 +0,0 @@
---
outline: deep
---
# **[core]组**
## 第一类-通用代码组
::: tip
以下的代码为`通用代码`,多半是必要的代码,如果不包括这些,可能在`绝大多数情况下导致错误`。
:::
### name
#### name-代码简介
代码:name 中文释义:名字 类型:字符型 隶属于:通用代码组
#### name-要点指示
<!-- 代码盒子例子 -->
::: code-group
```bash [JDSALing]
定义单位原始名称,可以是中文。
游戏使用它区分其它单位。
如果没有在[displayText或者语言文件设置显示名称]
那么它也将作为单位的显示名称。
具体描述文件位置(内部):
1.assets/translationsStrings_zh.properties
格式:units.单位名称.name=写单位显示的名称
units.单位名称.description= [[填单位显示的描述]]
```
```bash [Tobby3600]
ini文件的单独定义(外部-推荐):
2.displayText: -单位的标题
displayDescription: -单位的描述
```
:::
特别提醒:`displayText支持本地化`,例如如果要写一个`多语言的单位描述`,可以通过以下例子:
#### name-演示例子
```ini
演示例子
[core]
name: Ling
displayText: English Title Text
displayText_zh:中文标题
displayDescription: -English Description
displayDescription_zh:-中文描述
```
### price
#### price-代码简介
代码:price 中文释义:价格 类型:整数 隶属于:通用代码组
#### price-要点指示
定义单位的价格,显示在单位信息中,建造时也以此价格为准。
::: code-group
``` bash [Tobby3600]
默认情况下price只需要填写一个整数此时使用的是游戏内自带的资金credit
想要更改资源类型,可以使用:
`price:资源1=数值1,资源2=数值2,资源3=数值3,……` 的格式
(前提是此资源要在使用的单位进行定义)。
```
:::
#### price-演示例子
```ini
[core]
price:120,石油=80,铁=60
```
### radius
#### radius-代码简介
代码:radius 中文释义:半径 类型:整数 隶属于:通用代码组
#### radius-要点指示
半径定义单位的`实际碰撞体积和显示范围`,在未设置`选择框大小`时,半径决定是单位选择框的大小。
半径的单位是像素(px)。
#### radius-演示例子
```ini
[core]
radius:20
```
### mass
#### mass-代码简介
代码:mass 中文释义:质量 类型:整数 隶属于:通用代码组
#### mass-要点指示
质量决定单位在各种碰撞时的效果。`质量越大,其他单位越难推动`。
#### mass-演示例子
```ini
[core]
mass:2000
```
### maxHp
#### maxHp-代码简介
代码:maxHp 中文释义:最大生命值 类型:整数 隶属于:通用代码组
#### maxHp-要点指示
::: code-group
``` bash [tobby3600]
最大生命值定义单位在不修改它时最多能够有多少血量,
单位默认生成时即是这个血量。
maxHp可以通过单位参考.maxHp()来获取,
也可以通过[action]进行修改。
```
:::
#### maxHp-演示例子
```ini
[core]
maxHp:600
```
### altNames
#### altNames-代码简介
代码:altNames 中文释义:别名/曾用名 类型:字符型 隶属于:通用代码组
#### altNames-要点指示
altNames代码要点指示:
<!-- chat:start -->
#### **JDSALing的小提示**
主要在<font color=orange>启用多个自定义Mod</font>进行优先级定义<br>
以逗号分隔的名称列表。像<font color=orange>名称一样,但优先级较低</font>,对于<font color=orange>启用多个自定义mod</font>有用。
<!-- chat:end -->
#### altNames-演示例子
```ini
[core]
altNames:ling,tobby3600,coldmint
```
### class
#### class-代码简介
代码:class 中文释义:类 类型:字符型 隶属于:通用代码组
无实际用处,可以删除。<br>
Luke保留供将来使用默认情况下必须为`CustomUnitMetadata`。由于该代码无实际用途,可以忽略该代码<br>
该代码后面什么都可以输,但没有实际用途。或许在未来会有用。
#### class-演示例子
```ini
[core]
class:CustomUnitMetadata
```
### strictLevel
#### strictLevel-代码简介
代码:strictLevel 中文释义:严格级别 类型:数字固定型 隶属于:通用代码组
::: tip
建议添加到"all-units.template"以应用于所有单位,进行统一查错。<br>
默认值为0忽略代码重复。设为1时如果当前单位内有重复代码则报错。
:::
#### strictLevel-演示例子
```all-units.template,ini
[core]
strictLevel:1
```
### techLevel
#### techLevel-代码简介
代码:techLevel 中文释义:科技等级 类型:数字固定型 隶属于:通用代码组
::: tip
早期是用于在<font color=orange>builtFrom</font>的代码,并结合科技等级使用。如果工厂的等级低于单位的目标科技等级,则会在工厂里面隐藏该单位。<br>自铁锈1.09后出现<font color=orange>overrideAndReplace</font>后,该方法则不建议使用。有关于新策略,请参考<font color=orange>overrideAndReplace</font>代码文档指南。<br>
设置单位的科技等级共有3个级别1级GUI显示为绿色2、3级显示为黄色。超过3报错。
:::
#### techLevel-演示例子
```ini
[core]
techLevel:2
```
### buildSpeed
#### buildSpeed-代码简介
代码:buildSpeed 中文释义:建造速度 类型:浮点/秒型 隶属于:通用代码组
::: tip
建造此单位需要的时间,填秒。<br>
以前的计算方式为:此处所填时间=1÷(60x你需要的秒)如果定义了工厂速率则需要乘以建造乘数。
:::
#### buildSpeed-演示例子
```ini
[core]
buildSpeed:30s
#或者
## 下方可能有误差
buildSpeed:0.0006
```
### isBio
#### isBio-代码简介
代码:isBio 中文释义:是生物 类型:布尔型 隶属于:通用代码组
:::tip {2}
若设置成true,则会在单位死亡时产生血迹,
图像在<font color=orange>drawable/blood_mark.png---hideScorchMark:true</font>时可以隐藏非生物则为黑色爆炸效果。
:::
#### isBio-演示例子
```ini
[core]
isBio:true
```
### isBug
#### isBug-代码简介
代码:isBug 中文释义:是虫子 类型:布尔型 隶属于:通用代码组
:::tip
若设置成true,则会认定为虫子,用于沙盒中的单独分类。
:::
#### isBug-演示例子
```ini
[core]
isBug:true
```
### isBuilder
#### isBuilder-代码简介
代码:isBuilder 中文释义:是建造者 类型:布尔型 隶属于:通用代码组
:::tip
若设置成true,则会需要此单位建造建筑物,则通常需要此代码。
并且默认设为[ai] useAsBuilder。
:::
#### isBuilder-演示例子
```ini
[core]
isBuilder:true
```
### streamingCost
#### streamingCost-代码简介
代码:streamingCost 中文释义:流式资金 类型:整数型 隶属于:通用代码组
::: tip和价格一样但在建造时逐渐消耗资金如果在构建过程中资源耗尽
建造或生产队列将暂停。就像是红警中那样。铁锈默认是预先扣除资金。
若使用该代码,则玩家的每秒资金将会根据流式资金的算法进行扣减。
#### streamingCost-演示例子
```ini
[core]
streamingCost:1145
```
### switchPriceWithStreamingCost
#### S.P.S.C.-代码简介
代码:switchPriceWithStreamingCost(S.P.S.C.)
中文释义:流式资金模式全局切换 类型:布尔型 隶属于:通用代码组
::: tip
快捷设置为默认资金消耗方式或为流式建造方式。
建议使用模板快速将一个模组为所有单位切换流资源。
例如all-units.template.
:::
#### S.P.S.C.-演示例子
```ini,all-units.template
[core]
switchPriceWithStreamingCost:true
```
## 第二类-单位统计代码组
::: tip
非必须存在的代码,请根据情况自行使用
:::
### selfRegenRate
#### selfRegenRate-代码简介
代码:selfRegenRate 中文释义:生命恢复速度 类型:浮点型 隶属于:单位统计代码组
::: tip
此数值决定每帧增加血量。游戏内默认速度下一秒为60逻辑帧而你看到的FPS帧数为渲染帧所以电脑上几百帧和手机上60帧和省电模式下30帧并不影响计算。所以不要写太大。可以写负值用于自毁。
:::
#### selfRegenRate-演示例子
```ini
[core]
maxHp:500
selfRegenRate:0.5
```
### maxShield
#### maxShield-代码简介
代码:maxShield 中文释义:护盾值 类型:整型 隶属于:单位统计代码组
::: tip
单位最大护盾值默认生成时即为此值。如果设置了startShieldAtZero:true则初始为0.
:::
#### maxShield-演示例子
```ini
[core]
maxShield:3000
```
### startShieldAtZero
#### startShieldAtZero-代码简介
代码:startShieldAtZero 中文释义:护盾初始值为0 类型:布尔型 隶属于:单位统计代码组
::: tip
如果为true则单位护盾值从0开始增加。
:::
#### startShieldAtZero-演示例子
```ini
[core]
maxShield:3000
startShieldAtZero:true
```
### shieldRegen
#### shieldRegen-代码简介
代码:shieldRegen 中文释义:护盾恢复速度 类型:浮点型 隶属于:单位统计代码组
::: tip
此数值决定每帧增加护盾值游戏内一秒为60帧所以不要写太大。可以写负值。
:::
#### shieldRegen-演示例子
```ini
[core]
maxShield:3000
shieldRegen:0.5
```
### energyMax
#### energyMax-代码简介
代码:energyMax 中文释义:能量值 类型:浮点型 隶属于:单位统计代码组
::: tip
默认值为0。可以用作炮塔激光防御和行动的弹药的能量。
:::
#### energyMax-演示例子
```ini
[core]
energyMax:5
```
### energyRegen
#### energyRegen-代码简介
代码:energyRegen 中文释义:能量恢复速度 类型:浮点型 隶属于:单位统计代码组
::: tip
能量每帧恢复速度游戏内一秒为60帧所以不要写太大。可以写负值。
:::
#### energyRegen-演示例子
```ini
[core]
energyRegen:0.4
```
### energyRegenWhenRecharging(E.R.W.C)
#### E.R.W.C-代码简介
代码:energyRegenWhenRecharging
中文释义:充能时能量恢复速度 类型:浮点型 隶属于:单位统计代码组
::: tip
能量恢复是持续的,如果你设置了<font color="orange">energyNeedsToRechargeToFull</font>
那么攻击时按energyRegen恢复耗尽时的灰条按此处设定值恢复。
:::
#### E.R.W.C-演示例子
```ini
[core]
energyMax:1
energyRegenWhenRecharging:0.4
```
### energyNeedsToRechargeToFull(E.N.T.R)
#### E.N.T.R-代码简介
代码:energyNeedsToRechargeToFull
中文释义:能量需要充满 类型:布尔型 隶属于:单位统计代码组
::: tip
如果能量耗尽,则需要完全充能才能进行攻击。
:::
#### E.N.T.R-演示例子
```ini
[core]
energyMax:4
energyNeedsToRechargeToFull:true
```
### armour
#### armour-代码简介
代码:armour
中文释义:装甲 类型:整型 隶属于:单位统计代码组
::: tip
抵消敌方攻击所造成的伤害。
:::
#### armour-演示例子
```ini
[core]
armour:40
#如果受到40以上的常规攻击则进行抵消反之返回1伤害点。
#例如45伤害40护甲那么将获得5点伤害。
```
### armourMinDamageToKeep(A.M.D.T)
#### A.M.D.T-代码简介
代码:armour
中文释义:装甲最低伤害 类型:整型 隶属于:单位统计代码组
:::tip
至少造成多少点伤害默认为1.防止护甲太高完全打不动。
:::
#### A.M.D.T-演示例子:
```ini
[core]
armour:40
armourMinDamageToKeep:2
#如果受到40以下的常规攻击,则进行最低伤害判定
```
### borrowResourcesWhileAlive(B.R.W.A)
#### B.R.W.A-代码简介
代码:armour
中文释义:资源活着时借用 类型:Price型 隶属于:单位统计代码组
:::tip
创建时获取这些资源,删除或销毁时将其返回。
例如用于电力逻辑,负数供电和正数耗电。
:::
#### B.R.W.A-演示例子:
```ini
[core]
borrowResourcesWhileAlive:5000
#单位活着的时候给予5000金币死亡扣除5000金币
#一个小型贷款系统
```
:::code-group
``` bash [考考你]
如果这里要通过这个代码做一个小的贷款系统,
并经过一段时间让单位死亡。
只需要4行代码即可实现试试看。
提示dieOnZeroEnergy:true
(无能量时死亡|如果能量值为零,该单位死亡)
```
``` bash [显示答案]
#参考答案为
[core]
borrowResourcesWhileAlive:5000
energyMax:1
energyRegen:-0.4
dieOnZeroEnergy:true
#原理是通过能量为0单位死亡并通过这个代码还钱
是很简陋的贷款思路,当然,在后续会有更加高级的思路。
```
:::
### generation_resources(G.R_R.S)
#### G.R_R.S-代码简介
代码:generation_resources
中文释义:资源获取 类型:Price型 隶属于:单位统计代码组
::: tip
单位定时获得的资源,可自定义资源。
:::
#### G.R_R.S-演示例子
```ini
[core]
generation_resources:10
#or
generation_resources:credit=10
#常规产出10Credit/1s游戏资金
-----------我是分界线----------
#自定义资源写法
[core]
generation_resources:金属=5
```
### generation_active
#### generation_active-代码简介
代码:generation_active
中文释义:资源获取条件 类型:逻辑布尔型 隶属于:单位统计代码组
::: tip
获取资源条件。可用于受损时无法产出。
:::
#### generation_active-演示例子
```ini
[core]
#1.14写法
generation_resources:金属=5
generation_active: if not self.hp(lessThan=100)
#1.15写法
[core]
generation_resources:金属=5
generation_active: if not self.hp<100
#效果单位低于1000血量可以产出资源
```
### generation_credits
#### generation_credits-代码简介
代码:generation_credits
中文释义:资金获取 类型:整型 隶属于:单位统计代码组
::: tip
生成资源,仅用于默认的资金,也就是铁锈默认的金钱。
:::
#### generation_credits-演示例子
```ini
[core]
generation_credits=5
```
### generation_delay
::: danger
此代码为老旧代码作者Luke不推荐使用。
:::
::: warning
警告请勿使用40以外的数值否则会有视觉Bug。例如使用30资金生成3实际就为6但是一旦这类单位多了游戏的资金显示会出问题。
:::
#### generation_delay-代码简介
代码:generation_delay
中文释义:资金获取时间 类型:整型 隶属于:单位统计代码组
::: tip
多久帧添加添加一次资源(generation_credits指定数值)。
默认值为40一秒为60帧。
:::
#### generation_delay-演示例子
```ini
[core]
generation_delay=40
```
## 第三类-UI和图形代码
### showInEditor
#### showInEditor-代码简介
代码:showInEditor
中文释义:沙盒中可见 类型:布尔型 隶属于:UI和图形代码组
::: tip
设置为false可在沙箱编辑器中隐藏单位。(默认为true)
:::
#### showInEditor-演示例子
```ini
[core]
showInEditor:false
```
### displayText_LANG
#### displayText_{LANG}-代码简介
代码:displayText_{LANG}
中文释义:界面显示文本多语言 类型:字符型 隶属于:UI和图形代码组
::: tip
为单位名称添加多语言支持。此方法并不方便不如设置游戏内部语言文件建议催Luke改。有关常见语言代码请参考下表
:::
| 语言代码 | 所属国家/地区| 语言代码 | 所属国家/地区
|:--------:|:-----------:|:--------:|:-----------:
| zh | (中文通用) | en(可忽略) | (英语通用)
| zh-cn | (简体) | ru | (俄语)
| zh-tw | (台湾) | ja | (日语)
| zh-hk | 中文(香港) | es-ES | (西班牙)
| de | (德语) | fr-FR | 法语(法国)
::: warning
其它自查(此列表并不全),不过你应该不会闲着支持这么多语言。另外英文的语言代码`en`可以忽略,因为英文在软件里为默认语言,故而无需加`en`,当然加了也没事。
:::
如果你不想进行多语言化,你应该直接`displayText:坦克`,而不是`displayText_zh:坦克`,如果你写了`displayText_zh:坦克`<br>你必须再声明一个`displayText:Tank`,否则,游戏会找不到`默认语言缺省值`,将会导致`mod报错而无法运行`。所有可以使用多语言的都有这个检查还请各位Moder留意。若有特别的代码将会在它里面特别提示
#### displayText_{LANG}-演示例子
```ini
[core]
#English
displayText:Tank
#Chinese
displayText_zh:坦克
```
### displayDescription_LANG
#### displayDescription-代码简介
代码:displayDescription_{LANG}
中文释义:界面显示描述 类型:字符型 隶属于:UI和图形代码组
::: tip
单位显示给玩家的单位描述,可以使用多语言,具体使用方法参考在`displayText`的演示说明,这里不再过多讨论。
:::
#### displayDescription-演示例子
```ini
[core]
displayText:坦克
displayDescription:只能对地,弱输出,只能在地上行走。
```
### displayLocaleKey
#### displayLocaleKey-代码简介
代码:displayLocaleKey
中文释义:界面显示内部调用 类型:字符型 隶属于:UI和图形代码组
::: tip
调用内部语言文件的单位名称和说明的翻译文件。用处不大,通常是在`替换原版单位的同时直接调用它的原始描述`。该代码例子需要会拆包,如果你是初学者,该代码了解即可。
:::
#### displayLocaleKey-演示例子
```ini
[core]
displayLocaleKey: units.mechArtillery
```
### displayRadius
#### displayRadius-代码简介
代码:displayRadius 中文释义:单位选择时显示圆圈 类型:整形 隶属于:UI和图形代码组
::: tip
修改选择单位时显示的绿色圆圈,不更改实际碰撞(radius)和可选择范围。
:::
#### displayRadius-演示例子
```ini
[core]
displayRadius:25
```
### uiTargetRadius
#### uiTargetRadius-代码简介
代码:uiTargetRadius 中文释义:为目标时半径 类型:整形 隶属于:UI和图形代码组
::: tip
默认为显示半径值。攻击/回收/等单位时使用的半径
:::
#### uiTargetRadius-演示例子:
```ini
[core]
uiTargetRadius:25
```
### shieldRenderRadius
#### shieldRenderRadius-代码简介
代码:shieldRenderRadius 中文释义:单位护盾显示半径 类型:整形 隶属于:UI和图形代码组
::: tip
护盾绘制半径,默认值比半径大一点。
可以设置在单位上显示更大或更小的护盾圈。
:::
#### shieldRenderRadius-演示例子:
```ini
[core]
shieldRenderRadius:20
```
### shieldDisplayOnlyDeflection
#### shieldDisplayOnlyDeflection-代码简介
代码:shieldDisplayOnlyDeflection 中文释义:护盾只在受攻击时显示 类型:布尔型 隶属于:UI和图形代码组
::: tip
隐藏护盾,只在受到攻击时显示。
:::
#### shieldDisplayOnlyDeflection-演示例子:
```ini
[core]
shieldDisplayOnlyDeflection:true
```
### shieldDeflectionDisplayRate
#### shieldDeflectionDisplayRate-代码简介
代码:shieldDeflectionDisplayRate 中文释义:护盾消失速度 类型:浮点型 隶属于:UI和图形代码组
::: tip
默认值为4。数值越大消失越快。
:::
#### shieldDeflectionDisplayRate-演示例子:
```ini
[core]
shieldDeflectionDisplayRate:3
```
### showOnMinimap
#### showOnMinimap-代码简介
代码:shieldDeflectionDisplayRate 中文释义:显示在小地图上 类型:布尔型 隶属于:UI和图形代码组
::: tip
默认为true。如果为false则在小地图上不显示此单位。
:::
#### showOnMinimap-演示例子:
```ini
[core]
showOnMinimap:true
```
### showOnMinimapToEnemies
#### showOnMinimapToEnemies-代码简介
代码:showOnMinimapToEnemies 中文释义:显示于敌人小地图 类型:布尔型 隶属于:UI和图形代码组
::: tip
是否在敌人小地图上显示。
:::
#### showOnMinimapToEnemies-演示例子:
```ini
[core]
showOnMinimapToEnemies:true
```
### showActionsWithMixedSelectionIfOtherUnitsHaveTag
#### showActionsWithMixedSelectionIfOtherUnitsHaveTag-代码简介
代码:showActionsWithMixedSelectionIfOtherUnitsHaveTag 中文释义:混合所选单位所显示的行为 类型:标签型 隶属于:UI和图形代码组
::: tip
如果选择的单位都包含此处使用的标签,则合并“行为(action)”。比如你的步兵通过部署转化成另一个单位,在混合时可以当作同一个单位处理,不再是默认的谁都无法执行操作。例子如红警的盟军大兵在混合选中后依旧可执行部署或解除。
:::
#### showActionsWithMixedSelectionIfOtherUnitsHaveTag-演示例子
```ini
[core]
showActionsWithMixedSelectionIfOtherUnitsHaveTag:tag_联系
```
## 第四组-构建代码

View File

@ -1 +0,0 @@
xxxx

View File

@ -1,428 +0,0 @@
---
outline: deep
---
# **[LogicBoolean] 逻辑序列组**
> [!ATTENTION] 由于这个组的特殊性,格式不标准,请勿参考这个组的写法。
### 前置知识
#### 布尔值
<font color=orange>布尔值</font>表达“真(true)”或“假(false)”的一个状态。在铁锈中,布尔值(`boolean`)被运用于逻辑判断。
#### 数据类型
数据类型指数据的种类,在铁锈中,不同的数据有不同的类型,不同的数据类型之间通常不能直接进行运算。
|常见数据类型英文 |存储的值类型 |
| -------- | ------------ |
| string | 字符串 |
| number | 整数 |
| float | 浮点数(小数) |
| boolean | 布尔值 |
| unit | 单位 |
<!-- MarkDown表格必须有上方的分割线以告诉浏览器是表格 -->
#### 算数优先级
与数学中计算符一样,铁锈中算数运算符有优先级区别。`%`和`*`和`/`的优先级大于`+`和`-`。
### 比较运算符
#### 如果
代码:if 中文释义:如果
`if`是大部分逻辑运算的开头(select等不需要if),用于在支持逻辑的键引入逻辑判断。
<!-- 若要连续嵌套请直接使用Html原生代码 -->
<div class="alert callout tip">
<p>演示例子:</p>
</div>
```ini
[action]
autoTrigger:if self.maxHp() > memory.emx_hp
```
#### 小于
代码:< 中文释义:小于<br>
小于用于在逻辑布尔值中比较两个数的大小,格式为`数据a < 数据b``a<b`则整个式子的值为`true`否则为`false`
<!-- 自定义的提示框请使用原生Html进行套入 -->
<div class="alert callout note">
<p class="title">
<span class="icon icon-note"></span>要点指示:</p>
</div>
```ini
[action]
autoTrigger:if memory.a < memory.b
```
#### 大于
代码:> 中文释义:大于<br>
同上,格式为`数据a > 数据b`,若`a>b`则整个式子的值为`true`,否则为`false`。
#### 小于等于
代码:<= 中文释义:小于等于<br>
同上,若`a<=b`则整个式子的值为`true`,否则为`false`。
#### 大于等于
代码:>= 中文释义:大于等于<br>
同上,若`a>=b`则整个式子的值为`true`,否则为`false`。
#### 等于
代码:== 中文释义:等于<br>
> [!TIP] 请注意,铁锈中等于的符号为<font color=orange>==</font><font color=orange>=</font>在铁锈中用于赋值或参数。
>
同上,若`a=b`则整个式子的值为`true`,否则为`false`。
#### 不等于
代码:!= 中文释义:不等于<br>
同上,若`a!=b`则整个式子的值为`true`,否则为`false`。
### 逻辑运算符
#### 且
代码:and 中文释义:且<br>
> [!TIP] <font color=orange>and</font>用于连接两个逻辑判断,只有在这两个逻辑判断的值都为<font color=orange>true</font>时,<font color=orange>and</font>的值才为true。
<br>
<!-- 自定义的提示框请使用原生Html进行套入 -->
<div class="alert callout note">
<p class="title">
<span class="icon icon-note"></span>要点指示:</p>
</div>
<!-- 并保证首尾留有一行换行以便Markdown正确解析 -->
```ini
[action]
autoTrigger:if memory.a < memory.b and memory.a > memory.c
# 在这个例子中只有a小于b且a大于c时自动触发才会被触发
```
#### 或
代码:or 中文释义:或<br>
> [!TIP] <font color=orange>or</font>用于连接两个逻辑判断,只要这两个逻辑判断的值有一个为<font color=orange>true</font>时,<font color=orange>or</font>的值就为true。
#### 非
代码:not 中文释义:非<br>
> [!TIP] <font color=orange>not</font>用于将某个逻辑判断的值取反,即`true`变`false``false`变`true`。
> [!NOTE] 多个逻辑运算符同时使用时,优先级为`not>and>or`,同时<font color=orange>支持使用括号改变运算优先级</font>
<br>推荐<font color=orange>在不确定优先级时打括号</font>
<div class="alert callout tip">
<p>演示例子:</p>
</div>
```ini
[action]
autoTrigger:if (memory.a < memory.b or memory.a > memory.c) and not memory.a < memory.d
```
<!-- tabs:start -->
<!-- 换行两个空格 或者 <br> -->
#### **动动脑考考你**
#### 考考你,在上述这个例子中,满足什么条件才会触发?
#### **显示答案-#2**
#### 答案a必须满足小于b和大于c中的一个且a必须小于c自动触发才会被触发。
<!-- tabs:end -->
### 算数运算符
#### 加
代码:+ 中文释义:加<br>
加用于将两个逻辑值相加,得到结果,格式为`数据a + 数据b`。
> [!NOTE] 不同数据类型通常<font color=orange>不能直接进行算数运算</font>,但在部分情况下,<font color=orange>number</font><font color=orange>float</font>类型可以混用(建议<font color=orange>所有数值全部使用float</font>来避免混淆)。
<div class="alert callout tip">
<p>演示例子:</p>
</div>
```ini
[action]
autoTrigger:if (memory.a + memory.c) < memory.b
```
#### 减
代码:- 中文释义:减<br>
减用于将两个逻辑值相减,得到结果,格式为`数据a - 数据b`。
> [!NOTE] 对于<font color=orange>不满足交换律的运算符</font>,需要注意<font color=orange>运算优先级</font>是否正确。由于铁锈本身bug<font color=orange>在数学上正确的优先级不一定在铁锈中正确</font>,因此可能出现减法顺序混乱等问题。
<br>为了避免可能的问题,请尽量在任何<font color=orange>不满足交换律的运算符</font>两边打上括号。
#### 乘
代码:* 中文释义:乘<br>
乘用于将两个逻辑值相乘,得到结果,格式为`数据a * 数据b`。
#### 除
代码:/ 中文释义:除<br>
除用于将两个逻辑值相除,得到结果,格式为`数据a / 数据b`。
#### 求余
代码:% 中文释义:求余(取模)<br>
求余用于获取两个逻辑值中,第一个除第二个的余数,格式为`数据a % 数据b`。
例如`7%3=1(7除3余1)`
### 单位统计
#### 通用统计关键字
单位统计中部分通用的关键字:
1. `greaterThan` 大于
2. `lessThan` 小于
3. `empty`
4. `full`
5. `equalTo` 等于
#### 内置参数
单位统计中部分内置参数返回代码(由于过于简单不单独列出):
1. `self.hp()` 生命值
2. `self.maxHp()` 最大生命值
3. `self.energy()` 能量
4. `self.shield()` 护盾
5. `self.kills()` 击杀数
6. `self.maxEnergy()` 最大能量
7. `self.maxShield()` 最大护盾
8. `self.height()/self.x()` 高度
9. `self.ammo()` 弹药
10. `self.isAmmoEmpty()` 弹药为空(快捷方式:`self.ammo(empty=true)`)
11. `self.ammoIncludingQueued()` 包括队列中的弹药
12. `self.energyIncludingQueued()` 包括队列中的能量
13. `self.isEnergyFull()` 能量满(快捷方式:`self.energy(full=true)`)
14. `self.isEnergyEmpty()` 能量空(快捷方式:`self.energy(empty=true)`)
15. `self.isEnergyRecharing()` 能量充能中
16. `self.playerName()` 玩家名称
17. `self.teamName()` 队伍名称
18. `self.x(),self.y()` x,y坐标
19. `self.dir()` 方向
20. `self.priceCredits()` 金钱价格
21. `self.speed()` 当前速度
22. `self.maxMoveSpeed()` 最大速度
23. `self.id()` 单位id(每个单位的序号)
24. `self.builtAmount()` 建造数量
25. `self.complate()` 自身建造完成
26. `self.teamDefeatedTech()` 队伍失败
27. `self.teamWipedOut()` 队伍全部死亡
28. `self.teamVictory()` 队伍获胜
29. `self.queueSize()` 自身队列大小
30. `self.transportingCount()` 运输数量
31. `self.isAttacking()` 在攻击
32. `self.isOnNeutralTeam()` 是中立队伍
33. `self.isControlledByAI()` 是AI控制
34. `self.isInMap()` 在地图内
35. `game.mapWidth()` 地图宽度
36. `game.mapHeight()` 地图高度
#### self.hasResources()
代码:self.hasResources() 中文释义:有资源 返回类型:boolean<br>
`self.hasResources()` 用于检测自身某资源是否大于等于某数值,格式为`self.hasResources(资源名=数值)`
<div class="alert callout tip">
<p>演示例子:</p>
</div>
```ini
self.hasResources(hp=10,energy=5)
```
#### self.resource()
代码:self.resource() 中文释义:资源 返回类型:float<br>
与`self.hasResources()`不同,`self.resource()`直接返回某个资源的数值。格式为`self.resource(type="资源名")`。
> [!NOTE] 引用资源时,请确保<font color=orange>这个资源在这个单位定义过</font>,否则会报错。
#### self.resource.RESOURCE_TYPE
代码:self.resource.RESOURCE_TYPE 中文释义:资源 返回类型:float<br>
`self.resource.RESOURCE_TYPE`是`self.resource()`的快捷方式。格式为`self.resource.资源名称`,引用更加方便。
#### self.isResourceLargerThan()
代码:self.isResourceLargerThan() 中文释义:资源是否大于 返回类型:boolean<br>
> [!ATTENTION] 此代码为老旧解决方案,不推荐使用。
`self.isResourceLargerThan()`用于比较两种资源的大小。格式为`self.isResourceLargerThan(source=资源A,compareTarget=资源B,byMoreThan=大于资源B数量,multiplyTargetBy=资源B倍数)`
#### self.numberOfQueuedWaypoints()
代码:self.numberOfQueuedWaypoints() 中文释义:队列中路径点数量 返回类型:float<br>
`self.numberOfQueuedWaypoints()`用于返回队列中路径点的数量。格式为`self.numberOfQueuedWaypoints(type="路径点类型")`。
### 单位计时
#### self.hasTakenDemage()
代码:self.hasTakenDemage() 中文释义:受到伤害 返回类型:bool<br>
> [!NOTE] 单位计时部分能返回到最小时间精度为<font color=orange>0.1秒</font>
`self.hasTakenDemage()`用于获取指定时间内是否收到伤害。使用`self.hasTakenDemage(withInSecounds=多少秒内,laterThanSecounds=多少秒后)`格式时返回bool类型。
#### self.timeAlive()
代码:self.timeAlive() 中文释义:存活时间 返回类型:float/bool<br>
`self.timeAlive()`用于获取单位存活时间。使用`self.timeAlive(withInSecounds=多少秒内,laterThanSecounds=多少秒后)`格式时返回bool类型是否符合此范围使用`self.timeAlive()`格式时返回float类型。更推荐使用后者
#### self.lastConverted()
代码:self.lastConverted() 中文释义:最后转换时间 返回类型:float/bool<br>
`self.timeAlive()`用于获取单位上次转换后的时间。使用`self.lastConverted(withInSecounds=多少秒内,laterThanSecounds=多少秒后)`格式时返回bool类型是否符合此范围使用`self.lastConverted()`格式时返回float类型。
#### self.customTimer()
代码:self.customTimer() 中文释义:自定义计时器 返回类型:float/bool<br>
`self.timeAlive()`用于获取自定义计时器的时间。使用`self.customTimer(withInSecounds=多少秒内,laterThanSecounds=多少秒后)`格式时返回bool类型是否符合此范围使用`self.customTimer()`格式时返回float类型。
<div class="alert callout tip">
<p>演示例子:</p>
</div>
```ini
[action]
autoTrigger:if self.customTimer() >= 10
resetCustomTimer:true
showMessageToPlayers:10秒过去了
```
### 杂项
#### thisActionIndex/index()
代码:thisActionIndex/index() 中文释义:索引 返回类型:float(number)<br>
`thisActionIndex/index()`是`alsoTriggerActionRepeat`中当前的索引。例如`alsoTriggerActionRepeat:10`那么index在10次循环中分别为1-10。
#### self.hasFlag()
代码:self.hasFlag() 中文释义:有标志 返回类型:boolean<br>
`self.hasFlag()`用于获取自身是否有<font color=orange>标志</font>,格式为`self.hasFlag(id=数字)`。
> [!NOTE] 不同于<font color=orange>标签tag</font><font color=orange>标志flag</font>是内置的一些<font color=orange>布尔值</font>,无需定义即可直接使用。<br>
> 标签的添加方法为<font color=orange>[action]addResource:flag=1,3-7,13</font>,且只支持<font color=orange>0-31</font>,标签的移除方法与之相反。
#### self.tags()
代码:self.tags() 中文释义:有标签 返回类型:boolean<br>
`self.tags()`用于检测自身是否有某个标签,格式为`self.tags(includes="标签")`。
#### self.globalTeamTags/self.hasGlobalTeamTags()
代码:self.globalTeamTags/self.hasGlobalTeamTags() 中文释义:有全局标签 返回类型:boolean<br>
`self.globalTeamTags/self.hasGlobalTeamTags()`用于检测队伍内是否有某个全局标签,格式为`self.globalTeamTags/self.hasGlobalTeamTags(includes="标签")`
#### self.numberOfConnections()
代码:self.numberOfConnections() 中文释义:连接数 返回类型:float<br>
隐藏代码,用途不明。
#### self.numberOfAttachedUnits()
代码:self.numberOfAttachedUnits() 中文释义:有附属物 返回类型:int/bool<br>
`self.numberOfAttachedUnits()`用于获取自身附属物数量,可以通过`self.numberOfAttachedUnits(withTag="标签")`格式来限制附属物标签。
#### self.hasActiveWaypoint()
代码:self.hasActiveWaypoint() 中文释义:有活动的路径点 返回类型:bool<br>
`self.hasActiveWaypoint()`用于获取自身有无活动的路径点,格式为`self.hasActiveWaypoint(type="路径点类型")`。
> [!NOTE] 路径点类型可以是<font color=orange>move, attackMove, guard, loadInto, loadUp, attack, reclaim, repair, touchTarget, build, follow, setPassiveTarget</font>
#### self.transportingUnitWithTags()
代码:self.transportingUnitWithTags() 中文释义:运输单位中有此标签 返回类型:bool<br>
`self.transportingUnitWithTags()`用于检测自身运输的单位中是否有含有特定标签的单位,格式为`self.transportingUnitWithTags(includes="标签")`。
#### self.hasParent()
代码:self.hasParent() 中文释义:有父单位 返回类型:bool<br>
`self.hasParent()`用于检测自身是否有父单位,且可以通过`self.hasParent(hasTag="标签")`来筛选父单位标签。<br>
通常情况下,附属和被运输单位会有父单位。
#### self.numberOfUnitsInTeam()
代码:self.numberOfUnitsInTeam() 中文释义:队伍中此单位数量 返回类型:float<br>
`self.numberOfUnitsInTeam()`(可省略`self.`)用于检测自身队伍符合条件的单位数量,格式为`self.numberOfUnitsInTeam(withTag="标签",withinRange=此距离内,incompleteBuildings=包含不完整建筑,factoryQueue=包含工厂队列)`
<div class="alert callout tip">
<p>演示例子:</p>
</div>
```ini
self.numberOfUnitsInTeam(withTag="air",withInRange=500,factoryQueue=true)
#有air标签500范围内包含工厂队列中的单位
```
#### self.numberOfUnitsInAllyNotOwnTeam()
代码:self.numberOfUnitsInAllyNotOwnTeam() 中文释义:盟友队伍中此单位数量 返回类型:float<br>
`self.numberOfUnitsInAllyNotOwnTeam()`与`self.numberOfUnitsInTeam()`用法完全相同,区别仅在于前者的查询范围是盟友中。
#### self.numberOfUnitsInEnemyTeam()
代码:self.numberOfUnitsInEnemyTeam() 中文释义:敌方队伍中此单位数量 返回类型:float<br>
`self.numberOfUnitsInEnemyTeam()`与`self.numberOfUnitsInTeam()`用法完全相同,区别仅在于前者的查询范围是敌方中。
#### self.numberOfUnitsInNeutralTeam()
代码:self.numberOfUnitsInNeutralTeam() 中文释义:中立队伍中此单位数量 返回类型:float<br>
`self.numberOfUnitsInNeutralTeam()`与`self.numberOfUnitsInTeam()`用法完全相同,区别仅在于前者的查询范围是中立中。
#### self.numberOfUnitsInAggressiveTeam()
代码:self.numberOfUnitsInAggressiveTeam() 中文释义:敌对中立队伍中此单位数量 返回类型:float<br>
`self.numberOfUnitsInAggressiveTeam()`与`self.numberOfUnitsInTeam()`用法完全相同,区别仅在于前者的查询范围是敌对中立中。
#### self.numberOfUnitsInAllyTeam()
代码:self.numberOfUnitsInAllyTeam() 中文释义:所有队伍中此单位数量 返回类型:float<br>
`self.numberOfUnitsInAllyTeam()`与`self.numberOfUnitsInTeam()`用法完全相同,区别仅在于前者的查询范围是所有中。
#### self.hasUnitInTeam()
代码:self.hasUnitInTeam() 中文释义:队伍中有单位 返回类型:bool<br>
`self.hasUnitInTeam()`与`self.numberOfUnitsInTeam()`格式完全相同,区别在于前者仅查询队伍中有无符合条件的单位,并返回`boolean`类型。
#### self.noUnitInTeam()
代码:self.noUnitInTeam() 中文释义:队伍中无单位 返回类型:bool<br>
`self.noUnitInTeam()`与`self.numberOfUnitsInTeam()`格式完全相同,区别在于前者仅查询队伍中是否无符合条件的单位,并返回`boolean`类型。
#### self.readUnitMemory()
代码:self.readUnitMemory() 中文释义:读取单位内存 返回类型:跟随memory类型<br>
`self.readUnitMemory()`用于获取指定单位内存,格式为`self.readUnitMemory("内存名",type="类型",index=下标(仅当类型是数组时可选填写))`。
> [!NOTE] 在<font color=orange>跨单位读取数组</font>时,如果下标使用了逻辑,无论逻辑值都会返回第零项,<font color=orange>为游戏bug</font>,解决方法可以参考<br>https://www.bilibili.com/video/BV17v4y1r7dV (感谢十山月)<br>
<iframe src="//player.bilibili.com/player.html?aid=566144438&bvid=BV17v4y1r7dV&cid=988997369&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" width="600" height="400"> </iframe>
::: code-group
```ini{7} [如果下标使用了逻辑,无论逻辑值都会返回第零项的解决策略--Thanks 十山月]
[action_copyArry]
text:copyFromUnit
alsoTriggerAction:copyOne
alsoTriggerActionRepeat:memory.target.readUnitMemory("Afloat",type="float[]").size
## 最重要的
alsoTriggerOrQueueActionWithTarget:memory.target
[hiddenAction_copyOne]
setUnitMemory:Afloat[index] = thisActionTarget.readUnitMemory("Afloat",type="float[]")[index]
```
:::
<div class="alert callout tip">
<p>演示例子:</p>
</div>
```ini
if parent.readUnitMemory("boostTarget", type="unit") == self
#如果 父单位内存boostTarget的值等于自己
```

17
rwEngine_code/code.md Normal file
View File

@ -0,0 +1,17 @@
#
# Page 1
<!-- tabs:start -->
## **开始使用RW-Engine**
### 添加RW-Engine到mod
#### 添加RW-Engine到mod
<!-- chat:start -->
#### **shishanyue**
将RW-Engine.zip解压出来后的RW-Engine的文件夹整个放在你的Mod根目录下
<!-- chat:end -->
<!-- tabs:end -->

View File

@ -1,6 +1,6 @@
# CORE
#
# Page 1
<!-- tabs:start -->
@ -12,7 +12,7 @@
### name
#### name-代码简介
代码:name 中文释义:名字 类型:字符型 隶属于:通用代码组
?> 代码:name 中文释义:名字 类型:字符型 隶属于:通用代码组
#### name-要点指示
> [!NOTE] name代码的要点指示
@ -53,9 +53,9 @@ displayDescription_zh:-中文描述
### price
#### price-代码简介
代码:price 中文释义:价格 类型:整数 隶属于:通用代码组
?> 代码:price 中文释义:价格 类型:整数 隶属于:通用代码组
#### price-要点指示
price代码要点指示:
!> price代码要点指示:
定义单位的价格,显示在单位信息中,建造时也以此价格为准。
<!-- chat:start -->
#### **tobby3600**
@ -71,9 +71,9 @@ price:120,石油=80,铁=60
### radius
#### radius-代码简介
代码:radius 中文释义:半径 类型:整数 隶属于:通用代码组
?> 代码:radius 中文释义:半径 类型:整数 隶属于:通用代码组
#### radius-要点指示
radius代码要点指示:
!> radius代码要点指示:
半径定义单位的`实际碰撞体积和显示范围`,在未设置`选择框大小`时,半径决定是单位选择框的大小。
半径的单位是像素(px)。
#### radius-演示例子
@ -84,9 +84,9 @@ radius:20
### mass
#### mass-代码简介
代码:mass 中文释义:质量 类型:整数 隶属于:通用代码组
?> 代码:mass 中文释义:质量 类型:整数 隶属于:通用代码组
#### mass-要点指示
mass代码要点指示:
!> mass代码要点指示:
质量决定单位在各种碰撞时的效果。`质量越大,其他单位越难推动`。
#### mass-演示例子
```ini
@ -96,14 +96,16 @@ mass:2000
### maxHp
#### maxHp-代码简介
代码:maxHp 中文释义:最大生命值 类型:整数 隶属于:通用代码组
?> 代码:maxHp 中文释义:最大生命值 类型:整数 隶属于:通用代码组
#### maxHp-要点指示
!> maxHp代码要点指示:
:::codegroup
**tobby3600**
<!-- chat:start -->
#### **tobby3600**
最大生命值定义单位在不修改它时最多能够有多少血量,单位默认生成时即是这个血量。<br>
maxHp可以通过<font color=orange>单位参考.maxHp()</font>来获取,也可以通过<font color=orange>[action]setUnitStatus</font>进行修改。
:::
<!-- chat:end -->
#### maxHp-演示例子
```ini
@ -113,10 +115,10 @@ maxHp:600
### altNames
#### altNames-代码简介
代码:altNames 中文释义:别名 类型:字符型 隶属于:通用代码组
?> 代码:altNames 中文释义:别名 类型:字符型 隶属于:通用代码组
#### altNames-要点指示
altNames代码要点指示:
!> altNames代码要点指示:
<!-- chat:start -->
#### **JDSALing**
主要在<font color=orange>启用多个自定义Mod</font>进行优先级定义<br>
@ -131,7 +133,7 @@ altNames:ling,tobby3600,coldmint
### class
#### class-代码简介
代码:class 中文释义:类 类型:字符型 隶属于:通用代码组
?> 代码:class 中文释义:类 类型:字符型 隶属于:通用代码组
> [!ATTENTION] 无实际用处,可以删除。<br>
Luke保留供将来使用默认情况下必须为CustomUnitMetadata。由于该代码无实际用途可以忽略该代码<br>
@ -146,7 +148,7 @@ class:CustomUnitMetadata
### strictLevel
#### strictLevel-代码简介
代码:strictLevel 中文释义:严格级别 类型:数字固定型 隶属于:通用代码组
?> 代码:strictLevel 中文释义:严格级别 类型:数字固定型 隶属于:通用代码组
> [!TIP] 建议添加到"all-units.template"以应用于所有单位,进行统一查错。<br>
默认值为0忽略代码重复。设为1时如果当前单位内有重复代码则报错。
@ -159,7 +161,7 @@ strictLevel:1
### techLevel
#### techLevel-代码简介:
代码:techLevel 中文释义:科技等级 类型:数字固定型 隶属于:通用代码组
?> 代码:techLevel 中文释义:科技等级 类型:数字固定型 隶属于:通用代码组
> [!TIP] 早期是用于在<font color=orange>builtFrom</font>的代码,并结合科技等级使用。如果工厂的等级低于单位的目标科技等级,则会在工厂里面隐藏该单位。<br>自铁锈1.09后出现<font color=orange>overrideAndReplace</font>后,该方法则不建议使用。有关于新策略,请参考<font color=orange>overrideAndReplace</font>代码文档指南。<br>
设置单位的科技等级共有3个级别1级GUI显示为绿色2、3级显示为黄色。超过3报错。
@ -173,7 +175,7 @@ techLevel:2
### buildSpeed
#### buildSpeed-代码简介
代码:buildSpeed 中文释义:建造速度 类型:浮点/秒型 隶属于:通用代码组
?> 代码:buildSpeed 中文释义:建造速度 类型:浮点/秒型 隶属于:通用代码组
> [!TIP] 建造此单位需要的时间,填秒。<br>
以前的计算方式为:此处所填时间=1÷(60x你需要的秒)如果定义了工厂速率则需要乘以建造乘数。
@ -191,7 +193,7 @@ buildSpeed:0.0006
#### isBio-代码简介
代码:isBio 中文释义:是生物 类型:布尔型 隶属于:通用代码组
?> 代码:isBio 中文释义:是生物 类型:布尔型 隶属于:通用代码组
> [!TIP] 若设置成true,则会在单位死亡时产生血迹,
图像在drawable/blood_mark.pnghideScorchMarktrue时可以隐藏非生物则为黑色爆炸效果。
@ -204,7 +206,7 @@ isBio:true
### isBug
#### isBug-代码简介
代码:isBug 中文释义:是虫子 类型:布尔型 隶属于:通用代码组
?> 代码:isBug 中文释义:是虫子 类型:布尔型 隶属于:通用代码组
> [!TIP] 若设置成true,则会认定为虫子,用于沙盒中的单独分类。
#### isBug-演示例子:
@ -216,7 +218,7 @@ isBug:true
### isBuilder
#### isBuilder-代码简介
代码:isBuilder 中文释义:是建造者 类型:布尔型 隶属于:通用代码组
?> 代码:isBuilder 中文释义:是建造者 类型:布尔型 隶属于:通用代码组
> [!TIP] 若设置成true,则会需要此单位建造建筑物,则通常需要此代码。
并且默认设为[ai] useAsBuilder。
@ -229,7 +231,7 @@ isBuilder:true
### streamingCost
#### streamingCost-代码简介
代码:streamingCost 中文释义:流式资金 类型:整数型 隶属于:通用代码组
?> 代码:streamingCost 中文释义:流式资金 类型:整数型 隶属于:通用代码组
> [!TIP] 和价格一样,但在建造时逐渐消耗资金,如果在构建过程中资源耗尽,
建造或生产队列将暂停。就像是红警中那样。铁锈默认是预先扣除资金。
@ -244,7 +246,7 @@ streamingCost:1145
#### switchPriceWithStreamingCost-代码简介
代码:switchPriceWithStreamingCost 中文释义:流式资金模式全局切换 类型:布尔型 隶属于:通用代码组
?> 代码:switchPriceWithStreamingCost 中文释义:流式资金模式全局切换 类型:布尔型 隶属于:通用代码组
> [!TIP] 快捷设置为默认资金消耗方式或为流式建造方式。
建议使用模板快速将一个模组为所有单位切换流资源。
@ -255,12 +257,12 @@ streamingCost:1145
switchPriceWithStreamingCost:true
```
以下的代码为`单位统计代码组`,非必须存在的代码,请根据情况自行使用
!> 以下的代码为`单位统计代码组`,非必须存在的代码,请根据情况自行使用
### selfRegenRate
#### selfRegenRate-代码简介
代码:selfRegenRate 中文释义:生命恢复速度 类型:浮点型 隶属于:单位统计代码组
?> 代码:selfRegenRate 中文释义:生命恢复速度 类型:浮点型 隶属于:单位统计代码组
> [!TIP] 此数值决定每帧增加血量。游戏内默认速度下一秒为60逻辑帧而你看到的FPS帧数为渲染帧所以电脑上几百帧和手机上60帧和省电模式下30帧并不影响计算。所以不要写太大。可以写负值用于自毁。
#### selfRegenRate-演示例子:
@ -273,7 +275,7 @@ selfRegenRate:0.5
### maxShield
#### maxShield-代码简介
代码:maxShield 中文释义:护盾值 类型:整型 隶属于:单位统计代码组
?> 代码:maxShield 中文释义:护盾值 类型:整型 隶属于:单位统计代码组
> [!TIP] 单位最大护盾值默认生成时即为此值。如果设置了startShieldAtZero:true则初始为0.
#### maxShield-演示例子:
@ -285,7 +287,7 @@ maxShield:3000
### startShieldAtZero
#### startShieldAtZero-代码简介
代码:startShieldAtZero 中文释义:护盾初始值为0 类型:布尔型 隶属于:单位统计代码组
?> 代码:startShieldAtZero 中文释义:护盾初始值为0 类型:布尔型 隶属于:单位统计代码组
> [!TIP] 如果为true则单位护盾值从0开始增加。
#### startShieldAtZero-演示例子:
@ -298,7 +300,7 @@ startShieldAtZero:true
### shieldRegen
#### shieldRegen-代码简介
代码:shieldRegen 中文释义:护盾恢复速度 类型:浮点型 隶属于:单位统计代码组
?> 代码:shieldRegen 中文释义:护盾恢复速度 类型:浮点型 隶属于:单位统计代码组
> [!TIP] 此数值决定每帧增加护盾值游戏内一秒为60帧所以不要写太大。可以写负值。
#### shieldRegen-演示例子:
@ -311,7 +313,7 @@ shieldRegen:0.5
### energyMax
#### energyMax-代码简介
代码:energyMax 中文释义:能量值 类型:浮点型 隶属于:单位统计代码组
?> 代码:energyMax 中文释义:能量值 类型:浮点型 隶属于:单位统计代码组
> [!TIP] 默认值为0。可以用作炮塔激光防御和行动的弹药的能量。
#### energyMax-演示例子:
@ -323,7 +325,7 @@ energyMax:5
### energyRegen
#### energyRegen-代码简介
代码:energyRegen 中文释义:能量恢复速度 类型:浮点型 隶属于:单位统计代码组
?> 代码:energyRegen 中文释义:能量恢复速度 类型:浮点型 隶属于:单位统计代码组
> [!TIP] 能量每帧恢复速度游戏内一秒为60帧所以不要写太大。可以写负值。
#### energyRegen-演示例子:
@ -336,7 +338,7 @@ energyRegen:0.4
#### energyRegenWhenRecharging-代码简介
代码:energyRegenWhenRecharging
?> 代码:energyRegenWhenRecharging
中文释义:充能时能量恢复速度 类型:浮点型 隶属于:单位统计代码组
> [!TIP] 能量恢复是持续的如果你设置了energyNeedsToRechargeToFull那么攻击时按energyRegen恢复耗尽时的灰条按此处设定值恢复。
@ -351,7 +353,7 @@ energyRegenWhenRecharging:0.4
#### energyNeedsToRechargeToFull-代码简介
代码:energyNeedsToRechargeToFull
?> 代码:energyNeedsToRechargeToFull
中文释义:能量需要充满 类型:布尔型 隶属于:单位统计代码组
> [!TIP] 如果能量耗尽,则需要完全充能才能进行攻击。
@ -365,7 +367,7 @@ energyNeedsToRechargeToFull:true
### armour
#### armour-代码简介
代码:armour
?> 代码:armour
中文释义:装甲 类型:整型 隶属于:单位统计代码组
> [!TIP] 抵消敌方攻击所造成的伤害。
@ -380,7 +382,7 @@ armour:40
### armourMinDamageToKeep
#### armourMinDamageToKeep-代码简介
代码:armour
?> 代码:armour
中文释义:装甲最低伤害 类型:整型 隶属于:单位统计代码组
> [!TIP] 至少造成多少点伤害默认为1.防止护甲太高完全打不动。
@ -395,7 +397,7 @@ armourMinDamageToKeep:2
### borrowResourcesWhileAlive
#### borrowResourcesWhileAlive-代码简介
代码:armour
?> 代码:armour
中文释义:资源活着时借用 类型:Price型 隶属于:单位统计代码组
> [!TIP] 创建时获取这些资源,删除或销毁时将其返回。例如用于电力逻辑,负数供电和正数耗电。
@ -432,7 +434,7 @@ dieOnZeroEnergy:true
### generation_resources
#### generation_resources-代码简介
代码:generation_resources
?> 代码:generation_resources
中文释义:资源获取 类型:Price型 隶属于:单位统计代码组
> [!TIP] 单位定时获得的资源,可自定义资源。
@ -452,7 +454,7 @@ generation_resources:金属=5
### generation_active
#### generation_active-代码简介
代码:generation_active
?> 代码:generation_active
中文释义:资源获取条件 类型:逻辑布尔型 隶属于:单位统计代码组
> [!TIP] 获取资源条件。可用于受损时无法产出。
@ -472,7 +474,7 @@ generation_active: if not self.hp<100
### generation_credits
#### generation_credits-代码简介
代码:generation_credits
?> 代码:generation_credits
中文释义:资金获取 类型:整型 隶属于:单位统计代码组
> [!TIP] 生成资源,仅用于默认的资金,也就是铁锈默认的金钱。
@ -490,7 +492,7 @@ generation_credits=5
#### generation_delay-代码简介
代码:generation_delay
?> 代码:generation_delay
中文释义:资金获取时间 类型:整型 隶属于:单位统计代码组
> [!TIP] 多久帧添加添加一次资源(generation_credits指定数值)。默认值为40一秒为60帧。
@ -505,7 +507,7 @@ generation_delay=40
### showInEditor
#### showInEditor-代码简介
代码:showInEditor
?> 代码:showInEditor
中文释义:沙盒中可见 类型:布尔型 隶属于:UI和图形代码组
> [!TIP] 设置为false可在沙箱编辑器中隐藏单位。(默认为true)
@ -519,7 +521,7 @@ showInEditor:false
### displayText_{LANG}
#### displayText_{LANG}-代码简介
代码:displayText_{LANG}
?> 代码:displayText_{LANG}
中文释义:界面显示文本多语言 类型:字符型 隶属于:UI和图形代码组
> [!TIP] 为单位名称添加多语言支持。此方法并不方便不如设置游戏内部语言文件建议催Luke改。有关常见语言代码请参考下表
@ -534,7 +536,7 @@ showInEditor:false
>[!NOTE] 其它自查(此列表并不全),不过你应该不会闲着支持这么多语言。另外英文的语言代码`en`可以忽略,因为英文在软件里为默认语言,故而无需加`en`,当然加了也没事。
如果你不想进行多语言化,你应该直接`displayText:坦克`,而不是`displayText_zh:坦克`,如果你写了`displayText_zh:坦克`<br>你必须再声明一个`displayText:Tank`,否则,游戏会找不到`默认语言缺省值`,将会导致`mod报错而无法运行`。所有可以使用多语言的都有这个检查还请各位Moder留意。若有特别的代码将会在它里面特别提示
!> 如果你不想进行多语言化,你应该直接`displayText:坦克`,而不是`displayText_zh:坦克`,如果你写了`displayText_zh:坦克`<br>你必须再声明一个`displayText:Tank`,否则,游戏会找不到`默认语言缺省值`,将会导致`mod报错而无法运行`。所有可以使用多语言的都有这个检查还请各位Moder留意。若有特别的代码将会在它里面特别提示
#### displayText_{LANG}-演示例子:
```ini
@ -548,7 +550,7 @@ displayText_zh:坦克
### displayDescription_{LANG}
#### displayDescription-代码简介
代码:displayDescription_{LANG}
?> 代码:displayDescription_{LANG}
中文释义:界面显示描述 类型:字符型 隶属于:UI和图形代码组
> [!TIP] 单位显示给玩家的单位描述,可以使用多语言,具体使用方法参考在`displayText`的演示说明,这里不再过多讨论。
@ -563,7 +565,7 @@ displayDescription:只能对地,弱输出,只能在地上行走。
### displayLocaleKey
#### displayLocaleKey-代码简介
代码:displayLocaleKey
?> 代码:displayLocaleKey
中文释义:界面显示内部调用 类型:字符型 隶属于:UI和图形代码组
> [!TIP] 调用内部语言文件的单位名称和说明的翻译文件。用处不大,通常是在`替换原版单位的同时直接调用它的原始描述`。该代码例子需要会拆包,如果你是初学者,该代码了解即可。
@ -577,7 +579,7 @@ displayLocaleKey: units.mechArtillery
### displayRadius
#### displayRadius-代码简介
代码:displayRadius 中文释义:单位选择时显示圆圈 类型:整形 隶属于:UI和图形代码组
?> 代码:displayRadius 中文释义:单位选择时显示圆圈 类型:整形 隶属于:UI和图形代码组
> [!TIP] 修改选择单位时显示的绿色圆圈,不更改实际碰撞(radius)和可选择范围。
@ -590,7 +592,7 @@ displayRadius:25
### uiTargetRadius
#### uiTargetRadius-代码简介
代码:uiTargetRadius 中文释义:为目标时半径 类型:整形 隶属于:UI和图形代码组
?> 代码:uiTargetRadius 中文释义:为目标时半径 类型:整形 隶属于:UI和图形代码组
> [!TIP] 修改选择单位时显示的绿色圆圈,不更改实际碰撞(radius)和可选择范围。
@ -603,7 +605,7 @@ uiTargetRadius:25
### shieldRenderRadius
#### shieldRenderRadius-代码简介
代码:shieldRenderRadius 中文释义:单位护盾显示半径 类型:整形 隶属于:UI和图形代码组
?> 代码:shieldRenderRadius 中文释义:单位护盾显示半径 类型:整形 隶属于:UI和图形代码组
> [!TIP] 护盾绘制半径,默认值比半径大一点。可以设置在单位上显示更大或更小的护盾圈。
@ -616,7 +618,7 @@ shieldRenderRadius:20
### shieldDisplayOnlyDeflection
#### shieldDisplayOnlyDeflection-代码简介
代码:shieldDisplayOnlyDeflection 中文释义:护盾只在受攻击时显示 类型:布尔型 隶属于:UI和图形代码组
?> 代码:shieldDisplayOnlyDeflection 中文释义:护盾只在受攻击时显示 类型:布尔型 隶属于:UI和图形代码组
> [!TIP] 隐藏护盾,只在受到攻击时显示。
@ -629,7 +631,7 @@ shieldDisplayOnlyDeflection:true
### shieldDeflectionDisplayRate
#### shieldDeflectionDisplayRate-代码简介
代码:shieldDeflectionDisplayRate 中文释义:护盾消失速度 类型:浮点型 隶属于:UI和图形代码组
?> 代码:shieldDeflectionDisplayRate 中文释义:护盾消失速度 类型:浮点型 隶属于:UI和图形代码组
> [!TIP] 默认值为4。数值越大消失越快。
@ -642,7 +644,7 @@ shieldDeflectionDisplayRate:3
### showOnMinimap
#### showOnMinimap-代码简介
代码:shieldDeflectionDisplayRate 中文释义:显示在小地图上 类型:布尔型 隶属于:UI和图形代码组
?> 代码:shieldDeflectionDisplayRate 中文释义:显示在小地图上 类型:布尔型 隶属于:UI和图形代码组
> [!TIP] 默认为true。如果为false则在小地图上不显示此单位。
@ -655,7 +657,7 @@ showOnMinimap:true
### showOnMinimapToEnemies
#### showOnMinimapToEnemies-代码简介
代码:showOnMinimapToEnemies 中文释义:显示于敌人小地图 类型:布尔型 隶属于:UI和图形代码组
?> 代码:showOnMinimapToEnemies 中文释义:显示于敌人小地图 类型:布尔型 隶属于:UI和图形代码组
> [!TIP] 是否在敌人小地图上显示。
@ -668,7 +670,7 @@ showOnMinimapToEnemies:true
### showActionsWithMixedSelectionIfOtherUnitsHaveTag
#### showActionsWithMixedSelectionIfOtherUnitsHaveTag-代码简介
代码:showActionsWithMixedSelectionIfOtherUnitsHaveTag 中文释义:混合所选单位所显示的行为 类型:标签型 隶属于:UI和图形代码组
?> 代码:showActionsWithMixedSelectionIfOtherUnitsHaveTag 中文释义:混合所选单位所显示的行为 类型:标签型 隶属于:UI和图形代码组
> [!TIP] 如果选择的单位都包含此处使用的标签,则合并“行为(action)”。比如你的步兵通过部署转化成另一个单位,在混合时可以当作同一个单位处理,不再是默认的谁都无法执行操作。例子如红警的盟军大兵在混合选中后依旧可执行部署或解除。
@ -708,9 +710,9 @@ showActionsWithMixedSelectionIfOtherUnitsHaveTag:tag_联系
### image
#### image-代码简介
代码:image 中文释义:主体图像 类型:文件(图像文件) 隶属于:通用代码组
?> 代码:image 中文释义:主体图像 类型:文件(图像文件) 隶属于:通用代码组
#### image-要点指示
image代码要点指示:
!> image代码要点指示:
<!-- chat:start -->
#### **tobby3600**
主体图像定义单位的图像。<br>
@ -730,9 +732,9 @@ image:main.png
### image_wreak
#### image_wreak-代码简介
代码:image_wreak 中文释义:死亡图像 类型:文件(图像文件) 隶属于:通用代码组
?> 代码:image_wreak 中文释义:死亡图像 类型:文件(图像文件) 隶属于:通用代码组
#### image_wreak-要点指示
image_wreak代码要点指示:
!> image_wreak代码要点指示:
<!-- chat:start -->
#### **tobby3600**
死亡图像定义单位死亡后产生的图像。<br>
@ -751,9 +753,9 @@ image_wreak:NONE
### imageScale
#### imageScale-代码简介
代码:imageScale 中文释义:图像缩放比例 类型:文件(图像文件) 隶属于:通用代码组
?> 代码:imageScale 中文释义:图像缩放比例 类型:文件(图像文件) 隶属于:通用代码组
#### imageScale-要点指示
imageScale代码要点指示:
!> imageScale代码要点指示:
<!-- chat:start -->
#### **tobby3600**
填写后,铁锈会将图像大小乘以缩放比例。<br>
@ -807,28 +809,28 @@ imageScale:1.2
### text
#### text-代码简介
代码:text 中文释义:显示文本 类型:字符串 隶属于:行为代码组
支持%动态显示其内容为该action的名称
?> 代码:text 中文释义:显示文本 类型:字符串 隶属于:行为代码组
!> 支持%动态显示其内容为该action的名称
### buildSpeed
#### buildSpeed-代码简介
代码:buildSpeed 中文释义:建造速度 类型:s/帧 隶属于:行为代码组
执行此动作所需要的时间。使用秒作为单位更好。例子buildSpeed:0.3s
?> 代码:buildSpeed 中文释义:建造速度 类型:s/帧 隶属于:行为代码组
!> 执行此动作所需要的时间。使用秒作为单位更好。例子buildSpeed:0.3s
### alsoTriggerAction
#### alsoTriggerAction-代码简介
代码:alsoTriggerAction 中文释义:也执行动作 类型:action refs 隶属于:行为代码组
执行完此动作后执行其他动作忽略行动的buildSpeed,直接执行。
?> 代码:alsoTriggerAction 中文释义:也执行动作 类型:action refs 隶属于:行为代码组
!> 执行完此动作后执行其他动作忽略行动的buildSpeed,直接执行。
### requireConditional
#### requireConditional-代码简介
代码:requireConditional 中文释义:需要条件 类型:LogicBoolean 隶属于:行为代码组
如果结果为false,则不执行该action。
?> 代码:requireConditional 中文释义:需要条件 类型:LogicBoolean 隶属于:行为代码组
!> 如果结果为false,则不执行该action。
### alsoTriggerActionRepeat
#### alsoTriggerActionRepeat-代码简介
代码:alsoTriggerActionRepeat 中文释义:循环次数 类型:number 隶属于:行为代码组
重复alsoTriggerAction调用x次,每次重复时改变索引(+1),索引可在被调用的action使用 用于创建循环或处理数组 动态数字
?> 代码:alsoTriggerActionRepeat 中文释义:循环次数 类型:number 隶属于:行为代码组
!> 重复alsoTriggerAction调用x次,每次重复时改变索引(+1),索引可在被调用的action使用 用于创建循环或处理数组 动态数字
#### alsoTriggerActionRepeat-演示例子
```ini
[hiddenAction_A]
@ -841,8 +843,8 @@ B会被执行10次打印结果为0~9
### setUnitMemory
#### setUnitMemory-代码简介
代码:setUnitMemory 中文释义:设置单位内存 隶属于:行为代码组
设置单位的memory的值。
?> 代码:setUnitMemory 中文释义:设置单位内存 隶属于:行为代码组
!> 设置单位的memory的值。
#### setUnitMemory-演示例子
```ini
[core]
@ -853,23 +855,23 @@ setUnitMemory:str="hello shishanyue"
### alsoQueueAction
#### alsoQueueAction-代码简介
代码:alsoQueueAction 中文释义:也添加进队列 类型:action refs 隶属于:行为代码组
将另一个动作添加到序列中。不忽略行动的buildSpeed
?> 代码:alsoQueueAction 中文释义:也添加进队列 类型:action refs 隶属于:行为代码组
!> 将另一个动作添加到序列中。不忽略行动的buildSpeed
### removeAllQueuedItemsWithoutRefund
#### removeAllQueuedItemsWithoutRefund-代码简介
代码:removeAllQueuedItemsWithoutRefund 中文释义:取消所有仍在序列中等待执行的行为 类型:Boolean 隶属于:行为代码组
removeAllQueuedItemsWithoutRefund:true
?> 代码:removeAllQueuedItemsWithoutRefund 中文释义:取消所有仍在序列中等待执行的行为 类型:Boolean 隶属于:行为代码组
!> removeAllQueuedItemsWithoutRefund:true
### alsoTriggerOrQueueActionWithTarget
#### alsoTriggerOrQueueActionWithTarget-代码简介
代码:alsoTriggerOrQueueActionWithTarget 中文释义:更改其他触发动作的目标 类型:unit ref 隶属于:行为代码组
具体实例可以看十山月打广告https://www.bilibili.com/video/BV17v4y1r7dV/
?> 代码:alsoTriggerOrQueueActionWithTarget 中文释义:更改其他触发动作的目标 类型:unit ref 隶属于:行为代码组
!> 具体实例可以看十山月打广告https://www.bilibili.com/video/BV17v4y1r7dV/
### autoTriggerOnEvent
#### autoTriggerOnEvent-代码简介
代码:autoTriggerOnEvent 中文释义:自动触发事件 类型:字符串 隶属于:行为代码组
满足此条件则自动触发。
?> 代码:autoTriggerOnEvent 中文释义:自动触发事件 类型:字符串 隶属于:行为代码组
!> 满足此条件则自动触发。
|参数表 |参数表 |
| -------- | ------------ |
@ -898,43 +900,43 @@ removeAllQueuedItemsWithoutRefund:true
### resetCustomTimer
#### resetCustomTimer-代码简介
代码:resetCustomTimer 中文释义:重置自定义计时器 类型:Boolean 隶属于:行为代码组
重置自定义计时器与self.customTimer() resetCustomTimer:true
?> 代码:resetCustomTimer 中文释义:重置自定义计时器 类型:Boolean 隶属于:行为代码组
!> 重置自定义计时器与self.customTimer() resetCustomTimer:true
### teleportTo
#### teleportTo-代码简介
代码:teleportTo 中文释义:传送到 类型:unit ref 隶属于:行为代码组
传送到指定单位。teleportTo:self.customTarget1
?> 代码:teleportTo 中文释义:传送到 类型:unit ref 隶属于:行为代码组
!> 传送到指定单位。teleportTo:self.customTarget1
### fireTurretXAtGround
#### fireTurretXAtGround-代码简介
代码:fireTurretXAtGround 中文释义:指定攻击地面炮塔 类型:字符串 隶属于:行为代码组
使用此炮塔攻击玩家所指定的地面。
?> 代码:fireTurretXAtGround 中文释义:指定攻击地面炮塔 类型:字符串 隶属于:行为代码组
!> 使用此炮塔攻击玩家所指定的地面。
### fireTurretXAtGround_withProjectile
#### fireTurretXAtGround_withProjectile-代码简介
代码:fireTurretXAtGround_withProjectile 中文释义:指定攻击地面抛射体 类型:字符串 隶属于:行为代码组
设定使用的抛射体,如果不设置则为炮塔默认的抛射体。
?> 代码:fireTurretXAtGround_withProjectile 中文释义:指定攻击地面抛射体 类型:字符串 隶属于:行为代码组
!> 设定使用的抛射体,如果不设置则为炮塔默认的抛射体。
### fireTurretXAtGround_withTarget
#### fireTurretXAtGround_withTarget-代码简介
代码:fireTurretXAtGround_withTarget 中文释义:指定攻击目标 类型:unit ref/marker 隶属于:行为代码组
炮塔瞄准指示的单位或标记的位置发射
?> 代码:fireTurretXAtGround_withTarget 中文释义:指定攻击目标 类型:unit ref/marker 隶属于:行为代码组
!> 炮塔瞄准指示的单位或标记的位置发射
### fireTurretXAtGround_withOffset
#### fireTurretXAtGround_withOffset-代码简介
代码:fireTurretXAtGround_withTarget 中文释义:指定攻击地面坐标 类型:point 隶属于:行为代码组
攻击指定坐标所在地面,不需要手动选择
?> 代码:fireTurretXAtGround_withTarget 中文释义:指定攻击地面坐标 类型:point 隶属于:行为代码组
!> 攻击指定坐标所在地面,不需要手动选择
### fireTurretXAtGround_count
#### fireTurretXAtGround_count-代码简介
代码:fireTurretXAtGround_withTarget 中文释义:指定攻击地面数量 类型:number 隶属于:行为代码组
设置发射的抛射体数量默认为1。fireTurretXAtGround_count:10
?> 代码:fireTurretXAtGround_withTarget 中文释义:指定攻击地面数量 类型:number 隶属于:行为代码组
!> 设置发射的抛射体数量默认为1。fireTurretXAtGround_count:10
### fireTurretXAtGround_onlyOverPassableTileOf
#### fireTurretXAtGround_onlyOverPassableTileOf-代码简介
代码:fireTurretXAtGround_withTarget 中文释义:指定攻击地面类型 类型:enum 隶属于:行为代码组
设置手动选择的地面需要满足这种运动方式。列表:无,陆地,建筑,空军,水。两栖,跨悬崖,跨悬崖和度水。
?> 代码:fireTurretXAtGround_withTarget 中文释义:指定攻击地面类型 类型:enum 隶属于:行为代码组
!> 设置手动选择的地面需要满足这种运动方式。列表:无,陆地,建筑,空军,水。两栖,跨悬崖,跨悬崖和度水。
NONE LAND BUILDING AIR WATER HOVER OVER_CLIFF OVER_CLIFF_WATER
@ -971,11 +973,11 @@ projectile:1
.............
[projectile_2]
```
fireTurretXAtGround_withTarget同时只能有一个fireTurretXAtGround_withOffset。如果俩的没有则是手动选择攻击点。
!> fireTurretXAtGround_withTarget同时只能有一个fireTurretXAtGround_withOffset。如果俩的没有则是手动选择攻击点。
当使用fireTurretXAtGround_withProjectile重新指定抛射体后使用的不再是fireTurretXAtGround的炮塔的抛射体。
!> 当使用fireTurretXAtGround_withProjectile重新指定抛射体后使用的不再是fireTurretXAtGround的炮塔的抛射体。
fireTurretX中的"X"是可以替换成数字。
!> fireTurretX中的"X"是可以替换成数字。
```ini
[hiddenAction_fire]
fireTurret1AtGround:1
@ -995,24 +997,24 @@ projectile:2
### description
#### description-代码简介
代码:description 中文释义:显示文本介绍 类型:字符串 隶属于:行为代码组
?> 代码:description 中文释义:显示文本介绍 类型:字符串 隶属于:行为代码组
支持%动态显示其内容为点击action后显示的文本
!> 支持%动态显示其内容为点击action后显示的文本
### Message
#### Message-代码简介
代码:sendMessageTo 中文释义:接收message的对象 类型:unit 隶属于:行为代码组
?> 代码:sendMessageTo 中文释义:接收message的对象 类型:unit 隶属于:行为代码组
将message发送给该对象
!> 将message发送给该对象
代码:sendMessageWithTags 中文释义:message附带的tag 类型:tagList 隶属于:行为代码组
?> 代码:sendMessageWithTags 中文释义:message附带的tag 类型:tagList 隶属于:行为代码组
与[core]的tags类似,以逗号分割每个tag,在接受单位中使用autoTriggerOnEvent:newMessage(withTag=xxx)接收
!> 与[core]的tags类似,以逗号分割每个tag,在接受单位中使用autoTriggerOnEvent:newMessage(withTag=xxx)接收
代码:sendMessageWithData 中文释义:message附带的数据 类型:variableList 隶属于:行为代码组
?> 代码:sendMessageWithData 中文释义:message附带的数据 类型:variableList 隶属于:行为代码组
发送的数据名不是memory,但数据可以是memory
!> 发送的数据名不是memory,但数据可以是memory
#### Message-演示例子
A单位
@ -1085,7 +1087,7 @@ showMessageToAllPlayers:ababab
### 比较运算符
#### 如果
代码:if 中文释义:如果
?> 代码:if 中文释义:如果
`if`是大部分逻辑运算的开头(select等不需要if),用于在支持逻辑的键引入逻辑判断。
<!-- 若要连续嵌套请直接使用Html原生代码 -->
@ -1099,7 +1101,7 @@ autoTrigger:if self.maxHp() > memory.emx_hp
```
#### 小于
代码:< 中文释义:小于<br>
?> 代码:< 中文释义:小于<br>
小于用于在逻辑布尔值中比较两个数的大小,格式为`数据a < 数据b``a<b`则整个式子的值为`true`否则为`false`
<!-- 自定义的提示框请使用原生Html进行套入 -->
@ -1115,31 +1117,31 @@ autoTrigger:if memory.a < memory.b
```
#### 大于
代码:> 中文释义:大于<br>
?> 代码:> 中文释义:大于<br>
同上,格式为`数据a > 数据b`,若`a>b`则整个式子的值为`true`,否则为`false`。
#### 小于等于
代码:<= 中文释义:小于等于<br>
?> 代码:<= 中文释义:小于等于<br>
同上,若`a<=b`则整个式子的值为`true`,否则为`false`。
#### 大于等于
代码:>= 中文释义:大于等于<br>
?> 代码:>= 中文释义:大于等于<br>
同上,若`a>=b`则整个式子的值为`true`,否则为`false`。
#### 等于
代码:== 中文释义:等于<br>
?> 代码:== 中文释义:等于<br>
> [!TIP] 请注意,铁锈中等于的符号为<font color=orange>==</font><font color=orange>=</font>在铁锈中用于赋值或参数。
>
同上,若`a=b`则整个式子的值为`true`,否则为`false`。
#### 不等于
代码:!= 中文释义:不等于<br>
?> 代码:!= 中文释义:不等于<br>
同上,若`a!=b`则整个式子的值为`true`,否则为`false`。
### 逻辑运算符
#### 且
代码:and 中文释义:且<br>
?> 代码:and 中文释义:且<br>
> [!TIP] <font color=orange>and</font>用于连接两个逻辑判断,只有在这两个逻辑判断的值都为<font color=orange>true</font>时,<font color=orange>and</font>的值才为true。
<br>
@ -1157,11 +1159,11 @@ autoTrigger:if memory.a < memory.b and memory.a > memory.c
```
#### 或
代码:or 中文释义:或<br>
?> 代码:or 中文释义:或<br>
> [!TIP] <font color=orange>or</font>用于连接两个逻辑判断,只要这两个逻辑判断的值有一个为<font color=orange>true</font>时,<font color=orange>or</font>的值就为true。
#### 非
代码:not 中文释义:非<br>
?> 代码:not 中文释义:非<br>
> [!TIP] <font color=orange>not</font>用于将某个逻辑判断的值取反,即`true`变`false``false`变`true`。
> [!NOTE] 多个逻辑运算符同时使用时,优先级为`not>and>or`,同时<font color=orange>支持使用括号改变运算优先级</font>
@ -1189,7 +1191,7 @@ autoTrigger:if (memory.a < memory.b or memory.a > memory.c) and not memory.a < m
### 算数运算符
#### 加
代码:+ 中文释义:加<br>
?> 代码:+ 中文释义:加<br>
加用于将两个逻辑值相加,得到结果,格式为`数据a + 数据b`。
@ -1205,7 +1207,7 @@ autoTrigger:if (memory.a + memory.c) < memory.b
```
#### 减
代码:- 中文释义:减<br>
?> 代码:- 中文释义:减<br>
减用于将两个逻辑值相减,得到结果,格式为`数据a - 数据b`。
@ -1213,17 +1215,17 @@ autoTrigger:if (memory.a + memory.c) < memory.b
<br>为了避免可能的问题,请尽量在任何<font color=orange>不满足交换律的运算符</font>两边打上括号。
#### 乘
代码:* 中文释义:乘<br>
?> 代码:* 中文释义:乘<br>
乘用于将两个逻辑值相乘,得到结果,格式为`数据a * 数据b`。
#### 除
代码:/ 中文释义:除<br>
?> 代码:/ 中文释义:除<br>
除用于将两个逻辑值相除,得到结果,格式为`数据a / 数据b`。
#### 求余
代码:% 中文释义:求余(取模)<br>
?> 代码:% 中文释义:求余(取模)<br>
求余用于获取两个逻辑值中,第一个除第二个的余数,格式为`数据a % 数据b`。
例如`7%3=1(7除3余1)`
@ -1278,7 +1280,7 @@ autoTrigger:if (memory.a + memory.c) < memory.b
36. `game.mapHeight()` 地图高度
#### self.hasResources()
代码:self.hasResources() 中文释义:有资源 返回类型:boolean<br>
?> 代码:self.hasResources() 中文释义:有资源 返回类型:boolean<br>
`self.hasResources()` 用于检测自身某资源是否大于等于某数值,格式为`self.hasResources(资源名=数值)`
@ -1291,50 +1293,50 @@ self.hasResources(hp=10,energy=5)
```
#### self.resource()
代码:self.resource() 中文释义:资源 返回类型:float<br>
?> 代码:self.resource() 中文释义:资源 返回类型:float<br>
与`self.hasResources()`不同,`self.resource()`直接返回某个资源的数值。格式为`self.resource(type="资源名")`。
> [!NOTE] 引用资源时,请确保<font color=orange>这个资源在这个单位定义过</font>,否则会报错。
#### self.resource.RESOURCE_TYPE
代码:self.resource.RESOURCE_TYPE 中文释义:资源 返回类型:float<br>
?> 代码:self.resource.RESOURCE_TYPE 中文释义:资源 返回类型:float<br>
`self.resource.RESOURCE_TYPE`是`self.resource()`的快捷方式。格式为`self.resource.资源名称`,引用更加方便。
#### self.isResourceLargerThan()
代码:self.isResourceLargerThan() 中文释义:资源是否大于 返回类型:boolean<br>
?> 代码:self.isResourceLargerThan() 中文释义:资源是否大于 返回类型:boolean<br>
> [!ATTENTION] 此代码为老旧解决方案,不推荐使用。
`self.isResourceLargerThan()`用于比较两种资源的大小。格式为`self.isResourceLargerThan(source=资源A,compareTarget=资源B,byMoreThan=大于资源B数量,multiplyTargetBy=资源B倍数)`
#### self.numberOfQueuedWaypoints()
代码:self.numberOfQueuedWaypoints() 中文释义:队列中路径点数量 返回类型:float<br>
?> 代码:self.numberOfQueuedWaypoints() 中文释义:队列中路径点数量 返回类型:float<br>
`self.numberOfQueuedWaypoints()`用于返回队列中路径点的数量。格式为`self.numberOfQueuedWaypoints(type="路径点类型")`。
### 单位计时
#### self.hasTakenDemage()
代码:self.hasTakenDemage() 中文释义:受到伤害 返回类型:bool<br>
?> 代码:self.hasTakenDemage() 中文释义:受到伤害 返回类型:bool<br>
> [!NOTE] 单位计时部分能返回到最小时间精度为<font color=orange>0.1秒</font>
`self.hasTakenDemage()`用于获取指定时间内是否收到伤害。使用`self.hasTakenDemage(withInSecounds=多少秒内,laterThanSecounds=多少秒后)`格式时返回bool类型。
#### self.timeAlive()
代码:self.timeAlive() 中文释义:存活时间 返回类型:float/bool<br>
?> 代码:self.timeAlive() 中文释义:存活时间 返回类型:float/bool<br>
`self.timeAlive()`用于获取单位存活时间。使用`self.timeAlive(withInSecounds=多少秒内,laterThanSecounds=多少秒后)`格式时返回bool类型是否符合此范围使用`self.timeAlive()`格式时返回float类型。更推荐使用后者
#### self.lastConverted()
代码:self.lastConverted() 中文释义:最后转换时间 返回类型:float/bool<br>
?> 代码:self.lastConverted() 中文释义:最后转换时间 返回类型:float/bool<br>
`self.timeAlive()`用于获取单位上次转换后的时间。使用`self.lastConverted(withInSecounds=多少秒内,laterThanSecounds=多少秒后)`格式时返回bool类型是否符合此范围使用`self.lastConverted()`格式时返回float类型。
#### self.customTimer()
代码:self.customTimer() 中文释义:自定义计时器 返回类型:float/bool<br>
?> 代码:self.customTimer() 中文释义:自定义计时器 返回类型:float/bool<br>
`self.timeAlive()`用于获取自定义计时器的时间。使用`self.customTimer(withInSecounds=多少秒内,laterThanSecounds=多少秒后)`格式时返回bool类型是否符合此范围使用`self.customTimer()`格式时返回float类型。
@ -1352,12 +1354,12 @@ showMessageToPlayers:10秒过去了
### 杂项
#### thisActionIndex/index()
代码:thisActionIndex/index() 中文释义:索引 返回类型:float(number)<br>
?> 代码:thisActionIndex/index() 中文释义:索引 返回类型:float(number)<br>
`thisActionIndex/index()`是`alsoTriggerActionRepeat`中当前的索引。例如`alsoTriggerActionRepeat:10`那么index在10次循环中分别为1-10。
#### self.hasFlag()
代码:self.hasFlag() 中文释义:有标志 返回类型:boolean<br>
?> 代码:self.hasFlag() 中文释义:有标志 返回类型:boolean<br>
`self.hasFlag()`用于获取自身是否有<font color=orange>标志</font>,格式为`self.hasFlag(id=数字)`。
@ -1365,45 +1367,45 @@ showMessageToPlayers:10秒过去了
> 标签的添加方法为<font color=orange>[action]addResource:flag=1,3-7,13</font>,且只支持<font color=orange>0-31</font>,标签的移除方法与之相反。
#### self.tags()
代码:self.tags() 中文释义:有标签 返回类型:boolean<br>
?> 代码:self.tags() 中文释义:有标签 返回类型:boolean<br>
`self.tags()`用于检测自身是否有某个标签,格式为`self.tags(includes="标签")`。
#### self.globalTeamTags/self.hasGlobalTeamTags()
代码:self.globalTeamTags/self.hasGlobalTeamTags() 中文释义:有全局标签 返回类型:boolean<br>
?> 代码:self.globalTeamTags/self.hasGlobalTeamTags() 中文释义:有全局标签 返回类型:boolean<br>
`self.globalTeamTags/self.hasGlobalTeamTags()`用于检测队伍内是否有某个全局标签,格式为`self.globalTeamTags/self.hasGlobalTeamTags(includes="标签")`
#### self.numberOfConnections()
代码:self.numberOfConnections() 中文释义:连接数 返回类型:float<br>
?> 代码:self.numberOfConnections() 中文释义:连接数 返回类型:float<br>
隐藏代码,用途不明。
#### self.numberOfAttachedUnits()
代码:self.numberOfAttachedUnits() 中文释义:有附属物 返回类型:int/bool<br>
?> 代码:self.numberOfAttachedUnits() 中文释义:有附属物 返回类型:int/bool<br>
`self.numberOfAttachedUnits()`用于获取自身附属物数量,可以通过`self.numberOfAttachedUnits(withTag="标签")`格式来限制附属物标签。
#### self.hasActiveWaypoint()
代码:self.hasActiveWaypoint() 中文释义:有活动的路径点 返回类型:bool<br>
?> 代码:self.hasActiveWaypoint() 中文释义:有活动的路径点 返回类型:bool<br>
`self.hasActiveWaypoint()`用于获取自身有无活动的路径点,格式为`self.hasActiveWaypoint(type="路径点类型")`。
> [!NOTE] 路径点类型可以是<font color=orange>move, attackMove, guard, loadInto, loadUp, attack, reclaim, repair, touchTarget, build, follow, setPassiveTarget</font>
#### self.transportingUnitWithTags()
代码:self.transportingUnitWithTags() 中文释义:运输单位中有此标签 返回类型:bool<br>
?> 代码:self.transportingUnitWithTags() 中文释义:运输单位中有此标签 返回类型:bool<br>
`self.transportingUnitWithTags()`用于检测自身运输的单位中是否有含有特定标签的单位,格式为`self.transportingUnitWithTags(includes="标签")`。
#### self.hasParent()
代码:self.hasParent() 中文释义:有父单位 返回类型:bool<br>
?> 代码:self.hasParent() 中文释义:有父单位 返回类型:bool<br>
`self.hasParent()`用于检测自身是否有父单位,且可以通过`self.hasParent(hasTag="标签")`来筛选父单位标签。<br>
通常情况下,附属和被运输单位会有父单位。
#### self.numberOfUnitsInTeam()
代码:self.numberOfUnitsInTeam() 中文释义:队伍中此单位数量 返回类型:float<br>
?> 代码:self.numberOfUnitsInTeam() 中文释义:队伍中此单位数量 返回类型:float<br>
`self.numberOfUnitsInTeam()`(可省略`self.`)用于检测自身队伍符合条件的单位数量,格式为`self.numberOfUnitsInTeam(withTag="标签",withinRange=此距离内,incompleteBuildings=包含不完整建筑,factoryQueue=包含工厂队列)`
@ -1417,42 +1419,42 @@ self.numberOfUnitsInTeam(withTag="air",withInRange=500,factoryQueue=true)
```
#### self.numberOfUnitsInAllyNotOwnTeam()
代码:self.numberOfUnitsInAllyNotOwnTeam() 中文释义:盟友队伍中此单位数量 返回类型:float<br>
?> 代码:self.numberOfUnitsInAllyNotOwnTeam() 中文释义:盟友队伍中此单位数量 返回类型:float<br>
`self.numberOfUnitsInAllyNotOwnTeam()`与`self.numberOfUnitsInTeam()`用法完全相同,区别仅在于前者的查询范围是盟友中。
#### self.numberOfUnitsInEnemyTeam()
代码:self.numberOfUnitsInEnemyTeam() 中文释义:敌方队伍中此单位数量 返回类型:float<br>
?> 代码:self.numberOfUnitsInEnemyTeam() 中文释义:敌方队伍中此单位数量 返回类型:float<br>
`self.numberOfUnitsInEnemyTeam()`与`self.numberOfUnitsInTeam()`用法完全相同,区别仅在于前者的查询范围是敌方中。
#### self.numberOfUnitsInNeutralTeam()
代码:self.numberOfUnitsInNeutralTeam() 中文释义:中立队伍中此单位数量 返回类型:float<br>
?> 代码:self.numberOfUnitsInNeutralTeam() 中文释义:中立队伍中此单位数量 返回类型:float<br>
`self.numberOfUnitsInNeutralTeam()`与`self.numberOfUnitsInTeam()`用法完全相同,区别仅在于前者的查询范围是中立中。
#### self.numberOfUnitsInAggressiveTeam()
代码:self.numberOfUnitsInAggressiveTeam() 中文释义:敌对中立队伍中此单位数量 返回类型:float<br>
?> 代码:self.numberOfUnitsInAggressiveTeam() 中文释义:敌对中立队伍中此单位数量 返回类型:float<br>
`self.numberOfUnitsInAggressiveTeam()`与`self.numberOfUnitsInTeam()`用法完全相同,区别仅在于前者的查询范围是敌对中立中。
#### self.numberOfUnitsInAllyTeam()
代码:self.numberOfUnitsInAllyTeam() 中文释义:所有队伍中此单位数量 返回类型:float<br>
?> 代码:self.numberOfUnitsInAllyTeam() 中文释义:所有队伍中此单位数量 返回类型:float<br>
`self.numberOfUnitsInAllyTeam()`与`self.numberOfUnitsInTeam()`用法完全相同,区别仅在于前者的查询范围是所有中。
#### self.hasUnitInTeam()
代码:self.hasUnitInTeam() 中文释义:队伍中有单位 返回类型:bool<br>
?> 代码:self.hasUnitInTeam() 中文释义:队伍中有单位 返回类型:bool<br>
`self.hasUnitInTeam()`与`self.numberOfUnitsInTeam()`格式完全相同,区别在于前者仅查询队伍中有无符合条件的单位,并返回`boolean`类型。
#### self.noUnitInTeam()
代码:self.noUnitInTeam() 中文释义:队伍中无单位 返回类型:bool<br>
?> 代码:self.noUnitInTeam() 中文释义:队伍中无单位 返回类型:bool<br>
`self.noUnitInTeam()`与`self.numberOfUnitsInTeam()`格式完全相同,区别在于前者仅查询队伍中是否无符合条件的单位,并返回`boolean`类型。
#### self.readUnitMemory()
代码:self.readUnitMemory() 中文释义:读取单位内存 返回类型:跟随memory类型<br>
?> 代码:self.readUnitMemory() 中文释义:读取单位内存 返回类型:跟随memory类型<br>
`self.readUnitMemory()`用于获取指定单位内存,格式为`self.readUnitMemory("内存名",type="类型",index=下标(仅当类型是数组时可选填写))`。

17
unit_code/index.md Normal file
View File

@ -0,0 +1,17 @@
<div style="display:flex;align-content: flex-start;flex-wrap: nowrap;flex-direction: row;justify-content: center;">
<img src="https://rwapi-code.netlify.app/images/title.png">
</div>
<b><font size="5px" color="#000">&nbsp;&nbsp;&nbsp;&nbsp;这是来自于1.15的单位代码表Beta版本目前该代码表包含了全部1.15单位代码,<br><br>
&nbsp;&nbsp;&nbsp;&nbsp;用户可以根据自己的编码能力进行学习我建议各位从浅到深慢慢学习并且一定要动手去写Mod,不能一直看着代码表而不去动手。否则可能会事倍功半。<br>
&nbsp;&nbsp;&nbsp;&nbsp;总之RTS-API-CODE欢迎各位的到来。以及本站点仍然处于建设中如有代码遗漏之处<br>
&nbsp;&nbsp;&nbsp;&nbsp;请您指出并批评纠正。</font></b>
<a href="#/unit_code/1.15/code.md">
<h2 style="color:green">点击我,开始熟悉单位代码表!</h2>
</a>