Bienvenue visiteur !
|
Statistiques
Liste des membres
Contact
Mentions légales
419 connectés actuellement
30729765 visiteurs depuis l'ouverture
3382 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
❤ 0 Auteur : Vlad, Chronos, Drod
Logiciel : RPG Maker VX
Nombre de scripts : 2
Fonctionnalités
- Ajoute un système de combat en temps réel sur la map (A-RPG), utilisable à l'aide de commentaires.
- Beaucoup d'options de configuration
- Système de mémorisation des sorts et objets utilisés
- HUD pour montrer les HP, MP et les sorts/objets sélectionnés
Si vous souhaitez un script proposant plus d'options sur RPG Maker VX, Vlad a créé un autre script plus complet.
Installation
Les trois scripts sont à installer au-dessus de Main, dans le même ordre que dans la démo.
Utilisation
Créer un ennemi
Sur la map, créez un événement qui servira d'ennemi, avec en commentaire :
* Enemy ID : ID = id de l'ennemi dans la base de données
* Erase Die : Efface l'événement quand l'ennemi meurt
* Die Venue Switch A : Active l'interrupteur local A quand l'ennemi meurt
* Die Venue Switch B : Active l'interrupteur local B quand l'ennemi meurt
* Die Venue Switch C : Active l'interrupteur local C quand l'ennemi meurt
* Die Venue Switch D : Active l'interrupteur local D quand l'ennemi meurt
* Die Switch X : Active l'interrupteur X (id de l'interrupteur) quand l'ennemi meurt
* Die Variable X : Ajoute 1 à la variable id X quand l'ennemi meurt
* Follow X : L'ennemi suit le héros quand celui-ci entre dans son champ de vision (X = champ de vision)
* Kill Weapon ID : L'ennemi n'est vulnérable que face à l'arme à l'id X
* Kill Skill ID : L'ennemi n'est vulnérable que face au sort à l'id X
* Kill Item ID : L'ennemi n'est vulnérable que face à l'objet à l'id X
* Boss : la barre de vie de l'ennemi apparaît au centre de l'écran
Configuration du script
Changer la touche pour attaquer (modifier Letters["A"]) :
1
| Right_Attack_Button = Input::Letters["A"] |
Changer la touche d'attaque à la main gauche avec le bouclier (modifier Letters["S"]) :
1
| Left_Attack_and_Shield_Button = Input::Letters["S"] |
Pour créer des armes, objets ou des sorts avec une animation, copiez Animate_Weapons [X] = [Y,Z] et remplacez Weapons par le type de catégorie, X par le numéro id, Y par le préfixe du nom de charset à utiliser (pose), et Z par l'index dudit charset. Par exemple :
1
2
3
| Animate_Weapons[0] = ["_Attacking",0]
Animate_Skills[0] = ["_Casting",0]
Animate_Items[0] = ["_UsingItem",0] |
Pour créer une arme à longue portée (arc, révolver), copiez Distance_Weapons[ S] = [T, U, V, W, X, Y, Z] et remplacez
S : id de l'arme
T : nom du charset de la munition
U : index du charset (pose)
V : vitesse de propagation
W : portée de l'arme
X : temps d'attente (en frames) avant de pouvoir attaquer de nouveau
Y : munitions utilisées (flèche, balle)
1
| Distance_Weapons[4] = ["$Arrow",0,6,5,30,21,22] |
Pour créer un sort à longue portée, copiez Distance_Skills[ U] = [V, W, X, Y, Z] et remplacez
U : id du sort
V : nom du charset du sort
W : index du charset (pose)
X : vitesse de propagation
Y : portée du sort
Z : temps d'attente (en frames) avant de pouvoir attaquer de nouveau
1
| Distance_Skills[59] = ["Energy Ball",0,4,5,60] |
Pour créer un objet à lancer, copiez Distance_Items[ U] = [V, W, X, Y, Z] et remplacez
U : id de l'objet
V : nom du charset de l'objet
W : index du charset (pose)
X : vitesse de propagation
Y : portée de l'objet
Z : temps d'attente (en frames) avant de pouvoir attaquer de nouveau
1
| Distance_Items[16] = ["Energy Ball",0,6,5,30] |
Pour créer un bouclier, copiez Shields[X] = ["Y",Z] et remplacez X par l'id du bouclier, Y par le préfixe du nom du charset, et Z par l'index du charset à utiliser (pose).
1
| Shields[16] = ["_Shield",0] |
Pour changer l'animation des ennemis, copiez Enemy_animations[X] = [Y, Z] et remplacer X par l'id de l'ennemi, Y par l'id de l'animation quand il meurt, et Z par l'animation de l'attaque.
1
| Enemy_animations[2] = [13,0] |
Bugs connus
- Vous pouvez attaquer avec la boîte de dialogue active. Pour corriger le bug (avec la démo 2.05 en téléchargement), vous devez remplacer les lignes 637 à 655 par :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| unless $game_map.interpreter.running?
if Input.trigger?(Crissaegrim_ABS::Right_Attack_Button) and @deffending == false
@attack_weapon = @actor.weapon_id
anime_hero_attack if @anime_attack_time <= 0
if Crissaegrim_ABS::Distance_Weapons.has_key?(@attack_weapon) and @attack_weapon != 0 and @right_attack_time <= 0
@right_attack = true
@left_attack = false
@skill_attack = false
@item_attack = false
@deffending = false
range_attack_right
if $game_party.has_item?($data_items[Crissaegrim_ABS::Distance_Weapons[@attack_weapon][5]])
Audio.se_play("Audio/SE/"+Crissaegrim_ABS::Weapon_Shot_SE[@attack_weapon],80,100) if Crissaegrim_ABS::Weapon_Shot_SE[@attack_weapon] != nil and Crissaegrim_ABS::Weapon_Shot_SE[@attack_weapon] != ""
else
Sound.play_buzzer
end
else
normal_attack_right
end
end
end |
Conditions d'utilisation
Démo
Version 2.05 + HUD 2.0 (anglais) (Archive)
Archive de la traduction française par nova (non recommandée car non à jour) :
Spoiler (cliquez pour afficher) Voilà, il y a trois scripts à placer au dessus de Main :
Premier script :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| # Anti Lag
# Traduit par nova
# http://rpgnation.free.fr
#==============================================================================
module AntiLag
SPC = Win32API.new("kernel32", "SetPriorityClass", "pi", "i")
@@high_priority = false
def self.high_priority ; @@high_priority; end
def self.high_priority?; @@high_priority; end
def self.high_priority=(valor)
return if @@high_priority == valor
@@high_priority = valor
if @@high_priority
SPC.call(-1, 0x80)
return
end
SPC.call(-1, 0x20)
end
end
AntiLag.high_priority = true |
Deuxième script, placez-le en dessous du premier et nommez le "HUD".
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
| #=================================
# Window Hud
# Traduit par nova
# http://rpgnation.free.fr
#=================================
module CrissaegrimHud
#----------------------------------------------------------
# Image du HUD
Picture_Base = "HUD-Base"
# Image des compétences
Picture_Hot_Skills = "HUD-Skills"
# Image des objets
Picture_Hot_Items = "HUD-Items"
# Active ou désactive le HUD
# Si = 0, alors le HUD restera affiché
OnOff_Hud_Switch = 0
#----------------------------------------------------------
end
#----------------------------------------------------------
class Window_CrissaegrimHud < Window_Base
def initialize
super(-12,-12,190,117)
self.opacity = 0
self.visible = false
update
end
def update
if CrissaegrimHud::OnOff_Hud_Switch == 0
self.visible = true
self.active = true
else
if $game_switches[CrissaegrimHud::OnOff_Hud_Switch] == true
self.visible = true
self.active = true
else
self.visible = false
self.active = false
end
end
self.contents.clear
bitmap = Cache.system(CrissaegrimHud::Picture_Base)
self.contents.blt(0, 0, bitmap, Rect.new(0, 0, 148, 85))
refresh
end
def refresh
actor = $game_actors[1]
draw_actor_hp(actor, 16, 0, 96)
draw_actor_mp(actor, 16, 24, 96)
draw_actor_level(actor, 16, 48)
show_state(actor, 119, 2)
end
def show_state(actor, x, y, width = 32)
count = 0
for state in actor.states
draw_icon(state.icon_index, x, y + 28 * count)
count += 1
break if (24 * count > height - 24)
end
end
end
#----------------------------------------------------------
class Window_CrissaegrimHud2 < Window_Base
def initialize
super(40,347,296,80)
self.opacity = 0
self.visible = false
update
end
def update
if CrissaegrimHud::OnOff_Hud_Switch == 0
self.visible = true
self.active = true
else
if $game_switches[CrissaegrimHud::OnOff_Hud_Switch] == true
self.visible = true
self.active = true
else
self.visible = false
self.active = false
end
end
self.contents.clear
bitmap = Cache.system(CrissaegrimHud::Picture_Hot_Skills)
self.contents.blt(0, 0, bitmap, Rect.new(0, 0, 156, 48))
skill_count = 0
for button in Crissaegrim_ABS::Skill_Button.keys
next if button == nil
skill = $data_skills[Crissaegrim_ABS::Skill_Button[button]]
next if skill == nil
show_icon(skill, 10 + 28 * skill_count, 8)
self.contents.font.size = 16
# self.contents.draw_text(16 + 28 * skill_count, 26, 32, 18, "")
skill_count += 1
end
end
def show_icon(item, x, y, enabled = true)
if item != nil
draw_icon(item.icon_index, x, y, enabled)
self.contents.font.color = normal_color
self.contents.font.color.alpha = enabled ? 255 : 128
end
end
end
#----------------------------------------------------------
class Window_CrissaegrimHud3 < Window_Base
def initialize
super(-12,225,80,202)
self.opacity = 0
self.visible = false
update
end
def update
if CrissaegrimHud::OnOff_Hud_Switch == 0
self.visible = true
self.active = true
else
if $game_switches[CrissaegrimHud::OnOff_Hud_Switch] == true
self.visible = true
self.active = true
else
self.visible = false
self.active = false
end
end
self.contents.clear
bitmap = Cache.system(CrissaegrimHud::Picture_Hot_Items)
self.contents.blt(0, 0, bitmap, Rect.new(0, 0, 48, 170))
item_count = 0
for button in Crissaegrim_ABS::Item_Button.keys
next if button == nil
item = $data_items[Crissaegrim_ABS::Item_Button[button]]
next if item == nil
show_item_icon(item, 4, 8 + 30 * item_count)
self.contents.font.size = 16
self.contents.draw_text(28, 12 + 30 * item_count, 32, 18, $game_party.item_number(item))
item_count += 1
end
end
def show_item_icon(item, x, y, enabled = true)
if item != nil
draw_icon(item.icon_index, x, y, enabled)
self.contents.font.color = normal_color
self.contents.font.color.alpha = enabled ? 255 : 128
end
end
end
#----------------------------------------------------------
class Scene_Map
alias hud_start start
alias hud_update update
alias hud_terminate terminate
def start
super
@hud = Window_CrissaegrimHud.new
@hud2 = Window_CrissaegrimHud2.new
@hud3 = Window_CrissaegrimHud3.new
hud_start
end
def update
super
@hud.update
@hud2.update
@hud3.update
hud_update
end
def terminate
super
@hud.dispose
@hud2.dispose
@hud3.dispose
hud_terminate
end
end |
Troisième script qui s'apellera"ABS" :
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
| #==============================================================================
# Crissaegrim ABS
# Traduit par nova
# http://rpgnation.free.fr
#==============================================================================
#--------------------------------------------------------------
# Crédits : Vlad, Chronos, Drod, nova (traduction)
#--------------------------------------------------------------
# Pour créer un monstre, créer un event :
# Enemy ID - L'ID de l'ennemi correspond à la base de données;
# Die X - onde X = 0 ou 1,2,3,4 (0 disparait après l'avoir tué, 1 active l'interupteur local 'A', 2 active l'interupteur local 'B', 3 active l'interupteur local 'C', 4 active l'interupteur local 'D')
# OBS.: entre X et X > 4 ,activer un interupteur X;
# Follow X - Pour que l'event suit le héros. X indique le nombre de pas necessaire pour que l'event se déplace en direction du héros.
#--------------------------------------------------------------
# Configuration général
#--------------------------------------------------------------
module Crissaegrim_ABS
#--------------------------------------------------------------
# Pour lancer une attaque physique, appuyez sur A :
Attack_Button = Input::X
#--------------------------------------------------------------
# Pour lancer une compétence, appuyez sur S ou D :
Skill_Button = {Input::Y=> 0,
Input::Z => 0}
#--------------------------------------------------------------
# Pour utiliser un objet, appuyez sur Q ou W :
Item_Button = {Input::L => 0,
Input::R => 0}
#--------------------------------------------------------------
Distance_Weapons = {}
# Armes à distance.
# Pour utiliser une arme à distance, faites: Distance_Weapons[U] = [V, W, X, Y, Z] :
# U : ID de l'arme, V:Cases, W:Vitesse, X:Distance, Y:Munitions, Z:Temps d'attente avant l'attaque
# PS: Le graphique de projectile doit être seul.
Distance_Weapons[4] = ["!$Arrow", 6, 5, 21, 30]
#--------------------------------------------------------------
Distance_Skills = {}
# Compétences à distance.
# Pour utiliser une compétence à distance, faites: Distance_Skills[V] = [W, X, Y, Z] e mude:
# U : ID de l'arme, V:Cases, W:Vitesse, X:Distance, Y:Munitions, Z:Temps d'attente avant l'attaque
# PS: Le graphique de projectile doit être seul.
Distance_Skills[59] = ["!$FireBall", 4, 5, 60]
Distance_Skills[63] = ["!$EnergyBall_2", 4, 5, 60]
Distance_Skills[67] = ["!$EnergyBall_6", 4, 5, 60]
Distance_Skills[71] = ["!$EnergyBall", 4, 5, 60]
Distance_Skills[73] = ["!$EnergyBall_6", 4, 5, 60]
Distance_Skills[76] = ["!$EnergyBall_5", 4, 5, 60]
Distance_Skills[79] = ["!$EnergyBall_4", 4, 5, 60]
#--------------------------------------------------------------
Distance_Items = {}
# Objets à distances.
# Pour utiliser un objet à distance, faites: Distance_Items[U] = [V, W, X, Y, Z] e mude:
## U : ID de l'arme, V:Cases, W:Vitesse, X:Distance, Y:Munitions, Z:Temps d'attente avant l'attaque
# PS: Le graphique de projectile doit être seul.
Distance_Items[16] = ["!$EnergyBall_3", 6, 5, 16, 30]
Distance_Items[18] = ["!$EnergyBall", 6, 5, 18, 30]
Distance_Items[20] = ["!$EnergyBall_6", 6, 5, 20, 30]
#--------------------------------------------------------------
# Animation quand le héros passe au niveau supérieur.
#Changement de 40 à l'ID de l'animation.
LevelUp_Ani = 40
#--------------------------------------------------------------
#Animation de l'attaque ennemi, faites Enemy_atk_ani[X] = Y
# et faites remplacer le X par l'ID de l'ennemi, et Y par l'ID de l'animation.
Enemy_atk_ani = {}
Enemy_atk_ani[2] = 13
Enemy_atk_ani[3] = 19
#--------------------------------------------------------------
end
#==============================================================================
#--------------------------------------------------------------
# Game Character
#--------------------------------------------------------------
class Game_Character
attr_accessor :hp
attr_accessor :mp
attr_accessor :damage
attr_accessor :critical
attr_accessor :wait_action
attr_accessor :die
alias crissaegrim_abs_gchar_initialize initialize
def initialize
@hp = 0
@mp = 0
@die = 0
@wait_action = 0
@damage = nil
@critical = false
crissaegrim_abs_gchar_initialize
end
def recive_atk(attacker)
attacker_status = (attacker.is_a?(Game_Event) ? attacker.enemy_status : $game_actors[1])
receptor_status = (self.is_a?(Game_Event) ? self.enemy_status : $game_actors[1])
if self.is_a?(Game_Player)
$game_actors[1].attack_effect(attacker_status)
dmg = $game_actors[1].make_attack_damage_value(attacker_status)
$game_player.damage = dmg
$scene = Scene_Gameover.new if $game_actors[1].hp <= 0
elsif self.is_a?(Game_Event)
self.enemy_status.make_attack_damage_value(attacker_status)
dmg = self.enemy_status.make_attack_damage_value(attacker_status)
self.damage = dmg
self.hp -= dmg
self.kill_enemy if self.hp <= 0
end
end
def recive_skill(attacker, skill)
attacker_status = (attacker.is_a?(Game_Event) ? attacker.enemy_status : $game_actors[1])
receptor_status = (self.is_a?(Game_Event) ? self.enemy_status : $game_actors[1])
if self.is_a?(Game_Player)
dmag = $game_actors[1].make_obj_damage_value($game_actors[1], $data_skills[skill])
$game_actors[1].skill_effect($game_actors[1], $data_skills[skill])
$game_player.damage = dmag
$scene = Scene_Gameover.new if $game_actors[1].hp <= 0
elsif self.is_a?(Game_Event)
dmg = enemy_status.make_obj_damage_value(enemy_status, $data_skills[skill])
enemy_status.skill_effect(enemy_status, $data_skills[skill])
self.hp -= dmg
self.damage = dmg
self.kill_enemy if self.hp <= 0
end
end
def recive_itemeffect(attacker, item)
attacker_status = (attacker.is_a?(Game_Event) ? attacker.enemy_status : $game_actors[1])
receptor_status = (self.is_a?(Game_Event) ? self.enemy_status : $game_actors[1])
if self.is_a?(Game_Player)
dmag = $game_actors[1].make_obj_damage_value($game_actors[1], $data_items[item])
$game_actors[1].item_effect($game_actors[1], $data_items[item])
$game_player.damage = dmag
$scene = Scene_Gameover.new if $game_actors[1].hp <= 0
elsif self.is_a?(Game_Event)
dmg = enemy_status.make_obj_damage_value(enemy_status, $data_items[item])
enemy_status.item_effect($game_actors[1], $data_items[item])
self.hp -= dmg
self.damage = dmg
self.kill_enemy if self.hp <= 0
end
end
def kill_enemy
$game_actors[1].gain_exp(enemy_status.exp, 1)
Sound::play_enemy_collapse
if @die == 0
self.erase
elsif @die == 1
key = [$game_map.map_id, self.id, "A"]
$game_self_switches[key] = true
elsif @die == 2
key = [$game_map.map_id, self.id, "B"]
$game_self_switches[key] = true
elsif @die == 3
key = [$game_map.map_id, self.id, "C"]
$game_self_switches[key] = true
elsif @die == 4
key = [$game_map.map_id, self.id, "D"]
$game_self_switches[key] = true
else
$game_switches[@die] = true
$game_map.need_refresh = true
end
@automove = false
refresh
end
def follow_hero(dx, dy)
sx = @x - dx
sy = @y - dy
if sx == 0 and sy == 0
return
end
abs_sx = sx.abs
abs_sy = sy.abs
if abs_sx == 0
sy > 0 ? move_up : move_down
if not moving? and sx != 0
sx > 0 ? move_left : move_right
end
return
elsif abs_sy == 0
sx > 0 ? move_left : move_right
if not moving? and sy != 0
sy > 0 ? move_up : move_down
end
return
end
if abs_sx == abs_sy
rand(2) == 0 ? abs_sx += 1 : abs_sy += 1
end
if abs_sx > abs_sy
sx > 0 ? move_left : move_right
if not moving? and sy != 0
sy > 0 ? move_up : move_down
end
else
sy > 0 ? move_up : move_down
if not moving? and sx != 0
sx > 0 ? move_left : move_right
end
end
end
end
#--------------------------------------------------------------
# Game Event
#--------------------------------------------------------------
class Game_Event < Game_Character
attr_reader :inimigo
attr_reader :enemy_status
attr_accessor :move_speed
attr_accessor :through
alias crissaegrim_abs_gevent_initialize initialize
alias crissaegrim_abs_gevent_update update
alias crissaegrim_abs_gevent_refresh refresh
def initialize(map_id, event)
@inimigo = false
@automove = false
crissaegrim_abs_gevent_initialize(map_id, event)
end
def update
crissaegrim_abs_gevent_update
if self.wait_action > 0
self.wait_action -= 1
end
if @inimigo
new_x = (@x + (@direction == 4 ? -1 : @direction == 6 ? 1 : 0))
new_y = (@y + (@direction == 8 ? -1 : @direction == 2 ? 1 : 0))
if $game_player.x == new_x and $game_player.y == new_y and self.wait_action <= 0
for action in $data_enemies[@enemy_id].actions
next unless enemy_status.conditions_met?(action)
case action.kind
when 0
case action.basic
when 0
$game_player.recive_atk(self)
$game_player.animation_id = self.enemy_atk_animation_id
$game_player.jump(0,0)
when 1..3
return
end
when 1
case $data_skills[action.skill_id].scope
when 1..6
if $data_enemies[@enemy_id].maxmp >= $data_skills[action.skill_id].mp_cost
$data_enemies[@enemy_id].maxmp -= $data_skills[action.skill_id].mp_cost
$game_player.animation_id = $data_skills[action.skill_id].animation_id
$game_player.jump(0,0)
$game_player.recive_skill(self, action.skill_id)
end
when 7..11
if $data_enemies[@enemy_id].maxmp >= $data_skills[action.skill_id].mp_cost
$data_enemies[@enemy_id].maxmp -= $data_skills[action.skill_id].mp_cost
enemy_status.skill_effect(enemy_status, $data_skills[action.skill_id])
rec = enemy_status.make_obj_damage_value(enemy_status, $data_skills[action.skill_id])
self.hp -= rec
self.animation_id = $data_skills[action.skill_id].animation_id
end
end
end
end
speed = $data_enemies[@enemy_id].agi / 10
self.wait_action = 60 - speed
end
end
if @automove
unless moving?
self.follow_hero($game_player.x, $game_player.y) if in_range?(self, $game_player, @follow_distance)
end
end
end
def in_range?(event, target, distance)
x = (event.x - target.x) * (event.x - target.x)
y = (event.y - target.y) * (event.y - target.y)
r = x + y
return true if r <= (distance * distance)
return false
end
def refresh
crissaegrim_abs_gevent_refresh
@inimigo = false
@enemy_id = check_comment("Enemy")
@die = check_comment("Die")
@follow_distance = check_comment("Follow")
@automove = true if @follow_distance > 0
if @enemy_id > 0
@inimigo = true
@enemy_status = Game_Enemy.new(1, @enemy_id)
self.hp = @enemy_status.maxhp
self.mp = @enemy_status.maxmp
end
end
def check_com(comentario)
return false if @list.nil? or @list.size <= 0
for item in @list
if item.code == 108 or item.code == 408
if item.parameters[0].downcase.include?(comentario.downcase)
return true
end
end
end
end
def check_comment(comentario)
com = comentario.downcase
return 0 if @list.nil? or @list.size <= 0
for item in @list
if item.code == 108 or item.code == 408
if item.parameters[0].downcase =~ /#{com}[ ]?(\d+)?/
return $1.to_i
end
end
end
return 0
end
def enemy_atk_animation_id
if Crissaegrim_ABS::Enemy_atk_ani[@enemy_id]
return (@enemy_status.nil? ? 0 : Crissaegrim_ABS::Enemy_atk_ani[@enemy_id])
else
return (@enemy_status.nil? ? 0 : 1)
end
end
end
#--------------------------------------------------------------
# Game Player
#--------------------------------------------------------------
class Game_Player < Game_Character
alias crissaegrim_abs_gplayer_initialize initialize
alias crissaegrim_abs_gplayer_update update
alias crissaegrim_abs_gplayer_refresh refresh
def initialize
crissaegrim_abs_gplayer_initialize
@distance = Distance_Base.new
end
def update
crissaegrim_abs_gplayer_update
if self.wait_action > 0
self.wait_action -= 1
end
@distance.update
#--------------------------------------------------------------
if Input.trigger?(Crissaegrim_ABS::Attack_Button) and self.wait_action <= 0
if Crissaegrim_ABS::Distance_Weapons.has_key?($game_actors[1].weapon_id)
hero_x = ($game_player.x + ($game_player.direction == 4 ? -1 : $game_player.direction == 6 ? 1 : 0))
hero_y = ($game_player.y + ($game_player.direction == 8 ? -1 : $game_player.direction == 2 ? 1 : 0))
if $game_map.passable?(hero_x, hero_y) or $game_map.passable?(hero_x, hero_y, 0x02)
if $game_party.has_item?($data_items[Crissaegrim_ABS::Distance_Weapons[$game_actors[1].weapon_id][3]])
$game_map.events[1].moveto(hero_x, hero_y)
$game_map.events[1].set_graphic(Crissaegrim_ABS::Distance_Weapons[$game_actors[1].weapon_id][0],0)
$game_map.events[1].move_speed = Crissaegrim_ABS::Distance_Weapons[$game_actors[1].weapon_id][1]
$game_map.events[1].through = true
$game_party.consume_item($data_items[Crissaegrim_ABS::Distance_Weapons[$game_actors[1].weapon_id][3]])
case $game_player.direction
when 2
$game_map.events[1].turn_down
when 4
$game_map.events[1].turn_left
when 6
$game_map.events[1].turn_right
when 8
$game_map.events[1].turn_up
end
end
self.wait_action = Crissaegrim_ABS::Distance_Weapons[$game_actors[1].weapon_id][4]
end
else
new_x = (@x + ($game_player.direction == 4 ? -1 : $game_player.direction == 6 ? 1 : 0))
new_y = (@y + ($game_player.direction == 8 ? -1 : $game_player.direction == 2 ? 1 : 0))
for event in $game_map.events.values
if event.inimigo
if event.x == new_x and event.y == new_y
event.recive_atk(self)
event.animation_id = self.player_atk_animation_id
event.jump(0,0)
speed = $game_actors[1].agi / 10
self.wait_action = 60 - speed
break
end
end
end
end
end</pre></td></tr></table></p><p class="margedix">
2eme partie du script 3 :
</p><P CLASS="couleur" STYLE="margin-left:10">
Portion de code:</p>
<p style="margin-left:20px"><TABLE CLASS="onirotable" STYLE="border-color: D7D4E9;"><tr><td width="90%" CLASS="onirotd" style="border-color: D7D4E9;background-color: #565A6D">
<pre>
if Crissaegrim_ABS::Distance_Weapons.has_key?($game_actors[1].weapon_id)
$game_map.events[1].refresh
weapon_x = $game_map.events[1].x
weapon_y = $game_map.events[1].y
for event in $game_map.events.values
if event.inimigo
if event.x == weapon_x and event.y == weapon_y
event.recive_atk(self)
event.animation_id = self.player_atk_animation_id
event.jump(0,0)
$game_map.events[1].set_graphic("",0)
$game_map.events[1].moveto(0,0)
end
end
end
end
#--------------------------------------------------------------
for button in Crissaegrim_ABS::Skill_Button.keys
if Input.trigger?(button) and Crissaegrim_ABS::Skill_Button[button] != nil and Crissaegrim_ABS::Skill_Button[button] != 0 and $game_actors[1].mp >= $data_skills[Crissaegrim_ABS::Skill_Button[button]].mp_cost and self.wait_action <= 0
@skl = Crissaegrim_ABS::Skill_Button[button]
$game_temp.common_event_id = $data_skills[@skl].common_event_id if $data_skills[@skl].common_event_id > 0
Sound.play_use_skill
if Crissaegrim_ABS::Distance_Skills.has_key?(@skl)
hero_x = ($game_player.x + ($game_player.direction == 4 ? -1 : $game_player.direction == 6 ? 1 : 0))
hero_y = ($game_player.y + ($game_player.direction == 8 ? -1 : $game_player.direction == 2 ? 1 : 0))
if $game_map.passable?(hero_x, hero_y) or $game_map.passable?(hero_x, hero_y, 0x02)
if $game_actors[1].mp >= $data_skills[@skl].mp_cost
$game_map.events[1].moveto(hero_x, hero_y)
$game_map.events[1].set_graphic(Crissaegrim_ABS::Distance_Skills[@skl][0],0)
$game_map.events[1].move_speed = Crissaegrim_ABS::Distance_Skills[@skl][1]
$game_map.events[1].through = true
$game_actors[1].mp -= $game_actors[1].calc_mp_cost($data_skills[@skl])
case $game_player.direction
when 2
$game_map.events[1].turn_down
when 4
$game_map.events[1].turn_left
when 6
$game_map.events[1].turn_right
when 8
$game_map.events[1].turn_up
end
end
self.wait_action = Crissaegrim_ABS::Distance_Skills[@skl][3]
end
else
case $data_skills[@skl].scope
when 1..6
new_x = (@x + ($game_player.direction == 4 ? -1 : $game_player.direction == 6 ? 1 : 0))
new_y = (@y + ($game_player.direction == 8 ? -1 : $game_player.direction == 2 ? 1 : 0))
for event in $game_map.events.values
if event.inimigo
if event.x == new_x and event.y == new_y
$game_actors[1].mp -= $game_actors[1].calc_mp_cost($data_skills[@skl])
event.recive_skill(self, @skl)
event.animation_id = self.player_skl_animation_id(@skl)
event.jump(0,0)
end
end
end
when 7..11
$game_actors[1].mp -= $game_actors[1].calc_mp_cost($data_skills[@skl])
$game_player.animation_id = player_skl_animation_id(@skl)
$game_actors[1].skill_effect($game_actors[1], $data_skills[@skl])
end
speed = $game_actors[1].agi / 10
self.wait_action = 60 - speed
break
end
end
end
if Crissaegrim_ABS::Distance_Skills.has_key?(@skl)
$game_map.events[1].refresh
weapon_x = $game_map.events[1].x
weapon_y = $game_map.events[1].y
for event in $game_map.events.values
if event.inimigo
if event.x == weapon_x and event.y == weapon_y
event.recive_skill(self, @skl)
event.animation_id = self.player_skl_animation_id(@skl)
event.jump(0,0)
$game_map.events[1].set_graphic("",0)
$game_map.events[1].moveto(0,0)
end
end
end
end
#--------------------------------------------------------------
for button in Crissaegrim_ABS::Item_Button.keys
if Input.trigger?(button) and Crissaegrim_ABS::Item_Button[button] != nil and Crissaegrim_ABS::Item_Button[button] != 0 and $game_party.item_number($data_items[Crissaegrim_ABS::Item_Button[button]]) > 0 and self.wait_action <= 0
@itm = Crissaegrim_ABS::Item_Button[button]
$game_temp.common_event_id = $data_items[@itm].common_event_id if $data_items[@itm].common_event_id > 0
if Crissaegrim_ABS::Distance_Items.has_key?(@itm)
hero_x = ($game_player.x + ($game_player.direction == 4 ? -1 : $game_player.direction == 6 ? 1 : 0))
hero_y = ($game_player.y + ($game_player.direction == 8 ? -1 : $game_player.direction == 2 ? 1 : 0))
if $game_map.passable?(hero_x, hero_y) or $game_map.passable?(hero_x, hero_y, 0x02)
if $game_party.has_item?($data_items[Crissaegrim_ABS::Distance_Items[@itm][3]])
$game_map.events[1].moveto(hero_x, hero_y)
$game_map.events[1].set_graphic(Crissaegrim_ABS::Distance_Items[@itm][0],0)
$game_map.events[1].move_speed = Crissaegrim_ABS::Distance_Items[@itm][1]
$game_map.events[1].through = true
$game_party.consume_item($data_items[Crissaegrim_ABS::Distance_Items[@itm][3]])
case $game_player.direction
when 2
$game_map.events[1].turn_down
when 4
$game_map.events[1].turn_left
when 6
$game_map.events[1].turn_right
when 8
$game_map.events[1].turn_up
end
end
self.wait_action = Crissaegrim_ABS::Distance_Items[@itm][4]
end
else
case $data_items[@itm].scope
when 1..6
new_x = (@x + ($game_player.direction == 4 ? -1 : $game_player.direction == 6 ? 1 : 0))
new_y = (@y + ($game_player.direction == 8 ? -1 : $game_player.direction == 2 ? 1 : 0))
for event in $game_map.events.values
if event.inimigo
if event.x == new_x and event.y == new_y
event.recive_itemeffect(self, @itm)
event.animation_id = $data_items[@itm].animation_id
$game_party.consume_item($data_items[@itm])
event.jump(0,0)
end
end
end
when 7..11
$game_player.animation_id = player_item_animation_id(@itm)
$game_actors[1].item_effect($game_actors[1], $data_items[@itm])
$game_party.consume_item($data_items[@itm])
$game_temp.common_event_id = $data_items[@itm].common_event_id if $data_items[@itm].common_event_id > 0
end
speed = $game_actors[1].agi / 10
self.wait_action = 60 - speed
end
end
end
if Crissaegrim_ABS::Distance_Items.has_key?(@itm)
$game_map.events[1].refresh
weapon_x = $game_map.events[1].x
weapon_y = $game_map.events[1].y
for event in $game_map.events.values
if event.inimigo
if event.x == weapon_x and event.y == weapon_y
event.recive_itemeffect(self, @itm)
event.animation_id = $data_items[@itm].animation_id
event.jump(0,0)
$game_map.events[1].set_graphic("",0)
$game_map.events[1].moveto(0,0)
end
end
end
end
#--------------------------------------------------------------
def player_atk_animation_id
return ($game_actors[1].nil? ? 0 : $game_actors[1].atk_animation_id)
end
def player_skl_animation_id(skl)
return ($game_actors[1].nil? ? 0 : $data_skills[skl].animation_id)
end
def player_item_animation_id(itm)
return ($game_actors[1].nil? ? 0 : $data_items[itm].animation_id)
end
end
end
#--------------------------------------------------------------
# Game Actor
#--------------------------------------------------------------
class Game_Actor
alias crissaegrim_abs_change_exp change_exp
def change_exp(exp, show)
last_level = @level
last_skills = skills
@exp = [[exp, 9999999].min, 0].max
while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
level_up
end
while @exp < @exp_list[@level]
level_down
end
@hp = [@hp, maxhp].min
@mp = [@mp, maxmp].min
if show and @level > last_level
show_level_up
end
crissaegrim_abs_change_exp(exp,show)
end
def show_level_up
$game_player.animation_id = Crissaegrim_ABS::LevelUp_Ani
$game_actors[1].hp = $game_actors[1].maxhp
$game_actors[1].mp = $game_actors[1].maxmp
$game_player.damage = "Niv. +"
end
end
#--------------------------------------------------------------
# Distance Weapons
#--------------------------------------------------------------
class Distance_Base < Game_Character
def initialize
refresh
end
def refresh
if Crissaegrim_ABS::Distance_Weapons.has_key?($game_actors[1].weapon_id)
weapondistance_x = ($game_map.events[1].x + ($game_map.events[1].direction == 4 ? -1 : $game_map.events[1].direction == 6 ? 1 : 0))
weapondistance_y = ($game_map.events[1].y + ($game_map.events[1].direction == 8 ? -1 : $game_map.events[1].direction == 2 ? 1 : 0))
if $game_map.passable?(weapondistance_x, weapondistance_y) or $game_map.passable?(weapondistance_x, weapondistance_y, 0x02)
unless $game_map.events[1].moving?; $game_map.events[1].move_away_from_player end
end
if $game_map.events[1].moving? == false
$game_map.events[1].set_graphic("",0)
$game_map.events[1].moveto(0, 0)
end
end
for button in Crissaegrim_ABS::Skill_Button.keys
if Crissaegrim_ABS::Distance_Skills.has_key?(Crissaegrim_ABS::Skill_Button[button])
weapondistance_x = ($game_map.events[1].x + ($game_map.events[1].direction == 4 ? -1 : $game_map.events[1].direction == 6 ? 1 : 0))
weapondistance_y = ($game_map.events[1].y + ($game_map.events[1].direction == 8 ? -1 : $game_map.events[1].direction == 2 ? 1 : 0))
if $game_map.passable?(weapondistance_x, weapondistance_y) or $game_map.passable?(weapondistance_x, weapondistance_y, 0x02)
unless $game_map.events[1].moving?; $game_map.events[1].move_away_from_player end
end
if $game_map.events[1].moving? == false
$game_map.events[1].set_graphic("",0)
$game_map.events[1].moveto(0, 0)
end
end
end
for key in Crissaegrim_ABS::Item_Button.keys
if Crissaegrim_ABS::Distance_Items.has_key?(Crissaegrim_ABS::Item_Button[key])
weapondistance_x = ($game_map.events[1].x + ($game_map.events[1].direction == 4 ? -1 : $game_map.events[1].direction == 6 ? 1 : 0))
weapondistance_y = ($game_map.events[1].y + ($game_map.events[1].direction == 8 ? -1 : $game_map.events[1].direction == 2 ? 1 : 0))
if $game_map.passable?(weapondistance_x, weapondistance_y) or $game_map.passable?(weapondistance_x, weapondistance_y, 0x02)
unless $game_map.events[1].moving?; $game_map.events[1].move_away_from_player end
end
if $game_map.events[1].moving? == false
$game_map.events[1].set_graphic("",0)
$game_map.events[1].moveto(0, 0)
end
end
end
end |
Et enfin la troisième partie :
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
| def update
if Crissaegrim_ABS::Distance_Weapons.has_key?($game_actors[1].weapon_id)
case $game_player.direction
when 2
map_height = $game_player.y + Crissaegrim_ABS::Distance_Weapons[$game_actors[1].weapon_id][2]
when 4
map_width = $game_player.x - Crissaegrim_ABS::Distance_Weapons[$game_actors[1].weapon_id][2]
when 6
map_width = $game_player.x + Crissaegrim_ABS::Distance_Weapons[$game_actors[1].weapon_id][2]
when 8
map_height = $game_player.y - Crissaegrim_ABS::Distance_Weapons[$game_actors[1].weapon_id][2]
end
if Crissaegrim_ABS::Distance_Weapons.has_key?($game_actors[1].weapon_id)
if map_width == $game_map.events[1].x or $game_map.events[1].x == 0
$game_map.events[1].set_graphic("",0)
$game_map.events[1].moveto(0, 0)
elsif map_height == $game_map.events[1].y or $game_map.events[1].y == 0
$game_map.events[1].set_graphic("",0)
$game_map.events[1].moveto(0, 0)
end
end
refresh
end
for button in Crissaegrim_ABS::Skill_Button.keys
if Crissaegrim_ABS::Distance_Skills.has_key?(Crissaegrim_ABS::Skill_Button[button])
case $game_player.direction
when 2
map_height = $game_player.y + Crissaegrim_ABS::Distance_Skills[Crissaegrim_ABS::Skill_Button[button]][2]
when 4
map_width = $game_player.x - Crissaegrim_ABS::Distance_Skills[Crissaegrim_ABS::Skill_Button[button]][2]
when 6
map_width = $game_player.x + Crissaegrim_ABS::Distance_Skills[Crissaegrim_ABS::Skill_Button[button]][2]
when 8
map_height = $game_player.y - Crissaegrim_ABS::Distance_Skills[Crissaegrim_ABS::Skill_Button[button]][2]
end
if Crissaegrim_ABS::Distance_Skills.has_key?(Crissaegrim_ABS::Skill_Button[button])
if map_width == $game_map.events[1].x or $game_map.events[1].x == 0
$game_map.events[1].set_graphic("",0)
$game_map.events[1].moveto(0, 0)
elsif map_height == $game_map.events[1].y or $game_map.events[1].y == 0
$game_map.events[1].set_graphic("",0)
$game_map.events[1].moveto(0, 0)
end
end
refresh
end
end
for key in Crissaegrim_ABS::Item_Button.keys
if Crissaegrim_ABS::Distance_Items.has_key?(Crissaegrim_ABS::Item_Button[key])
case $game_player.direction
when 2
map_height = $game_player.y + Crissaegrim_ABS::Distance_Items[Crissaegrim_ABS::Item_Button[key]][2]
when 4
map_width = $game_player.x - Crissaegrim_ABS::Distance_Items[Crissaegrim_ABS::Item_Button[key]][2]
when 6
map_width = $game_player.x + Crissaegrim_ABS::Distance_Items[Crissaegrim_ABS::Item_Button[key]][2]
when 8
map_height = $game_player.y - Crissaegrim_ABS::Distance_Items[Crissaegrim_ABS::Item_Button[key]][2]
end
if Crissaegrim_ABS::Distance_Items.has_key?(Crissaegrim_ABS::Item_Button[key])
if map_width == $game_map.events[1].x
$game_map.events[1].set_graphic("",0)
$game_map.events[1].moveto(0, 0)
elsif map_height == $game_map.events[1].y
$game_map.events[1].set_graphic("",0)
$game_map.events[1].moveto(0, 0)
end
end
refresh
end
end
end
end
#--------------------------------------------------------------
# Sprite Base
#--------------------------------------------------------------
class Sprite_Base
alias animation animation_set_sprites
def animation_set_sprites(frame)
cell_data = frame.cell_data
for i in 0..15
sprite = @animation_sprites[i]
next if sprite == nil
pattern = cell_data[i, 0]
if pattern == nil or pattern == -1
sprite.visible = false
next
end
if pattern < 100
sprite.bitmap = @animation_bitmap1
else
sprite.bitmap = @animation_bitmap2
end
sprite.visible = true
sprite.src_rect.set(pattern % 5 * 192,
pattern % 100 / 5 * 192, 192, 192)
if @animation_mirror
sprite.x = @animation_ox - cell_data[i, 1] / 2
sprite.y = @animation_oy - cell_data[i, 2] / 2
sprite.angle = (360 - cell_data[i, 4])
sprite.mirror = (cell_data[i, 5] == 0)
else
sprite.x = @animation_ox + cell_data[i, 1] / 2
sprite.y = @animation_oy + cell_data[i, 2] / 2
sprite.angle = cell_data[i, 4]
sprite.mirror = (cell_data[i, 5] == 1)
end
sprite.z = self.z + 300
sprite.ox = 96
sprite.oy = 96
sprite.zoom_x = cell_data[i, 3] / 200.0
sprite.zoom_y = cell_data[i, 3] / 200.0
sprite.opacity = cell_data[i, 6] * self.opacity / 255.0
sprite.blend_type = cell_data[i, 7]
end
end
end
#--------------------------------------------------------------
# Sprite Character
#--------------------------------------------------------------
class Sprite_Character < Sprite_Base
alias crissaegrim_abs_spchar_update update
def initialize(viewport, character = nil)
super(viewport)
@character = character
@balloon_duration = 0
@_damage_duration = 0
update
end
def update
super
if @_damage_duration > 0
@_damage_duration -=1
@_damage_sprite.x = self.x
if @_damage_duration <= 0
dispose_damage
end
end
if @character != nil and @character.damage != nil
damage(@character.damage, @character.critical)
@character.damage = nil
@character.critical = false
end
crissaegrim_abs_spchar_update
end
def damage(value, critical)
dispose_damage
if value.is_a?(Numeric)
damage_string = value.abs.to_s
else
damage_string = value.to_s
end
bitmap = Bitmap.new(160, 48)
bitmap.font.name = "Georgia"
bitmap.font.size = 22
bitmap.font.italic = true
if value.is_a?(Numeric) and value <= 0
bitmap.font.color.set(0, 0, 0)
bitmap.draw_text(1, 13, 160, 36, "Miss", 1)
bitmap.font.color.set(255, 245, 155)
bitmap.draw_text(0, 12, 160, 36, "Miss", 1)
else
bitmap.font.color.set(0, 0, 0)
bitmap.draw_text(1, 13, 160, 36, damage_string, 1)
bitmap.font.color.set(255, 255, 255)
bitmap.draw_text(0, 12, 160, 36, damage_string, 1)
end
if critical
bitmap.font.color.set(0, 0, 0)
bitmap.draw_text(1, 6, 160, 20, "Critical", 1)
bitmap.font.color.set(255, 245, 155)
bitmap.draw_text(0, 5, 160, 20, "Critical", 1)
end
@_damage_sprite = ::Sprite.new(self.viewport)
@_damage_sprite.bitmap = bitmap
@_damage_sprite.ox = 80
@_damage_sprite.oy = 20
@_damage_sprite.x = self.x
@_damage_sprite.y = self.y - self.oy / 2 - 40
@_damage_sprite.z += 99999
@_damage_duration = 30
end
def show_text(string, size=16, color=0)
dispose_damage
damage_string = string
if string.is_a?(Array)
array = true
else
array = false
end
bitmap = Bitmap.new(160, 48)
bitmap.font.name = "Georgia"
bitmap.font.size = size
bitmap.font.italic = true
if array
for i in 0..string.size
next if damage_string[i] == nil
bitmap.font.color.set(96, 96-20, 0) if color == 0
bitmap.font.color.set(0, 0, 0) if color != 0
bitmap.draw_text(-1, (12+(16*i)-1)-16, 160, 36, damage_string[i], 1)
bitmap.draw_text(+1, (12+(16*i)-1)-16, 160, 36, damage_string[i], 1)
bitmap.draw_text(-1, (12+(16*i)+1)-16, 160, 36, damage_string[i], 1)
bitmap.draw_text(+1, (12+(16*i)+1)-16, 160, 36, damage_string[i], 1)
bitmap.font.color.set(255, 245, 155) if color == 0
bitmap.font.color.set(144, 199, 150) if color == 1
bitmap.font.color.set(197, 147, 190)if color == 2
bitmap.font.color.set(138, 204, 198)if color == 3
bitmap.draw_text(0, (12+(16*i))-16, 160, 36, damage_string[i], 1)
end
else
bitmap.font.color.set(96, 96-20, 0) if color == 0
bitmap.font.color.set(0, 0, 0) if color != 0
bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1)
bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1)
bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1)
bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1)
bitmap.font.color.set(255, 245, 155) if color == 0
bitmap.font.color.set(144, 199, 150) if color == 1
bitmap.font.color.set(197, 147, 190)if color == 2
bitmap.font.color.set(138, 204, 198)if color == 3
bitmap.draw_text(0, 12, 160, 36, damage_string, 1)
end
@_damage_sprite = ::Sprite.new(self.viewport)
@_damage_sprite.bitmap = bitmap
@_damage_sprite.ox = 80
@_damage_sprite.oy = 20
@_damage_sprite.x = self.x
@_damage_sprite.y = self.y - self.oy / 2
@_damage_sprite.z = 3000
@_damage_duration = 30
end
def dispose_damage
if @_damage_sprite != nil
@_damage_sprite.dispose
@_damage_sprite = nil
end
end
end
#--------------------------------------------------------------
# Window Skill
#--------------------------------------------------------------
class Window_Skill < Window_Selectable
alias crissaegrim_abs_wskill_draw_item draw_item
def draw_item(index)
crissaegrim_abs_wskill_draw_item(index)
rect = item_rect(index)
self.contents.clear_rect(rect)
skill = @data[index]
if skill != nil
rect.width -= 4
enabled = true
draw_item_name(skill, rect.x, rect.y, enabled)
self.contents.draw_text(rect, @actor.calc_mp_cost(skill), 2)
end
end
end
class Scene_Skill
alias crissaegrim_abs_sskill_start start
alias crissaegrim_abs_sskill_update update
alias crissaegrim_abs_sskill_update_skill_selection update_skill_selection
def start
@memory = Window_Command.new(150, ["Mémoriser !"])
@memory.active = false
@memory.visible = false
@memory.x = (544 - @memory.width) / 2
@memory.y = (416 - @memory.height) / 2
@memory.z = 1500
crissaegrim_abs_sskill_start
end
def update
@memory.update if @memory.active
crissaegrim_abs_sskill_update
return update_memory if @memory.active
end
def update_skill_selection
crissaegrim_abs_sskill_update_skill_selection
for button in Crissaegrim_ABS::Skill_Button.keys
if Input.trigger?(button)
Sound.play_decision
Crissaegrim_ABS::Skill_Button[button] = @skill_window.skill.id
@memory.active = @memory.visible = true
@skill_window.active = false
end
end
end
def update_memory
if Input.trigger?(Input::C)
Sound.play_decision
@memory.active = @memory.visible = false
@skill_window.active = true
end
end
end
#--------------------------------------------------------------
# Window Item
#--------------------------------------------------------------
class Scene_Item
alias crissaegrim_abs_sitem_start start
alias crissaegrim_abs_sitem_update update
alias crissaegrim_abs_sitem_update_item_selection update_item_selection
def start
@memory = Window_Command.new(150, ["Mémoriser !"])
@memory.active = false
@memory.visible = false
@memory.x = (544 - @memory.width) / 2
@memory.y = (416 - @memory.height) / 2
@memory.z = 1500
crissaegrim_abs_sitem_start
end
def update
@memory.update if @memory.active
crissaegrim_abs_sitem_update
return update_memory if @memory.active
end
def update_item_selection
crissaegrim_abs_sitem_update_item_selection
for button in Crissaegrim_ABS::Item_Button.keys
if Input.trigger?(button)
Sound.play_decision
Crissaegrim_ABS::Item_Button[button] = @item_window.item.id
@memory.active = @memory.visible = true
@item_window.active = false
end
end
end
def update_memory
if Input.trigger?(Input::C)
Sound.play_decision
@memory.active = @memory.visible = false
@item_window.active = true
end
end
end
#--------------------------------------------------------------
# Fim do ABS
#-------------------------------------------------------------- |
Utilisation[/code]
Lorsque vous voulez créer un monstre, insérez 3 commentaires :
Citation: Commentaires : Enemy 1
Commentaires : Die 1
Commentaires : Follow [Chiffre] |
Le 1er Commentaire indique l'ID de l'ennemi dans la base de données du jeu. En l'occurence, il s'agit la du premier ennemi (mettez 2 si c'est le 2eme ennemi, 3 pour le troisième etc...).
Le 2ème indique la façon dont il meurt. Le n°1 fera disparaitre l'ennemi après l'avoir tué. Le n°2, activera l'interrupteur local.
Le 3ème est optionnel. "Follow" indique que l'ennemi vous suivra. Le chiffre entre crochets signifie à combien de cases l'ennemi vous vois. Par exemple. Pour qu'un ennemi vous vois à 7carreaux, écrivez Follow [7].
Pour attaquer, utiliser la touche A !
Pour mémoriser un sort, allez dans le menu. Héros>Magie>Sélection du sort que vous voulez glissez dans la 1er fenêtre>Appuie de la touche S, ou D.
Pour l'utilise, en pleine map, appuyez sur la touche S ou D.
Mémoriser un Objet :
Pour mémoriser un sort, allez dans le menu. Héros>Objets>Sélection de l'objet que vous voulez glissez dans la 2eme fenêtre>Appuie de la touche Q, ou W.
Pour l'utilise, en pleine map, appuyez sur la touche Q, ou W.
Pour ajouter les flèches allez dans : base de donnée/Objets
et cliquez sur "Modifier maximum..."
mettre 21
ensuite dans nom mettre "Flèches"
dans cible mettre "un ennemi"
dans dégat mettre 100
dasn attribut cliquer sur "arc"
et dans Icone mettre l'arc
et voila
j'espere que le script va vous être utile
Source : atiebatie99, "Crissaegrim ABS 2.05", rmrk.net, 2 juin 2011 [consulté le 19 octobre 2020], https://rmrk.net/index.php/topic,31076.0.html
Mis à jour le 27 octobre 2020.
|
|
ThrillerProd -
posté le 10/03/2010 à 22:13:01 (1121 messages postés)
| | Pourquoi tu as mis un sript Rmvx dans la section des scripts de rmxp ?
Et ton post déforme la page.
|
Actinium Studio : Youtube / (Rm2k3)(A-Rpg) Acsiosa |
Darky Face -
posté le 11/03/2010 à 02:45:21 (1301 messages postés)
| Inferno | Citation: 1 screenshoot qui résume la situation |
Et qui ne marche pas...
Et le script est pour XP ou VX ?
|
42 |
Troma -
posté le 11/03/2010 à 11:01:51 (6392 messages postés)
| Je procrastine | C'est peut être un trés bon script mais alors un a-rpg sur vx , c'est limite grotesque non ?!
J'ai tester la demo , aucun mouvement d'attaque , juste des animations sur nous et sur le monstre si on appuis sur A
(j'ai perdu de ce fait un peu de vie , je ne savais pas que les diamants attaquer).
Bref , en 4 commandes ont fait pareil avec un event , pas tester les flèches en revanche , a la limite ca peut être plus utile.
Des screenshots serait un peu inutiles si ce n'est pour montrer l'apparence des jauges et des fenêtres, la demo fait 1,45Mo donc bon.
|
ꀎꀎꀎꀎꀎꀎꀎ |
Nusenism -
posté le 13/03/2010 à 14:18:31 (4060 messages postés)
| | Citation: un a-rpg sur vx , c'est limite grotesque non ?! |
Pas plus que sur XP.
Si c'est travaillé graphiquement ça peut rendre très bien, dans un style Mac&Blue par exemple.
|
Lugian -
posté le 14/03/2010 à 19:45:04 (12 messages postés)
| | Ouais, mais c'est pas exactement ce qu'il voulait dire, je pense. C'est sur que les RTPs VX au premier abord, ne font pas penser à un A-RPG (cette idée me fait personnellement bien marrer, mais ça ne regarde que moi). Après, ça reste possible en custom (et même en RTP-Like, mais ça aussi ça me fait rire). Mais les RTPs de VX me font plutot penser que ce log a été conçu entièrement autour de son système de combat RPG. Mais ça, c'est mes impressions.
|
Gta1998 -
posté le 14/07/2010 à 14:14:59 (18 messages postés)
| Maker_Débutant | Salut , ton script marche ! Mais il me demande des donner graphics
je supose qu'elle sont dans la démo mais je n'arrive a la télécharger tu peut me les donner STP !
|
Kureno -
posté le 19/09/2010 à 14:56:35 (277 messages postés)
| Être ou ne pas être, telle est la question... | c'est VX ou XP pu*****
|
Tata Monos -
posté le 03/12/2010 à 16:24:08 (28 messages postés)
| Compte Non utilisé | Oh ce script est dans ça bonne catégorie.
|
Drakos -
posté le 11/12/2010 à 00:52:43 (1 messages postés)
| | J'arrive peut être en retard mais le script ne fonctionne qu'a moitié
c'est ptetre moi qui est fait une connerie mais le monstre ne disparrait pas :S
Quelqu'un pourrait il m'aider ?
EDIT: J'ai réussi a faire disparaitre les mobs il faut mettre Die 0
au lieu de Die 1 =)
En tout cas sa fonctionne chez moi ^^
|
jojo99 -
posté le 12/12/2010 à 07:47:56 (3 messages postés)
| Fan de Zelda | il est super ce script, je l'ai mi dans mon jeu !!!
|
Raamza -
posté le 12/12/2010 à 10:27:51 (42 messages postés)
| Sur un projet nommé: Hopeless (sans espoir) | Por favor, j'ai une 2eme problème. Quand je vais dans mon menu compétence et que j'enregistre un sort, l'ennemi (quand il est a environ 2 pas de moi) fuis d'une case et disparaît sans que je ne l'ai attaqué. Comment puis-je remédier a ce problème...
|
Pour sauver un arbre, tuer un castor ! |
mage enflamé -
posté le 12/12/2010 à 13:35:48 (7 messages postés)
| | SUPER SCRIPT je vais le émtre dan mon jeuc tro la clase
|
Worms244 -
posté le 13/12/2010 à 16:17:46 (6 messages postés)
| | Pas Mal mais enfet non xD
|
W£$10£R-;M!!¨¨$ |
luclucaa -
posté le 16/12/2010 à 10:45:17 (10 messages postés)
| Je viens en paix! | Bonjour bonjour!!
Je viens de tester ce script:
IL EST SUPER !!!!
Je voudrais juste savoir: comment je fais pour gagner de l'or et des objets une fois l'ennemi tué???
EDIT: J'ai trouvé !!! Faut mettre une 3ème page et utiliser 2 interrupteurs locaux !!! pour en faire un truc d'or!!
mais c'est un peu compliqué au niveau des objets au hasard mais ça c'est moins grave .
|
Si ton ordi te fait chier, au lieu de le taper, tape plutôt ton petit frère ! |
roj13 -
posté le 18/12/2010 à 09:12:21 (19 messages postés)
| sauvez le bambou, mangez un panda | moi il me manque le Graphique/système/HUD-base
|
mieux vaut rater un baiser que baiser un rater |
sshhiiddoo -
posté le 22/12/2010 à 19:54:56 (1 messages postés)
| | Just une question: comment qu'on fait pour faire d'autres armes a longues portées comme un gun ou autre chose?
|
dovicmax -
posté le 24/12/2010 à 00:58:22 (5 messages postés)
| | bon script mon gars
il marche bien chez moé!
|
lerapeur91400 -
posté le 30/12/2010 à 14:37:00 (24 messages postés)
| Débutant maintenant, débutant toujours | Il a combien de pv?
|
tonton-maker -
posté le 31/12/2010 à 18:14:28 (2 messages postés)
| | j'ai un problmeme dans le script ABS ligne 104 au niveau du -=dmg si vous pouvez m'aider SVP j'ai trop besoin de ce script Aussi roj13 pour les ressources télécharge la demo ils sont dedans
EDIT le screen
REEDIT:
Problemme régler il fallait juste rajouter une valeur (18 30 ou autre pour initialiser un coup sur l'enemie )
|
| Chanter l'hyperchleuasme | tonton-maker a dit: j'ai un problmeme dans le script ABS ligne 105 |
Moi aussi j'ai un gros problmblemlme !
|
Es-tu une star ? | Kujira no Hara | Muma|Rope | Polaris 03 | La 7e porte |
lerapeur91400 -
posté le 01/01/2011 à 14:53:46 (24 messages postés)
| Débutant maintenant, débutant toujours | Quelle est le script pour que l'ennemie attaque.
Merci de m'aidé!
|
tonton-maker -
posté le 02/01/2011 à 16:48:38 (2 messages postés)
| | telecharge la demo tu copie un enemie dans ton jeux sa devrai aller
|
R2MI390 -
posté le 08/01/2011 à 11:25:58 (66 messages postés)
| Statut de marbre... | J'ai un problème avec le script ABS à la ligne 589, ça me marque:
script 'ABS' line 589: NoMethodError occured.
undefined method '[] for nil:NilClass
Comment qu'on fait pour le régler?
|
Moi, je m'appelle R2MI. Et après le reste j'ai oublié... |
lyam6666 -
posté le 09/01/2011 à 18:48:22 (2 messages postés)
| ME FAUT UN SCRIPT A-RPG pour vx!!! | moi sa me marque: le "truc" Graphic/donner/Hud-base na pas ete trouver (pour gaphic truc je suis pas sur de l'ecriture!
aider moi pitier! il me le faut
|
conus partius= moi quand je viens de partir! |
R2MI390 -
posté le 11/01/2011 à 21:03:15 (66 messages postés)
| Statut de marbre... | Les images sont dans la démo.
|
Moi, je m'appelle R2MI. Et après le reste j'ai oublié... |
thom123 -
posté le 16/01/2011 à 15:09:14 (47 messages postés)
| Eh! c'est pas parce que tu suce des glands que tu deviendras un écureuils, hein! | Bonjour;
quelqu'un pourrai dire comment faire disparaitre le monstre??
Merci
|
R2MI390 -
posté le 16/01/2011 à 16:26:59 (66 messages postés)
| Statut de marbre... | Ne lui répondez pas! Répondez-moi! Répondez à un vrai problème qui n'a pas encore été traité sur ce forum!
|
Moi, je m'appelle R2MI. Et après le reste j'ai oublié... |
thom123 -
posté le 17/01/2011 à 17:02:25 (47 messages postés)
| Eh! c'est pas parce que tu suce des glands que tu deviendras un écureuils, hein! | Ta télécharger la demo et copier coller les scripts de la demo?
Et répondez moi aussi svp!
R2MI390
|
R2MI390 -
posté le 18/01/2011 à 10:35:56 (66 messages postés)
| Statut de marbre... | C'est ce que j'ai fait et ça a as marché. J'ai été obligé de supprimer tout ce qui touchait aux armes à distance dans le script ABS.
thom123
|
Moi, je m'appelle R2MI. Et après le reste j'ai oublié... |
thom123 -
posté le 18/01/2011 à 16:49:46 (47 messages postés)
| Eh! c'est pas parce que tu suce des glands que tu deviendras un écureuils, hein! | ...Ah.
tu as le chara des fleches??
R2MI390
|
R2MI390 -
posté le 18/01/2011 à 19:26:09 (66 messages postés)
| Statut de marbre... | Mais j'ai toutes les images!!! Je devrai me passer d'armes à distance...
thom123
|
Moi, je m'appelle R2MI. Et après le reste j'ai oublié... |
thom123 -
posté le 19/01/2011 à 07:17:51 (47 messages postés)
| Eh! c'est pas parce que tu suce des glands que tu deviendras un écureuils, hein! | moi aussi j'ai un prob avec les fleche...
Comment on fait...
R2MI390
|
Vincentlego -
posté le 27/01/2011 à 09:23:04 (934 messages postés)
| Good hunting, Stalker | Pas de screenshoots?
|
Ma galerie DeviantArt :D |
thom123 -
posté le 27/01/2011 à 20:31:46 (47 messages postés)
| Eh! c'est pas parce que tu suce des glands que tu deviendras un écureuils, hein! | comme R2MI390 a dit, les image sont dans la demo
|
| | Excuser moi, j'ai un probleme avec le script, quand je veut jouer on me dit qu'il y a un probleme dans HUD, comment faire je l'ai refait plusieur fois mais rien.
merci d'avance:'
|
mangafan92 -
posté le 05/02/2011 à 15:39:33 (9 messages postés)
| | j'ai un prob, j'ai tout mis dans mon projet, tout marche sauf les sorts a distance, je peux les utiliser que au corps a corps
EDIT: J'ai trouvé, je crois que ça fonctionne uniquement avec la tile A de base, isn't it?
|
Si tu donnes un poisson que tu à volé à un homme, il mangera un jour, si tu lui apprend à voler, il mangera toute sa vie... |
Petitgrand -
posté le 06/02/2011 à 15:34:58 (14 messages postés)
| | Sa marche pas ton trucs......
|
LeM -
posté le 17/02/2011 à 20:19:19 (639 messages postés)
| Banni dans 3... 2... 1... | Roh mais soit vous apprenez à C/c un script soit vous faites un a-rpg vous-même en events...
|
SWEAT LIMONADE, YEA SWEAT LIMONADE |
mangafan92 -
posté le 21/02/2011 à 23:17:58 (9 messages postés)
| | version 9 ici-> http://rpg-maker-vx.bbactif.com/t5867-abs-vlad-v9
concernant les améliorations, c kiff kiff, moi je reste sur cette version car sur la nouvelle, impossible de rester devant les ennemis, équipiers ne servant à rien... si on n'as pas les charas morts, pas d'interet et surtout impossible a configurer! aussi long à faire qu en event... tout l'intérêt se perd......... donc vive le 1.3,
Ps j ai pas testé les versions 4 et 5.
|
Si tu donnes un poisson que tu à volé à un homme, il mangera un jour, si tu lui apprend à voler, il mangera toute sa vie... |
Asdepik -
posté le 04/03/2011 à 16:42:40 (5 messages postés)
| | Ont peut faire ca sans script svp parce que je comprends rien
|
roj13 -
posté le 03/04/2011 à 12:31:09 (19 messages postés)
| sauvez le bambou, mangez un panda | on en fait quoi du fichier après ? me please
|
mieux vaut rater un baiser que baiser un rater |
Lityk -
posté le 11/04/2011 à 22:47:15 (42 messages postés)
| | Comment faire pour faire disparaître le HUD sur certaines cartes ?
|
Si j'avais encore l'argent que j'ai dépensé pour boire, qu'est-ce que je pourrais me payer comme apéritifs ! |
R2MI390 -
posté le 15/04/2011 à 19:00:50 (66 messages postés)
| Statut de marbre... | Regarde dans le script y a un switch à paramétrer.
|
Moi, je m'appelle R2MI. Et après le reste j'ai oublié... |
baba45 -
posté le 30/04/2011 à 18:40:56 (13 messages postés)
| | comment on fait pour faire gagner des objets quand le monstre meurt (question cruciale pour mon jeu en développement) et comment faire pour que les autres personnages attaquent aussi?
merci d'avance!!
|
Dragoterix -
posté le 31/05/2011 à 15:20:55 (6 messages postés)
| Fais le scénario | Pour répondre à ta première question Baba il suffit de modifier le monstre dans la base de donnée. Quand tu vas sur la fiche du monstre il y a "Gain 1" et "Gain 2" et bien il te suffit de le modifier.
Sinon j' ai le script Train_Actor comment faire pour que les équipiers attaquent ?
|
Là ou les lycanthropes règnent en maîtres... |
Master-Pro -
posté le 01/06/2011 à 18:54:07 (6 messages postés)
| | Bonjour, petit, GROS problèmes ! Je n'arrive pas à faire d'attaque à distance et je n'arrive pas à tirer à l'arc, merci encore.
|
Dragoterix -
posté le 04/06/2011 à 10:35:32 (6 messages postés)
| Fais le scénario | C' est le même problème pour tout le monde, les armes à distance se fonctionnent pas.
|
Là ou les lycanthropes règnent en maîtres... |
Master-Pro -
posté le 04/06/2011 à 13:50:27 (6 messages postés)
| | j'avait remarquer
Mais pourquoi sa marche sur la démo et pas sur nos jeux ?
|
Dragoterix -
posté le 05/06/2011 à 19:50:31 (6 messages postés)
| Fais le scénario | Moi ça marche pas du tout...
|
Là ou les lycanthropes règnent en maîtres... |
Mwep -
posté le 25/06/2011 à 13:52:36 (1 messages postés)
| | Problème! Le monstre est invulnérable!!!!
|
baba45 -
posté le 25/07/2011 à 21:03:00 (13 messages postés)
| | t'as mis en commentaire "Die 0"?
|
jodge65 -
posté le 14/08/2011 à 15:42:55 (25 messages postés)
| | Voici la version amélioré du A-rpg (requieme9) dipo http://www.mediafire.com/?zjzqnnxw0id Me demander pas comment sa fonctionne: je suis un tuto d'un autre forum! Si je suis autoriser, je posterai le lien vers le tuto (il s'agit d'une version améliorer de l'abs vampyre).
Les armes a distance fonctionnent et un train actor est inclu! Sauf que vos allier attaque!
|
gamer34 -
posté le 21/08/2011 à 22:07:34 (99 messages postés)
| | c'est bien beau tout ça mais sans
les compétance a distance ce script
est un peut inutile
quelqu'un peut trouver une solution?
|
Magik -
posté le 07/10/2011 à 21:57:12 (3 messages postés)
| Fan de jeu RPG | lyam6666 a dit:
je crois avoir compris,il faut probablement que tu fasse un fichier appeler Hud-base pour que sa marche ^^
ensuit tu as affair a d'autre chose que tu doit ajouter dans ton jeu bonne chance
moi mon probleme c'est quand j'active un pouvoir, y a des evenement qui disparrait comment on fait pour que sa le fasse plus?
|
Troody -
posté le 05/11/2011 à 19:52:03 (1 messages postés)
| | Moi ça marche pas
|
Jejeas -
posté le 16/02/2012 à 06:40:06 (25 messages postés)
| La neige au Canada c'est froid. | Merci jodge65. C'est celui que je vais essayer d'utiliser.
|
Move that gears up ! |
RPGvx FAIL -
posté le 01/05/2012 à 13:46:42 (1 messages postés)
| | Bonjour, comment se fait t'il que je ne trouve pas (dans ton jeu) comment tu lance des sort ou tire avec des flèches..soit je cherche mal soit je ne trouve pas expliquer moi S.V.P ..En suite je comprendrais enfin comment faire..=/
|
Enzuki -
posté le 17/05/2012 à 18:57:14 (24 messages postés)
| | Damned! Je vais essayer le script mais... c'est ça qui faut pour faire un jeu genre zelda? Parce que c'est là mon idée mais heu...
|
| En mode Rpg | Salut tout le monde... J'ai testé le script mais... Les flèches ne s'utilisent que au corps à corps ???? Ou alors un détails m'a échappé ??
|
https://www.facebook.com/pages/Zelda-France/107971829261640?ref=hl |
xaumina2 -
posté le 11/10/2012 à 16:10:23 (2 messages postés)
| | Je crois savoir pourquoi les flèches, pour certains, ne marchent pas sur la demo ; c'est qu'il n'y a pas l'objet "Flèches" (en tout casq, ça m'a fait ça).
Pour ceux qui ont carrément abandonné les armes à distances, il suffit en fait de transformer la demo en son jeu (par contre, je crois que ça fait des trucs bizarres au niveau du dossier Graphics/Pictures).
|
Horreur et malédicton ! |
raphidu13 -
posté le 04/12/2014 à 11:15:37 (3 messages postés)
| | Raamza a dit:
Por favor, j'ai une 2eme problème. Quand je vais dans mon menu compétence et que j'enregistre un sort, l'ennemi (quand il est a environ 2 pas de moi) fuis d'une case et disparaît sans que je ne l'ai attaqué. Comment puis-je remédier a ce problème...
|
Méme probléme a vrais dire quelqun a une idée ?
| |
|
|