RPG Maker Forums

Fullscreen++ with Viktors fog&overlay prevents the overlays from becoming visible. They are still created however. As soon as I call:

Graphics.resize_screen(640,480)Viktors overlay no longer works. If I out-comment the above line then viktors fog&overlay works again. The resize_screen() is only called when the game is launched (before any map is created) and it is placed ABOVE all of viktors scripts.

Fullscreen++ script

http://forums.rpgmakerweb.com/index.php?/topic/14081-fullscreen/

# Fullscreen++ v2.0 for VX and VXace by Zeus81# Free for non commercial and commercial use# Licence : http://creativecommons.org/licenses/by-sa/3.0/# Contact : zeusex81@gmail.com# (fr) Manuel d'utilisation : http://pastebin.com/1TQfMnVJ# (en) User Guide : http://pastebin.com/EgnWt9ur class << Graphics Disable_VX_Fullscreen = false CreateWindowEx = Win32API.new('user32' , 'CreateWindowEx' , 'ippiiiiiiiii', 'i') GetClientRect = Win32API.new('user32' , 'GetClientRect' , 'ip' , 'i') GetDC = Win32API.new('user32' , 'GetDC' , 'i' , 'i') GetSystemMetrics = Win32API.new('user32' , 'GetSystemMetrics' , 'i' , 'i') GetWindowRect = Win32API.new('user32' , 'GetWindowRect' , 'ip' , 'i') FillRect = Win32API.new('user32' , 'FillRect' , 'ipi' , 'i') FindWindow = Win32API.new('user32' , 'FindWindow' , 'pp' , 'i') ReleaseDC = Win32API.new('user32' , 'ReleaseDC' , 'ii' , 'i') SendInput = Win32API.new('user32' , 'SendInput' , 'ipi' , 'i') SetWindowLong = Win32API.new('user32' , 'SetWindowLong' , 'iii' , 'i') SetWindowPos = Win32API.new('user32' , 'SetWindowPos' , 'iiiiiii' , 'i') ShowWindow = Win32API.new('user32' , 'ShowWindow' , 'ii' , 'i') SystemParametersInfo = Win32API.new('user32' , 'SystemParametersInfo' , 'iipi' , 'i') UpdateWindow = Win32API.new('user32' , 'UpdateWindow' , 'i' , 'i') GetPrivateProfileString = Win32API.new('kernel32', 'GetPrivateProfileString' , 'ppppip' , 'i') WritePrivateProfileString = Win32API.new('kernel32', 'WritePrivateProfileString', 'pppp' , 'i') CreateSolidBrush = Win32API.new('gdi32' , 'CreateSolidBrush' , 'i' , 'i') DeleteObject = Win32API.new('gdi32' , 'DeleteObject' , 'i' , 'i') unless method_defined?:)zeus81_fullscreen_update) HWND = FindWindow.call('RGSS Player', 0) BackHWND = CreateWindowEx.call(0x08000008, 'Static', '', 0x80000000, 0, 0, 0, 0, 0, 0, 0, 0) alias zeus_fullscreen_resize_screen resize_screen alias zeus_fullscreen_update update end def initialize_fullscreen load_fullscreen_settings if Disable_VX_Fullscreen then toggle_vx_fullscreen else @fullscreen = false end if vx_fullscreen? fullscreen? ? fullscreen_mode : windowed_mode endprivate def initialize_rects @borders_size ||= borders_size @fullscreen_rect ||= fullscreen_rect @workarea_rect ||= workarea_rect end def load_fullscreen_settings buffer = [].pack('x256') section = 'Fullscreen++' filename = './Game.ini' get_option = Proc.new do |key, default_value| l = GetPrivateProfileString.call(section, key, default_value, buffer, buffer.size, filename) buffer[0, l] end @fullscreen = get_option.call('Fullscreen', '0') == '1' @fullscreen_ratio = get_option.call('FullscreenRatio', '0').to_i @windowed_ratio = get_option.call('WindowedRatio', '1').to_i end def save_fullscreen_settings section = 'Fullscreen++' filename = './Game.ini' set_option = Proc.new do |key, value| WritePrivateProfileString.call(section, key, value.to_s, filename) end set_option.call('Fullscreen' , @fullscreen ? 1 : 0) set_option.call('FullscreenRatio', @fullscreen_ratio) set_option.call('WindowedRatio' , @windowed_ratio) end def borders_size GetWindowRect.call(HWND, wrect = [0, 0, 0, 0].pack('l4')) GetClientRect.call(HWND, crect = [0, 0, 0, 0].pack('l4')) wrect, crect = wrect.unpack('l4'), crect.unpack('l4') Rect.new(0, 0, wrect[2]-wrect[0]-crect[2], wrect[3]-wrect[1]-crect[3]) end def fullscreen_rect Rect.new(0, 0, GetSystemMetrics.call(0), GetSystemMetrics.call(1)) end def workarea_rect SystemParametersInfo.call(0x30, 0, rect = [0, 0, 0, 0].pack('l4'), 0) rect = rect.unpack('l4') Rect.new(rect[0], rect[1], rect[2]-rect[0], rect[3]-rect[1]) end def hide_borders() SetWindowLong.call(HWND, -16, 0x14000000) end def show_borders() SetWindowLong.call(HWND, -16, 0x14CA0000) end def hide_back() ShowWindow.call(BackHWND, 0) end def show_back ShowWindow.call(BackHWND, 3) UpdateWindow.call(BackHWND) dc = GetDC.call(BackHWND) rect = [0, 0, @fullscreen_rect.width, @fullscreen_rect.height].pack('l4') brush = CreateSolidBrush.call(0) FillRect.call(dc, rect, brush) ReleaseDC.call(BackHWND, dc) DeleteObject.call(brush) end def resize_window(w, h) screen = @fullscreen ? @fullscreen_rect : @workarea_rect x, y = screen.x+(screen.width-w)/2, screen.y+(screen.height-h)/2 SetWindowPos.call(HWND, @fullscreen ? -1 : -2, x, y, w, h, 0) end def vx_fullscreen? screen = fullscreen_rect screen.width == 640 and screen.height == 480 end def toggle_vx_fullscreen inputs = [1,18,0, 1,13,0, 1,13,2, 1,18,2].pack('LSx2Lx16'*4) SendInput.call(4, inputs, 28) zeus_fullscreen_update end def release_alt inputs = [1,18,2].pack('LSx2Lx16') SendInput.call(1, inputs, 28) endpublic def fullscreen?() @fullscreen or vx_fullscreen? end def toggle_fullscreen() fullscreen? ? windowed_mode : fullscreen_mode end def fullscreen_mode return if vx_fullscreen? initialize_rects @fullscreen = true if @fullscreen_ratio == 0 w_max, h_max = @fullscreen_rect.width, @fullscreen_rect.height w, h = w_max, w_max * height / width h, w = h_max, h_max * width / height if h > h_max else w, h = width * @fullscreen_ratio, height * @fullscreen_ratio end show_back hide_borders resize_window(w, h) save_fullscreen_settings end def windowed_mode toggle_vx_fullscreen if vx_fullscreen? initialize_rects @fullscreen = false if @windowed_ratio == 0 w_max = @workarea_rect.width - @borders_size.width h_max = @workarea_rect.height - @borders_size.height w, h = w_max, w_max * height / width h, w = h_max, h_max * width / height if h > h_max else w, h = width * @windowed_ratio, height * @windowed_ratio end hide_back show_borders resize_window(w + @borders_size.width, h + @borders_size.height) save_fullscreen_settings end def toggle_ratio return if vx_fullscreen? initialize_rects if @fullscreen @fullscreen_ratio += 1 @fullscreen_ratio = 0 if width * @fullscreen_ratio > @fullscreen_rect.width or height * @fullscreen_ratio > @fullscreen_rect.height fullscreen_mode else @windowed_ratio += 1 @windowed_ratio = 0 if width * @windowed_ratio > @workarea_rect.width or height * @windowed_ratio > @workarea_rect.height windowed_mode end end def update release_alt if Disable_VX_Fullscreen and Input.trigger?(Input::ALT) zeus_fullscreen_update toggle_fullscreen if Input.trigger?(Input::F5) toggle_ratio if Input.trigger?(Input::F6) end def resize_screen(width, height) zeus_fullscreen_resize_screen(width, height) fullscreen? ? fullscreen_mode : windowed_mode endendGraphics.initialize_fullscreen
Fog & Overlay:

http://victorscripts.wordpress.com/rpg-maker-vx-ace/field-scripts/fog-and-overlay/

map notetag:

<fog effect>id: 2name: "Fog01"opacity: 255</fog effect>Viktors fog*overlay does not use, overwrite or alias any methods that the resolution script uses. It also uses no hard-coded "544" values. So I'm kinda puzzled here why they are not compatible...

Latest Threads

Latest Profile Posts

Day 9 of giveaways! 8 prizes today :D
He mad, but he cute :kaopride:

Our latest feature is an interview with... me?!

People4_2 (Capelet off and on) added!

Just beat the last of us 2 last night and starting jedi: fallen order right now, both use unreal engine & when I say i knew 80% of jedi's buttons right away because they were the same buttons as TLOU2 its ridiculous, even the same narrow hallway crawl and barely-made-it jump they do. Unreal Engine is just big budget RPG Maker the way they make games nearly identical at its core lol.

Forum statistics

Threads
106,036
Messages
1,018,461
Members
137,821
Latest member
Capterson
Top