[résolue]création de notetags pour script perso
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 :
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
#
#==============================================================================
Re: [résolue]création de notetags pour script perso
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];
};
Re: [résolue]création de notetags pour script perso
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
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
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
Re: [résolue]création de notetags pour script perso
Ven 25 Mar 2016 - 9:43
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 ^^
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 ^^
Re: [résolue]création de notetags pour script perso
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;
}
}
};
Re: [résolue]création de notetags pour script perso
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?
Re: [résolue]création de notetags pour script perso
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.
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|