以下是一些简单的 HERO 引擎单机传奇服务端的任务脚本示例,你可以根据自己的需求进行修改和完善:
1. **新手引导任务脚本**:
```
(@main)
#IF
ISNEWHUMAN
#ACT
SENDMSG 7 欢迎来到传奇世界,新手引导任务开启!
MOVRANDOM 330 330 340 340
; 将玩家随机传送到某个新手任务初始地点
GIVE 新手木剑 1
GIVE 新手布衣 1
SET [新手任务_状态] 1
; 设置任务状态变量,用于后续判断任务进度
#SAY
你现在的任务是去村外击杀 10 只稻草人,完成后回来找我领取奖励。
```
2. **收集物品任务脚本**:
```
(@main)
#IF
CHECKVAR [收集任务_状态] 0
#ACT
SET [收集任务_状态] 1
#SAY
我需要你去收集 10 个鹿肉和 5 个鸡肉,把它们交给我,我会给你丰厚的奖励。
#ELSEACT
#IF
CHECKITEM 鹿肉 10
CHECKITEM 鸡肉 5
#ACT
TAKEITEM 鹿肉 10
TAKEITEM 鸡肉 5
GIVE 金币 1000
SENDMSG 7 恭喜你完成了收集任务,获得 1000 金币奖励。
SET [收集任务_状态] 0
#ELSEACT
#SAY
你还没有收集足够的物品,继续努力吧。
```
3. **押镖任务脚本**:
```
(@main)
#IF
; 判断玩家是否满足接取押镖任务的条件,比如等级、押金等
CHECKLEVELEX > 30
CHECKGAMEGOLD > 10000
#ACT
TAKEGAMEGOLD 10000
; 收取玩家押金
SET [押镖任务_状态] 1
SET [押镖任务_开始时间] <$TIME>
MOVRANDOM 350 350 360 360
; 将玩家传送到押镖任务的起点
#SAY
你已接取押镖任务,必须在 15 分钟内将镖车送到目的地(坐标 X:XXX,Y:XXX),途中若死亡或下线,任务将失败,仅返还 90%押金。
#ELSEACT
#SAY
你不满足接取押镖任务的条件。
```
在任务进行过程中,可以在定时器脚本中不断判断任务时间是否超时:
```
(@ontimer1)
#IF
CHECKVAR [押镖任务_状态] 1
#ACT
CALCVAR $T = <$TIME> - [押镖任务_开始时间]
#IF
$T > 900
; 900 秒即 15 分钟
SET [押镖任务_状态] 0
GIVEGAMEGOLD 9000
SENDMSG 7 押镖任务超时,你仅获得 90%的押金返还。
#ELSEACT
; 这里可以添加一些提示信息,比如剩余时间等
SENDMSG 7 押镖任务剩余时间:<$STR(900 - $T)> 秒。
```
4. **击杀指定怪物任务脚本**:
```
(@main)
#IF
CHECKVAR [击杀任务_状态] 0
#ACT
SET [击杀任务_状态] 1
SET [击杀任务_怪物数量] 0
#SAY
去击杀 20 只白野猪,完成后回来找我领取奖励。
#ELSEACT
#IF
CHECKVAR [击杀任务_怪物数量] < 20
#ACT
; 判断玩家是否在击杀白野猪的地图中
CHECKMAPNAME 白野猪地图
#IF
RANDOM 3
; 有一定概率增加击杀数量
#ACT
INC [击杀任务_怪物数量] 1
#SAY
你已击杀白野猪 <$STR([击杀任务_怪物数量])> 只,还需击杀 <$STR(20 - [击杀任务_怪物数量])> 只。
#ELSEACT
#SAY
你不在白野猪地图中,无法完成击杀任务。
#ELSEACT
#IF
CHECKVAR [击杀任务_怪物数量] >= 20
#ACT
GIVE 经验值 10000
GIVE 高级装备 1
SENDMSG 7 恭喜你完成了击杀白野猪的任务,获得 10000 经验值和一件高级装备。
SET [击杀任务_状态] 0
```
5. **探索地图任务脚本**:
```
(@main)
#IF
CHECKVAR [探索任务_状态] 0
#ACT
SET [探索任务_状态] 1
#SAY
去探索神秘洞穴(坐标 X:XXX,Y:XXX),在洞穴中的特定位置(坐标 X:XXX,Y:XXX)停留 5 秒以上,即可完成任务。
#ELSEACT
#IF
CHECKPOS X XXX Y XXX
#ACT
CALCVAR $T = <$TIME> - [探索任务_进入时间]
#IF
$T > 5
GIVE 探索奖励 1
SENDMSG 7 你成功完成了探索任务,获得探索奖励。
SET [探索任务_状态] 0
#ELSEACT
#SAY
你还未在特定位置停留足够的时间。
```

