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

