Project1
标题: 请问如何实现某个属性在更改装备时数值变化的颜色相反 [打印本页]
作者: Zyhond 时间: 2023-10-10 20:52
标题: 请问如何实现某个属性在更改装备时数值变化的颜色相反
一般来说,在修改装备的时候,显示属性值的改变,一般使用绿色表示提升,用红色表示下降。
我在游戏中使用‘负重’来代替‘幸运’这一属性,如果负重过高则会影响回避率,是一种负面属性,所以想让这个属性的提升变为红色,下降变为绿色,想请教各位大佬有没有好的办法,谢谢~~!
-
Snipaste_2023-10-10_20-51-00.png
(45.39 KB, 下载次数: 57)
作者: 小秋橙 时间: 2023-10-10 20:52
在rmmz_managers.js中可以找到以下代码来控制颜色,需要对它的定义进行改写来加入属性ID参数,同时在调用它的两个地方传入属性ID。
ColorManager.paramchangeTextColor = function(change, paramId) {
if (paramId === 7) change = -change; // 上一行为修改内容(添加paramId参数),本行为新增内容,表示幸运值(7号属性)为负面属性,增加为红,减少为绿
if (change > 0) {
return this.powerUpColor();
} else if (change < 0) {
return this.powerDownColor();
} else {
return this.normalColor();
}
};
ColorManager.paramchangeTextColor = function(change, paramId) {
if (paramId === 7) change = -change; // 上一行为修改内容(添加paramId参数),本行为新增内容,表示幸运值(7号属性)为负面属性,增加为红,减少为绿
if (change > 0) {
return this.powerUpColor();
} else if (change < 0) {
return this.powerDownColor();
} else {
return this.normalColor();
}
};
下面两段代码都在rmmz_windows.js文件。
Window_EquipStatus.prototype.drawNewParam = function(x, y, paramId) {
const paramWidth = this.paramWidth();
const newValue = this._tempActor.param(paramId);
const diffvalue = newValue - this._actor.param(paramId);
this.changeTextColor(ColorManager.paramchangeTextColor(diffvalue, paramId)); // 本行为修改内容,添加paramId参数
this.drawText(newValue, x, y, paramWidth, "right");
};
// 以上为第2570行,以下为第3730行。
Window_ShopStatus.prototype.drawActorParamChange = function(x, y, actor, item1) {
const width = this.innerWidth - this.itemPadding() - x;
const paramId = this.paramId();
const change = this._item.params[paramId] - (item1 ? item1.params[paramId] : 0);
this.changeTextColor(ColorManager.paramchangeTextColor(change, paramId)); // 本行为修改内容,添加paramId参数
this.drawText((change > 0 ? "+" : "") + change, x, y, width, "right");
};
Window_EquipStatus.prototype.drawNewParam = function(x, y, paramId) {
const paramWidth = this.paramWidth();
const newValue = this._tempActor.param(paramId);
const diffvalue = newValue - this._actor.param(paramId);
this.changeTextColor(ColorManager.paramchangeTextColor(diffvalue, paramId)); // 本行为修改内容,添加paramId参数
this.drawText(newValue, x, y, paramWidth, "right");
};
// 以上为第2570行,以下为第3730行。
Window_ShopStatus.prototype.drawActorParamChange = function(x, y, actor, item1) {
const width = this.innerWidth - this.itemPadding() - x;
const paramId = this.paramId();
const change = this._item.params[paramId] - (item1 ? item1.params[paramId] : 0);
this.changeTextColor(ColorManager.paramchangeTextColor(change, paramId)); // 本行为修改内容,添加paramId参数
this.drawText((change > 0 ? "+" : "") + change, x, y, width, "right");
};
作者: Zyhond 时间: 2023-10-11 09:38
本帖最后由 Zyhond 于 2023-10-11 09:39 编辑
修改了代码之后就弄好了,现在就可以实现想要的效果了
谢谢大佬~!
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |