
撒尿指令
这个mod让你可以使用/piss命令小便
查看大图/piss 模组
此模组添加了 /piss 命令,触发玩家排尿。该效果对所有玩家可见(全部在服务端处理;几乎没有客户端代码)。
功能
- 输入命令
/piss开始排尿。 - 按住
Shift可提前停止。 - 再次输入
/piss同样会停止当前排尿。 - 液流朝玩家视线方向移动,并对方块碰撞做出反应。
- 液流对实体有反应:击中目标时会停留在目标上,视觉轨迹会短暂跟随其移动。
- 排尿约 5 秒后自动停止,玩家死亡或退出游戏时也会停止。
- 效果在服务端处理,并对其他玩家可见。
弹道工作原理(每个游戏刻)
抛物线,不是物理模拟。 发射点——玩家臀部(
player.position().add(0, 0.8, 0)),初速度——沿玩家视线方向(player.getLookAngle(),速度约 0.5–0.7),重力约 0.05/刻²。我们以大步长在约 12 个点上采样抛物线轨迹——射流的方块分布稀疏。用玻璃方块而非粒子。 射流是一个
Display.BlockDisplay池,包含整块黄色玻璃(Panes.GLASS_BLOCK,缩放约 0.13,无旋转——变换是全局且静态的),抛物线上每个可见点对应一个方块。每刻调整池大小以匹配点数,实体是移动(setPos)而非重建;setPosRotInterpolationDuration(4)使客户端上的移动平滑且变慢。不使用粒子。命中点。 使用相同的抛物线线段——对方块使用
level.clip(new ClipContext(from, to, ClipContext.Block.COLLIDER, ClipContext.Fluid.NONE, player)),对实体使用ProjectileUtil.getEntityHitResult(...)(线段被方块命中裁剪掉,玩家自身和射流的Display实体被排除在谓词之外)。首次命中 = 落点;我们不再进一步采样抛物线。幽灵方块(水坑)。 在撞击点生成一个
Display.BlockDisplay,带有一个扁平面板(不是十字形):YELLOW_STAINED_GLASS_PANE,两侧相对面均设为true,面向玩家(绕 Y 轴旋转-yRot)。世界不被修改;显示实体按定义不具碰撞。- 淡入插值:生成时持续 12 刻;一刻后——目标变换为“更低更宽”(scale.y → ~0.15)。如果在生成刻设置,客户端会在单个数据包中同时收到两个状态而不会播放动画。
- 经 12 刻(0.6 秒)后——
entity.discard()。每 4 刻(GHOST_INTERVAL)生成一个新水坑。 - 击中实体:水坑“粘附”——它记住目标及其位置偏移,每刻重新定位到其后方(
setPosRotInterpolationDuration(2)以求平滑)。
停止射流:计时器(100 刻 = 5 秒)、重复
/piss(切换)、Shift(服务端player.isShiftKeyDown()——无需客户端按键绑定)、死亡、登出或维度切换。该命令不会向聊天或操作栏发送任何消息。
正在加载版本记录…


正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。