Bienvenue visiteur !
|
Statistiques
Liste des membres
Contact
Mentions légales
532 connectés actuellement
30732417 visiteurs depuis l'ouverture
2396 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
Messages postés par cortez Nombre de messages référencés sur Oniromancie (non supprimés): 470 Aller à la page: 1 2 3 4 5 6 7 8 9 10 11 12
Posté dans Forum - [RPG Maker XP] Problème chargement musiques |
Cortez -
posté le 01/08/2013 à 11:06:40. (524 messages postés) |
| Je suis sur que c'est le nom du fichier qui crée l'erreur.
Il me manque la syntaxe correcte pour les musiques.
Je suppose que c'est :
$game_system.me_play("Nom du fichier",volume, tempo)
Et si c'est pas correct, qu'un scripteur passe me filler un coup de
main.
(summon -> Zeus81)
|
Posté dans Forum - [RPG Maker XP] Problème chargement musiques |
Cortez -
posté le 31/07/2013 à 15:15:28. (524 messages postés) |
| Pour jouer un ME vide sur l'écran de titre :
Va sur le script "scene title" ou sur ton scene title custom.
Cherche les lignes :
1
2
3
4
5
| # Play title BGM
$game_system.bgm_play($data_system.title_bgm)
# Stop playing ME and BGS
Audio.me_stop
Audio.bgs_stop |
et ajoute en dessous de
1
| $game_system.bgm_play($data_system.title_bgm) |
la ligne suivante :
1
| $game_system.me_play("Nom du fichier") |
Le fichier sera lu puis arrêté avec la comande Audio.me stop
qui se trouve juste en dessous.
|
Posté dans Forum - [RPG Maker XP] Problème chargement musiques |
Cortez -
posté le 31/07/2013 à 10:47:54. (524 messages postés) |
| Je connait ce genre de problème.
C'est un lag qui est causé par Windows 7 et Vista.
Les codec de lectures audio se chargent une fois et cela explique
le délai sur rmXP.
Tu ne peux rien y faire, à part bien sur changer de version d'exploitation. Ou de logiciel, il me semble que sur VX et VXAce
le temps est moins long...
Astuce : fait un ME vide et joue le sur la première map.
Comme ça le chargement est fait sans être visible.
Ou alors fait le jouer sur l'écran titre (besoin de modif les scripts.)
il sera alors chargé à chaque début de partie et le joueur ne le
sentira pas.
|
Posté dans Forum - Questions idiotes sur RM [PAS Script] |
Cortez -
posté le 28/07/2013 à 21:56:30. (524 messages postés) |
| C'est pas HS, c'est tres bien et pas du tout intuitif sur Ace avec
les charas minuscules on a tendance à ne pas y penser.
Remarque un chara de 320x240 pixel c'est assez énorme !
|
Posté dans Forum - [RPG Maker VX Ace] Comment mettre de plus grands battlers animés? [résolu] |
Cortez -
posté le 28/07/2013 à 21:53:22. (524 messages postés) |
| En effet olec regarder le script c'est la chose la plus utile, encore
faut-il le comprendre...
Je commence à bien piger les scripts donc j'ai tout de suite vu le
truc, mais cela reste assez opaque pour les autres d'où les
demandes d'aides. ^^
Là encore c'est simple, mais des fois il faut tout lire pour trouver.
Et la barrière de la langue anglaise est assez dure.
Paleofan pense a modifier le titre du sujet, ajoute [Résolu]
si tu n'a plus de soucis avec tes battlers.
|
Posté dans Forum - [RPG MAKER VX ACE] Besoin d'aide pour sauvegarde |
Cortez -
posté le 28/07/2013 à 21:42:08. (524 messages postés) |
| Oups mes propos ont été mal interprétés.
Quand je parle de débutant je ne parle pas de toi, ni de Lucas mais
de l'ensemble des makeurs débutant sur leur 1er projet.
En "général" (et j'en faisais parti lorsque j'était débutant.) on bave
sur la toute puissance des script et on à tendance à en utiliser à
tour de bras. (mon 1er projet RTP en comptait 35)
Et vu qu'on y connait rien et bien on galère pour tout faire et cela
peut entrainer des bugs. On pleure alors dans toutes les sections
d'aides afin de trouver une solution à notre orgie de script.
Donc je vais replacer mes propos correctement (sans melon garanti)
Je lui ai proposé cette solution toute bête (et fonctionnelle) afin
qu'il puisse tout de même jouer à son jeu en mode test et pouvoir
sauvegarder sa partie sans devoir retoucher les scripts.
De plus si il change son système de menu par un custom, il va y
avoir plantage ! Du coup il va devoir redemander de l'aide pour ça.
Personnellement je trouve ça plus pratique. Maintenant il est
possible que je me trompe et qu'il s'y connaisse un peu en script.
Au quel cas mon aide lui est inutile.
Mes aides sont des couteaux-suisses qui sont valables quelque
soit les script ajoutés et qui sont compréhensibles par le débutant.
Dans tous les cas, je fait du support dans cette section car j'aime
vraiment aider les gens et je milite contre l'utilisation des script
pour des choses bêtes que l'on peut, avec un peu d'aide et de
travail, obtenir par évent.
ET je fini sur un autre point,j'ai des compétences, et je les met
au service des autres, ce que j'espère c'est de ne pas être snob
et hautain envers les autres, cas c'est tout ce que je ne suis pas.
Je dis cela sans arrière pensée et en toute franchise, je hais les
personnes imbues de leur personnes qui flattent leur égo en
bashant les autres.
Il m'est arrivé 1 ou 2 fois de monter le ton contre des personnes
qui justement se pensaient parfaites et donnaient des leçons.
Mais je refuse de faire cela sur les makeurs que j'apprécient.
Voilà c'est humblement et en toute amitié (si vous voulez) que je
m'excuse pour les propos qui ont blessé alors que ce n'était pas
leur but. (ça fait un long pavé ça )
|
Posté dans Forum - Questions idiotes sur RM [PAS Script] |
Cortez -
posté le 28/07/2013 à 21:20:14. (524 messages postés) |
| Pour changer le ton des images, il faut le faire manuellement avec
la commande "changer le ton de l'image" (existe sur Xp donc Ace
devrais l'avoir.)
Certes c'est chiant mais c'est faisable.
|
Posté dans Forum - [RPG MAKER VX ACE] Besoin d'aide pour sauvegarde |
Cortez -
posté le 28/07/2013 à 14:31:02. (524 messages postés) |
| C'est ce qui m'a fait douté aussi sur le coup, les 2 demandes sont
contradictoires, donc j'ai quand même proposé ma méthode.
A partir de là l'un de nous à raison, mais je m'en fout de savoir qui.
Du moment que j'aide quelqu'un moi ça me va. (le demandeur ou
un autre qui lis ce sujet)
|
Posté dans Forum - Inexistence |
Cortez -
posté le 28/07/2013 à 14:12:43. (524 messages postés) |
| J'ai une remarque concernant le jeu.
On voit lors de ta vidéo, le héro frapper les bloc comme le plombier
moustachu et à chaque fois apparait un pop-screen qui indique quel
objet est obtenu. Il me semble plus naturel de faire pop l'item sous
forme d'icone au dessus du bloc (éventuellement ajouter le nom).
Parce que comme ça, je trouve ce système lourd surtout si il est
utilisé de manière récurrente.
Ou alors comme dans LoZ avec un jingle-screen + description pour
chaque item mais seulement si il est nouveau (sinon un simple
pop-icon suffit.)
C'est un détail mais cela impacte grandement la jouabilité d'un jeu
de plateforme. Pour le reste rien à redire, le menu est propre et
ergonomique.
|
Posté dans Forum - [RPG MAKER VX ACE] Besoin d'aide pour sauvegarde |
Cortez -
posté le 28/07/2013 à 14:04:39. (524 messages postés) |
| J'ai lu sa demande :
Citation: Est-ce que il y a un moyen pour que le joueur ne puisse pas sauvegarde depuis le menu ?
Par exemple faire une stèle pour sauvegarder. |
Donc pour moi me pas sauvegarder ne signifie pas enlever l'option
du menu.
Mais on ne va pas en débattre, seul lucas1758 sais ce qu'il veut.
(Même si son dernier message met le doute.)
|
Posté dans Forum - [RPG MAKER VX ACE] Besoin d'aide pour sauvegarde |
Cortez -
posté le 28/07/2013 à 12:06:15. (524 messages postés) |
| Ou alors une ligne d'évent :
"interdire les sauvegardes"
Placé dans un évent en processus parallèle sur la map ou le héros
commence le jeu.
Et puis les évent de tes points de sauvegarde :
"acces sauvegarde" comme l'a dit Joke.
(Pourquoi tous les makeurs débutant veulent faire en script se
qui est faisable en évent ?)
|
Posté dans Forum - [RPG Maker VX Ace] Comment mettre de plus grands battlers animés? [résolu] |
Cortez -
posté le 28/07/2013 à 11:55:01. (524 messages postés) |
| Citation: c'est du à la taille du personnage |
1
| 14. Credits - Information about the graphic. (Not shown in game) |
Et ben non ! Le script découpe les images selon leur nombre de ligne.
Mais les charset de Holder ont une ligne 14 qui sert de crédit (non affiché)
Regarde la ligne du script :
1
2
3
4
| # This is how many rows on poses there are in a default spritesheet.
# The height of each row is determined by dividing the animation
# bitmap height by this.
ANIMATION_ROWS = 14 |
Ajoute donc une 14e ligne à ton charset. (vide puisque inutilisé.)
|
Posté dans Forum - [RPG Creator(un genre de rpg maker)] DreamLand MMO a besoin de vous!!! |
Cortez -
posté le 24/07/2013 à 22:35:32. (524 messages postés) |
| Et en plus il ne comprend pas ...
Désolé de te dire ça, mais aucun makeur de talent
n'acceptera de travailler avec toi en lisant la présentation.
(tu n'as même pas choisi un logiciel de développement !)
De plus avant de monter une team, il faut montrer ses skills
personnels afin de prouver qu'on peut passer plus de 5min
les doigts hors de son c**.
Donc soit tu met tes futurs recrues en confiance avec un
étalage de tes compétences personnelles, soit ton
recrutement va couler.
Ton post fait sérieusement glandeur qui fait bosser les
autres. (typiquement un level designer et un scénariste)
Tout le monde peut s'improviser directeur de jeu. Mais rare
sont les vrais talent capable de soutenir un projet viable.
Enfin, les makeurs qui ont du talent, sont souvent pris par
leur propre jeu, et n'ont pas le temps de bosser sur un
autre projet. Donc au final il va falloir commencer le jeu
seul et recruter petit à petit.
Voilà j'ai fini de critiquer donner mon avis.
N'y vois rien de personnel, c'est juste la cruelle vérité.
"Aide toi et le ciel t'aidera."
|
Posté dans Forum - [VX Ace] Afficher un score en image |
Cortez -
posté le 24/07/2013 à 19:05:11. (524 messages postés) |
| En fait Monos il faudrais faire une compil pour débutant.
Car la majorité des demandes de makeurs débutants on tous en
commun la même solution :
Joke's tutos
(exception faite des "je n'y connait rien en script et j'ai pris le
script Bidule et il marche pas...")
Donc une compilation des demandes les plus courantes (FAQ)
avec les réponses adaptées permettait de les aider et leur
apprendre une base solide.
Je veux bien aider à créer cette FAQ.
|
Posté dans Forum - [RMXP] Sentinelles la quête du temps |
Cortez -
posté le 18/07/2013 à 22:40:58. (524 messages postés) |
| Salut Delta, je te propose ma vision du saloon, et on en discute par
MP. (je t'ai fait la porte en mode western.)
Enfin voilà je pense plus à quelque chose de sombre et de ultra
éclairé au dehors.
(des lumières pour les fenêtre et un fog + ton d'écran.)
|
Posté dans Forum - [RPG Maker VX ACE] Probléme script lumière |
Cortez -
posté le 18/07/2013 à 21:52:03. (524 messages postés) |
| Copie / colle ton script afin que l'on voie d'où vient le problème.
(c'est quasi-sur que c'est le script, mais bizarrement à chaque fois
que je dis ça, je me plante !)
|
Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!! |
Cortez -
posté le 16/07/2013 à 19:07:54. (524 messages postés) |
| Réponse 1 :
Le caractère en question est surement celui ci '[]' c'est une sorte de
cube avec des contours fins. Il est présent lors d'une conversion
entre les formats jap et eng. (certains en ont lorsqu'ils choisisent le nom de leur personnage.)
C'est un caractère qui correspond à un espace, donc invisible.
Réponse 2 :
De mon niveau faible je pense que seul
suffit, le tout est de bien respecter la syntaxe du nom de l'ancienne méthode.
|
Posté dans Forum - Questions idiotes sur RM [PAS Script] |
Cortez -
posté le 16/07/2013 à 18:53:51. (524 messages postés) |
| Dans l'onglet "Tileset" tu as plusieurs listes déroulantes, ouvre la
première pour choisir les graphismes du tileset.
Il ne faut pas confondre l'importation de ressource (graphismes) et
la création d'un tileset dans la base de donnée.
Mais il faut choisir un graphisme du dossier tileset afin de créer un
nouveau tileset utilisable pour faire des maps.
Pour info tu importes une ressource dans un dossier (Tileset) mais le
tileset de la base de donnée est contenu dans un fichier .rvxdata
Nommé lui aussi Tileset ...
|
Posté dans Forum - [Ace] Monnaie complexe |
Cortez -
posté le 16/07/2013 à 18:44:24. (524 messages postés) |
| Alors si ça marche, il faut modifier chaque zone de la même manière :
Le script définitif
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
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
| =begin
#===============================================================================
# Spike's Engine - Monetary System
#
# Version: 1.01
# Author: Chris Barnett
# Date: March 26th, 2012
# Credit: Give credit where credit is due <img src='http://www.rpgmakervxace.net/public/style_emoticons/<#EMO_DIR#>/smile.png' class='bbc_emoticon' alt=':)' />
#===============================================================================
# Description:
#
# Ce script permet l'affichage de la monnaie du jeu sous la forme suivante :
# Platine / Or / Argent / Bronze
# Cela ne change que l'affichage à l'aide d'icones.
#===============================================================================
# Instructions:
#
# Placez ce script au dessus de Main et au dessous de tous les autres.
# Si vous voulez l'utiliser avec le script "Modern Algebra's Special Message Codes"
# Il faut alors placer ce script au dessus de celui-ci.
#
# Utilisation
# Vous devez ajouter les icones de chaque devise dans votre iconset.
# L'ordre de placement est important, le script utilise un ordre séquentiel
# Du plus cher (platine) au moins cher. (bronze)
# Les icones doivent se suivre sur la même ligne dans l'iconset.
#
# Dans le script vous devez choisir l'icone représentant la devise la plus faible.
#
# Pour l'utiliser avec le script "Modern Algebra's Special Message Codes", copiez
# les lignes suivantes dans la section "icons" de "convert_escape_characters"
#
result.gsub!(/\iSMC/i) { "\i\[#{::SPIKE::GOLD::ICON}\]" rescue "" }
result.gsub!(/\iSMS/i) { "\i\[#{::SPIKE::GOLD::ICON-1}\]" rescue "" }
result.gsub!(/\iSMG/i) { "\i\[#{::SPIKE::GOLD::ICON-2}\]" rescue "" }
result.gsub!(/\iSMP/i) { "\i\[#{::SPIKE::GOLD::ICON-3}\]" rescue "" }
#
# Et pour faire apparaitre les icones dans un message utilisez les lignes suivantes.
#
# \iSMC Pour le Bronze
# \iSMS Pour l'Argent
# \iSMG Pour l'Or
# \iSMP Pour le Platine
#
# NOTE!!! Si vous avez des soucis avec cette partie du script
# veuillez me contacter directement, je me ferais une joie de
# vous aidez.
#
#===============================================================================
# Bug connus :
#
# Incompatibilité avec le script "Yanfly's Ace Save Engine"
#
#===============================================================================
=end
$imported = {} if $imported.nil?
$imported["SE-Money"] = true
module SPIKE
module GOLD
BATTLE_ALIGN = 1 # Alignement vers la droite dans la fenêtre de loot des combats.
ICON_POS = 4 # Augmentez la valeur pour déplacer les icones vers la droite, ou diminuez pour déplacer à gauche.
TEXT_POS = 0 # Augmentez la valeur pour déplacer le texte vers la droite, ou diminuez pour déplacer à gauche .
OFFSET = -33 # Ecartement des icones, haute valeurs. rapprochent les icones, valeur plus petites les éloignent.
ICON = 191 # L'ID de l'icone de la plus faible devise
HEIGHT = 0 # Augmentez la valeur pour déplacer les icones vers le haut, ou diminuez pour déplacer vers le bas.
DEVISE = 3 # Maximum de devise du jeu (3 pour Or, Argent, Bronze)
DEVISE = DEVISE - 1 # Ne pas toucher !
end
end
class Window_Base < Window
def draw_currency_value(value, unit, x, y, width)
taux = 29 # taux initial en cuivre
value *= -1 if value < 0
pos = ::SPIKE::GOLD::ICON_POS
for i in 0..2
if taux != 1 # Formule d'origine si le taux est différent de 1.
change = value % taux
value = value / taux
else # Modifie la formule pour un taux de 1 car modulo 1 = 0
change = value
value = value / taux
end
draw_icon(SPIKE::GOLD::ICON - i,width + pos + SPIKE::GOLD::OFFSET, y - SPIKE::GOLD::HEIGHT)
draw_text(x + SPIKE::GOLD::TEXT_POS, y, width + pos, line_height, change, 2)
pos += ::SPIKE::GOLD::OFFSET
if taux == 29 # si le taux en cuivre est déjà fait
taux = 17 # Donne le taux en argent (17)
else # Le taux en argent est déjà fait
taux = 1 # Donne le taux en Or (1)
end # fin condition
end
end
end
class Game_Party < Game_Unit
def max_gold
return 99999999
end
def gain_gold(amount)
@gold = [[@gold + amount, 0].max, max_gold].min
end
def gold
return @gold
end
end
class Window_ShopBuy < Window_Selectable
def draw_currency_value(value, unit, x, y, width)
taux = 29 # taux initial en cuivre
value *= -1 if value < 0
pos = SPIKE::GOLD::ICON_POS
for i in 0..2
if taux != 1 # Formule d'origine si le taux est différent de 1.
change = value % taux
value = value / taux
else # Modifie la formule pour un taux de 1 car modulo 1 = 0
change = value
value = value / taux
end
if change != 0
draw_icon(SPIKE::GOLD::ICON - i,width + pos + SPIKE::GOLD::OFFSET, y - SPIKE::GOLD::HEIGHT)
draw_text(x + SPIKE::GOLD::TEXT_POS, y, width + pos, line_height, change, 2)
pos += SPIKE::GOLD::OFFSET
if taux == 29 # si le taux en cuivre est déjà fait
taux = 17 # Donne le taux en argent (17)
else # Le taux en argent est déjà fait
taux = 1 # Donne le taux en Or (1)
end # fin condition
end
end
end
def draw_item(index)
item = @data[index]
rect = item_rect(index)
draw_item_name(item, rect.x, rect.y, enable?(item))
draw_currency_value(price(item), Vocab::currency_unit, rect.x + 4, rect.y, contents.width - SPIKE::GOLD::ICON_POS - 8)
end
end
class Window_ShopNumber < Window_Selectable
def draw_currency_value(value, unit, x, y, width)
taux = 29 # taux initial en cuivre
value *= -1 if value < 0
pos = SPIKE::GOLD::ICON_POS
for i in 0..2
if taux != 1 # Formule d'origine si le taux est différent de 1.
change = value % taux
value = value / taux
else # Modifie la formule pour un taux de 1 car modulo 1 = 0
change = value
value = value / taux
end
if change != 0
draw_icon(SPIKE::GOLD::ICON - i,width + pos + SPIKE::GOLD::OFFSET, y - SPIKE::GOLD::HEIGHT)
draw_text(x + SPIKE::GOLD::TEXT_POS, y, width + pos, line_height, change, 2)
pos += ::SPIKE::GOLD::OFFSET
if taux == 29 # si le taux en cuivre est déjà fait
taux = 17 # Donne le taux en argent (17)
else # Le taux en argent est déjà fait
taux = 1 # Donne le taux en Or (1)
end # fin condition
end
end
end
end
module BattleManager
def self.gain_gold
taux = 29 # taux initial en cuivre
if $game_troop.gold_total > 0
value = $game_troop.gold_total
result = ''
for i in 0..2
if taux != 1 # Formule d'origine si le taux est différent de 1.
change = value % taux
value = value / taux
else # Modifie la formule pour un taux de 1 car modulo 1 = 0
change = value
value = value / taux
end
if change != 0
if SPIKE::GOLD::BATTLE_ALIGN == 0
result = ('\i[' + (::SPIKE::GOLD::ICON - i).to_s + ']' + change.to_s + ' ') + result
else
result = (change.to_s + '\i[' + (::SPIKE::GOLD::ICON - i).to_s + '] ') + result
end
if taux == 29 # si le taux en cuivre est déjà fait
taux = 17 # Donne le taux en argent (17)
else # Le taux en argent est déjà fait
taux = 1 # Donne le taux en Or (1)
end # fin condition
end
end
$game_message.add('Found ' + result + '\.')
$game_party.gain_gold($game_troop.gold_total)
end
wait_for_message
end
end
# Enlevez les '#' pour rendre compatible le script "Yanfly's Ace Save Engine"
#class Window_FileStatus < Window_Base
# def draw_save_gold(dx, dy, dw)
# return if @header[:party].nil?
# draw_currency_value(@header[:party].gold.group.to_i, Vocab::currency_unit, + SPIKE::GOLD::ICON_POS, dy, contents.width - SPIKE::GOLD::ICON_POS - 8)
# end
#end
class Game_Interpreter; include SPIKE::GOLD;
end |
|
Posté dans Forum - [Ace] Monnaie complexe |
Cortez -
posté le 16/07/2013 à 15:47:25. (524 messages postés) |
| Correction apportées, teste et dis moi si c'est correct.
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
176
177
178
179
180
| =begin
#===============================================================================
# Spike's Engine - Monetary System
#
# Version: 1.01
# Author: Chris Barnett
# Date: March 26th, 2012
# Credit: Give credit where credit is due <img src='http://www.rpgmakervxace.net/public/style_emoticons/<#EMO_DIR#>/smile.png' class='bbc_emoticon' alt=':)' />
#===============================================================================
# Description:
#
# Ce script permet l'affichage de la monnaie du jeu sous la forme suivante :
# Platine / Or / Argent / Bronze
# Cela ne change que l'affichage à l'aide d'icones.
#===============================================================================
# Instructions:
#
# Placez ce script au dessus de Main et au dessous de tous les autres.
# Si vous voulez l'utiliser avec le script "Modern Algebra's Special Message Codes"
# Il faut alors placer ce script au dessus de celui-ci.
#
# Utilisation
# Vous devez ajouter les icones de chaque devise dans votre iconset.
# L'ordre de placement est important, le script utilise un ordre séquentiel
# Du plus cher (platine) au moins cher. (bronze)
# Les icones doivent se suivre sur la même ligne dans l'iconset.
#
# Dans le script vous devez choisir l'icone représentant la devise la plus faible.
#
# Pour l'utiliser avec le script "Modern Algebra's Special Message Codes", copiez
# les lignes suivantes dans la section "icons" de "convert_escape_characters"
#
result.gsub!(/\iSMC/i) { "\i\[#{::SPIKE::GOLD::ICON}\]" rescue "" }
result.gsub!(/\iSMS/i) { "\i\[#{::SPIKE::GOLD::ICON-1}\]" rescue "" }
result.gsub!(/\iSMG/i) { "\i\[#{::SPIKE::GOLD::ICON-2}\]" rescue "" }
result.gsub!(/\iSMP/i) { "\i\[#{::SPIKE::GOLD::ICON-3}\]" rescue "" }
#
# Et pour faire apparaitre les icones dans un message utilisez les lignes suivantes.
#
# \iSMC Pour le Bronze
# \iSMS Pour l'Argent
# \iSMG Pour l'Or
# \iSMP Pour le Platine
#
# NOTE!!! Si vous avez des soucis avec cette partie du script
# veuillez me contacter directement, je me ferais une joie de
# vous aidez.
#
#===============================================================================
# Bug connus :
#
# Incompatibilité avec le script "Yanfly's Ace Save Engine"
#
#===============================================================================
=end
$imported = {} if $imported.nil?
$imported["SE-Money"] = true
module SPIKE
module GOLD
BATTLE_ALIGN = 1 # Alignement vers la droite dans la fenêtre de loot des combats.
ICON_POS = 4 # Augmentez la valeur pour déplacer les icones vers la droite, ou diminuez pour déplacer à gauche.
TEXT_POS = 0 # Augmentez la valeur pour déplacer le texte vers la droite, ou diminuez pour déplacer à gauche .
OFFSET = -33 # Ecartement des icones, haute valeurs. rapprochent les icones, valeur plus petites les éloignent.
ICON = 191 # L'ID de l'icone de la plus faible devise
HEIGHT = 0 # Augmentez la valeur pour déplacer les icones vers le haut, ou diminuez pour déplacer vers le bas.
DEVISE = 3 # Maximum de devise du jeu (3 pour Or, Argent, Bronze)
DEVISE = DEVISE - 1 # Ne pas toucher !
end
end
class Window_Base < Window
def draw_currency_value(value, unit, x, y, width)
taux = 29 # taux initial en cuivre
value *= -1 if value < 0
pos = ::SPIKE::GOLD::ICON_POS
for i in 0..2
if taux != 1 # Formule d'origine si le taux est différent de 1.
change = value % taux
value = value / taux
else # Modifie la formule pour un taux de 1 car modulo 1 = 0
change = value
value = value / taux
end
draw_icon(SPIKE::GOLD::ICON - i,width + pos + SPIKE::GOLD::OFFSET, y - SPIKE::GOLD::HEIGHT)
draw_text(x + SPIKE::GOLD::TEXT_POS, y, width + pos, line_height, change, 2)
pos += ::SPIKE::GOLD::OFFSET
if taux == 29 # si le taux en cuivre est déjà fait
taux = 17 # Donne le taux en argent (17)
else # Le taux en argent est déjà fait
taux = 1 # Donne le taux en Or (1)
end # fin condition
end
end
end
class Game_Party < Game_Unit
def max_gold
return 99999999
end
def gain_gold(amount)
@gold = [[@gold + amount, 0].max, max_gold].min
end
def gold
return @gold
end
end
class Window_ShopBuy < Window_Selectable
def draw_currency_value(value, unit, x, y, width)
value *= -1 if value < 0
pos = SPIKE::GOLD::ICON_POS
for i in 0..2
change = value % 100
value = value / 100
if change != 0
draw_icon(SPIKE::GOLD::ICON - i,width + pos + SPIKE::GOLD::OFFSET, y - SPIKE::GOLD::HEIGHT)
draw_text(x + SPIKE::GOLD::TEXT_POS, y, width + pos, line_height, change, 2)
pos += SPIKE::GOLD::OFFSET
end
end
end
def draw_item(index)
item = @data[index]
rect = item_rect(index)
draw_item_name(item, rect.x, rect.y, enable?(item))
draw_currency_value(price(item), Vocab::currency_unit, rect.x + 4, rect.y, contents.width - SPIKE::GOLD::ICON_POS - 8)
end
end
class Window_ShopNumber < Window_Selectable
def draw_currency_value(value, unit, x, y, width)
value *= -1 if value < 0
pos = SPIKE::GOLD::ICON_POS
for i in 0..2
change = value % 100
value = value / 100
if change != 0
draw_icon(SPIKE::GOLD::ICON - i,width + pos + SPIKE::GOLD::OFFSET, y - SPIKE::GOLD::HEIGHT)
draw_text(x + SPIKE::GOLD::TEXT_POS, y, width + pos, line_height, change, 2)
pos += ::SPIKE::GOLD::OFFSET
end
end
end
end
module BattleManager
def self.gain_gold
if $game_troop.gold_total > 0
value = $game_troop.gold_total
result = ''
for i in 0..2
change = value % 100
value = value / 100
if change != 0
if SPIKE::GOLD::BATTLE_ALIGN == 0
result = ('\i[' + (::SPIKE::GOLD::ICON - i).to_s + ']' + change.to_s + ' ') + result
else
result = (change.to_s + '\i[' + (::SPIKE::GOLD::ICON - i).to_s + '] ') + result
end
end
end
$game_message.add('Found ' + result + '\.')
$game_party.gain_gold($game_troop.gold_total)
end
wait_for_message
end
end
# Enlevez les '#' pour rendre compatible le script "Yanfly's Ace Save Engine"
#class Window_FileStatus < Window_Base
# def draw_save_gold(dx, dy, dw)
# return if @header[:party].nil?
# draw_currency_value(@header[:party].gold.group.to_i, Vocab::currency_unit, + SPIKE::GOLD::ICON_POS, dy, contents.width - SPIKE::GOLD::ICON_POS - 8)
# end
#end
class Game_Interpreter; include SPIKE::GOLD;
end |
|
Posté dans Forum - [Ace] Monnaie complexe |
Cortez -
posté le 16/07/2013 à 09:58:18. (524 messages postés) |
| Ce morceau de script remplace les lignes 72 à 84.
Pour la ligne qui bug, je voulais tester le remplacement de
en changeant la dernière valeur (3) par une variable paramétrable
dans le début du script.
Comme ça il aurait été plus simple de modifier le nombre de devise
du jeu.
Rappel :
for i in 0..3 -> 4 devises (platine à cuivre)
for i in 0..2 -> 3 devises (or à cuivre)
Pour éliminer le bug, remplace
SPIKE::GOLD:: DEVISE par 2
(aux lignes 76, 102, 124, 141)
J'ai également édité le script (la ligne OFFSET = -33 était en
commentaire.)
|
Posté dans Forum - [Ace] Monnaie complexe |
Cortez -
posté le 15/07/2013 à 21:30:29. (524 messages postés) |
| Logiquement le calcul et la conversion des devises se fait de la
plus petite à la plus grande (car un modulo donne le reste de la
division, donc la valeur la plus petite.)
Au pire tu fait un test et tu vérifie que 1 or = 17 argent = 493 cuivre
Oui, j'ai relu attentivement, et son problème est clair.
Edit : Essaye ça et dis moi si c'est correct (au niveau de la conversion et si ça plante pas )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| class Window_Base < Window
taux = 493 # taux initial en cuivre
def draw_currency_value(value, unit, x, y, width)
value *= -1 if value < 0
pos = ::SPIKE::GOLD::ICON_POS
for i in 0..SPIKE::GOLD::DEVISE
change = value % taux
value = value / taux
draw_icon(SPIKE::GOLD::ICON - i,width + pos + SPIKE::GOLD::OFFSET, y - SPIKE::GOLD::HEIGHT)
draw_text(x + SPIKE::GOLD::TEXT_POS, y, width + pos, line_height, change, 2)
pos += ::SPIKE::GOLD::OFFSET
if taux == 493 # si le taux en cuivre est déjà fait
taux /= 29 # Donne le taux en argent (17)
else # Le taux en argent est déjà fait
taux /= 17 # Donne le taux en Or (1)
end # fin condition
end
end
end |
|
Posté dans Forum - [Ace] Monnaie complexe |
Cortez -
posté le 15/07/2013 à 18:48:10. (524 messages postés) |
| Je ne comprend pas ...
Il marche au moins dans ton projet ?
As-tu besoin d'avoir la traduction des instructions car tu ne
comprend pas l'anglais ?
Le script fait ce que tu veux mais il rajoute le platine comme monnaie
la plus élevée, tu veux que le ce soit l'or et virer le platine ?
Je peut faire les deux parce que je suis sympa, mais pense à l'avenir
à expliquer clairement ton problème.
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
| =begin
#===============================================================================
# Spike's Engine - Monetary System
#
# Version: 1.01
# Author: Chris Barnett
# Date: March 26th, 2012
# Credit: Give credit where credit is due <img src='http://www.rpgmakervxace.net/public/style_emoticons/<#EMO_DIR#>/smile.png' class='bbc_emoticon' alt=':)' />
#===============================================================================
# Description:
#
# Ce script permet l'affichage de la monnaie du jeu sous la forme suivante :
# Platine / Or / Argent / Bronze
# Cela ne change que l'affichage à l'aide d'icones.
#===============================================================================
# Instructions:
#
# Placez ce script au dessus de Main et au dessous de tous les autres.
# Si vous voulez l'utiliser avec le script "Modern Algebra's Special Message Codes"
# Il faut alors placer ce script au dessus de celui-ci.
#
# Utilisation
# Vous devez ajouter les icones de chaque devise dans votre iconset.
# L'ordre de placement est important, le script utilise un ordre séquentiel
# Du plus cher (platine) au moins cher. (bronze)
# Les icones doivent se suivre sur la même ligne dans l'iconset.
#
# Dans le script vous devez choisir l'icone représentant la devise la plus faible.
#
# Pour l'utiliser avec le script "Modern Algebra's Special Message Codes", copiez
# les lignes suivantes dans la section "icons" de "convert_escape_characters"
#
result.gsub!(/\iSMC/i) { "\i\[#{::SPIKE::GOLD::ICON}\]" rescue "" }
result.gsub!(/\iSMS/i) { "\i\[#{::SPIKE::GOLD::ICON-1}\]" rescue "" }
result.gsub!(/\iSMG/i) { "\i\[#{::SPIKE::GOLD::ICON-2}\]" rescue "" }
result.gsub!(/\iSMP/i) { "\i\[#{::SPIKE::GOLD::ICON-3}\]" rescue "" }
#
# Et pour faire apparaitre les icones dans un message utilisez les lignes suivantes.
#
# \iSMC Pour le Bronze
# \iSMS Pour l'Argent
# \iSMG Pour l'Or
# \iSMP Pour le Platine
#
# NOTE!!! Si vous avez des soucis avec cette partie du script
# veuillez me contacter directement, je me ferais une joie de
# vous aidez.
#
#===============================================================================
# Bug connus :
#
# Incompatibilité avec le script "Yanfly's Ace Save Engine"
#
#===============================================================================
=end
$imported = {} if $imported.nil?
$imported["SE-Money"] = true
module SPIKE
module GOLD
BATTLE_ALIGN = 1 # Alignement vers la droite dans la fenêtre de loot des combats.
ICON_POS = 4 # Augmentez la valeur pour déplacer les icones vers la droite, ou diminuez pour déplacer à gauche.
TEXT_POS = 0 # Augmentez la valeur pour déplacer le texte vers la droite, ou diminuez pour déplacer à gauche .
OFFSET = -33 # Ecartement des icones, haute valeurs. rapprochent les icones, valeur plus petites les éloignent.
ICON = 191 # L'ID de l'icone de la plus faible devise
HEIGHT = 0 # Augmentez la valeur pour déplacer les icones vers le haut, ou diminuez pour déplacer vers le bas.
DEVISE = 3 # Maximum de devise du jeu (3 pour Or, Argent, Bronze)
DEVISE = DEVISE - 1 # Ne pas toucher !
end
end
class Window_Base < Window
def draw_currency_value(value, unit, x, y, width)
value *= -1 if value < 0
pos = ::SPIKE::GOLD::ICON_POS
for i in 0..SPIKE::GOLD::DEVISE
change = value % 100 #Taux de conversion fixe de 1 pour 100.
value = value / 100
draw_icon(SPIKE::GOLD::ICON - i,width + pos + SPIKE::GOLD::OFFSET, y - SPIKE::GOLD::HEIGHT)
draw_text(x + SPIKE::GOLD::TEXT_POS, y, width + pos, line_height, change, 2)
pos += ::SPIKE::GOLD::OFFSET
end
end
end
class Game_Party < Game_Unit
def max_gold
return 99999999
end
def gain_gold(amount)
@gold = [[@gold + amount, 0].max, max_gold].min
end
def gold
return @gold
end
end
class Window_ShopBuy < Window_Selectable
def draw_currency_value(value, unit, x, y, width)
value *= -1 if value < 0
pos = SPIKE::GOLD::ICON_POS
for i in 0..SPIKE::GOLD::DEVISE
change = value % 100
value = value / 100
if change != 0
draw_icon(SPIKE::GOLD::ICON - i,width + pos + SPIKE::GOLD::OFFSET, y - SPIKE::GOLD::HEIGHT)
draw_text(x + SPIKE::GOLD::TEXT_POS, y, width + pos, line_height, change, 2)
pos += SPIKE::GOLD::OFFSET
end
end
end
def draw_item(index)
item = @data[index]
rect = item_rect(index)
draw_item_name(item, rect.x, rect.y, enable?(item))
draw_currency_value(price(item), Vocab::currency_unit, rect.x + 4, rect.y, contents.width - SPIKE::GOLD::ICON_POS - 8)
end
end
class Window_ShopNumber < Window_Selectable
def draw_currency_value(value, unit, x, y, width)
value *= -1 if value < 0
pos = SPIKE::GOLD::ICON_POS
for i in 0..SPIKE::GOLD::DEVISE
change = value % 100
value = value / 100
if change != 0
draw_icon(SPIKE::GOLD::ICON - i,width + pos + SPIKE::GOLD::OFFSET, y - SPIKE::GOLD::HEIGHT)
draw_text(x + SPIKE::GOLD::TEXT_POS, y, width + pos, line_height, change, 2)
pos += ::SPIKE::GOLD::OFFSET
end
end
end
end
module BattleManager
def self.gain_gold
if $game_troop.gold_total > 0
value = $game_troop.gold_total
result = ''
for i in 0..SPIKE::GOLD::DEVISE
change = value % 100
value = value / 100
if change != 0
if SPIKE::GOLD::BATTLE_ALIGN == 0
result = ('\i[' + (::SPIKE::GOLD::ICON - i).to_s + ']' + change.to_s + ' ') + result
else
result = (change.to_s + '\i[' + (::SPIKE::GOLD::ICON - i).to_s + '] ') + result
end
end
end
$game_message.add('Found ' + result + '\.')
$game_party.gain_gold($game_troop.gold_total)
end
wait_for_message
end
end
# Enlevez les '#' pour rendre compatible le script "Yanfly's Ace Save Engine"
#class Window_FileStatus < Window_Base
# def draw_save_gold(dx, dy, dw)
# return if @header[:party].nil?
# draw_currency_value(@header[:party].gold.group.to_i, Vocab::currency_unit, + SPIKE::GOLD::ICON_POS, dy, contents.width - SPIKE::GOLD::ICON_POS - 8)
# end
#end
class Game_Interpreter; include SPIKE::GOLD;
end |
Le script devrait fonctionner normalement et tu n'as que 3 icones.
Or Argent Cuivre/Bronze.
Seulement le taux de change entre l'Or et l'Argent et forcément
fixe 1 Or = 100 Argent
Et il en va de même pour le cuivre :
1 Argent = 100 Cuivre.
Il me semble très difficile de faire comme dans ton exemple des
valeurs asymétriques :
1 Or = 17 Argents = 493 Cuivres
(les taux de changes sont trop compliqués pour un joueur.)
De plus tous les script qui existent ne sont que cosmétiques c'est
l'affichage qui est modifié et non le système de monnaie.
C'est presque pareil mais il faut que tu le saches.
|
Posté dans Forum - [[Rpg maker XP]] Gestion du combat de base |
Cortez -
posté le 14/07/2013 à 16:39:14. (524 messages postés) |
| Les évènements de combats marchent (dialogue et autre)
Cependant dès que la condition de déclanchement est :
si pv monstre "machin01" < ou égal à XX %
<commande> forcer monstre "machin02" utiliser soin immédiatement
Le combat freeze et il est impossible de continuer je pense donc
que le monstre ne peux pas lancer la compétence puisque sa jauge
d'ATB n'est pas pleine.
De plus si je force l'action à se résoudre "à la place de sa prochaine
action." la commande est ignorée...
Il faut donc forcer le monstre à agir même si c'est pas son tour.
(se pencher sur le script Interpreter 7 pour modifier la commande
forcer action.)
Merci de ton aide.
|
Posté dans Forum - [[Rpg maker XP]] Gestion du combat de base |
Cortez -
posté le 12/07/2013 à 18:03:04. (524 messages postés) |
| Afin que tu ais plus de précision, mon problème se situe dans ce
morceau de script :
C'est une partie d'un script ATB, il utilise beaucoup d'Alias et de
redéfinition de méthode.
Et lors du jeu, il bloque la bataille dès qu'un évènement de combat
est déclenché.
Je me suis dit qu'en comprenant un peu mieux le code originel des
combats je pourrais en venir à bout, mais non...
Il manque une chose afin que les commandes évent soit fonction-
nelles, j'ai donc réécrit la def setup_battle_event et j'ai
placé un morceau d'update au bon endroit.
Les ajouts que j'ai fait ne fond pas planter le code mais cela ne
change rien à l'affaire.
T'aurais pas une idée ? (je suis certain que c'est ce script qui foire
car sans lui tout marche. Mais je tient absolument à l'utiliser.)
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
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
| #==============================================================================
# ■ Scene_Battle
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
include N01
#--------------------------------------------------------------------------
alias acbs_main_atb main
def main
turn_count_speed
@escape_ratio = 40
$game_temp.escape_count = 0
@escape_type, @escape_name = Escape_Type, Escape_Name
@input_battlers, @action_battlers = [], []
@input_battler, @action_battler = nil, nil
@escaped = @update_turn_end = @action_phase = false
acbs_main_atb
end
#--------------------------------------------------------------------------
alias acbs_start_atb start
def start
acbs_start_atb
add_bars
for battler in $game_party.actors + $game_troop.enemies
battler.turn_count = 0
battler.atb = 0
battler.atb_preset
battler.cast_action = nil
battler.cast_target = nil
battler.defense_pose = false
end
for actor in $game_party.actors
actor.atb = actor.max_atb - 1 if $preemptive
actor.atb = 0 if $back_attack
end
for enemy in $game_troop.enemies
enemy.atb = 0 if $preemptive
enemy.atb = enemy.max_atb - 1 if $back_attack
end
update_meters
end
#--------------------------------------------------------------------------
alias acbs_terminate_atb terminate
def terminate
acbs_terminate_atb
remove_bars
end
#--------------------------------------------------------------------------
def add_bars
@atb_meters = ATB_Meters.new if Meters
@atb_meters_enemy = ATB_Meters_Enemy.new if Enemy_Meter != 0 and Meters
@atb_bars = ATB_Bars.new if Bars
end
#--------------------------------------------------------------------------
def remove_bars
@atb_meters.dispose if Meters
@atb_bars.dispose if Bars
@atb_meters_enemy.dispose if Enemy_Meter != 0 and Meters
end
#--------------------------------------------------------------------------
alias acbs_update_atb update
def update
if @phase == 1
$game_temp.battle_main_phase = true
@actor_command_window.opacity = 0
@phase = 0
elsif @phase != 5
@phase = 0
end
@event_running = true if $game_system.battle_interpreter.running?
acbs_update_atb
if $game_system.battle_interpreter.running?
return
elsif @event_running
@status_window.refresh
@event_running = false
end
return $scene = Scene_Gameover.new if $game_temp.gameover
return update_phase5 if @phase == 5
@event_running = true if $game_system.battle_interpreter.running?
if @update_turn_end
turn_ending
@update_turn_end = false
end
if Input.press?(Escape_Input) and @escape_type > 0
if $game_temp.battle_can_escape
$game_temp.max_escape_count = update_phase2_escape_rate
$game_temp.escape_count += 2 unless @wait_on
@escaping = true
if !@help_window.visible and @escape_type == 1
@help_window.set_text('')
@help_window.set_text(Escape_Message, 1)
end
if @escape_type == 2
if @escape_atb_meters.nil?
@escape_atb_meters = Escape_Meters.new
@escape_meter_opacity = 0
@escape_atb_meters.visible = true
else @escape_atb_meters != nil
@escape_atb_meters.opacity = 15 * @escape_meter_opacity
@escape_meter_opacity = [@escape_meter_opacity + 1, 17].min
@escape_atb_meters.refresh
end
end
if $game_temp.escape_count >= $game_temp.max_escape_count
$game_temp.escape_count = 0
update_phase2_escape unless $game_party.all_dead?
end
else
@help_window.set_text(Cant_Escape_Message, 1) if @escape_type == 1
if @escape_type == 2
if @escape_atb_meters.nil?
@escape_atb_meters = Escape_Meters.new
@escape_meter_opacity = 0
@escape_atb_meters.visible = true
else @escape_atb_meters != nil
@escape_atb_meters.opacity = 15 * @escape_meter_opacity
@escape_meter_opacity = [@escape_meter_opacity + 1, 17].min
@escape_atb_meters.refresh
end
end
end
elsif @escape_type > 0
if @escaping
@escaping = false
@help_window.visible = false
end
$game_temp.escape_count = [$game_temp.escape_count - 1, 0].max unless @wait_on
if @escape_atb_meters != nil and $game_temp.escape_count == 0
@escape_atb_meters.opacity = 15 * @escape_meter_opacity
@escape_meter_opacity = [@escape_meter_opacity - 1, 0].max
if @escape_meter_opacity == 0
@escape_atb_meters.dispose
@escape_atb_meters = nil
end
end
@escape_atb_meters.refresh if @escape_atb_meters != nil
end
return if @escaped
atb_update
input_battler_update(false)
if @action_battlers[0] != nil && @action_battler.nil?
@action_battlers.flatten!
@action_battler = @action_battlers[0]
if @action_battler.dead?
@action_battler.atb = 0
@action_battler = nil
else
start_phase4
end
end
if @action_battler != nil && !@spriteset.effect?
@active_battler = @action_battler
update_phase4
end
end
#--------------------------------------------------------------------------
alias acbs_judge_atb judge
def judge
@end_battle = acbs_judge_atb
return @end_battle
end
#--------------------------------------------------------------------------
alias acbs_update_basic_atb update_basic
def update_basic
atb_update unless @battle_start
input_battler_update(true)
acbs_update_basic_atb
end
#--------------------------------------------------------------------------
def input_battler_update(basic)
for battler in $game_troop.enemies + $game_party.actors
if battler.atb_full? and battler != @action_battler and not
@action_battlers.include?(battler)
battler_turn(battler)
break if Wait_Act_End and not battler.actor?
end
end
if @input_battlers[0] != nil && @input_battler.nil? && !@wait_on
@input_battlers.flatten!
@input_battler = @input_battlers[0]
if @input_battler.current_action.forcing || @input_battler.restriction == 2 ||
@input_battler.restriction == 3
if @input_battler.restriction == 2 || @input_battler.restriction == 3
@input_battler.current_action.kind = 0
@input_battler.current_action.basic = 0
end
@input_battler.defense_pose = false
@action_battlers << @input_battler
@input_battlers.shift
@input_battler = nil
elsif @input_battler.inputable?
@actor_index = $game_party.actors.index(@input_battler)
@input_battler.current_action.clear
@input_battler.blink = true
else
@input_battler.atb_update
@input_battlers.shift
@input_battler = nil
end
end
if @input_battler != nil
@input_action = true if basic
@now_battler = @active_battler
@active_battler = @input_battler
@input_battler.defense_pose = false
phase3_setup_command_window if @actor_command_window.opacity == 0
update_phase3
@active_battler = @now_battler
@input_action = false if basic
end
for battler in $game_party.actors + $game_troop.enemies
if battler.dead? or not battler.exist?
@input_battlers.delete(battler)
@action_battlers.delete(battler)
end
end
end
#--------------------------------------------------------------------------
def battler_turn(battler)
battler.turn_count += 1
if battler.is_a?(Game_Actor)
if battler.inputable? and battler.cast_action.nil?
@input_battlers << battler
else
if battler.restriction == 2 || battler.restriction == 3
battler.current_action.kind = 0
battler.current_action.basic = 0
end
battler.defense_pose = false
@action_battlers << battler
end
else
battler.make_action
@action_battlers << battler
end
end
#==========================================================================
#Ajout de def Battle event Setup + update
#==========================================================================
#--------------------------------------------------------------------------
# * Battle Event Setup
#--------------------------------------------------------------------------
def setup_battle_event
# If battle event is running
if $game_system.battle_interpreter.running?
return
end
# Search for all battle event pages
for index in 0...$data_troops[@troop_id].pages.size
# Get event pages
page = $data_troops[@troop_id].pages[index]
# Make event conditions possible for reference with c
c = page.condition
# Go to next page if no conditions are appointed
unless c.turn_valid or c.enemy_valid or
c.actor_valid or c.switch_valid
next
end
# Go to next page if action has been completed
if $game_temp.battle_event_flags[index]
next
end
# Confirm turn conditions
if c.turn_valid
n = $game_temp.battle_turn
a = c.turn_a
b = c.turn_b
if (b == 0 and n != a) or
(b > 0 and (n < 1 or n < a or n % b != a % b))
next
end
end
# Confirm enemy conditions
if c.enemy_valid
enemy = $game_troop.enemies[c.enemy_index]
if enemy == nil or enemy.hp * 100.0 / enemy.maxhp > c.enemy_hp
next
end
end
# Confirm actor conditions
if c.actor_valid
actor = $game_actors[c.actor_id]
if actor == nil or actor.hp * 100.0 / actor.maxhp > c.actor_hp
next
end
end
# Confirm switch conditions
if c.switch_valid
if $game_switches[c.switch_id] == false
next
end
end
# Set up event
$game_system.battle_interpreter.setup(page.list, 0)
# If this page span is [battle] or [turn]
if page.span <= 1
# Set action completed flag
$game_temp.battle_event_flags[index] = true
end
return
end
end
#==========================================================================
# Fin de l'ajout
#==========================================================================
#--------------------------------------------------------------------------
def atb_update
@wait_on = wait_on
return if @wait_on
@atb_turn_count += 1 if Custom_Turn_Count == 2
if @atb_turn_count >= @abt_turn_speed
@update_turn_end = true
$game_temp.battle_turn += 1
turn_count_speed
for battler in $game_party.actors + $game_troop.enemies
battler.remove_states_auto if battler.exist?
end
#========================================================================
# Ajout d'update pour les event de combat
#========================================================================
if $game_system.battle_interpreter.running?
# Update interpreter
$game_system.battle_interpreter.update
# If a battler which is forcing actions doesn't exist
if $game_temp.forcing_battler == nil
# If battle event has finished running
unless $game_system.battle_interpreter.running?
# Rerun battle event set up if battle continues
unless judge
setup_battle_event
end
end
if @phase != 5
# Refresh status window
@status_window.refresh
end
end
end
# If battler forcing an action doesn't exist,
# and battle event is running
if $game_temp.forcing_battler == nil and
$game_system.battle_interpreter.running?
return
end
#========================================================================
# Fin de l'ajout
#========================================================================
#setup_battle_event # Désactivé car redondant
end
for battler in $game_party.actors + $game_troop.enemies
unless battler == @action_battler or
(@escaping and battler.actor? and @escape_type > 0)
battler.atb_update if battler.exist? and not battler.restriction == 4
end
end
update_meters
end
#--------------------------------------------------------------------------
def wait_on
return true if $game_system.wait_mode == 1 and (@skill_window != nil or @item_window != nil)
return true if $game_system.wait_mode == 0 and @input_battler != nil
return true if $game_system.action_wait and @action_battler != nil
return true if @force_wait or @battle_end or @escaped
return false
end
#--------------------------------------------------------------------------
def start_phase2
end
#--------------------------------------------------------------------------
def update_meters
@atb_meters.refresh if Meters
@atb_meters_enemy.refresh if Enemy_Meter != 0 and Meters
@atb_bars.refresh if Bars
end
#--------------------------------------------------------------------------
def turn_count_speed
@atb_turn_count = @abt_turn_speed = 0
case Custom_Turn_Count
when 0
for battler in $game_party.actors + $game_troop.enemies
@abt_turn_speed += 1 if battler.exist?
end
when 1
@abt_turn_speed = Action_Turn_Count
when 2
@abt_turn_speed = Time_Tunr_Count
end
end
#--------------------------------------------------------------------------
def update_phase2_escape
windows_dispose
update_phase2_escape_type1 if @escape_type == 0
update_phase2_escape_type2 if @escape_type > 0
end
#--------------------------------------------------------------------------
def update_phase2_escape_type1
enemies_agi = enemies_number = 0
for enemy in $game_troop.enemies
if enemy.exist?
enemies_agi += enemy.agi
enemies_number += 1
end
end
enemies_agi /= [enemies_number, 1].max
actors_agi = actors_number = 0
for actor in $game_party.actors
if actor.exist?
actors_agi += actor.agi
actors_number += 1
end
end
actors_agi /= [actors_number, 1].max
@success = rand(100) < @escape_ratio * actors_agi / enemies_agi
if @success
@battle_end = true
$game_system.se_play($data_system.escape_se)
$game_system.bgm_play($game_temp.map_bgm)
battle_end(1)
else
@escape_ratio += 3
phase3_next_actor
end
end
#--------------------------------------------------------------------------
def update_phase2_escape_type2
@escaped = true
@party_command_window.visible = false
@party_command_window.active = false
@actor_command_window.visible = false if @actor_command_window != nil
@actor_command_window.active = false if @actor_command_window != nil
wait(1)
@battle_end = true
$game_system.se_play($data_system.escape_se)
$game_system.bgm_play($game_temp.map_bgm)
if @escape_atb_meters != nil
@escape_atb_meters.dispose
@escape_atb_meters = nil
end
battle_end(1)
end
#--------------------------------------------------------------------------
def update_phase2_escape_rate
enemies_agi = enemies_number = 0
for enemy in $game_troop.enemies
if enemy.exist?
enemies_agi += enemy.agi
enemies_number += 1
end
end
enemies_agi /= [enemies_number, 1].max
actors_agi = actors_number = 0
for actor in $game_party.actors
if actor.exist?
actors_agi += actor.agi
actors_number += 1
end
end
actors_agi /= [actors_number, 1].max
escape_rate = Escape_Time * enemies_agi / (actors_agi * Speed)
return escape_rate
end
#--------------------------------------------------------------------------
alias acbs_start_phase5_atb start_phase5
def start_phase5
if @input_battler != nil
@help_window.visible = false if @help_window != nil
windows_dispose
@input_battler.blink = false if @input_battler != nil
end
@atb_meters.opacity = 0 if Meter_Pos_Style == 3
update_meters
acbs_start_phase5_atb
end
#--------------------------------------------------------------------------
alias acbs_update_phase5_atb update_phase5
def update_phase5
windows_dispose
acbs_update_phase5_atb
end
#--------------------------------------------------------------------------
def phase3_setup_command_window
return if @escaped
if @active_battler != nil && @active_battler.cast_action != nil
@active_battler.blink = false
return
end
Audio.se_play('Audio/SE/' + Command_Up_SE)
@party_command_window.active = false
@party_command_window.visible = false
@actor_command_window.dispose if @actor_command_window != nil
s1 = $data_system.words.attack
s2 = $data_system.words.skill
s3 = $data_system.words.item
s4 = $data_system.words.guard
s5 = @escape_name
if @escape_type == 0
@actor_command_window = Window_Command.new(160, [s1, s2, s3, s4, s5])
else
@actor_command_window = Window_Command.new(160, [s1, s2, s3, s4])
end
@actor_command_window.x = COMMAND_WINDOW_POSITION[0]
@actor_command_window.y = COMMAND_WINDOW_POSITION[1]
@actor_command_window.back_opacity = COMMAND_OPACITY
@actor_command_window.z = 4500
@active_battler_window.refresh(@active_battler)
@active_battler_window.visible = BATTLER_NAME_WINDOW
@active_battler_window.x = COMMAND_WINDOW_POSITION[0]
@active_battler_window.y = COMMAND_WINDOW_POSITION[1] - 64
@active_battler_window.z = 4500
end
#--------------------------------------------------------------------------
alias acbs_start_enemy_select_atb start_enemy_select
def start_enemy_select
@teste = true
acbs_start_enemy_select_atb
@atb_meters.visible = true if Meters
update_meters unless Wait_Mode == 2
end
#--------------------------------------------------------------------------
alias acbs_update_phase3_skill_select_atb update_phase3_skill_select
def update_phase3_skill_select
@atb_meters.visible = false if Meters and Meter_Pos_Style < 3 and HIDE_WINDOW
acbs_update_phase3_skill_select_atb
update_meters unless Wait_Mode == 2
end
#--------------------------------------------------------------------------
alias acbs_update_phase3_item_select_atb update_phase3_item_select
def update_phase3_item_select
@atb_meters.visible = false if Meters and Meter_Pos_Style < 3 and HIDE_WINDOW
acbs_update_phase3_item_select_atb
update_meters unless Wait_Mode == 2
end
#--------------------------------------------------------------------------
alias acbs_start_actor_select_atb start_actor_select
def start_actor_select
acbs_start_actor_select_atb
@atb_meters.visible = true if Meters
update_meters unless Wait_Mode == 2
end
#--------------------------------------------------------------------------
alias acbs_start_skill_select_atb start_skill_select
def start_skill_select
acbs_start_skill_select_atb
@atb_meters.visible = false if Meters and Meter_Pos_Style < 3 and HIDE_WINDOW
update_meters unless Wait_Mode == 2
end
#--------------------------------------------------------------------------
alias acbs_end_skill_select_atb end_skill_select
def end_skill_select
acbs_end_skill_select_atb
@atb_meters.visible = true if Meters
update_meters unless Wait_Mode == 2
end
#--------------------------------------------------------------------------
alias acbs_start_item_select_atb start_item_select
def start_item_select
acbs_start_item_select_atb
@atb_meters.visible = false if Meters and Meter_Pos_Style < 3 and HIDE_WINDOW
update_meters unless Wait_Mode == 2
end
#--------------------------------------------------------------------------
alias acbs_end_item_select_atb end_item_select
def end_item_select
acbs_end_item_select_atb
@atb_meters.visible = true if Meters
update_meters unless Wait_Mode == 2
end
#--------------------------------------------------------------------------
def phase3_next_actor
@input_battler.blink = false
action_battler = @input_battlers.shift
@action_battlers << action_battler
command_input_cancel
@input_battler = nil
@actor_index = nil
@active_battler = nil
end
#--------------------------------------------------------------------------
def phase3_prior_actor
@input_battler.current_action.kind = 0
@input_battler.current_action.basic = 3
@input_battler.blink = false
action_battler = @input_battlers.shift
@action_battlers << action_battler
@input_battler = nil
@actor_index = nil
@active_battler = nil
windows_dispose
end
#--------------------------------------------------------------------------
alias acbs_update_phase3_atb update_phase3
def update_phase3
if cancel_command?
if can_act?
if [2, 3].include?(@input_battler.restriction)
@input_battler.current_action.kind = 0
@input_battler.current_action.basic = 0
end
@action_battlers << @input_battler
end
command_input_cancel
return
end
acbs_update_phase3_atb
end
#--------------------------------------------------------------------------
def cancel_command?
return false if @input_battler.nil?
return true if @input_battler.current_action.forcing
return true if [2, 3, 4].include?(@input_battler.restriction)
return true if not $game_party.actors.include?(@input_battler)
return false
end
#--------------------------------------------------------------------------
def can_act?
return true if @input_battler.current_action.forcing
return true if [2, 3].include?(@input_battler.restriction)
return false
end
#--------------------------------------------------------------------------
alias acbs_update_phase3_basic_command_atb update_phase3_basic_command
def update_phase3_basic_command
if Input.trigger?(Input::C)
case @actor_command_window.commands[@actor_command_window.index]
when @escape_name
if $game_temp.battle_can_escape == false
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
update_phase2_escape
return
end
end
if Input.trigger?(Input::UP) and @input_action
$game_system.se_play($data_system.cursor_se)
@actor_command_window.index -= 1
if @actor_command_window.index <= -1
@actor_command_window.index = @actor_command_window.commands_size - 1
end
return
end
if Input.trigger?(Input::DOWN) and @input_action
$game_system.se_play($data_system.cursor_se)
@actor_command_window.index += 1
if @actor_command_window.index >= @actor_command_window.commands_size - 1
@actor_command_window.index = 0
end
return
end
if Input.trigger?(Input::B)
$game_system.se_play($data_system.decision_se)
phase3_next_actor
return
end
if Input.trigger?(Input::A)
$game_system.se_play($data_system.decision_se)
@input_battler.passed = true
phase3_next_actor
return
end
acbs_update_phase3_basic_command_atb
end
#--------------------------------------------------------------------------
def command_input_cancel
windows_dispose
@input_battler.blink = false
@input_battlers.delete(@input_battler)
@input_battler = nil
end
#--------------------------------------------------------------------------
def windows_dispose
@help_window.visible = false if !@escaping
if @enemy_arrow != nil
@enemy_arrow.dispose
@enemy_arrow = nil
end
if @actor_arrow != nil
@actor_arrow.dispose
@actor_arrow = nil
end
if @actor_arrow != nil
@actor_arrow.dispose
@actor_arrow = nil
end
if @skill_window != nil
@skill_window.dispose
@skill_window = nil
end
if @item_window != nil
@item_window.dispose
@item_window = nil
end
if @enemy_arrow_all != nil
@enemy_arrow_all.dispose_multi_arrow
@enemy_arrow_all = nil
end
if @actor_arrow_all != nil
@actor_arrow_all.dispose_multi_arrow
@actor_arrow_all = nil
end
if @battler_arrow_all != nil
@battler_arrow_all.dispose_multi_arrow
@battler_arrow_all = nil
end
if @actor_command_window != nil
@actor_command_window.active = false
@actor_command_window.visible = false
@active_battler_window.visible = false
@actor_command_window.opacity = 0
end
@status_window.visible = true
end
#--------------------------------------------------------------------------
alias acbs_update_phase4_step1_atb update_phase4_step1
def update_phase4_step1
if @action_battlers.size == 0
@input_battlers.clear
@action_battlers.clear
@action_battler.atb = 0
@action_battler = nil
end
acbs_update_phase4_step1_atb
end
#--------------------------------------------------------------------------
alias acbs_update_phase4_step2_atb update_phase4_step2
def update_phase4_step2
@active_battler.defense_pose = false
if @active_battler.cast_action != nil
active_cast = @active_battler.cast_action
if active_cast.scope == 1 or active_cast.scope == 3 or active_cast.scope == 5
@active_battler.current_action.target_index = @active_battler.cast_target
end
if active_cast.is_a?(RPG::Skill)
@active_battler.current_action.kind = 1
@active_battler.current_action.skill_id = @active_battler.cast_action.id
elsif active_cast.is_a?(RPG::Item)
@active_battler.current_action.kind = 2
@active_battler.current_action.item_id = @active_battler.cast_action.id
end
end
for state in @active_battler.battler_states
@active_battler.remove_state(state.id) if state.extension.include?("ZEROTURNLIFT")
end
acbs_update_phase4_step2_atb
end
#--------------------------------------------------------------------------
alias make_skill_action_result_atb_n01 make_skill_action_result
def make_skill_action_result
skill = $data_skills[@action_battler.current_action.skill_id]
if @action_battler.cast_action == nil
@active_battler.cast_action = skill
@active_battler.cast_target = @active_battler.current_action.target_index
@cast_speed = skill.cast_speed(@active_battler)
@active_battler.cast_action = nil if @cast_speed == 0
@spriteset.set_stand_by_action(@active_battler.actor?, @active_battler.index)
return unless @cast_speed == 0
end
make_skill_action_result_atb_n01
@active_battler.cast_action = nil
end
#--------------------------------------------------------------------------
alias make_item_action_result_atb_n01 make_item_action_result
def make_item_action_result
item = $data_items[@action_battler.current_action.item_id]
if @action_battler.cast_action == nil
@active_battler.cast_action = item
@active_battler.cast_target = @active_battler.current_action.target_index
@cast_speed = item.cast_speed(@active_battler)
@active_battler.cast_action = nil if @cast_speed == 0
@spriteset.set_stand_by_action(@active_battler.actor?, @active_battler.index)
return unless @cast_speed == 0
end
make_item_action_result_atb_n01
@active_battler.cast_action = nil
end
#--------------------------------------------------------------------------
alias acbs_action_end_atb action_end
def action_end
acbs_action_end_atb
@active_battler.cast_action = nil
end
#--------------------------------------------------------------------------
def start_phase4
@phase4_step = 1
@action_phase = true
end
#--------------------------------------------------------------------------
alias acbs_update_phase4_step6_atb update_phase4_step6
def update_phase4_step6
acbs_update_phase4_step6_atb
@atb_turn_count += 1 unless Custom_Turn_Count == 2
@active_battler.atb = 0 unless @active_battler.passed
@active_battler.passed = false
@input_battlers.delete(@active_battler)
@action_battlers.delete(@active_battler)
@action_battler = nil
@action_phase = false
update_meters
judge
end
end |
|
Posté dans Forum - [Rpg maker Vx ace] Un joli portail de tp et un joli script qui foire ^^ |
Cortez -
posté le 11/07/2013 à 10:15:08. (524 messages postés) |
| Oui c'est vrai pour les conditions de hors zone c'est une erreur bête.
Mais sinon, le codage en évent c'est comme les script, il existe deux
méthodes, le codage à l'arrache qui fonctionne mais qui est pas
clair; et le codage optimisé qui permet une meilleure lecture et qui
exploite souvent des astuces. (ici c'est le changement d'apparence
par opacité.)
Quand on débute on fait le codage à l'arrache (c'est pas péjoratif,
moi aussi à mes débuts il fallait pas regarder de trop près.)
Et puis on s'améliore avec les tutos et l'expérience de codage.
(Les tutos de Joke's sont un exemple pour tous.)
Enfin je suis content que tu ais résolu ton problème et je peux te
donner d'autres conseils par mp si tu te retrouve bloqué sur un
autre évent.
|
Posté dans Forum - [Rpg maker Vx ace] Un joli portail de tp et un joli script qui foire ^^ |
Cortez -
posté le 10/07/2013 à 22:06:28. (524 messages postés) |
| Non !
Pas de sinon dans les conditions.
Pour faire plus simple 1 seule page par évent.
Je l'ai fait sur XP mais les commandes sont identiques sur VXAce.
Sur la map tu mets une apparence lumineuse pour le cercle.
Event en processus parallèle
Apparence "morceau de centre de cercle non-activé"
Et pour les 8 autres évent autour du centre tu copie colle la même
chose en retirant l'effet sonore.
|
Posté dans Forum - [[Rpg maker XP]] Gestion du combat de base |
Cortez -
posté le 10/07/2013 à 21:39:19. (524 messages postés) |
| Domaine concerné: [Script]
Logiciel utilisé: [Rpg maker XP]
Bonjour je viens vous poser des questions dans le but d'en apprendre plus sur
les scripts.
Je sais que les scripts Interpreter 1 à 7 gèrent les commandes en évent dans XP.
Question 1 :
Je que je souhaite savoir c'est quelle partie de ces scripts gèrent les commandes
des groupes de monstres ? (la partie évènementielle paramétrable)
Question 2 :
Quelle est la signification des fréquences de déclanchement de cette partie évent
des groupes ?
Question 3 : (en lien avec la Q1)
Quelle partie des Scene_Battle 1 à 4 vérifie et interprète les commandes d'évent
des groupes de monstres ?
Ces questions vont me permettre de corriger un bug sur des script qui ne gèrent
pas du tout ces commandes (cela m'empêche de créer des groupes de monstres
avec des stratégies.)
Edit 11 juillet :
Toujours personne ?
|
Posté dans Forum - [Rpg maker Vx ace] Un joli portail de tp et un joli script qui foire ^^ |
Cortez -
posté le 10/07/2013 à 21:24:29. (524 messages postés) |
| Pour le bruitage qui se répète pas :
- Tes commandes évent (les conditions)
-
- Jouer un effet sonore
- Début boucle
-
- Tes commandes évent (interrupteur + attendre)
-
- Attendre 1 frames
- Teste à nouveau la position du héro.
- Tes conditions inversés (pour test si le joueur sort du cercle)
- Sortir boucle (si il est hors-zone on arrète la boucle)
- Fin condition
-
- Fin boucle
- Fin condition
Tu fait ça dans 1 seul évent (celui du milieux par exemple)
Et tu économise 1 évent. (mais pas ta santé mentale ^^)
|
Posté dans Forum - [RPG Maker VX Ace] Contenu de la fenêtre coupé dans le bas |
Cortez -
posté le 10/07/2013 à 09:31:03. (524 messages postés) |
| Juste une idée pour voir :
Ajoute +16
1
| rect.y = index / col_max * (item_height + standard_padding) + line_height + standard_padding +16 |
Parce qu'il me semble de mémoire que les fenetres sont toujours
plus grandes que leur contenu de 16 px environ afin de laisser la
place pour la flèche de défilement.
Ou alors ça peut provenir de la marge entre chaque faceset.
Dans ce cas il faut ajouter en hauteur de fenêtre :
marge x le nombre de ligne de faceset.
(je te dis ça car le faceset du bas fait 36 px de haut et les marges
fond 12x donc le faceset fait exactement 12x3 px)
Les deux solutions proposés ne sont que des pistes, mais ça peut
toujours mettre sur la voie.
|
Posté dans Forum - [VX] Lancer d'arme? |
Cortez -
posté le 09/07/2013 à 10:44:25. (524 messages postés) |
| En SBS, tu trouve sur le net des démo avec l'add-on Boomerang.
En ARPG, prend le XAS et le boomerang est déjà inclus.
En combat par défaut, une simple animation suffit.
En action contextuelle sur la map (cinématique ou autre) une
simple animation suffit.
|
Posté dans Forum - [RPG Maker VX Ace] Changer graphic evenement exterieur [Résolu] |
Cortez -
posté le 09/07/2013 à 10:40:40. (524 messages postés) |
| Tu sais te servir des pages d'évènement ? -> non
Donc ton évent qui change d'apparence, tu lui fait une 2e page
avec une apparence tileset. Et tu met dans les conditions de la
page (à gauche) interrupteur 001 activé.
Et ton évent 1 qui le fait changer d'apparence fait juste :
activer l'interrupteur 001.
Ou encore tu peux remplacer l'interrupteur par une variable.
Event 2 si variable A1 supérieure ou égale à 1.
Event 1 variable A1 rendre égale à 1.
Voilà, ça prend 3 sec à faire sans créer trouzemilles characters.
|
Posté dans Forum - [Rpg Maker VX] Afficher les objets trouvés/reçu sur la map |
Cortez -
posté le 06/07/2013 à 22:27:28. (524 messages postés) |
| Alors oublie ça et fait directement la suite du post.
En réalité je n'ai pas édité cette partie mais
$game_party.gain_item?
sert à rien dans l'évent que tu dois faire !
(Juste pour la petite histoire on l'utiliser comme ça
$game_party.gain_item? == true)
Donc continue avec ma modif de script et le codage en évent.
Et si l'insertion script
$game_screen.pictures[$game_variables[6]].show...
Ne marche pas, fait un screen de la fenêtre afficher une image pour
que je voie les champs possibles.(et que j'en déduise le nombre
d'argument dans la methode.)
| Aller à la page: 1 2 3 4 5 6 7 8 9 10 11 12
|
|
|