Bienvenue visiteur !
|
Statistiques
Liste des membres
Contact
Mentions légales
331 connectés actuellement
30729790 visiteurs depuis l'ouverture
3407 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
DeadPool98 -
posté le 24/08/2015 à 21:36:25 (47 messages postés)
| Je suis un carton... | Domaine concerné: Script/Event
Logiciel utilisé: RPG Maker VX Ace
Bonjour ou bonsoir à toutes et à tous!
Voilà, comme vous l'avez lu dans le titre, je voulais savoir si il était possible de réaliser un petit script permettant plusieurs petites choses...
Avant de continuer, je voulais préciser que j'ai essayé de me lancer dans l'apprentissage du rgss3, mais les seuls tutos que j'ai trouvés ne s'arrêtaient vraiment qu'au niveau de l'utilisation de la console rgss, sans intervenir directement
dans le jeu. Ainsi, je voulais savoir comment ceux qui maîtrisent "l'Art de Scripter" ont-ils appris? Autodidact? cours?
Voilà... Donc les spécifitées du script:
-Sauvegarder directement la partie en cours sur son "slot" grâce à un événement:
J'aurais pensé à mettre un script dans matérials. Si la partie en cours est la
partie 2, le script vérifie dans le dossier si Save02 existe, si oui il sauvegarde dedans,
sinon, il crée un fichier Save02.
ce script serait appelé grace à Script dans Evénement.
-Mon Jeu Comportera 5 slots. Chaque slot à un interrupteur. Ainsi, si Save01 est créée,
L'interrupteur S01 sera activé. Donc, si il est activé, dans mon menu, le slot 1 sera
chargeable. ainsi, lors de la selection de ce slot, le script fera un truc du style:
open savedata\v[010X] avec X le numéros choisis sur le Menu.
-Et toujours par événement, appeler une sauvegarde pour ouvrir la partie en cours.
Un petit exemple:
-Je saute l'écran titre de VX Ace (réussi)
-Mon menu personalisé apparait (réussi)
-Je lance une nouvelle partie (réussi)
-je sauvegarde grace à un événement et sans passer par l'écran des sauvegardes (non achevé...)
-Je retourne sur l'écran titre
-Je vais dans un écran de chargement de partie personnalisé
-Différentes parties s'affiche avec leur numéro de sauvegarde (1,2,3,4,5)
Bon... j'espère avoir été limpide... En tout cas merci d'avance à ceux qui répondrons à ma demande
|
J'aime les shorts, ça garde les genoux bien au frais! |
Kijewoku -
posté le 25/08/2015 à 07:56:12 (114 messages postés)
| | Il y a ce script que j'utilise : http://forums.rpgmakerweb.com/index.php?/topic/2707-autosave/
Après il est prévu pour de l'autosave. Mais vu que tu peux appeler l'autosave et charger par appel ça devrait le faire. Après je sais pas si tu peux définir un slot en particulier, à voir donc... :/
|
Site de Kijewoku - LE Bonhomme 2 - La menace Akkaroulde |
DeadPool98 -
posté le 25/08/2015 à 09:00:50 (47 messages postés)
| Je suis un carton... | Merci! Je vais essayer de retaper ce script!
|
J'aime les shorts, ça garde les genoux bien au frais! |
Kijewoku -
posté le 25/08/2015 à 12:51:56 (114 messages postés)
| | Pas d'quoi. Si jamais tu y arrive je pourrais être intéressé.
|
Site de Kijewoku - LE Bonhomme 2 - La menace Akkaroulde |
arttroy -
posté le 25/08/2015 à 14:02:56 (2394 messages postés)
| Just working | Salut mister, alors déjà saches que tu es courageux, apprendre à scripter c'est vraiment pas évident (moi perso j'avais pas de base en langage informatique). Effectivement comme tu l'as dit, la plupart auront appris sur le tas (après tu as des monstres sur ce site, je pense à Zeus, Esthéone [celui qui m'a tout appris], Mack [il m'a donné pleins de conseils quand j'ai débuté] et Avygeil [mais lui il est sympa que quand il a envie et c'est pas souvent]).
Après si tu veux je peux essayer de t'apprendre ce que je sais, j'ai déjà programmé plusieurs menus custom et pleins de fonctions sympa pour mon projet initial (Hidden World : Chase after memory) et je travaille actuellement sur un projet basé sur l'univers des resident evil ( copie quasi conforme du menu original de RE2, ouais monsieur ^^ ).
Si ça t'intéresse envoie moi un mp, je ferais de mon mieux pour transmettre ce qui m'a été appris (et encore j'en découvre tous les jours... C'est cheaté les scripts on peut faire n'imp ).
Là pour le coup, si tu trouves pour les saves je suis curieux de savoir comment tu fais... (mais ça doit être gérable...).
Edit : Pour les scripts tu as ça
http://ruby-doc.org/
C'est pas forcément évident de s'y retrouver au départ (pour moi en tous cas) mais tu y trouveras un tas d'infos utiles.
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
DeadPool98 -
posté le 25/08/2015 à 21:13:46 (47 messages postés)
| Je suis un carton... | Salut Arttroy, et merci pour ta réponse!
Bon, pour le Ruby je programme dans la console et avec notepad++...
Sur la documentation que tu m'as passé, j'ai trouvé un liens vers la version française. Du coup j'avance petit à petit, mais avec la rentrée je pense ne reprendre que pendant les vacances...
M'enfin bon! J'ai trouvé un système facile à éditer:
créer mes propres sauvegarde dans un fichier txt
crée, lu et éditer via des scripts simple appelés par
événement!
Tu vas me dire: "Mais c'est pas sécurisé! Le Joueur peut se créée une
partie cheatée!"
Oui! Mais le Jeu que je crée ne sera qu'une version Alpha, qui connaîtra
des mises à jours, avec pourquoi pas, des idées des joueurs. Ainsi, quand
j'aurais le temps, je créerais un système complexe et chiant à décrypter
afin d'éviter le cheat! Ce système sera mis à jours régulièrement,
et donc sera amélioré à chaque fois! De quoi décourager les tricheurs
Cela dit, tout n'est pas rose! (ou bleu ou vert... bref c'est toi qui voit!)
Je voudrais savoir si tu sait comment affecter une variable du style:
@mapetitevariable
à une variable du style:
\v[4000]
Y a-t-il une syntaxe comme v[4000] == @mapetitevariable ?
Voilà voilà! Sur ce sempaï arttroy, je vous dit à bientôt!
|
J'aime les shorts, ça garde les genoux bien au frais! |
arttroy -
posté le 25/08/2015 à 23:09:25 (2394 messages postés)
| Just working | Visiblement tu as l'air de t'y connaître un peu en prog donc ça va faciliter les choses, en tous cas pas de soucis n'hésites pas à demander ^^.
Pour ton histoire de variables faut mettre comme ça :
@tapetite variable = XX
$game_variables[4000] = @tapetitevariable
Ca fonctionne aussi pour les interrupteurs avec cette syntaxe :
$game_switches[x] = ce que tu veux.
Pour ton système de sauvegarde, je risquais pas de te le dire... J'y aurais pas pensé ( je cheate pas moi mossieur ^^ ). Après si tu revois le truc pourquoi pas laisser comme ça pour le moment.
Bon courage à toi.
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
DeadPool98 -
posté le 26/08/2015 à 11:58:30 (47 messages postés)
| Je suis un carton... | Merci beaucoup!!!
Me revoilà! Désolé pour le double post...
Donc, j'ai suivie un Tuto sur Oniro qui expliquait comment lire et
écrire dans un fichier texte... à la différence que moi, je ne met pas
le script dans Main, mais au-dessus, dans une fonction, que
j'appelle dans mon jeu... de plus, je ne met pas de rescue pour le
moment...
Voilà mon scirpt:
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
56
57
58
| def load
# J\'ouvre mon fichier texte en lecture seule
file = File.open("Save.txt", "r")
fichier = file
fichier = fichier.read
# Les ";" sont des séparations
fichier = fichier.split(";")
# Je crée mon "tableau\
argent = fichier[0]
sante = fichier[1]
idmap = fichier[2]
posx = fichier[3]
posy = fichier[4]
# Je crée mes cellules en séparant le paramètre de la valeure
argent = argent.split("=")
@argent = argent[1]
sante = sante.split("=")
@sante = sante[1]
idmap = idmap.split("=")
@idmap = idmap[1]
posx = posx.split("=")
@posx = posx[1]
posy = posy.split("=")
@posy = posy[1]
# Je ferme mon fichier
file.close
$game_variables[0100] = @argent
$game_variables[0101] = @sante
$game_variables[0102] = @idmap
$game_variables[0103] = @posx
$game_variables[0104] = @posy
end |
Le contenu de mon fichier Save.txt:
1
2
3
4
5
| argent=10000;
sante=120;
idmap=002;
posx=04;
posy=19 |
Et mon événement qui actualise le jeu:
1
2
3
4
5
| @>Script: load
@>Effacer en fondu
@>Modifier l'argent: + Variable [0100]
@>Téléportation: Variable [0102][0103][0104], Bas, Aucun
@>Afficher en fondu |
Je lance mon jeu, je parle à l'événement qui actualise le jeu, et là, j'ai le droit à:
Citation: Unable to find file:
Data/Map000.rvdata2 |
Je pense savoir d\'où vien le problème mais je ne sais pas comment le résoudre:
je pense que les "0" dans "idmap=002" ne plaisent pas au code...
Si c\'est ça, y a-t-il un moyen de contourner le problème?
Merci à ceux qui prendrons le temps de me lire!
Ps: Le même message d\'erreur apparait lorsque je remplace \"002\" par \"2\"...
|
J'aime les shorts, ça garde les genoux bien au frais! |
arttroy -
posté le 27/08/2015 à 00:26:48 (2394 messages postés)
| Just working | Déjà évites de ne pas mettre d'espace entre tes données
idmap == 002 -> c'est mieux ^^
A mon avis tu peux pas mettre ça comme ça, ça va sûrement donner plus un truc comme
idmap = $game_map.map_id[002]
Ensuite jette un oeil au Window_SaveFile et au Game_Map ça devrait t'aiguiller je pense... Après j'ai pas l'habitude de ce genre de programmation ^^ donc je peux difficilement te diriger avec certitude.
Pour tout ce qui touche aux données concernant l'équipe jette un oeil au Game_Party et le Game_Actor
Pour le joueur plus particulièrement regardes le Game_Player
Genre pour l'or de l'équipe ça donne ça :
$game_party.gold
Pour la position ça va plutôt être :
$game_party.members[0].x ou $game_party.leader.x (si c'est un jeu où le héros est solo)
Pour la vie ça va être un peu le même délire
$game_party.members[0].hp
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
DeadPool98 -
posté le 27/08/2015 à 18:40:26 (47 messages postés)
| Je suis un carton... | Yep! Encore moi... ( je suis chiant je sais...)
Bon le temps de rétablir la connexion internet, j'ai revu le script, et il fonctionne... presque
Donc petit topo avant de balancer le script...
-Mon script se situe au dessus de Main et en dessous de Material
-Il se découpe en deux methodes: save et load, qui comme leur nom l'indique,
sont censées sauvegarder et charger une partie.
-La partie est pour l'instant sauvegarder dans le même dossier que le "Game.exe" et se nomme "Save.txt"
-Sur la carte, j'ai deux événements:
-le premier, qui sauvegarde la partie en appelant "save"
-le deuxième, qui efface l'écran en fondu, appelle "load",
téléporte le joueur sur la map dont l'ID est sauvegardé
et à des coordonnées stockées dans des variables utilisées
dans "load"
Maintenant le problème:
Je lance le Jeu;
je parle à l'événement qui sauvegarde;
mon fichier save.txt est bien crée avec toutes les information dedans;
puis, je me dirige vers l'événement qui charge les données;
je lui parle;
l'écran s'efface en fondu;
mes variables se chargent;
mon écran se r'affiche en fondu;
mon joueur à bien été téléporté aux coordonnées enregistrées;
puis le Jeu plante et me dit que RGSS3 player à cessé de fonctionner, rechercher des solution, etc (le blabla de windows 7 quoi!)
Bien, voici donc le code:
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
| # Script de sauvegarde dans un fichier.
def save
@idmap = $game_variables[4981]
@posx = $game_variables[4982]
@posy = $game_variables[4983]
print "Création du fichier Save.txt en cours...\n\n"
file = File.open("Save.txt", "w+")
print "Sauvegarde des données dans Save.txt en cours...\n\n"
file.write("idmap=#{@idmap};posx=,#{@posx};posy=,#{@posy}")
print "Sauvegarde des données dans Save.txt terminée!\n\n"
file.close
print "Bilan: Idmap=#{@idmap}; Posx=#{@posx}; Posy=#{@posy}\n\n"
end
# Script de chargement d'un fichier.
def load
print "Localisation du fichier de données en cours...\n\n"
begin
print "Fichier de données localisé!\n\n"
file = File.open("Save.txt", "r")
print "Lecture des données de Save.txt en cours...\n\n"
fichier = file.read
print "Création d'un data_board en cours...\n\n"
fichier.gsub!(" ","")
fichier.gsub!("_", " ")
fichier = fichier.split(";")
idmap = Fichier[0]
posx = Fichier[1]
posy = Fichier[2]
idmap = idmap.split("=")
@idmap = idmap[1]
posx = posx.split("=")
@posx = posx[1]
posy = posy.split("=")
@posy = posy[1]
print "Création d'un data_board terminée terminée avec succès!\n\n"
print "Affectation des données aux variable du jeu en cours...\n\n"
$game_variables[4981] = @idmap
$game_variables[4982] = @posx
$game_variables[4983] = @posy
print "Affectation des donnée aux variables du jeu terminée avec succès!\n\n"
print "Fermeture du fichier de données en cours...\n\n"
file.close
print "Fermeture du fichier de données terminée avec succès!\n\n"
rescue
print "Le Fichier de donnée n'existe pas ou est corrompu...\n\n"
print "Création d'un Fichier de données en cours...\n\n"
fichier= File.open("Save.txt", "w+")
@idmap = $game_variables[4981]
@posx = $game_variables[4982]
@posy = $game_variables[4983]
fichier.write("idmap=#{@idmap};posx=#{@posx};posy=#{@posy}")
file.close
end
end |
Voilà, voilà... j'espère que quelqu'un pourra m'aider... je continue donc à chercher de mon côté...
Ps: j'ai essayé de mettre la fermeture du fichier entre les deux "end" à la fin mais ça veut pas marché
(et heureusement pasque sinon ça serais vachement flippant...)
OK!!! Problème résolu!!! Merci DeadPool98!!! Non sérieusement, merci énormément à toi arttroy!!!
Je ne pense pas avoir pu y arriver sans tes infos!!! En tout cas ça montre qu'Oniromancie est plein
de gens biens!!!
Bon, je balance le code pour les intérressés!
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
| # Script de sauvegarde dans un fichier.
def save
@idmap = $game_variables[4981]
@posx = $game_variables[4982]
@posy = $game_variables[4983]
print "Création du fichier Save.txt en cours...\n\n"
file = File.open("Save.txt", "w+")
print "Sauvegarde des données dans Save.txt en cours...\n\n"
file.write("idmap=#{@idmap};posx=,#{@posx};posy=,#{@posy}")
print "Sauvegarde des données dans Save.txt terminée!\n\n"
file.close
print "Bilan: Idmap=#{@idmap}; Posx=#{@posx}; Posy=#{@posy}\n\n"
end
# Script de chargement d'un fichier.
def load
print "Localisation du fichier de données en cours...\n\n"
begin
print "Fichier de données localisé!\n\n"
file = File.open("Save.txt", "r")
print "Lecture des données de Save.txt en cours...\n\n"
fichier = file.read
print "Création d'un data_board en cours...\n\n"
fichier.gsub!(" ","")
fichier.gsub!("_", " ")
fichier = fichier.split(";")
idmap = Fichier[0]
posx = Fichier[1]
posy = Fichier[2]
idmap = idmap.split("=")
@idmap = idmap[1]
posx = posx.split("=")
@posx = posx[1]
posy = posy.split("=")
@posy = posy[1]
print "Création d'un data_board terminée terminée avec succès!\n\n"
print "Affectation des données aux variable du jeu en cours...\n\n"
$game_variables[4981] = @idmap
$game_variables[4982] = @posx
$game_variables[4983] = @posy
print "Affectation des donnée aux variables du jeu terminée avec succès!\n\n"
rescue
print "Le Fichier de donnée n'existe pas ou est corrompu...\n\n"
@idmap = $game_variables[4981]
@posx = $game_variables[4982]
@posy = $game_variables[4983]
print "Création du fichier Save.txt en cours...\n\n"
file = File.open("Save.txt", "w+")
print "Sauvegarde des données dans Save.txt en cours...\n\n"
file.write("idmap=#{@idmap};posx=,#{@posx};posy=,#{@posy}")
print "Sauvegarde des données dans Save.txt terminée!\n\n"
print "Bilan: Idmap=#{@idmap}; Posx=#{@posx}; Posy=#{@posy}\n\n"
end
print "Fermeture du fichier de données en cours...\n\n"
file.close
print "Fermeture du fichier de données terminée avec succès!\n\n"
end
|
Le système de sauvegarde est encore basique, de plus, il n'y a qu'une sauvegarde... Quand je l'aurais amélioré,
je ferais un tuto sur la création d'un menu Ultra-Personnalisé, avec n'importe quels options, ainsi que le chargement et la sauvegarde de fichiers dans différents slots... Voilà! Tchous tout l'monde
|
J'aime les shorts, ça garde les genoux bien au frais! |
arttroy -
posté le 27/08/2015 à 21:20:02 (2394 messages postés)
| Just working | Content d'avoir pu t'aider, si toutefois tu as besoin du fichier d'aide RM traduit en anglais fais moi signe, je te le passerai. Je pense que le RGSS va vite devenir simple pour toi ^^.
Merci du partage, Estheone m'a habitué à construire mes scripts comme ceux de base du logiciel (en utilisant les Scene_x, Game_X et autres... Je pensais pas que juste deux fonctions comme ça ça fonctionnerait ^^.
N'hésite pas à me mp si tu as d'autres soucis, je passe souvent sur oniro.
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
DeadPool98 -
posté le 27/08/2015 à 23:56:43 (47 messages postés)
| Je suis un carton... | okidoki !
Ps: le manuel d'aide RMVXAce traduit!? Pourquoi pas! Pour l'envoyer par mail, voilà mon adresse:
Edo.Rpg.Games@gmail.com
Et encore merci!
|
J'aime les shorts, ça garde les genoux bien au frais! |
arttroy -
posté le 28/08/2015 à 21:52:19 (2394 messages postés)
| Just working | Tiens un lien pour télécharger l'aide en anglais ^^
http://www.mediafire.com/download/ebklujbusjducon/RPGVXAce.chm
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? | Index du forum > Entraide > [RESOLU] [RPG Maker VX Ace] Un script/event un peu spécial...
|
|
|