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

Project1

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

[已经解决] F12後發生 腳本錯誤 [更新]

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2111
在线时间
950 小时
注册时间
2015-7-16
帖子
767

开拓者

跳转到指定楼层
1
发表于 2016-2-10 18:37:18 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 duzine 于 2016-2-10 21:54 编辑

如題

於是很常引發BUG的我再度來回報一下新年的BUG

以前沒有問題,不過最近發現使用腳本修改標題畫面後,出現了錯誤 (如圖)

是什麼原因造成的呢?

觸發過程:
先切換標題後,F12確認標題運作正常,按開始遊戲就出現問題了


更新:
發現是只要F12就會發生,排除是腳本修改標題畫面的問題

[神性领域扩张:扩张神性领域]
说了等于没说.

Lv3.寻梦者 (版主)

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

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

开拓者贵宾

2
发表于 2016-2-11 09:17:06 | 只看该作者
本帖最后由 taroxd 于 2016-2-11 09:23 编辑

F12 之后,main 脚本页中 rgss_main 之前的脚本都不会重新执行一遍,但是在 rgss_main 之前生成的 Bitmap 等都会被释放(dispose)

请检查是否在 rgss_main 之前生成了位图,并且没有检查是否释放。

要预先生成 Bitmap 缓存的话,可以参考这里的方法 Taroxd::Sight.shadow:
http://taroxd.github.io/rgss/%E8 ... 99%90%E5%88%B6.html

点评

不過我後來使用了F12修正腳本,稍微修改了一下,移除一些BUG  发表于 2016-2-11 13:12

评分

参与人数 1星屑 +10 收起 理由
duzine + 10 受教了 原來如此

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2111
在线时间
950 小时
注册时间
2015-7-16
帖子
767

开拓者

3
 楼主| 发表于 2016-2-11 13:13:47 | 只看该作者
F12修正腳本(原版除錯)版
  1. #==============================================================================
  2. #   ** F12 Reset Fix
  3. #   Author: Acezon
  4. #   Date: 2 June 2013
  5. #------------------------------------------------------------------------------
  6. #   Version 2.1
  7. #   - Fixed issue where game window is not in focus
  8. #     when Console_on is set to false
  9. #   - Now compatible with Tsuki's Test Edit script
  10. #   Version 2.0
  11. #   - Console option added
  12. #   - Automatically focuses window after pressing F12
  13. #   Version 1.1
  14. #   - Respawning the exe was better
  15. #   Version 1.0
  16. #   - Initial Release
  17. #------------------------------------------------------------------------------
  18. #   Just credit me. Free to use for commercial/non-commercial games.
  19. #   Thanks to Tsukihime and Cidiomar for the console scriptlet
  20. #==============================================================================

  21. $imported = {} if $imported.nil?
  22. $imported["Acezon-F12ResetFix"] = true

  23. #==============================================================================
  24. # ** START Configuration
  25. #==============================================================================
  26. module Config
  27.   Console_on = false       # duh
  28. end
  29. #==============================================================================
  30. # ** END Configuration
  31. #==============================================================================

  32. alias f12_reset_fix rgss_main
  33. def rgss_main(*args, &block)
  34.   f12_reset_fix(*args) do
  35.     if $run_once_f12
  36.        #pid = spawn ($TEST ? 'Game.exe test' : 'Game')
  37.        pid = spawn ($TEST ? 'Game.exe test' : 'Game.exe')
  38.       # Tell OS to ignore exit status
  39.       Process.detach(pid)
  40.       sleep(0.01)
  41.       exit
  42.     end
  43.     $run_once_f12 = true
  44.     # Run default rgss_main
  45.     block.call
  46.   end
  47. end

  48. module SceneManager
  49.   class << self
  50.     alias :acezon_f12_first :first_scene_class
  51.   end

  52.   def self.first_scene_class
  53.     focus_game_window
  54.     acezon_f12_first
  55.   end

  56.   def self.focus_game_window
  57.     # Just to prevent re-spawning the console since
  58.     # Tsuki uses this same part in his Test Edit script
  59.     if !$imported["TH_TestEdit"]
  60.       # Get game window text
  61.       console_w = Win32API.new('user32','GetForegroundWindow', 'V', 'L').call
  62.       buf_len = Win32API.new('user32','GetWindowTextLength', 'L', 'I').call(console_w)
  63.       str = ' ' * (buf_len + 1)
  64.       Win32API.new('user32', 'GetWindowText', 'LPI', 'I').call(console_w , str, str.length)

  65.       if Config::Console_on
  66.         # Initiate console
  67.         Win32API.new('kernel32.dll', 'AllocConsole', '', '').call
  68.         Win32API.new('kernel32.dll', 'SetConsoleTitle', 'P', '').call('RGSS3 Console')
  69.         $stdout.reopen('CONOUT)
  70.       end
  71.     end
  72.   end
  73. end
复制代码
[神性领域扩张:扩张神性领域]
说了等于没说.
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 07:37

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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