Night.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: Mer, îles et fous / News: Du neuf dans le making / News: Muma|Rope est disponible en (...) / News: RPG Maker With / Site: Oniro va mieux / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

214 connectés actuellement

30687371 visiteurs
depuis l'ouverture

1917 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Leo-Games

RPG Maker Détente

Zarok

RPG Maker - La Communauté

ConsoleFun

Tous nos partenaires

Devenir
partenaire



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

Aller à la page: 1

Posté dans Tutoriels - Afficher une image fixe sur une carte

Kirby58 - posté le 27/08/2010 à 23:24:15. (3 messages postés)

Hmm... Très bon tout ça^^
Mais j'ai un petit problème, lorsque je change de map,
si une image est affichée à l'écran avant la transition,
elle s'affiche sur la map suivante... et reste indéfiniment.

Posté dans Scripts - Stat points distribution system 1.71

Kirby58 - posté le 01/11/2009 à 13:33:43. (3 messages postés)

Bien RuineChozo,

Suite à ton post j'ai testé le script sur projet vierge et effectivement il ne marche pas, mais tu as également mal copié le script car il n'y à rien à la ligne 718...
L'erreur se trouve "normalement" à la ligne 1157. J'avais malheureusement oublié ce détail. Pour corriger ceci il faut rajouter un script nommé "Lettuce_Window_Help" juste en dessous du script "Window_Base".
Et voilà le contenu du script "Lettuce_Window_Help":

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
#==============================================================================
# ** Lettuce_Window_Help
#------------------------------------------------------------------------------
#  This window displays property of each attribute
#==============================================================================
class Lettuce_Window_Help < Window_Base
  def initialize(index)
        super(401,372,144,44)
        self.contents = Bitmap.new(width-32,height-32)
        self.contents.font.size = Fontsize - 6
        refresh(index)
  end
  
  def refresh(index)
        self.contents.clear
  self.contents.font.color = text_color(16)
 
    case index
    when 0
      self.contents.draw_text(0,-5,112,20,"HP + "+HPIncreaseBy.to_s)
    when 1
      self.contents.draw_text(0,-5,112,20,"MP + "+MPIncreaseBy.to_s)
    when 2
      self.contents.draw_text(0,-5,112,20,Vocab::atk+" + "+IncreaseBy.to_s)
    when 3
      self.contents.draw_text(0,-5,112,20,Vocab::def+" + "+IncreaseBy.to_s)
    when 4
      self.contents.draw_text(0,-5,112,20,Vocab::spi+" + "+IncreaseBy.to_s)
    when 5
      self.contents.draw_text(0,-5,112,20,Vocab::agi+" + "+IncreaseBy.to_s)
    when 6
      self.contents.draw_text(0,-5,112,20,"HIT + "+HITIncreaseBy.to_s)
    when 7
      self.contents.draw_text(0,-5,112,20,"EVA + "+EVAIncreaseBy.to_s)
    when 8
      self.contents.draw_text(0,-5,112,20,"CRIT + "+CRITIncreaseBy.to_s)
    end
 
  
  end
  
end




Donc recopie correctement le script que j'ai donné, rajoute celui-ci au bon endroit, et tout devrait fonctionner à merveille^^

PS: Je viens de modifier légèrement le script, l'écran ressemble désormais à ceci
image

Pensez aussi à changer votre lexique dans la database pour la force l'intelligence etc pour ne pas que les lettres se superposent aux chiffres.

Posté dans Scripts - Stat points distribution system 1.71

Kirby58 - posté le 21/10/2009 à 10:22:10. (3 messages postés)

Merci pour ce super script^^
Pour ceux que ça intéresse (et qui sont trop flemmards pour le faire eux même :p ), j'ai modifié un peu le script, ce dernier autorise vos personnages à ne pas porter d'équipement. En revanche si vous utilisez deux armes, rien ne se passera, la deuxième arme ne sera pas prise en compte et ne sera pas affichée dans l'écran des compétence. Je ne suis pas doué en script donc je m'excuse de ne pas pouvoir faire mieux. J'ai aussi retravaillé légèrement l'interface (les points requis n'empiètent plus sur "frappe" "critique" et "esquive") ainsi que le nombre requis de points par augmentation de compétences et j'ai revu le maximum des statistiques à la hausse. En utilisation avec le mode RO pour l'acquisition des points sous cette forme:

Note : cette version est erronée. Une autre est présentée dans les messages postérieurs.

Portion de code : Tout sélectionner

1
$game_actors[@actor_id].points += ((@level*2).floor+20).floor



Le nombre de point gagné par niveau est ainsi optimal. Faites le test si vous voulez ;)

Bien, voilà le scripts pour les impatients:

Portion de code:

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
=begin
+------------------------------------------------------------------------------+
� ** Stat points distribution system 1.6
� By Lettuce.


�Some help:
� - Position wasn't stored properly in mode 1 (Thanks Akin)
� - Some sort of notification to player (Thanks Akin)
� - Player switch now supports LEFT and RIGHT arrow (Thanks Akin)
� - Advice on using class attr instead of global var (Thanks GoldenShadow)

�-----------------------------------------------------------------------------
� Ce script, permet de distribuer des points pour augmenter les stats de vos héros

� Pour l'appeler : $scene = Scene_Stat_Dist.new(0)


� Pour donner des points à vos héros utilisez :

� $game_party.members[ID_du_héros].points += Nombre_de_points

� Si vous voulez que votre héros ai ces points après avoir monté d'un niveau :
� Dans Game_Actor, à "def change_exp", sous la ligne 'level_up'; collez ça :

� $game_actors[@actor_id].points += Nombre_de_points

� OU (Si vous voulez le mode RO, expliqué en bas)

� $game_actors[@actor_id].points += ((@level/5).floor+2).floor

� # It seems the game returns non 0 based array if we use game_party >.<;

� **Note**
� Le script n'influance pas sur les stats du héros dans la base de données
� Il les ajoutes juste.
� Set the stats to 1 all the way in the database to disable growth :0

� **Modes**
� 1 : 1 point / caractéristiques
� Exemple : Pour augmenter l'attaque vous utiliserez 1 points quelque sois sa valeur
� 2 : Utiliser le systéme RO , les points a donner dépende de la valeur du stat.
� Explanation: Dans RO, si vous avez des stats éléves, vous avez besoin de plus de points pour
� les augmenter. Donc si vous avez 90 d'attaque et 5 d'intel, Vous pouvez choisir
� d'utiliser 10 point pour 1 d'attaque de plus ou utiliser 10 points pour obtenir 6 d'Intteligence
+------------------------------------------------------------------------------+
=end
#������������������������������ Configuration ���������������������������������#
#Points de départ : Nombre de points reçus au début du jeu
StartPoints = 0
#Le maximun de stats que vous autorisez
MaxStat = 800
MaxHP = 9999
MaxMP = 999
#Le maximum de stats : "% chance de toucher l'ennemi, d'esquiver et de faire un coup critique.
MaxHIT = 100 # 100 = Ne rate jamais
MaxEVA = 65 #100 = esquive TOUT les coups : Pas logique ^^'. 50-70 est une bonne moyenne
MaxCRIT = 85 #100 = Toujours des critiques.
 
# Combien de points sont nécessaire pour augmenter les stats
PointsPerHP = 10 # Hp
PointsPerMP = 5 # Mp
PointsPerHIT = 6 # % de chance de toucher
PointsPerEVA = 6 #% de chance d'esquiver
PointsPerCRIT = 7 # % chance de critique.
 
# De combien sont augmenté les stats par points ?
IncreaseBy = 10 # Attaque, défense,intelligence, agilitée
HPIncreaseBy = 50 # Hp
MPIncreaseBy = 25 # Mp
HITIncreaseBy = 1 # % de chance de toucher
EVAIncreaseBy = 1 # % de chance d'esquiver
CRITIncreaseBy = 1 # % chance de critique.
 
 
#1 pour le mode normal, 2 ou RO mode [Les points requis sont calculés différaments]
Mode = 2
#Vous pouvez changer la police et la taille :
Fontname = "UmePlus Gothic"
Fontsize = 20
 
#Layout mode, si vous utilisez des mots long à la place de atk,spi,def or agi ; mettez 2.
LayoutMode = 2
 
#========================== End Configuration ==================================
OFFSET = -10 #moves equipment part up and down XD
#==============================================================================
# ** Lettuce_Window_Top
#------------------------------------------------------------------------------
# This window displays Title message
#==============================================================================
 
class Lettuce_Window_Top < Window_Base
def initialize
super(0,0,544,70)
self.contents = Bitmap.new(width-32,height-32)
self.contents.font.name = Fontname
self.contents.font.size = Fontsize
refresh
end
 
def refresh
self.contents.clear
self.contents.draw_text(0,7,544-32,32,"Distribution de Statistiques",1)
self.contents.font.size = Fontsize-4
 
end
 
end
#==============================================================================
# ** Lettuce_Window_Points
#------------------------------------------------------------------------------
# This window displays the attributes of a party member
#==============================================================================
class Lettuce_Window_Points < Window_Base
def initialize(member_index)
super(401,320,144,52)
self.contents = Bitmap.new(width-32,height-32)
self.contents.font.name = Fontname
self.contents.font.size = Fontsize
refresh(member_index)
end
 
def refresh(member_index)
actor = $game_party.members[member_index]
points = actor.points
self.contents.clear
self.contents.draw_text(0,0,162,20,"Points: "+points.to_s)
end
end
 
#==============================================================================
 ** Lettuce_Window_Info
#------------------------------------------------------------------------------
# This window displays the attributes of a party member
#==============================================================================
 
lass Lettuce_Window_Info < Window_Base
def initialize(member_index)
super(0,71,400,346)
self.contents = Bitmap.new(width-32,height-32)
self.contents.font.name = Fontname
self.contents.font.size = Fontsize
@exo = 25 #equipment section X coordinate offset
@exo2 = 35 #equipment section X coordinate offset
eyo = -10 #equipment section Y coordinate offset
refresh(member_index)
end
 
def refresh(member_index)
actor = $game_party.members[member_index]
self.contents.clear
self.contents.font.size = Fontsize - 3
draw_actor_face(actor,10,10,92)
draw_actor_name(actor,120,5)
self.contents.draw_text(120,21,200,20,actor.class.name)
self.contents.draw_text(120,36,200,20,"Niveau "+actor.level.to_s)
 
if LayoutMode == 1
draw_actor_state(actor,200,280,168)
elsif LayoutMode == 2
draw_actor_state(actor,220,10)
end
 
s1 = actor.exp_s #total exp
s2 = actor.current_lvl_exp #exp to get to this level
if s1.is_a?(Numeric)
s3 = s1-s2 #progress in this level
s4 = actor.next_lvl_exp #exp needed for next level
self.contents.font.size = Fontsize - 5
self.contents.draw_text(230,74,90,20,"Exp: "+s3.to_s+"/"+s4.to_s,0)
self.contents.font.size = Fontsize
else
self.contents.draw_text(230,74,90,20,"-----/-----",2)
end
 
#Preparing bar colours
back_color = Color.new(39, 58, 83, 255)
 
str_color1 = Color.new(229, 153, 73, 255)
str_color2 = Color.new(255, 72, 0, 255)
 
def_color1 = Color.new(210, 255, 0, 255)
def_color2 = Color.new(85, 129, 9, 255)
 
spi_color1 = Color.new(99, 133, 161, 255)
spi_color2 = Color.new(10, 60,107, 255)
 
agi_color1 = Color.new(167, 125, 180, 255)
agi_color2 = Color.new(90, 11, 107, 255)
 
hp_color1 = Color.new(66, 114, 164, 255)
hp_color2 = Color.new(122, 175, 229, 255)
 
mp_color1 = Color.new(93, 50, 158, 255)
mp_color2 = Color.new(145, 122, 229, 255)
 
exp_color1 = Color.new(246, 243, 224, 255)
exp_color2 = Color.new(255, 182, 0, 255)
if s1.is_a?(Numeric)
self.contents.fill_rect(230,90,89,7,back_color)
self.contents.gradient_fill_rect(232,92,(85*s3)/s4,3,exp_color1,exp_color2)
 
else
self.contents.fill_rect(230,60,89,7,back_color)
end
 
 
self.contents.fill_rect(120,67,104,7,back_color)
self.contents.gradient_fill_rect(122,69,100*actor.hp/actor.maxhp,3,hp_color1,hp_color2)
self.contents.font.size = Fontsize - 5
self.contents.draw_text(120,44,100,35,"HP",0)
self.contents.draw_text(120,44,100,35,actor.hp.to_s + "/" + actor.maxhp.to_s,2)
 
self.contents.fill_rect(120,90,104,7,back_color)
self.contents.gradient_fill_rect(122,92,100*actor.mp/actor.maxmp,3,mp_color1,mp_color2)
self.contents.draw_text(120,67,100,35,"MP",0)
self.contents.draw_text(120,67,100,35,actor.mp.to_s + "/" + actor.maxmp.to_s,2)
self.contents.font.size = Fontsize
 
##weapons
weapon = $data_weapons[actor.weapon_id]
shield = $data_armors[actor.armor1_id]
helm =$data_armors[actor.armor2_id]
body =$data_armors[actor.armor3_id]
accessory =$data_armors[actor.armor4_id]
 
bonus_atk = 0
bonus_def = 0
bonus_spi = 0
bonus_agi = 0
evasion = 0
crit = 4
 
if $data_actors[actor.id].critical_bonus
crit +=4
end
 
if weapon
bonus_atk += weapon.atk
bonus_def += weapon.def
bonus_spi += weapon.spi
bonus_agi += weapon.agi
if weapon.critical_bonus
crit += 4
end
end
if shield
bonus_atk += shield.atk
bonus_def += shield.def
bonus_spi += shield.spi
bonus_agi += shield.agi
evasion += shield.eva
end
if helm
bonus_atk += helm.atk
bonus_def += helm.def
bonus_spi += helm.spi
bonus_agi += helm.agi
evasion += helm.eva
end
if body
bonus_atk += body.atk
bonus_def += body.def
bonus_spi += body.spi
bonus_agi += body.agi
evasion += body.eva
end
if accessory
bonus_atk += accessory.atk
bonus_def += accessory.def
bonus_spi += accessory.spi
bonus_agi += accessory.agi
evasion += accessory.eva
end
if LayoutMode == 1
draw_item_name(weapon,160+@exo,125+@eyo,true)
if weapon.two_handed == true
draw_item_name(weapon,160+@exo,155+@eyo,true)
else
draw_item_name(shield,160+@exo,155+@eyo,true)
end
draw_item_name(helm,160+@exo,185+@eyo,true)
draw_item_name(body,160+@exo,215+@eyo,true)
draw_item_name(accessory,160+@exo,245+@eyo,true)
 
#Testing area for Weapon upgrade script
#self.contents.font.size = Fontsize - 7
#self.contents.draw_text(160+@exo,135,30,20,"]+"+weapon.level.to_s+"]",0)
 
self.contents.font.color = Color.new(87,87,87,255)
if !weapon
draw_icon(216,160+@exo,125+@eyo,true)
self.contents.draw_text(184+@exo,127+@eyo,200,20,"Unequiped")
end
if !shield
draw_icon(217,160+@exo,155+@eyo,true)
self.contents.draw_text(184+@exo,157+@eyo,200,20,"Unequiped")
end
if !helm
draw_icon(218,160+@exo,185+@eyo,true)
self.contents.draw_text(184+@exo,187+@eyo,200,20,"Unequiped")
end
if !body
draw_icon(219,160+@exo,215+@eyo,true)
self.contents.draw_text(184+@exo,217+@eyo,200,20,"Unequiped")
end
if !accessory
draw_icon(220,160+@exo,245+@eyo,true)
self.contents.draw_text(184+@exo,247+@eyo,200,20,"Unequiped")
end
self.contents.font.color = Color.new(255,255,255,255)
 
elsif LayoutMode == 2
draw_item_name(weapon,160+@exo2,125+OFFSET+@eyo,true)
draw_item_name(shield,160+@exo2,165+OFFSET+@eyo,true)
draw_item_name(helm,160+@exo2,205+OFFSET+@eyo,true)
draw_item_name(body,160+@exo2,245+OFFSET+@eyo,true)
draw_item_name(accessory,160+@exo2,285+OFFSET+@eyo,true)
 
 
 
self.contents.font.color = Color.new(87,87,87,255)
if !weapon
draw_icon(216,160+@exo2,125+OFFSET+@eyo,true)
self.contents.draw_text(184+@exo2,127+OFFSET+@eyo,200,20,"Déséquipé")
end
 
if !helm
draw_icon(218,160+@exo2,205+OFFSET+@eyo,true)
self.contents.draw_text(184+@exo2,207+OFFSET+@eyo,200,20,"Déséquipé")
end
if !body
draw_icon(219,160+@exo2,245+OFFSET+@eyo,true)
self.contents.draw_text(184+@exo2,247+OFFSET+@eyo,200,20,"Déséquipé")
end
if !accessory
draw_icon(220,160+@exo2,285+OFFSET+@eyo,true)
self.contents.draw_text(184+@exo2,287+OFFSET+@eyo,200,20,"Déséquipé")
end
self.contents.font.color = Color.new(255,255,255,255)
end
 
 
 
self.contents.font.size = Fontsize - 5
self.contents.draw_text(10,120,100,20,Vocab::atk+": ")
self.contents.draw_text(10,120,100,20,(actor.atk-bonus_atk).to_s+" + "+bonus_atk.to_s,2)
 
self.contents.fill_rect(10,140,104,7,back_color)
self.contents.gradient_fill_rect(12,142,((actor.atk-bonus_atk)*100)/MaxStat,3,str_color1,str_color2)
 
self.contents.draw_text(10,150,100,20,Vocab::def+": ")
self.contents.draw_text(10,150,100,20,(actor.def-bonus_def).to_s+" + "+bonus_def.to_s,2)
 
self.contents.fill_rect(10,170,104,7,back_color)
self.contents.gradient_fill_rect(12,172,((actor.def-bonus_def)*100)/MaxStat,3,def_color1,def_color2)
 
self.contents.draw_text(10,180,100,20,Vocab::spi+": ")
self.contents.draw_text(10,180,100,20,(actor.spi-bonus_spi).to_s+" + "+bonus_spi.to_s,2)
 
self.contents.fill_rect(10,200,104,7,back_color)
self.contents.gradient_fill_rect(12,202,((actor.spi-bonus_spi)*100)/MaxStat,3,spi_color1,spi_color2)
 
self.contents.draw_text(10,210,100,20,Vocab::agi+": ")
self.contents.draw_text(10,210,100,20,(actor.agi-bonus_agi).to_s+" + "+bonus_agi.to_s,2)
 
self.contents.fill_rect(10,230,104,7,back_color)
self.contents.gradient_fill_rect(12,232,((actor.agi-bonus_agi)*100)/MaxStat,3,agi_color1,agi_color2)
 
 
if weapon
hit_rate = weapon.hit
else
hit_rate = 95
end
 
 
self.contents.font.size = Fontsize - 5
self.contents.font.color = Color.new(162,212,98,255)
self.contents.draw_text(10,245,100,20,"Attaque max. :",2)
self.contents.draw_text(10,260,100,20,"Frappe (%) :",2)
self.contents.draw_text(10,275,100,20,"Esquive (%) :",2)
self.contents.draw_text(10,290,100,20,"Critique (%) :",2)
 
self.contents.draw_text(120,245,60,20,(actor.atk*4).to_s,0)
self.contents.draw_text(120,260,60,20,actor.base_hit.to_s + "+" + actor.hitr.to_s,0)
self.contents.draw_text(120,275,60,20,actor.base_eva.to_s + "+" +actor.evar.to_s,0)
self.contents.draw_text(120,290,60,20,actor.base_cri.to_s + "+" + actor.crir.to_s,0)
 
self.contents.font.size = Fontsize-6
self.contents.font.color = text_color(16)
self.contents.draw_text(135,260,60,20,"["+PointsPerHIT.to_s+"pt.]",2)
self.contents.draw_text(135,275,60,20,"["+PointsPerEVA.to_s+"pt.]",2)
self.contents.draw_text(135,290,60,20,"["+PointsPerCRIT.to_s+"pt.]",2)
 
#self.contents.draw_text(120,260,60,20,(hit_rate+actor.hit_bonus).to_s,0)
#self.contents.draw_text(120,275,60,20,(evasion+actor.eva).to_s,0)
#self.contents.draw_text(120,290,60,20,(crit+actor.cri_bonus).to_s,0)
 
if LayoutMode == 1
 
self.contents.font.color = Color.new(155,199,206,255)
self.contents.font.size = Fontsize - 8
if weapon
self.contents.draw_text(185+@exo,140+@eyo,100,20,Vocab::atk+"+"+weapon.atk.to_s)
self.contents.draw_text(219+@exo,140+@eyo,100,20,Vocab::def+"+"+weapon.def.to_s)
self.contents.draw_text(253+@exo,140+@eyo,100,20,Vocab::spi+"+"+weapon.spi.to_s)
self.contents.draw_text(287+@exo,140+@eyo,100,20,Vocab::agi+"+"+weapon.agi.to_s)
end
 
if shield
self.contents.draw_text(185+@exo,170+@eyo,100,20,Vocab::atk+"+"+shield.atk.to_s)
self.contents.draw_text(219+@exo,170+@eyo,100,20,Vocab::def+"+"+shield.def.to_s)
self.contents.draw_text(253+@exo,170+@eyo,100,20,Vocab::spi+"+"+shield.spi.to_s)
self.contents.draw_text(287+@exo,170+@eyo,100,20,Vocab::agi+"+"+shield.agi.to_s)
end
 
if helm
self.contents.draw_text(185+@exo,200+@eyo,100,20,Vocab::atk+"+"+helm.atk.to_s)
self.contents.draw_text(219+@exo,200+@eyo,100,20,Vocab::def+"+"+helm.def.to_s)
self.contents.draw_text(253+@exo,200+@eyo,100,20,Vocab::spi+"+"+helm.spi.to_s)
self.contents.draw_text(287+@exo,200+@eyo,100,20,Vocab::agi+"+"+helm.agi.to_s)
end
 
if body
self.contents.draw_text(185+@exo,230+@eyo,100,20,Vocab::atk+"+"+body.atk.to_s)
self.contents.draw_text(219+@exo,230+@eyo,100,20,Vocab::def+"+"+body.def.to_s)
self.contents.draw_text(253+@exo,230+@eyo,100,20,Vocab::spi+"+"+body.spi.to_s)
self.contents.draw_text(287+@exo,230+@eyo,100,20,Vocab::agi+"+"+body.agi.to_s)
end
 
if accessory
self.contents.draw_text(185+@exo,260+@eyo,100,20,Vocab::atk+"+"+accessory.atk.to_s)
self.contents.draw_text(219+@exo,260+@eyo,100,20,Vocab::def+"+"+accessory.def.to_s)
self.contents.draw_text(253+@exo,260+@eyo,100,20,Vocab::spi+"+"+accessory.spi.to_s)
self.contents.draw_text(287+@exo,260+@eyo,100,20,Vocab::agi+"+"+accessory.agi.to_s)
end
end
 
if Mode == 2
self.contents.font.size = Fontsize - 8
self.contents.font.color = Color.new(155,199,206,255)
self.contents.draw_text(23,100,125,20,"POINTS",2)
self.contents.draw_text(29,110,125,20,"REQUIS",2)
self.contents.font.size = Fontsize - 4
self.contents.draw_text(20,125,115,20,required(actor.atk-bonus_atk).to_s,2)
self.contents.draw_text(20,155,115,20,required(actor.def-bonus_def).to_s,2)
self.contents.draw_text(20,185,115,20,required(actor.spi-bonus_spi).to_s,2)
self.contents.draw_text(20,215,115,20,required(actor.agi-bonus_agi).to_s,2)
end
 
if LayoutMode == 2
self.contents.font.color = Color.new(155,199,206,255)
self.contents.font.size = Fontsize - 8
 
if weapon
self.contents.draw_text(185+@exo2,140+OFFSET+@eyo,100,20,Vocab::atk+"+"+weapon.atk.to_s)
self.contents.draw_text(185+@exo2,150+OFFSET+@eyo,100,20,Vocab::def+"+"+weapon.def.to_s)
self.contents.draw_text(253+@exo2,140+OFFSET+@eyo,100,20,Vocab::spi+"+"+weapon.spi.to_s)
self.contents.draw_text(253+@exo2,150+OFFSET+@eyo,100,20,Vocab::agi+"+"+weapon.agi.to_s)
end
 
if shield
self.contents.draw_text(185+@exo2,180+OFFSET+@eyo,100,20,Vocab::atk+"+"+shield.atk.to_s)
self.contents.draw_text(185+@exo2,190+OFFSET+@eyo,100,20,Vocab::def+"+"+shield.def.to_s)
self.contents.draw_text(253+@exo2,180+OFFSET+@eyo,100,20,Vocab::spi+"+"+shield.spi.to_s)
self.contents.draw_text(253+@exo2,190+OFFSET+@eyo,100,20,Vocab::agi+"+"+shield.agi.to_s)
end
 
if helm
self.contents.draw_text(185+@exo2,220+OFFSET+@eyo,100,20,Vocab::atk+"+"+helm.atk.to_s)
self.contents.draw_text(185+@exo2,230+OFFSET+@eyo,100,20,Vocab::def+"+"+helm.def.to_s)
self.contents.draw_text(253+@exo2,220+OFFSET+@eyo,100,20,Vocab::spi+"+"+helm.spi.to_s)
self.contents.draw_text(253+@exo2,230+OFFSET+@eyo,100,20,Vocab::agi+"+"+helm.agi.to_s)
end
 
if body
self.contents.draw_text(185+@exo2,260+OFFSET+@eyo,100,20,Vocab::atk+"+"+body.atk.to_s)
self.contents.draw_text(185+@exo2,270+OFFSET+@eyo,100,20,Vocab::def+"+"+body.def.to_s)
self.contents.draw_text(253+@exo2,260+OFFSET+@eyo,100,20,Vocab::spi+"+"+body.spi.to_s)
self.contents.draw_text(253+@exo2,270+OFFSET+@eyo,100,20,Vocab::agi+"+"+body.agi.to_s)
end
 
if accessory
self.contents.draw_text(185+@exo2,300+OFFSET+@eyo,100,20,Vocab::atk+"+"+accessory.atk.to_s)
self.contents.draw_text(185+@exo2,310+OFFSET+@eyo,100,20,Vocab::def+"+"+accessory.def.to_s)
self.contents.draw_text(253+@exo2,300+OFFSET+@eyo,100,20,Vocab::spi+"+"+accessory.spi.to_s)
self.contents.draw_text(253+@exo2,310+OFFSET+@eyo,100,20,Vocab::agi+"+"+accessory.agi.to_s)
end
end
end
 
def required(base)
return (((base-1)/10)+2).floor
end





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
#==============================================================================
# ** Lettuce_Window_Help
#------------------------------------------------------------------------------
# This window displays property of each attribute
#==============================================================================
class Lettuce_Window_Help < Window_Base
def initialize(index)
super(401,372,144,44)
self.contents = Bitmap.new(width-32,height-32)
self.contents.font.size = Fontsize - 6
refresh(index)
end
 
def refresh(index)
self.contents.clear
self.contents.font.color = text_color(16)
 
case index
when 0
self.contents.draw_text(0,-5,112,20,"HP + "+HPIncreaseBy.to_s)
when 1
self.contents.draw_text(0,-5,112,20,"MP + "+MPIncreaseBy.to_s)
when 2
self.contents.draw_text(0,-5,112,20,Vocab::atk+" + "+IncreaseBy.to_s)
when 3
self.contents.draw_text(0,-5,112,20,Vocab::def+" + "+IncreaseBy.to_s)
when 4
self.contents.draw_text(0,-5,112,20,Vocab::spi+" + "+IncreaseBy.to_s)
when 5
self.contents.draw_text(0,-5,112,20,Vocab::agi+" + "+IncreaseBy.to_s)
when 6
self.contents.draw_text(0,-5,112,20,"HIT + "+HITIncreaseBy.to_s)
when 7
self.contents.draw_text(0,-5,112,20,"EVA + "+EVAIncreaseBy.to_s)
when 8
self.contents.draw_text(0,-5,112,20,"CRIT + "+CRITIncreaseBy.to_s)
end
 
 
end
 
end
end



Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
#==============================================================================
# ** Scene_Stat_Dist
#------------------------------------------------------------------------------
# Performs stat distribution process :)
#==============================================================================
class Scene_Stat_Dist < Scene_Base
 
def initialize(menu_index)
@menu_index = menu_index
end
 
def start
super
create_menu_background
ihp = Vocab::hp
imp = Vocab::mp
i1 = Vocab::atk
i2 = Vocab::def
i3 = Vocab::spi
i4 = Vocab::agi
i5 = "Frappe"
i6 = "Esquive"
i7 = "Critique"
@window_select = Window_Command.new(144,[ihp,imp,i1,i2,i3,i4,i5,i6,i7])
if $position
@window_select.index = $position - 1
else
@window_select.index = 0
end
 
@window_select.active = true
@window_select.x = 401
@window_select.y = 71
 
@window_top = Lettuce_Window_Top.new
@window_points = Lettuce_Window_Points.new(@menu_index)
@window_info = Lettuce_Window_Info.new(@menu_index)
@window_help = Lettuce_Window_Help.new(@window_select.index)
end
 
def terminate
super
dispose_menu_background
@window_top.dispose
@window_points.dispose
@window_info.dispose
@window_help.dispose
@window_select.dispose
end
 
def update
update_menu_background
#@window_points.refresh(@menu_index)
 
@window_select.update
#@window_help.refresh(@window_select.index)
if Input.trigger?(Input::UP) or Input.trigger?(Input::DOWN)
@window_help.refresh(@window_select.index)
end
 
@changes = 0
if Input.trigger?(Input::B)
Sound.play_cancel
$scene = Scene_Map.new
elsif Input.trigger?(Input::R) or Input.trigger?(Input::RIGHT)
@menu_index += 1
@menu_index %= $game_party.members.size
$scene = Scene_Stat_Dist.new(@menu_index)
elsif Input.trigger?(Input::L) or Input.trigger?(Input::LEFT)
@menu_index += $game_party.members.size - 1
@menu_index %= $game_party.members.size
$scene = Scene_Stat_Dist.new(@menu_index)
elsif Input.trigger?(Input::C)
#Points addition begins
#which attribute
if Mode == 1
do_point_reg
elsif Mode == 2
do_point_rag
end
end
 
end
 
def do_point_reg
@att = @window_select.index
 
actor = $game_party.members[@menu_index]
 
##weapons
weapon = $data_weapons[actor.weapon_id]
shield = $data_armors[actor.armor1_id]
helm =$data_armors[actor.armor2_id]
body =$data_armors[actor.armor3_id]
accessory =$data_armors[actor.armor4_id]
 
bonus_atk = 0
bonus_def = 0
bonus_spi = 0
bonus_agi = 0
 
if weapon
bonus_atk += weapon.atk
bonus_def += weapon.def
bonus_spi += weapon.spi
bonus_agi += weapon.agi
end
if shield
bonus_atk += shield.atk
bonus_def += shield.def
bonus_spi += shield.spi
bonus_agi += shield.agi
end
if helm
bonus_atk += helm.atk
bonus_def += helm.def
bonus_spi += helm.spi
bonus_agi += helm.agi
end
if body
bonus_atk += body.atk
bonus_def += body.def
bonus_spi += body.spi
bonus_agi += body.agi
end
if accessory
bonus_atk += accessory.atk
bonus_def += accessory.def
bonus_spi += accessory.spi
bonus_agi += accessory.agi
end
 
case @att
 
when 0 #HP
if actor.points < PointsPerHP
Sound.play_cancel
elsif actor.maxhp >= MaxHP
Sound.play_cancel
else
Sound.play_use_item
$game_party.members[@menu_index].maxhp += HPIncreaseBy
if $game_party.members[@menu_index].maxhp > MaxHP
$game_party.members[@menu_index].maxhp = MaxHP
end
actor.points -= PointsPerHP
@changes += 1
$position = 1
end
 
when 1 #MP
if actor.points < PointsPerMP
Sound.play_cancel
elsif actor.maxmp >= MaxMP
Sound.play_cancel
else
Sound.play_use_item
$game_party.members[@menu_index].maxmp += MPIncreaseBy
if $game_party.members[@menu_index].maxmp > MaxMP
$game_party.members[@menu_index].maxmp = MaxMP
end
actor.points -= PointsPerMP
@changes += 1
$position = 1
end
 
when 2 #ATK
if actor.points < 1
Sound.play_cancel
elsif (actor.atk-bonus_atk) >= MaxStat
Sound.play_cancel
else
Sound.play_use_item
$game_party.members[@menu_index].atk += IncreaseBy
if ($game_party.members[@menu_index].atk-bonus_atk) > MaxStat
$game_party.members[@menu_index].atk = MaxStat+bonus_atk
end
actor.points -= 1
@changes += 1
$position = 1
end
 
when 3 #DEF
if actor.points < 1
Sound.play_cancel
elsif (actor.def-bonus_def) >= MaxStat
Sound.play_cancel
else
Sound.play_use_item
$game_party.members[@menu_index].def += IncreaseBy
if ($game_party.members[@menu_index].def-bonus_def) > MaxStat
$game_party.members[@menu_index].def = MaxStat+bonus_def
end
actor.points -= 1
@changes += 1
$position = 2
end
 
when 4 #SPI
if actor.points < 1
Sound.play_cancel
elsif (actor.spi-bonus_spi) >= MaxStat
Sound.play_cancel
else
Sound.play_use_item
$game_party.members[@menu_index].spi += IncreaseBy
if ($game_party.members[@menu_index].spi-bonus_spi) > MaxStat
$game_party.members[@menu_index].spi = MaxStat+bonus_spi
end
actor.points -= 1
@changes += 1
$position = 3
end
 
when 5 #AGI
if actor.points < 1
Sound.play_cancel
elsif (actor.agi-bonus_agi) >= MaxStat
Sound.play_cancel
else
Sound.play_use_item
$game_party.members[@menu_index].agi += IncreaseBy
if ($game_party.members[@menu_index].agi-bonus_agi) > MaxStat
$game_party.members[@menu_index].agi = MaxStat+bonus_agi
end
actor.points -= 1
@changes += 1
$position = 4
end
 
when 6 #HIT
if actor.points < PointsPerHIT
Sound.play_cancel
elsif actor.hitr >= MaxHIT
Sound.play_cancel
else
Sound.play_use_item
$game_party.members[@menu_index].hitr += HITIncreaseBy
if $game_party.members[@menu_index].hitr > MaxHIT
$game_party.members[@menu_index].hitr = MaxHIT
end
actor.points -= PointsPerHIT
@changes += 1
$position = 1
end
 
when 7 #EVA
if actor.points < PointsPerEVA
Sound.play_cancel
elsif actor.evar >= MaxEVA
Sound.play_cancel
else
Sound.play_use_item
$game_party.members[@menu_index].evar += EVAIncreaseBy
if $game_party.members[@menu_index].evar > MaxEVA
$game_party.members[@menu_index].evar = MaxEVA
end
actor.points -= PointsPerEVA
@changes += 1
$position = 1
end
 
when 8 #CRIT
if actor.points < PointsPerCRIT
Sound.play_cancel
elsif actor.crir >= MaxCRIT
Sound.play_cancel
else
Sound.play_use_item
$game_party.members[@menu_index].crir += CRITIncreaseBy
if $game_party.members[@menu_index].crir > MaxCRIT
$game_party.members[@menu_index].crir = MaxCRIT
end
actor.points -= PointsPerCRIT
@changes += 1
$position = 1
end
end
 
if @changes > 0
@window_info.refresh(@menu_index)
@window_points.refresh(@menu_index)
#$scene = Scene_Stat_Dist.new(@menu_index)
end
end
 
def do_point_rag
@att = @window_select.index
 
actor = $game_party.members[@menu_index]
 
##weapons
weapon = $data_weapons[actor.weapon_id]
shield = $data_armors[actor.armor1_id]
helm =$data_armors[actor.armor2_id]
body =$data_armors[actor.armor3_id]
accessory =$data_armors[actor.armor4_id]
 
bonus_atk = 0
bonus_def = 0
bonus_spi = 0
bonus_agi = 0
 
if weapon
bonus_atk += weapon.atk
bonus_def += weapon.def
bonus_spi += weapon.spi
bonus_agi += weapon.agi
end
if shield
bonus_atk += shield.atk
bonus_def += shield.def
bonus_spi += shield.spi
bonus_agi += shield.agi
end
if helm
bonus_atk += helm.atk
bonus_def += helm.def
bonus_spi += helm.spi
bonus_agi += helm.agi
end
if body
bonus_atk += body.atk
bonus_def += body.def
bonus_spi += body.spi
bonus_agi += body.agi
end
if accessory
bonus_atk += accessory.atk
bonus_def += accessory.def
bonus_spi += accessory.spi
bonus_agi += accessory.agi
end
 
case @att
 
when 0 #HP
if actor.points < PointsPerHP
Sound.play_cancel
elsif actor.maxhp >= MaxHP
Sound.play_cancel
else
Sound.play_use_item
$game_party.members[@menu_index].maxhp += HPIncreaseBy
if $game_party.members[@menu_index].maxhp > MaxHP
$game_party.members[@menu_index].maxhp = MaxHP
end
actor.points -= PointsPerHP
@changes += 1
$position = 1
end
 
when 1 #MP
if actor.points < PointsPerMP
Sound.play_cancel
elsif actor.maxmp >= MaxMP
Sound.play_cancel
else
Sound.play_use_item
$game_party.members[@menu_index].maxmp += MPIncreaseBy
if $game_party.members[@menu_index].maxmp > MaxMP
$game_party.members[@menu_index].maxmp = MaxMP
end
actor.points -= PointsPerMP
@changes += 1
$position = 1
end
 
when 2 #ATK
base_value = actor.atk-bonus_atk
points = actor.points
if enough_point(base_value,points)
Sound.play_cancel
elsif (actor.atk-bonus_atk) >= MaxStat
Sound.play_cancel
else
Sound.play_use_item
$game_party.members[@menu_index].atk += IncreaseBy
if ($game_party.members[@menu_index].atk-bonus_atk) > MaxStat
$game_party.members[@menu_index].atk = MaxStat+bonus_atk
end
actor.points -= required(base_value)
@changes += 1
$position = 1
end
 
when 3 #DEF
base_value = actor.def-bonus_def
points = actor.points
if enough_point(base_value,points)
Sound.play_cancel
elsif (actor.def-bonus_def) >= MaxStat
Sound.play_cancel
else
Sound.play_use_item
$game_party.members[@menu_index].def += IncreaseBy
if ($game_party.members[@menu_index].def-bonus_def) > MaxStat
$game_party.members[@menu_index].def = MaxStat+bonus_def
end
actor.points -= required(base_value)
@changes += 1
$position = 2
end
 
when 4 #SPI
base_value = actor.spi-bonus_spi
points = actor.points
if enough_point(base_value,points)
Sound.play_cancel
elsif (actor.spi-bonus_spi) >= MaxStat
Sound.play_cancel
else
Sound.play_use_item
$game_party.members[@menu_index].spi += IncreaseBy
if ($game_party.members[@menu_index].spi-bonus_spi) > MaxStat
$game_party.members[@menu_index].spi = MaxStat+bonus_spi
end
actor.points -= required(base_value)
@changes += 1
$position = 3
end
when 5 #AGI
base_value = actor.agi-bonus_agi
points = actor.points
if enough_point(base_value,points)
Sound.play_cancel
elsif (actor.agi-bonus_agi) >= MaxStat
Sound.play_cancel
else
Sound.play_use_item
$game_party.members[@menu_index].agi += IncreaseBy
if ($game_party.members[@menu_index].agi-bonus_agi) > MaxStat
$game_party.members[@menu_index].agi = MaxStat+bonus_agi
end
actor.points -= required(base_value)
@changes += 1
$position = 4
end
when 6 #HIT
if actor.points < PointsPerHIT
Sound.play_cancel
elsif actor.hitr >= MaxHIT
Sound.play_cancel
else
Sound.play_use_item
$game_party.members[@menu_index].hitr += HITIncreaseBy
if $game_party.members[@menu_index].hitr > MaxHIT
$game_party.members[@menu_index].hitr = MaxHIT
end
actor.points -= PointsPerHIT
@changes += 1
$position = 1
end
when 7 #EVA
if actor.points < PointsPerEVA
Sound.play_cancel
elsif actor.evar >= MaxEVA
Sound.play_cancel
else
Sound.play_use_item
$game_party.members[@menu_index].evar += EVAIncreaseBy
if $game_party.members[@menu_index].evar > MaxEVA
$game_party.members[@menu_index].evar = MaxEVA
end
actor.points -= PointsPerEVA
@changes += 1
$position = 1
end
when 8 #CRIT
if actor.points < PointsPerCRIT
Sound.play_cancel
elsif actor.crir >= MaxCRIT
Sound.play_cancel
else
Sound.play_use_item
$game_party.members[@menu_index].crir += CRITIncreaseBy
if $game_party.members[@menu_index].crir > MaxCRIT
$game_party.members[@menu_index].crir = MaxCRIT
end
actor.points -= PointsPerCRIT
@changes += 1
$position = 1
end
end
if @changes > 0
@window_points.refresh(@menu_index)
@window_info.refresh(@menu_index)
#$scene = Scene_Stat_Dist.new(@menu_index)
end
end
 
def enough_point(base,points)
required = (((base-1)/10)+2).floor
if required > points
return true
elsif required <= points
return false
end
end
 
def required(base)
return (((base-1)/10)+2).floor
end
 
end
 
 
#=============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
# Giving game actor a point attribute
# -> $game_party.member[x].points
#=============================================================================
 
class Game_Actor < Game_Battler
 
attr_accessor :point
attr_accessor :hit_bonus
attr_accessor :eva_bonus
attr_accessor :cri_bonus
attr_accessor :hitr
attr_accessor :evar
attr_accessor :crir
#attr_accessor :current_lvl_exp
#attr_accessor :next_lvl_exp
alias Lettuce_Game_Actor_Ini initialize
 
def initialize(actor_id)
Lettuce_Game_Actor_Ini(actor_id)
@points = StartPoints
@hitr = 0
@evar = 0
@crir = 0
#@current_lvl_exp = @exp_list[@level-1]
#@next_lvl_exp = @exp_list[@level
end
 
def points
return @points
end
 
#--------------------------------------------------------------------------
# * Get Hit Rate
#--------------------------------------------------------------------------
def hit
if two_swords_style
n1 = weapons[0] == nil ? 95 : weapons[0].hit
n2 = weapons[1] == nil ? 95 : weapons[1].hit
n = [n1, n2].min
else
n = weapons[0] == nil ? 95 : weapons[0].hit
end
if n+@hitr <= MaxHIT
return n+@hitr
else return MaxHIT
end
end
#--------------------------------------------------------------------------
# * Get Evasion Rate
#--------------------------------------------------------------------------
def eva
n = 5
for item in armors.compact do n += item.eva end
if n+@evar <= MaxEVA
return n+@evar
else return MaxEVA
end
end
#--------------------------------------------------------------------------
# * Get Critical Ratio
#--------------------------------------------------------------------------
def cri
n = 4
n += 4 if actor.critical_bonus
for weapon in weapons.compact
n += 4 if weapon.critical_bonus
end
if n+@crir <= MaxCRIT
return n+@crir
else return MaxCRIT
end
end
 
#--------------------------------------------------------------------------
# * Get Hit Rate
#--------------------------------------------------------------------------
def base_hit
if two_swords_style
n1 = weapons[0] == nil ? 95 : weapons[0].hit
n2 = weapons[1] == nil ? 95 : weapons[1].hit
n = [n1, n2].min
else
n = weapons[0] == nil ? 95 : weapons[0].hit
end
return n
end
#--------------------------------------------------------------------------
# * Get Evasion Rate
#--------------------------------------------------------------------------
def base_eva
n = 5
for item in armors.compact do n += item.eva end
return n
end
#--------------------------------------------------------------------------
# * Get Critical Ratio
#--------------------------------------------------------------------------
def base_cri
n = 4
n += 4 if actor.critical_bonus
for weapon in weapons.compact
n += 4 if weapon.critical_bonus
end
return n
end
 
 
#--------------------------------------------------------------------------
# * bonus rates
#--------------------------------------------------------------------------
def hitr
return @hitr
end
 
def evar
return @evar
end
 
def crir
return @crir
end
 
 
 
def current_lvl_exp
return @exp_list[@level]
end
 
def next_lvl_exp
return @exp_list[@level+1]-@exp_list[@level]
end
end



Petites précisions avant de vous laisser pour optimiser le leveling et les stats de vos persos. Dans les statistiques de vos personnages et ceci pour chacun d'entre eux, générez leurs courbes de la manière suivante:
HP: 400 du niveau 1 au niveau 99
MP: 10 du niveau 1 au niveau 99
Force: 18 au niveau 1 et 300 au niveau 99, progression normale.
Défence: 15 au niveau 1 et 300 au niveau 99, progression normale.
Intelligence: 19 au niveau 1 et 300 au niveau 99, progression normale.
Agilité:20 au niveau 1 et 300 au niveau 99, progression normale.

Avec des courbes comme celles-ci vos personnages auront une progression réaliste et complète, sans points en surplus une fois arrivé au niveau 99, et avec assez de points manquants pour que vos personnages soient bien distincts dans leurs capacités.

Et voilà:)

Bon Making à tous!

PS: Voilà une image pour ceux qui se demandent ce que ça donne.
Il est à noter que "Ecran de Symbiose" n'apparait que dans mon jeu, le scripts que je vous ai laissé fera apparaitre "Distribution de statistiques" à la place. De même, "Niveau x" remplacera "Seuil x", et "Mana" et "Santé" sera remplacé par les termes que vous avez choisis dans votre base de donnée à l'onglet "Lexique"

image


PPS: Et maintenant, une demande d'aide:D!
Est-ce que quelqu'un saurait comment faire apparaître automatiquement cet écran après un combat à chaque fois qu'un personnage passe un niveau au cours d'un combat? Parceque j'ai essayé en mettant la commande
" $scene = Scene_Stat_Dist.new(0) "
dans le Game_actor au dessous de Level Up mais ça ne marche pas... L'ecran s'affiche uniquement si un personnage gagne un niveau hors combat...
Je souhaiterai aussi faire en sorte que l'écran soit flashé lorsqu'on ouvre ce menu et que le volume de la musique diminue légèrement.
Merci à ceux qui m'aideront.

Aller à la page: 1

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