设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 4798|回复: 6
打印 上一主题 下一主题

[RMVX发布] 【FSL】全局哈希

[复制链接]

Lv1.梦旅人

万物创造者

梦石
0
星屑
54
在线时间
352 小时
注册时间
2008-2-15
帖子
2432
跳转到指定楼层
1
发表于 2010-10-12 22:09:05 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 小幽的马甲 于 2010-10-13 20:21 编辑

使用说明:
提供一个模块来维护一个不受存档影响的哈希,用于保存游戏X周目、CG的收集状况等,用法见注释
不提供范例,具体的功能实现(如收集CG等)日后在发出对应脚本时再放范例= =现在就当是练习FSL的产物好了
也许可以作为其它需要此类功能的FSL脚本的底层模块……?
  1. #==============================================================================
  2. # ■ [XP/VX] 全局哈希
  3. #     [XP/VX] GlobalHash
  4. #----------------------------------------------------------------------------
  5. # 使用说明:
  6. # 创建一个不受存档影响的哈希
  7. # 用于保存游戏X周目、CG的收集状况等
  8. # G_Hash#clear
  9. #   清空哈希
  10. # G_Hash#load
  11. #   读取哈希
  12. # G_Hash#save
  13. #   保存哈希
  14. # G_Hash#read(key)
  15. #   返回key对应的val
  16. # G_Hash#hash
  17. #   返回整个哈希表
  18. # G_Hash#change(key, val)
  19. # G_Hash#change([key1, key2, ...], val)
  20. # G_Hash#change({key1 =>val1, key2 => val2, ...})
  21. #   修改哈希的值,若修改了@hash的值则保存
  22. #----------------------------------------------------------------------------
  23. #    更新作者: Tune_U
  24. #    许可协议: FSL
  25. #    项目版本: 1.0.1013
  26. #----------------------------------------------------------------------------
  27. #    - *1.0.1013* (2010-10-13) By Tune_U
  28. #      *当G_Hash#change没有修改任何值时不再save
  29. #    - *1.0.1012* (2010-10-12) By Tune_U
  30. #      *初版
  31. #==============================================================================

  32. $fscript = {} if $fscript == nil
  33. $fscript["GlobalHash"] = "1.00.1012"

  34. module FSL
  35.   module GlobalHash
  36.     PATH = "Data/Global.rvdata"   
  37.   end
  38. end

  39. module G_Hash
  40.   include FSL::GlobalHash

  41.   #读取
  42.   def self.load
  43.     if FileTest.exist? PATH
  44.       @hash = load_data(PATH)
  45.     else
  46.       clear
  47.     end
  48.   end

  49.   #清空
  50.   def self.clear
  51.     @hash = Hash.new
  52.     save
  53.   end
  54.   
  55.   #保存
  56.   def self.save
  57.     save_data(@hash,PATH)
  58.   end
  59.   
  60.   #读取键值
  61.   def self.read(key)
  62.     return @hash[key]
  63.   end
  64.   
  65.   #返回hash
  66.   def self.hash
  67.     return @hash
  68.   end
  69.   
  70.   #修改并保存
  71.   def self.change(key, val = nil)
  72.     flag = false
  73.     if key.is_a? Array
  74.       key.each{|i|
  75.       if @hash[i] != val
  76.         flag = true
  77.         @hash[i] = val
  78.       end
  79.       }
  80.       return unless flag
  81.     elsif key.is_a? Hash
  82.       key.each{|i,j|
  83.       if @hash[i] != j
  84.         flag = true
  85.         @hash[i] = j
  86.       end
  87.       }
  88.       return unless flag
  89.     else
  90.       return if @hash[key] == val
  91.       @hash[key] = val
  92.     end
  93.     save
  94.   end
  95. end

  96. G_Hash.load
复制代码
未测试,bug未知,反馈bug或提出意见请回帖,谢谢

评分

参与人数 2星屑 +2 +2 收起 理由
574656549 + 2 嗯,伸手党给我附件
夕阳武士 + 2 嗯,技术流

查看全部评分

From mortal hope immortal power springs.

Lv1.梦旅人

梦石
0
星屑
47
在线时间
55 小时
注册时间
2010-8-4
帖子
299
7
发表于 2010-11-7 21:12:26 | 只看该作者
注释不太懂……怎么创建?还是放个范例好
不过作为一个新手,知道哈希是什么东西我很满足了……
努力制作金庸主题的高自由度武侠game..求爱好者协助
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3299
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

6
发表于 2010-10-23 18:33:40 | 只看该作者
按柳柳以前的做法……
建议一个类似save的档案……直接暴露了 = =
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

5
发表于 2010-10-21 20:16:23 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1357
在线时间
677 小时
注册时间
2009-11-11
帖子
2790
4
发表于 2010-10-13 11:58:17 | 只看该作者
好东西~~~~~~~~~~

嘿。嘿。嘿
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
3
发表于 2010-10-13 01:22:36 | 只看该作者
统一用 GNU 版本号嘛 :$
还有那啥引用网址不应该是发布页嘛 :$

点评

major.minor.revision  发表于 2010-10-13 19:53
诶……?那版本号应该怎么写= =  发表于 2010-10-13 18:03
回复 支持 反对

使用道具 举报

Lv2.观梦者

无节操

梦石
0
星屑
607
在线时间
795 小时
注册时间
2009-2-6
帖子
3939

开拓者贵宾

2
发表于 2010-10-12 22:25:07 | 只看该作者
虽然发在VX区但是其实是都适用的是吧....抱走了,应该会用到.这样会方便不少吧...?
Brandnew day, Brandnew Life
                              实在  中
暂为素材区版主,版其  琢磨
应援一下~
RPG制作大师授权素材推广计划
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-23 08:53

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表