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

Project1

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

[有事请教] 请问如何让一个物品在某开关打开时才可以使用?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
229
在线时间
26 小时
注册时间
2021-11-3
帖子
1
跳转到指定楼层
1
发表于 2021-11-25 05:28:27 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
我现在用的方法是让物品触发一个公共事件,这个公共事件里如果开关是OFF就什么也不会发生
但是这样的话这个什么也没有的公共事件在结束时会关掉物品菜单,感觉很不流畅……

Lv3.寻梦者

梦石
0
星屑
953
在线时间
143 小时
注册时间
2008-5-27
帖子
251
8
发表于 2021-12-2 17:47:57 | 只看该作者
YEP的物品使用限制插件可以做到,只是需要物品核心做前置

可以在物品备注某开关打开才可以使用,不然物品就是灰色的不能使用,挺符合你说的。

<Enable Requirements>
Switch On: 1
</Enable Requirements>

论坛很多YEP插件搜搜就有,用的话在物品备注栏备注上面的就可以,意思是:开关1打开时才可以使用 。其他条件可以看插件帮助进行使用
【战斗+庄园经营】不理不理大冒险 DEMO
https://rpg.blue/forum.php?mod=v ... p;page=1#pid2955534
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2866
在线时间
446 小时
注册时间
2016-9-26
帖子
1223
7
发表于 2021-11-25 13:09:06 | 只看该作者
突然想到一种思路,不知道配合上全图并行事件行不行
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8064
在线时间
1862 小时
注册时间
2017-10-23
帖子
355
6
发表于 2021-11-25 12:05:16 | 只看该作者
沒見過這樣的,不如嘗試換個思路。
你是百年難得一見的,能否分享一下你為什麼要這樣?
既然開關都能判定了,為什麼還要留物品在身上。要的時候回來,不要的時候丟棄不就行了? 如果你要帶在身上的儀式感?那就建2個道具1個是真的,一個是假的不能使用的,然後能使用前掉包成真的道具。
回复 支持 1 反对 0

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2866
在线时间
446 小时
注册时间
2016-9-26
帖子
1223
5
发表于 2021-11-25 10:23:49 | 只看该作者
alexncf125 发表于 2021-11-25 07:53
任小雪:
学点脚本,具体应该都跟window有关

等等。。。鞭尸?过分了,唔,话说,scene和object的作用区别,我其实的不太懂。
另外,回血药剂如果加入公共事件的话,如果用楼下的push效果,跟原来不加入公共事件的效果终究有点区别,我一直没解决的是这个,嗨
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2866
在线时间
446 小时
注册时间
2016-9-26
帖子
1223
4
发表于 2021-11-25 10:08:47 | 只看该作者
话说,关于关掉物品菜单这个东西,有没有都好难受呢,我暂时也还没弄懂
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5154
在线时间
734 小时
注册时间
2018-1-16
帖子
151
3
发表于 2021-11-25 08:18:20 | 只看该作者
本帖最后由 shantianzu 于 2021-11-25 08:27 编辑

物品触发的公共事件里用条件判断,如果某个开关打开,执行什么,否则执行脚本 SceneManager.push(Scene_Item),打开物品菜单。
注意的是如果设置物品为可消耗,无论你的开关是否打开,都会使用掉这个物品。
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
26274
在线时间
5356 小时
注册时间
2016-3-8
帖子
1655
2
发表于 2021-11-25 07:53:18 | 只看该作者
本帖最后由 alexncf125 于 2021-11-25 07:59 编辑

任小雪:
学点脚本,具体应该都跟window有关

比如
Window_ItemList.prototype.isEnabled = function(item) {
    return $gameParty.canUse(item);
};



然而实际是跟Game_BattlerBase有关

比如
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;
    }
};

点评

Game_BattlerBase.prototype.meetsItemConditions = function(item) { return this.meetsUsableItemConditions(item) && $gameParty.hasItem(item); }; 看情况像是只要直接改这段,唔  发表于 2021-11-25 10:16
楼主说到的问题,我暂时没有很好的解决方案(我也遇到这个问题),我试过楼下说的,但也有一点缺陷,懂的都懂(反正代码水平不够啊,苦)  发表于 2021-11-25 10:13
其实具体还是多翻翻小白机翻,嗯,前置条件是脚本稍微入点门(不是指完全懂一门语言那种,我有个帖子有谈到一点个人实践经验)  发表于 2021-11-25 10:06
?我发过这东西?  发表于 2021-11-25 10:01
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-18 13:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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