Bienvenue visiteur !
|
Statistiques
Liste des membres
Contact
Mentions légales
176 connectés actuellement
30731851 visiteurs depuis l'ouverture
1829 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
Sou -
posté le 02/02/2016 à 23:29:38 (396 messages postés)
| On a jamais assez de munitions | Domaine concerné: Evenements Logiciel utilisé: Rpg Maker XP Bonsoir à tous,
Je me demandé tout simplement comment figer un événement (qui se déplace vers le héro), lors de l'ouverture d'une fenêtre de dialogue.
Peut-être suis-je passer à coté de cette commande, en tout cas je ne trouve pas.
Merci d'avance, comme d'hab
|
Je suis Sou et c'est tout. |
tartiflett -
posté le 03/02/2016 à 00:03:09 (109 messages postés)
| | La fenêtre de dialogue vient de cet événement ?
Si oui, n'utilise pas la "trajectoire personnalisée" ; fais-la plutôt dans l'event, coupe-la en deux au moment du dialogue en ayant pris soin de cocher "attendre la fin", et en appuyant sur Entrée pour fermer la boîte de dialogue, le perso reprendra son chemin... Le tout devrait donner ce que tu recherches je pense =]
[Mouvement Event (attendre la fin)
> Approcher du héros
> Approcher du héros
[...]
> Approcher du héros]
[Afficher texte = "Salut !"]
[Mouvement Event (répéter le mouvement)
> Approcher du héros]
J'espère que c'est ce que tu cherchais ! ^_^
|
Je dois faire une croix si je sais pas écrire ? |
Sou -
posté le 03/02/2016 à 09:13:32 (396 messages postés)
| On a jamais assez de munitions | Merci de ta réponse, mais non justement, le "problème" est là ^^
J'ai une horde de zombie qui se déplace de façon agressive sur la majorité de mes maps, donc événement indépendant mon petit pnj ^^'
Edit:
Là où il y a peut-être une piste c'est de prendre le code du script anti-lag (celui qui stop les évent hors champs de vision), pour l'adapter en faisant un truc du style :
Quand Dialogue => Stop Full
Mais le script anti-lag est encore un peu costaux pour moi niveau prog il m'a retourné le cerveau *_*
|
Je suis Sou et c'est tout. |
tartiflett -
posté le 03/02/2016 à 11:57:00 (109 messages postés)
| | Sinon tu copie-colle tous les mouvements des différents zombies dans un événement commun quoi... et quand tu veux afficher ton texte tu peux stopper tout le monde d'un coup non ?
|
Je dois faire une croix si je sais pas écrire ? |
Sou -
posté le 03/02/2016 à 12:06:36 (396 messages postés)
| On a jamais assez de munitions | Hum... là où il y a un hick, c'est que si je passe mes zombies en événement commun bah l'anti-lag ne fera plus effet car il ne gère pas les événements communs (et heureusement), mais ça par contre ça va foutre le bordel ^^'
Les marges de manœuvres sont réduites.
|
Je suis Sou et c'est tout. |
tartiflett -
posté le 03/02/2016 à 12:08:46 (109 messages postés)
| | Ah oui je comprends... Effectivement tu te heurtes à un dilemme... y a tant que ça de zombies ?! (couuuuuule !)
|
Je dois faire une croix si je sais pas écrire ? |
Sou -
posté le 03/02/2016 à 12:13:58 (396 messages postés)
| On a jamais assez de munitions | Citation: y a tant que ça de zombies ? |
Minimum 350 pour chaque map de 500 par 500? ^^'
Sans compter le reste des pnj, mobs, et autres événements tels que des portes (à position aléatoire en début de partie) qui sont au moins au nombre de ... 50 (par map).
Edit: Minimum 500 par map de 500 par 500, parce que oui 100 x 5 = 500 (trop de calcul tout ça)
|
Je suis Sou et c'est tout. |
tartiflett -
posté le 03/02/2016 à 12:18:34 (109 messages postés)
| | Ah oui quand même !
Bon bah je vais laisser la place à quelqu'un de plus expérimenté qui sera plus constructif que moi ! =P
Sinon, tu peux mettre 350 interrupteurs quoi...
|
Je dois faire une croix si je sais pas écrire ? |
Sou -
posté le 03/02/2016 à 12:27:26 (396 messages postés)
| On a jamais assez de munitions | Citation: Sinon, tu peux mettre 350 interrupteurs quoi... |
Ça fait beaucoup de petit boutons *-*
Merci quand même, de ta réactivité
|
Je suis Sou et c'est tout. |
Aminomad -
posté le 03/02/2016 à 17:19:01 (150 messages postés)
| | C'est quoi ce "script anti-lag" auquel tu fais référence ?
C'est un truc officiel ? Ou tu l'as fais toi-même ?
Sinon pour ton souci tu peux pas gérer ça au moment de créer les boites de dialogues directement ?
Genre avant de créer la boite, t'active un interrupteur qui stoppe tout (via une page dans les events) et tu le désactive ensuite ?
(ça fait beaucoup de questions...)
|
The Lone Chameleon |
Sou -
posté le 03/02/2016 à 21:00:48 (396 messages postés)
| On a jamais assez de munitions | Citation: C'est quoi ce "script anti-lag" auquel tu fais référence ? |
Voici le script anti-lag auquel je fais référence:
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
| #======================================
# ¦ Anti Event Lag Script
#======================================
# By: Near Fantastica
# Date: 12.06.05
# Version: 3
# Addon by Rabu
#======================================
# Addon: Auch Events werden upgedatet die ausserhalb des range?-Bereichs
# liegen, aber als erste Event-Zeile einen "comment"-Befehl beinhalten.
# Also Events will be updated, that have a "Comment"-command
# in the first line of the event - (inspired by Rataime)
#======================================
# ¦ Game_Map
#======================================
class Game_Map
#--------------------------------------------------------------------------
def in_range?(object)
screne_x = $game_map.display_x
screne_x -= 256
screne_y = $game_map.display_y
screne_y -= 256
screne_width = $game_map.display_x
screne_width += 2816
screne_height = $game_map.display_y
screne_height += 2176
return false if object.real_x <= screne_x
return false if object.real_x >= screne_width
return false if object.real_y <= screne_y
return false if object.real_y >= screne_height
return true
end
#--------------------------------------------------------------------------
def update
if $game_map.need_refresh
refresh
end
if @scroll_rest > 0
distance = 2 ** @scroll_speed
case @scroll_direction
when 2
scroll_down(distance)
when 4
scroll_left(distance)
when 6
scroll_right(distance)
when 8
scroll_up(distance)
end
@scroll_rest -= distance
end
for event in @events.values
#===== Änderung / Modification- Rabu ==========
if in_range?(event) or event.trigger == 3 or event.trigger == 4 or (event.list!=nil and event.list[0].code == 108)
#==============================================
event.update
end
end
for common_event in @common_events.values
common_event.update
end
@fog_ox -= @fog_sx / 8.0
@fog_oy -= @fog_sy / 8.0
if @fog_tone_duration >= 1
d = @fog_tone_duration
target = @fog_tone_target
@fog_tone.red = (@fog_tone.red * (d - 1) + target.red) / d
@fog_tone.green = (@fog_tone.green * (d - 1) + target.green) / d
@fog_tone.blue = (@fog_tone.blue * (d - 1) + target.blue) / d
@fog_tone.gray = (@fog_tone.gray * (d - 1) + target.gray) / d
@fog_tone_duration -= 1
end
if @fog_opacity_duration >= 1
d = @fog_opacity_duration
@fog_opacity = (@fog_opacity * (d - 1) + @fog_opacity_target) / d
@fog_opacity_duration -= 1
end
end
end
#======================================
# ¦ Spriteset_Map
#======================================
class Spriteset_Map
#--------------------------------------------------------------------------
def in_range?(object)
screne_x = $game_map.display_x
screne_x -= 256
screne_y = $game_map.display_y
screne_y -= 256
screne_width = $game_map.display_x
screne_width += 2816
screne_height = $game_map.display_y
screne_height += 2176
return false if object.real_x <= screne_x
return false if object.real_x >= screne_width
return false if object.real_y <= screne_y
return false if object.real_y >= screne_height
return true
end
#--------------------------------------------------------------------------
def update
if @panorama_name != $game_map.panorama_name or
@panorama_hue != $game_map.panorama_hue
@panorama_name = $game_map.panorama_name
@panorama_hue = $game_map.panorama_hue
if @panorama.bitmap != nil
@panorama.bitmap.dispose
@panorama.bitmap = nil
end
if @panorama_name != ""
@panorama.bitmap = RPG::Cache.panorama(@panorama_name, @panorama_hue)
end
Graphics.frame_reset
end
if @fog_name != $game_map.fog_name or @fog_hue != $game_map.fog_hue
@fog_name = $game_map.fog_name
@fog_hue = $game_map.fog_hue
if @fog.bitmap != nil
@fog.bitmap.dispose
@fog.bitmap = nil
end
if @fog_name != ""
@fog.bitmap = RPG::Cache.fog(@fog_name, @fog_hue)
end
Graphics.frame_reset
end
@tilemap.ox = $game_map.display_x / 4
@tilemap.oy = $game_map.display_y / 4
@tilemap.update
@panorama.ox = $game_map.display_x / 8
@panorama.oy = $game_map.display_y / 8
@fog.zoom_x = $game_map.fog_zoom / 100.0
@fog.zoom_y = $game_map.fog_zoom / 100.0
@fog.opacity = $game_map.fog_opacity
@fog.blend_type = $game_map.fog_blend_type
@fog.ox = $game_map.display_x / 4 + $game_map.fog_ox
@fog.oy = $game_map.display_y / 4 + $game_map.fog_oy
@fog.tone = $game_map.fog_tone
i=0
for sprite in @character_sprites
if sprite.character.is_a?(Game_Event)
#===== Änderung / Modification- Rabu ==========
if in_range?(sprite.character) or sprite.character.trigger == 3 or sprite.character.trigger == 4 or (sprite.character.list!=nil and sprite.character.list[0].code == 108)
#==============================================
sprite.update
i+=1
end
else
sprite.update
i+=1
end
end
#p i
@weather.type = $game_screen.weather_type
@weather.max = $game_screen.weather_max
@weather.ox = $game_map.display_x / 4
@weather.oy = $game_map.display_y / 4
@weather.update
for sprite in @picture_sprites
sprite.update
end
@timer_sprite.update
@viewport1.tone = $game_screen.tone
@viewport1.ox = $game_screen.shake
@viewport3.color = $game_screen.flash_color
@viewport1.update
@viewport3.update
end
end
|
Citation: C'est un truc officiel ? Ou tu l'as fais toi-même ? |
C'est pas du fait maison, j'ai pas encore le niveau pour
Citation: Sinon pour ton souci tu peux pas gérer ça au moment de créer les boites de dialogues directement ?
Genre avant de créer la boite, t'active un interrupteur qui stoppe tout (via une page dans les events) et tu le désactive ensuite ? |
C'est ce que je cherche à faire à vrai dire, seulement je ne vois pas quelle commande utilisé, ou quel bout de script fabriqué pour que mes événement se figent.
C'est pour cela que je voulais recyclé le code de l'anti lag pour arriver à faire quelque chose de ce type:
(sachant que l'anti lag stop les événements hors écran)
1) Soit ouvrir une boite de dialogue étant le script aux événements à l'écran sauf celui en cours.
2) Soit j'appelle du script qui fige la scène, je dialogue, j'appelle du script qui défige la scène.
|
Je suis Sou et c'est tout. |
Aminomad -
posté le 03/02/2016 à 21:23:10 (150 messages postés)
| | Sans parler de script, je pensais plus à un truc dans cette veine la:
http://www.rpg-maker.fr/index.php?page=forum&id=25488&deb=1&ancre=1075860#rech
Avec l'interrupteur "stop les gars" dont tu parlais.
Le plus chiant c'est d'encadrer chacune de tes phases de dialogues par l'activation
et la désactivation de l'interrupteur mais si t'en as pas beaucoup ça va.
|
The Lone Chameleon |
| Chanter l'hyperchleuasme | Gros lol ce topic
La question c'est de figer les events lors d'un message, et les mecs proposent d'utiliser 350 interrupteurs ou bien un script anti-lag
Et moi qui engueulais Némau pour ses 17 interrupteurs...
> Les events à figer ont leur dernière page (sans mouvement) qui s'active avec l'interrupteur "STOP_EVENTS", interrupteur qu'on activera avant les messages, et qu'on désactivera après.
|
Es-tu une star ? | Kujira no Hara | Muma|Rope | Polaris 03 | La 7e porte |
Sou -
posté le 03/02/2016 à 21:44:45 (396 messages postés)
| On a jamais assez de munitions | Tu utilises l'un des post auquel j'ai répondu contre moi? :o *touché en plein dedans*
Mais ton idées est simple mais efficace, je n'y avais pas pensé. Au lieu de vouloir stopper les événement en cours je les légumine le temps du dialogue. C'est ingénieux
Je vais tester ça une fois mon casse croute englouti, merci aminomad
Citation: Gros lol ce topic |
Faut bien poser des questions cons, on a pas tous les bons réflexes Mr le roi of the suisse
Edit: Ça fonctionne nickel Merci tout le monde !
|
Je suis Sou et c'est tout. |
| Chanter l'hyperchleuasme | Un autre piste, plus dangereuse, que je déconseillerais à un makeur débutant, c'est d'utiliser une condition en mode script avec la vérification suivante :
1
| $game_temp.message_text != nil |
Ceci s'active lorsqu'il y a un message à l'écran. Les events en mode parallèle peuvent donc avoir un comportement différent s'il y a un message affiché à l'écran (en général, une absence de comportement).
|
Es-tu une star ? | Kujira no Hara | Muma|Rope | Polaris 03 | La 7e porte |
Sou -
posté le 03/02/2016 à 22:15:47 (396 messages postés)
| On a jamais assez de munitions | Bah c'est parfait !
Ta super condition fait des merveilles en événement commun Mr le roi !
Même si celle de Aminomad faisait l'affaire, je bascule sur la tienne qui est encore meilleure.
Comme quoi ma question était pas si bête
Merci encore à tous.
|
Je suis Sou et c'est tout. |
Aminomad -
posté le 03/02/2016 à 22:33:49 (150 messages postés)
| |
|
The Lone Chameleon | Index du forum > Entraide > [Rpg Maker XP] Figer le mouvement d'un événement [resolu]
|
|
|