Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker


Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Jeux: puie z / Jeux: Citymaime - Chapitre 1 / Jeux: Mer, îles et fous / News: Du neuf dans le making / News: Muma|Rope est disponible en (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

468 connectés actuellement

30732741 visiteurs
depuis l'ouverture

2720 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

RPG Maker VX

Leo-Games

Lumen

Planète Glutko

Alex d'Or

Tous nos partenaires

Devenir
partenaire



Sanction sur zone à risque

Si le joueur quitte le jeu à un moment non désiré par le développeur (combat, tournant de scénario), un malus est appliqué.

Script pour RPG Maker VX Ace
Ecrit par Tonyryu (site de l'auteur)
Publié par tonyryu (lui envoyer un message privé)
Signaler un script cassé

❤ 0

Auteur : Tonyryu
Logiciel : RPG Maker VX Ace
Nombre de scripts : 1
Source : https://web.archive.org/web/20190701084719/http://www.tonyryudev.com/joomla3/index.php/menu-mes-developpements/menu-script-rpgmaker/38-vx-ace-sanction-zone-a-risque et https://www.rpgmakervx-fr.com/t12906-script-de-sanction-sur-zone-a-risque
Script ajouté avec l'accord de son auteur.

Principe
Le script permet de marquer la sauvegarde utilisée avec une sanction qui sera appliqué si celle-ci n'est pas levée. Cela a pour objectif de punir un joueur qui voudrait quitter le jeu pendant un combat, ou bien après un choix de scénario qu'il n'accepterait pas.

Installation
A placer dans la section Materials.

Instructions
Pour ajouter une sanction, ajouter une commande script dans un évènement contenant ce code :

Portion de code : Tout sélectionner

1
DataManager.ajouter_sanction({:exp =>2000})



Les différentes sanctions sont :
- :exp : pertes d'expérience
- :level : pertes de niveaux
- :gold : pertes d'argent

En utilisant la valeur -1 pour une sanction, la totalité des gains de celle-ci sont perdu, exemple pour perdre l'intégralité de l'argent :

Portion de code : Tout sélectionner

1
DataManager.ajouter_sanction({:gold =>-1})



Pour mettre plusieurs sanctions, faite comme cela :

Portion de code : Tout sélectionner

1
DataManager.ajouter_sanction({:exp =>2000,:gold =>3000})



Pour annuler la sanction après la section critique :

Portion de code : Tout sélectionner

1
DataManager.annuler_sanction



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
#==============================================================================
# ■ Système de gestion de sanction lors d'une fermeture sans sauvegarde
#------------------------------------------------------------------------------
#  Ce script a pour but de sanctionner le joueur quittant la partie sans avoir sauvegardé normalement.
#
#  Version  Date          Auteur        Commentaires
#  1.00    28/08/2012    Tonyryu      Première release
#
# Attention : Ce script est ma propriété en tant que création et il est donc
# soumis au droit de la propriété intellectuelle.
# En aucun cas, il ne doit être copié ou publié vers un autre forum sans en
# avoir reçu mon accord au préalable.
#
#==============================================================================
 
 
#==============================================================================
# ■ Game_System
#------------------------------------------------------------------------------
#  Ajout de d'une nouvelle propriété permettant de stocker la sanction
#
#  Version  Date          Auteur        Commentaires
#  1.00      28/08/2012    Tonyryu      Création
#
#==============================================================================
 
class Game_System
  attr_accessor :sanctions
 
  #--------------------------------------------------------------------------
  # * Constructeur (surcharge)
  #--------------------------------------------------------------------------
  alias sanction_initialize initialize
  def initialize
    sanction_initialize
    @sanctions = {}
  end
end
 
 
#==============================================================================
# ■ DataManager
#------------------------------------------------------------------------------
#  Ajout de méthodes permettant d'ajouter ou retirer une sanction à la sauvegarde
#
#  Version  Date          Auteur        Commentaires
#  1.00      28/08/2012    Tonyryu      Création
#
#==============================================================================
module DataManager
 
  #--------------------------------------------------------------------------
  # ● modifier_sauvegarde
  #--------------------------------------------------------------------------
  def self.modifier_sauvegarde(pSanctions = {})
    if $game_system.save_count > 0
      header = {}
      contents = {}
      File.open(make_filename(last_savefile_index), "rb") do |file|
        header = Marshal.load(file)
        contents = Marshal.load(file)
      end
     
      contents[:system].sanctions = pSanctions
     
      File.open(make_filename(last_savefile_index), "wb") do |file|
        Marshal.dump(header, file)
        Marshal.dump(contents, file)
      end
    end
  end
 
  #--------------------------------------------------------------------------
  # ● ajouter_sanction
  #--------------------------------------------------------------------------
  def self.ajouter_sanction(pSanctions)
    modifier_sauvegarde(pSanctions)
  end
 
  #--------------------------------------------------------------------------
  # ● annuler_sanction
  #--------------------------------------------------------------------------
  def self.annuler_sanction
    modifier_sauvegarde
  end
 
end
 
#==============================================================================
# ■ Scene_Load
#------------------------------------------------------------------------------
#  Modification de la sortie de Scene_Load lors de la réussite du chargement de la sauvegarde
#
#  Version  Date          Auteur        Commentaires
#  1.00      28/08/2012    Tonyryu      Création
#
#==============================================================================
class Scene_Load
  #--------------------------------------------------------------------------
  # * on_load_success (Surcharge)
  #--------------------------------------------------------------------------
  alias sanction_load_success on_load_success
  def on_load_success
    sanction_load_success
    if $game_system.sanctions.size > 0
      SceneManager.goto(Scene_Sanction)
    end
  end 
end
 
#==============================================================================
# ■ Sanction_Window
#------------------------------------------------------------------------------
#  Fenêtre d'affichage de la sanction
#
#  Version  Date          Auteur        Commentaires
#  1.00      28/08/2012    Tonyryu      Création
#
#==============================================================================
class Sanction_Window < Window_Base
 
  #--------------------------------------------------------------------------
  # ● initialize
  #--------------------------------------------------------------------------
  def initialize
    super(0, (Graphics.height / 2) - 150, Graphics.width, 300)
    refresh
  end
 
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    contents.clear
    texte = "Vous avez quitté le jeu lors d'une section à risque\n"+
            "Voici la liste des pertes que vous subissez :\n\n"
           
    $game_system.sanctions.each do |key,value|
      case key
      when :exp
        if value == -1
          texte +=  "Expérience" + " => " + "Tout" + "\n"
        else
          texte +=  "Expérience" + " => " + value.to_s + "\n"
        end
       
      when :gold
        if value == -1
          texte +=  Vocab::currency_unit + " => " + "Tout" + "\n"
        else
          texte += Vocab::currency_unit + " => " + value.to_s + "\n"
        end
       
      when :level
        if value == -1
          texte +=  Vocab::level + " => " + "Tous" + "\n"
        else
          texte += Vocab::level + " => " + value.to_s + "\n"
        end
 
      end
    end
           
    tabLigne = texte.split("\n")
    idxLigne = -1
    tabLigne.each do |ligne|
      idxLigne += 1
      contents.draw_text(0,32 * idxLigne,contents.width, 30, ligne,1)
    end
   
  end
end
 
 
#==============================================================================
# ■ Scene_Sanction
#------------------------------------------------------------------------------
#  Modification de la sortie de Scene_Load lors de la réussite du chargement de la sauvegarde
#
#  Version  Date          Auteur        Commentaires
#  1.00      28/08/2012    Tonyryu      Création
#
#==============================================================================
class Scene_Sanction < Scene_MenuBase
  #--------------------------------------------------------------------------
  # * Start Processing
  #--------------------------------------------------------------------------
  def start
    super
    SceneManager.clear
    @sanction_window = Sanction_Window.new
  end
 
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    goto_map if Input.trigger?(:C)
  end
 
  #--------------------------------------------------------------------------
  # * Input [OK]
  #--------------------------------------------------------------------------
  def goto_map
   
    $game_system.sanctions.each do |key,value|
      case key
      when :exp
        $game_party.members.each do |actor|
          if value == -1
            value = actor.exp
          end
          actor.change_exp(actor.exp - value, false)
        end
       
      when :gold
        if value == -1
          value = $game_party.gold
        end
        $game_party.lose_gold(value)
       
      when :level
        $game_party.members.each do |actor|
          if value == -1
            value = actor.level + 1
          end
          actor.change_level([1,actor.level-value].max, false)
        end
 
      end
    end
   
    $game_system.sanctions.clear
    SceneManager.goto(Scene_Map)
  end
end





Aucun commentaire n'a été posté pour le moment.

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

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