질문과 답변

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 12393
RMMV ~~.rpgmvp가 뭔가요? 2 file 무슨상관이라도 2016.08.25 7393
RMVXA ^^ 이름 처리 질문 좀 하겠습니다 3 유한소수 2017.02.14 121
RMVXA \V[n]말고 항상 대화창 및 메뉴 글자색 변경하려면? 9 제이니 2012.07.28 2732
RMVX [현상금!!] 전투 중 몬스터(적 배틀러) 공격 애니메이션 표시 스크립트 file 레이시아 2016.12.17 133
RMVXA [해결완료]아이템 클래스 제한 스크립트에 대해서 질문있습니다. 2 KuKuKu 2017.03.19 108
RMVXA [해결완료]사진불러오고 배경흰색없애는창이안뜸.. 빕새 2017.03.02 129
RMVXA [해결완료]RPG maker VX Ace 버그 수정 도와주시면 감사합니다. 3 file 가이아_ 2014.11.01 727
RMVXA [해결완료] 오른쪽에 이미지로 인터페이스를 깔아두고 맵스크롤을 고정하고싶은데요 6 file 코코아밀크 2016.12.28 337
RMVXA [해결완] 페이드인 페이드아웃 시간 조절은 어떻게하나요? 2 코코아밀크 2017.01.04 215
RMVXA [해결됨]게임 중간에 액터의 한가지 장비를 장비고정 시키는 법? 3 sudoxe 2014.02.09 879
RM2k3 [해결됨] 제작툴 자료실에서 2003 다운받았는데요 4 brainplay 2013.06.14 919
RMVXA [해결됨] 이동하는 이벤트를 카메라의 중점으로 하고 싶습니다. 4 위키니트러 2014.10.30 762
RMVXA [해결]회피나 명중 등의 공식을 고치고 싶어요. 4 esilin 2014.02.09 1321
RMVX [해결]화면에 애니메이션 재생시 캐릭터에 따라 애니메이션이 움직입니다. 9 위키니트러 2014.02.11 485
[해결]전투 중 일어가 나옵니다 2 marshall 2013.09.23 972
RMVXA [해결]전투 중 액터의 이미지가 표시되지 않습니다. CP's Battle Engine 스크립트 모드 3 7 file 풍지 2014.01.22 940
기타 [해결]이 배포 사이트 이용법 아시는분 답변 부탁드려요 3 ji1202 2013.04.16 752
RMVXA [해결] 캐릭터 스테이터스의 HP MP LV 표시를 삭제하려면 어떤 스크립트를 지워야 하나요? 말린귤 2018.02.15 368
RMVXA [해결] 대화 메시지 창 실행 중 애니메이션의 재생 8 위키니트러 2018.02.14 203
RMMV [해결] XBOX컨트롤러(조이스틱)으로 쯔꾸르 게임하는법 8 NewSet 2018.05.18 4372
Board Pagination Prev 1 ... 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 ... 516 Next
/ 516