#============================================================================== # ■ 最近の入手アイテムに「New」を表示するスクリプト # Ver 0.01 2014/11/05 # http://fweb.midi.co.jp/~mikagami/atelier/ #------------------------------------------------------------------------------ # # 過去5分以内に入手したアイテムのアイコンに「NEW!」と描画します。 # # ※注意! # ・本スクリプト導入前のセーブデータも引き続き使用できる・・・はずです。 # ・既存の関数を別名定義や上書きしている箇所もあるので、このまま導入すると #  他のスクリプトと競合する可能性があります。 # ・動作確認はしていますが、不具合ゼロを保障するものではありません。 # ・このスクリプトの著作権は著者にあります。 #  ですがスクリプトの利用や改造・再配布に著者の許可は必要ありません。 #  著者には未完成な部分の補完や改造依頼に対する対応義務はありません。 #  他者に改造依頼するより、あなた自身が改造すれば、みんなが幸せになります。 # #============================================================================== class Game_Party < Game_Unit #-------------------------------------------------------------------------- # ★ Newアイテムを追加 #-------------------------------------------------------------------------- def add_newitem(item) @new_items = [] if @new_items == nil bitem = Game_BaseItem.new bitem.object = item @new_items.push([Time.now, bitem]) end #-------------------------------------------------------------------------- # ★ Newアイテムか? #-------------------------------------------------------------------------- def newitem?(item) @new_items = [] if @new_items == nil for newitem in @new_items res = Time.now - newitem[0] if res < 0 || res > 60 * 5 # 5分より前の入手は削除 @new_items.delete(newitem) next end return true if newitem[1].object == item end return false end #-------------------------------------------------------------------------- # ◎ アイテムの増加(減少) # include_equip : 装備品も含める #-------------------------------------------------------------------------- alias _old001_gain_item gain_item def gain_item(item, amount, include_equip = false, new = true) _old001_gain_item(item, amount, include_equip) add_newitem(item) if new && item && amount > 0 end end class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ◎ パーティとアイテムを交換する # new_item : パーティから取り出すアイテム # old_item : パーティに返すアイテム #-------------------------------------------------------------------------- def trade_item_with_party(new_item, old_item) return false if new_item && !$game_party.has_item?(new_item) $game_party.gain_item(old_item, 1, false, false) # ★外された装備にNewが付かないようにする $game_party.lose_item(new_item, 1) return true end end class Window_Base < Window #-------------------------------------------------------------------------- # ★ 「NEW!」の描画。アイコンの上に描く #-------------------------------------------------------------------------- def draw_new_icon(x, y, enabled = true) cy = Color.new(255, 255, 0, enabled ? 255 : translucent_alpha) cb = Color.new(0, 0, 0, enabled ? 255 : translucent_alpha) for pos in [[3,17],[3,18],[3,19],[3,20],[3,21],[4,18],[5,19],[6,20],[7,17], [7,18],[7,19],[7,20],[7,21],[9,17],[9,18],[9,19],[9,20],[9,21],[10,17], [10,19],[10,21],[11,17],[11,19],[11,21],[12,17],[12,19],[12,21],[14,17], [14,18],[14,19],[15,20],[15,21],[16,18],[16,19],[17,20],[17,21],[18,17], [18,18],[18,19],[20,17],[20,18],[20,19],[20,21]] contents.set_pixel(x + pos[0],y + pos[1],cy) end for pos in [[2,16],[2,17],[2,18],[2,19],[2,20],[2,21],[2,22],[3,16],[3,22], [4,16],[4,17],[4,19],[4,20],[4,21],[4,22],[5,17],[5,18],[5,20],[5,21], [6,16],[6,17],[6,18],[6,19],[6,21],[6,22],[7,16],[7,22],[8,16],[8,17], [8,18],[8,19],[8,20],[8,21],[8,22],[9,16],[9,22],[10,16],[10,18],[10,20], [10,22],[11,16],[11,18],[11,20],[11,22],[12,16],[12,18],[12,20],[12,22], [13,16],[13,17],[13,18],[13,19],[13,20],[13,21],[13,22],[14,16],[14,20], [14,21],[14,22],[15,16],[15,17],[15,18],[15,19],[15,22],[16,17],[16,20], [16,21],[16,22],[17,16],[17,17],[17,18],[17,19],[17,22],[18,16],[18,20], [18,21],[18,22],[19,16],[19,17],[19,18],[19,19],[19,20],[19,21],[19,22], [20,16],[20,20],[20,22],[21,16],[21,17],[21,18],[21,19],[21,20],[21,21], [21,22]] contents.set_pixel(x + pos[0], y + pos[1], cb) end end #-------------------------------------------------------------------------- # ◎ アイテム名の描画 # enabled : 有効フラグ。false のとき半透明で描画 #-------------------------------------------------------------------------- alias _old001_draw_item_name draw_item_name def draw_item_name(item, x, y, enabled = true, width = 172) return unless item _old001_draw_item_name(item, x, y, enabled, width) draw_new_icon(x, y, enabled) if $game_party.newitem?(item) end end