Avangs

  • 게임 정보
    • 게임 소개
    • 게임 리뷰
    • 게임 실황
    • 게임 공략
    • 모바일 테스트
  • 게임 작품new
    • 완성작 게임
    • 체험판 게임
    • 한글판 게임new
    • 온라인 게임
    • 추천작 제작자 저장소
  • 투표선정 작품
    • 아방스 추천작
    • 완성 기대작
    • 투표 신청
    • 투표소
    • 투표 결과
  • 강좌
    • 아방스 칼럼
    • 비주얼노벨 강좌
    • 알만툴 강좌
      • MZ 강좌
      • MV 강좌
      • VX Ace 강좌
      • VX 강좌
      • XP 강좌
      • 2003 강좌
      • 2000 강좌
    • 게임메이커 강좌
    • 울프툴 강좌
    • 3D 게임제작 강좌
    • 2D 게임제작 강좌
    • 그래픽 제작 강좌
    • 기타 강좌
  • 질문과 답변
    • 자주 묻는 질문
    • 질문과 답변
    • 제작의뢰
  • 커뮤니티
    • 구인·구직·외주
    • 테스트 요청
    • 자유게시판
    • 게임계 소식
    • 유머&정보
    • 사이트링크
    • 이벤트&대회
  • 창작
    • 게임 기획
    • 맵배치
    • 글쓰기
    • 그리기
    • 음악
  • 자료실
    • 게임제작툴
    • 예제 및 샘플
    • 그래픽 소재
      • 오리지널 소재
      • 이차창작 소재
      • 수정·개조 소재
      • 외부 소재
    • 사운드 소재
    • 확장·플러그인·스크립트
      • MZ 플러그인
      • MV 플러그인
      • Ace 스크립트
      • VX 스크립트
      • XP 스크립트
      • 2k3 플러그인
      • VN 플러그인·확장
    • 외부 소재사이트
    • 기타 자료
      • 한글화툴
      • 무료 폰트
      • 유틸리티
    • 디자인 참고자료
  • 고객센터
    • 공지사항
    • 건의 및 신고
    • 핫 이슈
로그인 회원가입
Avangs
  • 게임 정보
    • 게임 소개
    • 게임 리뷰
    • 게임 실황
    • 게임 공략
    • 모바일 테스트
  • 게임 작품new
    • 완성작 게임
    • 체험판 게임
    • 한글판 게임new
    • 온라인 게임
    • 추천작 제작자 저장소
  • 투표선정 작품
    • 아방스 추천작
    • 완성 기대작
    • 투표 신청
    • 투표소
    • 투표 결과
  • 강좌
    • 아방스 칼럼
    • 비주얼노벨 강좌
    • 알만툴 강좌
      • MZ 강좌
      • MV 강좌
      • VX Ace 강좌
      • VX 강좌
      • XP 강좌
      • 2003 강좌
      • 2000 강좌
    • 게임메이커 강좌
    • 울프툴 강좌
    • 3D 게임제작 강좌
    • 2D 게임제작 강좌
    • 그래픽 제작 강좌
    • 기타 강좌
  • 질문과 답변
    • 자주 묻는 질문
    • 질문과 답변
    • 제작의뢰
  • 커뮤니티
    • 구인·구직·외주
    • 테스트 요청
    • 자유게시판
    • 게임계 소식
    • 유머&정보
    • 사이트링크
    • 이벤트&대회
  • 창작
    • 게임 기획
    • 맵배치
    • 글쓰기
    • 그리기
    • 음악
  • 자료실
    • 게임제작툴
    • 예제 및 샘플
    • 그래픽 소재
      • 오리지널 소재
      • 이차창작 소재
      • 수정·개조 소재
      • 외부 소재
    • 사운드 소재
    • 확장·플러그인·스크립트
      • MZ 플러그인
      • MV 플러그인
      • Ace 스크립트
      • VX 스크립트
      • XP 스크립트
      • 2k3 플러그인
      • VN 플러그인·확장
    • 외부 소재사이트
    • 기타 자료
      • 한글화툴
      • 무료 폰트
      • 유틸리티
    • 디자인 참고자료
  • 고객센터
    • 공지사항
    • 건의 및 신고
    • 핫 이슈
로그인 회원가입

NOTICE

공지사항
더보기
  • 서버 안정성 및 보안 강화 조치 04.20

Recently Added Games

최근 등록 게임
  • 어드벤쳐 고철에 파묻힌 데모나 (屑鉄まとうデモナ) newfile 08.19
  • 어드벤쳐 비올레 저택의 시온 : 꽃눈의 저택|RPG Maker MZ 단편 심리공포 어드벤처 file 08.17
  • 기타 (똥 주의)그저 똥을 누러 가는 게임 Re:Boot updatefile 08.16
  • 롤플레잉 SACCHARINE SYNC (DEMO) 배포 file 08.12
  • 기타 (완성작) 야구장에 가자4 file 2 07.07
스킬
2009.02.22 12:48

약간 수정한 심플액알(크리티컬,스킬)

백호
조회 수 3906 추천 수 0 댓글 10
크게 작게 위로 아래로 댓글로 가기 인쇄
크게 작게 위로 아래로 댓글로 가기 인쇄
#=================================================
# ■ 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 죽었니? and not 지워졌니?
    리젠! if 죽었니? and 리젠되니?
    어택!
  end
  #───────────────────────
  # ♧ 되살리기 기능 추가
  #───────────────────────
  def unerase
    @erased = false
    refresh
  end
  #───────────────────────
  # ♧ moveto(-10,-10)이 안되는 것을 대신.
  #───────────────────────
  def moveto_outside
    @x = -10
    @y = -10
    @real_x = @x * 128
    @real_y = @y * 128
    @prelock_direction = 0
  end
  #───────────────────────
  # ♧ 간편함을 위한 함수들
  #───────────────────────
  def 액션하니?
    return (@hp != nil)
  end
  def 죽었니?
    return false if not 액션하니?
    return (@hp == 0)
  end
  def 리젠되니?
    return (@regen_time != nil)
  end
  def 지워졌니?
    return (@erased == true)
  end
  #───────────────────────
  # ♧ 생명력과 타격치를 설정함으로서 액션을 시작
  #───────────────────────
  def 액션(hp, dmg)
    return if 액션하니?
    @maxhp = @hp = hp
    @dmg = dmg
  end
  #───────────────────────
  # ♧ 리젠한다. time은 초단위. 소수점도 가능.
  #───────────────────────
  def 리젠(time)
    return if not 액션하니?
    @regen_time = time
    @regen_count = 0
  end
  #───────────────────────
  # ♧ 추가로 돈과 경험치도 지급
  #───────────────────────
  def 상금(gold, exp)
    @gold = gold
    @exp = exp
  end
  #───────────────────────
  # ♧ 아이템
  #───────────────────────
  def 아이템(id, rate = 100)
    @item_id = id
    @item_rate = rate
  end
  #───────────────────────
  # ♧ 무기
  #───────────────────────
  def 무기(id, rate = 100)
    @weapon_id = id
    @weapon_rate = rate
  end
  #───────────────────────
  # ♧ 자신에게 데미지를 준다
  #───────────────────────
  def 데미지(dmg)
    return if not 액션하니?
    @hp = [@hp - dmg, 0].max
    @gauge = @hp.to_f / @maxhp.to_f
  end
  #───────────────────────
  # ♧ 자신을 죽인다
  #───────────────────────
  def 지워져!
    item = nil
    if (@item_id and @item_rate)
      if rand(100) < @item_rate
        item = $data_items[@item_id]
      end
    end
   
    weapon = nil
    if (@weapon_id and @weapon_rate)
      if rand(100) < @weapon_rate
        weapon = $data_weapons[@weapon_id]
      end
    end
   
    if (@gold and @exp)
      $game_player.보상(@gold, @exp, item, weapon)
    elsif (item)
      $game_player.보상(0, 0, item)
    elsif (weapon)
      $game_player.보상(0, 0, weapon)
     
    end
    moveto_outside
    erase
    return if 리젠되니?
    @hp = nil
    @dmg = nil
    @gold = nil
    @exp = nil
    @item_id = nil
    @item_rate = nil
    @weapon_id = nil
    @weapon_rate = nil
  end
  #───────────────────────
  # ♧ 리젠한다.
  #───────────────────────
  def 리젠!
    return if not 리젠되니?
    if @regen_count < @regen_time * 40
      @regen_count += 1
      return
    end
    moveto(@event.x, @event.y)
    @hp = @maxhp
    @regen_count = 0
    unerase
  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.animation_id = 4
      $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, item, weapon = nil)
    if 파티있니?
      $game_party.actors[0].exp += exp
      $game_party.gain_gold(gold)
     
      case weapon
      when RPG::Weapon
        $game_party.gain_weapon(weapon.id, 1)
      end     
    end
   
      if not item and not weapon
        간단메세지(sprintf("[%d]G / [%d]EXP를 획득!", gold, exp))
      elsif not weapon
        간단메세지(sprintf("[%d]G / [%d]EXP / [%s] 획득!", gold, exp, item.name))
      elsif not item
        간단메세지(sprintf("[%d]G / [%d]EXP / [%s] 획득!", gold, exp, weapon.name))         
      elsif not gold and not exp
        간단메세지(sprintf("[%s] 획득! / [%s] 획득!", item.name, weapon.name))
      else
        간단메세지(sprintf("[%d]G / [%d]EXP / [%s] 획득! / [%s] 획득!", gold, exp, item.name, weapon.name))
      end
      case item
      when RPG::Item
        $game_party.gain_item(item.id, 1)
      when RPG::Weapon
        $game_party.gain_weapon(item.id, 1)

      end
      end
 
  #───────────────────────
  # ♧ 자신에게 데미지를 준다
  #───────────────────────
  def 데미지(dmg)
    return if not 액션하니?
    pdef = $game_party.actors[0].pdef
    dex = $game_party.actors[0].dex
    dmg = (dmg - (dex + pdef))
    if dmg <= 0
      dmg = 1
    end
    $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 Key.repeat?(24)
      # 정면의 좌표를 계산
      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
          luk= $game_party.actors[0].agi/20
          cri= rand(100)
         
          if $game_switches[21] == true
#스킬
            event.animation_id = 70
            event.데미지(($game_party.actors[0].atk+$game_party.actors[0].str)*2)
            $game_switches[21] = false
           
          elsif cri <= luk
#크리티컬
          event.데미지(($game_party.actors[0].atk+$game_party.actors[0].str)*2)
          event.animation_id = 103
                   
        else
#일반공격
          event.데미지($game_party.actors[0].atk+$game_party.actors[0].str)
          event.animation_id = 7
          end
        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




---

지우라고하면 바로 지우겠습니다.

크리티컬은 luk(agi였던가 dex였던가;;)이 높을수록 확률이 높아지고,

스킬은 스위치 21번이 켜져있을때 나가게 되어있습니다.

스위치를 병행해서 사용한거죠...

스킬을 더추가시키리면 elsif 게속 써주면 돼겠죠??? ;;;[자신없어서 의문문으로 --ㅋ]

.
.
.

네.. 뭐 그런거죠.[어디서많이본?ㅎㅎ]

Who's 백호

?

이상혁입니다.

http://elab.kr

0 추천 0 비추천
Facebook Twitter Google Pinterest KakaoStory Band
위로 아래로 댓글로 가기 인쇄
에디터 선택하기
✔ 텍스트 모드 ✔ 에디터 모드
?
댓글 쓰기 권한이 없습니다. 로그인 하시겠습니까?
Comment '10'
  • ?
    포뇨 2010.01.06 17:47

    ...어째쓰는거지.;;

    (이상 액알스크립트한번도안써본포뇨)

    댓글
  • ?
    이안 2010.01.20 21:16

    오류뜨자나요 ㅡㅡ

    댓글
  • ?
    타락천사 2010.02.28 00:03

    잘만되는....굿굿

    댓글
  • ?
    으학 2010.03.02 21:31

    어떻게 해야될지를 잘...

    댓글
  • ?
    누군가 2010.05.21 10:24

    에러에러

    댓글
  • ?
    RalRalRa 2010.06.13 17:15

    ㄷㄷㄷㄷㄷ

    댓글
  • ?
    RPG성공시대 2010.07.22 20:27

    아 뭐가뭔지 모르겟소

    댓글
  • profile
    rlawnsahXP 2011.02.22 15:07

    헉;;

    이거 번역기돌린거같은데..

    시스템언어까지 변역..

    댓글
  • ?
    얄라뽕따이 2011.12.26 09:02

    예제좀여,...

    댓글
  • ?
    민석이짱짱장장 2011.12.31 14:20

    에러에러 걸린다

    댓글

Category
  • 그래픽(16)
  • 맵/타일(15)
  • 메뉴(88)
  • 메시지(26)
  • 미니맵(9)
  • 버그픽스(0)
  • 변수/스위치(10)
  • 상점(14)
  • 상태/속성(8)
  • 스킬(49)
  • 아이템(34)
  • 액터(4)
  • 원경(0)
  • 영상(7)
  • 오디오(8)
  • 온라인(23)
  • 이동 및 탈것(62)
  • 이름입력(10)
  • 장비(34)
  • 저장(34)
  • 전투(174)
  • 제작도구(1)
  • 직업(2)
  • 퀘스트(3)
  • 키입력(18)
  • 타이틀/게임오버(24)
  • 파티(11)
  • HUD(34)
  • 기타(254)
List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 10172
1021 제작도구 [XP/VX/VXA] Doodad's Editor by newold Alkaid 2020.07.12 600
1020 메시지 Taylor's Simple Message System 2000 Alkaid 2020.07.05 437
1019 이름입력 한글조합입력기(영어가능) file 조규진1 2019.11.10 746
1018 맵/타일 맵연결 스크립트 (데모첨부) file 게임애호가 2018.06.15 910
1017 전투 전투중에 장비들 교체하기 file 레이스89 2017.08.19 942
1016 온라인 인터넷 웹 상에서의 시간을 취득하는 스크립트 1 이우 2016.05.24 1099
1015 장비 착용한 장비에 따라 모습이 달라지는 스크립트 예제 5 file 게임애호가 2015.02.14 2259
1014 기타 [All RGSS] File-Ex file Cheapmunk 2014.12.29 1108
1013 기타 [All RGSS] FileTest (Unicode) file Cheapmunk 2014.12.29 749
1012 기타 [RGSS XP] 게임 해상도 조절 스크립트 (*2) 11 file Cheapmunk 2014.10.03 2867
1011 그래픽 Drago - Custom Resolution II 1 Alkaid 2014.09.10 1267
1010 기타 레벨업스크립트(xp) 2 게임을만들자! 2014.08.05 1950
1009 메뉴 MOG - Scroll Bar for XP file 습작 2014.07.06 1732
1008 기타 [All RGSS] 윈도우 메세지박스 스크립트 (Completed ver) 5 file Cheapmunk 2014.06.22 2397
1007 기타 [All RGSS] 게임 다중 실행 방지 스크립트 1 file Cheapmunk 2014.05.24 1567
1006 기타 RM2kXP file 습작 2014.03.17 1712
1005 기타 [All RGSS] 윈도우 커서 숨기기/보이기 1 file Cheapmunk 2014.03.02 2161
1004 기타 Drago - Custom Resolution by LiTTleDRAgo Alkaid 2014.02.13 1317
1003 그래픽 [XP/VX/VXA] Drago - Transition Pack Alkaid 2014.02.13 1386
1002 기타 [XP/VX/VXA] Map Screenshot by LiTTleDRAgo 1 Alkaid 2014.02.13 1045
쓰기
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
AVANGS

게임 제작, 창작, 자료, 강좌를 연결하는 커뮤니티

  • 개인정보 취급방침

Copyright © 2026 Avangs