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

478 connectés actuellement

30732761 visiteurs
depuis l'ouverture

2740 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

RPG Maker Détente

RPG Fusion

Eclipso

Hellsoft

Planète Glutko

Tous nos partenaires

Devenir
partenaire



Système de drop révisé 0.1

Permet de modifier le système de drops, ajoutant des possibilités pour paramétrer les objets lâchés par les monstres.

Script pour RPG Maker XP
Ecrit par Glamdrael
Publié par Glamdrael (lui envoyer un message privé)
Signaler un script cassé

❤ 0

Auteur : Glamdrael
Logiciel : RPG Maker XP
Nombre de scripts : 3

Ce système de drop, constitué de trois parties de scripts conçus pour RPG maker version XP vous permet de paramétrer jusqu'à trois objets, une arme et une armure en tant que drop pour un monstre, avec des probabilités définissables indépendamment les unes des autres.

Ce script possède quelques défauts, et peu de fonctionnalités.

Ce script entre en conflit avec le module d'armes gérées indépendamment qui fait partie du pack de scripts de Krazplay, ce que je résoudrai sous peu.
Pour résoudre ce problème : dans la partie drop amélioré du script, coupez ce qu'il y a entre class Scene_battle et le dernier end. Supprimez les lignes class Scene_battle et le dernier end.
Ensuite, collez le contenu préalablement coupé dans le sript scene_battle 2 à la place de la méthode start_phase 5.

Les trois parties du script sont disponibles ci-dessous avec toutes les explications nécessaires.

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
#================================================================
#Système de drop amélioré, Lindar Dreams, auteur Glamdrael, v0.1
#================================================================
#L'élaboration d'un script prends du temps ; si vous le lisez aujourd'hui,
#c'est parce que je juge que ce travail peut intéresser d'autres personnes
#que son seul créateur. Cependant, vous êtes instamment priés, si vous
#décidez d'utiliser ce script, de conserver le nom de l'auteur, le nom du
#studio (Lindar Dreams) ainsi que le numéro de version. Si vous modifiez
#ce script pour en réaliser un autre qui en découle, notifiez-le clairement.
#================================================================
#Rappelez vous que tout manquement à cette simple règle constitue une
#infraction aux lois sur la propriété intellectuelle.
#================================================================
 
#Ce script est le premier d'une longue série qui devrait permettre
#non seulement de modifier le système de drops mais également
#d'apporter diverses améliorations à la gestion des objets dans RPG
#maker XP.
 
#Fonctions de la version 0.1 :
#La version 0.1 apporte une modifications substantielle du système de
#drop des objets lors des combats ;
#       - possibilité de drop de un à trois items par monstres auxquels
#s'ajoutent une arme et une armure.
#       - possibilité de définir les probabilités de chacun de ces cinq
#facteurs indépendemment pour chaque ID de monstre.
#       - possibilité de changer le ratio de drop ; à la base en % dans RPG
#maker, il peut désormais être défini sur un seuil au choix (par exemple
#en %° ou %°°, ou même en dixièmes).
 
#Installation du script :
#Vous pouvez installer le script de deux façons ; la mise en place
#simple est parfaitement adaptée à un nouveau projet qui ne comporte
#encore aucun autre script. Elle peut également être utilisée par les
#makers ne maîtrisant pas ruby ; attention cependant à ne pas "écraser"
#de sorte des données qui pourraient être nécessaires à l'exécution 
#d'autres scripts !
#La mise en place détaillée nécessite de connaître un minimum de notions
#de programmations. Afin d'éviter les erreurs que j'ai rencontré trop
#fréquemment en consultant les commentaires des scripts, je me suis
#référé aux méthodes à manipuler, et non pas aux lignes où l'on pouvait
#les trouver.
 
#Aide :
#Pour les non rubyistes : une méthode commence par le mot "def" (en bleu) et
#s'achève par le mot "end" (lui aussi en bleu). Le mot "def" est suivi du nom
#de la méthode, auquel je fais référence pour les mises en place détaillées.
#Attention : une méthode peut "contenir" un terme "end" qui ne marque pas sa
#fin pour autant ; en général, le "end" de fin de méthode se situe dans l'alignement
#vertical du "def" de début de méthode. De plus, les méthodes sont souvent
#séparées par un saut de ligne.
 
#Mise en place simple et détaillée :
#Copiez le contenu de ce script et collez le dans un nouveau script (que vous ne 
#pouvez matériellement pas placer ailleurs qu'au dessus de main...suivez mon 
#regard...) et que vous pouvez nommer comme bon vous semble (non, cela non plus
#n'a pas d'importance...).
#Ensuite, lisez les instructions des deux autres parties du script. Une fois ceci
#terminé, vous pourrez revenir à la partie paramétrage pour savoir comment 
#l'utiliser.
 
#Paramétrage :
#Ce système remplace l'ancien système de drop, par conséquent, tout monstre 
#dont les drops ne sont pas paramétrés dans la classe Drop_Amel sont assimilés
#à des monstres ne dropant rien. De ce fait, il est également inutile de remplir
#les paramètres de drop des monstres en dehors de l'XP et de l'or via l'interface.
#Tous les réglages se font dans la classe Drop_Amel présente ci-dessous, et chacune
#des fonctions y est décrite.
#Représentez vous l'ensemble des méthodes (à l'exception de la dernière) comme un 
#grand tableau ; ce que vous placez en premier dans un tableau correpond à ce que
#vous placez en premier dans un autre.
#Par exemple, si je veux que le monstre d'ID 001 drope l'objet d'ID 001 avec une
#proba de 100, je rentre les données suivantes ; dans tab_prob_one 001 => 100,
#dans tab_drop_one 001 => 001. Le premier chiffre représente toujours l'ID
#du monstre, le second le résultat.
 
#Problèmes de compatibilités connus :
#Aucun
 
#Notes :
#Ceci est mon premier script ruby, en même temps que mon premier script
#tout court, ma première véritable programmation. Par conséquent, il se
#peut que certaines synthaxes soient simplifiables et certaines manières 
#de procéder peu élégantes (qui a dit attr_reader ?) ; pour les puristes 
#je m'en excuse d'avance, je fais ce que je peux en tant qu'autodidacte...
#Ce script sera amélioré au fur et à mesure du développement de ceux qui
#l'accompagneront. La prochaine version comprendra d'ores et déjà un
#système permettant de choisir entre ce mode de drop et celui de RPG maker.
 
#Glamdrael
 
class Drop_Amel
  
def Drop_Amel.tab_prob_one
 return tab_prob_one = {001 => 000, 002 => 000, 003 => 100}
 #probabilité pour un monstre de droper un objet n°1
end
 
def Drop_Amel.tab_drop_one
  return tab_drop_one = {001 => 001}
  #ID de l'objet n°1 dropé par un monstre donné
end
 
def Drop_Amel.tab_prob_two
  return tab_prob_two = { 001 => 001}
  #probabilité pour un monstre de droper un objet n°2
end
 
def Drop_Amel.tab_drop_two
  return tab_drop_two = {001 => 001}
  #ID de l'objet n°2 dropé par un monstre donné
end
 
def Drop_Amel.tab_prob_three
  return tab_prob_three = { 001 => 0}
  #probabilité pour un monstre de droper un objet n°3
end
 
def Drop_Amel.tab_drop_three
  return tab_drop_three = {001 => 001}
  #ID de l'objet n°3 dropé par un monstre donné
end
 
def Drop_Amel.tab_prob_weap
  return tab_prob_weap = { 001 => 0}
  #probabilité pour un monstre de droper une arme
end
 
def Drop_Amel.tab_drop_weap
  return tab_drop_weap = {001 => 001}
  #ID de l'arme dropée par un monstre donné
end
 
def Drop_Amel.tab_prob_armo
  return tab_prob_armo = { 001 => 0}
  #probabilité pour un monstre de droper une armure
end
 
def Drop_Amel.tab_drop_armo
  return tab_drop_armo = {001 => 001}
  #ID de l'armure dropée par un monstre donné
end
  
def Drop_Amel.coeff_drop
  return rand (100)
  #valeur comparée avec votre probabilité de drop. Plus elle est supérieure
  #à la proba de drop de vos objets, moins il y aura de chances que vos
  #monstres laissent choir ces objets.
end
 
end
 
class Scene_Battle
  
  def start_phase5
    @phase = 5
    $game_system.me_play($game_system.battle_end_me)
    $game_system.bgm_play($game_temp.map_bgm)
    exp = 0
    gold = 0
    treasures = []
    for enemy in $game_troop.enemies
      unless enemy.hidden
        exp += enemy.exp
        gold += enemy.gold
        if Drop_Amel.coeff_drop.to_i < enemy.item_prob_one.to_i
          treasures.push($data_items[enemy.item_drop_one.to_i])
        end
        if rand(100) < enemy.item_prob_two.to_i
          treasures.push($data_items[enemy.item_drop_two.to_i])
        end
        if rand(100) < enemy.item_prob_three.to_i
          treasures.push($data_items[enemy.item_drop_three.to_i])
        end
        if rand(100) < enemy.weapon_prob.to_i
          treasures.push($data_weapons[enemy.weapon_drop.to_i])
        end
        if rand(100) < enemy.armor_prob.to_i
            treasures.push($data_armors[enemy.armor_drop.to_i])
        end
      end
    end
    treasures = treasures[0..5]
    for i in 0...$game_party.actors.size
      actor = $game_party.actors[i]
      if actor.cant_get_exp? == false
        last_level = actor.level
        actor.exp += exp
        if actor.level > last_level
          @status_window.level_up(i)
        end
      end
    end
    $game_party.gain_gold(gold)
    for item in treasures
      case item
      when RPG::Item
        $game_party.gain_item(item.id, 1)
      when RPG::Weapon
        $game_party.gain_weapon(item.id, 1)
      when RPG::Armor
        $game_party.gain_armor(item.id, 1)
      end
    end
    @result_window = Window_BattleResult.new(exp, gold, treasures)
    @phase5_wait_count = 100
  end
  
end
 
#================================================================
#Système de drop amélioré, Lindar Dreams, auteur Glamdrael, v0.1
#================================================================



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
#================================================================
#Système de drop amélioré, Lindar Dreams, auteur Glamdrael, v0.1
#================================================================
#L'élaboration d'un script prends du temps ; si vous le lisez aujourd'hui,
#c'est parce que je juge que ce travail peut intéresser d'autres personnes
#que son seul créateur. Cependant, vous êtes instamment priés, si vous
#décidez d'utiliser ce script, de conserver le nom de l'auteur, le nom du
#studio (Lindar Dreams) ainsi que le numéro de version. Si vous modifiez
#ce script pour en réaliser un autre qui en découle, notifiez-le clairement.
#================================================================
#Rappelez vous que tout manquement à cette simple règle constitue une
#infraction aux lois sur la propriété intellectuelle.
#================================================================
 
#Mise en place simple :
#Ouvrez le script Scene Battle 2 et remplacez le par celui-ci.
 
#Mise en place détaillée :
#Les gens qui manipulent quelque peu ruby noteront que je n'ai rien 
#fait d'autre de particulier que de supprimer la méthode start-phase5.
 
#Notes :
#J'ai également supprimé les jolis caractères japonais que je ne sais
#à mon grand désarroi pas lire... ><
 
class Scene_Battle
 
  def start_phase1
    @phase = 1
    $game_party.clear_actions
    setup_battle_event
  end
 
  def update_phase1
    if judge
      return
    end
    start_phase2
  end
 
  def start_phase2
    @phase = 2
    @actor_index = -1
    @active_battler = nil
    @party_command_window.active = true
    @party_command_window.visible = true
    @actor_command_window.active = false
    @actor_command_window.visible = false
    $game_temp.battle_main_phase = false
    $game_party.clear_actions
    unless $game_party.inputable?
      start_phase4
    end
  end
  
  def update_phase2
    if Input.trigger?(Input::C)
      case @party_command_window.index
      when 0
        $game_system.se_play($data_system.decision_se)
        start_phase3
      when 1
        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
      end
      return
    end
  end
 
  def update_phase2_escape
    enemies_agi = 0
    enemies_number = 0
    for enemy in $game_troop.enemies
      if enemy.exist?
        enemies_agi += enemy.agi
        enemies_number += 1
      end
    end
    if enemies_number > 0
      enemies_agi /= enemies_number
    end
    actors_agi = 0
    actors_number = 0
    for actor in $game_party.actors
      if actor.exist?
        actors_agi += actor.agi
        actors_number += 1
      end
    end
    if actors_number > 0
      actors_agi /= actors_number
    end
    success = rand(100) < 50 * actors_agi / enemies_agi
    if success
      $game_system.se_play($data_system.escape_se)
      $game_system.bgm_play($game_temp.map_bgm)
      battle_end(1)
    else
      $game_party.clear_actions
      start_phase4
    end
  end
end
 
def update_phase5
    if @phase5_wait_count > 0
      @phase5_wait_count -= 1
      if @phase5_wait_count == 0
        @result_window.visible = true
        $game_temp.battle_main_phase = false
        @status_window.refresh
      end
      return
    end
    if Input.trigger?(Input::C)
      battle_end(0)
    end
  end
  
#================================================================
#Système de drop amélioré, Lindar Dreams, auteur Glamdrael, v0.1
#================================================================



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
#================================================================
#Système de drop amélioré, Lindar Dreams, auteur Glamdrael, v0.1
#================================================================
#L'élaboration d'un script prends du temps ; si vous le lisez aujourd'hui,
#c'est parce que je juge que ce travail peut intéresser d'autres personnes
#que son seul créateur. Cependant, vous êtes instamment priés, si vous
#décidez d'utiliser ce script, de conserver le nom de l'auteur, le nom du
#studio (Lindar Dreams) ainsi que le numéro de version. Si vous modifiez
#ce script pour en réaliser un autre qui en découle, notifiez-le clairement.
#================================================================
#Rappelez vous que tout manquement à cette simple règle constitue une
#infraction aux lois sur la propriété intellectuelle.
#================================================================
 
#Mise en place simple : 
#Remplacez le script Game_enemy par celui-ci.
 
#Mise en place détaillée : 
#Supprimez les méthodes item_id, weapon_id, armor_id et enfin la
#méthode treasure_prob.
#Insérez ensuite à leur emplacement (ceci n'a d'importance que pour
#la clarté du système si vous les mettez bien derrière la méthode
#initialize et avant le dernier "end") les méthodes présentes dans ce
#script entre les lignes de "-" (vous devriez avoir dix méthodes ;
#item_prob_one, item_drop_one, item_prob_two, item_drop_two,
#items_prob_three, item_drop_three, weapon_prob, weapon_drop,
#armor_prob et enfin armor_drop).
 
#Notes :
#Les caractères japonais ont été supprimés ici aussi...
 
class Game_Enemy < Game_Battler
 
  def initialize(troop_id, member_index)
    super()
    @troop_id = troop_id
    @member_index = member_index
    troop = $data_troops[@troop_id]
    @enemy_id = troop.members[@member_index].enemy_id
    enemy = $data_enemies[@enemy_id]
    @battler_name = enemy.battler_name
    @battler_hue = enemy.battler_hue
    @hp = maxhp
    @sp = maxsp
    @hidden = troop.members[@member_index].hidden
    @immortal = troop.members[@member_index].immortal
  end
 
  def id
    return @enemy_id
  end
 
  def index
    return @member_index
  end
 
  def name
    return $data_enemies[@enemy_id].name
  end
 
  def base_maxhp
    return $data_enemies[@enemy_id].maxhp
  end
 
  def base_maxsp
    return $data_enemies[@enemy_id].maxsp
  end
  
  def base_str
    return $data_enemies[@enemy_id].str
  end
 
  def base_dex
    return $data_enemies[@enemy_id].dex
  end
 
  def base_agi
    return $data_enemies[@enemy_id].agi
  end
 
  def base_int
    return $data_enemies[@enemy_id].int
  end
 
  def base_atk
    return $data_enemies[@enemy_id].atk
  end
 
  def base_pdef
    return $data_enemies[@enemy_id].pdef
  end
 
  def base_mdef
    return $data_enemies[@enemy_id].mdef
  end
 
  def base_eva
    return $data_enemies[@enemy_id].eva
  end
 
  def animation1_id
    return $data_enemies[@enemy_id].animation1_id
  end
 
  def animation2_id
    return $data_enemies[@enemy_id].animation2_id
  end
 
  def element_rate(element_id)
    table = [0,200,150,100,50,0,-100]
    result = table[$data_enemies[@enemy_id].element_ranks[element_id]]
    for i in @states
      if $data_states[i].guard_element_set.include?(element_id)
        result /= 2
      end
    end
    return result
  end
 
  def state_ranks
    return $data_enemies[@enemy_id].state_ranks
  end
 
  def state_guard?(state_id)
    return false
  end
 
  def element_set
    return []
  end
 
  def plus_state_set
    return []
  end
 
  def minus_state_set
    return []
  end
 
  def actions
    return $data_enemies[@enemy_id].actions
  end
 
  def exp
    return $data_enemies[@enemy_id].exp
  end
 
  def gold
    return $data_enemies[@enemy_id].gold
  end
 
#-------------------------------------------------------------------------------
 
   def item_prob_one
    return Drop_Amel.tab_prob_one[@enemy_id.to_i]
  end
  
  def item_drop_one
    return Drop_Amel.tab_drop_one[@enemy_id.to_i]
  end
  
  def item_prob_two
    return Drop_Amel.tab_prob_two[@enemy_id.to_i]
  end
   
  def item_drop_two
    return Drop_Amel.tab_drop_two[@enemy_id.to_i]
  end
  
  def item_prob_three
    return Drop_Amel.tab_prob_three[@enemy_id.to_i]
  end
   
  def item_drop_three
    return Drop_Amel.tab_drop_three[@enemy_id.to_i]
  end
  
  def weapon_prob
    return Drop_Amel.tab_prob_weap[@enemy_id.to_i]
  end
  
  def weapon_drop
    return Drop_Amel.tab_drop_weap[@enemy_id.to_i]
  end
  
  def armor_prob
    return Drop_Amel.tab_prob_armo[@enemy_id.to_i]
  end
  
  def armor_drop
    return Drop_Amel.tab_drop_armo[@enemy_id.to_i]
  end
  
 #-------------------------------------------------------------------------------
 
  def screen_x
    return $data_troops[@troop_id].members[@member_index].x
  end
 
  def screen_y
    return $data_troops[@troop_id].members[@member_index].y
  end
 
  def screen_z
    return screen_y
  end
 
  def escape
    @hidden = true
    self.current_action.clear
  end
 
  def transform(enemy_id)
    @enemy_id = enemy_id
    @battler_name = $data_enemies[@enemy_id].battler_name
    @battler_hue = $data_enemies[@enemy_id].battler_hue
    make_action
  end
 
#Script amélioré par RPG Advocate
  
  def make_action
    self.current_action.clear
    unless self.movable?
      return
    end
    available_actions = []
    rating_max = 0
    for action in self.actions
      n = $game_temp.battle_turn
      a = action.condition_turn_a
      b = action.condition_turn_b
      if (b == 0 and n != a) or
         (b > 0 and (n < 1 or n < a or n % b != a % b))
        next
      end
      if self.hp * 100.0 / self.maxhp > action.condition_hp
        next
      end
      if $game_party.max_level < action.condition_level
        next
      end
      switch_id = action.condition_switch_id
      if switch_id > 0 and $game_switches[switch_id] == false
        next
      end
      if exclude_pointless_actions(action)
        next
      end
      available_actions.push(action)
      if action.rating > rating_max
        rating_max = action.rating
      end
    end
    ratings_total = 0
    for action in available_actions
      ratings_total += action.rating
    end
    if ratings_total > 0
      choose_action = []
      for action in available_actions
        for j in 1..action.rating
          choose_action.push(action)
        end
      end
      enemy_action = choose_action[rand(choose_action.size - 1)]
      self.current_action.kind = enemy_action.kind
      self.current_action.basic = enemy_action.basic
      self.current_action.skill_id = enemy_action.skill_id
      self.current_action.decide_random_target_for_enemy
    end
  end
 
  def exclude_pointless_actions(action)
    if action.kind == 0
      return false
    end
    if action.kind == 1
      s = action.skill_id
      if self.sp < $data_skills[s].sp_cost
        return true
      end
      if $data_skills[s].common_event_id > 0
        return false
      end
      if $data_skills[s].scope == 0 || $data_skills[s].scope == 1 || 
        $data_skills[s].scope == 2
        return false
      end
      if $data_skills[s].scope == 3 || $data_skills[s].scope == 4
        if $game_troop != nil
        fullhpflag = true
        statusflag = true
          for i in $game_troop.enemies
            if i.hp < i.maxhp && i.exist?
              fullhpflag = false
            end
            for j in $data_skills[s].plus_state_set
              if not i.state?(j) && i.exist?
                statusflag = false
              end
            end
            for j in $data_skills[s].minus_state_set
              if i.state?(j) && i.exist?
                statusflag = false
              end
            end
          end
        end
      if $data_skills[s].power == 0 && statusflag
        return true
      end
      if $data_skills[s].power < 0 && statusflag && fullhpflag
        return true
        end
      end
      if $data_skills[s].scope == 5 || $data_skills[s].scope == 6
        nonedeadflag = true
        if $game_troop != nil
          for i in $game_troop.enemies
            if i.dead? and not i.hidden
              nonedeadflag = false
            end
          end
        end
        if nonedeadflag
          return true
        end
      end
      if $data_skills[s].scope == 7
        if $game_troop != nil
          fullhpflag = true
          statusflag = true
          if self.hp < self.maxhp
            fullhpflag = false
          end
          for j in $data_skills[s].plus_state_set
            if not self.state?(j)
              statusflag = false
              end
            end
            for j in $data_skills[s].minus_state_set
              if self.state?(j)
                statusflag = false
              end
            end
          end
      if $data_skills[s].power == 0 && statusflag
        return true
      end
      if $data_skills[s].power < 0 && statusflag && fullhpflag
        return true
        end
      end
    end
    return false
  end
end
 
#================================================================
#Système de drop amélioré, Lindar Dreams, auteur Glamdrael, v0.1
#================================================================



Laissez toutes les remarques et relevés de bugs en précisant les autres scripts que vous utilisez, je tenterai d'en tenir compte dans le développement de la version suivante, ou de les corriger rapidement.


Mis à jour le 22 novembre 2020.






Husk - posté le 30/05/2009 à 02:06:04 (1022 messages postés) - staff

❤ 0

pourquoi personne ne mes jamais de screen ? Sa deviens agacent.

Itch.io | Don't click on the potato!


Glamdrael - posté le 30/05/2009 à 09:12:54 (22 messages postés)

❤ 0

Fondateur Lyly's Dreams

Je veux bien mettre un screen Husk, mais tout ce que tu verrais, c'est que le monstre te donne plusieurs objets au lieu d'un seul, et ce encore seulement si il n'y a qu'un monstre dans le groupe.
L'apparence du jeu n'est modifiée en rien, donc un screen n'est pas très parlant.

En revanche, dès que mes révisions m'en laisseront le temps, je créerais un petit projet pour montrer les possibilités du script...

Ceci dit merci pour ce commentaire...constructif...et plein de fautes d'orthographe.

Il n'y a que deux manières d'écrire de bons algorithmes. Seule la troisième est la bonne...


Husk - posté le 30/05/2009 à 14:34:02 (1022 messages postés) - staff

❤ 0

D'accord j'attends ta demo avec mes fautes dotografe.

Itch.io | Don't click on the potato!


Glamdrael - posté le 30/05/2009 à 16:52:52 (22 messages postés)

❤ 0

Fondateur Lyly's Dreams

Voilà, j'ai mis un petit projet simpliste, juste pour montrer ce que le script apporte. Il figure en téléchargement rapide sur free, de manière temporaire, le temps d'ouvrir mon propre site web (ce qui ne saurait tarder).

http://dl.free.fr/ohOSF1BVS

J'édite également pour notifier que je viens de remarquer une première incompatibilité : ce script entre en conflit avec le module d'armes gérées indépendamment qui fait partie du pack de scripts de Krazplay, ce que je résoudrai sous peu.

Bien, nouvel édit expliquant comment résoudre ce problème : dans la partie drop amélioré du script, coupez ce qu'il y a entre class Scene_battle et le dernier end. Supprimez les lignes class Scene_battle et le dernier end.
Ensuite, collez le contenu préalablement coupé dans le sript scene_battle 2 à la place de la méthode start_phase 5.

J'espère avoir été assez clair ; la prochaine version du script évitera d'entrée cette manipulation.

Il n'y a que deux manières d'écrire de bons algorithmes. Seule la troisième est la bonne...


Husk - posté le 01/06/2009 à 15:50:54 (1022 messages postés) - staff

❤ 0

D'accord je vais voir sa

Itch.io | Don't click on the potato!

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