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

Project1

 找回密码
 注册会员
搜索
查看: 3006|回复: 7

[已经解决] 角色HP定义以及装备栏定义的问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
160
在线时间
21 小时
注册时间
2020-10-22
帖子
5
发表于 2020-11-12 19:26:00 | 显示全部楼层 |阅读模式

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

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

x

角色1是人物,Hp显示是生命,
装备栏显示是→武器:某某
                      头盔:某某
                      护甲:某某
                         ....

      角色2是机器人,HP显示是能量,
装备栏显示是→器械:某某
                      能源:某某
                      装置:某某
                            ...

比如:在战斗中1号角色HP是999,显示:生命999
                      2号角色HP是999,显示:能量999

两种不同的属性形式分开!
人物的可以直接在数据库把HP改成生命就好了,就是第二个角色的!

像这样要如何在脚本上定义这些东西?

Lv5.捕梦者

梦石
0
星屑
33043
在线时间
10470 小时
注册时间
2009-3-15
帖子
4756
发表于 2020-11-12 19:48:10 | 显示全部楼层
萌新路过..咳咳..在用语的脚本上动手脚行吗
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
160
在线时间
21 小时
注册时间
2020-10-22
帖子
5
 楼主| 发表于 2020-11-12 20:24:50 | 显示全部楼层
soulsaga 发表于 2020-11-12 19:48
萌新路过..咳咳..在用语的脚本上动手脚行吗

就是对脚本不熟
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6483
在线时间
119 小时
注册时间
2020-1-8
帖子
234
发表于 2020-11-13 18:13:48 | 显示全部楼层
#脚本插在Main之前 与 重新定义的这些脚本之后
#对机器人描述词的设置(id为数据库中该角色的编号)
$R = {
      "id" => 2,
      "hp" => "能量",
      "sp" => "能源",
      "武" => "器械",
      "盾" => "护盾",
      "头" => "芯片",
      "身" => "装甲",
      "饰" => "装置"
      }
#修改窗口中HP、SP的描述词      
class Window_Base < Window
  alias ori_draw_actor_hp draw_actor_hp
  def draw_actor_hp(actor, x, y, width = 144)
    # 描绘字符串 "HP"
    self.contents.font.color = system_color
    hp_str = actor.id == $R["id"] ? $R["hp"] : $data_system.words.hp
    self.contents.draw_text(x, y, 32, 32, hp_str)
    # 计算描绘 MaxHP 所需的空间
    if width - 32 >= 108
      hp_x = x + width - 108
      flag = true
    elsif width - 32 >= 48
      hp_x = x + width - 48
      flag = false
    end
    # 描绘 HP
    self.contents.font.color = actor.hp == 0 ? knockout_color :
      actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
    self.contents.draw_text(hp_x, y, 48, 32, actor.hp.to_s, 2)
    # 描绘 MaxHP
    if flag
      self.contents.font.color = normal_color
      self.contents.draw_text(hp_x + 48, y, 12, 32, "/", 1)
      self.contents.draw_text(hp_x + 60, y, 48, 32, actor.maxhp.to_s)
    end
  end
  
  alias ori_draw_actor_sp draw_actor_sp
  def draw_actor_sp(actor, x, y, width = 144)
    # 描绘字符串 "SP"
    self.contents.font.color = system_color
    sp_str = actor.id == $R["id"] ? $R["sp"] : $data_system.words.sp
    self.contents.draw_text(x, y, 32, 32, sp_str)
    # 计算描绘 MaxSP 所需的空间
    if width - 32 >= 108
      sp_x = x + width - 108
      flag = true
    elsif width - 32 >= 48
      sp_x = x + width - 48
      flag = false
    end
    # 描绘 SP
    self.contents.font.color = actor.sp == 0 ? knockout_color :
      actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
    self.contents.draw_text(sp_x, y, 48, 32, actor.sp.to_s, 2)
    # 描绘 MaxSP
    if flag
      self.contents.font.color = normal_color
      self.contents.draw_text(sp_x + 48, y, 12, 32, "/", 1)
      self.contents.draw_text(sp_x + 60, y, 48, 32, actor.maxsp.to_s)
    end
  end
end

#修改装备窗口中装备种类的描述词
class Window_EquipRight < Window_Selectable
  alias ori_refresh refresh
  def refresh
    self.contents.clear
    @data = []
    @data.push($data_weapons[@actor.weapon_id])
    @data.push($data_armors[@actor.armor1_id])
    @data.push($data_armors[@actor.armor2_id])
    @data.push($data_armors[@actor.armor3_id])
    @data.push($data_armors[@actor.armor4_id])
    @item_max = @data.size
    self.contents.font.color = system_color
    weapon_s = @actor.id == $R["id"] ? $R["武"] : $data_system.words.weapon
    self.contents.draw_text(4, 32 * 0, 92, 32, weapon_s)
    armor1_s = @actor.id == $R["id"] ? $R["盾"] : $data_system.words.weapon
    self.contents.draw_text(4, 32 * 1, 92, 32, armor1_s)
    armor2_s = @actor.id == $R["id"] ? $R["头"] : $data_system.words.weapon
    self.contents.draw_text(4, 32 * 2, 92, 32, armor2_s)
    armor3_s = @actor.id == $R["id"] ? $R["身"] : $data_system.words.weapon
    self.contents.draw_text(4, 32 * 3, 92, 32, armor3_s)
    armor4_s = @actor.id == $R["id"] ? $R["饰"] : $data_system.words.weapon
    self.contents.draw_text(5, 32 * 4, 92, 32, armor4_s)
    draw_item_name(@data[0], 92, 32 * 0)
    draw_item_name(@data[1], 92, 32 * 1)
    draw_item_name(@data[2], 92, 32 * 2)
    draw_item_name(@data[3], 92, 32 * 3)
    draw_item_name(@data[4], 92, 32 * 4)
  end
end

评分

参与人数 2星屑 +50 +1 收起 理由
RyanBern + 50 认可答案
fan993393 + 1 认可答案

查看全部评分

回复 支持 1 反对 0

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
160
在线时间
21 小时
注册时间
2020-10-22
帖子
5
 楼主| 发表于 2020-11-13 19:22:02 | 显示全部楼层
RPGzh500223 发表于 2020-11-13 18:13
#脚本插在Main之前 与 重新定义的这些脚本之后
#对机器人描述词的设置(id为数据库中该角色的编号)
$R = {

谢谢,大佬
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
160
在线时间
21 小时
注册时间
2020-10-22
帖子
5
 楼主| 发表于 2020-11-15 17:56:07 | 显示全部楼层
RPGzh500223 发表于 2020-11-13 18:13
#脚本插在Main之前 与 重新定义的这些脚本之后
#对机器人描述词的设置(id为数据库中该角色的编号)
$R = {

大佬,那个攻击,防御,这个怎么搞?才发现弄了装备那里显示攻击的位置还是攻击,防御,智力,攻击改成火力智力改成智能这样,但是人物不变,只有机器人变,咋解决?
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6483
在线时间
119 小时
注册时间
2020-1-8
帖子
234
发表于 2020-11-15 22:13:27 | 显示全部楼层
本帖最后由 RPGzh500223 于 2020-11-15 22:20 编辑

替换原来那个
脚本:

#对机器人描述词的设置
$R = {
      "id" => 2,
      "hp" => "能量",
      "sp" => "能源",
      "武" => "器械",
      "盾" => "护盾",
      "头" => "芯片",
      "身" => "装甲",
      "饰" => "装置",
      "值" => "火力_护甲值_护盾值_输出_传动_机动_感知"
      }
     
#修改窗口中HP、SP、能力值的描述词      
class Window_Base < Window
  alias ori_draw_actor_hp draw_actor_hp
  def draw_actor_hp(actor, x, y, width = 144)
    # 描绘字符串 "HP"
    self.contents.font.color = system_color
    hp_str = actor.id == $R["id"] ? $R["hp"] : $data_system.words.hp
    self.contents.draw_text(x, y, 32, 32, hp_str)
    # 计算描绘 MaxHP 所需的空间
    if width - 32 >= 108
      hp_x = x + width - 108
      flag = true
    elsif width - 32 >= 48
      hp_x = x + width - 48
      flag = false
    end
    # 描绘 HP
    self.contents.font.color = actor.hp == 0 ? knockout_color :
      actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
    self.contents.draw_text(hp_x, y, 48, 32, actor.hp.to_s, 2)
    # 描绘 MaxHP
    if flag
      self.contents.font.color = normal_color
      self.contents.draw_text(hp_x + 48, y, 12, 32, "/", 1)
      self.contents.draw_text(hp_x + 60, y, 48, 32, actor.maxhp.to_s)
    end
  end
  
  alias ori_draw_actor_sp draw_actor_sp
  def draw_actor_sp(actor, x, y, width = 144)
    # 描绘字符串 "SP"
    self.contents.font.color = system_color
    sp_str = actor.id == $R["id"] ? $R["sp"] : $data_system.words.sp
    self.contents.draw_text(x, y, 32, 32, sp_str)
    # 计算描绘 MaxSP 所需的空间
    if width - 32 >= 108
      sp_x = x + width - 108
      flag = true
    elsif width - 32 >= 48
      sp_x = x + width - 48
      flag = false
    end
    # 描绘 SP
    self.contents.font.color = actor.sp == 0 ? knockout_color :
      actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
    self.contents.draw_text(sp_x, y, 48, 32, actor.sp.to_s, 2)
    # 描绘 MaxSP
    if flag
      self.contents.font.color = normal_color
      self.contents.draw_text(sp_x + 48, y, 12, 32, "/", 1)
      self.contents.draw_text(sp_x + 60, y, 48, 32, actor.maxsp.to_s)
    end
  end
  
  alias ori_draw_actor_parameter draw_actor_parameter
  def draw_actor_parameter(actor, x, y, type)
    case type
    when 0
      parameter_name = $data_system.words.atk
      parameter_value = actor.atk
    when 1
      parameter_name = $data_system.words.pdef
      parameter_value = actor.pdef
    when 2
      parameter_name = $data_system.words.mdef
      parameter_value = actor.mdef
    when 3
      parameter_name = $data_system.words.str
      parameter_value = actor.str
    when 4
      parameter_name = $data_system.words.dex
      parameter_value = actor.dex
    when 5
      parameter_name = $data_system.words.agi
      parameter_value = actor.agi
    when 6
      parameter_name = $data_system.words.int
      parameter_value = actor.int
    end
    self.contents.font.color = system_color
    str = actor.id == $R["id"] ? $R["值"].split("_")[type] : parameter_name
    self.contents.draw_text(x, y, 120, 32, str)
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 120, y, 36, 32, parameter_value.to_s, 2)
  end
end

#修改装备窗口中装备种类的描述词
class Window_EquipRight < Window_Selectable
  alias ori_refresh refresh
  def refresh
    self.contents.clear
    @data = []
    @data.push($data_weapons[@actor.weapon_id])
    @data.push($data_armors[@actor.armor1_id])
    @data.push($data_armors[@actor.armor2_id])
    @data.push($data_armors[@actor.armor3_id])
    @data.push($data_armors[@actor.armor4_id])
    @item_max = @data.size
    self.contents.font.color = system_color
    weapon_s = @actor.id == $R["id"] ? $R["武"] : $data_system.words.weapon
    self.contents.draw_text(4, 32 * 0, 92, 32, weapon_s)
    armor1_s = @actor.id == $R["id"] ? $R["盾"] : $data_system.words.armor1
    self.contents.draw_text(4, 32 * 1, 92, 32, armor1_s)
    armor2_s = @actor.id == $R["id"] ? $R["头"] : $data_system.words.armor2
    self.contents.draw_text(4, 32 * 2, 92, 32, armor2_s)
    armor3_s = @actor.id == $R["id"] ? $R["身"] : $data_system.words.armor3
    self.contents.draw_text(4, 32 * 3, 92, 32, armor3_s)
    armor4_s = @actor.id == $R["id"] ? $R["饰"] : $data_system.words.armor4
    self.contents.draw_text(5, 32 * 4, 92, 32, armor4_s)
    draw_item_name(@data[0], 92, 32 * 0)
    draw_item_name(@data[1], 92, 32 * 1)
    draw_item_name(@data[2], 92, 32 * 2)
    draw_item_name(@data[3], 92, 32 * 3)
    draw_item_name(@data[4], 92, 32 * 4)
  end
end
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
160
在线时间
21 小时
注册时间
2020-10-22
帖子
5
 楼主| 发表于 2020-11-16 19:15:18 | 显示全部楼层
RPGzh500223 发表于 2020-11-15 22:13
替换原来那个
脚本:

谢谢大佬,完美的解决了我的问题!感谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-3-29 23:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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