Project1

标题: 请问如何实现某个属性在更改装备时数值变化的颜色相反 [打印本页]

作者: Zyhond    时间: 2023-10-10 20:52
标题: 请问如何实现某个属性在更改装备时数值变化的颜色相反
一般来说,在修改装备的时候,显示属性值的改变,一般使用绿色表示提升,用红色表示下降。

我在游戏中使用‘负重’来代替‘幸运’这一属性,如果负重过高则会影响回避率,是一种负面属性,所以想让这个属性的提升变为红色,下降变为绿色,想请教各位大佬有没有好的办法,谢谢~~!

Snipaste_2023-10-10_20-51-00.png (45.39 KB, 下载次数: 57)

Snipaste_2023-10-10_20-51-00.png

作者: 小秋橙    时间: 2023-10-10 20:52
在rmmz_managers.js中可以找到以下代码来控制颜色,需要对它的定义进行改写来加入属性ID参数,同时在调用它的两个地方传入属性ID。
JS 代码复制
  1. ColorManager.paramchangeTextColor = function(change, paramId) {
  2.     if (paramId === 7) change = -change; // 上一行为修改内容(添加paramId参数),本行为新增内容,表示幸运值(7号属性)为负面属性,增加为红,减少为绿
  3.     if (change > 0) {
  4.         return this.powerUpColor();
  5.     } else if (change < 0) {
  6.         return this.powerDownColor();
  7.     } else {
  8.         return this.normalColor();
  9.     }
  10. };

下面两段代码都在rmmz_windows.js文件。
JS 代码复制
  1. Window_EquipStatus.prototype.drawNewParam = function(x, y, paramId) {
  2.     const paramWidth = this.paramWidth();
  3.     const newValue = this._tempActor.param(paramId);
  4.     const diffvalue = newValue - this._actor.param(paramId);
  5.     this.changeTextColor(ColorManager.paramchangeTextColor(diffvalue, paramId)); // 本行为修改内容,添加paramId参数
  6.     this.drawText(newValue, x, y, paramWidth, "right");
  7. };
  8. // 以上为第2570行,以下为第3730行。
  9. Window_ShopStatus.prototype.drawActorParamChange = function(x, y, actor, item1) {
  10.     const width = this.innerWidth - this.itemPadding() - x;
  11.     const paramId = this.paramId();
  12.     const change = this._item.params[paramId] - (item1 ? item1.params[paramId] : 0);
  13.     this.changeTextColor(ColorManager.paramchangeTextColor(change, paramId)); // 本行为修改内容,添加paramId参数
  14.     this.drawText((change > 0 ? "+" : "") + change, x, y, width, "right");
  15. };

作者: Zyhond    时间: 2023-10-11 09:38
本帖最后由 Zyhond 于 2023-10-11 09:39 编辑

修改了代码之后就弄好了,现在就可以实现想要的效果了

谢谢大佬~!




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