[XP] 3 Man CMS

Started by Nortos, February 20, 2008, 12:19:42 am

Previous topic - Next topic

Nortos

February 20, 2008, 12:19:42 am Last Edit: February 21, 2009, 05:47:40 am by Blizzard
3 man CMS
Authors: Nortos, Silentwalker, Spoofus
Version: 1
Type: CMS
Key Term: Custom Menu System



Introduction

Animated 3 man Custom Menu script, it was specially designed for 'Reaching for the Sky Beyond' and Spoofus allowed me to release it to the public


Features


  • Face Sets
  • Location Window
  • Compact
  • Animated CMS



Screenshots




Demo
http://www.megaupload.com/?d=9BFNSDSK
http://www.sendspace.com/file/712yqe


Script
You'll need to download the demo though if you want the correct icons.
Spoiler: ShowHide

#==============================================================================
# ** Nortos
# Nortos Beyond CMS Version
# Version 1.0b
#==============================================================================
BG_item = 'item'
BG_skill = 'skill'
BG_equip = 'equip'
BG_status = 'status'
BG_save = 'save'
BG_load = 'load'
BG_exit = 'exit'
BG_location = 'location'
BG_playtime = 'time'
BG_gold = 'gold'

#==============================================================================
# ** Window_Selectable
#------------------------------------------------------------------------------
#  This window class contains cursor movement and scroll functions.
#==============================================================================

class Window_Selectable1 < Window_Base
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_reader   :index                    # cursor position
  attr_reader   :help_window              # help window
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     x      : window x-coordinate
  #     y      : window y-coordinate
  #     width  : window width
  #     height : window height
  #--------------------------------------------------------------------------
  def initialize(x, y, width, height)
    super(x, y, width, height)
    @item_max = 1
    @column_max = 1
    @index = -1
  end
  #--------------------------------------------------------------------------
  # * Set Cursor Position
  #     index : new cursor position
  #--------------------------------------------------------------------------
  def index=(index)
    @index = index
    # Update Help Text (update_help is defined by the subclasses)
    if self.active and @help_window != nil
      update_help
    end
    # Update cursor rectangle
    update_cursor_rect
  end
  #--------------------------------------------------------------------------
  # * Get Row Count
  #--------------------------------------------------------------------------
  def row_max
    # Compute rows from number of items and columns
    return (@item_max + @column_max - 1) / @column_max
  end
  #--------------------------------------------------------------------------
  # * Get Top Row
  #--------------------------------------------------------------------------
  def top_row
    # Divide y-coordinate of window contents transfer origin by 1 row
    # height of 32
    return self.oy / 32
  end
  #--------------------------------------------------------------------------
  # * Set Top Row
  #     row : row shown on top
  #--------------------------------------------------------------------------
  def top_row=(row)
    # If row is less than 0, change it to 0
    if row < 0
      row = 0
    end
    # If row exceeds row_max - 1, change it to row_max - 1
    if row > row_max - 1
      row = row_max - 1
    end
    # Multiply 1 row height by 32 for y-coordinate of window contents
    # transfer origin
    self.oy = row * 32
  end
  #--------------------------------------------------------------------------
  # * Get Number of Rows Displayable on 1 Page
  #--------------------------------------------------------------------------
  def page_row_max
    # Subtract a frame height of 32 from the window height, and divide it by
    # 1 row height of 32
    return (self.height - 32) / 32
  end
  #--------------------------------------------------------------------------
  # * Get Number of Items Displayable on 1 Page
  #--------------------------------------------------------------------------
  def page_item_max
    # Multiply row count (page_row_max) times column count (@column_max)
    return page_row_max * @column_max
  end
  #--------------------------------------------------------------------------
  # * Set Help Window
  #     help_window : new help window
  #--------------------------------------------------------------------------
  def help_window=(help_window)
    @help_window = help_window
    # Update help text (update_help is defined by the subclasses)
    if self.active and @help_window != nil
      update_help
    end
  end
  #--------------------------------------------------------------------------
  # * Update Cursor Rectangle
  #--------------------------------------------------------------------------
  def update_cursor_rect
    # If cursor position is less than 0
    if @index < 0
      self.cursor_rect.empty
      return
    end
    # Get current row
    row = @index / @column_max
    # If current row is before top row
    if row < self.top_row
      # Scroll so that current row becomes top row
      self.top_row = row
    end
    # If current row is more to back than back row
    if row > self.top_row + (self.page_row_max - 1)
      # Scroll so that current row becomes back row
      self.top_row = row - (self.page_row_max - 1)
    end
    # Calculate cursor width
    cursor_width = self.width / @column_max - 32
    # Calculate cursor coordinates
    x = @index % @column_max * (cursor_width + 32)
    y = @index / @column_max * 32 - self.oy
    # Update cursor rectangle
    self.cursor_rect.set(x, y, cursor_width, 32)
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    # If cursor is movable
    if self.active and @item_max > 0 and @index >= 0
      # If the right directional button was pressed
      if Input.repeat?(Input::LEFT)
        # If column count is 2 or more, and cursor position is closer to front
        # than (item count -1)
        if (@column_max == 1 and Input.trigger?(Input::RIGHT)) or
           @index >= @column_max
          # Move cursor up
          $game_system.se_play($data_system.cursor_se)
          @index = (@index - @column_max + @item_max) % @item_max
        end
      end
      # If the left directional button was pressed
      if Input.repeat?(Input::RIGHT)
        # If column count is 2 or more, and cursor position is more back than 0
        if (@column_max == 1 and Input.trigger?(Input::LEFT)) or
           @index < @item_max - @column_max
          # Move cursor down
          $game_system.se_play($data_system.cursor_se)
          @index = (@index + @column_max) % @item_max
        end
      end
    end
    # Update help text (update_help is defined by the subclasses)
    if self.active and @help_window != nil
      update_help
    end
    # Update cursor rectangle
    update_cursor_rect
  end
end

class Window_Base < Window
  def fc
    face = RPG::Cache.picture("")
  end   
 
  def draw_fc(actor,x,y)
    face = RPG::Cache.picture(actor.name + "_fc") rescue fc
    fw = face.width
    fh = face.height
    src_rect = Rect.new(0, 0, fw, fh)
    self.contents.blt(x , y - fh, face, src_rect)   
  end 
end

class Window_PlayTime < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 160, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.name = "Tahoma"
   self.contents.font.size = 12
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 120, 32, "Play Time:")
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    hour = @total_sec / 60 / 60
    min = @total_sec / 60 % 60
    sec = @total_sec % 60
    text = sprintf("%02d:%02d:%02d", hour, min, sec)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 0, 122, 32, text, 2)
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
end
#--------------------------------------------------------------------------
# * Window Location
#--------------------------------------------------------------------------

class Window_Location < Window_Base
 
def initialize
  super(0, 0, 300, 64)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.contents.font.name = "Tahoma"
   self.contents.font.size = 14
   refresh
end

def refresh
   self.contents.clear
   data = load_data("Data/MapInfos.rxdata")
   self.contents.font.color = system_color
   self.contents.draw_text(0, 0, 248, 32, "Location:")
   self.contents.font.color = normal_color
   self.contents.draw_text(50, 0, 100, 32, data[$game_map.map_id].name, 2)
  end
end

#--------------------------------------------------------------------------
# * Window Gold
#--------------------------------------------------------------------------

class Window_Gold < Window_Base
 
  def initialize
    super(0, 0, 160, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
 
  def refresh
    self.contents.clear
    self.contents.font.name = "Tahoma"
    cx = contents.text_size($data_system.words.gold).width
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 0, 120-cx-2, 32, $game_party.gold.to_s, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(124-cx, 0, cx, 32, $data_system.words.gold, 2)
  end
end

#--------------------------------------------------------------------------
# * Menu_Status
#--------------------------------------------------------------------------

class Window_MenuStatus < Window_Selectable1
 
  def initialize
    super(0, 0, 700, 100)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
    self.active = false
    self.index = -1
  end

  def refresh
    self.contents.font.name = "Tahoma"
    self.contents.font.size = 12
    self.contents.clear
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
      x = i * 220
      y = 0
      actor = $game_party.actors[i]
      draw_fc(actor,x + 14,y + 53)
      draw_actor_name(actor, x+15, y)
      draw_actor_level(actor, x, y + 16)
      draw_actor_state(actor, x+15, y + 40)
      draw_actor_exp(actor, x + 50, y + 30)
      draw_actor_hp(actor, x + 65, y-10)
      draw_actor_sp(actor, x + 65, y+10)
    end
  end
  def update_cursor_rect
    if @index < 0
      self.cursor_rect.empty
    else
      self.cursor_rect.set(@index * 220, 0, self.width - 480, 64)
    end
  end
end

#--------------------------------------------------------------------------
# * Menu Scene
#--------------------------------------------------------------------------
class Scene_Menu

  def initialize(menu_index = 0)
     @menu_index = menu_index
  end

  def main
    @sprite = Spriteset_Map.new
    viewport = Viewport.new(0, 0, 640, 480)
    s1 = $data_system.words.item
    s2 = $data_system.words.skill
    s3 = $data_system.words.equip
    s4 = "Status"
    s5 = "Save"
    s6 = "Load"
    s7 = "Exit"
    @command_window = Window_Command1.new(110, [s1, s2, s3, s4, s5, s6, s7])
    @command_window.x = 495 + 160
    @command_window.y = 40
    @command_window.height = 257
    @command_window.back_opacity = 170
    @command_window.index = @menu_index
    # If number of party members is 0
    if $game_party.actors.size == 0
      # Disable items, skills, equipment, and status
      @command_window.disable_item(0)
      @command_window.disable_item(1)
      @command_window.disable_item(2)
      @command_window.disable_item(3)
    end
    if $game_system.save_disabled
      # Disable save
      @command_window.disable_item(4)
    end
    @window_PlayTime = Window_PlayTime.new
    @window_PlayTime.x = -160
    @window_PlayTime.y = 300
    @window_PlayTime.back_opacity = 170
    @window_Gold = Window_Gold.new
    @window_Gold.x = -160
    @window_Gold.y = 230
    @window_Gold.back_opacity = 170
    @window_Location = Window_Location.new
    @window_Location.y = 300
    @window_Location.x = 344 + 290   
    @window_Location.back_opacity = 170
    @status_window = Window_MenuStatus.new
    @status_window.x = -30
    @status_window.y = 370 + 110
    @status_window.back_opacity = 170
    @item = Sprite.new
    @item.bitmap = RPG::Cache.icon(BG_item)
    @item.x = 600 + 160
    @item.y = 60
    @item.z = @item.z + 255
    @skill = Sprite.new
    @skill.bitmap = RPG::Cache.icon(BG_skill)
    @skill.x = 600 + 160
    @skill.y = 92
    @skill.z = @skill.z + 255
    @equip = Sprite.new
    @equip.bitmap = RPG::Cache.icon(BG_equip)
    @equip.x = 600 + 160
    @equip.y = 124
    @equip.z = @equip.z + 255
    @status = Sprite.new
    @status.bitmap = RPG::Cache.icon(BG_status)
    @status.x = 600 + 160
    @status.y = 156
    @status.z = @status.z + 255
    @save = Sprite.new
    @save.bitmap = RPG::Cache.icon(BG_save)
    @save.x = 600 + 160
    @save.y = 188
    @save.z = @save.z + 255
    @load = Sprite.new
    @load.bitmap = RPG::Cache.icon(BG_load)
    @load.x = 600 + 160
    @load.y = 220
    @load.z = @load.z + 255
    @quit = Sprite.new
    @quit.bitmap = RPG::Cache.icon(BG_exit)
    @quit.x = 600 + 160
    @quit.y = 252
    @quit.z = @quit.z + 255
    @location = Sprite.new
    @location.bitmap = RPG::Cache.icon(BG_location)
    @location.x = 600 + 160
    @location.y = 320
    @location.z = @location.z + 255
    @playtime = Sprite.new
    @playtime.bitmap = RPG::Cache.icon(BG_playtime)
    @playtime.x = -160
    @playtime.y = 320
    @playtime.z = @playtime.z + 255
    @gold = Sprite.new
    @gold.bitmap = RPG::Cache.icon(BG_gold)
    @gold.x = -120
    @gold.y = 250
    @gold.z = @gold.z + 255
    Graphics.transition
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
      # Prepare for transition
    Graphics.freeze
    # Dispose of windows
    viewport.dispose
    @command_window.dispose
    @window_PlayTime.dispose
    @window_Gold.dispose
    @window_Location.dispose
    @status_window.dispose
    @item.dispose
    @skill.dispose
    @equip.dispose
    @status.dispose
    @save.dispose
    @load.dispose
    @quit.dispose
    @gold.dispose
    @playtime.dispose
    @location.dispose
    @sprite.dispose
  end
 
  def entrance
   
  @command_window.x -= 10 if @command_window.x > 530 
  @window_PlayTime.x += 10 if @window_PlayTime.x < 0   
  @window_Location.x -= 15 if @window_Location.x > 344
  @window_Gold.x += 10 if @window_Gold.x < 0   
  @status_window.y -= 10 if @status_window.y > 370
  @item.x -= 10 if @item.x > 547
  @skill.x -= 10 if @skill.x > 547
  @equip.x -= 10 if @equip.x > 547
  @status.x -= 10 if @status.x > 547
  @save.x -= 10 if @save.x > 547
  @load.x -= 10 if @load.x > 547
  @quit.x -= 10 if @quit.x > 547
  @playtime.x += 10 if @playtime.x < 70
  @gold.x += 10 if @gold.x < 80
  @location.x -= 10 if @location.x > 600
 
  end

  def exit

  @command_window.x += 10 if @command_window.x < 655   
  @window_PlayTime.x -= 10 if @window_PlayTime.x > -160   
  @window_Location.x += 15 if @window_Location.x < 640
  @window_Gold.x -= 10 if @window_Gold.x > -160   
  @status_window.y += 10 if @status_window.y < 480
  @item.x += 10 if @item.x < 760
  @skill.x += 10 if @skill.x < 760
  @quit.x += 10 if @quit.x < 760
  @equip.x += 10 if @equip.x < 760
  @status.x += 10 if @status.x < 760
  @save.x += 10 if @save.x < 760
  @load.x += 10 if @load.x < 760
  @playtime.x -= 10 if @playtime.x > -160
  @gold.x -= 10 if @gold.x > -160
  @location.x += 10 if @location.x < 760
 
  if @status_window.y >= 480
    $scene = Scene_Map.new
    $game_map.autoplay   
    return
  end
 
 
  end

  def update
 
    if @intro == nil
     entrance
   end
   
  if @exit == true     
    exit
    @intro = false
  end
   
    @status_window.update
    @window_Gold.update
    @window_PlayTime.update
    @window_Location.update
    @command_window.update

    # If command window is active: call update_command
    if @command_window.active
      update_command
      return
    end
    # If status window is active: call update_status
    if @status_window.active
      update_status
      return
    end
  end
   
  def update_command
  # If B button was pressed
    if Input.trigger?(Input::B)
  # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      @exit = true
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # If command other than save or end game, and party members = 0
      if $game_party.actors.size == 0 and @command_window.index < 4
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Branch by command window cursor position
      case @command_window.index
      when 0
       $game_system.se_play($data_system.decision_se)
       $scene = Scene_Item.new
      when 1
          $game_system.se_play($data_system.decision_se)
          @command_window.active = false
          @status_window.active = true
          @status_window.index = 0
      when 2
          $game_system.se_play($data_system.decision_se)
          @command_window.active = false
          @status_window.active = true
          @status_window.index = 0
      when 3
          $game_system.se_play($data_system.decision_se)
          @command_window.active = false
          @status_window.active = true
          @status_window.index = 0
      when 4
          if $game_system.save_disabled
              $game_system.se_play($data_system.buzzer_se)
            return
          end
          $game_system.se_play($data_system.decision_se)
        $scene = Scene_Save.new
      when 5 
          $game_system.se_play($data_system.decision_se)
          $scene = Scene_Load_New.new
      when 6 
          $game_system.se_play($data_system.decision_se)
          $scene = Scene_End.new
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when status window is active)
  #--------------------------------------------------------------------------
  def update_status
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Make command window active
      @command_window.active = true
      @status_window.active = false
      @status_window.index = -1
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Branch by command window cursor position
      case @command_window.index
      when 1  # skill
        # If this actor's action limit is 2 or more
        if $game_party.actors[@status_window.index].restriction >= 2
          # Play buzzer SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to skill screen
        $scene = Scene_Skill.new(@status_window.index)
      when 2  # equipment
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to equipment screen
        $scene = Scene_Equip.new(@status_window.index)
      when 3  # status
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to status screen
        $scene = Scene_Status.new(@status_window.index)
      end
      return
    end
  end
end

#==============================================================================
# ** Scene_Load_New
#------------------------------------------------------------------------------
#  New Load Screen
#==============================================================================

class Scene_Load_New < Scene_File
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    # Remake temporary object
    $game_temp = Game_Temp.new
    # Timestamp selects new file
    $game_temp.last_file_index = 0
    latest_time = Time.at(0)
    for i in 0..3
      filename = make_filename(i)
      if FileTest.exist?(filename)
        file = File.open(filename, "r")
        if file.mtime > latest_time
          latest_time = file.mtime
          $game_temp.last_file_index = i
        end
        file.close
      end
    end
    super("Which file would you like to load?")
  end
  #--------------------------------------------------------------------------
  # * Decision Processing
  #--------------------------------------------------------------------------
  def on_decision(filename)
    # If file doesn't exist
    unless FileTest.exist?(filename)
      # Play buzzer SE
      $game_system.se_play($data_system.buzzer_se)
      return
    end
    # Play load SE
    $game_system.se_play($data_system.load_se)
    # Read save data
    file = File.open(filename, "rb")
    read_save_data(file)
    file.close
    # Restore BGM and BGS
    $game_system.bgm_play($game_system.playing_bgm)
    $game_system.bgs_play($game_system.playing_bgs)
    # Update map (run parallel process event)
    $game_map.update
    # Switch to map screen
    $scene = Scene_Map.new
  end
  #--------------------------------------------------------------------------
  # * Cancel Processing
  #--------------------------------------------------------------------------
  def on_cancel
    # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Switch to menu screen
      $scene = Scene_Menu.new(0)
  end
  #--------------------------------------------------------------------------
  # * Read Save Data
  #     file : file object for reading (opened)
  #--------------------------------------------------------------------------
  def read_save_data(file)
    # Read character data for drawing save file
    characters = Marshal.load(file)
    # Read frame count for measuring play time
    Graphics.frame_count = Marshal.load(file)
    # Read each type of game object
    $game_system        = Marshal.load(file)
    $game_switches      = Marshal.load(file)
    $game_variables     = Marshal.load(file)
    $game_self_switches = Marshal.load(file)
    $game_screen        = Marshal.load(file)
    $game_actors        = Marshal.load(file)
    $game_party         = Marshal.load(file)
    $game_troop         = Marshal.load(file)
    $game_map           = Marshal.load(file)
    $game_player        = Marshal.load(file)
    # If magic number is different from when saving
    # (if editing was added with editor)
    if $game_system.magic_number != $data_system.magic_number
      # Load map
      $game_map.setup($game_map.map_id)
      $game_player.center($game_player.x, $game_player.y)
    end
    # Refresh party members
    $game_party.refresh
  end
end

#==============================================================================
# ** Window_Command
#------------------------------------------------------------------------------
#  This window deals with general command choices.
#==============================================================================

class Window_Command1 < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     width    : window width
  #     commands : command text string array
  #--------------------------------------------------------------------------
  def initialize(width, commands)
    # Compute window height from command quantity
    super(0, 0, width, commands.size * 40 + 32)
    @item_max = commands.size
    @commands = commands
    self.contents = Bitmap.new(width - 32, @item_max * 32)
    refresh
    self.index = 0
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    for i in 0...@item_max
      draw_item(i, normal_color)
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #     index : item number
  #     color : text color
  #--------------------------------------------------------------------------
  def draw_item(index, color)
    self.contents.font.color = color
    rect = Rect.new(26, 32 * index, self.contents.width - 8, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    self.contents.draw_text(rect, @commands[index])
  end
  #--------------------------------------------------------------------------
  # * Disable Item
  #     index : item number
  #--------------------------------------------------------------------------
  def disable_item(index)
    draw_item(index, disabled_color)
  end
end




Instructions
To change one of the icons save over them with the same names as the ones at the top of the script.
For facesets you must insert the face or sprite into the pictures folder with _Fc at the end say Basil is you're charecter
you must name it as Basil_Fc



Compatibility
Does not work for more than 3 man parties


Credits and Thanks


  • Spoofus for the layout
  • Silentwalker as this is a major edit of my other CMS's

Valcos

Sweet Deal Nortos ;D!! Sweet Deal! :P
"We are all in the gutter, but some of us are looking at the stars."
-Oscar De La Hoya

Spoofus

*crys*  :'( they grow up so fast.....
i do hope alot of people will like it cause i sure do, i think it just looks nice


My Blog site I am working on: http://spoofus.weebly.com/

Fantasist

By golly it does! Good work Nortos!
Do you like ambient/electronic music? Then you should promote a talented artist! Help out here. (I'm serious. Just listen to his work at least!)


The best of freeware reviews: Gizmo's Freeware Reviews




Nortos


nerissya

I dont know what to say.. its just beautiful.


Click here to feed me a Rare Candy!



I demand you to level up my pokemon. :<

Spoofus

yeah it is isn't it i'm so proud that Nortos made my baby come to life :'(
8sobs* i'm so proud


My Blog site I am working on: http://spoofus.weebly.com/

Valcos

Lol... :D I know Nortos is good!!! OPEN A SHOP!!!! ;D
"We are all in the gutter, but some of us are looking at the stars."
-Oscar De La Hoya

Chaze007

inserting and downloading now :)
Always I Wanna Be With You! Make Believe With You!

Nortos

:P maybe I'll later but than that'll take so much time and I got hmwk and my game and I wanna get to editing mods using the Unreal 3 engine

Valcos

 :D Yeh, thats true. But in the future you should  ;D. But where did you get the UR3E from?!? Send me a pm if you want to share  :D.
"We are all in the gutter, but some of us are looking at the stars."
-Oscar De La Hoya

Nortos

I can't sorry it's from Gears of War and UT3

Valcos

Oh?  ::) Alright. So you technically cant send it? Or you "mentaly" cant send it? :P (hope that makes sense ;D)
"We are all in the gutter, but some of us are looking at the stars."
-Oscar De La Hoya

Nortos

technically :P and yeah it did