메인에다 간단메세지 쓰셧으면 그럼 이걸 메인에다 삽입해 주세요~
-----------------------------------------------------------------------------------------------
#=================================================
# ■ 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
-----------------------------------------------------------------------------------------------
#=================================================
# ■ 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