Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Moon-404/GunSkills

Repository files navigation

枪械技能模组(GunSkills)

本模组是一款用于给枪械模组附加技能、护甲等额外玩法的模组,这篇文档是模组功能的详细说明。

玩法改动

本节阐述了本模组对原版游戏机制进行的各项改动。

攀爬

当玩家不在地面、与墙壁碰撞、y轴上升速度不大于0.1、持续时间未耗尽时:

若只按下了前进键,玩家会向上攀爬,最多持续1.5秒,攀爬3格高。如果跳起过程中攀爬,则可以攀上4格。

若在按下前进键时还按下了左/右键,且玩家没有看向墙壁,玩家会在墙壁水平行走,方向为面朝的墙壁走向,速度为默认速度2倍,最多持续1.5秒。

水平行走时,如果按下空格,玩家会向面朝方向跳出,速度为默认速度4倍,y轴初速为0.3(每级跳跃提升效果增加20%)。

每次攀爬玩家只能跳出一次,当玩家落地,重置持续时间计时和跳出计数。

注意:

  1. 水平行走的方向与面朝方向有关,与按下的方向键无关。但是,按下错误的方向键会导致玩家离开墙壁,从而不满足与墙壁碰撞的前提条件。
  2. 通常来说,如果墙壁在玩家左侧,需要同时按住左和前进键,视角看向前方偏右侧,才能进行水平行走。
  3. 水平行走的速度只与默认速度有关,与玩家面朝方向和墙壁走向夹角无关。
  4. 蹬墙跳只在水平行走时可触发。
  5. 本机制有一定上手难度,建议在单人世界中建一面墙熟悉一下。

滑铲

当玩家不在滑铲中、速度大于0.11、在地面、按下潜行键时,玩家进入滑铲。滑铲的初始速度是当前玩家速度的4倍,以2.5%/tick的速率递减,速度小于0.1或松开潜行键时结束。滑铲时的跳跃会更高。如果距离上一次滑铲的间隔短于3秒,滑铲的初始速度会等比例降低。

回复品轮盘

长按切换第4个物品栏的按键(默认,可以在配置文件中修改)可以呼出回复品轮盘,鼠标移向回复品并按下可以快速将背包中的指定回复品移到该物品栏上。

发送信号

点击鼠标中键(默认,可在游戏中选项修改)可以标记一个方块(最长200格),所有相同队伍的玩家都会看到以白色方框标识出的方块,冷却时间1秒,持续3秒。

掉落伤害

玩家不会受到掉落伤害,而是根据本应该受到的伤害Damage,受到sqrt(Damage)×0.5秒的5级减速效果。

同队伤害

玩家不会受到来自相同队伍玩家的任意形式伤害。

造成伤害

造成伤害会显示在准星上方,颜色表示了对方的护甲状态,红色代表没有护甲。

伤害击退

当玩家拥有护甲、处于漂浮状态时,不会受到伤害击退效果。

视角切换

该按键被移除,游戏设置中也不可见。

data

允许使用 /data 指令修改玩家数据。

护甲

玩家拥有护甲值,这是通过 AbsorptionAmount 来实现的。

根据玩家的当前等级,护甲值有上限:

  • 1级(白色):8

  • 2级(蓝色):12

  • 3级(紫色):16

  • 4级(金色):20

  • 其余等级:0

相应的,升级所需的经验值也发生改变:

  • 1->2级:2500

  • 2->3级:5000

  • 3->4级:12500

  • 其余等级:2147483647

玩家死亡时,不会掉落经验。造成伤害时,每造成0.01点伤害,玩家获得1点经验值。

发光

发光现在不是通过药水效果判定,而是对于玩家A来说,通过以下方式判定玩家B是否发光显示:

  • A是旁观模式且按下了高亮玩家按键:发光

  • A是冒险模式,B与A相同队伍:发光

  • B有发光效果

    • 但是发光效果并非A的同队玩家技能给予:不发光

    • 其他情况:发光

进入世界

进入世界时,玩家会被发送一些系统信息,提醒玩家选择职业。

如果游戏没有开始,会将玩家从所有队伍中移除,否则会清除玩家的所有状态。

边界伤害

无论玩家距离边界多远,总是只会受到 worldborder 中设置的伤害值,而非原版中的 距离×单格伤害。

SpreadPlayers

spreadplayers 指令现在会将目标生成在 最高非空气方块低于 maxHeight 的随机 x、z 坐标。

而非原版的将目标生成在随机 x、z 坐标的低于 maxHeight 的最高非空气方块。

举例,在以下场景中,+ 为原版可能生成的位置,而 * 为修改后可能生成的位置。

  _____         maxHeight
**|   |**
++|+++|++
---------       ground

脚步声放大

block 开头 step 结尾的声音字段(一般为玩家脚步)会被放大。

客户端的放大倍率默认为6.0倍,可以在配置文件中修改。

服务端的放大倍率实际上为声音的传播距离,可以在配置文件中修改。

伤害来源显示

玩家受到伤害时会显示伤害来源的方向。

MaxUpStep 修改

玩家的默认 MaxUpStep 从 0.6 提高至了 1.1,这意味着:

  1. 玩家不用跳跃就可以走上 1 格高的坡;
  2. 潜行不再防止玩家从方块边缘掉落,这也解决了滑铲卡在方块边缘的问题。

技能物品

技能效果详见各技能的描述。

获得技能

扔出技能包可以随机获得一个本职业的技能物品。

如果一次扔出多个技能包,只会获得一个技能物品,剩下的技能包会成为掉落物。

如果想给队友提供单个技能包,可以通过放在箱子中等方式传递。

技能冷却

每种技能都有一个初始冷却,当持有的同种技能数量越多,技能冷却越快,下表展示了技能数量和技能冷却时长的关系:

物品数量 冷却时长
1 100%
2 80%
3 65%
4 55%
≥5 50%

使用技能

被动技能物品需要放在副手,主动技能物品需要放在快捷栏的指定栏位才能触发,默认为第 5、6、7 格,可以在配置文件中修改。

通过技能按键可以释放对应栏位的技能,默认按键为 X、C、V,可以在游戏的按键绑定设置中修改。

在游戏中,也可以通过物品悬浮窗说明来确认当前生效的栏位和按键绑定。

模组指令

该模组拥有以下指令:

  • /class 可以改变自己的职业

  • /choose 可以改变自己的队伍

数据包相关

模组使用了一些计分板和mcfunction来进行更好的数据包驱动。

global 计分板中的 game_start 会被模组指令用于判定游戏是否开始。

global 计分板中的 game_max_team_player 会被模组指令用于判定队伍玩家数量是否已满。

global 计分板中的 random 会被模组每 tick 设置为一个新的随机数。

gunskills:revive 的函数会被使用复活图腾的玩家调用,调用地点为玩家位置,方向为玩家面朝方向,调用者为玩家。

gunskills:login 的函数会被登陆进入游戏的玩家调用,调用地点为玩家位置,方向为玩家面朝方向,调用者为玩家。

gunskills:logout 的函数会被退出游戏的玩家调用,调用地点为玩家位置,方向为玩家面朝方向,调用者为玩家。

gunskills:kill 的函数会被击杀其它玩家的玩家调用,调用地点为玩家位置,方向为玩家面朝方向,调用者为玩家。

gunskills:death 的函数会死亡的玩家调用,调用地点为玩家位置,方向为玩家面朝方向,调用者为玩家。

在玩家击杀玩家的事件中,会先调用 kill,再调用 death,两者中间不执行其它指令。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages