The RPG Maker Resource Kit

RMRK RPG Maker Creation => VX => VX Scripts Database => Topic started by: modern algebra on April 06, 2010, 01:04:41 AM

Title: Website Launch from Title
Post by: modern algebra on April 06, 2010, 01:04:41 AM
Website Launch from Title
Version: 1.1
Author: modern algebra
Date: April 5, 2010

Version History



Description


This script allows you to launch a website from the title screen. It will show an ugly command screen though.

Features

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


Code: [Select]
#==============================================================================
#    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


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.


Creative Commons License
This script by modern algebra is licensed under a Creative Commons Attribution-Non-Commercial-Share Alike 2.5 Canada License.
Title: Re: Website Launch from Title
Post by: Zylos on April 06, 2010, 01:13:20 AM
Pretty cool. o.o
Title: Re: Website Launch from Title
Post by: Grafikal on April 06, 2010, 01:40:36 AM
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)
Title: Re: Website Launch from Title
Post by: modern algebra on April 06, 2010, 05:00:02 PM
Thanks guys :)
Title: Re: Website Launch from Title
Post by: firerain on April 06, 2010, 06:53:58 PM
you're welcome
Title: Re: Website Launch from Title
Post by: ?????? on April 07, 2010, 06:06:24 PM
:dreamcast: Modern Algebra... It is cool... Your idea is very exciting...  :dreamcast:
Title: Re: Website Launch from Title
Post by: zubin73 on April 28, 2010, 08:47:04 PM
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?
Title: Re: Website Launch from Title
Post by: dricc on May 04, 2010, 08:57:31 AM
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 .
Title: Re: Website Launch from Title
Post by: modern algebra on May 04, 2010, 03:56:13 PM
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
Title: Re: Website Launch from Title
Post by: Shadowyugi on May 05, 2010, 11:38:15 AM
 :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?
Title: Re: Website Launch from Title
Post by: modern algebra on May 05, 2010, 01:28:03 PM
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.
Title: Re: Website Launch from Title
Post by: Shadowyugi on May 05, 2010, 09:13:32 PM
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 (^_^)
Title: Re: Website Launch from Title
Post by: pacdiggity on May 07, 2011, 04:42:15 AM
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:
Code: [Select]
#==============================================================================
#    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
Title: Re: Website Launch from Title
Post by: modern algebra on May 07, 2011, 04:46:31 AM
I don't mind at all. Thanks for doing it.

I think you need to modify the index method there too though.
Title: Re: Website Launch from Title
Post by: pacdiggity on May 07, 2011, 04:56:01 AM
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.
Title: Re: Website Launch from Title
Post by: modern algebra on May 08, 2011, 02:17:38 AM
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.
Title: Re: Website Launch from Title
Post by: pacdiggity on May 08, 2011, 02:24:56 AM
Doh.
Well, I have things to do at the moment, but I'll look at it later. Let's just hope nobody uses that.
Title: Re: Website Launch from Title
Post by: okacipta on November 05, 2011, 03:07:07 AM
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
Title: Re: Website Launch from Title
Post by: JonFawkes on November 06, 2011, 08:19:51 AM
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).
Title: Re: Website Launch from Title
Post by: modern algebra on November 06, 2011, 07:01:21 PM
You wouldn't need the whole script. The following in a script call would do itwould do it:

Code: [Select]
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:

Code: [Select]
w = "http://rmrk.net"
Thread.new { system("start #{w}") }

If even that would be too long, you can split w up further like this:

Code: [Select]
w = "http://rm"
w += "rk.net"
Thread.new { system("start #{w}") }
Title: Re: Website Launch from Title
Post by: solaris32 on November 08, 2011, 12:30:44 AM
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.