질문과 답변

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 12387
이벤트 작성 RMMV 플레이어 위치 기억 및 복귀 (워프 개념) 질문 2 Trapped 2020.01.31 133
RMXP 플레이어 없이 1 오니다운중''' 2011.01.07 1022
플러그인 추천 RMMV 플레이어 스탠딩 애니메이션을 넣고 싶어요. 2 모서리MOSEORI 2021.11.24 342
RMVXA 플레이어 뒤에 이벤트가 따라붙게 하고싶어요. 4 Virtus 2013.11.27 1183
RMMV 플레이어 대기 스크립트 1 A구몽 2018.08.12 103
RMMV 플레이어 그림 2 Nrio 2016.06.04 181
RMVX 플레이어 X좌표, 플레이어 화면X좌표 차이가 뭔가요? 2 후라이팬샷 2013.12.14 1071
이벤트 작성 RMVXA 플레이어 x,y 좌표 기억법? 2 유리컵 2023.10.07 25
RMVXA 플레이시간이 100시간이 될 수도 있나요? 2 님믹 2012.11.02 1021
기타 플레이도중 오류로인한 종료 질문 드립니다. 1 file lishel 2013.12.18 876
RMVXA 플레이 화면 구성 관련 질문 2 file 천지설화 2017.06.27 149
RMVXA 플레이 할때 중간에 플레이어를 바꾸는 방법을 모르겠어요..... 4 a코코아a 2014.04.07 673
RM2k 플레이 할때 개수가 갌이라고 뜹니다. 5 file 엑스트라 2012.12.02 1285
기본툴 사용법 RMMV 플레이 테스트를 처음부터말고 해당이벤트부터 시작하게 어떻게 하나요 2 file 코볼트코 2020.11.24 201
에러 해결 RMMV 플레이 테스트가 실행되지 않습니다 file 참치캔통 2024.04.21 15
RMVX 플레이 중 나무나 벽을 뚫고 지나가는 버그가 생길 수도 있나요? 6 승비 2011.06.14 865
기타 플레이 오류 아직도 해결이 안됬습니다. file 비둘디 2013.11.03 909
RM2k 플레이 시 오류가 뜹니다..ㅠㅠ file 고봉도봉 2013.11.03 897
기타 플레이 동영상을 유튜브에 올릴 때 출처 xnddl 2014.02.27 729
RM2k 플레이 도중에 강제 종료 현상 2 다크루인 2013.08.13 1507
Board Pagination Prev 1 ... 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ... 516 Next
/ 516