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

Project1

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

[有事请教] 请教一下关于插件冲突的问题。【已解决】

[复制链接]

Lv1.梦旅人

梦石
0
星屑
245
在线时间
25 小时
注册时间
2020-4-6
帖子
17
跳转到指定楼层
1
发表于 2020-9-25 11:48:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 alucardzhou 于 2020-9-26 07:53 编辑


请教一个避免插件冲突的情况。

具体情况:
想引用FTKR_SkillTreeSystem
https://github.com/futokoro/RPGMaker/blob/master/sampleProject/SkillTreeSample.zip
结果发现FTKR_SkillTreeSystem和Yep_CoreEngine 有一个冲突:都定义了learnSkill  = function(skillId)
Yep_CoreEngine
Game_Actor.prototype.learnSkill = function(skillId) {
    if (!this._skills.contains(skillId)) {
        this._skills.push(skillId);
        this._skills.sort(function(a, b) {
            return a - b;
        });
    }
};

FTKR_SkillTreeSystem
    var _STS_Game_Actor_learnSkill = Game_Actor.prototype.learnSkill;
    Game_Actor.prototype.learnSkill = function(skillId) {
        if (!this.isStsLearnedSkill(skillId)) {
            this.setStsSkillCount(skillId, 0);
        }
        _STS_Game_Actor_learnSkill.call(this, skillId);
        this.checkInitSts();
        if (this.isLearnedSkill(skillId) && !this.stsCount(skillId)) {
            if (FTKR.STS.learnedActorVarID) $gameVariables.setValue(FTKR.STS.learnedActorVarID, this.actorId());
            if (FTKR.STS.learnedSkillVarID) $gameVariables.setValue(FTKR.STS.learnedSkillVarID, skillId);
            this.stsCountUp(skillId);
            this._stsLearnSkills[skillId] = true;
            this.checkStsForgetSkills(skillId);
        }
        if (this._initStsFlag) {
            this.stsUsedCost(skillId);
        }
    };

虽然在插件管理中把FTKR_SkillTreeSystem 放到 Yep_CoreEngine 后面就可以了。

但是感觉Yep_CoreEngine 的逻辑是有用,怕以后有冲突
* Version 1.19:
* - Updated for RPG Maker MV version 1.3.2.
* - Fixed 'LearnSkill' function for actors to not be bypassed if a piece of
* equipment has temporarily added a skill.


参看了一下 https://www.wikimoe.com/?post=48
简单加上了 (function(_global) {    })(this);

请教大神这样处理可以么?(以后Yep_CoreEngine 不会报错)如果不对请怎么改?
(function(_global) {
    var _STS_Game_Actor_learnSkill = Game_Actor.prototype.learnSkill;
    Game_Actor.prototype.learnSkill = function(skillId) {
                if (!this.isStsLearnedSkill(skillId)) {
            this.setStsSkillCount(skillId, 0);
        }
        _STS_Game_Actor_learnSkill.call(this, skillId);
        this.checkInitSts();
        if (this.isLearnedSkill(skillId) && !this.stsCount(skillId)) {
            if (FTKR.STS.learnedActorVarID) $gameVariables.setValue(FTKR.STS.learnedActorVarID, this.actorId());
            if (FTKR.STS.learnedSkillVarID) $gameVariables.setValue(FTKR.STS.learnedSkillVarID, skillId);
            this.stsCountUp(skillId);
            this._stsLearnSkills[skillId] = true;
            this.checkStsForgetSkills(skillId);
        }
        if (this._initStsFlag) {
            this.stsUsedCost(skillId);
        }
    };
})(this);

Lv5.捕梦者

梦石
0
星屑
33324
在线时间
10515 小时
注册时间
2009-3-15
帖子
4762
2
发表于 2020-9-25 15:03:51 | 只看该作者
YEP是重定义
FTKR是改别名..
所以FTKR在YEP下面应该没问题了吧?

评分

参与人数 1+1 收起 理由
alucardzhou + 1 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
245
在线时间
25 小时
注册时间
2020-4-6
帖子
17
3
 楼主| 发表于 2020-9-26 07:43:44 | 只看该作者
soulsaga 发表于 2020-9-25 15:03
YEP是重定义
FTKR是改别名..
所以FTKR在YEP下面应该没问题了吧?

十分感谢。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-21 08:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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