赞 | 86 |
VIP | 0 |
好人卡 | 1 |
积分 | 136 |
经验 | 14048 |
最后登录 | 2021-1-24 |
在线时间 | 2753 小时 |
Lv4.逐梦者
- 梦石
- 0
- 星屑
- 13562
- 在线时间
- 2753 小时
- 注册时间
- 2014-10-4
- 帖子
- 756
|
本帖最后由 SixRC 于 2020-3-3 00:33 编辑
是有问题的
原因是刷新的需要
我的脚本你改成
class << Graphics # 渐变修正 用于 103J FXTN_dll = Win32API.new("kernel32","GetModuleHandleA","p","l").call("RGSS103J") gdi = Win32API.new("kernel32","GetModuleHandleA","p","l").call("gdi32") delo = Win32API.new("kernel32","GetProcAddress","lp","l").call(gdi, "DeleteObject") # pass width, height FXTN_rep = ExtraFunc.parse %Q{ mov edi,#{FXTN_dll} mov esi,[edi + 0x12B6C4] mov esi,[esi + 0x144] push dword [esi + 0x2C] mov eax, #{delo} call eax mov dword[esi + 0x20], 0x20 mov ecx,esi push dword[esp + 8] push dword[esp + 8] lea eax,[edi+0x86540] call eax mov edi,[edi + 0x12B6C4] mov edi,[edi + 0x148] mov eax,[esp + 4] mov [edi + 0x10],eax mov [edi + 0xC8],eax mov eax,[esp + 8] mov [edi + 0x14],eax mov [edi + 0xCC],eax ret 8 } # 修正为 w * h 可以重复调用 def fix_trans(width, height) ExtraFunc.run FXTN_rep, width, height end end
class << Graphics
# 渐变修正 用于 103J
FXTN_dll = Win32API.new("kernel32","GetModuleHandleA","p","l").call("RGSS103J")
gdi = Win32API.new("kernel32","GetModuleHandleA","p","l").call("gdi32")
delo = Win32API.new("kernel32","GetProcAddress","lp","l").call(gdi, "DeleteObject")
# pass width, height
FXTN_rep = ExtraFunc.parse %Q{
mov edi,#{FXTN_dll}
mov esi,[edi + 0x12B6C4]
mov esi,[esi + 0x144]
push dword [esi + 0x2C]
mov eax, #{delo}
call eax
mov dword[esi + 0x20], 0x20
mov ecx,esi
push dword[esp + 8]
push dword[esp + 8]
lea eax,[edi+0x86540]
call eax
mov edi,[edi + 0x12B6C4]
mov edi,[edi + 0x148]
mov eax,[esp + 4]
mov [edi + 0x10],eax
mov [edi + 0xC8],eax
mov eax,[esp + 8]
mov [edi + 0x14],eax
mov [edi + 0xCC],eax
ret 8
}
# 修正为 w * h 可以重复调用
def fix_trans(width, height)
ExtraFunc.run FXTN_rep, width, height
end
end
就行了 按F12 也不会出问题
以及 你的脚本页★Game_Resolution 也有同样的问题 没有考虑到 F12
假如按F12 窗口会不断变大
32行开始改成
addw = wds[2] - wds[0] addh = wds[3] - wds[1] if addw >= GAME_WINDOW::INT_WIDTH addw -= GAME_WINDOW::INT_WIDTH addh -= GAME_WINDOW::INT_HEIGHT x, y = wds[0], wds[1] else addw -= 640 addh -= 480 x = wds[0] - (GAME_WINDOW::INT_WIDTH - 640) / 2 y = wds[1] - (GAME_WINDOW::INT_HEIGHT - 480) / 2 end swp.call(hWnd, 0, x, y, GAME_WINDOW::INT_WIDTH + addw, GAME_WINDOW::INT_HEIGHT+addh,0x20)
addw = wds[2] - wds[0]
addh = wds[3] - wds[1]
if addw >= GAME_WINDOW::INT_WIDTH
addw -= GAME_WINDOW::INT_WIDTH
addh -= GAME_WINDOW::INT_HEIGHT
x, y = wds[0], wds[1]
else
addw -= 640
addh -= 480
x = wds[0] - (GAME_WINDOW::INT_WIDTH - 640) / 2
y = wds[1] - (GAME_WINDOW::INT_HEIGHT - 480) / 2
end
swp.call(hWnd, 0, x, y, GAME_WINDOW::INT_WIDTH + addw, GAME_WINDOW::INT_HEIGHT+addh,0x20)
就行了 |
评分
-
查看全部评分
|