Compare commits

...

1 Commits

Author SHA1 Message Date
5e1b55fd50 a 2025-08-01 17:07:17 +08:00

249
README.md
View File

@ -1,106 +1,191 @@
# Scrafitipty暂定名称 - 脚本执行器
# 该项目已废弃
![Minecraft Fabric](https://img.shields.io/badge/Minecraft-1.21.4-green) ![Mod Loader](https://img.shields.io/badge/Mod%20Loader-Fabric-blue)
Scrafitipty(暂定名称) 是一个 Minecraft Fabric Mod允许玩家在游戏中运行自定义脚本来自动化任务、扩展游戏功能。它提供了一个类似 Python 的脚本语言解释器,让玩家可以编写简单的脚本来控制游戏行为。
[//]: # (# Scrafitipty暂定名称 - 脚本执行器)
> **重要提示**
> 此 Mod 仍处于**半成品阶段**,功能有限且可能存在不稳定性。脚本语法只是**表面上类似 Python**,但**并未使用真正的 Python 解释器**。
[//]: # ()
[//]: # (![Minecraft Fabric](https://img.shields.io/badge/Minecraft-1.21.4-green) ![Mod Loader](https://img.shields.io/badge/Mod%20Loader-Fabric-blue))
### 基本命令
[//]: # ()
[//]: # (Scrafitipty(暂定名称) 是一个 Minecraft Fabric Mod允许玩家在游戏中运行自定义脚本来自动化任务、扩展游戏功能。它提供了一个类似 Python 的脚本语言解释器,让玩家可以编写简单的脚本来控制游戏行为。)
| 命令 | 描述 | 示例 |
|------|------|------|
| `/scrafitipty run <脚本名>` | 运行指定脚本 | `/scrafitipty run example_script` |
| `/scrafitipty open <脚本名>` | 打开脚本文件 | `/scrafitipty open example_script` |
| `/scrafitipty open_folder` | 打开脚本文件夹 | `/scrafitipty open_folder` |
| `/scrafitipty list` | 列出所有可用脚本 | `/scrafitipty list` |
| `/scrafitipty delete <脚本名>` | 删除脚本 | `/scrafitipty delete old_script` |
[//]: # ()
[//]: # (> **重要提示** )
首次使用时,系统会自动在游戏目录下创建 `Scrafitipty_scripts` 文件夹,并生成一个示例脚本 `example_script.py`
[//]: # (> 此 Mod 仍处于**半成品阶段**,功能有限且可能存在不稳定性。脚本语法只是**表面上类似 Python**,但**并未使用真正的 Python 解释器**。)
### 脚本位置
所有脚本都存储在 Minecraft 根目录下的 `Scrafitipty_scripts` 文件夹中:
```
.minecraft/
└── Scrafitipty_scripts/
├── example_script.py
└── your_scripts_here.py
```
[//]: # ()
[//]: # (### 基本命令)
### 基本语法
[//]: # ()
[//]: # (| 命令 | 描述 | 示例 |)
Scrafitipty 使用类似 Python 的语法,但请注意:
- **不是真正的 Python** - 这是一个简化版的自定义脚本语言
- 支持变量、条件语句(`if`/`else`)、循环(`while`)
- 使用缩进4个空格表示代码块
- 支持单行注释(以 `#` 开头)
[//]: # (|------|------|------|)
### 内置函数
[//]: # (| `/scrafitipty run <脚本名>` | 运行指定脚本 | `/scrafitipty run example_script` |)
#### 游戏交互
[//]: # (| `/scrafitipty open <脚本名>` | 打开脚本文件 | `/scrafitipty open example_script` |)
| 函数 | 参数 | 描述 | 示例 |
|------|------|------|------|
| `send_chat(message)` | `message`: 字符串 | 发送聊天消息 | `send_chat("Hello Minecraft!")` |
| `send_command(command)` | `command`: 字符串 | 执行游戏命令 | `send_command("time set day")` |
| `print_output(message)` | `message`: 字符串 | 显示仅自己可见的消息 | `print_output("脚本运行中...")` |
| `get_player_x()` | 无 | 获取玩家 X 坐标 | `x = get_player_x()` |
| `get_player_y()` | 无 | 获取玩家 Y 坐标 | `y = get_player_y()` |
| `get_player_z()` | 无 | 获取玩家 Z 坐标 | `z = get_player_z()` |
| `get_player_dimension()` | 无 | 获取玩家当前维度 | `dim = get_player_dimension()` |
| `get_time()` | 无 | 获取游戏时间 | `time = get_time()` |
| `get_block_id(x, y, z)` | `x, y, z`: 数字 | 获取指定位置的方块ID | `block = get_block_id(0, 64, 0)` |
| `crash_game()` | 无 | 崩溃游戏(测试用) | `crash_game()` |
| `sleep(milliseconds)` | `milliseconds`: 数字 | 延迟执行 | `sleep(2000) # 等待2秒` |
[//]: # (| `/scrafitipty open_folder` | 打开脚本文件夹 | `/scrafitipty open_folder` |)
#### 实用功能
[//]: # (| `/scrafitipty list` | 列出所有可用脚本 | `/scrafitipty list` |)
| 函数 | 参数 | 描述 | 示例 |
|------|------|------|------|
| `get_random_number(min, max)` | `min, max`: 数字 | 生成随机整数 | `rand = get_random_number(1, 100)` |
| `execute_system_command(command)` | `command`: 字符串 | 执行系统命令(**危险!** | `execute_system_command("notepad.exe")` |
[//]: # (| `/scrafitipty delete <脚本名>` | 删除脚本 | `/scrafitipty delete old_script` |)
### 数据类型
[//]: # ()
[//]: # (首次使用时,系统会自动在游戏目录下创建 `Scrafitipty_scripts` 文件夹,并生成一个示例脚本 `example_script.py`。)
- **数字**:整数和浮点数(`123`, `3.14`
- **字符串**:用双引号包围(`"Hello"`
- **布尔值**`true``false`
- **变量**:动态类型,无需声明类型
[//]: # ()
[//]: # (### 脚本位置)
### 控制结构
[//]: # (所有脚本都存储在 Minecraft 根目录下的 `Scrafitipty_scripts` 文件夹中:)
#### 条件语句
```python
if condition:
# 条件为真时执行
else:
# 条件为假时执行
```
[//]: # (```)
#### 循环
```python
count = 0
while count < 5:
print_output("计数: " + str(count))
count = count + 1
sleep(500)
```
[//]: # (.minecraft/)
### 运算符
[//]: # (└── Scrafitipty_scripts/)
| 类型 | 运算符 | 示例 |
|------|--------|------|
| 算术 | `+`, `-`, `*`, `/` | `result = 10 + 5` |
| 比较 | `==`, `!=`, `<`, `>`, `<=`, `>=` | `if x > 10: ...` |
| 逻辑 | `and`, `or`, `not` | `if a and b: ...` |
[//]: # ( ├── example_script.py)
### 类型转换
```python
# 转换为字符串
str_value = str(123) # "123"
[//]: # ( └── your_scripts_here.py)
# 字符串转数字(需要手动实现)
# 当前版本暂不支持自动转换
```
[//]: # (```)
[//]: # ()
[//]: # (### 基本语法)
[//]: # ()
[//]: # (Scrafitipty 使用类似 Python 的语法,但请注意:)
[//]: # (- **不是真正的 Python** - 这是一个简化版的自定义脚本语言)
[//]: # (- 支持变量、条件语句&#40;`if`/`else`&#41;、循环&#40;`while`&#41;)
[//]: # (- 使用缩进4个空格表示代码块)
[//]: # (- 支持单行注释(以 `#` 开头))
[//]: # ()
[//]: # (### 内置函数)
[//]: # ()
[//]: # (#### 游戏交互)
[//]: # ()
[//]: # (| 函数 | 参数 | 描述 | 示例 |)
[//]: # (|------|------|------|------|)
[//]: # (| `send_chat&#40;message&#41;` | `message`: 字符串 | 发送聊天消息 | `send_chat&#40;"Hello Minecraft!"&#41;` |)
[//]: # (| `send_command&#40;command&#41;` | `command`: 字符串 | 执行游戏命令 | `send_command&#40;"time set day"&#41;` |)
[//]: # (| `print_output&#40;message&#41;` | `message`: 字符串 | 显示仅自己可见的消息 | `print_output&#40;"脚本运行中..."&#41;` |)
[//]: # (| `get_player_x&#40;&#41;` | 无 | 获取玩家 X 坐标 | `x = get_player_x&#40;&#41;` |)
[//]: # (| `get_player_y&#40;&#41;` | 无 | 获取玩家 Y 坐标 | `y = get_player_y&#40;&#41;` |)
[//]: # (| `get_player_z&#40;&#41;` | 无 | 获取玩家 Z 坐标 | `z = get_player_z&#40;&#41;` |)
[//]: # (| `get_player_dimension&#40;&#41;` | 无 | 获取玩家当前维度 | `dim = get_player_dimension&#40;&#41;` |)
[//]: # (| `get_time&#40;&#41;` | 无 | 获取游戏时间 | `time = get_time&#40;&#41;` |)
[//]: # (| `get_block_id&#40;x, y, z&#41;` | `x, y, z`: 数字 | 获取指定位置的方块ID | `block = get_block_id&#40;0, 64, 0&#41;` |)
[//]: # (| `crash_game&#40;&#41;` | 无 | 崩溃游戏(测试用) | `crash_game&#40;&#41;` |)
[//]: # (| `sleep&#40;milliseconds&#41;` | `milliseconds`: 数字 | 延迟执行 | `sleep&#40;2000&#41; # 等待2秒` |)
[//]: # ()
[//]: # (#### 实用功能)
[//]: # ()
[//]: # (| 函数 | 参数 | 描述 | 示例 |)
[//]: # (|------|------|------|------|)
[//]: # (| `get_random_number&#40;min, max&#41;` | `min, max`: 数字 | 生成随机整数 | `rand = get_random_number&#40;1, 100&#41;` |)
[//]: # (| `execute_system_command&#40;command&#41;` | `command`: 字符串 | 执行系统命令(**危险!** | `execute_system_command&#40;"notepad.exe"&#41;` |)
[//]: # ()
[//]: # (### 数据类型)
[//]: # ()
[//]: # (- **数字**:整数和浮点数(`123`, `3.14`)
[//]: # (- **字符串**:用双引号包围(`"Hello"`)
[//]: # (- **布尔值**`true``false`)
[//]: # (- **变量**:动态类型,无需声明类型)
[//]: # ()
[//]: # (### 控制结构)
[//]: # ()
[//]: # (#### 条件语句)
[//]: # (```python)
[//]: # (if condition:)
[//]: # ( # 条件为真时执行)
[//]: # (else:)
[//]: # ( # 条件为假时执行)
[//]: # (```)
[//]: # ()
[//]: # (#### 循环)
[//]: # (```python)
[//]: # (count = 0)
[//]: # (while count < 5:)
[//]: # ( print_output&#40;"计数: " + str&#40;count&#41;&#41;)
[//]: # ( count = count + 1)
[//]: # ( sleep&#40;500&#41;)
[//]: # (```)
[//]: # ()
[//]: # (### 运算符)
[//]: # ()
[//]: # (| 类型 | 运算符 | 示例 |)
[//]: # (|------|--------|------|)
[//]: # (| 算术 | `+`, `-`, `*`, `/` | `result = 10 + 5` |)
[//]: # (| 比较 | `==`, `!=`, `<`, `>`, `<=`, `>=` | `if x > 10: ...` |)
[//]: # (| 逻辑 | `and`, `or`, `not` | `if a and b: ...` |)
[//]: # ()
[//]: # (### 类型转换)
[//]: # (```python)
[//]: # (# 转换为字符串)
[//]: # (str_value = str&#40;123&#41; # "123")
[//]: # ()
[//]: # (# 字符串转数字(需要手动实现))
[//]: # (# 当前版本暂不支持自动转换)
[//]: # (```)
[//]: # ()