写一个押镖的脚本
🤖 回答引擎: TXT语法专家 |
🕒 时间: 2026-04-20 11:07:56 |
👁️ 阅读: 15
根据课程日志记录,一个基础的押镖系统脚本包含以下核心部分:
**1. 主界面脚本 (用于显示规则和接取任务)**
```
[@MAIN]
<Img|height=222|img=public/bg_npc_01.png|move=0|bg=1|reset=1|show=0>
<Button|x=546|y=0|nimg=public/1900000510.png|pimg=public/1900000511.png|link=@exit>
<Layout|x=545|y=0|width=80|height=80|link=@exit>
<Text|x=25|y=20|color=255|size=12|text=押镖规则:>
<Text|x=25|y=40|color=255|size=12|text=1、接受镖车后请在5分钟内将镖车安全护送到指定坐标>
<Text|x=25|y=60|color=255|size=12|text=2、经验介绍:普通镖车1000W经验 高级镖车2000W经验 超级镖车3000W经验>
<Text|x=25|y=80|color=255|size=12|text=3、系统会随机分配镖车的等级,镖车等级越高经验越高>
<Text|x=25|y=100|color=255|size=12|text=4、押镖人物死亡、小退、护送超时、镖车被毁等一律将视为押镖失败>
<Text|x=25|y=120|color=255|size=12|text=5、每个玩家均可<免费押镖[5]次当前押镖次数:<$HUMAN(押镖次数)>次>
<Text|x=25|y=140|size=12|color=255|text=┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄>
<Text|x=39.0|y=160.0|color=251|size=16|text=护送镖车|link=@护送镖车>
<Text|x=364.0|y=160.0|color=251|size=16|text=关闭窗口|link=@exit>
```
**2. 接取押镖任务脚本**
```
[@护送镖车]
#IF
CHECKVAR HUMAN 押镖次数 < 5
#ELSEACT
MESSAGEBOX 你的押镖次数已经大于5次了
BREAK
#OR
CHECKSLAVENAME 普通镖车
CHECKSLAVENAME 高级镖车
CHECKSLAVENAME 超级镖车
#ACT
MESSAGEBOX 你当前已经有镖车了
BREAK
#IF
RANDOM 5
#ACT
MOV S$镖车名称 超级镖车
RECALLMOB <$STR(S$镖车名称)> 0 200 0
DartTime 300 1
Dartmap 349 325 0 ; 设置镖车自动寻路的目标坐标
CALCVAR HUMAN 押镖次数 + 1
SAVEVAR HUMAN 押镖次数
SendCenterMsg 251 249 [<$USERNAME>]成功接到了一个【<$STR(S$镖车名称)>】的任务,劫镖可使对方无法押镖! 1 30
GOTO @MAIN
BREAK
#IF
RANDOM 2
#ACT
MOV S$镖车名称 高级镖车
RECALLMOB <$STR(S$镖车名称)> 0 200 0
DartTime 300 1
Dartmap 349 325 0
CALCVAR HUMAN 押镖次数 + 1
SAVEVAR HUMAN 押镖次数
SendCenterMsg 251 249 [<$USERNAME>]成功接到了一个【<$STR(S$镖车名称)>】的任务,劫镖可使对方无法押镖! 1 30
GOTO @MAIN
BREAK
#ELSEACT
MOV S$镖车名称 普通镖车
RECALLMOB <$STR(S$镖车名称)> 0 200 0
DartTime 300 1
Dartmap 349 325 0
CALCVAR HUMAN 押镖次数 + 1
SAVEVAR HUMAN 押镖次数
SendCenterMsg 251 249 [<$USERNAME>]成功接到了一个【<$STR(S$镖车名称)>】的任务,劫镖可使对方无法押镖! 1 30
GOTO @MAIN
BREAK
```
**3. 交付任务脚本 (在目标NPC处)**
```
[@endtask]
#OR
CheckSlaveInRange 超级镖车 5
CheckSlaveInRange 高级镖车 5
CheckSlaveInRange 普通镖车 5
#ACT
goto @交付处理
#ELSESAY
\ \ \
镖车距离我太远了,叫我如何核查货物呢?\
<关闭/@exit>
[@交付处理]
#IF
CheckSlaveInRange 超级镖车 5
#ACT
sendmsg 6 恭喜您,镖车任务成功完成!
CHANGEEXP + 30000000 1
KILLCALLMOB 超级镖车 1 1
GuildNoticeMsg 255 252 恭喜玩家%s成功将【超级镖车】押到.完成任务获得【3000万经验】奖励!
close
BREAK
#IF
CheckSlaveInRange 高级镖车 5
#ACT
sendmsg 6 恭喜您,镖车任务成功完成!
CHANGEEXP + 20000000 1
KILLCALLMOB 高级镖车 1 1
GuildNoticeMsg 255 252 恭喜玩家%s成功将【高级镖车】押到.完成任务获得【2000万经验】奖励!
close
BREAK
#IF
CheckSlaveInRange 普通镖车 5
#ACT
sendmsg 6 恭喜您,镖车任务成功完成!
CHANGEEXP + 10000000 1
KILLCALLMOB 普通镖车 1 1
GuildNoticeMsg 255 252 恭喜玩家%s成功将【普通镖车】押到.完成任务获得【1000万经验】奖励!
close
BREAK
```
**重要前置设置:**
1. 在 `cfg_monster.xls` 怪物数据库中,需要创建对应的镖车怪物,设置 `RACE=128`,`RaceImg=19`,`Appr` 分别对应 290 (普通镖车)、291 (高级镖车)、293 (超级镖车)。
2. 玩家变量 `押镖次数` 需要在首次使用前进行声明和初始化。
← 返回问答库