Project1

标题: 装备增加气血或魔法的描述问题 [打印本页]

作者: jiahui5592986    时间: 2014-10-4 21:35
标题: 装备增加气血或魔法的描述问题
这个是 装备附加HP SP 的脚本

RUBY 代码复制
  1. #装备附加HP SP
  2. #使用方法 给装备名后用“,”追加数值
  3. #例如:  铜剑,500,200  那个这个武器会增加500点HP和200点SP
  4. #顺序不可改变  如果只需要加 HP 不需要再追加 SP 例如 铜剑,500 只会增加500HP
  5. #如果只需要增加SP 那么HP留0即可 例如 铜剑,0, 200 只增加200点SP
  6.  
  7. module RPG
  8.   class Weapon
  9.     def name
  10.       return @name.split(/,/)[0]
  11.     end
  12.     def hp
  13.       return @name.split(/,/)[1] == nil ? 0 : @name.split(/,/)[1].to_i
  14.     end
  15.     def sp
  16.       return @name.split(/,/)[2] == nil ? 0 : @name.split(/,/)[2].to_i
  17.     end
  18.   end
  19.   class Armor
  20.     def name
  21.       return @name.split(/,/)[0]
  22.     end
  23.     def hp
  24.       return @name.split(/,/)[1] == nil ? 0 : @name.split(/,/)[1].to_i
  25.     end
  26.     def sp
  27.       return @name.split(/,/)[2] == nil ? 0 : @name.split(/,/)[2].to_i
  28.     end
  29.   end
  30. end
  31.  
  32. class Game_Actor < Game_Battler
  33.   #--------------------------------------------------------------------------
  34.   # ● 获取基本 MaxHP
  35.   #--------------------------------------------------------------------------
  36.   def base_maxhp
  37.     n = $data_actors[@actor_id].parameters[0, @level]
  38.     n += $data_weapons[@weapon_id].hp if $data_weapons[@weapon_id] != nil
  39.     n += $data_armors[@armor1_id].hp if $data_armors[@armor1_id] != nil
  40.     n += $data_armors[@armor2_id].hp if $data_armors[@armor2_id] != nil
  41.     n += $data_armors[@armor3_id].hp if $data_armors[@armor3_id] != nil
  42.     n += $data_armors[@armor4_id].hp if $data_armors[@armor4_id] != nil
  43.     return n
  44.   end
  45.   #--------------------------------------------------------------------------
  46.   # ● 获取基本 MaxSP
  47.   #--------------------------------------------------------------------------
  48.   def base_maxsp
  49.     n = $data_actors[@actor_id].parameters[1, @level]
  50.     n += $data_weapons[@weapon_id].sp if $data_weapons[@weapon_id] != nil
  51.     n += $data_armors[@armor1_id].sp if $data_armors[@armor1_id] != nil
  52.     n += $data_armors[@armor2_id].sp if $data_armors[@armor2_id] != nil
  53.     n += $data_armors[@armor3_id].sp if $data_armors[@armor3_id] != nil
  54.     n += $data_armors[@armor4_id].sp if $data_armors[@armor4_id] != nil
  55.     return n
  56.   end
  57.  
  58.  
  59.   alias equip_hp_sp_old_dl equip
  60.   def equip(equip_type, id)
  61.     equip_hp_sp_old_dl(equip_type, id)
  62.     @hp = maxhp if @hp > maxhp
  63.     @sp = maxsp if @sp > maxsp
  64.   end
  65. end


增加的值.怎么在这个详情脚本中描绘出来?
RUBY 代码复制
  1. #==============================================================================
  2. # ■ System
  3. #------------------------------------------------------------------------------
  4. #  我的系统。
  5. #==============================================================================
  6. module System
  7.   #============================================================================
  8.   # ■ Window_Help
  9.   #----------------------------------------------------------------------------
  10.   #  特技及物品的说明、角色的状态显示的窗口。
  11.   #============================================================================
  12.   class Window_Help < Window_Base
  13.     #------------------------------------------------------------------------
  14.     # ● 初始化对像
  15.     #------------------------------------------------------------------------
  16.     def initialize
  17.       super(0, 0, 640, 64)
  18.       self.windowskin = nil
  19.       self.visible = false
  20.       self.z = 1500
  21.     end
  22.     #------------------------------------------------------------------------
  23.     # ● 设置文本
  24.     #     text  : 窗口显示的字符串
  25.     #     align : 对齐方式 (0..左对齐、1..中间对齐、2..右对齐)
  26.     #------------------------------------------------------------------------
  27.     def set_text(text, align = 0)
  28.       # 如果文本和对齐方式的至少一方与上次的不同
  29.       if text != @text or align != @align
  30.         # 属于文字的情况下
  31.         if text.is_a?(String)
  32.           # 再描绘文本
  33.           self.contents = Bitmap.new(self.width - 32, self.height - 32) if self.contents.nil?
  34.           self.contents.clear
  35.           self.contents.font.color = normal_color
  36.           self.contents.draw_text(4, 0, self.width - 40, 32, text, align)
  37.           self.visible = true
  38.           @text = text
  39.           @align = align
  40.           @actor = nil
  41.           return
  42.         end
  43.       end
  44.       Picture.dispose(@back)
  45.       Picture.dispose(@edge)
  46.       # 没有资料的情况下返回
  47.       return if text.nil?
  48.       # 描绘资料
  49.       case text
  50.       when RPG::Weapon
  51.         set_equip_text(text)
  52.       when RPG::Armor
  53.         set_equip_text(text)
  54.       when RPG::Item
  55.         set_item_text(text)
  56.       when RPG::Skill
  57.         set_skill_text(text)
  58.       end
  59.     end
  60.     #------------------------------------------------------------------------
  61.     # ● 更新帮助窗口
  62.     #------------------------------------------------------------------------
  63.     def non_auto_update(data)
  64.       @data = data
  65.       case @data
  66.       when RPG::Item
  67.         set_item_text(@data)
  68.       when RPG::Weapon
  69.         set_equip_text(@data)
  70.       when RPG::Armor
  71.         set_equip_text(@data)
  72.       when RPG::Skill
  73.         set_skill_text(@data)
  74.       end
  75.     end
  76.     #------------------------------------------------------------------------
  77.     # ● 获得内容的宽
  78.     #------------------------------------------------------------------------
  79.     def get_width(str)
  80.       return self.contents.text_size(str.to_s).width
  81.     end
  82.     #------------------------------------------------------------------------
  83.     # ● 描绘装备资料
  84.     #------------------------------------------------------------------------
  85.     def set_equip_text(equip)
  86.       self.contents = Bitmap.new(320, 380)
  87.       self.contents.clear
  88.       self.contents.font.name = ["黑体","方正像素16","宋体"]
  89.       self.contents.font.color = normal_color
  90.       Picture.dispose(@back)
  91.       Picture.dispose(@edge)
  92.       x = y = 0
  93.       # 图标描绘
  94.       bitmap = RPG::Cache.new("Graphics/Goods/#{equip.icon_name}")  #<----待设置
  95.       self.contents.blt(0, 0, bitmap, bitmap.rect)
  96.       # 名字描绘
  97.       self.contents.font.color = Color.new(255, 255, 128, 255)
  98.       self.contents.font.size = 20
  99.       self.contents.draw_text(120, 0, get_width(equip.name), 20, equip.name)
  100.       # 说明描绘
  101.       x = 0
  102.       y += 1
  103.       description = equip.description.clone
  104.       while ((text = description.slice!(/./m)) != nil)
  105.         self.contents.font.color = normal_color
  106.         self.contents.font.size = 15
  107.         # 描绘文字
  108.         self.contents.draw_text(x + 120, y * 15 + 5, 15, 15, text)
  109.         # x 为要描绘文字的加法运算
  110.         x += self.contents.text_size(text).width
  111.         if x == 13 * 15
  112.           x = 0
  113.           y += 1
  114.         end
  115.       end
  116.       # 装备条件
  117.       x = 0
  118.       y += 1
  119.       text = "【装备条件】等级#{equip.level}"
  120.       self.contents.draw_text(120, y * 15 + 5, get_width(text), 15, text)
  121.       # 装备角色
  122.       case equip
  123.       when RPG::Weapon
  124.         x = 0
  125.         y += 1
  126.         text = "【装备角色】"
  127.         for i in 0...equip.element_set.size
  128.           if equip.element_set[i] > 10 and equip.element_set[i] < 23
  129.             text += $data_system.elements[equip.element_set[i]]
  130.           end
  131.         end
  132.         self.contents.draw_text(120, y * 15 + 5, get_width(text), 15, text)
  133.       when RPG::Armor
  134.         x = 0
  135.         y += 1
  136.         text = "【装备角色】男"               #<---------------------待设置
  137.         self.contents.draw_text(120, y * 15 + 5, get_width(text), 15, text)
  138.       end
  139.       # 等级五行
  140.       x = 0
  141.       y += 1
  142.       text = "等级 #{equip.level} 五行 #{equip.f_element}"
  143.       self.contents.font.color = Color.new(248,252,0)
  144.       self.contents.draw_text(120, y * 15 + 5, get_width(text), 15, text)
  145.       case equip
  146.       # 命中伤害
  147.       when RPG::Weapon
  148.         x = 0
  149.         y += 1
  150.         text = " 伤害 +#{equip.atk}"
  151.         self.contents.draw_text(120, y * 15 + 5, get_width(text), 15, text)
  152.       # 敏捷防御
  153.       when RPG::Armor                #<---------------------待设置
  154.         # 帽子
  155.         if equip.guard_element_set.include?(6)    # 魔法 +10 防御 +10
  156.           txt = "魔法 +#{equip.mp} " unless equip.sp.zero?
  157.         # 项链
  158.         elsif equip.guard_element_set.include?(7) # 灵力 +10
  159.           txt = "灵力 +#{equip.int_plus} " unless equip.int_plus.zero?
  160.         # 衣服
  161.         elsif equip.guard_element_set.include?(8) # 体质 +10 防御 +10
  162.           txt = "体质 +#{equip.mdef} " unless equip.mdef.zero?
  163.         # 腰带
  164.         elsif equip.guard_element_set.include?(9) # 气血 +10 防御 +10
  165.           txt = "气血 +#{equip.hp} " unless equip.hp.zero?
  166.         # 鞋子
  167.         elsif equip.guard_element_set.include?(10)# 敏捷 +10 防御 +10
  168.           txt = "速度 +#{equip.agi_plus} " unless equip.agi_plus.zero?
  169.         end
  170.         x = 0
  171.         y += 1
  172.         txt = txt.to_s + "防御 +#{equip.pdef}" unless equip.pdef.zero?
  173.         self.contents.draw_text(120, y * 15 + 5, get_width(txt), 15, txt)
  174.       end
  175.       # 魔法防御描绘
  176.       unless equip.mdef.zero? or equip.guard_element_set.include?(8)
  177.         x = 0
  178.         y += 1
  179.         text = "体质 +" + equip.mdef.to_s
  180.         self.contents.font.color = Color.new(0,255,0)
  181.         self.contents.draw_text(120, y * 15 + 5, get_width(text), 15, text)
  182.       end
  183.       # 魔力描绘
  184.       unless equip.int_plus.zero? or equip.guard_element_set.include?(7)
  185.         x = 0
  186.         y += 1
  187.         text = "魔力 +" + equip.int_plus.to_s
  188.         self.contents.draw_text(120, y * 15 + 5, get_width(text), 15, text)
  189.       end
  190.       # 力量描绘
  191.       unless equip.str_plus.zero?
  192.         x = 0
  193.         y += 1
  194.         text = "力量 +" + equip.str_plus.to_s
  195.         self.contents.draw_text(120, y * 15 + 5, get_width(text), 15, text)
  196.       end
  197.       # 灵巧描绘
  198.       unless equip.dex_plus.zero?
  199.         x = 0
  200.         y += 1
  201.         text = "耐力 +"+ equip.dex_plus.to_s
  202.         self.contents.draw_text(120, y * 15 + 5, get_width(text), 15, text)
  203.       end
  204.       # 速度描绘
  205.       unless equip.agi_plus.zero? or equip.guard_element_set.include?(10)
  206.         x = 0
  207.         y += 1
  208.         text = "速度 +"+ equip.agi_plus.to_s
  209.         self.contents.draw_text(120, y * 15 + 5, get_width(text), 15, text)
  210.       end
  211.       # 特技
  212.  
  213.       # 特效
  214.  
  215.       # 设置窗口大小
  216.       self.width = 347
  217.       self.height = (y + 1) * 15 + 37
  218.       @back,@edge = System.draw_skin(self.x+5, self.y+10, self.z, self.width-10, self.height-20, normal_color, Color.new(17,17,17,180))
  219.     end
  220.     #--------------------------------------------------------------------------
  221.     # ● 设置可见标记
  222.     #--------------------------------------------------------------------------
  223.     def visibles=(value)
  224.       x,y = Mouse.get_mouse_pos
  225.       self.x,self.y = x - self.width / 2,y + 20
  226.       self.x = 0 if self.x < 0
  227.       self.y = 0 if self.y < 0
  228.       if self.y + self.height > 470
  229.         self.y = y - 20 - self.height
  230.       end
  231.       if self.x + self.width > 640
  232.         self.x = 640 - self.width
  233.       end
  234.       if self.y + self.height > 480
  235.         self.y = 480 - self.height
  236.       end
  237.       self.visible = value
  238.       if Picture.exist?(@back)
  239.         @back.visible = @edge.visible = self.visible
  240.         @back.x,@back.y = self.x + 6,self.y + 11
  241.         @edge.x,@edge.y = self.x + 5,self.y + 10
  242.       end
  243.     end
  244.     #--------------------------------------------------------------------------
  245.     # ● 释放
  246.     #--------------------------------------------------------------------------
  247.     def dispose
  248.       super
  249.       Picture.dispose(@back)
  250.       Picture.dispose(@edge)
  251.     end
  252. #############################################
  253.   #--------------------------------------------------------------------------
  254.   # ● 物品帮助窗口
  255.   #--------------------------------------------------------------------------
  256.   def set_item_text(item)
  257.     # 取得描述
  258.     description = item.description.clone
  259.     # 取得属性、附加状态、解除状态之副本
  260.     element_set = item.element_set.clone
  261.     plus_state_set = item.plus_state_set.clone
  262.     minus_state_set = item.minus_state_set.clone
  263.     # 初始化数据设定
  264.     x = 0
  265.     y = 0
  266.     h = 0
  267.     name_size = 18 # 名字文字大小
  268.     size = 14      # 描述文字大小
  269.     word = 12      # 每行的描述文字数
  270.     move = 120      # 全体描述偏移幅度
  271.     # 基本文字设定(1)
  272.     phrase = {}
  273.     phrase["scope"] = "范围:"
  274.     phrase["price"] = "价格:"
  275.     phrase["recover_hp_rate"] = "HP 回复率:"
  276.     phrase["recover_hp"] = "HP 回复量:"
  277.     phrase["recover_sp_rate"] = "SP 回复率:"
  278.     phrase["recover_sp"] = "SP 回复量:"
  279.     phrase["elements"] = "属性:"
  280.     phrase["plus"] = "附加"
  281.     phrase["minus"] = "解除"
  282.     phrase["states"] = "状态"
  283.     # 基本文字设定(2)
  284.     scope ={}
  285.     scope[0] = "特殊物品"
  286.     scope[1] = "特殊物品"
  287.     scope[2] = "敌单体"
  288.     scope[3] = "敌全体"
  289.     scope[4] = "己方单体"
  290.     scope[5] = "己方全体"
  291.     scope[6] = "己方昏死单体"
  292.     scope[7] = "己方昏死全体"
  293.     scope[8] = "使用者"
  294.     # 基本文字设定(3)
  295.     parameter_type = {}
  296.     parameter_type[1] = "MaxHP"
  297.     parameter_type[2] = "MaxSP"
  298.     parameter_type[3] = $data_system.words.str
  299.     parameter_type[4] = $data_system.words.dex
  300.     parameter_type[5] = $data_system.words.agi
  301.     parameter_type[6] = $data_system.words.int
  302. #####################################################################
  303.     # 依显示内容确定自身高
  304.     h = (description.size / 3 / word)
  305.     h += 1 if (description.size / 3 % word)> 0
  306.     now_h = h
  307.     h += 3  # 空行,效果范围,价格
  308.     h += 1 unless item.recover_hp_rate.zero?
  309.     h += 1 unless item.recover_hp.zero?
  310.     h += 1 unless item.recover_sp_rate.zero?
  311.     h += 1 unless item.recover_sp.zero?
  312.     h += 1 unless item.parameter_type.zero?
  313.     h += 1 unless element_set[0].nil?
  314.     h += 1 unless element_set[4].nil?
  315.     h += (1 + plus_state_set.size) unless plus_state_set.empty?
  316.     h += (1 + minus_state_set.size) unless minus_state_set.empty?
  317.     # 图片显示高度
  318.     h = 6 + now_h if (h - now_h) < 6
  319.     # 换算高度
  320.     self.height = h * size + name_size + 32
  321. #####################################################################
  322.     # 生成背景
  323.  
  324.     self.contents = Bitmap.new(self.width =347, self.height - 32)
  325.     self.contents.clear
  326.  
  327.     @back,@edge = System.draw_skin(self.x+5, self.y+10, self.z, self.width-10, self.height-20, normal_color, Color.new(17,17,17,180))
  328.  
  329.  
  330.     # 名字描绘
  331.     text = item.name
  332.     # 当没有资料的时候
  333.     if text.nil? or $help_visible == false
  334.       self.visible = false
  335.       return
  336.     else
  337.       self.visible = true
  338.     end
  339.  
  340.           self.contents.font.color = Color.new(255, 255, 128, 255)
  341.       self.contents.font.size = 20
  342.  
  343.  
  344.     self.contents.draw_text(x + move, 0, text.size * 7, name_size, text, 0)
  345.     # 说明描绘
  346.     x = 0
  347.     y += 1
  348.     while ((text = description.slice!(/./m)) != nil)
  349.       self.contents.font.color = normal_color
  350.       self.contents.font.size = size
  351.       self.contents.draw_text(x * size + move, y * size + 5, size, size, text, 0)
  352.       x += 1
  353.       if x == word
  354.         x = 0
  355.         y += 1
  356.       end
  357.     end
  358.     # 图标描绘
  359.     bitmap = RPG::Cache.new("Graphics/Goods/#{item.icon_name}") unless item.icon_name.nil?
  360.     self.contents.blt(0, 0, bitmap, bitmap.rect)
  361.   end
  362.   #--------------------------------------------------------------------------
  363.   # ● 技能帮助窗口
  364.   #--------------------------------------------------------------------------
  365.   def set_skill_text(skill, icon = false)
  366.     # 取得描述
  367.     description = skill.description.clone
  368.     # 取得属性、附加状态、解除状态之副本
  369.     element_set = skill.element_set.clone
  370.     plus_state_set = skill.plus_state_set.clone
  371.     minus_state_set = skill.minus_state_set.clone
  372.     # 初始化设定
  373.     x = 0
  374.     y = 0
  375.     h = 0
  376.     name_size = 18 # 名字文字大小
  377.     size = 14      # 描述文字大小
  378.     word = 12      # 每行的描述文字数
  379.     move = 80      # 全体描述偏移幅度
  380.     icon_move = element_set.include?(25)? 45: 0
  381.     word = element_set.include?(25)? 10: 12
  382.     # 基本文字设定(1)
  383.     phrase = {}
  384.     phrase["scope"] = "范围:"
  385.     phrase["power"] = "威力:"
  386.     phrase["cost_sp"] = "消耗SP:"
  387.     phrase["hit_rate"] = "命中率:"
  388.     phrase["elements"] = "攻击属性"
  389.     phrase["plus"] = "附加"
  390.     phrase["minus"] = "解除"
  391.     phrase["states"] = "状态"
  392.     # 基本文字设定(2)
  393.     scope = {}
  394.     scope[0] = "特殊技能"
  395.     scope[1] = "敌单体"
  396.     scope[2] = "敌全体"
  397.     scope[3] = "我方单体"
  398.     scope[4] = "我方全体"
  399.     scope[5] = "我方昏死(单体)"
  400.     scope[6] = "我方昏死(全体)"
  401.     scope[7] = "自身"
  402. #####################################################################
  403.     #由描叙确定高
  404.     h = description.size / 3 / word
  405.     h += 1 if (description.size % 3 / word) > 0
  406.     h += 4 # 空行,效果范围,消费SP,命中率
  407.     unless element_set.include?(25)
  408.     h += 1 unless skill.power.zero?
  409.     h += 1 unless element_set.empty?
  410.     h += 1 unless element_set[4].nil?
  411.     h += plus_state_set.size
  412.     h += minus_state_set.size
  413.     end
  414.     # 换算高度
  415.     self.height = h * size + name_size + 32
  416. #####################################################################
  417.     self.contents = Bitmap.new(self.width - 32, self.height - 32)
  418.     self.contents.clear
  419.     # 名字描绘
  420.     text = skill.name
  421.     # 当没有资料的时候
  422.     if text.nil? or $help_visible == false
  423.       self.visible = false
  424.       return
  425.     else
  426.       self.visible = true
  427.     end
  428.     self.contents.font.color = Color.new(255, 255, 128, 255)
  429.     self.contents.font.size = name_size
  430.     self.contents.draw_text(icon_move, 0, text.size * 7, name_size, text, 0)
  431.     # 说明描述
  432.     x = 0
  433.     y += element_set.include?(25)? 1.5 : 1
  434.     text = description
  435.     while ((text = description.slice!(/./m)) != nil)
  436.       self.contents.font.color = normal_color
  437.       self.contents.font.size = size
  438.       self.contents.draw_text(x * size + icon_move, y * size + 5, size, size, text, 0)
  439.       x += 1
  440.       if x == word # 每行10个字
  441.         x = 0
  442.         y += 1
  443.       end
  444.     end
  445.     # 技能包含25号属性的情况下
  446.     if element_set.include?(25)
  447.       # 图标描绘
  448.       bitmap = RPG::Cache.icon(skill.icon_name) unless skill.icon_name.nil?
  449.       self.contents.blt(0, 0, bitmap, bitmap.rect)
  450.       self.height = y * size + 5 + name_size + 32
  451.       return
  452.     end
  453.     # 攻击范围
  454.     text = phrase["scope"] + scope[skill.scope]
  455.     x = 0
  456.     y += 1
  457.     self.contents.font.color = normal_color
  458.     self.contents.font.size = size
  459.     self.contents.draw_text(x, y * size + 5, text.size * 6, size, text, 0)
  460.     # 威力描述
  461.     unless skill.power.zero?
  462.       power = skill.power > 0 ? skill.power : -1 * skill.power
  463.       text = phrase["power"] + power.to_s
  464.       x = 0
  465.       y += 1
  466.       self.contents.font.color = normal_color
  467.       self.contents.font.size = size  
  468.       self.contents.draw_text(x, y * size + 5, text.size * 6, size, text, 0)
  469.     end  
  470.     # 消耗SP描述
  471.     text = phrase["cost_sp"] + skill.sp_cost.to_s
  472.     x = 0
  473.     y += 1
  474.     self.contents.font.color = normal_color
  475.     self.contents.font.size = size   
  476.     self.contents.draw_text(x, y * size + 5, text.size * 6, size, text, 0)
  477.     # 命中率描述
  478.     text = phrase["hit_rate"] + skill.hit.to_s + "%"
  479.     x = 0
  480.     y += 1
  481.     self.contents.font.color = normal_color
  482.     self.contents.font.size = size
  483.     self.contents.draw_text(x, y * size + 5, text.size * 6, size, text, 0)
  484.     # 攻击属性
  485.     if element_set.size > 0
  486.       text = phrase["elements"]
  487.       for i in 0...element_set.size
  488.         if i < 4
  489.           text += $data_system.elements[element_set[i]]
  490.         else
  491.           break
  492.         end
  493.       end
  494.       x = 0
  495.       y += 1
  496.       self.contents.font.color = normal_color
  497.       self.contents.font.size = size
  498.       self.contents.draw_text(x, y * size + 5, text.size * 6, size, text, 0)
  499.     end
  500.     if element_set.size >= 5
  501.       text = ""
  502.       for i in 4...element_set.size
  503.         text += $data_system.elements[element_set[i]]
  504.       end
  505.       x = (phrase["elements"].size) * 3
  506.       y += 1
  507.       self.contents.font.color = normal_color
  508.       self.contents.font.size = size
  509.       self.contents.draw_text(x, y * size + 5, text.size * 6, size, text, 0)
  510.     end
  511.     # 状态附加
  512.     unless plus_state_set.empty?
  513.       text = phrase["plus"]
  514.       x = 0
  515.       y += 1
  516.       self.contents.font.color = normal_color
  517.       self.contents.font.size = size
  518.       self.contents.draw_text(x, y * size + 5, text.size * 6, size, text, 0)
  519.       plus_state_set.each do |plus_state|
  520.         y += 1
  521.         text = $data_states[plus_state].name
  522.         self.contents.font.color = normal_color
  523.         self.contents.font.size = size
  524.         self.contents.draw_text(x, y * size + 5, text.size * 6, size, text, 0)        
  525.       end
  526.     end
  527.     # 状态解除
  528.     unless minus_state_set.empty?
  529.       text = phrase["minus"]
  530.       x = 0
  531.       y += 1
  532.       self.contents.font.color = normal_color
  533.       self.contents.font.size = size
  534.       self.contents.draw_text(x, y * size + 5, text.size * 6, size, text, 0)
  535.       minus_state_set.each do |minus_state|
  536.         y += 1
  537.         text = $data_states[minus_state].name
  538.         self.contents.font.color = normal_color
  539.         self.contents.font.size = size
  540.         self.contents.draw_text(x, y * size + 5, text.size * 6, size, text, 0)
  541.       end
  542.     end
  543.   end
  544.   #--------------------------------------------------------------------------
  545.   # ● 设置角色
  546.   #     actor : 要显示状态之角色
  547.   #--------------------------------------------------------------------------
  548.   def set_actor(actor)
  549.     self.contents = Bitmap.new(self.width - 32, self.height - 32) if self.contents.nil?
  550.     if actor != @actor
  551.       self.contents.clear
  552.       draw_actor_name(actor, 4, 0)
  553.       draw_actor_state(actor, 140, 0)
  554.       draw_actor_hp(actor, 284, 0)
  555.       draw_actor_sp(actor, 460, 0)
  556.       @actor = actor
  557.       @text = nil
  558.       self.visible = true
  559.     end
  560.   end
  561.   #--------------------------------------------------------------------------
  562.   # ● 设置敌人
  563.   #     enemy : 要显示名字和状态的敌人
  564.   #--------------------------------------------------------------------------
  565.   def set_enemy(enemy)
  566.     self.contents = Bitmap.new(self.width - 32, self.height - 32) if self.contents.nil?
  567.     text = enemy.name.sub(/\\[Ff]\[([0-9]+)\]/) {""}
  568.     state_text = make_battler_state_text(enemy, 112, false)
  569.     if state_text != ""
  570.       text += "  " + state_text
  571.     end
  572.     set_text(text, 1)
  573.     self.visible = true
  574.   end
  575. =begin
  576.   #--------------------------------------------------------------------------
  577.   # ● 校正帮助窗口位置
  578.   #--------------------------------------------------------------------------
  579.   def set_pos(x, y, width, oy, index, column_max)
  580.     #光标坐标
  581.     cursor_width = width / column_max - 32
  582.     xx = index % column_max * (cursor_width + 32)
  583.     yy = index / column_max * 32 - oy
  584.     self.x = xx + x + 150
  585.     self.y = yy + y + 30
  586.     if self.x + self.width > 640
  587.       self.x = 640 - self.width
  588.     end
  589.     if self.y + self.height > 480
  590.       self.y = 480 - self.height
  591.     end
  592.   end
  593. =end
  594.   #--------------------------------------------------------------------------
  595.   # ● 校正帮助窗口位置
  596.   #--------------------------------------------------------------------------
  597.   def set_pos2(x, y)
  598.     #光标坐标
  599.     self.x = x
  600.     self.y = y
  601.     if self.x + self.width > 640
  602.       self.x = 640 - self.width
  603.     end
  604.     if self.y + self.height > 480
  605.       self.y = 480 - self.height
  606.     end
  607.   end
  608. end
  609. end


增加的值.怎么在这个详情脚本中描绘出来?
作者: 无忧谷主幻    时间: 2014-10-4 21:48
脚本不是写了么?多看看注释
给装备名后用“,”追加数值
例如:  铜剑,500,200  那个这个武器会增加500点HP和200点SP
作者: chd114    时间: 2014-10-4 21:55
第一个脚本用这个
  1. p $data_weapon[1].name.split(/,/)[1]
复制代码
第二个脚本用这个
  1. p equip.name.split(/,/)[1]
复制代码

作者: jiahui5592986    时间: 2014-10-4 22:12
chd114 发表于 2014-10-4 21:55
第一个脚本用这个第二个脚本用这个
  1.         if equip.guard_element_set.include?(6)    # 魔法 +10 防御 +10
  2.           txt = "魔法 +#{equip.mp} " unless equip.name.split(/,/)[2].zero?
  3.         # 项链
  4.         elsif equip.guard_element_set.include?(7) # 灵力 +10
  5.           txt = "灵力 +#{equip.int_plus} " unless equip.int_plus.zero?
  6.         # 衣服
  7.         elsif equip.guard_element_set.include?(8) # 体质 +10 防御 +10
  8.           txt = "体质 +#{equip.mdef} " unless equip.mdef.zero?
  9.         # 腰带
  10.         elsif equip.guard_element_set.include?(9) # 气血 +10 防御 +10
  11.           txt = "气血 +#{equip.hp} " unless equip.name.split(/,/)[1].zero?
  12.         # 鞋子
  13.         elsif equip.guard_element_set.include?(10)# 敏捷 +10 防御 +10
  14.           txt = "速度 +#{equip.agi_plus} " unless equip.agi_plus.zero?
  15.         end
复制代码
是这样么.可是会报错额....还有你说的第一个添加那个脚本.我没懂
作者: chd114    时间: 2014-10-4 22:15
jiahui5592986 发表于 2014-10-4 05:12
是这样么.可是会报错额....还有你说的第一个添加那个脚本.我没懂

第一个只是给你放进第一个脚本测试玩的,第二个报错了?第二个是让你放进物品介绍的那个Window_Help里测试玩的
作者: jiahui5592986    时间: 2014-10-4 22:32
chd114 发表于 2014-10-4 22:15
第一个只是给你放进第一个脚本测试玩的,第二个报错了?第二个是让你放进物品介绍的那个Window_Help里测 ...

我知道...
  1.         if equip.guard_element_set.include?(6)    # 魔法 +10 防御 +10
  2.           txt = "魔法 +#{equip.mp} " unless equip.name.split(/,/)[2].zero?
  3.         # 项链
  4.         elsif equip.guard_element_set.include?(7) # 灵力 +10
  5.           txt = "灵力 +#{equip.int_plus} " unless equip.int_plus.zero?
  6.         # 衣服
  7.         elsif equip.guard_element_set.include?(8) # 体质 +10 防御 +10
  8.           txt = "体质 +#{equip.mdef} " unless equip.mdef.zero?
  9.         # 腰带
  10.         elsif equip.guard_element_set.include?(9) # 气血 +10 防御 +10
  11.           txt = "气血 +#{equip.hp} " unless equip.name.split(/,/)[1].zero?
  12.         # 鞋子
  13.         elsif equip.guard_element_set.include?(10)# 敏捷 +10 防御 +10
  14.           txt = "速度 +#{equip.agi_plus} " unless equip.agi_plus.zero?
  15.         end
复制代码
装备增加的气血和魔法 .是这样描绘么?
作者: chd114    时间: 2014-10-4 22:46
jiahui5592986 发表于 2014-10-4 05:32
我知道...装备增加的气血和魔法 .是这样描绘么?

理论上这样写
作者: jiahui5592986    时间: 2014-10-4 23:00
chd114 发表于 2014-10-4 22:46
理论上这样写

这个是错误.可不可以新建个数据组.在里面写上防具所增加的气血或者魔法.然后在物品详情里面描绘那个值?

1.jpg (10.6 KB, 下载次数: 7)

1.jpg

作者: RyanBern    时间: 2014-10-5 09:20
  1. text = "魔法 +#{equip.sp} " unless equip.sp.zero?
复制代码
应该是这样。不过我看到了装备等级限制,所以这个脚本和装备增加sp hp 脚本极可能有冲突,所以最好把装备等级脚本也发一下。
另外的一个问题就是,其实我没懂为什么要加一句if equip.guard_element_set.include?(XX),难道描绘字符串与否还要看防具的属性防御么?
作者: chd114    时间: 2014-10-5 09:59
jiahui5592986 发表于 2014-10-4 06:00
这个是错误.可不可以新建个数据组.在里面写上防具所增加的气血或者魔法.然后在物品详情里面描绘那个值? ...

你传工程上来吧···
作者: jiahui5592986    时间: 2014-10-5 11:43
RyanBern 发表于 2014-10-5 09:20
应该是这样。不过我看到了装备等级限制,所以这个脚本和装备增加sp hp 脚本极可能有冲突,所以最好把装备等 ...

OK了。谢谢




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