みなさーん、ツクツクー!(
そんなわけで、ツクールDS+の頭上アイコン表示をVXAceでも使ってみましょう!(
# coding: utf-8 #=============================================================================== # ■ ツクールDS+風 頭上アイテム表示さん for RGSS3 # ※このスクリプトはRGSS3(RPGツクールVXAce)専用です #------------------------------------------------------------------------------- # 2011/12/06 Ru/むっくRu #------------------------------------------------------------------------------- # RPGツクールDS+のアイテムアイコン頭上表示のような機能を追加します # # 【使い方】 # ・イベントコマンドの「スクリプト」の中で以下の命令を行ってください # # startItemDSP(MAPイベントのID, アイコンのID) # # ● MAPイベントのID # イベント編集ウィンドウのタイトルバー部分にでるIDの値 # 主人公を指定する場合は-1、このイベントを指定する場合は0にしてください # ● アイコンのID # データベースのアイコン選択画面左下に出るIndex:の値 # ただし、Index:0のアイコンは表示されません # # 例) # startItemDSP(-1, 1) # ↑主人公の頭上に1番のアイコン(RTPだとドクロ)が表示される # # ・消すときには「スクリプト」の中で以下の命令を行ってください # # endItemDSP(MAPイベントのID) # # 例) # endItemDSP(-1) # ↑主人公の頭上のアイコンが消える(もともと無い場合は何もおきない) # #------------------------------------------------------------------------------- # 【問題点など】 # VXAce発売前なのでちゃんと動くかわからないし、 # ツクールDS+も出てないので、本当にDS+風なのかどうかもわからない #------------------------------------------------------------------------------- #============================================================================== # ● 設定項目 #============================================================================== module HZM_VXA module DSP_OHICON # 表示する高さ微調整 D_HEIGHT = 0 end end #============================================================================== # ↑ ここまで設定 ↑ # ↓ 以下、スクリプト部 ↓ #============================================================================== # 定数 module HZM_VXA module DSP_OHICON # startItemDSP、endItemDSP命令を使用可能にする CAN_SHORT_COMMAND = true end end # アイコン表示用の変数を追加 class Game_CharacterBase attr_accessor :hzm_vxa_dsp_ohicon_id alias hzm_vxa_dsp_ohicon_init_public_members init_public_members def init_public_members hzm_vxa_dsp_ohicon_init_public_members @hzm_vxa_dsp_ohicon_id = 0 end end # アイコン表示処理追加 class Sprite_Character < Sprite_Base alias hzm_vxa_dsp_ohicon_initialize initialize def initialize(viewport, character = nil) hzm_vxa_dsp_ohicon_initialize(viewport, character) @hzm_vxa_dsp_ohicon_icon_index = 0 end alias hzm_vxa_dsp_ohicon_dispose dispose def dispose hzm_vxa_dsp_ohicon_end_ohicon hzm_vxa_dsp_ohicon_dispose end alias hzm_vxa_dsp_ohicon_update update def update hzm_vxa_dsp_ohicon_update hzm_vxa_dsp_ohicon_update_ohicon end alias hzm_vxa_dsp_ohicon_setup_new_effect setup_new_effect def setup_new_effect # デバッグ用 #@character.hzm_vxa_dsp_ohicon_id = 0 unless @character.hzm_vxa_dsp_ohicon_id hzm_vxa_dsp_ohicon_setup_new_effect if @hzm_vxa_dsp_ohicon_sprite hzm_vxa_dsp_ohicon_end_ohicon if @character.hzm_vxa_dsp_ohicon_id <= 0 else hzm_vxa_dsp_ohicon_start_ohicon if @character.hzm_vxa_dsp_ohicon_id > 0 end end HZM_VXA_DSP_OHICON_ICON_SIZE = 24 def hzm_vxa_dsp_ohicon_start_ohicon @hzm_vxa_dsp_ohicon_icon_index = @character.hzm_vxa_dsp_ohicon_id @hzm_vxa_dsp_ohicon_sprite = Sprite.new(viewport) @hzm_vxa_dsp_ohicon_sprite.bitmap = Bitmap.new(HZM_VXA_DSP_OHICON_ICON_SIZE, HZM_VXA_DSP_OHICON_ICON_SIZE) bitmap = Cache.system("Iconset") rect = Rect.new(@hzm_vxa_dsp_ohicon_icon_index % 16 * HZM_VXA_DSP_OHICON_ICON_SIZE, @hzm_vxa_dsp_ohicon_icon_index / 16 * HZM_VXA_DSP_OHICON_ICON_SIZE, HZM_VXA_DSP_OHICON_ICON_SIZE, HZM_VXA_DSP_OHICON_ICON_SIZE) @hzm_vxa_dsp_ohicon_sprite.bitmap.blt(0, 0, bitmap, rect) @hzm_vxa_dsp_ohicon_sprite.ox = HZM_VXA_DSP_OHICON_ICON_SIZE / 2 @hzm_vxa_dsp_ohicon_sprite.oy = HZM_VXA_DSP_OHICON_ICON_SIZE hzm_vxa_dsp_ohicon_update_ohicon end def hzm_vxa_dsp_ohicon_end_ohicon @character.hzm_vxa_dsp_ohicon_id = 0 @hzm_vxa_dsp_ohicon_icon_index = 0 hzm_vxa_dsp_ohicon_dispose_ohicon end def hzm_vxa_dsp_ohicon_dispose_ohicon return unless @hzm_vxa_dsp_ohicon_sprite @hzm_vxa_dsp_ohicon_sprite.bitmap.dispose @hzm_vxa_dsp_ohicon_sprite.dispose @hzm_vxa_dsp_ohicon_sprite = nil end def hzm_vxa_dsp_ohicon_update_ohicon return unless @hzm_vxa_dsp_ohicon_sprite @hzm_vxa_dsp_ohicon_sprite.x = x @hzm_vxa_dsp_ohicon_sprite.y = y - height - HZM_VXA::DSP_OHICON::D_HEIGHT @hzm_vxa_dsp_ohicon_sprite.z = z + 190 end end # コマンド追加 class Game_Interpreter def hzm_vxa_dsp_ohicon_start_item_over_head(id, icon_index) return unless character = get_character(id) character.hzm_vxa_dsp_ohicon_id = icon_index end # ショートカットコマンドの追加 if HZM_VXA::DSP_OHICON::CAN_SHORT_COMMAND def startItemDSP(id, icon_index) begin hzm_vxa_dsp_ohicon_start_item_over_head(id, icon_index) rescue puts "startItemDSP(#{id}, #{icon_index})を実行中にエラーが発生しました" puts "#{$!} - #{$@}" puts "----------" end end def endItemDSP(id) begin hzm_vxa_dsp_ohicon_start_item_over_head(id, 0) rescue puts "endItemDSP(#{id})を実行中にエラーが発生しました" puts "#{$!} - #{$@}" puts "----------" end end end end
フキダシ表示とほとんど変わらないじゃん!
他にもDS+の機能追加するぜーと思ったのですが、
タイトルイラストの表示とかはピクチャでやればいいので必要ないかな……
次は前につくった高速Input.repeat移植しようかなーRGSS3楽しいです!
発売前から神ゲー!!(