提供一些在传奇Gom引擎中常用的任务脚本示例

来源: 作者: 点击:
以下是传奇Gom引擎中几种常用的任务脚本示例,涵盖了杀怪任务、收集物品任务、对话选择任务等类型。

### 1. 杀怪任务脚本
```plaintext
[@main]
#IF
#ACT
SendMsg 0 你接到一个杀怪任务,需要杀死20只半兽勇士。
Goto @killing

[@killing]
#IF
CheckKillMonCount 半兽勇士 20
#ACT
SendMsg 0 恭喜你,已成功杀死20只半兽勇士,任务完成!
GiveExp 8000
GiveMoney 5000
GiveItem 1001 1 ; 给予物品ID为1001的物品
Goto @end
#ELSE
SendMsg 0 你还需杀死 [20 - <$KILLMONCOUNT(半兽勇士)>] 只半兽勇士。
Goto @killing

[@end]
SendMsg 0 任务结束,感谢参与!
```

### 2. 收集物品任务脚本
```plaintext
[@main]
#IF
#ACT
SendMsg 0 现在你要收集15个太阳水。
Goto @collecting

[@collecting]
#IF
CheckItemCount 1002 15
#ACT
SendMsg 0 你已收集够15个太阳水,任务完成!
TakeItem 1002 15 ; 扣除收集的物品
GiveExp 7000
GiveMoney 4500
GiveItem 1003 1
Goto @end
#ELSE
SendMsg 0 你还需收集 [15 - <$ITEMCOUNT(1002)>] 个太阳水。
Goto @collecting

[@end]
SendMsg 0 任务完成,奖励已发放!
```

### 3. 对话选择任务脚本
```plaintext
[@main]
#IF
#ACT
AskText 你面前有两条路,选择上山(A)还是下河(B)? <$STR(S1)>
If $STR(S1) == A
Goto @mountainPath
ElseIf $STR(S1) == B
Goto @riverPath
Else
SendMsg 0 输入无效,请重新输入。
Goto @main

[@mountainPath]
#IF
#ACT
SendMsg 0 你选择了上山的路,找到了一颗珍贵的宝石。
GiveItem 1004 1
Goto @end

[@riverPath]
#IF
#ACT
SendMsg 0 你选择了下河的路,钓到了一条神奇的鱼,获得大量经验。
GiveExp 9000
Goto @end

[@end]
SendMsg 0 本次选择任务结束。
```

### 4. 等级限制任务脚本
```plaintext
[@main]
#IF
CheckLevelGreaterEqual 30 ; 检查玩家等级是否大于等于30级
#ACT
SendMsg 0 你达到了30级,可以接受这个寻宝任务。去神秘洞穴寻找宝藏。
Goto @searching
#ELSE
SendMsg 0 你的等级不够,需要达到30级才能接受此任务。
Goto @main

[@searching]
#IF
CheckQuestVar 1 ; 假设找到宝藏后会设置任务变量1为完成状态
#ACT
SendMsg 0 你成功找到了宝藏,任务完成!
GiveExp 10000
GiveMoney 6000
GiveItem 1005 1
Goto @end
#ELSE
SendMsg 0 宝藏还未找到,请继续在神秘洞穴寻找。
Goto @searching

[@end]
SendMsg 0 任务圆满结束,祝你游戏愉快!
```

### 5. 任务链脚本
```plaintext
; 第一个任务:传递信件
[@task1_main]
#IF
#ACT
SendMsg 0 你接到第一个任务,将信件送到村长手中。
Goto @task1_delivery

[@task1_delivery]
#IF
CheckQuestVar 1 ; 假设完成送信后设置任务变量1
#ACT
SendMsg 0 你成功送完信,第一个任务完成!
GiveExp 2500
SetQuestVar 1 1
Goto @task2_main
#ELSE
SendMsg 0 信件还未送达,请继续。
Goto @task1_delivery

; 第二个任务:消灭强盗
[@task2_main]
#IF
CheckQuestVar 1 1
#ACT
SendMsg 0 现在开始第二个任务,消灭18个强盗。
Goto @task2_killing
#ELSE
SendMsg 0 你需要先完成第一个任务。
Goto @task1_main

[@task2_killing]
#IF
CheckKillMonCount 强盗 18
#ACT
SendMsg 0 你已消灭18个强盗,第二个任务完成!
GiveExp 3500
SetQuestVar 2 1
Goto @task3_main
#ELSE
SendMsg 0 你还需消灭 [18 - <$KILLMONCOUNT(强盗)>] 个强盗。
Goto @task2_killing

; 第三个任务:寻找神器
[@task3_main]
#IF
CheckQuestVar 2 1
#ACT
SendMsg 0 最后一个任务,找到神秘神器。
Goto @task3_searching
#ELSE
SendMsg 0 你需要先完成第二个任务。
Goto @task2_main

[@task3_searching]
#IF
CheckQuestVar 3 ; 假设找到神器后设置任务变量3
#ACT
SendMsg 0 你找到了神器,整个任务链完成!
GiveExp 6000
GiveMoney 7000
GiveItem 1006 1
Goto @end
#ELSE
SendMsg 0 神器还未找到,请继续寻找。
Goto @task3_searching

[@end]
SendMsg 0 恭喜你完成了整个任务链!
```

### 6. 限时任务脚本
```plaintext
[@main]
#IF
#ACT
SetQuestTime 1800 ; 设置任务时间为30分钟
SendMsg 0 你有30分钟的时间完成这个护送商人的任务。
Goto @escorting

[@escorting]
#IF
CheckQuestVar 1 ; 假设护送成功后设置任务变量1
#ACT
SendMsg 0 你在规定时间内成功护送商人,任务完成!
GiveExp 8500
GiveMoney 5500
GiveItem 1007 1
Goto @end
#ELSE
CheckQuestTimeOver
#IF
SendMsg 0 很遗憾,时间已到,任务失败。
Goto @fail
#ENDIF
SendMsg 0 距离任务结束还有 <$QUESTTIME> 秒,请继续护送商人。
Goto @escorting

[@end]
SendMsg 0 任务成功完成。

[@fail]
SendMsg 0 任务失败,请下次再试。
```

这些脚本示例可以根据实际游戏需求进行修改和扩展,帮助你在传奇Gom引擎中创建丰富多样的任务系统。