魔域脚本用于控制NPC交互、任务流程、物品效果及事件触发,采用类VBScript语法,文件后缀为.vbs或.xp,存放于服务端Scripts目录。脚本需通过配置文件关联到具体NPC、物品或定时器方可执行。
基础结构以Sub Main()开头,End Sub结尾。所有逻辑必须写在Main子程序内。例如简单对话脚本:
Sub Main()
Say "欢迎来到新手村"
End Sub
Say命令向当前玩家发送文本,仅限单次交互使用。
任务脚本需判断状态并处理物品与经验。示例接取与完成流程:
Sub Main()
Select Case GetTaskState(201)
Case 0
If AddTask(201) = True Then
Say "任务已接取:收集5个蜘蛛毒牙"
End If
Case 1
If GetItemCount(3001) >= 5 Then
RemoveItem 3001,5
GiveExp 2000
CompleteTask 201
Say "任务完成,获得2000经验"
Else
Say "毒牙数量不足"
End If
End Select
End Sub
GetTaskState返回任务进度(0未接,1进行中),AddTask注册任务,CompleteTask标记完成。物品ID与任务ID需与数据库一致。
物品使用脚本在Items.ini中通过Script字段绑定。如回血药水:
Sub Main()
HealHP 200
Say "恢复200点生命"
End Sub
HealHP为内置函数,直接增加角色当前生命值。传送卷轴则调用ChangeMap 1000,150,150,参数为地图ID及坐标。
怪物击杀检测使用CheckMonsterKilled函数。例如杀怪任务:
If CheckMonsterKilled(4001,10) = True Then
' 已击杀10只狼
End If
该函数读取服务端击杀记录,无需手动计数。
邮件通知采用SendMail命令:
SendMail "系统", "BOSS已刷新", "暗黑龙王出现在雷炎地狱"
三个参数分别为发件人、标题、正文,接收者为当前玩家。
脚本支持条件判断、循环与变量。但不支持跨脚本调用或全局变量。临时数据可存入角色属性:
SetPlayerData "quest_flag", 1
后续脚本通过GetPlayerData("quest_flag")读取。
调试时开启日志,在Config.ini设置LogScriptError=1,错误输出至LogsScript.log。常见问题包括函数拼写错误、参数缺失、ID无效或编码非ANSI格式。
定时脚本通过Config.ini的[Timer]段加载:
[Timer]
Timer1=30000,check_boss.vbs
每30秒执行一次,用于监控BOSS刷新或活动开启。
所有脚本修改后需重启服务端或执行脚本重载指令(若版本支持)。客户端无需改动,效果由服务端推送。脚本功能受限于服务端编译版本,部分旧版不支持高级函数,需查阅对应版本的函数列表文档。
基础结构以Sub Main()开头,End Sub结尾。所有逻辑必须写在Main子程序内。例如简单对话脚本:
Sub Main()
Say "欢迎来到新手村"
End Sub
Say命令向当前玩家发送文本,仅限单次交互使用。
任务脚本需判断状态并处理物品与经验。示例接取与完成流程:
Sub Main()
Select Case GetTaskState(201)
Case 0
If AddTask(201) = True Then
Say "任务已接取:收集5个蜘蛛毒牙"
End If
Case 1
If GetItemCount(3001) >= 5 Then
RemoveItem 3001,5
GiveExp 2000
CompleteTask 201
Say "任务完成,获得2000经验"
Else
Say "毒牙数量不足"
End If
End Select
End Sub
GetTaskState返回任务进度(0未接,1进行中),AddTask注册任务,CompleteTask标记完成。物品ID与任务ID需与数据库一致。
物品使用脚本在Items.ini中通过Script字段绑定。如回血药水:
Sub Main()
HealHP 200
Say "恢复200点生命"
End Sub
HealHP为内置函数,直接增加角色当前生命值。传送卷轴则调用ChangeMap 1000,150,150,参数为地图ID及坐标。
怪物击杀检测使用CheckMonsterKilled函数。例如杀怪任务:
If CheckMonsterKilled(4001,10) = True Then
' 已击杀10只狼
End If
该函数读取服务端击杀记录,无需手动计数。
邮件通知采用SendMail命令:
SendMail "系统", "BOSS已刷新", "暗黑龙王出现在雷炎地狱"
三个参数分别为发件人、标题、正文,接收者为当前玩家。
脚本支持条件判断、循环与变量。但不支持跨脚本调用或全局变量。临时数据可存入角色属性:
SetPlayerData "quest_flag", 1
后续脚本通过GetPlayerData("quest_flag")读取。
调试时开启日志,在Config.ini设置LogScriptError=1,错误输出至LogsScript.log。常见问题包括函数拼写错误、参数缺失、ID无效或编码非ANSI格式。
定时脚本通过Config.ini的[Timer]段加载:
[Timer]
Timer1=30000,check_boss.vbs
每30秒执行一次,用于监控BOSS刷新或活动开启。
所有脚本修改后需重启服务端或执行脚本重载指令(若版本支持)。客户端无需改动,效果由服务端推送。脚本功能受限于服务端编译版本,部分旧版不支持高级函数,需查阅对应版本的函数列表文档。

