Compare commits
3 Commits
788719c178
...
f5785dbc73
| Author | SHA1 | Date | |
|---|---|---|---|
|
f5785dbc73
|
|||
|
e06c56a658
|
|||
|
895093b98e
|
4
.vscode/tasks.json
vendored
@@ -3,9 +3,9 @@
|
||||
"tasks": [
|
||||
{
|
||||
"type": "npm",
|
||||
"script": "docs:dev",
|
||||
"script": "dev",
|
||||
"problemMatcher": [],
|
||||
"label": "npm: docs:dev",
|
||||
"label": "pnpm: dev",
|
||||
"detail": "vuepress-vite dev src",
|
||||
"isBackground": true,
|
||||
"runOptions": {
|
||||
|
||||
@@ -94,7 +94,7 @@ star: true
|
||||
|
||||
这种“等待条件”的现象与高中数学讨论的“若 p 则 q”命题(即条件命题)非常类似。一个条件命题要能判断其真伪,条件就必不可少;同样的,一个触发要能执行,首先要等待前置事件完成。在程序框图中,像这种具有前置条件的语义用**条件分支**表示(如下图),又称**选择结构**。
|
||||
|
||||

|
||||

|
||||
|
||||
从游戏实际运行的现象来看,触发会在条件满足(为真)后执行相应的“处理程序”(也就是行为),这一点符合基本印象。而当条件**尚未满足**时,触发则阻塞等待。
|
||||
假如**逻辑上**就是希望判断条件不满足(为假),由于触发一直等不到条件满足,则直到游戏结束为止这个条件都得不到任何处理。如此看来,触发的逻辑本质就是如上左图的**条件单分支结构**。
|
||||
@@ -190,7 +190,12 @@ bool TActionExt::EditVariable(
|
||||
|
||||
如需链式允许一系列触发,比如 $t_1 \to t_2 \to \ldots \to t_n$ ,也是如法炮制。以此类推,就形成触发链:
|
||||
|
||||

|
||||
```mermaid
|
||||
flowchart LR
|
||||
A(["intro.0"]) -- “允许” --> TD(["[x] intro.1"])
|
||||
TD -- “允许” --> n1(["[x] intro.2"])
|
||||
```
|
||||
|
||||
|
||||
而在程序代码当中,顺序是通过代码行的先后次序来体现的:
|
||||
```python
|
||||
@@ -222,7 +227,7 @@ if anyEvent: # P8 任何事件(当*单独使用*时,它会令触发*立即
|
||||
|
||||
对于循环结构,[已知的触发教程](https://www.bilibili.com/video/BV1Zw411y7DZ?spm_id_from=333.1387.collection.video_card.click)大概会让你关注触发的「重复类型」:
|
||||
|
||||

|
||||

|
||||
|
||||
通常来说,选择 *2 - Repeating OR* 那一项便足以满足很多简单的重复需求。
|
||||
|
||||
@@ -239,7 +244,7 @@ while True:
|
||||
|
||||
分析这个运行表现不难发现,它是类似下图图二的流程:首先它走到`while`处执行判断,由于条件恒满足,往下执行`print`;然后循环并没有结束,它重新回到`while`重复执行前面说的流程,将坏掉的乐土打字机事业推进下去~~爱莉希雅死辣~~。
|
||||
|
||||

|
||||

|
||||
|
||||
上面的`Hello World`案例也是类似图二的流程。于是,重复触发可以用`while`循环表示:
|
||||
```python
|
||||
|
||||
|
Before Width: | Height: | Size: 12 KiB |
@@ -24,7 +24,7 @@ date: 2025-05-16
|
||||
|
||||
[^moewiki_catboy]: 这种分类取自[萌娘百科](https://zh.moegirl.org.cn/%E7%8C%AB%E9%83%8E)。简而言之就是“猫少年”,或者说“具有猫部分特征的男孩子”。
|
||||
|
||||

|
||||

|
||||
|
||||
最早启用的设定。虽然理论上任何钙离子组成的盐都可以指代我,但中学阶段最常见的沉淀果然还是 CaCO~3~ 吧。然后“碳酸钙摘掉两个氧”,最初的名字——Caco 就确定下来了。后来又衍生出音译“卡扣”、Casheen 和相应音译“卡伸”。
|
||||
老朋友们大抵还是愿意叫我“卡”这组名字,特别是接触过的红警 2 modder 和地图师。
|
||||
@@ -51,7 +51,7 @@ date: 2025-05-16
|
||||
- 喜欢的:听故事和讲故事
|
||||
- 讨厌的:毫无营养的信源
|
||||
|
||||

|
||||

|
||||
|
||||
在 Caco 因故被一撮原神同人女攻击之后不久,钙的形象弃用,咱也随即改名为 Chloride Pussemi,即 ChlorideP 了。而后有人因为末尾这个 P 以为我是 VOCALOID 曲师(P 主),加上这个昵称全小写起来并不方便手写,遂又更名为 NyaCl.
|
||||
|
||||
@@ -78,7 +78,7 @@ date: 2025-05-16
|
||||
- 喜欢的:涩涩(无论主动被动)
|
||||
- 讨厌的:烦心事
|
||||
|
||||

|
||||

|
||||
|
||||
> [!note]
|
||||
> 将来有时间和闲钱的话,再为 Ag 这个形象重新约张稿吧。
|
||||
|
||||
@@ -13,4 +13,4 @@ article: false
|
||||
|
||||
拍的时候主包可能已经 85+kg 了。最近有在减肥喵,但说实话对于女装,我不抱希望。
|
||||
|
||||

|
||||

|
||||
|
||||
@@ -6,8 +6,8 @@ article: false
|
||||
|
||||
稍微减了减肥,现在拍完自我感觉不会太难看了……吧。当然由于条件有限,体毛什么的没办法除得特别利索。如有影响观感还请见谅。
|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||
@@ -89,7 +89,7 @@ Windows 启不动我们会尝试修复引导,Arch 亦然。修复 Grub 引导
|
||||
### ii. 补充回退启动项
|
||||
事实上,需要反复重建 Grub 引导的一大原因就在于,Grub 只会写入它自己的`grubx64.efi`,以及原生启动项:
|
||||
|
||||

|
||||

|
||||
|
||||
那么办法也很简单:像 Windows 那样也建一个回退路径启动项。具体来说,在 ESP 分区里建立`EFI\BOOT`目录,复制`grubx64.efi`重命名成`bootx64.efi`嘛。~~Windows 不也干了(~~
|
||||
当然如果是像图中那样不止一个 Grub,甚至同盘 Windows 和 Arch 双系统,那我不推荐你这么做。
|
||||
|
||||
@@ -25,11 +25,6 @@ tag:
|
||||
对于其他 mod,乃至其他游戏和 Windows 程序,本篇笔记的方案可能有一定参考价值,**但不保证能够成功运行**。
|
||||
:::
|
||||
|
||||
::: note 图片大小
|
||||
本篇笔记的插图原图对于电脑端来说会偏大一些,因此我基本上都做了缩小处理——你可以点击图片查看原图。
|
||||
如果您在用移动设备阅读,则这种“缩小”效果可能更明显些。还请见谅。
|
||||
:::
|
||||
|
||||
那么正式开始之前,我有必要先说一下我的 Linux 环境。由于 Linux 发行版众多,我**无法保证别的包源、别的发行版能否这么操作**。
|
||||
|
||||
- 操作系统:Arch Linux
|
||||
@@ -45,13 +40,13 @@ Bottles 是由 [bottlesdevs](https://github.com/bottlesdevs) 开发的可视化
|
||||
|
||||
[^lazy_loading]: 经实测发现,单文件 exe 才可以在这种情况下直接在 Bottles 里启动。但凡需要读同级文件、子文件夹的,都需要在 Bottle 里添加快捷方式,并在快捷方式的设置里手动指明工作目录。
|
||||
|
||||
首先需要引入`archlinuxcn`源。具体步骤参见[《Arch 安装流程》](../OS/ArchInstall.md#_4-1-cn-源和-aur-助手),这里不再重复。
|
||||
首先需要引入`archlinuxcn`源。具体步骤参见[《Arch 安装流程》](../OS/ArchInstall.md#i-cn-源和-aur-助手),这里不再重复。
|
||||
接着`sudo pacman -Sy bottles`安装。等待进度跑完,就可以从“应用程序菜单栏”运行了。
|
||||
|
||||
初次运行 Bottles 会弹出一个向导跟你 blabla,无脑下一步即可。
|
||||
到最后一步时 Bottles 会下载一些组件包。由于众所周知的原因,可能会花费比较长的时间。
|
||||
|
||||

|
||||

|
||||
|
||||
## 二、部署 Bottle
|
||||
|
||||
@@ -81,7 +76,7 @@ Bottles 是由 [bottlesdevs](https://github.com/bottlesdevs) 开发的可视化
|
||||
> [!warning]
|
||||
> 如果你在全局设置里改过默认目录,千万不要在新建这里又改到同一个位置,否则会报**符号占用,创建失败**。
|
||||
|
||||

|
||||

|
||||
|
||||
然后在右上角点击“创建”即可。
|
||||
|
||||
@@ -143,7 +138,7 @@ unzip -O GBK -o '~/Documents/0.6.2 离线更新包.zip' -d '~/Documents/Extreme
|
||||
|
||||
然后点开你的 Bottle 进入详情页,为客户端`Extreme Starry.exe`添加快捷方式,这样就不需要每次都点“运行可执行程序”找半天了。
|
||||
|
||||

|
||||

|
||||
|
||||
> [!tip]
|
||||
> 在“选择可执行文件”对话框中,若找不到 exe,请在“过滤”那里改为`Supported Executables`。
|
||||
@@ -194,7 +189,7 @@ unzip -O GBK -o '~/Documents/0.6.2 离线更新包.zip' -d '~/Documents/Extreme
|
||||
::: info 再次启动客户端没有反应
|
||||
可能是因为进程还驻留在 Wine 环境当中,需要“强制停止所有进程”手动干掉:
|
||||
|
||||

|
||||

|
||||
:::
|
||||
|
||||
## 附录:关于 Syringe 命令行
|
||||
|
||||
10
package.json
@@ -5,16 +5,16 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"docs:build": "vuepress-vite build docs",
|
||||
"docs:clean-dev": "vuepress-vite dev docs --clean-cache",
|
||||
"docs:dev": "vuepress-vite dev docs",
|
||||
"docs:update-package": "pnpm dlx vp-update"
|
||||
"build": "vuepress-vite build docs",
|
||||
"dev": "vuepress-vite dev docs",
|
||||
"up-deps": "pnpm dlx vp-update"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vuepress/bundler-vite": "2.0.0-rc.19",
|
||||
"@vuepress/plugin-docsearch": "2.0.0-rc.76",
|
||||
"@vuepress/plugin-pwa": "2.0.0-rc.76",
|
||||
"@vuepress/plugin-remove-pwa": "2.0.0-rc.103",
|
||||
"katex": "^0.16.21",
|
||||
"mermaid": "^11.6.0",
|
||||
"vue": "^3.5.13",
|
||||
"vuepress": "2.0.0-rc.19",
|
||||
"vuepress-theme-hope": "2.0.0-rc.71"
|
||||
|
||||
3865
pnpm-lock.yaml
generated
|
Before Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 45 KiB |
|
Before Width: | Height: | Size: 158 KiB |
|
Before Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 151 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 29 KiB |
BIN
public/logo.png
|
Before Width: | Height: | Size: 92 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="1200" class="icon" viewBox="0 0 3280.944 2800"><path fill="#41b883" d="M1645.332 601.004h375.675L1081.82 2238.478 142.636 601.004h718.477l220.708 379.704 216.013-379.704z"/><path fill="#41b883" d="M142.636 601.004l939.185 1637.474 939.186-1637.474h-375.675l-563.51 982.484-568.208-982.484z"/><path fill="#35495e" d="M513.188 601.004l568.207 987.23 563.511-987.23h-347.498l-216.013 379.704-220.708-379.704zM1607.792 1311.83l594.678 2.293 187.353-316.325-598.662 2.292zM2198.506 1909.57C2867.436 732.7 2939.502 605.426 2937.874 603.78c-.715-.723 45.303-1.314 102.262-1.314s103.562.428 103.562.951c0 .523-208.57 367.978-463.491 816.567L2216.715 2235.6l-102.1.596-102.102.596z"/><path fill="#41b883" d="M1680.563 2233.328c0-1.34 168.208-298.145 440.375-777.048a4135645.775 4135645.775 0 00337.619-594.19l146.13-257.25 170.746-.04 170.747-.04-5.536 9.741c-3.044 5.358-43.727 77.302-90.407 159.875-85.356 150.992-337.562 595.163-656.602 1156.373l-172 302.559-170.536.588c-93.795.322-170.536.069-170.536-.567z"/><path fill="#35495e" d="M1429.783 1625.351l594.679 2.292 187.353-316.324-598.662 2.292z"/><path fill="#41b883" d="M1524.207 1464.903l608.285 6.877 173.746-320.909h-619.072z"/></svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -76,8 +76,8 @@ export default hopeTheme(
|
||||
tabs: true,
|
||||
tasklist: true,
|
||||
vPre: true,
|
||||
// katex
|
||||
math: true,
|
||||
mermaid: true,
|
||||
math: true, // katex
|
||||
},
|
||||
|
||||
// 多语言配置
|
||||
@@ -104,61 +104,16 @@ export default hopeTheme(
|
||||
indexName: 'agxcoy-shimakaze'
|
||||
},
|
||||
|
||||
components: {
|
||||
components: ["Badge", "VPCard"],
|
||||
comment: {
|
||||
provider: "Giscus",
|
||||
repo: "AgxCOy/AgxCOy",
|
||||
repoId: "R_kgDOLMGphQ",
|
||||
category: "Comments",
|
||||
categoryId: "DIC_kwDOLMGphc4CradT",
|
||||
},
|
||||
|
||||
// 如果你需要 PWA。安装 @vuepress/plugin-pwa 并取消下方注释
|
||||
pwa: {
|
||||
favicon: "/favicon.ico",
|
||||
cacheHTML: false,
|
||||
cacheImage: false,
|
||||
appendBase: true,
|
||||
apple: {
|
||||
icon: "/assets/icon/apple-icon-152.png",
|
||||
statusBarColor: "black",
|
||||
},
|
||||
manifest: {
|
||||
icons: [
|
||||
{
|
||||
src: "/assets/icon/chrome-mask-512.png",
|
||||
sizes: "512x512",
|
||||
purpose: "maskable",
|
||||
type: "image/png",
|
||||
},
|
||||
{
|
||||
src: "/assets/icon/chrome-mask-192.png",
|
||||
sizes: "192x192",
|
||||
purpose: "maskable",
|
||||
type: "image/png",
|
||||
},
|
||||
{
|
||||
src: "/assets/icon/chrome-512.png",
|
||||
sizes: "512x512",
|
||||
type: "image/png",
|
||||
},
|
||||
{
|
||||
src: "/assets/icon/chrome-192.png",
|
||||
sizes: "192x192",
|
||||
type: "image/png",
|
||||
},
|
||||
],
|
||||
// shortcuts: [
|
||||
// {
|
||||
// name: "Demo",
|
||||
// short_name: "Demo",
|
||||
// url: "/demo/",
|
||||
// icons: [
|
||||
// {
|
||||
// src: "/assets/icon/guide-maskable.png",
|
||||
// sizes: "192x192",
|
||||
// purpose: "maskable",
|
||||
// type: "image/png",
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// ],
|
||||
},
|
||||
components: {
|
||||
components: ["Badge", "VPCard"],
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { defineUserConfig } from "vuepress";
|
||||
import { removePwaPlugin } from "@vuepress/plugin-remove-pwa"
|
||||
import theme from "./src/theme.hope.js";
|
||||
|
||||
export default defineUserConfig({
|
||||
@@ -15,8 +16,10 @@ export default defineUserConfig({
|
||||
|
||||
theme,
|
||||
|
||||
// 和 PWA 一起启用
|
||||
shouldPrefetch: false,
|
||||
plugins: [
|
||||
removePwaPlugin({}),
|
||||
],
|
||||
|
||||
head: [
|
||||
// 导入相应链接
|
||||
|
||||