Partagez
Aller en bas
avatar
johnseed
Membre

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

Résolu [résolue]création de notetags pour script perso

le Jeu 24 Mar 2016 - 16:46
bonjours je suis aller voir dans la section tuto mais pas trouver mon bonheur .
je voudrais savoir comment fonctionne le system de notetag sous rpgmaker mv
pour faire en sorte que cela face comme mon projets sur vxace (et oui je fait un portage)
voici ce que je faisais sur vxace :
Code:

#==============================================================================
# * SEED Engine -  Alpha sysem
#------------------------------------------------------------------------------
# Current Version: 1.03
#==============================================================================
=begin
--------------------------------------------------------------------------------
Notetags:
Actor/Enemy Notes
<Alpha Int: x> # chois des Alpha predefenie x=true/false
<Alpha Int V: x># chois des Alpha predefenie selon une variable  X= variable id (valeur 1=true/2=false)
=end
module SEED
  module ACTOR
    ALPHA_INT = /<(?:ALPHA_INT|Alpha Int|alpha int):[ ](\d+)>/i
    ALPHA_INT_V = /<(?:ALPHA_INT_V|Alpha Int V|alpha int v):[ ](\d+)>/i
  end
  module ENEMY    
    ALPHA_INT = /<(?:ALPHA_INT|Alpha Int|alpha int):[ ](\d+)>/i
    ALPHA_INT_V = /<(?:ALPHA_INT_V|Alpha Int V|alpha int v):[ ](\d+)>/i
  end  
  module CLASS
    ALPHA_CHANCE = 8192#
  end
end

#==============================================================================
# ¦ DataManager
#==============================================================================

module DataManager
 
  #--------------------------------------------------------------------------
  # alias method: load_database
  #--------------------------------------------------------------------------
  class <<self; alias load_database_clsp load_database; end
  def self.load_database
    load_database_clsp
    load_notetags_clsp
  end
 
  #--------------------------------------------------------------------------
  # new method: load_notetags_tpm
  #--------------------------------------------------------------------------
  def self.load_notetags_clsp
    groups = [$data_actors, $data_enemies]
    for group in groups
      for obj in group
        next if obj.nil?
        obj.load_notetags_clsp
      end
    end
  end
 
end # DataManager


#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
#  This class handles actors. It is used within the Game_Actors class
# ($game_actors) and is also referenced from the Game_Party class ($game_party).
#==============================================================================

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :alpha
  #--------------------------------------------------------------------------
  # * Setup
  #--------------------------------------------------------------------------
  alias setup_clsp setup
  def setup(actor_id)
    setup_clsp(actor_id)
# Alpha
    chance = SEED::CLASS::ALPHA_CHANCE-1
    odds = rand(chance)
    case odds
    when 0
      @alpha = true
    when
      @alpha = false
    end
    self.note.split(/[\r\n]+/).each { |line|
      case line
      when SEED::ACTOR::ALPHA_INT
        @alpha = $1.to_i
      when SEED::ACTOR::ALPHA_INT_V
        if $game_variables != nil
          case $game_variables [$1.to_i]
          when 0
            
          when 1
            @alpha = true
          when 2
            @alpha = false
          end
        end
  end

end
#==============================================================================
# ** Game_Enemy
#------------------------------------------------------------------------------
#  This class handles enemies. It used within the Game_Troop class
# ($game_troop).
#==============================================================================

class Game_Enemy < Game_Battler
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :alpha
  #--------------------------------------------------------------------------
  # * Setup
  #--------------------------------------------------------------------------
  alias init_clspr initialize
  def initialize(index, enemy_id)
    init_clspr(index, enemy_id)
        chance = SEED::CLASS::ALPHA_CHANCE-1
    odds = rand(chance)
    case odds
    when 0
      @alpha = true
    when
      @alpha = false
    end
    self.note.split(/[\r\n]+/).each { |line|
      case line
      when SEED::ACTOR::ALPHA_INT
        @alpha = $1.to_i
      when SEED::ACTOR::ALPHA_INT_V
        if $game_variables != nil
          case $game_variables [$1.to_i]
          when 0
            
          when 1
            @alpha = true
          when 2
            @alpha = false
          end
        end$
 end
end
#==============================================================================
#
# ? End of File
#
#==============================================================================
cela me permet de faire en sorte que certain ennemies ou heros soit différent des autre et le tout soit aléatoirement , soit définis ^^


Dernière édition par johnseed le Jeu 24 Mar 2016 - 20:49, édité 1 fois
avatar
tonyryu
Membre

Nombre de messages : 896
Age : 37
Localisation : Près de Nantes
Distinction : aucune
Date d'inscription : 27/05/2010
http://www.tonyryudev.com

Résolu Re: [résolue]création de notetags pour script perso

le Jeu 24 Mar 2016 - 18:00
Ce que j'ai fait pour le système de nom au dessus des PNJ :

Code:
  /**********************************************************************
  *----------------------------------------------------------------------
  * Modification de la "classe" Game_Event
  *----------------------------------------------------------------------
  **********************************************************************/
  /**********************************************************************
  * Méthode : setupPageSettings (surcharge)
  * Fonction : Ajoute la commande TonyryuAlchimie
  * Params : --
  **********************************************************************/
  var _Game_Event_setupPageSettings = Game_Event.prototype.setupPageSettings;
  Game_Event.prototype.setupPageSettings = function() {
    _Game_Event_setupPageSettings.call(this);
    var regExp = /\\NAME\[(.*)\]/;
    var event = this.event();
    var match = regExp.exec(event.note);
    if(match)
      this._pnjName = match[1];
  };
avatar
johnseed
Membre

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

Résolu Re: [résolue]création de notetags pour script perso

le Jeu 24 Mar 2016 - 19:17
merci de ta réponse rapide ;-)
cela fonctione pour les valeur définis  dans la note mais pas pour celle définis dans les variable

Code:

    var note1 = /<(?:Alpha\:[ ](.+))>/i;
    var note2 = /<(?:AlphaV\:[ ](.+))>/i;
    var actor = this.actor();
    var match = note1.exec(actor.note);
    if(match)
      this._alpha = match[1];
    var match = note2.exec(actor.note);
    if(match)
      this._alpha = $gameVariables.setValue(match[1]);

il y as une chose que j'ai pas faite?

édit; c'est bon je me suis tromper dans le type de variable
entre $gameVariables.setValue(match[1]) et $gameVariables.value(match[1])
tout fonctionne merci beaucoup pour ton aide
avatar
Sphinx
Membre

Nombre de messages : 58
Distinction : aucune
Date d'inscription : 08/03/2016

Résolu Re: [résolue]création de notetags pour script perso

le Ven 25 Mar 2016 - 9:43
Smile Sinon il y a meta (dès que le jeu charge des données, il les passe dans un parser qui extrait les tags des notes et charge un attribut meta)

Je n'ai pas testé pour le héros, mais actor.meta.Alpha et actor.meta.AlphaV devrait contenir la valeur passée au tag ^^
avatar
tonyryu
Membre

Nombre de messages : 896
Age : 37
Localisation : Près de Nantes
Distinction : aucune
Date d'inscription : 27/05/2010
http://www.tonyryudev.com

Résolu Re: [résolue]création de notetags pour script perso

le Ven 25 Mar 2016 - 11:27
effectivement, en recherchant, je suis tombé là-dessus :

Code:
DataManager.extractMetadata = function(data) {
    var re = /<([^<>:]+)(:?)([^>]*)>/g;
    data.meta = {};
    for (;;) {
        var match = re.exec(data.note);
        if (match) {
            if (match[2] === ':') {
                data.meta[match[1]] = match[3];
            } else {
                data.meta[match[1]] = true;
            }
        } else {
            break;
        }
    }
};
avatar
johnseed
Membre

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

Résolu Re: [résolue]création de notetags pour script perso

le Ven 25 Mar 2016 - 19:11
merci , en gros la différence c'est que l'un ne ce charge qu'une fois (meta) et l'autre tout le temp?
avatar
tonyryu
Membre

Nombre de messages : 896
Age : 37
Localisation : Près de Nantes
Distinction : aucune
Date d'inscription : 27/05/2010
http://www.tonyryudev.com

Résolu Re: [résolue]création de notetags pour script perso

le Dim 27 Mar 2016 - 10:58
c'est plus qu'il existe une fonction native qui permet de construire une liste de meta avec un format de balise précis dans la note de l'objet chargé. Ce qui évite de réécrire du code qui le refait dans le pluggin.
Contenu sponsorisé

Résolu Re: [résolue]création de notetags pour script perso

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