XP 스크립트

이건 먼지 심플액알입니다.
-----------------------------------------복사------------------------------------------
#=================================================
# ■ Simple_Action
#-------------------------------------------------
#  Author: Bimilist[비밀소년]
#  Desc: 액션 알피지의 간단한 버젼입니다.
#             고의적으로 함수를 한국어로 만들었으므로,
#             일본어로 번역시 작동여부는 불투명합니다.
#=================================================

 

#───────────────────────
# ♧ 그냥 유용한 함수
#───────────────────────
def 전멸했니?
  # 전이벤트의 루프
  for event in $game_map.events.values
    # 이벤트의 좌표와 트리거가 일치했을 경우
    if event.액션하니?
      return false
    end
  end
  return true
end
def 파티바꿔!
  $game_player.rotate_party
end

# ━━━━━━━━━━━━━━━━━━━━━━━━
# ♣ Game_Event
#     Game_Event를 액션용으로 바꾸어 줍니다.
# ━━━━━━━━━━━━━━━━━━━━━━━━
class Game_Event < Game_Event
  attr_accessor :gauge
  #───────────────────────
  # ♧ 프레임 갱신
  #───────────────────────
  def update
    super
    return if not 액션하니?
    다이 if 죽었니?
    어택
  end
  #───────────────────────
  # ♧ 간편함을 위한 함수들
  #───────────────────────
  def 액션하니?
    return (@hp != nil)
  end
  def 죽었니?
    return false if not 액션하니?
    return (@hp == 0)
  end
  #───────────────────────
  # ♧ 생명력과 타격치를 설정함으로서 액션을 시작
  #───────────────────────
  def 액션(hp, dmg)
    return if 액션하니?
    @maxhp = @hp = hp
    @dmg = dmg
  end
  #───────────────────────
  # ♧ 추가로 돈과 경험치도 지급
  #───────────────────────
  def 상금(gold, exp)
    @gold = gold
    @exp = exp
  end
  #───────────────────────
  # ♧ 자신에게 데미지를 준다
  #───────────────────────
  def 데미지(dmg)
    return if not 액션하니?
    @hp = [@hp - dmg, 0].max
    @gauge = @hp.to_f / @maxhp.to_f
  end
  #───────────────────────
  # ♧ 자신을 죽인다
  #───────────────────────
  def 다이
    $game_player.보상(@gold, @exp) if (@gold and @exp)
    moveto(-10, -10)
    erase
    @hp = nil
    @dmg = nil
    @gold = nil
    @exp = nil
  end
  #───────────────────────
  # ♧ 자신이 공격한다
  #───────────────────────
  def 어택
    단거리_공격_간단히_주인공만
  end
  #───────────────────────
  # ♧ 간단히 주인공만 공격하는 함수
  #  간단함을 유지하기 위해서 딜레이를 위한 변수를
  #  따로 만들지 않고 1.0초로 고정한다.
  #  어택() 함수와 분리한 이유는 장거리 공격으로의
  #  확장을 위해서이다.
  #  ps. 1초에 한번씩 주인공을 바라보며 공격하므로 강하다!!
  #───────────────────────
  def 단거리_공격_간단히_주인공만
    if @delay == nil or @delay == 0
      @delay = 40
    else
      @delay -= 1
      return
    end
    dist = (x - $game_player.x).abs + (y - $game_player.y).abs
    if dist == 1
      turn_toward_player
      $game_player.데미지(@dmg)
    end
  end
end

 

# ━━━━━━━━━━━━━━━━━━━━━━━━
# ♣ Game_Player
#     Game_Player를 액션용으로 바꾸어 줍니다.
#     간단함을 유지하기 위해 다음과 같이 만들었습니다.
#     1. 액션에 참여하는 액터는 오로지 파티맴버의
#        첫번째 케릭터가 되겠습니다.
#     2. 죽을 경우 파티 맴버들의 순서를 바꾸며,
#        모두 죽는 경우에는 게임오버로 처리됩니다.
#     3. 파티에 아무도 없는 경우 전투를 하지 않습니다.
#     4. 데미지 공식은 간단히 체력 빼기 타격치입니다.
#         즉, 방어력, 회피율, 힘 등은 모두 무시됩니다.
#     필요에 따라 개조하여 사용하세요.
# ━━━━━━━━━━━━━━━━━━━━━━━━
class Game_Player < Game_Player
  attr_accessor :gauge
  #───────────────────────
  # ♧ 프레임 갱신
  #───────────────────────
  def update
    super
    return if not 액션하니?
    다이 if 죽었니?
    어택
  end
  #───────────────────────
  # ♧ 간편함을 위한 함수들
  #───────────────────────
  def 파티있니?
    return ($game_party.actors.size != 0)
  end
  def 액션하니?
    return 파티있니?
  end
  def 죽었니?
    return false if not 파티있니?
    return ($game_party.actors[0].hp == 0)
  end
  #───────────────────────
  # ♧ 보상받고 메세지로 표기
  #───────────────────────
  def 보상(gold, exp)
    if 파티있니?
      $game_party.actors[0].exp += exp
      $game_party.gain_gold(gold)
      간단메세지(sprintf("%d골드 & %d경험치 획득", gold, exp))
    end
  end
  #───────────────────────
  # ♧ 자신에게 데미지를 준다
  #───────────────────────
  def 데미지(dmg)
    return if not 액션하니?
    $game_party.actors[0].hp -= dmg
    @gauge = $game_party.actors[0].hp.to_f / $game_party.actors[0].maxhp.to_f
  end
  #───────────────────────
  # ♧ 자신을 죽인다
  #───────────────────────
  def 다이
    # 게임 오버 판정
    rotate_party
    $game_temp.gameover = $game_party.all_dead?
  end
  def rotate_party
    return if $game_party.actors.size < 2
    actor = $game_party.actors[0]
    for i in 0..($game_party.actors.size - 2)
      $game_party.actors[i] = $game_party.actors[i + 1]
    end
    $game_party.actors[$game_party.actors.size - 1] = actor
    $game_player.refresh
  end
  #───────────────────────
  # ♧ 자신이 공격한다
  #───────────────────────
  def 어택
    단거리_공격_간단히_주인공만
  end
  #───────────────────────
  # ♧ 적합한 이벤트를 골라내어 공격한다
  #     간편함을 위해서 딜레이... 없음...!!!!
  #───────────────────────
  def 단거리_공격_간단히_주인공만
    # 결정키가 눌리면
    if Input::trigger?(Input::C)
      # 정면의 좌표를 계산
      new_x = @x + (@direction == 6 ?  1 : @direction == 4 ?  -1 : 0)
      new_y = @y + (@direction == 2 ?  1 : @direction == 8 ?  -1 : 0)
      # 전이벤트의 루프
      for event in $game_map.events.values
        # 이벤트의 좌표와 트리거가 일치했을 경우
        if event.x == new_x and event.y == new_y and
          event.데미지($game_party.actors[0].atk)
        end
      end
    end
  end
end

 

# ━━━━━━━━━━━━━━━━━━━━━━━━
# ♣ Sprite_Character > 작은게이지
#     케릭터에 작은 게이지를 표시합니다
#     ver. SimpleAction
# ━━━━━━━━━━━━━━━━━━━━━━━━
class Sprite_Character < Sprite_Character
  def update
    super
    if @character.gauge != nil
      gauge(@character.gauge)
      @character.gauge = nil
    end
    if @_gauge_setup then
      @_gauge_duration = [@_gauge_duration - 5, 0].max
      @_gauge_sprite_b.x = self.x
      @_gauge_sprite_b.y = self.y - self.oy
      @_gauge_sprite_b.opacity = @_gauge_duration
      @_gauge_sprite.x = self.x
      @_gauge_sprite.y = self.y - self.oy
      @_gauge_sprite.opacity = @_gauge_duration
    end
  end
  def gauge(p)
    setup_gauge if not @_gauge_setup
    @_gauge_sprite.src_rect = Rect.new(0, 0, p * 30, 2)
    @_gauge_duration = 255
  end
  def setup_gauge
    dispose_gauge
    @_gauge_setup = true
    @_gauge_sprite = Sprite.new(self.viewport)
    @_gauge_sprite.bitmap = Bitmap.new(30, 2)
    @_gauge_sprite.bitmap.fill_rect(0, 0, 30, 2, Color.new(255, 255, 0))
    @_gauge_sprite.ox = 15
    @_gauge_sprite.oy = -1
    @_gauge_sprite.z = 1000
    @_gauge_sprite_b = Sprite.new(self.viewport)
    @_gauge_sprite_b.bitmap = Bitmap.new(32, 4)
    @_gauge_sprite_b.bitmap.fill_rect(0, 0, 32, 4, Color.new(0, 0, 0))
    @_gauge_sprite_b.bitmap.fill_rect(1, 1, 30, 2, Color.new(255, 0, 0))
    @_gauge_sprite_b.ox = 16
    @_gauge_sprite_b.oy = 0
    @_gauge_sprite_b.z = 999
  end
  def dispose_gauge
    return if not @_gauge_setup
    @_gauge_setup = false
    @_gauge_sprite.dispose
    @_gauge_sprite_b.dispose
  end
  def dispose
    dispose_gauge
    super
  end
end
----------------------------------------------복사 끝 ------------------------------------------------------
 간단메세지
------------------------------------------------복사-------------------------------------------------------
#=================================================
# ■ 간단메세지
#-------------------------------------------------
#  Author: Bimilist[비밀소년]
#  Desc: 액션 알피지의 간단한 버젼입니다.
#             고의적으로 함수를 한국어로 만들었으므로,
#             일본어로 번역시 작동여부는 불투명합니다.
#=================================================


class Scene_Map < Scene_Map
  #───────────────────────
  # ♧ 오브젝트 초기화
  #───────────────────────
  def initialize
    super
    $간단윈도우 = Window_Help.new
    $간단윈도우.opacity = 0
    $간단윈도우.z = 999
  end
  #───────────────────────
  # ♧ 프레임 갱신
  #───────────────────────
  def update
    super
    if $간단윈도우.disposed?
      $간단윈도우 = Window_Help.new
    end
    $간단윈도우.opacity -= 2
    if $간단윈도우.opacity < 128
      $간단윈도우.opacity = 0
      $간단윈도우.contents_opacity = 0
    end
    if $scene != self
      $간단윈도우.dispose
    end
  end
end
 
def 간단메세지(text)
  $간단윈도우.opacity = 255
  $간단윈도우.contents_opacity = 255
  $간단윈도우.set_text(text, 1)
end

----------------------------------복사 끝 ------------------------------------
이거 읽으셔야 할수있습니다.
몬스터 이동루트를 커스텀 해놓고
커스텀에
스크립트:액션(200.0)
스크립트:상금(100.0)
플레이어에게 다가간다.
를해주세요.
그리고 이벤트에
애니매이션의표시 이 이벤트 검
해주시면 됩니다.
그리고 c를 눌러주시면!!!!!!!!! 됩니다.

 

Comment '12'

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 6153
961 전투 XAS Hero Edition v3.82 19 아방스 2010.12.27 4346
960 메뉴 기본메뉴 뜯어고친것. (스샷추가) 6 file 백호 2009.02.22 4313
959 기타 쓸만한스크립트61개포함 28 file 궭크이 2012.01.09 4296
958 키입력 한글입력기 6 백호 2009.02.22 4288
957 온라인 온라인스크립트 실행방법 13 file 백호 2009.02.22 4275
956 HUD 캐릭터 아래 SP,HP표시해주는 스크립트 33 file 김!제스! 2010.08.04 4269
» 액알입니다.정말 확신함 12 dkqkfsoatp 2007.12.13 4266
954 타이틀/게임오버 [펌]색다른 게임오버 스크립트 14 file 또라에몽 2010.05.09 4265
953 기타 XP 각종 스크립트입니다. 36 file 쿠도신이치 2009.04.26 4264
952 이동 및 탈것 아하! 그렇구나의 3D 신기술 체험 3 14 아하!잘봤어요. 2010.02.28 4258
951 기타 말풍선 스크립트. 62 file 『동그라미』♥ 2010.02.04 4254
950 전투 사이드뷰 전투(보행그래픽) 15 file 백호 2009.02.21 4243
949 스킬 스킬샵 스크립트 16 file 독도2005 2009.08.24 4217
948 메인화면에 별똥별 효과 6 file 아방스 2007.11.09 4217
947 기타 [게이지바]게이지바 스크립트 2.5 (실용적?) 17 file 코아 코스튬 2010.12.05 4216
946 메뉴 메뉴를 바꾸는 스크립트 14 №1 2012.08.04 4206
945 이름입력 한글이름 입력기 스크립트 14 백호 2009.02.22 4205
944 HUD 맵 이름 표시와 미니맵을 같이하자 8 file 뮤리온。 2011.10.08 4191
943 미니맵 [헬악이님 제보] 단축키 미니맵 만들기!!| 13 file 아방스 2007.11.09 4191
942 전투 ATB시스템 입니다. [스샷 첨부] 17 백호 2009.02.22 4182
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 52 Next
/ 52