TA的每日心情 | 衰 2024-6-19 10:07 |
---|
签到天数: 30 天 连续签到: 1 天 [LV.5]500Pi传奇素材网-永恒钻石
|
500pi欢迎广大传奇爱好者提供相关资源、本站力争成为最公益的素材脚本交流站
===========================================================
资源下载:
===========================================================
资源演示:
首先感谢500pi.com平台给予这个机会
作为一个传奇爱好者,因为自己学习的过程中经常遇到一些问题,在网上找资料比较麻烦,萌生出做个视频的想法,希望大家一起交流进步!
以下如有错误请大家留言 我会及时更新,谢谢!!
好久没有录制视频,因为最近有些忙,大家有什么问题可以留言!!!
另由于一些原因,之前luchaolijihong这个账号不再使用,取而代之的是Liar这个账号!
第四章 冲级奖励(变量操作)
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语言基础的更好理解一些!
没有也没有关系,多跟游戏对应理解就很快明白了
最后还是有问题 在下面留言我看到会恢复!!!
之前的不用了 !!!!!!
最后演示一下程序吧!!!
===========================================================
【注:帖子中的资源只显示了部分-如需完整资源请下载附件】
|
|