自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(225)
  • 收藏
  • 关注

原创 小火星露谷管理器 安装直装型模组阶段常见问题

这种情况就是文件已经存在了,但是重复进行安装。可能的原因是你确实做了错误的操作导致重复安装,也有可能是自动化流程重复添加了一个安装任务。

2024-03-20 12:40:44 284

原创 小火星露谷管理器一键更新常见问题

这个是因为你连接smapi.io不稳定导致的,这个网站是用来检查模组更新的。大概率是因为smapi.io当前有太多用户访问导致的,你可以稍等或者加速。

2024-03-20 11:56:11 329

原创 小火星露谷管理器 报错:“你似乎没有安装Edge的webview2”

你可以到这个地方下载安装webview2。

2024-03-20 11:00:04 762

原创 小火星露谷自动化流程下载失败,报错Specified argument was out of the range of valid values. (Parameter ‘to‘)

如果你有实用steam++,并且在。中启用了脚本,就可以导致这个问题。

2024-03-13 11:08:43 385

原创 小火星露谷管理器 如何禁用管理器下载?

当你在N网点击下载时,你可能会点击左边第一个按钮进行下载,如图:然后你可能会看到这样的一个提示:很多用户看着这个提示误以为小火星露谷管理器禁用了N网的下载。

2024-03-08 11:24:46 446

原创 小火星露谷管理器建议的模组安装文件结构

小火星露谷管理器希望用户将所有模组直接解压到Mods这一层目录,而不是嵌套存放。比如你安装了两个模组,Content Patcher和Custom Companions,你应该直接解压到Mods文件夹中,并保证解压的内容全部在一个文件夹内。Mods文件夹的下一层文件夹内不能嵌套多个模组。想要保证模组遵循建议,做到这一点最简单的方式就是当你下载了一个新的模组压缩包(zip)后,你可以在Mods中新建一个文件夹,并将压缩包内容解压到这个文件夹中。

2024-03-07 21:27:35 591

原创 如何加速访问NexusMods网站

到steam++官网下载https://steampp.net/

2024-03-07 20:12:48 1812

原创 小火星露谷管理器如何设置N网API KEY

在小火星露谷管理器的设置页面点击设置API KEY,其中描述了如何获取API KEY。

2024-03-07 20:03:45 881

原创 小火星露谷管理器的缓存文件夹是什么?有什么用?

缓存文件夹用于存储管理器的数据以及存放下载文件。

2024-03-07 19:33:44 664

原创 小火星露谷模组管理页面简介

你可以通过列表右上角的搜索框进行搜索,只需要输入搜索文本并按下回车即可,包含文本的模组都会被展示,不包含的则不展示。点击模组管理页面的【检查模组更新】按钮可以对列表内所有模组进行更新检查。如果模组需要更新,会在状态列显示更新按钮。模组列表的第一列代表了模组是否启用,打勾表示启用,否则表示禁用。你可以通过点击以启用或禁用模组。反启用可以将已启用的模组改变为禁用,禁用的模组改变为启用。模组列表的最后一列是操作列,点击操作列的“…”按钮可以对模组进行操作。模组列表的右上方有两个按钮可以批量启用或禁用模组。

2024-03-07 17:56:30 462

原创 如何配置通过Steam启动SMAPI

如果你是通过小火星露谷管理器安装的SMAPI,你可以在SMAPI管理的扩展卡片里面看见一个【小贴士】。点击【小贴士】,然后点击倒数第三行的复制按钮,即可获取启动选项文本。如果你是通过SMAPI安装包进行安装的,在你安装SMAPI后会有类似的输出,请你复制图中框选的文本。从现在开始,您便可以通过Steam客户端启动SMAPI。在“通用” 点击“启动选项”下面的文本框,并粘贴。

2024-03-07 17:33:14 1483 1

原创 如何一键安装、卸载SMAPI

在小火星露谷管理器的模组管理页面点击SMAPI管理,点击安装、点击国内线路。选择合适的SMAPI版本(一般选最新的就行)后,点选确定即可一键安装SMAPI。

2024-03-07 17:21:09 1746

原创 小火星露谷管理器 如何分类模组?如何排序模组?什么是模组标签

模组标签是小火星露谷管理器中一个实用功能,你可以对模组添加一个标识,用于区别模组。你可以给多个模组加上相同的标签,也可以给一个模组加不同的标签。

2024-03-07 11:55:05 452

原创 小火星露谷管理器如何一键切换当前想要使用的模组?什么是模组组合?

模组组合是小火星露谷管理器中的一个实用功能,用户可以自己设定的一批模组,只要选用该组合,就会快速启用这一批模组,实现大批量的模组切换。

2024-03-07 11:26:52 385

原创 如何一键更新星露谷模组

请注意,第一次使用时,在下载模组文件的阶段会失败,自动化引擎会检测到你没有登录N网用户,需要你进行一次登录,登录完成后,点击右上角的失败重试,即可继续流程。流程模板生成完成后,会进入流程编排的界面,程序已经帮我们编排好了,你可以直接点击运行自动化,开始一键更新。然后等待引擎执行完毕。看到执行自动化结束,并且没有Error输出,就代表执行成功了。页面会跳转到自动化模组管理引擎,稍等一会,他会自动生成更新流程模板。打开小火星露谷管理器的模组管理页面,点击一键更新模组。小火星露谷管理器拥有一键更新模组的功能。

2024-03-06 21:24:03 799

原创 电脑中已经有多个模组压缩文件,如何通过小火星露谷管理器批量安装

如果已经下载了很多的星露谷模组压缩文件(zip包),可以通过【添加模组】功能,将模组批量解压到Mods文件夹中。

2024-03-06 20:46:57 426

原创 如何正确启动安装了模组的星露谷

当你为你的星露谷安装了模组后,你不应该再通过Stardew Valley.exe打开你的星露谷,这样打开的只会是原版的星露谷。

2024-03-06 20:18:57 1193

原创 小火星露谷管理器 如何一键安装模组

一键安装星露谷模组

2024-03-06 19:48:43 1260

原创 安装小火星露谷管理器

安装小火星露谷管理器

2024-03-06 16:42:08 937

原创 如果不使用管理器,星露谷如何安装模组

星露谷安装模组

2024-03-06 16:05:06 1387

原创 serde json 常用实践

把遇到的情景记录在这里,大部分是官网的例子。以后会不定期更新。将json字符串转换为json对象use serde_json::{Result, Value};fn untyped_example() -> Result<()> { // Some JSON input data as a &str. Maybe this comes from the user. let data = r#" { "name": "J

2020-08-16 17:32:42 5805 2

原创 [rust学习笔记]生命周期

生命周期时一种泛型。普通泛型可以确保类型拥有期望的行为,生命周期能够确保引用在我们的使用过程中一直有效。Rust的每个引用都有自己的生命周期,它对应着引用保持有效性的作用域。在大多时候,生命周期都是隐式的且可以被推导出来的,就如同大部分时候类型也是可以被推导的一样。当出现了多种可能的类型时,我们就必须手动的声明类型。类似的,当引用的声明周期可能以不同的方式相互关联时,我们就需要手动标注生命周期,确保引用有效。我的总结:当可能作为返回值的传入参数有多个引用,且引用的生命周期尽头不统一时,需要使用生命周期

2020-08-12 16:07:55 485

原创 [rust学习笔记]trait

trait(特征)被用来向rust编译器描述某些特定类型拥有的且能够被其他类型共享的功能,它使我们可以以一种抽象的方式来定义共享行为。我们还可以使用trait约束来将泛型参数指定为实现了某些特定行为的类型。定义trait定义一个trait:pub trait Summary { fn summarize(&self) -> String;}在trait中定义方法签名,可以定义多个方法签名。为类型实现trait#![allow(unused_variables)]fn

2020-08-12 11:54:54 428

原创 [rust学习笔记]泛型数据类型

泛型运行代码作用于抽象的类型在函数定义中使用泛型当使用泛型来定义函数时,将泛型放在函数签名中指定参数和返回值类型的地方。首先我们来看两个函数:fn largest_i32(list: &[i32]) -> i32 { let mut largest = list[0]; for &item in list { if item > largest { largest = item; } }

2020-08-11 19:35:55 383

原创 [rust学习笔记]错误处理

Rust的错误分两种:可恢复错误不可恢复错误rust提供了可恢复错误的类型Result< T,E >,与不可恢复错误时终止运行的panic!宏。不可恢复错误与panic!程序会在panic!宏执行时打印出一段错误提示信息,展开并清理当前的调用栈,然后退出程序,这种情况大部分都发生在某个错误被检测到,但程序员却不知道该如何处理的时候。panic的栈展开与终止panic发生时,程序默认会开始栈展开,就是会沿着函数调用的反向顺序清理函数中的数据,为了支持这种操作,我们需要在二进制中存

2020-08-11 16:22:03 696

原创 [rust学习笔记]哈希映射

哈希指的就是键值对。创建一个哈希映射下面的代码中创建了一个hash映射,rust推导了hashmap的类型:fn main() { use std::collections::HashMap; let mut scores = HashMap::new(); scores.insert(String::from("Blue"), 10); scores.insert(String::from("Yellow"), 50);}还有一种创建哈希映射的方法,通过z

2020-08-11 14:20:08 602

原创 [rust学习笔记]使用字符串存储UTF-8编码的文本

字符串是什么rust在语言核心部分只有一种字符串:就是字符串切片str,它通常以借用的形式出现(&str)。字符串切片是一些指向存储在别处的UTF-8编码字符串的引用。例如,字符串字面量的数据被存储在程序的二进制文件中,而它们本身也是字符串切片的一种。而String是被定义在std库中的。通常String被称为“字符串”,而str被称为字符串切片。创建一个新的字符串String相当与字符串动态数组,所以很多vec的操作,String也适用。比如创建一个新的字符串:fn main() {

2020-08-11 12:07:43 1220

原创 [rust学习笔记]动态数组

动态数组:Vec< T >,T表示泛型。创建动态数组fn main() { let v: Vec<i32> = Vec::new();}创建动态数组的声明需要声明类型,因为数组中没有数据,rust无法推导。如果你放入了数据,rust一般能推导出正确的数据类型。rust提供了vec!宏,可以根据我们的值来创建一个新的动态数组。fn main() { let v = vec![1, 2, 3];}在动态数组中加入数据使用push在数组的最后加入数据,

2020-08-11 10:32:45 1758

原创 [rust学习笔记]使用包、单元包以及模块来管理日渐复杂的项目

Rust提供了一系列的功能来帮助我们管理代码,包括决定哪些细节时暴露的、哪些细节是私有的,以及不同的作用域内存在哪些名称。这些功能有时被统称为模块系统,它们包括:包(package):一个用于构建、测试并分享单元包的Cargo功能。单元包(crate):一个用于生成库或可执行文件的树形模块结构模块(module)及use关键字:它们被用于控制文件结构、作用域及路径的私有性路径(path):一种用于命名条目的方法,这些条目包括结构体、函数和模块等。包与单元包一个包由一个或多个单元包组成,一个包

2020-08-10 21:28:53 1126

原创 [rust学习笔记]枚举与模式匹配

定义枚举枚举值定义枚举类型:enum IpAddrKind { V4, V6,}fn main() { let four = IpAddrKind::V4; let six = IpAddrKind::V6; route(IpAddrKind::V4); route(IpAddrKind::V6);}fn route(ip_kind: IpAddrKind) {}定义关联数据的枚举类型:fn main() { enum Ip

2020-08-10 18:23:06 324

原创 [rust学习笔记]方法

方法与函数十分相似,不同是:函数可以独立存在,而方法总是被定义在某个结构体的上下文中,并且他们的参数永远都是self。(学到这里我惊了,学了这么多年,原来方法和函数不是同一个概念,c的函数真的叫函数,java的方法真的只能叫方法)定义方法我们将定义一个rectangle的area方法:#[derive(Debug)]struct Rectangle { width: u32, height: u32,}impl Rectangle { fn area(&sel

2020-08-10 16:45:00 179

原创 [rust学习笔记]结构体

定义并实例化结构体使用struct定义结构体,在花括号中声明数据名字和类型:struct User { username: String, email: String, sign_in_count: u64, active: bool,}结构体的实例化(赋值): let user1 = User { email: String::from("someone@example.com"), username: String::fr

2020-08-10 16:13:15 469

原创 [rust学习笔记]切片

切片除了引用,还有一种不持有所有权的数据类型:切片。切片允许我们引用集合中某一段连续的元素序列,而不是整个集合。字符串切片字符串切片是指向String对象中某个连续部分的引用,他的使用方法如下:fn main() { let s = String::from("hello world"); let hello = &s[0..5]; let world = &s[6..11];}我们可以使用&s[]指定切片,[]中的数字代表切片的范围,如[

2020-08-10 15:37:48 322

原创 [rust学习笔记]引用与借用

引用fn main() { let s1 = String::from("hello"); let len = calculate_length(&s1); println!("The length of '{}' is {}.", s1, len);}fn calculate_length(s: &String) -> usize {//函数签名中&代表这是一个引用参数 s.len()}上面的代码中,calculate_le

2020-08-10 15:37:31 448

原创 [rust学习笔记]所有权

rust通过所有权系统管理内存,该系统具有一组在编译时检查的规则。程序运行时,所有所有权功能都不会减慢其运行速度。所有权规则首先,让我们看一下所有权规则。在通过示例进行说明时,请牢记以下规则:Rust中的每个值都有一个变量,称为其所有者。一次只能有一个所有者。当所有者超出范围时,该值将被删除。可变范围假设我们有一个看起来像这样的变量:let s = "hello";接下来我们来看s的有效范围fn main() { { // s尚未声

2020-07-24 20:03:46 146

原创 [rust学习笔记]控制流

ifif与其他语言类似fn main() { let number = 3; if number < 5 { println!("condition was true"); } else { println!("condition was false"); }}rust的if只能判断布尔类型,错误代码如下:fn main() { let number = 3; if number { pr

2020-07-21 19:47:32 220

原创 [rust学习笔记]函数

函数rust函数与其他编程语言类似。在Rust,函数由关键词:fn来定义。fn main() { println!("Hello, world!"); another_function();}fn another_function() { println!("Another function.");}函数参数函数的参数类型不能省略。fn main() { another_function(5);}fn another_function(x: i

2020-07-21 19:12:35 107

原创 [rust学习笔记]数据类型

我们将数据类型分为标量类型与复合类型。标量类型标量类型表示一个单一的值。Rust具有四种主要的标量类型:整数,浮点数,布尔值和字符。整数类型:长度有符号无符号8位i8u816位i16u1632位i32u3264位i64u64128位i128u128archisizeusize整数类型:数字文字例小数98_222十六进制0xff八进制0o77二进制0b1111_0000字节(仅u8)b'A'浮点类型Rust对于浮点数也有两种原始类型,即带小数点的数字。Rust的浮点类

2020-07-21 16:31:38 560

原创 [rust学习笔记]变量和可变性

在默认情况下rust变量是不可变的。这样可以使代码更加安全。让我们探讨一下Rust如何以及为什么鼓励您支持变量不可变,以及为什么有时您可以选择可变变量。声明变量通过let关键字声明变量,可以不声明变量类型,交由编译器判断。let spaces = "";也可以声明变量类型:let spaces:&str = "";不可变变量以下代码为错误代码:fn main() { let x = 5; println!("The value of x is: {}", x);

2020-07-21 15:53:24 288

原创 [rust学习笔记]注释与格式化输出

注释编译器会忽略的常规注释://注释一整行/* 注释一块 */第二类是文档注释,用于通过工具生成HTML API文档/// 注释一整行//! 这是//! 一个//! 文档注释块格式化输出format! :将格式化的文本写入 Stringprint! :文本打印到控制台(io :: stdout)println! :文本打印到控制台(io :: stdout)并换行eprint! :将文本输出到标准错误(io :: stderr)eprin

2020-07-21 15:49:44 253

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除