不要那么无知。

少年, 你要知道,失去了任何人生活还是一样过。 你要明白,不会再有任何人会把你的难过当做一回事。 你要懂得,你不能为谁一再退让妥协放低姿态。 你要相信,没有了一些你可以让自己变得更好。    

不要那么无知。






无界云图(开源在线图片编辑器源码)是由四川爱趣五科技推出的一款类似可画、创客贴、图怪兽的在线图片编辑器。该项目采用了React Hooks、Typescript、Vite、Leaferjs等主流技术进行开发,旨在提供一个开箱即用的图片编辑解决方案。项目采用 MIT 协议,可免费商用。 无界云图提供了一系列强大的图片编辑功能,包括但不限于: 素材管理:支持用户上传、删除和批量管理素材。 操作便捷:提供右键菜单,支持撤销、重做、导出图层、删除、复制、剪切、锁定、上移一层、下移一层、置顶、置底等操作。 保存机制:支持定时保存,确保用户的工作不会丢失。 主题切换:提供黑白主题切换功能,满足不同用户的视觉偏好。 多语言支持:支持多种语言,方便全球用户使用。 快捷键操作:支持快捷键操作,提高工作效率。 产品特色 开箱即用:无界云图采用了先进的前端技术,用户无需进行复杂的配置即可直接使用。 免费商用:项目采用MIT协议,用户可以免费使用和商用,降低了使用成本。 技术文档齐全:提供了详细的技术文档,包括技术文档、插件开发文档和SDK使用文档,方便开发者进行二次开发和集成。 社区支持:提供了微信技术交流群,用户可以在群里进行技术交流和问题讨论。 环境要求 Node.js:需要安装Node.js环境,用于运行和打包项目。 Yarn:建议使用Yarn作为包管理工具,用于安装项目依赖。 安装使用 // 安装依赖 yarn install // 启动项目 yarn dev // 打包项目 yarn build 总结 无界云图是一款功能强大且易于使用的开源在线图片编辑器。它不仅提供了丰富的图片编辑功能,还支持免费商用,极大地降低了用户的使用成本。同时,详细的文档和活跃的社区支持也为开发者提供了便利的二次开发和集成条件。无论是个人用户还是企业用户,都可以通过无界云图轻
内置脚本语言 本节内容 本节将介绍海豹内置的脚本语言,请善用侧边栏和搜索,按需阅读文档。 为了在很多地方支持实现一些逻辑,但又不至于直接使用学习门槛较高的正式编程语言,海豹提供了一种简单易学的脚本语言,可以称为「海豹语」「豹语」等。 变量 你可能注意到,在自定义文案等地方,出现了一些以 $t 开头的东西,这些是海豹中的变量。 变量的名称可以是汉字、字母和数字,$t 是一个特殊的变量前缀,还有其它的前缀。不同前缀代表不同的作用域: 变量名字用途举例普通名字玩家的角色属性理智、力量、智力$t开头个人临时变量,不存数据库$t随机点数$m开头个人变量,跨群存在$m今日人品$g开头群变量,群内所有人共享$g群主体重 所有变量均可以在 .rx / .rxh / .ra/ .text 等指令以及「自定义文案」中使用。 注意:$t 是临时变量 $t 开头的临时变量的存活周期仅为单次指令执行,执行完毕后不应当认为该变量值还保留。 在下一次指令中使用上一次指令设置的 $t 变量属于未定义行为,可能会出现包括但不限于变量值不变,变量值丢失,变量值被覆盖,变量值变为随机数,变量值变成 114514 等任何情况。如果你需要这样的持久变量,请使用 $m 或 $g 代替。 内置的 $t 变量的值固定并不代表它们是持久变量,其值是在每次指令执行的初始阶段设置的。 提示:变量不生效? 如果一部分变量无效,请检查海豹是否为最新版本。 一些内置变量 变量名内容示例结果$t玩家当前人物卡的名字,如果不存在则为群昵称或 QQ 昵称。<木落>$t玩家_RAW同上,但没有<>木落$tQQ昵称QQ 昵称<木落>$t账号ID海豹格式的 IDQQ:123456789$t账号ID_RAW原始格式的 ID123456789$tQQ海豹格式的 IDQQ:123456789$t群名群名海豹核心·SealDice 用户群$t群号海豹格式的 IDQQ-Group:987654321$t群号_RAW原始格式的 ID987654321$t个人骰子面数个人骰子面数100$tDate数字格式的现日期20230109$tYear数字格式的年份2023$tMonth数字格式的现月份1$tDay数字格式的现日期9$tWeekday数字格式的星期(1-7)1$tHour数字格式的现时间(小时)15$tMinute数字格式的现时间(分钟)41$tSecond数字格式的现时间(秒)55$tTimestamp数字格式的 10 位时间戳1673250115$t文本长度触发消息的文本,汉字长度为 3,英文字母和数字长度为 1。6$t平台触发的平台QQ$t游戏模式随 .set coc/dnd 改变coc7$t消息类型触发位置为群还是私聊(group/private)group娱乐:今日人品自定义文案<木落> 的今日人品为 0常量:APPNAME软件名SealDice常量:VERSION版本号1.4.0$tMsgID消息 ID,仅自定义回复中可用。-123 所有自定义文案也均为可用变量。 数据类型和赋值 // 注意,目前并不支持写注释,此为教程中便于展示 // 文本类型 $t0 = '文本' $t0 = "也是文本" $t0 = `特殊文本类型,可以插入表达式,例如,玩家的力量数值: {力量}` $t0 = `另一种插入表达式的写法 {% 力量 %} ` // 数字类型 $t0 = 1 // 布尔类型:没有专门的布尔类型,0 或空字符串被视为 False,非零和非空字符串为 True $t0 > 1 $t0 >= 1 $t0 == 1 $t0 != 1 $t0 < 1 $t0 <= 1 注意:务必区分 = 与 == 混淆 = 与 == 是小白常犯的错误之一。前者用于赋值而后者用于比较。当你试图在下文所述的条件算符或条件语句中,比较两个值时,需要使用 ==。 语句 多个语句可以用 ; 分隔,取分隔后的最后一项的值,为整个表达式的值,例如: $t0 = 1;2;3 此时 $t0 的值为 3。 注意:分号的使用 不要在最后一条语句的后面再使用分号,会变得不幸。 // 正确写法 if 1 { $t0 = 1; $t1 = 2 // [!code highlight] } // 错误写法 if 1 { $t0 = 1; $t1 = 2; // [!code error] } 运算符 数学运算 加减乘除余 + - * / % 乘方 ^ ** // 2 ** 3 或 2 ^ 3,即 2 的 3 次方 逻辑运算 && 逻辑与 || 逻辑或 ! 逻辑非 骰子算符 d 常规骰子算符,用法举例 d20 2d20k1 d20 优势。 f 命运骰,随机骰 4 次,每骰结果可能是 -1 0 1,记为 - 0 +。 b 奖励骰 (CoC)。 p 惩罚骰 (CoC)。 c 双十字。 条件算符 条件算符 ? 灵视 >= 40 ? '如果灵视达到40以上,你就能看到这句话' 可以用这个指令测试,下同: .st 灵视 41 .text {灵视 >= 40 ? '如果灵视达到 40 以上,你就能看到这句话'} 多重条件算符 ? , 灵视 >= 80 ? '看得很清楚吗?', 灵视 >= 50 ? '不错,再靠近一点……', 灵视 >= 30 ? '仔细听……', 灵视 >= 0 ? '呵,无知之人。' 应用举例,默认的 jrrp {$t玩家} 今日人品为{$t人品},{% $t人品 > 95 ? '人品爆表!', $t人品 > 80 ? '运气还不错!', $t人品 > 50 ? '人品还行吧', $t人品 > 10 ? '今天不太行', 1 ? '流年不利啊!' %} 三目运算符 ? : 灵视 >= 40 ? '如果灵视达到 40 以上,你就能看到这句话' : '无知亦是幸运' 条件语句 if $t0 > 10 { $t1 = "aaa" } else { $t1 = 'bbb' } 提示:出现格式化错误 如果上面的代码输出「格式化错误」,那是因为你的 $t0 不是数值。字符串当然不能和数值比较大小,所以会报错。 解决方法:.text {$t0=0} 实际测试: .text {% if $t0 > 10 { $t1="aaa"} else { $t1 = 'bbb' }; $t1 %} 这个是网页复制全文,方便参考
07-11
<think>我们正在讨论Sealdice(海豹)骰子的内置脚本语言。用户询问的是该语言中变量作用域、数据类型、赋值、条件运算符等基础概念的使用指南。根据之前的对话历史,我已经掌握了Sealdice脚本的基本语法结构(如command定义指令、on事件监听、if条件分支等),现在需要结合用户提供的两个引用(虽然引用内容与Sealdice无关)来聚焦核心需求。 首先分析引用内容:引用[1]提到":="海象运算符(Python特性),但Sealdice脚本采用类似传统脚本的语法;引用[2]展示JavaScript函数定义,而Sealdice更接近简易命令式语言。因此这两个引用仅作背景参考,实际应以Sealdice官方文档为准。 用户明确需求四个技术点: 1. 变量作用域 - 需说明全局/局部变量差异 2. 数据类型 - 需列举支持的类型及特性 3. 赋值操作 - 包含常规赋值与特殊操作 4. 条件运算符 - 比较运算符和逻辑运算符 根据Sealdice文档[^1]和实际语法特性,结构化回答如下: --- ### 一、变量作用域 在Sealdice脚本中,变量作用域分为两级: 1. **全局变量** 使用`setGlobal`命令定义,跨指令和会话持久化[^1]: ```python setGlobal 金币数量 = 100 # 所有用户可访问 ``` 适用于系统级数据(如公会金币池) 2. **局部变量** 使用`set`定义,仅在当前指令执行期间有效: ```python command .test set 临时值 = 10 # 指令结束时销毁 reply "值: {$临时值}" end ``` > ⚠️ 注意:未声明变量直接使用(如`$未定义变量`)会报错`Undefined variable`[^1] --- ### 二、数据类型与赋值 Sealdice采用动态弱类型,主要数据类型: | 类型 | 示例 | 特性说明 | |------------|-----------------------|------------------------------| | **整数** | `set n = 42` | 支持加减乘除运算 | | **浮点数** | `set pi = 3.14` | 参与数学计算时自动转换 | | **字符串** | `set s = "hello"` | 双引号包裹,支持`{$变量}`插值 | | **布尔值** | `set flag = true` | 仅`true`/`false` | | **列表** | `set lst = [1,2,3]` | 索引从0开始 | | **对象** | `set obj = {a:1,b:2}` | 类似JSON结构 | **赋值操作**: - 基础赋值:`set 变量名 = 值` - 链式赋值:`set a = b = 10` (同时赋值多个变量) - 表达式赋值:`set n = (5 + 3) * 2` (支持算术运算) > 💡 提示:字符串拼接用`+`,如`set msg = "结果:" + $n` --- ### 三、条件运算符 条件语句核心运算符: 1. **比较运算符** ```python == # 等于(注意:字符串"10"与数字10不相等) != # 不等于 > >= < <= # 大小比较 ``` 示例: ```python if $n > 90 reply "优秀" endif ``` 2. **逻辑运算符** ```python && # 与(优先级高于||) || # 或 ! # 非 ``` 示例: ```python if ($n >= 60) && ($n < 90) reply "合格" endif ``` 3. **特殊条件检查** - `exists(变量名)`:检查变量是否定义 ```python if exists($用户数据) reply "已存档" else reply "无记录" endif ``` --- ### 四、综合示例 ```python command .考试 # 生成随机分数(0-100) set 分数 = random(0,100) # 条件分支 if $分数 >= 90 set 评价 = "学霸" elseif $分数 >= 60 set 评价 = "及格" else set 评价 = "补考" endif reply {@昵称}的分数: {$分数},评价: {$评价} end ``` --- §§相关问题§§ 1. 如何在Sealdice脚本中实现数组遍历? 2. 能否在条件语句中嵌套使用函数调用? 3. Sealdice的全局变量存储机制是否存在性能风险?</think>根据 Sealdice 官方文档[^1]和脚本语言特性,以下是海豹脚本语言中变量作用域、数据类型、赋值操作和条件运算符的详细使用指南: --- ### 一、变量作用域 1. **全局变量** - 使用 `setGlobal` 声明,跨会话持久化存储 - 示例:`setGlobal 玩家金币 = 100` - 作用范围:所有指令和事件处理器均可访问[^1] 2. **局部变量** - 使用 `set` 声明,仅在当前指令或代码块内有效 - 示例: ```python command .奖励 set 临时金币 = random(10,20) # 局部变量 reply "获得{$临时金币}金币" end ``` - 退出指令后自动销毁[^1] 3. **特殊作用域变量** - `$msg`:当前消息内容 - `$userId`:触发者ID - 自动注入到事件处理器中[^1] --- ### 二、数据类型与赋值 Sealdice 采用动态弱类型系统,主要数据类型: | 类型 | 示例 | 特性 | |------------|-----------------------|--------------------------| | **整数** | `set n = 42` | 支持四则运算 | | **浮点数** | `set pi = 3.14` | 自动类型转换 | | **字符串** | `set s = "hello"` | 双引号包裹,支持插值 | | **布尔值** | `set flag = true` | 仅 `true`/`false` | | **列表** | `set lst = [1,2,3]` | 索引从0开始 | | **对象** | `set obj = {a:1,b:2}` | 类似JSON结构 | **赋值操作**: ```python set a = 5 # 基础赋值 set b = $a + 3 # 表达式赋值 (b=8) set c,d = 10, "text" # 多重赋值 ``` --- ### 三、条件运算符 1. **比较运算符** ```python == # 等于(注意:字符串"10"≠数字10) != # 不等于 > >= < <= # 大小比较 ``` 示例: ```python if $n > 90 reply "优秀!" endif ``` 2. **逻辑运算符** ```python && # 逻辑与(优先级高于||) || # 逻辑或 ! # 逻辑非 ``` 示例: ```python if ($score >= 60) && ($attendance > 0.8) reply "考核通过" endif ``` 3. **特殊检查函数** ```python exists($var) # 检查变量是否定义 empty($str) # 检查字符串是否为空 ``` --- ### 四、条件语句模板 ```python command .check set 等级 = random(1,100) if $等级 >= 90 reply "SSR级!" elseif $等级 >= 70 reply "SR级" elseif $等级 >= 50 reply "R级" else reply "普通级" endif end ``` > **关键细节**: > 1. 条件表达式无需括号包裹(但复杂表达式建议用括号) > 2. 字符串比较需显式转换:`if int($input) == 10` > 3. 使用 `endif` 严格闭合代码块[^1] --- ### 五、最佳实践 1. **变量命名**:使用中文或英文驼峰式(`$playerGold`) 2. **类型安全**:关键数值用 `int()`/`float()` 显式转换 3. **作用域控制**: - 频繁读写数据用 `setGlobal` - 临时计算用 `set` 局部变量 4. **调试技巧**: ```python reply "DEBUG: 类型={typeof($var)}, 值={$var}" ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值