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

Project1

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

[已经解决] 【求助】关于附加状态后。

[复制链接]

Lv5.捕梦者 (版主)

梦石
20
星屑
1840
在线时间
6925 小时
注册时间
2012-12-14
帖子
11485

短篇十战斗者组别冠军开拓者贵宾短篇九勇士组亚军

跳转到指定楼层
1
发表于 2012-12-15 10:24:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 美丽晨露 于 2012-12-15 13:45 编辑

想这样实现效果。
如果附加状态后,被状态影响的能力值如果高于原来的数值的话
用红色字描绘;
如果附加状态后,被状态影响的能力值如果低于原来的数值的话
用蓝色字描绘;
请问要怎么做判断呢?
大家好,这里是晨露的说。请多多指教。
刚入门RM软件制作,请大家多多帮助我哦。
落雪君的欢乐像素教程,欢迎查阅。

Lv3.寻梦者

双子人

梦石
0
星屑
3195
在线时间
3618 小时
注册时间
2009-4-4
帖子
4154

开拓者

2
发表于 2012-12-15 13:14:59 | 只看该作者
都改好了,在Main前面加上去就可以了。
  1. #==============================================================================
  2. # ■ Window_Base
  3. #------------------------------------------------------------------------------
  4. #  游戏中全部窗口的超级类。
  5. #==============================================================================

  6. class Window_Base < Window
  7.   #--------------------------------------------------------------------------
  8.   # ● 描绘 HP
  9.   #     actor : 角色
  10.   #     x     : 描画目标 X 坐标
  11.   #     y     : 描画目标 Y 坐标
  12.   #     width : 描画目标的宽
  13.   #--------------------------------------------------------------------------
  14.   def draw_actor_hp(actor, x, y, width = 144)
  15.     # 描绘字符串 "HP"
  16.     self.contents.font.color = system_color
  17.     self.contents.draw_text(x, y, 32, 32, $data_system.words.hp)
  18.     # 计算描绘 MaxHP 所需的空间
  19.     if width - 32 >= 108
  20.       hp_x = x + width - 108
  21.       flag = true
  22.     elsif width - 32 >= 48
  23.       hp_x = x + width - 48
  24.       flag = false
  25.     end
  26.     # 描绘 HP(修改部分)
  27.     states_rate = 1.0
  28.     for i in actor.states
  29.       states_rate *= $data_states[i].maxhp_rate / 100.0
  30.     end

  31.     self.contents.font.color = actor.hp == 0 ? knockout_color :
  32.       actor.hp <= actor.maxhp / 4 ? crisis_color :
  33.       states_rate > 1.0 ? text_color(1) : states_rate < 1.0 ? text_color(2) : normal_color
  34.       
  35.     self.contents.draw_text(hp_x, y, 48, 32, actor.hp.to_s, 2)
  36.     # 描绘 MaxHP
  37.     if flag
  38.       self.contents.font.color = normal_color
  39.       self.contents.draw_text(hp_x + 48, y, 12, 32, "/", 1)
  40.       self.contents.draw_text(hp_x + 60, y, 48, 32, actor.maxhp.to_s)
  41.     end
  42.   end
  43.   #--------------------------------------------------------------------------
  44.   # ● 描绘 SP
  45.   #     actor : 角色
  46.   #     x     : 描画目标 X 坐标
  47.   #     y     : 描画目标 Y 坐标
  48.   #     width : 描画目标的宽
  49.   #--------------------------------------------------------------------------
  50.   def draw_actor_sp(actor, x, y, width = 144)
  51.     # 描绘字符串 "SP"
  52.     self.contents.font.color = system_color
  53.     self.contents.draw_text(x, y, 32, 32, $data_system.words.sp)
  54.     # 计算描绘 MaxSP 所需的空间
  55.     if width - 32 >= 108
  56.       sp_x = x + width - 108
  57.       flag = true
  58.     elsif width - 32 >= 48
  59.       sp_x = x + width - 48
  60.       flag = false
  61.     end
  62.     # 描绘 SP(修改部分)
  63.     states_rate = 1.0
  64.     for i in actor.states
  65.       states_rate *= $data_states[i].maxsp_rate / 100.0
  66.     end

  67.     self.contents.font.color = actor.sp == 0 ? knockout_color :
  68.       actor.hp <= actor.maxhp / 4 ? crisis_color :
  69.       states_rate > 1.0 ? text_color(1) : states_rate < 1.0 ? text_color(2) : normal_color
  70.       
  71.     self.contents.draw_text(sp_x, y, 48, 32, actor.sp.to_s, 2)
  72.     # 描绘 MaxSP
  73.     if flag
  74.       self.contents.font.color = normal_color
  75.       self.contents.draw_text(sp_x + 48, y, 12, 32, "/", 1)
  76.       self.contents.draw_text(sp_x + 60, y, 48, 32, actor.maxsp.to_s)
  77.     end
  78.   end
  79.   #--------------------------------------------------------------------------
  80.   # ● 描绘能力值
  81.   #     actor : 角色
  82.   #     x     : 描画目标 X 坐标
  83.   #     y     : 描画目标 Y 坐标
  84.   #     type  : 能力值种类 (0~6)
  85.   #--------------------------------------------------------------------------
  86.   def draw_actor_parameter(actor, x, y, type)
  87.     states_rate = 1.0
  88.     case type
  89.     when 0
  90.       parameter_name = $data_system.words.atk
  91.       parameter_value = actor.atk
  92.       for i in actor.states
  93.         states_rate *= $data_states[i].atk_rate / 100.0
  94.       end
  95.     when 1
  96.       parameter_name = $data_system.words.pdef
  97.       parameter_value = actor.pdef
  98.       for i in actor.states
  99.         states_rate *= $data_states[i].pdef_rate / 100.0
  100.       end
  101.     when 2
  102.       parameter_name = $data_system.words.mdef
  103.       parameter_value = actor.mdef
  104.       for i in actor.states
  105.         states_rate *= $data_states[i].mdef_rate / 100.0
  106.       end
  107.     when 3
  108.       parameter_name = $data_system.words.str
  109.       parameter_value = actor.str
  110.       for i in actor.states
  111.         states_rate *= $data_states[i].str_rate / 100.0
  112.       end
  113.     when 4
  114.       parameter_name = $data_system.words.dex
  115.       parameter_value = actor.dex
  116.       for i in actor.states
  117.         states_rate *= $data_states[i].dex_rate / 100.0
  118.       end
  119.     when 5
  120.       parameter_name = $data_system.words.agi
  121.       parameter_value = actor.agi
  122.       for i in actor.states
  123.         states_rate *= $data_states[i].agi_rate / 100.0
  124.       end
  125.     when 6
  126.       parameter_name = $data_system.words.int
  127.       parameter_value = actor.int
  128.       for i in actor.states
  129.         states_rate *= $data_states[i].int_rate / 100.0
  130.       end
  131.     end
  132.     self.contents.font.color = system_color
  133.     self.contents.draw_text(x, y, 120, 32, parameter_name)
  134.     self.contents.font.color = normal_color
  135.     self.contents.font.color = text_color(1) if states_rate > 1.0
  136.     self.contents.font.color = text_color(2) if states_rate < 1.0
  137.     self.contents.draw_text(x + 120, y, 36, 32, parameter_value.to_s, 2)
  138.   end
  139. end
复制代码

点评

关于HP\SP,能不能不描绘当前的数字,而是描绘最大值。该怎么修改?  发表于 2012-12-15 13:44

评分

参与人数 1梦石 +1 收起 理由
hcm + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
20
星屑
1840
在线时间
6925 小时
注册时间
2012-12-14
帖子
11485

短篇十战斗者组别冠军开拓者贵宾短篇九勇士组亚军

3
 楼主| 发表于 2012-12-15 13:43:52 | 只看该作者
hys111111 发表于 2012-12-15 13:14
都改好了,在Main前面加上去就可以了。

非常感谢
这种正是我想要的
谢谢你的帮忙
大家好,这里是晨露的说。请多多指教。
刚入门RM软件制作,请大家多多帮助我哦。
落雪君的欢乐像素教程,欢迎查阅。

回复 支持 反对

使用道具 举报

Lv3.寻梦者

双子人

梦石
0
星屑
3195
在线时间
3618 小时
注册时间
2009-4-4
帖子
4154

开拓者

4
发表于 2012-12-15 13:58:53 | 只看该作者
美丽晨露 发表于 2012-12-15 13:43
非常感谢
这种正是我想要的
谢谢你的帮忙

那就把70-72行与77行交换,33-35行与40行交换。

点评

谢谢,我明白了。  发表于 2012-12-15 14:52
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-28 09:12

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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