查看: 1783|回复: 3

[已经解决] 谁有VX的多人队伍啊...

[复制链接]
梦石
0
星屑
50
在线时间
53 小时
注册时间
2013-6-27
回帖
22
发表于 2014-10-6 16:50:17 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
如题...谁有VX的多人队伍...要20人的队伍...可以自由选择人物出战..
出战只有4人...最好有工程

梦石
0
星屑
782
在线时间
3431 小时
注册时间
2011-6-10
回帖
6325
发表于 2014-10-6 17:31:42 | 显示全部楼层
搜索 群战系统 然后把你的字号缩小
长名公主玩家群:372588926 攻略娱乐应有尽有
了解更多新RM游戏,游戏制作请加入RPGmaker支援群:113622890
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
75
在线时间
31 小时
注册时间
2013-6-21
回帖
36
发表于 2014-10-6 20:25:15 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

梦石
0
星屑
278
在线时间
122 小时
注册时间
2010-12-23
回帖
168
发表于 2014-10-6 20:43:23 | 显示全部楼层
本帖最后由 双叶GL 于 2014-10-6 20:57 编辑

啊好像发错版本了,这是RGSS3的脚本不要用!!!

这里是设定,可以修改参数

[pre lang="ruby" line="1"]#==============================================================================
# ■ RGSS3 アクター預かり所 ver 1.00 初期設定
#------------------------------------------------------------------------------
#  配布元:
#     白の魔 http://izumiwhite.web.fc2.com/
#
#  利用規約:
#     RPGツクールVX Aceの正規の登録者のみご利用になれます。
#     利用報告・著作権表示とかは必要ありません。
#     改造もご自由にどうぞ。
#     何か問題が発生しても責任は持ちません。
#==============================================================================


#--------------------------------------------------------------------------
# ★ 初期設定。
#    メンバーの加入条件、ソート機能等の設定
#--------------------------------------------------------------------------
module WD_memberchange_ini
  Initial_switch = 102 #编号从X开关开始计算
                      # 例如,改成101,那么第101号开关开启后才能第一个角色替换
                      # 而开关102开启104开启105开起,那么第2个人就直接跳过

  Remove_only = true #falseにすると交代のみ
                     #trueの場合は、一番下の空白を選択することで
                     #アクターを外すだけという処理が可能

  Party_max = 4 #パーティ最大人数。

  Sort_use = false       #ソート切り替え機能を使用するか
  Sort_variable = 10    #ソート用格納変数の番号
                        #注:ソート切り替え機能をOFFにしても指定すること。
                        #    ソート切り替え機能がOFFの場合でも
                        #    並び順は変数で指定しているソートを使用する。
                        #    但し、メニュー上で切り替えはできない。
                        #    (イベントコマンドで直接変数を書き換えれば可。)
  Sort_indexini = true  #trueの場合、ソート切り替え時カーソルを一番上へ移動
  
  Sort_frontcommand = false #外すアクターを選択する場合にも
                            #ソート用コマンドを受け付ける場合はtrue

  Sort_series = [0,1,2,3,4,5,6,7,8,9,10] #どのソート機能を使用するか
                                       #ソート切り替え機能をOFFにしても
                                       #指定すること
  # 0:ID順        1:指定ソート  2:レベル順    3:最大HP順  4:最大MP順
  # 5:攻撃力順    6:防御力順    7:魔法力順    8:魔法防御順  9:敏捷性順
  #10:運順       11:職業ID順

  Sort_names =
  ["ID順","レベル順","HP順","MP順",  #各ソートの名称
   "攻撃力順","防御力順","魔法力順","魔法防御順",   #上の配列と同じ順番で指定
   "敏捷性順","運順"]

  Assignsort_array = [9,1,2,4,7,6,3,5,8,10] #指定ソート、
                                            #アクターのID順に優先度を指定
                                            #使わない場合は指定しなくてよい。
                                            #この場合ラルフは7番、ウルリカは3番...
                                            #間違えやすいので注意。
                                            
  Eliminate_use = false  #アクター除籍機能を使う場合はtrue
                        #除籍:各アクターの加入条件スイッチをOFFにすること。
                        #もう一度ONにすれば、再び編成画面に加わります。
  Eliminate_command1 = "除籍"       #除籍確認用コマンド1
  Eliminate_command2 = "キャンセル" #除籍確認用コマンド2
  
  
  Fix_switch1 = []  #この行は消さないこと
  Fix_switch2 = []  #この行は消さないこと
  
  #特定のメンバーを固定するためのスイッチ指定
  Fix_switch1[1] = 102 #3番のスイッチがONの時1番のアクターは入れ替え不可
  #Fix_switch1[6] = 4 #4番のスイッチがONの時6番のアクターは入れ替え不可

  #特定のアクターを除籍できなくするスイッチ
  Fix_switch2[1] = 7 #7番のスイッチがONの時2番のアクターは除籍不可
  Fix_switch2[4] = 8 #8番のスイッチがONの時4番のアクターは除籍不可
  
  Remove_equip1 = false  #入れ替え時に装備を外す場合はtrue
  Remove_equip2 = true   #除籍時に装備を外す場合はtrue
  
  Txtwindow1_use = true                #テキストウィンドウ1を使用するか
  Txtwindow1_text = "パーティメンバー" #テキストウィンドウ1に表示させる文章("\n"で改行)
  Txtwindow1_timing = 1                #テキストウィンドウ1の表示タイミング
                                       #1⇒常時、#2⇒外すアクター選択中、3⇒加えるアクター選択中
  Txtwindow2_use = true                #テキストウィンドウ2を使用するか
  Txtwindow2_text = "待機メンバー"     #テキストウィンドウ2に表示させる文章("\n"で改行)
  Txtwindow2_timing = 1                #テキストウィンドウ1の表示タイミング
                                       #1⇒常時、#2⇒外すアクター選択中、3⇒加えるアクター選択中
  Txtwindow3_use = false                #テキストウィンドウ3を使用するか
  Txtwindow3_text = " " #テキストウィンドウ3に表示させる文章("\n"で改行)
  Txtwindow3_timing = 3                #テキストウィンドウ1の表示タイミング
                                       #1⇒常時、#2⇒外すアクター選択中、3⇒加えるアクター選択中
end
#--------------------------------------------------------------------------
# ★ 初期設定おわり
#--------------------------------------------------------------------------


#--------------------------------------------------------------------------
# ■ レイアウト設定。
#    各ウィンドウのレイアウトを指定
#--------------------------------------------------------------------------

#--------------------------------------------------------------------------
# ★ パーティから外すアクターを選択するウィンドウのレイアウトの設定
#--------------------------------------------------------------------------
module WD_memberchange_front_layout

  #ウィンドウの設定
  Window_x = 0
  Window_y = 48
  Window_width = 196
  Window_height = 106 - 44
  Window_col = 4

  #カーソルの設定
  Rect_spacing = 12
  Rect_interval = 12
  Rect_width = 34
  Rect_height = 34

  #顔グラフィックの表示
  Faceview = false
  Faceview_x = 0
  Faceview_y = 0

  #歩行グラィックの表示
  Charaview = true
  Charaview_x = 16
  Charaview_y = 32
  
  #ステートの表示
  Stateview = false
  Stateview_x = 0
  Stateview_y = 0
  Stateview_width = 96
  
  #名前の表示
  Nameview = false
  Nameview_x = 0
  Nameview_y = 0
  Nameview_width = 112
  
  #職業の表示
  Classview = false
  Classview_x = 0
  Classview_y = 0
  Classview_width = 112

  #レベルの表示
  Lvview = false
  Lvview_x = 0
  Lvview_y = 0
  Lvview_width = 56  
  
  #二つ名の表示
  Nicknameview = false
  Nicknameview_x = 0
  Nicknameview_y = 0
  Nicknameview_width = 180
   
  #HPゲージの表示
  Hpgaugeview = false
  Hpgaugeview_x = 0
  Hpgaugeview_y = 0
  Hpgaugeview_width = 124

  #MPゲージの表示
  Mpgaugeview = false
  Mpgaugeview_x = 0
  Mpgaugeview_y = 0
  Mpgaugeview_width = 124
  
  #TPの表示
  Tpview = false
  Tpview_x = 0
  Tpview_y = 0
  Tpview_width = 124

  #最大HPの表示
  Parameterview0 = false
  Parameterview0_x = 0
  Parameterview0_y = 0
  Parameterview0_width = 156

  #最大MPの表示
  Parameterview1 = false
  Parameterview1_x = 0
  Parameterview1_y = 0
  Parameterview1_width = 156

  #攻撃力の表示
  Parameterview2 = false
  Parameterview2_x = 0
  Parameterview2_y = 0
  Parameterview2_width = 156

  #防御力の表示
  Parameterview3 = false
  Parameterview3_x = 0
  Parameterview3_y = 0
  Parameterview3_width = 156

  #魔法力の表示
  Parameterview4 = false
  Parameterview4_x = 0
  Parameterview4_y = 0
  Parameterview4_width = 156
  
  #魔法防御の表示
  Parameterview5 = false
  Parameterview5_x = 0
  Parameterview5_y = 0
  Parameterview5_width = 156
  
  #敏捷性の表示
  Parameterview6 = false
  Parameterview6_x = 0
  Parameterview6_y = 0
  Parameterview6_width = 156
  
  #運の表示
  Parameterview7 = false
  Parameterview7_x = 0
  Parameterview7_y = 0
  Parameterview7_width = 156

end


#--------------------------------------------------------------------------
# ★ パーティに加えるアクターを選択するウィンドウのレイアウトの設定
#--------------------------------------------------------------------------
module WD_memberchange_back_layout

  #ウィンドウの設定
  Window_x = 0
  Window_y = 202 - 44
  Window_width = 196
  Window_height = 166 + 46
  Window_col = 4

  #カーソルの設定
  Rect_spacing = 12
  Rect_interval = 12
  Rect_width = 34
  Rect_height = 34

  #顔グラフィックの表示
  Faceview = false
  Faceview_x = 0
  Faceview_y = 0

  #歩行グラィックの表示
  Charaview = true
  Charaview_x = 16
  Charaview_y = 32
  
  #ステートの表示
  Stateview = false
  Stateview_x = 0
  Stateview_y = 0
  Stateview_width = 96
  
  #名前の表示
  Nameview = false
  Nameview_x = 0
  Nameview_y = 0
  Nameview_width = 112
  
  #職業の表示
  Classview = false
  Classview_x = 0
  Classview_y = 0
  Classview_width = 112
  
  #二つ名の表示
  Nicknameview = false
  Nicknameview_x = 0
  Nicknameview_y = 0
  Nicknameview_width = 180
  
  #レベルの表示
  Lvview = false
  Lvview_x = 0
  Lvview_y = 0
  Lvview_width = 56
  
  #HPゲージの表示
  Hpgaugeview = false
  Hpgaugeview_x = 0
  Hpgaugeview_y = 0
  Hpgaugeview_width = 124

  #MPゲージの表示
  Mpgaugeview = false
  Mpgaugeview_x = 0
  Mpgaugeview_y = 0
  Mpgaugeview_width = 124
  
  #TPの表示
  Tpview = false
  Tpview_x = 0
  Tpview_y = 0
  Tpview_width = 124

  #最大HPの表示
  Parameterview0 = false
  Parameterview0_x = 0
  Parameterview0_y = 0
  Parameterview0_width = 156

  #最大MPの表示
  Parameterview1 = false
  Parameterview1_x = 0
  Parameterview1_y = 0
  Parameterview1_width = 156

  #攻撃力の表示
  Parameterview2 = false
  Parameterview2_x = 0
  Parameterview2_y = 0
  Parameterview2_width = 156

  #防御力の表示
  Parameterview3 = false
  Parameterview3_x = 0
  Parameterview3_y = 0
  Parameterview3_width = 156

  #魔法力の表示
  Parameterview4 = false
  Parameterview4_x = 0
  Parameterview4_y = 0
  Parameterview4_width = 156
  
  #魔法防御の表示
  Parameterview5 = false
  Parameterview5_x = 0
  Parameterview5_y = 0
  Parameterview5_width = 156
  
  #敏捷性の表示
  Parameterview6 = false
  Parameterview6_x = 0
  Parameterview6_y = 0
  Parameterview6_width = 156
  
  #運の表示
  Parameterview7 = false
  Parameterview7_x = 0
  Parameterview7_y = 0
  Parameterview7_width = 156
  
end


#--------------------------------------------------------------------------
# ★ アクターのステータスを表示するウィンドウのレイアウトの設定
#--------------------------------------------------------------------------
module WD_memberchange_status_layout
  
  #ウィンドウの設定
  Window_x = 196
  Window_y = 0
  Window_width = 348
  Window_height = 416

  #顔グラフィックの表示
  Faceview = true
  Faceview_x = 2
  Faceview_y = 26

  #歩行グラィックの表示
  Charaview = true
  Charaview_x = 122
  Charaview_y = 120
  
  #ステートの表示
  Stateview = true
  Stateview_x = 2
  Stateview_y = 128
  Stateview_width = 96
  
  #名前の表示
  Nameview = true
  Nameview_x = 0
  Nameview_y = 0
  Nameview_width = 112
  
  #職業の表示
  Classview = true
  Classview_x = 156
  Classview_y = 0
  Classview_width = 112
  
  #二つ名の表示
  Nicknameview = true
  Nicknameview_x = 156
  Nicknameview_y = 36
  Nicknameview_width = 180
  
  #レベルの表示
  Lvview = true
  Lvview_x = 156
  Lvview_y = 72
  Lvview_width = 56
   
  #HPゲージの表示
  Hpgaugeview = true
  Hpgaugeview_x = 156
  Hpgaugeview_y = 96
  Hpgaugeview_width = 124

  #MPゲージの表示
  Mpgaugeview = true
  Mpgaugeview_x = 156
  Mpgaugeview_y = 120
  Mpgaugeview_width = 124
  
  #TPの表示
  Tpview = false
  Tpview_x = 0
  Tpview_y = 0
  Tpview_width = 124

  #最大HPの表示
  Parameterview0 = false
  Parameterview0_x = 0
  Parameterview0_y = 0
  Parameterview0_width = 125

  #最大MPの表示
  Parameterview1 = false
  Parameterview1_x = 0
  Parameterview1_y = 0
  Parameterview1_width = 125

  #攻撃力の表示
  Parameterview2 = true
  Parameterview2_x = 2
  Parameterview2_y = 156
  Parameterview2_width = 125

  #防御力の表示
  Parameterview3 = true
  Parameterview3_x = 160
  Parameterview3_y = 156
  Parameterview3_width = 125

  #魔法力の表示
  Parameterview4 = true
  Parameterview4_x = 2
  Parameterview4_y = 180
  Parameterview4_width = 125
  
  #魔法防御の表示
  Parameterview5 = true
  Parameterview5_x = 160
  Parameterview5_y = 180
  Parameterview5_width = 125
  
  #敏捷性の表示
  Parameterview6 = true
  Parameterview6_x = 2
  Parameterview6_y = 204
  Parameterview6_width = 125
  
  #運の表示
  Parameterview7 = true
  Parameterview7_x = 160
  Parameterview7_y = 204
  Parameterview7_width = 125
  
  #武器の表示
  Equipview0 = true
  Equipview0_x = 2
  Equipview0_y = 240
  Equipview0_width = 264

  #盾(or武器2)の表示
  Equipview1 = true
  Equipview1_x = 2
  Equipview1_y = 240 + 24
  Equipview1_width = 264

  #頭の表示
  Equipview2 = true
  Equipview2_x = 2
  Equipview2_y = 240 + 24 * 2
  Equipview2_width = 264

  #身体の表示
  Equipview3 = true
  Equipview3_x = 2
  Equipview3_y = 240 + 24 * 3
  Equipview3_width = 264

  #装飾品の表示
  Equipview4 = true
  Equipview4_x = 2
  Equipview4_y = 240 + 24 * 4
  Equipview4_width = 264

  #トータル経験値の表示
  Expview1 = false
  Expview1_x = 2
  Expview1_y = 240
  Expview1_width = 274

  #次のレベルまでの経験値の表示
  Expview2 = false
  Expview2_x = 2
  Expview2_y = 264
  Expview2_width = 274
  
end



#--------------------------------------------------------------------------
# ★ 現在選択中のソートを表示するウィンドウのレイアウトの設定
#--------------------------------------------------------------------------
module WD_memberchange_sort_layout

  #ウィンドウの設定
  Window_x = 0
  Window_y = 368
  Window_width = 196
  Window_height = 48

end

#--------------------------------------------------------------------------
# ★ アクター除籍の確認用ウィンドウのレイアウトの設定
#--------------------------------------------------------------------------
module WD_memberchange_eliminate_layout

  #ウィンドウの設定
  Window_x = 420
  Window_y = 48
  Window_width = 124
  Window_height = 72
  Window_col = 1 #コマンドの列数(1 or 2)
  
end

#--------------------------------------------------------------------------
# ★ テキストウィンドウ1のレイアウトの設定
#--------------------------------------------------------------------------
module WD_memberchange_text1_layout

  #ウィンドウの設定
  Window_x = 0
  Window_y = 0
  Window_width = 196
  Window_height = 48
  
  #テキストの設定
  Text_align = 1  #テキストの位置(0 ⇒ 左揃え、1 ⇒ 中央揃え、 2 ⇒ 右揃え)

end

#--------------------------------------------------------------------------
# ★ テキストウィンドウ2のレイアウトの設定
#--------------------------------------------------------------------------
module WD_memberchange_text2_layout

  #ウィンドウの設定
  Window_x = 0
  Window_y = 154 - 44
  Window_width = 196
  Window_height = 48
  
  #テキストの設定
  Text_align = 1  #テキストの位置(0 ⇒ 左揃え、1 ⇒ 中央揃え、 2 ⇒ 右揃え)

end

#--------------------------------------------------------------------------
# ★ テキストウィンドウ3のレイアウトの設定
#--------------------------------------------------------------------------
module WD_memberchange_text3_layout

  #ウィンドウの設定
  Window_x = 444
  Window_y = 344
  Window_width = 100
  Window_height = 72
  
  #テキストの設定
  Text_align = 0  #テキストの位置(0 ⇒ 左揃え、1 ⇒ 中央揃え、 2 ⇒ 右揃え)

end[/pre]

第二部分,主要内容
[pre lang="ruby" line="1"]#==============================================================================
# ■ RGSS3 アクター預かり所 ver 1.00 本体プログラム
#------------------------------------------------------------------------------
#  配布元:
#     白の魔 http://izumiwhite.web.fc2.com/
#
#  利用規約:
#     RPGツクールVX Aceの正規の登録者のみご利用になれます。
#     利用報告・著作権表示とかは必要ありません。
#     改造もご自由にどうぞ。
#     何か問題が発生しても責任は持ちません。
#==============================================================================


#==============================================================================
# ■ WD_memberchange_commonmethod
#------------------------------------------------------------------------------
#  アクター預かり所用の共通メソッドです。
#==============================================================================

module WD_memberchange_commonmethod
  #--------------------------------------------------------------------------
  # ● 歩行グラフィックの描画
  #--------------------------------------------------------------------------
  def draw_character(character_name, character_index, x, y, enabled = true)
    return unless character_name
    bitmap = Cache.character(character_name)
    sign = character_name[/^[\!\$]./]
    if sign && sign.include?('$')
      cw = bitmap.width / 3
      ch = bitmap.height / 4
    else
      cw = bitmap.width / 12
      ch = bitmap.height / 8
    end
    n = character_index
    src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch)
    if enabled
      contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
    else
      contents.blt(x - cw / 2, y - ch, bitmap, src_rect, 128)      
    end
  end
  #--------------------------------------------------------------------------
  # ● ステートおよび強化/弱体のアイコンを描画
  #--------------------------------------------------------------------------
  def draw_actor_icons(actor, x, y, width = 96, enabled = true)
    icons = (actor.state_icons + actor.buff_icons)[0, width / 24]
    icons.each_with_index {|n, i| draw_icon(n, x + 24 * i, y, enabled) }
  end
  #--------------------------------------------------------------------------
  # ● 名前の描画
  #--------------------------------------------------------------------------
  def draw_actor_name(actor, x, y, width = 112, enabled = true)
    change_color(hp_color(actor), enabled)  
    draw_text(x, y, width, line_height, actor.name)
  end
  #--------------------------------------------------------------------------
  # ● 職業の描画
  #--------------------------------------------------------------------------
  def draw_actor_class(actor, x, y, width = 112, enabled = true)
    change_color(normal_color, enabled)
    draw_text(x, y, width, line_height, actor.class.name)
  end
  #--------------------------------------------------------------------------
  # ● 二つ名の描画
  #--------------------------------------------------------------------------
  def draw_actor_nickname(actor, x, y, width = 180, enabled = true)
    change_color(normal_color, enabled)
    draw_text(x, y, width, line_height, actor.nickname)
  end
  #--------------------------------------------------------------------------
  # ● レベルの描画
  #--------------------------------------------------------------------------
  def draw_actor_level(actor, x, y, width = 56, enabled = true)
    change_color(system_color, enabled)
    draw_text(x, y, width-24, line_height, Vocab::level_a)
    change_color(normal_color, enabled)
    draw_text(x + 32, y, 24, line_height, actor.level, 2)
  end
  #--------------------------------------------------------------------------
  # ● HP の描画
  #--------------------------------------------------------------------------
  def draw_actor_hp(actor, x, y, width = 124, enabled = true)
    draw_gauge(x, y, width, actor.hp_rate, hp_gauge_color1, hp_gauge_color2)
    change_color(system_color, enabled)
    draw_text(x, y, 30, line_height, Vocab::hp_a)
    draw_current_and_max_values(x, y, width, actor.hp, actor.mhp,
      hp_color(actor), normal_color, enabled)
  end
  #--------------------------------------------------------------------------
  # ● MP の描画
  #--------------------------------------------------------------------------
  def draw_actor_mp(actor, x, y, width = 124, enabled = true)
    draw_gauge(x, y, width, actor.mp_rate, mp_gauge_color1, mp_gauge_color2)
    change_color(system_color, enabled)
    draw_text(x, y, 30, line_height, Vocab::mp_a)
    draw_current_and_max_values(x, y, width, actor.mp, actor.mmp,
      mp_color(actor), normal_color, enabled)
  end
  #--------------------------------------------------------------------------
  # ● TP の描画
  #--------------------------------------------------------------------------
  def draw_actor_tp(actor, x, y, width = 124, enabled = true)
    draw_gauge(x, y, width, actor.tp_rate, tp_gauge_color1, tp_gauge_color2)
    change_color(system_color, enabled)
    draw_text(x, y, 30, line_height, Vocab::tp_a)
    change_color(tp_color(actor), enabled)
    draw_text(x + width - 42, y, 42, line_height, actor.tp.to_i, 2)
  end
  #--------------------------------------------------------------------------
  # ● 現在値/最大値を分数形式で描画
  #     current : 現在値
  #     max     : 最大値
  #     color1  : 現在値の色
  #     color2  : 最大値の色
  #--------------------------------------------------------------------------
  def draw_current_and_max_values(x, y, width, current, max, color1, color2, enabled = true)
    change_color(color1, enabled)
    xr = x + width
    if width < 96
      draw_text(xr - 40, y, 42, line_height, current, 2)
    else
      draw_text(xr - 92, y, 42, line_height, current, 2)
      change_color(color2, enabled)
      draw_text(xr - 52, y, 12, line_height, "/", 2)
      draw_text(xr - 42, y, 42, line_height, max, 2)
    end
  end
  #--------------------------------------------------------------------------
  # ● 能力値の描画
  #--------------------------------------------------------------------------
  def draw_actor_param(actor, x, y, param_id, width = 156, enabled = true)
    change_color(system_color, enabled)
    draw_text(x, y, width-36, line_height, Vocab::param(param_id))
    change_color(normal_color, enabled)
    draw_text(x + width-36, y, 36, line_height, actor.param(param_id), 2)
  end
  #--------------------------------------------------------------------------
  # ● 項目の描画
  #--------------------------------------------------------------------------
  def draw_equip_item(actor, x, y, slot_index, width = 264, enabled = true)
    change_color(system_color, enabled)
    draw_text(x, y, 92, line_height, slot_name(actor, slot_index))
    draw_item_name(actor.equips[slot_index], x + 92, y, enabled, width-92)
  end
  #--------------------------------------------------------------------------
  # ● 装備スロットの名前を取得
  #--------------------------------------------------------------------------
  def slot_name(actor, slot_index)
    @actor ? Vocab::etype(actor.equip_slots[slot_index]) : ""
  end
  #--------------------------------------------------------------------------
  # ● 経験値情報の描画
  #--------------------------------------------------------------------------
  def draw_exp_info1(actor, x, y, width = 180, enabled = true)
    s1 = actor.max_level? ? "-------" : actor.exp
    change_color(system_color, enabled)
    draw_text(x, y, width, line_height, Vocab::ExpTotal)
    change_color(normal_color, enabled)
    draw_text(x, y, width, line_height, s1, 2)
  end
  #--------------------------------------------------------------------------
  # ● 経験値情報の描画
  #--------------------------------------------------------------------------
  def draw_exp_info2(actor, x, y, width = 180, enabled = true)
    s2 = actor.max_level? ? "-------" : actor.next_level_exp - actor.exp
    s_next = sprintf(Vocab::ExpNext, Vocab::level)
    change_color(system_color, enabled)
    draw_text(x, y, width, line_height, s_next)
    change_color(normal_color, enabled)
    draw_text(x, y, width, line_height, s2, 2)
  end
end


#==============================================================================
# ■ Scene_MemberChange
#------------------------------------------------------------------------------
#  アクター預かり所の処理を行うクラスです。
#==============================================================================

class Scene_MemberChange < Scene_ItemBase
  #--------------------------------------------------------------------------
  # ● 開始処理
  #--------------------------------------------------------------------------
  def start
    super
    create_status_window
    create_front_window
    create_back_window
    create_sort_window if WD_memberchange_ini::Sort_use
    create_eliminate_window if WD_memberchange_ini::Eliminate_use
    create_text_window
  end
  #--------------------------------------------------------------------------
  # ● パーティから外すアクターを選択するウィンドウの作成
  #--------------------------------------------------------------------------
  def create_front_window
    @front_window = Window_FrontMember.new
    @front_window.viewport = @viewport
    @front_window.status_window = @status_window
    @front_window.set_handler(:ok, method(:determine_member1))
    @front_window.set_handler(:cancel, method(:return_scene))
    if WD_memberchange_ini::Sort_use and WD_memberchange_ini::Sort_frontcommand
      @front_window.set_handler(:sort, method(:change_sort))
    end
    @front_window.update_help
  end
  #--------------------------------------------------------------------------
  # ● パーティに加えるアクターを選択するウィンドウの作成
  #--------------------------------------------------------------------------
  def create_back_window
    @back_window = Window_BackMember.new
    @back_window.viewport = @viewport
    @back_window.status_window = @status_window
    @back_window.set_handler(:ok, method(:determine_member2))
    @back_window.set_handler(:cancel, method(:cancel_member1))
    if WD_memberchange_ini::Sort_use
      @back_window.set_handler(:sort, method(:change_sort))
    end
    if WD_memberchange_ini::Eliminate_use
      @back_window.set_handler(:eliminate, method(:select_eliminate))
    end
  end
  #--------------------------------------------------------------------------
  # ● アクターのステータスウィンドウの作成
  #--------------------------------------------------------------------------
  def create_status_window
    @front_window = Window_FrontMember.new
    @status_window = Window_MemberChangeStatus.new
    @status_window.viewport = @viewport
  end
  #--------------------------------------------------------------------------
  # ● ソート表示ウィンドウの作成
  #--------------------------------------------------------------------------
  def create_sort_window
    @sort_window = Window_MemberChangeSort.new
    @sort_window.viewport = @viewport
  end
  #--------------------------------------------------------------------------
  # ● 除籍確認ウィンドウの作成
  #--------------------------------------------------------------------------
  def create_eliminate_window
    @eliminate_window = Window_MemberChangeEliminate.new
    @eliminate_window.viewport = @viewport
    @eliminate_window.set_handler(:ok,     method(:ok_eliminate))
    @eliminate_window.set_handler(:cancel, method(:cancel_eliminate))
    @eliminate_window.visible = false
  end
  #--------------------------------------------------------------------------
  # ● テキストウィンドウの作成
  #--------------------------------------------------------------------------
  def create_text_window
    if WD_memberchange_ini::Txtwindow1_use
      x = WD_memberchange_text1_layout::Window_x
      y = WD_memberchange_text1_layout::Window_y
      width = WD_memberchange_text1_layout::Window_width
      height = WD_memberchange_text1_layout::Window_height
      text = WD_memberchange_ini::Txtwindow1_text
      align = WD_memberchange_text1_layout::Text_align
      @text1_window = Window_MemberChangeText.new(x, y, width, height, text, align)
      @text1_window.viewport = @viewport
    end
    if WD_memberchange_ini::Txtwindow2_use
      x = WD_memberchange_text2_layout::Window_x
      y = WD_memberchange_text2_layout::Window_y
      width = WD_memberchange_text2_layout::Window_width
      height = WD_memberchange_text2_layout::Window_height
      text = WD_memberchange_ini::Txtwindow2_text
      align = WD_memberchange_text2_layout::Text_align
      @text2_window = Window_MemberChangeText.new(x, y, width, height, text, align)
      @text2_window.viewport = @viewport
    end
    if WD_memberchange_ini::Txtwindow3_use
      x = WD_memberchange_text3_layout::Window_x
      y = WD_memberchange_text3_layout::Window_y
      width = WD_memberchange_text3_layout::Window_width
      height = WD_memberchange_text3_layout::Window_height
      text = WD_memberchange_ini::Txtwindow3_text
      align = WD_memberchange_text3_layout::Text_align
      @text3_window = Window_MemberChangeText.new(x, y, width, height, text, align)
      @text3_window.viewport = @viewport
    end
    textwindow_visualize(3)
  end
  #--------------------------------------------------------------------------
  # ● パーティから外すメンバーの選択
  #--------------------------------------------------------------------------
  def determine_member1
    @back_window.activate
    textwindow_visualize(2)
  end
  #--------------------------------------------------------------------------
  # ● パーティから外すメンバーのキャンセル
  #--------------------------------------------------------------------------
  def cancel_member1
    @front_window.activate
    textwindow_visualize(3)
  end
  #--------------------------------------------------------------------------
  # ● パーティに加えるメンバーの選択
  #--------------------------------------------------------------------------
  def determine_member2
    actor1 = @front_window.data[@front_window.index]
    actor2 = @back_window.data[@back_window.index]

    remove_equip(actor1) if WD_memberchange_ini::Remove_equip1
    remove_actorid = []
    membersize = $game_party.members.size
    for i in @front_window.index..membersize - 1
      remove_actorid.push($game_party.members[@front_window.index].id)
      $game_party.remove_actor($game_party.members[@front_window.index].id)
    end

    if actor2
      $game_party.add_actor(actor2.id)
    end
    for i in 1..remove_actorid.size - 1
      $game_party.add_actor(remove_actorid)
    end

    @front_window.refresh
    @back_window.refresh
   
    @front_window.activate
    textwindow_visualize(3)
  end
  #--------------------------------------------------------------------------
  # ● ソート切り替え
  #--------------------------------------------------------------------------
  def change_sort
      $game_variables[WD_memberchange_ini::Sort_variable] += 1
      if $game_variables[WD_memberchange_ini::Sort_variable] >=
                         WD_memberchange_ini::Sort_series.size
        $game_variables[WD_memberchange_ini::Sort_variable] = 0
      end
      @back_window.refresh
      @status_window.refresh
      @sort_window.refresh
      @back_window.select(0) if WD_memberchange_ini::Sort_indexini
  end
  #--------------------------------------------------------------------------
  # ● 除籍の選択
  #--------------------------------------------------------------------------
  def select_eliminate
    @eliminate_window.visible = true
    @eliminate_window.select(1)
    @eliminate_window.activate
  end
  #--------------------------------------------------------------------------
  # ● 除籍の決定
  #--------------------------------------------------------------------------
  def ok_eliminate
    if @eliminate_window.index == 0
      actor = @back_window.data[@back_window.index]
      $game_switches[WD_memberchange_ini::Initial_switch + actor.id - 1] = false
      remove_equip(actor) if WD_memberchange_ini::Remove_equip2
      @back_window.refresh      
    end
    @back_window.activate
    @eliminate_window.visible = false
  end
  #--------------------------------------------------------------------------
  # ● 除籍のキャンセル
  #--------------------------------------------------------------------------
  def cancel_eliminate
    @back_window.activate
    @eliminate_window.visible = false
  end
  #--------------------------------------------------------------------------
  # ● 装備を外す
  #--------------------------------------------------------------------------
  def remove_equip(actor)
    if actor
      actor.change_equip_by_id(0, 0)
      actor.change_equip_by_id(1, 0)
      actor.change_equip_by_id(2, 0)
      actor.change_equip_by_id(3, 0)
      actor.change_equip_by_id(4, 0)
    end
  end
  #--------------------------------------------------------------------------
  # ● テキストウィンドウの表示切替
  #--------------------------------------------------------------------------
  def textwindow_visualize(timing)
    if WD_memberchange_ini::Txtwindow1_use
        if WD_memberchange_ini::Txtwindow1_timing == timing
          @text1_window.visible = false
        else
          @text1_window.visible = true
       end
    end
    if WD_memberchange_ini::Txtwindow2_use
      if WD_memberchange_ini::Txtwindow2_timing == timing
        @text2_window.visible = false
      else
        @text2_window.visible = true
      end
    end
    if WD_memberchange_ini::Txtwindow3_use
      if WD_memberchange_ini::Txtwindow3_timing == timing
        @text3_window.visible = false
      else
        @text3_window.visible = true
      end
    end
  end
end


#==============================================================================
# ■ Window_MemberChangeList
#------------------------------------------------------------------------------
#  アクターを選択するための共通ウィンドウクラスです。
#==============================================================================

class Window_MemberChangeList < Window_Selectable
  include WD_memberchange_commonmethod
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_reader   :data                 # アクターデータ
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize(x, y, width, height)
    super(x, y, width, height)
  end  
  #--------------------------------------------------------------------------
  # ● 項目数の取得
  #--------------------------------------------------------------------------
  def item_max
    @data ? @data.size : 1
  end
  #--------------------------------------------------------------------------
  # ● アイテムの取得
  #--------------------------------------------------------------------------
  def item
    @data && index >= 0 ? @data[index] : nil
  end
  #--------------------------------------------------------------------------
  # ● ヘルプウィンドウ更新メソッドの呼び出し
  #--------------------------------------------------------------------------
  def call_update_help
    update_help if active
  end
  #--------------------------------------------------------------------------
  # ● ヘルプテキスト更新
  #--------------------------------------------------------------------------
  def update_help
    if @status_window
      @status_window.set_item(item)
    end
  end  
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    make_item_list
    create_contents
    draw_all_items
  end
  #--------------------------------------------------------------------------
  # ● ステータスウィンドウの設定
  #--------------------------------------------------------------------------
  def status_window=(status_window)
    @status_window = status_window
  end
  #--------------------------------------------------------------------------
  # ● 下端パディングの更新
  #--------------------------------------------------------------------------
  def update_padding_bottom
    self.padding_bottom = padding
  end
  #--------------------------------------------------------------------------
  # ● X ボタン(Sort)が押されたときの処理
  #--------------------------------------------------------------------------
  def process_sort
    Sound.play_cursor
    Input.update
    call_handler(:sort)
  end
  #--------------------------------------------------------------------------
  # ● Y ボタン(除籍)が押されたときの処理
  #--------------------------------------------------------------------------
  def process_eliminate
    actor = @data[index]
    if actor == nil
      Sound.play_buzzer
    elsif $game_party.members.include?(actor)
      Sound.play_buzzer
    elsif WD_memberchange_ini::Fix_switch2[actor.id] != nil and
          $game_switches[WD_memberchange_ini::Fix_switch2[actor.id]] == true
      Sound.play_buzzer
    else
      Sound.play_ok
      Input.update
      deactivate
      call_handler(:eliminate)
    end
  end
  #--------------------------------------------------------------------------
  # ● 決定やキャンセルなどのハンドリング処理
  #--------------------------------------------------------------------------
  def process_handling
    super
    if active
      return process_sort   if handle?(:sort)   && Input.trigger?(:X)
      return process_eliminate  if handle?(:eliminate)   && Input.trigger?(:Y)
    end
  end
  #--------------------------------------------------------------------------
  # ● 選択項目の有効状態を取得
  #--------------------------------------------------------------------------
  def current_item_enabled?
    if @enabled[index]
      return true
    else
      return false
    end
  end
end


#==============================================================================
# ■ Window_FrontMember
#------------------------------------------------------------------------------
#  パーティから外すアクターを選択するウィンドウです。
#==============================================================================

class Window_FrontMember < Window_MemberChangeList
  include WD_memberchange_commonmethod
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    x = WD_memberchange_front_layout::Window_x
    y = WD_memberchange_front_layout::Window_y
    width = WD_memberchange_front_layout::Window_width
    height = WD_memberchange_front_layout::Window_height
    super(x, y, width, height)
    @data = []
    refresh
    activate
    select(0)
  end
  #--------------------------------------------------------------------------
  # ● 桁数の取得
  #--------------------------------------------------------------------------
  def col_max
    return WD_memberchange_front_layout::Window_col
  end  
  #--------------------------------------------------------------------------
  # ● アクターリストの作成
  #--------------------------------------------------------------------------
  def make_item_list
    @data = []
    $game_party.members.each do |actor|
      @data.push(actor)
    end
   
    @enabled = []
    @data.each do |actor|
      if WD_memberchange_ini::Fix_switch1[actor.id] != nil and
         $game_switches[WD_memberchange_ini::Fix_switch1[actor.id]]
        @enabled.push(false)
      else
        @enabled.push(true)
      end
    end
   
    if @data.size < WD_memberchange_ini::Party_max
      @data.push(nil)
      @enabled.push(true)
    end
  end
  #--------------------------------------------------------------------------
  # ● 項目の描画
  #--------------------------------------------------------------------------
  def draw_item(index)
    actor = @data[index]
    if actor
      rect = item_rect(index)
      rect.width -= 4

      x0 = rect.x
      y0 = rect.y
      enabled = @enabled[index]

      if WD_memberchange_front_layout::Faceview
        x = x0 + WD_memberchange_front_layout::Faceview_x
        y = y0 + WD_memberchange_front_layout::Faceview_y
        draw_actor_face(actor, x, y, enabled)
      end
      if WD_memberchange_front_layout::Charaview
        x = x0 + WD_memberchange_front_layout::Charaview_x
        y = y0 + WD_memberchange_front_layout::Charaview_y
        draw_character(actor.character_name, actor.character_index, x, y, enabled)
      end
      if WD_memberchange_front_layout::Stateview == true
        x = x0 + WD_memberchange_front_layout::Stateview_x
        y = y0 + WD_memberchange_front_layout::Stateview_y
        width = WD_memberchange_front_layout::Stateview_width
        draw_actor_icons(actor, x, y, width, enabled)
      end
      if WD_memberchange_front_layout::Nameview == true
        x = x0 + WD_memberchange_front_layout::Nameview_x
        y = y0 + WD_memberchange_front_layout::Nameview_y
        width = WD_memberchange_front_layout::Nameview_width
        draw_actor_name(actor, x, y, width, enabled)
      end
      if WD_memberchange_front_layout::Classview == true
        x = x0 + WD_memberchange_front_layout::Classview_x
        y = y0 + WD_memberchange_front_layout::Classview_y
        width = WD_memberchange_front_layout::Classview_width
        draw_actor_class(actor, x, y, width, enabled)
      end
       if WD_memberchange_front_layout::Nicknameview == true
        x = x0 + WD_memberchange_front_layout::Nicknameview_x
        y = y0 + WD_memberchange_front_layout::Nicknameview_y
        width = WD_memberchange_front_layout::Nicknameview_width
        draw_actor_nickname(actor, x, y, width, enabled)
      end
      if WD_memberchange_front_layout::Lvview == true
        x = x0 + WD_memberchange_front_layout::Lvview_x
        y = y0 + WD_memberchange_front_layout::Lvview_y
        width = WD_memberchange_front_layout::Lvview_width
        draw_actor_level(actor, x, y, width, enabled)
      end
      if WD_memberchange_front_layout::Hpgaugeview == true
        x = x0 + WD_memberchange_front_layout::Hpgaugeview_x
        y = y0 + WD_memberchange_front_layout::Hpgaugeview_y
        width = WD_memberchange_front_layout::Hpgaugeview_width
        draw_actor_hp(actor, x, y, width, enabled)
      end
      if WD_memberchange_front_layout::Mpgaugeview == true
        x = x0 + WD_memberchange_front_layout::Mpgaugeview_x
        y = y0 + WD_memberchange_front_layout::Mpgaugeview_y
        width = WD_memberchange_front_layout::Mpgaugeview_width
        draw_actor_mp(actor, x, y, width, enabled)
      end
      if WD_memberchange_front_layout::Tpview == true
        x = x0 + WD_memberchange_front_layout::Tpview_x
        y = y0 + WD_memberchange_front_layout::Tpview_y
        width = WD_memberchange_front_layout::Tpview_width
        draw_actor_tp(actor, x, y, width, enabled)
      end
      if WD_memberchange_front_layout::Parameterview0 == true
        x = x0 + WD_memberchange_front_layout::Parameterview0_x
        y = y0 + WD_memberchange_front_layout::Parameterview0_y
        width = WD_memberchange_front_layout::Parameterview0_width
        draw_actor_param(actor, x, y, 0, width, enabled)
      end
      if WD_memberchange_front_layout::Parameterview1 == true
        x = x0 + WD_memberchange_front_layout::Parameterview1_x
        y = y0 + WD_memberchange_front_layout::Parameterview1_y
        width = WD_memberchange_front_layout::Parameterview1_width
        draw_actor_param(actor, x, y, 1, width, enabled)
      end
      if WD_memberchange_front_layout::Parameterview2 == true
        x = x0 + WD_memberchange_front_layout::Parameterview2_x
        y = y0 + WD_memberchange_front_layout::Parameterview2_y
        width = WD_memberchange_front_layout::Parameterview2_width
        draw_actor_param(actor, x, y, 2, width, enabled)
      end
      if WD_memberchange_front_layout::Parameterview3 == true
        x = x0 + WD_memberchange_front_layout::Parameterview3_x
        y = y0 + WD_memberchange_front_layout::Parameterview3_y
        width = WD_memberchange_front_layout::Parameterview3_width
        draw_actor_param(actor, x, y, 3, width, enabled)
      end
      if WD_memberchange_front_layout::Parameterview4 == true
        x = x0 + WD_memberchange_front_layout::Parameterview4_x
        y = y0 + WD_memberchange_front_layout::Parameterview4_y
        width = WD_memberchange_front_layout::Parameterview4_width
        draw_actor_param(actor, x, y, 4, width, enabled)
      end
      if WD_memberchange_front_layout::Parameterview5 == true
        x = x0 + WD_memberchange_front_layout::Parameterview5_x
        y = y0 + WD_memberchange_front_layout::Parameterview5_y
        width = WD_memberchange_front_layout::Parameterview5_width
        draw_actor_param(actor, x, y, 5, width, enabled)
      end
      if WD_memberchange_front_layout::Parameterview6 == true
        x = x0 + WD_memberchange_front_layout::Parameterview6_x
        y = y0 + WD_memberchange_front_layout::Parameterview6_y
        width = WD_memberchange_front_layout::Parameterview6_width
        draw_actor_param(actor, x, y, 6, width, enabled)
      end
      if WD_memberchange_front_layout::Parameterview7 == true
        x = x0 + WD_memberchange_front_layout::Parameterview7_x
        y = y0 + WD_memberchange_front_layout::Parameterview7_y
        width = WD_memberchange_front_layout::Parameterview7_width
        draw_actor_param(actor, x, y, 7, width, enabled)
      end

    end
  end
  #--------------------------------------------------------------------------
  # ● ウィンドウ内容の作成
  #--------------------------------------------------------------------------
  def create_contents
    contents.dispose
    if contents_width > 0 && contents_height > 0
      self.contents = Bitmap.new(contents_width,
      [contents_height-999, row_max * (
    WD_memberchange_front_layout::Rect_height +
    WD_memberchange_front_layout::Rect_interval) -
    WD_memberchange_front_layout::Rect_interval].max)
    else
      self.contents = Bitmap.new(1, 1)
    end
  end
  #--------------------------------------------------------------------------
  # ● 先頭の行の取得
  #--------------------------------------------------------------------------
  def top_row
    oy / (WD_memberchange_front_layout::Rect_height +
          WD_memberchange_front_layout::Rect_interval)
  end
  #--------------------------------------------------------------------------
  # ● 先頭の行の設定
  #--------------------------------------------------------------------------
  def top_row=(row)
    row = 0 if row < 0
    row = row_max - 1 if row > row_max - 1
    self.oy = row * (WD_memberchange_front_layout::Rect_height +
                     WD_memberchange_front_layout::Rect_interval)
  end
  #--------------------------------------------------------------------------
  # ● 1 ページに表示できる行数の取得
  #--------------------------------------------------------------------------
  def page_row_max
    return (height - padding*2 + WD_memberchange_front_layout::Rect_interval) /
    (WD_memberchange_front_layout::Rect_height +
     WD_memberchange_front_layout::Rect_interval)
  end
  #--------------------------------------------------------------------------
  # ● 項目を描画する矩形の取得
  #--------------------------------------------------------------------------
  def item_rect(index)
    rect = Rect.new
    rect.width = WD_memberchange_front_layout::Rect_width
    rect.height = WD_memberchange_front_layout::Rect_height
    rect.x = index % col_max *
             (rect.width + WD_memberchange_front_layout::Rect_spacing)
    rect.y = index / col_max *
             (rect.height + WD_memberchange_front_layout::Rect_interval)
    rect
  end
  #--------------------------------------------------------------------------
  # ● キャンセルボタンが押されたときの処理
  #--------------------------------------------------------------------------
  def process_cancel
    if $game_party.members.size > 0
      Sound.play_cancel
      Input.update
      deactivate
      call_cancel_handler
    else
      Sound.play_buzzer
    end
  end
end

#==============================================================================
# ■ Window_BackMember
#------------------------------------------------------------------------------
#  パーティに加えるアクターを選択するウィンドウです。
#==============================================================================

class Window_BackMember < Window_MemberChangeList
  include WD_memberchange_commonmethod
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    x = WD_memberchange_back_layout::Window_x
    y = WD_memberchange_back_layout::Window_y
    width = WD_memberchange_back_layout::Window_width
    height = WD_memberchange_back_layout::Window_height
    super(x, y, width, height + 46)
    @data = []
    refresh
    select(0)
  end
  #--------------------------------------------------------------------------
  # ● 桁数の取得
  #--------------------------------------------------------------------------
  def col_max
    return WD_memberchange_back_layout::Window_col
  end  
  #--------------------------------------------------------------------------
  # ● アクターリストの作成
  #--------------------------------------------------------------------------
  def make_item_list
    data_buf = []
    $data_actors.each do |actor|
      if actor
        if $game_switches[WD_memberchange_ini::Initial_switch+actor.id-1]
          data_buf.push($game_actors[actor.id])
        end
      end
    end
    case WD_memberchange_ini::Sort_series[
         $game_variables[WD_memberchange_ini::Sort_variable]]
    when 0
      @data = data_buf.sort_by{
               |actor| actor.id}
    when 1
      @data = data_buf.sort_by{
               |actor| WD_memberchange_ini::Assignsort_array[actor.id-1]}
    when 2
      @data = data_buf.sort_by{
               |actor| -actor.level*10000+actor.id}
    when 3
      @data = data_buf.sort_by{
               |actor| -actor.mhp*10000+actor.id}
    when 4
      @data = data_buf.sort_by{
               |actor| -actor.mmp*10000+actor.id}
    when 5
      @data = data_buf.sort_by{
               |actor| -actor.atk*10000+actor.id}
    when 6
      @data = data_buf.sort_by{
               |actor| -actor.def*10000+actor.id}
    when 7
      @data = data_buf.sort_by{
               |actor| -actor.mat*10000+actor.id}
    when 8
      @data = data_buf.sort_by{
               |actor| -actor.mdf*10000+actor.id}
    when 9
      @data = data_buf.sort_by{
               |actor| -actor.agi*10000+actor.id}
    when 10
      @data = data_buf.sort_by{
               |actor| -actor.luk*10000+actor.id}
    when 11
      @data = data_buf.sort_by{
               |actor| actor.class_id*10000+actor.id}
    end


    @enabled = []
    @data.each do |actor|
      if $game_party.members.include?(actor)
        @enabled.push(false)
      else     
        @enabled.push(true)
      end
    end
   
    if WD_memberchange_ini::Remove_only
      @data.push(nil)
      @enabled.push(true)
    end
  end
  #--------------------------------------------------------------------------
  # ● 項目の描画
  #--------------------------------------------------------------------------
  def draw_item(index)
    actor = @data[index]
    if actor
      rect = item_rect(index)
      rect.width -= 4

      x0 = rect.x
      y0 = rect.y
      enabled = @enabled[index]

      if WD_memberchange_back_layout::Faceview
        x = x0 + WD_memberchange_back_layout::Faceview_x
        y = y0 + WD_memberchange_back_layout::Faceview_y
        draw_actor_face(actor, x, y, enabled)
      end
      if WD_memberchange_back_layout::Charaview
        x = x0 + WD_memberchange_back_layout::Charaview_x
        y = y0 + WD_memberchange_back_layout::Charaview_y
        draw_character(actor.character_name, actor.character_index, x, y, enabled)
      end
      if WD_memberchange_back_layout::Stateview == true
        x = x0 + WD_memberchange_back_layout::Stateview_x
        y = y0 + WD_memberchange_back_layout::Stateview_y
        width = WD_memberchange_back_layout::Stateview_width
        draw_actor_icons(actor, x, y, width, enabled)
      end
      if WD_memberchange_back_layout::Nameview == true
        x = x0 + WD_memberchange_back_layout::Nameview_x
        y = y0 + WD_memberchange_back_layout::Nameview_y
        width = WD_memberchange_back_layout::Nameview_width
        draw_actor_name(actor, x, y, width, enabled)
      end
      if WD_memberchange_back_layout::Classview == true
        x = x0 + WD_memberchange_back_layout::Classview_x
        y = y0 + WD_memberchange_back_layout::Classview_y
        width = WD_memberchange_back_layout::Classview_width
        draw_actor_class(actor, x, y, width, enabled)
      end
       if WD_memberchange_back_layout::Nicknameview == true
        x = x0 + WD_memberchange_back_layout::Nicknameview_x
        y = y0 + WD_memberchange_back_layout::Nicknameview_y
        width = WD_memberchange_back_layout::Nicknameview_width
        draw_actor_nickname(actor, x, y, width, enabled)
      end
      if WD_memberchange_back_layout::Lvview == true
        x = x0 + WD_memberchange_back_layout::Lvview_x
        y = y0 + WD_memberchange_back_layout::Lvview_y
        width = WD_memberchange_back_layout::Lvview_width
        draw_actor_level(actor, x, y, width, enabled)
      end
      if WD_memberchange_back_layout::Hpgaugeview == true
        x = x0 + WD_memberchange_back_layout::Hpgaugeview_x
        y = y0 + WD_memberchange_back_layout::Hpgaugeview_y
        width = WD_memberchange_back_layout::Hpgaugeview_width
        draw_actor_hp(actor, x, y, width, enabled)
      end
      if WD_memberchange_back_layout::Mpgaugeview == true
        x = x0 + WD_memberchange_back_layout::Mpgaugeview_x
        y = y0 + WD_memberchange_back_layout::Mpgaugeview_y
        width = WD_memberchange_back_layout::Mpgaugeview_width
        draw_actor_mp(actor, x, y, width, enabled)
      end
      if WD_memberchange_back_layout::Tpview == true
        x = x0 + WD_memberchange_back_layout::Tpview_x
        y = y0 + WD_memberchange_back_layout::Tpview_y
        width = WD_memberchange_back_layout::Tpview_width
        draw_actor_tp(actor, x, y, width, enabled)
      end
      if WD_memberchange_back_layout::Parameterview0 == true
        x = x0 + WD_memberchange_back_layout::Parameterview0_x
        y = y0 + WD_memberchange_back_layout::Parameterview0_y
        width = WD_memberchange_back_layout::Parameterview0_width
        draw_actor_param(actor, x, y, 0, width, enabled)
      end
      if WD_memberchange_back_layout::Parameterview1 == true
        x = x0 + WD_memberchange_back_layout::Parameterview1_x
        y = y0 + WD_memberchange_back_layout::Parameterview1_y
        width = WD_memberchange_back_layout::Parameterview1_width
        draw_actor_param(actor, x, y, 1, width, enabled)
      end
      if WD_memberchange_back_layout::Parameterview2 == true
        x = x0 + WD_memberchange_back_layout::Parameterview2_x
        y = y0 + WD_memberchange_back_layout::Parameterview2_y
        width = WD_memberchange_back_layout::Parameterview2_width
        draw_actor_param(actor, x, y, 2, width, enabled)
      end
      if WD_memberchange_back_layout::Parameterview3 == true
        x = x0 + WD_memberchange_back_layout::Parameterview3_x
        y = y0 + WD_memberchange_back_layout::Parameterview3_y
        width = WD_memberchange_back_layout::Parameterview3_width
        draw_actor_param(actor, x, y, 3, width, enabled)
      end
      if WD_memberchange_back_layout::Parameterview4 == true
        x = x0 + WD_memberchange_back_layout::Parameterview4_x
        y = y0 + WD_memberchange_back_layout::Parameterview4_y
        width = WD_memberchange_back_layout::Parameterview4_width
        draw_actor_param(actor, x, y, 4, width, enabled)
      end
      if WD_memberchange_back_layout::Parameterview5 == true
        x = x0 + WD_memberchange_back_layout::Parameterview5_x
        y = y0 + WD_memberchange_back_layout::Parameterview5_y
        width = WD_memberchange_back_layout::Parameterview5_width
        draw_actor_param(actor, x, y, 5, width, enabled)
      end
      if WD_memberchange_back_layout::Parameterview6 == true
        x = x0 + WD_memberchange_back_layout::Parameterview6_x
        y = y0 + WD_memberchange_back_layout::Parameterview6_y
        width = WD_memberchange_back_layout::Parameterview6_width
        draw_actor_param(actor, x, y, 6, width, enabled)
      end
      if WD_memberchange_back_layout::Parameterview7 == true
        x = x0 + WD_memberchange_back_layout::Parameterview7_x
        y = y0 + WD_memberchange_back_layout::Parameterview7_y
        width = WD_memberchange_back_layout::Parameterview7_width
        draw_actor_param(actor, x, y, 7, width, enabled)
      end

    end
  end
  #--------------------------------------------------------------------------
  # ● ウィンドウ内容の作成
  #--------------------------------------------------------------------------
  def create_contents
    contents.dispose
    if contents_width > 0 && contents_height > 0
      self.contents = Bitmap.new(contents_width,
      [contents_height-999, row_max * (
    WD_memberchange_back_layout::Rect_height +
    WD_memberchange_back_layout::Rect_interval) -
    WD_memberchange_back_layout::Rect_interval].max)
    else
      self.contents = Bitmap.new(1, 1)
    end
  end
  #--------------------------------------------------------------------------
  # ● 先頭の行の取得
  #--------------------------------------------------------------------------
  def top_row
    oy / (WD_memberchange_back_layout::Rect_height +
          WD_memberchange_back_layout::Rect_interval)
  end
  #--------------------------------------------------------------------------
  # ● 先頭の行の設定
  #--------------------------------------------------------------------------
  def top_row=(row)
    row = 0 if row < 0
    row = row_max - 1 if row > row_max - 1
    self.oy = row * (WD_memberchange_back_layout::Rect_height +
                     WD_memberchange_back_layout::Rect_interval)
  end
  #--------------------------------------------------------------------------
  # ● 1 ページに表示できる行数の取得
  #--------------------------------------------------------------------------
  def page_row_max
    return (height - padding*2 + WD_memberchange_back_layout::Rect_interval) /
    (WD_memberchange_back_layout::Rect_height +
     WD_memberchange_back_layout::Rect_interval)
  end
  #--------------------------------------------------------------------------
  # ● 項目を描画する矩形の取得
  #--------------------------------------------------------------------------
  def item_rect(index)
    rect = Rect.new
    rect.width = WD_memberchange_back_layout::Rect_width
    rect.height = WD_memberchange_back_layout::Rect_height
    rect.x = index % col_max *
             (rect.width + WD_memberchange_back_layout::Rect_spacing)
    rect.y = index / col_max *
             (rect.height + WD_memberchange_back_layout::Rect_interval)
    rect
  end

end


#==============================================================================
# ■ Window_MemberChangeStatus
#------------------------------------------------------------------------------
#  アクターのステータスを表示するウィンドウです。
#==============================================================================

class Window_MemberChangeStatus < Window_Base
  include WD_memberchange_commonmethod
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    x = WD_memberchange_status_layout::Window_x
    y = WD_memberchange_status_layout::Window_y
    width = WD_memberchange_status_layout::Window_width
    height = WD_memberchange_status_layout::Window_height
    super(x, y, width, height)
    @actor = nil
    refresh
  end
  #--------------------------------------------------------------------------
  # ● アクターの設定
  #--------------------------------------------------------------------------
  def set_item(actor)
    return if @actor == actor
    @actor = actor
    refresh
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    contents.clear
    contents.font.size = 24

    if @actor != nil
      
      x0 = 0
      y0 = 0
      enabled = true
      actor = @actor
      
      if WD_memberchange_status_layout::Faceview
        x = x0 + WD_memberchange_status_layout::Faceview_x
        y = y0 + WD_memberchange_status_layout::Faceview_y
        draw_actor_face(actor, x, y, enabled)
      end
      if WD_memberchange_status_layout::Charaview
        x = x0 + WD_memberchange_status_layout::Charaview_x
        y = y0 + WD_memberchange_status_layout::Charaview_y
        draw_character(actor.character_name, actor.character_index, x, y, enabled)
      end
      if WD_memberchange_status_layout::Stateview == true
        x = x0 + WD_memberchange_status_layout::Stateview_x
        y = y0 + WD_memberchange_status_layout::Stateview_y
        width = WD_memberchange_status_layout::Stateview_width
        draw_actor_icons(actor, x, y, width, enabled)
      end
      if WD_memberchange_status_layout::Nameview == true
        x = x0 + WD_memberchange_status_layout::Nameview_x
        y = y0 + WD_memberchange_status_layout::Nameview_y
        width = WD_memberchange_status_layout::Nameview_width
        draw_actor_name(actor, x, y, width, enabled)
      end
      if WD_memberchange_status_layout::Classview == true
        x = x0 + WD_memberchange_status_layout::Classview_x
        y = y0 + WD_memberchange_status_layout::Classview_y
        width = WD_memberchange_status_layout::Classview_width
        draw_actor_class(actor, x, y, width, enabled)
      end
       if WD_memberchange_status_layout::Nicknameview == true
        x = x0 + WD_memberchange_status_layout::Nicknameview_x
        y = y0 + WD_memberchange_status_layout::Nicknameview_y
        width = WD_memberchange_status_layout::Nicknameview_width
        draw_actor_nickname(actor, x, y, width, enabled)
      end
      if WD_memberchange_status_layout::Lvview == true
        x = x0 + WD_memberchange_status_layout::Lvview_x
        y = y0 + WD_memberchange_status_layout::Lvview_y
        width = WD_memberchange_status_layout::Lvview_width
        draw_actor_level(actor, x, y, width, enabled)
      end
      if WD_memberchange_status_layout::Hpgaugeview == true
        x = x0 + WD_memberchange_status_layout::Hpgaugeview_x
        y = y0 + WD_memberchange_status_layout::Hpgaugeview_y
        width = WD_memberchange_status_layout::Hpgaugeview_width
        draw_actor_hp(actor, x, y, width, enabled)
      end
      if WD_memberchange_status_layout::Mpgaugeview == true
        x = x0 + WD_memberchange_status_layout::Mpgaugeview_x
        y = y0 + WD_memberchange_status_layout::Mpgaugeview_y
        width = WD_memberchange_status_layout::Mpgaugeview_width
        draw_actor_mp(actor, x, y, width, enabled)
      end
      if WD_memberchange_status_layout::Tpview == true
        x = x0 + WD_memberchange_status_layout::Tpview_x
        y = y0 + WD_memberchange_status_layout::Tpview_y
        width = WD_memberchange_status_layout::Tpview_width
        draw_actor_tp(actor, x, y, width, enabled)
      end
      if WD_memberchange_status_layout::Parameterview0 == true
        x = x0 + WD_memberchange_status_layout::Parameterview0_x
        y = y0 + WD_memberchange_status_layout::Parameterview0_y
        width = WD_memberchange_status_layout::Parameterview0_width
        draw_actor_param(actor, x, y, 0, width, enabled)
      end
      if WD_memberchange_status_layout::Parameterview1 == true
        x = x0 + WD_memberchange_status_layout::Parameterview1_x
        y = y0 + WD_memberchange_status_layout::Parameterview1_y
        width = WD_memberchange_status_layout::Parameterview1_width
        draw_actor_param(actor, x, y, 1, width, enabled)
      end
      if WD_memberchange_status_layout::Parameterview2 == true
        x = x0 + WD_memberchange_status_layout::Parameterview2_x
        y = y0 + WD_memberchange_status_layout::Parameterview2_y
        width = WD_memberchange_status_layout::Parameterview2_width
        draw_actor_param(actor, x, y, 2, width, enabled)
      end
      if WD_memberchange_status_layout::Parameterview3 == true
        x = x0 + WD_memberchange_status_layout::Parameterview3_x
        y = y0 + WD_memberchange_status_layout::Parameterview3_y
        width = WD_memberchange_status_layout::Parameterview3_width
        draw_actor_param(actor, x, y, 3, width, enabled)
      end
      if WD_memberchange_status_layout::Parameterview4 == true
        x = x0 + WD_memberchange_status_layout::Parameterview4_x
        y = y0 + WD_memberchange_status_layout::Parameterview4_y
        width = WD_memberchange_status_layout::Parameterview4_width
        draw_actor_param(actor, x, y, 4, width, enabled)
      end
      if WD_memberchange_status_layout::Parameterview5 == true
        x = x0 + WD_memberchange_status_layout::Parameterview5_x
        y = y0 + WD_memberchange_status_layout::Parameterview5_y
        width = WD_memberchange_status_layout::Parameterview5_width
        draw_actor_param(actor, x, y, 5, width, enabled)
      end
      if WD_memberchange_status_layout::Parameterview6 == true
        x = x0 + WD_memberchange_status_layout::Parameterview6_x
        y = y0 + WD_memberchange_status_layout::Parameterview6_y
        width = WD_memberchange_status_layout::Parameterview6_width
        draw_actor_param(actor, x, y, 6, width, enabled)
      end
      if WD_memberchange_status_layout::Parameterview7 == true
        x = x0 + WD_memberchange_status_layout::Parameterview7_x
        y = y0 + WD_memberchange_status_layout::Parameterview7_y
        width = WD_memberchange_status_layout::Parameterview7_width
        draw_actor_param(actor, x, y, 7, width, enabled)
      end
      if WD_memberchange_status_layout::Equipview0 == true
        x = x0 + WD_memberchange_status_layout::Equipview0_x
        y = y0 + WD_memberchange_status_layout::Equipview0_y
        width = WD_memberchange_status_layout::Equipview0_width
        draw_equip_item(actor, x, y, 0, width, enabled)
      end
      if WD_memberchange_status_layout::Equipview1 == true
        x = x0 + WD_memberchange_status_layout::Equipview1_x
        y = y0 + WD_memberchange_status_layout::Equipview1_y
        width = WD_memberchange_status_layout::Equipview1_width
        draw_equip_item(actor, x, y, 1, width, enabled)
      end
      if WD_memberchange_status_layout::Equipview2 == true
        x = x0 + WD_memberchange_status_layout::Equipview2_x
        y = y0 + WD_memberchange_status_layout::Equipview2_y
        width = WD_memberchange_status_layout::Equipview2_width
        draw_equip_item(actor, x, y, 2, width, enabled)
      end
      if WD_memberchange_status_layout::Equipview3 == true
        x = x0 + WD_memberchange_status_layout::Equipview3_x
        y = y0 + WD_memberchange_status_layout::Equipview3_y
        width = WD_memberchange_status_layout::Equipview3_width
        draw_equip_item(actor, x, y, 3, width, enabled)
      end
      if WD_memberchange_status_layout::Equipview4 == true
        x = x0 + WD_memberchange_status_layout::Equipview4_x
        y = y0 + WD_memberchange_status_layout::Equipview4_y
        width = WD_memberchange_status_layout::Equipview4_width
        draw_equip_item(actor, x, y, 4, width, enabled)
      end
      if WD_memberchange_status_layout::Expview1 == true
        x = x0 + WD_memberchange_status_layout::Expview1_x
        y = y0 + WD_memberchange_status_layout::Expview1_y
        width = WD_memberchange_status_layout::Expview1_width
        draw_exp_info1(actor, x, y, width, enabled)
      end
      if WD_memberchange_status_layout::Expview2 == true
        x = x0 + WD_memberchange_status_layout::Expview2_x
        y = y0 + WD_memberchange_status_layout::Expview2_y
        width = WD_memberchange_status_layout::Expview2_width
        draw_exp_info2(actor, x, y, width, enabled)
      end


    end   
   
  end
end
  
class Window_MemberChangeSort < Window_Base
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    x = WD_memberchange_sort_layout::Window_x
    y = WD_memberchange_sort_layout::Window_y
    width = WD_memberchange_sort_layout::Window_width
    height = WD_memberchange_sort_layout::Window_height
    super(x, y, width, height)
    refresh
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    contents.clear
    contents.font.size = 24
   
    sortname = WD_memberchange_ini::Sort_names[
               $game_variables[WD_memberchange_ini::Sort_variable]]
    draw_text(0, 0, contents_width, line_height, sortname, 1)
   
  end
end

#==============================================================================
# ■ Window_MemberChangeEliminate
#------------------------------------------------------------------------------
#  アクター除籍の確認用ウィンドウです。
#==============================================================================

class Window_MemberChangeEliminate < Window_Selectable
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    x = WD_memberchange_eliminate_layout::Window_x
    y = WD_memberchange_eliminate_layout::Window_y
    width = WD_memberchange_eliminate_layout::Window_width
    height = WD_memberchange_eliminate_layout::Window_height
    super(x, y, width, height)
    @data = [WD_memberchange_ini::Eliminate_command1,
             WD_memberchange_ini::Eliminate_command2]
    refresh
    select(1)
  end
  #--------------------------------------------------------------------------
  # ● 桁数の取得
  #--------------------------------------------------------------------------
  def col_max
    return WD_memberchange_eliminate_layout::Window_col
  end
  #--------------------------------------------------------------------------
  # ● 項目数の取得
  #--------------------------------------------------------------------------
  def item_max
    return 2
  end
  #--------------------------------------------------------------------------
  # ● 項目の描画
  #--------------------------------------------------------------------------
  def draw_item(index)
    rect = item_rect_for_text(index)
    draw_text(rect.x, rect.y, contents_width, line_height, @data[index])
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    create_contents
    draw_all_items
  end
  #--------------------------------------------------------------------------
  # ● 決定ボタンが押されたときの処理
  #--------------------------------------------------------------------------
  def process_ok
    Input.update
    deactivate
    if index == 0
      Sound.play_ok
      call_ok_handler
    else
      Sound.play_cancel
      call_cancel_handler
    end
  end
end

#==============================================================================
# ■ Window_MemberChangeText
#------------------------------------------------------------------------------
#  テキストを表示するウィンドウです。
#==============================================================================

class Window_MemberChangeText < Window_Base
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize(x, y, width, height, text, align)
    @text = text
    @align = align
    super(x, y, width, height)
    refresh
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    contents.clear
    contents.font.size = 24
    text = (@text).split(/\n/)
    for i in 0...text.size
      draw_text(0, line_height*i, contents_width, line_height, text, @align)
    end
  end
end
[/pre]

评分

参与人数 1星屑 +100 收起 理由
丿梁丶小柒 + 100 我很赞同

查看全部评分

- -作图太麻烦了,又是PS又是素材的
还不如玩游戏实际- -嗯嗯,娱乐就好!!

=====================
神马都简单,但是需要时间&精力,虽然我时间很多,但是专注一样东西的精力- -
====================
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部