Jump to content
DangerZone

Synn's CMS (Characterset Menu System)

Recommended Posts

This script enables you to use the Characterset graphic instead of the face in menus. V2.5 increases their size and adds the effect to name input. Enjoy! it is my first script so please give feedback, and credit me if use.

 

Screenshot-

 

post-19252-0-42353200-1360901912_thumb.png

 

 

Script-

 

#==============================================================================
# Synn's Charset Menu System V2.5
#------------------------------------------------------------------------------
#  This is my first script. It simply switches he reading of faces to reading charactersets
# instead. It is plug and play, though I am not sure on compatibility with anything else
# that would alter the way that the system draws faces.
#Special thanks to galv for pointing out my flaw with the index situation. =P
# Version 2.5 changes; I just scaled the size up of the Characters and centered them
#more. Also added the effect to name input
#==============================================================================

class Window_MenuStatus < Window_Selectable
  def draw_item(index)
    actor = $game_party.members[index]
    enabled = $game_party.battle_members.include?(actor)
    rect = item_rect(index)
    @frame = 1
    draw_item_background(index)
    draw_character(actor.character_name, actor.character_index, rect.x + 50, rect.y + 70, @frame)
    draw_actor_simple_status(actor, rect.x + 108, rect.y + line_height / 2)
  end
  def draw_character(character_name, character_index, x, y, frame = 1)
    return unless character_name
    bitmap = Cache.character(character_name)
    sign = character_name[/^[\!\$]./]
    if sign && 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+frame)*cw, (n/4*4)*ch, cw, ch)
    ret_rect = Rect.new(x - cw, y - cw * 2, cw * 2, ch * 2)
    contents.stretch_blt(ret_rect, bitmap, src_rect)
  end
end

class Window_Status < Window_Selectable
  def draw_block2(y)
    @frame = 1
    draw_character(@actor.character_name, @actor.character_index, x+65, y+75, @frame)
    draw_basic_info(136, y)
    draw_exp_info(304, y)
  end
  def draw_character(character_name, character_index, x, y, frame = 1)
    return unless character_name
    bitmap = Cache.character(character_name)
    sign = character_name[/^[\!\$]./]
    if sign && 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+frame)*cw, (n/4*4)*ch, cw, ch)
    ret_rect = Rect.new(x - cw, y - cw * 2, cw * 2, ch * 2)
    contents.stretch_blt(ret_rect, bitmap, src_rect)
  end
end

class Window_SkillStatus < Window_Base
  def refresh
    contents.clear
    return unless @actor
    @frame = 1
    draw_character(@actor.character_name, @actor.character_index, 50, 70, @frame)
    draw_actor_simple_status(@actor, 108, line_height / 2)
  end
  def draw_character(character_name, character_index, x, y, frame = 1)
    return unless character_name
    bitmap = Cache.character(character_name)
    sign = character_name[/^[\!\$]./]
    if sign && 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+frame)*cw, (n/4*4)*ch, cw, ch)
    ret_rect = Rect.new(x - cw, y - cw * 2, cw * 2, ch * 2)
    contents.stretch_blt(ret_rect, bitmap, src_rect)
  end
 end
 
class Window_NameEdit < Window_Base
  def refresh
    contents.clear
    @frame = 1
    draw_character(@actor.character_name, @actor.character_index, 50, 70, @frame)
    @max_char.times {|i| draw_underline(i) }
    @name.size.times {|i| draw_char(i) }
    cursor_rect.set(item_rect(@index))
  end
  def draw_character(character_name, character_index, x, y, frame = 1)
    return unless character_name
    bitmap = Cache.character(character_name)
    sign = character_name[/^[\!\$]./]
    if sign && 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+frame)*cw, (n/4*4)*ch, cw, ch)
    ret_rect = Rect.new(x - cw, y - cw * 2, cw * 2, ch * 2)
    contents.stretch_blt(ret_rect, bitmap, src_rect)
  end
 end

 

 

 

I hope you enjoy it, and please give me any suggestions and feedback.

Edited by Jaysynn

Share this post


Link to post
Share on other sites
How about the ability to show portraits in status screen?

I am pretty sure that there is a script for that already on the site, and I am pretty sure it would be compatible with this if you are trying to have both.

 

Like I said, it is my first script, trying to start small =P

Edited by Jaysynn

Share this post


Link to post
Share on other sites

Ok, this script its self is Awesome still and even if it seems so simple to make (maybe for you as beginner), I think no one done this before.

Don't push hard on your self, This its self is a progress since I know no thing yet about scripting :)

 

I will credit you if used.

Nice Job! keep up learning RGSS3 and making great script.

Share this post


Link to post
Share on other sites
Ok, this script its self is Awesome still and even if it seems so simple to make (maybe for you as beginner), I think no one done this before.

Don't push hard on your self, This its self is a progress since I know no thing yet about scripting :)

 

I will credit you if used.

Nice Job! keep up learning RGSS3 and making great script.

Thank you! That is actually really nice to hear, and I am glad it is appreciated. I literally just decided last night to jump into scripting, so I consider it to be an accomplishment.

Share this post


Link to post
Share on other sites

Updated script to V2.5 which scales and centers the graphics as well as adds the effect to Input name.

Edited by Jaysynn

Share this post


Link to post
Share on other sites

I am going to busy for a while so I will barley reply but I am wondering if you could activate the script using a siwtch as an option,

it doesn't matter either way.

 

I am expecting other cool menu scripts from you!

Keep up the Awesome Job!

Share this post


Link to post
Share on other sites

Thanks for the script.  What are the usage terms?

 

Also, pardon my ignorance, but couldn't you solve this problem without a script by just putting the character sprites into a portrait image (by editing)?  So the portrait would be a portrait of a sprite.

Share this post


Link to post
Share on other sites
Thanks for the script.  What are the usage terms?

 

Also, pardon my ignorance, but couldn't you solve this problem without a script by just putting the character sprites into a portrait image (by editing)?  So the portrait would be a portrait of a sprite.

You most certainly could, but that would require making an actor face sheet for ever single characterset. With this script, you just put it in and you are good to go. Which also means not flooding your folders with images, therefore cutting down filesize. =] Like i said on first post, credit me if you use. thats really the only term.

Share this post


Link to post
Share on other sites

I hope you enjoy it, and please give me any suggestions and feedback.

 

Great work! :D

I believe I've found a little mistake though...

ret_rect = Rect.new(x - cw, y - cw * 2, cw * 2, ch * 2)

aren't all those suppose to be like this:

ret_rect = Rect.new(x - cw, y - ch * 2, cw * 2, ch * 2)

 

but I am wondering if you could activate the script using a siwtch as an option,

 

Took care of that for ya (& much more). ;)

 

I've made some serious modifications to this (per request).

Check it out: Click Here

 

Let me know what you guys think. B)

Edited by CT Bolt

Share this post


Link to post
Share on other sites

 

I hope you enjoy it, and please give me any suggestions and feedback.

 

Great work! :D

I believe I've found a little mistake though...

ret_rect = Rect.new(x - cw, y - cw * 2, cw * 2, ch * 2)

aren't all those suppose to be like this:

ret_rect = Rect.new(x - cw, y - ch * 2, cw * 2, ch * 2)

 

>but I am wondering if you could activate the script using a siwtch as an option,

 

Took care of that for ya (& much more). ;)

 

I've made some serious modifications to this (per request).

Check it out: Click Here

 

Let me know what you guys think. B)

 

That is great! I couldnt figure out for the life of me how to animate them, as I said it was my first script.

I had to take a break from everything computer related cuz I broke my collarbone. I appreciate the add-on and will update the main post with your link, with your permission of course?

Share this post


Link to post
Share on other sites

That is great! I couldn't figure out for the life of me how to animate them, as I said it was my first script.

No too bad for a first script.  ;)  I haven't been doing RGSS3 very long myself either actually. B)

 

I had to take a break from everything computer related cuz I broke my collarbone.

Oh, ouch. I hope your doing well. :)

 

I appreciate the add-on and will update the main post with your link, with your permission of course?

Oh yeah, for sure... go ahead and add it to the main post, I would really like that. ^_^

 

Updated it: Click Here

mod v1.0 Features

  • Adds Compatibility with YEA - Status Menu
  • Customization for each place it is used:
  • Whether or not use a character sprite
  • Whether or not to animate the sprite
  • Speed of the animation
  • Number of frames to count by
  • Direction of the sprite    
  • Sprite Zoom
  • X & Y Offset

Future Plans:

  • Clean up code, reduce redundancy
  • Hue Changing
  • Other effects...

 

PS. I am also going to use this in my "Custom Menu Face Script"... it will have a lot more to it though. ;)

You'll get credit in that as well. :)

Edited by CT Bolt

Share this post


Link to post
Share on other sites

I am back from a very long hiatus. I coulnt use my computer because of the lack of movement with my left arm, but after a couple of surguries and some recovery time, I feel much better. However, I dont have any plans to continue scripting, or even upating the main post any more, as it is being a literal pain, moving my arm aroun and what not an then my pc bugging out for some reason. so CT Bolt has my permission to start his own topic with my core script fully integrated, as his own complete script, and need no mention of me. I wish you guys all the best. :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×
Top ArrowTop Arrow Highlighted