Ace 스크립트

itemRarity1.jpg

이 스크립트는 아이템 등급을 아이템과 장비에 할당하도록 허용합니다.

 

아이템 등급은 이름 색상으로 표시됩니다.

 

기본적으로 모든 이름은 흰색입니다. 

다른 등급의 아이템을 다른 색상을 갖도록 사용자 정의 할 수 있습니다

 

- 사용법 -

아이템 등급에 대한 메모 태그 항목을 지정합니다.

 

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

<item rarity: x>

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

 

여기서 x는 숫자입니다.

구성에서는 각각의 아이템 등급과 관련된 색상을 설정할 수 있습니다 . 

색상은 RGB 형식으로 지정됩니다. 몇 가지 샘플 항목이 제공됩니다.

 

출처: http://himeworks.com/2014/03/item-rarity/






#===============================================================================
 Title: Item Rarity
 Author: Hime
 Date: Mar 26, 2014
 URL: http://www.himeworks.com/2014/03/25/item-rarity/
--------------------------------------------------------------------------------
 ** Change log
 Apr 11, 2014
   - fixed bug where item color affects other rows as well
 Mar 26, 2014
   - Fixed bug where loading skills crashed. You can now tag skills with rarity
   - Extended to all base item objects
 Mar 25, 2014
   - Initial release
--------------------------------------------------------------------------------   
 ** Terms of Use
 * Free to use in non-commercial projects
 * Contact me for commercial use
 * No real support. The script is provided as-is
 * Will do bug fixes, but no compatibility patches
 * Features may be requested but no guarantees, especially if it is non-trivial
 * Credits to Hime Works in your project
 * Preserve this header
--------------------------------------------------------------------------------
 ** Description
 
 This script allows you to assign item rarities to items and equips.
 
 Rarity is indicated by name colour: by default, all names are white. 
 You can customize this so that different rarity levels have different
 colours.
 
--------------------------------------------------------------------------------
 ** Installation
 
 In the script editor, place this script below Materials and above Main

--------------------------------------------------------------------------------
 ** Usage 
 
 To specify rarity, note-tag items and equips with
 
   <item rarity: x>
   
 Where x is a number.
 In the configuration, you can set up the colours associated with each rarity
 level.
 
#===============================================================================
=end
$imported = {} if $imported.nil?
$imported[:TH_ItemRarity] = true
#===============================================================================
# ** Configuration
#===============================================================================
module TH
  module Item_Rarity
    
    # Colours associated with each rarity. The colours are specified as
    # RGB values. So for example, White is [255, 255, 255]
    Colour_Map = {
      1 => [255, 255, 255],
      2 => [204, 255, 137],
      3 => [197, 122, 255],
      4 => [255, 84, 0],
    }
    
    Regex = /<item[-_ ]rarity:\s*(\d+)\s*>/i
    
#===============================================================================
# ** Rest of script
#===============================================================================
    @@rarity_colour_map = nil
    
    def self.rarity_colour_map
      unless @@rarity_colour_map
        @@rarity_colour_map = {}
        Colour_Map.each do |i, arr|
          @@rarity_colour_map[i] = Color.new(*arr)
        end
      end
      return @@rarity_colour_map
    end
  end
end

module RPG
 
  class BaseItem
    def rarity
      load_notetag_item_rarity unless @rarity
      return @rarity
    end
    
    def load_notetag_item_rarity
      @rarity = 1
      res = self.note.match(TH::Item_Rarity::Regex)
      if res
        @rarity = res[1].to_i
      end
    end
    
    def rarity_colour
      TH::Item_Rarity.rarity_colour_map[self.rarity]
    end
  end
end

class Window_Base < Window
  
  #-----------------------------------------------------------------------------
  # Replaced
  #-----------------------------------------------------------------------------
  def draw_item_name(item, x, y, enabled = true, width = 172)
    return unless item
    draw_icon(item.icon_index, x, y, enabled)
    change_color(item.rarity_colour, enabled)
    draw_text(x + 24, y, width, line_height, item.name)
		change_color(normal_color, enabled)
  end
end


#===============================================================================
# Instance Item extension
#===============================================================================
if $imported["TH_InstanceItems"]
  module RPG
    class BaseItem
      alias :th_item_rarity_refresh :refresh
      def refresh
        th_item_rarity_refresh
        refresh_item_rarity
      end
      
      def refresh_item_rarity
        var = InstanceManager.get_template(self).rarity
        @rarity = make_item_rarity(InstanceManager.make_full_copy(var))
      end

      def make_item_rarity(rarity)
        rarity
      end
    end
  end
end
Atachment
첨부 '1'
  • ?
    크크섬 2019.08.01 13:56
    감사합니다
  • ?
    크크섬 2019.08.01 14:26
    제일 윗줄에 =begin 한 줄 추가해줘야 정상적으로 작동합니다.
    그리고 레어리티 적용은 각 아이템 메모란에 <item rarity: 등급별 숫자> 를 입력해주시면 됩니다.