当前位置 : 745v传奇网 | 传奇教程 | 

传奇常用变量浅析说明以及脚本示例(一)---[X]变量

来源: 作者: 点击:
最近GM问到变量的问题比较多,
所以我决定写几篇关于变量应用的帖子,
变量涉及的问题比较多,因而只能由易到难
今天给大家介绍下最简单的变量---[X]变量

这个大家见的比较多,
用起来很方便,功能也很强大。
[X]的数值上限我没去测试,
据说有的引擎限制499
有的能到999
但[X]的状态只有0和1两种
常用命令:
Check[X]0检测[X]状态为0
set[X]1设置[X]状态为1
reset[x]7将X开始的连续7个变量状态设置为0
示例
[@main]
\\
在我这里每天可以领取一根金条\
但不能重复领取,如果你连续领取一个礼拜的金条,\
礼拜天便能领取一个金砖。\
<星期一金条/@星期一金条><星期二金条/@星期二金条><星期三金条/@星期三金条><星期四金条/@星期四金条>\
<星期五金条/@星期五金条><星期六金条/@星期六金条><星期天金条/@星期天金条><每周领金砖/@每周领金砖>

[@星期一金条]
#if
dayofweekmon
check[601]0
#act
give金条1
set[601]1
break
#elseact
messagebox没到星期一或你已经领取了星期一的奖励。
[@星期二金条]
#if
dayofweektue
check[602]0
#act
give金条1
set[602]1
break
#elseact
messagebox没到星期二或你已经领取了星期二的奖励。
[@星期三金条]
#if
dayofweekwed
check[603]0
#act
give金条1
set[603]1
break
#elseact
messagebox没到星期三或你已经领取了星期三的奖励。
[@星期四金条]
#if
dayofweekthu
check[604]0
#act
give金条1
set[604]1
break
#elseact
messagebox没到星期四或你已经领取了星期四的奖励。
[@星期五金条]
#if
dayofweekfri
check[605]0
#act
give金条1
set[605]1
break
#elseact
messagebox没到星期五或你已经领取了星期五的奖励。
[@星期六金条]
#if
dayofweeksat
check[606]0
#act
give金条1
set[606]1
break
#elseact
messagebox没到星期六或你已经领取了星期六的奖励。
[@星期天金条]
#if
dayofweeksun
check[607]0
#act
give金条1
set[607]1
break
#elseact
messagebox没到星期天或你已经领取了星期天的奖励。
[@每周领金砖]
#if
dayofweeksun
check[601]1
check[602]1
check[603]1
check[604]1
check[605]1
check[606]1
check[607]1
#act
reset[601]7
give金砖1
break
#elseact
messagebox你已经领取了每周金砖或者你没有连续领取每日的金条。

看到这里相信大家已经明白了,
reset[601]7
的功能其实就等同于
set[601]0
set[602]0
set[603]0
set[604]0
set[605]0
set[606]0
set[607]0

其实细心的朋友会发现,这个脚本有一个很大的漏洞。
如果你发现了,可以谈谈你的解决办法。

只要在星期1-7领取过不管星期几都可以领取一个金砖了,如果说一个星期中,星期5没有领取,其余领取过,那就就领取不了金砖,也就清空不了reset[601]7,,那么下个星期的1234每日奖励就领取不了了,,还是有漏洞啊

可以这样改改领取当天清空后面的标识代码修正如下就可以了;
;sta
@MAIN]
\\
在我这里每天可以领取一根金条\
但不能重复领取,如果你连续领取一个礼拜的金条,\
礼拜天便能领取一个金砖。\
<星期一金条/@星期一金条><星期二金条/@星期二金条><星期三金条/@星期三金条><星期四金条/@星期四金条>\
<星期五金条/@星期五金条><星期六金条/@星期六金条><星期天金条/@星期天金条><每周领金砖/@每周领金砖>

[@星期一金条]
#IF
DAYOFWEEKMON
CHECK[601]0
#ACT
GIVE金条1
SET[601]1
RESET[602]6
BREAK
#ELSEACT
MESSAGEBOX没到星期一或你已经领取了星期一的奖励。
[@星期二金条]
#IF
DAYOFWEEKTUE
CHECK[602]0
#ACT
GIVE金条1
SET[602]1
RESET[603]5
BREAK
#ELSEACT
MESSAGEBOX没到星期二或你已经领取了星期二的奖励。
[@星期三金条]
#IF
DAYOFWEEKWED
CHECK[603]0
#ACT
GIVE金条1
SET[603]1
RESET[604]4
BREAK
#ELSEACT
MESSAGEBOX没到星期三或你已经领取了星期三的奖励。
[@星期四金条]
#IF
DAYOFWEEKTHU
CHECK[604]0
#ACT
GIVE金条1
SET[604]1
RESET[605]3
BREAK
#ELSEACT
MESSAGEBOX没到星期四或你已经领取了星期四的奖励。
[@星期五金条]
#IF
DAYOFWEEKFRI
CHECK[605]0
#ACT
GIVE金条1
SET[605]1
RESET[606]2
BREAK
#ELSEACT
MESSAGEBOX没到星期五或你已经领取了星期五的奖励。
[@星期六金条]
#IF
DAYOFWEEKSAT
CHECK[606]0
#ACT
GIVE金条1
SET[606]1
RESET[607]1
BREAK
#ELSEACT
MESSAGEBOX没到星期六或你已经领取了星期六的奖励。
[@星期天金条]
#IF
DAYOFWEEKSUN
CHECK[607]0
#ACT
GIVE金条1
SET[607]1
BREAK
#ELSEACT
MESSAGEBOX没到星期天或你已经领取了星期天的奖励。
[@每周领金砖]
#IF
CHECK[601]1
CHECK[602]1
CHECK[603]1
CHECK[604]1
CHECK[605]1
CHECK[606]1
CHECK[607]1
#ACT
RESET[601]7
GIVE金砖1
BREAK
#ELSEACT
MESSAGEBOX你已经领取了每周金砖或者你没有连续领取每日的金条。
;end
[顶部]