Compare commits

...

141 Commits

Author SHA1 Message Date
78a8dbea6b 修复配色 2023-08-22 23:23:27 +08:00
7bd3b27c5e Update package.json 2023-08-22 23:08:36 +08:00
477a5ae205 update attach and add cos 2023-08-22 23:07:08 +08:00
tobby3600
e161fac3df
Merge pull request #38 from tobby3600/main
逻辑节格式修复1
2023-08-21 18:31:11 +08:00
Tobby
b7d9937d69 格式修复1 2023-08-21 18:28:07 +08:00
def204b587 fixe 2023-08-16 23:56:05 +08:00
8be698bdf3 Reset Css 2023-08-16 23:53:25 +08:00
38229f5f1e Update custom.css 2023-08-16 23:49:11 +08:00
65a4363053 Fixed Png 2023-08-16 23:45:45 +08:00
61abf3cf59 Update custom.css 2023-08-16 23:39:55 +08:00
f5d7918ac4 修正主题风格 2023-08-15 00:49:01 +08:00
mason369
47af6c1e96 Update package.json 2023-08-14 22:36:20 +08:00
mason369
3cf68705c1 Update build-and-deploy.yml 2023-08-14 22:32:58 +08:00
mason369
0d135baed7 Update build-and-deploy.yml 2023-08-14 22:30:17 +08:00
mason369
cfc374db91 Update build-and-deploy.yml 2023-08-14 22:19:43 +08:00
mason369
7e1489653e Update build-and-deploy.yml 2023-08-14 22:17:43 +08:00
mason369
30ca5b7247 Update build-and-deploy.yml 2023-08-14 22:16:11 +08:00
mason369
e3755bcd06 Merge branch 'main' of https://github.com/LingASDJ/RW-API-Code 2023-08-14 22:14:48 +08:00
mason369
f8fad65fae fix path 2023-08-14 22:14:33 +08:00
34ce8665c6 Update 0.2 2023-08-14 22:13:46 +08:00
1049d3d3d9 Merge branch 'main' of https://github.com/LingASDJ/RW-API-Code 2023-08-14 21:27:20 +08:00
ddec4c865e Update release.yml 2023-08-14 21:25:44 +08:00
JDSA Ling
cfd1fea6b1
Merge pull request #37 from WisenextTime/main
fixed some mistakes
2023-08-14 21:24:02 +08:00
JDSA Ling
4d44e5bfcc
Merge pull request #35 from LingASDJ/release-please--branches--main--components--standard-version
chore(main): release 0.0.2-Dev3.0
2023-08-14 21:23:43 +08:00
Mason
ea9099a477 chore(main): release 0.0.2-Dev3.0 2023-08-14 21:19:05 +08:00
ccc3298b7a Update release.yml 2023-08-14 21:18:15 +08:00
5fb9e1365a 更新炮塔节-贡献值:狐狸 2023-08-14 21:13:19 +08:00
WisenextTime
b8091d52c0
spawn update 2023-08-08 15:57:46 +08:00
JDSA Ling
313a3f651f
Create LICENSE 2023-08-08 15:57:21 +08:00
Mason
d66f3fb911 docs(contributor): contrib-readme-action has updated readme 2023-08-07 18:33:54 +08:00
JDSA Ling
c8e088a7b7
Merge pull request #36 from WisenextTime/main
spawn update
2023-08-07 18:33:38 +08:00
WisenextTime
38ac23e2e7
Merge branch 'LingASDJ:main' into main 2023-08-07 08:07:53 +08:00
WisenextTime
512670dce1
Add files via upload 2023-08-07 00:53:08 +08:00
WisenextTime
09a495ab17
spawnUnits and spawnProjectiles 2023-08-07 00:52:24 +08:00
Mason
529a239874 docs(contributor): contrib-readme-action has updated readme 2023-08-06 12:00:48 +08:00
JDSA Ling
a839daa005
Merge pull request #34 from Thisisafox/main
Update attack.md
2023-08-06 12:00:34 +08:00
屑狐狸
722f9fd874
Add files via upload 2023-08-06 10:26:19 +08:00
屑狐狸
1f8a56cbbc
Update config.ts 2023-08-06 10:24:32 +08:00
屑狐狸
c1aa41ac15
Add files via upload 2023-08-06 10:17:57 +08:00
1914b8bfe6 Update movement.md 2023-08-06 00:37:06 +08:00
cb7222c28c Fixed Mixed md+html bug 2023-08-06 00:34:52 +08:00
Mason
151346fdc8 docs(contributor): contrib-readme-action has updated readme 2023-08-06 00:28:43 +08:00
JDSA Ling
a03a596759
Merge pull request #33 from WisenextTime/main
movement
2023-08-06 00:28:30 +08:00
WisenextTime
feb153d1f0
Add files via upload 2023-08-06 00:23:56 +08:00
WisenextTime
8e7c4cd75a
Add files via upload 2023-08-06 00:22:36 +08:00
shishanyue
95a249ddc8
rwEngine-LineTextView-useBySpawnUnits-fix 2023-07-25 14:10:29 +08:00
shishanyue
a5d06cce2d
LineTextView-useBySpawnUnits 2023-07-25 14:03:57 +08:00
shishanyue
75b58f25ba
RW-Engine fix 2023-07-18 12:52:19 +08:00
Mason
9881fe4940 docs(contributor): contrib-readme-action has updated readme 2023-07-18 12:12:05 +08:00
shishanyue
bdbcec2f05
RW-Engine LineTextView添加 2023-07-18 12:11:53 +08:00
JDSA Ling
fe0ea3e5b6
Merge pull request #30 from LingASDJ/dependabot/github_actions/JamesIves/github-pages-deploy-action-4.4.3
Bump JamesIves/github-pages-deploy-action from 4.4.2 to 4.4.3
2023-07-17 14:06:34 +08:00
tobby3600
7d2e71add8
Merge pull request #31 from tobby3600/main
逻辑节更新5
2023-07-15 16:43:06 +08:00
Tobby
05177d4245 收尾 2023-07-15 16:36:42 +08:00
dependabot[bot]
a321284df8
Bump JamesIves/github-pages-deploy-action from 4.4.2 to 4.4.3
Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.4.2 to 4.4.3.
- [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases)
- [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.4.2...v4.4.3)

---
updated-dependencies:
- dependency-name: JamesIves/github-pages-deploy-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-15 07:43:04 +00:00
allureluoli
fee1cd8da3 graphics_update 2023-06-21 20:10:32 +08:00
allureluoli
ab253471d9 Merge branch 'main' of https://github.com/LingASDJ/RW-API-Code 2023-06-21 20:09:22 +08:00
allureluoli
30417a902b delete_a_little_date 2023-06-21 20:09:06 +08:00
Mason
769d6e8f3e docs(contributor): contrib-readme-action has updated readme 2023-06-21 20:06:45 +08:00
allureluoli
6a40d4f46d graphics_update 2023-06-21 20:06:24 +08:00
JDSA Ling
0fc94f6b87
Merge pull request #27 from LingASDJ/dependabot/github_actions/JamesIves/github-pages-deploy-action-4.4.2
Bump JamesIves/github-pages-deploy-action from 4.4.1 to 4.4.2
2023-06-07 10:11:40 +08:00
JDSA Ling
2a35932d48
Update README.md 2023-06-07 10:11:14 +08:00
JDSA Ling
5cbb99239e
Update README.md 2023-06-07 10:06:45 +08:00
JDSA Ling
d078baeab6
Merge pull request #28 from tobby3600/main
逻辑节更新4
2023-06-07 09:55:02 +08:00
Tobby
71ca7c9c85 逻辑节更新4内容部分 2023-05-30 06:34:27 +08:00
dependabot[bot]
f3abeae09a
Bump JamesIves/github-pages-deploy-action from 4.4.1 to 4.4.2
Bumps [JamesIves/github-pages-deploy-action](https://github.com/JamesIves/github-pages-deploy-action) from 4.4.1 to 4.4.2.
- [Release notes](https://github.com/JamesIves/github-pages-deploy-action/releases)
- [Commits](https://github.com/JamesIves/github-pages-deploy-action/compare/v4.4.1...v4.4.2)

---
updated-dependencies:
- dependency-name: JamesIves/github-pages-deploy-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-27 08:02:09 +00:00
allureluoli
9b6035ccb2 graphice_core_update 2023-05-26 05:55:29 +08:00
allureluoli
24632b2c43 图像组更新 2023-05-15 18:46:11 +08:00
allureluoli
21f305c9b5 更新了一点图像的-allureluoli 2023-05-12 16:27:45 +08:00
mason369
a0ec88862b Update index.js 2023-05-12 14:09:55 +08:00
mason369
84ef26e6dc Update index.js 2023-05-12 14:09:35 +08:00
fe3819f87f Update NotFound.vue 2023-05-12 09:58:54 +08:00
mason369
36d0d6f851 update:添加404插槽页面 2023-05-12 09:36:53 +08:00
mason369
393b8051c3 fix:修复中文搜索框 2023-05-11 10:54:59 +08:00
7baf405c61 添加搜索功能-Beta 2023-05-11 09:15:05 +08:00
511461aed7 Merge branch 'main' of https://github.com/LingASDJ/RW-API-Code 2023-05-10 23:43:03 +08:00
84b33be000 Update index.md 2023-05-10 23:40:15 +08:00
JDSA Ling
a40f877bc6
Merge pull request #24 from LingASDJ/release-please--branches--main--components--standard-version
chore(main): release 0.0.2-DEV1.0
2023-05-10 23:28:57 +08:00
Mason
85d3655680 chore(main): release 0.0.2-DEV1.0 2023-05-10 23:26:24 +08:00
8f0b1b8ee7 添加少量描述 2023-05-10 23:20:29 +08:00
8778f8f344 Merge branch 'main' of https://github.com/LingASDJ/RW-API-Code 2023-05-10 23:17:00 +08:00
e0f5296834 更新logo 2023-05-10 23:16:50 +08:00
Mason
7d211c19a0 docs(contributor): contrib-readme-action has updated readme 2023-05-10 23:08:32 +08:00
allureluoli
2be393a13f Merge branch 'main' of https://github.com/LingASDJ/RW-API-Code 2023-05-10 23:04:50 +08:00
9896e8f54d Merge branch 'main' of https://github.com/LingASDJ/RW-API-Code 2023-05-10 22:58:54 +08:00
c05b6bf01c 更新Logo 2023-05-10 22:58:51 +08:00
JDSA Ling
2157891cd2
Merge pull request #22 from LingASDJ/release-please--branches--main--components--standard-version
chore(main): release 0.0.2-DEV1.0
2023-05-10 22:57:03 +08:00
allureluoli
100f0d2e4d 可建造的代码 2023-05-10 22:51:14 +08:00
Mason
938e2fe439 chore(main): release 0.0.2-DEV1.0 2023-05-10 22:28:53 +08:00
945293cab7 调整排版,侧边栏优化 2023-05-10 22:25:51 +08:00
3cd55ec03f 调整编写指南,优化说明 2023-05-09 23:39:39 +08:00
bda1987836 框架迁移OK 2023-05-09 23:13:12 +08:00
7660fe0e2a Add :添加更多Bug(功能) 2023-05-09 11:36:55 +08:00
JDSA Ling
b8c1e7b575
Merge pull request #16 from LingASDJ/release-please--branches--main--components--standard-version
chore(main): release 0.0.2-DEV1.0
2023-04-23 12:22:47 +08:00
Mason
bb4c71850b chore(main): release 0.0.2-DEV1.0 2023-04-20 08:43:12 +08:00
51eb371ad9 提交代码 2023-04-20 08:42:04 +08:00
mason369
1d16b1acb2 fix:重置404 2023-04-18 09:15:08 +08:00
mason369
ee4e5c9e3c fix:使用异步方法修复firebase 2023-04-16 00:18:02 +08:00
mason369
392f8db834 fix:修复firebase报错window对象找不到 2023-04-15 23:48:41 +08:00
mason369
560bfc515d update:添加firebase管控 2023-04-14 15:45:18 +08:00
mason369
4fe8f44ec8 fix:修复移动端复制粘贴无效问题 2023-04-13 12:48:03 +08:00
mason369
91734565f1 Update index.js
添加在移动设备上主动调用剪贴板权限以获得用户授权
2023-04-13 12:39:25 +08:00
mason369
8786660ceb Update index.js 2023-04-13 12:32:25 +08:00
mason369
21c68889b8 Update index.js 2023-04-13 12:27:10 +08:00
mason369
e9e9d95ec6 improvement:改进复制功能增加兼容性 2023-04-13 00:18:46 +08:00
mason369
3d9cf6aa07 improvement:改进复制功能 2023-04-13 00:15:01 +08:00
9fa1ce533e Fixed 2023-04-12 22:45:07 +08:00
14c92ad1ad Update .gitattributes 2023-04-12 17:15:32 +08:00
5516738915 Update .gitattributes 2023-04-12 17:15:07 +08:00
e1352b0539 Create .gitattributes 2023-04-12 17:14:30 +08:00
428802c237 Merge branch 'main' of https://github.com/LingASDJ/RW-API-Code 2023-04-12 17:12:30 +08:00
15762cc4de Delete No Need File 2023-04-12 17:12:22 +08:00
JDSA Ling
9917de01e4
Merge pull request #14 from LingASDJ/release-please--branches--main--components--standard-version
chore(main): release 0.0.2-DEV1.0
2023-04-12 17:04:57 +08:00
Mason
f67b0563d1 chore(main): release 0.0.2-DEV1.0 2023-04-12 17:03:41 +08:00
947a19f286 更新:0.0.2-DEV1 2023-04-12 17:02:39 +08:00
a64b2cf5e5 Update 0.0.2-DEV1 2023-04-12 16:59:33 +08:00
mason369
e1ff0f1e12 Merge branch 'main' of https://github.com/LingASDJ/RW-API-Code 2023-04-12 15:45:34 +08:00
mason369
e76fb81170 Update package-lock.json 2023-04-12 15:45:25 +08:00
6e7443997b 修正代码错误 2023-04-12 00:11:12 +08:00
d0c360ab7c 纠正文案错误 2023-04-12 00:10:20 +08:00
24da0f06c1 Merge branch 'main' of https://github.com/LingASDJ/RW-API-Code 2023-04-12 00:09:22 +08:00
10e01aa97b 纠正一些文案错误 2023-04-12 00:09:12 +08:00
mason369
1a109a0f96 Update Code-review.yml 2023-04-12 00:08:13 +08:00
mason369
77f0a1aa5e fix:修复编译文件路径 2023-04-11 23:54:41 +08:00
JDSA Ling
3412f80dcc
Create CNAME 2023-04-11 23:37:09 +08:00
JDSA Ling
cc9353fd19
Merge pull request #13 from LingASDJ/release-please--branches--main--components--standard-version
chore(main): release 1.0.0
2023-04-11 23:32:46 +08:00
Mason
60beb5180d chore(main): release 1.0.0 2023-04-11 23:30:00 +08:00
Mason
ebe2b51f42 docs(contributor): contrib-readme-action has updated readme 2023-04-11 23:29:14 +08:00
JDSA Ling
ca5fcbf504
Merge pull request #12 from LingASDJ/0.0.2-Develop
0.0.2 develop
2023-04-11 23:29:01 +08:00
ce18737819 Create README.md 2023-04-11 23:28:11 +08:00
c0544cab1a Update README.md 2023-04-11 23:25:55 +08:00
920849e273 Delete 0.0.1 2023-04-11 23:21:57 +08:00
9a8c8295c3 更新Core第一节到第三节 2023-04-11 23:17:20 +08:00
JDSA Ling
2d7cc8eeb0
Create CNAME 2023-04-11 14:57:29 +08:00
JDSA Ling
919ffcd1eb
Delete CNAME 2023-04-11 14:45:48 +08:00
mason369
be3452d8af feat:添加GitHub workflows与issues template 2023-04-11 14:10:35 +08:00
d7dc03b1bc 更新示范文档 2023-04-11 10:26:58 +08:00
6af5f8bb5a 更新说明文档 2023-04-11 09:39:58 +08:00
bab62c0a04 0.0.1封包 主分支即将迁移 2023-04-10 17:29:11 +08:00
5b955e69dd 删除部署包 2023-04-10 16:12:14 +08:00
19620c7d56 更新部署包 2023-04-10 15:46:56 +08:00
e01f9e218c 重构为VitePress框架 2023-04-10 15:27:31 +08:00
80 changed files with 9068 additions and 992 deletions

1
.gitattributes vendored Normal file
View File

@ -0,0 +1 @@
*.json linguist-detectable

38
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

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

View File

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

10
.github/dependabot.yml vendored Normal file
View File

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

27
.github/workflows/Code-review.yml vendored Normal file
View File

@ -0,0 +1,27 @@
name: Code Review
on:
pull_request:
branches: [ main ]
jobs:
code-review:
name: Code Review
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2 # 将代码库检出到 Runner 中
- name: Setup Node.js
uses: actions/setup-node@v2 # 安装 Node.js 运行环境和依赖项
with:
node-version: '14.x'
- name: Install dependencies
run: npm install # 安装依赖项
- name: Initialize CodeQL
uses: github/codeql-action/init@v1 # 初始化 CodeQL 环境
with:
languages: javascript
- name: Analyze JavaScript code with CodeQL
uses: github/codeql-action/analyze@v1 # 使用 CodeQL 对 JavaScript 代码进行分析
# 这个 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。

20
.github/workflows/First-interaction.yml vendored Normal file
View File

@ -0,0 +1,20 @@
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: |
恭喜你打开了你的第一个拉取请求!我们的团队将很快对其进行审核并提供任何必要的反馈。感谢您为我们的项目做出贡献!

58
.github/workflows/auto-merge.yml vendored Normal file
View File

@ -0,0 +1,58 @@
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 才会被自动合并。

56
.github/workflows/build-and-deploy.yml vendored Normal file
View File

@ -0,0 +1,56 @@
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.3
with:
ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
BRANCH: gh-pages
FOLDER: 'rustedwarfareapicode/.vitepress/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

@ -0,0 +1,17 @@
# 监听 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 }}

19
.github/workflows/release.yml vendored Normal file
View File

@ -0,0 +1,19 @@
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}]'
release-as: 0.0.2-DEV1.0
bump-minor-pre-major: true

4
.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
node_modules
rustedwarfareapicode/.vitepress/dist/
rustedwarfareapicode/.vitepress/cache
.idea/workspace.xml

8
.idea/RW-API-Code.iml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@ -0,0 +1,90 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="DuplicatedCode" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<Languages>
<language minSize="55" name="Python" />
</Languages>
</inspection_tool>
<inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PyCompatibilityInspection" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ourVersions">
<value>
<list size="1">
<item index="0" class="java.lang.String" itemvalue="3.11" />
</list>
</value>
</option>
</inspection_tool>
<inspection_tool class="PyPackageRequirementsInspection" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoredPackages">
<value>
<list size="53">
<item index="0" class="java.lang.String" itemvalue="httpx" />
<item index="1" class="java.lang.String" itemvalue="bs4" />
<item index="2" class="java.lang.String" itemvalue="tzlocal" />
<item index="3" class="java.lang.String" itemvalue="nonebot2" />
<item index="4" class="java.lang.String" itemvalue="arrow" />
<item index="5" class="java.lang.String" itemvalue="PyYAML" />
<item index="6" class="java.lang.String" itemvalue="python-dateutil" />
<item index="7" class="java.lang.String" itemvalue="python-dotenv" />
<item index="8" class="java.lang.String" itemvalue="MarkupSafe" />
<item index="9" class="java.lang.String" itemvalue="python-slugify" />
<item index="10" class="java.lang.String" itemvalue="PyInquirer" />
<item index="11" class="java.lang.String" itemvalue="rfc3986" />
<item index="12" class="java.lang.String" itemvalue="pygtrie" />
<item index="13" class="java.lang.String" itemvalue="cookiecutter" />
<item index="14" class="java.lang.String" itemvalue="Pygments" />
<item index="15" class="java.lang.String" itemvalue="starlette" />
<item index="16" class="java.lang.String" itemvalue="certifi" />
<item index="17" class="java.lang.String" itemvalue="soupsieve" />
<item index="18" class="java.lang.String" itemvalue="nonebot-adapter-cqhttp" />
<item index="19" class="java.lang.String" itemvalue="uvicorn" />
<item index="20" class="java.lang.String" itemvalue="beautifulsoup4" />
<item index="21" class="java.lang.String" itemvalue="pydantic" />
<item index="22" class="java.lang.String" itemvalue="caio" />
<item index="23" class="java.lang.String" itemvalue="typing-extensions" />
<item index="24" class="java.lang.String" itemvalue="loguru" />
<item index="25" class="java.lang.String" itemvalue="click" />
<item index="26" class="java.lang.String" itemvalue="APScheduler" />
<item index="27" class="java.lang.String" itemvalue="nonebot-plugin-apscheduler" />
<item index="28" class="java.lang.String" itemvalue="attrs" />
<item index="29" class="java.lang.String" itemvalue="regex" />
<item index="30" class="java.lang.String" itemvalue="watchgod" />
<item index="31" class="java.lang.String" itemvalue="nb-cli" />
<item index="32" class="java.lang.String" itemvalue="PyMySQL" />
<item index="33" class="java.lang.String" itemvalue="httpcore" />
<item index="34" class="java.lang.String" itemvalue="idna" />
<item index="35" class="java.lang.String" itemvalue="async-timeout" />
<item index="36" class="java.lang.String" itemvalue="requests" />
<item index="37" class="java.lang.String" itemvalue="Jinja2" />
<item index="38" class="java.lang.String" itemvalue="sniffio" />
<item index="39" class="java.lang.String" itemvalue="win32-setctime" />
<item index="40" class="java.lang.String" itemvalue="tomlkit" />
<item index="41" class="java.lang.String" itemvalue="aiomysql" />
<item index="42" class="java.lang.String" itemvalue="prompt-toolkit" />
<item index="43" class="java.lang.String" itemvalue="urllib3" />
<item index="44" class="java.lang.String" itemvalue="websockets" />
<item index="45" class="java.lang.String" itemvalue="six" />
<item index="46" class="java.lang.String" itemvalue="fastapi" />
<item index="47" class="java.lang.String" itemvalue="aiofile" />
<item index="48" class="java.lang.String" itemvalue="colorama" />
<item index="49" class="java.lang.String" itemvalue="aiohttp" />
<item index="50" class="java.lang.String" itemvalue="multidict" />
<item index="51" class="java.lang.String" itemvalue="yarl" />
<item index="52" class="java.lang.String" itemvalue="pytz" />
</list>
</value>
</option>
</inspection_tool>
<inspection_tool class="PyPep8NamingInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<option name="ignoredErrors">
<list>
<option value="N806" />
<option value="N802" />
<option value="N803" />
</list>
</option>
</inspection_tool>
</profile>
</component>

View File

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

8
.idea/modules.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/RW-API-Code.iml" filepath="$PROJECT_DIR$/.idea/RW-API-Code.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

119
.idea/workspace.xml Normal file
View File

@ -0,0 +1,119 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AutoImportSettings">
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="095f8482-7199-413b-83e3-876b2fdc1c5d" name="更改" comment="更改">
<change beforePath="$PROJECT_DIR$/.github/workflows/build-and-deploy.yml" beforeDir="false" afterPath="$PROJECT_DIR$/.github/workflows/build-and-deploy.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="MarkdownSettingsMigration">
<option name="stateVersion" value="1" />
</component>
<component name="ProjectId" id="2OOylpSRR2AkPWNLKl3zviW6T1A" />
<component name="ProjectLevelVcsManager">
<ConfirmationsSetting value="2" id="Add" />
</component>
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">{
&quot;keyToString&quot;: {
&quot;ASKED_SHARE_PROJECT_CONFIGURATION_FILES&quot;: &quot;true&quot;,
&quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
&quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
&quot;SHARE_PROJECT_CONFIGURATION_FILES&quot;: &quot;true&quot;,
&quot;WebServerToolWindowFactoryState&quot;: &quot;false&quot;,
&quot;git-widget-placeholder&quot;: &quot;main&quot;,
&quot;last_opened_file_path&quot;: &quot;D:/RW-API-Code&quot;,
&quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
&quot;node.js.detected.package.tslint&quot;: &quot;true&quot;,
&quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
&quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;,
&quot;nodejs_package_manager_path&quot;: &quot;npm&quot;,
&quot;prettierjs.PrettierConfiguration.Package&quot;: &quot;C:\\Program Files\\nodejs\\node_modules\\prettier&quot;,
&quot;ts.external.directory.path&quot;: &quot;D:\\Program Files\\JetBrains\\WebStorm 2023.1.1\\plugins\\javascript-impl\\jsLanguageServicesImpl\\external&quot;,
&quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
}
}</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="D:\RW-API-Code\rustedwarfareapicode\.vitepress\theme" />
</key>
</component>
<component name="RunManager" selected="npm.docs:dev">
<configuration name="docs:build" type="js.build_tools.npm" temporary="true" nameIsGenerated="true">
<package-json value="$PROJECT_DIR$/package.json" />
<command value="run" />
<scripts>
<script value="docs:build" />
</scripts>
<node-interpreter value="project" />
<envs />
<method v="2" />
</configuration>
<configuration name="docs:dev" type="js.build_tools.npm" temporary="true" nameIsGenerated="true">
<package-json value="$PROJECT_DIR$/package.json" />
<command value="run" />
<scripts>
<script value="docs:dev" />
</scripts>
<node-interpreter value="project" />
<envs />
<method v="2" />
</configuration>
<configuration name="docs:preview" type="js.build_tools.npm" temporary="true" nameIsGenerated="true">
<package-json value="$PROJECT_DIR$/package.json" />
<command value="run" />
<scripts>
<script value="docs:preview" />
</scripts>
<node-interpreter value="project" />
<envs />
<method v="2" />
</configuration>
<recent_temporary>
<list>
<item itemvalue="npm.docs:dev" />
<item itemvalue="npm.docs:preview" />
<item itemvalue="npm.docs:build" />
</list>
</recent_temporary>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="应用程序级" UseSingleDictionary="true" transferred="true" />
<component name="TaskManager">
<task active="true" id="Default" summary="默认任务">
<changelist id="095f8482-7199-413b-83e3-876b2fdc1c5d" name="更改" comment="" />
<created>1681446079288</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1681446079288</updated>
<workItem from="1681446081525" duration="1375000" />
<workItem from="1681457010083" duration="1000" />
<workItem from="1681457192270" duration="722000" />
<workItem from="1681457929740" duration="336000" />
<workItem from="1681463573643" duration="628000" />
<workItem from="1681464227973" duration="709000" />
<workItem from="1681573027219" duration="321000" />
<workItem from="1681573363358" duration="2587000" />
<workItem from="1683643655264" duration="99000" />
<workItem from="1683705886349" duration="11000" />
<workItem from="1692021693891" duration="295000" />
<workItem from="1692022006049" duration="444000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="3" />
</component>
</project>

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,16 +96,14 @@ mass:2000
### maxHp
#### maxHp-代码简介
?> 代码:maxHp 中文释义:最大生命值 类型:整数 隶属于:通用代码组
代码:maxHp 中文释义:最大生命值 类型:整数 隶属于:通用代码组
#### maxHp-要点指示
!> maxHp代码要点指示:
<!-- chat:start -->
#### **tobby3600**
:::codegroup
**tobby3600**
最大生命值定义单位在不修改它时最多能够有多少血量,单位默认生成时即是这个血量。<br>
maxHp可以通过<font color=orange>单位参考.maxHp()</font>来获取,也可以通过<font color=orange>[action]setUnitStatus</font>进行修改。
<!-- chat:end -->
:::
#### maxHp-演示例子
```ini
@ -115,10 +113,10 @@ maxHp:600
### altNames
#### altNames-代码简介
?> 代码:altNames 中文释义:别名 类型:字符型 隶属于:通用代码组
代码:altNames 中文释义:别名 类型:字符型 隶属于:通用代码组
#### altNames-要点指示
!> altNames代码要点指示:
altNames代码要点指示:
<!-- chat:start -->
#### **JDSALing**
主要在<font color=orange>启用多个自定义Mod</font>进行优先级定义<br>
@ -133,7 +131,7 @@ altNames:ling,tobby3600,coldmint
### class
#### class-代码简介
?> 代码:class 中文释义:类 类型:字符型 隶属于:通用代码组
代码:class 中文释义:类 类型:字符型 隶属于:通用代码组
> [!ATTENTION] 无实际用处,可以删除。<br>
Luke保留供将来使用默认情况下必须为CustomUnitMetadata。由于该代码无实际用途可以忽略该代码<br>
@ -148,7 +146,7 @@ class:CustomUnitMetadata
### strictLevel
#### strictLevel-代码简介
?> 代码:strictLevel 中文释义:严格级别 类型:数字固定型 隶属于:通用代码组
代码:strictLevel 中文释义:严格级别 类型:数字固定型 隶属于:通用代码组
> [!TIP] 建议添加到"all-units.template"以应用于所有单位,进行统一查错。<br>
默认值为0忽略代码重复。设为1时如果当前单位内有重复代码则报错。
@ -161,7 +159,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报错。
@ -175,7 +173,7 @@ techLevel:2
### buildSpeed
#### buildSpeed-代码简介
?> 代码:buildSpeed 中文释义:建造速度 类型:浮点/秒型 隶属于:通用代码组
代码:buildSpeed 中文释义:建造速度 类型:浮点/秒型 隶属于:通用代码组
> [!TIP] 建造此单位需要的时间,填秒。<br>
以前的计算方式为:此处所填时间=1÷(60x你需要的秒)如果定义了工厂速率则需要乘以建造乘数。
@ -193,7 +191,7 @@ buildSpeed:0.0006
#### isBio-代码简介
?> 代码:isBio 中文释义:是生物 类型:布尔型 隶属于:通用代码组
代码:isBio 中文释义:是生物 类型:布尔型 隶属于:通用代码组
> [!TIP] 若设置成true,则会在单位死亡时产生血迹,
图像在drawable/blood_mark.pnghideScorchMarktrue时可以隐藏非生物则为黑色爆炸效果。
@ -206,7 +204,7 @@ isBio:true
### isBug
#### isBug-代码简介
?> 代码:isBug 中文释义:是虫子 类型:布尔型 隶属于:通用代码组
代码:isBug 中文释义:是虫子 类型:布尔型 隶属于:通用代码组
> [!TIP] 若设置成true,则会认定为虫子,用于沙盒中的单独分类。
#### isBug-演示例子:
@ -218,7 +216,7 @@ isBug:true
### isBuilder
#### isBuilder-代码简介
?> 代码:isBuilder 中文释义:是建造者 类型:布尔型 隶属于:通用代码组
代码:isBuilder 中文释义:是建造者 类型:布尔型 隶属于:通用代码组
> [!TIP] 若设置成true,则会需要此单位建造建筑物,则通常需要此代码。
并且默认设为[ai] useAsBuilder。
@ -231,7 +229,7 @@ isBuilder:true
### streamingCost
#### streamingCost-代码简介
?> 代码:streamingCost 中文释义:流式资金 类型:整数型 隶属于:通用代码组
代码:streamingCost 中文释义:流式资金 类型:整数型 隶属于:通用代码组
> [!TIP] 和价格一样,但在建造时逐渐消耗资金,如果在构建过程中资源耗尽,
建造或生产队列将暂停。就像是红警中那样。铁锈默认是预先扣除资金。
@ -246,7 +244,7 @@ streamingCost:1145
#### switchPriceWithStreamingCost-代码简介
?> 代码:switchPriceWithStreamingCost 中文释义:流式资金模式全局切换 类型:布尔型 隶属于:通用代码组
代码:switchPriceWithStreamingCost 中文释义:流式资金模式全局切换 类型:布尔型 隶属于:通用代码组
> [!TIP] 快捷设置为默认资金消耗方式或为流式建造方式。
建议使用模板快速将一个模组为所有单位切换流资源。
@ -257,12 +255,12 @@ streamingCost:1145
switchPriceWithStreamingCost:true
```
!> 以下的代码为`单位统计代码组`,非必须存在的代码,请根据情况自行使用
以下的代码为`单位统计代码组`,非必须存在的代码,请根据情况自行使用
### selfRegenRate
#### selfRegenRate-代码简介
?> 代码:selfRegenRate 中文释义:生命恢复速度 类型:浮点型 隶属于:单位统计代码组
代码:selfRegenRate 中文释义:生命恢复速度 类型:浮点型 隶属于:单位统计代码组
> [!TIP] 此数值决定每帧增加血量。游戏内默认速度下一秒为60逻辑帧而你看到的FPS帧数为渲染帧所以电脑上几百帧和手机上60帧和省电模式下30帧并不影响计算。所以不要写太大。可以写负值用于自毁。
#### selfRegenRate-演示例子:
@ -275,7 +273,7 @@ selfRegenRate:0.5
### maxShield
#### maxShield-代码简介
?> 代码:maxShield 中文释义:护盾值 类型:整型 隶属于:单位统计代码组
代码:maxShield 中文释义:护盾值 类型:整型 隶属于:单位统计代码组
> [!TIP] 单位最大护盾值默认生成时即为此值。如果设置了startShieldAtZero:true则初始为0.
#### maxShield-演示例子:
@ -287,7 +285,7 @@ maxShield:3000
### startShieldAtZero
#### startShieldAtZero-代码简介
?> 代码:startShieldAtZero 中文释义:护盾初始值为0 类型:布尔型 隶属于:单位统计代码组
代码:startShieldAtZero 中文释义:护盾初始值为0 类型:布尔型 隶属于:单位统计代码组
> [!TIP] 如果为true则单位护盾值从0开始增加。
#### startShieldAtZero-演示例子:
@ -300,7 +298,7 @@ startShieldAtZero:true
### shieldRegen
#### shieldRegen-代码简介
?> 代码:shieldRegen 中文释义:护盾恢复速度 类型:浮点型 隶属于:单位统计代码组
代码:shieldRegen 中文释义:护盾恢复速度 类型:浮点型 隶属于:单位统计代码组
> [!TIP] 此数值决定每帧增加护盾值游戏内一秒为60帧所以不要写太大。可以写负值。
#### shieldRegen-演示例子:
@ -313,7 +311,7 @@ shieldRegen:0.5
### energyMax
#### energyMax-代码简介
?> 代码:energyMax 中文释义:能量值 类型:浮点型 隶属于:单位统计代码组
代码:energyMax 中文释义:能量值 类型:浮点型 隶属于:单位统计代码组
> [!TIP] 默认值为0。可以用作炮塔激光防御和行动的弹药的能量。
#### energyMax-演示例子:
@ -325,7 +323,7 @@ energyMax:5
### energyRegen
#### energyRegen-代码简介
?> 代码:energyRegen 中文释义:能量恢复速度 类型:浮点型 隶属于:单位统计代码组
代码:energyRegen 中文释义:能量恢复速度 类型:浮点型 隶属于:单位统计代码组
> [!TIP] 能量每帧恢复速度游戏内一秒为60帧所以不要写太大。可以写负值。
#### energyRegen-演示例子:
@ -338,7 +336,7 @@ energyRegen:0.4
#### energyRegenWhenRecharging-代码简介
?> 代码:energyRegenWhenRecharging
代码:energyRegenWhenRecharging
中文释义:充能时能量恢复速度 类型:浮点型 隶属于:单位统计代码组
> [!TIP] 能量恢复是持续的如果你设置了energyNeedsToRechargeToFull那么攻击时按energyRegen恢复耗尽时的灰条按此处设定值恢复。
@ -353,7 +351,7 @@ energyRegenWhenRecharging:0.4
#### energyNeedsToRechargeToFull-代码简介
?> 代码:energyNeedsToRechargeToFull
代码:energyNeedsToRechargeToFull
中文释义:能量需要充满 类型:布尔型 隶属于:单位统计代码组
> [!TIP] 如果能量耗尽,则需要完全充能才能进行攻击。
@ -367,7 +365,7 @@ energyNeedsToRechargeToFull:true
### armour
#### armour-代码简介
?> 代码:armour
代码:armour
中文释义:装甲 类型:整型 隶属于:单位统计代码组
> [!TIP] 抵消敌方攻击所造成的伤害。
@ -382,7 +380,7 @@ armour:40
### armourMinDamageToKeep
#### armourMinDamageToKeep-代码简介
?> 代码:armour
代码:armour
中文释义:装甲最低伤害 类型:整型 隶属于:单位统计代码组
> [!TIP] 至少造成多少点伤害默认为1.防止护甲太高完全打不动。
@ -397,7 +395,7 @@ armourMinDamageToKeep:2
### borrowResourcesWhileAlive
#### borrowResourcesWhileAlive-代码简介
?> 代码:armour
代码:armour
中文释义:资源活着时借用 类型:Price型 隶属于:单位统计代码组
> [!TIP] 创建时获取这些资源,删除或销毁时将其返回。例如用于电力逻辑,负数供电和正数耗电。
@ -434,7 +432,7 @@ dieOnZeroEnergy:true
### generation_resources
#### generation_resources-代码简介
?> 代码:generation_resources
代码:generation_resources
中文释义:资源获取 类型:Price型 隶属于:单位统计代码组
> [!TIP] 单位定时获得的资源,可自定义资源。
@ -454,7 +452,7 @@ generation_resources:金属=5
### generation_active
#### generation_active-代码简介
?> 代码:generation_active
代码:generation_active
中文释义:资源获取条件 类型:逻辑布尔型 隶属于:单位统计代码组
> [!TIP] 获取资源条件。可用于受损时无法产出。
@ -474,7 +472,7 @@ generation_active: if not self.hp<100
### generation_credits
#### generation_credits-代码简介
?> 代码:generation_credits
代码:generation_credits
中文释义:资金获取 类型:整型 隶属于:单位统计代码组
> [!TIP] 生成资源,仅用于默认的资金,也就是铁锈默认的金钱。
@ -492,7 +490,7 @@ generation_credits=5
#### generation_delay-代码简介
?> 代码:generation_delay
代码:generation_delay
中文释义:资金获取时间 类型:整型 隶属于:单位统计代码组
> [!TIP] 多久帧添加添加一次资源(generation_credits指定数值)。默认值为40一秒为60帧。
@ -507,7 +505,7 @@ generation_delay=40
### showInEditor
#### showInEditor-代码简介
?> 代码:showInEditor
代码:showInEditor
中文释义:沙盒中可见 类型:布尔型 隶属于:UI和图形代码组
> [!TIP] 设置为false可在沙箱编辑器中隐藏单位。(默认为true)
@ -521,7 +519,7 @@ showInEditor:false
### displayText_{LANG}
#### displayText_{LANG}-代码简介
?> 代码:displayText_{LANG}
代码:displayText_{LANG}
中文释义:界面显示文本多语言 类型:字符型 隶属于:UI和图形代码组
> [!TIP] 为单位名称添加多语言支持。此方法并不方便不如设置游戏内部语言文件建议催Luke改。有关常见语言代码请参考下表
@ -536,7 +534,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
@ -550,7 +548,7 @@ displayText_zh:坦克
### displayDescription_{LANG}
#### displayDescription-代码简介
?> 代码:displayDescription_{LANG}
代码:displayDescription_{LANG}
中文释义:界面显示描述 类型:字符型 隶属于:UI和图形代码组
> [!TIP] 单位显示给玩家的单位描述,可以使用多语言,具体使用方法参考在`displayText`的演示说明,这里不再过多讨论。
@ -565,7 +563,7 @@ displayDescription:只能对地,弱输出,只能在地上行走。
### displayLocaleKey
#### displayLocaleKey-代码简介
?> 代码:displayLocaleKey
代码:displayLocaleKey
中文释义:界面显示内部调用 类型:字符型 隶属于:UI和图形代码组
> [!TIP] 调用内部语言文件的单位名称和说明的翻译文件。用处不大,通常是在`替换原版单位的同时直接调用它的原始描述`。该代码例子需要会拆包,如果你是初学者,该代码了解即可。
@ -579,7 +577,7 @@ displayLocaleKey: units.mechArtillery
### displayRadius
#### displayRadius-代码简介
?> 代码:displayRadius 中文释义:单位选择时显示圆圈 类型:整形 隶属于:UI和图形代码组
代码:displayRadius 中文释义:单位选择时显示圆圈 类型:整形 隶属于:UI和图形代码组
> [!TIP] 修改选择单位时显示的绿色圆圈,不更改实际碰撞(radius)和可选择范围。
@ -592,7 +590,7 @@ displayRadius:25
### uiTargetRadius
#### uiTargetRadius-代码简介
?> 代码:uiTargetRadius 中文释义:为目标时半径 类型:整形 隶属于:UI和图形代码组
代码:uiTargetRadius 中文释义:为目标时半径 类型:整形 隶属于:UI和图形代码组
> [!TIP] 修改选择单位时显示的绿色圆圈,不更改实际碰撞(radius)和可选择范围。
@ -605,7 +603,7 @@ uiTargetRadius:25
### shieldRenderRadius
#### shieldRenderRadius-代码简介
?> 代码:shieldRenderRadius 中文释义:单位护盾显示半径 类型:整形 隶属于:UI和图形代码组
代码:shieldRenderRadius 中文释义:单位护盾显示半径 类型:整形 隶属于:UI和图形代码组
> [!TIP] 护盾绘制半径,默认值比半径大一点。可以设置在单位上显示更大或更小的护盾圈。
@ -618,7 +616,7 @@ shieldRenderRadius:20
### shieldDisplayOnlyDeflection
#### shieldDisplayOnlyDeflection-代码简介
?> 代码:shieldDisplayOnlyDeflection 中文释义:护盾只在受攻击时显示 类型:布尔型 隶属于:UI和图形代码组
代码:shieldDisplayOnlyDeflection 中文释义:护盾只在受攻击时显示 类型:布尔型 隶属于:UI和图形代码组
> [!TIP] 隐藏护盾,只在受到攻击时显示。
@ -631,7 +629,7 @@ shieldDisplayOnlyDeflection:true
### shieldDeflectionDisplayRate
#### shieldDeflectionDisplayRate-代码简介
?> 代码:shieldDeflectionDisplayRate 中文释义:护盾消失速度 类型:浮点型 隶属于:UI和图形代码组
代码:shieldDeflectionDisplayRate 中文释义:护盾消失速度 类型:浮点型 隶属于:UI和图形代码组
> [!TIP] 默认值为4。数值越大消失越快。
@ -644,7 +642,7 @@ shieldDeflectionDisplayRate:3
### showOnMinimap
#### showOnMinimap-代码简介
?> 代码:shieldDeflectionDisplayRate 中文释义:显示在小地图上 类型:布尔型 隶属于:UI和图形代码组
代码:shieldDeflectionDisplayRate 中文释义:显示在小地图上 类型:布尔型 隶属于:UI和图形代码组
> [!TIP] 默认为true。如果为false则在小地图上不显示此单位。
@ -657,7 +655,7 @@ showOnMinimap:true
### showOnMinimapToEnemies
#### showOnMinimapToEnemies-代码简介
?> 代码:showOnMinimapToEnemies 中文释义:显示于敌人小地图 类型:布尔型 隶属于:UI和图形代码组
代码:showOnMinimapToEnemies 中文释义:显示于敌人小地图 类型:布尔型 隶属于:UI和图形代码组
> [!TIP] 是否在敌人小地图上显示。
@ -670,7 +668,7 @@ showOnMinimapToEnemies:true
### showActionsWithMixedSelectionIfOtherUnitsHaveTag
#### showActionsWithMixedSelectionIfOtherUnitsHaveTag-代码简介
?> 代码:showActionsWithMixedSelectionIfOtherUnitsHaveTag 中文释义:混合所选单位所显示的行为 类型:标签型 隶属于:UI和图形代码组
代码:showActionsWithMixedSelectionIfOtherUnitsHaveTag 中文释义:混合所选单位所显示的行为 类型:标签型 隶属于:UI和图形代码组
> [!TIP] 如果选择的单位都包含此处使用的标签,则合并“行为(action)”。比如你的步兵通过部署转化成另一个单位,在混合时可以当作同一个单位处理,不再是默认的谁都无法执行操作。例子如红警的盟军大兵在混合选中后依旧可执行部署或解除。
@ -710,9 +708,9 @@ showActionsWithMixedSelectionIfOtherUnitsHaveTag:tag_联系
### image
#### image-代码简介
?> 代码:image 中文释义:主体图像 类型:文件(图像文件) 隶属于:通用代码组
代码:image 中文释义:主体图像 类型:文件(图像文件) 隶属于:通用代码组
#### image-要点指示
!> image代码要点指示:
image代码要点指示:
<!-- chat:start -->
#### **tobby3600**
主体图像定义单位的图像。<br>
@ -732,9 +730,9 @@ image:main.png
### image_wreak
#### image_wreak-代码简介
?> 代码:image_wreak 中文释义:死亡图像 类型:文件(图像文件) 隶属于:通用代码组
代码:image_wreak 中文释义:死亡图像 类型:文件(图像文件) 隶属于:通用代码组
#### image_wreak-要点指示
!> image_wreak代码要点指示:
image_wreak代码要点指示:
<!-- chat:start -->
#### **tobby3600**
死亡图像定义单位死亡后产生的图像。<br>
@ -753,9 +751,9 @@ image_wreak:NONE
### imageScale
#### imageScale-代码简介
?> 代码:imageScale 中文释义:图像缩放比例 类型:文件(图像文件) 隶属于:通用代码组
代码:imageScale 中文释义:图像缩放比例 类型:文件(图像文件) 隶属于:通用代码组
#### imageScale-要点指示
!> imageScale代码要点指示:
imageScale代码要点指示:
<!-- chat:start -->
#### **tobby3600**
填写后,铁锈会将图像大小乘以缩放比例。<br>
@ -809,28 +807,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]
@ -843,8 +841,8 @@ B会被执行10次打印结果为0~9
### setUnitMemory
#### setUnitMemory-代码简介
?> 代码:setUnitMemory 中文释义:设置单位内存 隶属于:行为代码组
!> 设置单位的memory的值。
代码:setUnitMemory 中文释义:设置单位内存 隶属于:行为代码组
设置单位的memory的值。
#### setUnitMemory-演示例子
```ini
[core]
@ -855,23 +853,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 中文释义:自动触发事件 类型:字符串 隶属于:行为代码组
满足此条件则自动触发。
|参数表 |参数表 |
| -------- | ------------ |
@ -900,43 +898,43 @@ setUnitMemory:str="hello shishanyue"
### 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
@ -973,11 +971,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
@ -997,24 +995,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单位
@ -1087,7 +1085,7 @@ showMessageToAllPlayers:ababab
### 比较运算符
#### 如果
?> 代码:if 中文释义:如果
代码:if 中文释义:如果
`if`是大部分逻辑运算的开头(select等不需要if),用于在支持逻辑的键引入逻辑判断。
<!-- 若要连续嵌套请直接使用Html原生代码 -->
@ -1101,7 +1099,7 @@ autoTrigger:if self.maxHp() > memory.emx_hp
```
#### 小于
?> 代码:< 中文释义:小于<br>
代码:< 中文释义:小于<br>
小于用于在逻辑布尔值中比较两个数的大小,格式为`数据a < 数据b``a<b`则整个式子的值为`true`否则为`false`
<!-- 自定义的提示框请使用原生Html进行套入 -->
@ -1117,31 +1115,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>
@ -1159,11 +1157,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>
@ -1191,7 +1189,7 @@ autoTrigger:if (memory.a < memory.b or memory.a > memory.c) and not memory.a < m
### 算数运算符
#### 加
?> 代码:+ 中文释义:加<br>
代码:+ 中文释义:加<br>
加用于将两个逻辑值相加,得到结果,格式为`数据a + 数据b`。
@ -1207,7 +1205,7 @@ autoTrigger:if (memory.a + memory.c) < memory.b
```
#### 减
?> 代码:- 中文释义:减<br>
代码:- 中文释义:减<br>
减用于将两个逻辑值相减,得到结果,格式为`数据a - 数据b`。
@ -1215,17 +1213,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)`
@ -1280,7 +1278,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(资源名=数值)`
@ -1293,50 +1291,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类型。
@ -1354,12 +1352,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=数字)`。
@ -1367,45 +1365,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=包含工厂队列)`
@ -1419,42 +1417,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=下标(仅当类型是数组时可选填写))`。

78
CHANGELOG.md Normal file
View File

@ -0,0 +1,78 @@
# Changelog
## [0.0.2-Dev3.0](https://github.com/LingASDJ/RW-API-Code/compare/v0.0.2-DEV1.0...v0.0.2-Dev3.0) (2023-08-14)
### Bug Fixes
* 重置404 ([1d16b1a](https://github.com/LingASDJ/RW-API-Code/commit/1d16b1acb2c3f61544ac6c41fdf35367b537af55))
### Docs
* **contributor:** contrib-readme-action has updated readme ([d66f3fb](https://github.com/LingASDJ/RW-API-Code/commit/d66f3fb91193908c45f924e70735650951d04ea1))
* **contributor:** contrib-readme-action has updated readme ([529a239](https://github.com/LingASDJ/RW-API-Code/commit/529a239874b636a81ba926eafd7d7414e7df4729))
* **contributor:** contrib-readme-action has updated readme ([151346f](https://github.com/LingASDJ/RW-API-Code/commit/151346fdc855a4d4a8bd01febb8b7bf536ee6371))
* **contributor:** contrib-readme-action has updated readme ([9881fe4](https://github.com/LingASDJ/RW-API-Code/commit/9881fe4940ef5a6bfb42fe2090aa28576ba7652e))
* **contributor:** contrib-readme-action has updated readme ([769d6e8](https://github.com/LingASDJ/RW-API-Code/commit/769d6e8f3e4a7df66820c8f50f6c847a2cdc3b6c))
* **contributor:** contrib-readme-action has updated readme ([7d211c1](https://github.com/LingASDJ/RW-API-Code/commit/7d211c19a0ca716675be161e89d6969fb80615c9))
### update
* 添加firebase管控 ([560bfc5](https://github.com/LingASDJ/RW-API-Code/commit/560bfc515d55b679b9777d6998de133914a2c1e1))
## [0.0.2-DEV1.0](https://github.com/LingASDJ/RW-API-Code/compare/v0.0.2-DEV1.0...v0.0.2-DEV1.0) (2023-05-10)
### Bug Fixes
* 重置404 ([1d16b1a](https://github.com/LingASDJ/RW-API-Code/commit/1d16b1acb2c3f61544ac6c41fdf35367b537af55))
### update
* 添加firebase管控 ([560bfc5](https://github.com/LingASDJ/RW-API-Code/commit/560bfc515d55b679b9777d6998de133914a2c1e1))
### Docs
* **contributor:** contrib-readme-action has updated readme ([7d211c1](https://github.com/LingASDJ/RW-API-Code/commit/7d211c19a0ca716675be161e89d6969fb80615c9))
## [0.0.2-DEV1.0](https://github.com/LingASDJ/RW-API-Code/compare/v0.0.2-DEV1.0...v0.0.2-DEV1.0) (2023-05-10)
### Bug Fixes
* 重置404 ([1d16b1a](https://github.com/LingASDJ/RW-API-Code/commit/1d16b1acb2c3f61544ac6c41fdf35367b537af55))
### update
* 添加firebase管控 ([560bfc5](https://github.com/LingASDJ/RW-API-Code/commit/560bfc515d55b679b9777d6998de133914a2c1e1))
## [0.0.2-DEV1.0](https://github.com/LingASDJ/RW-API-Code/compare/v0.0.2-DEV1.0...v0.0.2-DEV1.0) (2023-04-20)
### Bug Fixes
* 重置404 ([1d16b1a](https://github.com/LingASDJ/RW-API-Code/commit/1d16b1acb2c3f61544ac6c41fdf35367b537af55))
### update
* 添加firebase管控 ([560bfc5](https://github.com/LingASDJ/RW-API-Code/commit/560bfc515d55b679b9777d6998de133914a2c1e1))
## [0.0.2-DEV1.0](https://github.com/LingASDJ/RW-API-Code/compare/v1.0.0...v0.0.2-DEV1.0) (2023-04-12)
### 更新
* 0.0.2-DEV1 ([947a19f](https://github.com/LingASDJ/RW-API-Code/commit/947a19f286764f32dd6922abad4f95449ef1f7d0))
## 1.0.0 (2023-04-11)
### Docs
* **contributor:** contrib-readme-action has updated readme ([ebe2b51](https://github.com/LingASDJ/RW-API-Code/commit/ebe2b51f42310fffa14bd629548ab325e47cb5e4))

2
CNAME
View File

@ -1 +1 @@
http://rustedwarfareapicode.top
rustedwarfareapicode.top

169
README.md
View File

@ -1,61 +1,126 @@
<div align=center>
<h1>项目重构优化中,敬请期待</h1>
<img src="https://rwapi-code.netlify.app/images/title.png">
</div>
# RW-API-Code-V2
[English Docs](README_en.md)
# RW-API-Code--Demo 0.1
简单的代码,简单的学习。
基于VitePress框架的铁锈战争API代码。
在这里你可以研究RTS单元代码以及地图代码调试代码或更多
你准备好了吗?让我们开始吧
# 项目规则与说明
* 此代码仅供参考。如果有任何错误或遗漏请随时提及Github问题
* RW API Code是一个非官方的第三方RustedWarfare代码网站提供高效和高度学习的服务态度。
* 如果您想合作开发请Fork我们的主要分支机构并申请PullRecust
### 贡献者
![](https://img.shields.io/badge/language-MarkDown&Node.js-skyblue) ![](https://img.shields.io/github/license/XMuli/QtExamples) ![](https://img.shields.io/badge/powered%20by-Docsity-00ffff)
<!-- readme: collaborators,contributors -start -->
<table>
<tr>
<td align="center">
<a href="https://github.com/shishanyue">
<img src="https://avatars.githubusercontent.com/u/62888460?v=4" width="100;" alt="shishanyue"/>
<br />
<sub><b>Shishanyue</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/LingASDJ">
<img src="https://avatars.githubusercontent.com/u/70191651?v=4" width="100;" alt="LingASDJ"/>
<br />
<sub><b>JDSA Ling</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/tobby3600">
<img src="https://avatars.githubusercontent.com/u/79432329?v=4" width="100;" alt="tobby3600"/>
<br />
<sub><b>Tobby</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/mason369">
<img src="https://avatars.githubusercontent.com/u/93964390?v=4" width="100;" alt="mason369"/>
<br />
<sub><b>Mason</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/liusxs">
<img src="https://avatars.githubusercontent.com/u/101164913?v=4" width="100;" alt="liusxs"/>
<br />
<sub><b>Liuliu</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/allureluoli">
<img src="https://avatars.githubusercontent.com/u/106828088?v=4" width="100;" alt="allureluoli"/>
<br />
<sub><b>二月</b></sub>
</a>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/WisenextTime">
<img src="https://avatars.githubusercontent.com/u/141509640?v=4" width="100;" alt="WisenextTime"/>
<br />
<sub><b>Null</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/Thisisafox">
<img src="https://avatars.githubusercontent.com/u/141534430?v=4" width="100;" alt="Thisisafox"/>
<br />
<sub><b>屑狐狸</b></sub>
</a>
</td></tr>
</table>
<!-- readme: collaborators,contributors -end -->
![](https://img.shields.io/github/stars/LingASDJ/RW-API-Code?style=social) ![](https://img.shields.io/github/forks/LingASDJ/RW-API-Code?style=social&label=Fork)
### Netlify Status
[![Netlify Status](https://api.netlify.com/api/v1/badges/0196ec3f-1dd3-420a-be0c-abee4c0a1334/deploy-status)](https://app.netlify.com/sites/rwapi-code/deploys)
<br>
## 项目介绍:
- [x] RustedWarfare-Code 持续更新;
- [x] 一些额外的其他教程;
- [x] 在这里学到的不只是RTS-MOD
  自己所学记录,亦可以互相交流共享学习,<font color=#D0087E size=4 face="幼圆">**有朋自远方互联网而来,不亦悦乎?**</font>
本项目正在开发……
## 项目鸣谢人员:
> * Tobby3600--合作编辑LogicBoolean组代码
> * JDSALing--提供网站编写
> * 华夏有衣--提供Excel超级代码表
> * Luke-Hoschke--铁锈战争开发者
> * Cold_Mint--提供资源高速加载
> * 王某人--提供MT基础代码高亮文件
> * 十山月--合作编辑Action组代码
> * 指挥中心--提供LogicBoolean组代码例子
## 站点简介:
> * 本站点主要提供铁锈战争的代码API教程与指导皆在为铁锈带来更好的Mod质量。
> * 本站点提供--地图Mapping代码表单位Unit代码表调试Debug代码表。
> * 本站点还会提供更多的其他额外附加教程
## 开源协议
基于Apache License 2.0 协议进行分发和使用,更多信息参见[协议文件](/LICENSE)。
## 部署策略
请优先安装Node.js 16.0以上
然后使用以下指令:
# 开发说明
## 1.前提条件Node.js 18或以上
```文本
如果你没有Node.js你可以从下面的链接下载。
什么我不确定Node.js是什么
我建议立即关闭这个页面。
```
Node.js链接[Node.js](https://nodejs.org/zh-cn)
## 2.安装Vite Press
```bash
npm i docsify-cli -g
docsify serve docs
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
```
## 多人协作策略
请提交PR,并且说明提交的内容与介绍。
有关于文档书写规范,请阅读以下指南:
[RTS-Code-API--文档开发指南](https://lingasdj.github.io/RW-API-Code/#/DEV)
构建测试:
```bash
npm run docs:build
```
预览测试:
```bash
npm run docs:preview
```
## 5.线上测试
先申请贡献者名单来,之后直接修改主分支并提交。
警告:严禁恶意使用权限,主分支有备份,若乱改结构,一经查出,直接取消贡献者权限和剔除名单。
# 项目使用的许可证
[Apache许可证-2.0](https://github.com/LingASDJ/RW-API-Code/blob/main/LICENSE)

63
README_en.md Normal file
View File

@ -0,0 +1,63 @@
# 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)

View File

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

View File

@ -1,27 +0,0 @@
<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>
## 铁锈战争代码表1.15-API
## 项目鸣谢人员:
> * Tobby3600--合作编辑LogicBoolean组代码
> * JDSALing--提供网站编写
> * 华夏有衣--提供Excel超级代码表
> * Luke-Hoschke--铁锈战争开发者
> * Cold_Mint--提供资源高速加载
> * 王某人--提供MT基础代码高亮文件
> * 十山月--合作编辑Action组代码
> * 指挥中心--提供LogicBoolean组代码例子
# 站点简介:
> * 本站点主要提供铁锈战争的代码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>
<!-- 执行命令docsify serve docs -->

View File

@ -1,20 +0,0 @@
![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)

View File

@ -1,11 +0,0 @@
<!-- 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)

View File

@ -1 +0,0 @@
AAA

View File

@ -1,55 +0,0 @@
<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 -->

View File

@ -1,17 +0,0 @@
<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>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 966 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 438 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 441 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 409 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 514 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 495 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 876 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 222 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 515 KiB

View File

@ -1,472 +0,0 @@
<!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>

View File

@ -1,8 +0,0 @@
/**
* 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

View File

@ -1,42 +0,0 @@
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': /=/
};

View File

@ -1,9 +0,0 @@
/*!
* 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

View File

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

View File

@ -1 +0,0 @@
132

View File

@ -1,17 +0,0 @@
#
# 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,17 +0,0 @@
<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>

2056
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

16
package.json Normal file
View File

@ -0,0 +1,16 @@
{
"type": "module",
"scripts": {
"docs:dev": "vitepress dev rustedwarfareapicode",
"docs:build": "vitepress build rustedwarfareapicode || true",
"docs:preview": "vitepress preview rustedwarfareapicode"
},
"devDependencies": {
"vitepress": "^1.0.0-alpha.65"
},
"version": "0.0.2-Dev3.0",
"dependencies": {
"-": "^0.0.1",
"firebase": "^9.19.1"
}
}

View File

@ -0,0 +1,111 @@
import { defineConfig } from 'vitepress'
// https://vitepress.dev/reference/site-config
export default defineConfig({
title: "RW-API_Code",
description: "Easy Code",
cleanUrls: true,
themeConfig: {
// https://vitepress.dev/reference/default-theme-config
nav: [
{ text: '主页', link: '/' },
{ text: '单位API', link: '/src/Unit/core' },
{ text: '地图API', link: '/src/Map/teada' },
{ text: '调试API', link: '/src/Debug/test' },
{ text: '编写指南', link: '/api-dev' },
{ text: 'RW-Engine指南', link: '/src/RW-Engine/quick-start' },
{ text: '感谢名单', link: '/cos' }
],
docFooter: {
prev: "上一篇文章",
next: "下一篇文章",
},
sidebar: [
{
text: 'RW-API-Code',
items: [
{ text: '主页-Home', link: '/' },
{ text: '-------------------------', link: '' },
{ text: '[API-单位组-Unit]', link: '' },
{ text: '核心-CORE', link: '/src/Unit/core' },
{ text: '可建造-CANBUILD', link: '/src/Unit/canbuild' },
{ text: '附属-ATTACHMENT', link: '/src/Unit/attachment' },
{ text: '图像-GRAPHICS', link: '/src/Unit/graphics' },
{ text: '炮塔-TURRET', link: '/src/Unit/turret' },
{ text: '攻击-ATTACK', link: '/src/Unit/attack' },
{ text: '运动-MOVEMENT', link: '/src/Unit/movement' },
{ text: '逻辑-LOGIC', link: '/src/Unit/loginboolean' },
{ text: '刷兵/刷单位-SPAWN', link: '/src/Unit/spawnunit_spawnprojectile' },
{ text: '-------------------------', link: '' },
]
}
],
socialLinks: [
{ icon: 'github', link: 'https://github.com/LingASDJ/RW-API-Code/' }
],
footer: {
message: "Rosy-Code Ling Web Stuido",
copyright: "Copyright © 2023-RW-API-Code",
},
search: {
provider: 'local',
options: {
locales: {
zh: {
translations: {
button: {
buttonText: '搜索文档',
buttonAriaLabel: '搜索文档',
},
modal: {
noResultsText: '你干嘛~哎呦~无法找到相关结果',
resetButtonTitle: '清除查询条件',
footer: {
selectText: '选择',
navigateText: '切换',
closeText: '关闭',
closeKeyAriaLabel: '关闭',
selectKeyAriaLabel: '选择',
navigateUpKeyAriaLabel: '上一个',
navigateDownKeyAriaLabel: '下一个'
},
backButtonTitle: '返回上一级',
displayDetails: '显示详情'
}
}
}
},
translations: {
button: {
buttonText: '搜索文档',
buttonAriaLabel: '搜索文档',
},
modal: {
noResultsText: '无法找到相关结果',
resetButtonTitle: '清除查询条件',
footer: {
selectText: '选择',
navigateText: '切换',
closeText: '关闭',
closeKeyAriaLabel: '关闭',
selectKeyAriaLabel: '选择',
navigateUpKeyAriaLabel: '上一个',
navigateDownKeyAriaLabel: '下一个'
},
backButtonTitle: '返回上一级',
displayDetails: '显示详情'
}
}
}
}
}
})

View File

@ -0,0 +1,105 @@
<!--.vitepress/theme/MyLayout.vue-->
<script setup>
import DefaultTheme from "vitepress/theme";
const { Layout } = DefaultTheme;
</script>
<template>
<Layout>
<template #not-found>
<!-- 404界面 -->
<div
data-v-98ddab3d=""
data-v-8f7cd5e4=""
class="VPContent"
id="VPContent"
>
<div data-v-6c4a3ffe="" data-v-98ddab3d="" class="NotFound">
<img
src="https://rust.coldmint.top/ftp/ling/cdnpng/logo.png"
alt=""
class="notfound-img"
/>
<p data-v-6c4a3ffe="" class="code">404</p>
<h1 data-v-6c4a3ffe="" class="title">
你干嘛~这里什么都没有!
</h1>
<div data-v-6c4a3ffe="" class="divider"></div>
<blockquote data-v-6c4a3ffe="" class="quote">
你寻找的页面可能不存在或被迁移
</blockquote>
<div data-v-6c4a3ffe="" class="action">
<a
data-v-6c4a3ffe=""
class="link"
href="/"
aria-label="go to home"
>
返回主页
</a>
</div>
</div>
</div>
</template>
</Layout>
</template>
<style scoped>
.notfound-img {
margin: 0 auto;
max-width: 256px;
}
.NotFound {
padding: 64px 24px 96px;
text-align: center;
}
.code {
line-height: 64px;
font-size: 64px;
font-weight: 600;
}
.title {
padding-top: 12px;
letter-spacing: 2px;
line-height: 20px;
font-size: 20px;
font-weight: 700;
}
.divider {
margin: 24px auto 18px;
width: 64px;
height: 1px;
background-color: rgba(48, 52, 54, 0.12);
}
.quote {
color: var(--darkreader-text--vp-c-text-2);
}
.quote {
margin: 0 auto;
max-width: 256px;
font-size: 14px;
font-weight: 500;
color: var(--vp-c-text-2);
}
.action {
padding-top: 20px;
}
.link {
color: #4ff0ba;
border: 1px solid #10b981;
}
.link {
display: inline-block;
border: 1px solid #10b981;
border-radius: 16px;
padding: 3px 16px;
font-size: 14px;
font-weight: 500;
color: var(--vp-c-brand);
transition: border-color 0.25s, color 0.25s;
}
</style>

View File

@ -0,0 +1,115 @@
// .vitepress/theme/index.js
import DefaultTheme from "vitepress/theme";
import "./style/custom.css";
// Import the functions you need from the SDKs you need
import { initializeApp } from "firebase/app";
import { getAnalytics } from "firebase/analytics";
import { getPerformance } from "firebase/performance";
import NotFound from "../theme/NotFound.vue";
/**
* 初始化 Firebase
* @returns {Promise<string>} 初始化结果
*/
const initializeFirebase = () => {
const firebaseConfig = {
apiKey: "AIzaSyANVvapu0ihi1cM8ZzuXTkwjx9lM_J1RyQ",
authDomain: "rw-api-code-d0779.firebaseapp.com",
projectId: "rw-api-code-d0779",
storageBucket: "rw-api-code-d0779.appspot.com",
messagingSenderId: "363611843335",
appId: "1:363611843335:web:f15aef7ab427f52b4033a2",
measurementId: "G-XJH5TKP5VL",
};
// Initialize Firebase
const app = initializeApp(firebaseConfig);
const analytics = getAnalytics(app);
const perf = getPerformance(app);
return "Firebase initialized successfully";
};
(async function () {
try {
const result = await initializeFirebase();
console.log(result);
} catch (error) {
console.error(error);
}
})();
/**
* 等待指定时间
* @param {number} timeout 等待时间单位毫秒
* @returns {Promise<void>} 等待结果
* @example await wait(1000);
* @example wait(1000).then(() => console.log("timeout"));
*/
function wait(timeout) {
return new Promise((resolve) => setTimeout(resolve, timeout));
}
/**
* 请求剪贴板权限
* @returns {Promise<void>} 请求结果
* @example await requestClipboardPermission();
*/
async function requestClipboardPermission() {
try {
await navigator.permissions.query({ name: "clipboard-write" });
} catch (error) {
console.error(error);
}
}
/**
* 初始化
* @returns {Promise<void>} 初始化结果
* @example await init();
*/
async function init() {
try {
await wait(1000);
// console.log("timeout");
const copyBtnList = document.getElementsByClassName("copy");
// console.log(copyBtnList);
// console.log(copyBtnList.length);
for (let i = 0; i < copyBtnList.length; i++) {
const btn = copyBtnList[i];
btn.addEventListener("touchend", async () => {
// 请求剪贴板权限
await requestClipboardPermission();
const parentDiv = btn.parentNode;
const codeElem = parentDiv.querySelector("code");
const spans = [...codeElem.querySelectorAll("span")];
const textToCopy = [
...new Set(spans.map((span) => span.textContent)),
].join("");
// console.log(textToCopy);
try {
await navigator.clipboard.writeText(textToCopy);
// console.log("Text copied to clipboard");
} catch (error) {
const textarea = document.createElement("textarea");
textarea.value = textToCopy;
document.body.appendChild(textarea);
textarea.select();
document.execCommand("copy");
document.body.removeChild(textarea);
// console.log("Text copied to clipboard");
}
});
}
} catch (error) {
console.error(error);
}
}
init();
export default {
...DefaultTheme,
Layout: NotFound,
};

View File

@ -0,0 +1,176 @@
/**
* Colors: Solid
* -------------------------------------------------------------------------- */
:root {
--vp-c-white: #ffffff;
--vp-c-black: #000000;
--vp-c-neutral: var(--vp-c-black);
--vp-c-neutral-inverse: var(--vp-c-white);
}
.dark {
--vp-c-neutral: var(--vp-c-white);
--vp-c-neutral-inverse: var(--vp-c-black);
}
/**
* Colors: Palette
*
* The primitive colors used for accent colors. These colors are referenced
* by functional colors such as "Text", "Background", or "Brand".
*
* Each colors have exact same color scale system with 3 levels of solid
* colors with different brightness, and 1 soft color.
*
* - `XXX-1`: The most solid color used mainly for colored text. It must
* satisfy the contrast ratio against when used on top of `XXX-soft`.
*
* - `XXX-2`: The color used mainly for hover state of the button.
*
* - `XXX-3`: The color for solid background, such as bg color of the button.
* It must satisfy the contrast ratio with pure white (#ffffff) text on
* top of it.
*
* - `XXX-soft`: The color used for subtle background such as custom container
* or badges. It must satisfy the contrast ratio when putting `XXX-1` colors
* on top of it.
*
* The soft color must be semi transparent alpha channel. This is crucial
* because it allows adding multiple "soft" colors on top of each other
* to create a accent, such as when having inline code block inside
* custom containers.
* -------------------------------------------------------------------------- */
:root {
--vp-c-gray-1: #dddde3;
--vp-c-gray-2: #e4e4e9;
--vp-c-gray-3: #ebebef;
--vp-c-gray-soft: rgba(142, 150, 170, 0.14);
--vp-c-indigo-1: #18794e;
--vp-c-indigo-2: #299764;
--vp-c-indigo-3: #30a46c;
--vp-c-indigo-soft: rgba(16, 185, 129, 0.14);
--vp-c-green-1: #18794e;
--vp-c-green-2: #299764;
--vp-c-green-3: #30a46c;
--vp-c-green-soft: rgba(16, 185, 129, 0.14);
--vp-c-yellow-1: #915930;
--vp-c-yellow-2: #946300;
--vp-c-yellow-3: #9f6a00;
--vp-c-yellow-soft: rgba(234, 79, 8, 0.14);
--vp-c-red-1: #b8272c;
--vp-c-red-2: #d5393e;
--vp-c-red-3: #e0575b;
--vp-c-red-soft: rgba(244, 63, 94, 0.14);
--vp-c-sponsor: #db2777;
}
.dark {
--vp-c-gray-1: #515c67;
--vp-c-gray-2: #414853;
--vp-c-gray-3: #32363f;
--vp-c-gray-soft: rgba(101, 117, 133, 0.16);
--vp-c-indigo-1: #3dd68c;
--vp-c-indigo-2: #30a46c;
--vp-c-indigo-3: #298459;
--vp-c-indigo-soft: rgba(16, 185, 129, 0.16);
--vp-c-green-1: #3dd68c;
--vp-c-green-2: #30a46c;
--vp-c-green-3: #298459;
--vp-c-green-soft: rgba(16, 185, 129, 0.16);
--vp-c-yellow-1: #f9b44e;
--vp-c-yellow-2: #da8b17;
--vp-c-yellow-3: #a46a0a;
--vp-c-yellow-soft: rgba(234, 179, 8, 0.16);
--vp-c-red-1: #f66f81;
--vp-c-red-2: #f14158;
--vp-c-red-3: #b62a3c;
--vp-c-red-soft: rgba(244, 63, 94, 0.16);
}
/**
* Colors: Background
*
* - `bg`: The bg color used for main screen.
*
* - `bg-alt`: The alternative bg color used in places such as "sidebar",
* or "code block".
*
* - `bg-elv`: The elevated bg color. This is used at parts where it "floats",
* such as "dialog".
*
* - `bg-soft`: The bg color to slightly ditinguish some components from
* the page. Used for things like "carbon ads" or "table".
* -------------------------------------------------------------------------- */
:root {
--vp-c-bg: #ffffff;
--vp-c-bg-alt: #f6f6f7;
--vp-c-bg-elv: #ffffff;
--vp-c-bg-soft: #f6f6f7;
}
.dark {
--vp-c-bg: #1b1b1f;
--vp-c-bg-alt: #161618;
--vp-c-bg-elv: #202127;
--vp-c-bg-soft: #202127;
}
/**
* Colors: Borders
*
* - `divider`: This is used for separators. This is used to divide sections
* within the same components, such as having separator on "h2" heading.
*
* - `border`: This is designed for borders on interactive components.
* For example this should be used for a button outline.
*
* - `gutter`: This is used to divide components in the page. For example
* the header and the lest of the page.
* -------------------------------------------------------------------------- */
:root {
--vp-c-border: #c2c2c4;
--vp-c-divider: #e2e2e3;
--vp-c-gutter: #e2e2e3;
}
.dark {
--vp-c-border: #3c3f44;
--vp-c-divider: #2e2e32;
--vp-c-gutter: #000000;
}
/**
* Colors: Text
*
* - `text-1`: Used for primary text.
*
* - `text-2`: Used for muted texts, such as "inactive menu" or "info texts".
*
* - `text-3`: Used for subtle texts, such as "placeholders" or "caret icon".
* -------------------------------------------------------------------------- */
:root {
--vp-c-text-1: rgba(60, 60, 67);
--vp-c-text-2: rgba(60, 60, 67, 0.78);
--vp-c-text-3: rgba(60, 60, 67, 0.56);
}
.dark {
--vp-c-text-1: rgba(255, 255, 245, 0.86);
--vp-c-text-2: rgba(235, 235, 245, 0.6);
--vp-c-text-3: rgba(235, 235, 245, 0.38);
}

View File

@ -1,11 +1,16 @@
---
outline: deep
---
<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">
<img src="https://rust.coldmint.top/ftp/ling/cdnpng/logo.png">
</div>
> [!TIP] 0.如果你确定你想<font color=orange>帮忙开发此站点</font>,<br>
::: tip
0.如果你确定你想<font color=orange>帮忙开发此站点</font>,<br>
就可以点击右上角的Github按钮<font color=orange>Clone我们的库</font><br>
编写代码并进行PR申请我非常感谢你的帮忙感谢各位的支持与帮助。<br>
> 1.确保代码的解释通俗易懂,能让新手迅速入门<br>2.编写的代码应该以以下格式进行:
@ -15,43 +20,26 @@
4.代码的演示例子<br>
5.代码的扩展例子(可选)<br>
6.GIF演示/视频演示(可选)
:::
> [!TIP] 使用外部资源时请使用支持HTTPS协议的资源地址传输。<br>
::: tip
使用外部资源时请使用支持HTTPS协议的资源地址传输。<br>
否则在<font color=orange>Google Chrome等一系列以CEF的内核</font>上会因为强制替换HTTPS导致资源无法打开。
:::
> [!WARNING] 不能使用过于高深的说明,严禁出现谜语人话语,无用话语,任何玩梗,
::: warning
不能使用过于高深的说明,严禁出现谜语人话语,无用话语,任何玩梗,
夹带私货等一系列与本站无关的东西,违者将不能通过<font color=green>PR审核</font>
:::
> [!WARNING] 有一些代码或许有一些新的写法,或该写法可能已经废弃,如果遇到这些代码,编写者需要注明,并提供推荐代码。
::: warning
有一些代码或许有一些新的写法,或该写法可能已经废弃,如果遇到这些代码,编写者需要注明,并提供推荐代码。
:::
!> 为了更好的方便一起编写站点的贡献者,本站点提供了以下的<font color=green>扩展MD格式供各位书写</font>
::: info
为了更好的方便一起编写站点的贡献者,本站点提供了以下的<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)
@ -64,66 +52,108 @@
#### 部署策略:
!> 1.本地部署
::: info
1.本地部署
:::
> [!NOTE] 如果要本地测试,请确保设备有<font color=green>Node.js</font>
::: tip
如果要本地测试,请确保设备有<font color=green>Node.js</font>
并在项目根目录使用以下命令:<br>
> npm i docsify-cli -g<br>docsify serve docs
:::
!> 2.Netlify部署
::: info
2.Netlify部署
:::
> [!NOTE] 如果你已经发送了PR请求可以通过我的Netlify预览站点进行预览<br>
::: tip
如果你已经发送了PR请求可以通过我的Netlify预览站点进行预览<br>
Netlify会在你的PR请求下面显示你的预览页面地址。<br>
如下图所示,点击<b><font color=orange>😎 Deploy Preview后面的链接</font></b>即可看见效果<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
***
#### 1.MD扩展格式
```
#### 表格推荐格式
::: info
信息文本
:::
::: tip
小提示文本
:::
::: warning
警告文本
:::
::: danger
危险文本
:::
::: details
这是一个折叠框
:::
#### 代码突出显示
::: code-group
```ini{2} [演示例子]
[action_copyArry]
RTS-APICODE
可以通过1-4来让1到4行突出显示
也可以通过1,4,5来指定行数突出显示
```
#### 实际格式演示:
::: tip
注意文本
:::
::: info
信息文本
:::
::: tip
小提示文本
:::
::: warning
警告文本
:::
::: danger
危险文本
:::
::: details
这是一个折叠框
:::
```ini{2} [演示例子]
[action_copyArry]
RTS-APICODE
//代码突出演示
可以通过1-4来让1到4行突出显示
也可以通过1,4,5来指定行数突出显示
```
### 2.媒体插入
#### 1.视频演示---(可选)
<iframe src="https://vdse.bdstatic.com//192d9a98d782d9c74c96f09db9378d93.mp4" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" width="100%" height="400">
</iframe>
```html
<iframe src="视频地址" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" width="100%" height="400">
</iframe>
```
#### 3.插入表格
### 代码演示:
|A|B|C|
@ -141,7 +171,7 @@ xxxx
如果你仍然不会Markdown表格写法这里给你一个链接
<h3><a href="https://tableconvert.com/zh-cn/markdown-to-markdown" target="_blank">TableConvert-MD-点击进入</a></h3>
### 扩展写法(高级)
### 4.扩展写法(高级)
有一些时候,我们可能需要在已经标记的后面再添加东西,
但Markdown解析方式在标签后面再有一个标签就不会识别了。
@ -151,6 +181,10 @@ xxxx
<!-- MarkDown表格必须有上方的分割线以告诉浏览器是表格 -->
!> 该文档可能还有很多缺陷如果你有更好的建议请发送Issues或者PR给我。
::: tip
该文档可能还有很多缺陷如果你有更好的建议请发送Issues或者PR给我。
:::
?> 编写于2023-3-9 RTS-Code-API[第2版-第2次修订]
::: info
编写于2023-5-9 RTS-Code-API[第3版-第3次修订]
:::

View File

@ -0,0 +1,87 @@
### 站点开发贡献者-截止到2023-8-22
<!-- readme: collaborators,contributors -start -->
<table>
<tr>
<td align="center">
<a href="https://github.com/shishanyue">
<img src="https://avatars.githubusercontent.com/u/62888460?v=4" width="100;" alt="shishanyue"/>
<br />
<sub><b>Shishanyue</b></sub>
<br>RWE作者
<br>第一深度
</a>
</td>
<td align="center">
<a href="https://github.com/LingASDJ">
<img src="https://avatars.githubusercontent.com/u/70191651?v=4" width="100;" alt="LingASDJ"/>
<br />
<sub><b>JDSA Ling</b></sub>
<br>站长
</a>
</td>
<td align="center">
<a href="https://github.com/tobby3600">
<img src="https://avatars.githubusercontent.com/u/79432329?v=4" width="100;" alt="tobby3600"/>
<br />
<sub><b>Tobby</b></sub>
<br>逻辑组
</a>
</td>
<td align="center">
<a href="https://github.com/mason369">
<img src="https://avatars.githubusercontent.com/u/93964390?v=4" width="100;" alt="mason369"/>
<br />
<sub><b>Mason</b></sub>
<br>技术支持
<br>副站长
</a>
</td>
<td align="center">
<a href="https://github.com/liusxs">
<img src="https://avatars.githubusercontent.com/u/101164913?v=4" width="100;" alt="liusxs"/>
<br />
<sub><b>Liuliu</b></sub>
<br>布局优化
<br>副站长
</a>
</td>
<td align="center">
<a href="https://github.com/allureluoli">
<img src="https://avatars.githubusercontent.com/u/106828088?v=4" width="100;" alt="allureluoli"/>
<br />
<sub><b>二月</b></sub>
<br>图像组
<br>二月可爱捏
</a>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/WisenextTime">
<img src="https://avatars.githubusercontent.com/u/141509640?v=4" width="100;" alt="WisenextTime"/>
<br />
<sub><b>作业中毒</b></sub>
<br>刷兵运动组
<br>催逝员
</a>
</td>
<td align="center">
<a href="https://github.com/Thisisafox">
<img src="https://avatars.githubusercontent.com/u/141534430?v=4" width="100;" alt="Thisisafox"/>
<br />
<sub><b>屑狐狸</b></sub>
<br>附属攻击组
<br>大聪明
</a>
</td>
<td align="center">
<a href="#">
<img src="https://avatars.githubusercontent.com/in/29110?s=64&v=4" width="100;" alt="Thisisafox"/>
<br />
<sub><b>???</b></sub>
<br>更多贡献者
<br>等待你的到来
</a>
</td>
</tr>
</table>
<!-- readme: collaborators,contributors -end -->

View File

@ -0,0 +1,43 @@
---
layout: home
action:
hero:
name: 铁锈战争-API-Code
text: 轻松编码,轻松学习
tagline: 学习Mod,制作Mod,创新Mod
image:
src: https://rust.coldmint.top/ftp/ling/cdnpng/logo.png
alt: RW-API-Code
actions:
- theme: alt
text: 编写指南
link: /api-dev
# - theme: brand
# text: 常见问题
# link: /src/question/
- theme: brand
text: Github
link: https://github.com/LingASDJ/RW-API-Code
features:
- title: 单位代码表
details: 学习最基础的铁锈单位API-Code
link: /src/Unit/core
linkText: 让我们立刻开始吧!
- title: 地图代码表
details: 学习铁锈的地图TMX代码表
linkText: 让我们立刻开始吧![开发中]
- title: 调试代码表
details: 学习铁锈的高级调试代码表(仅Android)
linkText: 让我们立刻开始吧![开发中]
- title: RW-Engine指南
details: 学习铁锈Mod RW-Engine的使用(仅Android)
link: /src/RW-Engine/quick-start
linkText: 让我们立刻开始吧![开发中]
---

View File

@ -0,0 +1 @@
fasa

View File

@ -0,0 +1,87 @@
---
outline: deep
---
# **QuickStart**
## 一.安装RW-Engine
### 下载RW-Engine
蓝奏云:
### 安装RW-Engine
解压下载的ZIP将里面的RW_Engine这个文件夹整个复制到你的mod的目录下。
文件结构:
---units
---你的mod1
---RW_Engine
---mod-info.txt
---.........
---你的mod2
## 二.使用RW-Engine
::: tip
如没特殊注明函数均支持commonCallBack
:::
### LineTextView-函数列表
::: info
函数列表:
1.setText \
Data: ("text",type="string") \
设置显示的文本 \
2.setTextMax \
Data: ("textMax",type="number") \
设置一行所能显示的最大文本数量 \
3.setTextColor \
Data: ("commonHeadLength",type="number") ("indexStart",type="number") ("indexEnd",type="number") ("color",type="number") \
设置文本的颜色 \
4.setTextScale \
Data: ("textScale",type="number") \
设置文本的缩放
:::
### LineTextView-使用
LineTextView作为RW-Engine最基本的组件
<br>
默认以ini被铁锈加载。
<br>
所以使用LineTextView有俩种方式
<br>
第一种是spawnUnits生成一个LineTextView
<br>
或者在附属添加LineTextView
<br>
第二种是copyForm这个ini
<br>
::: info
第一种方式
:::
<br>
```ini
[core]
@memory LTVSystem:unit
[hiddenAction_created]
autoTriggerOnEvent:created
resetCustomTimer:true
#创建文本框
spawnUnits:LineTextViewSystem
#文本框会自动发送tag为addLTVSystemToEpoll给该单位
[hiddenAction_addLTVSystemToEpoll]
autoTriggerOnEvent:newMessage(withTag="addLTVSystemToEpoll")
setUnitMemory:LTVSystem = eventSource
[action_setTextTest]
text:setText
isVisible:true
sendMessageTo:memory.LTVSystem
sendMessageWithTags:setText
sendMessageWithData:text="B站关注学画画的十山月"
```

View File

@ -0,0 +1,434 @@
---
outline: deep
---
# **[attachment]组**
## 第一类-附属代码组
### x/y
#### x/y-代码简介
代码:x/y 中文释义:x坐标/y坐标 类型:逻辑布尔值LogicBoolean 隶属于:附属代码组
#### x/y-要点指示
相对主体单位的x偏移坐标/y偏移坐标
#### x/y-演示例子
```ini
[attachment_1]
x:10
y:10
```
<hr>
### height
#### height-代码简介
代码:height 中文释义:高度 类型:浮点值float 隶属于:附属代码组
#### height-要点指示
附属基于主体单位的高度
#### height-演示例子
```ini
[attachment_1]
height:10.5
```
<hr>
### idleDir
#### idleDir-代码简介
代码:idleDir 中文释义:闲置角度 类型:浮点值float 隶属于:附属代码组
#### idleDir-要点指示
闲置时的角度
#### idleDir-演示例子
```ini
[attachment_1]
idleDir:45
```
<hr>
### idleDirReversing
#### idleDirReversing-代码简介
代码:idleDirReversing 中文释义:闲置角度反转 类型:布尔值bool 隶属于:附属代码组
#### idleDirReversing-要点指示
闲置时的角度在部分情况下反转
#### idleDirReversing-演示例子
```ini
[attachment_1]
idleDirReversing:true
```
<hr>
### isVisible
#### isVisible-代码简介
代码:isVisible 中文释义:是可见的 类型:逻辑布尔值LogicBoolean 隶属于:附属代码组
#### isVisible-要点指示
输出false时隐藏附属内单位
#### isVisible-演示例子
```ini
[attachment_1]
isVisible:if self.hp>=100
```
<hr>
### hidden
#### hidden-代码简介
代码:hidden 中文释义:隐藏 类型:布尔值bool 隶属于:附属代码组
#### hidden-要点指示
隐藏此附属内的单位
#### hidden-演示例子
```ini
[attachment_1]
hidden:true
```
<hr>
### onCreateSpawnUnitOf
#### onCreateSpawnUnitOf-代码简介
代码:onCreateSpawnUnitOf 中文释义:创建添加单位 类型:单位unit 隶属于:附属代码组
#### onCreateSpawnUnitOf-要点指示
创建时向此附属位添加的单位
#### onCreateSpawnUnitOf-演示例子
```ini
[attachment_1]
onCreateSpawnUnitOf:tank
```
<hr>
### canBeAttackedAndDamaged
#### canBeAttackedAndDamaged-代码简介
代码:canBeAttackedAndDamaged 中文释义:可被攻击或伤害 类型:布尔值bool 隶属于:附属代码组
#### canBeAttackedAndDamaged-要点指示
设置此附属内的单位可被攻击或伤害
#### canBeAttackedAndDamaged-演示例子
```ini
[attachment_1]
canBeAttackedAndDamaged:true
```
<hr>
### isUnselectable
#### isUnselectable-代码简介
代码:isUnselectable 中文释义:无法选择 类型:布尔值bool 隶属于:附属代码组
#### isUnselectable-要点指示
此附属内的单位无法被选中或框选
#### isUnselectable-演示例子
```ini
[attachment_1]
isUnselectable:true
```
<hr>
### isUnselectableAsTarget
#### isUnselectableAsTarget-代码简介
代码:isUnselectableAsTarget 中文释义:禁止选择和作为目标 类型:布尔值bool 隶属于:附属代码组
#### isUnselectableAsTarget-要点指示
此附属内的单位无法被选择和作为目标
#### isUnselectableAsTarget-演示例子
```ini
[attachment_1]
isUnselectableAsTarget:true
```
<hr>
### lockLegMovement
#### lockLegMovement-代码简介
代码:lockLegMovement 中文释义:锁定腿脚运动 类型:布尔值bool 隶属于:附属代码组
#### lockLegMovement-要点指示
锁定此附属内的单位的腿脚
#### lockLegMovement-演示例子
```ini
[attachment_1]
lockLegMovement:true
```
<hr>
### freezeLegMovement
#### freezeLegMovement-代码简介
代码:freezeLegMovement 中文释义:冻结腿脚运动 类型:布尔值bool 隶属于:附属代码组
#### freezeLegMovement-要点指示
相较于锁定腿脚更好用,可以避免锁定腿脚的腿脚乱动
#### freezeLegMovement-演示例子
```ini
[attachment_1]
freezeLegMovement:true
```
<hr>
### hideHp
#### hideHp-代码简介
代码:hideHp 中文释义:隐藏血条 类型:布尔值bool 隶属于:附属代码组
#### hideHp-要点指示
隐藏此附属内的单位的血量
#### hideHp-演示例子
```ini
[attachment_1]
hideHp:true
```
<hr>
### showMiniHp
#### showMiniHp-代码简介
代码:showMiniHp 中文释义:显示迷你血条 类型:布尔值bool 隶属于:附属代码组
#### showMiniHp-要点指示
显示此附属内的单位的迷你血条
如果hideHp:true时则此条强制false
#### showMiniHp-演示例子
```ini
[attachment_1]
showMiniHp:true
```
<hr>
### keepAliveWhenParentDies
#### keepAliveWhenParentDies-代码简介
代码:keepAliveWhenParentDies 中文释义:保持子单位存活 类型:布尔值bool 隶属于:附属代码组
#### keepAliveWhenParentDies-要点指示
主体单位死亡后此附属内的单位保持存活
#### keepAliveWhenParentDies-演示例子
```ini
[attachment_1]
keepAliveWhenParentDies:true
```
<hr>
### setDrawLayerOnTop
#### setDrawLayerOnTop-代码简介
代码:setDrawLayerOnTop 中文释义:绘制在顶层 类型:布尔值bool 隶属于:附属代码组
#### setDrawLayerOnTop-要点指示
此附属内的单位绘制在主体单位的顶层
#### setDrawLayerOnTop-演示例子
```ini
[attachment_1]
setDrawLayerOnTop:true
```
<hr>
### setDrawLayerOnBottom
#### setDrawLayerOnBottom-代码简介
代码:setDrawLayerOnBottom 中文释义:绘制在底层 类型:布尔值bool 隶属于:附属代码组
#### setDrawLayerOnBottom-要点指示
此附属内的单位绘制在主体单位的底层
#### setDrawLayerOnBottom-演示例子
```ini
[attachment_1]
setDrawLayerOnBottom:true
```
<hr>
### addTransportedUnits
#### addTransportedUnits-代码简介
代码:addTransportedUnits 中文释义:添加被运输单位 类型:布尔值bool 隶属于:附属代码组
#### addTransportedUnits-要点指示
单位进入运输时,进入附属内
#### addTransportedUnits-演示例子
```ini
[attachment_1]
addTransportedUnits:true
```
<hr>
### lockRotation
#### lockRotation-代码简介
代码:lockRotation 中文释义:锁定旋转 类型:布尔值bool 隶属于:附属代码组
#### lockRotation-要点指示
锁定此附属内的单位的角度,禁止旋转
#### lockRotation-演示例子
```ini
[attachment_1]
lockRotation:true
```
<hr>
### rotateWithParent
#### rotateWithParent-代码简介
代码:rotateWithParent 中文释义:子单位一同旋转 类型:布尔值bool 隶属于:附属代码组
#### rotateWithParent-要点指示
子单位与父单位一起旋转
#### rotateWithParent-演示例子
```ini
[attachment_1]
rotateWithParent:true
```
<hr>
### resetRotationWhenNotAttacking
#### resetRotationWhenNotAttacking-代码简介
代码:resetRotationWhenNotAttacking 中文释义:不攻击时重置角度 类型:布尔值bool 隶属于:附属代码组
#### resetRotationWhenNotAttacking-要点指示
子单位不攻击时旋转回闲置角度
#### resetRotationWhenNotAttacking-演示例子
```ini
[attachment_1]
resetRotationWhenNotAttacking:true
```
<hr>
### deattachIfWantingToMove
#### deattachIfWantingToMove-代码简介
代码:deattachIfWantingToMove 中文释义:移动时脱离 类型:布尔值bool 隶属于:附属代码组
#### deattachIfWantingToMove-要点指示
子单位拥有路径时自动脱离附属
#### deattachIfWantingToMove-演示例子
```ini
[attachment_1]
deattachIfWantingToMove:true
```
<hr>
### prioritizeParentsMainTarget
#### prioritizeParentsMainTarget-代码简介
代码:prioritizeParentsMainTarget 中文释义:优先攻击父单位主要目标 类型:布尔值bool 隶属于:附属代码组
#### prioritizeParentsMainTarget-要点指示
父单位攻击时子单位优先攻击父单位攻击的目标
#### prioritizeParentsMainTarget-演示例子
```ini
[attachment_1]
prioritizeParentsMainTarget:true
```
<hr>
### alwaysAllowedToAttackParentsMainTarget
#### alwaysAllowedToAttackParentsMainTarget-代码简介
代码:alwaysAllowedToAttackParentsMainTarget 中文释义:总是攻击父单位主要目标 类型:布尔值bool 隶属于:附属代码组
#### alwaysAllowedToAttackParentsMainTarget-要点指示
子单位总是跟随攻击父单位攻击的目标
#### alwaysAllowedToAttackParentsMainTarget-演示例子
```ini
[attachment_1]
alwaysAllowedToAttackParentsMainTarget:true
```
<hr>
### onlyAttackParentsMainTarget
#### onlyAttackParentsMainTarget-代码简介
代码:lockRotation 中文释义:只攻击父单位的主要目标 类型:布尔值bool 隶属于:附属代码组
#### onlyAttackParentsMainTarget-要点指示
子单位与父单位攻击目标必定相同
就算子单位攻击范围内有敌人但父单位攻击范围内没有此敌人则子单位无法攻击此敌人
#### onlyAttackParentsMainTarget-演示例子
```ini
[attachment_1]
onlyAttackParentsMainTarget:true
```
<hr>
### onParentTeamChangeKeepCurrentTeam
#### onParentTeamChangeKeepCurrentTeam-代码简介
代码:onParentTeamChangeKeepCurrentTeam 中文释义:改变队伍时子单位保持原队伍 类型:布尔值bool 隶属于:附属代码组
#### onParentTeamChangeKeepCurrentTeam-要点指示
父单位队伍改变时子单位队伍不改变
#### onParentTeamChangeKeepCurrentTeam-演示例子
```ini
[attachment_1]
onParentTeamChangeKeepCurrentTeam:true
```
<hr>
### smoothlyBlendPositionWhenExistingUnitAdded
#### smoothlyBlendPositionWhenExistingUnitAdded-代码简介
代码:smoothlyBlendPositionWhenExistingUnitAdded 中文释义:补充时平滑移动 类型:布尔值bool 隶属于:附属代码组
#### smoothlyBlendPositionWhenExistingUnitAdded-要点指示
补充运输单位至槽位时平滑移动
#### smoothlyBlendPositionWhenExistingUnitAdded-演示例子
```ini
[attachment_1]
smoothlyBlendPositionWhenExistingUnitAdded:true
```
<hr>
### keepWaypointsNeedingMovement
#### keepWaypointsNeedingMovement-代码简介
代码:keepWaypointsNeedingMovement 中文释义:保持需要移动路径点 类型:布尔值bool 隶属于:附属代码组
#### keepWaypointsNeedingMovement-要点指示
默认值为false为false时队列中任何需要移动才能完成的队列路径点都会被移除
#### keepWaypointsNeedingMovement-演示例子
```ini
[attachment_1]
keepWaypointsNeedingMovement:true
```
<hr>
### showAllActionsFrom
#### showAllActionsFrom-代码简介
代码:showAllActionsFrom 中文释义:显示所有操作来源 类型:逻辑布尔值LogicBoolean 隶属于:附属代码组
#### showAllActionsFrom-要点指示
父单位显示子单位的全部行动
#### showAllActionsFrom-演示例子
```ini
[attachment_1]
showAllActionsFrom:if self.ammo==1
```
<hr>
### createIncompleteIfParentIs
#### createIncompleteIfParentIs-代码简介
代码:createIncompleteIfParentIs 中文释义:创建随父单位 类型:布尔值bool 隶属于:附属代码组
#### createIncompleteIfParentIs-要点指示
父单位创建时子单位同步创建
且子单位建造进度与父单位建造进度相同
#### createIncompleteIfParentIs-演示例子
```ini
[attachment_1]
createIncompleteIfParentIs:true
```
<hr>
### redirectDamageToParent
#### redirectDamageToParent-代码简介
代码:redirectDamageToParent 中文释义:附属受伤转给父单位 类型:布尔值bool 隶属于:附属代码组
#### redirectDamageToParent-要点指示
子单位受伤时将伤害传给父单位
#### redirectDamageToParent-演示例子
```ini
[attachment_1]
redirectDamageToParent:true
```
<hr>
### redirectDamageToParent_shieldOnly
#### redirectDamageToParent_shieldOnly-代码简介
代码:redirectDamageToParent_shieldOnly 中文释义:附属受伤转给父单位的护盾 类型:布尔值bool 隶属于:附属代码组
#### redirectDamageToParent_shieldOnly-要点指示
子单位受伤时将伤害传给父单位
如果父单位护盾为空则无法将伤害传给父单位
#### redirectDamageToParent_shieldOnly-演示例子
```ini
[attachment_1]
redirectDamageToParent_shieldOnly:true
```
<hr>
## 第二类-未知代码组
### lockDir
#### lockDir-代码简介
代码:lockDir 中文释义:锁定角度 类型:布尔值bool 隶属于:未知代码组
#### lockDir-要点指示
未知
#### lockDir-演示例子
```ini
[attachment_1]
lockDir:true
```
<hr>
### unloadInCurrentPosition
#### unloadInCurrentPosition-代码简介
代码:lockRotation 中文释义:卸载于此位置 类型:布尔值bool 隶属于:未知代码组
#### unloadInCurrentPosition-要点指示
未知
#### unloadInCurrentPosition-演示例子
```ini
[attachment_1]
unloadInCurrentPosition:true
```
<hr>
### onConvertKeepExistingUnitInSameSlot
#### onConvertKeepExistingUnitInSameSlot-代码简介
代码:onConvertKeepExistingUnitInSameSlot 中文释义:转换时附属仍然在同一槽位中 类型:布尔值bool 隶属于:未知代码组
#### onConvertKeepExistingUnitInSameSlot-要点指示
未知
#### onConvertKeepExistingUnitInSameSlot-演示例子
```ini
[attachment_1]
onConvertKeepExistingUnitInSameSlot:true
```
<hr>

View File

@ -0,0 +1,332 @@
---
outline: deep
---
# **[attack]组**
## 第一类-基础攻击代码组
::: tip
以下的代码为`通用代码`,多半是必要的代码,如果不包括这些,可能在`绝大多数情况下导致错误`。
:::
::: info
此处攻击代码均可以在炮塔节进行覆盖
:::
### canAttack
#### canAttack-代码简介
代码:canAttack 中文释义:可攻击 类型:布尔值bool 隶属于:基础攻击代码组
#### canAttack-要点指示
设置单位是否能攻击
#### canAttack-演示例子
```ini
[attack]
canAttack:true
```
<hr>
### canAttackLandUnits
#### canAttackLandUnits-代码简介
代码:canAttackLandUnits 中文释义:可攻击表面单位 类型:逻辑布尔值LogicBoolean 隶属于:基础攻击代码组
#### canAttackLandUnits-要点指示
设置单位是否能对地面目标攻击
#### canAttackLandUnits-演示例子
```ini
[attack]
canAttackLandUnits:if self.ammo>=2
```
<hr>
### canAttackFlyingUnits
#### canAttackFlyingUnits-代码简介
代码:canAttackFlyingUnits 中文释义:可攻击空中单位 类型:逻辑布尔值LogicBoolean 隶属于:基础攻击代码组
#### canAttackFlyingUnits-要点指示
设置单位是否能对空中目标攻击
#### canAttackFlyingUnits-演示例子
```ini
[attack]
canAttackFlyingUnits:if self.ammo>=2
```
<hr>
### canAttackUnderwaterUnits
#### canAttackUnderwaterUnits-代码简介
代码:canAttackUnderwaterUnits 中文释义:可攻击水下单位 类型:逻辑布尔值LogicBoolean 隶属于:基础攻击代码组
#### canAttackUnderwaterUnits-要点指示
设置单位是否能对潜水目标攻击
#### canAttackUnderwaterUnits-演示例子
```ini
[attack]
canAttackUnderwaterUnits:if self.ammo>=2
```
<hr>
### canAttackNotTouchingWaterUnits
#### canAttackNotTouchingWaterUnits-代码简介
代码:canAttackNotTouchingWaterUnits 中文释义:可攻击非接触水单位 类型:逻辑布尔值LogicBoolean 隶属于:基础攻击代码组
#### canAttackNotTouchingWaterUnits-要点指示
设置单位是否能对不在水中的目标攻击
#### canAttackNotTouchingWaterUnits-演示例子
```ini
[attack]
canAttackNotTouchingWaterUnits:if self.ammo>=2
```
<hr>
## 第二类-攻击代码组
::: tip
非必须存在的代码,根据情况自行使用
:::
### canOnlyAttackUnitsWithTags
#### canOnlyAttackUnitsWithTags-代码简介
代码:canOnlyAttackUnitsWithTags 中文释义:只攻击带特定标签单位 类型:标签tag 隶属于:攻击代码组
#### canOnlyAttackUnitsWithTags-要点指示
设置单位只能攻击携带此标签的目标
#### canOnlyAttackUnitsWithTags-演示例子
```ini
[attack]
canOnlyAttackUnitsWithTags:标签
```
<hr>
### canOnlyAttackUnitsWithoutTags
#### canOnlyAttackUnitsWithTags-代码简介
代码:canOnlyAttackUnitsWithoutTags 中文释义:不攻击带特定标签单位 类型:标签tag 隶属于:攻击代码组
#### canOnlyAttackUnitsWithoutTags-要点指示
设置单位不能攻击携带此标签的目标
#### canOnlyAttackUnitsWithoutTags-演示例子
```ini
[attack]
canOnlyAttackUnitsWithoutTags:标签
```
<hr>
### turretMultiTargeting
#### turretMultiTargeting-代码简介
代码:turretMultiTargeting 中文释义:炮塔攻击多目标 类型:布尔值bool 隶属于:攻击代码组
#### turretMultiTargeting-要点指示
设置单位是否允许炮塔攻击不同目标,对范围限制 角度限制 不同类型炮塔很有用
#### turretMultiTargeting-演示例子
```ini
[attack]
turretMultiTargeting:true
```
<hr>
### dieOnAttack/removeOnAttack
#### dieOnAttack-代码简介
代码:dieOnAttack/removeOnAttack中文释义:自爆攻击/移除攻击 类型:布尔值bool 隶属于:攻击代码组
#### dieOnAttack-要点指示
设置单位是否在攻击时自毁
#### removeOnAttack-要点指示
设置单位是否在攻击时移除自身
#### dieOnAttack/removeOnAttack-演示例子
```ini
[attack]
dieOnAttack:true
removeOnAttack:true
```
<hr>
### isFixedFiring
#### isFixedFiring-代码简介
代码:isFixedFiring 中文释义:固定射击 类型:布尔值bool 隶属于:攻击代码组
#### isFixedFiring-要点指示
设置单位炮塔是否需要必须对准敌人才能攻击
#### isFixedFiring-演示例子
```ini
[attack]
isFixedFiring:true
```
<hr>
### stopTargetingAfterFiring
#### stopTargetingAfterFiring-代码简介
代码:stopTargetingAfterFiring 中文释义:自动停火 类型:布尔值bool 隶属于:攻击代码组
#### stopTargetingAfterFiring-要点指示
设置单位在攻击后是否停止攻击
#### stopTargetingAfterFiring-演示例子
```ini
[attack]
stopTargetingAfterFiring:true
```
<hr>
### disablePassiveTargeting
#### disablePassiveTargeting-代码简介
代码:disablePassiveTargeting 中文释义:不能主动攻击 类型:布尔值bool 隶属于:攻击代码组
#### disablePassiveTargeting-要点指示
设置单位是否需要手动指定目标才能攻击,由于attack路径点回在目标死亡后会重新选定目标,导致此条代码失效
#### disablePassiveTargeting-演示例子
```ini
[attack]
disablePassiveTargeting:true
```
<hr>
### isMelee
#### isMelee-代码简介
代码:isMelee 中文释义:近战 类型:布尔值bool 隶属于:攻击代码组
#### isMelee-要点指示
设置单位是否拥有近战逻辑,如单位攻击时不需要瞄准到目标中心,只需要瞄准到半径内,同时自动索敌
#### isMelee-演示例子
```ini
[attack]
isMelee:true
```
<hr>
### meleeEngangementDistance
#### meleeEngangementDistance-代码简介
代码:meleeEngangementDistance 中文释义:近战索敌距离 类型:整数int 隶属于:攻击代码组
#### meleeEngangementDistance-要点指示
设置单位的近战逻辑索敌距离,与isMelee结合使用,最高1500
#### meleeEngangementDistance-演示例子
```ini
[attack]
meleeEngangementDistance:1500
```
<hr>
## 第三类-攻击属性代码组
::: tip
以下的代码为`属性代码`,优先级低于炮塔节的代码,如果炮塔节未填写覆盖则使用此处的属性。
:::
### turretSize
#### turretSize-代码简介
代码:turretSize 中文释义:炮塔大小 类型:浮点值float 隶属于:攻击属性代码组
#### turretSize-要点指示
设置单位炮塔大小按像素修改炮塔开火位置在炮塔节使用size覆盖
#### turretSize-演示例子
```ini
[attack]
turretSize:20
```
<hr>
### turretTurnSpeed
#### turretTurnSpeed-代码简介
代码:turretTurnSpeed 中文释义:炮塔转速 类型:浮点值float 隶属于:攻击属性代码组
#### turretTurnSpeed-要点指示
设置单位炮塔的旋转速度按帧转动炮塔如60帧1速就是1秒旋转60度在炮塔节使用turnSpeed覆盖
#### turretTurnSpeed-演示例子
```ini
[attack]
turretTurnSpeed:2
```
<hr>
### shootDelay
#### shootDelay-代码简介
代码:shootDelay 中文释义:攻击间隔 类型:浮点值float 隶属于:攻击属性代码组
#### shootDelay-要点指示
设置单位炮塔的攻击间隔按帧或按时间修改如填写60可以更换成1s在炮塔节使用delay覆盖
#### shootDelay-演示例子
```ini
[attack]
shootDelay:60
```
<hr>
### maxAttackRange
#### maxAttackRange-代码简介
代码:maxAttackRange 中文释义:攻击距离 类型:整数int 隶属于:攻击属性代码组
#### maxAttackRange-要点指示
设置单位炮塔的攻击距离在炮塔节使用limitingRange覆盖
::: details
limitingRange不能超过maxAttackRange如果炮塔都使用了limitingRange那此处需要删除maxAttackRange
:::
#### maxAttackRange-演示例子
```ini
[attack]
maxAttackRange:1000
```
<hr>
### aimOffsetSpread
#### aimOffsetSpread-代码简介
代码:aimOffsetSpread 中文释义:攻击偏移 类型:浮点值float 隶属于:攻击属性组
#### aimOffsetSpread-要点指示
攻击时按照敌人半径乘对应值进行位置偏移填0时攻击中心
#### aimOffsetSpread-演示例子
```ini
[attack]
aimOffsetSpread:0.6
```
<hr>
### shootDelayMultiplier/shootDamageMultiplier
#### shootDelayMultiplier/shootDamageMultiplier-代码简介
代码:shootDelayMultiplier/shootDamageMultiplier 中文释义:攻击间隔乘数/攻击伤害乘数 类型:浮点值 隶属于:攻击属性代码组
#### shootDelayMultiplier/shootDamageMultiplier-要点指示
设置单位的攻击间隔乘数和攻击伤害乘数在行动节使用setUnitStats修改
#### shootDelayMultiplier/shootDamageMultiplier-演示例子
```ini
[action_1]
setUnitStats:shootDelayMultiplier=0.8,shootDamageMultiplier=1.4
```
<hr>
## 第四类-显示相关组
::: code-group
``` bash [屑狐狸]
以下的代码为`显示代码`,用于让单位在攻击时效果更好
对于部分有对应需求的单位来说这部分较为有用
```
:::
### setMainTurretAs
#### setMainTurretAs-代码简介
代码:setMainTurretAs 中文释义:设置主炮塔 类型:炮塔turret ref 隶属于:显示相关组
#### setMainTurretAs-要点指示
设置单位主炮塔
#### setMainTurretAs-演示例子
```ini
[attack]
setMainTurretAs:31
```
<hr>
### turretRotateWithBody
#### turretRotateWithBody-代码简介
代码:turretRotateWithBody 中文释义:炮塔跟随主体旋转 类型:布尔值bool 隶属于:显示相关组
#### turretRotateWithBody-要点指示
设置单位炮塔跟随主体旋转,比如重型拦截机
#### turretRotateWithBody-演示例子
```ini
[attack]
turretRotateWithBody:true
```
<hr>
### attackMovement
#### attackMovement-代码简介
代码:attackMovement 中文释义:攻击移动类型 类型:字符串string 隶属于:显示相关组
#### attackMovement-要点指示
设置单位攻击移动类型
::: tip
可填类型如下
|类型|normal|bomber|moveaway|strafing|
|-|-|-|-|-
|效果|无|轰炸机|无效|无效|
:::
#### attackMovement-演示例子
```ini
[attack]
attackMovement:bomber
```
<hr>
### showRangeUIGuide
#### showRangeUIGuide-代码简介
代码:showRangeUIGuide 中文释义:显示范围UI 类型:布尔值bool 隶属于:显示相关组
#### showRangeUIGuide-要点指示
是否显示范围UI如默认不显示的小范围填写true则会显示范围比如瞭望塔
#### showRangeUIGuide-演示例子
```ini
[attack]
showRangeUIGuide:true
```
<hr>

View File

@ -0,0 +1,272 @@
---
outline: deep
---
# **[canBuild]建造组**
### [canBuild_NAME]
#### [canBuild_NAME]-代码简介
代码: [canBuild_NAME] 中文释义:可建造_名字 类型:字符型
canBuild_NAME = 组名 如果不填写此组名 将默认拥有一个命名为空格的组名。
::: tip
建议将NAME命名为此组的描述或可建造单位的昵称。<br>
以便于阅读代码。
:::
::: code-group
```bash [allureluoli]
[canBuild_造小坦]
[canBuild_SmallTank]
[canBuild_建造科技]
```
:::
::: danger
[canBuild_NAME] 中的NAME命名禁止重复否则会引发报错。<br>
其中下划线作为分隔符也是重要的,如果没有将引发报错。
:::
#### [canBuild_NAME]-演示例子
```ini
[canBuild_SmallTank] #英文命名
[canBuild_小坦克] #中文命名
[canBuild_%TK] #符号命名
[canBuild_P P] #字母与空格的组合也会被视为单独的组名
[canBuild_/(ㄒoㄒ)/~~] #多种字符
[canBuild_🆒] #甚至是emoji
[canBuild_ ] #仅用一个空格作为组名 但是多个空格会被视为和一个空格相同
```
### name
#### name-代码简介
代码:name 中文释义:名字 类型:字符型
::: danger
如果没有name而填入其他代码将引发报错且name:不能不填<br>
需要为空可以填写 name:NONE
:::
#### name-用法
name应填写单位[core]内中 name属性的名称,
它决定了需要建造哪个单位。
::: warning
注意!
如果你填了两个相同的name建造栏会自动合并建造栏中不会出现两个相同的单位。<br>
其中根据代码自上而下的先后顺序判断优先级。
:::
#### name-示例
```ini
[canBuild_SmallTank]
name: SmallTank
[canBuild_小坦克]
name: 小坦克
```
### pos
#### pos-代码简介
代码:pos 英文全称:position 中文释义:名次 类型:浮点数
#### pos-用法
pos:属性数值表示排序的序号,其中越小的越靠前。
::: info
如果没有填写pos将默认为1并按照代码顺序依次递增。<br>
其中数值可以为小数,可以为负,也可以为整数。
:::
::: warning
小数点后位数过长将会影响判断,建议用整数。
:::
#### pos-演示例子
```ini
[canBuild_SmallTank]
pos:0.1
[canBuild_小坦克]
pos:-2
```
### tech
#### tech-代码简介
代码:tech 英文全称:technology 中文释义:科技 类型:整数
#### tech-用法
填写数字设置单位的科技等级共有3个级别1级GUI显示为绿色2、3级显示为黄色。
::: info
与[core]中的科技等级不同的是超过3或者为负也不会报错。<br>
而且会受到原单位科技等级的影响,优先级低于原单位设置的科技等级。
:::
#### tech-演示例子
```ini
[canBuild_SmallTank]
tech: -1
[canBuild_小坦克]
tech: 2
```
### forceNano
#### forceNano-代码简介
代码:forceNano 中文释义: 建造方式 类型: 布尔值
#### forceNano-用法
当属性设置为true时则将目标当作是建筑物建造。 (即使是一个单位)
::: tip
默认为 false。<br>
对于没有建筑能力的单位将会在地图上凭空生成一个虚影而不会继续建造。
:::
#### forceNano-演示例子
```ini
[canBuild_SmallTank]
forceNano: true
```
### isVisible
#### isVisible-代码简介
代码:isVisible 中文释义: 可见条件 类型: 逻辑布尔值
#### isVisible-用法
当属性设置为true时则使单位建造可见。
::: tip
其中可以将属性设置为条件判断语句。<br>
如果满足条件,则从界面中显示此单位。<br>
默认为true。
:::
#### isVisible-演示例子
```ini
[canBuild_SmallTank]
isVisible: if self.hp() > 50
```
### isLocked
#### isLocked-代码简介
代码:isLocked 中文释义: 锁定 类型: 逻辑布尔值
#### isLocked-用法
当属性设置为true时则使单位锁定。
::: tip
其中可以将属性设置为条件判断语句。<br>
如果满足条件,则使单位锁定。<br>
默认为false。
:::
#### isLocked-演示例子
```ini
[canBuild_SmallTank]
isLocked: if self.hp() < 50
```
### isLockedMessage
#### isLockedMessage-代码简介
代码:isLockedMessage 中文释义: 锁定消息 类型: 字符串
#### isLockedMessage-用法
填写被锁定时显示的文本。
::: tip
可以用来告知玩家被锁定原因。<br>
能够通过转义字符 <font color=red>\n</font> 实现文本换行。
:::
#### isLockedMessage-演示例子
```ini
[canBuild_SmallTank]
isLockedMessage: 因为你太菜这个单位不给你用嗷。\n 想用的话就努力变强吧!
```
### isLockedMessage_{LANG} <br>
#### isLockedMessage-{LANG}代码简介
代码:isLockedMessage 中文释义: 锁定消息 类型: 字符串
是isLockedMessage的多语言版本用于设置在不同语言下显示的锁定内容用法一致。
::: tip
将{LANG}替换为语言文字的缩写即可,例如:<br>
zh 代表简体中文es代表英文。
:::
```ini
[canBuild_SmallTank]
isLockedMessage_es: You are BAKA! \n if think use it ,go get stronger.
```
### isLockedAlt
#### isLockedAlt-代码简介
代码:isLockedAlt 中文释义: 另外的锁定 类型: 逻辑布尔值
#### isLockedAlt-用法
和isLocked完全一样只是为了多一个锁定的条件。
#### isLockedAlt-演示例子
```ini
[canBuild_SmallTank]
isLockedAlt: if self.energy(greaterThan=90)
```
### isLockedAltMessage
#### isLockedAltMessage-代码简介
代码:isLockedAltMessage 中文释义: 另外的锁定消息 类型: 字符串
#### isLockedAltMessage-用法
和isLockedMessage的完全一样只是为了表达另一个的原因。
用来描述isLockedAlt。
#### isLockedAltMessage-演示例子
```ini
[canBuild_SmallTank]
isLockedAltMessage: 还有因为这个单位丑拒。
```
### isLockedAlt2
#### isLockedAlt2-代码简介
代码:isLockedAlt2 中文释义: 另外的锁定2 类型: 逻辑布尔值
#### isLockedAlt2-用法
和isLocked完全一样评价就是梅开二度。
#### isLockedAlt2-演示例子
```ini
[canBuild_SmallTank]
isLockedAlt2: if self.energy() < 100
```
### isLockedAlt2Message
#### isLockedAlt2Message-代码简介
代码:isLockedAlt2Message 中文释义: 另外的锁定消息2 类型: 字符串
#### isLockedAlt2Message-用法
和isLockedMessage的完全一样。
用来描述isLockedAlt2。
#### isLockedAlt2Message-演示例子
```ini
[canBuild_SmallTank]
isLockedAlt2Message: 第三个原因是我觉得你应该把雪糕分我一半吃。
```
### addResources
#### addResources-代码简介
代码:addResources 中文释义: 增加资源 类型: 资源
#### addResources-用法
填写所需的资源名和数量,在放置建筑物或生产单位时,将这些资源添加到自身中。
::: tip
使用逗号分隔,可以添加多种资源。
:::
#### addResources-演示例子
```ini
[canBuild_SmallTank]
addResources: ammo=5, setFlag=1
```
### price
#### price-代码简介
代码:price 中文释义: 价格 类型: 资源
#### price-用法
填写所需的资源名和数量,会覆盖默认需要的资源和价格。
::: tip
用处如建造一个建筑时候附送一个单位。此代码可用设定为两者价钱之和,矿场600,送矿车1400,而建造时花2000,送1400,卖600,可避免玩家刷钱。抄自HX代码表
:::
#### price-演示例子
```ini
[canBuild_SmallTank]
price: 5000,ammo=5
```
### isGuiBlinking
#### isGuiBlinking-代码简介
代码:isGuiBlinking 中文释义: 界面闪烁 类型: 逻辑布尔值
#### isGuiBlinking-用法
为true时在UI中拥有闪烁效果。
::: tip
可以添加条件判断语句。<br>
满足某些条件时闪烁此UI用来提示某些单位可以建造了。
:::
#### isGuiBlinking-演示例子
```ini
[canBuild_SmallTank]
isGuiBlinking:true
```

View File

@ -0,0 +1,936 @@
---
outline: deep
---
# **[core]组**
## 第一类-通用代码组
::: tip
以下的代码为`通用代码`,多半是必要的代码,如果不包括这些,可能在`绝大多数情况下导致错误`。
:::
### name
#### name-代码简介
代码:name 中文释义:名字 类型:字符型 隶属于:通用代码组
#### name-要点指示
<hr>
<!-- 代码盒子例子 -->
::: 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:-中文描述
```
<hr>
### price
#### price-代码简介
代码:price 中文释义:价格 类型:整数 隶属于:通用代码组
#### price-要点指示
定义单位的价格,显示在单位信息中,建造时也以此价格为准。
::: code-group
``` bash [Tobby3600]
默认情况下price只需要填写一个整数此时使用的是游戏内自带的资金credit
想要更改资源类型,可以使用:
`price:资源1=数值1,资源2=数值2,资源3=数值3,……` 的格式
(前提是此资源要在使用的单位进行定义)。
```
:::
#### price-演示例子
```ini
[core]
price:120,石油=80,铁=60
```
<hr>
### radius
#### radius-代码简介
代码:radius 中文释义:半径 类型:整数 隶属于:通用代码组
#### radius-要点指示
半径定义单位的`实际碰撞体积和显示范围`,在未设置`选择框大小`时,半径决定是单位选择框的大小。
半径的单位是像素(px)。
#### radius-演示例子
```ini
[core]
radius:20
```
<hr>
### mass
#### mass-代码简介
代码:mass 中文释义:质量 类型:整数 隶属于:通用代码组
#### mass-要点指示
质量决定单位在各种碰撞时的效果。`质量越大,其他单位越难推动`。
#### mass-演示例子
```ini
[core]
mass:2000
```
<hr>
### 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
```
<hr>
### class
#### class-代码简介
代码:class 中文释义:类 类型:字符型 隶属于:通用代码组
无实际用处,可以删除。<br>
Luke保留供将来使用默认情况下必须为`CustomUnitMetadata`。由于该代码无实际用途,可以忽略该代码<br>
该代码后面什么都可以输,但没有实际用途。或许在未来会有用。
#### class-演示例子
```ini
[core]
class:CustomUnitMetadata
```
<hr>
### strictLevel
#### strictLevel-代码简介
代码:strictLevel 中文释义:严格级别 类型:数字固定型 隶属于:通用代码组
::: tip
建议添加到"all-units.template"以应用于所有单位,进行统一查错。<br>
默认值为0忽略代码重复。设为1时如果当前单位内有重复代码则报错。
:::
#### strictLevel-演示例子
```all-units.template,ini
[core]
strictLevel:1
```
<hr>
### 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
```
<hr>
### buildSpeed
#### buildSpeed-代码简介
代码:buildSpeed 中文释义:建造速度 类型:浮点/秒型 隶属于:通用代码组
::: tip
建造此单位需要的时间,填秒。<br>
以前的计算方式为:此处所填时间=1÷(60x你需要的秒)如果定义了工厂速率则需要乘以建造乘数。
:::
#### buildSpeed-演示例子
```ini
[core]
buildSpeed:30s
#或者
## 下方可能有误差
buildSpeed:0.0006
```
<hr>
### isBio
#### isBio-代码简介
代码:isBio 中文释义:是生物 类型:布尔型 隶属于:通用代码组
::: tip {2}
若设置成true,则会在单位死亡时产生血迹,
图像在<font color=orange>drawable/blood_mark.png<br>当hideScorchMark:true</font>时可以隐藏非生物则为黑色爆炸效果。
:::
#### isBio-演示例子
```ini
[core]
isBio:true
```
<hr>
### isBug
#### isBug-代码简介
代码:isBug 中文释义:是虫子 类型:布尔型 隶属于:通用代码组
::: tip
若设置成true,则会认定为虫子,用于沙盒中的单独分类。
:::
#### isBug-演示例子
```ini
[core]
isBug:true
```
<hr>
### isBuilder
#### isBuilder-代码简介
代码:isBuilder 中文释义:是建造者 类型:布尔型 隶属于:通用代码组
::: tip
若设置成true,则会需要此单位建造建筑物,则通常需要此代码。
并且默认设为[ai] useAsBuilder。
:::
#### isBuilder-演示例子
```ini
[core]
isBuilder:true
```
<hr>
### streamingCost
#### streamingCost-代码简介
代码:streamingCost 中文释义:流式资金 类型:整数型 隶属于:通用代码组
::: tip
和价格一样,但在建造时逐渐消耗资金,如果在构建过程中资源耗尽,
建造或生产队列将暂停。就像是红警中那样。铁锈默认是预先扣除资金。
若使用该代码,则玩家的每秒资金将会根据流式资金的算法进行扣减。
:::
#### streamingCost-演示例子
```ini
[core]
streamingCost:1145
```
<hr>
### switchPriceWithStreamingCost
#### switchPriceWithStreamingCost-代码简介
代码:switchPriceWithStreamingCost(S.P.S.C.)
中文释义:流式资金模式全局切换 类型:布尔型 隶属于:通用代码组
::: tip
快捷设置为默认资金消耗方式或为流式建造方式。
建议使用模板快速将一个模组为所有单位切换流资源。
例如all-units.template.
:::
#### switchPriceWithStreamingCost-演示例子
```ini,all-units.template
[core]
switchPriceWithStreamingCost:true
```
## 第二类-单位统计代码组
::: tip
非必须存在的代码,请根据情况自行使用
:::
### selfRegenRate
#### selfRegenRate-代码简介
代码:selfRegenRate 中文释义:生命恢复速度 类型:浮点型 隶属于:单位统计代码组
::: tip
此数值决定每帧增加血量。游戏内默认速度下一秒为60逻辑帧而你看到的FPS帧数为渲染帧所以电脑上几百帧和手机上60帧和省电模式下30帧并不影响计算。所以不要写太大。可以写负值用于自毁。
:::
#### selfRegenRate-演示例子
```ini
[core]
maxHp:500
selfRegenRate:0.5
```
<hr>
### maxShield
#### maxShield-代码简介
代码:maxShield 中文释义:护盾值 类型:整型 隶属于:单位统计代码组
::: tip
单位最大护盾值默认生成时即为此值。如果设置了startShieldAtZero:true则初始为0.
:::
#### maxShield-演示例子
```ini
[core]
maxShield:3000
```
<hr>
### startShieldAtZero
#### startShieldAtZero-代码简介
代码:startShieldAtZero 中文释义:护盾初始值为0 类型:布尔型 隶属于:单位统计代码组
::: tip
如果为true则单位护盾值从0开始增加。
:::
#### startShieldAtZero-演示例子
```ini
[core]
maxShield:3000
startShieldAtZero:true
```
<hr>
### shieldRegen
#### shieldRegen-代码简介
代码:shieldRegen 中文释义:护盾恢复速度 类型:浮点型 隶属于:单位统计代码组
::: tip
此数值决定每帧增加护盾值游戏内一秒为60帧所以不要写太大。可以写负值。
:::
#### shieldRegen-演示例子
```ini
[core]
maxShield:3000
shieldRegen:0.5
```
<hr>
### energyMax
#### energyMax-代码简介
代码:energyMax 中文释义:能量值 类型:浮点型 隶属于:单位统计代码组
::: tip
默认值为0。可以用作炮塔激光防御和行动的弹药的能量。
:::
#### energyMax-演示例子
```ini
[core]
energyMax:5
```
<hr>
### energyRegen
#### energyRegen-代码简介
代码:energyRegen 中文释义:能量恢复速度 类型:浮点型 隶属于:单位统计代码组
::: tip
能量每帧恢复速度游戏内一秒为60帧所以不要写太大。可以写负值。
:::
#### energyRegen-演示例子
```ini
[core]
energyRegen:0.4
```
<hr>
### energyRegenWhenRecharging
#### energyRegenWhenRecharging-代码简介
代码:energyRegenWhenRecharging
中文释义:充能时能量恢复速度 类型:浮点型 隶属于:单位统计代码组
::: tip
能量恢复是持续的,如果你设置了<font color="orange">energyNeedsToRechargeToFull</font>
那么攻击时按energyRegen恢复耗尽时的灰条按此处设定值恢复。
:::
#### energyRegenWhenRecharging-演示例子
```ini
[core]
energyMax:1
energyRegenWhenRecharging:0.4
```
<hr>
### energyNeedsToRechargeToFull
#### energyNeedsToRechargeToFull-代码简介
代码:energyNeedsToRechargeToFull
中文释义:能量需要充满 类型:布尔型 隶属于:单位统计代码组
::: tip
如果能量耗尽,则需要完全充能才能进行攻击。
:::
#### energyNeedsToRechargeToFull-演示例子
```ini
[core]
energyMax:4
energyNeedsToRechargeToFull:true
```
<hr>
### armour
#### armour-代码简介
代码:armour
中文释义:装甲 类型:整型 隶属于:单位统计代码组
::: tip
抵消敌方攻击所造成的伤害。
:::
#### armour-演示例子
```ini
[core]
armour:40
#如果受到40以上的常规攻击则进行抵消反之返回1伤害点。
#例如45伤害40护甲那么将获得5点伤害。
```
<hr>
### armourMinDamageToKeep
#### armourMinDamageToKeep-代码简介
代码:armourMinDamageToKeep
中文释义:装甲最低伤害 类型:整型 隶属于:单位统计代码组
::: tip
至少造成多少点伤害默认为1.防止护甲太高完全打不动。
:::
#### armourMinDamageToKeep-演示例子
```ini
[core]
armour:40
armourMinDamageToKeep:2
#如果受到40以下的常规攻击,则进行最低伤害判定
```
<hr>
### borrowResourcesWhileAlive
#### borrowResourcesWhileAlive-代码简介
代码:armour
中文释义:资源活着时借用 类型:Price型 隶属于:单位统计代码组
::: tip
创建时获取这些资源,删除或销毁时将其返回。
例如用于电力逻辑,负数供电和正数耗电。
:::
#### borrowResourcesWhileAlive-演示例子
```ini
[core]
borrowResourcesWhileAlive:5000
#单位活着的时候给予5000金币死亡扣除5000金币
#一个小型贷款系统
```
:::code-group
``` bash [考考你]
如果这里要通过这个代码做一个小的贷款系统,
并经过一段时间让单位死亡。
只需要4行代码即可实现试试看。
提示dieOnZeroEnergy:true
(无能量时死亡|如果能量值为零,该单位死亡)
```
``` bash [显示答案]
#参考答案为
[core]
borrowResourcesWhileAlive:5000
energyMax:1
energyRegen:-0.4
dieOnZeroEnergy:true
#原理是通过能量为0单位死亡并通过这个代码还钱
是很简陋的贷款思路,当然,在后续会有更加高级的思路。
```
:::
<hr>
### generation_resources
#### generation_resources-代码简介
代码:generation_resources
中文释义:资源获取 类型:Price型 隶属于:单位统计代码组
::: tip
单位定时获得的资源,可自定义资源。
:::
#### generation_resources-演示例子
```ini
[core]
generation_resources:10
#or
generation_resources:credits=10
#常规产出10credits/1s游戏资金
-----------我是分界线----------
#自定义资源写法
[core]
generation_resources:金属=5
```
<hr>
### 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血量可以产出资源
```
<hr>
### generation_credits
#### generation_credits-代码简介
代码:generation_credits
中文释义:资金获取 类型:整型 隶属于:单位统计代码组
::: tip
生成资源,仅用于默认的资金,也就是铁锈默认的金钱。
:::
#### generation_credits-演示例子
```ini
[core]
generation_credits=5
```
### generation_delay
::: danger
此代码为老旧代码作者Luke不推荐使用。
:::
::: warning
警告请勿使用40以外的数值否则会有视觉Bug。
例如使用30资金生成3实际就为6但是一旦这类单位多了游戏的资金显示会出问题。
:::
<hr>
#### 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报错而无法运行`。所有可以使用多语言的都有这个检查还请各位Modder留意。若有特别的代码将会在它里面特别提示
#### displayText_{LANG}-演示例子
```ini
[core]
#English
displayText:Tank
#Chinese
displayText_zh:坦克
```
<hr>
### displayDescription_LANG
#### displayDescription-代码简介
代码:displayDescription_{LANG}
中文释义:界面显示描述 类型:字符型 隶属于:UI和图形代码组
::: tip
单位显示给玩家的单位描述,可以使用多语言,具体使用方法参考在`displayText`的演示说明,这里不再过多讨论。
:::
#### displayDescription-演示例子
```ini
[core]
displayText:坦克
displayDescription:只能对地,弱输出,只能在地上行走。
```
<hr>
### displayLocaleKey
#### displayLocaleKey-代码简介
代码:displayLocaleKey
中文释义:界面显示内部调用 类型:字符型 隶属于:UI和图形代码组
::: tip
调用内部语言文件的单位名称和说明的翻译文件。用处不大,通常是在`替换原版单位的同时直接调用它的原始描述`。该代码例子需要会拆包,如果你是初学者,该代码了解即可。
:::
#### displayLocaleKey-演示例子
```ini
[core]
displayLocaleKey: units.mechArtillery
```
<hr>
### displayRadius
#### displayRadius-代码简介
代码:displayRadius 中文释义:单位选择时显示圆圈 类型:整形 隶属于:UI和图形代码组
::: tip
修改选择单位时显示的绿色圆圈,不更改实际碰撞(radius)和可选择范围。
:::
#### displayRadius-演示例子
```ini
[core]
displayRadius:25
```
<hr>
### uiTargetRadius
#### uiTargetRadius-代码简介
代码:uiTargetRadius 中文释义:为目标时半径 类型:整形 隶属于:UI和图形代码组
::: tip
默认为显示半径值。攻击/回收/等单位时使用的半径
:::
#### uiTargetRadius-演示例子
```ini
[core]
uiTargetRadius:25
```
<hr>
### shieldRenderRadius
#### shieldRenderRadius-代码简介
代码:shieldRenderRadius 中文释义:单位护盾显示半径 类型:整形 隶属于:UI和图形代码组
::: tip
护盾绘制半径,默认值比半径大一点。
可以设置在单位上显示更大或更小的护盾圈。
:::
#### shieldRenderRadius-演示例子
```ini
[core]
shieldRenderRadius:20
```
<hr>
### shieldDisplayOnlyDeflection
#### shieldDisplayOnlyDeflection-代码简介
代码:shieldDisplayOnlyDeflection 中文释义:护盾只在受攻击时显示 类型:布尔型 隶属于:UI和图形代码组
::: tip
隐藏护盾,只在受到攻击时显示。
:::
#### shieldDisplayOnlyDeflection-演示例子
```ini
[core]
shieldDisplayOnlyDeflection:true
```
<hr>
### shieldDeflectionDisplayRate
#### shieldDeflectionDisplayRate-代码简介
代码:shieldDeflectionDisplayRate 中文释义:护盾消失速度 类型:浮点型 隶属于:UI和图形代码组
::: tip
默认值为4。数值越大消失越快。
:::
#### shieldDeflectionDisplayRate-演示例子
```ini
[core]
shieldDeflectionDisplayRate:3
```
<hr>
### showOnMinimap
#### showOnMinimap-代码简介
代码:showOnMinimap 中文释义:显示在小地图上 类型:布尔型 隶属于:UI和图形代码组
::: tip
默认为true。如果为false则在小地图上不显示此单位。
:::
#### showOnMinimap-演示例子
```ini
[core]
showOnMinimap:true
```
<hr>
### showOnMinimapToEnemies
#### showOnMinimapToEnemies-代码简介
代码:showOnMinimapToEnemies 中文释义:显示于敌人小地图 类型:布尔型 隶属于:UI和图形代码组
::: tip
是否在敌人小地图上显示。
:::
#### showOnMinimapToEnemies-演示例子
```ini
[core]
showOnMinimapToEnemies:true
```
<hr>
### showActionsWithMixedSelectionIfOtherUnitsHaveTag
#### showActionsWithMixedSelectionIfOtherUnitsHaveTag-代码简介
代码:showActionsWithMixedSelectionIfOtherUnitsHaveTag 中文释义:混合所选单位所显示的行为 类型:标签型 隶属于:UI和图形代码组
::: tip
如果选择的单位都包含此处使用的标签,则合并“行为(action)”。比如你的步兵通过部署转化成另一个单位,在混合时可以当作同一个单位处理,不再是默认的谁都无法执行操作。例子如红警的盟军大兵在混合选中后依旧可执行部署或解除。
:::
#### showActionsWithMixedSelectionIfOtherUnitsHaveTag-演示例子
```ini
[core]
showActionsWithMixedSelectionIfOtherUnitsHaveTag:tag_联系
```
## 第四类-构建代码
### isBuilding
#### isBuilding-代码简介
代码:isBuilding 中文释义:是建筑 类型:布尔型 隶属于:构建代码组
::: tip
定义单位是否为建筑物。为true时无论移动方式是什么都会强制为建筑。
:::
#### isBuilding-演示例子
```ini
[core]
isBuilding:true
```
<hr>
### footprint
#### footprint-代码简介
代码:footprint 中文释义:建筑碰撞范围 类型:多整型 隶属于:构建代码组
::: tip
填四个数值(左,上,右,下),单位是格子,建筑默认占一格,向左和向上需要填负数,填整数在选择时有偏移。
四个数值可以完全颠倒这样不会阻碍单位移动。决定建筑单位碰撞体积此区域内单位不能通过如果在单位运动途中单位则会绕过。单位实际可选择面积使用的是radius。
:::
#### footprint-演示例子
```ini
[core]
##1x1
footprint: 0,0,0,0
##2X2
footprint: 0,0,1,1
##3X3
footprint: -1,-1,1,1
```
<hr>
### constructionFootprint
#### constructionFootprint-代码简介
代码:constructionFootprint 中文释义:建筑覆盖范围 类型:多整型 隶属于:构建代码组
::: tip
基础规则同上,这个区域内不能建造建筑,但是单位可以通过。
一般需要设定比上一个面积大。
好处是即使建造的密密麻麻,单位也有路可走。
:::
#### constructionFootprint-演示例子
```ini
[core]
constructionFootprint: -1,-1,1,3
```
<hr>
### displayFootprint
#### displayFootprint-代码简介
代码:displayFootprint 中文释义:建筑选择UI 类型:多整型 隶属于:构建代码组
::: tip
基础规则同上用于选择单位时UI显示。不设定则默认为建筑覆盖区域。
:::
#### displayFootprint-演示例子
```ini
[core]
displayFootprint: 0,0,1,1
```
<hr>
### buildingSelectionOffset
#### buildingSelectionOffset-代码简介
代码:buildingSelectionOffset 中文释义:建筑UI调整 类型:整型 隶属于:构建代码组
::: tip
基础规则同上用于选择单位时UI显示。不设定则默认为建筑覆盖区域。
:::
#### buildingSelectionOffset-演示例子
```ini
[core]
buildingSelectionOffset: 4
```
<hr>

View File

@ -0,0 +1,829 @@
---
outline: deep
---
# **[graphics]图像组**
### image
#### image-代码简介
代码:image 中文释义:图像 类型:字符型
::: danger
如果需要隐藏单位的图像请使用空白透明的图像替代。<br>
请勿直接忽略此项,会直接报错导致此单位代码无法加载,从而报错。
:::
::: warning
铁锈战争支持多种图片格式jpg,png,bmp...等但也有一部分的格式并不支持如webp这种的。<br>
尽量使用png格式的图片也许不失为一个好的选择。
:::
#### image-用法
填写图片文件或图片文件的路径,图片文件将作为单位的主体图像。
::: tip
路径可使用相对路径或绝对路径。<br>
绝对路径中的根目录是以模组包内的首层目录为根目录的。<br>
相对路径则是以ini代码文件的目录为起始目录。<br>
图片和代码在同一目录下直接填写路径的用法相当于使用了相对路径。<br>
此方法基本适用于[graphics]组内所有需要引用图像文件的地方。
:::
#### image-示例
```ini
[graphics]
image: ROOT:\124\255\tank.png # 绝对路径
[graphics]
image: \124\255\tank.png # 相对路径
```
### image_back
#### image_back-代码简介
代码:image_back 中文释义:背景图像 类型:字符型
#### image_back-用法
填写图片文件或图片文件的路径,图片文件将作为单位的背景图像。
::: tip
在单位后面后面绘制的图像,不随单位转动。<br>
如无需要可以选择不填,可以作为单位角标和工厂底图使用。
:::
#### image_back-示例
```ini
[graphics]
image_back: ROOT:\124\255\background.png # 绝对路径
[graphics]
image_back: \124\255\background.png # 相对路径
```
### image_wreak
#### image_wreak-代码简介
代码:image_wreak 中文释义:死亡图像 类型:字符型
#### image_wreak-用法
填写图片文件或图片文件的路径,图片文件将作为单位的死亡图像。
::: tip
作为在单位后面死亡后绘制的图像。<br>
不填写此项不会影响代码的运行同时可以使用NONE作为路径名将表示没有任何图像。
:::
::: info
如果不填死亡图像,默认将以单位的主体图像作为死亡图像使用。
:::
#### image_wreak-示例
```ini
[graphics]
image_wreak: ROOT:\124\255\image_wreak.png # 绝对路径
[graphics]
image_wreak: \124\255\image_wreak.png # 相对路径
[graphics]
image_wreak: NONE
```
### image_shield
#### image_shield-代码简介
代码:image_shield 中文释义:护盾图像 类型:字符型
#### image_shield-用法
填写图片文件或图片文件的路径,图片文件将作为单位的护盾图像。
::: tip
作为在单位的护盾所绘制的图像。<br>
本项仅作为自定义护盾图像使用,如设置护盾且未填此项时将使用默认护盾。<br>
不填写此项不会影响代码的运行同时可以使用NONE作为路径名将表示没有任何图像。
:::
#### image_shield-示例
```ini
[graphics]
image_shield: ROOT:\124\255\image_shield.png # 绝对路径
[graphics]
image_shield: \124\255\image_shield.png # 相对路径
[graphics]
image_shield: NONE
```
### image_offsetX
#### image_offsetX-代码简介
代码:image_offsetX 中文释义:图像X轴偏移 类型:整数
#### image_offsetX-用法
作用于主体图像,填写的数值会作为偏移的像素大小,可以为负。
::: tip
偏移的方向依据X的数值而定。<br>
X轴以单位中心点为坐标X增大则图像向右偏移。
:::
#### image_offsetX-示例
```ini
[graphics]
image_offsetX:1 # 偏移量为 1
```
### image_offsetY
#### image_offsetY-代码简介
代码:image_offsetY 中文释义:图像Y轴偏移 类型:整数
#### image_offsetY-用法
作用于主体图像,填写的数值会作为偏移的像素大小,可以为负。
::: tip
偏移的方向依据Y的数值而定。<br>
X轴以单位中心点为坐标Y增大则图像向下偏移。
:::
#### image_offsetY-示例
```ini
[graphics]
image_offsetY:1 # 偏移量为 1
```
### isVisible
#### isVisible-代码简介
代码:isVisible 中文释义:可见 类型:逻辑布尔值
#### isVisible-用法
填写布尔值或逻辑判断语句,作用于全部图像,会决定单位图像是否可见。
::: info
默认值为true。<br>
即使图像隐藏,在小地图上还是可以看见的。
:::
#### isVisible-示例
```ini
[graphics]
isVisible:false # 使用布尔值
[graphics]
isVisible:if self.hp() > 200 # 使用逻辑语句
```
### isVisibleToEnemies
#### isVisibleToEnemies-代码简介
代码:isVisibleToEnemies 中文释义:对敌人可见 类型:逻辑布尔值
#### isVisibleToEnemies-用法
填写布尔值或逻辑判断语句,作用于全部图像,会决定单位图像是否被敌人可见。
::: info
与showOnMinimapToEnemies,canOnlyBeAttackedByUnitsWithTags一起使用时可以创建隐形系统。<br>
抄自HX代码表
:::
#### isVisibleToEnemies-示例
```ini
[graphics]
isVisibleToEnemies:false # 使用布尔值
[graphics]
isVisibleToEnemies:if self.hp() > 200 # 使用逻辑语句
```
### teamColorsUseHue
#### teamColorsUseHue-代码简介
代码:teamColorsUseHue 中文释义:阵营色色相 类型:布尔值
#### teamColorsUseHue-用法
填写布尔值决定如何使用,大概就是在单位主体图像上附着一层半透明的阵营色滤镜。
::: info
默认为false。
:::
#### teamColorsUseHue-示例
```ini
[graphics]
teamColorsUseHue:true # 使用布尔值
```
### teamColoringMode
#### teamColoringMode-代码简介
代码:teamColoringMode 中文释义:阵营色模式 类型:字符串
#### teamColorsUseHue-用法
填写对应的字符串选择图像的着色逻辑。
::: tip
默认是纯绿即pureGreen。<br>
一共有disabled、hueShift、hueAdd、pureGreen四种模式。<br>
中文便是,禁用,色相偏移,色相添加,纯绿。
:::
#### teamColoringMode-示例
```ini
[graphics]
teamColoringMode:disabled # 禁用 会使单位不使用阵营色
[graphics]
teamColoringMode:hueShift # 色相偏移 颜色会影响周围其他像素的着色
[graphics]
teamColoringMode:hueShift # 色相添加 像极了使用teamColorsUseHue加了一层颜色滤镜
[graphics]
teamColoringMode:pureGreen # 纯绿 默认就是这个
```
### scaleImagesTo
#### scaleImagesTo-代码简介
代码:scaleImagesTo 中文释义:图像缩放到 类型:浮点数
#### scaleImagesTo-用法
填写单位像素以缩放图像,同时影响腿部和阴影图像。
::: tip
这里的像素大小指的是每帧图像宽度的像素大小。<br>
例如图像原每帧宽度12这里填24图像将被等比例放大2倍。
:::
#### scaleImagesTo-示例
```ini
[graphics]
scaleImagesTo:12.5
```
### imageScale
#### imageScale-代码简介
代码:imageScale 中文释义:图像缩放比例 类型:浮点数
#### imageScale-用法
填写需要缩放的百分比,缩放单位主体图像的大小。
::: tip
效果基本与scaleImagesTo相同但百分比更为直观。<br>
默认值为1也就是100%。
:::
#### imageScale-示例
```ini
[graphics]
imageScale:12.5
```
### drawLayer
#### drawLayer-代码简介
代码:drawLayer 中文释义:绘制图层 类型:字符串
#### drawLayer-用法
填写希望图像所在的图层,以影响单位图像的绘制。
::: tip
官方给出了8种可填写的图层样式具体可见示例。<br>
陆上单位默认图层便是ground或ground2运输船这类便是ground2。
:::
#### drawLayer-示例
```ini
[graphics]
drawLayer:ground
[graphics]
drawLayer:ground2
[graphics]
drawLayer:wreaks
[graphics]
drawLayer:underwater
[graphics]
drawLayer:bottom
[graphics]
drawLayer:experimentals
[graphics]
drawLayer:air
[graphics]
drawLayer:top
```
### whenBeingBuiltMakeTransparentTill
#### whenBeingBuiltMakeTransparentTill-代码简介
代码:whenBeingBuiltMakeTransparentTill 中文释义:建造时透明度 类型:浮点数
#### whenBeingBuiltMakeTransparentTill-用法
填写0-1之间的小数以影响建造时的透明度情况。
::: tip
若设为0则表示透明度为0建造一开始就不透明。<br>
设为1则将完全建造时才会不透明。<br>
所谓透明到不透明,也就是从虚影到实体的转变。
:::
::: info
0-1可以理解为0%和100%取超过100%的数字不会报错但也并没有什么意义。
:::
#### whenBeingBuiltMakeTransparentTill-示例
```ini
[graphics]
whenBeingBuiltMakeTransparentTill:0
[graphics]
whenBeingBuiltMakeTransparentTill:0.5
[graphics]
whenBeingBuiltMakeTransparentTill:1
```
### icon_zoomed_out
#### icon_zoomed_out-代码简介
代码:icon_zoomed_out 中文释义:缩放图标 类型:字符串
#### icon_zoomed_out-用法
填写缩放图标的文件路径,改变单位缩放时显示的图标。
::: tip
路径引用规则和文件格式与image相同。<br>
默认图标将根据运动类型或单位类型使用内置的图标。
:::
::: info
绘制图标时请注意图标的大小。<br>
具体可以参考默认图标。<br>
资源文件在游戏根目录\res\drawable\中,安卓安装包同理。
:::
#### icon_zoomed_out-示例
```ini
[graphics]
icon_zoomed_out:mytubiao.png
[graphics]
icon_zoomed_out:tank_icon.png
```
### icon_zoomed_out_neverShow
#### icon_zoomed_out_neverShow-代码简介
代码:icon_zoomed_out_neverShow 中文释义:缩放图标不显示 类型:布尔值
#### icon_zoomed_out_neverShow-用法
填写布尔值决定缩放图标是否显示。
::: info
默认为false。
:::
#### icon_zoomed_out_neverShow-示例
```ini
[graphics]
icon_zoomed_out_neverShow:false
[graphics]
icon_zoomed_out_neverShow:true
```
### icon_zoomed_out_neverShow
#### icon_zoomed_out_neverShow-代码简介
代码:icon_zoomed_out_neverShow 中文释义:缩放图标不显示 类型:布尔值
#### icon_zoomed_out_neverShow-用法
填写布尔值决定缩放图标是否显示。
::: info
默认为false。
:::
#### icon_zoomed_out_neverShow-示例
```ini
[graphics]
icon_zoomed_out_neverShow:false
[graphics]
icon_zoomed_out_neverShow:true
```
### showSelectionIndicator
#### showSelectionIndicator-代码简介
代码:showSelectionIndicator 中文释义:显示选择指示 类型:布尔值
#### showSelectionIndicator-用法
填写布尔值决定选择框是否显示。
::: info
默认为true。
:::
#### showSelectionIndicator-示例
```ini
[graphics]
showSelectionIndicator:false
[graphics]
showSelectionIndicator:true
```
### image_offsetH
#### image_offsetH-代码简介
代码:image_offsetH 中文释义:高度绘制偏移 类型:浮点数
#### image_offsetH-用法
填写浮点数决定高度的偏移大小。
::: info
默认为true。
:::
#### image_offsetH-示例
```ini
[graphics]
image_offsetH:1
[graphics]
image_offsetH:1.2
```
### image_turret
#### image_turret-代码简介
代码:image_turret 中文释义:炮塔图像 类型:字符串
#### image_turret-用法
填写图像路径,用于给炮塔设置图像文件,也可以在每个炮塔上单独设置。
::: info
设置的炮塔图像会默认应用于所有未设置图像的炮塔上。
:::
#### image_turret-示例
```ini
[graphics]
image_turret:ROOT:\124\255\image_shield.png # 绝对路径
[graphics]
image_turret:\124\255\image_shield.png # 相对路径
```
### turretImageScale
#### turretImageScale-代码简介
代码:turretImageScale 中文释义:炮塔图像比例 类型:浮点数
#### turretImageScale-用法
填写百分比以缩放图像,仅影响炮塔。
::: info
和imageScale用法一致。
:::
#### turretImageScale-示例
```ini
[graphics]
turretImageScale:0.1
[graphics]
turretImageScale:2
```
### scaleTurretImagesTo
#### scaleTurretImagesTo-代码简介
代码:scaleTurretImagesTo 中文释义:将炮塔图像缩放到 类型:浮点数
#### scaleTurretImagesTo-用法
填写像素将炮塔图像大小缩放到指定像素。
::: info
仅用填写宽度。
:::
#### scaleTurretImagesTo-示例
```ini
[graphics]
scaleTurretImagesTo:11.2
[graphics]
scaleTurretImagesTo:33
```
### teamColorsOnTurret
#### teamColorsOnTurret-代码简介
代码:teamColorsOnTurret 中文释义:炮塔图像使用阵营色 类型:布尔值
#### teamColorsOnTurret-用法
填写布尔值决定炮塔图像是否使用阵营色。
::: info
默认为false。
:::
#### teamColorsOnTurret-示例
```ini
[graphics]
teamColorsOnTurret:true
[graphics]
teamColorsOnTurret:false
```
### lock_body_rotation_with_main_turret
#### lock_body_rotation_with_main_turret-代码简介
代码:lock_body_rotation_with_main_turret 中文释义:锁定主体旋转随主炮塔 类型:布尔值
#### lock_body_rotation_with_main_turret-用法
填写布尔值决定锁定主体图像是否旋转追随主炮塔图像。
#### lock_body_rotation_with_main_turret-示例
```ini
[graphics]
lock_body_rotation_with_main_turret:true
[graphics]
lock_body_rotation_with_main_turret:false
```
### lock_leg_rotation_with_main_turret
#### lock_leg_rotation_with_main_turret-代码简介
代码:lock_leg_rotation_with_main_turret 中文释义:锁定腿脚旋转随主炮塔 类型:布尔值
#### lock_leg_rotation_with_main_turret-用法
填写布尔值决定锁定腿脚图像是否旋转追随主炮塔图像。
#### lock_leg_rotation_with_main_turret-示例
```ini
[graphics]
lock_leg_rotation_with_main_turret:true
[graphics]
lock_leg_rotation_with_main_turret:false
```
### image_shadow
#### image_shadow-代码简介
代码:image_shadow 中文释义:阴影图像 类型:字符串
#### image_shadow-用法
填写填NONE或AUTO,或图像文件的路径,决定该单位使用哪种阴影图像。
#### image_shadow-示例
```ini
[graphics]
image_shadow:NONE #不使用阴影图像
[graphics]
image_shadow:AUTO #使用自动生成的阴影图像
[graphics]
image_shadow:./shadow/shadowA.png #使用自定义的阴影图像
```
### shadowOffsetX
#### shadowOffsetX-代码简介
代码:shadowOffsetX 中文释义:阴影图像偏移X轴 类型:浮点数
#### shadowOffsetX-用法
作用于阴影图像,填写的数值会作为偏移的像素大小,可以为负。
::: tip
偏移的方向依据X的数值而定。<br>
X轴以阴影图像中心点为坐标X增大则图像向右偏移。
:::
#### shadowOffsetX-示例
```ini
[graphics]
shadowOffsetX:14
[graphics]
shadowOffsetX:-14.5
```
### shadowOffsetY
#### shadowOffsetY-代码简介
代码:shadowOffsetY 中文释义:阴影图像偏移Y轴 类型:浮点数
#### shadowOffsetY-用法
作用于阴影图像,填写的数值会作为偏移的像素大小,可以为负。
::: tip
偏移的方向依据Y的数值而定。<br>
Y轴以阴影图像中心点为坐标Y增大则图像向右偏移。
:::
#### shadowOffsetY-示例
```ini
[graphics]
shadowOffsetY:14
[graphics]
shadowOffsetY:-14.5
```
### image_shadow_frames
#### image_shadow_frames-代码简介
代码:image_shadow_frames 中文释义:阴影图像指定 类型:布尔值
#### image_shadow_frames-用法
填写布尔值,决定阴影是否随单位移动而改变方向。
::: info
填写为true则不改变。
:::
#### image_shadow_frames-示例
```ini
[graphics]
image_shadow_frames:true
[graphics]
image_shadow_frames:false
```
### lock_shadow_rotation_with_main_turret
#### lock_shadow_rotation_with_main_turret-代码简介
代码:lock_shadow_rotation_with_main_turret 中文释义:阴影锁定为主炮塔方向 类型:布尔值
#### lock_shadow_rotation_with_main_turret-用法
填写布尔值,决定是否将身体图像阴影锁定到主炮塔的方向。
::: info
填写为true则锁定。
:::
#### lock_shadow_rotation_with_main_turret-示例
```ini
[graphics]
lock_shadow_rotation_with_main_turret:true
[graphics]
lock_shadow_rotation_with_main_turret:false
```
### total_frames
#### total_frames-代码简介
代码:total_frames 中文释义:图像帧数 类型:正整数
#### total_frames-用法
填写数字,将图像分割为指定份数,用于动画。
::: info
默认值为1第一帧编号为0。
:::
#### total_frames-示例
```ini
[graphics]
total_frames:5
[graphics]
total_frames:3
```
### frame_width
#### frame_width-代码简介
代码:frame_width 中文释义:图像宽度 类型:正整数
#### frame_width-用法
填写像素大小,作为图像的帧宽度。将自动根据图像的帧宽度将图像分割为不同的帧,并覆盖总帧数。
#### frame_width-示例
```ini
[graphics]
frame_width:23
[graphics]
frame_width:23
```
### frame_height
#### frame_height-代码简介
代码:frame_height 中文释义:图像高度 类型:正整数
#### frame_height-用法
填写像素大小,作为图像帧的高度。
::: info
默认为图像的高度。
:::
#### frame_height-示例
```ini
[graphics]
frame_height:23
[graphics]
frame_height:23
```
### splastEffect
#### splastEffect-代码简介
代码:splastEffect 中文释义:水波效果 类型:布尔值
#### splastEffect-用法
填写布尔值,决定在水上时是否创建水波效果。
::: info
效果为内置的默认为false。
:::
#### splastEffect-示例
```ini
[graphics]
splastEffect:true
[graphics]
splastEffect:false
```
### dustEffect
#### dustEffect-代码简介
代码:dustEffect 中文释义:灰尘效果 类型:布尔值
#### dustEffect-用法
填写布尔值,决定在水上时是否创建灰尘效果。
::: info
效果为内置的默认为false。
:::
#### dustEffect-示例
```ini
[graphics]
dustEffect:true
[graphics]
dustEffect:false
```
### splastEffectReverse
#### splastEffectReverse-代码简介
代码:splastEffectReverse 中文释义:逆向水波效果 类型:布尔值
#### splastEffectReverse-用法
填写布尔值,决定在水上时倒车时是否产生水波效果。
::: info
效果为内置的默认为false。
:::
#### splastEffectReverse-示例
```ini
[graphics]
splastEffectReverse:true
[graphics]
splastEffectReverse:false
```
### dustEffectReverse
#### dustEffectReverse-代码简介
代码:dustEffectReverse 中文释义:逆向灰尘效果 类型:布尔值
#### dustEffectReverse-用法
填写布尔值,决定在水上时倒车时是否产生灰尘效果。
::: info
效果为内置的默认为false。
:::
#### dustEffectReverse-示例
```ini
[graphics]
dustEffectReverse:true
[graphics]
dustEffectReverse:false
```

View File

@ -0,0 +1,877 @@
---
outline: deep
---
# **[LogicBoolean] 逻辑序列组**
::: danger
由于这个组的特殊性,格式不标准,请勿参考这个组的写法。
:::
## 前置知识
::: tip
以下的内容为`逻辑组前置知识`,是学习逻辑必备的前置内容。
:::
### 布尔值
<font color=orange>布尔值</font>表达“真(true)”或“假(false)”的一个状态。在铁锈中,布尔值(`boolean`)被运用于逻辑判断。
### 数据类型
数据类型指数据的种类,在铁锈中,不同的数据有不同的类型,不同的数据类型之间通常不能直接进行运算。
|常见数据类型英文 |存储的值类型 |
| -------- | ------------ |
| string | 字符串 |
| number | 整数 |
| float | 浮点数(小数) |
| boolean | 布尔值 |
| unit | 单位 |
<!-- MarkDown表格必须有上方的分割线以告诉浏览器是表格 -->
数据类型之间的转换函数包括:`int`、`str`。
### 算数优先级
与数学中计算符一样,铁锈中算数运算符有优先级区别。`%`和`*`和`/`的优先级大于`+`和`-`。
## 比较运算符
::: tip
以下的内容为逻辑中用于`比较`的运算符。
:::
### if
#### if-代码简介
代码:if 中文释义:如果 类型:逻辑函数
#### if-要点指示
`if`是大部分逻辑运算的开头(select等不需要if),用于在支持逻辑的键引入逻辑判断。
#### if-演示例子
```ini
[action]
autoTrigger:if self.maxHp() > memory.emx_hp
```
<hr>
### <
#### <-代码简介
代码:< 中文释义:小于 类型:比较运算符
#### <-要点指示
小于用于在逻辑布尔值中比较两个数的大小,格式为`数据a < 数据b``a<b`则整个式子的值为`true`否则为`false`
#### <-演示例子
```ini
[action]
autoTrigger:if memory.a < memory.b
```
<hr>
### >
#### >-代码简介
代码:> 中文释义:大于 类型:比较运算符
#### >-要点指示
大于用于在逻辑布尔值中比较两个数的大小,格式为`数据a > 数据b`,若`a>b`则整个式子的值为`true`,否则为`false`。
#### >-演示例子
```ini
[action]
autoTrigger:if memory.a > memory.b
```
<hr>
### <=
#### <=-代码简介
代码:<= 中文释义:小于等于 类型:比较运算符
#### <=-要点指示
小于等于用于在逻辑布尔值中比较两个数的大小,格式为`数据a <= 数据b`,若`a<=b`则整个式子的值为`true`,否则为`false`。
#### <=-演示例子
```ini
[action]
autoTrigger:if memory.a <= memory.b
```
<hr>
### >=
#### >=-代码简介
代码:>= 中文释义:大于等于 类型:比较运算符
#### >=-要点指示
大于等于用于在逻辑布尔值中比较两个数的大小,格式为`数据a >= 数据b`,若`a>=b`则整个式子的值为`true`,否则为`false`。
#### >=-演示例子
```ini
[action]
autoTrigger:if memory.a >= memory.b
```
<hr>
### ==
#### ==-代码简介
代码:== 中文释义:等于 类型:比较运算符
#### ==-要点指示
等于用于在逻辑布尔值中比较值是否相同,格式为`数据a = 数据b`,若`a=b`则整个式子的值为`true`,否则为`false`。
::: tip
请注意,铁锈中等于的符号为<font color=orange>==</font><font color=orange>=</font>在铁锈中用于赋值或参数。
:::
#### ==-演示例子
```ini
[action]
autoTrigger:if memory.a == memory.b
```
<hr>
### !=
#### !=-代码简介
代码:!= 中文释义:不等于 类型:比较运算符
#### !=-要点指示
不等于用于在逻辑布尔值中比较值是否相同,格式为`数据a = 数据b`,若`a!=b`则整个式子的值为`true`,否则为`false`。
#### !=-演示例子
```ini
[action]
autoTrigger:if memory.a != memory.b
```
<hr>
## 逻辑运算符
::: tip
以下的内容为逻辑中用于`进行逻辑运算`的运算符,它们的结果都是`boolean`类型。
:::
### and
#### and-代码简介
代码:and 中文释义:且 类型:逻辑运算符
#### and-要点指示
::: tip
<font color=orange>and</font>用于连接两个逻辑判断,只有在这两个逻辑判断的值都为<font color=orange>true</font>时,<font color=orange>and</font>的值才为true。
<br>
:::
#### and-演示例子
```ini
[action]
autoTrigger:if memory.a < memory.b and memory.a > memory.c
# 在这个例子中只有a小于b且a大于c时自动触发才会被触发
```
<hr>
### or
#### or-代码简介
代码:or 中文释义:或 类型:逻辑运算符
#### or-要点指示
::: tip
<font color=orange>or</font>用于连接两个逻辑判断,只要这两个逻辑判断的值有一个为<font color=orange>true</font>时,<font color=orange>or</font>的值就为true。
<br>
:::
#### or-演示例子
```ini
[action]
autoTrigger:if memory.a < memory.b or memory.a > memory.c
# 在这个例子中只要a小于b或a大于c自动触发就会被触发
```
<hr>
### not
#### not-代码简介
代码:not 中文释义:非 类型:逻辑运算符
#### not-要点指示
::: tip
<font color=orange>not</font>用于将某个逻辑判断的值取反,即`true`变`false``false`变`true`。
:::
::: info
多个逻辑运算符同时使用时,优先级为`not>and>or`,同时<font color=orange>支持使用括号改变运算优先级</font>
<br>推荐<font color=orange>在不确定优先级时打括号</font>
:::
#### not-演示例子
:::
<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
```
:::code-group
```bash [考考你]
考考你,在上述这个例子中,满足什么条件才会触发?
```
```bash [显示答案]
答案a必须满足小于b和大于c中的一个且a必须不小于d自动触发才会被触发。
```
:::
<hr>
## 算数运算符
::: tip
以下的内容为逻辑中用于`进行算数运算`的运算符,它们的结果类型为`参与运算的值的`类型。
:::
::: info
不同数据类型通常<font color=orange>不能直接进行算数运算</font>,但在部分情况下,<font color=orange>number</font><font color=orange>float</font>类型可以混用(建议<font color=orange>所有数值全部使用float</font>来避免混淆)。
:::
### +
#### +-代码简介
代码:+ 中文释义:加 类型:算数运算符
#### +-要点指示
加用于将两个逻辑值相加,得到结果,格式为`数据a + 数据b`。
#### +-演示例子
```ini
[action]
autoTrigger:if (memory.a + memory.c) < memory.b
#内存a和c的值之和需要小于b
```
<hr>
### -
#### --代码简介
代码:- 中文释义:减 类型:算数运算符
#### --要点指示
减用于将两个逻辑值相减,得到结果,格式为`数据a - 数据b`。
::: info
对于<font color=orange>不满足交换律的运算符</font>,需要注意<font color=orange>运算优先级</font>是否正确。由于铁锈本身bug<font color=orange>在数学上正确的优先级不一定在铁锈中正确</font>,因此可能出现减法顺序混乱等问题。
<br>为了避免可能的问题,请尽量在任何<font color=orange>不满足交换律的运算符</font>两边打上括号。
:::
#### --演示例子
```ini
[action]
autoTrigger:if (memory.a - memory.c) < memory.b
#内存a与c的值之差需要小于b
```
<hr>
### *
#### *-代码简介
代码:* 中文释义:乘 类型:算数运算符
#### *-要点指示
乘用于将两个逻辑值相乘,得到结果,格式为`数据a * 数据b`。
#### *-演示例子
```ini
[action]
autoTrigger:if (memory.a * memory.c) == memory.b
#内存a和c的乘积需要等于b
```
<hr>
### /
#### /-代码简介
代码:/ 中文释义:除 类型:算数运算符
#### /-要点指示
除用于将两个逻辑值相除,得到结果,格式为`数据a / 数据b`。
#### /-演示例子
```ini
[action]
autoTrigger:if (memory.a / memory.c) == memory.b
#内存a除以c的积需要等于b
```
<hr>
### %
#### %-代码简介
代码:% 中文释义:求余(取模) 类型:算数运算符
#### %-要点指示
求余用于获取两个逻辑值中,第一个除第二个的余数,格式为`数据a % 数据b`,例如`7%3=1(7除3余1)`。
#### %-演示例子
```ini
[action]
autoTrigger:if (memory.a % memory.c) == memory.b
#内存a除以c的余数需要等于b
```
<hr>
## 单位统计
::: tip
以下的内容为逻辑中用于`单位数值获取`的函数,它们的类型与单位此项数值对应。
:::
### 通用统计关键字
单位统计中部分通用的关键字:
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()` 地图高度
37. `game.nukesEnabled()` 是否启用核武器
### 内置参数-需要传参
<!-- 这一部分因为###被占用,无法按照传统格式 -->
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="资源名")`。
::: info
引用资源时,请确保<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>
::: warning
此代码为老旧解决方案,不推荐使用。
:::
`self.isResourceLargerThan()`用于比较两种资源的大小。格式为`self.isResourceLargerThan(source=资源A,compareTarget=资源B,byMoreThan=大于资源B数量,multiplyTargetBy=资源B倍数)`
self.numberOfQueuedWaypoints()
代码:self.numberOfQueuedWaypoints() 中文释义:队列中路径点数量 返回类型:float<br>
`self.numberOfQueuedWaypoints()`用于返回队列中路径点的数量。格式为`self.numberOfQueuedWaypoints(type="路径点类型")`。
### 单位运动与定位
这部分代码的返回值全部为`boolean`类型,用于检测单位的运动和位置情况
1. `self.underwater/self.isUnderwater()` 单位在水下
2. `self.gound/self.ground/self.isAtGroundHeight()` 单位位于地面高度
3. `self.flying/self.isFlying()` 单位在飞行
4. `self.isMoving()` 单位正在移动
5. `self.isAtTopSpeed()` 单位处于最高速度
6. `self.inwater/self.isInWater()` 单位在水中
7. `self.isReversing()` 单位在倒车
8. `self.isOverwater()` 单位在水上(在水上方或接触水)
9. `self.isOverLiquid()` 单位在液体上(岩浆等)
10. `self.isOverClift/self.isOverCliff()` 单位在悬崖上
11. `self.isOverOpenLand()` 单位在开阔的陆地上
12. `self.isTransportUnloading()` 单位正在卸载单位
13. `self.isOverPassableTile()` 单位在可通过的地块上(可通过加参数`type=地块类型`来指定特定类型的地块)
附移动类型:
| 英文 | 移动类型 |
|------------------|-------|
| NONE | 无 |
| LAND | 陆地 |
| BUILDING | 建筑 |
| AIR | 空中 |
| WATER | 水中 |
| HOVER | 两栖 |
| OVER_CLIFF | 跨悬崖 |
| OVER_CLIFF_WATER | 跨水和悬崖 |
## 单位计时
self.hasTakenDemage()
代码:self.hasTakenDemage() 中文释义:受到伤害 返回类型:bool<br>
::: info
单位计时部分能返回到最小时间精度为<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=数字)`。
::: info
不同于<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="路径点类型")`。
::: info
路径点类型可以是<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=下标(仅当类型是数组时可选填写))`。
::: danger
<font color=orange>跨单位读取数组</font>时,如果下标使用了逻辑,无论逻辑值都会返回第零项,
<font color=orange>为游戏bug</font>,解决方法可以参考:
https://www.bilibili.com/video/BV17v4y1r7dV (感谢十山月)
<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="100%" height="400">
</iframe>
::: code-group
```ini{7} [演示例子]
[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>self.readUnitMemory()基础演示例子:</p>
</div>
```ini
if parent.readUnitMemory("boostTarget", type="unit") == self
#如果 父单位内存boostTarget的值等于自己
```
## 单位参照
### 当前动作目标
::: info
`thisActionTarget`是一条用于获取当前行动目标的代码,不同的行动中,`thisActionTarget`也不同(或没有)。
以下是不同情况下的`thisActionTarget`。
:::
fireTurretXAtGround: mainTurret <br>
此时`thisActionTarget`是目标地面位置的标记
alsoTriggerAction: x <br>
此时`thisActionTarget`是原动作的`thisActionTarget`
[turret]onShoot_triggerActions: x <br>
此时`thisActionTarget`是被击中的目标
takeResources_triggerActionIfAnyCollected: x <br>
此时`thisActionTarget`是该资源
addWaypoint_triggerActionIfMatched: x <br>
此时`thisActionTarget`是搜索到的标记/目标
autoTriggerOnEvent: tookDamage <br>
此时`thisActionTarget`是造成伤害的单位
autoTriggerOnEvent: killedAnyUnit <br>
此时`thisActionTarget`是被杀死的单位
autoTriggerOnEvent: transportingNewUnit <br>
此时`thisActionTarget`是被运输的单位
autoTriggerOnEvent: transportUnloadedOrRemovedUnit <br>
此时`thisActionTarget`是被卸载打单位
autoTriggerOnEvent: queuedUnitFinished <br>
此时`thisActionTarget`是创建的新单位
autoTriggerOnEvent: touchTargetSuccess <br>
此时`thisActionTarget`是接触的目标
<!-- 这一段内容是这样的不知道怎么优化格式好一点ling帮帮 :D -->
### 杂项
attachment
代码:self.attachment() 中文释义:附属物 返回类型:unit/marker<br>
`attachment`用于获取单位特定附属物的单位参考,参数有`slot`和`withFlag`。<br>
`slot`参数即代码中`[attachment_abc]`的`abc``withFlag`参数用于获取拥有指定标签的附属物。
::: code-group
```ini{2} [演示例子]
self.attachment(withTag="x").lastDamagedBy.getAsMarker()
#这里获取有x标签的附属物,然后获取此附属物上一个攻击者,并创建标记
```
:::
transporting
代码:self.transporting() 中文释义:运载的单位 返回类型:unit/marker<br>
`transporting`用于获取单位运输队列中特定单位的单位参考,参数有`slot`。<br>
与`attachment`不同,`transporting`的`slot`参数为数字,即运输队列的第几个。
attacking
代码:self.attacking() 中文释义:攻击目标 返回类型:unit/marker<br>
`attacking`用于获取单位的攻击目标。
::: warning
attacking不一定是正在攻击的目标<font color=orange>只要是设定了攻击目标都会存在</font>
:::
lastDamagedBy
代码:self.lastDamagedBy() 中文释义:最后伤害源 返回类型:unit/marker<br>
`attacking`用于获取最后攻击该单位的单位。
parent
代码:self.parent() 中文释义:父单位 返回类型:unit/marker<br>
`parent`用于获取单位的附属主单位或运输单位。<br>
当单位离开附属/运输时,父单位会为`null`,因此可以用于检测单位是否被运输/在附属中。
activeWaypointTarget
代码:self.activeWaypointTarget() 中文释义:自身活动的路径点 返回类型:unit/marker<br>
`activeWaypointTarget`用于获取自身正在进行的路径点,参数有`type`。<br>
`type`参数用于指定路径点类型。
customTarget1
代码:self.customTarget1() 中文释义:自定义目标1 返回类型:unit/marker<br>
`customTarget1`是铁锈内置的unit类型内存<font color=orange>默认值为创建该单位的单位</font>
customTarget2
代码:self.customTarget2() 中文释义:自定义目标1 返回类型:unit/marker<br>
`customTarget2`是铁锈内置的unit类型内存。
nearestUnit
代码:self.nearestUnit() 中文释义:指定最近单位 返回类型:unit/marker<br>
`nearestUnit`用于获取满足条件的最近单位,参数有`withinRange`、`withTag`、`relation`。
`withinRange`:指定最大搜索范围(最高为1000)
`withTag`:指定需要含有的标签
`relation`:目标单位与自己的关系(与路径点靠近类型相同)
| 英文 | 关系类型 |
|------------|------|
| any | 所有 |
| enemy | 敌对 |
| own | 己方 |
| ally | 盟友 |
| allyNotOwn | 仅盟友 |
| notOwn | 除己方 |
| neutral | 中立 |
globalSearchForFirstUnit
代码:self.globalSearchForFirstUnit() 中文释义:指定最近单位 返回类型:unit/marker<br>
`globalSearchForFirstUnit`用于在全局范围内搜索第一个满足条件的最近单位,参数有`withTag`、`relation`,用法与`nearestUnit`基本相同。
nullUnit
代码:nullUnit 中文释义:空单位 返回类型:unit/marker<br>
`nullUnit`是铁锈的空单位,用于比较/判断。
### 标记
getAsMarker
代码:self.getAsMarker() 中文释义:获取标记 返回类型:unit/marker<br>
`getAsMarker`用于在指定单位创建标记。标记的创建速度非常快,不再需要时会自动删除。<br>
标记不链接到任何单位并且在单位死亡时仍然存在,在源头移动时保持不变。
getOffsetAbsolute
代码:self.getOffsetAbsolute() 中文释义:获取绝对偏移标记 返回类型:unit/marker<br>
`getOffsetAbsolute`用于在指定单位创建一个绝对偏移后的标记。可用的参数有`x`、`y`、`height`(-y为北,+x为东)。
getOffsetRelative
代码:self.getOffsetRelative() 中文释义:获取相对偏移标记 返回类型:unit/marker<br>
`getOffsetRelative`用于在指定单位创建一个相对偏移后的标记。可用的参数有`x`、`y`、`height`(+y为前,-为左)、`dirOffset`(角度偏移)。
::: tip
相对偏移可以理解为<font color=orange>在单位自己位置以自己的方向建立一个平面直角坐标系</font>,然后计算在这个坐标系内的便宜,并返回地图中大坐标系的单位参考。
:::
eventSource
代码:eventSource 中文释义:事件源 返回类型:event<br>
`eventSource`用于获取`autoTriggerOnEvent`当前触发器,没有则返回`null`,可以看作对于事件的`autoTriggerOnEvent`。
### 全局函数
readUnitMemory
代码:self.readUnitMemory() 中文释义:读取单位内存 返回类型:跟随内存类型<br>
`readUnitMemory`用于读取指定单位上的自定义内存,与读取其他单位的资源不同,内存可以直接读取而不需要在本单位进行定义。<br>
`readUnitMemory`的格式为`单位参考.readUnitMemory("内存名称",type="内存类型")`,简写格式为`memory.内存名称`,但简写格式只能用于读取自己的内存。<br>
<div class="alert callout tip">
<p>self.readUnitMemory()基础演示例子:</p>
</div>
```ini
if parent.readUnitMemory("a", type="float") == 1
#如果 父单位内存a的值为1
```
::: warning
`readUnitMemory`还可以用于读取内存数组,格式为`单位参考.readUnitMemory("数组名称",type="数组类型",index=数组下标)`<br>
<font color=orange>跨单位读取数组</font>时,如果下标使用了逻辑,无论逻辑值都会返回第零项,
<font color=orange>为游戏bug</font>,解决方法可以参考:
https://www.bilibili.com/video/BV17v4y1r7dV (感谢十山月)
:::
<!-- 写完才发现readUnitMemory写过了:( -->
distance
代码:distance() 中文释义:两点距离 返回类型:float<br>
`distance`用于获取两个坐标之间的距离,格式为`distance(x1,y1,x2,y2)`。<br>
distanceSquared
代码:distanceSquared() 中文释义:两点距离平方 返回类型:float<br>
`distanceSquared`返回两个点的距离的平方,速度更快,格式与`distance`一样。<br>
distanceBetween
代码:distanceBetween() 中文释义:单位间的距离 返回类型:float<br>
`distanceBetween`返回两个单位(标记)之间的距离,格式为`distanceBetween(单位1,单位2)`。<br>
distanceBetweenSquared
代码:distanceBetweenSquared() 中文释义:单位间的距离平方 返回类型:float<br>
`distanceBetweenSquared`返回两个单位(标记)之间的距离的平方,速度更快,格式与`distanceBetween`一致。<br>
select
代码:select() 中文释义:三目运算符 返回类型:随结果类型(有说为string)<br>
`select`用于简化部分需要使用如果进行分别判断的场景,格式为`select(bool a,str b,str c)`,当`a`成立时,整个`select`返回`b`,否则返回`c`。<br>
::: tip
`select`支持套娃。在适当的地方使用,可以<font color=orange>极大的简化代码</font>
:::
debug
代码:debug() 中文释义:返回调试值 返回类型:string<br>
`debug`可以针对逻辑布尔值输出一个字符串,解释这个值产生的原因,可以查看嵌套逻辑、比较和运算符。<br>
::: code-group
```ini{3} [演示例子]
showMessageToAllPlayers:%{debug(memory.a)}
#假设a为unit类型memory
#这里就会输出a单位的id等信息
```
:::
substring
代码:substring() 中文释义:取子字符串 返回类型:string<br>
`substring`用于截取一个字符串的一部分,格式为`substring(开始处,结束处)`字符串的“下标”从0开始。<br>
length
代码:length() 中文释义:取字符串长度 返回类型:number/float<br>
`length`用于获取一个字符串的长度,格式为`length(string)`,返回长度数字。<br>
squareRoot
代码:squareRoot() 中文释义:平方根 返回类型:number/float<br>
`squareRoot`用于获取一个数的平方根,格式为`squareRoot(number/float)`。<br>
min
代码:min() 中文释义:最小值 返回类型:number/float<br>
`min`用于获取两个数中更小的那个,格式为`min(number1,number2)`。<br>
max
代码:max() 中文释义:最大值 返回类型:number/float<br>
`max`用于获取两个数中更大的那个,格式为`max(number1,number2)`。<br>
createMarker
代码:createMarker() 中文释义:创建标记 返回类型:marker<br>
`createMarker`用于创建一个临时的标记,格式为`createMarker(x, y, [height], [teamId], [dir])`。其中`x`、`y`为必须的参数<br>
标记的创建速度很快,创建后可以用于填入路径点等`unit/marker`类型处。<br>
::: tip
其实marker也是一个单位可以通过路径点`thisActionTarget`和`debug`发现它。
:::
eventData
代码:eventData() 中文释义:事件数据 返回类型:跟随事件<br>
`eventData`用于获取自身接收的`[action]sendMessageTo`中发送的信息,格式为`eventData("数据名称",type="数据类型")`。<br>
`eventData`只在`autoTriggerOnEvent:newMessage`事件中使用。<br>
sin
代码:sin() 中文释义:正弦 返回类型:float<br>
`sin`用于正弦值,格式为`sin(角度)`。<br>
cos
代码:cos() 中文释义:余弦 返回类型:float<br>
`cos`用于余弦值,格式为`cos(角度)`。<br>
::: tip
铁锈三角函数没有tan但是可以通过`tan(a)=sin(a)/cos(a)`来求。
:::
rnd
代码:rnd() 中文释义:随机数 返回类型:float<br>
`rnd`用于生成一个自定义区间内的随机数,格式为`rnd(最小,最大)`。<br>
::: warning
沙盒地图中随机数种子是一样的,且<font color=orange>卢克的随机数并不“随机”</font>,实际使用可能需要自己增加参数后求余。
:::
lowercase
代码:lowercase() 中文释义:转小写 返回类型:string<br>
`lowercase`用于将一个字符串中的大写字符全部转换成小写,格式为`lowercase(string)`。<br>
uppercase
代码:uppercase() 中文释义:转大写 返回类型:string<br>
`uppercase`用于将一个字符串中的小写字符全部转换成大写,格式为`uppercase(string)`。<br>
direction
代码:direction() 中文释义:相对角度 返回类型:float<br>
`direction`用于获取两个点之间的相对角度,格式为`direction(x1,y1,x2,y2)`。<br>
directionBetween
代码:direction() 中文释义:单位相对角度 返回类型:float<br>
`direction`用于获取两个单位之间的相对角度,格式为`direction(unit1,unit2)`。<br>directionBetween

View File

@ -0,0 +1,354 @@
---
outline: deep
---
# **[movement]组**
## 第一类-通用代码组
::: tip
以下的代码为`通用代码`,多半是必要的代码,如果不包括这些,可能在`绝大多数情况下导致错误`。
:::
### movementType
#### movementType-代码简介
代码:movementType 中文释义:运动类型 类型:字符串 隶属于:通用代码组
#### string-要点指示
定义单位的运动类型判定单位是否可在某种地形上运动可用值为NONE、LAND、BUILDING、AIR、WATER、HOVER、OVER_CLIFF、OVER_CLIFF_WATER。
::: tip
不同的运动类型特点如下
|类型|可跨陆地|可跨悬崖|可跨水|可跨岩浆|
|-|-|-|-|-
|NONE|✓|✓|✓|✓|
|LAND|✓|×|×|×|
|BUILDING|✓|×|×|×|
|AIR|✓|✓|✓|✓|
|WATER|×|×|✓|×|
|HOVER|✓|×|✓|×|
|OVER_CLIFF|✓|✓|×|×|
|OVER_CLIFF_WATER|✓|✓|✓|×|
:::
::: tip
类型NONE虽然说移动无视地形但是只能在LAND类型地块进行放置
:::
::: warning
NONE移动类型在多选单位进行移动时会有卡寻路的问题
BUILDING移动类型似乎已经废弃和LAND没有任何区别
:::
#### movementType-演示例子
```ini
[movement]
movementType:LAND
```
<hr>
## 第二类-速度相关组
### moveSpeed
#### moveSpeed-代码简介
代码:moveSpeed 中文释义:移动速度 类型:浮点数 隶属于:通用代码组
#### moveSpeed-要点指示
定义单位的移动速度,显示在单位信息中
::: tip
移动速度的单位是**像素/帧**同时铁锈战争地图图块大小为20x20且一秒60帧所以说移动速度为1的话每秒可以移动三格
:::
#### moveSpeed-演示例子
```ini
[movement]
moveSpeed:0.5
```
<hr>
### moveAccelerationSpeed
#### moveAccelerationSpeed-代码简介
代码:moveAccelerationSpeed 中文释义:加速度 类型:浮点数 隶属于:速度相关组
#### moveAccelerationSpeed-要点指示
定义单位的加速度,单位在移动时会从零开始加速直到移动速度
::: tip
加速度也是按帧计算的如果你需要一秒加速0.6你需要填写的值为0.01
:::
#### moveAccelerationSpeed-演示例子
```ini
[movement]
moveSpeed:1
moveAccelerationSpeed:0.01
```
<hr>
### moveDecelerationSpeed
#### moveDecelerationSpeed-代码简介
代码:moveDecelerationSpeed 中文释义:减速度 类型:浮点数 隶属于:速度相关组
#### moveDecelerationSpeed-要点指示
定义单位的减速度,单位在停止移动时会从运动速度开始减速直到零
::: tip
减速度也是按帧计算的如果你需要一秒减速0.6你需要填写的值为0.01
:::
#### moveDecelerationSpeed-演示例子
```ini
[movement]
moveSpeed:1
moveDecelerationSpeed:0.01
```
<hr>
### reverseSpeedPercentage
#### reverseSpeedPercentageed-代码简介
代码:reverseSpeedPercentage 中文释义:倒车速度比率 类型:浮点数 隶属于:速度相关组
#### reverseSpeedPercentage-要点指示
定义单位倒车时的速度,单位在逆向运动时会按照运动速度与倒车速度比率的乘积运行
::: tip
这个值默认为0.6
如果这个值等于0那么无论什么距离向后运动都会先转弯
如果在0到1之间那么短距离向后运动会倒车而不是转弯
如果等于1那么无论什么距离向后运动会倒车而不是转弯
:::
#### reverseSpeedPercentagepeed-演示例子
```ini
[movement]
moveSpeed:1
reverseSpeedPercentage:0.4
```
<hr>
### maxTurnSpeed
#### maxTurnSpeed-代码简介
代码:maxTurnSpeed 中文释义:转弯速度 类型:浮点数 隶属于:速度相关组
#### maxTurnSpeed-要点指示
定义单位转弯的速度
::: tip
转弯速度的单位是**度/帧**如果转弯速度为1那么一秒将旋转60度
:::
#### maxTurnSpeed-演示例子
```ini
[movement]
maxTurnSpeed:1.5
```
<hr>
### turnAcceleration
#### turnAcceleration-代码简介
代码:turnAcceleration 中文释义:转弯速度 类型:浮点数 隶属于:速度相关组
#### turnAcceleration-要点指示
定义单位转弯的加速度,开始转弯时将从零开始加速直到转弯速度
::: tip
转弯加速度是按帧计算的如果想要每秒增加0.6需要填0.01
:::
#### turnAcceleration-演示例子
```ini
[movement]
maxTurnSpeed:1.5
turnAcceleration:0.01
```
<hr>
## 第三类-高度相关组
### targetHeight
#### targetHeight-代码简介
代码:targetHeight 中文释义:到达高度 类型:浮点数 隶属于:高度相关组
#### targetHeight-要点指示
定义单位的高度当单位创建完成时会从0到达这个高度
::: tip
如果运动类型为AIRtargetHeight默认值将为20
:::
::: code-group
``` bash [摸鱼人time]
大部分单位能被什么类型的攻击方式攻击不取决于移动类型,而是取决于高度
如果高度是负数,那么可以被水下攻击命中
如果高度位于0到10之间可以被对表面攻击命中
如果高度大于10可以被对空攻击命中
如果高度不为0的地面悬浮单位对地的范围攻击(比如火炮)将无法对其造成伤害,但是可以被瞄准
建筑高度大于等于0是只能被对表面攻击命中
```
:::
#### targetHeight-演示例子
```ini
[movement]
targetHeight:10
```
<hr>
### targetHeightDrift
#### targetHeightDrift-代码简介
代码:targetHeightDrift 中文释义:高度浮动 类型:浮点数 隶属于:高度相关组
#### targetHeight-要点指示
定义单位的高度浮动,单位会在到达高度上下浮动
::: tip
如果运动类型为AIRtargetHeightDrift默认值将为2.5
:::
#### targetHeightDrift-演示例子
```ini
[movement]
targetHeight:10
targetHeightDrift:1
```
<hr>
### landOnGround
#### landOnGround-代码简介
代码:landOnGround 中文释义:降落到地面 类型:布尔值 隶属于:高度相关组
#### landOnGround-要点指示
定义单位在不移动时是否降落到地面
::: tip
只有单位投影所在地块可以降落时才会降落
:::
#### landOnGround-演示例子
```ini
[movement]
landOnGround:true
```
<hr>
### fallingAcceleration
#### fallingAcceleration-代码简介
代码:fallingAcceleration 中文释义:降落加速度 类型:浮点值 隶属于:高度相关组
#### fallingAcceleration-要点指示
定义单位在降落到地面时的加速度
::: tip
加速度是按帧来计算的如果想一秒加速0.6则填写0.01
:::
#### fallingAcceleration-演示例子
```ini
[movement]
fallingAcceleration:0.01
```
<hr>
### slowDeathFall
#### slowDeathFall-代码简介
代码:slowDeathFall 中文释义:死亡坠落 类型:布尔值 隶属于:高度相关组
#### slowDeathFall-要点指示
定义单位在死亡时是否坠落到地面
#### targetHeightDrift-演示例子
```ini
[movement]
slowDeathFall:true
```
<hr>
### fallingAccelerationDead
#### fallingAccelerationDead-代码简介
代码:fallingAccelerationDead 中文释义:死亡坠落加速度 类型:浮点值 隶属于:高度相关组
#### fallingAccelerationDead-要点指示
定义单位在死亡坠毁到地面时的加速度
::: tip
加速度是按帧来计算的如果想一秒加速0.6则填写0.01
:::
#### fallingAccelerationDead-演示例子
```ini
[movement]
fallingAccelerationDead:0.01
```
<hr>
### heightChangeRate
#### heightChangeRate-代码简介
代码:heightChangeRate 中文释义:高度改变速率 类型:浮点值 隶属于:高度相关组
#### heightChangeRate-要点指示
定义单位在被创建,转换,浮动是高度改变的速度
#### heightChangeRate-演示例子
```ini
[movement]
heightChangeRate:0.4
```
<hr>
## 第四类-杂项
### moveIgnoringBody
#### moveIgnoringBody-代码简介
代码:moveIgnoringBody 中文释义:移动忽略转向 类型:布尔值 隶属于:杂项
#### moveIgnoringBody-要点指示
定义单位移动时是否需要考虑角度
#### moveIgnoringBody-演示例子
```ini
[movement]
moveIgnoringBody:true
```
<hr>
### moveSlidingMode
#### moveSlidingMode-代码简介
代码:moveSlidingMode 中文释义:移动滑动 类型:布尔值 隶属于:杂项
#### moveSlidingMode-要点指示
定义单位移动后是否进行滑动
#### moveSlidingMode-演示例子
```ini
[movement]
moveSlidingMode:true
```
<hr>
### moveSlidingDir
#### moveSlidingDir-代码简介
代码:moveSlidingDir 中文释义:移动滑动角度 类型:浮点数 隶属于:杂项
#### moveSlidingDir-要点指示
定义单位移动滑动的角度
#### moveSlidingDir-演示例子
```ini
[movement]
moveSlidingDir:-1
```
<hr>
### joinsGroupFormations
#### joinsGroupFormations-代码简介
代码:joinsGroupFormations 中文释义:加入到队形 类型:布尔值 隶属于:杂项
#### joinsGroupFormations-要点指示
定义单位移动时是否要按队形行动
::: tip
默认值为true这使大部分单位在移动时会排列为一个方阵着不仅有效的使单位在一定程度上散开避免aoe伤害也能加快寻路运算速度但是会使大量单位行进时部分单位一直撞墙
如果改为false每个单位将单独进行寻路这使得单位会挤在一起并且可能造成卡顿
:::
#### joinsGroupFormations-演示例子
```ini
[movement]
joinsGroupFormations:true
```
<hr>
### ignoreMoveOrders
#### ignoreMoveOrders-代码简介
代码:ignoreMoveOrders 中文释义:忽略移动指令:布尔值 隶属于:杂项
#### ignoreMoveOrders-要点指示
定义单位是否接受来自玩家的移动指令
::: tip
这个代码只能和**moveSpeed:0**一起使用但是可以通过setUnitStats改变移动速度
:::
#### ignoreMoveOrders-演示例子
```ini
[movement]
ignoreMoveOrders:true
moveSpeed:0
```
<hr>

View File

@ -0,0 +1,291 @@
---
outline: deep
---
# **spawnUnits&spawnProjectiles**
::: tip
以下为spawnUnits或者SpawnProjetiles代码的相关参数需要填到他们后面的括号里面
:::
## 第一类-通用代码
::: tip
以下为spawnUnits和SpawnProjetiles都可以运行的参数
:::
### spawnChance
#### spawnChance-代码简介
代码:spawnChance 中文释义:产生几率 类型:浮点数 隶属于:通用代码
#### spawnChance-要点指示
定义单位或抛射体的产生几率
::: tip
这个产生几率只能是0~1之间的数
:::
#### spawnChance-演示例子
```ini
spawnUnits:builder(spawnChance=0.5)
```
<hr>
### maxSpawnLimit
#### maxSpawnLimit-代码简介
代码:maxSpawnLimit 中文释义:最大产生限制 类型:整数 隶属于:通用代码
#### maxSpawnLimit-要点指示
定义单位或抛射体的最大产生数量
::: tip
此代码一般和spawnChance连用来达到随机产生多少数量的单位或抛射体
:::
#### maxSpawnLimit-演示例子
```ini
spawnUnits:builder(spawnChance=0.5,maxSpawnLimit=5)
```
<hr>
### offsetX/offsetY
#### offsetX/offsetY-代码简介
代码:offsetX/offsetY 中文释义:偏移量X/偏移量Y 类型:浮点数 隶属于:通用代码
#### offsetX/offsetY-要点指示
定义单位或抛射体产生时XY的绝对偏移
#### offsetX/offsetY-演示例子
```ini
spawnUnits:builder(offsetX=10,offsetY=-10)
```
<hr>
### offsetRandomX/offsetRandomY
#### offsetRandomX/offsetRandomY-代码简介
代码:offsetRandomX/offsetRandomY 中文释义:随机偏移X/随机偏移Y 类型:浮点数 隶属于:通用代码
#### offsetRandomX/offsetRandomY-要点指示
定义单位或抛射体的随机XY偏移
#### offsetRandomX/offsetRandomY-演示例子
```ini
spawnUnits:builder(offsetRandomX=10,offsetRandomY=10)
```
<hr>
### offsetHeight
#### offsetHeight-代码简介
代码:offsetHeight 中文释义:高度偏移 类型:浮点数 隶属于:通用代码
#### spawnChance-要点指示
定义单位或抛射体产生时的高度
#### offsetHeight-演示例子
```ini
spawnUnits:builder(offsetHeight=10)
```
<hr>
### offsetDir
#### offsetDir-代码简介
代码:offsetDir 中文释义:角度偏移 类型:浮点数 隶属于:通用代码
#### offsetDir-要点指示
定义单位或抛射体的相对角度偏移
::: tip
默认产生角度和产生他的单位相同
:::
#### offsetDir-演示例子
```ini
spawnUnits:builder(offsetDir=90)
```
<hr>
### offsetRandomDir
#### offsetRandomDir-代码简介
代码:offsetRandomDir 中文释义:随机角度偏移 类型:浮点数 隶属于:通用代码
#### offsetRandomDir-要点指示
定义单位或抛射体产生时随机的角度偏移
#### offsetRandomDir-演示例子
```ini
spawnUnits:builder(offsetRandomDir=45)
```
<hr>
## 第二类-spawnUnits专有
### neutralTeam
#### neutralTeam-代码简介
代码:neutralTeam 中文释义:队伍中立 类型:布尔值 隶属于:spawnUnits专有
#### neutralTeam-要点指示
定义单位的产生是否为中立单位
::: tip
中立单位一般会被周围高度近似的单位捕获,所以说被产生单位一般需要配合`[core]stayNeutral:true`使用
:::
#### neutralTeam-演示例子
```ini
spawnUnits:builder(neutralTeam=true)
```
<hr>
### setToTeamOfLastAttacker
#### setToTeamOfLastAttacker-代码简介
代码:setToTeamOfLastAttacker 中文释义:归属最后攻击者 类型:布尔值 隶属于:spawnUnits专有
#### setToTeamOfLastAttacker-要点指示
定义产生的单位是否归于最后的攻击者
#### neutralTeam-演示例子
```ini
spawnUnits:builder(setToTeamOfLastAttacker=true)
```
<hr>
### spawnSource
#### spawnSource-代码简介
代码:spawnSource 中文释义:单位产生源 类型:单位参考/标记 隶属于:spawnUnits专有
#### spawnSource-要点指示
定义单位的产生的产生源
::: tip
这个参数使得被产生单位的customTarget1会变成产生源而不是源单位
:::
#### spawnSource-演示例子
```ini
spawnUnits:builder(spawnSource=attacking)
```
<hr>
### gridAlign
#### gridAlign-代码简介
代码:gridAlign 中文释义:对其网格 类型:布尔值 隶属于:spawnUnits专有
#### gridAlign-要点指示
定义产生的建筑是否与网格对齐
::: tip
只能对建筑使用
:::
#### gridAlign-演示例子
```ini
spawnUnits:builder(gridAlign=true)
```
<hr>
### skipIfOverlapping
#### skipIfOverlapping-代码简介
代码:skipIfOverlapping 中文释义:跳过条件 类型:布尔值 隶属于:spawnUnits专有
#### neutralTeam-要点指示
定义单位的产生是否检测地块能否产生
::: tip
如果被产生单位移动类型为`LAND`,且`skipIfOverlapping=true`那么如果产生时在非LAND地块将不会产生此单位
:::
#### skipIfOverlapping-演示例子
```ini
spawnUnits:builder(skipIfOverlapping=true)
```
<hr>
### addResources
#### addResources-代码简介
代码:addResources 中文释义:增加资源 类型:资源 隶属于:spawnUnits专有
#### addResources-要点指示
定义产生的单位的资源
::: tip
资源与值之间使用`:`连接,多个资源之间使用`|`进行分隔
:::
#### addResources-演示例子
```ini
spawnUnits:builder(addResources=shield:100|ammo:10)
```
<hr>
### transportedUnitsToTransfer
#### transportedUnitsToTransfer-代码简介
代码:transportedUnitsToTransfer 中文释义:产生单位至载具 类型:整数 隶属于:spawnUnits专有
#### neutralTeam-要点指示
定义产生多少单位直接到载具中
#### neutralTeam-演示例子
```ini
spawnUnits:builder(transportedUnitsToTransfer=5)
```
<hr>
### copyWaypointsFrom
#### copyWaypointsFrom-代码简介
代码:copyWaypointsFrom 中文释义:复制路径点来自 类型:单位参考 隶属于:spawnUnits专有
#### copyWaypointsFrom-要点指示
定义产生的单位的路径点
#### copyWaypointsFrom-演示例子
```ini
spawnUnits:builder(copyWaypointsFrom=self)
```
<hr>
### alwayStartDirAtZero
#### alwayStartDirAtZero-代码简介
代码:alwayStartDirAtZero 中文释义:角度总是为零 类型:布尔值 隶属于:spawnUnits专有
#### alwayStartDirAtZero-要点指示
定义产生的单位的角度是否为零度
::: tip
建筑的零度为上,单位的零度为右
:::
#### alwayStartDirAtZero-演示例子
```ini
spawnUnits:builder(alwayStartDirAtZero=true)
```
<hr>
## 第三类-spawnProjectiles专有
### recursionLimit
#### recursionLimit-代码简介
代码:recursionLimit 中文释义:递归限制 类型:整数 隶属于:spawnProjectiles专有
#### recursionLimit-要点指示
定义抛射体产生自我时的次数限制
#### recursionLimit-演示例子
```ini
spawnProjectilesOnEndOfLife:a(recursionLimit=5)
```
<hr>
### offsetRandomXY
#### offsetRandomXY-代码简介
代码:offsetRandomXY 中文释义:随机偏移XY 类型:浮点数 隶属于:spawnProjectiles专有
#### offsetRandomXY-要点指示
定义产生抛射体的XY偏移
::: tip
`offsetRandomXY=10`就相当于`offsetRandomX=10,offsetRandomY=10`
:::
#### offsetRandomXY-演示例子
```ini
spawnProjectilesOnEndOfLife:a(offsetRandomXY=10)
```
<hr>
### xOffsetRelative/yOffsetRelative
#### xOffsetRelative/yOffsetRelative-代码简介
代码:xOffsetRelative/yOffsetRelative 中文释义:x相对偏移/y相对偏移 类型:浮点数 隶属于:spawnProjectiles专有
#### offsetRandomXY-要点指示
定义产生抛射体的XY相对偏移
::: tip
不同于`offsetX/offsetY`绝对偏移的Y轴竖直X轴水平`xOffsetRelative/yOffsetRelative`将会旋转坐标系使得Y轴正方向与产生源的角度对齐
:::
#### xOffsetRelative/yOffsetRelative-演示例子
```ini
spawnProjectilesOnEndOfLife:a(xOffsetRelative=10,yOffsetRelative=10)
```
<hr>

View File

@ -0,0 +1,915 @@
---
outline: deep
---
# **[turret]组**
## 第一类-重复代码组
::: tip
以下的代码与`攻击节`重复,在此处可以覆盖`攻击节`的全局数据
:::
::: warning
炮塔上限为31个显示顺序为ini顺序递增
:::
### canShoot
#### canShoot-代码简介
代码:canShoot 中文释义:可攻击 类型:布尔值bool 隶属于:重复代码组
#### canShoot-要点指示
设置该炮塔是否能攻击
#### canShoot-演示例子
```ini
[turret_1]
canShoot:true
```
<hr>
### canAttackLandUnits
#### canAttackLandUnits-代码简介
代码:canAttackLandUnits 中文释义:可攻击表面单位 类型:逻辑布尔值LogicBoolean 隶属于:重复代码组
#### canAttackLandUnits-要点指示
设置该炮塔是否能对地面目标攻击
#### canAttackLandUnits-演示例子
```ini
[turret_1]
canAttackLandUnits:if self.ammo>=2
```
<hr>
### canAttackFlyingUnits
#### canAttackFlyingUnits-代码简介
代码:canAttackFlyingUnits 中文释义:可攻击空中单位 类型:逻辑布尔值LogicBoolean 隶属于:重复代码组
#### canAttackFlyingUnits-要点指示
设置该炮塔是否能对空中目标攻击
#### canAttackFlyingUnits-演示例子
```ini
[turret_1]
canAttackFlyingUnits:if self.ammo>=2
```
<hr>
### canAttackUnderwaterUnits
#### canAttackUnderwaterUnits-代码简介
代码:canAttackUnderwaterUnits 中文释义:可攻击水下单位 类型:逻辑布尔值LogicBoolean 隶属于:重复代码组
#### canAttackUnderwaterUnits-要点指示
设置该炮塔是否能对潜水目标攻击
#### canAttackUnderwaterUnits-演示例子
```ini
[turret_1]
canAttackUnderwaterUnits:if self.ammo>=2
```
<hr>
### canAttackNotTouchingWaterUnits
#### canAttackNotTouchingWaterUnits-代码简介
代码:canAttackNotTouchingWaterUnits 中文释义:可攻击非接触水单位 类型:逻辑布尔值LogicBoolean 隶属于:重复代码组
#### canAttackNotTouchingWaterUnits-要点指示
设置该炮塔是否能对不在水中的目标攻击
#### canAttackNotTouchingWaterUnits-演示例子
```ini
[turret_1]
canAttackNotTouchingWaterUnits:if self.ammo>=2
```
<hr>
### limitingRange
#### limitingRange-代码简介
代码:limitingRange 中文释义:限制范围 类型:整数int 隶属于:重复代码组
#### limitingRange-要点指示
设置该炮塔的攻击距离不能超过maxAttackRange
#### limitingRange-演示例子
```ini
[turret_1]
limitingRange:1000
```
<hr>
### aimOffsetSpread
#### aimOffsetSpread-代码简介
代码:aimOffsetSpread 中文释义:攻击偏移 类型:浮点值float 隶属于:重复代码组
#### aimOffsetSpread-要点指示
攻击时按照敌人半径乘对应值进行位置偏移填0时攻击中心
#### aimOffsetSpread-演示例子
```ini
[turret_1]
aimOffsetSpread:0.6
```
<hr>
### delay
#### delay-代码简介
代码:limitingRange 中文释义:开火间隔 类型:浮点数float 隶属于:重复代码组
#### delay-要点指示
设置该炮塔的开火间隔按帧计时60帧为1秒
#### delay-演示例子
```ini
[turret_1]
delay:60
```
<hr>
### size
#### size-代码简介
代码:size 中文释义:攻击偏移 类型:浮点值float 隶属于:重复代码组
#### size-要点指示
将炮塔开火位置进行y偏移不能与barrelY一起使用
#### size-演示例子
```ini
[turret_1]
size:20
```
<hr>
### turnSpeed
#### turnSpeed-代码简介
代码:turnSpeed 中文释义:炮塔转速 类型:浮点数float 隶属于:重复代码组
#### turnSpeed-要点指示
设置该炮塔的旋转速度按帧旋转每帧转动此数值如填1是1秒旋转60度
#### turnSpeed-演示例子
```ini
[turret_1]
turnSpeed:1
```
<hr>
### showRangeUIGuide
#### showRangeUIGuide-代码简介
代码:turnSpeed 中文释义:显示范围 类型:布尔值bool 隶属于:重复代码组
#### showRangeUIGuide-要点指示
设置是否显示该炮塔的范围
#### showRangeUIGuide-演示例子
```ini
[turret_1]
showRangeUIGuide:true
```
<hr>
## 第二类-基础代码组
### x y
#### x y-代码简介
代码:x y 中文释义:坐标X 坐标Y 类型:浮点数float 隶属于:基础代码组
#### x y-要点指示
设置该炮塔相对单位中心的位置
#### x y-演示例子
```ini
[turret_1]
x:10
y:10
```
<hr>
### height
#### height-代码简介
代码:height 中文释义:高度 类型:浮点数float 隶属于:基础代码组
#### height-要点指示
设置该炮塔的高度,同时链接此炮塔的炮塔也会受影响
#### height-演示例子
```ini
[turret_1]
height:10
```
<hr>
### copyFrom
#### copyFrom-代码简介
代码:copyFrom 中文释义:复制数据自 类型:炮塔turret 隶属于:基础代码组
#### copyFrom-要点指示
复制此炮塔的数据并使用此数据,可被覆盖
#### copyFrom-演示例子
```ini
[turret_1]
copyFrom:2
```
<hr>
### projectile
#### projectile-代码简介
代码:projectile 中文释义:抛射体 类型:抛射体projectile 隶属于:基础代码组
#### projectile-要点指示
炮塔使用此抛射体,如不填写则默认使用最前排的抛射体
#### projectile-演示例子
```ini
[turret_1]
projectile:1
```
<hr>
### altProjectile
#### altProjectile-代码简介
代码:altProjectile 中文释义:关联抛射体 类型:抛射体projectile 隶属于:基础代码组
#### altProjectile-要点指示
炮塔额外关联此抛射体如altProjectileCondition输出true则使用此抛射体否则使用默认projectile
#### altProjectile-演示例子
```ini
[turret_1]
altProjectile:2
```
<hr>
### altProjectileCondition
#### altProjectileCondition-代码简介
代码:altProjectileCondition 中文释义:关联抛射体条件 类型:逻辑布尔值LogicBoolean 隶属于:基础代码组
#### altProjectileCondition-要点指示
此逻辑输出true时该炮塔使用altProjectile抛射体否则使用projectile抛射体
#### altProjectileCondition-演示例子
```ini
[turret_1]
altProjectileCondition:if self.ammo>=2
```
<hr>
### barrelX barrelY
#### barrelX barrelY-代码简介
代码:barrelX barrelY 中文释义:炮塔开火位置 类型:浮点值float 隶属于:基础代码组
#### barrelX barrelY-要点指示
炮塔开火位置X偏移
炮塔开火位置Y偏移
barrelY不能和size一起使用
#### barrelX barrelYtion-演示例子
```ini
[turret_1]
barrelX:10
barrelY:10
```
<hr>
### barrelHeight
#### barrelHeight-代码简介
代码:barrelHeight 中文释义:开火位置高度偏移 类型:浮点值float 隶属于:基础代码组
#### barrelHeight-要点指示
炮塔开火位置高度偏移
#### barrelHeight-演示例子
```ini
[turret_1]
barrelHeight:20
```
<hr>
### turnSpeedAcceleration turnSpeedDeceleration
#### turnSpeedAcceleration turnSpeedDeceleration-代码简介
代码:turnSpeedAcceleration 中文释义:炮塔加速度/减速度 类型:浮点值float 隶属于:基础代码组
#### turnSpeedAcceleration turnSpeedDeceleration-要点指示
炮塔旋转加速度/减速度,按帧加速/减速
#### turnSpeedAcceleration turnSpeedDeceleration-演示例子
```ini
[turret_1]
turnSpeedAcceleration:1
turnSpeedDeceleration:1
```
<hr>
### idleDir
#### idleDir-代码简介
代码:idleDir 中文释义:闲置角度偏移 类型:浮点值float 隶属于:基础代码组
#### idleDir-要点指示
炮塔闲置时的角度偏移
#### idleDir-演示例子
```ini
[turret_1]
idleDir:20
```
<hr>
### idleDirReversing
#### idleDirReversing-代码简介
代码:idleDirReversing 中文释义:允许角度偏移反转 类型:布尔值bool 隶属于:基础代码组
#### idleDirReversing-要点指示
允许单位反转后炮塔偏移角度也反转,如果该炮塔写了隶属和链接则无效
#### idleDirReversing-演示例子
```ini
[turret_1]
idleDirReversing:true
```
<hr>
### shouldResetTurret
#### shouldResetTurret-代码简介
代码:shouldResetTurret 中文释义:空闲时自动复位 类型:布尔值bool 隶属于:基础代码组
#### shouldResetTurret-要点指示
设置该炮塔在空闲时自动复位
#### shouldResetTurret-演示例子
```ini
[turret_1]
shouldResetTurret:true
```
<hr>
### idleSweepAngle
#### idleSweepAngle-代码简介
代码:idleSweepAngle 中文释义:空闲扫描角度 类型:浮点值float 隶属于:基础代码组
#### idleSweepAngle-要点指示
空闲时炮塔扫描的角度,如原版炮塔
#### idleSweepAngle-演示例子
```ini
[turret_1]
idleSweepAngle:60
```
<hr>
### idleSweepDelay
#### idleSweepDelay-代码简介
代码:idleSweepAngle 中文释义:空闲扫描间隔 类型:浮点值float 隶属于:基础代码组
#### idleSweepDelay-要点指示
空闲时炮塔扫描的间隔,按帧计时
#### idleSweepDelay-演示例子
```ini
[turret_1]
idleSweepDelay:60
```
<hr>
### idleSweepSpeed
#### idleSweepSpeed-代码简介
代码:idleSweepSpeed 中文释义:空闲扫描速度 类型:浮点值float 隶属于:基础代码组
#### idleSweepSpeed-要点指示
空闲时炮塔扫描的速度,每帧移动的度数
#### idleSweepSpeed-演示例子
```ini
[turret_1]
idleSweepSpeed:1
```
<hr>
### idleSweepCondition
#### idleSweepCondition-代码简介
代码:idleSweepCondition 中文释义:空闲扫描条件 类型:逻辑布尔值LogicBoolean 隶属于:基础代码组
#### altProjectileCondition-要点指示
空闲扫描需要的条件
#### idleSweepCondition-演示例子
```ini
[turret_1]
idleSweepCondition:if self.ammo>=2
```
<hr>
### idleSweepAddRandomAngle
#### idleSweepAddRandomAngle-代码简介
代码:idleSweepAddRandomAngle 中文释义:空闲扫描随机角度 类型:浮点值float 隶属于:基础代码组
#### idleSweepAddRandomAngle-要点指示
空闲时炮塔扫描的随机角度
#### idleSweepAddRandomAngle-演示例子
```ini
[turret_1]
idleSweepAddRandomAngle:60
```
<hr>
### idleSweepAddRandomDelay
#### idleSweepAddRandomDelay-代码简介
代码:idleSweepAddRandomDelay 中文释义:空闲扫描随机间隔 类型:浮点值float 隶属于:基础代码组
#### idleSweepAddRandomDelay-要点指示
空闲时炮塔扫描的随机间隔,按帧计时
#### idleSweepAddRandomDelay-演示例子
```ini
[turret_1]
idleSweepAddRandomDelay:60
```
<hr>
### attachedTo
#### attachedTo-代码简介
代码:attachedTo 中文释义:链接 类型:炮塔turret 隶属于:基础代码组
#### attachedTo-要点指示
链接到此炮塔,原点重定位至此炮塔
#### attachedTo-演示例子
```ini
[turret_1]
attachedTo:1
```
<hr>
### slave
#### slave-代码简介
代码:slave 中文释义:隶属 类型:布尔值bool 隶属于:基础代码组
#### slave-要点指示
与attachedTo一起使用用于让炮塔与链接的炮塔一起旋转
#### slave-演示例子
```ini
[turret_1]
slave:true
```
<hr>
### isMainNanoTurret
#### isMainNanoTurret-代码简介
代码:isMainNanoTurret 中文释义:是主构建炮塔 类型:布尔值bool 隶属于:基础代码组
#### isMainNanoTurret-要点指示
将炮塔设定为用于修复/建造的炮塔
只能有一个主构建炮塔
#### isMainNanoTurret-演示例子
```ini
[turret_1]
isMainNanoTurret:true
```
<hr>
### energyUsage
#### energyUsage-代码简介
代码:energyUsage 中文释义:能量需求 类型:浮点值float 隶属于:基础代码组
#### energyUsage-要点指示
炮塔攻击需要的能量,攻击后扣除,能量不够时无法攻击
#### energyUsage-演示例子
```ini
[turret_1]
energyUsage:60
```
<hr>
### resourceUsage
#### resourceUsage-代码简介
代码:resourceUsage 中文释义: 类型:资源resource 隶属于:基础代码组
#### resourceUsage-要点指示
攻击后扣除的资源,即使资源不足也能攻击
#### resourceUsage-演示例子
```ini
[turret_1]
resourceUsage:资源=60,ammo=60
```
<hr>
### linkDelayWithTurret
#### linkDelayWithTurret-代码简介
代码:linkDelayWithTurret 中文释义:链接间隔 类型:炮塔turret 隶属于:基础代码组
#### linkDelayWithTurret-要点指示
链接的炮塔攻击后重置炮塔攻击间隔,与预热一起使用可以做出交替开火的效果
#### linkDelayWithTurret-演示例子
```ini
[turret_1]
linkDelayWithTurret:1
```
<hr>
### warmup
#### warmup-代码简介
代码:warmup 中文释义:预热 类型:浮点值float 隶属于:基础代码组
#### warmup-要点指示
炮塔蓄力的时间,停止攻击时归零,按帧计时
#### warmup-演示例子
```ini
[turret_1]
warmup:60
```
<hr>
### warmupCallDownRate
#### warmupCallDownRate-代码简介
代码:warmupCallDownRate 中文释义:预热下降速度 类型:浮点值float 隶属于:基础代码组
#### warmupCallDownRate-要点指示
停止攻击时预热的降低速度,按帧下降
需要warmupNoReset:true
#### warmupCallDownRate-演示例子
```ini
[turret_1]
warmupCallDownRate:1
```
<hr>
### warmupNoReset
#### warmupNoReset-代码简介
代码:warmupNoReset 中文释义:预热不重置 类型:布尔值bool 隶属于:基础代码组
#### warmupNoReset-要点指示
默认为false停止攻击时炮塔预热不会归零
填true时warmupCallDownRate会生效并降低预热
#### warmupNoReset-演示例子
```ini
[turret_1]
warmupNoReset:true
```
<hr>
### warmupShootDelayTransfer
#### warmupShootDelayTransfer-代码简介
代码:warmupShootDelayTransfer 中文释义:开火间隔过渡 类型:浮点值float 隶属于:基础代码组
#### warmupShootDelayTransfer-要点指示
按炮塔蓄力的时间,与攻击间隔进行相减
填写正数时会让攻击间隔缩短
相减为负数时会自动取绝对值
填写负数时会让攻击间隔延长
#### warmupShootDelayTransfer-演示例子
```ini
[turret_1]
warmupShootDelayTransfer:60
```
::: details
delay:30-攻击间隔为0.5秒
warmupShootDelayTransfer:120-攻击间隔降低2秒
最后得出数据为-1.5秒-攻击间隔为1.5秒
:::
<hr>
### onShoot_freezeBodyMovementFor
#### onShoot_freezeBodyMovementFor-代码简介
代码:onShoot_freezeBodyMovementFor 中文释义:射击时冻结主体 类型:浮点值float 隶属于:基础代码组
#### onShoot_freezeBodyMovementFor-要点指示
攻击后冻结主体的时间,按帧计时
#### onShoot_freezeBodyMovementFor-演示例子
```ini
[turret_1]
onShoot_freezeBodyMovementFor:60
```
<hr>
### barrelOffsetX_onOddShots
#### barrelOffsetX_onOddShots-代码简介
代码:barrelOffsetX_onOddShots 中文释义:射击时炮塔偏移 类型:浮点值float 隶属于:基础代码组
#### barrelOffsetX_onOddShots-要点指示
攻击时炮塔角度偏移量,用于单个炮塔使用多炮管图像时让炮管偏移
如原版T2机枪塔T3机枪塔炮管越多效果越差
#### barrelOffsetX_onOddShots-演示例子
```ini
[turret_1]
barrelOffsetX_onOddShots:10
```
<hr>
### canAttackCondition
#### canAttackCondition-代码简介
代码:canAttackCondition 中文释义:攻击条件 类型:逻辑布尔值LogicBoolean 隶属于:基础代码组
#### canAttackCondition-要点指示
设置该炮塔攻击需要的额外条件
输出false时无法攻击
#### canAttackCondition-演示例子
```ini
[turret_1]
canAttackCondition:if self.ammo>=2
```
<hr>
### clearTurretTargetAfterFiring
#### clearTurretTargetAfterFiring-代码简介
代码:clearTurretTargetAfterFiring 中文释义:攻击后重置炮塔目标 类型:布尔值bool 隶属于:重复代码组
#### clearTurretTargetAfterFiring-要点指示
炮塔攻击后重置目标
#### clearTurretTargetAfterFiring-演示例子
```ini
[turret_1]
clearTurretTargetAfterFiring:true
```
<hr>
### limitingAngle
#### limitingAngle-代码简介
代码:limitingAngle 中文释义:限制角度 类型:浮点值float 隶属于:基础代码组
#### limitingAngle-要点指示
与idleDir配合使用炮塔只能以+/-此角度进行攻击。
如idleDir:0的炮塔此数值填写90则可以旋转到[-90,90]这个区间的任意角度
#### limitingAngle-演示例子
```ini
[turret_1]
limitingAngle:30
```
<hr>
### limitingMinRange
#### limitingMinRange-代码简介
代码:limitingMinRange 中文释义:最小范围 类型:浮点值float 隶属于:基础代码组
#### limitingMinRange-要点指示
设置炮塔不能攻击此范围内的敌人
#### limitingMinRange-演示例子
```ini
[turret_1]
limitingMinRange:30
```
<hr>
### canAttackMaxAngle
#### canAttackMaxAngle-代码简介
代码:canAttackMaxAngle 中文释义:最大可攻击角度 类型:浮点值float 隶属于:基础代码组
#### canAttackMaxAngle-要点指示
设置炮塔可攻击的角度默认为15
填写181可以实现全角度攻击
#### canAttackMaxAngle-演示例子
```ini
[turret_1]
canAttackMaxAngle:30
```
<hr>
### interceptProjectiles_withTags
#### interceptProjectiles_withTags-代码简介
代码:interceptProjectiles_withTags 中文释义:拦截抛射体需要标签 类型:标签tags 隶属于:基础代码组
#### interceptProjectiles_withTags-要点指示
设置拦截的抛射体携带的标签
拥有此标签的抛射体才能触发并进行拦截
#### interceptProjectiles_withTags-演示例子
```ini
[turret_1]
interceptProjectiles_withTags:标签
```
<hr>
### interceptProjectiles_andTargetingGroundUnderDistance
#### interceptProjectiles_andTargetingGroundUnderDistance-代码简介
代码:interceptProjectiles_andTargetingGroundUnderDistance 中文释义:拦截抛射体检索范围 类型:浮点值float 隶属于:基础代码组
#### interceptProjectiles_andTargetingGroundUnderDistance-要点指示
设置拦截抛射体的范围
携带对应标签的抛射体落点在此范围内才会拦截
#### interceptProjectiles_andTargetingGroundUnderDistance-演示例子
```ini
[turret_1]
interceptProjectiles_andTargetingGroundUnderDistance:1000
```
<hr>
### interceptProjectiles_andUnderDistance
#### interceptProjectiles_andUnderDistance-代码简介
代码:interceptProjectiles_andUnderDistance 中文释义:拦截抛射体攻击范围 类型:浮点值float 隶属于:基础代码组
#### interceptProjectiles_andUnderDistance-要点指示
设置拦截抛射体攻击范围
携带对应标签的抛射体进入此范围就会进行拦截
#### interceptProjectiles_andUnderDistance-演示例子
```ini
[turret_1]
interceptProjectiles_andUnderDistance:2000
```
<hr>
### interceptProjectiles_andOverHeight
#### interceptProjectiles_andOverHeight-代码简介
代码:interceptProjectiles_withTags 中文释义:拦截抛射体高度 类型:浮点值float 隶属于:基础代码组
#### interceptProjectiles_andOverHeight-要点指示
设置拦截抛射体时,发射的抛射体初始爬升的高度
#### interceptProjectiles_andOverHeight-演示例子
```ini
[turret_1]
interceptProjectiles_andOverHeight:50
```
<hr>
### interceptProjectile_removeTargetLifeOnly
#### interceptProjectile_removeTargetLifeOnly-代码简介
代码:interceptProjectile_removeTargetLifeOnly 中文释义:拦截抛射体移除目标存活时间 类型:布尔值bool 隶属于:基础代码组
#### interceptProjectile_removeTargetLifeOnly-要点指示
设置被击中的抛射体可爆炸或分裂。用于设定命中抛射体时是否执行分裂逻辑。
#### interceptProjectile_removeTargetLifeOnly-演示例子
```ini
[turret_1]
interceptProjectile_removeTargetLifeOnly:true
```
<hr>
### laserDefenceEnergyUse
#### laserDefenceEnergyUse-代码简介
代码:laserDefenceEnergyUse 中文释义:激光防御能量需求 类型:浮点数float 隶属于:基础代码组
#### laserDefenceEnergyUse-要点指示
拦截1次抛射体消耗的能量
#### laserDefenceEnergyUse-演示例子
```ini
[turret_1]
laserDefenceEnergyUse:1
```
<hr>
### laserDefenceEnergyUse
#### laserDefenceEnergyUse-代码简介
代码:laserDefenceEnergyUse 中文释义:激光防御能量需求 类型:浮点数float 隶属于:基础代码组
#### laserDefenceEnergyUse-要点指示
拦截1次抛射体消耗的能量
#### laserDefenceEnergyUse-演示例子
```ini
[turret_1]
laserDefenceEnergyUse:1
```
<hr>
## 第三类-显示相关组
### invisible
#### invisible-代码简介
代码:invisible 中文释义:隐藏图像 类型:逻辑布尔值LogicBoolean 隶属于:显示相关组
#### invisible-要点指示
是否隐藏炮塔图像
#### invisible-演示例子
```ini
[turret_1]
invisible:if self.ammo<=2
```
<hr>
### image
#### image-代码简介
代码:image 中文释义:主体图像 类型:图像png 隶属于:显示相关组
#### image-要点指示
炮塔图像
#### image-演示例子
```ini
[turret_1]
image:png.png
```
<hr>
### image_applyTeamColors
#### image_applyTeamColors-代码简介
代码:image_applyTeamColors 中文释义:隐藏图像 类型:逻辑布尔值LogicBoolean 隶属于:显示相关组
#### image_applyTeamColors-要点指示
炮塔图像是否使用阵营色
#### image_applyTeamColors-演示例子
```ini
[turret_1]
image_applyTeamColors:true
```
<hr>
### image_drawOffsetX/image_drawOffsetY
#### image_drawOffsetX/image_drawOffsetY-代码简介
代码:image_drawOffsetX/image_drawOffsetY 中文释义:图像x偏移/图像y偏移 类型:浮点数float 隶属于:显示相关组
#### image_drawOffsetX/image_drawOffsetY-要点指示
图像偏移x或y不影响炮塔属性
#### image_drawOffsetX/image_drawOffsetY-演示例子
```ini
[turret_1]
image_drawOffsetX:20
image_drawOffsetY:20
```
<hr>
### chargeEffectImage
#### chargeEffectImage-代码简介
代码:chargeEffectImage 中文释义:蓄力图像 类型:图像png 隶属于:显示相关组
#### chargeEffectImage-要点指示
炮塔蓄力图像与warmup配合使用
#### chargeEffectImage-演示例子
```ini
[turret_1]
chargeEffectImage:png.png
```
<hr>
### warmupStartEffect
#### warmupStartEffect-代码简介
代码:warmupStartEffect 中文释义:炮塔蓄力图像 类型:效果effect 隶属于:显示相关组
#### warmupStartEffect-要点指示
蓄力时产生一次效果
#### warmupStartEffect-演示例子
```ini
[turret_1]
warmupStartEffect:CUSTOM:效果
```
<hr>
### shoot_sound
#### shoot_sound-代码简介
代码:shoot_sound 中文释义:攻击音效 类型:音频wav/ogg 隶属于:显示相关组
#### shoot_sound-要点指示
攻击时播放音频
#### shoot_sound-演示例子
```ini
[turret_1]
shoot_sound:ogg.ogg/wav.wav
```
<hr>
### shoot_sound_vol
#### shoot_sound_vol-代码简介
代码:shoot_sound_vol 中文释义:攻击音效大小 类型:浮点值float 隶属于:显示相关组
#### shoot_sound_vol-要点指示
设置攻击时产生音效的音量大小
#### shoot_sound_vol-演示例子
```ini
[turret_1]
shoot_sound_vol:0.1
```
<hr>
### shoot_flame
#### shoot_flame-代码简介
代码:shoot_flame 中文释义:开火效果 类型:效果effect 隶属于:显示相关组
#### shoot_flame-要点指示
设置开火时产生的效果
#### shoot_flame-演示例子
```ini
[turret_1]
shoot_flame:CUSTOM:效果
```
<hr>
### shoot_light
#### shoot_light-代码简介
代码:shoot_light 中文释义:攻击闪光 类型:颜色码 隶属于:显示相关组
#### shoot_light-要点指示
设置攻击时产生闪光颜色码排列为AARRGGBB
#### shoot_light-演示例子
```ini
[turret_1]
shoot_light:#00000000
```
<hr>
### idleSpin
#### idleSpin-代码简介
代码:idleSpin 中文释义:闲时转速 类型:浮点值float 隶属于:显示相关组
#### idleSpin-要点指示
设置炮塔每帧转动角度,如原版萨姆导弹
#### idleSpin-演示例子
```ini
[turret_1]
idleSpin:1
```
<hr>
### recoilOffset
#### recoilOffset-代码简介
代码:recoilOffset 中文释义:后坐力大小 类型:浮点值float 隶属于:显示相关组
#### recoilOffset-要点指示
设置炮塔在攻击后产生后坐力
填负数让炮塔后退,填正数则前进
#### recoilOffset-演示例子
```ini
[turret_1]
recoilOffset:-5
```
<hr>
### recoilOutTime
#### recoilOutTime-代码简介
代码:recoilOutTime 中文释义:后坐力速度 类型:浮点值float 隶属于:显示相关组
#### recoilOutTime-要点指示
设置炮塔后坐力产生的速度
后坐力会在此时间完成后退/前进
#### recoilOutTime-演示例子
```ini
[turret_1]
recoilOutTime:7.5
```
<hr>
### recoilReturnTime
#### recoilReturnTime-代码简介
代码:recoilReturnTime 中文释义:后坐力恢复 类型:浮点值float 隶属于:显示相关组
#### recoilReturnTime-要点指示
后坐力完成后退/前进后,复位所需要的时间
炮塔会在此时间完成复位
#### recoilReturnTime-演示例子
```ini
[turret_1]
recoilReturnTime:15
```
<hr>
### yAxisScaling
#### yAxisScaling-代码简介
代码:yAxisScaling 中文释义:Y轴缩放比例 类型:浮点值float 隶属于:显示相关组
#### yAxisScaling-要点指示
多用于用于2.5D效果也就是伪3D
#### yAxisScaling-演示例子
```ini
[turret_1]
yAxisScaling:25
```
<hr>
## 第四类-触发相关组
### onShoot_playAnimation
#### onShoot_playAnimation-代码简介
代码:onShoot_playAnimation 中文释义:开火触发动画 类型:动画animation 隶属于:触发相关组
#### onShoot_playAnimation-要点指示
设置炮塔攻击时播放该动画
#### onShoot_playAnimation-演示例子
```ini
[turret_1]
onShoot_playAnimation:1
```
<hr>
### onShoot_freezeBodyMovementFor
#### onShoot_freezeBodyMovementFor-代码简介
代码:onShoot_freezeBodyMovementFor 中文释义:开火冻结移动 类型:浮点值float 隶属于:触发相关组
#### onShoot_freezeBodyMovementFor-要点指示
设置炮塔开火后无法移动的时间,按帧计时
#### onShoot_freezeBodyMovementFor-演示例子
```ini
[turret_1]
onShoot_freezeBodyMovementFor:60
```
<hr>
### onShoot_triggerActions
#### onShoot_triggerActions-代码简介
代码:onShoot_triggerActions 中文释义:开火触发行动 类型:行动action 隶属于:触发相关组
#### onShoot_triggerActions-要点指示
设置炮塔攻击时触发的行动
#### onShoot_triggerActions-演示例子
```ini
[turret_1]
onShoot_triggerActions:1
```
<hr>
### unloadUpToXUnitsAndGiveAttackOrder
#### unloadUpToXUnitsAndGiveAttackOrder-代码简介
代码:unloadUpToXUnitsAndGiveAttackOrder 中文释义:卸载n个单位并赋予攻击目标 类型:整数int 隶属于:触发相关组
#### unloadUpToXUnitsAndGiveAttackOrder-要点指示
在炮塔开火处卸载n个单位
同时提供路径让它们攻击炮塔指定的目标
#### unloadUpToXUnitsAndGiveAttackOrder-演示例子
```ini
[turret_1]
unloadUpToXUnitsAndGiveAttackOrder:1
```
<hr>

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB