设为首页收藏本站同能贴吧 切换语言 繁体中文
开启辅助访问 切换到窄版
扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 55|回复: 0

[转载发布] Improve Custom Status Window

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    慵懒
    3 天前
  • 签到天数: 207 天

    连续签到: 1 天

    [LV.7]常住居民III

    3646

    主题

    862

    回帖

    2万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    7
    卡币
    21262
    OK点
    16
    推广点
    0
    同能卷
    50
    积分
    25800

    灌水之王

    发表于 前天 14:15 | 显示全部楼层 |阅读模式
    Improved Custom Status Window v1.1[/SIZE]​


    Author: Flixbeat​


    Introduction

    So I decided to name this script as Improved Custom Status Window, yes.. just another status window with a twist. 

    Objective of this script

    The main objective of this script is to allow the game creator to modify the terms that are being displayed on the screen without worrying about the terms that are indicated in the Terms database, it also allows you to change the colors of some texts and the hp/mp gauge as well. There are also new added stats to display, the EVA(Evasion), CRI(Critical Rate), HTR(Hit Rate). It also allows you to write a short biography for the actors.

    Compatibility Issues
    None so far

    Installation
    Copy the whole script and paste it above ▼ Main Process and be sure that you have the new IconSet.png place it in 'System' Folder if you will do it locally, overwrite the file.

    IconSet

    http://imageshack.us/a/img20/9314/iconsetb.png

    Features

    1) Texts for displaying name,class,stats,etc... can be changed.
    2) Colors of some texts, hp/mp gauge, divider can be changed.
    3) Character sprite is also displayed
    4) New added stat to display EVA(Evation), CRI(Critical Rate), HTR(Hit Rate).
    5) Stats, experince info has icons.
    6) Ability to create a short biography for an actor.
    7) Status window has been divided into 3 parts for a more organized looks.
    I) Name,class,exp info,character sprite,character face
    II) Status and Equipments
    III) Short Biography
    8) Doesn't rely on terms indicated in the database, CREATE IT ON YOUR OWN   
     

    Release & Updates


    Updates:
    - July 26: Changed bio array to hash (v1.1)

    > 1st Release: July 24



    Screenshot





    Script v1.1

    Spoiler# ----------------------------------------------------------------------------# This script is only exclusive for RPG MAKER VX## Script: Improved Custom Status Window v1.1 (Plug and Play)# Author: Flixbeat## Description: An improved window status that allow the game creator to# customize the terms displayed on the window status.## Compatibility issues: none so far## Installation: Copy the whole script and paste it above ▼ Main Process# and be sure that you have the new IconSet.png place it in 'System' Folder# if you will do it localy, overwrite the file.## Features:# 1) Texts for displaying name,class,stats,etc... can be changed.# 2) Colors of some texts, hp/mp gauge, divider can be changed.# 3) Character sprite is also displayed# 4) New added stat to display EVA(Evation), CRI(Critical Rate), HTR(Hit Rate).# 5) Stats, experince info has icons.# 6) Ability to create a short biography for an actor.# 7) Status window has been divided into 3 parts for a more organized looks.#    I) Name,class,exp info,character sprite,character face#    II) Status and Equipments#    III) Short Biography# 8) Doesn't rely on terms indicated in the database, CREATE IT ON YOUR OWN ## Release:# 1st Release: July 24## Updates:# July 26: Changed bio array to hash# ----------------------------------------------------------------------------# ----------------------------------------------------------------------------# * Start customization point# ----------------------------------------------------------------------------module Text    LEVEL_TEXT = "Level" # Level  NAME_TEXT = "Name" # Name  CLASS_TEXT = "Job" # Job  HP_TEXT = "HP" # HP  MP_TEXT = "MP" # MP  CURRENT_EXP_TEXT = "Current Exp" # Current Exp  TO_NEXT_LVL_EXP_TEXT = "To Next Level" # To Next Level  ATK_TEXT = "ATK" # Attack  DEF_TEXT = "DEF" # Defence  AGI_TEXT = "AGI" # Agility  SPI_TEXT = "INT" # Intelligence  EVA_TEXT = "EVA" # Evation Rate  CRI_TEXT = "CRI" # Critacal Rate  HIT_TEXT = "HTR" # Hit Rate    STATS_TEXT = "Stats" # Stats Text  EQ_TEXT = "Equipment" # Equipment Text    BIO_TEXT = "Short Bio" # Biography Text  end# You can add more information for the other actors# Note that you should write a short info here, a long bio would# result out of bouds info.# syntax : actor_id => biomodule Bio    INFO = {    1=> "An idiot who loves nothing but to eat and slack around.",  2=> "She loves eating apples, but she won't able to poop it out.",  3=> "A prideful creature like H_S, HE KNOWS EVERYTHING!",  4=> "She may look cute and nice, but she's doesn't take a bath. (eeww!)",  }     end# This is the icon section.module Icons    ATK_ICON = 2 # 2 (Default - Sword)  DEF_ICON = 52 # 52 (Default - Shield)  AGI_ICON = 48 # 48 (Default - Boots)  SPI_ICON = 21 # 21 (Default - Staff)  EVA_ICON = 374 # 374 (Default - Dashing)  CRI_ICON = 361 # 361 (Default - Blow)  HIT_ICON = 489 # 489 (Default - Sword Impact)    CUR_EXP_ICON = 62 # 62 (Default - Ribbon)  TO_NEXT_LVL_ICON = 63 # 63 (Default - Ribbon going right)  end# Defining colors are in RGB(Red, Green, Blue) format# The higher the value, the higher the intensity of the color# Parameters (Red,Green,Blue)# * Basic Colors# (255,255,255) - White# (0,0,0) - Black# (255,0,0) - Red# (0,255,0) - Green# (0,0,255) - Blue# Got it? Good
    module Colors  # Parameter : Color.new(R,G,    # This will gradient fill the gauge by the color specified  # GC = Gauge Color  HP_GC1 = Color.new(155,0,0)  HP_GC2 = Color.new(255,0,0)  MP_GC1 = Color.new(0,0,155)  MP_GC2 = Color.new(0,0,255)    # Upper Divider Color (Horizontal)  DIV1_COLOR = Color.new(255,255,255)  # Middle Divider Color (Vertical)  DIV2_COLOR = Color.new(255,255,255)  # Lower Divider Color (Horizontal)  DIV3_COLOR= Color.new(255,255,255)  # Stats text color  STATS_TEXT_COLOR = Color.new(255,255,0)  # Equipment text color  EQ_TEXT_COLOR = Color.new(255,255,0)  # Biography text color  BIO_TEXT_COLOR = Color.new(255,255,0)  end# ----------------------------------------------------------------------------# * End of customization point# ----------------------------------------------------------------------------class Window_Status < Window_Base  def initialize(actor_index)    @actor = actor_index     super(0, 0, 544, 416)     self.draw_actor_info   end     def draw_gauge(actor_id,type)    @hp = actor_id.hp    @mp = actor_id.mp    @max_hp = actor_id.base_maxhp    @max_mp = actor_id.base_maxmp        if @hp == 1 then @hp = 2 end    hp_gauge_width = 220 * @hp / @max_hp    mp_gauge_width = 220 * @mp / @max_mp        hp_gauge = Bitmap.new(hp_gauge_width.to_i,20)    mp_gauge = Bitmap.new(mp_gauge_width.to_i,20)    hp_gauge_rect = Rect.new(0,0,hp_gauge.width,hp_gauge.height)    mp_gauge_rect = Rect.new(0,0,mp_gauge.width,mp_gauge.height)    if type == "hp"      color1 = Colors::HP_GC1      color2 = Colors::HP_GC2    elsif type == "mp"      color1 = Colors::MP_GC1      color2 = Colors::MP_GC2    end    hp_gauge.gradient_fill_rect(hp_gauge_rect,color1,color2)    mp_gauge.gradient_fill_rect(mp_gauge_rect,color1,color2)    if type == "hp"      self.contents.blt(300,55,hp_gauge,hp_gauge_rect,255)    elsif type == "mp"      self.contents.blt(300,78,mp_gauge,mp_gauge_rect,255)    end  end       def draw_divider(div)    if div == "horizontal"      divider = Bitmap.new(542,2)      divider_rect = Rect.new(0,0,divider.width,divider.height)      divider.fill_rect(divider_rect,Colors:
    IV1_COLOR)      self.contents.blt(1,110,divider,divider_rect,255)    elsif div == "vertical"      divider = Bitmap.new(2,190)      divider_rect = Rect.new(0,0,divider.width,divider.height)      divider.fill_rect(divider_rect,Colors:
    IV2_COLOR)      self.contents.blt(150,127,divider,divider_rect,255)    elsif div == "horz_bottom"      divider = Bitmap.new(542,2)      divider_rect = Rect.new(0,0,divider.width,divider.height)      divider.fill_rect(divider_rect,Colors:
    IV3_COLOR)      self.contents.blt(1,330,divider,divider_rect,255)    end  end  def draw_item_icon_and_name(actor_index,x,y)    for i in 0..4      item = actor_index.equips      if item == nil        # kill the prideful creature      else         self.draw_icon(item.icon_index, x, y, enabled = true)        self.contents.draw_text(x+30,y,self.width,WLH,item.name)      end      y+=24     end       end    def draw_bio(actor_index)    self.contents.draw_text(5,360,self.width,WLH,Bio::INFO[actor_index])  end    def draw_actor_info        # ------------------------------------------------------------------------    # * CHARACTER INFO    # ------------------------------------------------------------------------        self.contents.clear    self.draw_face(@actor.face_name, @actor.face_index, 0, 0, size = 96)    self.draw_character(@actor.character_name,@actor.character_index,124,35)    self.contents.draw_text(148,5,self.width,WLH,Text::LEVEL_TEXT+": "+@actor.level.to_s)    self.draw_actor_state(@actor, 148, 29, width = 96)    self.contents.draw_text(115,51,self.width,WLH,Text::NAME_TEXT+": "+@actor.name)    self.contents.draw_text(115,75,self.width,WLH,Text::CLASS_TEXT+": "+@actor.class.name)    self.draw_gauge(@actor,"hp")    self.draw_gauge(@actor,"mp")    self.contents.draw_text(300,52,self.width,WLH, Text::HP_TEXT + ": " +    @actor.hp.to_s + " / " +    @actor.base_maxhp.to_s)    self.contents.draw_text(300,50+WLH,self.width,WLH, Text::MP_TEXT + ": " +    @actor.mp.to_s + " / " +    @actor.base_maxmp.to_s)        # ------------------------------------------------------------------------    # * EXPERIENCE INFO    # ------------------------------------------------------------------------        self.draw_icon(Icons::CUR_EXP_ICON,300,0)    self.draw_icon(Icons::TO_NEXT_LVL_ICON,300,26)        self.contents.draw_text(324,0,self.width,WLH,Text::CURRENT_EXP_TEXT+": "+@actor.exp_s.to_s)    self.contents.draw_text(324,26,self.width,WLH,Text::TO_NEXT_LVL_EXP_TEXT+": "+@actor.next_rest_exp_s.to_s)            self.draw_divider("horizontal")            # ------------------------------------------------------------------------    # * STATUS    # ------------------------------------------------------------------------        self.contents.font.color = Colors::STATS_TEXT_COLOR    self.contents.draw_text(5,120,self.width,WLH,Text::STATS_TEXT)    self.contents.font.color = normal_color        self.draw_icon(Icons::ATK_ICON,5,150)    self.contents.draw_text(35,150,self.width,WLH,Text::ATK_TEXT+": "+@actor.base_atk.to_s)        self.draw_icon(Icons:
    EF_ICON,5,174)    self.contents.draw_text(35,174,self.width,WLH,Text:
    EF_TEXT+": "+@actor.base_def.to_s)        self.draw_icon(Icons::AGI_ICON,5,198)    self.contents.draw_text(35,198,self.width,WLH,Text::AGI_TEXT+": "+@actor.base_agi.to_s)        self.draw_icon(Icons::SPI_ICON,5,222)    self.contents.draw_text(35,222,self.width,WLH,Text::SPI_TEXT+": "+@actor.base_spi.to_s)        self.draw_icon(Icons::EVA_ICON,5,246)    self.contents.draw_text(35,246,self.width,WLH,Text::EVA_TEXT+": "+@actor.agi.to_s)    self.draw_icon(Icons::CRI_ICON,5,270)    self.contents.draw_text(35,270,self.width,WLH,Text::CRI_TEXT+": "+@actor.cri.to_s)    self.draw_icon(Icons::HIT_ICON,5,294)    self.contents.draw_text(35,294,self.width,WLH,Text::HIT_TEXT+": "+@actor.hit.to_s)        self.draw_divider("vertical")        # ------------------------------------------------------------------------    # * EQUIPMENT    # ------------------------------------------------------------------------        self.contents.font.color = Colors::EQ_TEXT_COLOR    self.contents.draw_text(170,120,self.width,WLH,Text::EQ_TEXT)    self.contents.font.color = normal_color    self.draw_item_icon_and_name(@actor,170,150)        self.draw_divider("horz_bottom")            # ------------------------------------------------------------------------    # * BIO    # ------------------------------------------------------------------------        self.contents.font.color = Colors::BIO_TEXT_COLOR    self.contents.draw_text(5,336,self.width,WLH,Text::BIO_TEXT)    self.contents.font.color = normal_color        self.draw_bio(@actor.id)      end   end





    If you find some bugs or incompatibility issues, you can just pm me or just add a reply on this thread. 



    本贴来自国际rpgmaker官方论坛作者:flixbeat处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/improve-custom-status-window.16120/

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    简体中文
    繁體中文
    English(英语)
    日本語(日语)
    Deutsch(德语)
    Русский язык(俄语)
    بالعربية(阿拉伯语)
    Türkçe(土耳其语)
    Português(葡萄牙语)
    ภาษาไทย(泰国语)
    한어(朝鲜语/韩语)
    Français(法语)
    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2026-7-10 02:09 , Processed in 0.131066 second(s), 53 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表