Project1

标题: 请问有没有可能创建一个新的数据库· [打印本页]

作者: raymondyrf    时间: 2013-5-10 00:31
标题: 请问有没有可能创建一个新的数据库·
本帖最后由 Sion 于 2013-5-25 17:40 编辑

我想写一个功能,就是通过玩家输入一些文字还有设定一些数值,存入数据库,然后可以在需要的时候读取
比如在某个我创建好的菜单,玩家打开这个菜单可以显示对应的文字和数值,
而且在需要的时候可以调用,并且更改,最好就甚至可以删除了。
请问这个有没有什么方法实现?

作者: 沙漠点灰    时间: 2013-5-10 12:36
本帖最后由 沙漠点灰 于 2013-5-10 12:38 编辑

由玩家完成的话= =无视下面的吧= =

可以用Excel啊,微软提供了接口的。


Ruby1.9可用,直接使用
会将"'D:\Chassis.xls"转换为Hash表存到"D:/Chassis.rxdata"中,
当然...对数据库的编写格式有规定的。用完需手动关闭excel.exe进程,不知道是不是bug,
明明关了的= =
  1. require 'win32ole'
  2. WIN32OLE.codepage = WIN32OLE::CP_UTF8
  3. def excel2rx
  4.         excel = WIN32OLE.new("excel.application")
  5.         excelFile = excel.WorkBooks.Open('D:\Chassis.xls')
  6.         excel.WorkSheets("sheet1").Activate
  7.         data = {}
  8.         # 长宽度确认
  9.         h=1
  10.         loop do
  11.                 break unless excel.Cells(h, 1).value
  12.                 h += 1
  13.         end
  14.         w=1
  15.         loop do
  16.                  break unless excel.Cells(1, w).value
  17.                  w += 1
  18.         end
  19.         for i in 2..h
  20.                 data[excel.Cells(i, 1).value.to_i] = {}
  21.         end
  22.         for i in 2..h
  23.                 for j in 2..w
  24.                         if excel.Cells(i, j).value.is_a?(String)
  25.                                 if excel.Cells(i, j).value.include?("[")
  26.                                         data[excel.Cells(i, 1).value.to_i][excel.Cells(1, j).value.to_sym] = eval(excel.Cells(i, j).value)
  27.                                 else
  28.                                         data[excel.Cells(i, 1).value.to_i][excel.Cells(1, j).value.to_sym] = excel.Cells(i, j).value
  29.                                 end
  30.                         else
  31.                                 #next unless excel.Cells(i, 1).value.to_i][excel.Cells(1, j).value
  32.                                 begin
  33.                                         data[excel.Cells(i, 1).value.to_i][excel.Cells(1, j).value.to_sym] = excel.Cells(i, j).value.to_i
  34.                                 rescue
  35.                                         data[excel.Cells(i, 1).value.to_i][excel.Cells(1, j).value] = excel.Cells(i, j).value.to_i
  36.                                 end
  37.                         end
  38.                 end
  39.         end
  40.         excel.Quit()
  41.         file = File.open("D:/Chassis.rxdata","wb")
  42.         data.delete(0)
  43.         Marshal.dump(data, file)
  44.         file.close
  45. end
  46. excel2rx
复制代码

作者: raymondyrf    时间: 2013-5-10 17:29
沙漠点灰 发表于 2013-5-10 12:36
由玩家完成的话= =无视下面的吧= =

可以用Excel啊,微软提供了接口的。

的确所希望是通过可以玩家自由读取或者写入数据库的
作者: j433463    时间: 2013-5-10 17:45
我的记忆不清晰了,只能说印象中在逛国外脚本论坛,模糊似乎有看过一个公用档脚本,用来记一些额外资料的,它可以给不同工程共享,可以当作像补丁,或是公共仓库之类的用途,我确定有这个脚本,但我现在找却找不到。

另外,有一个数据库扩展的脚本如下,因为我用不上,也看不太懂,所以没多关注,也许您可以看看:

http://forums.rpgmakerweb.com/in ... -database-extender/
作者: raymondyrf    时间: 2013-5-10 22:02
j433463 发表于 2013-5-10 17:45
我的记忆不清晰了,只能说印象中在逛国外脚本论坛,模糊似乎有看过一个公用档脚本,用来记一些额外资料的, ...

那如果我用了那个脚本,如果玩家要在游戏中调用,也就是说我要在事件里调用脚本,来让玩家在游戏中编辑到里面的数据,一般来说应该怎么写呢··??
他里面没有说呢
作者: zhangbanxian    时间: 2013-5-10 22:02
直接就有save_data这个默认函数,当然ui什么的还是得自己写,或者用对话+数据输入+选择项- -b
作者: raymondyrf    时间: 2013-5-11 01:41
zhangbanxian 发表于 2013-5-10 22:02
直接就有save_data这个默认函数,当然ui什么的还是得自己写,或者用对话+数据输入+选择项- -b ...

但是这个函数怎么用呢,F1介绍太简单了,有没有什么例子举一下??
作者: xsrong    时间: 2013-10-4 04:03
沙漠点灰 发表于 2013-5-10 12:36
由玩家完成的话= =无视下面的吧= =

可以用Excel啊,微软提供了接口的。

请问能详细说下这个脚本是插在哪里吗,我怎么插进去了显示no such file to load —— win32ole




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1