Item Menu Script

Discussion in 'Learning Javascript' started by Name, Nov 8, 2016.

  1. Name

    Name Veteran Veteran

    Messages:
    131
    Likes Received:
    190
    Location:
    Wonderland
    First Language:
    English
    Primarily Uses:
    RMMV
    I am working on my own item menu plugin based off of the default item menu script. I have it the way I want, but the help info doesn't show in the box. Can anyone help me with this?


    Here is the script:

    //-----------------------------------------------------------------------------
    // Scene_Item
    //
    // The scene class of the item screen.


    function Scene_Item() {
        this.initialize.apply(this, arguments);
    }


    Scene_Item.prototype = Object.create(Scene_ItemBase.prototype);
    Scene_Item.prototype.constructor = Scene_Item;


    Scene_Item.prototype.initialize = function() {
        Scene_ItemBase.prototype.initialize.call(this);
    };


    Scene_Item.prototype.create = function() {
        Scene_ItemBase.prototype.create.call(this);
        this.createHelpWindow();
        this.createCategoryWindow();
        this.createItemWindow();
        this.createActorWindow();
    };


    Scene_Item.prototype.createCategoryWindow = function() {
        this._categoryWindow = new Window_ItemCategory();
        this._categoryWindow.x = 0;
        this._categoryWindow.y = 0;
        this._categoryWindow.setHandler('ok',     this.onCategoryOk.bind(this));
        this._categoryWindow.setHandler('cancel', this.popScene.bind(this));
        this.addWindow(this._categoryWindow);
    };


    Scene_Item.prototype.createItemWindow = function() {
        this._itemWindow = new Window_ItemList();
        this._itemWindow.x = 200;
        this._itemWindow.y = 80;
        this._itemWindow.height = 540;
        this._itemWindow.width = 400;
        this._itemWindow.setHelpWindow(this._helpWindow);
        this._itemWindow = new Window_ItemList(0, this._itemWindow.y, this._itemWindow.width, this._itemWindow.height);
        this._itemWindow.setHandler('ok',     this.onItemOk.bind(this));
        this._itemWindow.setHandler('cancel', this.onItemCancel.bind(this));
        this.addWindow(this._itemWindow);
        this._categoryWindow.setItemWindow(this._itemWindow);
    };


    Scene_Item.prototype.createHelpWindow = function() {
        this._helpWindow = new Window_Help();
        this._helpWindow.height = 150;
        this._helpWindow.width = 400;
        this._helpWindow.x = 410;
        this._helpWindow.y = 460;
        this.addWindow(this._helpWindow);
    };


    Window_ItemList.prototype.maxCols = function() {
        return 1;
    }


    Scene_Item.prototype.user = function() {
        var members = $gameParty.movableMembers();
        var bestActor = members[0];
        var bestPha = 0;
        for (var i = 0; i < members.length; i++) {
            if (members.pha > bestPha) {
                bestPha = members.pha;
                bestActor = members;
            }
        }
        return bestActor;
    };


    Scene_Item.prototype.onCategoryOk = function() {
        this._itemWindow.activate();
        this._itemWindow.selectLast();
    };


    Scene_Item.prototype.onItemOk = function() {
        $gameParty.setLastItem(this.item());
        this.determineItem();
    };


    Scene_Item.prototype.onItemCancel = function() {
        this._itemWindow.deselect();
        this._categoryWindow.activate();
    };


    Scene_Item.prototype.playSeForItem = function() {
        SoundManager.playUseItem();
    };


    Scene_Item.prototype.useItem = function() {
        Scene_ItemBase.prototype.useItem.call(this);
        this._itemWindow.redrawCurrentItem();
    };
     





     




     






    Here is a screenshot: (the box at the bottom right is the desc box)

    itemmenu.png





     
    Not signed in




     






     
     
    Last edited by a moderator: Nov 8, 2016
    #1
  2. Lantiz

    Lantiz Biterkid Veteran

    Messages:
    719
    Likes Received:
    1,066
    Location:
    Brazil
    First Language:
    Portuguese
    Primarily Uses:
    RMMV


    You need to create the instance before setting the help window.


    Change the position of the marked lines and it should work.


    By the way instead of creating a new window, you could just call the initialize function again.
     
    Last edited by a moderator: Nov 8, 2016
    #2
  3. Kino

    Kino EIS Game Dev Veteran

    Messages:
    515
    Likes Received:
    672
    Location:
    United States
    First Language:
    English
    Primarily Uses:
    RMMV
    There is probably nothing being sent to the help window to draw. Check the Window_Help class update function to see what it does.
     
    #3
  4. Name

    Name Veteran Veteran

    Messages:
    131
    Likes Received:
    190
    Location:
    Wonderland
    First Language:
    English
    Primarily Uses:
    RMMV
    #4
    Lantiz likes this.
  5. Lantiz

    Lantiz Biterkid Veteran

    Messages:
    719
    Likes Received:
    1,066
    Location:
    Brazil
    First Language:
    Portuguese
    Primarily Uses:
    RMMV


    Just do this way:

    Code:
    Scene_Item.prototype.createItemWindow = function() {
        this._itemWindow = new Window_ItemList(0, 80, 540, 400);
        this._itemWindow.setHelpWindow(this._helpWindow);
        this._itemWindow.setHandler('ok',     this.onItemOk.bind(this));
        this._itemWindow.setHandler('cancel', this.onItemCancel.bind(this));
        this.addWindow(this._itemWindow);
        this._categoryWindow.setItemWindow(this._itemWindow);
    }; 
     
    #5
  6. Name

    Name Veteran Veteran

    Messages:
    131
    Likes Received:
    190
    Location:
    Wonderland
    First Language:
    English
    Primarily Uses:
    RMMV
    I got it! thanks so much!! solved!
     
    #6
    Lantiz likes this.

Share This Page