钓鱼获得龙虾/螃蟹 改小bug(可用版本)
This commit is contained in:
1 parent
23598ed3dd
commit
a647878ac1
12 files changed
+373
-36
No files matched your search
+19
-1
@@ -100,7 +100,7 @@
|
||||
(脏盘子可放水槽清洗, 见 家具家私转化关系.txt 水槽)
|
||||
|
||||
========================================
|
||||
六、石磨 (stonemill, 磨黄豆 -> 玻璃罐装 -> 油罐)
|
||||
六、石磨 (stonemill, 磨黄豆->油罐 或 磨小麦->面粉)
|
||||
========================================
|
||||
15. stonemill(空) + 黄豆 -> 加入黄豆
|
||||
转换条件:[手持 黄豆(rtdd:soybean, 乡野食材) 右键 进行转换]
|
||||
@@ -114,6 +114,24 @@
|
||||
转换条件:[手持 玻璃罐(rtdd:medicinetank) 右键 进行转换]
|
||||
机制: 研磨完成后, 手持玻璃罐右键取出, 消耗1个玻璃罐, 获得 油罐(oilcan), 石磨回空态
|
||||
|
||||
17a. stonemill(空) + 小麦 -> 加入小麦
|
||||
转换条件:[手持 小麦(minecraft:wheat, 原版) 右键 进行转换]
|
||||
机制: 手持小麦右键石磨, 消耗6个, 加入小麦
|
||||
|
||||
17b. 加入小麦 -> 研磨中(旋转) -> 研磨完成
|
||||
转换条件:[右键 进行转换(研磨)]
|
||||
机制: 同黄豆: 右键研磨, 每次转90度, 四次完成
|
||||
|
||||
17c. 研磨完成(小麦) -> 石磨(空) + 面粉
|
||||
转换条件:[空手 右键 进行转换(取出)]
|
||||
机制: 研磨完成后空手右键取出, 获得 1个 面粉(rtdd:farineblcok, 面食小麦·面团组起点),
|
||||
石磨回空态
|
||||
|
||||
17d. 磨小麦/磨黄豆 共用打碎返还
|
||||
转换条件:[左键打碎 石磨 释放转换]
|
||||
机制: 研磨中或已完成未取时, 打碎石磨 返还【放入的原料】: 磨小麦返 6 小麦,
|
||||
磨黄豆返 16 黄豆(石磨本体照常掉落); 空石磨不返还。
|
||||
|
||||
18. oilcan(油罐) 取油耗尽 -> medicinetank(玻璃罐)
|
||||
转换条件:[油罐 取油使用次数扣到0]
|
||||
机制: 油罐的油被取光(被锅铲取油16次)后, 变回 玻璃罐(medicinetank)
|
||||
|
||||
+93
-3
@@ -438,7 +438,7 @@ FurnitureData+FurnitureService 实现, 注册到 FeatureDispatcher)
|
||||
- 稻谷(rice_seeds): 分类 xy_ingredients → xy_natural, 从 乡野食材/谷物·米面(ingr_08_grain)
|
||||
移入 乡野自然/水稻·作物(nat_03_crop) [已调整]
|
||||
- 乡野自然转化关系.txt: 把新加的 todo 全部转正为正式规则并标【待实现】:
|
||||
果树"树苗成长"机制、葡萄藤取葡萄(4a)、柴火分解9木条(5b)、水稻成熟取16大米(7a) [已整理]
|
||||
果树"树苗成长"机制、葡萄藤取葡萄(4a)、柴火分解9木条(5b, 现已改切石机获得木条)、水稻成熟取16大米(7a) [已整理]
|
||||
- 乡野食材转化关系.txt: 移除 稻谷 条目(谷物·米面 只留 大米/生面) [已整理]
|
||||
- 上述待实现功能已记录到 全部功能没做什么.txt 乡野自然 节
|
||||
|
||||
@@ -457,10 +457,10 @@ FurnitureData+FurnitureService 实现, 注册到 FeatureDispatcher)
|
||||
- 生长: grapebushes_1 计时180秒 -> grapebushes_2 [已实现]
|
||||
- 取葡萄: grapebushes_2 空手右键 -> 掉落3个葡萄(grape) + 变回 grapebushes_1 [已实现]
|
||||
|
||||
三、柴火 (堆叠/取用 + 工作台分解)
|
||||
三、柴火 (堆叠/取用)
|
||||
- 堆叠: firewood_2(柴火_2) + 手持柴火右键 -> firewood(柴火_1 堆放, 消耗1) [已实现]
|
||||
- 取用: firewood(堆放) 空手右键 -> firewood_2 + 返还1柴火 [已实现]
|
||||
- 分解: firewood 工作台 -> 9个木条(b_15) (配方 xy_firewood_plank) [已实现]
|
||||
- 木条(b_15) 改为 切石机获得: 任意原木(minecraft:logs) x1 -> 木条 x2 (配方 xy_woodstick_stonecut) [已调整]
|
||||
|
||||
四、水稻 (种植 + 生长 + 收获)
|
||||
- 种植: 手持稻谷(rice_seeds) 右键原版耕地(farmland) -> 耕地上方放置 水稻刚种下(riceseedlingsb) [已实现]
|
||||
@@ -1097,3 +1097,93 @@ FurnitureData+FurnitureService 实现, 注册到 FeatureDispatcher)
|
||||
【待验证】网易事件参数名(entityId/attackedByEntId)、实体类型枚举名在不同版本可能不同,
|
||||
需进游戏验证; 若类型判定不准, 改用实体类型字符串接口再调。
|
||||
|
||||
|
||||
########################################
|
||||
【生存模式获取渠道补齐】2026-09-24
|
||||
########################################
|
||||
目的: 给"无任何获取渠道"的食材/工具补来源。此前盘点过 4 分类无渠道物品:
|
||||
食材(青菜/葱/大蒜/辣椒/螃蟹/龙虾/桃子/橙子)、面食(面粉/竹筒)、寿司(干海带)、
|
||||
死亡生物(挂肉钩)。本轮完成: 村民交易/石磨磨面/竹筒·挂肉钩配方/钓鱼掉落。
|
||||
|
||||
一、村民交易(傻子职业卖乡野食材) —— 解决 青菜/葱/大蒜/辣椒/桃子/橙子/干海带
|
||||
- 新建 交易表 trading/xiangye_farmer_trades.json(网易自定义交易表正确目录为 trading/,
|
||||
非 trading/economy_trades/):
|
||||
7 笔交易, 单一品质全解锁, 玩家花 绿宝石 买, 价格: 干海带2 / 青菜1(量3) /
|
||||
葱1(量3) / 大蒜2(量2) / 辣椒2(量2) / 桃子2 / 橙子2 (max_uses 64)。
|
||||
- 在 entities/minecraft_villager_v2.json 的 傻子(nitwit) 职业组件组(约1510行) 加
|
||||
minecraft:economy_trade_table, table 指向 trading/xiangye_farmer_trades.json。
|
||||
当初的坑: 交易表误放 trading/economy_trades/ 导致编辑器交易列表空 → 改回 trading/ 后正常。
|
||||
- 覆盖傻子职业因原版傻子本无交易(开不了交易界面), 故不挤掉任何原版有用交易。
|
||||
|
||||
二、石磨磨小麦→面粉 —— 解决 面粉(整棵面食树根源)
|
||||
- 在厨具包内(未新建包): ChujuData.py 加 WHEAT_ITEM/小麦/面粉常量,
|
||||
ChujuService.py 石磨(_handleStonemill)分材料处理:
|
||||
黄豆(16) → 研磨4次 → 玻璃罐取油罐(原逻辑不变)
|
||||
小麦(6) → 研磨4次 → 空手取出 1 面粉(rtdd:farineblcok)
|
||||
打碎按材料返还(返面粉原料=小麦6; 返黄豆16); 材料标识存方块实体 rtdd_stm。
|
||||
|
||||
三、竹筒 配方 —— 解决 竹筒(竹筒饭原料)
|
||||
- 新增 netease_recipes/xy_bamboo_0.json: 3 原版竹子 → 1 竹筒(rtdd:bamboo_0)。
|
||||
|
||||
四、挂肉钩 配方 —— 解决 挂肉钩(切肉/挂鱼核心)
|
||||
- 新增 netease_recipes/xy_meathook.json: 支撑杆(support_rod) + 铁锭 → 1 挂肉钩。
|
||||
|
||||
五、螃蟹/龙虾 钓鱼掉落 —— 解决 螃蟹/龙虾
|
||||
- 新建 yuanbanfangzhi/service/YuanbanFishing.py(普通逻辑类 YuanbanFishingService,
|
||||
照 deadmobGen 架构, 逻辑不在分发器内联)。
|
||||
- FeatureDispatcher 导入并实例化 self._fishing, 监听 PlayerFishingServerEvent(收杆、
|
||||
掉落物生成前) 转发到 _fishing.OnFishing:
|
||||
先 args["cancel"]=True 取消默认钓物(避免原版鱼再出现),
|
||||
再在鱼钩位置 SpawnItemToLevel 生成 1 只 螃蟹/龙虾(测试用100%,50/50)。
|
||||
- 【待验证】PlayerFishingServerEvent 的 cancel 是否生效需进游戏实测;
|
||||
若 cancel 不生效(仍出原版鱼), 需改用"覆盖钓鱼掉落表 loot_tables/gameplay/fishing/"
|
||||
方案。正式概率待定(草稿: 螃蟹10% / 龙虾6%), 测试完调回。
|
||||
|
||||
########################################
|
||||
【死亡生物尸体生成修复 + 黄豆打草移位 + 榨汁机/石磨消闪 + 石磨复用】2026-09-24
|
||||
########################################
|
||||
|
||||
一、死亡生物·尸体方块生成(玩家杀 猪/牛/羊/鱿鱼/村民 → 死亡位置生成尸体方块)
|
||||
- DeadmobGeneratorService.py 改为【普通逻辑类】(不再继承 BlueFoxServerSystem 自监听),
|
||||
由 FeatureDispatcher 在自身 __init__ 实例化 self._deadmobGen 并监听死亡事件转发。
|
||||
起因: 新类按原架构(继承 BlueFoxServerSystem)无法被框架 GetLastSubclass 注册实例化,
|
||||
日志里连 init 都没有。
|
||||
- 死亡事件用 MobDieEvent(官方文档: 参数 id=死亡实体, attacker=击杀者, cause=伤害来源),
|
||||
不是 ServerEntityDieEvent(该 SDK 里不存在)。
|
||||
- 类型判断改 GetEngineTypeStr() 精确匹配:
|
||||
minecraft:pig→dead_pig / cow→dead_cow / sheep→dead_sheep / squid→deadsquida /
|
||||
villager(+villager_v2)→dead_villager。
|
||||
- 远程击杀: attacker 若是抛射物(箭等), 用 CreateBulletAttributes(attacker).GetSourceEntityId()
|
||||
取发射者, 发射者是玩家才计为玩家击杀。
|
||||
- 生成延迟: 死亡后 1.5 秒才放尸体方块(comp.CreateGame(LevelId).AddTimer), 不刚死瞬间出现。
|
||||
- 死亡 cause 过滤: 只有 cause∈{entity_attack(近战), projectile(远程)} 才生成;
|
||||
排除 /kill/指令(self_destruct) 及摔/溺/火等一切非玩家攻击的死亡。
|
||||
|
||||
二、黄豆打草掉黄豆 移回 乡野食材(Shicai)
|
||||
- 从死亡生物包移走(职责不应在死亡生物):
|
||||
常量 SOYBEAN_ITEM / GRASS_DROP_CHANCE=0.15 / GRASS_BLOCKS → ShicaiData.py
|
||||
掉落方法 handleGrassDrop → ShicaiService.py, __init__ 里 FeatureDispatcher.registerGrassDrop(self)
|
||||
- FeatureDispatcher.OnDestroy 顶部先试 grassDropOwners 的路由: 草/杂草 概率掉黄豆,
|
||||
不取消破坏本身(与打草掉小麦种子一致)。
|
||||
|
||||
三、榨汁机 玻璃杯/水果 右键 消闪
|
||||
- YinliaoData.py 新增 GLASS_CUP(=rtdd:fruitjuice_0 玻璃杯) + JUICER_BLOCKUSE
|
||||
(玻璃杯 + 6 水果 × 榨汁机 6 状态 全组合)。
|
||||
- InterceptData.py 把 JUICER_BLOCKUSE 并入 _BLOCK_USE_TABLES → 自动派生进 BLOCKUSE_CANCEL,
|
||||
客户端提前 ret 放置预览 + Notify BlockUseRequest, 消闪。
|
||||
- 注意: 榨汁机取汁走 BlockUse(右击方块)通道, 不能标 action==take_out
|
||||
(否则会被 BLOCKUSE_CANCEL 派生过滤掉; 且与汤锅/炒锅/油锅的盛出 ItemUseOn 通道不同)。
|
||||
|
||||
四、石磨(厨具) 两处修复
|
||||
- 玻璃罐/黄豆/小麦 右键石磨 消闪:
|
||||
ChujuData.py 新增 STONEMILL_BLOCKUSE = [(玻璃罐 rtdd:medicinetank, 石磨),
|
||||
(黄豆 rtdd:soybean, 石磨), (小麦 minecraft:wheat, 石磨)];
|
||||
InterceptData.py 把 STONEMILL_BLOCKUSE 并入厨具 _BLOCK_USE_TABLES → BLOCKUSE_CANCEL 消闪。
|
||||
- 研磨完成后可再次放料(先取成品再放): ChujuService._handleStonemill 空磨判定
|
||||
由 prog is None 扩为 prog is None 或 prog<0 —— 取走成品后 _clearMill 把进度写成
|
||||
-1(非 None), 否则取完仍进不了"可加入材料"分支(已修)。
|
||||
修正: 只有"空磨"(从未放料 或 已取走成品) 才能放料开工;
|
||||
完成态(prog=4)必须先取走成品(小麦空手取面粉 / 黄豆玻璃罐取油罐)变回空磨,
|
||||
之后才能手持 黄豆(16)/小麦(6) 重新放入再开一轮研磨。
|
||||
- 待实测: /kill 后 cause 是否为 self_destruct、村民实际类型串是否为 villager_v2。
|
||||
|
||||
+1
-1
@@ -185,7 +185,7 @@
|
||||
● 箭桶(arrowbarrel_0)【有序 · 单格】
|
||||
云杉活板门 【空】 【空】
|
||||
|
||||
● 木条(b_15) x9【无序】:柴火堆_1 x1 -> 木条 x9
|
||||
● 木条(b_15) x2【切石机·无序】:任意原木(logs) x1 -> 木条 x2
|
||||
● 竹栏(bamboomeshfence)【有序】
|
||||
竹子 竹子 竹子
|
||||
竹子 竹子 竹子
|
||||
|
||||
Reference in new issue
Block a user