Avangs

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

NOTICE

공지사항
더보기
  • 홈페이지 개편 및 시스템 정비 작업 안내 04.13

Recently Added Games

최근 등록 게임
  • 어드벤쳐 [1치킨 수상작] 로봇 관리자 newfile 04.13
  • 퍼즐/보드 알파벳 용사 2 file 04.08
  • 롤플레잉 스틱 파이터 섬 1 체험판 file 03.31
  • 어드벤쳐 9th Existence file 03.26
  • 어드벤쳐 악역스타 훈발이 file 03.13
장비
2009.02.22 19:20

KGC_EquipmentBreak(장비품 파괴)

백호
조회 수 1458 추천 수 0 댓글 1
크게 작게 위로 아래로 댓글로 가기 인쇄
크게 작게 위로 아래로 댓글로 가기 인쇄
장비품에 파괴 확률을 설정할 수 있도록 하는 스크립트입니다.

#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/  ◆装備品破壊 - KGC_EquipmentBreak◆
#_/----------------------------------------------------------------------------
#_/ 武器や防具を破壊する処理を追加します。
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

$imported = {} if $imported == nil
$imported["EquipmentBreak"] = true

if $game_special_elements == nil
  $game_special_elements = {}
  $data_system = load_data("Data/System.rxdata")
end
# 装備破壊確率属性
$game_special_elements["equipment_break"] = /破壊確率(d+)(%|%)/

#==============================================================================
# ■ Game_Battler (分割定義 3)
#==============================================================================

class Game_Battler
  #--------------------------------------------------------------------------
  # ● 通常攻撃の効果適用
  #--------------------------------------------------------------------------
  alias attack_effect_KGC_EquipmentBreak attack_effect
  def attack_effect(attacker)
    # 元の処理を実行
    result = attack_effect_KGC_EquipmentBreak(attacker)

    if result && self.damage.is_a?(Numeric)
      # 武器破壊判定
      attacker.break_equipment(0) if attacker.is_a?(Game_Actor)
      # 防具破壊判定
      self.break_equipment(1) if self.is_a?(Game_Actor)
    end
    return result
  end
  #--------------------------------------------------------------------------
  # ● スキルの効果適用
  #--------------------------------------------------------------------------
  alias skill_effect_KGC_EquipmentBreak skill_effect
  def skill_effect(user, skill)
    # 元の処理を実行
    result = skill_effect_KGC_EquipmentBreak(user, skill)

    # 物理スキルでダメージを受けた場合
    if result && skill.atk_f > 0 && self.damage.is_a?(Numeric)
      # 武器破壊判定
      user.break_equipment(0) if user.is_a?(Game_Actor)
      # 防具破壊判定
      self.break_equipment(1) if self.is_a?(Game_Actor)
    end
    return result
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Game_Actor
#==============================================================================

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_accessor :weapon_broken            # 武器破壊フラグ
  attr_accessor :armor_broken            # 防具破壊フラグ
  #--------------------------------------------------------------------------
  # ● セットアップ
  #    actor_id : アクター ID
  #--------------------------------------------------------------------------
  alias setup_KGC_EquipmentBreak setup
  def setup(actor_id)
    # 元の処理を実行
    setup_KGC_EquipmentBreak(actor_id)

    @weapon_broken, @armor_broken = false, false
  end
  #--------------------------------------------------------------------------
  # ● 装備品破壊判定
  #    type : 装備品のタイプ(0:武器 1:防具)
  #--------------------------------------------------------------------------
  def break_equipment(type)
    srand
    case type
    when 0  # 武器の場合
      # 装備している武器を取得
      if $imported["EquipExtension"] && self.two_swords?
        weapons = []
        self.ts_number.times { |i|
          next if self.weapon_id(i) == 0
          weapons << $data_weapons[self.weapon_id(i)]
        }
      else
        return if self.weapon_id == 0
        weapons = [$data_weapons[self.weapon_id]]
      end
      # 破壊判定
      weapons.each { |weapon|
        prob = 0
        weapon.element_set.compact.each { |element|
          if $game_special_elements["equipment_break"] =~ $data_system.elements[element]
            prob = $1.to_i
            break
          end
        }
        if prob != nil && rand(100) < prob
          # 破損した武器のIDを取得
          broken_weapon = weapon.id
          # 装備を外す
          equip(0, 0)
          # 破損した武器を減らす
          $game_party.lose_weapon(broken_weapon, 1)
          # 破壊フラグをオン
          @weapon_broken = true
        end
      }
    when 1  # 防具の場合
      st = $imported["EquipExtension"] && self.two_swords? ? self.ts_number : 1
      ed = $imported["EquipExtension"] ? self.equip_type.size : 5
      (st...ed).each { |i|
        armor_id = $imported["EquipExtension"] ? self.armor_id[i] : eval("@armor#{i}_id")
        # 防具を装備していない場合はスキップ
        next if armor_id == nil || armor_id == 0
        # 装備している防具を取得
        armor = $data_armors[armor_id]
        # 破壊判定
        prob = 0
        armor.guard_element_set.compact.each { |element|
          if $game_special_elements["equipment_break"] =~ $data_system.elements[element]
            prob = $1.to_i
            break
          end
        }
        if prob != nil && rand(100) < prob
          # 装備を外す
          equip(i, 0)
          # 破損した防具を減らす
          $game_party.lose_armor(armor_id, 1)
          # 破壊フラグをオン
          @armor_broken = true
          prob = nil
        end
      }
    end
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Scene_Battle (分割定義 4)
#==============================================================================

class Scene_Battle
  #--------------------------------------------------------------------------
  # ● フレーム更新 (メインフェーズ ステップ 5 : ダメージ表示)
  #--------------------------------------------------------------------------
  alias update_phase4_step5_KGC_EquipmentBreak update_phase4_step5
  def update_phase4_step5
    # 元の処理を実行
    update_phase4_step5_KGC_EquipmentBreak

    # 装備破壊表示
    for actor in $game_party.actors
      next if actor == nil
      # 武器破壊フラグがオンの場合
      if actor.weapon_broken
        # ダメージに "Weapon Broken" を設定
        actor.damage = "Weapon Broken" if actor.damage == nil
        actor.damage_pop = true
        # 破壊フラグを立てる
        @broken = true
      end
      # 防具破壊フラグがオンの場合
      if actor.armor_broken
        # ダメージに "Armor Broken" を設定
        actor.damage = "Armor Broken" if actor.damage == nil
        actor.damage_pop = true
        # 破壊フラグを立てる
        @broken = true
      end
      # フラグをオフ
      actor.weapon_broken = false
      actor.armor_broken = false
    end
    # 破壊フラグがオンの場合
    if @broken
      # ヘルプウィンドウに表示
      @help_window.set_text("装備品が壊れた!!", 1)
      # 破壊 SE を演奏
      Audio.se_play("Audio/SE/097-Attack09", 80, 50)
      # ウェイトカウントを設定
      @wait_count = 20
    end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新 (メインフェーズ ステップ 6 : リフレッシュ)
  #--------------------------------------------------------------------------
  alias update_phase4_step6_KGC_EquipmentBreak update_phase4_step6
  def update_phase4_step6
    # 元の処理を実行
    update_phase4_step6_KGC_EquipmentBreak

    # 破壊フラグがオンの場合
    if @broken
      # ヘルプウィンドウを隠す
      @help_window.visible = false
      # 破壊フラグをオフ
      @broken = false
    end
  end
end





스크립트를 도입하면, 속성[파괴 확률○%]를 작성합니다.
○에는, 장비품이 파손하는 확률을 넣어 주세요.

예를 들면[파괴 확률20%]라고 하는 속성을 세트 하면, 공격했다(공격을 받았다) 때에 20% 의 확률로
파손하는 장비품을 만들 수 있습니다.
무기의 파손 타이밍은 「통상 공격, 또는 물리 스킬을 사용했을 때」입니다.
방어구의 파손 타이밍은 「통상 공격, 또는 물리 스킬을 받았을 때」입니다.
「물리 스킬」이란,[공격력 F]가 1 이상의 스킬입니다.

장비품이 파손했을 때는, 금속음과 함께 「장비품이 망가졌다!」라고 하는 메세지가 나옵니다.
또, 장비품이 파손한 캐릭터상에 「00 Broken」라고 하는 표시가 나옵니다.
(주:파손한 캐릭터에게 데미지가 없는 경우만)

샘플에서는 「파괴 확률10%」의 무기를 만들고 있습니다.

Who's 백호

?

이상혁입니다.

http://elab.kr

0 추천 0 비추천
Facebook Twitter Google Pinterest KakaoStory Band
위로 아래로 댓글로 가기 인쇄
에디터 선택하기
✔ 텍스트 모드 ✔ 에디터 모드
?
댓글 쓰기 권한이 없습니다. 로그인 하시겠습니까?
Comment '1'
  • profile
    9서클메이지 2009.04.09 19:59
    대단하군뇨...
    댓글

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 9749
34 장비 착용한 장비에 따라 모습이 달라지는 스크립트 예제 5 file 게임애호가 2015.02.14 2244
33 장비 Auto Equipment Optimization for Guillaume777's Multi Slot Script by DerVVulfman Alkaid 2012.09.09 1577
32 장비 MultiSlots! 2.4 by DerVVulfman 2 Alkaid 2011.09.05 1555
31 장비 Multislots! 2.2 by DerVVulfman 4 file Alkaid 2011.02.18 1719
30 장비 Angie's Equipment Sets 2.3 by DerVVulfman 7 Alkaid 2010.12.31 1946
29 장비 Equipment Upgrade System 1.1 by Charlie Fleed Alkaid 2010.11.18 2015
28 장비 Multislots! 2.1 by DerVVulfman 3 file Alkaid 2010.09.02 1632
27 장비 CSSR8-장비품 생산&강화 시스템 18 file 백호 2009.02.22 4039
26 장비 CSSR5-장비품 중량 시스템 1 file 백호 2009.02.22 1830
25 장비 CSSR1-장비품 어빌리티포인트제 file 백호 2009.02.22 1671
» 장비 KGC_EquipmentBreak(장비품 파괴) 1 백호 2009.02.22 1458
23 장비 KGC_장비확장 (7/30일자) 12 file 백호 2009.02.22 2138
22 장비 장비품개조 - KGC_AlterEquipment (8/12일자) 2 file 백호 2009.02.22 1774
21 장비 SIBruno's Advanced Equip Screen v2 file 백호 2009.02.22 1309
20 장비 장비 전능력 스크립트 4 file 백호 2009.02.22 1860
19 장비 Advanced Equip Window 백호 2009.02.22 861
18 장비 장비창 개조 스크립트 from Harts Horn 7 백호 2009.02.22 1858
17 장비 Multi-equip script ver.6 by Guillaume777 4 file 백호 2009.02.22 1285
16 장비 전투중에 장비변경 from RGSS Wiki 1 백호 2009.02.22 2067
15 장비 장비무기가이드&쉴드방어 1 백호 2009.02.22 1254
쓰기
Board Pagination Prev 1 2 Next
/ 2
AVANGS

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

  • 개인정보 취급방침

Copyright © 2026 Avangs