一、NPC任务交互

首先,在NPC的对话选项中添加两个选项:“领取杀怪100任务”和“任务完成领取奖励”。

当选择“领取杀怪100任务”时,检查自定义变量“[100]”是否已经存在,若不存在则创建并设置为1,同时提示玩家任务已领取。

当选择“任务完成领取奖励”时,检查玩家的声望值是否大于99,如果是,则将自定义变量“[100]”重置为0,增加5点声望,并提示玩家已获得奖励。

二、杀怪触发

在Mir200\Envir目录下的MapQuest.txt文件中,添加如下内容:3 [035] 0 * Q016,其中3表示杀怪所在的地图号,035表示要杀的怪物名称,Q016表示触发的文本名称。

在Mir200\Envir\MapQuest_Def目录下创建一个名称与触发脚本名称相同的文本文件,如Q016.txt,并添加如下内容:

当玩家杀死怪物时,检查自定义变量“[100]”是否大于99,如果是,则将其重置为0,提示玩家任务完成,并将玩家传送回NPC所在的地图。

如果自定义变量“[100]”小于或等于99,则计数加1,并保存到变量数据文件中。

三、登录脚本

在Mir200\Envir\QuestDiary\数据文件目录下创建一个名称为“变量数据.txt”的文本文件。

在登录脚本中,加载自定义变量“[100]”的值,如果该变量不存在,则创建并设置为0。

最后,需要注意以下几点:

在GOM引擎中,需要先设置地图参数“ONKILLMON”,以便能够触发杀怪事件。

在Market\_def\Qfunction-0.txt文件中,可以添加公共事件脚本,例如当玩家杀死特定怪物时,发送系统公告等。

在Mir200\Envir\MapQuest\_Def目录下,需要声明公共变量“杀羊数量”,并在相应的目录下创建一个名称为“羊数量.txt”的文件,以保存计数变量。

在Mir200\Envir\MapQuest.txt文件中,添加触发脚本时,单元值必须与任务NPC脚本中设置的单元值相对应,且不能与其他任务重复。

完整的代码示例如下:

NPC对话选项

[@main]

#if

#say

<领取杀怪100任务/@领取> <任务完成领取奖励/@奖励>

[@领取]

#if

Check [100] 0

#act

set [100] 1

SENDMSG 6 提示:任务领取完毕,请尽快完成.

#elseact

SENDMSG 6 提示:草,领取过的还来捣乱,劳资干死你.

break

[@奖励]

#if

CHECKVAR HUMAN SGCF > 99

#act

set [100] 0

CREDITPOINT + 5

SENDMSG 6 提示:任务完成奖励声望+5.

CALCVAR HUMAN SGCF = 0

SAVEVAR HUMAN YUAN ..\\QuestDiary\\数据文件\\变量数据.txt

#elseact

SENDMSG 6 提示:草,任务未完成,还想要奖励,滚.

break

Copy

杀怪触发

3 [035] 0 * Q016

Copy

Q016.txt

[@main]

#IF

CHECKVAR HUMAN SGCF > 99

#ACT

mapmove 3 333 333

SENDMSG 6 提示:任务完成.

#elseact

CALCVAR HUMAN SGCF + 1

SAVEVAR HUMAN SGCF ..\\QuestDiary\\数据文件\\变量数据.txt

messagebox 您的当前杀怪数量为:<$HUMAN(SGCF)>

break

Copy

登录脚本

[@login]

#if

CHECKLEVELEX > 0

#act

VAR Integer HUMAN SGCF

LOADVAR HUMAN SGCF ..\\QuestDiary\\数据文件\\变量数据.txt

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。