Ace 스크립트

사용법 - 이벤트에 스크립트로 입력
# 종류 / 0=아이템 1=무기 2=방어구 3=스킬 4=
#돈
type = 0
# ID  / 돈의 경우 액수를 입력
id   = 1
# 입수 텍스트/돈의 경우 무효
text = "아이템획득!"
#
e = $game_temp.streffect
e.push(Window_Getinfo.new(id, type, text))







=begin #=======================================================================
  
◆◇入手インフォメーション+マップエフェクトベース RGSS3◇◆ ※starさんの移植品

◆DEICIDE ALMA
◆レーネ 
◆http://blog.goo.ne.jp/exa_deicide_alma

★変更点
インフォの文章はヘルプの1行目の文章になります。
(<info:任意の文字列>で指定した場合はそちらを優先)

GET = true ならインフォを出したアイテムを入手します。
(アイテム、武器、防具、お金が対象)

◆導入箇所
▼素材のところ、mainより上

=end #=========================================================================
#==============================================================================
# ★RGSS2 
# STEMB_マップエフェクトベース v0.8
# ・エフェクト表示のための配列定義、フレーム更新、ビューポート関連付け
#
#==============================================================================
# ★RGSS2 
# STR20_入手インフォメーション v1.2 09/03/17
# ・マップ画面にアイテム入手・スキル修得などの際に表示するインフォです。
# ・表示内容は 任意指定の名目+アイテム名+ヘルプメッセージとなります。
# ・アイテムのメモ欄に <info:任意の文字列> と記述することで
#  通常とは別の説明文をインフォに表示させることができます。
# [仕様]インフォが表示されている間も移動できます。
#    移動させたくない場合はウェイトを入れてください。
#
#==============================================================================
class Window_Getinfo < Window_Base
  # 設定箇所
  G_ICON  = 260   # ゴールド入手インフォに使用するアイコンインデックス 
  Y_TYPE  = 0     # Y座標の位置(0 = 上基準 1 = 下基準)
  Z       = 188   # Z座標(問題が起きない限り変更しないでください)
  TIME    = 180   # インフォ表示時間(1/60sec)
  OPACITY = 32    # 透明度変化スピード
  B_COLOR = Color.new(0, 0, 0, 160)        # インフォバックの色
  INFO_SE = RPG::SE.new("fanfale", 80, 100) # インフォ表示時の効果音
  
  #STR20W  = /info\[\/(.*)\/\]/im # メモ設定ワード(VXと同じ)
  STR20W  = /<info:(.*?)>/im      # メモ設定ワード
  
  GET = true # インフォを出したアイテムを入手するかどうか(スキルは除く)
end
#
if false
# ★以下をコマンドのスクリプト等に貼り付けてテキスト表示----------------★

# 種類 / 0=アイテム 1=武器 2=防具 3=スキル 4=金
type = 0
# ID  / 金の場合は金額を入力
id   = 1
# 入手テキスト / 金の場合無効
text = "아이템 획득!"
#
e = $game_temp.streffect
e.push(Window_Getinfo.new(id, type, text))

# ★ここまで------------------------------------------------------------★
#
# ◇スキル修得時などにアクター名を直接打ち込むと
#  アクターの名前が変えられるゲームなどで問題が生じます。
#  なので、以下のようにtext部分を改造するといいかもしれません。
#
# 指定IDのアクターの名前取得
t = $game_actors[1].name 
text = t + " / 스킬 습득!"
#
end

class Game_Temp
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_accessor :streffect
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  alias initialize_stref initialize
  def initialize
    initialize_stref
    @streffect = []
  end
end

class Spriteset_Map
  #--------------------------------------------------------------------------
  # ● エフェクトの作成
  #--------------------------------------------------------------------------
  def create_streffect
    $game_temp.streffect = []
  end
  #--------------------------------------------------------------------------
  # ● エフェクトの解放
  #--------------------------------------------------------------------------
  def dispose_streffect
    (0...$game_temp.streffect.size).each do |i|
      $game_temp.streffect[i].dispose if $game_temp.streffect[i] != nil
    end
    $game_temp.streffect = []
  end
  #--------------------------------------------------------------------------
  # ● エフェクトの更新
  #--------------------------------------------------------------------------
  def update_streffect
    (0...$game_temp.streffect.size).each do |i|
      if $game_temp.streffect[i] != nil
        $game_temp.streffect[i].viewport = @viewport1
        $game_temp.streffect[i].update
        $game_temp.streffect.delete_at(i) if $game_temp.streffect[i].disposed?
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 遠景の作成(エイリアス)
  #--------------------------------------------------------------------------
  alias create_parallax_stref create_parallax
  def create_parallax
    create_parallax_stref
    create_streffect
  end
  #--------------------------------------------------------------------------
  # ● 解放(エイリアス)
  #--------------------------------------------------------------------------
  alias dispose_stref dispose
  def dispose
    dispose_streffect
    dispose_stref
  end
  #--------------------------------------------------------------------------
  # ● 更新(エイリアス)
  #--------------------------------------------------------------------------
  alias update_stref update
  def update
    update_stref
    update_streffect
  end
end

class Window_Getinfo < Window_Base
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize(id, type, text = "")
    super(-16, 0, 640 + 32, 38 + 32)
    self.z = Z
    self.contents_opacity = 0
    self.back_opacity = 0
    self.opacity = 0
    @count = 0
    @i = $game_temp.getinfo_size.index(nil)
    @i = $game_temp.getinfo_size.size if (@i == nil)
    if Y_TYPE == 0
      self.y = -14 + (@i * 40)
    else
      self.y = 480 - 58 - (@i * 40)
    end
    $game_temp.getinfo_size[@i] = true 
    refresh(id, type, text)
    INFO_SE.play
  end
  #--------------------------------------------------------------------------
  # ● 解放
  #--------------------------------------------------------------------------
  def dispose
    $game_temp.getinfo_size[@i] = nil
    super
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    self.viewport = nil
    @count += 1
    unless @count >= TIME
      self.contents_opacity += OPACITY
    else
      if Y_TYPE == 0
        self.y -= 1
      else
        self.y += 1
      end
      self.contents_opacity -= OPACITY
      dispose if self.contents_opacity == 0
    end
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh(id, type, text = "")
    case type
    when 0 ; data = $data_items[id]
    when 1 ; data = $data_weapons[id]
    when 2 ; data = $data_armors[id]
    when 3 ; data = $data_skills[id]
    when 4 ; data = id
    else   ; p "type의 값이 이상합니다."
    end
    c = B_COLOR
    self.contents.fill_rect(0, 14, 640, 24, c)
    if type < 4
      draw_item_name(data, 4, 14)
      self.contents.draw_text(250, 14, 340, line_height, description(data))##
    else
      draw_icon(G_ICON, 4, 14)
      self.contents.draw_text(28, 14, 176, line_height, 
      data.to_s + Vocab.currency_unit)
      $game_party.gain_gold(id) if GET
    end
    self.contents.font.size = 14
    w = self.contents.text_size(text).width
    self.contents.fill_rect(0, 0, w + 4, 14, c)
    self.contents.draw_text_f(4, 0, 340, 14, text)
    $game_party.gain_item(data,1) if type <= 2 && GET
    Graphics.frame_reset
  end
  #--------------------------------------------------------------------------
  # ● 解説文取得
  #--------------------------------------------------------------------------
  def description(data)
    if data.note =~ /#{STR20W}/
      return $1
    end
    text = data.description.dup
    text.sub!(/[\r\n]+.*/m, "")
    return text
  end
end

class Game_Temp
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_accessor :getinfo_size
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  alias initialize_str20 initialize
  def initialize
    initialize_str20
    @getinfo_size = []
  end
end

class Bitmap
unless public_method_defined?(:draw_text_f)
  #--------------------------------------------------------------------------
  # ● 文字縁取り描画
  #--------------------------------------------------------------------------
  def draw_text_f(x, y, width, height, str, align = 0, color = Color.new(64,32,128))
    shadow = self.font.shadow
    b_color = self.font.color.dup
    outline = self.font.outline
    self.font.outline = false
    font.shadow = false
    font.color = color
    draw_text(x + 1, y, width, height, str, align) 
    draw_text(x - 1, y, width, height, str, align) 
    draw_text(x, y + 1, width, height, str, align) 
    draw_text(x, y - 1, width, height, str, align) 
    font.color = b_color
    draw_text(x, y, width, height, str, align)
    font.shadow = shadow
    self.font.outline = outline
  end
  def draw_text_f_rect(r, str, align = 0, color = Color.new(64,32,128)) 
    draw_text_f(r.x, r.y, r.width, r.height, str, align, color) 
  end
end
end

Who's 폴라

profile

그냥 가끔 생각나면 제작 잠깐 하느라 제작 속도가 현저히 느립니다


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 5599
공지 RPG VX ACE 유용한 링크 모음 16 아방스 2012.01.03 29432
217 HUD 화폐단위 표시 구분 5 file 허걱 2014.03.19 2979
216 이름입력 한글 이름입력창 23 file 에틴 2012.01.23 11751
215 메시지 한국어 조사처리 스크립트 7 Ilike게임 2012.10.09 3643
214 메시지 한국어 조사 처리 스크립트 (140130) 2 치리 2014.01.31 2699
213 메뉴 파티 개별 인벤토리 스크립트 안나카레리나 2018.06.25 785
212 메시지 텍스트 사운드 이펙트 ( Text Sound Effect ) 10 file 미루 2013.01.10 4393
211 타이틀/게임오버 타이틀 화면 없이 게임을 시작하게 만드는법. 6 마에르드 2012.02.11 4613
210 타이틀/게임오버 타이틀 스크린 커스터마이징 11 file 라실비아 2013.08.12 5189
209 키입력 키 입력 확장 - 전체키 + 마우스입력 40 file 허걱 2012.12.15 5833
208 기타 크리스탈 엔진 : 포켓몬 배틀 시스템 7 file 스리아씨 2013.09.24 3924
207 전투 콤보 카운팅 시스템 4 아르피쥐 2011.12.18 4623
206 타이틀/게임오버 코아 코스튬씨의 랜덤 타이틀 출력 스크립트를 VX Ace용으로 변환 (테스트용) 1 Alkaid 2011.12.29 3212
205 타이틀/게임오버 코아 코스튬씨의 랜덤 타이틀 스크립트를 VX Ace용으로 변환 (완성판) 2 Alkaid 2012.01.25 4017
204 그래픽 커스텀 아이콘 적용하기 2 file 간로 2015.09.28 2777
203 직업 직업 경험치+능력치 설정 확장 7 file zubako 2015.01.27 4013
202 이동 및 탈것 지상 탈것 스크립트 6 file 미루 2013.01.07 4603
201 전투 전투시 나오는 메세지 삭제 10 Nintendo 2012.03.03 4393
200 이름입력 전체키 + 조합한글 + 이름입력처리 변경 47 file 허걱 2012.07.04 8235
199 메뉴 저장금지시 메뉴에 저장 안 뜨게 하기 5 file Bunny_Boy 2013.08.24 2556
198 장비 장비 장착을 통한 스킬 습득 및 삭제 4 아이미르 2012.02.05 3628
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 Next
/ 11