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
1001 ABM(액알)+Jindow(진도우) 3 WMN 2008.04.06 5116
1000 전투 ABP 액알 (Action Battle Player) 14 file 백호 2009.02.22 4557
999 스킬 ABP액알 v1.2 스킬추가, 버그수정판 36 file 백호 2009.02.22 6919
998 기타 ABS 몬스터 HP 게이지 바 11 백호 2009.02.22 2485
997 전투 ABS_v3액션 알피지 46 file 알피지GM 2010.03.07 5806
996 기타 Activation_system file 백호 2009.02.22 775
995 전투 Active Time Battle 2.57 by パラ犬 6 file 백호 2009.02.22 2371
994 전투 Active Time Battle 2.62 by パラ犬 file Alkaid 2010.09.06 1652
993 액터 Actor Customization 6.0.2 by Synthesize 4 file Alkaid 2010.09.17 1912
992 아이템 Additional Item Drop by SephirothSpawn (SDK호환) 1 백호 2009.02.22 891
991 메뉴 Advanced Command Windows by Tsunokiette file 백호 2009.02.22 1307
990 이름입력 Advanced Enter Hero Name Window by RPG Advocate 백호 2009.02.22 1168
989 장비 Advanced Equip Window 백호 2009.02.22 806
988 기타 Advanced Gold display by Dubealex 1 백호 2009.02.22 761
987 기타 Advanced Gold Display by Dubealex (돈 액수를 세자리씩 끊어 표기) 2 Alkaid 2010.11.18 1559
986 HUD Advanced HUD Script 3 file 백호 2009.02.22 1341
985 전투 Advanced Individual Battle Command v2.1 by Trickster@rmxp.org (SDK호환) 1 file 백호 2009.02.22 1189
984 전투 Advanced Limit Breaks (KGC스크립트를 SDK호환용으로 손질한 것) 백호 2009.02.22 1214
983 스킬 Advanced Mission Skills/Shop/Manager by trickster 3 file 백호 2009.02.22 1601
982 이동 및 탈것 Advanced Player Movement by SephirothSpawn (SDK호환) 1 file 백호 2009.02.22 801
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