Веб-браузер в игре

Проект месяца 1 место Программист Ruby Писатель 3 место 3 место Учитель Организатор конкурсов 1 место в Готв Ветеран Проект месяца 2 место
Больше
11 года 19 ч. назад #80702 от DeadElf79
Веб-браузер в игре

Автор: Soulpour777
Переводчик: DeadElf79
Оригинал скрипта: infinitytears.wordpress.com/2015/04/19/r...-ace-browser-system/

Описание:
Добавляет возможность вызвать браузер, встроенный в игру. Внимание: может сильно тормозить, не имеет адресной строки и я не нашёл выхода оттуда.

Код:
Code:
#============================================================================== # ** 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

Скриншот:
ВНИМАНИЕ: Спойлер!


Демо: cloud.mail.ru/public/5Evz4Ls8bXBD/WebBrowser.zip
Спасибо сказали: Ren310, strelokhalfer

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Организатор конкурсов Даритель Стимкея 2 место Сбитая кодировка Переводчик 2 место
Больше
11 года 19 ч. назад #80703 от strelokhalfer
Я вот вспомнил, видел проект с прикрученным хромиумом, надо поискать.

"Стрелок, что-то ты неочень похож на свой аватар..."(с)
Спасибо сказали: DeadElf79

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 2 место Ветеран Оратор
Больше
11 года 16 ч. назад #80706 от Green-Leo
Green-Leo ответил в теме Веб-браузер в игре
Единственная мысль глядя на это всё:

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.092 секунд
Работает на Kunena форум