Bienvenue visiteur !
|
Statistiques
Liste des membres
Contact
Mentions légales
314 connectés actuellement
30945837 visiteurs depuis l'ouverture
1875 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
TheKald -
posté le 15/07/2013 à 17:53:37 (681 messages postés)
| Pikactus | Domaine concerné: Script Logiciel utilisé: Ace Salut,
Je cherche un moyen de crée une monnaie de ce genre
1 Or = 17 Argents = 493 Cuivres
J'ai cherché des scripts permettant de faire cela.
et j'ai trouvé ça.
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
| =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:
#
# This script displays currency values in terms of Copper, Silver, Gold, and
# Platinum coins. It doesn't actually change the way gold works in any way,
# only the way it is displayed.
#===============================================================================
# Instructions:
#
# Place this script above Main and below default scripts in the Script Editor.
# If you plan to integrate with Modern Algebra's Special Message Codes it
# would probably be wise to place this this script above it.
#
# You'll need to insert images for the coins into your IconSet resource. At
# the moment the script requires the coin's icon indices to be in sequential
# order, starting with the most valuable. I may unwrap the for loop if there
# seems to be a need to assign non sequential icon indices.
#
# You will then need to set ICON to the icon index of the least valuable coin.
#
# To integrate with Modern Algebra's Special Message Codes, Just paste
# the lines below into the icons section of 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 "" }
#
# To call up the icons in a message box use the following escape sequences.
#
# \iSMC for Copper
# \iSMS for Silver
# \iSMG for Gold
# \iSMP for Platinum
#
# NOTE!!! If you have any issues with this, please don't bother Modern Algebra
# about it. He already spent his time writing Special Message Codes and
# probably a fair amount of time answering questions about it. If you need
# assistance, please contact me directly. I am plenty willing to help.
#===============================================================================
# Known Bugs:
#
# A compatibility issue with Yanfly's Ace Save Engine has been reported
# but not yet confirmed. If you experience troubles, please let me know.
#===============================================================================
=end
$imported = {} if $imported.nil?
$imported["SE-Money"] = true
module SPIKE
module GOLD
BATTLE_ALIGN = 1 # Change to non 0 to push icons to the right when receiving loot in battle
ICON_POS = 4 # Increase to push icons right, decrease to pull left
TEXT_POS = 0 # Increase to push text right, decrease to pull left
OFFSET = -33 # Decrease to spread coins apart, increase to draw them closer
ICON = 191 # Change this to the icon index of the least valuable coin
HEIGHT = 0 # Increase to raise coins, decrease to lower
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..3
change = value % 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..3
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..3
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..3
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
# Uncomment for compatability with 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 |
Existe-il un moyen de l'adapter pour ma demande?
Merci d'avance : )
|
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.
|
Kisthune -
posté le 15/07/2013 à 19:46:15 (1227 messages postés)
| Oui c'est fait à l'arrache | En fait tu peux l'adapter toi même ton script.
Il suffit de repérer les lignes
1
2
| change = value % 100
value = value / 100 |
En changeant 100 par la valeur de ton taux de change.
Le tout étant appelé 4 fois à cause du for i in 0..3, suffit au choix de déclarer un array de longueur 3, l'utiliser à la place de la valeur 100 et changer en for i in 0..2, ou bien de copier coller 3 fois la suite d'instructions en changeant les valeurs 100.
Ça, c'est pour la partie affichage seulement !
Pour la partie rentrée/sortie d'argent, comme dit Cortez, le joueur ne verra jamais les valeurs utilisées par le logiciel, donc pas la peine de faire la conversion. Par contre, toi, lorsque tu équilibreras les coffres, les monstres ou les marchands (ou toute autre source de rentrée/sortie d'argent) il faut que tu gardes en tête ces conversions. Si tu veux par exemple qu'un coffre contienne pile poil 1 Argent, tu devras rentrer la valeur 493. (edit oui j'ai dit nawak pour la valeur)
Cortez > il est pourtant clair là son problème.
|
Reikon no Yume |
TheKald -
posté le 15/07/2013 à 20:17:03 (681 messages postés)
| Pikactus | Merci de votre aide Cortez et Kisthune.
je vais essayer de l'adapter grâce a vos explications.
Citation: Le tout étant appelé 4 fois à cause du for i in 0..3, suffit au choix de déclarer un array de longueur 3, l'utiliser à la place de la valeur 100 et changer en for i in 0..2, ou bien de copier coller 3 fois la suite d'instructions en changeant les valeurs 100. |
Donc appelé une fois par type de pièce?(or, argent etc...)
Mais dans quel ordre (Platine, Or, Argent, Cuivre)ou(Cuivre, Argent, Or, Platine)?
Désolé le ruby et moi ça fait 2 :/...
|
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 |
|
Zeus81 -
posté le 15/07/2013 à 21:53:08 (11071 messages postés)
| | or = total_cuivre / 29 / 17
argent = total_cuivre / 29 % 17
cuivre = total_cuivre % 29
Mais ouais tes taux de change sont chelou.
|
TheKald -
posté le 15/07/2013 à 22:10:36 (681 messages postés)
| Pikactus | Merci
att... j'ai du mal... c'est a ajouté au script? x)
Edit:
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#####(apparemment il y aurait un problème a cette ligne...)
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 |
|
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.)
|
TheKald -
posté le 16/07/2013 à 10:17:20 (681 messages postés)
| Pikactus | Je sais que je commence a être chiant mais
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
| =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
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..2
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
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 |
|
Karel -
posté le 16/07/2013 à 10:45:27 (0 messages postés)
| | Citation: 1 Or = 17 Argents = 493 Cuivres |
Tu fais un projet Harry Potter?
|
TheKald -
posté le 16/07/2013 à 11:01:53 (681 messages postés)
| Pikactus | Karel: Bien vu.
Et oui chez les sorciers le système monétaire est casse-couilles.
D'ailleurs normalement c'est
1 Gallion = 17 Mornilles = 493 Noises
Mais c’était plus facile d'expliquer avec or, argent, cuivre.
|
Dyeel -
posté le 16/07/2013 à 11:38:09 (200 messages postés)
| | Salut.
Pour ton dernier message d'erreur c'est un tout petit truc. Enlève la ligne 74 (taux =...) et réécris là sous le def qui est juste en dessous.
|
TheKald -
posté le 16/07/2013 à 12:57:21 (681 messages postés)
| Pikactus | Merci Dyeel ca marche.
mais
si
1 Or = 17 Argents = 493 Cuivres
alors
1 Argents = 29 Cuivres
Donc logiquement les cuivres montent jusqu’à 29 pour donner 1 argent
Or maintenant les cuivres montent jusqu’à 493 pour donner 1 argent
(Bon ça a la rigueur je peu le changer moi même...je crois )
Continuons...
Logiquement les argents montent jusqu’à 17 pour donner 1 or (soit 493 Cuivres )
Or maintenant les argents montent jusqu’à 17 pour donner 0 Or, 0 Argent, 0 Cuivre.
(La je me doute que le joueur possède bien de l'argent mais qu'il y a un problème au niveau de l'affichage)
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
| =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 = 493 # taux initial en cuivre
value *= -1 if value < 0
pos = ::SPIKE::GOLD::ICON_POS
for i in 0..2
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
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 |
|
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 |
|
TheKald -
posté le 16/07/2013 à 16:05:11 (681 messages postés)
| Pikactus | Oui, ça marche merci beaucoup.
Merci a vous tous!
Et surtout a toi Cortez pour avoir résolu mon problème.
|
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 |
|
TheKald -
posté le 16/07/2013 à 19:40:49 (681 messages postés)
| Pikactus | Bon bah merci encore une fois
| Index du forum > Entraide > [RESOLU] [Ace] Monnaie complexe
|
|
|