查看: 2273|回复: 13

[已经解决] 如何在没出错的时候用指令调出报错弹窗?已解决

[复制链接]
梦石
0
星屑
1021
在线时间
90 小时
注册时间
2022-12-26
回帖
79
发表于 2023-1-26 14:37:34 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 爱羊真知己 于 2023-1-30 13:48 编辑

VA的报错弹窗和正常弹窗界面是不一样的。正常弹窗是可以用脚本调出的,但报错弹窗我还没找到方法。那么如何用脚本调出报错弹窗呢?(弹窗中的文字需要能自定义,且游戏不会真的崩掉)如果直接调不行,更改正常弹窗以达到此效果也行。(需要保留正常弹窗及msgbox指令)
另外,再问一个问题:可以用插入的脚本覆盖RMVA自带且不在编辑器中的系统界面、文字、指令(例如上文的弹窗,exit指令)吗?如果做不到,利用dll(放在游戏目录中,不是安装目录)可以做到吗?

点评

可以了2333333333  发表于 2023-1-27 10:46

评分

参与人数 1赞 +1 收起 理由
alexncf125 + 1 不可以

查看全部评分

你好!
梦石
0
星屑
1021
在线时间
90 小时
注册时间
2022-12-26
回帖
79
 楼主| 发表于 2023-1-26 14:39:06 | 显示全部楼层
不要问我要这个干什么……
你好!
回复

使用道具 举报

梦石
0
星屑
1021
在线时间
90 小时
注册时间
2022-12-26
回帖
79
 楼主| 发表于 2023-1-26 15:30:31 | 显示全部楼层
(回复@alexncf125 )啊……果然稀奇古怪的东西VA做不到。
你好!
回复

使用道具 举报

梦石
10
星屑
39550
在线时间
1919 小时
注册时间
2010-11-14
回帖
3214

R考场第七期纪念奖

发表于 2023-1-26 22:52:31 | 显示全部楼层
本帖最后由 KB.Driver 于 2023-1-31 20:52 编辑

(1)这两段插入脚本编辑器

[pre lang="ruby"]class String
  CP_ACP = 0
  CP_UTF8 = 65001

  MultiByteToWideChar = Win32API.new(*%w[kernel32 MultiByteToWideChar ilpipi i])
  WideCharToMultiByte = Win32API.new(*%w[kernel32 WideCharToMultiByte ilpipipp i])

  def utf8_to_gb2312
    n = 0
    i = MultiByteToWideChar.call(CP_UTF8, 0, self, -1, nil, 0)
    buffer = "\0" * (i * 2)
    MultiByteToWideChar.call(CP_UTF8, 0, self, -1, buffer, i)
    i = WideCharToMultiByte.call(CP_ACP, 0, buffer, -1, nil, 0, nil, nil)
    result = "\0" * i
    WideCharToMultiByte.call(CP_ACP, 0, buffer, -1, result, i, nil, nil)
    result.chop!
    return result
  end

  def gb2312_to_utf8
    n = self.size
    i = MultiByteToWideChar.call(CP_ACP, 0, self, n+1, nil, 0)
    buffer = "\0" * (i*2)
    i = MultiByteToWideChar.call(CP_ACP, 0, self, n+1, buffer, i)
    i = WideCharToMultiByte.call(CP_UTF8, 0, buffer, -1, nil, 0, nil, nil)
    result = "\0" * i
    WideCharToMultiByte.call(CP_UTF8, 0, buffer, -1, result, i, nil, nil)
    result.chop!
    return result
  end
end[/pre]

[pre lang="ruby"]GetForegroundWindow = Win32API.new(*%W[user32.dll GetForegroundWindow v l])
MessageBox = Win32API.new(*%W[user32.dll MessageBox lppl l])
Hwnd = GetForegroundWindow.call[/pre]

(2)事件脚本用这个

[pre lang="ruby"]text = "测试文本\n\n这是第二行"
title = "测试标题"
MessageBox.call(Hwnd, text.utf8_to_gb2312, title.utf8_to_gb2312, 48)[/pre]

(3)效果参考

RM自身的报错
QQ图片20230126224112.png

使用脚本的效果,是不是一模一样?
QQ截图20230126224106.jpg

可以用事件脚本触发,编辑文字显示不同内容
QQ截图20230126224814.jpg
用头画头像,用脚写脚本
回复

使用道具 举报

梦石
0
星屑
1021
在线时间
90 小时
注册时间
2022-12-26
回帖
79
 楼主| 发表于 2023-1-27 13:49:45 | 显示全部楼层
KB.Driver 发表于 2023-1-26 22:52
(1)这两段插入脚本编辑器

class String

这个脚本第12行崩溃了……(SyntaxError)
所以你测试这个脚本时是用新游戏测试的吗?
你好!
回复

使用道具 举报

梦石
0
星屑
1021
在线时间
90 小时
注册时间
2022-12-26
回帖
79
 楼主| 发表于 2023-1-27 16:02:54 | 显示全部楼层
本帖最后由 爱羊真知己 于 2023-1-27 16:58 编辑
爱羊真知己 发表于 2023-1-27 13:49
这个脚本第12行崩溃了……(SyntaxError)
所以你测试这个脚本时是用新游戏测试的吗? ...


或者Steam的RM才能用?
你好!
回复

使用道具 举报

梦石
10
星屑
39550
在线时间
1919 小时
注册时间
2010-11-14
回帖
3214

R考场第七期纪念奖

发表于 2023-1-27 20:54:15 | 显示全部楼层
爱羊真知己 发表于 2023-1-27 13:49
这个脚本第12行崩溃了……(SyntaxError)
所以你测试这个脚本时是用新游戏测试的吗? ...

我检查了一下,复制上来的时候不知道为什么少了一个逗号。
现在改好了,你可以再试一下。

点评

请问还在吗?  发表于 2023-1-29 16:08

评分

参与人数 1赞 +1 收起 理由
爱羊真知己 + 1 认可答案

查看全部评分

用头画头像,用脚写脚本
回复

使用道具 举报

梦石
0
星屑
1021
在线时间
90 小时
注册时间
2022-12-26
回帖
79
 楼主| 发表于 2023-1-28 16:37:46 | 显示全部楼层
KB.Driver 发表于 2023-1-27 20:54
我检查了一下,复制上来的时候不知道为什么少了一个逗号。
现在改好了,你可以再试一下。 ...

谢谢……不对啊,为什么内容和标题都只显示第一个字?

点评

可以了,谢谢!  发表于 2023-1-30 13:48
MultiByteToWideChar.call(CP_UTF8, 0, self, 1, nil, 0)的1改成-1  发表于 2023-1-30 01:55
你好!
回复

使用道具 举报

梦石
10
星屑
39550
在线时间
1919 小时
注册时间
2010-11-14
回帖
3214

R考场第七期纪念奖

发表于 2023-1-31 20:54:09 | 显示全部楼层
爱羊真知己 发表于 2023-1-28 16:37
谢谢……不对啊,为什么内容和标题都只显示第一个字?

有点离谱,我从脚本编辑器复制到论坛然后发布,-1就自动动变成1了。
感谢 @gqxastg  帮忙回复。
用头画头像,用脚写脚本
回复

使用道具 举报

梦石
0
星屑
1021
在线时间
90 小时
注册时间
2022-12-26
回帖
79
 楼主| 发表于 2023-2-1 12:55:46 | 显示全部楼层
KB.Driver 发表于 2023-1-31 20:54
有点离谱,我从脚本编辑器复制到论坛然后发布,-1就自动动变成1了。
感谢 @gqxastg  帮忙回复。 ...

主要是我也不敢乱改,毕竟我曾经因为乱改这种需要调用PC系统数据的脚本导致游戏崩溃,改回去、删除脚本都没用,最后换了一个Scripts.rvdata2才正常……
你好!
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部