设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1022|回复: 4
打印 上一主题 下一主题

[已经解决] 请教装备窗口人物BUFF图标位置如何移动(已经解决)

[复制链接]

Lv2.观梦者

梦石
0
星屑
468
在线时间
132 小时
注册时间
2016-6-15
帖子
151
跳转到指定楼层
1
发表于 2017-3-8 00:16:41 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 CHAOSCLOUD 于 2017-3-8 12:51 编辑

如图显示,在角色装备栏打开以后,倘若身上有个buff图标则会挡住名字。是否可以在脚本里修正图标的位置。
因为在我的工程里有个唯一道具,装备之后会附加一个buff图标到角色身上方便确认该道具在谁身上。而角色名字超过3个字符则最后一个字就如图这样被遮挡了。在不改名字长度和保持状态图标存在的前提下有修改方案否?诚心求问

3.8日更新截图。1楼说不是原始界面的,我确实用了一个装备扩展插件_(:зゝ∠)_谢谢提醒,当时测试如何关闭重量系统
RUBY 代码复制
  1. #==============================================================================
  2. #  ■装備拡張 for RGSS3 Ver1.10
  3. # □author kure
  4. #
  5. # 呼び出し方法  SceneManager.call(Scene_Equip)
  6. #==============================================================================
  7. module KURE
  8.   module ExEquip
  9.   #画面の表示設定
  10.   #装備品のステータス補正表示(0=表示しない 1=表示する)
  11.   VIEW_EQUIP_STATUS = 1
  12.  
  13.   #装備スロット欄の表示設定----------------------------------------------------
  14.   #装備スロット表示名を設定(EQUIP_SLOT_NAME = [スロット5表示名,…]
  15.   EQUIP_SLOT_NAME = ["兵书","坐骑","军印"]
  16.  
  17.   #装備スロットを設定
  18.   #通常のスロット
  19.   EQUIP_SLOT = [0,1,2,3,4,5,6]
  20.   #二刀流のスロット
  21.   EQUIP_SLOT_DUAL = [0,0,2,3,4,5,6]
  22.  
  23.   #ステータス欄の表示設定-------------------------------------------------------
  24.   #ステータス変化に表示する文字列
  25.   #Vocab_Ex1 = [命中率,回避率,会心率]
  26.   Vocab_Ex1 = ["命中率","回避率","会心率"]
  27.  
  28.   #装備重量システム-------------------------------------------------------------
  29.   #装備重量システムを利用する(0=利用しない 1=利用する)
  30.   USE_WEIGHT_SYSTEM = 0
  31.  
  32.   #最大装備重量設定------------------------------------------------------------
  33.   #基礎最大重量(全てのアクターが最低限もてる重量を設定します)
  34.   MAX_WEIGHT_BASE = 50
  35.   #レベル補正(レベルが上がるごとに増える最大重量を設定します)
  36.   MAX_WEIGHT_Lv = 2
  37.  
  38.   #アクター毎、装備重量補正
  39.   #MAX_WEIGHT_ACTOR = [アクターID1,アクターID2,アクターID3,…]
  40.   #MAX_WEIGHT_ACTOR = [20,20,20,20,20,20,20,20,20,20]
  41.    MAX_WEIGHT_ACTOR = [0]
  42.   #職業ごとの装備重量補正
  43.   #MAX_WEIGHT_JOB = [職業ID1,職業ID2,職業ID3,…]
  44.   #MAX_WEIGHT_JOB = [10,10,10,10,10,10,10,10,10,10]
  45.   MAX_WEIGHT_JOB = [0]
  46.   #スキル補正
  47.   #MAX_WEIGHT_SKILL = [[スキルID,重量補正],[スキルID,重量補正],…]
  48.   #MAX_WEIGHT_SKILL = [[1,10],[3,5],[84,100]]
  49.   MAX_WEIGHT_SKILL = [[1,0],[3,0],[84,0]]
  50.   #装備重量の名称
  51.   WEIGHT_NAME = "重量"
  52.  
  53.   #重量0のアイテムの重量表示(0=表示する 1=表示しない)
  54.   WEIGHT_0_ITEM = 1
  55.  
  56.   end
  57. end
  58.  
  59. #==============================================================================
  60. # ■ RPG::BaseItem
  61. #==============================================================================
  62. class RPG::BaseItem
  63.   #--------------------------------------------------------------------------
  64.   # ● 装備重量の定義(追加定義)
  65.   #--------------------------------------------------------------------------  
  66.   def weight
  67.     cheack_note = @note
  68.     cheack_note.match(/^<装備重量\s?(\d+)>/)
  69.     if $1 == nil
  70.       return 0   
  71.     else
  72.       return type = $1.to_i
  73.     end   
  74.   end
  75.   #--------------------------------------------------------------------------
  76.   # ● 装備重量の定義(追加定義)
  77.   #--------------------------------------------------------------------------  
  78.   def gain_weight  
  79.     cheack_note = @note
  80.     cheack_note.match(/^<最大重量増加\s?(\d+)>/)
  81.     if $1 == nil
  82.       return 0   
  83.     else
  84.       return type = $1.to_i
  85.     end  
  86.   end
  87. end
  88.  
  89. #==============================================================================
  90. # ■ RPG::EquipItem(再定義)
  91. #==============================================================================
  92. class RPG::EquipItem < RPG::BaseItem
  93.   #--------------------------------------------------------------------------
  94.   # ● 装備タイプの定義(再定義)
  95.   #--------------------------------------------------------------------------  
  96.   def etype_id
  97.     if @note != ""
  98.       cheack_note = @note
  99.       cheack_note.match(/^<装備タイプ\s?(\d+)>/)
  100.       if $1 == nil
  101.         return @etype_id   
  102.       else
  103.         return type = $1.to_i
  104.       end
  105.     else
  106.       return @etype_id
  107.     end
  108.   end
  109.   #--------------------------------------------------------------------------
  110.   # ● 装備タイプの定義(再定義)
  111.   #--------------------------------------------------------------------------  
  112.   def etype_id=(etype_id)
  113.     @etype_id = etype_id
  114.   end
  115. end
  116.  
  117. #==============================================================================
  118. # ■ Game_BaseItem(追加定義)
  119. #==============================================================================
  120. class Game_BaseItem
  121.   def id
  122.     @item_id
  123.   end
  124. end
  125.  
  126. #==============================================================================
  127. # ■ Game_Actor
  128. #==============================================================================
  129. class Game_Actor < Game_Battler
  130.   #--------------------------------------------------------------------------
  131.   # ● 装備スロットの配列を取得(再定義)
  132.   #--------------------------------------------------------------------------
  133.   def equip_slots
  134.     return KURE::ExEquip::EQUIP_SLOT_DUAL if dual_wield?
  135.     return KURE::ExEquip::EQUIP_SLOT  # 通常
  136.   end
  137.   #--------------------------------------------------------------------------
  138.   # ● 装備総重量(追加定義)
  139.   #--------------------------------------------------------------------------  
  140.   def all_weight
  141.     weight = 0
  142.       for i in [email]0..@equips.size[/email] - 1
  143.         #オブジェクトが存在している場合
  144.         if @equips[i].object != nil
  145.           if equip_slots[i] == 0
  146.             weight = weight + $data_weapons[@equips[i].id].weight
  147.           else
  148.             weight = weight + $data_armors[@equips[i].id].weight
  149.           end
  150.         end
  151.       end
  152.     return weight
  153.   end
  154.   #--------------------------------------------------------------------------
  155.   # ● 重量増加量(追加定義)
  156.   #--------------------------------------------------------------------------  
  157.   def all_gain_weight
  158.     gain_weight = 0
  159.       for i in [email]0..@equips.size[/email] - 1
  160.         #オブジェクトが存在している場合
  161.         if @equips[i].object != nil
  162.           if equip_slots[i] == 0
  163.             gain_weight = gain_weight + $data_weapons[@equips[i].id].gain_weight
  164.           else
  165.             gain_weight = gain_weight + $data_armors[@equips[i].id].gain_weight
  166.           end
  167.         end
  168.       end
  169.     return gain_weight   
  170.   end
  171.   #--------------------------------------------------------------------------
  172.   # ● 重量最大量(追加定義)
  173.   #--------------------------------------------------------------------------  
  174.   def max_weight
  175.     max_weight = 0
  176.     #追加重量
  177.     plus_weight = all_gain_weight
  178.     #基礎値
  179.     max_weight = max_weight + plus_weight + KURE::ExEquip::MAX_WEIGHT_BASE + KURE::ExEquip::MAX_WEIGHT_Lv * @level
  180.     #アクター補正
  181.     if KURE::ExEquip::MAX_WEIGHT_ACTOR[@actor_id] != nil
  182.       max_weight = max_weight + KURE::ExEquip::MAX_WEIGHT_ACTOR[@actor_id]
  183.     end
  184.     #職業補正
  185.     if KURE::ExEquip::MAX_WEIGHT_JOB[@class_id] != nil
  186.       max_weight = max_weight + KURE::ExEquip::MAX_WEIGHT_JOB[@class_id]
  187.     end   
  188.     #スキル補正を加算
  189.     for i in 0..KURE::ExEquip::MAX_WEIGHT_SKILL.size-1
  190.       if KURE::ExEquip::MAX_WEIGHT_SKILL[i] != nil
  191.         #スキルを設定していればスキルを保存
  192.         cheack_skill = $data_skills[KURE::ExEquip::MAX_WEIGHT_SKILL[i][0]]
  193.         #念のためnilではないか確認
  194.         if cheack_skill != nil
  195.           #スキルを覚えていれば補正値を加算
  196.           if skill_learn?(cheack_skill)
  197.             if KURE::ExEquip::MAX_WEIGHT_SKILL[i][1] != nil
  198.             max_weight = max_weight + KURE::ExEquip::MAX_WEIGHT_SKILL[i][1]
  199.             end
  200.           end  
  201.         end
  202.       end
  203.     end
  204.     return max_weight
  205.   end
  206. end
  207.  
  208. #==============================================================================
  209. # ■ Scene_Equip(再定義)
  210. #------------------------------------------------------------------------------
  211. #  装備画面の処理を行うクラスです。
  212. #==============================================================================
  213. class Scene_Equip < Scene_MenuBase
  214.   #--------------------------------------------------------------------------
  215.   # ● 開始処理
  216.   #--------------------------------------------------------------------------
  217.   def start
  218.     super
  219.     @max_weight = @actor.max_weight
  220.  
  221.     create_help_window
  222.     create_small_status_window
  223.     create_command_window
  224.     create_slot_window
  225.     create_status_window
  226.     create_item_window
  227.  
  228.     @save_item = 0
  229.   end
  230.   #--------------------------------------------------------------------------
  231.   # ● コマンドウィンドウの作成
  232.   #--------------------------------------------------------------------------
  233.   def create_command_window
  234.     @command_window = Window_Ex_EquipCommand.new(0,@help_window.height + @small_status_window.height, @small_status_window.width)
  235.     @command_window.viewport = @viewport
  236.     @command_window.help_window = @help_window
  237.     @command_window.set_handler(:equip,    method(:command_equip))
  238.     @command_window.set_handler(:optimize, method(:command_optimize))
  239.     @command_window.set_handler(:clear,    method(:command_clear))
  240.     @command_window.set_handler(:cancel,   method(:return_scene))
  241.     @command_window.set_handler(:pagedown, method(:next_actor))
  242.     @command_window.set_handler(:pageup,   method(:prev_actor))
  243.     @command_window.activate
  244.   end
  245.   #--------------------------------------------------------------------------
  246.   # ● スロットウィンドウの作成
  247.   #--------------------------------------------------------------------------
  248.   def create_slot_window
  249.     @slot_window = Window_Ex_EquipSlot.new(0, @command_window.height + @help_window.height + 120, 305,Graphics.height - @command_window.height - @help_window.height - 120)
  250.     @slot_window.viewport = @viewport
  251.     @slot_window.help_window = @help_window
  252.     @slot_window.status_window = @status_window
  253.     @slot_window.actor = @actor
  254.     @slot_window.set_handler(:ok,       method(:on_slot_ok))
  255.     @slot_window.set_handler(:cancel,   method(:on_slot_cancel))
  256.     @slot_window.set_handler(:pagedown, method(:next_actor))
  257.     @slot_window.set_handler(:pageup,   method(:prev_actor))
  258.     @slot_window.deactivate
  259.   end
  260.   #--------------------------------------------------------------------------
  261.   # ● ステータスウィンドウの作成
  262.   #--------------------------------------------------------------------------
  263.   def create_status_window
  264.     @status_window = Window_Ex_EquipStatus.new(@slot_window.width, @help_window.height,Graphics.width - @slot_window.width,Graphics.height - @help_window.height)
  265.     @status_window.viewport = @viewport
  266.     @status_window.actor = @actor
  267.   end
  268.   #--------------------------------------------------------------------------
  269.   # ● ステータスウィンドウの作成
  270.   #--------------------------------------------------------------------------
  271.   def create_small_status_window
  272.     @small_status_window = Window_Equip_Small_Status.new(0,@help_window.height,305,120)
  273.     @small_status_window.viewport = @viewport
  274.     @small_status_window.weight = @actor.all_weight
  275.     @small_status_window.max_weight = @max_weight
  276.     @small_status_window.refresh
  277.   end
  278.   #--------------------------------------------------------------------------
  279.   # ● アイテムウィンドウの作成
  280.   #--------------------------------------------------------------------------
  281.   def create_item_window
  282.     @item_window = Window_Ex_EquipItem.new(0,@command_window.height +  @help_window.height + 120, 305,Graphics.height - @command_window.height - @help_window.height - 120)
  283.     @item_window.viewport = @viewport
  284.     @item_window.help_window = @help_window
  285.     @item_window.status_window = @status_window
  286.     @item_window.actor = @actor
  287.     @item_window.set_handler(:ok,     method(:on_item_ok))
  288.     @item_window.set_handler(:cancel, method(:on_item_cancel))
  289.     @slot_window.item_window = @item_window
  290.     @item_window.visible = false
  291.     @item_window.weight = @actor.all_weight
  292.     @item_window.max_weight = @max_weight
  293.   end
  294.   #--------------------------------------------------------------------------
  295.   # ● フレーム更新
  296.   #--------------------------------------------------------------------------
  297.   def update
  298.     update_basic
  299.     update_ex_status_window
  300.   end
  301.   #--------------------------------------------------------------------------
  302.   # ● フレーム更新
  303.   #--------------------------------------------------------------------------
  304.   def update_ex_status_window
  305.     if @item_window.visible == true
  306.       if  @item_window.item != @save_item
  307.         @save_item = @item_window.item
  308.         temp_actor = Marshal.load(Marshal.dump(@actor))
  309.         temp_actor.force_change_equip(@item_window.slot_id, @save_item)
  310.         @status_window.set_temp_actor(temp_actor)
  311.         @status_window.set_select_item2(@save_item)
  312.         @status_window.refresh
  313.       end
  314.     end
  315.   end
  316.   #--------------------------------------------------------------------------
  317.   # ● コマンド[装備変更]
  318.   #--------------------------------------------------------------------------
  319.   def command_equip
  320.     slot_window_set_focus
  321.   end
  322.   #--------------------------------------------------------------------------
  323.   # ● コマンド[全て外す]
  324.   #--------------------------------------------------------------------------
  325.   def command_clear
  326.     Sound.play_equip
  327.     @actor.clear_equipments
  328.     @status_window.refresh
  329.     @slot_window.refresh
  330.     @command_window.activate
  331.     if KURE::ExEquip::USE_WEIGHT_SYSTEM == 1
  332.       update_weight     
  333.     end
  334.   end
  335.   #--------------------------------------------------------------------------
  336.   # ● スロット[決定]
  337.   #--------------------------------------------------------------------------
  338.   def on_slot_ok
  339.     @save_item = 0
  340.     @slot_window.visible = false
  341.     @item_window.visible = true
  342.     @status_window.draw_index = 1
  343.     @status_window.set_select_item(@slot_window.index)
  344.  
  345.     #装備アイテムがあれば重量を渡す
  346.     if @actor.equips[@slot_window.index] != nil
  347.       @item_window.chage_item_weight = @actor.equips[@slot_window.index].weight
  348.       @item_window.chaged_item_gain_weight = @actor.equips[@slot_window.index].gain_weight
  349.     else
  350.       @item_window.chage_item_weight = 0
  351.       @item_window.chaged_item_gain_weight = 0
  352.     end
  353.     update_weight
  354.  
  355.     @item_window.refresh
  356.     @slot_window.deactivate
  357.     @item_window.activate
  358.     @item_window.select(0)
  359.   end
  360.   #--------------------------------------------------------------------------
  361.   # ● スロット[キャンセル]
  362.   #--------------------------------------------------------------------------
  363.   def on_slot_cancel
  364.     @slot_window.unselect
  365.     @slot_window.deactivate
  366.     @command_window.activate
  367.     @command_window.select(0)
  368.   end
  369.   #--------------------------------------------------------------------------
  370.   # ● アイテム[決定]
  371.   #--------------------------------------------------------------------------
  372.   def on_item_ok
  373.     Sound.play_equip
  374.     index = @slot_window.index
  375.     @actor.change_equip(@slot_window.index, @item_window.item)
  376.  
  377.     #二刀流両手剣問題対応
  378.     if @actor.dual_wield?
  379.       if @slot_window.index == 0
  380.         @actor.change_equip(1, nil) if @actor.features_set(54).include?(1)
  381.       elsif @slot_window.index == 1
  382.         @actor.change_equip(0, nil) if @actor.features_set(54).include?(1)
  383.       end
  384.     end
  385.  
  386.     @item_window.chaged_item_gain_weight = 0
  387.     @status_window.draw_index = 0
  388.     slot_window_set_focus
  389.     delete_plus_status
  390.     @slot_window.index = index
  391.     update_weight
  392.   end
  393.   #--------------------------------------------------------------------------
  394.   # ● アイテム[キャンセル]
  395.   #--------------------------------------------------------------------------
  396.   def on_item_cancel
  397.     @status_window.draw_index = 0
  398.     index = @slot_window.index
  399.     slot_window_set_focus
  400.     @slot_window.index = index
  401.     delete_plus_status
  402.   end
  403.   #--------------------------------------------------------------------------
  404.   # ● アクターの切り替え
  405.   #--------------------------------------------------------------------------
  406.   def on_actor_change
  407.     update_weight   
  408.     @status_window.actor = @actor
  409.     @slot_window.actor = @actor
  410.     @item_window.actor = @actor
  411.     @command_window.activate
  412.     @command_window.select(0)
  413.     @slot_windowdeactivate
  414.     @slot_window.unselect
  415.   end
  416.   #--------------------------------------------------------------------------
  417.   # ● ステータスウィンドウ項目消去
  418.   #--------------------------------------------------------------------------
  419.   def delete_plus_status
  420.     @status_window.set_temp_actor(nil)
  421.     @status_window.set_select_item(nil)
  422.     @status_window.set_select_item2(nil)
  423.     @status_window.refresh   
  424.   end
  425.   #--------------------------------------------------------------------------
  426.   # ● スロットウィンドウにカーソルセット
  427.   #--------------------------------------------------------------------------
  428.   def slot_window_set_focus
  429.     @item_window.visible = false
  430.     @item_window.unselect
  431.     @item_window.refresh
  432.  
  433.     @slot_window.visible = true
  434.     @slot_window.activate
  435.     @slot_window.select(0)
  436.     @slot_window.refresh
  437.  
  438.     @command_window.unselect
  439.     @command_window.deactivate
  440.   end
  441.   #--------------------------------------------------------------------------
  442.   # ● 装備重量更新
  443.   #--------------------------------------------------------------------------  
  444.   def update_weight
  445.     @max_weight = @actor.max_weight
  446.     @small_status_window.weight = @actor.all_weight
  447.     @small_status_window.max_weight = @max_weight
  448.     @item_window.weight = @actor.all_weight
  449.     @item_window.max_weight = @max_weight
  450.     @small_status_window.refresh     
  451.   end
  452. end
  453.  
  454. #==============================================================================
  455. # ■ Window_Ex_EquipSlot
  456. #==============================================================================
  457. class Window_Ex_EquipSlot < Window_EquipSlot
  458.   #--------------------------------------------------------------------------
  459.   # ● 公開インスタンス変数
  460.   #--------------------------------------------------------------------------
  461.   attr_reader   :status_window            # ステータスウィンドウ
  462.   attr_reader   :item_window              # アイテムウィンドウ
  463.   #--------------------------------------------------------------------------
  464.   # ● オブジェクト初期化
  465.   #--------------------------------------------------------------------------
  466.   def initialize(x, y, width, height)
  467.     @height = height
  468.     super(x, y, width)
  469.     @actor = nil
  470.     refresh
  471.   end
  472.   #--------------------------------------------------------------------------
  473.   # ● ウィンドウ高さの取得
  474.   #--------------------------------------------------------------------------
  475.   def window_height
  476.     return @height
  477.   end
  478.   #--------------------------------------------------------------------------
  479.   # ● 項目の描画
  480.   #--------------------------------------------------------------------------
  481.   def draw_item(index)
  482.     return unless @actor
  483.     rect = item_rect_for_text(index)
  484.     change_color(system_color, enable?(index))
  485.     if @actor.equip_slots[index] <= 4
  486.       draw_text(rect.x, rect.y, 75, line_height, slot_name(index))
  487.     else
  488.       draw_index = KURE::ExEquip::EQUIP_SLOT[index]
  489.       draw_text(rect.x, rect.y, 75, line_height, KURE::ExEquip::EQUIP_SLOT_NAME[draw_index-5])      
  490.     end  
  491.     draw_item_name(@actor.equips[index], rect.x + 75, rect.y, enable?(index))
  492.     if KURE::ExEquip::USE_WEIGHT_SYSTEM == 1
  493.       if @actor.equips[index] != nil
  494.         if @actor.equips[index].gain_weight != 0
  495.           change_color(power_up_color)
  496.           draw_text(rect.x, rect.y, rect.width, line_height, @actor.equips[index].gain_weight.to_s,2)         
  497.         else
  498.           if KURE::ExEquip::WEIGHT_0_ITEM == 1
  499.             if @actor.equips[index].weight != 0
  500.               change_color(power_down_color)
  501.               draw_text(rect.x, rect.y, rect.width, line_height, @actor.equips[index].weight.to_s,2)
  502.             end
  503.           else
  504.             change_color(power_down_color)
  505.             draw_text(rect.x, rect.y, rect.width, line_height, @actor.equips[index].weight.to_s,2)
  506.           end
  507.         end
  508.       end
  509.     end
  510.   end
  511.   #--------------------------------------------------------------------------
  512.   # ● リフレッシュ
  513.   #--------------------------------------------------------------------------
  514.   def refresh
  515.     #フォントの設定
  516.     last_font = contents.font.size
  517.     contents.font.size = 20
  518.  
  519.     contents.clear
  520.     create_contents
  521.     draw_all_items
  522.  
  523.     #フォントを戻す
  524.     contents.font.size = last_font
  525.   end
  526.   #--------------------------------------------------------------------------
  527.   # ● ヘルプテキスト更新
  528.   #--------------------------------------------------------------------------
  529.   def update_help
  530.     @help_window.clear
  531.     @help_window.set_item(item) if @help_window
  532.   end
  533. end
  534.  
  535.  
  536. #==============================================================================
  537. # ■ Window_Ex_EquipItem
  538. #==============================================================================
  539. class Window_Ex_EquipItem < Window_EquipItem
  540.   attr_reader   :status_window
  541.   attr_accessor :weight
  542.   attr_accessor :max_weight
  543.   attr_accessor :chage_item_weight
  544.   attr_accessor :chaged_item_gain_weight
  545.   #--------------------------------------------------------------------------
  546.   # ● オブジェクト初期化
  547.   #--------------------------------------------------------------------------
  548.   def initialize(x, y, width, height)
  549.     super(x, y, width, height)
  550.     @weight = 0
  551.     @max_weight = 0
  552.     @chage_item_weight = 0
  553.     @chaged_item_gain_weight = 0
  554.   end
  555.   #--------------------------------------------------------------------------
  556.   # ● 桁数の取得
  557.   #--------------------------------------------------------------------------
  558.   def col_max
  559.     return 1
  560.   end
  561.   #--------------------------------------------------------------------------
  562.   # ● →キー入力時動作
  563.   #--------------------------------------------------------------------------
  564.   def cursor_right(wrap = false)
  565.     if @status_window.draw_index == 1
  566.       @status_window.draw_index = 2
  567.     else
  568.       @status_window.draw_index = 1
  569.     end
  570.     @status_window.refresh
  571.   end
  572.   #--------------------------------------------------------------------------
  573.   # ● ←キー入力時操作
  574.   #--------------------------------------------------------------------------
  575.   def cursor_left(wrap = false)
  576.     if @status_window.draw_index == 1
  577.       @status_window.draw_index = 2
  578.     else
  579.       @status_window.draw_index = 1
  580.     end
  581.     @status_window.refresh
  582.   end
  583.   #--------------------------------------------------------------------------
  584.   # ● アイテムを許可状態で表示するかどうか
  585.   #--------------------------------------------------------------------------
  586.   def enable?(item)
  587.     #重量システムを利用時だけ判定を行う
  588.     if KURE::ExEquip::USE_WEIGHT_SYSTEM == 1
  589.       #アイテムが存在する時
  590.       if item !=nil
  591.         #総重量
  592.         total_weight = item.weight + @weight - @chage_item_weight
  593.         if total_weight > @max_weight - @chaged_item_gain_weight
  594.           return false
  595.         else
  596.           return true
  597.         end
  598.       else
  599.         if @weight > @max_weight - @chaged_item_gain_weight
  600.           return false
  601.         else
  602.           return true
  603.         end
  604.       end
  605.     end
  606.  
  607.     #重量システム非利用時であればtureを返す
  608.     return true
  609.   end
  610.   #--------------------------------------------------------------------------
  611.   # ● 桁数の取得
  612.   #--------------------------------------------------------------------------
  613.   def slot_id
  614.     return @slot_id
  615.   end
  616.   #--------------------------------------------------------------------------
  617.   # ● ヘルプテキスト更新
  618.   #--------------------------------------------------------------------------
  619.   def update_help
  620.     @help_window.set_item(item)
  621.   end
  622.   #--------------------------------------------------------------------------
  623.   # ● 項目の描画
  624.   #--------------------------------------------------------------------------
  625.   def draw_item(index)
  626.     item = @data[index]
  627.     if item
  628.       rect = item_rect(index)
  629.       rect.width -= 4
  630.       draw_item_name(item, rect.x, rect.y, enable?(item))
  631.       draw_item_number(rect, item)
  632.  
  633.       #重量システムを利用時は重量を表示する
  634.       if KURE::ExEquip::USE_WEIGHT_SYSTEM == 1
  635.         if item.gain_weight != 0
  636.           change_color(power_up_color)
  637.           draw_text(rect.x - 50, rect.y, rect.width - 30, line_height, item.gain_weight.to_s,2)         
  638.         else
  639.           #重量0をチェック
  640.           if KURE::ExEquip::WEIGHT_0_ITEM == 1
  641.             if item.weight != 0
  642.               change_color(power_down_color)
  643.               draw_text(rect.x - 50, rect.y, rect.width - 30, line_height, item.weight.to_s,2)
  644.             end
  645.           else
  646.             change_color(power_down_color)
  647.             draw_text(rect.x - 50, rect.y, rect.width - 30, line_height, item.weight.to_s,2)
  648.           end
  649.         end
  650.       end
  651.  
  652.     end
  653.   end
  654. end
  655.  
  656. #==============================================================================
  657. # ■ Window_Small_Status
  658. #------------------------------------------------------------------------------
  659. #  メニュー画面でパーティメンバーのステータスを表示するウィンドウです。
  660. #==============================================================================
  661. class Window_Equip_Small_Status < Window_Selectable
  662.   #--------------------------------------------------------------------------
  663.   # ● 公開インスタンス変数
  664.   #--------------------------------------------------------------------------
  665.   attr_reader   :pending_index            # 保留位置(並び替え用)
  666.   attr_accessor :weight
  667.   attr_accessor :max_weight
  668.   #--------------------------------------------------------------------------
  669.   # ● オブジェクト初期化
  670.   #--------------------------------------------------------------------------
  671.   def initialize(x, y,width,height)
  672.     super(x, y, width, height)
  673.     refresh
  674.   end
  675.   #--------------------------------------------------------------------------
  676.   # ● 項目の描画
  677.   #--------------------------------------------------------------------------
  678.   def draw_status
  679.     @actor = $game_party.menu_actor
  680.     draw_actor_face(@actor, 0, 0)
  681.     draw_actor_name(@actor, 130, line_height * 0)
  682.     draw_actor_icons(@actor, 230-50, line_height * 0)
  683.     draw_actor_hp(@actor, 130, line_height * 1)
  684.     draw_actor_mp(@actor, 130, line_height * 2)
  685.     if KURE::ExEquip::USE_WEIGHT_SYSTEM == 1
  686.       if @max_weight != nil
  687.         draw_actor_weight(@actor, 130, line_height * 3)
  688.       end
  689.     end
  690.   end
  691.   #--------------------------------------------------------------------------
  692.   # ● 装備重量の描画
  693.   #--------------------------------------------------------------------------
  694.   def draw_actor_weight(actor, x, y, width = 124)
  695.     weight_rate = @weight.to_f / @max_weight
  696.     draw_gauge(x, y, width, weight_rate, tp_gauge_color1, tp_gauge_color2)
  697.     change_color(system_color)
  698.     draw_text(x, y, 30, line_height, KURE::ExEquip::WEIGHT_NAME)
  699.     draw_current_and_max_values(x, y, width, @weight, @max_weight,
  700.     mp_color(actor), normal_color)
  701.   end
  702.   #--------------------------------------------------------------------------
  703.   # ● リフレッシュ
  704.   #--------------------------------------------------------------------------
  705.   def refresh
  706.     contents.clear
  707.     draw_status
  708.   end
  709. end
  710.  
  711. #==============================================================================
  712. # ■ Window_Ex_EquipStatus
  713. #------------------------------------------------------------------------------
  714. #  装備画面で、アクターの能力値変化を表示するウィンドウです。
  715. #==============================================================================
  716. class Window_Ex_EquipStatus < Window_EquipStatus
  717.   attr_accessor :draw_index
  718.   #--------------------------------------------------------------------------
  719.   # ◎ オブジェクト初期化
  720.   #--------------------------------------------------------------------------
  721.   def initialize(x, y,width,height)
  722.     @draw_index = 0
  723.     @width = width
  724.     @height = height
  725.     super(x, y)
  726.   end
  727.   #--------------------------------------------------------------------------
  728.   # ◎ ウィンドウ幅の取得
  729.   #--------------------------------------------------------------------------
  730.   def window_width
  731.     return @width
  732.   end
  733.   #--------------------------------------------------------------------------
  734.   # ◎ ウィンドウ高さの取得
  735.   #--------------------------------------------------------------------------
  736.   def window_height
  737.     return @height
  738.   end
  739.   #--------------------------------------------------------------------------
  740.   # ◎ リフレッシュ
  741.   #--------------------------------------------------------------------------
  742.   def refresh
  743.     contents.clear
  744.     #フォントの設定
  745.     last_font = contents.font.size
  746.     contents.font.size = 20
  747.  
  748.     draw_gauge(5,0, contents.width, 1, mp_gauge_color2,crisis_color)
  749.     change_color(normal_color)
  750.  
  751.     case @draw_index
  752.     when 0,1
  753.       draw_text(5, 0, 126, contents.font.size, "能力属性栏")   
  754.       draw_equip_befor(5,line_height * 1)
  755.       draw_right_arrow(0, line_height * 2)
  756.       draw_equip_after(65,line_height * 2)
  757.     when 2
  758.       draw_text(5, 0, 126, contents.font.size, "装备属性")
  759.       draw_equip_after(5,line_height * 1)
  760.     end
  761.  
  762.     case @draw_index
  763.     when 0,1   
  764.       11.times {|i| draw_item(0, line_height * 2 + contents.font.size * (1 + i), i) }
  765.     when 2
  766.       draw_features(5,line_height * 2)
  767.     end
  768.  
  769.     case @draw_index
  770.     when 1,2     
  771.       change_color(normal_color)
  772.       draw_text(0, line_height * 12, contents.width, contents.font.size, "",1)
  773.     end
  774.     contents.font.size = last_font
  775.   end
  776.   #--------------------------------------------------------------------------
  777.   # ◎ 装備変更のアイテム表示
  778.   #--------------------------------------------------------------------------
  779.   def draw_equip_befor(x,y)
  780.     return unless @actor
  781.     if @base_item_index != nil
  782.       draw_item_name(@actor.equips[@base_item_index], x, y)
  783.     end
  784.   end
  785.   #--------------------------------------------------------------------------
  786.   # ◎ 装備変更のアイテム表示
  787.   #--------------------------------------------------------------------------
  788.   def draw_equip_after(x,y)
  789.     return unless @actor
  790.     if @change_item != nil
  791.       draw_item_name(@change_item, x, y)
  792.     end
  793.   end
  794.   #--------------------------------------------------------------------------
  795.   # ◎ 装備アイテム描画の変数を設定
  796.   #--------------------------------------------------------------------------
  797.   def set_select_item(index)
  798.     return if @base_item_index == index
  799.     @base_item_index = index
  800.     refresh
  801.   end
  802.   #--------------------------------------------------------------------------
  803.   # ◎ 変更装備アイテムの変数を設定
  804.   #--------------------------------------------------------------------------
  805.   def set_select_item2(index)
  806.     return if @change_item == index
  807.     @change_item = index
  808.     refresh
  809.   end
  810.   #--------------------------------------------------------------------------
  811.   # ◎ 項目の描画
  812.   #--------------------------------------------------------------------------
  813.   def draw_item(x, y, param_id)
  814.     case param_id
  815.     when 0,1,2,3,4,5,6,7
  816.       draw_param_name(x + 4, y, param_id)
  817.       draw_current_param(x + 84+20, y, param_id) if @actor
  818.       draw_right_arrow(x + 116, y)
  819.       draw_new_param(x + 140+ 140, y, param_id) if @temp_actor
  820.  
  821.       if KURE::ExEquip::VIEW_EQUIP_STATUS == 1
  822.         change_color(param_change_color(@change_item.params[param_id])) if @change_item
  823.         draw_text(x + 172, y, 40, line_height, @change_item.params[param_id], 2) if @change_item
  824.       end
  825.  
  826.     when 8,9,10
  827.       value = 0
  828.       value2 = 0
  829.       value = (@actor.xparam(param_id - 8) * 100).to_i if @actor
  830.       value2 = (@temp_actor.xparam(param_id - 8) * 100).to_i  if @temp_actor
  831.       change_color(system_color)
  832.       draw_text(x + 4, y, 80, line_height, KURE::ExEquip::Vocab_Ex1[param_id - 8])
  833.       change_color(normal_color)
  834.       draw_text(x + 84+30, y, 32, line_height, value, 2) if @actor
  835.       draw_right_arrow(x + 116, y)
  836.       change_color(param_change_color(value2 - value)) if @temp_actor
  837.       draw_text(x + 140+ 140, y, 32, line_height, value2, 2) if @temp_actor
  838.  
  839.       if KURE::ExEquip::VIEW_EQUIP_STATUS == 1
  840.         change_color(param_change_color(value2 - value))
  841.         draw_text(x + 172, y, 40, line_height, value2 - value, 2) if @change_item
  842.       end
  843.  
  844.     end
  845.   end
  846.   #--------------------------------------------------------------------------
  847.   # ◎ 特徴の描画
  848.   #--------------------------------------------------------------------------
  849.   def draw_features(x,y)
  850.     return if @change_item == nil
  851.     #特徴を描画
  852.     change_color(system_color)
  853.     draw_text(5, y, 126, contents.font.size, "属性特效")
  854.  
  855.     #配列数取得変数を初期化
  856.     features_max = 0
  857.     #描画用配列を作成
  858.     draw_list = Array.new(100)
  859.     #配列用カウンターをセット
  860.     @draw_counter = 0
  861.     #装備品が有れば特徴最大数を取得
  862.     features_max = @change_item.features.size - 1
  863.  
  864.       #項目をチェックして描画用配列に入れる
  865.       for l in 0..features_max
  866.  
  867.         #攻撃属性がある場合
  868.         if @change_item.features[l].code == 31
  869.           draw_str  = $data_system.elements[@change_item.features[l].data_id]
  870.           draw_list[@draw_counter] = draw_str + "属性 "
  871.           @draw_counter += 1
  872.         end
  873.  
  874.         #属性耐性がある場合
  875.         if @change_item.features[l].code == 11
  876.           #属性名取得
  877.           draw_str = $data_system.elements[@change_item.features[l].data_id]+ "耐性"
  878.           value = 100 - (@change_item.features[l].value * 100).to_i
  879.           draw_list[@draw_counter] = draw_str + value.to_s + "% "
  880.           @draw_counter += 1
  881.         end
  882.  
  883.         #弱体有効度がある場合
  884.         if @change_item.features[l].code == 12
  885.           #属性名取得
  886.           draw_str = "耐"+Vocab::param(@change_item.features[l].data_id)+ "减少"
  887.           value = 100 - (@change_item.features[l].value * 100).to_i
  888.           draw_list[@draw_counter] = draw_str + value.to_s + "% "
  889.           @draw_counter += 1
  890.         end         
  891.  
  892.         #ステート耐性がある場合
  893.         if @change_item.features[l].code == 13
  894.           #ステート名取得
  895.           draw_str = $data_states[@change_item.features[l].data_id].name + "耐性"
  896.           value = 100 - (@change_item.features[l].value * 100).to_i
  897.           draw_list[@draw_counter] = draw_str + value.to_s + "% "
  898.           @draw_counter += 1
  899.         end
  900.  
  901.         #ステート無効化がある場合
  902.         if @change_item.features[l].code == 14
  903.           #ステート名取得
  904.           draw_str = $data_states[@change_item.features[l].data_id].name
  905.           draw_list[@draw_counter] = draw_str + "无效 "
  906.           @draw_counter += 1
  907.         end         
  908.  
  909.         #通常能力値判定がある場合
  910.         if @change_item.features[l].code == 21
  911.           #ステータス名取得
  912.           draw_str = Vocab::param(@change_item.features[l].data_id)
  913.           value = (@change_item.features[l].value * 100).to_i - 100
  914.             if value > 0
  915.               value = "+" + value.to_s
  916.             end            
  917.           draw_list[@draw_counter] = draw_str + value.to_s + "% "
  918.           @draw_counter += 1
  919.         end
  920.  
  921.         #通常能力値判定がある場合
  922.         if @change_item.features[l].code == 22
  923.           #ステータス名取得
  924.           draw_str = @change_item.features[l].data_id
  925.           case draw_str
  926.           when 0
  927.             draw_str = "命中率"
  928.           when 1
  929.             draw_str = "回避率"
  930.           when 2
  931.             draw_str = "会心率"
  932.           when 3
  933.             draw_str = "会心回避"            
  934.           when 4
  935.             draw_str = "兵法回避"
  936.           when 5
  937.             draw_str = "兵法反射"
  938.           when 6
  939.             draw_str = "反击率"
  940.           when 7
  941.             draw_str = "每回兵力回复"
  942.           when 8
  943.             draw_str = "每回谋点回复"
  944.           when 9
  945.             draw_str = "每回气力回复"
  946.           end
  947.           value = (@change_item.features[l].value * 100).to_i
  948.             if value > 0
  949.               value = "+" + value.to_s
  950.             end            
  951.           draw_list[@draw_counter] = draw_str + value.to_s + "% "
  952.           @draw_counter += 1
  953.         end
  954.  
  955.         #特殊能力値判定がある場合
  956.         if @change_item.features[l].code == 23
  957.           #ステート名取得
  958.           draw_str = @change_item.features[l].data_id
  959.           case draw_str
  960.           when 0
  961.             draw_str = "被打几率"
  962.           when 1
  963.             draw_str = "防御効果"
  964.           when 2
  965.             draw_str = "回复效果"
  966.           when 3
  967.             draw_str = "药草知识"
  968.           when 4
  969.             draw_str = "谋点消费率"
  970.           when 5
  971.             draw_str = "气力增加率"
  972.           when 6
  973.             draw_str = "受物理伤害"
  974.           when 7
  975.             draw_str = "受兵法伤害"
  976.           when 8
  977.             draw_str = "受地图伤害"
  978.           when 9
  979.             draw_str = "经验值"
  980.           end
  981.           value = (@change_item.features[l].value * 100).to_i - 100
  982.             if value > 0
  983.               value = "+" + value.to_s
  984.             end            
  985.           draw_list[@draw_counter] = draw_str + value.to_s + "% "
  986.           @draw_counter += 1
  987.         end
  988.  
  989.         #攻撃時ステート判定がある場合
  990.         if @change_item.features[l].code == 32
  991.           #ステート名取得
  992.           draw_str = $data_states[@change_item.features[l].data_id].name + "追加"
  993.           value = (@change_item.features[l].value * 100).to_i
  994.           draw_list[@draw_counter] = draw_str + value.to_s + "% "
  995.           @draw_counter += 1
  996.         end
  997.  
  998.         #攻撃追加がある場合
  999.         if @change_item.features[l].code == 34
  1000.           #攻撃回数を取得
  1001.           value = (@change_item.features[l].value + 1).to_i
  1002.           draw_list[@draw_counter] = value.to_s + "回攻击 "
  1003.           @draw_counter += 1
  1004.         end
  1005.  
  1006.         #スキルタイプ追加がある場合
  1007.         if @change_item.features[l].code == 41
  1008.           #項目を取得
  1009.           value = $data_system.skill_types[@change_item.features[l].data_id]
  1010.           draw_list[@draw_counter] = value + "可使用 "
  1011.           @draw_counter += 1
  1012.         end  
  1013.  
  1014.         #スキルタイプ削除がある場合
  1015.         if @change_item.features[l].code == 42
  1016.           #項目を取得
  1017.           value = $data_system.skill_types[@change_item.features[l].data_id]
  1018.           draw_list[@draw_counter] = value + "使用不可 "
  1019.           @draw_counter += 1
  1020.         end
  1021.  
  1022.         #スキル追加がある場合
  1023.         if @change_item.features[l].code == 43
  1024.           #項目を取得
  1025.           value = $data_skills[@change_item.features[l].data_id].name
  1026.           draw_list[@draw_counter] = "“" +value + "”可使用 "
  1027.           @draw_counter += 1
  1028.         end
  1029.  
  1030.         #スキル削除がある場合
  1031.         if @change_item.features[l].code == 44
  1032.           #項目を取得
  1033.           value = $data_skills[@change_item.features[l].data_id].name
  1034.           draw_list[@draw_counter] = "“" +value + "”不可使用 "
  1035.           @draw_counter += 1
  1036.         end
  1037.  
  1038.         #行動追加がある場合
  1039.         if @change_item.features[l].code == 61
  1040.           #項目を取得
  1041.           value = (@change_item.features[l].value * 100).to_i
  1042.           draw_list[@draw_counter] = "追加行动"+ value.to_s + "% "
  1043.           @draw_counter += 1
  1044.         end         
  1045.  
  1046.         #特殊フラグがある場合
  1047.         if @change_item.features[l].code == 62
  1048.           #項目を取得
  1049.           value = @change_item.features[l].data_id
  1050.           case value
  1051.           when 0
  1052.             value = "自动战斗"
  1053.           when 1
  1054.             value = "自动防御"
  1055.           when 2
  1056.             value = "自动援护"
  1057.           when 3
  1058.             value = "TP持越"
  1059.           end
  1060.           draw_list[@draw_counter] = value
  1061.           @draw_counter += 1
  1062.         end  
  1063.  
  1064.         #パーティー能力がある場合
  1065.         if @change_item.features[l].code == 64
  1066.           #項目を取得
  1067.           value = @change_item.features[l].data_id
  1068.           case value
  1069.           when 0
  1070.             value = "遇敌率↓"
  1071.           when 1
  1072.             value = "遇敌率0"
  1073.           when 2
  1074.             value = "不会被偷袭"
  1075.           when 3
  1076.             value = "偷袭率上升"
  1077.           when 4
  1078.             value = "金钱双倍"              
  1079.           when 5
  1080.             value = "掉宝双倍"              
  1081.           when 6
  1082.           end
  1083.           draw_list[@draw_counter] = value
  1084.           @draw_counter += 1
  1085.         end
  1086.       end
  1087.  
  1088.       #実際の描画処理
  1089.       for j in 0..@draw_counter
  1090.         if draw_list[j] != nil or 0
  1091.           case j
  1092.           when 0..10
  1093.             change_color(normal_color)            
  1094.             draw_text(x, y + contents.font.size * (j + 1) , contents.width / 2, contents.font.size, draw_list[j])
  1095.           when 11..21
  1096.             change_color(normal_color)            
  1097.             draw_text(x + contents.width / 2, y + contents.font.size * (j - 10) , contents.width / 2, contents.font.size, draw_list[j])
  1098.           end
  1099.         end
  1100.       end      
  1101.  
  1102.   end
  1103. end
  1104.  
  1105. #==============================================================================
  1106. # ■ Window_Ex_EquipCommand
  1107. #------------------------------------------------------------------------------
  1108. #  スキル画面で、コマンド(装備変更、最強装備など)を選択するウィンドウです。
  1109. #==============================================================================
  1110. class Window_Ex_EquipCommand < Window_HorzCommand
  1111.   #--------------------------------------------------------------------------
  1112.   # ● オブジェクト初期化
  1113.   #--------------------------------------------------------------------------
  1114.   def initialize(x, y, width)
  1115.     @window_width = width
  1116.     super(x, y)
  1117.   end
  1118.   #--------------------------------------------------------------------------
  1119.   # ● ウィンドウ幅の取得
  1120.   #--------------------------------------------------------------------------
  1121.   def window_width
  1122.     @window_width
  1123.   end
  1124.   #--------------------------------------------------------------------------
  1125.   # ● 桁数の取得
  1126.   #--------------------------------------------------------------------------
  1127.   def col_max
  1128.     if KURE::ExEquip::USE_WEIGHT_SYSTEM == 0
  1129.       return 3
  1130.     else
  1131.       return 2
  1132.     end
  1133.   end
  1134.   #--------------------------------------------------------------------------
  1135.   # ● コマンドリストの作成
  1136.   #--------------------------------------------------------------------------
  1137.   def make_command_list
  1138.     add_command(Vocab::equip2,   :equip)
  1139.     if KURE::ExEquip::USE_WEIGHT_SYSTEM == 0
  1140.       add_command(Vocab::optimize, :optimize)
  1141.     end
  1142.     add_command(Vocab::clear,    :clear)
  1143.   end
  1144. end
我再补充几张图你看一下吧,因为是新建的工程就用了一个装备扩展插件,代码如下。

捕获.PNG (51.95 KB, 下载次数: 4)

捕获.PNG

捕获2.PNG (91.71 KB, 下载次数: 13)

捕获2.PNG
技能:Icon绘制,头像&立绘,VA行走图,地图绘制(全PS制作),脚本盲

Lv2.观梦者

梦石
0
星屑
644
在线时间
830 小时
注册时间
2016-7-24
帖子
649

开拓者

2
发表于 2017-3-8 07:35:29 | 只看该作者
你這個很明顯不是默認介面,請把介面插件貼出來方便修改

点评

谢谢提醒,插件已经补在一楼啦~\(≧▽≦)/~  发表于 2017-3-8 12:37

评分

参与人数 1星屑 +100 收起 理由
RaidenInfinity + 100 认可答案

查看全部评分

2016/07/17 加入RPG製作,勿忘初衷!
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
468
在线时间
132 小时
注册时间
2016-6-15
帖子
151
3
 楼主| 发表于 2017-3-8 12:40:49 | 只看该作者
补充一下,谢谢1楼的前辈提醒,于是682行修改数值已经自行解决了

点评

还是因为前辈提醒,我就顺藤摸瓜找有没有x,y轴类似的draw一类的代码一样一样试了_(:зゝ∠)_  发表于 2017-3-8 16:42

评分

参与人数 1星屑 +6 收起 理由
QQ蚊子湯 + 6 好像也不盲嘛!

查看全部评分

技能:Icon绘制,头像&立绘,VA行走图,地图绘制(全PS制作),脚本盲
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-7-4 22:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表