Project1
标题:
【FSL】全局哈希
[打印本页]
作者:
小幽的马甲
时间:
2010-10-12 22:09
标题:
【FSL】全局哈希
本帖最后由 小幽的马甲 于 2010-10-13 20:21 编辑
使用说明:
提供一个模块来维护一个不受存档影响的哈希,用于保存游戏X周目、CG的收集状况等,用法见注释
不提供范例,具体的功能实现(如收集CG等)日后在发出对应脚本时再放范例= =现在就当是练习FSL的产物好了
也许可以作为其它需要此类功能的FSL脚本的底层模块……?
#==============================================================================
# ■ [XP/VX] 全局哈希
# [XP/VX] GlobalHash
#----------------------------------------------------------------------------
# 使用说明:
# 创建一个不受存档影响的哈希
# 用于保存游戏X周目、CG的收集状况等
# G_Hash#clear
# 清空哈希
# G_Hash#load
# 读取哈希
# G_Hash#save
# 保存哈希
# G_Hash#read(key)
# 返回key对应的val
# G_Hash#hash
# 返回整个哈希表
# G_Hash#change(key, val)
# G_Hash#change([key1, key2, ...], val)
# G_Hash#change({key1 =>val1, key2 => val2, ...})
# 修改哈希的值,若修改了@hash的值则保存
#----------------------------------------------------------------------------
# 更新作者: Tune_U
# 许可协议: FSL
# 项目版本: 1.0.1013
#----------------------------------------------------------------------------
# - *1.0.1013* (2010-10-13) By Tune_U
# *当G_Hash#change没有修改任何值时不再save
# - *1.0.1012* (2010-10-12) By Tune_U
# *初版
#==============================================================================
$fscript = {} if $fscript == nil
$fscript["GlobalHash"] = "1.00.1012"
module FSL
module GlobalHash
PATH = "Data/Global.rvdata"
end
end
module G_Hash
include FSL::GlobalHash
#读取
def self.load
if FileTest.exist? PATH
@hash = load_data(PATH)
else
clear
end
end
#清空
def self.clear
@hash = Hash.new
save
end
#保存
def self.save
save_data(@hash,PATH)
end
#读取键值
def self.read(key)
return @hash[key]
end
#返回hash
def self.hash
return @hash
end
#修改并保存
def self.change(key, val = nil)
flag = false
if key.is_a? Array
key.each{|i|
if @hash[i] != val
flag = true
@hash[i] = val
end
}
return unless flag
elsif key.is_a? Hash
key.each{|i,j|
if @hash[i] != j
flag = true
@hash[i] = j
end
}
return unless flag
else
return if @hash[key] == val
@hash[key] = val
end
save
end
end
G_Hash.load
复制代码
未测试,bug未知,反馈bug或提出意见请回帖,谢谢
作者:
moy
时间:
2010-10-12 22:25
虽然发在VX区但是其实是都适用的是吧....抱走了,应该会用到.这样会方便不少吧...?
作者:
紫苏
时间:
2010-10-13 01:22
统一用 GNU 版本号嘛 :$
还有那啥引用网址不应该是发布页嘛 :$
作者:
summer92
时间:
2010-10-13 11:58
好东西~~~~~~~~~~
作者:
沉影不器
时间:
2010-10-21 20:16
提示:
作者被禁止或删除 内容自动屏蔽
作者:
越前リョーマ
时间:
2010-10-23 18:33
按柳柳以前的做法……
建议一个类似save的档案……直接暴露了 = =
作者:
DBZ-1
时间:
2010-11-7 21:12
注释不太懂……怎么创建?还是放个范例好
不过作为一个新手,知道哈希是什么东西我很满足了……
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1