Bienvenue visiteur !
|
Statistiques
Liste des membres
Contact
Mentions légales
208 connectés actuellement
29188706 visiteurs depuis l'ouverture
3757 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
Ecko -
posté le 15/02/2023 à 19:00:12 (634 messages postés)
- | Contente OwO | Domaine concerné: Script, Js Logiciel utilisé: Rpg Maker MV Première fois que je créé un topic entraide mais comme j'ai rien trouvé sur internet je me suis dit que si on trouve la réponse ici, ça aidera peut-être des gens.
Explication : Je cherche à supprimer un fichier dans les dossier du jeu après une action du joueur. (Pour être plus précise, il s'agit de sprites et de facettes) Je cherche donc une commande en Js qui serait capable de faire ça. J'ai trouvé des codes pour supprimer des sauvegardes mais je ne serais pas les appliquer dans le cas d'un fichier. S'il existe des plugins pour cela je veux bien mais je n'ai rien trouvé. Quelqu'un aurait une idée?
|
S'il y a bien une chose que j'aime sur Oniro, c'est que c'est le seul endroit sur internet où personne n'a déjà mon pseudo X) |
AzRa -
posté le 15/02/2023 à 20:17:07 (11193 messages postés)
| | Je suis pas sûr d'avoir une réponse pour toi vu que je ne fais pas de JS sur MV mais déjà c'est quoi la commande pour supprimer les sauvegardes ?
Aussi, est-ce qu'on peut importer des bibliothèques externes ? Si oui c'est simple : suffit d'utiliser fs. Sinon heu j'ai probablement pas de réponse.
EDIT : A priori, oui, y a l'air d'avoir fs : https://forums.rpgmakerweb.com/index.php?threads/rpgmakermv-node-js-part-1-reading-and-writing-files.80140/
Là ils expliquent comment lire et écrire dans des fichiers. Pour en supprimer un c'est unlink la commande.
|
Le cyclisme c'est quand tu fais du vélo. |
Ecko -
posté le 15/02/2023 à 21:25:25 (634 messages postés)
- | Contente OwO | J'ai copier le js donner et créer un plugins avec mais je comprends pas comment l'use, les exemples sont pas très clairs :/
Après bon c'est pas très grave c'était pour rajouter du Lore et briser un peu le 4ème murs...
|
S'il y a bien une chose que j'aime sur Oniro, c'est que c'est le seul endroit sur internet où personne n'a déjà mon pseudo X) |
AzRa -
posté le 15/02/2023 à 22:34:41 (11193 messages postés)
| | En Node.js faut d'abord installer fs, et ensuite l'importer et l'utiliser comme ça :
1
2
3
4
5
| const fs = require('fs');
fs.unlink("myfolder/myfile.txt", (err => {
if (err) console.log(err);
})); |
Ou, dans du code sync (le sien est sync) :
1
2
3
| const fs = require('fs');
fs.unlinkSync("myfolder/myfile.txt"); |
Je ne sais pas trop comment l'implémenter en pratique sur MV. A l'aveugle je dirais ça :
Essaye déjà de voir si son script pour ouvrir et modifier le contenu d'un fichier fonctionne, ensuite essaye de rajouter ça dedans pour supprimer le fichier :
1
2
3
4
5
6
| //Wrapper for Node.js unlinkSync
MVNodeFS.unlinkFile = function (filePath, filename) {
filePath = this.createPath("/" + filePath +"/");
this.fs.unlinkSync(filePath + filename);
console.log("Remove File: " + filename);
}; |
Si ça ne marche pas c'est probablement que sur MV, comme dans Node.js, la première étape serait d'installer fs. C'est pas écrit dans son tuto par contre. Mais ça doit être googlable comme ça : "RPG maker MV install fs".
|
Le cyclisme c'est quand tu fais du vélo. |
Ecko -
posté le 15/02/2023 à 23:53:49 (634 messages postés)
- | Contente OwO | Je testerai ça, merci!
|
S'il y a bien une chose que j'aime sur Oniro, c'est que c'est le seul endroit sur internet où personne n'a déjà mon pseudo X) |
Kisth -
posté le 16/02/2023 à 07:34:03 (997 messages postés)
| Yeoun, mage-archère-louve | Etant donné qu'il s'agit d'images et qu'a priori tu peux faire un switch à un moment donné, est-il possible d'ajouter des conditions et de remplacer les images par une image intégralement transparente ?
Si oui, ça peut même se faire au chargement de l'image dans le code de MV pour ne pas avoir à refaire tous tes events.
Ou bien tu veux briser le 4e mur et faire remarquer au joueur que ses actions ont une conséquence sur son ordinateur ?
|
M.V. |
Ecko -
posté le 16/02/2023 à 11:24:42 (634 messages postés)
- | Contente OwO | Citation: Ou bien tu veux briser le 4e mur et faire remarquer au joueur que ses actions ont une conséquence sur son ordinateur ?
|
Exacte. J'ai déjà fait les modif in game, après avoir fait une action si tu recommence le jeu, tes action on toujours leur conséquence, effacer les images ne serait que la cerise sur le gateau.
Azra :
La commande que tu m'as donnée peux potentiellement marcher mais comme ça utilise un chemin absolue et pas un chemin relatif, ça marchera sur mon PC mais pas sur celui des autres. En plus je ne sais pas comment Steam gère les fichier donc il se peut que même avec un chemin relatif ça marche pas. Merci quand même de l'aide mais c'est pas très grave, c'était juste pour un détail.
|
S'il y a bien une chose que j'aime sur Oniro, c'est que c'est le seul endroit sur internet où personne n'a déjà mon pseudo X) |
AzRa -
posté le 16/02/2023 à 12:39:37 (11193 messages postés)
| | Tu peux utiliser un chemin relatif si tu veux, et Steam n'y change rien.
Le seul endroit où ça ne marchera pas c'est si tu veux permettre à tes joueurs d'y jouer dans le navigateur, vu que dans un navigateur y aura pas Node.js, et donc pas fs.
|
Le cyclisme c'est quand tu fais du vélo. |
Ecko -
posté le 16/02/2023 à 14:30:25 (634 messages postés)
- | Contente OwO | AzRA ca marche!
Du coup j'ai un code JS qui ressemble à ça :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
| //=============================================================================
// RMMVNodeP1.js
//=============================================================================
/*:
* @author PluginDev
* @plugindesc A plugin to read and write files using Node.js
*
*/
(function () {
//Setup function in case we want to split up our code further
function setup() {
//=============================================================================
// MVNodeFS
//=============================================================================
function MVNodeFS() {
}
MVNodeFS.fs = require("fs");
const fs = require('fs');
fs.unlink("myfolder/myfile.txt", (err => {
if (err) console.log(err);
}));
//Method for creating the proper file path from the relative file path
MVNodeFS.createPath = function (relativePath) {
//Checks if MV is in dev mode, or production, then decides the appropriate path
relativePath = (Utils.isNwjs() && Utils.isOptionValid("test")) ? relativePath : "/www/" + relativePath;
//Creates the path using the location pathname of the window and replacing certain characters
var path = window.location.pathname.replace(/(\/www|)\/[^\/]*$/, relativePath);
if(path.match(/^\/([A-Z]\:)/)) {
path = path.slice(1);
}
//Decode URI component and finally return the path
path = decodeURIComponent(path);
return path;
};
//Wrapper for Node.js unlinkSync
MVNodeFS.unlinkFile = function (filePath, filename) {
filePath = this.createPath(filePath + "/");
this.fs.unlinkSync(filePath + filename);
console.log("Remove File: " + filename);
};
//Export Our Class so it can be used anywhere
window.MVNodeFS = MVNodeFS;
}
//Execute setup function to run our code after setup
setup();
})(); |
Et in game j'ai mis ça :
1
| MVNodeFS.unlinkFile("./img/characters","$Lanser.png") |
Faudra juste que je test à l'exporte vu que quand tu exportes le fichier .exe et pas au même endroit mais globalement ce devrait marché.
Merci!
|
S'il y a bien une chose que j'aime sur Oniro, c'est que c'est le seul endroit sur internet où personne n'a déjà mon pseudo X) |
Ecko -
posté le 16/02/2023 à 16:00:38 (634 messages postés)
- | Contente OwO | Alors ça marche tout bien, sauf quand j'exporte. La fonction MVNodeFS.createPath
me créer un chemin absolue mais à moitier qui donne E:/www/img/characters/
sauf qu'entre le E:/ et le /www il y a des fichier mais l'a création du chemin ne les fait pas :/
Le problème doit venir de ce bout de code
1
2
3
4
5
6
7
|
relativePath = (Utils.isNwjs() && Utils.isOptionValid("test")) ? relativePath : "/www/" + relativePath;
var path = window.location.pathname.replace(/(\/www|)\/[^\/]*$/, relativePath);
if (path.match(/^\/([A-Z]\:)/)) {
path = path.slice(1);
} |
Le premier bout rajoute le /www/ mais ça efface aussi tout le reste. J'ai réussie à faire marché le code en supprimant
1
| relativePath = (Utils.isNwjs() && Utils.isOptionValid("test")) ? relativePath : "/www/" + relativePath; |
et en rajoutant manuellement le www dans rpg maker mais du coup je suis obliger de test mes trucs en exportant le jeu ce qui est ma fois un peu relou.
|
S'il y a bien une chose que j'aime sur Oniro, c'est que c'est le seul endroit sur internet où personne n'a déjà mon pseudo X) | Index du forum > Entraide > [RESOLU] [Rpg Maker MV] Supprimer un fichier en jeu
|
|
|