以下为你提供几种不同类型的传奇Gom引擎中 `QuestDiary` 文件夹下的任务脚本实例:
### 1. 杀怪任务脚本
这个脚本实现了一个简单的杀怪任务,玩家需要杀死指定数量的怪物来完成任务并获得奖励。
```plaintext
[@main]
#IF
#ACT
SendMsg 0 你接到了一个杀怪任务,需要杀死15只骷髅战士。
Goto @killing
[@killing]
#IF
CheckKillMonCount 骷髅战士 15
#ACT
SendMsg 0 恭喜你,已经杀死了15只骷髅战士,任务完成!
GiveExp 5000
GiveMoney 3000
GiveItem 1001 1 ; 给予物品ID为1001的物品
Goto @end
#ELSE
SendMsg 0 你还需要杀死 [15 - <$KILLMONCOUNT(骷髅战士)>] 只骷髅战士。
Goto @killing
[@end]
SendMsg 0 任务已结束,感谢你的参与!
```
### 2. 收集物品任务脚本
玩家需要收集一定数量的特定物品来完成任务,完成后可获得相应奖励。
```plaintext
[@main]
#IF
#ACT
SendMsg 0 现在你要收集10个魔法药水。
Goto @collecting
[@collecting]
#IF
CheckItemCount 1002 10
#ACT
SendMsg 0 你已经收集够10个魔法药水,任务完成!
TakeItem 1002 10 ; 扣除收集的物品
GiveExp 4000
GiveMoney 2500
GiveItem 1003 1
Goto @end
#ELSE
SendMsg 0 你还需要收集 [10 - <$ITEMCOUNT(1002)>] 个魔法药水。
Goto @collecting
[@end]
SendMsg 0 任务完成,奖励已发放!
```
### 3. 对话选择任务脚本
玩家通过与NPC对话进行选择,不同的选择会导向不同的结果和奖励。
```plaintext
[@main]
#IF
#ACT
AskText 你面前有两条路,选择左边(A)还是右边(B)? <$STR(S1)>
If $STR(S1) == A
Goto @leftPath
ElseIf $STR(S1) == B
Goto @rightPath
Else
SendMsg 0 输入无效,请重新输入。
Goto @main
[@leftPath]
#IF
#ACT
SendMsg 0 你选择了左边的路,遇到了一个宝箱,获得了丰厚的奖励!
GiveExp 6000
GiveMoney 4000
GiveItem 1004 1
Goto @end
[@rightPath]
#IF
#ACT
SendMsg 0 你选择了右边的路,遇到了怪物的袭击,不过你成功击退了它们,获得了一些经验。
GiveExp 3000
Goto @end
[@end]
SendMsg 0 本次选择任务结束。
```
### 4. 等级限制任务脚本
玩家需要达到一定等级才能接受任务,完成任务后获得奖励。
```plaintext
[@main]
#IF
CheckLevelGreaterEqual 25 ; 检查玩家等级是否大于等于25级
#ACT
SendMsg 0 你达到了25级,可以接受这个护送任务。护送商人安全到达目的地。
Goto @escorting
#ELSE
SendMsg 0 你的等级不够,需要达到25级才能接受此任务。
Goto @main
[@escorting]
#IF
CheckQuestVar 1 ; 假设完成护送后会设置任务变量1为完成状态
#ACT
SendMsg 0 你成功护送商人,任务完成!
GiveExp 7000
GiveMoney 5000
GiveItem 1005 1
Goto @end
#ELSE
SendMsg 0 护送任务还未完成,请继续努力。
Goto @escorting
[@end]
SendMsg 0 任务圆满结束,祝你游戏愉快!
```
### 5. 任务链脚本
一系列相关的任务组成任务链,玩家需要依次完成前一个任务才能开启下一个任务。
```plaintext
; 第一个任务:收集草药
[@task1_main]
#IF
#ACT
SendMsg 0 你接到第一个任务,收集8株草药。
Goto @task1_collecting
[@task1_collecting]
#IF
CheckItemCount 1006 8
#ACT
SendMsg 0 你已收集够8株草药,第一个任务完成!
TakeItem 1006 8
GiveExp 2000
SetQuestVar 1 1 ; 设置任务变量1为完成状态
Goto @task2_main
#ELSE
SendMsg 0 你还需要收集 [8 - <$ITEMCOUNT(1006)>] 株草药。
Goto @task1_collecting
; 第二个任务:杀死怪物
[@task2_main]
#IF
CheckQuestVar 1 1 ; 检查第一个任务是否完成
#ACT
SendMsg 0 现在开始第二个任务,杀死12只野狼。
Goto @task2_killing
#ELSE
SendMsg 0 你需要先完成第一个任务才能开始这个任务。
Goto @task1_main
[@task2_killing]
#IF
CheckKillMonCount 野狼 12
#ACT
SendMsg 0 你已杀死12只野狼,第二个任务完成!
GiveExp 3000
SetQuestVar 2 1 ; 设置任务变量2为完成状态
Goto @task3_main
#ELSE
SendMsg 0 你还需要杀死 [12 - <$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 1 ; 假设找到宝藏后会设置任务变量3为完成状态
#ACT
SendMsg 0 你找到了宝藏,整个任务链完成!
GiveExp 5000
GiveMoney 6000
GiveItem 1007 1
Goto @end
#ELSE
SendMsg 0 宝藏还未找到,请继续寻找。
Goto @task3_searching
[@end]
SendMsg 0 恭喜你完成了整个任务链!
```
这些脚本实例涵盖了常见的任务类型,你可以根据游戏的具体需求进行修改和扩展。
分享一些传奇Gom引擎中QuestDiary文件夹下的任务脚本实例
来源:
作者:
点击:

