1. このサイトではcookie (クッキー) を使用しています。サイトの利用を継続した場合、cookieの使用に同意したものとみなさせていただきます。 詳しくはこちらをご覧ください。

自動斜め移動プラグイン(坂、横向き階段上の移動など)

ツキミ2017-12-13に開始した「ツクールMV」の中の討論

  1. ツキミ

    ツキミ ユーザー

    横向きの階段では、プレイヤーは ←と↓ を交互に押さないと降りられません。とても面倒くさいですよね。

    このプラグインはその煩わしさを省き、
    ←十字キーを押しっぱなししても、特定のリージョン上は自動で斜め移動できるようにします!

    サンプル:
    [​IMG]
    サンプル中の操作は、全て ←キー だけです。
    [​IMG]

    右斜め上移動リージョンIDを33にして、上のように配置すると赤線に沿って動きます。

    プラグインパラメータ:
    ・右斜め上移動リージョンID
     / のスロープ上に移動している ように、左右の十字キーを押すと自動で斜め移動するリージョンのID。

    ・左斜め上移動リージョンID
     \ のスロープ上に移動している ように、左右の十字キーを押すと自動で斜め移動するリージョンのID。


    ※イベントによる移動ルートの指定は、リージョン上は自動で斜め移動になりません。 また、今の段階ではプレイヤーからの接触などのトリガーも斜めになりません。
    (一応タッチ操作もちゃんと斜め移動にはなっていますが、ルートは若干変わってるかもしれません)

    権利表記テンプレート

    • 製作者: ツキミ
    • 非商用利用: 自由/ 報告、クレジット不要(してくれたら嬉しい!)
    • 商用利用: 自由/ 報告、クレジット不要(してくれたら嬉しい!)
    • 再配布: OK(ただし自作宣言はNG)
    • 加工: OK
    • 加工後の再配布: OK、でも説明のところにこのページのリンクを書いてください
    • シリーズ: ツクールMV
     

    添付ファイル:

    最後に編集: 2017-12-14
    #1
    ふうきゅう, nafu, ganges他9人がいいね!しています
  2. master2015hp

    master2015hp ユーザー

    Sorry, I think there are some problems, this is a plugin window of this plugin's appearance in my RPGMV
    私はRPGMVの英語版(1.5.1)を使用しているので、これは私が不思議です。
    [​IMG]
     

    添付ファイル:

    #2
    ツキミ がいいね!しました
  3. Chungin Chae

    Chungin Chae ユーザー

    [QUOTE = "master2015hp, post : 4577, member : 1906"] Sorry, I think there are some problems, this is a plugin window of this plugin 's appearance in my RPGMV
    나는 RPGMV의 영어 버전 (1.5.1)를 사용하고 있기 때문에, 이것은 내가 궁금합니다.
    [​IMG][/ QUOTE]

    As I look, That caused by Plug-in language setting. That's easily find at other country's plug-in.
    私が見るには、プラグインの言語設定の問題で見えます。他国語のプラグインでよく見ることができる問題です。
    First, you should open this script at Notepad or Dreamweaver or other tools.
    初めて、ノートパッドやDreamweaverのような編集プログラムにプラグインファイルを開きます。
    And edit 8th line's '/*:ja' to '/*en' or your country's language.
    8行目の「/*:ja」を「/* en」や、あなたの地域の言語コードに変更してください。
    Then edit the plug-in's descriptions and parameter Japanese language to your local language.
    そして、プラグパラメータの名前と記述をあなたの言語に変更してください。
    (Google translate will helpful to you. And beware about parameter 's name.
    (Googleの翻訳に役立つドゥェルゴプニダ。そしてパラメータの名前を注意してください。)
    (line 12 and 19's parameter name should be matched with line 57 and 58)
    (12番と19番の行のパラメータ名称と57番と58番の行のパラメータの名前が一致するように修正してください。)
     
    #3
    ツキミ がいいね!しました
  4. master2015hp

    master2015hp ユーザー

    あなたが言ったように私はそれを変更しましたが、それは助けになりません
    コード:
     // ======================================================= ================================
    
    // StairMove.js
    / / by Tsukimi
    // Last Updated: 2017.12.13
    // ========================================================= =============================
    
    
    /* en
     * @ plugindesc Stair automatic diagonal movement
     * @ author Tsukimi
     *
     * @ param ckeright
     * @ desc Move to diagonally upper right Region ID (↗↙)
     * @ type number
     * @ min 1
     * @ max 255
     * @ Default 33
     *
     * @ param ckleft
     * @desc Move to diagonally upper left Region ID (↖↘)
     * @ type number
     * @ min 1
     * @ max 255
     * @ Default 34
     *
     *
     * @ help
     * Automatic diagonal staircase movement
     * Move obliquely automatically when setting a region.
     *
     * -----------------
     *
     * /
    
    var Imported = Imported || {};
    Imported.TKM_StairMove = true;
    var $ TKMvar = $ TKMvar || {};
    $ TKMvar.stairMove = {};
    
    (function () {
        'use strict';
      
        var pluginName = 'StairMove';
        var getParam = function (paramNames) {
            if (! Array.isArray (paramNames)) paramNames = [paramNames];
            for (var i = 0; i <paramNames.length; i ++) {
                var name = PluginManager.parameters (pluginName) [paramNames [i]];
                if (name) return name;
            }
            return null;
        };
      
        $ TKMvar.stairMove = {};
        // PARAMETER
        var parameters = PluginManager.parameters (pluginName);
        var temp = 0;
        $ TKMvar.stairMove.regionLDRU = Number (getParam ("ckeright")) || - 1;
        $ TKMvar.stairMove.regionLURD = Number (getParam ("ckleft")) || - 1;
      
      
        var _ Game _ Player _ EXECUTE MOVE = Game PLAINER. PROTOTY TYPE EXECUTE MOVE;
        Game_Player.prototype.executeMove = function (direction) {
            var diagonalAccess = false;
            var sm = $ TKMvar.stairMove;
          
            if (this.regionId () === sm.regionLDRU || this.regionId () === sm.regionLURD) {
                if (direction === 4 || direction === 6) {
                    var yDirection;
                    if(this.regionId() === sm.regionLDRU) yDirection = (direction === 4) ? 2 : 8;
                    else yDirection = (direction === 4) ? 8 : 2;
                  
                    var x2 = $gameMap.roundXWithDirection(this.x, direction);
                    var y2 = $gameMap.roundYWithDirection(this.y, yDirection);
                    if($gameMap.regionId(x2, y2) === this.regionId()) {
                        diagonalAccess = true;
                        this._direction = direction;
                        this.moveDiagonally(direction, yDirection);
                    }
                }
            }
          
            if(!diagonalAccess) {
                _Game_Player_executeMove.apply(this, arguments);
            }
        }
        /* TODO
        Game_Player.prototype.moveDiagonally = function(horz, vert) {
            Game_CharacterBase.prototype.moveDiagonally.apply(this, arguments);
          
            if(!this.isMovementSucceeded()) {
                var sm = $TKMvar.stairMove;
                var direction = this._direction;
              
                if(this.regionId() === sm.regionLDRU || this.regionId() === sm.regionLURD) {
                    if(direction === 4 || direction === 6) {
                        var yDirection = 0;
                        if(this.regionId() === sm.regionLDRU) yDirection = (direction === 4) ? 2 : 8;
                        else yDirection = (direction === 4) ? 8 : 2;
    
                        var x2 = $gameMap.roundXWithDirection(this.x, direction);
                        var y2 = $gameMap.roundYWithDirection(this.y, yDirection);
                        if($gameMap.regionId(x2, y2) === this.regionId()) this.checkEventTriggerTouch(x2, y2);
                    }
                }
            }
        }
        */
    })();
    
     
    #4
  5. Chungin Chae

    Chungin Chae ユーザー

    @master2015hp try this.(I think Some of letter and incorrect at your code.)

    コード:
    //=============================================================================
    // StairMove.js
    // by Tsukimi
    // Last Updated: 2017.12.13
    //=============================================================================
    
    
    /*:en
     * @plugindesc Automatic stairway movement
     * @author Tsukimi
     *
     * @param right_upward
     * @desc Right diagonally upward moving region ID(↗↙)
     * @type number
     * @min 1
     * @max 255
     * @default 33
     *
     * @param left_upward
     * @desc Left diagonally upward moving region ID(↖↘)
     * @type number
     * @min 1
     * @max 255
     * @default 34
     *
     *
     * @help
     * Automatic stairway movement
     * Automatically diagonally move when setting a region
     *
     * -----------------
     *
     */
    
    var Imported = Imported || {};
    Imported.TKM_StairMove = true;
    var $TKMvar = $TKMvar || {};
    $TKMvar.stairMove = {};
    
    (function() {
        'use strict';
        
        var pluginName = 'StairMove';
        var getParam = function(paramNames) {
            if (!Array.isArray(paramNames)) paramNames = [paramNames];
            for (var i = 0; i < paramNames.length; i++) {
                var name = PluginManager.parameters(pluginName)[paramNames[i]];
                if (name) return name;
            }
            return null;
        };
        
        $TKMvar.stairMove = {};
        // PARAMETER
        var parameters = PluginManager.parameters(pluginName);
        var temp = 0;
        $TKMvar.stairMove.regionLDRU = Number( getParam("right_upward") ) || -1;
        $TKMvar.stairMove.regionLURD = Number( getParam("left_upward") ) || -1;
        
        
        var _Game_Player_executeMove = Game_Player.prototype.executeMove;
        Game_Player.prototype.executeMove = function(direction) {
            var diagonalAccess = false;
            var sm = $TKMvar.stairMove;
            
            if(this.regionId() === sm.regionLDRU || this.regionId() === sm.regionLURD) {
                if(direction === 4 || direction === 6) {
                    var yDirection;
                    if(this.regionId() === sm.regionLDRU) yDirection = (direction === 4) ? 2 : 8;
                    else yDirection = (direction === 4) ? 8 : 2;
                    
                    var x2 = $gameMap.roundXWithDirection(this.x, direction);
                    var y2 = $gameMap.roundYWithDirection(this.y, yDirection);
                    if($gameMap.regionId(x2, y2) === this.regionId()) {
                        diagonalAccess = true;
                        this._direction = direction;
                        this.moveDiagonally(direction, yDirection);
                    }
                }
            }
            
            if(!diagonalAccess) {
                _Game_Player_executeMove.apply(this, arguments);
            }
        }
        /* TODO
        Game_Player.prototype.moveDiagonally = function(horz, vert) {
            Game_CharacterBase.prototype.moveDiagonally.apply(this, arguments);
            
            if(!this.isMovementSucceeded()) {
                var sm = $TKMvar.stairMove;
                var direction = this._direction;
                
                if(this.regionId() === sm.regionLDRU || this.regionId() === sm.regionLURD) {
                    if(direction === 4 || direction === 6) {
                        var yDirection = 0;
                        if(this.regionId() === sm.regionLDRU) yDirection = (direction === 4) ? 2 : 8;
                        else yDirection = (direction === 4) ? 8 : 2;
    
                        var x2 = $gameMap.roundXWithDirection(this.x, direction);
                        var y2 = $gameMap.roundYWithDirection(this.y, yDirection);
                        if($gameMap.regionId(x2, y2) === this.regionId()) this.checkEventTriggerTouch(x2, y2);
                    }
                }
            }
        }
        */
    })();
    
     
    #5
  6. master2015hp

    master2015hp ユーザー

    Wow it worked now! Sorry but could i ask what did you change to make it work? Did you only change these lines?
    /*:en , * @param right_upward , * @param left_upward
    $TKMvar.stairMove.regionLDRU = Number( getParam("right_upward") ) || -1;
    $TKMvar.stairMove.regionLURD = Number( getParam("left_upward") ) || -1;

    And sorry to bother you but can you help me to correct this one too (attached)? It from this same Author and i think it has similar problem with incorrect characters.
    Thank you very much (just make it work is ok, i can translate help text with Google)
     

    添付ファイル:

    #6
  7. Chungin Chae

    Chungin Chae ユーザー

    There is no difference with your code, but As I look your code, there are some incorrect thing that you had pasted.
    [ /* en -> /*:en] and some of space error such like " //" or "/ /", blank in your code line 2.

    In my experience, that can cause syntax error.

    And I think you can do it with same way to the other plug-in that you attached.
    Just beware to correct lines between original one and matching parameter name between command and parameter.
     
    #7
    master2015hp がいいね!しました
  8. master2015hp

    master2015hp ユーザー

    Thank you, it worked now :) this is awesome
     
    #8
  9. Chungin Chae

    Chungin Chae ユーザー

    いつものプラグインのライセンスチェックはしていますが、このプラグインを韓国語翻訳と韓国内のコミュニティに紹介したいと思います。もしかしたら、よろしければ許してもらえますか?
     
    #9
  10. ツキミ

    ツキミ ユーザー

    もちろんです!Absolutely Yes!
    I'm glad that you are interested in my plugin.
     
    #10
    Chungin Chae がいいね!しました
  11. あきまり

    あきまり ユーザー

    ゲームに使わせて頂きました!ありがとうございます!!
     
    #11

このページを共有