Bienvenue visiteur !
|
Désactiver la neige
Statistiques
Liste des membres
Contact
Mentions légales
205 connectés actuellement
30809995 visiteurs depuis l'ouverture
3506 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
Yearl -
posté le 08/07/2012 à 15:12:25 (67 messages postés)
| | Domaine concerné: Script Logiciel utilisé: VX Ace Bonjour à tous !
Je fais une demande pour un script un peu complexe !
J'aimerai avoir un script permettant d'importer/exporter un personnage choisit .. Je m'explique :
Mon jeu est constitué d'un personnage principal, on peut lui choisir son apparence son nom ..etc..
J'aimerai que le script récupère toutes les informations du personnage ( Lvl, Nom, apparence, equipements, stats et je crois que c'et tout).
Que ces informations sois enregistrer dans un fichier annexe et que par la suite avec une autres sauvegarde,
on puisse récupérer ce joueur !
On pourrait donc ce partager nos personnages entre sauvegardes !! (Non je ne suis pas fan de Dragon's Dogma )
Je ne pense pas que sa soit très facile mais si quelqu'un veut relevé le défi qu'il n'hésite pas !
En attendant merci d'avoir lu et bon making
|
Mack -
posté le 08/07/2012 à 15:34:35 (2311 messages postés)
- | | A mon avis, au contraire c'pas compliqué.
J'vais jeter un oeil.
( Par contre t'auras intérer à avoir les même fichiers dans les jeux quoi ... )
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
Yearl -
posté le 08/07/2012 à 15:41:04 (67 messages postés)
| | Oui normalement les versions des jeux seront les mêmes !
Ah et j'ai oublié de préciser mais il faudrait que le script est 3 fonctions appelable par évènement:
-Pour exporter
-Pour importer
-Pour supprimer un perso importer
Et je pense qu'il faudrait faire en sorte de pas pouvoir importer son propre personnage si possible !
Par ce que bon .. Vive la triche quoi ..
J'espère que tu y arrivera,
Merci beaucoup en tout cas !
|
Mack -
posté le 08/07/2012 à 16:14:27 (2311 messages posté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
|
class Game_Interpreter
def save_actor(id)
File.open("Actor_"+id.to_s+".rvdata2", "wb") do |file|
actor = $game_actors[id]
Marshal.dump(actor, file)
end
end
def load_actor(id)
File.open("Actor_"+id.to_s+".rvdata2", "rb") do |file|
actor = Marshal.load(file)
$game_actors.data[id] = actor
end
$game_player.refresh
end
end
class Game_Actors
attr_accessor :data
end |
Ça te permet donc d'exporter/importe un personnage selon son id.
Pour exporter tu fais :
Et pour importer :
id étant l'id du héros dans la BDD.
( Commande insérer un script dans un évent. )
Pour les restrictions, c'est plus ou moins impossible.
Faudrait que chaque jeu télécharger ai son id à lui, hors, je pense pas que cela soit faisable.
T'entends quoi par supprimer un perso importer ?
Parce que de toute façon, le script va remplacer le perso du même id au chargement du nouveau.
Donc à moins de le remettre "à neuf" ( comme s'il venait de rentrer dans l'équipe ), j'vois pas comment faire. ( Et donc ça aurait aucun intérêt )
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
Yearl -
posté le 08/07/2012 à 16:20:30 (67 messages postés)
| | Bah enfaite le personnage importer se stockerai en plus dans l'équipe, pas à la place du premier c'est pour sa !
Plus précisement le mieux serait que cela exporte l'Id 1 mais qu'après en important sa le mette sur l'ID 10 !
Ah bah enfaite c'est bon ton script marche nickel il suffit juste de renommer le fichie actor_1 par actor_10
Après le load je met 10 comme ID
Et sa marche !!!
Merci beaucoup beaucoup !!
|
Mack -
posté le 08/07/2012 à 16:37:32 (2311 messages postés)
- | | Ah ...
C'est pas pour te vexer, mais je pense que tu cherches à faire un truc bancal comme pas permis ...
Comment le programme doit savoir quel personnage supprimer ?
Selon les personnages importé, ils auront pas la même id ...
Si tu comptes faire un truc dans le même genre que les unités dans FFTA, j'pense pas que tu y arriveras.
J'peux toujours essayer de te le faire, mais à mon avis, c'est pas une bonne idée de rajouter des perso en plus.
( Je sais de quoi je parle, j'avais commencé un truc du genre sous XP )
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
Yearl -
posté le 08/07/2012 à 16:40:40 (67 messages postés)
| | Bah enfaite l'exportation et l'importation fonctionne comme je veux ..
A part un hic, l'equipement ne se conserve pas, sa sauvegarde celui initiale ..
Tu vois comment tu peux résoudre le probleme ?..
Ps: Pour ce que tu viens de dire, il ne peut y avoir qu'un personnage importer et il sera obligatoirement sur l'ID 10 donc pour le supprimer je peux le faire avec un simple evenement et il ne devrai pas y avoir de probleme de remplacement !
|
Mack -
posté le 08/07/2012 à 16:47:48 (2311 messages postés)
- | | T'as bien changer l'id dans ta commande ?
Parce que chez moi, aucun soucis pour sauvegarder/charger les autres héros.
Ah, s'il y en a qu'un seul, ça peut se faire.
EDIT : Donc c'est aussi le 10 qui doit être sauvegarder et charger ?
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
Yearl -
posté le 08/07/2012 à 16:48:55 (67 messages postés)
| | Finnallement ya que l'equipement qui se conserve pas ! Sa garde celui initial !..
|
Mack -
posté le 08/07/2012 à 16:57:53 (2311 messages postés)
- | | Comment ça ? ...
Si je change l'équipement de mon héros, que je sauvegarde, que je quitte, et que je recharge, moi j'obtient bien l'équipement que j'avais quand j'ai sauvegarder ...
Donc c'est aussi le 10 qui doit être sauvegarder et charger ?
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
Yearl -
posté le 08/07/2012 à 17:02:50 (67 messages postés)
| | Moi le héros exporter puis importer ne conserve pas son equipement ..
Ca lui met l'equipement initial ..
EDIT: Ah ui dakor si tu l'importe dans la meme partie tout fonctionne, meme l'equipement !
MAsi si tu importe a partir d'une autre partie, lequipement ne se charge pas,
il charge celui qui est équipé actuellement sur l'ID 1 (un peu dur a expliquer tout sa)
Et sinon c'est l'ID 1 qui doit etre exporter puis ca doit l'importer sur l'ID 10
|
Mack -
posté le 08/07/2012 à 17:08:33 (2311 messages postés)
- | | Mon Héros est équiper de "Epée de Bronze". Je sauvegarde, je change son arme par "Epée de Fer". J'importe mon Héros, il se retrouve avec une Epée de Bronze.
Chez moi ça marche très bien comme ça. J'ai mal compris c'que tu voulais ?
Okay, j'devrait pas en avoir pour longtemps alors.
EDIT :
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
| #==============================================================================
# ** Game_Interpreter
#------------------------------------------------------------------------------
# An interpreter for executing event commands. This class is used within the
# Game_Map, Game_Troop, and Game_Event classes.
#==============================================================================
class Game_Interpreter
def save_actor
actor = $game_actors[1]
File.open("Actor_Imported.rvdata2", "wb") do |file|
Marshal.dump(actor, file)
end
end
def load_actor
File.open("Actor_Imported.rvdata2", "rb") do |file|
actor = Marshal.load(file)
$game_actors.data[10] = actor
end
$game_party.add_actor(10)
$game_player.refresh
end
def delete_actor
$game_party.remove_actor(10)
$game_actors.data[10] = nil
end
end
class Game_Actors
attr_accessor :data
end |
Même commandes, mais t'as plus besoin de donner un id, il va toujours te sauvegarder ton héros 1, et remplacer le héros 10.
( Un soucis de taille va se poser concernant la duplication d'items par contre. Et j'vois pas comment l'empêcher ... )
Pour supprimer le héros 10 tu fais :
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
Yearl -
posté le 08/07/2012 à 17:13:05 (67 messages postés)
| | Regarde l'edit que j'ai mis au dessus au cas ou tu l'es pas vu
Et si tu as tres bien compris, jusye fais le meme test mais fais une nouvelle partie avant d'importer le perso !
EDIT: Enfaite le probleme exact c'est que le logiciel mélange l'equipement de l'ID1 et de l'ID10 ..
Quand tu modifi le 10 , sa modifi le 1 egalement et inversement ..
Et merci le nouveau code marche aussi bien
Tu saurai comment eviter que les equipements se "mélangent comme sa" ?
|
Mack -
posté le 08/07/2012 à 17:23:36 (2311 messages postés)
- | | Non, ça change pas l'équipement de l'un ou de l'autre. En faite, c'est qu'ils ont un id en commun, que j'avais oublier de changer, et du coup, quand tu ouvrais l'équipement du héros importer, ça t'ouvrais celui du héros 1.
Avec ce code c'est réparé :
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
| #==============================================================================
# ** Game_Interpreter
#------------------------------------------------------------------------------
# An interpreter for executing event commands. This class is used within the
# Game_Map, Game_Troop, and Game_Event classes.
#==============================================================================
class Game_Interpreter
def save_actor
actor = $game_actors[1].dup
actor.actor_id = 10
File.open("Actor_Imported.rvdata2", "wb") do |file|
Marshal.dump(actor, file)
end
end
def load_actor
File.open("Actor_Imported.rvdata2", "rb") do |file|
actor = Marshal.load(file)
$game_actors.data[10] = actor
end
$game_party.add_actor(10)
$game_player.refresh
end
def delete_actor
$game_party.remove_actor(10)
$game_actors.data[10] = nil
end
end
class Game_Actors
attr_accessor :data
end
class Game_Actor < Game_Battler
attr_accessor :actor_id
end |
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
Yearl -
posté le 08/07/2012 à 17:30:30 (67 messages postés)
| | Perfect !
Merci beaucoup !
Maintenant je vais te demander un autre truc mais sa je pense pas que sa soit possible ..
J'aimerai savoir sil est possible de faire en sorte que l'équipement du personnage importer
ne puisse pas être modifier ..??
|
Mack -
posté le 08/07/2012 à 17:35:29 (2311 messages posté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
| #==============================================================================
# ** Game_Interpreter
#------------------------------------------------------------------------------
# An interpreter for executing event commands. This class is used within the
# Game_Map, Game_Troop, and Game_Event classes.
#==============================================================================
class Game_Interpreter
def save_actor
actor = $game_actors[1].dup
actor.actor_id = 10
File.open("Actor_Imported.rvdata2", "wb") do |file|
Marshal.dump(actor, file)
end
end
def load_actor
File.open("Actor_Imported.rvdata2", "rb") do |file|
actor = Marshal.load(file)
$game_actors.data[10] = actor
end
$game_party.add_actor(10)
$game_player.refresh
end
def delete_actor
$game_party.remove_actor(10)
$game_actors.data[10] = nil
end
end
class Game_Actors
attr_accessor :data
end
class Game_Actor < Game_Battler
attr_accessor :actor_id
def equip_type_fixed?(etype_id)
if @actor_id == 10
return true
else
return features_set(FEATURE_EQUIP_FIX).include?(etype_id)
end
end
end |
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
Yearl -
posté le 08/07/2012 à 17:40:34 (67 messages postés)
| | Enfaite pour quelqu'un qui c'est scripté c'est facile apperement ! ^^
Merci encore d'avoir pris du temps pour moi !!!
EDIT : Dernière petite mise au point, est ce que tu pourrait faire en sorte que sa plante pas
quand ya pas de fichier ?
Juste que sa marque un truc "Fichier non trouvé" ?
|
Mack -
posté le 08/07/2012 à 18:39:28 (2311 messages posté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
| #==============================================================================
# ** Game_Interpreter
#------------------------------------------------------------------------------
# An interpreter for executing event commands. This class is used within the
# Game_Map, Game_Troop, and Game_Event classes.
#==============================================================================
class Game_Interpreter
def save_actor
actor = $game_actors[1].dup
actor.actor_id = 10
File.open("Actor_Imported.rvdata2", "wb") do |file|
Marshal.dump(actor, file)
end
end
def load_actor
if FileTest.exist?("Actor_Imported.rvdata2")
File.open("Actor_Imported.rvdata2", "rb") do |file|
actor = Marshal.load(file)
$game_actors.data[10] = actor
end
$game_party.add_actor(10)
$game_player.refresh
end
end
def delete_actor
$game_party.remove_actor(10)
$game_actors.data[10] = nil
end
end
class Game_Actors
attr_accessor :data
end
class Game_Actor < Game_Battler
attr_accessor :actor_id
def equip_type_fixed?(etype_id)
if @actor_id == 10
return true
else
return features_set(FEATURE_EQUIP_FIX).include?(etype_id)
end
end
end |
Pas de message d'erreur, mais à ma connaissance, ils ont virer la possibilité d'afficher une textbox ...
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
Yearl -
posté le 08/07/2012 à 19:26:07 (67 messages postés)
| | Merci, sa évite comeme le crash !!
Bonne soirée
EDIT: Dukou Mack, petite question:
Bloqué l'équipement de quelqu'un comme sa on peut le faire par évenement ?
Si oui je viens bien que tu me dise ou paske je trouve pas et sinon, est ce que tu aurai encore du temps pour me faire un petit script qui bloquerai l'equipement par ID, dans lequel je pourrait définir plusieur ID ?
(Un script automatique, qui n'aurai pas besoin d'etre appelé)
|
Mack -
posté le 08/07/2012 à 21:01:16 (2311 messages postés)
- | | A la ligne 41 t'as :
Modifies en :
1
| if @actor_id == 10 or @actor_id == X or @actor_id == Y |
( Rajoutes "or @actor_id == X" avec X l'id de ton héros )
( La flemme de chercher dans le log, mais je sais que c'est possible de le faire nativement )
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
Yearl -
posté le 08/07/2012 à 21:07:07 (67 messages postés)
| | Ok merci beaucoup !!
|
Index du forum > Entraide > [RESOLU] [VX Ace] Demande de script pour importer/exporter personnage
|
|
|