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

Project1

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

[已经解决] 半生的烛光脚本出现了RGSSError?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
72 小时
注册时间
2013-3-2
帖子
16
跳转到指定楼层
1
发表于 2017-6-26 23:14:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 我的目标丁马克 于 2017-7-1 09:06 编辑

一按Esc打开菜单后便会弹窗“RGSSError”“failed to create bitmap”,但平时却十分完好…
顺便,明明之前可以正常使用...也能正常地打开菜单...今天下午突然就崩了!我也不知道该怎么办...

出错的是231行。
  1. # coding: utf-8
  2. =begin
  3. = Bitmap类拡张 (DLL版)
  4. RPGツクールXP/VX/VA共用
  5. 添加功能 Bitmap 类。
  6. - Marshaldump 启用
  7. - 保存为PNG文件
  8. -色调变化
  9. -马赛克效果
  10. -反相颜色
  11. -模糊效果
  12. -使用遮罩-切除
  13. -混合

  14. ■ 注意
  15. 这个脚本需要"tktk_bitmap.dll"(ver0.1.2.6以上)。

  16. Author::    半生
  17. Date::      2010/12/13
  18. Version::   0.1.2.6
  19. URL::       [url]http://www.tktkgame.com/[/url]

  20. ################更新########################
  21. 2010/12/13 ver 0.1.2.6
  22.  dll名称从"hn_rg_bitmap.dll"变更为"tktk_bitmap.dll"
  23.  LARGE_BITMAP机能でメモリを确保できなかった场合の処理を追加
  24. 2010/10/12 ver 0.1.2.5(デンジャラスベータ版)
  25.  大きいサイズのBitmapオブジェクトを机能を试験的に実装(危険)
  26. 2010/03/24 ver 0.1.2.2
  27.  ブレンディング机能関连の軽量化。
  28.  画像连结系メソッドの分离。
  29. 2010/03/24 ver 0.1.2.1
  30.  ブレンディング机能関连のバグフィックス
  31. 2010/03/22 ver 0.1.2.0
  32.  加算合成等のブレンディング机能の追加
  33. 2010/02/07 ver 0.1.1.0
  34.  マーシャル化の処理の一部をDLLに移动
  35. 2010/01/17 ver 0.1.0.0
  36.  dllの名称を"hn_rx_bitmap.dll"から"hn_rg_bitmap.dll"に変更
  37.  モザイク効果・色反転・ぼかし効果の追加
  38. ############################################
  39. =end

  40. module TKTK_Bitmap
  41.   LARGE_BITMAP = true # 是否使用大型点阵图的功能
  42.   DLL_NAME = 'tktk_bitmap'

  43.   ERROR_ALLOCATE_FAILED = -110002

  44.   @@png_save = Win32API.new(DLL_NAME, 'PngSaveA', 'p n i i', 'i')
  45.   @@blur = Win32API.new(DLL_NAME, 'Blur', 'n i', 'i')
  46.   @@change_tone = Win32API.new(DLL_NAME, 'ChangeTone', 'n i i i i', 'i')
  47.   @@clip_mask = Win32API.new(DLL_NAME, 'ClipMask', 'n n i i i', 'i')
  48.   @@invert = Win32API.new(DLL_NAME, 'InvertColor', 'n', 'i')
  49.   @@mosaic = Win32API.new(DLL_NAME, 'Mosaic', 'n i i i i i i', 'i')
  50.   @@address = Win32API.new(DLL_NAME, 'GetAddress', 'n', 'n')
  51.   @@get_pixel_data = Win32API.new(DLL_NAME, 'GetPixelData', 'n p i', 'i')
  52.   @@set_pixel_data = Win32API.new(DLL_NAME, 'SetPixelData', 'n p i', 'i')
  53.   @@blend_blt = Win32API.new(DLL_NAME, 'BlendBlt', 'n i i n i i i i i i', 'i')
  54.   #@@get_hwnd = Win32API.new(DLL_NAME, 'GetGameHWND', 'v', 'l')
  55.   @@change_size = Win32API.new(DLL_NAME, 'ChangeSize', 'n i i', 'i')
  56.   module_function

  57.   # PNG形式储存
  58.   def png_save(bitmap,file_name,compression_level,filter)
  59.     return @@png_save.call(file_name, bitmap.object_id, compression_level, filter)
  60.   end

  61.   # 模糊效果
  62.   def blur(bitmap, r = 1)
  63.     return @@blur.call(bitmap.object_id, r)
  64.   end
  65.   
  66.   # 更改颜色平衡?
  67.   def change_tone(bitmap, red = 0, green = 0, blue = 0, simplify = 1)
  68.     return @@change_tone.call(bitmap.object_id, red, green, blue, simplify)
  69.   end
  70. # 剪贴蒙版图像(α乘法)
  71.   def clip_mask(g_bitmap, m_bitmap, x=0, y=0, outer=0)
  72.     return @@clip_mask.call(g_bitmap.object_id, m_bitmap.object_id, x, y, outer)
  73.   end

  74.   # 色的反转
  75.   def invert(bitmap)
  76.     return @@invert.call(bitmap.object_id)
  77.   end

  78.   # 马赛克效果
  79.   def mosaic(bitmap, msw=5, msh=5)
  80.     return self.mosaic_rect(bitmap, bitmap.rect, msw, msh)
  81.   end

  82.   # 马赛克效果(范围指定)
  83.   def mosaic_rect(bitmap, rect, msw=5, msh=5)
  84.     return @@mosaic.call(bitmap.object_id,
  85.     rect.x, rect.y, rect.width, rect.height, msw, msh)
  86.   end

  87.   # 获取Bitmap资料位址
  88.   def address(bitmap)
  89.     return @@address.call(bitmap.object_id)
  90.   end
  91.   
  92.   # 二进位资料获取点Bitmap阵图
  93.   def get_pixel_data(bitmap)
  94.     buffer = "bgra" * bitmap.width * bitmap.height
  95.     @@get_pixel_data.call(bitmap.object_id, buffer, buffer.size)
  96.     return buffer
  97.   end
  98.   
  99.   #替换为Bitmap中的二进位资料
  100.   def set_pixel_data(bitmap, data)
  101.     return @@set_pixel_data.call(bitmap.object_id, data, data.size)
  102.   end
  103.   
  104.   def blend_blt(dest_bmp, x, y, src_bmp, rect, blend_type=0, opacity=255)
  105.     @@blend_blt.call(dest_bmp.object_id, x, y, src_bmp.object_id,
  106.                 rect.x, rect.y, rect.width, rect.height,
  107.                 blend_type, opacity)
  108.   end

  109.   # 改变Bitmap的大小(风险)
  110.   def change_size(bitmap, new_width, new_height)
  111.     return -1 if (new_width <=0 or new_height <= 0)
  112.     result = @@change_size.call(bitmap.object_id, new_width, new_height)
  113.     if result == ERROR_ALLOCATE_FAILED
  114.       raise("tktk_bitmap:ERROR ALLOCATE FAILED")
  115.     end
  116.     return result
  117.   end
  118.   
  119. end

  120. class Font
  121.   def marshal_dump;end
  122.   def marshal_load(obj);end
  123. end
  124. class Bitmap
  125.   # PNG 压缩筛检程式
  126.   PNG_NO_FILTERS   = 0x00
  127.   PNG_FILTER_NONE  = 0x08
  128.   PNG_FILTER_SUB   = 0x10
  129.   PNG_FILTER_UP    = 0x20
  130.   PNG_FILTER_AVG   = 0x40
  131.   PNG_FILTER_PAETH = 0x80
  132.   PNG_ALL_FILTERS  = (PNG_FILTER_NONE | PNG_FILTER_SUB | PNG_FILTER_UP |
  133.                       PNG_FILTER_AVG | PNG_FILTER_PAETH)

  134.   # Marshal_dump
  135.   def _dump(limit)
  136.     return "" if self.disposed?
  137.     data = TKTK_Bitmap.get_pixel_data(self)
  138.     [width, height, Zlib::Deflate.deflate(data)].pack("LLa*") # ついでに圧缩
  139.   end
  140.   
  141.   # Marshal_load
  142.   def self._load(str)
  143.     if str == ""
  144.       b = Bitmap.new(1,1)
  145.       b.dispose
  146.       return b
  147.     end
  148.     w, h, zdata = str.unpack("LLa*"); b = new(w, h)
  149.     TKTK_Bitmap.set_pixel_data(b, Zlib::Inflate.inflate(zdata))
  150.     return b
  151.   end  
  152.   
  153.   def address
  154.     TKTK_Bitmap.address(self)
  155.   end

  156.   #     模糊效果
  157.   def blur2(r=1)
  158.     TKTK_Bitmap.blur(self, r)
  159.   end

  160.   # 色调变化
  161.   def change_tone(red, green, blue, simplify = 1)
  162.     TKTK_Bitmap.change_tone(self, red, green, blue, simplify)
  163.   end
  164.   
  165.   # 剪切
  166.   def clip_mask(bitmap, x=0, y=0, outer=0)
  167.     TKTK_Bitmap.clip_mask(self, bitmap, x, y, outer)
  168.   end

  169.   # 反相颜色
  170.   def invert
  171.     TKTK_Bitmap.invert(self)
  172.   end

  173.   # 马赛克效果
  174.   def mosaic(msw=5, msh=5)
  175.     TKTK_Bitmap.mosaic(self, msw, msh)
  176.   end

  177.   # 马赛克效果 (指定区域)
  178.   def mosaic_rect(rect=self.rect, msw=5, msh=5)
  179.     TKTK_Bitmap.mosaic_rect(self, rect, msw, msh)
  180.   end

  181.   # 混合
  182.   def blend_blt(x, y, src_bmp, rect, blend_type=0, opacity=255)
  183.     return if opacity <= 0
  184.     TKTK_Bitmap.blend_blt(self, x, y, src_bmp, rect, blend_type, opacity)
  185.   end

  186.   #Png 格式保存
  187.   def png_save(outp, level = 9, filter = PNG_NO_FILTERS)
  188.     if (TKTK_Bitmap.png_save(self, outp, level, filter) != 0)
  189.       raise("Bitmap\#png_save failed")
  190.     end
  191.   end

  192.   # 允许更大的 bitmap.new (危険)
  193.   # 宽度 * 高度大约是1073741823
  194.   if TKTK_Bitmap::LARGE_BITMAP
  195.     class << self
  196.       unless method_defined?(:_hn_large_bm__new)
  197.         alias :_hn_large_bm__new :new
  198.       end
  199.       def new(*args)
  200.         if args.size == 2 && args[0] * args[1] >= 4194304
  201.           new_width = args[0]
  202.           new_height = args[1]
  203.           # 暂时以小尺寸作成
  204.           bitmap = _hn_large_bm__new(16, 16)
  205.           TKTK_Bitmap.change_size(bitmap, new_width, new_height)
  206.           return bitmap
  207.         else
  208.           _hn_large_bm__new(*args)
  209.         end
  210.       end
  211.     end # Bitmap.new
  212.   end
  213. end # CLASS Bitmap
复制代码

Lv5.捕梦者 (暗夜天使)

梦石
18
星屑
12191
在线时间
2049 小时
注册时间
2012-12-12
帖子
541
2
发表于 2017-6-26 23:33:32 | 只看该作者
是不是又加了新的脚本?如果是读旧档来测试的话,就会因为不兼容而报错。
重头开始游戏的话就不会报错了,如果依旧报错的话,我就不清楚了……

葱兔の游戏列表 (´・ω・`)
回复 支持 反对

使用道具 举报

Lv6.析梦学徒

老鹰

梦石
40
星屑
34720
在线时间
6739 小时
注册时间
2012-5-26
帖子
3259

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

3
发表于 2017-6-26 23:56:33 | 只看该作者
先试试关闭它的大型bitmap功能?
45行true改成false
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42349
在线时间
7599 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

4
发表于 2017-6-27 00:25:26 | 只看该作者
说好的烛光脚本呢……这不是图像处理的脚本吗,我怀疑是创造了一个0x0的bitmap
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
72 小时
注册时间
2013-3-2
帖子
16
5
 楼主| 发表于 2017-6-27 09:29:41 | 只看该作者
congwsbn 发表于 2017-6-26 23:33
是不是又加了新的脚本?如果是读旧档来测试的话,就会因为不兼容而报错。
重头开始游戏的话就不会报错了, ...

重开游戏的话还是不行..._(:3ゝ∠)_
要说我做了什么的话...也就是改了张脸图....
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
72 小时
注册时间
2013-3-2
帖子
16
6
 楼主| 发表于 2017-6-27 09:30:23 | 只看该作者
百里_飞柳 发表于 2017-6-26 23:56
先试试关闭它的大型bitmap功能?
45行true改成false

然后就变成了“Cache”这里报错了...

点评

并没有少图片呢...  发表于 2017-6-27 11:34
这个bitmap扩展脚本里没有cache相关东西,请确定不是因为缺少素材图片(比如灯光图片)而出错  发表于 2017-6-27 10:26
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
72 小时
注册时间
2013-3-2
帖子
16
7
 楼主| 发表于 2017-6-27 09:31:54 | 只看该作者
fux2 发表于 2017-6-27 00:25
说好的烛光脚本呢……这不是图像处理的脚本吗,我怀疑是创造了一个0x0的bitmap ...

啊,它有两个部分...烛光脚本得先有这个bitmap的脚本才能运行...
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

梦石
1
星屑
20985
在线时间
4886 小时
注册时间
2014-12-22
帖子
1527

开拓者

8
发表于 2017-6-27 20:38:17 | 只看该作者
一按Esc打开菜单就报错,在地图里没事(照我理解就是烛光运行正常对么),再结合你说的只改了脸图,那最可能的是你菜单界面哪里改出问题了,而不是这个脚本的锅。
报错有时候不会给你真正出错的地方,同时排查一下菜单的相关脚本看看~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
72 小时
注册时间
2013-3-2
帖子
16
9
 楼主| 发表于 2017-6-30 11:12:40 | 只看该作者
算是过来结帖一下?
因为实在找不出究竟是什么原因导致报错,灰心的我想:干脆重做一个工程算了!
结果,原封不动地把所有东西(包括报错的此脚本)转移到新工程后,
菜单它居然神奇般地...好了......不报错了...((难道是我测试太多次而导致系统坏掉了吗?))
所以....非常感谢各位大佬的相助...
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
20
在线时间
1 小时
注册时间
2021-8-31
帖子
2
10
发表于 2021-11-8 11:18:22 | 只看该作者
我的目标丁马克 发表于 2017-6-30 11:12
算是过来结帖一下?
因为实在找不出究竟是什么原因导致报错,灰心的我想:干脆重做一个工程算了!
结果,原 ...

管理员见谅,我有问题要问楼主,这个脚本运行时显示第50行出错,“LoadLibrary: tktk_bitmap”。

点评

https://rpg.blue/thread-482815-1-1.html  发表于 2021-11-8 11:44
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 04:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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