星露谷物语吧 关注:517,484贴子:3,083,934

星露谷模组制作学习帖(想到啥说啥)

只看楼主收藏回复

星露谷游戏的mod的开发流派可以简单粗暴的分为两个大类即smapi类和cp类 虽然cp也建立在smapi之上的 但从开发者的角度是感受不到smapi的存在的 所以特此将其单独列为一个流派
该游戏的开发语言为c♯ 其mod的开发语言自然为c♯ 需要有相关语言的开发经验为最佳 但Java C++等也可以类比


IP属地:广东来自iPhone客户端1楼2024-12-20 00:33回复
    首先说说新手更容易接触的cp类mod 对mod文件有关相关了解的朋友的一定知道 所谓cp类mod就是通过一个json文件对原版游戏资源的替换 修改 添加 通过观察其他cp类mod并总结规律 我们就可以简单的制作一个属于自己的cp类mod


    IP属地:广东来自iPhone客户端2楼2024-12-20 00:39
    回复
      当然这并不是说cp类mod就完全不用懂代码了 我们可以不会写代码 但想要做一个优秀的mod 一定要会读代码


      IP属地:广东来自iPhone客户端3楼2024-12-20 00:41
      回复
        对计算机有过了解的小伙伴一定知道 对于用户层的软件 就是一个一个实体组成的 而实体之间的交互 编辑 变化 需要通过接口实现 而星露谷这个游戏所谓的实体也就是游戏的数据 全部放在游戏根目录下的content目录下 而游戏接口 也就游戏运行所用到函数或者方法全部都在 stardew valley.dll这个文件下


        IP属地:广东来自iPhone客户端5楼2024-12-20 00:48
        回复
          我们既然要做一个优秀的游戏mod 首先要了解的是游戏本体是怎么运行的 就要把实体和接口两份数据都掌握在手中随时查阅 而我上一楼提到的都是不能直接打开的 那么我们要怎么提取这样的文件呢


          IP属地:广东来自iPhone客户端6楼2024-12-20 00:51
          回复


            IP属地:广东来自Android客户端7楼2024-12-20 00:52
            回复
              我们需要三个工具 一个叫inspy 一个叫stardewxnbhack 均通过github下载 另一个叫vs code 通过微软官网下载 首先inspy是用来解压(反编译,这里我通俗地讲为解压)“stardew valley.dll”这个文件的 把dll用inspy启动 将获得的代码保存到本地用vscode查阅 而stardewxnbhack把解压获得exe文件放到游戏根目录下并运行就可以获得一个文件夹叫“content(back)”里面包含了全部解压后的xnb文件


              IP属地:广东来自iPhone客户端8楼2024-12-20 00:58
              回复
                如果只想做一个cp类mod 我们就不用了解什么叫.net 什么叫harmony 甚至c#的语法都不用学 只要有一点点c++或者java的经验就可以看懂游戏的代码啦


                IP属地:广东来自iPhone客户端9楼2024-12-20 01:01
                回复
                  我们用vscode打开我们上一楼提到的解压过的的游戏代码的根目录 就可以愉快的查阅游戏的代码了


                  IP属地:广东来自iPhone客户端10楼2024-12-20 01:03
                  回复
                    通过简单的翻阅代码 我们可以了解到 游戏所有与数据有关的定义都在名为gamedata的一个类下面 如果我们只做cp类代码 我们就可以只看gamedata下面的代码 但是gamedata类下面的成员有些类型或者方法的参数类型可能用到其他部分的代码 这里我们稍后再说


                    IP属地:广东来自iPhone客户端11楼2024-12-20 01:10
                    回复
                      今天先到这里 由于手里没有电脑只能想到啥说啥 对于刚入门或者有想做mod想法的朋友可以向我提问 (太难的就算了)


                      IP属地:广东来自iPhone客户端12楼2024-12-20 01:13
                      回复
                        这里插一个题外话 为什么我们做cp类mod也要会读代码? 因为我们要做一个有自己风格的cp类mod 就一定要知道cp文件里的每一个字段代表什么 它的格式是什么 这些信息当然可以通过阅读他人的mod或者游戏本体的文件获取 当然由于游戏没有提供有关mod开发的api文档 想要知道每个字段的通用格式并灵活高效地制作属于自己的mod 不说写代码 阅读代码的能力是必不可少的


                        IP属地:广东来自iPhone客户端14楼2024-12-20 01:25
                        回复
                          想要高效地阅读游戏代码 就要善用vscode的搜索功能


                          IP属地:广东来自iPhone客户端15楼2024-12-20 01:27
                          回复
                            打个比方 我想知道游戏中的鱼塘是怎么定义的 我就可以搜索鱼塘的英文fishpond 那万一游戏里鱼塘的英文不叫fishpond的呢? 有些人说可以把游戏切换成英文然后f1查看 这里我提供一个普通玩家高效获取游戏中每一样物品的英文的方法 直接星露谷wiki搜中文然后左下角切换成英文就行了 对于mod开发者 你都有代码了 直接在代码里搜中文 然后中文前面把末尾的name去掉就是英文了 然后搜鱼塘的英文fishpond就可以发现鱼塘的定义类叫gamedata.fishponddata


                            IP属地:广东来自iPhone客户端16楼2024-12-20 01:35
                            回复
                              好贴


                              IP属地:江西来自Android客户端17楼2024-12-20 05:00
                              回复