질문과 답변

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 12456
제작툴 구매 툴선택 도와주세요! 알피지 메이커(알만툴) 어떤 버전을 구매하는 게 좋을까요? 7 dndn 2020.03.12 366
플러그인 추천 RMMV MV에서 대각선이동이 가능한가요? (8방향이동) 6 믕믱이 2020.03.12 794
기본툴 사용법 RMMV 추격자 등장하면 1 채팅 2020.03.11 81
플러그인 사용 RMMV 마우스 클릭 즉각반응 7 믕믱이 2020.03.11 645
플러그인 생성 RMMV 이 스크립트(ace) mv용으로 바꿔주실분? 3 무명시절 2020.03.10 179
턴제 전투 RMMV 적의 공격을 받았을 때 차는 tp 량 조절 3 바다에요 2020.03.10 130
스크립트 사용 RMVXA 다음 맵으로 넘어갈때 원경 고정 풀리게 하는법좀요 도르마무 2020.03.10 39
턴제 전투 RMMV rpg mv에 쉴드 스킬만들기가 너무 어려워요 2 키보드부셔라 2020.03.09 290
기타 게임찾기 왕녀의 기사 엣날에 한기억이 나서 알만툴쪽은 srpg 나름 잘만든게 잇나요? 호시노요나메 2020.03.08 94
기본툴 사용법 RMMV 조건 전투불능 스탯 11 Timeout 2020.03.07 229
에러 해결 RMVXA 캐릭터 시야에 벗어나면 이벤트가 쫒아오질 않아요 2 Wolfclaw 2020.03.07 95
기타 사이트 이용 게임다운받고싶은데 권한을 승인받아야한데요..뭔소리임?? file 프릴상어 2020.03.06 133
턴제 전투 RMMV 측면 보기 전투 중에 검을 사용하는 아군이 40M 장검으로 때리듯 원거리 공격을 합니다. 2 바다에요 2020.03.06 114
이벤트 작성 RMMV 가시 함정을 밟으면 죽게 하고 싶어요 6 file 지탁 2020.03.05 338
턴제 전투 RMVXA 적 선택시 화살표 Sa0327 2020.03.04 61
턴제 전투 RMMV 전투 중에 스킬 사용 시 사용자 이름이 뜨는 것 대신 스킬 이름과 아이콘이 어떻게 뜨게 하나요... 1 바다에요 2020.03.04 73
기본툴 사용법 RMMV 타이틀 창 위치 옮기는 방법 좀 알려주세요 1 뿔님 2020.03.03 454
한글 패치 RMVXA RPG MAKER VX ACE 한글패치 관련 문의드립니다ㅠ 2 쇠창살 2020.03.02 462
스크립트 작성 RMVXA 게임 도중 타이틀 bgm 변경 ㄷㄲㅇ 2020.03.01 126
기타 RMVXA 사운드파일 추출 2 한들 2020.02.29 212
Board Pagination Prev 1 ... 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 ... 516 Next
/ 516