장비

남성 / 여성전용 장비 스크립트 (수정 v1.1)

by Evangelista posted Nov 15, 2009
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

=begin

dest21c 남성/여성전용장비 스크립트 (ver 1.1)

사용법
  1. 자동전투용 액터가 존재하는 게임에는 사용할 수 없습니다.
     : DB상의 액터 옵션 중 자동전투 옵션을 남녀구분으로 돌려 사용합니다.
     : 그렇기 때문에 오토배틀을 위한 자동전투 옵션은 무효가 됩니다.
     : 타 스크립트를 도입해도 거의 100% 자동전투 관련 옵션은 남녀구분옵션으로 사용됩니다.
     : 약의 지식 등 다른 옵션을 사용할 경우에는 따로 리퀘스트를 부탁드립니다.
  2. 자동전투 옵션이 체크가 되어 있다면 남성, 미체크시에는 여성으로 판정하게 됩니다.
  3. 남성전용 및 여성전용을 설정할 장비의 메모창에
     남성전용
     여성전용
     둘 중의 하나를 기입해 주십시오. 둘 다 기입시엔 비정상적으로 작동합니다.

 

수정

ver 1.1 : 클래스별 장비에 상관없이 남성이거나 여성이면 무조건 장착가능해지는 현상을 수정.

              단 def equippable?을 재정의했기 때문에 다른 해당계열스크립트와 경합 가능성 존재.

 


=end

 

module RPG

#==============================================================================
# ● RPG::Weapon
#==============================================================================

class Weapon
  #--------------------------------------------------------------------------
  # ● 남성전용장비인가? ex)남성전용
  #--------------------------------------------------------------------------
  def male?
    text = @note[/남성전용/]
    return false if text == nil
    return true if text == "남성전용"
  end
  #--------------------------------------------------------------------------
  # ● 여성전용장비인가? ex)여성전용
  #--------------------------------------------------------------------------
  def female?
    text = @note[/여성전용/]
    return false if text == nil
    return true if text == "여성전용"
  end
end

#==============================================================================
# ● RPG::Armor
#==============================================================================

class Armor
  #--------------------------------------------------------------------------
  # ● 남성전용장비인가? ex)남성전용
  #--------------------------------------------------------------------------
  def male?
    text = @note[/남성전용/]
    return false if text == nil
    return true if text == "남성전용"
  end
  #--------------------------------------------------------------------------
  # ● 여성전용장비인가? ex)여성전용
  #--------------------------------------------------------------------------
  def female?
    text = @note[/여성전용/]
    return false if text == nil
    return true if text == "여성전용"
  end
end

end

 

#==============================================================================
# ■ Game_Actor
#------------------------------------------------------------------------------
#  액터를 취급하는 클래스입니다.이 클래스는 Game_Actors 클래스 ($game_actors)
# 의 내부에서 사용되어 Game_Party 클래스 ($game_party)로부터도 참조됩니다.
#==============================================================================

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ● 옵션 [자동 전투] 의 취득
  #--------------------------------------------------------------------------
  def auto_battle
    return false
  end
  #--------------------------------------------------------------------------
  # ☆ 액터가 남자인가?
  #--------------------------------------------------------------------------
  def male?
    return actor.auto_battle
  end
  #--------------------------------------------------------------------------
  # ☆ 장비 가능 판정
  #     item : 아이템
  #--------------------------------------------------------------------------
  def equippable?(item)
    if item.is_a?(RPG::Weapon)
      return true if actor.auto_battle and item.male? and self.class.weapon_set.include?(item.id)
      return true if item.female? and not actor.auto_battle and self.class.weapon_set.include?(item.id)
      return true if self.class.weapon_set.include?(item.id) and not item.male? and not item.female?
    elsif item.is_a?(RPG::Armor)
      return false if two_swords_style and item.kind == 0
      return true if actor.auto_battle and item.male? and self.class.armor_set.include?(item.id)
      return true if item.female? and not actor.auto_battle and self.class.armor_set.include?(item.id)
      return true if self.class.armor_set.include?(item.id) and not item.male? and not item.female?
    end
    return false
  end

 

 

 

간단한 스크립트이며 가급적 섹션의 최하단에 도입하는 것을 권장합니다.