最近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
dayofweek mon
check [601] 0
#act
give 金条 1
set [601] 1
break
#elseact
messagebox 没到星期一或你已经领取了星期一的奖励。
[@星期二金条]
#if
dayofweek tue
check [602] 0
#act
give 金条 1
set [602] 1
break
#elseact
messagebox 没到星期二或你已经领取了星期二的奖励。
[@星期三金条]
#if
dayofweek wed
check [603] 0
#act
give 金条 1
set [603] 1
break
#elseact
messagebox 没到星期三或你已经领取了星期三的奖励。
[@星期四金条]
#if
dayofweek thu
check [604] 0
#act
give 金条 1
set [604] 1
break
#elseact
messagebox 没到星期四或你已经领取了星期四的奖励。
[@星期五金条]
#if
dayofweek fri
check [605] 0
#act
give 金条 1
set [605] 1
break
#elseact
messagebox 没到星期五或你已经领取了星期五的奖励。
[@星期六金条]
#if
dayofweek sat
check [606] 0
#act
give 金条 1
set [606] 1
break
#elseact
messagebox 没到星期六或你已经领取了星期六的奖励。
[@星期天金条]
#if
dayofweek sun
check [607] 0
#act
give 金条 1
set [607] 1
break
#elseact
messagebox 没到星期天或你已经领取了星期天的奖励。
[@每周领金砖]
#if
dayofweek sun
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
DAYOFWEEK MON
CHECK [601] 0
#ACT
GIVE 金条 1
SET [601] 1
RESET [602] 6
BREAK
#ELSEACT
MESSAGEBOX 没到星期一或你已经领取了星期一的奖励。
[@星期二金条]
#IF
DAYOFWEEK TUE
CHECK [602] 0
#ACT
GIVE 金条 1
SET [602] 1
RESET [603] 5
BREAK
#ELSEACT
MESSAGEBOX 没到星期二或你已经领取了星期二的奖励。
[@星期三金条]
#IF
DAYOFWEEK WED
CHECK [603] 0
#ACT
GIVE 金条 1
SET [603] 1
RESET [604] 4
BREAK
#ELSEACT
MESSAGEBOX 没到星期三或你已经领取了星期三的奖励。
[@星期四金条]
#IF
DAYOFWEEK THU
CHECK [604] 0
#ACT
GIVE 金条 1
SET [604] 1
RESET [605] 3
BREAK
#ELSEACT
MESSAGEBOX 没到星期四或你已经领取了星期四的奖励。
[@星期五金条]
#IF
DAYOFWEEK FRI
CHECK [605] 0
#ACT
GIVE 金条 1
SET [605] 1
RESET [606] 2
BREAK
#ELSEACT
MESSAGEBOX 没到星期五或你已经领取了星期五的奖励。
[@星期六金条]
#IF
DAYOFWEEK SAT
CHECK [606] 0
#ACT
GIVE 金条 1
SET [606] 1
RESET [607] 1
BREAK
#ELSEACT
MESSAGEBOX 没到星期六或你已经领取了星期六的奖励。
[@星期天金条]
#IF
DAYOFWEEK SUN
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