조회 수 137 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
이번에는 아예 다 써드릴게요;;;

#==============================================================================
# ■ Interpreter (분할 정의 7)
#------------------------------------------------------------------------------
#  이벤트 커멘드를 실행하는 interpreter입니다.이 클래스는 Game_System 곳간
# 스나 Game_Event 클래스의 내부에서 사용됩니다.
#==============================================================================

class Interpreter
  #--------------------------------------------------------------------------
  # ● 에너미의 HP 증감
  #--------------------------------------------------------------------------
  def command_331
    # 조작하는 값을 취득
    value = operate_value(@parameters[1], @parameters[2], @parameters[3])
    # 이테레이타로 처리
    iterate_enemy(@parameters[0]) do |enemy|
      # HP 가 0 이 아닌 경우
      if enemy.hp > 0
        # HP 를 변경 (전투 불능이 허가되어 있지 않으면 1 으로 한다)
        if @parameters[4] == false and enemy.hp + value <= 0
          enemy.hp = 1
        else
          enemy.hp += value
        end
      end
    end
    # 계속
    return true
  end
  #--------------------------------------------------------------------------
  # ● 에너미의 SP 증감
  #--------------------------------------------------------------------------
  def command_332
    # 조작하는 값을 취득
    value = operate_value(@parameters[1], @parameters[2], @parameters[3])
    # 이테레이타로 처리
    iterate_enemy(@parameters[0]) do |enemy|
      # SP 를 변경
      enemy.sp += value
    end
    # 계속
    return true
  end
  #--------------------------------------------------------------------------
  # ● 에너미의 스테이트 변경
  #--------------------------------------------------------------------------
  def command_333
    # 이테레이타로 처리
    iterate_enemy(@parameters[0]) do |enemy|
      # 스테이트의 옵션 [HP 0 상태로 간주하는] 이 유효의 경우
      if $data_states[@parameters[2]].zero_hp
        # 불사신 플래그를 클리어
        enemy.immortal = false
      end
      # 스테이트를 변경
      if @parameters[1] == 0
        enemy.add_state(@parameters[2])
      else
        enemy.remove_state(@parameters[2])
      end
    end
    # 계속
    return true
  end
  #--------------------------------------------------------------------------
  # ● 에너미의 전회복
  #--------------------------------------------------------------------------
  def command_334
    # 이테레이타로 처리
    iterate_enemy(@parameters[0]) do |enemy|
      # 전회복
      enemy.recover_all
    end
    # 계속
    return true
  end
  #--------------------------------------------------------------------------
  # ● 에너미의 출현
  #--------------------------------------------------------------------------
  def command_335
    # 에너미를 취득
    enemy = $game_troop.enemies[@parameters[0]]
    # 숨어 플래그를 클리어
    if enemy != nil
      enemy.hidden = false
    end
    # 계속
    return true
  end
  #--------------------------------------------------------------------------
  # ● 에너미의 변신
  #--------------------------------------------------------------------------
  def command_336
    # 에너미를 취득
    enemy = $game_troop.enemies[@parameters[0]]
    # 변신 처리
    if enemy != nil
      enemy.transform(@parameters[1])
    end
    # 계속
    return true
  end
  #--------------------------------------------------------------------------
  # ● 애니메이션의 표시
  #--------------------------------------------------------------------------
  def command_337
    # 이테레이타로 처리
    iterate_battler(@parameters[0], @parameters[1]) do |battler|
      # 버틀러가 존재하는 경우
      if battler.exist?
        # 애니메이션 ID 를 설정
        battler.animation_id = @parameters[2]
      end
    end
    # 계속
    return true
  end
  #--------------------------------------------------------------------------
  # ● 데미지의 처리
  #--------------------------------------------------------------------------
  def command_338
    # 조작하는 값을 취득
    value = operate_value(0, @parameters[2], @parameters[3])
    # 이테레이타로 처리
    iterate_battler(@parameters[0], @parameters[1]) do |battler|
      # 버틀러가 존재하는 경우
      if battler.exist?
        # HP 를 변경
        battler.hp -= value
        # 전투중이라면
        if $game_temp.in_battle
          # 데미지를 설정
          battler.damage = value
          battler.damage_pop = true
        end
      end
    end
    # 계속
    return true
  end
  #--------------------------------------------------------------------------
  # ● 액션의 강제
  #--------------------------------------------------------------------------
  def command_339
    # 전투중이 아니면 무시
    unless $game_temp.in_battle
      return true
    end
    # 턴수가 0 이라면 무시
    if $game_temp.battle_turn == 0
      return true
    end
    # 이테레이타로 처리 (편의적인 것으로, 복수가 될 것은 없다)
    iterate_battler(@parameters[0], @parameters[1]) do |battler|
      # 버틀러가 존재하는 경우
      if battler.exist?
        # 액션을 설정
        battler.current_action.kind = @parameters[2]
        if battler.current_action.kind == 0
          battler.current_action.basic = @parameters[3]
        else
          battler.current_action.skill_id = @parameters[3]
        end
        # 행동 대상을 설정
        if @parameters[4] == -2
          if battler.is_a?(Game_Enemy)
            battler.current_action.decide_last_target_for_enemy
          else
            battler.current_action.decide_last_target_for_actor
          end
        elsif @parameters[4] == -1
          if battler.is_a?(Game_Enemy)
            battler.current_action.decide_random_target_for_enemy
          else
            battler.current_action.decide_random_target_for_actor
          end
        elsif @parameters[4] >= 0
          battler.current_action.target_index = @parameters[4]
        end
        # 강제 플래그를 설정
        battler.current_action.forcing = true
        # 액션이 유효하고 [곧바로 실행] 의 경우
        if battler.current_action.valid? and @parameters[5] == 1
          # 강제 대상의 버틀러를 설정
          $game_temp.forcing_battler = battler
          # 인덱스를 진행시킨다
          @index += 1
          # 종료
          return false
        end
      end
    end
    # 계속
    return true
  end
  #--------------------------------------------------------------------------
  # ● 배틀의 중단
  #--------------------------------------------------------------------------
  def command_340
    # 배틀 중단 플래그를 세트
    $game_temp.battle_abort = true
    # 인덱스를 진행시킨다
    @index += 1
    # 종료
    return false
  end
  #--------------------------------------------------------------------------
  # ● 메뉴 화면의 호출
  #--------------------------------------------------------------------------
  def command_351
    # 배틀 중단 플래그를 세트
    $game_temp.battle_abort = true
    # 메뉴 호출 플래그를 세트
    $game_temp.menu_calling = true
    # 인덱스를 진행시킨다
    @index += 1
    # 종료
    return false
  end
  #--------------------------------------------------------------------------
  # ● 세이브 화면의 호출
  #--------------------------------------------------------------------------
  def command_352
    # 배틀 중단 플래그를 세트
    $game_temp.battle_abort = true
    # 세이브 호출 플래그를 세트
    $game_temp.save_calling = true
    # 인덱스를 진행시킨다
    @index += 1
    # 종료
    return false
  end
  #--------------------------------------------------------------------------
  # ● 게임 오버
  #--------------------------------------------------------------------------
  def command_353
    # 게임 오버 플래그를 세트
    $game_temp.gameover = true
    # 종료
    return false
  end
  #--------------------------------------------------------------------------
  # ● 타이틀 화면에 되돌린다
  #--------------------------------------------------------------------------
  def command_354
    # 타이틀 화면에 되돌리는 플래그를 세트
    $game_temp.to_title = true
    # 종료
    return false
  end
  #--------------------------------------------------------------------------
  # ● 스크립트
  #--------------------------------------------------------------------------
  def command_355
    # script 에 1 행 째를 설정
    script = @list[@index].parameters[0] + "n"
    # 루프
    loop do
      # 다음의 이벤트 커멘드가 스크립트 2 행 째 이후의 경우
      if @list[@index+1].code == 655
        # script 에 2 행 째 이후를 추가
        script += @list[@index+1].parameters[0] + "n"
      # 이벤트 커멘드가 스크립트 2 행 째 이후가 아닌 경우
      else
        # 루프 중단
        break
      end
      # 인덱스를 진행시킨다
      @index += 1
    end
    # 평가
    result = eval(script)
    # 반환값이 false 의 경우
    if result == false
      # 종료
      return false
    end
    # 계속
    return true
  end
end


     이상입니다.
그다음은 메인이죠?

#==============================================================================
# ■ Main
#------------------------------------------------------------------------------
#  각 클래스의 정의가 끝난 후, 여기로부터 실제의 처리가 시작됩니다.
#==============================================================================
begin
  # 트란지션 준비
  Graphics.freeze
  # 씬 오브젝트 (타이틀 화면)를 작성
  $scene = Scene_Title.new
  # $scene 가 유효한 한계 main 메소드를 호출한다
  while $scene != nil
    $scene.main
  end
  # 페이드아웃
  Graphics.transition(20)
rescue Errno::ENOENT
  # 예외 Errno::ENOENT 를 보충
  # 파일을 오픈할 수 없었던 경우, 메세지를 표시해 종료한다
  filename = $!.message.sub("No such file or directory - ", "")
  print("파일 #{filename} 가 발견되지 않습니다.")
end
?

  1. 쯔꾸르 mv 게임을 apk 파일로 변환했는데...

  2. 쯔꾸르 젖소이야기 결혼 방법좀 알려주세요...

  3. No Image 29Nov
    by game메이커xp
    2021/11/29 by game메이커xp
    Views 1258 

    apk포팅 승인 어케 하나요?

  4. No Image 15Jul
    by Neuromancer
    2021/07/15 by Neuromancer
    Views 1542 

    Yanfly님의 Action Sequence Pack 질문드립니다

  5. 싸게 MV 를 먼저? 아니면 돈을 더 들어서라도 MZ?

  6. RMMV - 스탯창과 대화창 변견 관련 질문입니다. (초보입니다 도움좀 주세요 ㅜㅜ)

  7. 아오오니를 하는 사람인데요 질문 두가지가 있어요

  8. No Image 07Dec
    by land_tnt
    2020/12/07 by land_tnt
    Views 1455 

    재밌는게임

  9. No Image 10Nov
    by 세종기항19
    2020/11/10 by 세종기항19
    Views 1685 

    c언어 질문

  10. 코딩 질문

  11. No Image 07Nov
    by 드래곤규
    2020/11/07 by 드래곤규
    Views 1402 

    혹시나 물어보는데

  12. No Image 09Sep
    by 이부닝
    2020/09/09 by 이부닝
    Views 1224 

    오픈보 게임 더블드래곤 리로디드 얼티네이트에 대해 궁금

  13. No Image 02Sep
    by 스트레이보우
    2020/09/02 by 스트레이보우
    Views 1007 

    상태이상 확률 결정

  14. No Image 23May
    by WOONAALAA
    2020/05/23 by WOONAALAA
    Views 963 

    다음 인디사이드 제작대회는 언제쯤 열릴까요?

  15. xp로 제작된 어플 실행자체가 안된다는 분이 있습니다.(제생각엔 apk로 변환하는 과정에서 버전자체가 낮은 것 같습니다)

  16. apk 포팅하는데 게임 이름이 필요합니다 뜨는데

  17. No Image 22Mar
    by 랖랖
    2020/03/22 by 랖랖
    Views 1780 

    쯔꾸르VX Ace렉먹음 도와주세요...

  18. 안녕하세요

  19. 포팅 중 '게임 이름이 필요합니다' 오류

  20. RPGMV 거리 추적

Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 442 Next
/ 442


[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)