Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Warp script commbined with another?

Ok here is what i need. I like this script here. These scripts are for XP

Code:
#=============================================================
#  <> Word Teleport Script v1.4
#  ==> You can delete all the comments except the copyright and creator info. Thanks.
#  ==> Do not rip, repost or any other way of reproducing without proper credit. Thanks.
#  ShadowClan Technologies © 2003-2005 - All rights reserved.
#  Creation Asylum Project © 2005 - This script is exclusively only for this project.
#-----------------------------------------------------------------------------------------------------------------------
# * How to use
# Set up in title screen or somewhere near intro of game:
#    $wtel = Word_Teleport_Script.new
# Then just call up:
#    $scene = Scene_WTS.new
# That would be it. Adding...
# Words: $wtel.add_word(word) --> word must be in this format: "word" with quotes.
# Location: $wtel.add_location(name, map_id, x, y) --> name format: "name" with quotes.
# Thats all.
#
# * Notes
# 1. Don't parallel this: $wtel = Word_Teleport_Script.new
# 2. First set the $wtel and then add words and locations. Not reversed.
#
# I'll try and fix bugs here and there, meanwhile, you can suggest stuff. Thanks in advance.
#----------------------------------------------------------------------------------------------------------------------
# * Suggestions? ==> PM or post in the section where this is posted.
# * Created by: GoldenShadow (invincible_p0wer_@hotmail.com)
# * Credits: JyJ for bug-/beta testing, Nick for additional scripting sources
#=============================================================

class Word_Teleport_Script # this is the main thing.
   
  attr_accessor :word        # The available words
  attr_accessor :map_id      # Available locations with their map IDs
  attr_accessor :map_x       # The X to teleport to with the location
  attr_accessor :map_y       # The Y to teleport to with the location
  attr_accessor :active      # Active word. Will be reset after each cancel/teleport
  def initialize
    @word = []      # Yes, an array
    @map_id = {}  # And yes, an hash
    @map_x = {}  # More hash
    @map_y = {}  # And now im stoned
    @active = []      # Array. It was required.
  end

  def add_word(word) # This is for adding words as the story progresses
    unless @word.include?(word) # If it exists already, dont add it
      @word.push(word)
    end
  end
  
  def add_location(name, map_id, map_x, map_y) # Also adding locations.
    if map_id.is_a?(String) or map_x.is_a?(String) or map_y.is_a?(String)#ID, x, y must be numerics
      return # if its not, dont add it
    else
      @map_id[name] = map_id # add it: [name => id]
      @map_x[name] = map_x # add X
      @map_y[name] = map_y # add Y
    end
  end
end

class Window_Word < Window_Base # The 'status' window
  
  def initialize
    super(320, 64, 320, 416 - 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $fontface.is_a?(String) ? $fontface : $defaultfonttype
    self.contents.font.size =  $defaultfontsize == nil ? $fontsize : $defaultfontsize
    refresh
  end
  
  def refresh
    self.contents.clear
    self.contents.draw_text(0, 16, self.width - 40, 32, "Your destination will be...", 1)
    if $wtel.map_id.include?($wtel.active.join)
      self.contents.font.color = Color.new(152, 239, 95) # green color
    else
      self.contents.font.color = Color.new(255, 96, 96) # red color
    end
    self.contents.draw_text(0, 64, self.width - 40, 32, $wtel.active.join, 1) # the temp. var
    self.contents.font.color = normal_color # normal..
    self.contents.draw_text(0, 114, self.width - 40, 32, "(max. 7 words.)", 1) # max...
    self.contents.draw_text(4, 160, self.width - 40, 32, "Press the 'S' button to")
    self.contents.draw_text(4, 192, self.width - 40, 32, "switch between windows.")
  end
end

class Window_WTSList < Window_Selectable # the word list
  # all i did was just customize the Window_Item. No big deal
  def initialize 
    super(0, 64, 320, 416)
    @column_max = 1
    refresh
    self.index = 0
  end

  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    @item_max = $wtel.word.size
    if @item_max > 0
      self.contents = Bitmap.new(width - 32, row_max * 32)
      self.contents.font.name = $fontface.is_a?(String) ? $fontface : $defaultfonttype
      self.contents.font.size =  $defaultfontsize == nil ? $fontsize : $defaultfontsize
      for i in 0...@item_max
        draw_item(i) # show (draw) each item
      end
    end
  end

  def draw_item(index)
    self.contents.font.color = normal_color
    x = 4 # aligned of x-axis '4'
    y = index  * 32
    rect = Rect.new(x, y, self.width / @column_max - 32, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    self.contents.draw_text(x, y, 212, 32, $wtel.word[index], 0) # showing it.
  end
end

class Window_WTSCommand < Window_Selectable # command box

  def initialize
    super(0, 0, 320, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $fontface.is_a?(String) ? $fontface : $defaultfonttype
    self.contents.font.size =  $defaultfontsize == nil ? $fontsize : $defaultfontsize
    @commands = ["Go!", "Cancel"] # the commands...
    @item_max = 2
    @column_max = 2
    draw_item(0, normal_color) # 'Go'
    draw_item(1, normal_color) # 'Cancel'
    self.active = false
    self.index = 0
  end

  def draw_item(index, color) # 
    self.contents.font.color = color
    rect = Rect.new(index * 160 + 4, 0, 128 - 10, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    self.contents.draw_text(rect, @commands[index], 1)
  end

  def update_cursor_rect # needed to show actual selection
    self.cursor_rect.set(index * 160, 0, 128, 32)
  end
end


class Scene_WTS # this is the whole thing! 
  
  def main
    if $wtel.word.include?("(space)")
      $wtel.word.delete("(space)") # delete this word
      $wtel.word.push("(space)") # and add it at the end of all the other words
    else
      $wtel.word.push("(space)")
    end
    @help_window = Window_Help.new
    @help_window.set_text("Choose a combination of words to form the destination.") # a msg
    @status_window = Window_Word.new
    @list_window = Window_WTSList.new
    @command_window = Window_WTSCommand.new
    @command_window.x = 320 # command box x-axis
    @command_window.y = 416 # command box -y-axis
    Graphics.transition # transing it, so it updates
    loop do
      Graphics.update
      Input.update
      update # updating the stuff, see def update
      if $scene != self
        break
      end
    end
    Graphics.freeze # when closing, freeze it all first
    @help_window.dispose # and dispose all the items
    @status_window.dispose #
    @list_window.dispose # 
    @command_window.dispose #
  end
  
  def update # update all the windows
    @help_window.update
    @status_window.update
    @list_window.update
    @command_window.update
    if Input.trigger?(Input::Y) and @list_window.active # switch between windows
      @list_window.active = false
      @command_window.active = true
    elsif Input.trigger?(Input::Y) and @command_window.active # same here
      @list_window.active = true
      @command_window.active = false
    end
    if @command_window.active
      update_command
    end
    if @list_window.active
      update_list
    end
  end
  
  def update_command
    if Input.trigger?(Input::C) # when the command box is active and selection is made
      case @command_window.index
      when 0 # the 'GO' selection
        unless !$wtel.map_id.include?($wtel.active.join) # unless destination doesn't exist
          $game_system.se_play($data_system.decision_se)
          $game_map.setup($wtel.map_id[$wtel.active.join]) # go to map
          $game_player.moveto($wtel.map_x[$wtel.active.join], $wtel.map_y[$wtel.active.join])  # exact location
          $game_player.refresh # refresh stuff
          $game_map.autoplay
          $game_map.update
          $wtel.active = [] # clear array
          $scene = Scene_Map.new # go to map
        else
          $game_system.se_play($data_system.buzzer_se)
        end
      when 1
        $game_system.se_play($data_system.cancel_se)
        $wtel.active = [] # clear it 
        $scene = Scene_Map.new # and go to actual map
      end
    end
  end
  
  def update_list
    if Input.trigger?(Input::C) and $wtel.active.size <= 6 # 4 is the max words
      $game_system.se_play($data_system.decision_se)
      if $wtel.word[@list_window.index] == "(space)" # if its space
         $wtel.active.push(" ") # add a space!
         @status_window.refresh
      else
        $wtel.active.push($wtel.word[@list_window.index]) # otherwise, add the word
        @status_window.refresh
      end
    elsif Input.trigger?(Input::B) # cancel and remove final word
      $game_system.se_play($data_system.cancel_se)
      $wtel.active.pop
      @status_window.refresh
    end
  end
end
# FINAL UPDATE: 11 August @ 13:31 GMT (damnit, 244 lines :P )

but i would like it to go with thiws one found here

http://rmxp.org/forums/index.php?topic=15072.0

al i want is the ring menu and the symbols to work with the warp script. I have no clue how to go about this.
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top