Submit Your Article


 
RPG Maker

Welcome Guest ( Log In | Register )


  Games Resources RPG Maker VX RPG Maker XP Scripts Tutorials Downloads

> [RGSS2/3]MSX - XP Characters on VX/VXAce
Melosx
post Jan 1 2012, 06:35 AM
Post #1


Level 1
Group Icon

Group: Member
Posts: 9
Type: Scripter
RM Skill: Intermediate




MSX - XP Characters on VX/VXAce

Version: 1.0
Author: Melosx

Introduction
You can use XP characters whit VX and VXAce. Rename the image by adding $xp at the beginning of the name.
Example: 001-Fighter01.png -> $xp001-Fighter01.png

p.s.: sorry for my bad english sad.gif

Script
Script
CODE
#==========================================================================
# ** MSX - XP Characters in VX/VXAce
#==========================================================================
# Author: Melosx
# English Translation: TheBen
# Version: 1.0
# Compatable with VX and VXAce
#==========================================================================
#  *Description
# --------------------------------------------
# The script permits the use of XP sprites in VX.  All you have to do is insert the tag
#  "$xp" at the start of the filename.
# You can then use the VX-style sprites right alongside the ones of RPGXP.
#
#==========================================================================
# *Instructions
# --------------------------------------------------------------------------
# Insert the script below Materials and above Main.  Add the tag "$xp" (no quotes)
# to the beginning of the filename of XP sprites you want to use.
#
#==========================================================================


#==========================================================================
# ** Sprite_Character
#==========================================================================
class Sprite_Character < Sprite_Base

  def update_bitmap
    if @tile_id != @character.tile_id or
      @character_name != @character.character_name or
      @character_index != @character.character_index
      @tile_id = @character.tile_id
      @character_name = @character.character_name
      @character_index = @character.character_index
      if @tile_id > 0
        sx = (@tile_id / 128 % 2 * 8 + @tile_id % 8) * 32;
        sy = @tile_id % 256 / 8 % 16 * 32;
        self.bitmap = tileset_bitmap(@tile_id)
        self.src_rect.set(sx, sy, 32, 32)
        self.ox = 16
        self.oy = 32
      else
        self.bitmap = Cache.character(@character_name)
        sign = @character_name[/^[!$]./]
        if sign != nil and sign.include?('$')
          @cw = bitmap.width / 3
          @ch = bitmap.height / 4
        else
          @cw = bitmap.width / 12
          @ch = bitmap.height / 8
        end
        if @character_name != nil and @character_name.include?('$xp')
          @cw = bitmap.width / 4
          @ch = bitmap.height / 4
        end
        self.ox = @cw / 2
        self.oy = @ch
      end
    end
  end
        
  def update_src_rect
    if @character_name != nil and @character_name.include?('$xp')
      if @tile_id == 0
        pattern = @character.pattern > 0 ? @character.pattern - 1 : 3
        sx = pattern * @cw
        sy = (@character.direction - 2) / 2 * @ch
        self.src_rect.set(sx, sy, @cw, @ch)
      end
    else
      if @tile_id == 0
        index = @character.character_index
        pattern = @character.pattern < 3 ? @character.pattern : 1
        sx = (index % 4 * 3 + pattern) * @cw
        sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch
        self.src_rect.set(sx, sy, @cw, @ch)
      end
    end
  end
end


#==========================================================================
# ** Window_Base
#==========================================================================

class Window_Base < Window

  def draw_character(character_name, character_index, x, y)
    return if character_name == nil
    bitmap = Cache.character(character_name)
    sign = character_name[/^[!$]./]
    if character_name != nil and character_name.include?('$xp')
      cw = bitmap.width / 4
      ch = bitmap.height / 4
      n = character_index
      src_rect = Rect.new(0, 0, cw, ch)
    else
      if sign != nil and sign.include?('$')
        cw = bitmap.width / 3
        ch = bitmap.height / 4
      else
        cw = bitmap.width / 12
        ch = bitmap.height / 8
      end
      n = character_index
      src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch)
    end
    self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  end

end


Compatibility
Rpg maker VX/VXAce.

Screenshot
Screenshot


Terms and Conditions
You are free to adapt this script.

This post has been edited by Melosx: Feb 6 2012, 05:40 AM
Go to the top of the page
 
+Quote Post
   



Closed TopicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 

Lo-Fi Version Time is now: 18th June 2013 - 07:07 PM
RPG RPG Revolution is an Privacy Policy and Legal
eXTReMe Tracker