传奇角色死亡后延时复活与选择回城脚本编写

来源: 作者: 点击:
一、 基础脚本:强制读秒后复活回城

实现死亡后躺地读秒(3秒),再自动复活并回城。此脚本为强制流程,无玩家选择。

1. 脚本位置:此脚本应放置于 Mir200\Envir\Market_Def\QFunction-0.txt 文件的 [@PlayDie] 死亡触发段下方。
2. 核心脚本:
[@PlayDie]
#if
#act
DelayGoto 1000 @死亡读秒_3
SendMsg 6 【系统】3秒后将在安全区复活...
Break

[@死亡读秒_3]
#if
#act
SendMsg 6 【系统】2...
DelayGoto 1000 @死亡读秒_2
Break

[@死亡读秒_2]
#if
#act
SendMsg 6 【系统】1...
DelayGoto 1000 @死亡读秒_1
Break

[@死亡读秒_1]
#if
#act
GmExeCute 复活 Self
mapmove 3 330 330
SendMsg 6 【系统】已复活并传送至安全区。
Break

3. 代码解析:
◦ DelayGoto 1000 @标签:核心延时指令。1000 表示延时1000毫秒(即1秒)后,自动跳转到 @标签 处继续执行。此处实现了3秒倒计时。

◦ SendMsg 6:在聊天窗口发送系统提示,数字6通常代表绿色文字。此指令仅为信息反馈,非必须。

二、 进阶脚本:弹窗选择立即复活或回城

实现死亡后弹出对话框,让玩家选择是“花费元宝立即原地复活”还是“免费回城复活”。此脚本更符合商业服设定。

1. 脚本位置:同上,在 QFunction-0.txt 的 [@PlayDie] 段编写。
2. 核心脚本:
[@PlayDie]
#if
#act
DelayGoto 2000 @弹出复活选择
SendMsg 6 您已死亡,2秒后选择复活方式...
Break

[@弹出复活选择]
#if
#act
#SAY
请选择您的复活方式:\ \
<立即原地复活/@立即复活> (消耗 1000 元宝)\ \
<免费回城复活/@回城复活> (3秒后自动执行)\ \
<关闭/@exit>

[@立即复活]
#if
CHECKGAMEGOLD > 999
#act
GAMEGOLD - 1000
GmExeCute 复活 Self
SendMsg 6 【系统】消耗1000元宝,已原地满状态复活!
#ELSESAY
元宝不足 1000,无法立即复活。\ \
<返回选择/@弹出复活选择>

[@回城复活]
#if
#act
SendMsg 6 【系统】3秒后免费回城复活...
DelayGoto 1000 @回城读秒_2
Break

[@回城读秒_2]
#if
#act
SendMsg 6 【系统】2...
DelayGoto 1000 @回城读秒_1
Break

[@回城读秒_1]
#if
#act
SendMsg 6 【系统】1...
DelayGoto 1000 @执行回城复活
Break

[@执行回城复活]
#if
#act
GmExeCute 复活 Self
mapmove 3 330 330
SendMsg 6 【系统】已免费复活并传送至安全区。
Break

3. 关键点解析:
◦ #SAY:在玩家屏幕弹出对话框,显示供选择的文本和按钮。选项按钮由 <文字/@标签> 格式定义。

◦ CHECKGAMEGOLD > 999:检测玩家元宝是否大于999(即至少有1000元宝)。

◦ GAMEGOLD - 1000:扣除1000元宝。

◦ 如果玩家不点击,将停留在选择界面,不会自动回城。若需超时处理,可结合 DelayGoto 在死亡触发时设置一个更长延时(如30秒)跳转到强制回城段。

三、 常见报错与注意事项

1. 脚本不生效:确保脚本文件为 ANSI 编码,并放置在正确的 QFunction-0.txt 中。修改后必须重启M2Server引擎。
2. 坐标无效:mapmove 3 330 330 中的 3 是地图编号(3代表盟重省),330 330 是坐标。请确认该坐标位于安全区内,且地图编号正确。
3. 指令错误:GmExeCute 指令名称必须拼写准确,注意大小写。部分引擎可能使用 Gmexecute 或其他变体,请以引擎说明书为准。
4. 调试技巧:可在脚本关键节点添加 SendMsg 6 提示,以判断脚本执行到哪一步。