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

Project1

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

[有事请教] 如何禁用补血道具?【已解决】

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1122
在线时间
106 小时
注册时间
2013-12-22
帖子
64
跳转到指定楼层
1
发表于 2024-5-5 19:23:31 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 55808888 于 2024-5-6 11:05 编辑

一个开关ID99  控制,开关开启使可以使用道具

开关关闭时,道具无法使用。

原本的道具属性里是有使用场合的选择,如果把这个选择和开关结合起来呢?比如说开关99关闭时候,使用场合改为“无法使用”
或者有其他脚本?

45327252f9e9410a7474c1ef8b721cbc.png (138.8 KB, 下载次数: 29)

45327252f9e9410a7474c1ef8b721cbc.png

Lv4.逐梦者

梦石
0
星屑
7394
在线时间
478 小时
注册时间
2021-12-4
帖子
519
2
发表于 2024-5-5 20:59:39 | 只看该作者
rpg_objects.js 第 2774 行:
Game_BattlerBase.prototype.isOccasionOk = function(item) {
    if ($gameParty.inBattle()) {
        return item.occasion === 0 || item.occasion === 1;
    } else {
        return item.occasion === 0 || item.occasion === 2;
    }
};

Game_BattlerBase.prototype.meetsUsableItemConditions = function(item) {
    return this.canMove() && this.isOccasionOk(item);
};

Game_BattlerBase.prototype.meetsSkillConditions = function(skill) {
    return (this.meetsUsableItemConditions(skill) &&
            this.isSkillWtypeOk(skill) && this.canPaySkillCost(skill) &&
            !this.isSkillSealed(skill.id) && !this.isSkillTypeSealed(skill.stypeId));
};

Game_BattlerBase.prototype.meetsItemConditions = function(item) {
    return this.meetsUsableItemConditions(item) && $gameParty.hasItem(item);
};

Game_BattlerBase.prototype.canUse = function(item) {
    if (!item) {
        return false;
    } else if (DataManager.isSkill(item)) {
        return this.meetsSkillConditions(item);
    } else if (DataManager.isItem(item)) {
        return this.meetsItemConditions(item);
    } else {
        return false;
    }
};
你总是可以通过判断 item.id 或 skill.id 的取值范围以及各种条件(变量、开关、地图ID、队员等级、主角坐标……)来改变这个函数的执行结果,occasion为0、1、2默认表示【随时、战斗、战斗外】三种场合可用。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1122
在线时间
106 小时
注册时间
2013-12-22
帖子
64
3
 楼主| 发表于 2024-5-6 10:31:32 | 只看该作者
小秋橙 发表于 2024-5-5 20:59
rpg_objects.js 第 2774 行:
Game_BattlerBase.prototype.isOccasionOk = function(item) {
    if ($game ...

大佬我是代码小白,我判断开关1355如果关闭,就无法使用道具,应该不是这样瞎写吧

Game_BattlerBase.prototype.canUse = function(item) {
    if (!item) {if ($gameSwitches.value(1355)=false);
        return false;
    } else if (DataManager.isSkill(item)) {
        return this.meetsSkillConditions(item);
    } else if (DataManager.isItem(item)) {
        return this.meetsItemConditions(item);
    } else {
        return false;
    }
};
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1122
在线时间
106 小时
注册时间
2013-12-22
帖子
64
4
 楼主| 发表于 2024-5-6 10:33:17 | 只看该作者
小秋橙 发表于 2024-5-5 20:59
rpg_objects.js 第 2774 行:
Game_BattlerBase.prototype.isOccasionOk = function(item) {
    if ($game ...

本来看了您的代码之前,我打算用蠢办法造一些相同的无法使用的假道具,在无法使用的场合替换成假道具,能够使用的时候再换回来。
现在我打算试试这个正规操作
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7394
在线时间
478 小时
注册时间
2021-12-4
帖子
519
5
发表于 2024-5-6 10:54:08 | 只看该作者
Game_BattlerBase.prototype.canUse = function(item) {
    if ($gameSwitches.value(1355) === false) return false; // 本行为新增内容,但是你确定不再判断一下item.id什么的?
    if (!item) {
        return false;
    } else if (DataManager.isSkill(item)) {
        return this.meetsSkillConditions(item);
    } else if (DataManager.isItem(item)) {
        return this.meetsItemConditions(item);
    } else {
        return false;
    }
};
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1122
在线时间
106 小时
注册时间
2013-12-22
帖子
64
6
 楼主| 发表于 2024-5-6 11:04:20 | 只看该作者
小秋橙 发表于 2024-5-6 10:54
Game_BattlerBase.prototype.canUse = function(item) {
    if ($gameSwitches.value(1355) === false) re ...

判断ID什么的我看了上面这个示例应该会写了,到时候我自己尝试下。

开关控制道具使用已经完美运行,感谢大佬!
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
13662
在线时间
3855 小时
注册时间
2013-7-18
帖子
2314
7
发表于 2024-5-6 16:26:19 | 只看该作者
本来我也想做一个效果,把敌人变猪,或者变成物品,只要设置一个物品敌人战斗图,然后敌人变身就可以,我想它变成物品后不能使用技能加血,这样似乎很好解决,但是换成我方就有点麻烦,敌人也可以把我方变成物品,战斗图又要新做,然后封印技能加血也行,就是不能使用物品加血犯难了,这下似乎有可能了。
山岚野人,快人快语,礼数不周,还望海涵....
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1122
在线时间
106 小时
注册时间
2013-12-22
帖子
64
8
 楼主| 发表于 2024-5-6 22:32:54 | 只看该作者
小秋橙 发表于 2024-5-6 10:54
Game_BattlerBase.prototype.canUse = function(item) {
    if ($gameSwitches.value(1355) === false) re ...

不好了大神,刚发现这么写技能也被这个开关禁用了

点评

说错了,是meetsItemConditions  发表于 2024-5-7 06:51
那就只改meetsSkillConditions不要改canUse嘛  发表于 2024-5-7 06:50
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1122
在线时间
106 小时
注册时间
2013-12-22
帖子
64
9
 楼主| 发表于 2024-5-7 10:10:50 | 只看该作者
55808888 发表于 2024-5-6 22:32
不好了大神,刚发现这么写技能也被这个开关禁用了

搞定,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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