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

Project1

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

[已经解决] 遇到alias的BUG按F12提示stack level too deep,只有VA正常

[复制链接]

Lv2.观梦者

梦石
0
星屑
480
在线时间
177 小时
注册时间
2006-10-3
帖子
618
跳转到指定楼层
1
发表于 2014-7-2 20:17:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 流川枫 于 2014-7-2 20:32 编辑

class << Graphics
  alias original_update update
  def update
    original_update
  end
end

将以上脚本加到VX和XP进入游戏按F12会提示以下错误,但VA是正常的。



---------------------------
Project4
---------------------------
脚本 ' ' 的第 4 行发生了 SystemStackError .

stack level too deep
---------------------------
确定   
---------------------------
在我初学RM的时候觉得脚本是高手的工具,等我学会了编程技术后才发现脚本原来是小孩子的玩具。

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2207
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2014-7-2 20:17:45 | 只看该作者
本帖最后由 taroxd 于 2014-7-2 20:24 编辑
  1. alias_method :original_update, :update unless method_defined? :original_update # 私有方法一边去
复制代码
因为坑爹的XP和VX在F12时不会重新加载RGSS内部脚本

VA干脆连外部的也不重新加载了,省了很多事。但是在将Bitmap设为常量/类变量的时候,仍然会出现 disposed_bitmap 问题。

点评

是VX  发表于 2014-7-2 20:27
你用的是VX么,我是用VX,进入后按F12用你的脚本根本就不会弹出任何错误。不会弹出游戏选项窗口  发表于 2014-7-2 20:26
我这边没有问题  发表于 2014-7-2 20:24
行不通  发表于 2014-7-2 20:21

评分

参与人数 1星屑 +50 收起 理由
怪蜀黍 + 50 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1759
在线时间
2524 小时
注册时间
2010-10-12
帖子
1454

开拓者

3
发表于 2014-7-2 20:18:18 | 只看该作者
现在流行在水区提问?

点评

人多↓  发表于 2014-7-2 20:23
总在水区看到提问、预告、什么的。 将来就要乱版了。  发表于 2014-7-2 20:23
人多  发表于 2014-7-2 20:21
涉及3款软件,不知道在哪里提问了  发表于 2014-7-2 20:20

回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
480
在线时间
177 小时
注册时间
2006-10-3
帖子
618
4
 楼主| 发表于 2014-7-2 20:24:12 | 只看该作者
taroxd 发表于 2014-7-2 20:17
因为坑爹的XP和VX在F12时不会重新加载RGSS内部脚本

VA干脆连外部的也不重新加载了,省了很多事。但是在将B ...

试了不行,因为根本就没有调用原始的更新
在我初学RM的时候觉得脚本是高手的工具,等我学会了编程技术后才发现脚本原来是小孩子的玩具。
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4504
在线时间
5228 小时
注册时间
2009-4-29
帖子
14318

贵宾

5
发表于 2014-7-2 20:26:03 | 只看该作者
  1. alias original_update update
  2.   def update
  3.     original_update
  4.   end
复制代码
这个alias有什么意义?什么都没有追加,没有任何意义直接删去得了。

点评

这其实是删减了的代码,在正式的脚本中是有其他代码的实现加速播放,可以加速到上千FPS  发表于 2014-7-2 20:28

评分

参与人数 1星屑 +10 收起 理由
taroxd + 10 只是演示吧……

查看全部评分

《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2207
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

6
发表于 2014-7-2 20:26:45 | 只看该作者
流川枫 发表于 2014-7-2 20:24
试了不行,因为根本就没有调用原始的更新

我这边试没有问题啊?

  1. class << Graphics
  2.   alias_method :up, :update unless method_defined? :up
  3.   def update
  4.     up
  5.   end
  6. end
复制代码

评分

参与人数 1星屑 +15 收起 理由
流川枫 + 15 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
480
在线时间
177 小时
注册时间
2006-10-3
帖子
618
7
 楼主| 发表于 2014-7-2 20:31:06 | 只看该作者
taroxd 发表于 2014-7-2 20:26
我这边试没有问题啊?

好吧,刚才我可能复制粘贴出错了,OK了!
在我初学RM的时候觉得脚本是高手的工具,等我学会了编程技术后才发现脚本原来是小孩子的玩具。
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
39755
在线时间
7487 小时
注册时间
2009-7-6
帖子
13484

开拓者贵宾

8
发表于 2014-7-2 20:33:29 | 只看该作者
流川枫 发表于 2014-7-2 20:24
试了不行,因为根本就没有调用原始的更新


你对汇编有研究这种东西应该难不住你,详细的跟踪DefWindowProc是如何处理F12的按键消息的。
我说个大概。
抛出Reset异常,eval以下内容
Graphics._reset
Input.update
Audio.me_stop
Audio.se_stop
Audio.bgm_stop
Audio.bgs_stop
GC.start

其中并没有取消alias命名的别名,处理方式也不难。
在每个alias后面加上unless $@就行。
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
480
在线时间
177 小时
注册时间
2006-10-3
帖子
618
9
 楼主| 发表于 2014-7-2 20:35:42 | 只看该作者
fux2 发表于 2014-7-2 20:33
你对汇编有研究这种东西应该难不住你,详细的跟踪DefWindowProc是如何处理F12的按键消息的。
我说个大概 ...

ruby语言我只是看了RM自带的帮助,alias在帮助里没介绍这么详细所以不知道

点评

从错误提示上我知道是函数重复重命名,导致死递归。但是刚才并不知道ruby的alias检测是否已经重复定义的语法,因为帮助里没说  发表于 2014-7-2 20:38
这是Reset的错,不是alias的错_(:з」∠)_  发表于 2014-7-2 20:36
在我初学RM的时候觉得脚本是高手的工具,等我学会了编程技术后才发现脚本原来是小孩子的玩具。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-2 06:06

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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