Partagez
Aller en bas
avatar
johnseed
Membre

Nombre de messages : 67
Age : 35
Distinction : aucune
Date d'inscription : 03/03/2013
http://seedsoft.moe/

Résolu Aide sur des aliasing(patch)

le Lun 13 Aoû 2018 - 22:21
bonjour je vous présente mon soucis j'utilise pour mon projet certain script connue ,comme YEP_BattleEngineCore.js par exemple
mon soucis est que j'ai modifier pour mes besoin certaine partie de son code,
je souhaiterais faire des alias donc comme des patch dans un nouveau fichier .js pour évité de tout réécrire a chaque mise a jour du plugin.
sur rpg maker vxace on appeler cela du aliasing
exemple de code
Code:

Sprite_Actor.prototype.setActorHome = function(index) {
    var screenWidth = Graphics.boxWidth;
    var screenHeight = Graphics.boxHeight;
    var maxSize = $gameParty.maxBattleMembers();
    var partySize = $gameParty.battleMembers().length;
    var statusHeight = eval(Yanfly.Param.BECCommandRows);
    statusHeight *= Window_Base.prototype.lineHeight.call(this);
    statusHeight += Window_Base.prototype.standardPadding.call(this) * 2;
    if ($gameSystem.isSideView()) {
      var code = Yanfly.Param.BECHomePosX;
      try {
        var homeX = eval(code);
      } catch (e) {
        var homeX = 0;
        Yanfly.Util.displayError(e, code, 'SIDE VIEW HOME X FORMULA ERROR');
      }
      var code = Yanfly.Param.BECHomePosY;
      try {
        var homeY = eval(code);
      } catch (e) {
        var homeY = 0;
        Yanfly.Util.displayError(e, code, 'SIDE VIEW HOME Y FORMULA ERROR');
      }
    } else {
      var code = Yanfly.Param.BECFrontPosX;
      try {
        var homeX = eval(code);
      } catch (e) {
        var homeX = 0;
        Yanfly.Util.displayError(e, code, 'FRONT VIEW HOME X FORMULA ERROR');
      }
      var code = Yanfly.Param.BECFrontPosY;
      try {
        var homeY = eval(code);
      } catch (e) {
        var homeY = 0;
        Yanfly.Util.displayError(e, code, 'FRONT VIEW HOME Y FORMULA ERROR');
      }
    }
    this._checkAliveStatus = false;
    if ($gameParty.battleMembers()[index]) {
      var actor = $gameParty.battleMembers()[index];
      if (actor.isAlive()) this._checkAliveStatus = true;
    }
    this.setHome(homeX, homeY);
    this.moveToStartPosition();
};
et mon patch
Code:

Sprite_Actor.prototype.setActorHome = function(index) {
    var screenWidth = Graphics.boxWidth;
    var screenHeight = Graphics.boxHeight;
    var maxSize = $gameParty.maxBattleMembers();
    var partySize = $gameParty.battleMembers().length;
    var statusHeight = eval(Yanfly.Param.BECCommandRows);
    statusHeight *= Window_Base.prototype.lineHeight.call(this);
    statusHeight += Window_Base.prototype.standardPadding.call(this) * 2;
    if ($gameSystem.isSideView()) {
      var code = Yanfly.Param.BECHomePosX;
      try {
        var homeX = eval(code);
      } catch (e) {
        var homeX = 0;
        Yanfly.Util.displayError(e, code, 'SIDE VIEW HOME X FORMULA ERROR');
      }
      var code = Yanfly.Param.BECHomePosY;
      try {
        var homeY = eval(code);
      } catch (e) {
        var homeY = 0;
        Yanfly.Util.displayError(e, code, 'SIDE VIEW HOME Y FORMULA ERROR');
      }
    } else {
      var code = Yanfly.Param.BECFrontPosX;
      try {
        var homeX = eval(code);
      } catch (e) {
        var homeX = 0;
        Yanfly.Util.displayError(e, code, 'FRONT VIEW HOME X FORMULA ERROR');
      }
      var code = Yanfly.Param.BECFrontPosY;
      try {
        var homeY = eval(code);
      } catch (e) {
        var homeY = 0;
        Yanfly.Util.displayError(e, code, 'FRONT VIEW HOME Y FORMULA ERROR');
      }
    }
    this._checkAliveStatus = false;
    if ($gameParty.battleMembers()[index]) {
      var actor = $gameParty.battleMembers()[index];
      if (actor.isAlive()) this._checkAliveStatus = true;
//patch============================
  if (actor.master == 1) {
 var homeX = $gameParty.battleMembers()[0].homeX() - 200;
 var homeY = $gameParty.battleMembers()[0].homeY();

  };
  if (actor.master == 2) {
 var homeX = $gameParty.battleMembers()[1].homeX() - 200;
 var homeY = $gameParty.battleMembers()[1].homeY();
  };
  if (actor.master == 3) {
 var homeX = $gameParty.battleMembers()[2].homeX() - 200;
 var homeY = $gameParty.battleMembers()[2].homeY();
  };
//======================================
    }
    this.setHome(homeX, homeY);
    this.moveToStartPosition();
};


Dernière édition par johnseed le Ven 31 Aoû 2018 - 14:56, édité 3 fois
avatar
johnseed
Membre

Nombre de messages : 67
Age : 35
Distinction : aucune
Date d'inscription : 03/03/2013
http://seedsoft.moe/

Résolu Re: Aide sur des aliasing(patch)

le Jeu 16 Aoû 2018 - 13:06
Je me permet un petit up.
J'ai essayer de juste copier l'intégralité du code. Cela me donne une erreur stack level
avatar
dricc
Membre

Nombre de messages : 2756
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009

Résolu Re: Aide sur des aliasing(patch)

le Ven 17 Aoû 2018 - 16:26
Error stack level , ce n'est que le début du message d'erreur . Plus bas , tu devrais avoir qq chose de plus parlant .

Sinon , tu as un problème avec tes variables , là : Elles sont déja déclarées . Tu n'as donc plus qu'a les affecter (en clair , enleve "var" devant) .
avatar
johnseed
Membre

Nombre de messages : 67
Age : 35
Distinction : aucune
Date d'inscription : 03/03/2013
http://seedsoft.moe/

Résolu Re: Aide sur des aliasing(patch)

le Ven 17 Aoû 2018 - 17:30
Mon code fonctione je veut juste en faire un alias comme dans rpg maker vxace.
Le stack level c'est qu'il y as 2 fois
Sprite_Actor.prototype.setActorHome 
Je voulais faire un fichier plugin avec le patch en alias. Ce qui m'evitera de reporter le patch a chaque mise a jour de yanfly
avatar
Dany
Membre

Nombre de messages : 768
Age : 22
Distinction : aucune
Date d'inscription : 16/11/2010
http://gamers-studio.forumofficiel.fr/

Résolu Re: Aide sur des aliasing(patch)

le Sam 18 Aoû 2018 - 16:59
Voici un exemple :
Code:
var _spriteactor_setactorhome = Sprite_Actor.prototype.setActorHome;

Sprite_Actor.prototype.setActorHome () {
    _spriteactor_setactorhome.call(this); // Appel la fonction complet.
}
avatar
johnseed
Membre

Nombre de messages : 67
Age : 35
Distinction : aucune
Date d'inscription : 03/03/2013
http://seedsoft.moe/

Résolu Re: Aide sur des aliasing(patch)

le Sam 18 Aoû 2018 - 17:56
Merci je test ca des que je rentre
avatar
johnseed
Membre

Nombre de messages : 67
Age : 35
Distinction : aucune
Date d'inscription : 03/03/2013
http://seedsoft.moe/

Résolu Re: Aide sur des aliasing(patch)

le Ven 24 Aoû 2018 - 15:06
je viens d'essayer et cela ne marche pas
Code:

var _spriteactor_setactorhome = Sprite_Actor.prototype.setActorHome;

    Sprite_Actor.prototype.setActorHome () {
        _spriteactor_setactorhome.call(this); // Appel la fonction complet.
    if ($gameParty.battleMembers()[index]) {
      var actor = $gameParty.battleMembers()[index];
      if (actor.isAlive()) this._checkAliveStatus = true;
//patch= start===========================
     if (actor.master == 1) {
      var homeX = $gameParty.battleMembers()[0].homeX() - 200;
      var homeY = $gameParty.battleMembers()[0].homeY();

     };
     if (actor.master == 2) {
      var homeX = $gameParty.battleMembers()[1].homeX() - 200;
      var homeY = $gameParty.battleMembers()[1].homeY();
     };
     if (actor.master == 3) {
      var homeX = $gameParty.battleMembers()[2].homeX() - 200;
      var homeY = $gameParty.battleMembers()[2].homeY();
     };
    };
//patch end============================
    }
j'ai cette erreur
Uncaught SyntaxError: Unexpected token { js/plugins/patch_master.js:3

avatar
johnseed
Membre

Nombre de messages : 67
Age : 35
Distinction : aucune
Date d'inscription : 03/03/2013
http://seedsoft.moe/

Résolu Re: Aide sur des aliasing(patch)

le Mer 29 Aoû 2018 - 15:51
J'ai vraiment du mal avec les alias. Je comprend pas le system. Il faut reecrire toute la fonction? Qui remplacera celle existante? Ou on rajoute juste ce que l'on as besoin?
avatar
Dany
Membre

Nombre de messages : 768
Age : 22
Distinction : aucune
Date d'inscription : 16/11/2010
http://gamers-studio.forumofficiel.fr/

Résolu Re: Aide sur des aliasing(patch)

le Mer 29 Aoû 2018 - 17:53
Tu interagir avec un autre plugin?
Si oui lequel?
Car je cherche dans les plugin de base je trouve pas Sprite_Actor.prototype.setActorHome ().
avatar
johnseed
Membre

Nombre de messages : 67
Age : 35
Distinction : aucune
Date d'inscription : 03/03/2013
http://seedsoft.moe/

Résolu Re: Aide sur des aliasing(patch)

le Mer 29 Aoû 2018 - 19:16
Oui le pnugin c'est YEP_BattleEngineCore
Et la mofification est personel c'est un system que j'ai fait
avatar
Dany
Membre

Nombre de messages : 768
Age : 22
Distinction : aucune
Date d'inscription : 16/11/2010
http://gamers-studio.forumofficiel.fr/

Résolu Re: Aide sur des aliasing(patch)

le Mer 29 Aoû 2018 - 19:22
Essaie ceci :
Code:
var _spriteactor_setactorhome = Sprite_Actor.prototype.setActorHome;

    Sprite_Actor.prototype.setActorHome = function(index) {
        _spriteactor_setactorhome.call(this); // Appel la fonction complet.
    if ($gameParty.battleMembers()[index]) {
      var actor = $gameParty.battleMembers()[index];
      if (actor.isAlive()) this._checkAliveStatus = true;
//patch= start===========================
     if (actor.master == 1) {
      var homeX = $gameParty.battleMembers()[0].homeX() - 200;
      var homeY = $gameParty.battleMembers()[0].homeY();

     };
     if (actor.master == 2) {
      var homeX = $gameParty.battleMembers()[1].homeX() - 200;
      var homeY = $gameParty.battleMembers()[1].homeY();
     };
     if (actor.master == 3) {
      var homeX = $gameParty.battleMembers()[2].homeX() - 200;
      var homeY = $gameParty.battleMembers()[2].homeY();
     };
    };
//patch end============================
    }
avatar
johnseed
Membre

Nombre de messages : 67
Age : 35
Distinction : aucune
Date d'inscription : 03/03/2013
http://seedsoft.moe/

Résolu Re: Aide sur des aliasing(patch)

le Ven 31 Aoû 2018 - 14:56
j'ai trouver ce fut un peut long mais voila la solution il faut réécrire toute la fonction
Code:

var Patch_spriteactor_setactorhome = Sprite_Actor.prototype.setActorHome;
    Sprite_Actor.prototype.setActorHome = function(index){
    Patch_spriteactor_setactorhome.call(this); // Appel la fonction complet.
    var screenWidth = Graphics.boxWidth;
    var screenHeight = Graphics.boxHeight;
    var maxSize = $gameParty.maxBattleMembers();
    var partySize = $gameParty.battleMembers().length;
    var statusHeight = eval(Yanfly.Param.BECCommandRows);
    statusHeight *= Window_Base.prototype.lineHeight.call(this);
    statusHeight += Window_Base.prototype.standardPadding.call(this) * 2;
    if ($gameSystem.isSideView()) {
      var code = Yanfly.Param.BECHomePosX;
      try {
        var homeX = eval(code);
      } catch (e) {
        var homeX = 0;
        Yanfly.Util.displayError(e, code, 'SIDE VIEW HOME X FORMULA ERROR');
      }
      var code = Yanfly.Param.BECHomePosY;
      try {
        var homeY = eval(code);
      } catch (e) {
        var homeY = 0;
        Yanfly.Util.displayError(e, code, 'SIDE VIEW HOME Y FORMULA ERROR');
      }
    } else {
      var code = Yanfly.Param.BECFrontPosX;
      try {
        var homeX = eval(code);
      } catch (e) {
        var homeX = 0;
        Yanfly.Util.displayError(e, code, 'FRONT VIEW HOME X FORMULA ERROR');
      }
      var code = Yanfly.Param.BECFrontPosY;
      try {
        var homeY = eval(code);
      } catch (e) {
        var homeY = 0;
        Yanfly.Util.displayError(e, code, 'FRONT VIEW HOME Y FORMULA ERROR');
      }
    }
    this._checkAliveStatus = false;
    if ($gameParty.battleMembers()[index]) {
      var actor = $gameParty.battleMembers()[index];
      if (actor.isAlive()) this._checkAliveStatus = true;
//patch============================
     if (actor.master == 1) {
      var homeX = $gameParty.battleMembers()[0].homeX() - 200;
      var homeY = $gameParty.battleMembers()[0].homeY();

     };
     if (actor.master == 2) {
      var homeX = $gameParty.battleMembers()[1].homeX() - 200;
      var homeY = $gameParty.battleMembers()[1].homeY();
     };
     if (actor.master == 3) {
      var homeX = $gameParty.battleMembers()[2].homeX() - 200;
      var homeY = $gameParty.battleMembers()[2].homeY();
     };
//======================================
    }
    this.setHome(homeX, homeY);
    this.moveToStartPosition();
//======================================
   }
//patch end============================
Contenu sponsorisé

Résolu Re: Aide sur des aliasing(patch)

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum