跳到主要内容

等级与经验

经验曲线​

职业的 exp-curve 决定每一级需要多少经验:

expcurves/levels.txt
100
200
350
500
...

第 N 行 = 升到第 N 级需要的经验:1 级升 2 级看第 2 行,第 1 行用不到(与 MMOCore 相同)。超出行数时重复使用最后一行。也可以直接写公式(level = 目前等级):

classes/剑士.yml
exp-curve: 'formula: 100 + level * 50 + level ^ 2'

找不到曲线时使用 100、200、300、400、500(MMOCore 的默认值)。

经验组​

在 exp-sources.yml 定义经验组,职业写 exp-source: 组名(多个写 exp-sources: [组1, 组2]):

exp-sources.yml
# 同一组怪物给一样的经验
新手村:
exp: 3
mythic-mobs: [小僵尸, 小骷髅, 史莱姆王]

# 每只不同经验,可以写范围(随机取值)
首领:
mythic-mobs:
炎魔领主: 500
炎魔守卫: 20-40
vanilla-mobs:
ENDER_DRAGON: 1000
include: [新手村] # 也包含其他组

# 也可以写 MMOCore 的经验来源
生活:
exp: 1
lines:
- 'mineblock{type=DIAMOND_ORE;amount=20}'
- 'fishitem{type=COD;amount=2-4}'

# MMOCore 的列表写法也可以直接用
main:
- 'killmythicmob{type=shan1;amount=0.3-1}'
- 'from{source=新手村}'
选项说明
exp这一组的默认经验(单独写了数值的怪物用自己的数值)
mythic-mobsMythicMobs 怪物 ID,列表或「ID: 经验」
vanilla-mobs原版生物(EntityType 名称),列表或「类型: 经验」
include包含其他组
linesMMOCore 经验来源的写法,见下表

职业里也可以用 MMOCore 的 main-exp-sources: 直接写经验来源,两种可以一起用。

经验来源​

MMOCore 的 21 种经验来源全部支持,写法相同:类型{参数=值;amount=经验},amount 可以写范围 2-5。

类型参数时机
killmobtype(EntityType)、name(名称)击杀生物(也认得以该原版生物为底的 MythicMobs 怪物,与 MMOCore 相同)
killmythicmobtype(MythicMobs ID)击杀 MythicMobs 怪物
killmythicfactionname(阵营)击杀某个阵营的 MythicMobs 怪物
mineblocktype、silk-touch、crop(只算成熟作物)、player-placed挖掘方块
placeblocktype放置方块
craftitem / smeltitem / fishitemtype合成 / 熔炼 / 钓到物品(按数量)
eattype吃食物
brewpotioneffect、multiplier酿造药水
enchantitemenchant附魔
repairitemtype铁砧修复
damagedealttype(伤害类型)每造成 1 点伤害
damagetakentype(伤害原因)每受到 1 点伤害
movetype(WALK / SPRINT / SNEAK / SWIM / FLY…)每移动 1 格
climbtype(LADDER / VINE / …)每攀爬 1 格
ridetype(坐骑类型)每骑乘 1 格
tame—驯服动物
playworld、x1 x2 z1 z2、in-combat在指定区域每秒
resourcetype(MANA / STAMINA / STELLIUM)每消耗 1 点资源
projectiletype(投射物类型)投射物伤害 × 距离
fromsource(经验组或 MMOCore 的触发组)引用其他经验组

参数写错时后台会提示可用的参数。brewpotion / enchantitem / repairitem 在 MMOCore 依生活职业的基础值计算,星月天职没有生活职业,请用 amount 指定。

只有写了来源的职业才拿经验

MMOCore 的 climb move eat play resource ride damagetaken projectile 不检查职业,写在一个职业里所有职业都会拿到经验;projectile 永远不触发;play 在重载后会重复发经验。星月天职已修正。

经验加成​

最终经验 = 原本经验 × (1 + 加成%)。来源会相加:

来源设定方式
全服/sv admin booster add global 50 2h、/mmocore booster create main 50 7200
指定职业/sv admin booster add class:剑士 30 1d
指定玩家/sv admin booster add player:Steve 100 30m
权限config.yml 的 experience.permission-boosts
属性MythicLib 属性 ADDITIONAL_EXPERIENCE(物品、属性点、技能树都能加)
职业倍率职业文件 exp-multiplier(乘算)

加成存在数据库,重启不会消失;多个子服共用 MySQL 时全部子服同步。/sv admin booster list 列出生效中的加成,全服加成会广播。

其他设定​

config.yml
death-exp-loss:
enabled: true
percent: 7 # 死亡损失当前等级经验的 7%
prevent-spawner-xp: true # 刷怪笼的怪物不给职业经验
display-main-class-exp-holograms: true # 获得经验时在怪物位置显示全息字
experience:
hologram-seconds: 1.0
vanilla-exp-redirection: # 原版经验按比例转成职业经验
enabled: false
ratio: 0.8
override-vanilla-exp: false # 原版经验条显示职业等级与进度

全息字格式在 messages.yml 的 exp-hologram。