Project1

标题: 想在装备页面显示四个属性要怎么改呢? [打印本页]

作者: foghidecrab    时间: 2022-4-10 15:03
标题: 想在装备页面显示四个属性要怎么改呢?
人物状态页面现在已经改掉了是四个属性没错(对标的原属性:勇气-力量、礼仪-灵巧、社交-速度、学识-魔力)
现在装备界面的左侧也想改成四个属性,但是文字显示的明明是勇气(力量),礼仪(灵巧)和社交(速度),我看脚本里Equipleft里面的描述数值变化的三个项却是攻击力,物理防御和魔法防御,一下子就不会改了。
请问一下我有没有选错页?装备左侧想改成这四个属性请问要怎么改呢?

1.png (126.56 KB, 下载次数: 20)

状态界面已经是四属性了

状态界面已经是四属性了

2.png (116.63 KB, 下载次数: 21)

装备左边想也改成4属性

装备左边想也改成4属性

3.png (65.27 KB, 下载次数: 22)

脚本里的描述却是攻击力和防御

脚本里的描述却是攻击力和防御

作者: guoxiaomi    时间: 2022-4-10 16:38
本帖最后由 guoxiaomi 于 2022-4-10 16:41 编辑

25-27行的 draw_actor_parameter 是用于显示当前的属性和值,你需要把最后一个参数从012改成345。

下面那些是显示更换之后的数值变化,包括“→”符号和不同颜色的新属性(atk/pdef/mdef)值,你想显示更新后的其他属性的变化,就顺着 set_new_parameters 找吧,大概在 Scene_Equip 的 refresh 方法里。

如果你想所有4个属性都显示,那么可以考虑不显示等级?或者把 Window_EquipLeft 窗口高度调大一点,同时也要调整其他窗口的高度和位置。
作者: foghidecrab    时间: 2022-4-10 20:17
guoxiaomi 发表于 2022-4-10 16:38
25-27行的 draw_actor_parameter 是用于显示当前的属性和值,你需要把最后一个参数从012改成345。

下面那 ...

现在很神奇的是不选择装备的情况下的数值就是对应的勇气(力量) 礼仪(灵巧)和社交(速度),选择装备的情况下,箭头左边的数字也是没错的,但右边数字始终是0. 装备完成后,左边数字会加上正确的属性OJZ
这样说的话012应该是没有问题的?主要是下面那一段?
作者: foghidecrab    时间: 2022-4-18 13:56
现在我改了Scene_equip 里面的这些:
     # 获取变更装备后的能力值
      new_str = @actor.str
      new_dex = @actor.dex
      new_agi = @actor.agi
      new_int = @actor.int
  # 描画左窗口
      @left_window.set_new_parameters(new_int, new_dex, new_agi, new_int)

然后还有window_equipleft里的这些:
def refresh
    self.contents.clear
    draw_actor_name(@actor, 4, 0)
    draw_actor_parameter(@actor, 4, 32, 0)
    draw_actor_parameter(@actor, 4, 64, 1)
    draw_actor_parameter(@actor, 4, 96, 2)
    draw_actor_parameter(@actor, 4, 128, 3)
    if @new_str != nil
      self.contents.font.color = system_color
      self.contents.draw_text(160, 64, 40, 32, "→", 1)
      self.contents.font.color = normal_color
      self.contents.draw_text(200, 64, 36, 32, @new_str.to_s, 2)
    end
    if @new_dex != nil
      self.contents.font.color = system_color
      self.contents.draw_text(160, 96, 40, 32, "→", 1)
      self.contents.font.color = normal_color
      self.contents.draw_text(200, 96, 36, 32, @new_dex.to_s, 2)
    end
    if @new_agi != nil
      self.contents.font.color = system_color
      self.contents.draw_text(160, 128, 40, 32, "→", 1)
      self.contents.font.color = normal_color
      self.contents.draw_text(200, 128, 36, 32, @new_agi.to_s, 2)
    end
    if @new_int !=nil
      self.contents.font.color = system_color
      self.contents.draw_text(160, 128, 40, 32, "→", 1)
      self.contents.font.color = normal_color
      self.contents.draw_text(200, 128, 36, 32, @new_int.to_s, 2)
  end
  def set_new_parameters(new_str, new_dex, new_agi, new_int)
    if @new_str != new_str or @new_dex != new_dex or @new_agi != new_agi or @new_int != new_int
      @new_str = new_str
      @new_dex = new_dex
      @new_agi = new_agi
      @new_int = new_int
      refresh
    end
  end

但是直接就变成了“脚本window_equipleft最后一行发生了SyntaxError”
请问这个是怎么回事呀?
作者: foghidecrab    时间: 2022-4-18 13:58
foghidecrab 发表于 2022-4-10 20:17
现在很神奇的是不选择装备的情况下的数值就是对应的勇气(力量) 礼仪(灵巧)和社交(速度),选择装备 ...

可以麻烦大佬看下我下面改的嘛?是LEVEL不要了改成四属性,现在还是错误。
作者: 白鬼    时间: 2022-4-19 01:31
foghidecrab 发表于 2022-4-18 13:58
可以麻烦大佬看下我下面改的嘛?是LEVEL不要了改成四属性,现在还是错误。 ...

脚本 Scene_Equip  中
115-116行
  1.       # 描画左窗口
  2.       @left_window.set_new_parameters(new_atk, new_pdef, new_mdef)
复制代码

改成
  1.       # 描画左窗口
  2.       @left_window.set_new_parameters(new_str, new_dex, new_agi, new_int)
复制代码


作者: foghidecrab    时间: 2022-4-19 15:41
白鬼 发表于 2022-4-19 01:31
脚本 Scene_Equip  中
115-116行

这个6楼发的里面改过了
作者: foghidecrab    时间: 2022-4-19 15:59
链接:https://pan.baidu.com/s/1tendOJEA4mVRPyfajgVO-g
提取码:yjrx
--来自百度网盘超级会员V4的分享

对不起不知道怎么传工程文件,整个全传上来了OJZ,里面应该有一堆不重要的图片之类的
作者: 白鬼    时间: 2022-4-19 16:13
本帖最后由 白鬼 于 2022-4-19 16:29 编辑
foghidecrab 发表于 2022-4-19 15:59
链接:https://pan.baidu.com/s/1tendOJEA4mVRPyfajgVO-g
提取码:yjrx
--来自百度网盘超级会员V4的分享

如何发论坛附件


我改好了,测试可以。我把修改的两个脚本完整的发出来你对照一下看看哪里不对吧。
另外,设置好数据库,别拿铜剑给阿尔西斯做测试,因为这家伙一出生就拿着铜剑

Window_EquipLeft【改】
Scene_Equip【改】

作者: foghidecrab    时间: 2022-4-19 16:43
现在变成了:
脚本' window_base'的293行发生了TypeError.
第293行是:
   self.contents.draw_text(x, y, 120, 32, parameter_name)

我的行数可能和默认不太一样,因为我把整个特技项给去掉了。
顺带一说那一整段是:
  #--------------------------------------------------------------------------
  # ● 描绘能力值
  #     actor : 角色
  #     x     : 描画目标 X 坐标
  #     y     : 描画目标 Y 坐标
  #     type  : 能力值种类 (0~3)
  #--------------------------------------------------------------------------
  def draw_actor_parameter(actor, x, y, type)
    case type
    when 0
      parameter_name = $data_system.words.str
      parameter_value = actor.str
    when 1
      parameter_name = $data_system.words.dex
      parameter_value = actor.dex
    when 2
      parameter_name = $data_system.words.agi
      parameter_value = actor.agi
    when 3
      parameter_name = $data_system.words.int
      parameter_value = actor.int
    end
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 120, 32, parameter_name)
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 120, y, 36, 32, parameter_value.to_s, 2)
作者: foghidecrab    时间: 2022-4-19 17:17
啊!我把Equipleft里面的3456改成0123就没有问题了!非常感谢大佬!





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1