Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Tutos: Checklist de la composition (...) / Sorties: Dread Mac Farlane - episode 8 / Sorties: Dread Mac Farlane - episode 7 / Jeux: Ce qui vit Dessous / News: Quoi de neuf sur Oniromancie (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

405 connectés actuellement

29377599 visiteurs
depuis l'ouverture

6966 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

RPG Maker VX

Level Up!

Le Temple de Valor

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [RESOLU] [RPG Maker VX Ace] Un script/event un peu spécial...


DeadPool98 - posté le 24/08/2015 à 21:36:25 (47 messages postés)

❤ 0

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 :sourire2

J'aime les shorts, ça garde les genoux bien au frais!


Kijewoku - posté le 25/08/2015 à 07:56:12 (114 messages postés)

❤ 0

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)

❤ 0

Je suis un carton...

Merci! Je vais essayer de retaper ce script! :salut

J'aime les shorts, ça garde les genoux bien au frais!


Kijewoku - posté le 25/08/2015 à 12:51:56 (114 messages postés)

❤ 0

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)

❤ 0

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 :grossourire ).

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)

❤ 0

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 :biere

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)

❤ 0

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)

❤ 0

Je suis un carton...

Merci beaucoup!!! :youpi

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:

Portion de code : Tout sélectionner

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:

Portion de code : Tout sélectionner

1
2
3
4
5
argent=10000;
sante=120;
idmap=002;
posx=04;
posy=19



Et mon événement qui actualise le jeu:

Portion de code : Tout sélectionner

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)

❤ 0

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)

❤ 0

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 :sriden

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:

Portion de code : Tout sélectionner

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!

Portion de code : Tout sélectionner

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 :salut

J'aime les shorts, ça garde les genoux bien au frais!


arttroy - posté le 27/08/2015 à 21:20:02 (2394 messages postés)

❤ 0

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)

❤ 0

Je suis un carton...

okidoki ! :banane

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)

❤ 0

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...

repondre up

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers