• 欢迎加入MineBBS QQ讨论群:点击查看所有的官方讨论群
  • 我们将于近期对服务器进行迁移,服务可能中断至多2日。请各位安排好自己的访问计划,造成不便敬请谅解!
  • MineBBS入站考试已经上线!想要成为【正式会员】解锁更多功能吗?快来参与吧!【点我去看】
想让MC更真实?来试试这个温度系统吧

原创 LSE 想让MC更真实?来试试这个温度系统吧 1.0.3更新

请登录后获取
版权类型
原创
版权链接
#
语言支持
中文(简体)
适配版本(基岩)
  1. 最新版本
免费版不包含任何API!!!!且不会进行后续内容更新!!!!!
完整版购买请加群:519653012
购买前须知:
30元档位仅为单版本(插件的大版本)永久有效,可凭购买依据进行补发版本
90元档位为支持后续更新(注:不包含除本体DLC内容)
此外免费版本将只会含有少部分功能且不支持API引用

例:0.0.1和0.0.2为一个大版本中的子版本(测试版子版本)
正式版会变为1.0.1开始,此为大版本

插件概述
插件名称 :temperature
作者 :伊希娅

核心功能:
- 实时环境温度计算(群系/天气/时段)
- 装备/食物温度修正系统
- 温度相关状态效果管理
- 温度边界死亡机制
- 多插件API交互接口

系统特性
环境计算 :
- 群系基础温度修正(沙漠+12°C,雪原-15°C等)
- 动态天气影响(雨天-5°C,晴天+3°C)
- 昼夜温差变化(夜晚-8°C)
玩家交互 :
- 装备温度修正(皮革装备+6°C,钻石装备-3°C)
- 食物温度效果(熟食升温,冰块降温)
- 温度曲线平滑算法(可配置变化速率)
生存机制 :
- 极端温度死亡(-15°C/45°C)
- 低温/高温状态效果(减速、反胃等)
- 死亡/重生温度重置

开发者须知:
本插件允许您使用API进行子插件开发,子插件允许带有盈利性质但与作者无关

配置文件
[MD] # 配置文件说明 (config.json) ## 主要配置项: ```json { // 温度变化平滑系数 (0.1为较平缓变化,值越大变化越快) "temperatureCurveFactor": 0.1, // 温度极限设置 "TemperatureLimits": { "min": -15, "max": 45, "warningThreshold": 5 // 警告阈值(默认5度) }, "DamageSettings": { "damageInterval": 2000, // 伤害间隔(毫秒) "freezeDamage": 4, "burnDamage": 4 }, "ProtectionSettings": { "deathProtectionDuration": 60000, // 死亡保护持续时间(毫秒) "initialProtectionDuration": 30000, // 初始进入保护持续时间(毫秒) "biomeTemperatureDelay": 5000, // 群系温度延迟生效时间(毫秒) }, // 温度效果配置 "TemperatureEffects": { "coldEffects": [ // 低温效果 { "threshold": 10, // 触发阈值(温度≤10°C时生效) "effectId": 2, // 效果ID(2=移动加速) "amplifier": 1, // 效果等级 "duration": 60 // 持续时间(秒) }, //...其他低温效果 ], "hotEffects": [ // 高温效果 { "threshold": 30, // 触发阈值(温度≥30°C时生效) "effectId": 17, // 效果ID(17=瞬间治疗) "amplifier": 0, "duration": 60 } //...其他高温效果 ] }, // 群系温度修正值 "BiomeTemperatureModifiers": { "desert": 12, // 沙漠+12°C "savanna": 8, // 热带草原+8°C "snowy_tundra": -15, // 雪原-15°C //...其他群系修正 }, // 盔甲温度修正 "ArmorTemperatureModifiers": { "minecraft:leather_chestplate": 6, // 皮革胸甲+6°C "minecraft:diamond_helmet": -3, // 钻石头盔-3°C //...其他盔甲修正 }, // 食物温度效果 "FoodTemperatureEffects": { "minecraft:cooked_beef": { "tempChange": 8, // 温度变化值 "duration": 5000 // 持续时间(毫秒) }, "minecraft:melon_slice": { "tempChange": -5, // 食用西瓜降低10°C "duration": 4000 } //...其他食物效果 }, // 方块检测与处理配置 "blockCheckRange": 5, // 方块检测范围(默认5格) "blockEffectCurve": "sqrt", // 方块效果曲线类型(sqrt/log) "blockProcessingBatchSize": 50,// 每批处理方块数量(默认50个) // 玩家状态温度修正 "environmentTemperatureModifiers": { "inWater": -8, // 水中温度修正 "inLava": 255, // 岩浆中温度修正 "inWaterOrRain": -5, // 水中或雨中温度修正 "inSnow": -10, // 雪中温度修正 "isOnHotBlock": 15, // 热方块上温度修正 "daylightDay": 3, // 白天光照温度修正 "daylightNight": -2 // 夜晚光照温度修正 }, // 方块温度修正值 "BlockTemperatureModifiers": { // 冷水/冷源方块 "minecraft:water": -3, "minecraft:ice": -7, // 热水/热源方块 "minecraft:lava": 20, "minecraft:fire": 15, // 特殊方块 "minecraft:water_cauldron": -4, "minecraft:lava_cauldron": 10, "minecraft:respawn_anchor[charges=4]": 15, //...其他方块修正 } } ``` ## 温度系统插件 API 文档 ### 1. 插件概述 温度系统插件提供了玩家温度管理功能,其他插件可以通过API接口获取和修改玩家温度。 插件名称 : temperature 版本 : 1.0.0 作者 : 伊希娅 简介 : 管理玩家温度及相关效果的系统插件 ### 2. API 接口说明 #### a.获取玩家当前温度 `getPlayerTemperature(player)` **参数**: - player: 玩家对象 **返回值**:当前温度值(Number) #### b.增加玩家温度 `addPlayerTemperature(player, amount)` **参数**: - player: 玩家对象 - amount: 增加的温度值(Number) #### c.减少玩家温度 `reducePlayerTemperature(player, amount)` **参数**: - player: 玩家对象 - amount: 减少的温度值(Number) #### d.设置玩家温度 `setPlayerTemperature(player, temperature)` **参数**: - player: 玩家对象 - temperature: 目标温度值(Number) 使用方法 : pauseTemperatureUpdate(player, pauseState) 参数 : - player: 玩家对象 - pauseState: true(暂停)/false(恢复) 返回值 : 无 #### f.检查玩家是否受温度影响 使用方法 : isAffectedByTemperature(player) 参数: - player: 玩家对象 返回值 : Boolean (true表示正在受温度影响) #### g.获取基础温度值 使用方法 : getBaseTemperature(player) 参数: - player: 玩家对象 返回值 : 计算环境因素后的基础温度值 #### h.维持合适温度范围 `maintainTemperature(player, [min=20], [max=25], [duration=0], [callback])` **参数**: - player: 玩家对象 - min: 最低温度(默认20°C) - max: 最高温度(默认25°C) - duration: 持续时间(毫秒,0表示永久) - callback: 持续时间结束回调函数 #### i.停止维持温度 `stopMaintaining(player)` **参数**: - player: 玩家对象 #### h.维持自定义温度范围 `maintainTemperature(player, [min=20], [max=25], [duration=0], [callback])` **参数说明**: - `min`:最低温度(支持负数,默认20) - `max`:最高温度(默认25) - 参数顺序不影响,系统会自动排序区间 ### 插件示例: 示例 : ```javascript const player = ...; // 获取玩家对象 const currentTemp = $Y.i.temperature.getPlayerTemperature(player); console.log(`玩家当前温度: ${currentTemp}°C`); // 增加玩家温度5°C $Y.i.temperature.addPlayerTemperature(player, 5); // 减少玩家温度5°C $Y.i.temperature.reducePlayerTemperature(player, 5); // 将玩家温度设置为25°C $Y.i.temperature.setPlayerTemperature(player, 25); // 暂停玩家温度更新 $Y.i.temperature.pauseTemperatureUpdate(player, true); // 检查温度影响状态 if (!$Y.i.temperature.isAffectedByTemperature(player)) { // 设置自定义温度值 $Y.i.temperature.setPlayerTemperature(player, 25); } // 获取环境基础温度 const baseTemp = $Y.i.temperature.getBaseTemperature(player); console.log(`环境基础温度: ${baseTemp}°C`); // 定时恢复温度系统 setTimeout(() => { $Y.i.temperature.pauseTemperatureUpdate(player, false); player.sendToast("温度系统已恢复"); }, 30000); //维持玩家在22-28°C范围30秒 $Y.i.temperature.maintainTemperature(player, 22, 28, 30000, () => { player.sendToast('舒适温度维持结束!'); }); // 手动停止维持 $Y.i.temperature.stopMaintaining(player); // 维持玩家在-5°C到10°C的低温环境60秒 $Y.i.temperature.maintainTemperature(player, 10, -5, 60000); // 维持高温环境(50°C到60°C) $Y.i.temperature.maintainTemperature(player, 60, 50); // 维持精确温度25°C(设置相同值) $Y.i.temperature.maintainTemperature(player, 25, 25); ``` [/MD]

1750010423627.webp
1750010441323.webp
1750010460317.webp
1750010496001.webp
  • 喜欢
反馈: YYT
作者
伊希娅
价格
50.00金粒
下载
48
查看
1,827
首次发布
最后更新

评分

0.00 星 0 次评分

伊希娅 的其他资源

最新更新

  1. 1.1.0预发布

    本次更新拥有了更复杂的环境模型及其检测机制的同时对性能的需求降低,同时编写了保温状态的代码,腐竹可自定义方块产生范围性的温度维持区间...
  2. 1.0.3更新

    本次更新内容为1.0.2及其1.0.3一同发出 #### 版本 1.0.2 (洞穴检测下线与功能扩展) - **指令系统升级**: 将假注册指令改为真注册指令,支持游戏内配置修改 -...
  3. 1.0.1

    完成正式版1.0.0提及的所有未完成项目 以下为1.0.2的画饼部分:...
后退
顶部 底部