|
藏宝阁传奇脚本系统的改进与读写配置项的应用-传奇素材网
接触过传奇素材网奇幻版本的想必对藏宝阁系统不陌生,
应该是 Magical大师兄 原创的传奇脚本,
写的非常的优秀,既解决了无用装备的互斥性,变废为宝,也解决了玩家的一些痛点,可以增加属性等等
这个脚本我也用过,可谓又爱又恨
由于占用标识符比较多,难免和别的脚本冲突,有时候会出现丢星星的情况。
那么如何不用标识符来实现功能?
咱们尝试用 #读写配置项# 将它改造!
读写配置项是个很实用的功能,因为它不占用保留变量,并且格式多样化,原理是把变量写入文本当中,
这里用到3个命令:
读配置项 ReadConfigFileItem 索引 变量名 变量
写配置项 WriteConfigFileItem 索引 变量名 参数
删除配置项 DelConfigFileItem 索引 变量名
打个比方:“礼包领取限制每台电脑只能领取两个账号”。
机器码一般来说,如果没有硬件更换是不会变的,所以用它来判断是否同一台电脑。
换成编程思维,问题转化成,如何判断机器码的领奖次数?
- ;首先检测领奖次数,读取文本中,机器码的领奖次数赋值到变量,然后判断
- #if
- #act
- ReadConfigFileItem ..\QuestDiary\领奖记录.txt <$MACHINEID> 领取次数 <$STR(N$领取次数)>
- ;判断领奖次数,如果为0可以领奖,可以领取,把 {机器码 领取次数 1} 写入配置项。
- #if
- EQUAL <$STR(N$领取次数)> 0
- #ACT
- WriteConfigFileItem ..\QuestDiary\领奖记录.txt <$MACHINEID> 领取次数 1
- sendmsg 7 初次领奖!写入领奖成功,目前领奖次数为:1
- break
- ;判断领奖次数,如果为1还可以领取一次.代码含义为删除原有的配置项重新写入,为了改变领奖次数
- #if
- EQUAL <$STR(N$领取次数)> 1
- #ACT
- DelConfigFileItem ..\QuestDiary\领奖记录.txt <$MACHINEID> 领取次数
- WriteConfigFileItem ..\QuestDiary\领奖记录.txt <$MACHINEID> 领取次数 2
- sendmsg 7 第二次领奖!写入领奖成功,目前领奖次数为:2
- break
- #if
- EQUAL <$STR(N$领取次数)> 2
- #ACT
- sendmsg 7 这台电脑已经领取过2次,每台电脑只可以领取两个账号!
- break
- #elseact
- sendmsg 7 参数错误!
复制代码 领奖记录里的内容是这样的:
- [F896AE54F3D3922189D31FFAB8BB751C]
- 领取次数=2
- [H896AE54F3D392342189D31FFAB8B51F]
- 领取次数=2
- [9896AE2345445D3922189D31FFAB751H]
- 领取次数=1
- [7896AE54F3D3922189D31FFAB8BB751J]
- 领取次数=2
- [6696AE54F3D392342189D31FFAB8B51L]
- 领取次数=2
- [F296AE2345445D3922189D31FFAB7513]
- 领取次数=1
复制代码 扩展:
ReadConfigFileItem,WriteConfigFileItem 这两个命令是实时写入文本的,可以查看和修改
另外还有带Cache命令是写入内存缓存中,不能查看和修改,关闭引擎以后才会写入文件,优点是运行速度快很多!
ReadCacheConfigFileItem
WriteCacheConfigFileItem
DelCacheConfigFileItem
DelCacheConfigFileSection
传奇素材网首先抛出几个问题:
1.标识符在这个系统中的意义?
2.如何转化到配置项中存储?
第一个问题很简单,装备激活后标识符会变成1
第二个问题,以每个传奇素材网玩家角色名创建一个TXT文本,[藏宝阁当前页]为索引,装备几号位是变量名= 变量
看一下,激活一号位的例子:
核心代码是这个:
WriteConfigFileItem ..\QuestDiary\藏宝阁\数据文件\<$USERNAME>.txt <$str(N$藏宝当页)> 一号位 1
- [@激活一号位]
- #If
- checkitem <$Str(S$藏宝一号位)> 1
- #act
- take <$Str(S$藏宝一号位)> 1
- ChangeHumAbilityEX 6 + <$Str(S$藏宝单属)>
- ChangeHumAbilityEX 8 + <$Str(S$藏宝单属)>
- ChangeHumAbilityEX 10 + <$Str(S$藏宝单属)>
- ChangeHumAbilityEX 11 + <$Str(S$藏宝单HP)>
- WriteConfigFileItem ..\QuestDiary\藏宝阁\数据文件\<$USERNAME>.txt <$str(N$藏宝当页)> 一号位 1
- messagebox <恭喜您!!/FCOLOR=250>\\激活成功,系统已从背包中回收【<$Str(S$藏宝一号位)>】一件!
复制代码 文本里内容是这样:
- [14]
- 四号位=1
- 五号位=1
- 八号位=1
- [2]
- 一号位=1
- 二号位=1
- 三号位=1
- [6]
- 三号位=1
- 六号位=1
- 七号位=1
复制代码 写入方法知道了,如何读取看下面代码
- ReadConfigFileItem ..\QuestDiary\藏宝阁\数据文件\<$USERNAME>.txt <$str(N$藏宝当页)> 全套 N$藏宝全套标识
- ReadConfigFileItem ..\QuestDiary\藏宝阁\数据文件\<$USERNAME>.txt <$str(N$藏宝当页)> 一号位 N$藏宝一号位标识
- ReadConfigFileItem ..\QuestDiary\藏宝阁\数据文件\<$USERNAME>.txt <$str(N$藏宝当页)> 二号位 N$藏宝二号位标识
- ReadConfigFileItem ..\QuestDiary\藏宝阁\数据文件\<$USERNAME>.txt <$str(N$藏宝当页)> 三号位 N$藏宝三号位标识
- ReadConfigFileItem ..\QuestDiary\藏宝阁\数据文件\<$USERNAME>.txt <$str(N$藏宝当页)> 四号位 N$藏宝四号位标识
- ReadConfigFileItem ..\QuestDiary\藏宝阁\数据文件\<$USERNAME>.txt <$str(N$藏宝当页)> 五号位 N$藏宝五号位标识
- ReadConfigFileItem ..\QuestDiary\藏宝阁\数据文件\<$USERNAME>.txt <$str(N$藏宝当页)> 六号位 N$藏宝六号位标识
- ReadConfigFileItem ..\QuestDiary\藏宝阁\数据文件\<$USERNAME>.txt <$str(N$藏宝当页)> 七号位 N$藏宝七号位标识
- ReadConfigFileItem ..\QuestDiary\藏宝阁\数据文件\<$USERNAME>.txt <$str(N$藏宝当页)> 八号位 N$藏宝八号位标识
- ReadConfigFileItem ..\QuestDiary\藏宝阁\数据文件\<$USERNAME>.txt <$str(N$藏宝当页)> 九号位 N$藏宝九号位标识
- ReadConfigFileItem ..\QuestDiary\藏宝阁\数据文件\<$USERNAME>.txt <$str(N$藏宝当页)> 十号位 N$藏宝十号位标识
复制代码 理解配置项读写后,写这个还是比较简单的,有动手能力的小伙伴可以试试了
代码已经打包上传,带素材,感兴趣的可以下载测试!
|
|