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

Project1

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

[有事请教] 如何MOG的命令链插件,将6个键修改成4个键

[复制链接]

Lv1.梦旅人

梦石
0
星屑
240
在线时间
33 小时
注册时间
2018-1-21
帖子
19
跳转到指定楼层
1
发表于 2018-7-8 01:18:47 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
   MOG的命令链插件,在战斗时候,根据屏幕提示按,上,下,左,右,Z,  X。 如果按对,就可以连续释放下一个技能,

我想将,按键 修改成只按上下左右 4个键就可以了,取消掉Z.X键  , 我个人不会JS ,,,,,求大神指教, 在代码中,我没找到 输入Z,X的语言代码,,,


他的按键图片,如果消除 ZX,两个键比较麻烦,那么也可以将ZX两个键的输入,改成上下左右 其中两个,求大神 给个详细的,,谢谢

插件原作者 :Moghunter
原代码如下

//=============================================================================
// ** PLUGIN PARAMETERS  插件参数
//=============================================================================
  var Imported = Imported || {};
  Imported.MOG_ChainCommands = true;
  var Moghunter = Moghunter || {};

   Moghunter.parameters = PluginManager.parameters('MOG_ChainCommands');
        Moghunter.chainCom_x = Number(Moghunter.parameters['X-Axis'] || 0);
        Moghunter.chainCom_y = Number(Moghunter.parameters['Y-Axis'] || 0);
        Moghunter.chainCom_Key_x = Number(Moghunter.parameters['Key X-Axis'] || 16);
        Moghunter.chainCom_Key_y = Number(Moghunter.parameters['Key Y-Axis'] || -32);
        Moghunter.chainCom_Meter_x = Number(Moghunter.parameters['Gauge X-Axis'] || 17);
        Moghunter.chainCom_Meter_y = Number(Moghunter.parameters['Gauge Y-Axis'] || 1);
        Moghunter.chainCom_Name_x = Number(Moghunter.parameters['Name X-Axis'] || 15);
        Moghunter.chainCom_Name_y = Number(Moghunter.parameters['Name Y-Axis'] || 18);
       
//=============================================================================
// ** Game Temp 游戏温度(应该是进度条)
//=============================================================================

//==============================
// * Initialize   初始化
//==============================
var _alias_mog_bchain_gtemp_initialize = Game_Temp.prototype.initialize;
Game_Temp.prototype.initialize = function() {
        _alias_mog_bchain_gtemp_initialize.call(this);
        this._bchainTemp = false;
        this.clearBchain();
};

//==============================
// * Clear Bchain  清除链
//==============================
Game_Temp.prototype.clearBchain = function() {
    this._bchainData = [false,null,null,null,null,0,0,null,false,false,false,false];
};

//=============================================================================
// ** Game Action 游戏动作
//=============================================================================

//==============================
// * applyItemUserEffect  应用程序效应
//==============================
var _mog_bchain_gaction_applyItemUserEffect = Game_Action.prototype.applyItemUserEffect;
Game_Action.prototype.applyItemUserEffect = function(target) {
        $gameTemp._bchainData[11] = true;
        _mog_bchain_gaction_applyItemUserEffect.call(this,target)
};

//=============================================================================
// ** Battle Manager 作战管理
//=============================================================================

//==============================
// * Start Action 启动动作
//==============================
var _mog_bchain_bmngr_startAction = BattleManager.startAction;
BattleManager.startAction = function() {
         $gameTemp.clearBchain();
         if (this.canCheckChainCommands()) {this.checkChainAction()};
        _mog_bchain_bmngr_startAction.call(this);
};

//==============================
// * Can Check Chain Commands   可以检查链命令(应该是检查可以执行的链命令)
//==============================
BattleManager.canCheckChainCommands = function() {
        if (this._subject.isEnemy()) {return false};
    if (!this._subject.currentAction()) {return false};
        if (!this._subject.currentAction().item()) {return false};
        return true;
};

//==============================
// * Check Chain Action  检查链动作
//==============================
BattleManager.checkChainAction = function() {       
        var item = this._subject.currentAction().item();
        var item_notes = item.note.split(/[\r\n]+/);
    item_notes.forEach(function(note) {
         var note_data = note.split(': ')
                 if (note_data[0].toLowerCase() == "chain action"){                         
                         var par = note_data[1].split(':');
                         var action = $dataSkills[Number(par[0])];
                      var times = Math.min(Math.max(Number(par[1]),1),999);
                         var duration = Math.min(Math.max(Number(par[2]),10),999);                         
                         if (action) {
                            $gameTemp._bchainData[1] = action;
                                $gameTemp._bchainData[6] = times;
               
                                $gameTemp._bchainData[7] = duration;
                         };
         };
        },this);
};

//==============================
// * Invoke Action  调用动作
//==============================
var _mog_bchain_bmngr_invokeAction = BattleManager.invokeAction;
BattleManager.invokeAction = function(subject, target) {
    if ($gameTemp._bchainData[1]) {BattleManager.setBchainPosition(subject, target)};
        _mog_bchain_bmngr_invokeAction.call(this,subject, target);       
};

//==============================
// * set Bchain Position 设置B链位置
//==============================
BattleManager.setBchainPosition = function(subject, target) {
        if (this._subject.isActor()) {
                $gameTemp._bchainData[8] = target;
                if ($gameTemp._bchainData[1].scope === 1 ||
                    $gameTemp._bchainData[1].scope === 7 ||
                        $gameTemp._bchainData[1].scope === 9) {
                        $gameTemp._bchainData[4] = target;
                } else {
                if ($gameSystem.isSideView()) {
                            $gameTemp._bchainData[4] = this._subject;
                        } else {
                                $gameTemp._bchainData[2] = Graphics.boxWidth / 2;
                                $gameTemp._bchainData[3] = Graphics.boxHeight / 2;               
                        };       
                };
        };
};       
       
//==============================
// * End Action 末端动作
//==============================
var _mog_bchain_bmngr_endAction = BattleManager.endAction;
BattleManager.endAction = function() {
        if (BattleManager.canUseChainAction()) {
                $gameTemp._bchainData[0] = true;
                $gameTemp._bchainTemp = true;
                if ($gameTemp._bchainData[9]) {this.executeChainAction()};
                return;
          };
         _mog_bchain_bmngr_endAction.call(this);
         $gameTemp.clearBchain();
         $gameTemp._bchainTemp = false;
};

//==============================
// * can Use Chain Action 可以使用链式动作
//==============================
BattleManager.canUseChainAction = function() {
        if (!$gameTemp._bchainData[1]) {return false};
        if (!$gameTemp._bchainData[11]) {return false};
        if (!this._subject) {return false};
        if (!this._subject.canInput()) {return false};
        if (this._subject.isDead()) {return false};
        if ($gameParty.isAllDead()) {return false};
        if ($gameTroop.isAllDead()) {return false};
        if (!this._subject.canUse($gameTemp._bchainData[1])) {return false};
        if ($gameTemp._bchainData[1].scope === 1 ||
                 $gameTemp._bchainData[1].scope === 7 ||
                 $gameTemp._bchainData[1].scope === 9) {
             if (!$gameTemp._bchainData[8]) {return false};
                 if ($gameTemp._bchainData[8].isDead()) {return false};
    }
        return true;
};

//==============================
// * execute Chain Action 执行链式动作
//==============================
BattleManager.executeChainAction = function() {
        if ($gameTemp._bchainData[10]) {
            this._subject.forceAction($gameTemp._bchainData[1].id, -2);               
                $gameTemp.clearBchain();
            BattleManager.processTurn();
        } else {
                $gameTemp.clearBchain();
        };
};

//=============================================================================
// ** Sprite Battler  精灵战士
//=============================================================================

//==============================
// * update Main  更新主函数
//==============================
var _mog_bchain_sprbattler_updateMain = Sprite_Battler.prototype.updateMain;
Sprite_Battler.prototype.updateMain = function() {
        _mog_bchain_sprbattler_updateMain.call(this);
        if (this.needUpdateBchainPosition()) {this.updateBchainPosition()};
};

//==============================
// * need Update Bchain Pos  需要更新链动作
//==============================
Sprite_Battler.prototype.needUpdateBchainPosition = function() {
   if (!$gameTemp._bchainData[4]) {return false};
   if ($gameTemp._bchainData[4] != this._battler) {return false};
   return true;       
};

//==============================
// * update B Chain Position 更新B链位置
//==============================
Sprite_Battler.prototype.updateBchainPosition = function() {
        $gameTemp._bchainData[2] = this.x;
        $gameTemp._bchainData[3] = this.y;
        if (this._mainSprite) {
        $gameTemp._bchainData[3] -= this._mainSprite.height;
        } else if (this._bitmap) {       
            $gameTemp._bchainData[3] -= this._bitmap.height / 2;
        };
};

//=============================================================================
// ** Spriteset Battle 精灵战斗 设置
//=============================================================================

//==============================
// * create Upper Layer  创建上层
//==============================
var _mog_bchain_sprset_createUpperLayer = Spriteset_Battle.prototype.createUpperLayer;
Spriteset_Battle.prototype.createUpperLayer = function() {
        _mog_bchain_sprset_createUpperLayer.call(this);
    this.createBchain();       
};

//==============================
// * create B Chain   创建B链
//==============================
Spriteset_Battle.prototype.createBchain = function() {
    this._bchain = new BattleChainSprite();
        this._bchain.z = 25;
        this.addChild(this._bchain);
};

//==============================
// * Update  更新
//==============================
var _mog_bchain_sprtbat_update = Spriteset_Battle.prototype.update;
Spriteset_Battle.prototype.update = function() {
    _mog_bchain_sprtbat_update.call(this)
        if (this._bchain && Imported.MOG_BattleCamera) {
           this._bchain.x = this._battleField.x;
           this._bchain.y = this._battleField.y;
        };
};

if (Imported.MOG_BattleCamera) {
        //==============================
        // * Update Focus  更新焦点
        //==============================
        var _mog_bchaincom_sprbat_updateFocus = Spriteset_Battle.prototype.updateFocus;
        Spriteset_Battle.prototype.updateFocus = function() {
                if ($gameTemp._bchainTemp) {$gameTemp._bcam_user[2] = 0};
                _mog_bchaincom_sprbat_updateFocus.call(this);
        };
};

//=============================================================================
// * Battle Chain Sprite 战斗链精灵
//=============================================================================
function BattleChainSprite() {
    this.initialize.apply(this, arguments);
};

BattleChainSprite.prototype = Object.create(Sprite.prototype);
BattleChainSprite.prototype.constructor = BattleChainSprite;

//==============================
// * Initialize 初始化
//==============================
BattleChainSprite.prototype.initialize = function() {
    Sprite.prototype.initialize.call(this);       
        this.z = 25;
        this._data = [-1,-1,false];
        this._keyIndex = 0;
        this._duration = 0;
    this.loadImages();
        this.createLayout();
        this.createMeter();       
        this.createKeys();
        this.createName();
};

//==============================
// * Load Images  加载图像
//==============================
BattleChainSprite.prototype.loadImages = function() {
        this._keysImg = ImageManager.loadSystem("Chain_A");
        this._layoutImg = ImageManager.loadSystem("Chain_B");
        this._meterImg = ImageManager.loadSystem("Chain_C");
};

//==============================
// * getData 获取数据
//==============================
BattleChainSprite.prototype.getData = function() {       
    this._data[0] = Math.floor(this._keysImg.width / 6);
        this._data[1] = this._keysImg.height;
};

//==============================
// * create Layout 创建布局
//==============================
BattleChainSprite.prototype.createLayout = function() {       
        this._layout = new Sprite(this._layoutImg);
        this._layout.opacity = 0;
        this._layout.anchor.x = 0.5;
        this._layout.anchor.y = 0.5;
        this.addChild(this._layout);
};

//==============================
// * create Name 创建名称
//==============================
BattleChainSprite.prototype.createName = function() {
        this._name = new Sprite(new Bitmap(100,32));
        this._name.opacity = 0;
        this._name.anchor.x = 0.5;
        this._name.anchor.y = 0.5;
        this._name.bitmap.fontSize = 20;
        this.addChild(this._name);
};

//==============================
// * create Keys 创建密钥(创建按键?)
//==============================
BattleChainSprite.prototype.createKeys = function() {
        this._keys = new Sprite(this._keysImg);
        this._keys.opacity = 0;
        this._keys.anchor.x = 0.5;
        this._keys.anchor.y = 0.5;       
        this.addChild(this._keys);
};

//==============================
// * create Meter 创建仪表(韵律,曝光表)
//==============================
BattleChainSprite.prototype.createMeter = function() {
        this._meter = new Sprite(this._meterImg);
        this._meter.opacity = 0;
        this._meter.anchor.x = 0;
        this._meter.anchor.y = 0.5;       
        this.addChild(this._meter);       
};

//==============================
// * Need Refresh 需要刷新
//==============================
BattleChainSprite.prototype.needRefresh = function() {
        if ($gameTemp._bchainData[0] == this._data[2]) {return false};
        if (!this.item()) {return false};
        if (!this.posX()) {return false};
        return true;
};

//==============================
// * Item  项目
//==============================
BattleChainSprite.prototype.item = function() {
   return $gameTemp._bchainData[1];
};

//==============================
// * posX 图片X位置
//==============================
BattleChainSprite.prototype.posX = function() {
   return $gameTemp._bchainData[2] + Moghunter.chainCom_x;
};

//==============================
// * posY  显示图片Y位置
//==============================
BattleChainSprite.prototype.posY = function() {
   return $gameTemp._bchainData[3] + Moghunter.chainCom_y;
};

//==============================
// * Times 时间
//==============================
BattleChainSprite.prototype.times = function() {
   return $gameTemp._bchainData[6];
  
};

//==============================
// * Duration  持续时间
//==============================
BattleChainSprite.prototype.duration = function() {
   return $gameTemp._bchainData[7];
};

//==============================
// * Refresh  刷新
//==============================
BattleChainSprite.prototype.refresh = function() {       
        this._data[2] = $gameTemp._bchainData[0];
        this._duration = this.duration();
        this._layout.opacity = 255;
        this._keys.opacity = 255;
        this._keys.scale.x = 2.0;
        this._keys.scale.y = 2.0;
        this._meter.opacity = 255;
        this._name.opacity = 255;
        this._name.bitmap.clear();
        this._name.bitmap.drawText(this.item().name,0,0,100,32,"center");
        this._keys.setFrame(this._data[0] * this._keyIndex,0,this._data[0],this._data[1]);
};

//==============================
// * need Update Action  需要更新动作
//==============================
BattleChainSprite.prototype.needUpdateAction = function() {
        if (!this.item()) {return false};
        if (!this.posX()) {return false};
        if (this._layout.opacity == 0) {return false};
        return true;
};

//==============================
// * Update Action 更新动作
//==============================
BattleChainSprite.prototype.updateAction = function() {
     this.updatePosition();
         this.updateCommands();
         if (this._duration > 0) {this.updateTime()};
};

//==============================
// * Update Action 更新动作
//==============================
BattleChainSprite.prototype.updateTime = function() {
      this._duration --
      this.updateMeter();
          if (this._duration <= 0) {this.setWrong();};
};

//==============================
// * Update Meter 更新仪表
//==============================
BattleChainSprite.prototype.updateMeter = function() {
          var rate = this._duration * this._meterImg.width / this.duration();
          this._meter.setFrame(0,0,rate,this._meterImg.height)
};

//==============================
// * Update Action  更新动作
//==============================
BattleChainSprite.prototype.check_key = function(value) {
    if (value == this._keyIndex) {               
            this.nextKey();
        } else {
        this.setWrong();
        };
};

//==============================
// * set Wrong  设置错误
//==============================
BattleChainSprite.prototype.setWrong = function(value) {
        SoundManager.playBuzzer();
        this.clearCommands();
};

//==============================
// * Next Key 下一个键
//==============================
BattleChainSprite.prototype.nextKey = function(value) {
        if (this.times() <= 0) {this.enableAction();return};       
        SoundManager.playCursor();
    this._keyIndex = Math.randomInt(6);
        $gameTemp._bchainData[6] -= 1;
        this.refresh();
};

//==============================
// * enable Action 使能动作
//==============================
BattleChainSprite.prototype.enableAction = function(value) {
        SoundManager.playUseSkill();
        $gameTemp._bchainData[10] = true;
        this.clearCommands();
};

//==============================
// * Set Wrong 设置错误
//==============================
BattleChainSprite.prototype.clearCommands = function() {
        this._layout.opacity = 0;
        this._keys.opacity = 0;
        this._meter.opacity = 0;
        this._name.opacity = 0;       
        this._duration = 0;
        this._data[2] = false;
        $gameTemp._bchainData[9] = true;
};

//==============================
// * Update Commands 更新命令
//==============================
BattleChainSprite.prototype.updateCommands = function() {
        if (Input.isTriggered("right")) {this.check_key(0)}
        else if (Input.isTriggered("left")) {this.check_key(1)}
        else if (Input.isTriggered("down")) {this.check_key(2)}
        else if (Input.isTriggered("up")) {this.check_key(3)}
        else if (Input.isTriggered("ok")) {this.check_key(4)}
        else if (Input.isTriggered("cancel")) {this.check_key(5)}        ;
};

//==============================
// * Update Position 更新位置
//==============================
BattleChainSprite.prototype.updatePosition = function() {
        this._layout.x = this.posX();
        this._layout.y = this.posY();
        this._keys.x = this.posX() + Moghunter.chainCom_Key_x;
        this._keys.y = this.posY() + Moghunter.chainCom_Key_y;       
        this._meter.x = this.posX() - (this._meterImg.width / 2) + Moghunter.chainCom_Meter_x;
        this._meter.y = this.posY() + Moghunter.chainCom_Meter_y;                
    this._name.x = this.posX() + Moghunter.chainCom_Name_x;
    this._name.y = this.posY() + Moghunter.chainCom_Name_y;
};

//==============================
// * Update 更新
//==============================
BattleChainSprite.prototype.update = function() {
    Sprite.prototype.update.call(this);       
        if (this._data[0] === -1) {
           if (this._keysImg.isReady() && this._meterImg.isReady()) {this.getData()};
           return;
    };
        if (this.needRefresh()) {this.nextKey()};
        if (this.needUpdateAction()) {this.updateAction()};
        if (this._keys.scale.x > 1.00) {this._keys.scale.x -= 0.1};
        this._keys.scale.y = this._keys.scale.x
};

Lv1.梦旅人

梦石
0
星屑
245
在线时间
25 小时
注册时间
2020-4-6
帖子
17
2
发表于 2020-7-9 13:06:47 | 只看该作者
找到 this._keyIndex = Math.randomInt(6);
把里面的6改为4.
this._keyIndex = Math.randomInt(4);
这样就只会出现上下左右了。

这葡萄牙小哥代码写得忒暴力了。

评分

参与人数 1+1 收起 理由
白嫩白嫩的 + 1 666666

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-13 02:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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