[XP] AMK Currencies - Changement de monnaie
2 participants
Page 1 sur 1
[XP] AMK Currencies - Changement de monnaie
AMK Currencies
J'avais fait deux versions d'un script de changement de monnaies il y a longtemps, remplis de bugs.
J'ai tout recommencé du début, en fusionnant les fonctionnalités des deux anciennes versions (taux de change et monnaies indépendantes).
Pour résumer, imaginons que dans votre jeu, les héros traversent des pays ennemis, où il est probable que la monnaie ne soit pas la même.
Ce script permet d'avoir des monnaies indépendantes les unes des autres (deux stocks différents) ou d'adapter automatiquement l'argent que vous portez sur vous et de le convertir à un taux de change que vous pouvez configurer.
Plus de détails en bas.
Le script a été testé et normalement, tout marche.
Instructions
-Configuration des monnaies
Le taux est en fait le facteur de la muiltiplication. Ici, il faut deux unités de la monnaie de base pour avoir un Rubis et une unité de la monnaie de base donne 2 Yaourts.
(Par conséquent, on peut affirmer avec certitude qu'un yaourt coûte un quart de rubis...)
-Changer de monnaie
Insérez le code suivant dans un événement :
Script AMK Currencies
J'avais fait deux versions d'un script de changement de monnaies il y a longtemps, remplis de bugs.
J'ai tout recommencé du début, en fusionnant les fonctionnalités des deux anciennes versions (taux de change et monnaies indépendantes).
Pour résumer, imaginons que dans votre jeu, les héros traversent des pays ennemis, où il est probable que la monnaie ne soit pas la même.
Ce script permet d'avoir des monnaies indépendantes les unes des autres (deux stocks différents) ou d'adapter automatiquement l'argent que vous portez sur vous et de le convertir à un taux de change que vous pouvez configurer.
Plus de détails en bas.
Le script a été testé et normalement, tout marche.
Instructions
-Configuration des monnaies
- Code:
CURRENCIES = [
["Rubis", 0.5],
["Yaourts", 2],
["Or"],
]
- Code:
["Monnaie"],
- Code:
["Monnaie", Taux],
Le taux est en fait le facteur de la muiltiplication. Ici, il faut deux unités de la monnaie de base pour avoir un Rubis et une unité de la monnaie de base donne 2 Yaourts.
(Par conséquent, on peut affirmer avec certitude qu'un yaourt coûte un quart de rubis...)
-Changer de monnaie
Insérez le code suivant dans un événement :
- Code:
change_currency(Nom de la monnaie)
Script AMK Currencies
- Code:
#==============================================================================
# ■ AMK Currencies 1.0
#------------------------------------------------------------------------------
# Permet d'avoir plusieurs monnaies
#------------------------------------------------------------------------------
# Fait par Siegfried pour Legacy of Judge : Veil of Oblivion
#------------------------------------------------------------------------------
# Ce script provient de Saleth Empire
#------------------------------------------------------------------------------
# Fonctionnalités
# -Plusieurs monnaies
# -Taux de change
#------------------------------------------------------------------------------
# Instructions
# Configurez vos monnaies dans le tableau plus bas, puis, par appel
# de script, insérez le code :
# change_currency("Nom de la monnaie")
#==============================================================================
#==============================================================================
# □ Currencies_Config
#==============================================================================
module Currencies_Config
#--------------------------------------------------------------------------
# ● Liste des monnaies
# Nom, taux (sans taux, la monnaie est une monnaie indépendante)
# La monnaie de référence est celle qui est enregistrée dans l'onglet
# Système de la base de données.
# Une monnaie indépendante est une monnaie qui ne participe pas au
# système de change.
#--------------------------------------------------------------------------
CURRENCIES = [
["Rubis", 0.5],
["Yaourts", 2],
["Or"],
["Cristaux"],
]
end
#==============================================================================
# ● Méthode de changement de monnaie
#==============================================================================
def change_currency(name)
if $data_system.words.gold == $game_party.reference_currency
$game_party.reference_gold = $game_party.gold
end
if name == $game_party.reference_currency
table = Currencies_Config::CURRENCIES
for i in 0...table.size
if table[i][0] == $data_system.words.gold
if table[i][1] != nil
# Monnaie avec cours
$game_party.reference_gold = ($game_party.gold / table[i][1]).to_i
else
# Monnaie sans cours
for j in 0...$game_party.currencies.size
if $game_party.currencies[j][0] == $data_system.words.gold
$game_party.currencies[j][1] = $game_party.gold
end
end
end
end
end
$game_party.gold = $game_party.reference_gold
else
table = Currencies_Config::CURRENCIES
for i in 0...table.size
if table[i][0] == name
if table[i][1] != nil
# Monnaie avec cours
$game_party.gold = ($game_party.reference_gold * table[i][1]).to_i
else
# Monnaie sans cours
for j in 0...$game_party.currencies.size
if $game_party.currencies[j][0] == name
$game_party.gold = $game_party.currencies[j][1]
end
end
end
end
end
end
$data_system.words.gold = name
$game_party.currency = name
end
#==============================================================================
# □ Scene_Map
#==============================================================================
class Scene_Map
#--------------------------------------------------------------------------
# ○ Initialize
#--------------------------------------------------------------------------
alias currencies_initialize initialize
def initialize
$data_system.words.gold = $game_party.currency
currencies_initialize
end
end
#==============================================================================
# □ Game_Party
#==============================================================================
class Game_Party
#--------------------------------------------------------------------------
# ● Attr
#--------------------------------------------------------------------------
attr_accessor :gold
attr_accessor :currencies
attr_accessor :reference_gold
attr_accessor :reference_currency
attr_accessor :currency
#--------------------------------------------------------------------------
# ○ Initialize
#--------------------------------------------------------------------------
alias currencies_initialize initialize
def initialize
currencies_initialize
@currencies = []
table = Currencies_Config::CURRENCIES
for i in 0...table.size
name = table[i][0]
@currencies.push([name, 0]) if table[i][1] == nil
end
@reference_gold = @gold
@reference_currency = $data_system.words.gold
@currency = $data_system.words.gold
end
#--------------------------------------------------------------------------
# ○ Gain_gold
#--------------------------------------------------------------------------
alias currencies_gain_gold gain_gold
def gain_gold(n)
currencies_gain_gold(n)
table = Currencies_Config::CURRENCIES
for i in 0...table.size
if table[i][0] == $data_system.words.gold
if table[i][1] != nil
@reference_gold = ($game_party.gold / table[i][1]).to_i
end
end
end
end
end
Siegfried- Noobzor Lv.5
- Messages : 32
Age : 37
Fiche
Palmarès: Aucun
Spécialité: N/A
Avertissements: Aucun
Re: [XP] AMK Currencies - Changement de monnaie
Eh ben, déjà que l'idée de changer de monnaie n'est à ma connaissance pas monnaie courante (ok je => []), en faire un script devrait faciliter les choses.
Le seul jeu que je connais dans lequel il y avait un changement de monnaie, c'était Time to Triumph... comme c'était basé sur des voyages temporels, les monnaies utilisées à travers le temps n'étaient pas les mêmes.
Le seul jeu que je connais dans lequel il y avait un changement de monnaie, c'était Time to Triumph... comme c'était basé sur des voyages temporels, les monnaies utilisées à travers le temps n'étaient pas les mêmes.
garsim- Régent Lv.Zero
- Messages : 893
Age : 32
Fiche
Palmarès: 3
Spécialité: Rédaction, programmation (un peu)
Avertissements: Aucun
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|