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

Project1

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

[已经解决] 求VA退出游戏时自动存档脚本

[复制链接]

Lv1.梦旅人

梦石
0
星屑
60
在线时间
55 小时
注册时间
2011-10-7
帖子
36
跳转到指定楼层
1
发表于 2013-7-9 01:00:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
没找到VA的……
试过VX的不行……

Lv1.梦旅人

梦石
0
星屑
50
在线时间
95 小时
注册时间
2013-4-10
帖子
86
2
发表于 2013-7-9 08:30:54 | 只看该作者
老实说我没见过哪款游戏有这个强制功能……
就算有,LZ是想防作弊吧?可是,VA这种东西,能防老金么。。。
...
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
55 小时
注册时间
2011-10-7
帖子
36
3
 楼主| 发表于 2013-7-10 15:59:01 | 只看该作者
嫉妒の榛子 发表于 2013-7-9 08:30
老实说我没见过哪款游戏有这个强制功能……
就算有,LZ是想防作弊吧?可是,VA这种东西,能防老金么。。。 ...

不是想防作弊……= =,如果用自动存档防作弊的话只要提前把存档备份出来就破了……
只是单纯的想要自动存档而已……
记得以前见用VX的时候有用过……可是现在找不到VA的……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
323 小时
注册时间
2010-8-21
帖子
666
4
发表于 2013-7-10 19:30:41 | 只看该作者
拦截系统发送给RGSS Player的WM_CLOSE消息,调用RGSSX.dll中的RGSSEval函数使游戏存档。lz没说明白,所以没法弄
>>猛戳>>MetalSagaR游戏主页<<这里<<
欢迎提供您的意见
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
183 小时
注册时间
2010-8-3
帖子
70
5
发表于 2013-7-10 21:52:59 | 只看该作者
嫉妒の榛子 发表于 2013-7-9 08:30
老实说我没见过哪款游戏有这个强制功能……
就算有,LZ是想防作弊吧?可是,VA这种东西,能防老金么。。。 ...

刀剑封魔录退出并保存。。。ARPG游戏

点评

退出游戏时强制自动保存的类型么?好吧。果断我见识少。。。  发表于 2013-7-10 22:10

可怜之人必有可恨!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
55 小时
注册时间
2011-10-7
帖子
36
6
 楼主| 发表于 2013-7-11 00:19:16 | 只看该作者
沙漠点灰 发表于 2013-7-10 19:30
拦截系统发送给RGSS Player的WM_CLOSE消息,调用RGSSX.dll中的RGSSEval函数使游戏存档。lz没说明白,所以没 ...

看不懂……

我哪里没说明白- -?……

点评

存到哪,文件名是什么= =  发表于 2013-7-11 00:57
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
55 小时
注册时间
2011-10-7
帖子
36
7
 楼主| 发表于 2013-7-11 15:14:19 | 只看该作者
沙漠点灰 发表于 2013-7-10 19:30
拦截系统发送给RGSS Player的WM_CLOSE消息,调用RGSSX.dll中的RGSSEval函数使游戏存档。lz没说明白,所以没 ...

“存到哪,文件名是什么= =”

= =……就这样吗……?

默认就行了……

存在4号存档

路径应该是
\Save04.rvdata2
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
323 小时
注册时间
2010-8-21
帖子
666
8
发表于 2013-7-11 17:16:33 | 只看该作者
本帖最后由 沙漠点灰 于 2013-7-11 17:56 编辑

把附件的dll文件加到“工程/System”目录下,因为能力有限,所以有bug,打开多个RGSS Player时,即会出现。
在脚本最上面添加
RUBY 代码复制
  1. $hookrgss = Win32API.new("System/DllExitSave", "hookrgss", "v", "v")
  2. $hookrgss.call

再搜索“save_game",得到下面的
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 执行存档
  3.   #--------------------------------------------------------------------------
  4.   def self.save_game(index)
  5.     begin
  6.       save_game_without_rescue(index)
  7.     rescue
  8.       delete_save_file(index)
  9.       false
  10.     end
  11.   end

修改为:
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 执行存档
  3.   #--------------------------------------------------------------------------
  4.   def self.save_game(index)
  5.     return if SceneManager.scene.is_a?(Scene_Title)
  6.     begin
  7.       save_game_without_rescue(index)
  8.     rescue
  9.       delete_save_file(index)
  10.       false
  11.     end
  12.   end

即加了行,这样能保证在标题退出不会进行存档。
附:dll文件
DllExitSave.7z (3.18 KB, 下载次数: 71)
dll源代码
C 代码复制
  1. #include <windows.h>
  2. #include <stdio.h>
  3.  
  4. typedef DWORD (*EVALFUNC)(LPCSTR);
  5.  
  6. LONG oldWndProc;
  7. EVALFUNC eval;
  8. const char buf[] = "DataManager.save_game(3)";
  9.  
  10. BOOL APIENTRY DllMain( HANDLE hModule,
  11.                                           DWORD  ul_reason_for_call,
  12.                                           LPVOID lpReserved
  13.                                           )
  14. {
  15.         return TRUE;
  16. }
  17.  
  18. LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
  19.         switch(uMsg) {
  20.         case WM_CLOSE:
  21.                 eval(buf);
  22.         default:
  23.                 return CallWindowProc((WNDPROC)oldWndProc, hWnd, uMsg, wParam, lParam);
  24.         }
  25. }
  26.  
  27. extern "C" void __declspec(dllexport) hookrgss() {
  28.         HMODULE hRGSS;
  29.         oldWndProc = SetWindowLong(FindWindow(TEXT("RGSS Player"), NULL), GWL_WNDPROC, (LONG)WindowProc);
  30.         hRGSS = LoadLibrary(L"RGSS300.dll");
  31.         eval = (EVALFUNC)GetProcAddress(hRGSS, "RGSSEval");
  32. }

评分

参与人数 2星屑 +60 梦石 +1 收起 理由
迷糊的安安 + 1 认可答案 附赠66RPG提供的精美好人卡一张^^.
喵呜喵5 + 60 精品文章

查看全部评分

>>猛戳>>MetalSagaR游戏主页<<这里<<
欢迎提供您的意见
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-18 08:25

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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