| 赞 | 46 |
| VIP | |
| 好人卡 | |
| 积分 | 329 |
| 经验 | |
| 最后登录 | 2026-2-3 |
| 在线时间 | 248 小时 |
- 梦石
- 24
- 星屑
- 8942
- 在线时间
- 248 小时
- 注册时间
- 2020-12-4
- 回帖
- 259
  
|
发表于 2023-5-30 18:54:59
|
显示全部楼层
本帖最后由 纯属小虫 于 2023-5-31 17:27 编辑
2023.05.30
试了试自己的工程,尝试能不能移植(抱紧大佬大腿死缠烂打)
第一次错误报告INFO: RGModern starts running...
WARN: [Kernel] the cooperation type is exclusive.
WARN: [Driver] use direct3d for rendering
WARN: [Driver] max texture 16384 x 16384
start ruby.
resource prefix = resource://
render driver = direct3d9 (2)
build mode = 2
WARN: [Input] text input is stopped
[Warning] resize window might destory all bitmaps.
Bitmaps in RPG::Cache are automatically reloaded.
Reload 0 bitmaps in total.
【对话】快捷指令●:7: warning: already initialized constant RB::Mes_Config::Shortcuts
【对话】对话框基础:191: warning: previous definition of Shortcuts was here
【对话】快捷指令●:12: warning: already initialized constant RB::Mes_Config::Shortcuts_Regexp
【对话】对话框基础:195: warning: previous definition of Shortcuts_Regexp was here
Error occurs when load Data/Scripts.rxdata.
superclass mismatch for class Game_Actor
- 【技能】●装备状态附加:5:in `block in rgss_main'
- eval:36:in `eval'
- eval:36:in `block in rgss_main'
- eval:32:in `each'
- eval:32:in `rgss_main'
- eval:60:in `load_script'
- eval:23:in `load_script'
- eval:23:in `load_script'
- eval:69:in `<main>'
- ruby:in `load_script'
libpng warning: iCCP: cHRM chunk does not match sRGB
请问,问题是出在【对话】的两个脚本,以及【技能】●装备状态附加 这个脚本中码?
还是说我操作错了,我只把【Game.exe】丢到旧工程里替换了一下

2023.05.31
发生错误的代码#===============================================================================
# ● 【简易坑爹系列】武器、装备与状态的附加特技
#===============================================================================
$WEAPONSKILLS_ORIG_ACTOR = Game_Actor.clone unless $WEAPONSKILLS_ORIG_ACTOR
class Game_Actor < $WEAPONSKILLS_ORIG_ACTOR
WEAPON_SKILLS = {}
ARMOR_SKILLS = {}
STATE_SKILLS = {}
#----------------------------------------------------#
# 设置区域
#
# 设置方法:STATE_SKILLS[状态id] = [特技id]
# WEAPON_SKILLS 与 ARMOR_SKILLS 同理
# 当特技id为负值时则删减该技能
# 不论顺序,删减技能一并落后处理
#----------------------------------------------------#
WEAPON_SKILLS[5] = [5] #匕首 致命一击
ARMOR_SKILLS[63] = [4]#软木盾 盾防
#STATE_SKILLS[74] = [23]#鱼人仿息 悬浮水膜
#----------------------------------------------------#
def skills
output = super |(WEAPON_SKILLS[@weapon_id] || [])
[@armor1_id, @armor2_id, @armor3_id, @armor4_id].each{|a|output |= ARMOR_SKILLS[a] || []}
@states.each{|s|output |= STATE_SKILLS || []}
output.each do |s|
if s < 0
output.delete(s.abs)
output.delete(s)
end
end
return output.sort
end
def skill_learn?(skill_id)
return skills.include?(skill_id)
end
end
这个出错的代码是从图书馆里顺来的,感觉...内容有些高级,没太理解~~
出错的地方是这里
$WEAPONSKILLS_ORIG_ACTOR = Game_Actor.clone unless $WEAPONSKILLS_ORIG_ACTOR
class Game_Actor < $WEAPONSKILLS_ORIG_ACTOR

2023.05.31
然后有一处bitmap相关的错误。。。。
呼,完全超出修改能力之外了。。。。
另一处 error.log2023-05-31 17:19:55 +0800
Error occurs when load Data/Scripts.rxdata.
Exec format error
- eval:62:in `initialize'
- eval:62:in `new'
- eval:62:in `dlopen'
- eval:38:in `rescue in initialize'
- eval:33:in `initialize'
- 【地图】Bitmap追加(DLL):50:in `new'
- 【地图】Bitmap追加(DLL):50:in `<module:TKTK_Bitmap>'
- 【地图】Bitmap追加(DLL):44:in `block in rgss_main'
- eval:31:in `eval'
- eval:31:in `block in rgss_main'
- eval:27:in `each'
- eval:27:in `rgss_main'
- eval:55:in `load_script'
- eval:23:in `load_script'
- eval:23:in `load_script'
- eval:71:in `<main>'
- ruby:in `load_script'
发生错误的代码# coding: utf-8
=begin
= Bitmap類拡張 (DLL版)
RPGツクールXP/VX共用
添加功能 Bitmap 類。
- Marshaldump 啟用
- 保存為PNG文件
-色調變化
-馬賽克效果
-反相顏色
-模糊效果
-使用遮罩-切除
-混合
■ 注意
這個腳本需要"tktk_bitmap.dll"(ver0.1.2.6以上)。
Author:: 半生
Date:: 2010/12/13
Version:: 0.1.2.6
URL:: http://www.tktkgame.com/
################更新########################
2010/12/13 ver 0.1.2.6
dll名稱從"hn_rg_bitmap.dll"變更為"tktk_bitmap.dll"
LARGE_BITMAP機能でメモリを確保できなかった場合の処理を追加
2010/10/12 ver 0.1.2.5(デンジャラスベータ版)
大きいサイズのBitmapオブジェクトを機能を試験的に実装(危険)
2010/03/24 ver 0.1.2.2
ブレンディング機能関連の軽量化。
画像連結系メソッドの分離。
2010/03/24 ver 0.1.2.1
ブレンディング機能関連のバグフィックス
2010/03/22 ver 0.1.2.0
加算合成等のブレンディング機能の追加
2010/02/07 ver 0.1.1.0
マーシャル化の処理の一部をDLLに移動
2010/01/17 ver 0.1.0.0
dllの名称を"hn_rx_bitmap.dll"から"hn_rg_bitmap.dll"に変更
モザイク効果・色反転・ぼかし効果の追加
############################################
=end
module TKTK_Bitmap
LARGE_BITMAP = true # 是否使用大型點陣圖的功能
DLL_NAME = 'tktk_bitmap'
ERROR_ALLOCATE_FAILED = -110002
@@png_save = Win32API.new(DLL_NAME, 'PngSaveA', 'p n i i', 'i')
@@blur = Win32API.new(DLL_NAME, 'Blur', 'n i', 'i')
@@change_tone = Win32API.new(DLL_NAME, 'ChangeTone', 'n i i i i', 'i')
@@clip_mask = Win32API.new(DLL_NAME, 'ClipMask', 'n n i i i', 'i')
@@invert = Win32API.new(DLL_NAME, 'InvertColor', 'n', 'i')
@@mosaic = Win32API.new(DLL_NAME, 'Mosaic', 'n i i i i i i', 'i')
@@address = Win32API.new(DLL_NAME, 'GetAddress', 'n', 'n')
@@get_pixel_data = Win32API.new(DLL_NAME, 'GetPixelData', 'n p i', 'i')
@@set_pixel_data = Win32API.new(DLL_NAME, 'SetPixelData', 'n p i', 'i')
@@blend_blt = Win32API.new(DLL_NAME, 'BlendBlt', 'n i i n i i i i i i', 'i')
#@@get_hwnd = Win32API.new(DLL_NAME, 'GetGameHWND', 'v', 'l')
@@change_size = Win32API.new(DLL_NAME, 'ChangeSize', 'n i i', 'i')
module_function
# PNG形式儲存
def png_save(bitmap,file_name,compression_level,filter)
return @@png_save.call(file_name, bitmap.object_id, compression_level, filter)
end
# 模糊效果
def blur(bitmap, r = 1)
return @@blur.call(bitmap.object_id, r)
end
# 更改顏色平衡?
def change_tone(bitmap, red = 0, green = 0, blue = 0, simplify = 1)
return @@change_tone.call(bitmap.object_id, red, green, blue, simplify)
end
# 剪貼蒙版圖像(α乘法)
def clip_mask(g_bitmap, m_bitmap, x=0, y=0, outer=0)
return @@clip_mask.call(g_bitmap.object_id, m_bitmap.object_id, x, y, outer)
end
# 色的反轉
def invert(bitmap)
return @@invert.call(bitmap.object_id)
end
# 馬賽克效果
def mosaic(bitmap, msw=5, msh=5)
return self.mosaic_rect(bitmap, bitmap.rect, msw, msh)
end
# 馬賽克效果(範圍指定)
def mosaic_rect(bitmap, rect, msw=5, msh=5)
return @@mosaic.call(bitmap.object_id,
rect.x, rect.y, rect.width, rect.height, msw, msh)
end
# 獲取Bitmap資料位址
def address(bitmap)
return @@address.call(bitmap.object_id)
end
# 二進位資料獲取點Bitmap陣圖
def get_pixel_data(bitmap)
buffer = "bgra" * bitmap.width * bitmap.height
@@get_pixel_data.call(bitmap.object_id, buffer, buffer.size)
return buffer
end
#替換為Bitmap中的二進位資料
def set_pixel_data(bitmap, data)
return @@set_pixel_data.call(bitmap.object_id, data, data.size)
end
def blend_blt(dest_bmp, x, y, src_bmp, rect, blend_type=0, opacity=255)
@@blend_blt.call(dest_bmp.object_id, x, y, src_bmp.object_id,
rect.x, rect.y, rect.width, rect.height,
blend_type, opacity)
end
# 改變Bitmap的大小(風險)
def change_size(bitmap, new_width, new_height)
return -1 if (new_width <=0 or new_height <= 0)
result = @@change_size.call(bitmap.object_id, new_width, new_height)
if result == ERROR_ALLOCATE_FAILED
raise("tktk_bitmap:ERROR ALLOCATE FAILED")
end
return result
end
end
class Font
def marshal_dump;end
def marshal_load(obj);end
end
class Bitmap
# PNG 壓縮篩檢程式
PNG_NO_FILTERS = 0x00
PNG_FILTER_NONE = 0x08
PNG_FILTER_SUB = 0x10
PNG_FILTER_UP = 0x20
PNG_FILTER_AVG = 0x40
PNG_FILTER_PAETH = 0x80
PNG_ALL_FILTERS = (PNG_FILTER_NONE | PNG_FILTER_SUB | PNG_FILTER_UP |
PNG_FILTER_AVG | PNG_FILTER_PAETH)
# Marshal_dump
def _dump(limit)
return "" if self.disposed?
data = TKTK_Bitmap.get_pixel_data(self)
[width, height, Zlib::Deflate.deflate(data)].pack("LLa*") # ついでに圧縮
end
# Marshal_load
def self._load(str)
if str == ""
b = Bitmap.new(1,1)
b.dispose
return b
end
w, h, zdata = str.unpack("LLa*"); b = new(w, h)
TKTK_Bitmap.set_pixel_data(b, Zlib::Inflate.inflate(zdata))
return b
end
def address
TKTK_Bitmap.address(self)
end
# 模糊效果
def blur2(r=1)
TKTK_Bitmap.blur(self, r)
end
# 色調變化
def change_tone(red, green, blue, simplify = 1)
TKTK_Bitmap.change_tone(self, red, green, blue, simplify)
end
# 剪切
def clip_mask(bitmap, x=0, y=0, outer=0)
TKTK_Bitmap.clip_mask(self, bitmap, x, y, outer)
end
# 反相顏色
def invert
TKTK_Bitmap.invert(self)
end
# 馬賽克效果
def mosaic(msw=5, msh=5)
TKTK_Bitmap.mosaic(self, msw, msh)
end
# 馬賽克效果 (指定區域)
def mosaic_rect(rect=self.rect, msw=5, msh=5)
TKTK_Bitmap.mosaic_rect(self, rect, msw, msh)
end
# 混合
def blend_blt(x, y, src_bmp, rect, blend_type=0, opacity=255)
return if opacity <= 0
TKTK_Bitmap.blend_blt(self, x, y, src_bmp, rect, blend_type, opacity)
end
#Png 格式保存
def png_save(outp, level = 9, filter = PNG_NO_FILTERS)
if (TKTK_Bitmap.png_save(self, outp, level, filter) != 0)
raise("Bitmap\#png_save failed")
end
end
# 允許更大的 bitmap.new (危険)
# 寬度 * 高度大約是1073741823
if TKTK_Bitmap::LARGE_BITMAP
class << self
unless method_defined?(:_hn_large_bm__new)
alias :_hn_large_bm__new :new
end
def new(*args)
if args.size == 2 && args[0] * args[1] >= 4194304
new_width = args[0]
new_height = args[1]
# 暫時以小尺寸作成
bitmap = _hn_large_bm__new(16, 16)
TKTK_Bitmap.change_size(bitmap, new_width, new_height)
return bitmap
else
_hn_large_bm__new(*args)
end
end
end # Bitmap.new
end
end # CLASS Bitmap
这是用于烛光系统Bitmap相关的,也是从图书馆顺来的,
更...更改不来了
|
|