-
Website Launch from Title
Version: 1.1
Author: modern algebra
Date: April 5, 2010
Version History
- <Version 1.1> 05.04.2010 - Website loads much faster now
- <Version 1.0> 04.05.2010 - Original Release
Description
This script allows you to launch a website from the title screen. It will show an ugly command screen though.
Features
- Allows you to launch the website of your choice from the title screen.
- Gives you the option of what you want the command to be called and where it shows up in the command window.
Screenshots
(https://rmrk.net/proxy.php?request=http%3A%2F%2Fimg28.imageshack.us%2Fimg28%2F7189%2Fscreenshot3yu.png&hash=7491c43c1bf7c0f353d1cbddf30c7e3cbc0c9663)
Instructions
See the header of the script.
Script
#==============================================================================
# Website Launch from Title
# Version: 1.1
# Author: modern algebra (rmrk.net)
# Date: May 4, 2010
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Description:
# This simple script adds the option to launch a website from a command on
# the title screen. Only works in Windows, but RMVX only runs in Windows
# anyway, so that shouldn't be a problem.
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Instructions:
# Just go down to the configurable constants area at line 17 and read the
# instructions there to see what each constant is for. Set them accordingly
#==============================================================================
# ** CONFIGURABLE CONSTANTS
#==============================================================================
MAWLT_COMMAND = "RMRK" # The name of the new command
MAWLT_INDEX = 2 # Where the new command appears in the window
MAWLT_URL = "http://rmrk.net" # The full URL of the website to be launched
MAWLT_Y_OFFSET = -24 # Pixels Y coordinate of the window is offset by
#==============================================================================
# ** Window Command
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Summary of Changes:
# new accessor variable - mawlt_index_override
# new method - mawlt_add_command
# aliased method - draw_item
#==============================================================================
class Window_Command
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# * Public Instance Variables
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
attr_accessor :mawlt_index_override
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# * Add Command
# index : the position to add the command in
# command : the command to add
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
def mawlt_add_command (index, command)
return unless @commands
@commands.insert (index, command)
@item_max += 1
self.y += MAWLT_Y_OFFSET
self.height = self.height + WLH
create_contents
disabled = []
@wlt_disabled_commands = [] unless @wlt_disabled_commands
@wlt_disabled_commands.each { |x| disabled.push (x >= index ? x + 1 : x) }
@wlt_disabled_commands.clear
refresh
disabled.each { |x| draw_item (x, false) }
end
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# * Draw Item
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
alias mal_wlt_drwitm_8yh1 draw_item
def draw_item (index, enabled = true, *args)
mal_wlt_drwitm_8yh1 (index, enabled, *args) # Run Original Method
@wlt_disabled_commands = [] unless @wlt_disabled_commands
@wlt_disabled_commands.push (index) if !enabled && !@wlt_disabled_commands.include? (index)
end
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# * Index
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
alias malg_wlt_indxovrd_8km1 index
def index (*args)
indx = malg_wlt_indxovrd_8km1 (*args) # Run Original Method
return indx if !@mawlt_index_override || !Input.trigger? (Input::C) || indx < MAWLT_INDEX
return indx - 1 if indx > MAWLT_INDEX
return -1
end
end
#==============================================================================
# ** Scene Title
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Summary of Changes:
# aliased methods - create_command_window, update
#==============================================================================
class Scene_Title
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# * Create Command Window
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
alias malgbr_wsitelaunch_crtcmmnd_9ol2 create_command_window
def create_command_window (*args)
malgbr_wsitelaunch_crtcmmnd_9ol2 (*args) # Run Original Method
@command_window.mawlt_add_command (MAWLT_INDEX, MAWLT_COMMAND)
@command_window.index += 1 if @command_window.index >= MAWLT_INDEX
end
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# * Update
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
alias mawlt_update_7uj2 update
def update (*args)
@command_window.mawlt_index_override = true
mawlt_update_7uj2 (*args)
@command_window.mawlt_index_override = false
if Input.trigger? (Input::C) && @command_window.index == MAWLT_INDEX
Sound.play_decision
Thread.new { system("start #{MAWLT_URL}") }
end
end
end
Credit
Thanks
- Berka, for the idea to use a thread
- pelican1015, for the request
Support
Post here at RMRK.net for support.
Known Compatibility Issues
Won't work with any Title scripts that don't use a command window or are dramatically different. Otherwise should be fine. Will only work on Windows, but RMVX games only work in Windows anyway so I think you're OK on that front.
This script by modern algebra is licensed under a Creative Commons Attribution-Non-Commercial-Share Alike 2.5 Canada License.
-
Pretty cool. o.o
-
Whoa O.O
THAT'S COOL.
I suppose those with a website for their game would be interested in this for sure, or perhaps a puzzle game that has answers online that the player could cheat with if they're dumb (as an option)
-
Thanks guys :)
-
you're welcome
-
:dreamcast: Modern Algebra... It is cool... Your idea is very exciting... :dreamcast:
-
That's a really good script.Is there anyway where we can add more than one link?I mean add two different websites on the title screen in two different rows.e.g. one saying 'Buy now' which leads to the game purchase page and the other 'Help' which shows game help on another web page?
-
Berka (another scriptor) suggest to change :
system("start #{MAWLT_URL}")
by
Thread.new{system("start #{MAWLT_URL}")}
By doing this , the webpage will come faster .
-
He's right - that's a great idea. I didn't think of it at the time, but that makes a lot of sense. Anyway, updated the script to version 1.1
-
:blizj:
I am loving the link. It is amazing.
I'm still new to rpg maker vx. Can i inquire on how to open the script for the quest? because i have downloaded it but i cant see the script or run it. Do i need a separate rpg editor to view it?
-
Umm, how do you mean, and are you referring to my Quest Journal (http://rmrk.net/index.php/topic,25533.0.html)? If you are, then you can retrieve the script from the demo by going into the Script Editor (F11) and scrolling down to the bottom and copy and paste both the paragraph formatter and Quest Journal entries.
-
Oh no worries :D thanx anyways.
i've found what i was looking for and the script is on POINT! lol. It works quite well...
Next task: making a very good quest (^_^)
-
Necroposting = legal in scripting boards :D
I hope you don't mind, but I decided to add in a second URL function for your script. The configuration is mildly the same, with an added boolean to check if you want the second URL. I did this because I saw it earlier on in this thread and though it would be cool. So:
#==============================================================================
# Website Launch from Title
# Version: 1.1
# Author: modern algebra (rmrk.net)
# Date: May 4, 2010
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Description:
# This simple script adds the option to launch a website from a command on
# the title screen. Only works in Windows, but RMVX only runs in Windows
# anyway, so that shouldn't be a problem.
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Instructions:
# Just go down to the configurable constants area at line 17 and read the
# instructions there to see what each constant is for. Set them accordingly
#==============================================================================
# ** CONFIGURABLE CONSTANTS
#==============================================================================
MAWLT_COMMAND = "RMRK" # The name of the new command
MAWLT_INDEX = 2 # Where the new command appears in the window
MAWLT_URL = "http://rmrk.net" # The full URL of the website to be launched
MAWLT_Y_OFFSET = -24 # Pixels Y coordinate of the window is offset by
MAWLT_2 = true # Use second URL?
MAWLT_COMMAND2 = "Modern Algebra"
MAWLT_INDEX2 = 3
MAWLT_URL2 = "http://rmrk.net/index.php?action=profile;u=2930"
#==============================================================================
# ** Window Command
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Summary of Changes:
# new accessor variable - mawlt_index_override
# new method - mawlt_add_command
# aliased method - draw_item
#==============================================================================
class Window_Command
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# * Public Instance Variables
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
attr_accessor :mawlt_index_override
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# * Add Command
# index : the position to add the command in
# command : the command to add
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
def mawlt_add_command (index, command)
return unless @commands
@commands.insert (index, command)
@item_max += 1
self.y += MAWLT_Y_OFFSET
self.height = self.height + WLH
create_contents
disabled = []
@wlt_disabled_commands = [] unless @wlt_disabled_commands
@wlt_disabled_commands.each { |x| disabled.push (x >= index ? x + 1 : x) }
@wlt_disabled_commands.clear
refresh
disabled.each { |x| draw_item (x, false) }
end
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# * Draw Item
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
alias mal_wlt_drwitm_8yh1 draw_item
def draw_item (index, enabled = true, *args)
mal_wlt_drwitm_8yh1 (index, enabled, *args) # Run Original Method
@wlt_disabled_commands = [] unless @wlt_disabled_commands
@wlt_disabled_commands.push (index) if !enabled && !@wlt_disabled_commands.include? (index)
end
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# * Index
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
alias malg_wlt_indxovrd_8km1 index
def index (*args)
indx = malg_wlt_indxovrd_8km1 (*args) # Run Original Method
return indx if !@mawlt_index_override || !Input.trigger? (Input::C) || indx < MAWLT_INDEX
return indx - 1 if indx > MAWLT_INDEX
return -1
end
end
#==============================================================================
# ** Scene Title
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Summary of Changes:
# aliased methods - create_command_window, update
#==============================================================================
class Scene_Title
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# * Create Command Window
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
alias malgbr_wsitelaunch_crtcmmnd_9ol2 create_command_window
def create_command_window (*args)
malgbr_wsitelaunch_crtcmmnd_9ol2 (*args) # Run Original Method
@command_window.mawlt_add_command (MAWLT_INDEX, MAWLT_COMMAND)
@command_window.index += 1 if @command_window.index >= MAWLT_INDEX
if MAWLT_2 == true
@command_window.mawlt_add_command (MAWLT_INDEX2, MAWLT_COMMAND2)
@command_window.index += 1 if @command_window.index >= MAWLT_INDEX2
end
end
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# * Update
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
alias mawlt_update_7uj2 update
def update (*args)
@command_window.mawlt_index_override = true
mawlt_update_7uj2 (*args)
@command_window.mawlt_index_override = false
if Input.trigger? (Input::C) && @command_window.index == MAWLT_INDEX
Sound.play_decision
Thread.new { system("start #{MAWLT_URL}") }
end
if Input.trigger? (Input::C) && @command_window.index == MAWLT_INDEX2
Sound.play_decision
Thread.new { system("start #{MAWLT_URL2}") }
end
end
end
-
I don't mind at all. Thanks for doing it.
I think you need to modify the index method there too though.
-
To do what? It works fine without any editing of that method. In fact, if I do edit it, the game closes if you open the second URL for reasons that should be obvious to me, but are not.
-
With your version, have you tried pressing the Shutdown option? It won't work. Also, the game already closes when you open the second URL without modifying, and the reason is that that method is returning 2 when the override boolean is true and the player selects the second URL, and so that tells the original update method that the Shutdown option was selected. Hence why it needs to be modified. Admittedly, it's a little tricky since the way I chose to do it was pretty weird to begin with. But I think you can do it.
I would have actually chosen a different method of adding to the command window if I wanted 2. That method kind of falls apart as the two indices interact strangely, especially if MAWLT_INDEX is greater than MAWLT_INDEX2). You should try to experiment a little bit and choose a better way to do it when adding mutiples. It would be a good little exercise.
-
Doh.
Well, I have things to do at the moment, but I'll look at it later. Let's just hope nobody uses that.
-
It's Great!!
but i have some question..
if i want show it other place not in the menu
what should i do??
sorry i bad at english
-
Super nice script. I personally will probably not use it (you never know though), but I'm wondering if you could use the same script to maybe create a script call to call a website in-game (like some kind of extras NPC for easter egg hunters).
-
You wouldn't need the whole script. The following in a script call would do itwould do it:
Thread.new { system("start http://rmrk.net") }
mind you, almost any website would make that too long for an event script call, but you could split it up like so:
w = "http://rmrk.net"
Thread.new { system("start #{w}") }
If even that would be too long, you can split w up further like this:
w = "http://rm"
w += "rk.net"
Thread.new { system("start #{w}") }
-
This a cool script for commercial games to give a website to your homepage in the demo. Only one problem: if your game is hosted on another site, they might not like it. I'll just have to ask around.