조회 수 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
?

List of Articles
번호 제목 글쓴이 날짜 조회 수
507 투명화 하는방법좀요 -_ -ㅋ ⓢⓔⓘ 2005.06.17 306
506 NPC한테 대화햇을때 말할때마다 다른말이 나오도록 하는법.. 아마란스 2005.06.17 198
505 NPC한테 대화햇을때 말할때마다 다른말이 나오도록 하는법.. 내마음블루 2005.06.17 121
» [XP]'훔치기' 스크립트 질문!! 입니다!; 나르카이제 2005.06.16 416
503 음악만드는 프로그램에 관한건데... 레이디안 2005.06.16 458
502 대화창에 캐릭터 얼굴이 안나옵 수수 2005.06.16 264
501 [XP]'훔치기' 스크립트 질문!! 입니다!; 내마음블루 2005.06.16 221
500 액알에서 스텟조절기 적용 수수 2005.06.15 445
499 마법 연계 다시 질문!!! 제발 대답부탁!!; file 나르카이제 2005.06.15 319
498 똥똥배님 작품중에 나오는 음악 mr.정석 2005.06.15 205
497 대화창에 캐릭터 얼굴이 안나옵니다. メIllusion。 2005.06.15 142
496 저... 이런게 있을까요??? 내마음블루 2005.06.15 218
495 액알에서 스텟조절기 적용시키는 방법. 내마음블루 2005.06.15 276
494 으음 문제가 좀 있는데요.. file 보물사냥꾼 2005.06.14 208
493 저... 이런게 있을까요??? メIllusion。 2005.06.14 151
492 [XP]마법 연계 질문입니다. 나르카이제 2005.06.14 246
491 [RPG2003] 알선소, 혹은 모험자 길드 시스템에 관해서... 내마음블루 2005.06.14 391
490 [RPG2003] 알선소, 혹은 모험자 길드 시스템에 관해서... 비만고양이 2005.06.14 466
489 RPG2003 에서요 스킬 이여 Toolz소프트 2005.06.14 524
488 으음 문제가 좀 있는데요.. メIllusion。 2005.06.14 157
Board Pagination Prev 1 ... 412 413 414 415 416 417 418 419 420 421 ... 442 Next
/ 442


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

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