| 赞 | 0 |
| VIP | |
| 好人卡 | |
| 积分 | 1 |
| 经验 | |
| 最后登录 | 2017-6-30 |
| 在线时间 | 53 小时 |
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 53 小时
- 注册时间
- 2008-9-14
- 回帖
- 21
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有账号?注册会员
×
本帖最后由 cvb666 于 2016-8-28 18:34 编辑
点击展开/收起 module ActorQuality
#总评分级次
QUALITY_AMOUNT = 8
#各级次显示字母
QUALITY_LETTER = [ "D", "C", "B", "A", "S", "SS", "SSS", "SSSS"]
#每级评分
QUALITY_MARK = [1, 2, 3, 4, 5, 6, 7, 8]
#分母
QUALITY_DENOMINATOR = 1000
#各级次所对应分子,配合分母就是概率
#QUALITY_MOLECULAR = [1, 3, 7, 15, 31, 15, 7, 3, 1]
QUALITY_MOLECULAR = [180, 80, 60, 16, 6, 3, 2, 1]
#各级次对应成长率
QUALITY_CHANGE = [0.25, 0.33, 0.5, 0.85, 1.5, 2.3, 3, 4]
#是否显示
QUALITY_SHOW = false
end
class Game_Actor < Game_Battler
attr_accessor :tan_quality_param#各属性级次数组
attr_accessor :tan_all_quality_param#总评分
attr_accessor :tan_game_actor_temp#临时变量
#--------------------------------------------------------------------------
# ● 属性级次初始化
#--------------------------------------------------------------------------
def init_tan_quality_param
@tan_quality_param = [0] * 8#各属性级次数组初始化
@tan_all_quality_param = 0#总评分初始化
@tan_game_actor_temp = [0] * ActorQuality::QUALITY_AMOUNT#临时变量初始化
@tan_game_actor_temp.count.times {|i|
if i == 0
@tan_game_actor_temp = ActorQuality::QUALITY_MOLECULAR
else
@tan_game_actor_temp = @tan_game_actor_temp[i-1] + ActorQuality::QUALITY_MOLECULAR
end
}
8.times {|i|
v = rand(ActorQuality::QUALITY_DENOMINATOR)
@tan_game_actor_temp.each_with_index {|i2, i3|
if v < i2
@tan_quality_param = i3
break
end
}
@tan_all_quality_param += ActorQuality::QUALITY_MARK[@tan_quality_param]
}
init_tan_all_quality_param
self.hp = self.mhp
self.mp = self.mmp
end
#--------------------------------------------------------------------------
# ● 计算总评分,并将总评分转化成评价
#--------------------------------------------------------------------------
def init_tan_all_quality_param
@tan_all_quality_param = (@tan_all_quality_param / 8.0).round
ActorQuality::QUALITY_MARK.count.times {|i|
if @tan_all_quality_param <= ActorQuality::QUALITY_MARK
@tan_all_quality_param = i
break
end
}
end
#--------------------------------------------------------------------------
# ● 设置(人物初始化重写)
#--------------------------------------------------------------------------
alias tan_quality_setup setup
def setup(actor_id)
tan_quality_setup(actor_id)
init_tan_quality_param
end
#--------------------------------------------------------------------------
# ● 获取普通能力的基础值(重写)
#--------------------------------------------------------------------------
alias tan_quality_param_base param_base
def param_base(param_id)
v = tan_quality_param_base(param_id)
i = @tan_quality_param[param_id] if @tan_quality_param
v = v * ActorQuality::QUALITY_CHANGE.to_f if i
return v.to_i
end
#--------------------------------------------------------------------------
# ● 获取普通能力的最大值(为了防止属性爆表后还是999不能突破1000,特意修改该方法)
#--------------------------------------------------------------------------
def param_max(param_id)
return 99999
end
end
#==============================================================================
# ■ Window_Status
#------------------------------------------------------------------------------
# 状态画面中,显示角色基本信息的窗口。(新增评分信息)
#==============================================================================
class Window_Status < Window_Selectable
#--------------------------------------------------------------------------
# ● 绘制基本信息(增加HP、MP评分以及总评分)
#--------------------------------------------------------------------------
alias draw_basic_info_quality draw_basic_info
def draw_basic_info(x, y)
draw_basic_info_quality(x, y)
s = ActorQuality::QUALITY_LETTER[@actor.tan_all_quality_param] + "级"
draw_text(x + 45, y + line_height * 0, 108, line_height, s, 2)
s = ActorQuality::QUALITY_LETTER[@actor.tan_quality_param[0]]
draw_text(x + 120, y + line_height * 2, 36, line_height, s, 2)
s = ActorQuality::QUALITY_LETTER[@actor.tan_quality_param[1]]
draw_text(x + 120, y + line_height * 3, 36, line_height, s, 2)
end
#--------------------------------------------------------------------------
# ● 绘制能力值(增加其他属性评分)
#--------------------------------------------------------------------------
alias draw_parameters_actor_quality draw_parameters
def draw_parameters(x, y)
draw_parameters_actor_quality(x, y)
6.times {|i|
s = ActorQuality::QUALITY_LETTER[@actor.tan_quality_param[i + 2]]
change_color(normal_color)
draw_text(x + 200, y + line_height * i, 36, line_height, s, 2)
}
end
end
如何才能把 #各级次显示字母
QUALITY_LETTER = [ "D", "C", "B", "A", "S", "SS", "SSS", "SSSS"]
改变颜色啊?????????????
QUALITY_LETTER = [ '\C[1]D', "C", "B", "A", "S", "SS", "SSS", "SSSS"]
这个办法行不通
|
|