[RGSS] Comment créer une base de données dynamique

3 Réponses • 188 Vues

Bonjour à tous,

J'aimerai réaliser un jeu Pokémon sous RPG MAKER XP mais je bloque sur la base de donnée.
Je souhaiterai pouvoir utiliser RGSS, que je viens de découvrir il y a moins de 48h, pour la personnalisé.
J'ai regardé des tutos et lu ceux de Nuri Yuri notamment mais je suis loin d'avoir compris toutes les subtilités pour bien démarrer mon projet.

Pour l'instant, j'ai juste compris ça (donc pas grand chose) :
Citer
class Pokemon
attr_accessor :id, :nom, :numero, :niveau
def initialize
@id = @nom = @numero = @niveau = ""
end
end

test = Pokemon.new
test.id = 1
test.nom = "Pokemon 1"
test.numero = 150
test.niveau = 30

Je comprends (enfin je crois lol) donc class, variables, attr_accessor, initialize et d'autres choses (j'ai aussi de bonnes notions de programmation en VBA, Visual Basic et PHP).

Cela dit (désolé pour cette longue introduction), pouvez-vous me présenter un exemple précis pour réaliser une database dynamique que je puisse m'en inspirer ensuite pour mon jeu ?

J'aimerai pouvoir utiliser une variable du jeu "ID POKEMON" pour lire ou modifier toutes les informations de mon pokémon.
Attention, cet "ID POKEMON" n'est pas le numéro dans le pokédex mais bien l'identité du pokémon (un peu comme le numéro de la carte dresseur qui identifie le joueur).

Cela se présentrait donc comme suit:
Variable[ID POKEMON].nom = "Mewtwo (nom du pokémon)"
Variable[ID POKEMON].numero = "150 (numéro du pokémon)"
Variable[ID POKEMON].niveau = "100 (niveau du pokémon)"

Comment récupérer ces éléments directement dans le jeu par la suite ?
J'avais pensé utiliser les variables internes (V0001 = ID POKEMON / V0002 = Nom / V0003 = Numéro / V0004 = Niveau) et les rendre égalent à celle du script en fonction de l'ID lorsque j'en ai besoin.
Après, je n'ai pas encore trouvé comment récupérer simplement le texte dans une variable notamment pour V0002 mais je trouverais bien une solution sur ce point en décomposant.


Je vous remercie par avance de toute l'aide que vous pourrez m'apporter à ce sujet.

P.S. : le but étant de programmer moi même mon jeu et de comprendre ce que je fais pour apprendre, je n'utilise donc pas l'excellent travail fait sur PSDK ou PSP.
Cela serait, selon moi, beaucoup plus complexe de partir d'une de ces versions et la modifier pour coller au gameplay de mon jeu plutôt que de repartir de zéro.

Nuri Yuri

HostMaster

As-tu déjà réfléchi à comment stocker les Pokémon dans ta sauvegarde ?
Parce que si tu n'as pas déjà ce point, le reste est un peu inutile.
En tout cas tu peux simplement stocker une valeur dans une variable de jeu ainsi:
$game_variables
  • = y.z


Où x c'est l'id de la variable, y c'est l'objet et z la propriété.
Après il est déconseillé de stocker autre chose que des nombres dans les variables de jeu.
ln(yo) = <3
Merci pour ta réponse rapide.

Pour les data des pokémons, elles sauront pour la plupart dans la table "Ennemies" de la base de données du jeu.
Dans ma logique, un pokémon avait une ID propre (pour faire simple le 1er pokémon reçu ou capturé à l'ID n°1 puis 2 pour le 2ème, ...) et récupérait les stats de base du numéro de pokémon qu'il est.
Par exemple, si le pokémon que j'attrape est mon 59ème son ID serait donc 59 et comme ce pokémon est un Mewtwo alors son numéro est 150 et les infos sont prises sur l'ennemie 150 qui est donc Mewtwo.
J'ai donc besoin de stocker au minimum l'ID du pokémon et son numéro de pokémon (référent au numéro de l'ennemie dans la BDD) et son level (+ les 4 skills qu'il a grâce à leur numéro de skill qui se réfère à celui dans "Compétences" de la BDD).

Après, j'ai une logique tableur qui n'est peut-être pas approprié sur RPG MAKER XP.
Sous Excel et VBA, il suffirait de 2 variables (lignes et colonnes) pour pouvoir avoir accès à toutes les données d'un tableau.
J'aurais donc mes lignes qui serait l'ID des pokémons et mes colonnes qui seraient les données des pokémons (que je scinde dans le jeu en plusieurs variables pour plus de visibilité mais je pourrais théoriquement en utiliser qu'une qui représentrait un critère par numéro type colonne = 1 donc c'est le numéro du pokémon / colonne = 2 donc c'est le niveau du pokémon,...)

Après, la BDD où les infos ID/Numéro/Level/... sont ajoutées lorsque l'ID est nouveau puis où les récupérer pour les lire et les modifier ensuite, je supposais que c'était en externe justement dans les variables d'un script mais je n'en suis pas sûr vu que c'est cette partie là que je ne visualise pas encore car je ne comprends pas bien la limite qu'impose RPG MAKER XP et RGSS pour le moment.

Nuri Yuri

HostMaster

Dans ce cas là je te conseille très vivement de regarder les scripts de combat de RMXP (vanilla) pour savoir comment lire dans ces données. Ca doit contenir le mot "game_enemy" ou "game_enemies" dans les scripts. (ça peut être aussi collé sans underscore)
ln(yo) = <3

There was an error while thanking
Thanking...