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

Project1

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

我想知道这个是什么意思……

 关闭 [复制链接]

Lv1.梦旅人

剑圣

梦石
0
星屑
50
在线时间
122 小时
注册时间
2008-8-31
帖子
778
跳转到指定楼层
1
发表于 2009-5-2 06:52:28 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
问题签名:
  问题事件名称:        APPCRASH
  应用程序名:        Game.exe
  应用程序版本:        1.0.0.1
  应用程序时间戳:        40d19497
  故障模块名称:        RGSS103J.dll_unloaded
  故障模块版本:        0.0.0.0
  故障模块时间戳:        461b7b31
  异常代码:        c0000005
  异常偏移量:        02a03b00
  OS 版本:        6.0.6001.2.1.0.256.6
  区域设置 ID:        2052
  其他信息 1:        450b
  其他信息 2:        487ce75ec4ffd2ed23f84428dab84153
  其他信息 3:        4a8a
  其他信息 4:        f7f6bf9a8012ecc9af9bad40106d7c8b
======================================================
======================================================

在旧版本的avi播放器里,放视频放完后出现的情况,
很诡异的是如果在游戏刚开始(比如刚运行或者标题画面)的时候放就不会有问题(Scaur of The Dragons SC 的片头用的就是这个avi脚本,因为从来没有出现过播放不能的情况,所以想试一试),而在事件进行到一半的时候播放完视频后就会出现RM崩溃 = =

似乎牵涉到了太多太多麻烦的问题,希望能有人解释一下就行
脚本如下
  1. # ————————————————————————————————————
  2. # 本脚本来自www.66rpg.com,转载请保留此信息
  3. # ————————————————————————————————————

  4. class Scene_Movie
  5.   def initialize(movie,length,exit_to_game=true)
  6.    @readini = Win32API.new 'kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l'
  7.    @movie_name = "mov/"+movie
  8.    @counter = length
  9.    @exit_to_game = exit_to_game
  10. end
  11. def main
  12.    game_name = "\0" * 256
  13.    @readini.call('Game','Title','',game_name,255,".\\Game.ini")
  14.    game_name.delete!("\0")
  15.    Graphics.transition
  16.    @wnd = Win32API.new('user32','FindWindowEx','%w(l,l,p,p)','L')
  17.    @temp = @wnd.call(0,0,nil,game_name).to_s
  18.    @movie = Win32API.new('winmm','mciSendString','%w(p,p,l,l)','V')
  19.    @movie.call("open \""+@movie_name+"\" alias FILE style 1073741824 parent " + @temp.to_s,0,0,0)
  20.    @message = Win32API.new('user32','SendMessage','%w(l,l,l,l)','V')
  21.    @detector = Win32API.new('user32','GetSystemMetrics','%w(l)','L')
  22.    @width = @detector.call(0)
  23.    if @width == 640
  24.      fullscreen
  25.      Graphics.update
  26.      sleep(1)
  27.      Graphics.update
  28.      sleep(1)
  29.      Graphics.update
  30.      sleep(1)
  31.    end
  32.    @movie.call("play FILE",0,0,0)
  33.    loop do
  34.      sleep(1)
  35.      @message.call(@temp.to_i,11,0,0)
  36.      Graphics.update
  37.      @message.call(@temp.to_i,11,1,0)
  38.      Input.update
  39.      if Input.trigger?(Input::B)
  40.        break
  41.      end
  42.      @counter = @counter - 1
  43.      if @counter <= 0
  44.        break
  45.      end
  46.    end
  47.    @movie.call("close FILE",0,0,0)
  48.    if @exit_to_game
  49.      $scene = Scene_Map.new
  50.    else
  51.      $scene = Scene_Title.new
  52.    end
  53.    Graphics.freeze
  54.    if @width == 640
  55.      fullscreen
  56.    end
  57. end
  58. end
  59. def fullscreen()
  60.   $full.call(18,0,0,0)
  61.   $full.call(13,0,0,0)
  62.   $full.call(18,0,2,0)
  63.   $full.call(13,0,2,0)
  64. end
  65. $full = Win32API.new('user32','keybd_event','%w(l,l,l,l)','')
复制代码

版务信息:本贴由楼主自主结贴~

PC/IOS/Android共享的RM RPG:未名大学

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
2
发表于 2009-5-2 07:53:55 | 只看该作者
我在事件执行中途测试播放了一下,似乎没有问题诶……

我没用过 vista,不知这个错误信息是否相当于 XP 的“XX.EXE 遇到问题需要关闭。……发送错误报告……”的那个错误提示?如果是的话通常是由于内存分段错误引起的~
访问一块只读、不可访问、已经释放、随机或未知的内存就会发生这样的错误

像上面这种调用 MCI 播放视频的脚本,就可能是由于视频资源读取失败后又尝试访问该设备的相关信息而引起的,由于没有捕获异常,所以程序直接被喀嚓了……
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-16 03:01

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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