Bienvenue visiteur !
|
Statistiques
Liste des membres
Contact
Mentions légales
591 connectés actuellement
30732844 visiteurs depuis l'ouverture
2823 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
Messages postés par Estheone Nombre de messages référencés sur Oniromancie (non supprimés): 303 Aller à la page: 1 2 3 4 5 6 7 8
Posté dans Forum - [RMXP] Créer un fichier lorsque le jeu est fini |
Estheone -
posté le 04/04/2013 à 13:35:48. (312 messages postés) |
| Comme tu veux. ^^
En appel de script à la fin du jeu :
1
2
3
| file = File.open("Data/NomduFichier.rxdata", "wb")
Marshal.dump(true, file)
file.close |
Dans le Scene_Title :
1
2
3
4
5
6
7
| @game_completion = false
filename = "Data/NomduFichier.rxdata"
if FileTest.exist?(filename)
file = File.open(filename, "rb")
@game_completion = Marshal.load(file)
file.close
end |
Le fichier est crypté avec une variable inutile dedans pour ne pas que le joueur puisse le créer facilement lui-même en connaissant son existence.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [RMXP] Créer un fichier lorsque le jeu est fini |
Estheone -
posté le 04/04/2013 à 12:59:52. (312 messages postés) |
| Tu n'as pas forcément besoin de créer un nouveau fichier pour détecter si le jeu a été terminé.
Je pars du principe que tu veux rajouter une ou plusieurs options bonus à partir de l'écran-titre en fonction de si le jeu a été terminé ou non sur une sauvegarde.
Si c'est pas ce que tu veux faire il faut que tu me donnes plus de détails.
Dans le main du Scene_Title au-dessus des load_data tu ajoutes :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| @game_completion = false
for i in 0..3
filename = "Save#{i+1}.rxdata"
if FileTest.exist?(filename)
file = File.open(filename, "r")
Marshal.load(file)
Marshal.load(file)
Marshal.load(file)
game_switches = Marshal.load(file)
file.close
if game_switches[1]
@game_completion = true
break
end
end
end |
Tu remplaces le 1 de game_switches[1] par l'id d'un interrupteur qui s'active à la fin du jeu.
Tu n'as plus qu'à modifier le menu du Scene_Title en fonction de la variable @game_completion.
Evidemment il faut faire sauvegarder le joueur à la fin du jeu pour que ça marche, mais bon c'est généralement le cas dans les jeux avec contenu bonus.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [RMXP] Faire bouger une image en script en même temps que Scene_Map |
Estheone -
posté le 03/04/2013 à 14:21:22. (312 messages postés) |
| Comme le dit mtarzaim il ne faut jamais faire des boucles avec un Graphics.update dedans.
Et il n'y a pas de ligne magique pour paralléliser ton script, il te faut l'intégrer correctement dès le départ.
Si tu débutes en script c'est pas évident à faire donc voilà la démarche.
Dans le Scene_Map :
Tu rajoutes ces 2 fonctions :
1
2
3
4
5
6
7
8
9
| def create_hud_window
dispose_hud_window if @hud_window
@hud_window = Window_HUD.new
end
def dispose_hud_window
@hud_window.dispose
@hud_window = nil
end |
En dessous de @spriteset.update dans le update tu mets :
1
2
3
4
| if @hud_window
@hud_window.update
dispose_hud_window if @hud_window.need_dispose
end |
En dessous des @spriteset.dispose (il y en a un dans le main et un dans le transfer_player) tu mets :
1
| dispose_hud_window if @hud_window |
Ensuite la fenêtre en elle-même (j'ai pris Window_Gold comme base) :
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
| class Window_HUD < Window_Base
attr_reader :need_dispose
def initialize
super(0, 0, 160, 64)
self.contents = Bitmap.new(width - 32, height - 32)
@need_dispose = false
@count = 0
refresh
end
def refresh
self.contents.clear
cx = contents.text_size($data_system.words.gold).width
self.contents.font.color = normal_color
self.contents.draw_text(4, 0, 120-cx-2, 32, $game_party.gold.to_s, 2)
self.contents.font.color = system_color
self.contents.draw_text(124-cx, 0, cx, 32, $data_system.words.gold, 2)
end
def update
super
@count += 1
if @count > 60
self.opacity -= 8
@need_dispose = true if self.opacity == 0
end
end
end |
Pour finir tu n'as plus qu'à appeler ta fenêtre à partir d'un appel de script en event :
1
| $scene.create_hud_window |
A noter qu'il ne faut pas l'appeler à partir d'un event en démarrage automatique sans laisser 1 frame d'attente avant.
Teste ça et je pense que tu pourras compléter selon tes besoins en analysant le fonctionnement.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [VX Ace] Faire passer un tour |
Estheone -
posté le 02/04/2013 à 00:10:21. (312 messages postés) |
| Non Zeus a raison. ^^
J'ai testé, tu peux ajouter un statut à tous les membres de l'équipe en commande d'event pour obtenir le même résultat (commande modifier le statut dans la catégorie Héros des commandes).
Mais bon tu demandes du script, je fournis du script.
A toi de choisir la méthode que tu préfères.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [VX Ace] Faire passer un tour |
Estheone -
posté le 01/04/2013 à 23:10:33. (312 messages postés) |
| Non je ne pense pas que ce soit possible sans faire quelques modifs au préalable.
Mais bon je peux toujours me tromper.
Edit :
Après avoir regardé vite fait c'est vraiment simple à mettre en place en fait.
Il suffirait de retoucher la fonction inputable? de Game_Party :
1
2
3
| def inputable?
members.any? {|actor| actor.inputable? } and $game_switches[1] == false
end |
Avec ça, en mettant l'interrupteur 1 sur true, les tours des alliés sont systématiquement sautés. Il suffirait de l'activer puis le désactiver au tour suivant.
Ou si tu veux juste empêcher un seul tour, il y a encore mieux, juste activer l'interrupteur 1 au tour voulu et ajouter une ligne de script dans le Scene_Battle pour le désactiver automatiquement à chaque tour :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| def start_party_command_selection
unless scene_changing?
refresh_status
@status_window.unselect
@status_window.open
if BattleManager.input_start
@actor_command_window.close
@party_command_window.setup
else
$game_switches[1] = false
@party_command_window.deactivate
turn_start
end
end
end |
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [RMVXACE] Afficher des valeurs Via Variable et les positioner sur l'écran |
Estheone -
posté le 30/03/2013 à 22:50:05. (312 messages postés) |
| Content que ça te plaise.
Encore quelques remarques qui peuvent servir.
Tu peux mettre la police en gras ou en italique avec ces commandes :
1
2
| self.bitmap.font.bold = true
self.bitmap.font.italic = true |
Tu peux aussi faire des modifs sur la police directement dans la méthode refresh autres que la couleur. Si par exemple tu as besoin d'afficher des variables en plus gros que d'autres, tu peux intercaler des self.bitmap.font.size = x entre les draw_text.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [RMVXACE] Afficher des valeurs Via Variable et les positioner sur l'écran |
Estheone -
posté le 30/03/2013 à 20:47:38. (312 messages postés) |
| Tiens :
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
| class Scene_Map < Scene_Base
alias al_start start
alias al_update update
alias al_terminate terminate
def start
al_start
@hud_sprite = Sprite_HUD.new
end
def update
al_update
@hud_sprite.update
end
def terminate
@hud_sprite.dispose
al_terminate
end
end
class Sprite_HUD < Sprite
VARS_ID = [1, 2, 3]
def initialize
super
self.z = 60
self.bitmap = Bitmap.new(544, 416)
self.bitmap.font.size = 24
@vars = []
for id in VARS_ID
@vars.push($game_variables[id])
end
refresh
end
def dispose
self.bitmap.dispose
super
end
def update
super
need_refresh = false
for i in 0...@vars.size
if @vars[i] != $game_variables[VARS_ID[i]]
@vars[i] = $game_variables[VARS_ID[i]]
need_refresh = true
end
end
refresh if need_refresh
end
def refresh
self.bitmap.clear
self.bitmap.font.color.set(255, 255, 255)
self.bitmap.draw_text(4, 4, 128, 24, "VAR 1 : " + $game_variables[VARS_ID[0]].to_s, 0)
self.bitmap.font.color.set(255, 128, 128)
self.bitmap.draw_text(208, 4, 128, 24, "VAR 2 : " + $game_variables[VARS_ID[1]].to_s, 1)
self.bitmap.font.color.set(128, 255, 255)
self.bitmap.draw_text(412, 4, 128, 24, "VAR 3 : " + $game_variables[VARS_ID[2]].to_s, 2)
end
end |
Les trucs qui t'intéressent pour paramétrer comme tu le souhaites :
- le tableau VARS_ID contient les id des variables que tu veux afficher
- la méthode refresh contient l'affichage
Petite parenthèse pour la méthode draw_text :
le premier paramètre correspond à la position x, le deuxième à la position y, le troisième à la largeur du cadre, le quatrième à sa hauteur (la même que la taille de la police), le cinquième au texte à afficher, et le dernier à l'alignement par rapport au cadre (0=>aligné à gauche, 1=>centré, 2=>aligné à droite).
Si comme tu dis tu sais bidouiller les scripts, tu devrais pouvoir t'en sortir avec ça.
@Ephy :
L'affichage de variables en pictures est la seule solution sur 2k3 mais pour VX Ace il y a des méthodes plus pratiques je pense.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [Maker VX] Fusionner 2 événements |
Estheone -
posté le 29/03/2013 à 06:17:12. (312 messages postés) |
| Les interrupteurs locaux sont propres à chaque événement, si tu modifies le A de l'événement 1, ça n'a aucune influence sur le A de l'événement 2.
Soit tu utilises les interrupteurs normaux, soit tu manipules les interrupteurs locaux à distance ce qui est plus compliqué :
en appel de script dans ton événement 1 :
1
2
| $game_self_switches[[1, 24, "A"]] = true
$game_map.need_refresh = true |
Le premier nombre correspond à l'id de la map (j'ai pas pu le déterminer avec tes images donc à toi de remplacer par le nombre qui convient ^^), le deuxième à l'id de l'événement et la lettre entre guillemets le nom de l'interrupteur local.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [VX Ace] Recadrer des Faceset en combat |
Estheone -
posté le 27/03/2013 à 17:11:56. (312 messages postés) |
| Si tu réduis la largeur de la fenêtre c'est normal que les facesets ne rentrent plus, je vois pas trop ce que tu veux qu'on y fasse...
Il y a pas 36 solutions, soit tu retravailles tes facesets pour ce nouveau format, soit tu remets la fenêtre à sa taille d'origine.
Modifier le script n'y changera rien.
Ah, et tant que j'y suis une question en passant :
comment tu fais pour bosser sur 3 projets simultanément sans devenir fou ?
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [RMXP] Ralentissements Importants |
Estheone -
posté le 25/03/2013 à 00:10:54. (312 messages postés) |
| Tout ce que je peux te dire pour l'instant c'est que la source du problème est probablement un script que tu as rajouté qui est appelé lors du chargement d'une map.
Essaie de repérer les scripts ajoutés qui modifient des classes comme Game_Map, Spriteset_Map ou Scene_Map.
Et si tu vois vraiment pas, envoie un lien vers le projet.
C'est le genre de problème qui peut avoir 10000 causes, impossible de t'aider davantage avec le peu d'informations que tu donnes.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [VX Ace] Script incompatible avec une résolution modifiée |
Estheone -
posté le 24/03/2013 à 12:48:47. (312 messages postés) |
| Hmm... J'ai compris.
Tu utilises une map de test de 17 carreaux par 13 j'imagine.
Si tu fais un jeu en résolution 640x480 toutes tes maps doivent être au moins de 20 carreaux par 15 (la taille d'un écran en 640x480 quoi), sinon tu vas te taper des problèmes de ce genre. ^^
Bref le problème c'est la taille de ta map, pas le script.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - Questions idiotes sur RM [PAS Script] |
Estheone -
posté le 24/03/2013 à 01:19:28. (312 messages postés) |
| Le logiciel a rien prévu pour.
Il faudrait carrément refaire la classe Tilemap pour ça, et vu qu'elle n'est pas accessible c'est pas évident.
Sinon je peux te proposer une solution du pauvre pour rendre tous les autotiles animés 2 fois plus rapides :
tu rajoutes un deuxième @tilemap.update en dessous du premier dans Spriteset_Map (ligne 119).
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - La religion |
Estheone -
posté le 23/03/2013 à 12:58:50. (312 messages postés) |
| Citation: Évitez de ramener des on-dit de types douteux ici. Venez avec vos propres raisonnements. |
On peut rapporter des citations de [insert Holy Book here] écrit pas on-ne-sait-qui mais pas celles d'un des philosophes les plus réputés au monde ?
Je vois...
Et merde... je m'étais pourtant juré de ne pas intervenir sur ce débat stérile...
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [VX Ace] Aucun panorama ne s'affiche avec mon script |
Estheone -
posté le 23/03/2013 à 00:13:44. (312 messages postés) |
| Citation: Y a t-il une raison particulière pour que le scripteur l'ai laissé d'origine? |
A mon avis c'est un simple oubli, soit de l'auteur du script, soit du traducteur qui a bidouillé un peu tout ça.
Un simple oubli qui a de lourdes conséquences sur le fonctionnement du script. ^^
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [RMXP] LUMEN (Steam) |
Estheone -
posté le 22/03/2013 à 10:52:57. (312 messages postés) |
| Citation: Un peu ? C'est complètement la même je crois.
Edit : Ah non il y a des différence quand même mais c'est quand même trés trés proche. |
J'ai comparé pour voir et faut arrêter le délire là. A part un enchaînement de 7 ou 8 notes d'affilée les deux musiques ont rien en commun.
Et même si les musiques avaient été identiques, je vois pas comment ça pourrait causer du tort à Lumen si Enterbrain n'a pas eu de problème.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [VXAce] SBS , Gestion de la caméra |
Estheone -
posté le 21/03/2013 à 20:40:46. (312 messages postés) |
| Le truc qui s'occupe du zoom des charas est sûrement :
1
2
| self.zoom_x = @battler.sv.zoom_x * $sv_camera.zoom
self.zoom_y = @battler.sv.zoom_y * $sv_camera.zoom |
Lignes 4487 et 4488 dans le SBS 2 (fonction update_origin de Sprite_Battler).
En partant de ce constat je dirais que $sv_camera.zoom est peut-être le problème.
Mais bon je pourrais pas t'en dire davantage sans voir ton projet vu que je peux pas faire de tests.
Si vraiment t'y arrive pas envoie-le moi en mp et je verrais ce que je peux faire.
Edit :
En fait si j'ai bien compris c'est le rapport de zoom entre l'image de fond et les charas qui est le problème.
Peut-être qu'en ajoutant un coef sur les zooms de l'image de fond suffirait à régler ça.
Essaie de remplacer les self.zoom dans l'update de Sprite_Back_Picture par :
1
2
| self.zoom_x = @zoom_x * $sv_camera.zoom * 0.7
self.zoom_y = @zoom_y * $sv_camera.zoom * 0.7 |
en utilisant les paramètres dans la première image que tu montres.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [VX Ace] Problème de modification de script |
Estheone -
posté le 21/03/2013 à 20:09:29. (312 messages postés) |
| Citation: Concrètement ce petit update, à quoi sert-il, pourquoi règle t-il ce problème? |
Quand tu sors du menu, la fenêtre Window_Calender est créée puis directement suivie d'une transition graphique. Or les scripts sont temporairement gelés pendant une transition et donc le script qui vérifiait l'état de l'interrupteur pour afficher la fenêtre se faisait trop tard.
En appelant update depuis l'initialize, le script qui nous intéresse est appelé directement à la création de la fenêtre.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!! |
Estheone -
posté le 16/03/2013 à 22:26:10. (312 messages postés) |
| Apprendre la syntaxe de base oui ça me semble indispensable (initialiser des variables, faire des boucles, créer des fonctions...). ^^
M'enfin, il te suffit de fouiller les scripts de base, quasiment tout ce que tu chercheras à faire se rapprochera d'un autre truc (le coup des .min pour imposer une valeur max tu peux le voir dans Game_Battler par exemple).
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!! |
Estheone -
posté le 16/03/2013 à 21:56:39. (312 messages postés) |
| Citation: Cette portion de code correspond à l'opacité de départ de l'image ? |
Oui.
Citation: Cela fonctionne mais j'aimerai savoir si j'ai bien compris comment tout cela fonctionnait et si ma démarche était bonne ? |
Non là ça ne se fait plus progressivement (ça passe direct à 180 dès la première frame).
Si tu veux fixer un maximum à 180 ce sont ces lignes qu'il faut rajouter (après les opacity +=) :
1
2
3
| @mini_map_sprite.opacity = [@mini_map_sprite.opacity, 180].min
@player_dot.opacity = [@player_dot.opacity, 180].min
@event_dots[i].opacity = [@event_dots[i].opacity, 180].min |
Ou alors tu inclus les opacity += dans des if (plus simple mais moins précis, l'opacité va dépasser 180 vu que ce n'est pas un multiple de 8) :
1
2
3
| if @mini_map_sprite.opacity < 180
@mini_map_sprite.opacity += 8
end |
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!! |
Estheone -
posté le 16/03/2013 à 19:40:19. (312 messages postés) |
| Ouais j'avais oublié que les proc parallèles étaient déclenchés avant la création du Scene_Map, d'où l'erreur de script.
Avec le déclenchement auto ça me paraît bien mais l'affichage de la mini-map est trop abrupt, je te propose quelques modifs sur l'opacité :
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
| class Spriteset_Mini_Map
def initialize(map_name, event_ids)
@map_name = map_name
@viewport = Viewport.new(520, 0, 120, 90)
@viewport.z = 190
@mini_map_sprite = Sprite.new(@viewport)
@mini_map_sprite.bitmap = RPG::Cache.picture(@map_name)
@mini_map_sprite.opacity = 0
@player_dot = Sprite.new(@viewport)
@player_dot.bitmap = RPG::Cache.picture("Player_Dot")
@player_dot.ox = @player_dot.bitmap.width/2
@player_dot.oy = @player_dot.bitmap.height/2
@player_dot.opacity = 0
@events = []
@event_dots = []
for e in event_ids
event = $game_map.events[e]
if event
@events.push(event)
@event_dots.push(Sprite.new(@viewport))
@event_dots.last.bitmap = RPG::Cache.picture("Event_Dot")
@event_dots.last.ox = @event_dots.last.bitmap.width/2
@event_dots.last.oy = @event_dots.last.bitmap.height/2
@event_dots.last.opacity = 0
end
end
update
end
def dispose
@mini_map_sprite.dispose
@player_dot.dispose
for e in @event_dots
e.dispose
end
@viewport.dispose
end
def update
@mini_map_sprite.ox = $game_map.display_x*3/64
@mini_map_sprite.oy = $game_map.display_y*3/64
@mini_map_sprite.opacity += 8
@player_dot.x = ($game_player.real_x+64-$game_map.display_x)*3/64
@player_dot.y = ($game_player.real_y+64-$game_map.display_y)*3/64
@player_dot.opacity += 8
for i in 0...@events.size
@event_dots[i].x = (@events[i].real_x+64-$game_map.display_x)*3/64
@event_dots[i].y = (@events[i].real_y+64-$game_map.display_y)*3/64
@event_dots[i].opacity += 8
end
end
end |
Avec ça l'affichage de la mini-map se fait graduellement, c'est mieux. Enfin bon à toi de voir.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!! |
Estheone -
posté le 16/03/2013 à 17:29:51. (312 messages postés) |
| Citation: Question 1 : Affichage partielle d'une image + scrolling horizontal et vertical. |
Petite remarque avant tout : 120x90 n'a pas un ratio 1:6 par rapport à 640*480 mais 1:5.333.
On va laisser tomber la mini map en event, c'est de la daube.
Je t'en ai fait une scriptée et facilement paramétrable.
Voila un aperçu :
C'est fait à l'arrache mais tout fonctionne sans problème (défilement de la map qui est en ratio 1:5.333, rafraîchissement dynamique des curseurs en fonction de la position du héros et des events).
Le code :
Tu rajoutes ça dans le Scene_Map :
1
2
3
| def create_mini_map(mini_map_name, event_ids)
@mini_map_spriteset = Spriteset_Mini_Map.new(mini_map_name, event_ids)
end |
Tu ajoutes cette ligne en-dessous de @spriteset.update dans la fonction update du Scene_Map :
1
| @mini_map_spriteset.update if @mini_map_spriteset |
Tu ajoutes ça dans le if $game_map.map_id != $game_temp.player_new_map_id dans la fonction transfer_player du Scene_Map :
1
2
3
4
| if @mini_map_spriteset
@mini_map_spriteset.dispose
@mini_map_spriteset = nil
end |
Tu ajoutes ce code au-dessus du main :
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
| class Spriteset_Mini_Map
def initialize(map_name, event_ids)
@map_name = map_name
@viewport = Viewport.new(520, 0, 120, 90)
@viewport.z = 190
@mini_map_sprite = Sprite.new(@viewport)
@mini_map_sprite.bitmap = RPG::Cache.picture(@map_name)
@player_dot = Sprite.new(@viewport)
@player_dot.bitmap = RPG::Cache.picture("Player_Dot")
@player_dot.ox = @player_dot.bitmap.width/2
@player_dot.oy = @player_dot.bitmap.height/2
@events = []
@event_dots = []
for e in event_ids
event = $game_map.events[e]
if event
@events.push(event)
@event_dots.push(Sprite.new(@viewport))
@event_dots.last.bitmap = RPG::Cache.picture("Event_Dot")
@event_dots.last.ox = @event_dots.last.bitmap.width/2
@event_dots.last.oy = @event_dots.last.bitmap.height/2
end
end
update
end
def dispose
@mini_map_sprite.dispose
@player_dot.dispose
for e in @event_dots
e.dispose
end
@viewport.dispose
end
def update
@mini_map_sprite.ox = $game_map.display_x*3/64
@mini_map_sprite.oy = $game_map.display_y*3/64
@player_dot.x = ($game_player.real_x+64-$game_map.display_x)*3/64
@player_dot.y = ($game_player.real_y+64-$game_map.display_y)*3/64
for i in 0...@events.size
@event_dots[i].x = (@events[i].real_x+64-$game_map.display_x)*3/64
@event_dots[i].y = (@events[i].real_y+64-$game_map.display_y)*3/64
end
end
end
|
Bien sûr il te faut modifier "Player_Dot" et "Event_Dot" par les noms des images de tes curseurs.
Pour initialiser la mini-map c'est simple :
Le premier paramètre c'est le nom de l'image de ta mini-map (dans Pictures), le deuxième est un tableau qui contient les id de tous les events que tu veux afficher sur la mini-map.
Si tu veux déplacer un peu la mini-map (genre qu'elle soit pas complètement collée en haut à droite) c'est les 2 premiers paramètres du viewport qu'il te faut modifier.
Je pense que c'est à peu près tout. Essaie donc. ^^
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [VX Ace] Localisation dans le menu |
Estheone -
posté le 15/03/2013 à 14:22:47. (312 messages postés) |
| Citation: Ça à l'air de fonctionner, ce n'est pas une erreur? |
Ca m'a l'air bon.
Citation: Sérieux faut que je me mette à scripter, vous me faites trop rêver ^^.
Par où commencer d'ailleurs, il y a de tout sur le net!? |
Pour apprendre à scripter le mieux c'est d'expérimenter toi-même en faisant des petites modifs dans les scripts d'origine et de persévérer en cas d'échec.
Tu as aussi les fichiers d'aide de VX Ace (F1) qui contiennent une tonne d'infos sur le Ruby. Par exemple en cherchant draw_text dans les fichiers d'aide tu aurais eu la réponse à ta 2ème question.
Il doit sûrement aussi y avoir quelques âmes charitables qui ont fait des tutos pour se familiariser avec le Ruby en douceur.
Edit :
Citation: As-tu une idée de ce qu'il faut modifier, le jour où l'on désire insérer le nom de la map affiché sur la map et non le nom de la map |
Dans le refresh du Window_Map_Name
1
| self.contents.draw_text(4, 24, 128, 24, $game_map.display_name.to_s, 2) |
Petite remarque aussi : j'avais pas fait gaffe vu que je connais pas encore trop les scripts de base VX Ace mais il y a une autre fenêtre qui s'appelle Window_MapName. Tu devrais remplacer Window_Map_Name par autre chose pour éviter de les confondre (genre Window_Menu_Map_Name).
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [VX Ace] Localisation dans le menu |
Estheone -
posté le 14/03/2013 à 23:16:26. (312 messages postés) |
| Et hop :
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
| class Game_Map
def mpname
mpname = load_data("Data/MapInfos.rvdata2")
return mpname[@map_id].name
end
end
class Window_Map_Name < Window_Base
def initialize
super(0, 0, window_width, fitting_height(2))
refresh
end
def window_width
return 160
end
def refresh
self.contents.clear
change_color(system_color)
self.contents.draw_text(4, 0, 120, 24, "Lieu :")
change_color(normal_color)
self.contents.draw_text(4, 24, 128, 24, $game_map.mpname.to_s, 2)
end
end
class Scene_Menu < Scene_MenuBase
def start
super
create_command_window
create_gold_window
create_map_name_window
create_status_window
end
def create_map_name_window
@map_name_window = Window_Map_Name.new
@map_name_window.x = 0
@map_name_window.y = Graphics.height - @gold_window.height - @map_name_window.height
end
end |
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [VX Ace] Changer l'animation combat |
Estheone -
posté le 09/03/2013 à 21:28:55. (312 messages postés) |
| Citation: Ça fonctionne, de faire "Graphics/System/BattleStart"+rand(3).to_s ?
Je connais plutôt :
"Graphics/System/BattleStart#{rand(3).to_s}" |
C'est pareil.
Citation: attention, rand(3) donne une valeur aléatoire entre 0 et 3, alors il faut quatre fichiers nommés de BattleStart0 à BattleStart3 dans cet exemple. |
Non je t'assure que ça retourne un entier entre 0 et 2 (je suis bien placé pour le savoir vu le nombre hallucinant de random que j'utilise pour mon projet).
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Posté dans Forum - [VX Ace] Changer l'animation combat |
Estheone -
posté le 09/03/2013 à 15:06:44. (312 messages postés) |
| La fonction perform_battle_transition dans Scene_Map.
Et oui un système de transition aléatoire se fait facilement :
1
2
3
4
5
| def perform_battle_transition
name = "Graphics/System/BattleStart"+rand(3).to_s
Graphics.transition(60, name, 100)
Graphics.freeze
end |
Juste avec cette modif ça va choisir une transition au pif parmi 3 transitions qui doivent être nommées BattleStart0, BattleStart1 et BattleStart2.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
Aller à la page: 1 2 3 4 5 6 7 8
|
|
|