Добавляет возможность вызвать браузер, встроенный в игру. Внимание: может сильно тормозить, не имеет адресной строки и я не нашёл выхода оттуда.
#==============================================================================
# ** RPG Maker VXAce Browser System
# Автор: Soulpour777
# Переводчик: DeadElf79
#------------------------------------------------------------------------------
# Описание: скрипт вызывает динамическую библиотеку (DLL), при помощи
# которой вставляет в окно приложения веб-браузер (можно использовать мышь!).
#------------------------------------------------------------------------------
# Требования: cwebpage.dll (лежит в папке System в корне проекта)
#------------------------------------------------------------------------------
# Инструкции для установки:
# Поместите файл cwebpage.dll в папку System в корне проекта (там же лежит RGSS301.DLL)
# Установите скрипт как обычно (над Main)
# Вы можете поменять некоторые части скрипта, если не хотите добавлять
# вызов браузера в титульном экране.
#------------------------------------------------------------------------------
# Вызов скрипта из события:
# RMVXAB.browser(ВСТАВЬТЕ СЮДА ПОЛНЫЙ АДРЕС В КАВЫЧКАХ!)
# Пример:
# RMVXAB.browser("http://www.rpg-maker.info/")
#------------------------------------------------------------------------------
# Настройки для титульного экрана:
# SITE_TO_BROWSE = "http://www.rpg-maker.info/"
# Вы можете поменять их на адрес Вашего сайта
#==============================================================================
module Soul
module Title
# Title Extra Command Name
BROWSER_CALL_NAME = "Зайти на сайт"
# Title Commands
COMMANDS = [
:new_game,
:continue,
:visit_website,
:shutdown
]
end
module Browser
# Site to browse. This is the home page. You can use Google.com if you
# want.
SITE_TO_BROWSE = "http://www.rpg-maker.info/"
wdll="System/cwebpage.dll"
GPPS = Win32API.new('kernel32', 'GetPrivateProfileString', 'pppplp', 'l')
FW = Win32API.new('user32', 'FindWindow', 'pp', 'i')
SWL = Win32API.new('user32', 'SetWindowLong', 'lll', 'l')
GCR = Win32API.new('user32', 'GetClientRect', 'lp', 'i')
GAKS = Win32API.new('user32', 'GetAsyncKeyState', 'i', 'i')
EBO = Win32API.new(wdll, 'EmbedBrowserObject', 'l', 'i')
DHP = Win32API.new(wdll, 'DisplayHTMLPage', 'lp', 'i')
RB = Win32API.new(wdll, 'ResizeBrowser', 'lll', 'i')
UEBO = Win32API.new(wdll, 'UnEmbedBrowserObject', 'l', 'l')
DPA = Win32API.new(wdll, 'DoPageAction', 'll', 'l')
end
end
module RMVXAB
def self.browser(url)
Soul::Browser::EBO.call(handle)
Soul::Browser::DHP.call(handle,url)
Soul::Browser::RB.call(handle,*dimensions)
loop do
break if Soul::Browser::GAKS.call(0x1b)&0x01==1
Soul::Browser::DPA.call(handle,0)if Soul::Browser::GAKS.call(0x08)&0x01==1
Soul::Browser::DPA.call(handle,4)if Soul::Browser::GAKS.call(0x74)&0x01==1
Soul::Browser::RB.call(handle,*dimensions)
end
Soul::Browser::UEBO.call(handle)
end
end
def handle
Soul::Browser::GPPS.call("Game","Title","",title="\0"*256,256,".//Game.ini")
Soul::Browser::FW.call("RGSS Player",title.delete!("\0"))
end
def dimensions
Soul::Browser::GCR.call(handle,rect=[0,0,0,0].pack('l4'))
rect.unpack('l4')[2..3]
end
class Window_TitleCommand < Window_Command
#--------------------------------------------------------------------------
# * Create Command List
#--------------------------------------------------------------------------
def make_command_list
for command in Soul::Title::COMMANDS
case command
when :new_game
add_command(Vocab::new_game, :new_game)
when :continue
add_command(Vocab::continue, :continue, continue_enabled)
when :visit_website
add_command(Soul::Title::BROWSER_CALL_NAME, :visit_website)
when :shutdown
add_command(Vocab::shutdown, :shutdown)
end
end
end
end
class Scene_Title < Scene_Base
#--------------------------------------------------------------------------
# * Create Command Window
#--------------------------------------------------------------------------
def create_command_window
@command_window = Window_TitleCommand.new
@command_window.set_handler(:new_game, method(:command_new_game))
@command_window.set_handler(:continue, method(:command_continue))
@command_window.set_handler(:visit_website, method(:command_browser))
@command_window.set_handler(:shutdown, method(:command_shutdown))
end
#--------------------------------------------------------------------------
# * command_browser : new method
#--------------------------------------------------------------------------
def command_browser
RMVXAB.browser(Soul::Browser::SITE_TO_BROWSE)
end
end