Skip to content

Repository files navigation

ShootEXP NeoForge

这是 ShootEXPNeoForge 模组移植版本,与原始 Bukkit 插件功能基本一致。

这是一个纯服务端模组——玩家不需要在客户端安装任何东西。服主只需要在服务器装好,玩家进来就能直接开冲,无需任何前戏准备。当然,如果你想要在单机游戏里也能享受射出经验的快乐,也可以在客户端安装此模组;如果想让经验物品更好看,客户端安装后搭配资源包还能显示自定义材质。

这是一个能让玩家之间通过进行深入交流而变得更加了解彼此的交友模组。当一个玩家对另一个玩家不停蹲起达到一定次数后,这个模组可以让该玩家射出"一滩粘稠的经验",其中包含了一定量的经验值,当玩家吃掉"一滩粘稠的经验"时,就会获得其中蕴含的经验。

版本区别

分支 MC 版本
main 26.1
mc/1.21.5 1.21.5
mc/1.21.1 1.21.1

安装

  1. 安装 NeoForge
  2. 将模组 .jar 文件放入 mods 文件夹
  3. 启动服务器

命令

命令 权限等级 描述
/shootexp help 0 获取帮助
/shootexp status [玩家] 0/2 查看自己/他人状态
/shootexp item <所有者> <赠予者> <数量> 2 获取经验物品
/shootexp restore all <玩家> 2 恢复玩家全部状态
/shootexp restore times <玩家> <次数> 2 恢复射出次数
/shootexp restore stock <玩家> <数量> 2 恢复经验存量
/shootexp set <玩家> <射出次数> <经验存量> 2 设置玩家状态
/shootexp reload 2 重载配置

配置

配置文件位于 config/shootexp.json,首次启动后会自动生成。一般来说默认配置就适合大多数情况,但为了满足各位的特殊癖好,ShootEXP 也提供了各种个性化设置。方便起见,先解释一些术语:

  • "施法" 指玩家不停蹲起,最后射出经验这一过程
  • "攻击" 指玩家一次蹲起
  • "攻击者" 指施法过程中蹲起的玩家
  • "防守者" 指施法过程中被攻击的玩家
  • "所有者" 指经验物品是由哪个攻击者产生的
  • "赠予者" 指经验物品是在所有者对谁施法时产生的

语言

这个模组中文叫射出经验,真的没有任何谐音,所以该模组也适用于国际玩家。目前虽然仅支持 zh_CNen_US 两种语言,但未来可能会开拓更多的国际市场,让我们先在这里画一个饼(发出了白嫖翻译的声音)。

"lang": "zh_CN"

最大经验存量

众所周知,一个成年人每天的产量是有限的。maxStock 设定了玩家体内能储存的最大经验量,超过这个值就只能乖乖等身体慢慢恢复了。

"maxStock": 1000

射出经验函数

玩家需要不停的攻击达到指定次数之后,就可以射出指定数量的经验。可是很多对射出经验很有研究的专家表示他的经验不该这样射。为了满足这些高端用户,我们提供了自定义射出经验函数的功能,多亏了 exp4j 这个强大的字符串解析库,大部分数学运算符号都能用:

"requiredAttackTimes": "1.618^SHOOT + 10",
"shootAmount": "STOCK / 2"

SHOOT 表示已施法次数,STOCK 表示经验存量,MAXSTOCK 表示最大经验存量。随着射出次数增多(以黄金比例 1.618 为底数),所需攻击次数会指数级增长——年轻人,凡事要有节制。

可施法实体类型

据说有些玩家的 xp 系统比较特殊,他们不满足于只和人类交流,还想和各种生物建立深厚的友谊。我们尊重每一位玩家的取向,所以提供了这个设置:

"entity-type": ["Player", "PathfinderMob"]

可用的实体类型为 Minecraft 实体类名,如 PlayerPathfinderMobAnimalMonster 等。温馨提示:请遵守当地法律法规。

攻击设置

俗话说得好,"鞭长莫及"。纵使你的鞭再长,也会有够不着的地方;同一个道理,就算你再猛,也有软下来的时候:

"attack": {
    "distance": 2.0,
    "timeout": 100
}

当目标超过 distance 定义的距离后,你的深情就传达不到了。当超过 timeout 定义的时间没有攻击(100 = 5 秒),说明你已经体力不支,施法中断。

恢复设置

年轻人总觉得自己身体好恢复快,殊不知频繁施法对身体的消耗是巨大的。这里可以调整恢复速度,服主可以根据服务器玩家的平均年龄来设置——年轻人多的服务器可以调快一些,老年服建议调慢,毕竟要爱惜身体:

"restore": {
    "shoot": {
        "period": 6000,
        "amount": 1
    },
    "stock": {
        "period": 6000,
        "amount": 200
    }
}
  • period:恢复间隔(tick,6000 = 5 分钟)
  • amount:每次恢复的量

自定义模型 ID

说实话,原版骨粉的卖相确实不太行,白花花的看着就没食欲。如果你有美术功底,可以做一个看起来更加鲜嫩可口的材质,让玩家吃得更开心:

"customModelData": {
    "enable": false,
    "value": 0
}

需要搭配资源包使用。建议参考某些饮料的包装设计。

自定义音效

"攻击"听起来是不是很可怕?其实这个模组根本不是什么打打杀杀的东西,这是一个温柔的模组。默认的攻击音效是鹦鹉学史莱姆的声音——史莱姆软软萌萌的多温柔啊,那种"啪啪啪"的声音配合蹲起的动作,画面感极强。如果你觉得不够带感,也可以换成其他音效:

"sound": {
    "attack": "entity.parrot.imitate.slime",
    "shoot": "block.slime_block.step",
    "shoot-No-Exp": "entity.llama.eat",
    "eat": "entity.generic.drink"
}

soundShootNoExp 是射不出东西时的音效,默认用羊驼进食的声音——那种干巴巴的咀嚼声,完美诠释了"心有余而力不足"的尴尬。

致谢

本项目基于 MoeArea/ShootEXP 移植至 NeoForge,感谢原作者的创意与实现。

许可证

与原项目保持一致。

About

我想它应该是一个交友插件的NeoForge版本

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages