跳到主要内容

掉线与当机保护

掉线重连​

玩家在副本里掉线后,位置会保留一段时间(grace 秒)。这段时间内重新登录,会直接回到副本里:回到掉线的位置(如果那个位置已经不在副本范围内,就回到当前存档点),状态恢复,队友会收到「回来了」的提示。

# plugins/CloudDungeon/config.yml(全服默认)
disconnect:
grace: 180 # 掉线后保留几秒;0 = 掉线就直接离开副本
all-offline-timeout: 300 # 全队都掉线时,副本暂停最多几秒
counts-as-death: false # 掉线算死亡一次
max-reconnects: 3 # 每场最多重连几次,-1 = 不限

每个副本可以在自己的 config.yml 写同样的 disconnect:,只写想改的项目,例如 Boss 战不允许掉线逃跑:

# dungeons/<副本>/config.yml
disconnect:
grace: 60
counts-as-death: true
max-reconnects: 1
项目说明
grace掉线后保留的秒数。超过还没回来,就算离开副本,队友会收到通知;他下次登录时直接回到进副本前的位置
all-offline-timeout全队都掉线时副本暂停的最长秒数(最少 10),超过判定失败
counts-as-death活着的时候掉线 = 死亡一次、扣一条命;命用完了,重连回来就是出局(旁观)
max-reconnects每人每场最多重连几次;用完了再掉线,登录时不会回到副本,而是送回原处

其他规则:

  • 副本正在准备中(还在贴地图、还没传送进去)时有人下线:整场取消,入场券全部退还。
  • 副本已经在结算倒数时掉线:直接算离开,不保留位置。
  • 掉线的人在计分板上显示为离线符号;掉线不会触发 /leave 的离开流程,其他队员继续打。
  • 有队员处于掉线保留中时,即使在场的人全部倒下也不会马上判定团灭,要等掉线的人回来或超时;所有人都超时(或离开)后副本判定失败。
  • 触发组有 quit / rejoin 两种类型,可以在掉线、重连时执行脚本,见 触发组。

全队掉线暂停​

全队都掉线时副本会暂停:时间限制停止计算、怪物不再行动、怪物组 / 任务组 / 触发组都停住,王条显示「全队掉线,副本暂停中」。第一个人回来就继续。

提示

暂停期间每个人的 grace 也一起暂停,全队掉线时能等多久只看 all-offline-timeout,超过才判定失败。 有人回来、副本继续之后,其他还没回来的人的 grace 从暂停前剩下的秒数接着倒数。

离开副本后去哪里​

离开副本(通关、失败、/leave、被踢、超时)时:

  • 回到进副本前的位置,恢复原本的游戏模式与飞行状态,清掉副本给的药水效果(environment.clear-effects-on-leave: false 时保留)、时间、天气、世界边界。
  • config.yml 填了 lobby: "世界,x,y,z,yaw,pitch" 时一律送到大厅。
  • 物品 lore 含有 rules.bound-item-lore 文字(默认「副本限定」)的物品会被收走,见 副本限制。
  • 开了跨服时,送回原本的分流,见 跨服。

进副本时的返回位置会存进数据库,所以即使中途当机,下次登录也能回到正确的地方。

被其他插件传送出副本世界(例如 /spawn、/home)也算离开副本。

停服​

正常关服(/stop)时,进行中的副本全部结束,玩家被送回原处。

dungeon:
refund-on-shutdown: true # 停服时进行中的副本:退还入场券、金钱、次数与体力

当机补偿​

服务器崩溃、断电、被强制关闭时,副本来不及正常结束。下次开服时插件会自动处理上次没结束的场次:

dungeon:
refund-on-crash: true # 当机中断的副本:下次开服自动退还
  • 入场券与金钱:开场时入场券先被「押着」并记在数据库的账本里。还没进场就当机的一定会退;已经进场的,refund-on-crash: true 时也退。
  • 进入次数与体力:一并退还。
  • 玩家不在线也没关系:退还的入场券、体力会记成「待补发」,玩家下次登录时自动发到背包(背包满了会掉在脚边),并提示补发了几样东西。离线时获得的通关奖励也用同样的方式补发。
  • 位置:当机时人在副本里的玩家,下次登录会被送回进副本前的位置,并恢复游戏模式。
  • 登录时如果出现在副本世界、但不属于任何进行中的副本(也没有返回记录),会被送到大厅或主世界出生点。有 clouddungeon.admin 的管理员不受影响。
  • 登录时背包里带着副本限定物品(例如当机时带出来的),会被收走。

控制台会显示「上次有 N 场副本没有正常结束:已退还 N 份入场券、N 次进入次数」。

另外,每个副本可以设置挑战失败也退还入场券(ticket.refund-on-fail: true),见 副本设置。主动 /leave 离开不会退还。

编辑模式当机​

管理员编辑到一半当机,下次登录会自动还原背包、位置与游戏模式,见 编辑模式。