Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

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

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

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

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

485 connectés actuellement

29385115 visiteurs
depuis l'ouverture

5 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Eclipso

Kingdom Ultimate

RPG Maker VX

Tous nos partenaires

Devenir
partenaire



Messages postés par cortez
Nombre de messages référencés sur Oniromancie (non supprimés): 469

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 à 14:03:47. (523 messages postés)

En effet c'est pas $game_system puisque le son n'est pas
defini dans la base de donnée.

Donc :
Audio.me_play("001-Victory01", 0, 100)

Posté dans Forum - [RPG Maker XP] Problème chargement musiques

Cortez - posté le 01/08/2013 à 11:06:40. (523 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. (523 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 :

Portion de code : Tout sélectionner

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

Portion de code : Tout sélectionner

1
$game_system.bgm_play($data_system.title_bgm)



la ligne suivante :

Portion de code : Tout sélectionner

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. (523 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. (523 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. (523 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. (523 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 :sourit )

Posté dans Forum - Questions idiotes sur RM [PAS Script]

Cortez - posté le 28/07/2013 à 21:20:14. (523 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. (523 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. (523 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. (523 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. (523 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. (523 messages postés)

Citation:

c'est du à la taille du personnage



Portion de code : Tout sélectionner

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 :

Portion de code : Tout sélectionner

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 - [Scripts] Petites questions connes sur les SCRIPTS!!

Cortez - posté le 26/07/2013 à 16:23:07. (523 messages postés)

L'event extender fait ce que tu demande (et bien plus)

Le script : https://github.com/Funkywork/Scripts-rm/blob/master/XP/EventExtender_XP.rb

Les instruction (anglais) :
http://eventextender.gri.im/UK.html
Ne clique pas sur la version fr des instruction, ça marche plus.
(d'ailleurs si ils pouvaient remettre la page...)

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. (523 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. (523 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 - [RPG maker vx Ace] petits soucis

Cortez - posté le 19/07/2013 à 14:36:13. (523 messages postés)

Voilà : (je n'ai fait qu'ajouté l'iconset des RTP VXAce)

Spoiler (cliquez pour afficher)



Posté dans Forum - [RMXP] Sentinelles la quête du temps

Cortez - posté le 18/07/2013 à 22:40:58. (523 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.
image
(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. (523 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 à 21:17:48. (523 messages postés)

Du coup Zeus m'a appris un truc pour la réponse 1.

Comme quoi on apprend en permanence !

Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!!

Cortez - posté le 16/07/2013 à 19:07:54. (523 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

Portion de code : Tout sélectionner

1
alias nouveau ancien


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. (523 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. (523 messages postés)

Alors si ça marche, il faut modifier chaque zone de la même manière :

Le script définitif

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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. (523 messages postés)

Correction apportées, teste et dis moi si c'est correct.

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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. (523 messages postés)

Ce morceau de script remplace les lignes 72 à 84.

Pour la ligne qui bug, je voulais tester le remplacement de

Portion de code : Tout sélectionner

1
for i in 0..3


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. (523 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 :doute2)

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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. (523 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.

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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. (523 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 13/07/2013 à 11:48:12. (523 messages postés)

ok pourquoi pas, je vais faire plus simple, donner le lien de la
démo du système de combat. (il y a une dizaine de script mais
seul le script ATB est en cause.) Pas de panique, si tu essayes au
moins, je pourrais avoir quelques indices, puisque ton 1er post m'a
permis de cerner la partie que j'ai copié/collé.

http://www.gdunlimited.net/ajax.php/manager/download/script/436/enu-sbs-tanketai-xp-1/.zip

Et si tu veux test, il faut que tu places un évent de combat pour le
groupe de fantôme (moi j'ai crée un système pour qu'ils de soignent
entre-eux)

Posté dans Forum - [[Rpg maker XP]] Gestion du combat de base

Cortez - posté le 12/07/2013 à 18:03:04. (523 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.)

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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. (523 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. (523 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é"
image

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. (523 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] Contenu de la fenêtre coupé dans le bas

Cortez - posté le 10/07/2013 à 21:27:12. (523 messages postés)

Mais de rien, ça fait plaisir de voir un problème résolu :)

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. (523 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. (523 messages postés)

Juste une idée pour voir :

Ajoute +16

Portion de code : Tout sélectionner

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. (523 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. (523 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. (523 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.)

Posté dans Forum - [Rpg Maker VX] Afficher les objets trouvés/reçu sur la map

Cortez - posté le 06/07/2013 à 15:32:13. (523 messages postés)

Attention ! je viens de corriger le script et le codage event !
Il faut que tu F5 la page afin de voir mes changements.

Aller à la page: 1 2 3 4 5 6 7 8 9 10 11 12

Haut de page

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

Plan du site

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