- KingdommangasMembre
- Nombre de messages : 1401
Localisation : Ma tête
Distinction : Débrouillarde notoire é_è [Mist']
Ou celle qui partageait plus vite que son ombre [Gel']
Poisson 2017 [Amal]
Grâce à elle, tout le forum appelle Yamashi "Mamashi" [Yama]
Entraide d'Or
Règne dans l'ombre de la commu'
Youtubeuse beauté reconvertie dans le gaming [Amal']
Date d'inscription : 05/05/2015
[résolu]Plugin mise à jour
Mar 27 Juin 2017 - 11:05
Yahallo
Je me tourne vers les scripteur du forum car je fais face à un gros pb sur mon projet. J'utilise actuellement un plugin du nom de TMRegionColor qui sert à colorier les régions in-game.
Mais depuis la dernière mise à jour, il est obsolète, ce plugin a l'air inutile mais il est tres important pour mon projet, est il possible de voir comment arranger ça?
Hikimoki site web
Je me tourne vers les scripteur du forum car je fais face à un gros pb sur mon projet. J'utilise actuellement un plugin du nom de TMRegionColor qui sert à colorier les régions in-game.
Mais depuis la dernière mise à jour, il est obsolète, ce plugin a l'air inutile mais il est tres important pour mon projet, est il possible de voir comment arranger ça?
Hikimoki site web
- Code:
//=============================================================================
// TMVplugin - リージョンカラー
// 作者: tomoaky (http://hikimoki.sakura.ne.jp/)
// Version: 1.1
// 最終更新日: 2016/04/07
//=============================================================================
/*:
* @plugindesc 指定したリージョンにだけ色をつけて表示します。
* 対象となるリージョンや色はプラグインコマンドで変更できます。
*
* @author tomoaky (http://hikimoki.sakura.ne.jp/)
*
* @param regionAlpha
* @desc リージョンカラーの不透明度( 0 ~ 255 )
* 初期値: 128
* @default 128
*
* @param useColorReset
* @desc マップ移動時にリージョンカラーを初期化するかどうか
* 初期値: 0( 1 で初期化する)
* @default 0
*
* @help
* プラグインコマンド:
* setRegionColor 1 #ff0000 # La région n ° 1 dans le rouge
* resetRegionColor 1 # Sortie les paramètres de couleur du n ° 1
* Région
* changeRegion 1 2 # Changer la région n ° 1 sur la carte à n ° 2
* changeRegionXy 5 3 255 # Changer la région de coordonnées (5, 3) à
* la troisième
* setStepRegion 1 # La région du lecteur de coordonnées est
* déplacé au n ° 1
* Changement (publié par -1)
*
* 注意事項:
* このプラグインの機能によるリージョン変更は一時的なものです、
* マップ移動によって変更前の状態に戻ります。
*/
var Imported = Imported || {};
Imported.TMRegionColor = true;
(function() {
var parameters = PluginManager.parameters('TMRegionColor');
var regionAlpha = +parameters['regionAlpha'];
var useColorReset = parameters['useColorReset'] === '1' ? true : false;
//-----------------------------------------------------------------------------
// Tilemap
//
Tilemap.prototype._paintTiles = function(startX, startY, x, y) {
var tableEdgeVirtualId = 10000;
var mx = startX + x;
var my = startY + y;
var dx = (mx * this._tileWidth).mod(this._layerWidth);
var dy = (my * this._tileHeight).mod(this._layerHeight);
var lx = dx / this._tileWidth;
var ly = dy / this._tileHeight;
var tileId0 = this._readMapData(mx, my, 0);
var tileId1 = this._readMapData(mx, my, 1);
var tileId2 = this._readMapData(mx, my, 2);
var tileId3 = this._readMapData(mx, my, 3);
var shadowBits = this._readMapData(mx, my, 4);
var upperTileId1 = this._readMapData(mx, my - 1, 1);
var lowerTiles = [];
var upperTiles = [];
if (this._isHigherTile(tileId0)) {
upperTiles.push(tileId0);
} else {
lowerTiles.push(tileId0);
}
if (this._isHigherTile(tileId1)) {
upperTiles.push(tileId1);
} else {
lowerTiles.push(tileId1);
}
lowerTiles.push(-shadowBits);
if (this._isTableTile(upperTileId1) && !this._isTableTile(tileId1)) {
if (!Tilemap.isShadowingTile(tileId0)) {
lowerTiles.push(tableEdgeVirtualId + upperTileId1);
}
}
if (this._isOverpassPosition(mx, my)) {
upperTiles.push(tileId2);
upperTiles.push(tileId3);
} else {
if (this._isHigherTile(tileId2)) {
upperTiles.push(tileId2);
} else {
lowerTiles.push(tileId2);
}
if (this._isHigherTile(tileId3)) {
upperTiles.push(tileId3);
} else {
lowerTiles.push(tileId3);
}
}
var regionVirtualId = 100000;
var regionId = this._readMapData(mx, my, 5);
if ($gameMap.regionColor(regionId)) {
lowerTiles.push(regionVirtualId + regionId);
}
var count = 1000 + this.animationCount - my;
var frameUpdated = (count % 30 === 0);
this._animationFrame = Math.floor(count / 30);
var lastLowerTiles = this._readLastTiles(0, lx, ly);
if (!lowerTiles.equals(lastLowerTiles) ||
(Tilemap.isTileA1(tileId0) && frameUpdated)) {
this._lowerBitmap.clearRect(dx, dy, this._tileWidth, this._tileHeight);
for (var i = 0; i < lowerTiles.length; i++) {
var lowerTileId = lowerTiles[i];
if (lowerTileId < 0) {
this._drawShadow(this._lowerBitmap, shadowBits, dx, dy);
} else if (lowerTileId >= regionVirtualId) {
if ($gameMap._regionColor[regionId]) {
this._lowerBitmap.paintOpacity = regionAlpha;
this._lowerBitmap.fillRect(dx, dy, 48, 48, $gameMap.regionColor(regionId));
this._lowerBitmap.paintOpacity = 255;
}
} else if (lowerTileId >= tableEdgeVirtualId) {
this._drawTableEdge(this._lowerBitmap, upperTileId1, dx, dy);
} else {
this._drawTile(this._lowerBitmap, lowerTileId, dx, dy);
}
}
this._writeLastTiles(0, lx, ly, lowerTiles);
}
var lastUpperTiles = this._readLastTiles(1, lx, ly);
if (!upperTiles.equals(lastUpperTiles)) {
this._upperBitmap.clearRect(dx, dy, this._tileWidth, this._tileHeight);
for (var j = 0; j < upperTiles.length; j++) {
this._drawTile(this._upperBitmap, upperTiles[j], dx, dy);
}
this._writeLastTiles(1, lx, ly, upperTiles);
}
};
//-----------------------------------------------------------------------------
// Game_Map
//
var _Game_Map_initialize = Game_Map.prototype.initialize;
Game_Map.prototype.initialize = function() {
_Game_Map_initialize.call(this);
this._regionColor = [];
};
var _Game_Map_setup = Game_Map.prototype.setup;
Game_Map.prototype.setup = function(mapId) {
_Game_Map_setup.call(this, mapId);
if (useColorReset) this._regionColor = [];
};
Game_Map.prototype.setRegionColor = function(id, color) {
this._regionColor = this._regionColor || [];
this._regionColor[id] = color;
};
Game_Map.prototype.regionColor = function(id) {
this._regionColor = this._regionColor || [];
return this._regionColor[id];
};
Game_Map.prototype.changeRegionXy = function(x, y, regionId) {
var width = $dataMap.width;
var height = $dataMap.height;
$dataMap.data[(5 * height + y) * width + x] = regionId;
};
Game_Map.prototype.changeRegion = function(targetRegionId, regionId) {
var width = $dataMap.width;
var height = $dataMap.height;
for (var x = 0; x < width; x++) {
for (var y = 0; y < width; y++) {
if (this.regionId(x, y) === targetRegionId) {
this.changeRegionXy(x, y, regionId);
}
}
}
};
//-----------------------------------------------------------------------------
// Game_Player
//
Game_Player.prototype.stepRegionId = function() {
if (this._stepRegionId === undefined) {
this._stepRegionId = -1;
}
return this._stepRegionId;
};
Game_Player.prototype.setStepRegionId = function(stepRegionId) {
this._stepRegionId = stepRegionId;
};
var _Game_Player_moveStraight = Game_Player.prototype.moveStraight;
Game_Player.prototype.moveStraight = function(d) {
lastX = this._x;
lastY = this._y;
_Game_Player_moveStraight.call(this, d);
var stepRegionId = this.stepRegionId();
if (stepRegionId >= 0 && this.isMovementSucceeded()) {
$gameMap.changeRegionXy(lastX, lastY, stepRegionId);
}
};
//-----------------------------------------------------------------------------
// Game_Interpreter
//
var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function(command, args) {
_Game_Interpreter_pluginCommand.call(this, command, args);
if (command === 'setRegionColor') {
$gameMap.setRegionColor(+args[0], args[1]);
} else if (command === 'resetRegionColor') {
$gameMap.setRegionColor(+args[0], undefined);
} else if (command === 'changeRegion') {
$gameMap.changeRegion(+args[0], +args[1]);
} else if (command === 'changeRegionXy') {
$gameMap.changeRegionXy(+args[0], +args[1], +args[2]);
} else if (command === 'setStepRegion') {
$gamePlayer.setStepRegionId(+args[0]);
}
};
})();
- driccMembre
- Nombre de messages : 2760
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009
Re: [résolu]Plugin mise à jour
Mar 27 Juin 2017 - 16:55
Ouch , je m'arrache les cheveux dessus depuis une bonne heure ...
En fait , il est moche ce plugin , il faut que tu le saches . Il écrase une des methodes de base de rpgmaker : Tilemap._paintTiles . Or justement , elle a changé . J'ai essayé d'adapter . Au lieu d'avoir une grosse erreur , il ne se passe rien maintenant .
Mais dis-moi , c'est bien ça qui se passait pour toi ? Tu avais une grosse erreur ?
En fait , il est moche ce plugin , il faut que tu le saches . Il écrase une des methodes de base de rpgmaker : Tilemap._paintTiles . Or justement , elle a changé . J'ai essayé d'adapter . Au lieu d'avoir une grosse erreur , il ne se passe rien maintenant .
Mais dis-moi , c'est bien ça qui se passait pour toi ? Tu avais une grosse erreur ?
- KingdommangasMembre
- Nombre de messages : 1401
Localisation : Ma tête
Distinction : Débrouillarde notoire é_è [Mist']
Ou celle qui partageait plus vite que son ombre [Gel']
Poisson 2017 [Amal]
Grâce à elle, tout le forum appelle Yamashi "Mamashi" [Yama]
Entraide d'Or
Règne dans l'ombre de la commu'
Youtubeuse beauté reconvertie dans le gaming [Amal']
Date d'inscription : 05/05/2015
Re: [résolu]Plugin mise à jour
Mar 27 Juin 2017 - 17:47
Il ne se passe rien du tout, zéro, nada.
Je suis allé sur le site mais le scripteur à juste laisser un message "ne fonctionne depuis la dernière mise à jour" et ne semble pas s'en soucier plus que ca.
si c'est trop dur, éventuellement refaire un plugin similaire ca irai aussi. ( TT v TT )
Je suis allé sur le site mais le scripteur à juste laisser un message "ne fonctionne depuis la dernière mise à jour" et ne semble pas s'en soucier plus que ca.
si c'est trop dur, éventuellement refaire un plugin similaire ca irai aussi. ( TT v TT )
Re: [résolu]Plugin mise à jour
Mar 27 Juin 2017 - 19:43
c'est bizarre y'à aucune erreur javascript chez moi non plus... Tu définis des région et quand tu lances la map ca colorise??? Je vois même pas les points d'arrêts passer dans la méthode...
Il faut mettre des trucs en plus dans le projet Kingdom? ou ca marche comme ca juste avec le script et les régions?
Il faut mettre des trucs en plus dans le projet Kingdom? ou ca marche comme ca juste avec le script et les régions?
- KingdommangasMembre
- Nombre de messages : 1401
Localisation : Ma tête
Distinction : Débrouillarde notoire é_è [Mist']
Ou celle qui partageait plus vite que son ombre [Gel']
Poisson 2017 [Amal]
Grâce à elle, tout le forum appelle Yamashi "Mamashi" [Yama]
Entraide d'Or
Règne dans l'ombre de la commu'
Youtubeuse beauté reconvertie dans le gaming [Amal']
Date d'inscription : 05/05/2015
Re: [résolu]Plugin mise à jour
Mar 27 Juin 2017 - 21:06
Nan, je définie les régions qui sont incolore in game.
dans un event je doit mettre plusieurs appel de module.
pour colorier la région 1 en (couleurs choisit en HTML)
puis j'utilise toujours en commande de module
Je n'ai besoin d'aucun ajout en dehors du plugin, vous pouvez trouver le site web ICI, le plugin est celui au fond de la page.
dans un event je doit mettre plusieurs appel de module.
- Code:
setRegionColor 1 #ff0000
pour colorier la région 1 en (couleurs choisit en HTML)
puis j'utilise toujours en commande de module
- Code:
resetRegionColor 1
Je n'ai besoin d'aucun ajout en dehors du plugin, vous pouvez trouver le site web ICI, le plugin est celui au fond de la page.
Re: [résolu]Plugin mise à jour
Mar 27 Juin 2017 - 22:37
Le problème avec la nouvelle version, c'est cela :
Du coupe maintenant, la plupart du temps ça instancie la classe ShaderTilemap. Et intervenir dessus, pour modifier le calque qui gère l'affichage des tiles, ça devient assez chaud.
Car faut comprendre le fonctionnement de PIXI.tilemap.CompositeRectTileLayer, et là je bute un peu à l'heure actuelle.
- Code:
Spriteset_Map.prototype.createTilemap = function() {
if (Graphics.isWebGL()) {
this._tilemap = new ShaderTilemap();
} else {
this._tilemap = new Tilemap();
}
...
Du coupe maintenant, la plupart du temps ça instancie la classe ShaderTilemap. Et intervenir dessus, pour modifier le calque qui gère l'affichage des tiles, ça devient assez chaud.
Car faut comprendre le fonctionnement de PIXI.tilemap.CompositeRectTileLayer, et là je bute un peu à l'heure actuelle.
- driccMembre
- Nombre de messages : 2760
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009
Re: [résolu]Plugin mise à jour
Mer 28 Juin 2017 - 10:39
Houla ....
Bon , merci Tonyryu .
Donc , la seule solution serait de recopier la methode createTilemap . Mais de l'obliger à instancier Tilemap() au lieu de ShaderTilemap() . Tu vas y perdre en terme de perf probablement .
Je n'ai pas trouvé de script similaire .
Bon , merci Tonyryu .
Donc , la seule solution serait de recopier la methode createTilemap . Mais de l'obliger à instancier Tilemap() au lieu de ShaderTilemap() . Tu vas y perdre en terme de perf probablement .
Je n'ai pas trouvé de script similaire .
- KingdommangasMembre
- Nombre de messages : 1401
Localisation : Ma tête
Distinction : Débrouillarde notoire é_è [Mist']
Ou celle qui partageait plus vite que son ombre [Gel']
Poisson 2017 [Amal]
Grâce à elle, tout le forum appelle Yamashi "Mamashi" [Yama]
Entraide d'Or
Règne dans l'ombre de la commu'
Youtubeuse beauté reconvertie dans le gaming [Amal']
Date d'inscription : 05/05/2015
Re: [résolu]Plugin mise à jour
Mer 28 Juin 2017 - 13:32
La perte de performance, ce sera tout le temps ou uniquement lors de l'utilisation du plugin?
- driccMembre
- Nombre de messages : 2760
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009
Re: [résolu]Plugin mise à jour
Mer 28 Juin 2017 - 13:47
Tout le temps ...
Tu perdras les bénéfices de cette optimisation du code qui n'existait pas dans les versions précédentes .
Je ne sais pas te dire à quel point ce sera impactant . Faudrait essayer .
Tu perdras les bénéfices de cette optimisation du code qui n'existait pas dans les versions précédentes .
Je ne sais pas te dire à quel point ce sera impactant . Faudrait essayer .
- KingdommangasMembre
- Nombre de messages : 1401
Localisation : Ma tête
Distinction : Débrouillarde notoire é_è [Mist']
Ou celle qui partageait plus vite que son ombre [Gel']
Poisson 2017 [Amal]
Grâce à elle, tout le forum appelle Yamashi "Mamashi" [Yama]
Entraide d'Or
Règne dans l'ombre de la commu'
Youtubeuse beauté reconvertie dans le gaming [Amal']
Date d'inscription : 05/05/2015
Re: [résolu]Plugin mise à jour
Mer 28 Juin 2017 - 15:39
Pour l'utilisation du plugin j'en ai 2 actuellement:
-Mes protagonistes ont tous une capacité particulières et unique, l'un d'entre eux détecte les pièges dans les donjon. En appuyant sur une touches, les dalles piégés deviennent rouge (basé sur la vision de the witcher qui met en surbrillance certaines partie du décors).
Dans l'absolu, je peux remplacer toutes les dalles par des event mais bon.
-Par contre la deuxième utilisation c'était car je veux implanter des passage en tactical RPG, j'avais prévu une arène avec des zones bien précise et j'ai besoin de ce plugin pour que les zones soit visibles, notamment pour savoir ou on peut aller et ce qu'on sélectionne.
En dehors de ces 2 utilisations, le plugin reste inactif.
-Mes protagonistes ont tous une capacité particulières et unique, l'un d'entre eux détecte les pièges dans les donjon. En appuyant sur une touches, les dalles piégés deviennent rouge (basé sur la vision de the witcher qui met en surbrillance certaines partie du décors).
Dans l'absolu, je peux remplacer toutes les dalles par des event mais bon.
-Par contre la deuxième utilisation c'était car je veux implanter des passage en tactical RPG, j'avais prévu une arène avec des zones bien précise et j'ai besoin de ce plugin pour que les zones soit visibles, notamment pour savoir ou on peut aller et ce qu'on sélectionne.
En dehors de ces 2 utilisations, le plugin reste inactif.
Re: [résolu]Plugin mise à jour
Mer 28 Juin 2017 - 19:41
une alternative serait d'ajouter un autre calque de sprite dans Scene_map, la seule différence, c'est que ça mettra les dalles de couleurs même par dessus les sprites haut, comme par exemple le haut des arbres.
- KingdommangasMembre
- Nombre de messages : 1401
Localisation : Ma tête
Distinction : Débrouillarde notoire é_è [Mist']
Ou celle qui partageait plus vite que son ombre [Gel']
Poisson 2017 [Amal]
Grâce à elle, tout le forum appelle Yamashi "Mamashi" [Yama]
Entraide d'Or
Règne dans l'ombre de la commu'
Youtubeuse beauté reconvertie dans le gaming [Amal']
Date d'inscription : 05/05/2015
Re: [résolu]Plugin mise à jour
Jeu 29 Juin 2017 - 12:13
Je suppose que je vais devoir abandonné ce plugin.
Re: [résolu]Plugin mise à jour
Jeu 29 Juin 2017 - 13:22
Oui après tu peux utiliser une image avec la couleur que tu veux.
Si c'est simplement pour afficher les zones.
Si c'est simplement pour afficher les zones.
- KingdommangasMembre
- Nombre de messages : 1401
Localisation : Ma tête
Distinction : Débrouillarde notoire é_è [Mist']
Ou celle qui partageait plus vite que son ombre [Gel']
Poisson 2017 [Amal]
Grâce à elle, tout le forum appelle Yamashi "Mamashi" [Yama]
Entraide d'Or
Règne dans l'ombre de la commu'
Youtubeuse beauté reconvertie dans le gaming [Amal']
Date d'inscription : 05/05/2015
Re: [résolu]Plugin mise à jour
Jeu 29 Juin 2017 - 15:26
Oui je sais mais ce plugin était tellement moins casse pieds
Re: [résolu]Plugin mise à jour
Jeu 29 Juin 2017 - 17:10
Comme, je te le disais, on peut partir sur un plugin similaire qui ajoute un autre calque par dessus le tileset et qui peut faire la même chose. à la seule différence que la couleur sera au dessus des couches hautes des tileset.
J'en aurai pas pour très longtemps à le faire.
J'en aurai pas pour très longtemps à le faire.
- KingdommangasMembre
- Nombre de messages : 1401
Localisation : Ma tête
Distinction : Débrouillarde notoire é_è [Mist']
Ou celle qui partageait plus vite que son ombre [Gel']
Poisson 2017 [Amal]
Grâce à elle, tout le forum appelle Yamashi "Mamashi" [Yama]
Entraide d'Or
Règne dans l'ombre de la commu'
Youtubeuse beauté reconvertie dans le gaming [Amal']
Date d'inscription : 05/05/2015
Re: [résolu]Plugin mise à jour
Jeu 29 Juin 2017 - 18:03
J'avais mal compris, la contrainte ne pose aucun problème, je prévoyais un espace dégager pour le tactical et il faut que ce soit voyant pour le détecteur de piège, c'est pile ce qu'il faut au contraire.
Je m'en remet donc à toi Tonyryu
Je m'en remet donc à toi Tonyryu
Re: [résolu]Plugin mise à jour
Ven 30 Juin 2017 - 10:57
je te fait ça pour la semaine prochaine, j'ai un WE qui sera assez chargé.
Re: [résolu]Plugin mise à jour
Dim 2 Juil 2017 - 13:22
Première version à tester, les commandes sont les mêmes que pour le script précédent, afin de ne pas avoir à tout rechanger : (a nommer Tonyryu_RegionColor.js)
- Code:
//=============================================================================
// Tonyryu_RegionColor.js
//=============================================================================
/*:
* @plugindesc Plugin permettant de coloriser en jeu des case avec un ID de région précis
* @author Tonyryu
*
* @help http://www.tonyryudev.com/
* setRegionColor 1 #ff0000 # La région n ° 1 dans le rouge
* resetRegionColor 1 # Sortie les paramètres de couleur du n ° 1
* Région
* changeRegion 1 2 # Changer la région n ° 1 sur la carte à n ° 2
* changeRegionXy 5 3 255 # Changer la région de coordonnées (5, 3) à
* la troisième
* setStepRegion 1 # La région du lecteur de coordonnées est
* déplacé au n ° 1
* Changement (publié par -1)
*
* @param regionAlpha
* @desc Niveau de transparence( 0 ~ 255 )
* défaut : 128
* @default 128
*
* @param useColorReset
* @desc Réinitialisation des colorisations au chargement de carte
* defaut : 0( 1 : effacement des couleurs)
* @default 0
*
*/
/*
* Suivi de version
* 1.00 : 01/07/2017 : Tonyryu : Création plugin
*
*/
var Imported = Imported || {};
Imported.TMRegionColor = true;
(function() {
var parameters = PluginManager.parameters('Tonyryu_RegionColor');
var regionAlpha = Number(parameters['regionAlpha']);
var useColorReset = (parameters['useColorReset'] === '1');
var _Spriteset_Map_createTilemap = Spriteset_Map.prototype.createTilemap;
Spriteset_Map.prototype.createTilemap = function() {
_Spriteset_Map_createTilemap.call(this);
// Créer un sprite au dessus du layer de tileset
this._sprRegion = new Sprite();
this._sprRegion.z = 1;
this._sprRegion.opacity = regionAlpha;
this._sprRegion.width = $gameMap.tileWidth() * 48;
this._sprRegion.height = $gameMap.tileHeight() * 48;
this._sprRegion.bitmap = new Bitmap(this._sprRegion.width, this._sprRegion.height);
this._tilemap.addChild(this._sprRegion);
};
Spriteset_Map.prototype.updateSprRegion = function() {
if($gameMap._refreshSprRegion){
this._sprRegion.bitmap.clear();
// pour chaque coordonnées de la carte
var th = $gameMap.tileHeight();
var tw = $gameMap.tileWidth();
for(var x = 0; x <= tw; x++){
for(var y = 0; y <= th; y++){
var regionId = this._tilemap._readMapData(x, y, 5);
if($gameMap.regionColor(regionId)){
this._sprRegion.bitmap.fillRect(x * 48 , y * 48 , 48 , 48 , $gameMap.regionColor(regionId) )
}
}
}
$gameMap._refreshSprRegion = false;
}
this._sprRegion.x = -this._tilemap.origin.x;
this._sprRegion.y = -this._tilemap.origin.y;
};
var _Spriteset_Map_update = Spriteset_Map.prototype.update;
Spriteset_Map.prototype.update = function() {
_Spriteset_Map_update.call(this);
this.updateSprRegion();
};
//-----------------------------------------------------------------------------
// Game_Map
//
var _Game_Map_initialize = Game_Map.prototype.initialize;
Game_Map.prototype.initialize = function() {
_Game_Map_initialize.call(this);
this._regionColor = [];
this._refreshSprRegion = false;
};
var _Game_Map_setup = Game_Map.prototype.setup;
Game_Map.prototype.setup = function(mapId) {
_Game_Map_setup.call(this, mapId);
if (useColorReset){
this._regionColor = [];
console.log("reset color");
}
this._refreshSprRegion = true;
};
Game_Map.prototype.setRegionColor = function(id, color) {
this._regionColor = this._regionColor || [];
this._regionColor[id] = color;
this._refreshSprRegion = true;
};
Game_Map.prototype.regionColor = function(id) {
this._regionColor = this._regionColor || [];
return this._regionColor[id];
this._refreshSprRegion = true;
};
Game_Map.prototype.changeRegionXy = function(x, y, regionId) {
var width = $dataMap.width;
var height = $dataMap.height;
$dataMap.data[(5 * height + y) * width + x] = regionId;
this._refreshSprRegion = true;
};
Game_Map.prototype.changeRegion = function(targetRegionId, regionId) {
var width = $dataMap.width;
var height = $dataMap.height;
for (var x = 0; x < width; x++) {
for (var y = 0; y < height; y++) {
if (this.regionId(x, y) === targetRegionId) {
this.changeRegionXy(x, y, regionId);
}
}
}
this._refreshSprRegion = true;
};
//-----------------------------------------------------------------------------
// Game_Player
//
Game_Player.prototype.stepRegionId = function() {
if (this._stepRegionId === undefined) {
this._stepRegionId = -1;
}
return this._stepRegionId;
};
Game_Player.prototype.setStepRegionId = function(stepRegionId) {
this._stepRegionId = stepRegionId;
};
var _Game_Player_moveStraight = Game_Player.prototype.moveStraight;
Game_Player.prototype.moveStraight = function(d) {
lastX = this._x;
lastY = this._y;
_Game_Player_moveStraight.call(this, d);
var stepRegionId = this.stepRegionId();
if (stepRegionId >= 0 && this.isMovementSucceeded()) {
$gameMap.changeRegionXy(lastX, lastY, stepRegionId);
}
};
//-----------------------------------------------------------------------------
// Game_Interpreter
//
var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function(command, args) {
_Game_Interpreter_pluginCommand.call(this, command, args);
if (command === 'setRegionColor') {
$gameMap.setRegionColor(+args[0], args[1]);
} else if (command === 'resetRegionColor') {
$gameMap.setRegionColor(+args[0], undefined);
} else if (command === 'changeRegion') {
$gameMap.changeRegion(+args[0], +args[1]);
} else if (command === 'changeRegionXy') {
$gameMap.changeRegionXy(+args[0], +args[1], +args[2]);
} else if (command === 'setStepRegion') {
$gamePlayer.setStepRegionId(+args[0]);
}
};
})();
- KingdommangasMembre
- Nombre de messages : 1401
Localisation : Ma tête
Distinction : Débrouillarde notoire é_è [Mist']
Ou celle qui partageait plus vite que son ombre [Gel']
Poisson 2017 [Amal]
Grâce à elle, tout le forum appelle Yamashi "Mamashi" [Yama]
Entraide d'Or
Règne dans l'ombre de la commu'
Youtubeuse beauté reconvertie dans le gaming [Amal']
Date d'inscription : 05/05/2015
Re: [résolu]Plugin mise à jour
Dim 2 Juil 2017 - 13:33
Ca fonctionne merci Tonyryu
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|