Project1
标题: 物品属性问题 [打印本页]
作者: 仟玖 时间: 2024-4-27 23:31
标题: 物品属性问题
怎样才能做到获得一个物品就加属性,失去的时候也会扣掉属性,比如获得一张卡角色就加100血量,卡失去后会扣掉那100血
作者: 泼墨漓江 时间: 2024-4-28 00:21
rpg_objects.js,Game_BattlerBase下有对角色mhp的定义,在那里添加if($gameParty.hasItem($dataItems[xxx])){value+=100}这样的内容即可
作者: 小秋橙 时间: 2024-4-28 09:22
rpg_objects.js 第 3847 行。
Game_Actor.prototype.paramPlus = function(paramId) {
var value = Game_Battler.prototype.paramPlus.call(this, paramId);
// 新增内容开始
if (paramId === 0) { // 0~7 分别表示:最大血蓝、物攻物防、魔攻魔防、敏捷幸运
if (......) value += xxx; // 满足一定条件时,全队每人最大生命增加多少
// 比如道具数量可以用 $gameParty.numItems(xxx) >= n 判定
// 可以继续判断其他条件,比如变量、开关
}
// 可以继续判断其他paramId
// 新增内容结束
var equips = this.equips();
for (var i = 0; i < equips.length; i++) {
var item = equips[i];
if (item) {
value += item.params[paramId];
}
}
return value;
};
Game_Actor.prototype.paramPlus = function(paramId) {
var value = Game_Battler.prototype.paramPlus.call(this, paramId);
// 新增内容开始
if (paramId === 0) { // 0~7 分别表示:最大血蓝、物攻物防、魔攻魔防、敏捷幸运
if (......) value += xxx; // 满足一定条件时,全队每人最大生命增加多少
// 比如道具数量可以用 $gameParty.numItems(xxx) >= n 判定
// 可以继续判断其他条件,比如变量、开关
}
// 可以继续判断其他paramId
// 新增内容结束
var equips = this.equips();
for (var i = 0; i < equips.length; i++) {
var item = equips[i];
if (item) {
value += item.params[paramId];
}
}
return value;
};
作者: 505681468 时间: 2024-4-28 13:11
怎么计算的上面说了,那就说一个当获得道具时候的触发吧
可以在 Game_Party.prototype.gainItem 中配合道具备注,实现一次性生效的效果
例如 每当获得/失去一个道具,通过调用公共事件/直接处理,来增减指定角色属性
但是这个不是类似于被动技能的固有效果,而是直接的能力值增减,不是因为持有道具,而是因为获得道具
作者: 仟玖 时间: 2024-5-1 20:47
小秋橙 发表于 2024-4-28 09:22
rpg_objects.js 第 3847 行。
Game_Actor.prototype.paramPlus = function(paramId) {
var value = Gam ...
代码看不是很懂,这xxx,和n是啥,假如物品卡的id是1,加的属性不止100血量,还有100蓝量,代码具体怎么表述
作者: 仟玖 时间: 2024-5-2 23:36
这xxx到底怎么写
作者: 仟玖 时间: 2024-5-8 15:27
本帖最后由 仟玖 于 2024-5-8 15:29 编辑
这样写只判断一次,大佬教教怎么写
作者: 仟玖 时间: 2024-5-8 15:36
小秋橙 发表于 2024-4-28 09:22
rpg_objects.js 第 3847 行。
Game_Actor.prototype.paramPlus = function(paramId) {
var value = Gam ...
Game_Actor.prototype.paramPlus = function(paramId) {
var value = Game_Battler.prototype.paramPlus.call(this, paramId);
// 新增内容开始
if (paramId === 0) { // 0~7 分别表示:最大血蓝、物攻物防、魔攻魔防、敏捷幸运
if ($gameParty.numItems($dataItems[1]) >= 1) value += 100; // 满足一定条件时,全队每人最大生命增加多少
// 比如道具数量可以用 $gameParty.numItems(xxx) >= n 判定
// 可以继续判断其他条件,比如变量、开关
}
// 可以继续判断其他paramId
if (paramId === 1) { // 0~7 分别表示:最大血蓝、物攻物防、魔攻魔防、敏捷幸运
if ($gameParty.numItems($dataItems[1]) >= 1) value += 100; // 满足一定条件时,全队每人最大生命增加多少
// 比如道具数量可以用 $gameParty.numItems(xxx) >= n 判定
// 可以继续判断其他条件,比如变量、开关
}
// 可以继续判断其他paramId
// 新增内容结束
var equips = this.equips();
for (var i = 0; i < equips.length; i++) {
var item = equips[i];
if (item) {
value += item.params[paramId];
}
}
return value;
};
Game_Actor.prototype.paramPlus = function(paramId) {
var value = Game_Battler.prototype.paramPlus.call(this, paramId);
// 新增内容开始
if (paramId === 0) { // 0~7 分别表示:最大血蓝、物攻物防、魔攻魔防、敏捷幸运
if ($gameParty.numItems($dataItems[1]) >= 1) value += 100; // 满足一定条件时,全队每人最大生命增加多少
// 比如道具数量可以用 $gameParty.numItems(xxx) >= n 判定
// 可以继续判断其他条件,比如变量、开关
}
// 可以继续判断其他paramId
if (paramId === 1) { // 0~7 分别表示:最大血蓝、物攻物防、魔攻魔防、敏捷幸运
if ($gameParty.numItems($dataItems[1]) >= 1) value += 100; // 满足一定条件时,全队每人最大生命增加多少
// 比如道具数量可以用 $gameParty.numItems(xxx) >= n 判定
// 可以继续判断其他条件,比如变量、开关
}
// 可以继续判断其他paramId
// 新增内容结束
var equips = this.equips();
for (var i = 0; i < equips.length; i++) {
var item = equips[i];
if (item) {
value += item.params[paramId];
}
}
return value;
};
这样只判断一次,大佬教教怎么写
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |