3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 侠客前传 | 刺客信条 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 18735|回复: 16
打印 上一主题 下一主题

Balatro(小丑牌)修改教程

[复制链接]

6

主题

50

帖子

87

积分

初级玩家

Rank: 2

贡献度
0
金元
867
积分
87
精华
0
注册时间
2023-10-1
跳转到指定楼层
主题
发表于 2024-2-23 04:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 ssssszYYDS 于 2024-2-23 05:08 编辑

读前须知:该修改教程面对群体是具有一定编程基础(不必学过Lua语言)或是愿意花时间自己琢磨的玩家。小白玩家请直接用CE修改!

由于该游戏是由Lua语言基于love框架编写的,且直接通过exe运行,没有额外的文件夹,游戏代码结构清晰。
因此我们可以根据自己的想法随意修改卡牌数据和功能(由于是由玩家自己编写,很容易出bug,所以请务必备份文件!

修改后的文件不得未经游戏作者同意随意传播!

本攻略能够修改的部分包括但不限于:
游戏描述:任何你不满意的描述都可以根据你的想法修改。
卡牌解锁:包括所有的小丑、牌组、难度、优惠券等所有内容。
游戏数值:如某张卡片加的数值、乘的倍率、触发概率等。
卡牌功能:如触发条件、触发对象,选择个数等。


修改流程:
我们可以直接修改可运行文件的后缀.exe为.7z(或者右键exe直接用7-zip打开修改也行)
然后通过7-zip打开,一切修改都在该目录下进行。(注意:不能使用其他解压缩软件如WinRAR、Bandizip等软件解压后修改再重新压缩回去!)
修改完成后退出并保存。此时文件大小不应该出现明显变化!
最后修改后缀.7z为.exe,运行游戏。


修改描述:
简体中文翻译包在localization/zh_CN.lua文件中,卡牌描述不清晰的可以直接搜索卡牌名修改描述。
例如“延迟满足”这张牌的描述代码为:
["j_delayed_grat"]={
["name"]="延迟满足",
["text"]={
[1]="如果在回合结束时",
[2]="没有使用弃牌,则每把{C:attention}弃牌{}",
[3]="获得{C:money}$#1#{}",
},
}

其中["text"]代表游戏中的描述,[2]代表第二行,
{C:attention} ... {} 代表将...着重标出,其他类似的{}符号也是相同功能,只不过是不同视觉效果而已。
#1#、#2#等是Lua语言中的占位符,用来将游戏数据替换进来,起到格式化的作用,不建议修改。
(修改描述对游戏实际内容没有任何影响,只对卡牌描述起到替换作用)

修改数值:
看到主目录下有个game.lua文件,其中function Game:init_item_prototypes()函数定义了各种卡片和卡组与Boss的基础属性
我们可以通过文本编辑器修改其中的数据然后保存。

例如红色卡组的源代码描述如下:
b_red = {name = "Red Deck", stake = 1, unlocked = true,order = 1, pos =   {x=0,y=0}, set = "Back", config = {discards = 1}, discovered = true}
我们只要修改config中的内容就能同时获得多种能力:例如config = {hands = 1, discards = 1, dollars = 1, hand_size = 1, joker_slot = 1},就是每回合出牌次数+1,弃牌次数+1,收入+1,手牌+1,小丑牌上限+1。
部分字典类型变量,例如voucher = 'v_crystal_ball', consumables = {'c_fool', 'c_fool'}不建议添加,因为容易出bug,当然如果是有能力的大佬当我没说。
对于其他未解锁的卡牌或是卡组,将unlocked和discovered设置为true就能够直接从收藏中看到描述了,无需从游戏中解锁。

修改小丑牌与其他类型的卡牌都是类似的。
例如:第一张小丑牌,源代码描述为:
j_joker = {order = 1,  unlocked = true,   start_alerted = true, discovered = false,  blueprint_compat = true, eternal_compat = true, rarity = 1, cost = 2, name = "Joker", pos = {x=0,y=0}, set = "Joker", effect = "Mult", cost_mult = 1.0, config = {mult = 4}},
我们直接修改config = {mult = 4}为config = {mult = 5}就能将增加的倍率从4改为5,一般的数值修改更改config即可(不容易出bug),建议照着游戏描述修改。
其他变量也是类似的,可以根据你的想法自由修改,就不一一介绍了。
注意name不得修改,因为代码中是根据name来判断卡牌的。pos也不建议修改因为涉及到了游戏贴图。

修改功能(进阶难度):
所有卡牌功能的计算在card.lua文件的多个函数中。
举个例子,如果我们想修改“延迟满足”这张卡牌的触发条件为:未使用的弃牌次数都能加钱。过程如下:
先在localization/zh_CN.lua文件中搜索卡牌名称“延迟满足”,找到变量名j_delayed_grat,再到game.lua中搜索该变量,找到name = "Delayed Gratification",然后在card.lua中搜索所有的Delayed Gratification。
找到代码位置后,我们发现共计出现两次,第一次出现在elseif self.ability.name == 'Delayed Gratification' then loc_vars = {self.ability.extra},阅读代码发现只是将变量传入loc_vars,因此我们无需修改。
第二次出现为if self.ability.name == 'Delayed Gratification' and G.GAME.current_round.discards_used == 0 and G.GAME.current_round.discards_left > 0 then
我们可以很自信的重新修改为if self.ability.name == 'Delayed Gratification' and G.GAME.current_round.discards_left > 0 then
修改数据时记得将描述一起修改(占位符可以不用修改)
由于函数逻辑复杂,没有绝对的把握请勿随意修改函数内容!(想想玩到一半突然报错存档还没了的痛苦)

特殊数据:(别问我是怎么知道的)
蜡封多选时只有第一张选中的会生效,不能仅更改选择数量实现多张卡牌同时蜡封的效果。具体原理涉及到幻灵牌触发流程。
负卡特性不能单单修改数值,因为游戏底层原理是将这张卡放到数组的最后,因此即便修改为+2小丑牌上限也是不起作用的。
还有更多的细节(bug)还请有兴趣的玩家自己摸索。

再次提醒:强烈建议修改任何文件前先备份!
希望大家合理修改游戏难度,快乐游戏!



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏6
回复

使用道具 举报

6

主题

50

帖子

87

积分

初级玩家

Rank: 2

贡献度
0
金元
867
积分
87
精华
0
注册时间
2023-10-1
来自 5#
 楼主| 发表于 2024-2-23 17:12 | 只看该作者
补充一下,修改盲注一般在blind.lua文件中,修改卡组功能一般在back.lua中,修改附加标签(例如稀有、负片等)一般在tag.lua中。不过以防万一,建议在整个主目录下搜索所有出现过的该名字。
回复 支持 反对

使用道具 举报

101

主题

3368

帖子

3834

积分

游戏精英

Rank: 8Rank: 8

贡献度
121
金元
33400
积分
3834
精华
1
注册时间
2011-12-10
舒服的沙发
发表于 2024-2-23 13:18 | 只看该作者
大哥,我们看不懂,直接给点吧
回复 支持 反对

使用道具 举报

101

主题

3368

帖子

3834

积分

游戏精英

Rank: 8Rank: 8

贡献度
121
金元
33400
积分
3834
精华
1
注册时间
2011-12-10
硬硬的板凳
发表于 2024-2-23 13:24 | 只看该作者
我试了一下,没法编辑lua文件
回复 支持 反对

使用道具 举报

101

主题

3368

帖子

3834

积分

游戏精英

Rank: 8Rank: 8

贡献度
121
金元
33400
积分
3834
精华
1
注册时间
2011-12-10
冰凉的地板
发表于 2024-2-23 13:58 | 只看该作者
原来是7z的问题,改成功了,谢谢大佬
回复 支持 反对

使用道具 举报

1

主题

124

帖子

235

积分

中级玩家

Rank: 3Rank: 3

贡献度
0
金元
2350
积分
235
精华
0
注册时间
2015-11-28
6#
发表于 2024-2-23 21:24 | 只看该作者
github上有人写了个modloader,可以搜索balamod
回复 支持 反对

使用道具 举报

1

主题

35

帖子

104

积分

中级玩家

Rank: 3Rank: 3

贡献度
0
金元
1038
积分
104
精华
0
注册时间
2008-7-29
7#
发表于 2024-2-26 19:50 | 只看该作者
我照着去修改红色牌组 保存文件后打开游戏还是一样的 比如小丑位我写了5 也是没有起到作用,是不是我把游戏入库了steam 有游戏数据的原因? 我是两份游戏 一份直接运行的单机的
回复 支持 反对

使用道具 举报

9

主题

89

帖子

259

积分

高级玩家

Rank: 4

贡献度
21
金元
1754
积分
259
精华
0
注册时间
2016-8-8
8#
发表于 2024-2-27 17:58 | 只看该作者
有没有用CE的修改思路
回复 支持 反对

使用道具 举报

6

主题

50

帖子

87

积分

初级玩家

Rank: 2

贡献度
0
金元
867
积分
87
精华
0
注册时间
2023-10-1
9#
 楼主| 发表于 2024-2-28 00:40 | 只看该作者
幻想の女神 发表于 2024-2-27 17:58
有没有用CE的修改思路

直接搜数值改就行了
回复 支持 反对

使用道具 举报

2

主题

303

帖子

443

积分

高级玩家

Rank: 4

贡献度
20
金元
3634
积分
443
精华
0
注册时间
2004-11-25
10#
发表于 2024-2-28 11:56 | 只看该作者
建议修改为 reroll起始3价格为3元,一次刷新三个小丑,每局刷新三个补充包,初始6元
这样比较平衡
原版确实有点难
回复 支持 反对

使用道具 举报

4

主题

459

帖子

839

积分

超级玩家

Rank: 5Rank: 5

贡献度
101
金元
4345
积分
839
精华
0
注册时间
2011-7-7
11#
发表于 2024-2-28 12:22 | 只看该作者
ssssszYYDS 发表于 2024-2-28 00:40
直接搜数值改就行了

直接搜搜不到,是我方式不对吗?
回复 支持 反对

使用道具 举报

6

主题

50

帖子

87

积分

初级玩家

Rank: 2

贡献度
0
金元
867
积分
87
精华
0
注册时间
2023-10-1
12#
 楼主| 发表于 2024-3-3 01:53 | 只看该作者
mm519897405 发表于 2024-2-28 12:22
直接搜搜不到,是我方式不对吗?

大部分是double类型,可能也有加密的数据
回复 支持 反对

使用道具 举报

1

主题

80

帖子

86

积分

初级玩家

Rank: 2

贡献度
0
金元
860
积分
86
精华
0
注册时间
2020-6-21
13#
发表于 2024-3-10 03:29 | 只看该作者
ssssszYYDS 发表于 2024-3-3 01:53
大部分是double类型,可能也有加密的数据

老哥,基值怎么找,第一步找基值就卡住了
回复 支持 反对

使用道具 举报

10

主题

423

帖子

847

积分

超级玩家

Rank: 5Rank: 5

贡献度
22
金元
7588
积分
847
精华
0
注册时间
2014-4-2
14#
发表于 2024-3-10 12:19 | 只看该作者
wybcsjbl 发表于 2024-2-28 11:56
建议修改为 reroll起始3价格为3元,一次刷新三个小丑,每局刷新三个补充包,初始6元
这样比较平衡
原版确实 ...

这个是在game.lua里修改吗?
回复 支持 反对

使用道具 举报

10

主题

423

帖子

847

积分

超级玩家

Rank: 5Rank: 5

贡献度
22
金元
7588
积分
847
精华
0
注册时间
2014-4-2
15#
发表于 2024-3-10 12:38 | 只看该作者
config = {hands = 1, discards = 1, dollars = 1, hand_size = 1, joker_slot = 1},就是每回合出牌次数+1,弃牌次数+1,收入+1,手牌+1,小丑牌上限+1。

修改成5,不行吗?直接报错了
回复 支持 反对

使用道具 举报

6

主题

50

帖子

87

积分

初级玩家

Rank: 2

贡献度
0
金元
867
积分
87
精华
0
注册时间
2023-10-1
16#
 楼主| 发表于 2024-3-11 15:57 | 只看该作者
shawnwuatu 发表于 2024-3-10 12:38
config = {hands = 1, discards = 1, dollars = 1, hand_size = 1, joker_slot = 1},就是每回合出牌次数+1 ...

应该可以的,是不是你别的地方也改了,或者把错误信息发下
回复 支持 反对

使用道具 举报

5

主题

416

帖子

459

积分

高级玩家

Rank: 4

贡献度
10
金元
4190
积分
459
精华
0
注册时间
2009-6-6
17#
发表于 2024-3-20 10:26 | 只看该作者
本帖最后由 lihan1288 于 2024-3-20 11:17 编辑
飞雪落孤城 发表于 2024-3-10 03:29
老哥,基值怎么找,第一步找基值就卡住了

金币的数值类型是双浮点,在数值类型那里选所有类型,商店那里用一次搜一次就能找到
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|咖绿茵|求知网|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2024-6-17 17:43 , Processed in 0.139886 second(s), 35 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表