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

Project1

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

[有事请教] 物品属性问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
144
在线时间
36 小时
注册时间
2022-7-6
帖子
15
跳转到指定楼层
1
发表于 2024-4-27 23:31:26 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
10星屑
怎样才能做到获得一个物品就加属性,失去的时候也会扣掉属性,比如获得一张卡角色就加100血量,卡失去后会扣掉那100血

Lv2.观梦者

梦石
0
星屑
485
在线时间
86 小时
注册时间
2023-10-26
帖子
26
2
发表于 2024-4-28 00:21:29 | 只看该作者
rpg_objects.js,Game_BattlerBase下有对角色mhp的定义,在那里添加if($gameParty.hasItem($dataItems[xxx])){value+=100}这样的内容即可
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7394
在线时间
478 小时
注册时间
2021-12-4
帖子
519
3
发表于 2024-4-28 09:22:48 | 只看该作者
rpg_objects.js 第 3847 行。
JAVASCRIPT 代码复制
  1. Game_Actor.prototype.paramPlus = function(paramId) {
  2.     var value = Game_Battler.prototype.paramPlus.call(this, paramId);
  3. // 新增内容开始
  4.     if (paramId === 0) { // 0~7 分别表示:最大血蓝、物攻物防、魔攻魔防、敏捷幸运
  5.         if (......) value += xxx; // 满足一定条件时,全队每人最大生命增加多少
  6.         // 比如道具数量可以用 $gameParty.numItems(xxx) >= n 判定
  7.         // 可以继续判断其他条件,比如变量、开关
  8.     }
  9.     // 可以继续判断其他paramId
  10. // 新增内容结束
  11.     var equips = this.equips();
  12.     for (var i = 0; i < equips.length; i++) {
  13.         var item = equips[i];
  14.         if (item) {
  15.             value += item.params[paramId];
  16.         }
  17.     }
  18.     return value;
  19. };
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2023
在线时间
602 小时
注册时间
2012-4-8
帖子
426
4
发表于 2024-4-28 13:11:52 | 只看该作者
怎么计算的上面说了,那就说一个当获得道具时候的触发吧

可以在 Game_Party.prototype.gainItem 中配合道具备注,实现一次性生效的效果
例如 每当获得/失去一个道具,通过调用公共事件/直接处理,来增减指定角色属性
但是这个不是类似于被动技能的固有效果,而是直接的能力值增减,不是因为持有道具,而是因为获得道具
pokemon 和 digimon 正在路上
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
144
在线时间
36 小时
注册时间
2022-7-6
帖子
15
5
 楼主| 发表于 2024-5-1 20:47:42 | 只看该作者
小秋橙 发表于 2024-4-28 09:22
rpg_objects.js 第 3847 行。
Game_Actor.prototype.paramPlus = function(paramId) {
    var value = Gam ...

代码看不是很懂,这xxx,和n是啥,假如物品卡的id是1,加的属性不止100血量,还有100蓝量,代码具体怎么表述
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
144
在线时间
36 小时
注册时间
2022-7-6
帖子
15
6
 楼主| 发表于 2024-5-2 23:36:14 | 只看该作者
泼墨漓江 发表于 2024-4-28 00:21
rpg_objects.js,Game_BattlerBase下有对角色mhp的定义,在那里添加if($gameParty.hasItem($dataItems[xxx] ...

这xxx到底怎么写
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
144
在线时间
36 小时
注册时间
2022-7-6
帖子
15
7
 楼主| 发表于 2024-5-8 15:27:58 | 只看该作者
本帖最后由 仟玖 于 2024-5-8 15:29 编辑

这样写只判断一次,大佬教教怎么写
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
144
在线时间
36 小时
注册时间
2022-7-6
帖子
15
8
 楼主| 发表于 2024-5-8 15:36:14 | 只看该作者
小秋橙 发表于 2024-4-28 09:22
rpg_objects.js 第 3847 行。
Game_Actor.prototype.paramPlus = function(paramId) {
    var value = Gam ...

JAVASCRIPT 代码复制
  1. Game_Actor.prototype.paramPlus = function(paramId) {
  2.     var value = Game_Battler.prototype.paramPlus.call(this, paramId);
  3.         // 新增内容开始
  4.     if (paramId === 0) { // 0~7 分别表示:最大血蓝、物攻物防、魔攻魔防、敏捷幸运
  5.         if ($gameParty.numItems($dataItems[1]) >= 1) value += 100; // 满足一定条件时,全队每人最大生命增加多少
  6.         // 比如道具数量可以用 $gameParty.numItems(xxx) >= n 判定
  7.         // 可以继续判断其他条件,比如变量、开关
  8.     }
  9.     // 可以继续判断其他paramId
  10.         if (paramId === 1) { // 0~7 分别表示:最大血蓝、物攻物防、魔攻魔防、敏捷幸运
  11.         if ($gameParty.numItems($dataItems[1]) >= 1) value += 100; // 满足一定条件时,全队每人最大生命增加多少
  12.         // 比如道具数量可以用 $gameParty.numItems(xxx) >= n 判定
  13.         // 可以继续判断其他条件,比如变量、开关
  14.     }
  15.     // 可以继续判断其他paramId
  16.         // 新增内容结束
  17.     var equips = this.equips();
  18.     for (var i = 0; i < equips.length; i++) {
  19.         var item = equips[i];
  20.         if (item) {
  21.             value += item.params[paramId];
  22.         }
  23.     }
  24.     return value;
  25. };

这样只判断一次,大佬教教怎么写
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-5 09:39

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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