解決済み:武器タイプ複数設定

なたね
記事: 30
登録日時: 2017年1月11日(水) 00:34

解決済み:武器タイプ複数設定

投稿記事by なたね » 2023年2月03日(金) 08:19

いつもお世話になっております。
武器に付いている武器タイプですが、武器自体の武器タイプを複数設定するスクリプトを作っていただきたいです。
お時間があるときで構いませんので、是非とも宜しくお願い致します。
最後に編集したユーザー なたね on 2023年2月04日(土) 07:16 [ 編集 1 回目 ]

DEDEN
記事: 58
登録日時: 2018年8月25日(土) 15:06

Re: 武器タイプ複数設定

投稿記事by DEDEN » 2023年2月03日(金) 20:20

なたね 様こんばんは
スクリプトを作ってみました
add_wtype[n]と武器のメモ欄に記述すれば武器タイプを増やす事ができます
ひとつ不明な点があったのですが、複数の武器タイプが設定されていた場合はひとつでも条件を満たしていれば装備できる仕様で大丈夫でしたでしょうか?
もし全ての条件を満たさないと装備できない方が良いなら設定から変更できるようにしておきましたのでご活用ください

コード: 全て選択

#==============================================================================
# ■ 武器タイプを複数設定
#------------------------------------------------------------------------------
#  add_wtype[n]と武器のメモ欄に記述すると武器タイプを追加する事ができます
#   [n,m]と複数追加する事も可能です
#==============================================================================
#==============================================================================
# ● 設定項目
#    trueなら複数の武器タイプの内一つでも条件を満たすと
#    装備可能になります
#    falseの場合は全て満たす必要があります
#==============================================================================
module Deden
  module Add_Weapon_Type
    EASY_CONDITIONS = true #設定箇所
  end
end
class Scene_Title < Scene_Base
  #--------------------------------------------------------------------------
  # ● 武器タイプを配列化
  #--------------------------------------------------------------------------
  def weapon_type_change_array
    $data_weapons.map do |id|
      next if id.nil?
      id.wtype_id = [id.wtype_id]
    end
  end
  #--------------------------------------------------------------------------
  # ● 武器タイプを追加
  #--------------------------------------------------------------------------
  def add_weapon_type
    $data_weapons.each do |id|
      next if id.nil?
      if /^#{"add_wtype"}\[([\d\,]+)\]/ =~ id.note
        result = []
        $1.split(/\,/).each {|i| result.push(i.to_i)}
        id.wtype_id += result
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 開始処理
  #--------------------------------------------------------------------------
  alias start_deden_2 start
  def start
    start_deden_2
    weapon_type_change_array
    add_weapon_type
  end
end
class Game_BattlerBase
  include Deden::Add_Weapon_Type
  #--------------------------------------------------------------------------
  # ● 武器装備可能の判定
  #--------------------------------------------------------------------------
  def equip_wtype_ok?(wtype_id)
    check = false
    if EASY_CONDITIONS
      features_set(FEATURE_EQUIP_WTYPE).each {|i| check = true if wtype_id.include?(i)}
      return check
    else
      count = 0
      features_set(FEATURE_EQUIP_WTYPE).each do |i|
        count += 1 if wtype_id.include?(i)
      end
      wtype_id.size == count ? true : false
    end
  end
end
class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ● 特定のタイプの武器を装備しているか
  #--------------------------------------------------------------------------
  def wtype_equipped?(wtype_id)
    weapons.any? {|weapon| weapon.wtype_id.include?(wtype_id)}
  end
end
なたね
記事: 30
登録日時: 2017年1月11日(水) 00:34

Re: 武器タイプ複数設定

投稿記事by なたね » 2023年2月04日(土) 07:16

DEDEN様、おはようございます。
スクリプトを作成していただきありがとうございました。
複数の武器タイプが設定されていた場合はひとつでも条件を満たしていれば装備できる仕様で大丈夫です!

テストしたところ、理想通りのものだったのでとても嬉しいです。
この度は作成していただき本当にありがとうございました。

“VX / Ace:スクリプト素材のリクエスト” へ戻る