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

[转载发布] Dynamic Window Skin

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    2026-7-12 04:10
  • 签到天数: 209 天

    连续签到: 2 天

    [LV.7]常住居民III

    9071

    主题

    864

    回帖

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

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

    灌水之王

    发表于 2026-7-31 19:56:46 | 显示全部楼层 |阅读模式
    Author: Napoleon

    Some of the features:

    - Compatible with my other Window Message Script.

    - Free for commercial use.

    - Change the skins dynamically while playing.

    - Has no method overwrites (so it's a very compatible script)

    All other details are inside the script. Has now also been added to the master demo.

    Script:

    Spoiler                Code:       
    1. #sb:window_skin [window_skin]=beginScript:  Window SkinVersion: 1.00Author:  NapoleonAbout:- Easily change the skin of all windows and/or only for specific windows.- Also supports adding your own custom windows to it (advanced users).- Does not embed itself to the update() method of Window_Message  for increased performance.Instructions:- Place below "▼ Materials" but above "▼ Main Process".- Change the 'default'-skin in the settings to change all skins easily.- Don't forget to change the window HUE to 0, 0, 0 through:  [F9] > System tab > Window Color.  Otherwise the windows may get a weird unwanted hue.- To change the window skin create a new script-line and use:  set_skin(skin_name, window_name)- To change the default skin:  set_default_skin(skin_name)- Advanced users: or if you prefer to use a script call instead:  $game_system.window_skins[window_name] = skin_name- Examples:  set_skin('Window2') # Changes all default skins to Window2.png  set_skin('Window2', 'Window_MenuCommand') # Changes only the skin for Window_MenuCommand- To change all skins:  set_all_skins('your_skin_filename')- Adding custom windows to this script:  # Add this line to your initialize (AFTER the super(..) call!):  self.windowskin = $game_system.window_skin_bitmap(self.class)  # Then add a line to the SKINS setting matching your window's class name.Terms of Use:- Attribution 3.0 Unported (CC BY 3.0)  [URL="http://creativecommons.org/licenses/by/3.0/%C2%A0Version"]http://creativecommons.org/licenses/by/3.0/ Version[/URL] History:1.00 (21 August 2014)  - First Release=end#===============================================================================# Settings#===============================================================================module Nap; module Win_Skin  # The default key for when the skins have no key or when the refer to a  # nil-value.  # Only change this one if you are an advanced user!  DEFAULT_KEY = :default   # Note: case sensitive!  # Use nil values to use the default.  # You can also add your own custom windows here. For example:  # 'Napoleons_Window'    => 'Window3',  SKINS = {    DEFAULT_KEY           => 'Window_Desert', # Default skin. The default RPG Maker: 'Window'    'Window_Selectable'   => nil,    'Window_Command'      => nil,    'Window_HorzCommand'  => nil,    'Window_Help'         => nil,    'Window_Gold'         => nil,    'Window_MenuCommand'  => nil,    'Window_MenuStatus'   => nil,    'Window_MenuActor'    => nil,    'Window_ItemCategory' => nil,    'Window_ItemList'     => nil,    'Window_SkillCommand' => nil,    'Window_SkillStatus'  => nil,    'Window_SkillList'    => nil,    'Window_EquipStatus'  => nil,    'Window_EquipCommand' => nil,    'Window_EquipSlot'    => nil,    'Window_EquipItem'    => nil,    'Window_Status'       => nil,    'Window_SaveFile'     => nil,    'Window_ShopCommand'  => nil,    'Window_ShopBuy'      => nil,    'Window_ShopSell'     => nil,    'Window_ShopNumber'   => nil,    'Window_ShopStatus'   => nil,    'Window_NameEdit'     => nil,    'Window_NameInput'    => nil,    'Window_ChoiceList'   => nil,    'Window_NumberInput'  => nil,    'Window_KeyItem'      => nil,    'Window_Message'      => nil, # Show Text Window    'Window_ScrollText'   => nil,    'Window_MapName'      => nil,    'Window_BattleLog'    => nil,    'Window_PartyCommand' => nil,    'Window_ActorCommand' => nil,    'Window_BattleStatus' => nil,    'Window_BattleActor'  => nil,    'Window_BattleEnemy'  => nil,    'Window_BattleSkill'  => nil,    'Window_BattleItem'   => nil,    'Window_TitleCommand' => nil,    'Window_GameEnd'      => nil,    'Window_DebugLeft'    => nil,    'Window_DebugRight'   => nil,  }end; end # module Nap; module Win_Skin#===============================================================================$imported ||= {}$imported[:window_skin] = 1.00#===============================================================================# Window Base#===============================================================================class Window_Base < Window    #-----------------------------------------------------------------------------  # Initialize                                                           [ALIAS]  #-----------------------------------------------------------------------------  alias nap_win_skin_initialize initialize  def initialize(x, y, width, height)    nap_win_skin_initialize(x, y, width, height)    self.windowskin = $game_system.window_skin_bitmap(self.class)  endend#===============================================================================# Window Message# For: Because this window is only initialized once we need to set the skin#      when it is opened.#===============================================================================class Window_Message < Window_Base  alias nap_win_skin_open_and_wait open_and_wait  def open_and_wait        self.windowskin = $game_system.window_skin_bitmap(self.class)    nap_win_skin_open_and_wait  endend#===============================================================================# Game System#===============================================================================class Game_System  attr_accessor :window_skins   alias nap_win_skin_initialize initialize  #-----------------------------------------------------------------------------  # Initialize                                                           [ALIAS]  #-----------------------------------------------------------------------------  def initialize    nap_win_skin_initialize    @window_skins = Nap::Win_Skin::SKINS  end  #-----------------------------------------------------------------------------  # Window Skin Bitmap                                                     [NEW]  # Note: returns the default skin if a non-existing key is selected or if the  #       value is nil.  #-----------------------------------------------------------------------------  def window_skin_bitmap(window_name=Nap::Win_Skin::DEFAULT_KEY)    window_name = window_name.to_s.dup # to_s is required in case self.class is used (it not a string and will fail the comparison)    skin_name = @window_skins[window_name]    window_name = Nap::Win_Skin::DEFAULT_KEY if !skin_name || !@window_skins[window_name.to_s]    Cache.system(@window_skins[window_name])  endend#===============================================================================class Game_Interpreter  #-----------------------------------------------------------------------------  # Set Skin                                                               [NEW]  #-----------------------------------------------------------------------------  def set_skin(skin_name, window_name=Nap::Win_Skin::DEFAULT_KEY)    $game_system.window_skins[window_name] = skin_name  end  #-----------------------------------------------------------------------------  # Set All Skins                                                          [NEW]  #-----------------------------------------------------------------------------  def set_all_skins(new_skin_name)    $game_system.window_skins.keys.each { |k| $game_system.window_skins[k] = skin_name = nil }    set_default_skin(new_skin_name)  end  #-----------------------------------------------------------------------------  # Set Default Skin                                                       [NEW]  #-----------------------------------------------------------------------------  def set_default_skin(new_default_name)    $game_system.window_skins[Nap::Win_Skin::DEFAULT_KEY] = new_default_name  endend#===============================================================================
    复制代码








    本贴来自国际rpgmaker官方论坛作者:Napoleon处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/dynamic-window-skin.12971/
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

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

    本版积分规则

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

    幸运抽奖

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

    立即查看

    聊天机器人
    Loading...

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

    GMT+8, 2026-8-17 20:15 , Processed in 0.075283 second(s), 55 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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