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

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
스크립트는 다음과 같고. 설명도 밑과 같습니다.

저거 에러는 없는 거 같은데

'어떻게' 적용시킵니까?;

어디에 몬스터 이름 넣고 어디에 아이템 써야 하는지 모르겠다는..

참 난 감하네요; 대답 부탁드립니다!


도입 후, 속성[ 훔친다 ](을)를 작성해, 스킬에 세트 해 주세요.
이것이 「훔친다」효과를 가지는 스킬이 됩니다.

(스킬 자체의) 명중율:[명중율]% 「훔친다」의 기본 성공율:[위력]%
(기본 성공율은, 아군의 손재주가 있음과 적의 민첩함에 의해 변동)

훔칠 수 있는 요소는
 고블린 /I1 /W2
(와)과 같이, [적명] /{종류}{ID} 그렇다고 하는 서식에서 설정합니다.
(↑의 예에서는, 고블린으로부터 ID1의 아이템과 ID2의 무기를 훔칠 수 있다)
종류 에는, 이하의 5종류를 지정할 수 있습니다.(대문자·소문자는 묻지 않는다)
B :공난    I :아이템
W :무기    A :방어구
G :골드

입수 판정은 좌측에서 순서에 행해져 우측만큼 성공율이 낮아집니다.
( 「공난(B)」 「입수가 끝난 상태」 「실패」의 어느 쪽인가에 해당하면 우측으로 이행)
성공율은 1개 오른쪽으로 갈 때 마다 반이 됩니다.(1%미만은 되지 않는다)
즉, 기본 성공율이 80%라면 「2개목:40%」 「3개목:20%」…라고 하는 상태입니다.
이것은 /B 그리고 공난을 지정했을 경우도 동일한의로,
 가고일 /B /B /I8
(와)과 같이 지정하면, 레어 아이템을 만드는 것이 가능합니다.


#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/  ◆훔치는 - KGC_Steal◆
#_/----------------------------------------------------------------------------
#_/ 「훔친다」효과를 가지는 스킬을 작성합니다.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

#==============================================================================
# ★ 커스터마이즈 항목 ★
#==============================================================================

module KGC
# ◆성공시의 데미지 문자열
STE AL_SUCCESS_DMG = "Stole"

# ◆아무것도 가지고 있지 않을 때의 메세지
STEAL_EMPTY_MSG = "아무것도 가지고 있지 않다"
# ◆훔칠 수 없었을 때의 메세지
STEAL_FAIL_MSG = "훔칠 수 없었다"
# ◆돈을 훔쳤을 때의 메세지
# 【{gold}…금액 {unit}…금의 단위】
STEAL_GOLD_MSG = "「{gold}{unit}」훔쳤다!"
# ◆아이템을 훔쳤을 때의 메세지
# 【{item}…아이템명】
STEAL_ITEM_MSG = "「{item}」를 훔쳤다!"
end

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

$imported["Steal"] = true

# 「훔친다」용속성
$game_special_elements["steal"] = $data_system.elements.index("훔친다")

#==============================================================================
# ■ RPG::Enemy
#================================ ==============================================

class RPG::Enemy
#--------------------------------------------------------------------------
# ● 이름의 취득
#--------------------------------------------------------------------------
alias name_KGC_Steal name
def name
return name_KGC_ Steal.split(/ /)[0]
end
#--------------------------------------------------------------------------
# ● 훔칠 수 있는 요소의 일람을 취득
#--------------------------------------------------------------------------
def steal_items
data = @name.split(/ /)
data.delete_at(0)
items = []
for i in 0...data.size
items[i] = data[i].split(/[/]([ABGIW])([0-9]+)?/i)
items[i].delete_at(0)
items[i][1] = items[i][1].to_i
end
return items
end
end

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

#==================================================================== ==========
# ■ Game_Battler (분할 정의 3)
#==============================================================================

class Game_Battler
#--------------------------------------------------------------------------
# ● 스킬의 효과 적용
# user : 스킬의 사용자 (버틀러)
# skill : 스킬
#------- -------------------------------------------------------------------
alias skill_effect_KGC_Steal skill_effect
def skill_effect(user, skill)
# 「훔친다」속성을 가지고 있는 경우는 돌아온다
return if skill.element_set.include?($game_special_elements["steal"])

# 원래의 처리를 실행
return skill_effect_KGC_Steal(us er, skill)
end
#--------------------------------------------------------------------------
# ● 「훔친다」의 효과 적용
# user : 스킬의 사용자 (버틀러)
# skill : 스킬
#--------------------------------------------------------------------------
def steal_effect(user, skill)
# 위기 플래그를 클리어
self.critical = false
# 스킬의 효과 범위가 HP 1 이상의 아군으로, 자신의 HP 가 0,
# 또는 스킬의 효과 범위가 HP 0 의 아군으로, 자신의 HP 가 1 이상의 경우
if ((skill.scope == 3 || skill.scope == 4) && self.hp == 0) ||
((skill.scope == 5 || skill.scope == 6) && self.hp >= 1)
# 메소드 종료
return false
end
# 훔친 요소를 클리어
steal_item = nil

# 대상이 적, 한편 무적 상태의 경우
if self.states.include?($game_state_invincible) &&
(skill.scope == 1 || skill.scope == 2)
# 절대로 명중하지 않는다
hit_result = false
else
# 第一命中判定
      hit_result = (rand(100) < skill.hit)
    end
    # 命中の場合
    if hit_result
      # 基本成功率を計算
      steal_prob = skill.power * user.dex / self.agi / 100.0
      # 属性修正
      steal_prob *= elements_correct(skill.element_set)
      steal_prob /= 100
      items = $data_enemies[self.id].steal_items
      # 盗める要素があるか判定
      count = 0
      for i in 0...items.size
        if (items[i][0] == "B" || items[i][0] == "b") ||
            self.stolen_items_flag[i]
          next
        end
        count += 1
      end
      # 盗める要素がある場合
      if count > 0
        # 成功率設定(最初は基本値の2倍)
        hit = steal_prob * 200
        # 成功判定
        for i in 0...items.size
          # 成功率半減
          hit = [hit / 2, 1].max
          # 既に盗んでいる場合は次へ
          next if self.stolen_items_flag[i]
          item = items[i]
          hit_result = (rand(100) < hit)
          # 成功した場合
          if hit_result
            case item[0].upcase
            when "B"  # ブランク
              self.stolen_items_flag[i] = true
              next
            when "I"  # アイテム
              steal_item = $data_items[item[1]].name
              $game_party.gain_item(item[1], 1)
            when "W"  # 武器
              steal_item = $data_weapons[item[1]].name
              $game_party.gain_weapon(item[1], 1)
            when "A"  # 防具
              steal_item = $data_armors[item[1]].name
              $game_party.gain_armor(item[1], 1)
            when "G"  # ゴールド
              steal_item = item[1]
              $game_party.gain_gold(item[1])
            end
            # 成功フラグをオン
            self.stolen_items_flag[i] = true
            break
          end
        end
      # 盗める要素が無い場合はそのまま
      else
        hit_result = true
      end
    end
    # 成功の場合
    if hit_result
      # 何も持っていない場合
      if steal_item == nil
        self.damage = "Miss"
        steal_item = "No Item"
      # 成功した場合
      else
        self.damage = KGC::STEAL_SUCCESS_DMG
      end
    # ミスの場合
    else
      self.damage = "Miss"
      steal_item = "Miss"
    end
    # メソッド終了(盗んだ要素を返す)
    return steal_item
  end
end

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

#==============================================================================
# ■ Game_Enemy
#==============================================================================

class Game_Enemy < Game_Battler
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_accessor :stolen_items_flag        # 盗んだ要素フラグ
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #     troop_id     : トループ ID
  #     member_index : トループメンバーのインデックス
  #--------------------------------------------------------------------------
  alias initialize_KGC_Steal initialize
  def initialize(troop_id, member_index)
    # 元の処理を実行
    initialize_KGC_Steal(troop_id, member_index)

    @stolen_items_flag = []
  end
end

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

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

class Scene_Battle
  #--------------------------------------------------------------------------
  # ● スキルアクション 結果作成
  #--------------------------------------------------------------------------
  alias make_skill_action_result_KGC_Steal make_skill_action_result
  def make_skill_action_result
    # 元の処理を実行
    make_skill_action_result_KGC_Steal

    # 「盗む」属性を持っている場合
    if @skill.element_set.include?($game_special_elements["steal"])
      target = @target_battlers[0]
      @steal_item = target.steal_effect(@active_battler, @skill)
    end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新 (メインフェーズ ステップ 5 : ダメージ表示)
  #--------------------------------------------------------------------------
  alias update_phase4_step5_KGC_Steal update_phase4_step5
  def update_phase4_step5
    # 元の処理を実行
    update_phase4_step5_KGC_Steal

    if @steal_item != nil
      case @steal_item
      when "No Item"
        @help_window.set_text(KGC::STEAL_EMPTY_MSG, 1)
      when "Miss"
        @help_window.set_text(KGC::STEAL_FAIL_MSG, 1)
      when Integer
        text = KGC::STEAL_GOLD_MSG.dup
        text.gsub!(/{gold}/i) {"#{@steal_item}"}
        text.gsub!(/{unit}/i) {"#{$data_system.words.gold}"}
        @help_window.set_text(text, 1)
      else
        text = KGC::STEAL_ITEM_MSG.dup
        text.gsub!(/{item}/i) {"#{@steal_item}"}
        @help_window.set_text(text, 1)
      end
      @steal_item = nil
      @wait_count = 30
    end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新 (メインフェーズ ステップ 6 : リフレッシュ)
  #--------------------------------------------------------------------------
  alias update_phase4_step6_KGC_Steal update_phase4_step6
  def update_phase4_step6
    # ヘルプウィンドウを隠す
    @help_window.visible = false
    @help_window2.visible = false if $imported["HelpExtension"]

    # 元の処理を実行
    update_phase4_step6_KGC_Steal
  end
end
?

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

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

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

    apk포팅 승인 어케 하나요?

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

    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 1684 

    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 1006 

    상태이상 확률 결정

  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(김원배) | 사신지(김병국)