Changer l'enplacement de la sauvegarde du jeu.

6 Réponses • 187 Vues

Bonjour à tous, comme écrit dans le titre j'aimerais savoir si c'est possible de modifier l'endroit ou on sauvegarde le jeu.
Par défaut il est directement dans le dossier de PSDK mais je voudrais changer l'emplacement. Par exemple dans AppData puis Roaming

Nuri Yuri

HostMaster

if ENV['AppData']
  module GamePlay
    class Save
      remove_const :SaveDir
      remove_const :BaseFilename
      SaveDir = "#{ENV['AppData'].gsub("\\", '/')}/NomDeTonJeu"
      BaseFilename = "#{SaveDir}/#{SaveFile}"
    end
  end
end

Si t'es sous Windows, ça devrait enregistrer dans %appdata%/NomDeTonJeu

Tu peux remplacer NomDeTonJeu par autre chose mais évite les espaces et caractères spéciaux (ç é à etc...).
ln(yo) = <3
Bonsoir,en passant de l'alpha 24.22 à la 24.25 j'ai une erreur au lancement du jeu.

Voici le log:

================================Erreur de script================================
Message :
constant GamePlay::Save::SaveDir not defined

Type : NameError
Script : /scripts/00100 Sav app.rb
Ligne : 4
Date : 05/05/2019 21:47:33
Logiciel : Pokémon SDK 6169
===================================Backtraces===================================
[25] : /scripts/00100 Sav app.rb | ligne 4 remove_const
[24] : /scripts/00100 Sav app.rb | ligne 4 <class:Save>
[23] : /scripts/00100 Sav app.rb | ligne 3 <module:GamePlay>
[22] : /scripts/00100 Sav app.rb | ligne 2 <top (required)>
[21] : /lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb | ligne 59 require
[20] : /lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb | ligne 59 require
[19] : /pokemonsdk/scripts/ScriptLoad.rb | ligne 45 load_scripts
[18] : /pokemonsdk/scripts/ScriptLoad.rb | ligne 42 each
[17] : /pokemonsdk/scripts/ScriptLoad.rb | ligne 42 load_scripts
[16] : /pokemonsdk/scripts/ScriptLoad.rb | ligne 33 load_vscode_scripts
[15] : /pokemonsdk/scripts/ScriptLoad.rb | ligne 25 start
[14] : /pokemonsdk/scripts/ScriptLoad.rb | ligne 92 <top (required)>
[13] : /lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb | ligne 59 require
[12] : /lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb | ligne 59 require
[11] : BootSequence | ligne 1 <top (required)>
[10] : Boot (Tu touche ton projet est mort) | ligne 7 eval
[9] : Boot (Tu touche ton projet est mort) | ligne 7 <top (required)>
[8] : Boot (Tu touche ton projet est mort) | ligne 6 times
[7] : Boot (Tu touche ton projet est mort) | ligne 6 <top (required)>
[6] : /lib/__psdk_game_boot.rb | ligne 84 eval
[5] : /lib/__psdk_game_boot.rb | ligne 84 <top (required)>
[4] : /lib/__psdk_game_boot.rb | ligne 83 each
[3] : /lib/__psdk_game_boot.rb | ligne 83 <top (required)>
[2] : /lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb | ligne 59 require
[1] : /lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb | ligne 59 require
  • : Game.rb | ligne 6 <main>

===================================Fin du log===================================

Nuri Yuri

HostMaster

Le dossier de sauvegarde est inclut dans le nom du fichier, la constante est : BASE_FILENAME
Les différents dossiers de sauvegarde racine possible sont listés dans SAVE_ROOT_PATHS par ordre de test.
ln(yo) = <3
Je m’excuse de mon niveau médiocre en script mais j'ai beau essayer ce que tu m'as dit j'ai toujours une erreur quoi je fasse...
if ENV['AppData']
  module GamePlay
    class Save
      remove_const :BASE_FILENAME
      BASE_FILENAME = ['.',ENV['APPDATA'] || Dir.home,Dir.home]
    end
  end
end

Le log
================================Erreur de script================================
Message :
Invalid argument @ dir_s_mkdir - ./[".", "C:

Type : Errno::EINVAL
Script : /pokemonsdk/scripts/00300 Patch_Ruby/00500 Dir.rb
Ligne : 13
Date : 06/05/2019 15:22:01
Logiciel : Pokémon SDK 6169
===================================Backtraces===================================
[13] : /pokemonsdk/scripts/00300 Patch_Ruby/00500 Dir.rb | ligne 13 mkdir
[12] : /pokemonsdk/scripts/00300 Patch_Ruby/00500 Dir.rb | ligne 13 mkdir!
[11] : /pokemonsdk/scripts/00300 Patch_Ruby/00500 Dir.rb | ligne 10 each
[10] : /pokemonsdk/scripts/00300 Patch_Ruby/00500 Dir.rb | ligne 10 mkdir!
[9] : /pokemonsdk/scripts/01400 GamePlay/04600 GamePlay__Save.rb | ligne 65 make_save_directory
[8] : /pokemonsdk/scripts/01400 GamePlay/04600 GamePlay__Save.rb | ligne 28 initialize
[7] : /pokemonsdk/scripts/01400 GamePlay/04700 GamePlay__Load.rb | ligne 17 initialize
[6] : /pokemonsdk/scripts/01400 GamePlay/00100 Scene_Title.rb | ligne 17 new
[5] : /pokemonsdk/scripts/01400 GamePlay/00100 Scene_Title.rb | ligne 17 main
[4] : ___Main : Dernier script !___ | ligne 14 <top (required)>
[3] : /lib/__psdk_game_boot.rb | ligne 104 <top (required)>
[2] : /lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb | ligne 59 require
[1] : /lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb | ligne 59 require
  • : Game.rb | ligne 6 <main>

===================================Fin du log===================================

Nuri Yuri

HostMaster

La variable BASE_FILENAME est censé contenir le nom du fichier de sauvegarde pas le chemin.
C'est la variable SAVE_ROOT_PATHS qui contient les chemins. Évidemment comme BASE_FILENAME est une vieille variable, y'a un morceau de chemin, libre à toi de supprimer la partie "Saves" ou pas.
ln(yo) = <3
Nickel ça à fonctionner grand Merci à toi  :3

Voici le script
if ENV['AppData']
  module GamePlay
    class Save
      remove_const :BASE_FILENAME
      BASE_FILENAME = 'Pokemon_Party'
  remove_const :SAVE_ROOT_PATHS
  SAVE_ROOT_PATHS = ['Pokemon',ENV['AppData'] || Dir.home,Dir.home]
    end
  end
end

There was an error while thanking
Thanking...