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

Project1

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

[已经解决] 如何修改装备界面

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
476 小时
注册时间
2011-3-22
帖子
46
跳转到指定楼层
1
发表于 2012-10-19 22:09:37 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
5星屑
本帖最后由 muyumuyulnny 于 2012-10-19 22:23 编辑

要求:1. 取消窗口 Window_EquipCommand ,打开装备窗口后直接进行装备更换,因为我不想保留最强装备和全部卸下的功能。我Scene_Equip在中把和这个窗口有关的东西都删除后,窗口是不见了,可是也无法进行装备更改的操作了。
      2.希望在Window_EquipStatus窗口中加入最大HP,最大MP,命中属性,必杀属性,物理回避属性,魔法回避属性,必杀回避属性,魔力值消耗比例的改变。
      求详细脚本修改方法或者范例也行,话说VA的脚本和VX真是差距巨大... ...在VX中实现这样的功能只要照着原有属性加几个东西就行了。

最佳答案

查看完整内容

在你之前改的基础上添加这个因该就没问题了。

点评

貌似是装备的。。  发表于 2012-10-20 12:51

Lv1.梦旅人

Mr.Gandum

梦石
0
星屑
226
在线时间
2070 小时
注册时间
2007-1-31
帖子
3039

贵宾

2
发表于 2012-10-19 22:09:38 | 只看该作者
  1. #==============================================================================
  2. # ■ Scene_Equip
  3. #------------------------------------------------------------------------------
  4. #  装備画面の処理を行うクラスです。
  5. #==============================================================================

  6. class Scene_Equip < Scene_MenuBase
  7.   #--------------------------------------------------------------------------
  8.   # ● スロットウィンドウの作成
  9.   #--------------------------------------------------------------------------
  10.   alias command_window_dead!!!!_create_slot_window create_slot_window
  11.   def create_slot_window
  12.     command_window_dead!!!!_create_slot_window
  13.     @slot_window.activate
  14.     @slot_window.set_handler(:cancel,   method(:return_scene))
  15.     @slot_window.set_handler(:pagedown, method(:next_actor))
  16.     @slot_window.set_handler(:pageup,   method(:prev_actor))
  17.   end
  18. end
复制代码
在你之前改的基础上添加这个因该就没问题了。
回复

使用道具 举报

Lv1.梦旅人

Mr.Gandum

梦石
0
星屑
226
在线时间
2070 小时
注册时间
2007-1-31
帖子
3039

贵宾

3
发表于 2012-10-19 22:18:44 | 只看该作者
1. 取消窗口 Window_EquipCommand 我Scene_Equip在中把和这个窗口有关的东西都删除后,窗口是不见了,可是也无法进行装备更改的操作了。

这个删了之后本来就没法再更换装备了啊囧

点评

就是直接更换装备,不需要最强装备和全部卸下,因为只有一个命令,所以想把命令窗口给删了  发表于 2012-10-19 22:21
回复

使用道具 举报

Lv3.寻梦者

伴侣:北岛谜烟

梦石
0
星屑
3007
在线时间
3547 小时
注册时间
2012-8-7
帖子
12181

贵宾

4
发表于 2012-10-20 12:45:19 | 只看该作者
本帖最后由 delv25 于 2012-10-20 12:57 编辑

= =废楼。
本人收不到提醒(点评|回复|@人),总之有事情到空间留言一起普通普通
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
599
在线时间
333 小时
注册时间
2011-11-19
帖子
194
5
发表于 2012-10-20 12:50:54 | 只看该作者
delv25 发表于 2012-10-20 12:45
这样您满意吗?插入即可,无需修改原脚本。

这是VA超级正合理的吧,但是不是装备哎……是状态……我也求装备duojige属性改变,但是我该脚本废了几个课件,没信心了!
支持《彼岸之光》系列!加油!
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
476 小时
注册时间
2011-3-22
帖子
46
6
 楼主| 发表于 2012-10-20 15:53:21 | 只看该作者
本帖最后由 muyumuyulnny 于 2012-10-20 15:56 编辑

关于第二个问题自己找到解决办法了,继续求第一个问题的答案。
顺便把解决办法放上来方便其他人。
效果图

脚本,可放置于原Window_EquipStatus之后后、main之前,或直接替换原Window_EquipStatus。可以自行继续添加其他属性,不过要一点点脚本基础。但是因为写很菜,所以太过繁琐,有人提供更简单的方法就好了。
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ Window_EquipStatus
  4. #------------------------------------------------------------------------------
  5. #  装备画面中,显示角色能力值变化的窗口。
  6. #==============================================================================

  7. class Window_EquipStatus < Window_Base
  8.   #--------------------------------------------------------------------------
  9.   # ● 初始化对象
  10.   #--------------------------------------------------------------------------
  11.   def initialize(x, y)
  12.     super(x, y, window_width, window_height)
  13.     @actor = nil
  14.     @temp_actor = nil
  15.     refresh
  16.   end
  17.   #--------------------------------------------------------------------------
  18.   # ● 获取窗口的宽度
  19.   #--------------------------------------------------------------------------
  20.   def window_width
  21.     return 208
  22.   end
  23.   #--------------------------------------------------------------------------
  24.   # ● 获取窗口的高度
  25.   #--------------------------------------------------------------------------
  26.   def window_height
  27.     fitting_height(visible_line_number)
  28.   end
  29.   #--------------------------------------------------------------------------
  30.   # ● 获取显示行数
  31.   #--------------------------------------------------------------------------
  32.   def visible_line_number
  33.     return 12
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   # ● 设置角色
  37.   #--------------------------------------------------------------------------
  38.   def actor=(actor)
  39.     return if @actor == actor
  40.     @actor = actor
  41.     refresh
  42.   end
  43.   #--------------------------------------------------------------------------
  44.   # ● 刷新
  45.   #--------------------------------------------------------------------------
  46.   def refresh
  47.     contents.clear
  48.     draw_actor_name(@actor, 4, 0) if @actor
  49.     8.times {|i| draw_item(0, line_height * (1 + i), i) }
  50.     draw_xparam_name(x + 4, y)
  51.     draw_current_xparam(x + 94, y) if @actor
  52.     draw_right_arrow_2(x + 126, y)
  53.     draw_new_xparam(x + 150, y) if @temp_actor
  54.   end
  55.   #--------------------------------------------------------------------------
  56.   # ● 设置更换装备后的临时角色
  57.   #--------------------------------------------------------------------------
  58.   def set_temp_actor(temp_actor)
  59.     return if @temp_actor == temp_actor
  60.     @temp_actor = temp_actor
  61.     refresh
  62.   end
  63.   #--------------------------------------------------------------------------
  64.   # ● 绘制项目
  65.   #--------------------------------------------------------------------------
  66.   def draw_item(x, y, param_id)
  67.     draw_param_name(x + 4, y, param_id)
  68.     draw_current_param(x + 94, y, param_id) if @actor
  69.     draw_right_arrow(x + 126, y)
  70.     draw_new_param(x + 150, y, param_id) if @temp_actor
  71.   end
  72.   #--------------------------------------------------------------------------
  73.   # ● 绘制能力值的名字
  74.   #--------------------------------------------------------------------------
  75.   def draw_param_name(x, y, param_id)
  76.     change_color(system_color)
  77.     draw_text(x, y, 80, line_height, Vocab::param(param_id))
  78.   end
  79.   
  80.   #--------------------------------------------------------------------------
  81.   # ● 绘制当前能力值
  82.   #--------------------------------------------------------------------------
  83.   def draw_current_param(x, y, param_id)
  84.     change_color(normal_color)
  85.     draw_text(x, y, 32, line_height, @actor.param(param_id), 2)
  86.   end
  87.   
  88.   #--------------------------------------------------------------------------
  89.   # ● 绘制右方向箭头
  90.   #--------------------------------------------------------------------------
  91.   def draw_right_arrow(x, y)
  92.     change_color(system_color)
  93.     draw_text(x, y, 22, line_height, "→", 1)
  94.   end
  95.   #--------------------------------------------------------------------------
  96.   # ● 绘制更换装备后的能力值
  97.   #--------------------------------------------------------------------------
  98.   def draw_new_param(x, y, param_id)
  99.     new_value = @temp_actor.param(param_id)
  100.     change_color(param_change_color(new_value - @actor.param(param_id)))
  101.     draw_text(x, y, 32, line_height, new_value, 2)
  102.   end
  103.   #--------------------------------------------------------------------------
  104.   # ● 绘制额外能力值的名字
  105.   #--------------------------------------------------------------------------
  106.   def draw_xparam_name(x, y)
  107.     change_color(system_color)
  108.     draw_text(x, y + line_height * 6, 80, line_height, "命中率")
  109.     draw_text(x, y + line_height * 7 , 80, line_height, "回避率")
  110.     draw_text(x, y + line_height * 8 , 80, line_height, "必杀率")
  111.   end
  112.   #--------------------------------------------------------------------------
  113.   # ● 绘制额外当前能力值
  114.   #--------------------------------------------------------------------------
  115.   def draw_current_xparam(x, y)
  116.     change_color(normal_color)
  117.     hit = @actor.xparam(0) * 100
  118.     eva = @actor.xparam(1) * 100
  119.     cri = @actor.xparam(2) * 100
  120.     draw_text(x, y + line_height * 6, 32, line_height, hit.round)
  121.     draw_text(x, y + line_height * 7, 32, line_height, eva.round)
  122.     draw_text(x, y + line_height * 8, 32, line_height, cri.round)
  123.   end
  124.   #--------------------------------------------------------------------------
  125.   # ● 绘制额外右方向箭头
  126.   #--------------------------------------------------------------------------
  127.   def draw_right_arrow_2(x, y)
  128.     change_color(system_color)
  129.     draw_text(x, y + line_height * 6, 22, line_height, "→", 1)
  130.     draw_text(x, y + line_height * 7, 22, line_height, "→", 1)
  131.     draw_text(x, y + line_height * 8, 22, line_height, "→", 1)
  132.   end
  133.   #--------------------------------------------------------------------------
  134.   # ● 绘制更换装备后的额外能力值
  135.   #--------------------------------------------------------------------------
  136.   def draw_new_xparam(x, y)
  137.     new_hit = @temp_actor.xparam(0) * 100
  138.     change_color(param_change_color(new_hit - @actor.xparam(0)*100))
  139.     draw_text(x, y+ line_height * 6, 32, line_height, new_hit.round, 2)
  140.     new_eva = @temp_actor.xparam(1) * 100
  141.     change_color(param_change_color(new_eva - @actor.xparam(1)*100))
  142.     draw_text(x, y+ line_height * 7, 32, line_height, new_eva.round, 2)
  143.     new_cri = @temp_actor.xparam(2) * 100
  144.     change_color(param_change_color(new_cri - @actor.xparam(2)*100))
  145.     draw_text(x, y+ line_height * 8, 32, line_height, new_cri.round, 2)
  146.   end
  147. end
复制代码
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
16 小时
注册时间
2013-2-1
帖子
24
7
发表于 2013-4-9 01:24:43 | 只看该作者
muyumuyulnny 发表于 2012-10-20 15:53
关于第二个问题自己找到解决办法了,继续求第一个问题的答案。
顺便把解决办法放上来方便其他人。
效果图

请教一下,装备选择如何改成像你一样这种上下形式的。
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
16 小时
注册时间
2013-2-1
帖子
24
8
发表于 2013-4-9 01:50:21 | 只看该作者
muyumuyulnny 发表于 2012-10-20 15:53
关于第二个问题自己找到解决办法了,继续求第一个问题的答案。
顺便把解决办法放上来方便其他人。
效果图

我用完这个脚本以后就。。。。
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
476 小时
注册时间
2011-3-22
帖子
46
9
 楼主| 发表于 2013-4-9 21:18:28 | 只看该作者
lqtdvhtw123 发表于 2013-4-9 01:50
我用完这个脚本以后就。。。。

全局查找
RUBY 代码复制
  1. def create_item_window

会有好几个符合选择,选择Scene_Equip中的那一个,
RUBY 代码复制
  1. def create_item_window
  2.     wx = 0
  3.     wy = @slot_window.y + @slot_window.height
  4.     ww = Graphics.width
  5.     wh = Graphics.height - wy
  6.     @item_window = Window_EquipItem.new(wx, wy, ww, wh)
  7.     @item_window.viewport = @viewport
  8.     @item_window.help_window = @help_window
  9.     @item_window.status_window = @status_window
  10.     @item_window.actor = @actor
  11.     @item_window.set_handler(:ok,     method(:on_item_ok))
  12.     @item_window.set_handler(:cancel, method(:on_item_cancel))
  13.     @slot_window.item_window = @item_window
  14.   end

替换为
RUBY 代码复制
  1. def create_item_window
  2.     wx = @status_window.width
  3.     wy = @slot_window.y + @slot_window.height
  4.     ww = Graphics.width - @status_window.width
  5.     wh = Graphics.height - wy
  6.     @item_window = Window_EquipItem.new(wx, wy, ww, wh)
  7.     @item_window.viewport = @viewport
  8.     @item_window.help_window = @help_window
  9.     @item_window.status_window = @status_window
  10.     @item_window.actor = @actor
  11.     @item_window.set_handler(:ok,     method(:on_item_ok))
  12.     @item_window.set_handler(:cancel, method(:on_item_cancel))
  13.     @slot_window.item_window = @item_window
  14.   end

即可,不过此时变窄的可更换装备窗口仍是两列的,如果想变成和我图上一样一列的话,把窗口的最大列数重定义为1就可以了。
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 08:44

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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