查看: 64746|回复: 101

[GOM引擎开区教程] 传奇脚本冲级奖励(变量操作)视频教程

  [复制链接]

4783

主题

5079

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
18913

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

发表于 2019-5-8 16:39:36 | 显示全部楼层 |阅读模式
传奇脚本冲级奖励(变量操作)视频教程
资源演示

作为一个传奇爱好者,因为自己学习的过程中经常遇到一些问题,在网上找资料比较麻烦,萌生出做个视频的想法,希望大家一起交流进步!
以下如有错误请大家留言 我会及时更新,谢谢!!

好久没有录制视频,因为最近有些忙,大家有什么问题可以留言!!!




第四章 冲级奖励(变量操作)


1、首先冲级奖励是现在版本里必不可少的一个功能,它的严谨性又决定了你所玩的这个版本的成功与否!

   就目前我能想到的冲级脚本有两种方式:

   ① 直接操作
    #if
    checklevelex > 50
    #act
    give 回城卷 1
    messagebox 恭喜你领取50级奖励回城卷一个!
    #elseact
    messagebox 你的等级不够!

    以上是最基本的,缺点有很多!

   ②变量操作G变量

    相比第一种,有很多优势,会在一会提到  

2、①:需要添加一个NPC显示升级奖励的脚本内容:

       添加Npc之前讲过就不在多说了

   ②:本次用到的变量G变量:G0-G499 (全局变量,数字型) 可保存。(存放在Mir200/GlobalVal.ini文件里面)

       G(0-499)

      『属性说明』:该变量不属于人物属性范围,对于全服务器内该变量唯一并且全局NPC通用传递。该变量取值范围:同P变量

      『用法』:这个变量是唯一的一个不属于任何人物而属于服务器的变量,该变量通过任何人的运算均产生效果。而且不保存在任何人的属性中。(存放在Mir200/GlobalVal.ini文件里面)

       此次只用G变量,还有许多其他变量此次用不到就不在说了 ,详细的资料可以查阅引擎帮助文件!!!!!!!!


    ③:因为这次的脚本内容比较多,我已经提前写好了!

    ④:变量这里的东西比较杂,但是不难理解,我就说的详细点:

      EQUAL G0 0:这条指令的意思 其实就是检测 G0 这个变量是否为 0(标志位分为0和1)

      EQUAL是判定G0是0?

    ⑤:MOV G1 200
        MOV G2 100
        MOV G3 50
        MOV G4 20
        MOV G5 10
        MOV G6 1
        以上这几个变量G1-G6 是什么意思呢?

        是脚本里我设置了6个等级的升级奖励,这6个变量是6个等级奖励的名额限制!!

        如MOV G1 200:是指给变量G1写入200这个值

        MOV G0 1

        大家注意这条指令了吧MOV G0 1 这个是什么意思呢?

        这个需要和之前的判断语句EQUAL G0 0联系起来理解,说白了G变量对每个人来说,第一次

       点击这个NPC都会给6个等级变量赋值,并只可赋值一次,如果无限赋值这个版本基本就鬼了!

       至于为什么,你懂的!!!!!

        逻辑语句 #if  #act 和#elseact #elsesay这些就不一一说明了 。网上都可以直接找到的


[@chongzhi]
#IF
#ACT
SET [G1] 0
SET [G2] 0
SET [G3] 0
SET [G4] 0
SET [G5] 0
SET [G6] 0

[@chongzhi2]
#if
#act
MOV G1 200
MOV G2 100
MOV G3 50
MOV G4 20
MOV G5 10
MOV G6 1


这两个 逻辑是为了方便测试,添加的,大家些版本的时候也可以加上

具体功能一会演示的时候会介绍

     ⑥:[@20a]
#IF
CHECK [G1] 0
#ACT
GOTO @20b
#ELSEACT
MESSAGEBOX 你已经领取过了!

[@20b]
#IF
CHECKLEVELEX > 19
CHECK [G1] 0
LARGE G1 0
#ACT
GOTO @20c
#ELSEACT
MESSAGEBOX 奖励已经被领取光了,请关注下个新区!!!

[@20C]
#IF
CHECKLEVEL > 19
CHECK [G1] 0
LARGE G1 0
#ACT
GIVE 回城卷 1
DEC G1 1
SET [G1] 1
SENDCENTERMSG 254 0 恭喜玩家【<$USERNAME>】顺利冲到20级并领取[回城卷],现在20级冲级奖励名额还剩<$STR(G1)>个! 1 4
SENDMSG 0 《%s》顺利冲到125级并领取[20],现在20级冲级奖励名额还剩<$STR(G1)>个!
SENDMSG 0 《%s》顺利冲到125级并领取[20],现在20级冲级奖励名额还剩<$STR(G1)>个!
SENDMSG 0 《%s》顺利冲到125级并领取[20],现在20级冲级奖励名额还剩<$STR(G1)>个!
goto @main
break


上面这三段程序是领取奖励的具体判定了

为了逻辑更严谨 可以像我这样写:

[@20]
#IF
CHECKLEVELEX > 19
#ACT
GOTO @20a
#ELSEACT
MESSAGEBOX 级别不够,升级去吧!奖励还剩<$STR(G1)>个!


首先是检测人物等级(也可以加上检测人物职业、性别等,看你自己的想法)


如果为真,跳到@20a

[@20a]
#IF
CHECK [G1] 0
#ACT
GOTO @20b
#ELSEACT
MESSAGEBOX 你已经领取过了!

这一步是检测人物是否已经领取过奖励,具体实现靠CHECK [G1] 0这条语句,因为在下面第四条

语句领取奖励成功后我会对G1这个变量置1,使之在此点击此项奖励的时候为假,直接弹出

MESSAGEBOX 你已经领取过了!,防止多次领取!

继续往下看



[@20b]
#IF
CHECKLEVELEX > 19
CHECK [G1] 0
LARGE G1 0
#ACT
GOTO @20c
#ELSEACT
MESSAGEBOX 奖励已经被领取光了,请关注下个新区!!!


这条语句是上面为真跳转的,目的检测之前赋值给变量的数值是否为0,因为我给G1赋值200

第201个人领取的时候就会提示领取失败,因为只允许领取200个


[@20C]
#IF
CHECKLEVEL > 19
CHECK [G1] 0
LARGE G1 0
#ACT
GIVE 回城卷 1
DEC G1 1
SET [G1] 1
SENDCENTERMSG 254 0 恭喜玩家【<$USERNAME>】顺利冲到20级并领取[回城卷],现在20级冲级奖励名额还剩<$STR(G1)>个! 1 4
SENDMSG 0 《%s》顺利冲到125级并领取[20],现在20级冲级奖励名额还剩<$STR(G1)>个!
SENDMSG 0 《%s》顺利冲到125级并领取[20],现在20级冲级奖励名额还剩<$STR(G1)>个!
SENDMSG 0 《%s》顺利冲到125级并领取[20],现在20级冲级奖励名额还剩<$STR(G1)>个!
goto @main
break


这条语句是将之前所有的判定语句再次检测,加强严谨性;
CHECKLEVEL > 19
CHECK [G1] 0
LARGE G1 0

如果为真,就将奖励发放给游戏角色,

DEC G1 1
SET [G1] 1
这两个语句是等级奖励脚本严谨性的保证

DEC G1 1
是领取成功一次 将给G1赋值200的基础上-1,实现奖励总数的控制


SET [G1] 1

这个是给角色领取过的奖励标志位置1

使之只能 领取一次!!!


脚本下面这些就是上述语句的重复部分,就不再罗嗦


⑦:变量说白了就是数值,字符的 载体,不需要对数值、字符直接操作

增强可操作性,稳定性!!

这些大家如果多接触一些就会很快明白!

有些C语言基础的更好理解一些!


没有也没有关系,多跟游戏对应理解就很快明白了

最后还是有问题 在下面留言我看到会恢复!!!

之前的不用了  !!!!!!



视频教程查看:
游客,如果您要查看本帖隐藏内容请回复







【GM论坛[www.gmbbs.net]免责声明】
1、本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与商业和非法行为,请在24小时之内自行删除!
2、本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。
3、若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。 我们不承担任何技术及版权问题,且不对任何资源负法律责任。
4、论坛的所有内容都不保证其准确性,完整性,有效性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
5、用户使用本网站必须遵守适用的法律法规,对于用户违法使用本站非法运营而引起的一切责任,由用户自行承担
6、本站所有资源来自互联网转载,版权归原著所有,用户访问和使用本站的条件是必须接受本站“免责声明”,如果不遵守,请勿访问或使用本网站
7、本站使用者因为违反本声明的规定而触犯中华人民共和国法律的,一切后果自己负责,本站不承担任何责任。
8、凡以任何方式登陆本网站或直接、间接使用本网站资料者,视为自愿接受本网站声明的约束。
9、本站以《2013 中华人民共和国计算机软件保护条例》第二章 “软件著作权” 第十七条为原则:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。若有学员需要商用本站资源,请务必联系版权方购买正版授权!
10、本网站如无意中侵犯了某个企业或个人的知识产权,请告之,本站将立即删除。
   提问发帖求助请点此发帖 https://www.gmbbs.net/

0

主题

7404

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
14843
发表于 2019-5-13 02:25:48 | 显示全部楼层
珍爱生命,果断回帖。

0

主题

7501

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
15035
发表于 2019-5-13 20:14:56 | 显示全部楼层
支持支持再支持

0

主题

7542

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
15116
发表于 2019-5-15 15:25:31 | 显示全部楼层
沙发???

0

主题

7494

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
15025
发表于 2019-5-18 18:45:49 | 显示全部楼层
占坑编辑ing

0

主题

7506

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
15044
发表于 2019-5-19 08:08:01 | 显示全部楼层
大人,此事必有蹊跷!

0

主题

7475

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
14981
发表于 2019-5-19 17:15:44 | 显示全部楼层
看起来好像不错的样子

0

主题

7503

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
15037
发表于 2019-5-21 08:44:17 | 显示全部楼层
我了个去,顶了

0

主题

7501

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
15039
发表于 2019-5-21 09:43:30 | 显示全部楼层
前排支持下

0

主题

7465

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
14970
发表于 2019-5-23 21:51:07 | 显示全部楼层
我是个凑数的。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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