질문과 답변

Extra Form

돈으로 주고 스킬북 사는 시스템을 구현하던 중

직업제한이 필요한 것 같아서 구글링으로 찾은 스크립트인데요

사용은 문제가 없는데

다른 것 사용해서 튕기는지는 실험하지 못했습니다만

전투 중에 힐을 하면 튕기네요

 

Script 'item class' line 113: NoMethodError occurred.

undefined method 'include?' for nil:NilClass


요렇게 뜨면서 꺼집니다.

뭔 말인진 알겠는데 스크립트 건드릴 줄도 모르고

어떻게 고치는 줄도 모르겠어서 질문드립니다.

아무리 구글에 검색해도 오류나 따로 나오는 건 없네요


밑은 스크립트 전문입니다.

 #==============================================================================

# Szyu's Item's Class Restriction

# Version 1.2

# By Szyu

#

# About:

# Easily specify items, weapons and armors, which can only be used/equipped

# by certain classes

#

# Instructions:

# - Place below "▼ Materials" but above "▼ Main Process".

#

# How to Use:

# - An item's note have to contain one of these:

# <classes: x> # This will allow specified classes to use this item

# <!classes: x> # This will forbit specified classes to use this item

#

# Seperate multiple classes with ','!

# Allowed Database Items, which can be restricted by this script:

# - Items

# - Weapons

# - Armors

#

# If There is none of those tags in the items note, every class is permitted to

# use or equip this item

#

#

# Requires:

# - RPG Maker VX Ace

#

# Terms of Use:

# - Free for commercal and non-commercial use. Please list me

#   in the credits to support my work.

#

#

# Changelog:

# - Same syntax can now be used to restrict for actors:

#   <actors: x>

#   <!actors: x>

# - Added Use Restriction for battles too. Restricted classes and actors can no

#   longer use restricted items in battle

#

#

#

# Pastebin:

# http://adf.ly/rYIZm

#

#

#==============================================================

#   * Game_BattlerBase

#==============================================================

class Game_BattlerBase

  alias sz_iucr_equippable? equippable?

 

  def equippable?(item)

    return false unless item.is_a?(RPG::EquipItem)

    return false if self.is_a?(Game_Actor) &&

      (item.forbid_classes.include?(self.class_id) || item.forbid_actors.include?(self.id))

    return sz_iucr_equippable?(item)

  end

end

 

#==============================================================

#   * Game_Battler

#==============================================================

class Game_Battler < Game_BattlerBase

  alias sz_iucr_item_test item_test

 

  def item_test(user, item)

    return false if item.is_a?(RPG::Item) &&

      (item.forbid_classes.include?(self.class_id) || item.forbid_actors.include?(self.id))

    return sz_iucr_item_test(user, item)

  end

end

 

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

#==============================================================

#   * Initialize BaseItems

#==============================================================

module DataManager

  class << self

    alias load_db_iucr_sz load_database

  end

 

  def self.load_database

    load_db_iucr_sz

    load_iucr_items

  end

 

  def self.load_iucr_items

    groups = [$data_items, $data_weapons, $data_armors]

    for group in groups

      for obj in group

        next if obj.nil?

        obj.load_iucr_notetags_sz

      end

    end

  end

end

 

#==============================================================================

# ** Window_BattleActor

#------------------------------------------------------------------------------

#  This window is for selecting an actor's action target on the battle screen.

#==============================================================================

class Window_BattleActor < Window_BattleStatus

  #--------------------------------------------------------------------------

  # * Get Activation State of Selection Item

  #--------------------------------------------------------------------------

  def current_item_enabled?

    return false if !BattleManager.actor.input.item.is_a?(RPG::UsableItem) ||

      BattleManager.actor.input.item.forbid_classes.include?(BattleManager.actor.input.subject.class_id) ||

      BattleManager.actor.input.item.forbid_actors.include?(BattleManager.actor.input.subject.id)

    return true

  end

end

 

#==============================================================

#   * Content of Recycling Items

#==============================================================

class RPG::BaseItem

  attr_accessor :forbid_classes

  attr_accessor :forbid_actors

 

  def load_iucr_notetags_sz

    @forbid_classes = []

    @forbid_actors = []

    self.note.split(/[\r\n]+/).each do |line|

      # Forbid Classes

      if line =~ /<classes:([\d+,?\s*]+)>/i

        $data_classes.each do |cl|

          @forbid_classes.push(cl.id) if cl

        end

        $1.scan(/\s*,?\d+,?\s*/i).each do |cl|

          @forbid_classes.delete(cl.to_i)

        end

      elsif line =~ /<!classes:([\d+,?\s*]+)>/i

        $1.scan(/\s*,?\d+,?\s*/i).each do |cl|

          @forbid_classes.push(cl.to_i)

        end

        # Forbid Actors

      elsif line =~ /<actors:([\d+,?\s*]+)>/i

        $data_actors.each do |ac|

          @forbid_actors.push(ac.id) if ac

        end

        $1.scan(/\s*,?\d+,?\s*/i).each do |ac|

          @forbid_actors.delete(ac.to_i)

        end

      elsif line =~ /<!actors:([\d+,?\s*]+)>/i

        $1.scan(/\s*,?\d+,?\s*/i).each do |ac|

          @forbid_actors.push(ac.to_i)

        end

      end

    end

  end  

end

 

 

■ 질문전 필독!
  • 질문할 내용이 이 게시판이나 강좌에 이미 있는지 확인합니다.
  • 하나의 게시물에는 하나의 질문만 합니다.
  • 제목은 질문의 핵심 내용으로 작성합니다.
  • 질문 내용은 답변자가 쉽게 이해할 수 있도록 최대한 상세하게 작성합니다.
  • 스크립트의 전문이 필요할 경우 txt 파일 등으로 첨부해 주시기 바랍니다.
  • 답변받은 게시물은 삭제하지 않습니다.
  • 답변이 완료된 경우 해당 답변해주신 분들께 감사의 댓글을 달아줍니다.
    • 처음 오신 분들은 공지 게시물을 반드시 읽어주세요!

※ 미준수시 사전경고 없이 게시물을 삭제합니다.

Comment '2'
  • ?
    KuKuKu 2017.03.19 21:14

    자문자답이 되겠지만 우선 112번째 !battlemanager 부분에서 !표 부분을 빼니 튕기진 않네요.
    아마 이 스크립트 만든 분이 전투 중에 아이템 클래스 제한 추가한 부분 때문에 문제인 것 같은데
    포션이나 힐, 버프같이 아군 대상지정스킬은 전투 중에 쓸 수가 없네요.


    그냥 window battle actor부분 다 날려버리면 전투 중 스킬도 사용가능하네요.

  • ?
    KuKuKu 2017.03.19 22:03
    왜 되는지는 완벽히 이해는 못하겠지만, 일단 해결완료로 해놓겠습니다.

List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 12384
기타 RMVXA 맵 마다 따로 플레이어 속도를 지정하고 싶습니다. 6 seoha3360 2022.05.19 155
스크립트 사용 RMVXA 기본 폰트 색깔을 검정으로 바꾸고 싶습니다 1 애싀 2022.05.15 158
기타 RMVXA 타일을 O에서 X로 바꾸었더니 맵에서 캐릭터가 움직이질 못합니다 5 seoha3360 2022.05.14 154
이벤트 작성 RM2k3 특정한 시간동안 멈춰있을 시 동작하는 이벤트를 만들고싶습니다 wl 2022.05.12 153
플러그인 사용 기타 도전과제 플러그인 아시는분? 2 백월화(白月華) 2022.05.11 213
기타 RMVXA 애니메이션 끊김현상 문제 file 랑브 2022.05.11 148
스크립트 작성 RMXP rpg xp 메뉴창 오류 3 file 김빡빡 2022.05.09 259
기타 RM2k3 알피지 2003에서 글자가 특수문자로 나옵니다 file 사토이 2022.05.08 130
이벤트 작성 RMVXA 필드를 돌아다니다 보면 나오는 잡몹들에 대하여 2 seoha3360 2022.04.30 210
기타 RMMZ mv에서는 사진첨부 최대 한도가 있다고 알고있는데, mz도 그런가요? 4 dfasfdasfasff 2022.04.30 216
이벤트 작성 RMVXA 캐릭터가 서있을 때에 변화를 주고 싶습니다. 4 zx히어로zx 2022.04.26 582
기타 RMVXA 윈도우 커스텀 하는방법에 대해서 4 seoha3360 2022.04.23 345
에러 해결 RMMV 특정 스킬 포뮬러에서의 YEP_BattleEngineCore , YEP_SkillCore, SRD_SummonCore 충돌 2 멤메 2022.04.20 179
기본툴 사용법 RM2k 타이틀화면에서 새게임 불러오기 종료의 테두리를 투명하게하고싶어요.. ㅠ file 초보자입니다 2022.04.18 167
기타 RMVXA 스킬 사용 이미지에 대하여 2 seoha3360 2022.04.17 212
이벤트 작성 RMMV 맵 이동 반복 이벤트 6 HYUNWOL 2022.04.17 209
플러그인 사용 RMMV 텍스트 출력 정렬하는 법. 2 file HYUNWOL 2022.04.14 206
기타 RMVXA 비와 발자국 2 현작가 2022.04.10 205
기본툴 사용법 RMMV 같은 타일을 분리시켜서 배치하는 방법이 있나요? 타일 배치에 대한 이해가 필요합니다 2 file Mew 2022.04.07 204
기타 RMMV 알만툴 애니메이션 어떻게 적용 시키나요 1 11223232 2022.04.07 407
Board Pagination Prev 1 ... 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ... 515 Next
/ 515