iPhone App Directory
RPG Maker VX
 
Gallery Members Search Calendar Help


Welcome Guest ( Log In | Register )

Collapse

>Announcement

The 2nd Quarter Contest has arrived! Go check it out in the Community Announcements now!
2 Pages V   1 2 >  
Reply to this topicStart new topic
> RGSS2.2014, Improving functionality, without compromising integrity.
???nOBodY???
post Mar 3 2014, 05:58 AM
Post #1


moogles + nightmares + coffee = Scripting Psychopathic Tendency
Group Icon


Type: Coder
Alignment: Chaotic Neutral




#==================================================
RGSS2.2014
#==================================================


Introduction

This topic is dedicated to RGSS2.2014.

RGSS2.2014 is a project to improve the existing RGSS2, without compromising other
scripts' integrity, and supporting general compatibility and functionality. If you'd like to
submit a snippet to be added to the project, contact me via PM, or post it somewhere in
this topic. It need not be solely the work of one person alone.

I've already rewritten the Game_BattleAction class, and have numerous edited methods
from the Game_Interpreter class, as well as some miscellaneous standalone snippets.

The other purpose of RGSS2.2014, is to provide a utility for other scripters by
adding extra methods, classes & modules to prevent other scripters from "reinventing the wheel", and
adding methods, classes & modules for other scripters to use.


Code

▼ Utilities
  • [XP/VX] 'File Missing' Preventer
    Spoiler:
    CODE
    #===============================================================
    # ● [XP/VX] ◦ 'FILE MISSING ERROR' PREVENTER ◦ □
    # * Game won't quit because file missing error anymore~ *
    #   * Includes bugfix for MA's Animated Parallaxes by ???nOBodY???~ *
    #--------------------------------------------------------------
    # ◦ by Woratana [woratana@hotmail.com]
    # ◦ Thaiware RPG Maker Community
    # ◦ Released on: 05/10/2008
    # ◦ Updated on: 03/12/2014
    # ◦ Version: 1.1
    #--------------------------------------------------------------
    # * Put this script over everything in your game!
    # (Default scripts in Script Editor are not an exception!)
    #------------------------------------------------------------------

    $global_xpvx_prevention_var = ""

    module Wora_FMEP
      #========================================================
      # * [START] 'FILE MISSING ERROR' PREVENTER SETUP PART *
      #--------------------------------------------------------
      Print_Missing_File = false
      # Print Missing File when error occured
      
      Record_Missing_File = true
      # Record missing file to missing file log?
      Missing_Log_File_Name = 'missing_log.txt'
      # Name of file to store missing file names list
      
      Use_Audio_Replacement = false
      # Use replacement audio file for missing audio?
      Audio_Replacement_File = 'Audio/SE/015-Jump01'
      # Audio file that will play for missing audio
      
      Use_Bitmap_Replacement = false
      # Use replacement image file for missing image?
      Bitmap_Replacement_File = 'Graphics/Characters/shadow00'
      # Image file that will use for missing image
      
      #--------------------------------------------------------
      # * [END] 'FILE MISSING ERROR' PREVENTER SETUP PART *
      #========================================================
      
    Prevention_Keys = ["bigmap"]
      
      def self.print(type, name)
        $global_xpvx_prevention_var = name.to_s
        if Print_Missing_File
          p 'Missed File: ' + name.to_s
        end
        if Record_Missing_File && $global_xpvx_prevention_var.include?(Prevention_Keys[0]) == false
          file = File.open(Missing_Log_File_Name, "a+")
          type = type == 0 ? 'Bitmap' : 'Audio'
          text = '*' + type.to_s + '* :' + name.to_s + "\n"
          file.write(text) unless file.readlines.include?(text)
          file.close
        end
      end
    end

    class << Audio
      AUDME = [:bgm_play, :bgs_play, :me_play, :se_play]
      AUDME.each do |method|
        new_method = 'wora_fmep_aud_' + method.to_s
        alias_method(new_method, method) unless $@
    new_def = <<_ALIAS_
    def #{method}(*args)
      begin
        #{new_method}(*args)
      rescue
        Wora_FMEP.print(1, args[0])
        #{new_method}(Wora_FMEP::Audio_Replacement_File, args[1], args[2]) if
      Wora_FMEP::Use_Audio_Replacement
      end
    end
    _ALIAS_
    eval(new_def)
      end
    end

    class Bitmap
      unless $@
        alias wora_fmep_bmp_ini initialize
        def initialize(*args)
          unless $global_xpvx_prevention_var.include?(Wora_FMEP::Prevention_Keys[0])
            begin
              wora_fmep_bmp_ini(*args)
            rescue
              Wora_FMEP.print(0, args[0])
              if Wora_FMEP::Use_Bitmap_Replacement
                wora_fmep_bmp_ini(Wora_FMEP::Bitmap_Replacement_File)
              else
                wora_fmep_bmp_ini(32, 32)
              end
            end
          else
            wora_fmep_bmp_ini(*args)
          end
        end
      end
    end
  • [XP/VX] Console Support
    Spoiler:
    CODE
    #==============================================================================
    # ** Console Support for XP/VX
    #------------------------------------------------------------------------------
    # By Grim from http://www.biloucorp.com
    #==============================================================================
    # Function :
    #==============================================================================
    # Console.log(text)  => display text in console
    # console.log(text)  => display text in console
    #==============================================================================
    # ** Configuration
    #------------------------------------------------------------------------------
    # Configuration data
    #==============================================================================

    module Configuration
      #--------------------------------------------------------------------------
      # * Active Console (true=>activate console, false=>unactivate console)
      # * Only for XP and VX
      #--------------------------------------------------------------------------
      ENABLE_CONSOLE = true
    end

    #==============================================================================
    # ** Util
    #------------------------------------------------------------------------------
    # Usefull tools
    #==============================================================================

    module Util
      #--------------------------------------------------------------------------
      # * Singleton
      #--------------------------------------------------------------------------
      extend self
      #--------------------------------------------------------------------------
      # * if RPG MAKER XP
      #--------------------------------------------------------------------------
      def rpg_maker_xp?
        defined?(Hangup)
      end
      #--------------------------------------------------------------------------
      # * if RPG MAKER VX
      #--------------------------------------------------------------------------
      def rpg_maker_vx?
        !rpg_maker_xp? && (RUBY_VERSION == '1.8.1')
      end
      #--------------------------------------------------------------------------
      # * if RPG MAKER VXAce
      #--------------------------------------------------------------------------
      def rpg_maker_vxace?
        RUBY_VERSION == '1.9.2'
      end
      #--------------------------------------------------------------------------
      # * alias
      #--------------------------------------------------------------------------
      alias :rmxp?    :rpg_maker_xp?
      alias :rmvx?    :rpg_maker_vx?
      alias :rmvxace? :rpg_maker_vxace?
      #--------------------------------------------------------------------------
      # * Get Screen Object
      #--------------------------------------------------------------------------
      def get_screen
        return $game_map.screen if rpg_maker_vxace?
        $game_screen
      end
      #--------------------------------------------------------------------------
      # * Debug mode
      #--------------------------------------------------------------------------
      def from_editor?
        $TEST || $DEBUG
      end
      #--------------------------------------------------------------------------
      # * Get current Scene
      #--------------------------------------------------------------------------
      def scene
        return SceneManager.scene if rpg_maker_vxace?
        $scene
      end
      #--------------------------------------------------------------------------
      # * Window Handle
      #--------------------------------------------------------------------------
      def handle
        Win32API::FindWindowA.call('RGSS Player', 0)
      end
    end

    #==============================================================================
    # ** Win32API
    #------------------------------------------------------------------------------
    #  win32/registry is registry accessor library for Win32 platform.
    #  It uses dl/import to call Win32 Registry APIs.
    #==============================================================================

    class Win32API
      #--------------------------------------------------------------------------
      # * Librairy
      #--------------------------------------------------------------------------
      AllocConsole        = self.new('kernel32', 'AllocConsole', 'v', 'l')
      FindWindowA         = self.new('user32', 'FindWindowA', 'pp', 'i')
      SetForegroundWindow = self.new('user32', 'SetForegroundWindow','l','l')
      SetConsoleTitleA    = self.new('kernel32','SetConsoleTitleA','p','s')
      WriteConsoleOutput  = self.new('kernel32', 'WriteConsoleOutput', 'lpllp', 'l' )
    end

    #==============================================================================
    # ** Console
    #------------------------------------------------------------------------------
    #  VXAce Console Handling
    #==============================================================================

    module Console
      #--------------------------------------------------------------------------
      # * Singleton
      #--------------------------------------------------------------------------
      extend self
      #--------------------------------------------------------------------------
      # * Initialize
      #--------------------------------------------------------------------------
      def init
        unless Util.rmvxace?
          return unless Util.from_editor?
          Win32API::AllocConsole.call
          Win32API::SetForegroundWindow.call(Util.handle)
          Win32API::SetConsoleTitleA.call("RGSS Console")
          $stdout.reopen('CONOUT$')
        end
      end
      #--------------------------------------------------------------------------
      # * Log
      #--------------------------------------------------------------------------
      def log(*data)
        return unless Util.from_editor?
        if Util.rmvxace?
          p(*data)
          return
        end
        return unless Configuration::ENABLE_CONSOLE
        puts(*data.collect{|d|d.inspect})
      end
    end

    #==============================================================================
    # ** Kernel
    #------------------------------------------------------------------------------
    #  Object class methods are defined in this module.
    #  This ensures compatibility with top-level method redefinition.
    #==============================================================================

    module Kernel
      #--------------------------------------------------------------------------
      # * Alias for console
      #--------------------------------------------------------------------------
      def console; Console; end
      #--------------------------------------------------------------------------
      # * pretty print
      #--------------------------------------------------------------------------
      if !Util.rmvxace? && Util.from_editor?
        def p(*args)
          console.log(*args)
        end
      end
    end

    #--------------------------------------------------------------------------
    # * Initialize Console
    #--------------------------------------------------------------------------
    Console.init if Configuration::ENABLE_CONSOLE

▼ Modules
▼ Game Objects
  • Core Fixes
    • Game_System : update : timer fix
    • Game_Interpreter : command_122 : variable fix

    Spoiler:
    CODE
    class Game_System
      #--------------------------------------------------------------------------
      # * Frame Update
      #   * Game_System timer fix applied
      #--------------------------------------------------------------------------
      def update
        if @timer_working and @timer > 0
          @timer -= 1
          #if @timer == 0 and $game_temp.in_battle     # If the timer 0 in battle
          #  $game_temp.next_scene = "map"             # interrupt the battle
          #end
        end
      end
    end

    class Game_Interpreter
      #--------------------------------------------------------------------------
      # * Control Variables
      #   * Game_Interpreter fix applied
      #--------------------------------------------------------------------------
      def command_122
        value = 0
        case @params[3]  # Operand
        when 0  # Constant
          value = @params[4]
        when 1  # Variable
          value = $game_variables[@params[4]]
        when 2  # Random
          value = @params[4] + rand(@params[5] - @params[4] + 1)
        when 3  # Item
          value = $game_party.item_number($data_items[@params[4]])
        when 4 # Actor
          actor = $game_actors[@params[4]]
          if actor != nil
            case @params[5]
            when 0  # Level
              value = actor.level
            when 1  # Experience
              value = actor.exp
            when 2  # HP
              value = actor.hp
            when 3  # MP
              value = actor.mp
            when 4  # Maximum HP
              value = actor.maxhp
            when 5  # Maximum MP
              value = actor.maxmp
            when 6  # Attack
              value = actor.atk
            when 7  # Defense
              value = actor.def
            when 8  # Spirit
              value = actor.spi
            when 9  # Agility
              value = actor.agi
            end
          end
        when 5  # Enemy
          enemy = $game_troop.members[@params[4]]
          if enemy != nil
            case @params[5]
            when 0  # HP
              value = enemy.hp
            when 1  # MP
              value = enemy.mp
            when 2  # Maximum HP
              value = enemy.maxhp
            when 3  # Maximum MP
              value = enemy.maxmp
            when 4  # Attack
              value = enemy.atk
            when 5  # Defense
              value = enemy.def
            when 6  # Spirit
              value = enemy.spi
            when 7  # Agility
              value = enemy.agi
            end
          end
        when 6  # Character
          character = get_character(@params[4])
          if character != nil
            case @params[5]
            when 0  # x-coordinate
              value = character.x
            when 1  # y-coordinate
              value = character.y
            when 2  # direction
              value = character.direction
            when 3  # screen x-coordinate
              value = character.screen_x
            when 4  # screen y-coordinate
              value = character.screen_y
            end
          end
        when 7  # Other
          case @params[4]
          when 0  # map ID
            value = $game_map.map_id
          when 1  # number of party members
            value = $game_party.members.size
          when 2  # gold
            value = $game_party.gold
          when 3  # steps
            value = $game_party.steps
          when 4  # play time
            value = Graphics.frame_count / Graphics.frame_rate
          when 5  # timer
            value = $game_system.timer / Graphics.frame_rate
          when 6  # save count
            value = $game_system.save_count
          end
        end
        for i in @params[0] .. @params[1]   # Batch control
          case @params[2]  # Operation
          when 0  # Set
            $game_variables[i] = value
          when 1  # Add
            $game_variables[i] += value
          when 2  # Sub
            $game_variables[i] -= value
          when 3  # Mul
            $game_variables[i] *= value
          when 4  # Div
            $game_variables[i] /= value if value != 0
          when 5  # Mod
            $game_variables[i] %= value if value != 0
          end
          if $game_variables[i] > 99999999    # Maximum limit check
            $game_variables[i] = 99999999
          end
          if $game_variables[i] < -99999999   # Minimum limit check
            $game_variables[i] = -99999999
          end
        end
        $game_map.need_refresh = true
        return true
      end
    end

  • Game_BattleAction Rewrite v2.0

  • Game_Character
    • jump_to(x,y)

    Spoiler:
    CODE
    class Game_Character
      #--------------------------------------------------------------------------
      # * Jump To
      #     x : x-coordinate value
      #     y : y-coordinate value
      #--------------------------------------------------------------------------
      def jump_to(x, y)
        init_pos = [@x, @y]
        post_pos = [x, y]
        
        r_flag = 0                            # right flag
        l_flag = 0                            # left flag
        d_flag = 0                            # down flag
        u_flag = 0                            # up flag
        x_plus = 0                            # +x
        y_plus = 0                            # +y
        
        if init_pos[0] < post_pos[0]          # Moving right
          r_flag = post_pos[0] - init_pos[0]
          x_plus = r_flag
        elsif init_pos[0] > post_pos[0]       # Moving left
          l_flag = init_pos[0] - post_pos[0]
          x_plus = -(l_flag)
        end
        if init_pos[1] < post_pos[1]          # Moving down
          d_flag = post_pos[1] - init_pos[1]
          y_plus = d_flag
        elsif init_pos[1] > post_pos[1]       # Moving up
          u_flag = init_pos[1] - post_pos[1]
          y_plus = -(u_flag)
        end
        
        jump(x_plus, y_plus)
      end
    end

  • Game_Interpreter
    • launch_exe
    • command_123_ex => Control Self Switch
    • command_203_ex => Set Event Location
    • command_213_ex => Show Balloon Icon
    • command_221_ex => Fadeout Screen
    • command_222_ex => Fadein Screen
    • command_230_ex => Wait
    • command_301_ex => Battle Processing
    • command_311_ex => Change HP
    • command_339_ex => Force Action

    Spoiler:
    CODE
    class Game_Interpreter
      #--------------------------------------------------------------------------
      # * Launch External Program
      # exe : Program filename : string : must be located in root directory, contain no spaces,
      #                                   and include the file extension
      #--------------------------------------------------------------------------
      def launch_exe(exe)
        Thread.new { system("start #{exe}") }
      end
      #--------------------------------------------------------------------------
      # * Control Self Switch
      #     mapID       : map id
      #     eventID     : if 1 or more, event ID; if 0, current event; if -1, all events on current map
      #     selfSwitch  : self switch; "A", "B", "C", "D"
      #     trueOrFalse : true or false boolean
      #--------------------------------------------------------------------------
      def command_123_ex(mapID, eventID, selfSwitch, trueOrFalse)
        if @original_event_id > 0 && eventID == 0
          key = [mapID, @original_event_id, selfSwitch]
          $game_self_switches[key] = trueOrFalse
        elsif (eventID == -1)
          for evID in $game_map.events.keys
            if evID > 0
              key = [$game_map.map_id, evID, selfSwitch]
              $game_self_switches[key] = trueOrFalse
            end
          end
        else
          key = [mapID, eventID, selfSwitch]
          $game_self_switches[key] = trueOrFalse
        end
        $game_map.need_refresh = true
      end
      #--------------------------------------------------------------------------
      # * Set Event Location
      #     x              : map x coordinate
      #     y              : map y coordinate
      #     event          : event id
      #     dir            : set direction; 2 => down, 4 => left, 6 => right, 8 => up
      #     eventExchange  : event id to exchange map position with event
      #--------------------------------------------------------------------------
      def command_203_ex(x, y, event=0, dir=0, eventExchange=0)
        character = get_character(event)
        if character != nil
          if eventExchange == 0    # Direct designation && Designation with variables
            character.moveto(x, y)
          else                     # Exchange with another event
            old_x = character.x
            old_y = character.y
            character2 = get_character(eventExchange)
            if character2 != nil
              character.moveto(character2.x, character2.y)
              character2.moveto(old_x, old_y)
            end
          end
          case dir   # Direction
          when 8  # Up
            character.turn_up
          when 6  # Right
            character.turn_right
          when 2  # Down
            character.turn_down
          when 4  # Left
            character.turn_left
          end
        end
        return true
      end
      #--------------------------------------------------------------------------
      # * Show Balloon Icon
      #     param1 : if -1, player; if 0, this event; otherwise, event ID.
      #     param2 : balloon_id
      #--------------------------------------------------------------------------
      def command_213_ex(param1, param2)
        character = get_character(param1)
        if character != nil
          character.balloon_id = param2
        end
        return true
      end
      #--------------------------------------------------------------------------
      # * Fadeout Screen
      #     time               : in frames
      #     wait               : wait for fadeout?
      #     not_during_message : no fadeout while $game_message.visible?
      #--------------------------------------------------------------------------
      def command_221_ex(time,wait=true,not_during_message=false)
        return false if $game_message.visible && not_during_message
        screen.start_fadeout(time)
        @wait_count = time if wait
       end
      #--------------------------------------------------------------------------
      # * Fadein Screen
      #     time  : in frames
      #     wait  : wait for fadein?
      #--------------------------------------------------------------------------
      def command_222_ex(time,wait=true)
        return false if $game_message.visible && not_during_message
        screen.start_fadein(time)
        @wait_count = time if wait
      end
      #--------------------------------------------------------------------------
      # * Wait
      #     wait : in frames
      #--------------------------------------------------------------------------
      def command_230_ex(wait=60)
        @wait_count = wait
        return true
      end
      #--------------------------------------------------------------------------
      # * Battle Processing
      #     param1 : troop ID
      #     param2 : can_escape?
      #     param3 : can_lose?
      #--------------------------------------------------------------------------
      def command_301_ex(param1,param2=false,param3=false)
        return true if $game_temp.in_battle
        return false if param1 == 0
        troop_id = param1                       # Direct designation
        if $data_troops[troop_id] != nil
          $game_troop.setup(troop_id)
          $game_troop.can_escape = param2
          $game_troop.can_lose = param3
          $game_temp.battle_proc = Proc.new { |n| @branch[@indent] = n }
          $game_temp.next_scene = "battle"
        end
        @index += 1
        return false
      end
      #--------------------------------------------------------------------------
      # * Change HP
      #     iteraterActorId : if 1 or more, ID; if 0, all
      #     param1          : operation (0: increase, 1: decrease)
      #     param2          : operand_type : operand type (0: invariable 1: variable)
      #     param3          : operand (number or variable ID)
      #     param4          : incapacitation allowed?
      #     param5          : call_gameover if $game_party.all_dead?
      #--------------------------------------------------------------------------
      def command_311_ex(iteraterActorId, param1, param2, param3,
                         param4=false, param5=false)
        value = operate_value(param1, param2, param3)
        iterate_actor_id(iteraterActorId) do |actor|
          next if actor.dead?
          if param4 == false and actor.hp + value <= 0
            actor.hp = 1    # If incapacitation is not allowed, make 1
          else
            actor.hp += value
          end
          actor.perform_collapse
        end
        if $game_party.all_dead? && param5 == true
          $game_temp.next_scene = "gameover"
        end
        return true
      end
      #--------------------------------------------------------------------------
      # * Force Action
      #     param1 :  the group you want to pick the actor or enemy out of
      #                 -1 = target actors by index
      #                  0 = target enemies by troop index
      #                  1 = target actors by party index
      #     param2 : the index of the actor or enemy you want to pick
      #                 for troop and party, the index number starts at zero
      #                 (eg., default party is 0 Ralph, 1 Ulrika, 2 Bennett, 3 Ylva)
      #                 actor index starts at 1
      #                 (eg., default party is 1 Ralph, 2 Ulrika, 3 Bennett, 4 Ylva)
      #     param3 : the kind of action you want to force
      #                  0 = basic
      #                  1 = skill
      #                  2 = item  *
      #                  *ignored on enemies  
      #                  *Item is still consumed, but it is not checked before using.
      #     param4 : the id of the action you want to perform
      #                  if param3 is basic (0)
      #                  0 - attack
      #                  1 - guard
      #                  2 - escape*
      #                  3 - wait
      #                  *escape is ignored on actors
      #                  if param3 is skill or item
      #                  the id of the item or skill you are selecting to force
      #     param5 : the index of the target you want to force to
      #                         -2 = select the last target*
      #                         -1 = choose a random target
      #                 0 or above = pick the selected group index
      #                 *if the previous action had no target, this forced action will be ignored
      #--------------------------------------------------------------------------
      def command_339_ex(param1, param2, param3, param4, param5)
        # By actor index
        if group == -1
          battler = $game_actors[index_id]
          return if !$game_party.members.include?(battler)
          next unless battler.exist?
          battler.action.kind = kind
          if battler.action.kind == 0
            battler.action.basic = basic_id
    #      elsif battler.action.kind == 2
    #        battler.action.skill_id = basic_id
          else
            battler.action.skill_id = basic_id
          end
          if target_id == -2                   # Last target
            battler.action.decide_last_target
          elsif target_id == -1                # Random
            battler.action.decide_random_target
          elsif target_id >= 0                 # Index designation
            battler.action.target_index = target_id
          end
          battler.action.forcing = true
          $game_troop.forcing_battler = battler
          return false
        end
        
        # By party or troop index
        iterate_battler(group, index_id) do |battler|
          next unless battler.exist?
          battler.action.kind = kind
          if battler.action.kind == 0
            battler.action.basic = basic_id
    #      elsif battler.action.kind == 2
    #        battler.action.skill_id = basic_id
          else
            battler.action.skill_id = basic_id
          end
          if target_id == -2                   # Last target
            battler.action.decide_last_target
          elsif target_id == -1                # Random
            battler.action.decide_random_target
          elsif target_id >= 0                 # Index designation
            battler.action.target_index = target_id
          end
          battler.action.forcing = true
          $game_troop.forcing_battler = battler
          @index += 1
          return false
        end
        return true
      end
    end

▼ Sprites
▼ Windows
▼ Scenes
▼ Materials
▼ Main Process
  • Font edit
    Spoiler:
    CODE
    #==============================================================================#
    # ** Main                                                                      #
    #------------------------------------------------------------------------------#
    Font.default_name    = ["Arial"]
    Font.default_color   = Color.new(255, 255, 255, 255)
    Font.default_shadow  = true
    Font.default_italic  = false
    Font.default_bold    = false
    Font.default_size    = 20
    #==============================================================================#
    begin
      Graphics.freeze
      $scene = Scene_Title.new
      $scene.main while $scene != nil
      Graphics.transition(30)
    rescue Errno::ENOENT
      filename = $!.message.sub("No such file or directory - ", "")
      print("Unable to find file #{filename}.")
    end
  • Font & ErrorLog edit
    Spoiler:
    CODE
    ==============================================================================
    #** Main: Font & ErrorLog edit
    #by ???nOBodY???
    #Original ErrorLog function by Mr. Mo
    #==============================================================================
    # Creates an error log file upon crashing if true.
    MAKE_ERRORLOG = true
    MAKE_ERRORLOG_FILENAME = "ErrorLog"
    # Creates an crashScript files upon crashing if true.
    MAKE_CRASHSCRIPT_FILES = false
    MAKE_CRASHSCRIPT_FILES_FILENAME = "ErrorLog"
    # Number of backtraces to list.
    BACKTRACES_LISTED = 10

    #==============================================================================
    # ** Main
    #------------------------------------------------------------------------------
    #  After defining each class, actual processing begins here.
    #==============================================================================
    Font.default_name    = ["Verdana", "Arial", "Courier New"]
    Font.default_size    = 20
    Font.default_bold    = false
    Font.default_italic  = false
    Font.default_shadow  = true
    Font.default_color   = Color.new(255, 255, 255, 255)
    #==============================================================================#
    begin
      Graphics.freeze
      $scene = Scene_Title.new
      $scene.main while $scene != nil
      Graphics.transition(30)
    rescue Errno::ENOENT
      filename = $!.message.sub("No such file or directory - ", "")
      print("Unable to find file #{filename}.")
    #end
    rescue
    if MAKE_ERRORLOG
      # Record Error
      k = 0
      time = Time.now
      time = time.strftime("%a %d %b %Y, %X")
      log = File.open(MAKE_ERRORLOG_FILENAME+".rvdata","a+")
      log.write("[ #{time} ]\n")
      # Write Message and Type
      log.write("'#{$!.message}' Type #{$!.class}\n")
      # Create crashScript array
      crashScripts = []
      for i in 0..$!.backtrace.size
        e = $!.backtrace[i]
        /Section(.*):(.*):in (.*)/.match(e)
        space = " "*(i*2)
        #log.write("'#{$RGSS_SCRIPTS[$1.to_i][0]}'\n")
        log.write(space+"  <>Script '#{$RGSS_SCRIPTS[$1.to_i][1]}' | Line #{$2} | Method #{$3}\n")
        crashScripts.push("#{$RGSS_SCRIPTS[$1.to_i][3]}") unless crashScripts.include?("#{$RGSS_SCRIPTS[$1.to_i][3]}")
        i += 1
        # Don't list more then 4 backtraces to make it simpler, can be changed!
        break if i >= BACKTRACES_LISTED
        next if k == 1
        # Get the first trace
        script = "#{$RGSS_SCRIPTS[$1.to_i][1]}"
        line = $2
        method = $3
        k = 1
      end
      log.write("\n")
      log.close
      # Create crashScript file for each element in crashScripts array
      if MAKE_CRASHSCRIPT_FILES
        crashScriptIterator = 1
        for crashScript in crashScripts
          logger = File.open(MAKE_CRASHSCRIPT_FILES_FILENAME+crashScriptIterator.to_s+".rvdata","a+")
          logger.write(crashScript)
          logger.close
          crashScriptIterator+=1
        end
      end
      # Make some sense
      if $DEBUG
        print "#{$!.message} \nScript '#{script}' \nLine '#{line}' \nMethod '#{method}' \nType '#{$!.class}'"
      else
        print "Unexpected Error! Please visit www.site.com/support for more info.\n"+
            "The ErrorLog is in folder:\n #{File.expand_path('.')}"
      end
    end #MAKE_ERROR_LOG
    end



FAQ

Q: Can I use this commercially?
A: Individual coders' terms apply.

Q: What about yours, nobody-sama?
A: Yep, provided you put me in the credits.

Q: I can't get it to work!
A: Make sure to read each individual snippet's instructions carefully.

Q: I found a bug!
A: You can report all bugs found in this thread.

Q: What if I only want to use one snippet, and not the whole thing?
A: That's perfectly fine. It's only listed here as one "script" for purposes of organization.

This post has been edited by ???nOBodY???: Mar 13 2014, 04:38 PM


--------------------
*The Master List Update Project is currently up-to-date with the latest scripts for that dream project!
*By entering the RGSS2/Ruby Scripting section, you are agreeing to abide by The Coder's Creed.

My Scripts
Spoiler:

ACK Script Requests
Spoiler:

Scripts
Stat Change Formulas
GTBS Ziifee's spin menu Submenus
GTBS Weapon Unleash
GTBS Enemy Status
Attack Command Submenu
Jump To (X,Y)
BGM/BGS Fadein
Window_Message - Pop Text
Spell Management Menu
Melee Mastery Management Menu
Ghost List
Save / Autoload
Some Popup v2.9 => v2.91
Scene_StringEntry v1.02
Scene_StringEntry: More Than 24-Character Input
Scene_StringEntry: Scrolling Character Input Window
Scene_StringEntry: Typing Input
MA's Quest Journal - Accept Quest Add-On (internal)
MA's Quest Journal - Accept Quest Add-On (external)
Easy-to-Add Extra Ziifee Spin Commands
Scrolling Battle Message
Non-Differentiating Enemies
Quest Item Drops
(VX) FP Conditional Drops
FFTA World Map HUD bugfix
RSSBS / SSS - Wereforms patch
Death Counterattack
Targetting Extension

My Heart (Resources)
Spoiler:

Projects
Project AMBROSIA
*something generically clever*

Support these:
Spoiler:







Awards:
Spoiler:

Go to the top of the page
 
+Quote Post
   
kingsofrpg
post Mar 4 2014, 08:09 PM
Post #2



Group Icon


Type: Designer
Alignment: Chaotic Evil




So basically you're just making a collection of improvements to the base script to allow for better general functionality correct? I may have some things to submit, I'll look through my stockpile.


--------------------
Variable/Game_Interpreter Fix
Spoiler:

Proud Puzzle Maker of "Relic"


CODE
dont_hate_the(player) unless player.is_a?(Game_Enemy)
Go to the top of the page
 
+Quote Post
   
???nOBodY???
post Mar 4 2014, 10:38 PM
Post #3


moogles + nightmares + coffee = Scripting Psychopathic Tendency
Group Icon


Type: Coder
Alignment: Chaotic Neutral




That's the gist of it, yeah. Think of it more as an unofficial update to RGSS2 itself, in some respects.
For this reason, it's imperative that they be highly compatible with just about every script out there, while
still giving designers more control; at little to no cost. If you've ever heard of RMXP's MACL, then that's
pretty much what this is. They're very similar in nature.

Note how all the command_###_ex methods in Game_Interpreter do the same thing as the original method used in event commands,
but with greater control, and some, with more functionality. For example, the fadein/fadeout event commands don't allow you to specify
for how many frames you want the fade to last. That's added in the _ex version of the command. The Game_BattleAction Rewrite essentially
changes how the class works, allowing friends_unit and opponents_unit to hold both Game_Actor objects, as well as Game_Enemy objects;
units are treated as more generic arrays, rather than classes (Game_Troop & Game_Party).

Before adding anything to the project, I'll be testing the snippets/methods and whatnot, to make sure they work, before a sort of
review process to determine if it meets certain criteria:

Compatibility?
Seeing as how they're meant to be a package of Methods, Modules, & Classes to be used with most nearly every custom script
already out there, they'd be placed just below the default classes, and above any other custom scripts. I realize that some custom
scripts are written in such a way that this won't always hold true, but generally speaking, they're either standalone or edits of the
default. Compatibility is of the utmost importance.
Functionality?
Do they do what they're supposed to? Do they add functionality that isn't already present in vanilla VX?
Are they easy enough to use?
Category?
Not too important, though they are getting assigned categories.

Documentation can be provided, else I'll whip something quick up myself before adding it.


--------------------
*The Master List Update Project is currently up-to-date with the latest scripts for that dream project!
*By entering the RGSS2/Ruby Scripting section, you are agreeing to abide by The Coder's Creed.

My Scripts
Spoiler:

ACK Script Requests
Spoiler:

Scripts
Stat Change Formulas
GTBS Ziifee's spin menu Submenus
GTBS Weapon Unleash
GTBS Enemy Status
Attack Command Submenu
Jump To (X,Y)
BGM/BGS Fadein
Window_Message - Pop Text
Spell Management Menu
Melee Mastery Management Menu
Ghost List
Save / Autoload
Some Popup v2.9 => v2.91
Scene_StringEntry v1.02
Scene_StringEntry: More Than 24-Character Input
Scene_StringEntry: Scrolling Character Input Window
Scene_StringEntry: Typing Input
MA's Quest Journal - Accept Quest Add-On (internal)
MA's Quest Journal - Accept Quest Add-On (external)
Easy-to-Add Extra Ziifee Spin Commands
Scrolling Battle Message
Non-Differentiating Enemies
Quest Item Drops
(VX) FP Conditional Drops
FFTA World Map HUD bugfix
RSSBS / SSS - Wereforms patch
Death Counterattack
Targetting Extension

My Heart (Resources)
Spoiler:

Projects
Project AMBROSIA
*something generically clever*

Support these:
Spoiler:







Awards:
Spoiler:

Go to the top of the page
 
+Quote Post
   
IXFURU
post Mar 5 2014, 04:46 AM
Post #4


just a nut trying to keep away the squirrels
Group Icon


Type: Undisclosed
Alignment: Lawful Evil




This is really cool, ???nOBoDY???

That selfswitch thing is awesome. I never understood why that wasn't included in the vanilla. I don't know how many methods I've written where I had to change an event's selfswitch at some point.

I don't know enough about the BattleAction class to add any input there. I think you should add the vanillla bug fixes into this, like the variable fix. I think it was a KGC script which was called "Core Fixes" or something like that, it fixed quite a few little things if I remember correctly. Also, I'm thinking the GubiD tutorial fix of the large party thing should be added as well. Like he says in his video on YouTube, it didn't make much sense to have a constant where the player could add more than four members if they weren't gonna show up correctly on the menu scene.

Anyway, I'd have to go through some things in order to find stuff to add to this myself, but I think it's a great idea.


--------------------




To Support:


Spoiler:
CODE
[url="http://www.rpgmakervx.net/index.php?showtopic=57406"][img]http://i16.photobucket.com/albums/b38/Dwiguitar/TheFinishLineUserBar_zps63f6f475.png[/img][/url]


I support:


Spoiler:







I actually won something...Can you believe that?!

Spoiler:



Go to the top of the page
 
+Quote Post
   
???nOBodY???
post Mar 5 2014, 05:18 AM
Post #5


moogles + nightmares + coffee = Scripting Psychopathic Tendency
Group Icon


Type: Coder
Alignment: Chaotic Neutral




Lol, yeah. Or that they disabled graphics for actors in battle:
CODE
  #--------------------------------------------------------------------------
  # * Use Sprites?
  #--------------------------------------------------------------------------
  def use_sprite?
    return false
  end


Spoiler:
The default friends_unit & opponents_unit methods look like this:

CODE
  #--------------------------------------------------------------------------
  # * Get Allied Units
  #--------------------------------------------------------------------------
  def friends_unit
    if battler.actor?
      return $game_party
    else
      return $game_troop
    end
  end
  #--------------------------------------------------------------------------
  # * Get Enemy Units
  #--------------------------------------------------------------------------
  def opponents_unit
    if battler.actor?
      return $game_troop
    else
      return $game_party
    end
  end

With the rewrite, it's just a generic array of Game_Actor/Game_Enemy objects, instead of $game_troop.members or $game_party.members.


I'll probably be continuing to add onto this, so thanks for the suggestions. wink.gif


Edit:
CODE
SelfSwitchController : renamed to command_123_ex, and updated to support an event ID of 0 (current event)
command_301_ex       : added command (Battle Processing)


This post has been edited by ???nOBodY???: Mar 5 2014, 03:16 PM


--------------------
*The Master List Update Project is currently up-to-date with the latest scripts for that dream project!
*By entering the RGSS2/Ruby Scripting section, you are agreeing to abide by The Coder's Creed.

My Scripts
Spoiler:

ACK Script Requests
Spoiler:

Scripts
Stat Change Formulas
GTBS Ziifee's spin menu Submenus
GTBS Weapon Unleash
GTBS Enemy Status
Attack Command Submenu
Jump To (X,Y)
BGM/BGS Fadein
Window_Message - Pop Text
Spell Management Menu
Melee Mastery Management Menu
Ghost List
Save / Autoload
Some Popup v2.9 => v2.91
Scene_StringEntry v1.02
Scene_StringEntry: More Than 24-Character Input
Scene_StringEntry: Scrolling Character Input Window
Scene_StringEntry: Typing Input
MA's Quest Journal - Accept Quest Add-On (internal)
MA's Quest Journal - Accept Quest Add-On (external)
Easy-to-Add Extra Ziifee Spin Commands
Scrolling Battle Message
Non-Differentiating Enemies
Quest Item Drops
(VX) FP Conditional Drops
FFTA World Map HUD bugfix
RSSBS / SSS - Wereforms patch
Death Counterattack
Targetting Extension

My Heart (Resources)
Spoiler:

Projects
Project AMBROSIA
*something generically clever*

Support these:
Spoiler:







Awards:
Spoiler:

Go to the top of the page
 
+Quote Post
   
???nOBodY???
post Mar 10 2014, 12:52 PM
Post #6


moogles + nightmares + coffee = Scripting Psychopathic Tendency
Group Icon


Type: Coder
Alignment: Chaotic Neutral




Added some more Game_Interpreter commands, improved the layout a bit, and added some core fixes: the Game_Interpreter variable fix (bug dealing with Control Variables event command), and the Game_System timer fix (not really a bug, but using the timer in-battle only had one effect when it reached 0; abort; the fix allows more options using timers in the battle scene).


--------------------
*The Master List Update Project is currently up-to-date with the latest scripts for that dream project!
*By entering the RGSS2/Ruby Scripting section, you are agreeing to abide by The Coder's Creed.

My Scripts
Spoiler:

ACK Script Requests
Spoiler:

Scripts
Stat Change Formulas
GTBS Ziifee's spin menu Submenus
GTBS Weapon Unleash
GTBS Enemy Status
Attack Command Submenu
Jump To (X,Y)
BGM/BGS Fadein
Window_Message - Pop Text
Spell Management Menu
Melee Mastery Management Menu
Ghost List
Save / Autoload
Some Popup v2.9 => v2.91
Scene_StringEntry v1.02
Scene_StringEntry: More Than 24-Character Input
Scene_StringEntry: Scrolling Character Input Window
Scene_StringEntry: Typing Input
MA's Quest Journal - Accept Quest Add-On (internal)
MA's Quest Journal - Accept Quest Add-On (external)
Easy-to-Add Extra Ziifee Spin Commands
Scrolling Battle Message
Non-Differentiating Enemies
Quest Item Drops
(VX) FP Conditional Drops
FFTA World Map HUD bugfix
RSSBS / SSS - Wereforms patch
Death Counterattack
Targetting Extension

My Heart (Resources)
Spoiler:

Projects
Project AMBROSIA
*something generically clever*

Support these:
Spoiler:







Awards:
Spoiler:

Go to the top of the page
 
+Quote Post
   
ccrow5derlock
post Mar 10 2014, 03:56 PM
Post #7


Literary Character Artist
Group Icon


Type: Designer
Alignment: Neutral Good




CODE
#==============================================================================
# ** Main
#------------------------------------------------------------------------------
#  After defining each class, actual processing begins here.
#==============================================================================


begin
  Font.default_name = ["Arial"] # Edit as you see fit.
  Font.default_size = 22 # Edit as you see fit.
  Graphics.freeze
  $scene = Scene_Title.new
  $scene.main while $scene != nil
  Graphics.transition(30)
rescue Errno::ENOENT
  filename = $!.message.sub("No such file or directory - ", "")
  print("Unable to find file #{filename}.")
end


It Doesn't Technically belong to me, But It doesn't Technically belong to Anyone by that Standard. Basically this is the simplest 2 line addition to main. Just replace Main with this then modify your font and font size.


--------------------
Virus 9
Spoiler:






I support:
Spoiler:




Go to the top of the page
 
+Quote Post
   
???nOBodY???
post Mar 10 2014, 06:22 PM
Post #8


moogles + nightmares + coffee = Scripting Psychopathic Tendency
Group Icon


Type: Coder
Alignment: Chaotic Neutral




Coolbeans. Actually, that reminds me of another 'Main' addition that is longer, but creates a .rvdata file for errors thats quite a bit more detailed than the standard error msg. Should also throw in the 'Missing File' Preventor...


--------------------
*The Master List Update Project is currently up-to-date with the latest scripts for that dream project!
*By entering the RGSS2/Ruby Scripting section, you are agreeing to abide by The Coder's Creed.

My Scripts
Spoiler:

ACK Script Requests
Spoiler:

Scripts
Stat Change Formulas
GTBS Ziifee's spin menu Submenus
GTBS Weapon Unleash
GTBS Enemy Status
Attack Command Submenu
Jump To (X,Y)
BGM/BGS Fadein
Window_Message - Pop Text
Spell Management Menu
Melee Mastery Management Menu
Ghost List
Save / Autoload
Some Popup v2.9 => v2.91
Scene_StringEntry v1.02
Scene_StringEntry: More Than 24-Character Input
Scene_StringEntry: Scrolling Character Input Window
Scene_StringEntry: Typing Input
MA's Quest Journal - Accept Quest Add-On (internal)
MA's Quest Journal - Accept Quest Add-On (external)
Easy-to-Add Extra Ziifee Spin Commands
Scrolling Battle Message
Non-Differentiating Enemies
Quest Item Drops
(VX) FP Conditional Drops
FFTA World Map HUD bugfix
RSSBS / SSS - Wereforms patch
Death Counterattack
Targetting Extension

My Heart (Resources)
Spoiler:

Projects
Project AMBROSIA
*something generically clever*

Support these:
Spoiler:







Awards:
Spoiler:

Go to the top of the page
 
+Quote Post
   
dizzyinc
post Mar 11 2014, 08:58 PM
Post #9


Designer
Group Icon


Type: Designer
Alignment: Neutral Good




So wait in the Self switches section does it automatically reset self switches once you leave/return the map or do you still have to use a script call to reset the self switches on a particular map?

God I so hate how self switches don't reset upon returning to the map as of now (without your edits), I generally have to setup a bunch of switches/variables with conditional branches that check each time you go to the map. Such a draggggggggg tongue.gif

The missing file preventer is a real big help, a game crash because one file is missing is merely.... ridiculous! I use a script for that right now wink.gif but having that in the systems core would be handy!

P.S just caught the Nobody-sama above laugh.gif

This post has been edited by dizzyinc: Mar 11 2014, 09:03 PM


--------------------
Just Beneath The Skin Beta v1.4.7







The End




My stuff:
Spoiler:


The current game I am working on :


A side project:
Spoiler:

Where's My Money (Family Guy Fan Game)


My first VX game: (don't expect too much)


You can find my video production work here:

You can find my Let's Play videos here:
Go to the top of the page
 
+Quote Post
   
???nOBodY???
post Mar 12 2014, 04:31 PM
Post #10


moogles + nightmares + coffee = Scripting Psychopathic Tendency
Group Icon


Type: Coder
Alignment: Chaotic Neutral




Added [XP/VX] 'File Missing' Preventer, [XP/VX] Console Support, and the Font edit for Main.

QUOTE
So wait in the Self switches section does it automatically reset self switches once you leave/return the map or do you still have to use a script call to reset the self switches on a particular map?

Self switches don't automatically reset, lol.

Added in support for an id of -1, to turn a particular self switch for all events on the current map ON/OFF.


--------------------
*The Master List Update Project is currently up-to-date with the latest scripts for that dream project!
*By entering the RGSS2/Ruby Scripting section, you are agreeing to abide by The Coder's Creed.

My Scripts
Spoiler:

ACK Script Requests
Spoiler:

Scripts
Stat Change Formulas
GTBS Ziifee's spin menu Submenus
GTBS Weapon Unleash
GTBS Enemy Status
Attack Command Submenu
Jump To (X,Y)
BGM/BGS Fadein
Window_Message - Pop Text
Spell Management Menu
Melee Mastery Management Menu
Ghost List
Save / Autoload
Some Popup v2.9 => v2.91
Scene_StringEntry v1.02
Scene_StringEntry: More Than 24-Character Input
Scene_StringEntry: Scrolling Character Input Window
Scene_StringEntry: Typing Input
MA's Quest Journal - Accept Quest Add-On (internal)
MA's Quest Journal - Accept Quest Add-On (external)
Easy-to-Add Extra Ziifee Spin Commands
Scrolling Battle Message
Non-Differentiating Enemies
Quest Item Drops
(VX) FP Conditional Drops
FFTA World Map HUD bugfix
RSSBS / SSS - Wereforms patch
Death Counterattack
Targetting Extension

My Heart (Resources)
Spoiler:

Projects
Project AMBROSIA
*something generically clever*

Support these:
Spoiler:







Awards:
Spoiler:

Go to the top of the page
 
+Quote Post
   
Soulpour777
post Mar 13 2014, 07:34 AM
Post #11



Group Icon


Type: Coder
Alignment: Unaligned




Questions:

Are we to specify only on the utilities or to improve VX or we can also contribute something that changes the Battle's functionalities from default?

i.e. Damage Modifiers


--------------------
I am currently scripting for Ace, however, I still use VX, so I might throw in some VX scripts.
For the link of my scripts, please visit my website here.
Go to the top of the page
 
+Quote Post
   
???nOBodY???
post Mar 13 2014, 12:46 PM
Post #12


moogles + nightmares + coffee = Scripting Psychopathic Tendency
Group Icon


Type: Coder
Alignment: Chaotic Neutral




Like, a quick way to change damage formulas?
Yeah, that's acceptable.


--------------------
*The Master List Update Project is currently up-to-date with the latest scripts for that dream project!
*By entering the RGSS2/Ruby Scripting section, you are agreeing to abide by The Coder's Creed.

My Scripts
Spoiler:

ACK Script Requests
Spoiler:

Scripts
Stat Change Formulas
GTBS Ziifee's spin menu Submenus
GTBS Weapon Unleash
GTBS Enemy Status
Attack Command Submenu
Jump To (X,Y)
BGM/BGS Fadein
Window_Message - Pop Text
Spell Management Menu
Melee Mastery Management Menu
Ghost List
Save / Autoload
Some Popup v2.9 => v2.91
Scene_StringEntry v1.02
Scene_StringEntry: More Than 24-Character Input
Scene_StringEntry: Scrolling Character Input Window
Scene_StringEntry: Typing Input
MA's Quest Journal - Accept Quest Add-On (internal)
MA's Quest Journal - Accept Quest Add-On (external)
Easy-to-Add Extra Ziifee Spin Commands
Scrolling Battle Message
Non-Differentiating Enemies
Quest Item Drops
(VX) FP Conditional Drops
FFTA World Map HUD bugfix
RSSBS / SSS - Wereforms patch
Death Counterattack
Targetting Extension

My Heart (Resources)
Spoiler:

Projects
Project AMBROSIA
*something generically clever*

Support these:
Spoiler:







Awards:
Spoiler:

Go to the top of the page
 
+Quote Post
   
dizzyinc
post Mar 13 2014, 03:59 PM
Post #13


Designer
Group Icon


Type: Designer
Alignment: Neutral Good




This seems like it's coming along great, I need to put some of these in and see how they work with my script collection tongue.gif

I am curious what does the console support do exactly?

Just thought I would share my main script, I feel it gives you more control:

Spoiler:
CODE
#==============================================================================#
# ** Main                                                                      #
#------------------------------------------------------------------------------#
Font.default_name    = ["Times New Roman"]
Font.default_color   = Color.new(255, 255, 255, 255)
Font.default_shadow  = true
Font.default_italic  = false
Font.default_bold    = false
Font.default_size    = 20
#==============================================================================#
begin
  Graphics.freeze
  $scene = Scene_Title.new
  $scene.main while $scene != nil
  Graphics.transition(30)
rescue Errno::ENOENT
  filename = $!.message.sub("No such file or directory - ", "")
  print("Unable to find file #{filename}.")
end




This post has been edited by dizzyinc: Mar 13 2014, 04:17 PM


--------------------
Just Beneath The Skin Beta v1.4.7







The End




My stuff:
Spoiler:


The current game I am working on :


A side project:
Spoiler:

Where's My Money (Family Guy Fan Game)


My first VX game: (don't expect too much)


You can find my video production work here:

You can find my Let's Play videos here:
Go to the top of the page
 
+Quote Post
   
???nOBodY???
post Mar 13 2014, 04:12 PM
Post #14


moogles + nightmares + coffee = Scripting Psychopathic Tendency
Group Icon


Type: Coder
Alignment: Chaotic Neutral




The console support adds a feature that Ace has by default; when using the print method:

CODE
p text

instead of an annoying popup, it'll be output to the console, without interrupting the game.


--------------------
*The Master List Update Project is currently up-to-date with the latest scripts for that dream project!
*By entering the RGSS2/Ruby Scripting section, you are agreeing to abide by The Coder's Creed.

My Scripts
Spoiler:

ACK Script Requests
Spoiler:

Scripts
Stat Change Formulas
GTBS Ziifee's spin menu Submenus
GTBS Weapon Unleash
GTBS Enemy Status
Attack Command Submenu
Jump To (X,Y)
BGM/BGS Fadein
Window_Message - Pop Text
Spell Management Menu
Melee Mastery Management Menu
Ghost List
Save / Autoload
Some Popup v2.9 => v2.91
Scene_StringEntry v1.02
Scene_StringEntry: More Than 24-Character Input
Scene_StringEntry: Scrolling Character Input Window
Scene_StringEntry: Typing Input
MA's Quest Journal - Accept Quest Add-On (internal)
MA's Quest Journal - Accept Quest Add-On (external)
Easy-to-Add Extra Ziifee Spin Commands
Scrolling Battle Message
Non-Differentiating Enemies
Quest Item Drops
(VX) FP Conditional Drops
FFTA World Map HUD bugfix
RSSBS / SSS - Wereforms patch
Death Counterattack
Targetting Extension

My Heart (Resources)
Spoiler:

Projects
Project AMBROSIA
*something generically clever*

Support these:
Spoiler:







Awards:
Spoiler:

Go to the top of the page
 
+Quote Post
   
dizzyinc
post Mar 13 2014, 04:18 PM
Post #15


Designer
Group Icon


Type: Designer
Alignment: Neutral Good




Print? as if someone is trying to print some text from within the game to a sheet of paper? laugh.gif

Also as I am attempting to use the self switches fix I am noticing there is very little "how to use" in the description of each section. May be useful to include something like an example of how to use each section, to be honest looking at it now it merely looks like lines of code to me XDD sorry for my incompetence. I need only one example and I can figure out how to use it from there.

Something along the lines of "script call: fadeout(1)" OR in the event name/map name include -1 for all self switches to reset (something like that)

There's description of what you have set up, just not how to use it.

This post has been edited by dizzyinc: Mar 13 2014, 04:18 PM


--------------------
Just Beneath The Skin Beta v1.4.7







The End




My stuff:
Spoiler:


The current game I am working on :


A side project:
Spoiler:

Where's My Money (Family Guy Fan Game)


My first VX game: (don't expect too much)


You can find my video production work here:

You can find my Let's Play videos here:
Go to the top of the page
 
+Quote Post
   
???nOBodY???
post Mar 13 2014, 04:55 PM
Post #16


moogles + nightmares + coffee = Scripting Psychopathic Tendency
Group Icon


Type: Coder
Alignment: Chaotic Neutral




QUOTE
Print? as if someone is trying to print some text from within the game to a sheet of paper?

It's for debug purposes. It "prints" it to a separate window than the main game's thread.

QUOTE
There's description of what you have set up, just not how to use it.

You use them all in script calls, lol.
To control a self switch for all events on the current map, use

CODE
command_123_ex($game_map.map_id, -1, "A", true)

Note that if the event id is -1, it'll grab all events from the current map, regardless of what mapID is.


They're not supposed to be idiot-proof snippets with long, detailed descriptions on how to use.
It's a shorter format, but I think it still provides as much detail as it needs to.
It's a work in progress, so I might revisit it later at some point. Thanks for the feedback though.

Added my personal Font & ErrorLog edit (which I don't actually use, lol).


--------------------
*The Master List Update Project is currently up-to-date with the latest scripts for that dream project!
*By entering the RGSS2/Ruby Scripting section, you are agreeing to abide by The Coder's Creed.

My Scripts
Spoiler:

ACK Script Requests
Spoiler:

Scripts
Stat Change Formulas
GTBS Ziifee's spin menu Submenus
GTBS Weapon Unleash
GTBS Enemy Status
Attack Command Submenu
Jump To (X,Y)
BGM/BGS Fadein
Window_Message - Pop Text
Spell Management Menu
Melee Mastery Management Menu
Ghost List
Save / Autoload
Some Popup v2.9 => v2.91
Scene_StringEntry v1.02
Scene_StringEntry: More Than 24-Character Input
Scene_StringEntry: Scrolling Character Input Window
Scene_StringEntry: Typing Input
MA's Quest Journal - Accept Quest Add-On (internal)
MA's Quest Journal - Accept Quest Add-On (external)
Easy-to-Add Extra Ziifee Spin Commands
Scrolling Battle Message
Non-Differentiating Enemies
Quest Item Drops
(VX) FP Conditional Drops
FFTA World Map HUD bugfix
RSSBS / SSS - Wereforms patch
Death Counterattack
Targetting Extension

My Heart (Resources)
Spoiler:

Projects
Project AMBROSIA
*something generically clever*

Support these:
Spoiler:







Awards:
Spoiler:

Go to the top of the page
 
+Quote Post
   
dizzyinc
post Mar 13 2014, 05:17 PM
Post #17


Designer
Group Icon


Type: Designer
Alignment: Neutral Good




ahhhh gotcha, that would be handy (debug printout) wink.gif

yeah.... I just know I have spent way too long trying to figure out scripts before when it was quiet simple, a quick "script call: etc." is very useful.

Thanks for that, I kind of figured that was the way to use it wink.gif I will test it out today (with my massive script list!)

Keep up the great work laugh.gif


--------------------
Just Beneath The Skin Beta v1.4.7







The End




My stuff:
Spoiler:


The current game I am working on :


A side project:
Spoiler:

Where's My Money (Family Guy Fan Game)


My first VX game: (don't expect too much)


You can find my video production work here:

You can find my Let's Play videos here:
Go to the top of the page
 
+Quote Post
   
Soulpour777
post Mar 15 2014, 08:56 AM
Post #18



Group Icon


Type: Coder
Alignment: Unaligned




My take here is to fix the Game Timer. Notice that the Game Timer does not deactivate itself when the time gets to 0. I was annoyed at that feature even in Ace, so I corrected it. I don't know if that does count, I can just script it to be used via script. Or also, in making puzzles, closing switches by timer is a pain, so by using an interlock script, you can just close them in no time.

Could you explain me more which are the ones which would help? Does it have to be a big script feature i.e. change the whole activity of the maker?


--------------------
I am currently scripting for Ace, however, I still use VX, so I might throw in some VX scripts.
For the link of my scripts, please visit my website here.
Go to the top of the page
 
+Quote Post
   
???nOBodY???
post Mar 17 2014, 12:08 AM
Post #19


moogles + nightmares + coffee = Scripting Psychopathic Tendency
Group Icon


Type: Coder
Alignment: Chaotic Neutral




@Soulpour777
I'm not completely sure what you're asking, but if you have some code snippets you'd like to submit, go ahead.
They don't have to be big changes to vanilla VX, if that's what you were wondering.


--------------------
*The Master List Update Project is currently up-to-date with the latest scripts for that dream project!
*By entering the RGSS2/Ruby Scripting section, you are agreeing to abide by The Coder's Creed.

My Scripts
Spoiler:

ACK Script Requests
Spoiler:

Scripts
Stat Change Formulas
GTBS Ziifee's spin menu Submenus
GTBS Weapon Unleash
GTBS Enemy Status
Attack Command Submenu
Jump To (X,Y)
BGM/BGS Fadein
Window_Message - Pop Text
Spell Management Menu
Melee Mastery Management Menu
Ghost List
Save / Autoload
Some Popup v2.9 => v2.91
Scene_StringEntry v1.02
Scene_StringEntry: More Than 24-Character Input
Scene_StringEntry: Scrolling Character Input Window
Scene_StringEntry: Typing Input
MA's Quest Journal - Accept Quest Add-On (internal)
MA's Quest Journal - Accept Quest Add-On (external)
Easy-to-Add Extra Ziifee Spin Commands
Scrolling Battle Message
Non-Differentiating Enemies
Quest Item Drops
(VX) FP Conditional Drops
FFTA World Map HUD bugfix
RSSBS / SSS - Wereforms patch
Death Counterattack
Targetting Extension

My Heart (Resources)
Spoiler:

Projects
Project AMBROSIA
*something generically clever*

Support these:
Spoiler:







Awards:
Spoiler:

Go to the top of the page
 
+Quote Post
   
kingsofrpg
post Mar 17 2014, 09:42 PM
Post #20



Group Icon


Type: Designer
Alignment: Chaotic Evil




Not sure if you need this but someone needed something to let them alter the priority of events via script call

Spoiler:
CODE
#-----------------------------------------------------------------------------------
# Script call: change_priority(id, priority)
# Sets the event id on the current map to the specified priority.
# Priorities:
# 0 - below characters
# 1 - same as character
# 2 - above character
#-----------------------------------------------------------------------------------
class Game_Interpreter
  def change_priority(id, priority)
    event = get_character(id)
    event.new_priority(priority)
  end
end
class Game_Event
  def new_priority(priority)
    @priority_type = priority
  end
end


--------------------
Variable/Game_Interpreter Fix
Spoiler:

Proud Puzzle Maker of "Relic"


CODE
dont_hate_the(player) unless player.is_a?(Game_Enemy)
Go to the top of the page
 
+Quote Post
   

2 Pages V   1 2 >
Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 

Lo-Fi Version Time is now: 25th April 2014 - 01:02 AM

RPGMakerVX.net is an Privacy Policy, Legal.