¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Últimos temas
» Baikon 13 [Juego Completo]
por gantzer49 Hoy a las 14:22

» Ayuda! Mecánicas interesantes...
por orochii Hoy a las 12:47

» Tengo mis dudas.....
por silvanash Hoy a las 11:56

» Subir vida al equipar protector o cualquier otra arma o accesorio
por orochii Hoy a las 01:25

» Tetra Master [XP][VX][ACE]
por Producciones The Golden Ayer a las 22:49

» Obligar a usar un objeto de menú
por alex1633 Ayer a las 22:22

» Si nesesitas un dibujo entra aqui
por jasuso Ayer a las 21:34

» El poder oculto (Demo)
por alex1633 Ayer a las 19:30

» Origenes de Osaka
por CuteXiora Ayer a las 12:51

» Hola a tod@s ♥
por orochii Ayer a las 03:24

Afiliados
Estadísticas
Tenemos 3706 miembros registrados.
El último usuario registrado es Tekacon.

Nuestros miembros han publicado un total de 82137 mensajes en 11620 argumentos.
Navega con Google Chrome
[DESCARGA]

[RMMV] Window_Menu Add On para incluir el plugin EnemyBook al menú

 :: RPG Maker :: Scripts

Ver el tema anterior Ver el tema siguiente Ir abajo

[RMMV] Window_Menu Add On para incluir el plugin EnemyBook al menú

Mensaje por kyonides-arkanthos el 2015-10-29, 22:22

Window_Menu Add On para incluir el plugin EnemyBook al menú

Autor de este plugin básico: Kyonides-Arkanthos

Autor del EnemyBook: Yoji Ojima

Este plugin, que no es más que un archivo js con un script de javascript, contiene un complemento para que al menú normal del MV se le agregue la opción de ir al Bestiario o EnemyBook de Yoji Ojima.

A pesar de lo que algunos puedan pensar, su script no tenía la más mínima intención de ser accedido de forma directa sino solo a través del Plugin Command que hace las de la ventana de llamado a Script en RMXP, VX y VX Ace pero solo con palabras clave al mejor estilo de los comentarios.

En otras palabras, no era posible hacerlo desde el menú principal sino solo por medio de eventos...

No me gustó esa idea y es por eso que les traigo esta variante para que sí pueda ser accedido desde el menú.

Ah, y no se equivoquen, que yo no tengo muchas intenciones de hacer scripts para MV. Bueno, al menos no para compartirlos, ya que lo único que busco es practicar más el uso de javascript.

Código:
//========================================================================================
// AddEnemyBookToMenu : Window_MenuCommand now includes an option to open EnemyBook scene
//========================================================================================

/*:
 * @plugindesc Displays the Bestiary menu option.
 * @author Kyonides-Arkanthos
 *
 * @param None
 */

/*
 * Enemy Book Description: Displays detailed statuses of enemies.
 * Enemy Book Author: Yoji Ojima
 */
 
function Scene_EnemyBook() {
    this.initialize.apply(this, arguments);
}

Scene_EnemyBook.prototype = Object.create(Scene_MenuBase.prototype);
Scene_EnemyBook.prototype.constructor = Scene_EnemyBook;

Scene_EnemyBook.prototype.initialize = function() {
    Scene_MenuBase.prototype.initialize.call(this);
};

Scene_EnemyBook.prototype.create = function() {
    Scene_MenuBase.prototype.create.call(this);
    this._indexWindow = new Window_EnemyBookIndex(0, 0);
    this._indexWindow.setHandler('cancel', this.popScene.bind(this));
    var wy = this._indexWindow.height;
    var ww = Graphics.boxWidth;
    var wh = Graphics.boxHeight - wy;
   var parameters = PluginManager.parameters('EnemyBook');
   this.unknownData = String(parameters['Unknown Data'] || '??????');
    this._statusWindow = new Window_EnemyBookStatus(0, wy, ww, wh);
    this.addWindow(this._indexWindow);
    this.addWindow(this._statusWindow);
    this._indexWindow.setStatusWindow(this._statusWindow);
};

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

Window_EnemyBookIndex.prototype = Object.create(Window_Selectable.prototype);
Window_EnemyBookIndex.prototype.constructor = Window_EnemyBookIndex;

Window_EnemyBookIndex.lastTopRow = 0;
Window_EnemyBookIndex.lastIndex  = 0;

Window_EnemyBookIndex.prototype.initialize = function(x, y) {
    var width = Graphics.boxWidth;
    var height = this.fittingHeight(6);
    Window_Selectable.prototype.initialize.call(this, x, y, width, height);
    this.refresh();
    this.setTopRow(Window_EnemyBookIndex.lastTopRow);
    this.select(Window_EnemyBookIndex.lastIndex);
    this.activate();
}

Window_EnemyBookIndex.prototype.maxCols = function() { return 3; }

 Window_EnemyBookIndex.prototype.maxItems = function() {
    return this._list ? this._list.length : 0;
}

Window_EnemyBookIndex.prototype.setStatusWindow = function(statusWindow) {
    this._statusWindow = statusWindow;
    this.updateStatus();
}

Window_EnemyBookIndex.prototype.update = function() {
    Window_Selectable.prototype.update.call(this);
    this.updateStatus();
}

Window_EnemyBookIndex.prototype.updateStatus = function() {
    if (this._statusWindow) {
        var enemy = this._list[this.index()];
        this._statusWindow.setEnemy(enemy);
    }
}

Window_EnemyBookIndex.prototype.refresh = function() {
    this._list = [];
    for (var i = 1; i < $dataEnemies.length; i++) {
        var enemy = $dataEnemies[i];
        if (enemy.name && enemy.meta.book !== 'no') {
            this._list.push(enemy);
        }
    }
    this.createContents();
    this.drawAllItems();
}

Window_EnemyBookIndex.prototype.drawItem = function(index) {
    var enemy = this._list[index];
    var rect = this.itemRectForText(index);
    var name;
    if ($gameSystem.isInEnemyBook(enemy)) {
        name = enemy.name;
    } else {
        name = this.unknownData;
    }
    this.drawText(name, rect.x, rect.y, rect.width);
}

Window_EnemyBookIndex.prototype.processCancel = function() {
    Window_Selectable.prototype.processCancel.call(this);
    Window_EnemyBookIndex.lastTopRow = this.topRow();
    Window_EnemyBookIndex.lastIndex = this.index();
}

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

Window_EnemyBookStatus.prototype = Object.create(Window_Base.prototype)
Window_EnemyBookStatus.prototype.constructor = Window_EnemyBookStatus;

Window_EnemyBookStatus.prototype.initialize = function(x, y, width, height) {
    Window_Base.prototype.initialize.call(this, x, y, width, height);
    this._enemy = null;
    this._enemySprite = new Sprite();
    this._enemySprite.anchor.x = 0.5;
    this._enemySprite.anchor.y = 0.5;
    this._enemySprite.x = width / 2 - 20;
    this._enemySprite.y = height / 2;
    this.addChildToBack(this._enemySprite);
    this.refresh();
}

 Window_EnemyBookStatus.prototype.setEnemy = function(enemy) {
    if (this._enemy !== enemy) {
        this._enemy = enemy;
        this.refresh();
    }
}

Window_EnemyBookStatus.prototype.update = function() {
    Window_Base.prototype.update.call(this);
    if (this._enemySprite.bitmap) {
        var bitmapHeight = this._enemySprite.bitmap.height;
        var contentsHeight = this.contents.height;
        var scale = 1;
        if (bitmapHeight > contentsHeight) {
            scale = contentsHeight / bitmapHeight;
        }
        this._enemySprite.scale.x = scale;
        this._enemySprite.scale.y = scale;
    }
}

Window_EnemyBookStatus.prototype.refresh = function() {
    var enemy = this._enemy;
    var x = 0;
    var y = 0;
    var lineHeight = this.lineHeight();

    this.contents.clear();

    if (!enemy || !$gameSystem.isInEnemyBook(enemy)) {
        this._enemySprite.bitmap = null;
        return;
    }

    var name = enemy.battlerName;
    var hue = enemy.battlerHue;
    var bitmap;
    if ($gameSystem.isSideView()) {
        bitmap = ImageManager.loadSvEnemy(name, hue);
    } else {
        bitmap = ImageManager.loadEnemy(name, hue);
    }
    this._enemySprite.bitmap = bitmap;

    this.resetTextColor();
    this.drawText(enemy.name, x, y);

    x = this.textPadding();
    y = lineHeight + this.textPadding();

    for (var i = 0; i < 8; i++) {
        this.changeTextColor(this.systemColor());
        this.drawText(TextManager.param(i), x, y, 160);
        this.resetTextColor();
        this.drawText(enemy.params[i], x + 160, y, 60, 'right');
        y += lineHeight;
    }

    var rewardsWidth = 280;
    x = this.contents.width - rewardsWidth;
    y = lineHeight + this.textPadding();

    this.resetTextColor();
    this.drawText(enemy.exp, x, y);
    x += this.textWidth(enemy.exp) + 6;
    this.changeTextColor(this.systemColor());
    this.drawText(TextManager.expA, x, y);
    x += this.textWidth(TextManager.expA + '  ');

    this.resetTextColor();
    this.drawText(enemy.gold, x, y);
    x += this.textWidth(enemy.gold) + 6;
    this.changeTextColor(this.systemColor());
    this.drawText(TextManager.currencyUnit, x, y);

    x = this.contents.width - rewardsWidth;
    y += lineHeight;

    for (var j = 0; j < enemy.dropItems.length; j++) {
        var di = enemy.dropItems[j];
        if (di.kind > 0) {
            var item = Game_Enemy.prototype.itemObject(di.kind, di.dataId);
            this.drawItemName(item, x, y, rewardsWidth);
            y += lineHeight;
        }
    }

    var descWidth = 480;
    x = this.contents.width - descWidth;
    y = this.textPadding() + lineHeight * 7;
    this.drawTextEx(enemy.meta.desc1, x, y + lineHeight * 0, descWidth);
    this.drawTextEx(enemy.meta.desc2, x, y + lineHeight * 1, descWidth);
};

Window_MenuCommand.prototype.addOriginalCommands = function() {
   this.addCommand('Bestiary', 'bestiary', true);
}

Scene_Menu.prototype.createCommandWindow = function() {
    this._commandWindow = new Window_MenuCommand(0, 0);
    this._commandWindow.setHandler('item',      this.commandItem.bind(this));
    this._commandWindow.setHandler('skill',    this.commandPersonal.bind(this));
    this._commandWindow.setHandler('equip',    this.commandPersonal.bind(this));
    this._commandWindow.setHandler('status',    this.commandPersonal.bind(this));
    this._commandWindow.setHandler('formation', this.commandFormation.bind(this));
   this._commandWindow.setHandler('bestiary',  this.commandBestiary.bind(this));
    this._commandWindow.setHandler('options',  this.commandOptions.bind(this));
    this._commandWindow.setHandler('save',      this.commandSave.bind(this));
    this._commandWindow.setHandler('gameEnd',  this.commandGameEnd.bind(this));
    this._commandWindow.setHandler('cancel',    this.popScene.bind(this));
    this.addWindow(this._commandWindow);
}

Scene_Menu.prototype.commandBestiary = function() {
    SceneManager.push(Scene_EnemyBook);
}
avatar
kyonides-arkanthos
Principiante
Principiante

0/3

Créditos 397

Gracias : 54

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 :: RPG Maker :: Scripts

Permisos de este foro:
No puedes responder a temas en este foro.