依星源码资源网,依星资源网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

【好消息,好消息,好消息】VIP会员可以发表文章赚积分啦 !
查看: 8|回复: 0

[游戏架设教程] [传奇技术]一个BOSS查询NPC脚本

[复制链接] 主动推送

1万

主题

1万

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
14013
发表于 前天 01:39 | 显示全部楼层 |阅读模式
[传奇技术]一个BOSS查询NPC脚本
首先理解一下几个命令:
[@main]
这个命令是NPC的界面命令,点击NPC就会执行该命令下面的语句;
#if
判断命令:基础命令,作用为判断条件:比如
#IF     《====判断
CHECKGOLD 100   《====条件
#ACT    《=====执行
take 金币 100   《=====收取金币100
break   《=====结束语句
这里可以理解为判断角色背包金币是否有100或以上,如果有就执行你设置的需要NPC做的事情。
#say
NPC文字信息命令,所有在#say一下的内容都会直接显示给玩家,如比:
#say
你现在在玩传奇游戏,而且你很开心。
上面这条信息会直接显示给玩家。
#say命令可以直接写在[@main]下面
比如
[@main]
#say
你现在在玩传奇,而且你很开心。
也可以直接省略
[@main]
你现在在玩传奇,而且你很开心。
但要注意,如果是综合型语句,比如有#if 的出现,那就带有判断条件,比如:
[@main]
#IF    《=====判断
CHECKGOLD 100    《======背包是否有100以上的金币?
#say   《========NPC显示信息
你有100金币在背包里面   《=======文字信息
#elsesay     《=======如果判断条件为false NPC显示信息
你是个穷鬼,连100金币都没有!   《========文字信息

以上是基础条件,接下来讲另外一个
[@main]
#call [\功能\BOSS查询.txt] @BOSS查询    《=====转到语句
#call 这个命令就和字面意思一样,呼叫,就是呼出另外一个脚本,我也不理解为什么不直接写在NPC脚本里面,大概是习惯问题,还有个用途就是有些NPC在不同的地方出现,如果每一个NPC都去写一遍就很麻烦,所以用呼叫命令#call来达到多个NPC同用一个脚本的作用。

然后BOSS查询功能第一步,在你的土城NPC里面添加一个NPC,添加NPC会吧?不会就百度一下。
然后在NPC里面写
[@MAIN]
#CALL [\**\**.TXT] @**
星号代表了你需要呼叫的NPC脚本路径和名称,还有@**是命令段。比如:
[@MAIN]
#CALL [\功能\BOSS查询.TXT] @BOSS查询
这样写,然后再到你的Envir\QuestDiary下建立一个目录为:功能,然后在建立一个新文本文件名字叫BOSS查询,另存为ANSI格式。
打开文本文件,写入以下内容:
[@BOSS查询]    《======命令段
{      《======命令段必须符号,不然会找不到,然后报错。
     《=====中间要写BOSS查询功能的内容了
}       《======命令段必须符号,不然会找不到,然后报错。

中间内容怎么写呢?
首先介绍一个命令:
MOV M10 0
这个是变量操作命令MOV,意思就是定义变量M10的值为0
就相当于你告诉计算机,M10这个变量就是0
然后根据你需要用到的变量来多增加几个,怎么判断你要用到几个变量?比如你有5个BOSS需要查询,分别是沃玛教主、祖玛教主、黄泉教主、牛魔王、虹魔教主;那我们就定义5个变量,如下:
MOV M10 0
MOV M11 0
MOV M12 0
MOV M13 0
MOV M14 0
这样就做好5个变量了,为什么一定要用M10?不,不一定非要用M10,具体有些什么变量,你可以查询百度“传奇变量”,看看你就名表了。顺便一提,M变量是数字型,只能保存数字值,也可以加减乘除,会直接得出数字结果,S变量这种是字符串型,不能直接加减乘除得出结果,记住就行。

然后再介绍下一个命令:
GOTO @BOSS查询1  《=======这个是跳转,意思就是直接跳转到@BOSS查询1这个标签处

接下来写下
[@BOSS查询1]
然后
#IF
CheckMapSameMonCount D024 沃玛教主 > <$STR(M10)>
上面判断,然后下面命令CheckMapSameMonCount
这个命令的意思就是检查某个地图的某个怪物数量,后面有参数,这样写的
CheckMapSameMonCount 地图号 怪物名称 (>或<或=) 数量
我们最后在数量那个参数哪里用了<$STR(M10)>这个变量标签,这个意思就是把M10变量的值以字串符的形式告诉计算机。
M10这个变量我们定义的是0,那也就是说数量为0
CheckMapSameMonCount D024 沃玛教主 > <$STR(M10)>
那这个命令的意思就是说,检查地图D024里面名字为沃玛教主的怪物数量是否大于0
这样理解就对了。然后如果判断条件为True,那就执行下面的语句
#act
INC M10 1
INC这个命令是让指定变量+X的意思,比如上面这个INC M10 1的意思就是让M10变量+1
然后如法炮制其他几个BOSS
#if
CheckMapSameMonCount D024 祖玛教主 > <$STR(M11)>
#act
INC M11 1
#if
CheckMapSameMonCount D024 黄泉教主 > <$STR(M12)>
INC M12 1
#if
CheckMapSameMonCount D024 黄泉教主 > <$STR(M13)>
INC M13 1

#if
CheckMapSameMonCount D024 黄泉教主 > <$STR(M14)>
INC M14 1

这样,检测BOSS的第一步就完成了,玩家只要点击NPC,就可以计算指定地图的BOSS数量是否大于0,如果大于零的话,就用变量来+1
然后第二步
#if
CheckMapSameMonCount D024 沃玛教主 < <$STR(M10)>
DEC M10 1

这个意思是当该地图的指定怪物小于M10这个变量的时候,那M10变量就-1
DEC就是操作变量减X的命令
然后写
#OR
这个命令是多条件判断,只要有一条符合,就执行语句。这个和#IF的区别在于#OR是多个条件中有一条就可以执行,#IF是多个条件必须同时满足才执行。
NOT CheckMapSameMonCount D024 沃玛教主 = <$STR(M10)>
这个的意思就是如果改地图内指定名字的怪物数量不等于变量M10的话,NOT 就是否定的意思。
然后就执行
GOTO @BOSS查询1
break    《======结束语句,一定要加
相当于把上面的+和-再来一遍,目的就是让检测到的指定怪物数量跟M10变量值一样。
然后写NPC反馈给玩家的信息

#say
BOSS 沃玛教主 目前还存活 <$STR(M10)> 只
BOSS 祖玛教主 目前还存活 <$STR(M11)> 只
BOSS 黄泉教主 目前还存活 <$STR(M12)> 只
BOSS 牛魔王 目前还存活 <$STR(M13)> 只
BOSS 虹魔教主 目前还存活 <$STR(M14)> 只

这样一个简单的BOSS查询脚本就完成了,当然,我讲的东西只是让大家知道写这个脚本的大概思路,大神路过就当看个笑话,勿喷。知道这种思路以后,大家可以结合自己的实际情况,然后改改脚本,就可以实现更丰富的游戏效果了!那这个脚本就算讲解完毕,以下是脚本完整写法。

盟重NPC内容:
[@main]
#call [\功能\BOSS查询.txt] @BOSS查询

呼叫NPC内容:
[@BOSS查询]
{
#IF
#ACT
MOV M10 0
MOV M11 0
MOV M12 0
MOV M13 0MOV M14 0

#if
CheckMapSameMonCount D024 沃玛教主 > <$STR(M10)>
#act
INC M10 1

#if
CheckMapSameMonCount D024 祖玛教主 > <$STR(M11)>
#act
INC M11 1

#if
CheckMapSameMonCount D024 黄泉教主 > <$STR(M11)>
#act
INC M12 1

#if
CheckMapSameMonCount D024 牛魔王 > <$STR(M12)>
INC M13 1

#if
CheckMapSameMonCount D024 虹魔教主 > <$STR(M13)>
INC M14 1


#if
CheckMapSameMonCount D024 沃玛教主 < <$STR(M10)>
#act
DEC M10 1

#if
CheckMapSameMonCount D024 祖玛教主 < <$STR(M11)>
#act
DEC M11 1

#if
CheckMapSameMonCount D024 黄泉教主 < <$STR(M12)>
#act
DEC M12 1

#if
CheckMapSameMonCount D024 牛魔王 < <$STR(M13)>
DEC M13 1

#if
CheckMapSameMonCount D024 虹魔教主 < <$STR(M14)>
DEC M14 1

#OR
NOT CheckMapSameMonCount D024 虹魔教主 = <$STR(M14)>
NOT CheckMapSameMonCount D024 牛魔王 = <$STR(M13)>
NOT CheckMapSameMonCount D024 黄泉教主 = <$STR(M12)>
NOT CheckMapSameMonCount D024 祖玛教主 = <$STR(M11)>
NOT CheckMapSameMonCount D024 沃玛教主 = <$STR(M10)>
#act
goto @BOSS查询1
break

#if
#say
BOSS 沃玛教主 目前还存活 <$STR(M10)> 只
BOSS 祖玛教主 目前还存活 <$STR(M11)> 只
BOSS 黄泉教主 目前还存活 <$STR(M12)> 只
BOSS 牛魔王 目前还存活 <$STR(M13)> 只
BOSS 虹魔教主 目前还存活 <$STR(M14)> 只
break
}

相关帖子

扫码关注微信公众号,及时获取最新资源信息!下载附件优惠VIP会员6折;永久VIP4折
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

免责声明:
1、本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与商业和非法行为,请在24小时之内自行删除!
2、本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,请勿任何商业目的与商业用途。
3、若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
4、论坛的所有内容都不保证其准确性,完整性,有效性,由于源码具有复制性,一经售出,概不退换。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
5、用户使用本网站必须遵守适用的法律法规,对于用户违法使用本站非法运营而引起的一切责任,由用户自行承担
6、本站所有资源来自互联网转载,版权归原著所有,用户访问和使用本站的条件是必须接受本站“免责声明”,如果不遵守,请勿访问或使用本网站
7、本站使用者因为违反本声明的规定而触犯中华人民共和国法律的,一切后果自己负责,本站不承担任何责任。
8、凡以任何方式登陆本网站或直接、间接使用本网站资料者,视为自愿接受本网站声明的约束。
9、本站以《2013 中华人民共和国计算机软件保护条例》第二章 “软件著作权” 第十七条为原则:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。若有学员需要商用本站资源,请务必联系版权方购买正版授权!
10、本网站如无意中侵犯了某个企业或个人的知识产权,请来信【站长信箱312337667@qq.com】告之,本站将立即删除。
郑重声明:
本站所有资源仅供用户本地电脑学习源代码的内含设计思想和原理,禁止任何其他用途!
本站所有资源、教程来自互联网转载,仅供学习交流,不得商业运营资源,不确保资源完整性,图片和资源仅供参考,不提供任何技术服务。
本站资源仅供本地编辑研究学习参考,禁止未经资源商正版授权参与任何商业行为,违法行为!如需商业请购买各资源商正版授权
本站仅收集资源,提供用户自学研究使用,本站不存在私自接受协助用户架设游戏或资源,非法运营资源行为。
 
在线客服
点击这里给我发消息 点击这里给我发消息 点击这里给我发消息
售前咨询热线
312337667

微信扫一扫,私享最新原创实用干货

QQ|免责声明|小黑屋|依星资源网 ( 鲁ICP备2021043233号-3 )|网站地图

GMT+8, 2025-3-10 06:31

Powered by Net188.com X3.4

邮箱:312337667@qq.com 客服QQ:312337667(工作时间:9:00~21:00)

快速回复 返回顶部 返回列表