Project1

标题: RxDataEditor - RMXP 数据库备注编辑器 [打印本页]

作者: 失落的乐章    时间: 2017-6-9 17:50
标题: RxDataEditor - RMXP 数据库备注编辑器
本帖最后由 失落的乐章 于 2018-6-18 20:19 编辑

简介
灵感来源于https://rpg.blue/forum.php?mod=viewthread&tid=241539
本工具为 RMXP 数据库增加了与 VX 及 VX Ace 相同的“备注”功能。
截图

使用方法


更新记录



下载
工具: RXDataEditor_1.3.zip (1.14 MB, 下载次数: 705)
源码: RXDataEditor_1.3_Source.zip (1.56 MB, 下载次数: 187)

备注


作者: soulsaga    时间: 2017-6-11 19:00
这工具好棒..感谢LZ
作者: 哆啦溯    时间: 2017-10-2 12:59
好像很厉害的样子!不过因为我几乎不用VX和VA,这备注功能有什么用……?
作者: 失忆的脑子    时间: 2018-1-26 23:48
得好好研究研究。感谢分享
作者: chd114    时间: 2018-1-27 20:45
好东西···
那可以追击编辑图标的功能吗?
xp、vx、va的角色和敌人其实都能设定icon,但是数据库里并没有
作者: 逗B男孩    时间: 2018-2-11 23:01
好东西,感谢分享。
作者: 失落的乐章    时间: 2018-6-9 18:20
已更新至 1.1
作者: soulsaga    时间: 2018-6-9 18:37
谢大神更新工具
作者: 失落的乐章    时间: 2018-6-15 23:02
已更新至 1.2
作者: 灯笼菜刀王    时间: 2018-6-16 16:10
想当年最羡慕的就是VXVA的备注接口, 前有猫大的神之脚本 后有大神的神之工具 来弥补这个遗憾,  XP无憾也~~
作者: 89444640    时间: 2018-6-16 17:42
那个,非常感谢楼主的工具,据说可以实现很多效果,有的地方可以使用来解决一些问题。
现在的问题依然是,这个数据库编写后保存的时间太长了……
可能是我数据库较大,进度条这个虽然是有,但是一直不增长。
如图所示我随便写了个注释然后保存

保存一次的时间目前在三十秒左右,但是这个未响应一直让我很不安。
这时候一旦移动鼠标就会出现未响应,如果万一手欠关闭就会出现这个

这个测试我备份了数据库估,故意在未响应时候关闭的,但是实际使用时会出现各种不可预测的情况……

有可能的话,请优化一下保存时的进度显示,还有在保存异常时候不损坏数据库,这样我才敢安心使用,
非常感谢。
作者: 失落的乐章    时间: 2018-6-16 20:55
89444640 发表于 2018-6-16 17:42
那个,非常感谢楼主的工具,据说可以实现很多效果,有的地方可以使用来解决一些问题。
现在的问题依然是, ...

已更新至 1.3,现在保存速度应该会比以前快一些,进度条也能正确显示了。可以测试一下(记得备份数据……)

数据库损坏的问题,也许只能通过备份数据的方式避免,过段时间我可能会写一个自动备份功能。
(理论上应该只有在保存过程中意外关闭程序才会导致数据库损坏)
作者: 89444640    时间: 2018-6-17 06:28
可能是我数据库太大了

熟读明显提升不少,但还是一定几率出这个,这个时候什么都不动能过去。
作者: 失落的乐章    时间: 2018-6-17 16:59
89444640 发表于 2018-6-17 06:28
可能是我数据库太大了

熟读明显提升不少,但还是一定几率出这个,这个时候什么都不动能过去。 ...

已更新,现在程序在保存过程中应该不会失去响应了。写入文件的过程也优化过了,我测试时保存速度很快,但不清楚在更大的数据库中速度表现如何。所以还请再测试一下。
作者: 89444640    时间: 2018-6-18 10:36
失落的乐章 发表于 2018-6-17 16:59
已更新,现在程序在保存过程中应该不会失去响应了。写入文件的过程也优化过了,我测试时保存速度很快,但 ...


非常感谢,笔记本+固态硬盘测试,
把data文件复制到其他地方。
这次不会失去响应了,保存的过程中可以选择别的数据库继续编辑。
保存时间,我测试9999的动画数据库,第一次需要大概两分钟,后面的大概在10~20秒上下,可以接受。
关闭后第二次测试,保存过程五分钟进度槽也不动,于是关闭,然后再打开就出现了这个。

感觉是数据库损坏了。


RUBY 代码复制
  1. 有关调用实时(JIT)调试而不是此对话框的详细信息,
  2. 请参见此消息的结尾。
  3.  
  4. ************** 异常文本 **************
  5. System.ArgumentException: marshal data too short
  6.    在 IronRuby.Builtins.RubyMarshal.MarshalReader.Load()
  7.    在 IronRuby.Builtins.RubyMarshal.Load(ReaderSites sites, RubyScope scope, RubyModule self, RubyIO source, Proc proc)
  8.    在 Microsoft.Scripting.Interpreter.FuncCallInstruction`6.Run(InterpretedFrame frame)
  9.    在 Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)
  10.    在 Microsoft.Scripting.Interpreter.LightLambda.Run4[T0,T1,T2,T3,TRet](T0 arg0, T1 arg1, T2 arg2, T3 arg3)
  11.    在 Microsoft.Scripting.Interpreter.DynamicInstruction`4.Run(InterpretedFrame frame)
  12.    在 Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)
  13.    在 Microsoft.Scripting.Interpreter.LightLambda.Run3[T0,T1,T2,TRet](T0 arg0, T1 arg1, T2 arg2)
  14.    在 IronRuby.Runtime.Calls.BlockDispatcher1.Invoke(BlockParam param, Object self, Proc procArg, Object arg1)
  15.    在 IronRuby.Runtime.RubyOps.Yield1(Object arg1, Proc procArg, Object self, BlockParam blockParam)
  16.    在 IronRuby.Runtime.BlockParam.Yield(Object arg1, Object& blockResult)
  17.    在 IronRuby.Builtins.RubyIOOps.InvokeOpenBlock(UnaryOpStorage closeStorage, BlockParam block, Object obj)
  18.    在 Microsoft.Scripting.Interpreter.FuncCallInstruction`4.Run(InterpretedFrame frame)
  19.    在 Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)
  20.    在 Microsoft.Scripting.Interpreter.LightLambda.Run6[T0,T1,T2,T3,T4,T5,TRet](T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5)
  21.    在 Microsoft.Scripting.Interpreter.DynamicInstruction`6.Run(InterpretedFrame frame)
  22.    在 Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)
  23.    在 Microsoft.Scripting.Interpreter.LightLambda.Run3[T0,T1,T2,TRet](T0 arg0, T1 arg1, T2 arg2)
  24.    在 IronRuby.Runtime.Calls.RubyObjectMethodDispatcherWithScope`1.Invoke[TScope](CallSite callSite, TScope scope, Object self, T0 arg0)
  25.    在 Microsoft.Scripting.Interpreter.DynamicInstruction`4.Run(InterpretedFrame frame)
  26.    在 Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)
  27.    在 Microsoft.Scripting.Interpreter.LightLambda.Run3[T0,T1,T2,TRet](T0 arg0, T1 arg1, T2 arg2)
  28.    在 Microsoft.Scripting.Interpreter.FuncCallInstruction`5.Run(InterpretedFrame frame)
  29.    在 Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)
  30.    在 Microsoft.Scripting.Interpreter.LightLambda.Run3[T0,T1,T2,TRet](T0 arg0, T1 arg1, T2 arg2)
  31.    在 lambda_method(Closure , DynamicOperations , CallSiteBinder , Object , Object[] )
  32.    在 Microsoft.Scripting.Runtime.DynamicOperations.InvokeMember(Object obj, String memberName, Boolean ignoreCase, Object[] parameters)
  33.    在 Microsoft.Scripting.Hosting.ObjectOperations.InvokeMember(Object obj, String memberName, Object[] parameters)
  34.    在 RXDataEditor.RXDataEditor.LoadRxdataFiles(String path)
  35.    在 RXDataEditor.RXDataEditor.tsmOpenDir_Click(Object sender, EventArgs e)
  36.    在 System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
  37.    在 System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
  38.    在 System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
  39.    在 System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
  40.    在 System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
  41.    在 System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
  42.    在 System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
  43.    在 System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
  44.    在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
  45.    在 System.Windows.Forms.Control.WndProc(Message& m)
  46.    在 System.Windows.Forms.ScrollableControl.WndProc(Message& m)
  47.    在 System.Windows.Forms.ToolStrip.WndProc(Message& m)
  48.    在 System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
  49.    在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
  50.    在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
  51.    在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
  52.  
  53.  
  54. ************** 已加载的程序集 **************
  55. mscorlib
  56.     程序集版本:4.0.0.0
  57.     Win32 版本:4.0.30319.36440 built by: FX452RTMLDR
  58.     基本代码:file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
  59. ----------------------------------------
  60. RXDataEditor
  61.     程序集版本:1.3.0.0
  62.     Win32 版本:1.3.0.0
  63.     基本代码:file:///D:/%EF%BC%81%E4%B8%9C%E6%96%B9%E5%BC%82%E9%97%BB%E5%BD%95/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%A4%87%E6%B3%A8%E8%BD%AF%E4%BB%B6/RXDataEditor.exe
  64. ----------------------------------------
  65. Microsoft.VisualBasic
  66.     程序集版本:10.0.0.0
  67.     Win32 版本:12.0.52415.36415 built by: FX452RTMLDR
  68.     基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
  69. ----------------------------------------
  70. System
  71.     程序集版本:4.0.0.0
  72.     Win32 版本:4.0.30319.36415 built by: FX452RTMLDR
  73.     基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
  74. ----------------------------------------
  75. System.Core
  76.     程序集版本:4.0.0.0
  77.     Win32 版本:4.0.30319.36415 built by: FX452RTMLDR
  78.     基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
  79. ----------------------------------------
  80. System.Windows.Forms
  81.     程序集版本:4.0.0.0
  82.     Win32 版本:4.0.30319.36415 built by: FX452RTMLDR
  83.     基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
  84. ----------------------------------------
  85. System.Drawing
  86.     程序集版本:4.0.0.0
  87.     Win32 版本:4.0.30319.36415 built by: FX452RTMLDR
  88.     基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
  89. ----------------------------------------
  90. System.Runtime.Remoting
  91.     程序集版本:4.0.0.0
  92.     Win32 版本:4.0.30319.36415 built by: FX452RTMLDR
  93.     基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
  94. ----------------------------------------
  95. IronRuby
  96.     程序集版本:1.1.1.0
  97.     Win32 版本:1.1.1.0
  98.     基本代码:file:///D:/%EF%BC%81%E4%B8%9C%E6%96%B9%E5%BC%82%E9%97%BB%E5%BD%95/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%A4%87%E6%B3%A8%E8%BD%AF%E4%BB%B6/IronRuby.DLL
  99. ----------------------------------------
  100. Microsoft.Scripting
  101.     程序集版本:1.1.0.10
  102.     Win32 版本:1.1.0.10
  103.     基本代码:file:///D:/%EF%BC%81%E4%B8%9C%E6%96%B9%E5%BC%82%E9%97%BB%E5%BD%95/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%A4%87%E6%B3%A8%E8%BD%AF%E4%BB%B6/Microsoft.Scripting.DLL
  104. ----------------------------------------
  105. Microsoft.Dynamic
  106.     程序集版本:1.1.0.10
  107.     Win32 版本:1.1.0.10
  108.     基本代码:file:///D:/%EF%BC%81%E4%B8%9C%E6%96%B9%E5%BC%82%E9%97%BB%E5%BD%95/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%A4%87%E6%B3%A8%E8%BD%AF%E4%BB%B6/Microsoft.Dynamic.DLL
  109. ----------------------------------------
  110. System.Configuration
  111.     程序集版本:4.0.0.0
  112.     Win32 版本:4.0.30319.36415 built by: FX452RTMLDR
  113.     基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
  114. ----------------------------------------
  115. System.Xml
  116.     程序集版本:4.0.0.0
  117.     Win32 版本:4.0.30319.36430 built by: FX452RTMLDR
  118.     基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
  119. ----------------------------------------
  120. IronRuby.Libraries
  121.     程序集版本:1.1.1.0
  122.     Win32 版本:1.1.1.0
  123.     基本代码:file:///D:/%EF%BC%81%E4%B8%9C%E6%96%B9%E5%BC%82%E9%97%BB%E5%BD%95/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%A4%87%E6%B3%A8%E8%BD%AF%E4%BB%B6/IronRuby.Libraries.DLL
  124. ----------------------------------------
  125. System.Numerics
  126.     程序集版本:4.0.0.0
  127.     Win32 版本:4.0.30319.36415 built by: FX452RTMLDR
  128.     基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll
  129. ----------------------------------------
  130. Anonymously Hosted DynamicMethods Assembly
  131.     程序集版本:0.0.0.0
  132.     Win32 版本:4.0.30319.36440 built by: FX452RTMLDR
  133.     基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_32/mscorlib/v4.0_4.0.0.0__b77a5c561934e089/mscorlib.dll
  134. ----------------------------------------
  135. mscorlib.resources
  136.     程序集版本:4.0.0.0
  137.     Win32 版本:4.0.30319.34209 built by: FX452RTMGDR
  138.     基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_zh-Hans_b77a5c561934e089/mscorlib.resources.dll
  139. ----------------------------------------
  140. System.Windows.Forms.resources
  141.     程序集版本:4.0.0.0
  142.     Win32 版本:4.0.30319.34209 built by: FX452RTMGDR
  143.     基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_zh-Hans_b77a5c561934e089/System.Windows.Forms.resources.dll
  144. ----------------------------------------
  145.  
  146. ************** JIT 调试 **************
  147. 要启用实时(JIT)调试,
  148. 该应用程序或计算机的 .config 文件(machine.config)的 system.windows.forms 节中必须设置
  149. jitDebugging 值。
  150. 编译应用程序时还必须启用
  151. 调试。
  152.  
  153. 例如:
  154.  
  155. <configuration>
  156.     <system.windows.forms jitDebugging="true" />
  157. </configuration>
  158.  
  159. 启用 JIT 调试后,任何未经处理的异常
  160. 都将被发送到在此计算机上注册的 JIT 调试器,
  161. 而不是由此对话框处理。




作者: guoxiaomi    时间: 2018-6-18 12:47
一直都很想学习类似简单图形界面程序的编写……不过突然想到,如果不用图形界面的话,直接在电脑上安装ruby,用ruby来完成操作也行吧?
比如,data文件夹下的放一个Actors_note.txt,里面放好id,名称和notes,大致格式如下:
  1. 1|阿尔西斯
  2. 具体notes的内容。
  3. 可以多行
  4. 2|帕吉尔
  5. <xml>xml</xml>
复制代码

然后这样也方便进行直观的编辑
作者: 失落的乐章    时间: 2018-6-18 20:16
89444640 发表于 2018-6-18 10:36
非常感谢,笔记本+固态硬盘测试,
把data文件复制到其他地方。
这次不会失去响应了,保存的过程中可以选 ...

可能是数据量过大,导致 IronRuby 处理 Marshal 时出了问题。但具体是什么问题,我也无法判断。或许整个工具都需要推翻重写一遍。
如果对图形界面没有硬性要求,楼上说的那种方法也是可行的,而且没有损坏数据的风险。
作者: 89444640    时间: 2018-6-19 07:30
说起来……现在还没有必须用到这个功能的脚本,不急着用,请楼主不用着急,继续完善~
至于ruby……那是个啥- -b能吃吗XD
作者: wtow3c    时间: 2018-6-30 00:00
谢谢楼主,给你一张好人卡




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