Aller à la page 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
Reprise du message précédent:
Troma -
posté le 30/08/2022 à 23:11:35 (6392 messages postés)
| Je procrastine | Bonsoir finalement trop complexe, j'aimerais savoir quel script modifié pour les combats , j'ai trouvé un jeu avec des battler(your not prepared...xp) mais je ne trouve pas les lignes pour positionner les battler des heros sur le battleback dans sprite-battler ?! merci encore.
Edit : en fait sur la version bodomchild ils sont deja de base afficher mais en translucide et je sais pas comment les rendre opaque et les positionner autrement que sur le hud.
|
ꀎꀎꀎꀎꀎꀎꀎ | Suite du sujet:
Gari -
posté le 31/08/2022 à 10:50:48 (5901 messages postés)
- | | You are not prepared il me semble que c'est l'affichage standard de XP (portraits des héros en combat). Peut-être que l'auteur a juste fait une image plus haute avec une partie transparente en bas pour pas qu'elle se trouve sur l'interface de combat ?
|
Troma -
posté le 01/09/2022 à 02:20:57 (6392 messages postés)
| Je procrastine | Salut Gari , non non je pense qu'il ou elle a juste rendu le texte du cadre plus serré, voir le cadre moins large, je sais pas.
j'aimerais avoir ce format et savoir comment modifier l'emplacement des battlers héro pour les positionner en "sidevew" , je trouve pas. ou un script standard sideview et savoir comment réduire l'emplacement du hud, mais surtout trouver comment déplacer les battlers et si possible comment positionner les battlers monstre plus bas que la zone qui elle reste limité a la zone standard.
|
ꀎꀎꀎꀎꀎꀎꀎ |
Gari -
posté le 01/09/2022 à 09:30:19 (5901 messages postés)
- | | J'ai regardé dans le dossier des battlers, et c'est comme je disais, Seikame n'a pas utilisé de scripts pour placer ses battlers, il a juste joué sur la hauteur des images.
Pour le positionnement de côté, je sais pas pas, mais ça a l'air d'être à la fin de Sprite_Battler. Il y a des chances que les sprites n'aient pas une position fixe dans le système de base.
1
2
3
4
| # Set sprite coordinates
self.x = @battler.screen_x
self.y = @battler.screen_y-30
self.z = @battler.screen_z |
|
Troma -
posté le 01/09/2022 à 19:12:20 (6392 messages postés)
| Je procrastine | Oui , déja fait, ca déplace la rangée de héros, moi j'ai besoin de ca pour chaqun des 4 héros principaux afin de les placer sur la carte et pas en ligne horizontale mais je ne sais pas ce qu'il faut rajouter pour que ca prenne effet sur les un seul battler un par un.
|
ꀎꀎꀎꀎꀎꀎꀎ |
| Chanter l'hyperchleuasme | Si tu arrives à récupérer le numéro du Battler à cet endroit du code, tu peux ajouter ce que tu veux sur le x et le y de chacun.
Quelque chose comme ça non ?:
1
2
3
4
5
6
7
8
9
10
11
| if @battler.numero == 1
decalage_x = 30
decalage_y = 12
elsif @battler.numero == 2
decalage_x = 48
decalage_y = 76
end
self.x = @battler.screen_x + decalage_x
self.y = @battler.screen_y + decalage_y
self.z = @battler.screen_z |
Je n'ai pas le script sous les yeux, donc je ne sais pas à quel point c'est facile d'obtenir le numéro du Battler ici. Peut-être qu'il faudra le passer en paramètre de la fonction.
Il faut se demander : je suis dans quelle fonction ? Qui appelle cette fonction ? Est-ce que celui qui appelle la fonction a les infos dont j'ai besoin ?
|
Es-tu une star ? | Kujira no Hara | Muma|Rope | Polaris 03 | La 7e porte |
Mack -
posté le 02/09/2022 à 10:48:06 (2310 messages postés)
- - | | Dans le @battler, ils doivent surement stocké soit l'ID dans la BDD, soit l'index dans la file du groupe je suppose.
Sinon, comme dis RoTS, t'as forcément pas trop loin dans le code un truc qui te permet de savoir à qui appartient le sprite lors de l'appel ^^
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
Troma -
posté le 02/09/2022 à 22:05:43 (6392 messages postés)
| Je procrastine | Spoiler (cliquez pour afficher)
#==============================================================================
# ** Sprite_Battler
#------------------------------------------------------------------------------
# This sprite is used to display the battler.It observes the Game_Character
# class and automatically changes sprite conditions.
#==============================================================================
class Sprite_Battler < RPG::Sprite
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :battler # battler
#--------------------------------------------------------------------------
# * Object Initialization
# viewport : viewport
# battler : battler (Game_Battler)
#--------------------------------------------------------------------------
def initialize(viewport, battler = nil)
super(viewport)
@battler = battler
@battler_visible = false
end
#--------------------------------------------------------------------------
# * Dispose
#--------------------------------------------------------------------------
def dispose
if self.bitmap != nil
self.bitmap.dispose
end
super
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
# If battler is nil
if @battler == nil
self.bitmap = nil
loop_animation(nil)
return
end
# If file name or hue are different than current ones
if @battler.battler_name != @battler_name or
@battler.battler_hue != @battler_hue
# Get and set bitmap
@battler_name = @battler.battler_name
@battler_hue = @battler.battler_hue
self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
@width = bitmap.width
@height = bitmap.height
self.ox = @width / 2
self.oy = @height
# Change opacity level to 0 when dead or hidden
if @battler.dead? or @battler.hidden
self.opacity = 0
end
end
# If animation ID is different than current one
if @battler.damage == nil and
@battler.state_animation_id != @state_animation_id
@state_animation_id = @battler.state_animation_id
loop_animation($data_animations[@state_animation_id])
end
# If actor which should be displayed
if @battler.is_a?(Game_Actor) and @battler_visible
# Bring opacity level down a bit when not in main phase
if $game_temp.battle_main_phase
self.opacity += 3 if self.opacity < 255
else
self.opacity -= 3 if self.opacity > 255
end
end
# Blink
if @battler.blink
blink_on
else
blink_off
end
# If invisible
unless @battler_visible
# Appear
if not @battler.hidden and not @battler.dead? and
(@battler.damage == nil or @battler.damage_pop)
appear
@battler_visible = true
end
end
# If visible
if @battler_visible
# Escape
if @battler.hidden
$game_system.se_play($data_system.escape_se)
escape
@battler_visible = false
end
# White flash
if @battler.white_flash
whiten
@battler.white_flash = false
end
# Animation
if @battler.animation_id != 0
animation = $data_animations[@battler.animation_id]
animation(animation, @battler.animation_hit)
@battler.animation_id = 0
end
# Damage
if @battler.damage_pop
damage(@battler.damage, @battler.critical)
@battler.damage = nil
@battler.critical = false
@battler.damage_pop = false
end
# Collapse
if @battler.damage == nil and @battler.dead?
if @battler.is_a?(Game_Enemy)
$game_system.se_play($data_system.enemy_collapse_se)
else
$game_system.se_play($data_system.actor_collapse_se)
end
collapse
@battler_visible = false
end
end
# Set sprite coordinates
self.x = @battler.screen_x
self.y = @battler.screen_y-30
self.z = @battler.screen_z
end
end
Je ne sais pas trop ce que je dois chercher ou modifier la
|
ꀎꀎꀎꀎꀎꀎꀎ |
Mack -
posté le 03/09/2022 à 09:51:18 (2310 messages postés)
- - | | J'ai un peu regardé ( et j'avais oublié à quel point c'était mal branlé par fois xD ) bon, comme j'ai aucune idée de ce que tu veux vraiment faire ( ), j'sais pas si ça te sera très utile mais, en gros :
Le script Sprite_Battler gère les battlers de tout les combattants à l'unité, c'est à dire que pour chaque instance, est associé un seul et unique personnage ( soit un Game_Actor pour les héros, soit un Game_Enemy pour les monstres ).
Pour savoir si ton battler est un Héros :
1
2
3
| if @battler.is_a?(Game_Actor)
# Blablabla
end |
Mais en soit, c'est un peu débile de modifier ça ici.
Dans le script "Game_Actor", tout à la fin on trouve :
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
| #--------------------------------------------------------------------------
# * Get Battle Screen X-Coordinate
#--------------------------------------------------------------------------
def screen_x
# Return after calculating x-coordinate by order of members in party
if self.index != nil
return self.index * 160 + 80
else
return 0
end
end
#--------------------------------------------------------------------------
# * Get Battle Screen Y-Coordinate
#--------------------------------------------------------------------------
def screen_y
return 464
end
#--------------------------------------------------------------------------
# * Get Battle Screen Z-Coordinate
#--------------------------------------------------------------------------
def screen_z
# Return after calculating z-coordinate by order of members in party
if self.index != nil
return 4 - self.index
else
return 0
end
end |
Donc ça serait plutôt ici qu'il faut changer.
Pour le Y, rien de plus simple, c'est une valeur fixe, donc t'as juste à la changer jusqu'à en trouver une qui te va.
Pour le X, c'est à peine plus compliqué, pour faire très simple :
Peut renvoyer 2 types de valeurs, nil si le héros n'est pas dans le groupe ( bon, je suppose que ça c'est purement théorique, t'es pas censé avoir un battler en combat, alors que t'as pas le héros ), ou un entier renvoyant sa position dans le groupe ( 0 pour le premier héros, 1 pour le second, ... )
Donc de base, ils se contentent d'espacer chaque héros de 160 pixels, et de tous les décaler de 80 pixels vers la droite.
Edit :
J'ai jeté un œil à la démo du site, ils changent pas la position des héros, c'est celle de base, ils ont absolument pas touché aux positions des héros
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
Troma -
posté le 03/09/2022 à 15:24:17 (6392 messages postés)
| Je procrastine | Merci, Ce que je veux faire c'est un sideview fixe, pouvoir aligner verticalement les personnages, les positionner un peu a l'arrache mais en verticale.
j'ai essayer de feinter en faisant des battler sur carte standard déjà prés positionner mais je n'avais pas fait le calcule logique que les points de degats seraient compté sur l'image entière et donc apparaitrait au centre de l'image, un peu n'importe ou (dans mes souvenir j’étais persuader que ca apparaissait sur les boites du hud, mais je dois confondre, je n'utilisez pas le system de base)
Je vais essayer de voir ton truc mais jai déjà passer du temps hier et je sature, si ca marche pas tant pis , je les incrusterais directement sur le battlback , j'ai au moins regler le probleme du hud en trifouillant.
Edit : oui ok on avance , ca regle le probleme d'espace entre personnage mais pas leurs position horizontal ni l'alignement vertical, désolé j'y connais pas grand chose.
Je sais pas si ca a un rapport mais dans la démo du site le battler screen y de Sprite battler est de -30 par apport a l'original , les battler hero semble un peu plus haut.
En fait ca ca regle mon probleme d'espace pour caler des monstres plus gros que je ne pouvait pas descendre en dessous de la limite du cadre d'origine de texte, c'est toujours ca en moins, j'ai donc regler le probleme du hud plus bas et le positionnement des monstres plus bas en cons"quence.
reste plus qu'a savoir comment positionner verticalement en biais les battler "hero".
En tout cas merci j'ai pris des notes pour pouvoir modifier des trucs tout seul la prochaine fois .
Edit : ouais c'est bon je sature, je vais coller directement mes battlers sur le fond et j'utiliserais des boites de hud a la place des battler pour que les dégâts apparaissent sur les boites et pas n'importe ou, comme ca ca réglera le probleme et j'aurais un hud moins fade, désolé de vous avoir fait perdre votre temps.
|
ꀎꀎꀎꀎꀎꀎꀎ |
Mack -
posté le 03/09/2022 à 15:32:19 (2310 messages postés)
- - | | Fait une image avec les 4 héros positionnés aux bon endroits, j'te change les lignes qu'il faut si tu veux
( Et envoie aussi les 4 battlers que tu utilises, sauf si des RTP, comme ça je serais sur que c'est bon xD )
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
Troma -
posté le 03/09/2022 à 17:02:15 (6392 messages postés)
| Je procrastine | Ok, je te fais ca , du coups c'est possible de conserver l'emplacement en ligne pour une picture en plus ou pas pour aligner sous le hud pour l'embelir un peu ? je te met la picture et l'image test, sinon c'est pas grave, te casse pas la tête la dessu, et merci.
https://sd-1.archive-host.com/membres/up/10090501126874946/test_combat_et_battler_test.rar
|
ꀎꀎꀎꀎꀎꀎꀎ |
Mack -
posté le 03/09/2022 à 17:53:41 (2310 messages postés)
- - | | Ah oui, okay, tu veux un bête Sideview, y a pas grand chose à voir avec le screen plus haut quoi x)
Dans un nouveau script :
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
| class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# * Get Battle Screen X-Coordinate
#--------------------------------------------------------------------------
def screen_x
# Return after calculating x-coordinate by order of members in party
if self.index != nil
# Plus la variable x est grande plus les perso sont à droite
x = 221
return x - self.index * 30
else
return 0
end
end
#--------------------------------------------------------------------------
# * Get Battle Screen Y-Coordinate
#--------------------------------------------------------------------------
def screen_y
return self.index * 40 + 205
end
#--------------------------------------------------------------------------
# * Get Battle Screen Z-Coordinate
#--------------------------------------------------------------------------
def screen_z
# Return after calculating z-coordinate by order of members in party
if self.index != nil
return self.index
else
return 0
end
end
end |
Par contre deux petits points, j'ai callé tout le monde de manière à avoir une répartition uniforme, donc c'est pas exactement comme toi, et aussi :
J'espère donc que t'as prévu de déplacer / changer la fenêtre
Si tu veux mettre tes héros plus à droite, il suffit d'augmenter la valeur de la variable x à la ligne 9.
Pour les pictures en fond, t'as un Windowskin transparent, et / ou un Script pour modifier l'affichage de l'interface ?
Edit : Ah, ben surement les même que la démo du screen précédent en faite
Du coup :
comment mettre photo
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
| #==============================================================================
# ** Window_BattleStatus
#------------------------------------------------------------------------------
# This window displays the status of all party members on the battle screen.
#==============================================================================
class Window_BattleStatus < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(0, 380, 640, 100)
self.contents = Bitmap.new(width - 32, height - 32)
@level_up_flags = [false, false, false, false]
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
bitmap = RPG::Cache.picture("hud_back")
@item_max = $game_party.actors.size
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
actor_x = i * 160 + 4
self.contents.blt(actor_x-25, 3, bitmap, Rect.new(0, 0, 170, 93), 255)
draw_actor_name(actor, actor_x, -9)
draw_actor_hp(actor, actor_x, 10, 120)
draw_actor_sp(actor, actor_x, 25, 120)
if @level_up_flags[i]
self.contents.font.color = normal_color
self.contents.draw_text(actor_x, 40, 120, 32, "LEVEL UP !")
else
draw_actor_state(actor, actor_x, 40)
end
end
end
end
|
Avec dans ton dossier Pictures, l'image que tu m'as fait passer avec comme nom "hud_back".
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
Troma -
posté le 03/09/2022 à 19:10:34 (6392 messages postés)
| Je procrastine | Super c'est exactement ca c'est nickel merci , il y a juste les boites qui défile "attaquer,défense etc" horizontalement mais je vais chercher, encore une fois merci beaucoup.
Edit : Pff merci je serais jamais aller chercher la dedans.
|
ꀎꀎꀎꀎꀎꀎꀎ |
Mack -
posté le 03/09/2022 à 20:03:39 (2310 messages postés)
- - | | Ligne 81 du script "Scene_Battle 3"
Suffit de remplacer
par ce que tu veux ^^
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
Troma -
posté le 08/09/2022 à 20:16:46 (6392 messages postés)
| Je procrastine | Salut c'est encore le relou, il y a moyen de changer les images des personnages quand leurs points de vie est a zéro plutôt qu'ils disparaissent et de savoir comment monter le cadre "attaque défense etc...).
|
ꀎꀎꀎꀎꀎꀎꀎ |
Mack -
posté le 08/09/2022 à 20:20:26 (2310 messages postés)
- - | | Pour remonter la boite, rajoutes cette ligne :
1
| @actor_command_window.y = 0 |
Juste en dessous de la ligne 81, celle où tu as déjà bougé la position X.
( Evidemment tu remplaces 0 par ce que tu veux ^^ )
Pour l'image, faut que je regarde, mais ça risque d'être un peu plus chiant.
Edit :
Dans Sprite_Battler, cherche les lignes :
1
2
| collapse
@battler_visible = false |
C'est vers la fin, ligne 13X.
Devant les deux lignes tu mets un #, et après les deux lignes tu rajoutes :
1
2
3
4
5
6
7
| @battler_name = @battler.battler_name + "_dead"
@battler_hue = @battler.battler_hue
self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
@width = bitmap.width
@height = bitmap.height
self.ox = @width / 2
self.oy = @height |
Tu as juste a rajouter dans ton dossier Battlers une image qui porte le même nom que le battler de base, mais avec un "_dead" à la fin.
Grosso merdo ça doit ressembler à ça :
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
Troma -
posté le 09/09/2022 à 01:11:12 (6392 messages postés)
| Je procrastine | Ok merci je vais regarder mais je pense que j'ai pas le meme sprite battler parceque le miens fait 131 lignes en tout et les deux lignes sont a 115.
J'ai essayer sur celui que j'ai , ca ne marche pas et ca joue infiniment le SE de fin de combat quand le monstre est mort.
|
ꀎꀎꀎꀎꀎꀎꀎ |
Mack -
posté le 10/09/2022 à 18:04:34 (2310 messages postés)
- - | | Fais voir ton script
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
Troma -
posté le 10/09/2022 à 19:01:53 (6392 messages postés)
| Je procrastine | Spoiler (cliquez pour afficher) #==============================================================================
# ** Sprite_Battler
#------------------------------------------------------------------------------
# This sprite is used to display the battler.It observes the Game_Character
# class and automatically changes sprite conditions.
#==============================================================================
class Sprite_Battler < RPG::Sprite
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :battler # battler
#--------------------------------------------------------------------------
# * Object Initialization
# viewport : viewport
# battler : battler (Game_Battler)
#--------------------------------------------------------------------------
def initialize(viewport, battler = nil)
super(viewport)
@battler = battler
@battler_visible = false
end
#--------------------------------------------------------------------------
# * Dispose
#--------------------------------------------------------------------------
def dispose
if self.bitmap != nil
self.bitmap.dispose
end
super
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
# If battler is nil
if @battler == nil
self.bitmap = nil
loop_animation(nil)
return
end
# If file name or hue are different than current ones
if @battler.battler_name != @battler_name or
@battler.battler_hue != @battler_hue
# Get and set bitmap
@battler_name = @battler.battler_name
@battler_hue = @battler.battler_hue
self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
@width = bitmap.width
@height = bitmap.height
self.ox = @width / 2
self.oy = @height
# Change opacity level to 0 when dead or hidden
if @battler.dead? or @battler.hidden
self.opacity = 0
end
end
# If animation ID is different than current one
if @battler.damage == nil and
@battler.state_animation_id != @state_animation_id
@state_animation_id = @battler.state_animation_id
loop_animation($data_animations[@state_animation_id])
end
# If actor which should be displayed
if @battler.is_a?(Game_Actor) and @battler_visible
# Bring opacity level down a bit when not in main phase
if $game_temp.battle_main_phase
self.opacity += 3 if self.opacity < 255
else
self.opacity -= 3 if self.opacity > 255
end
end
# Blink
if @battler.blink
blink_on
else
blink_off
end
# If invisible
unless @battler_visible
# Appear
if not @battler.hidden and not @battler.dead? and
(@battler.damage == nil or @battler.damage_pop)
appear
@battler_visible = true
end
end
# If visible
if @battler_visible
# Escape
if @battler.hidden
$game_system.se_play($data_system.escape_se)
escape
@battler_visible = false
end
# White flash
if @battler.white_flash
whiten
@battler.white_flash = false
end
# Animation
if @battler.animation_id != 0
animation = $data_animations[@battler.animation_id]
animation(animation, @battler.animation_hit)
@battler.animation_id = 0
end
# Damage
if @battler.damage_pop
damage(@battler.damage, @battler.critical)
@battler.damage = nil
@battler.critical = false
@battler.damage_pop = false
end
# Collapse
if @battler.damage == nil and @battler.dead?
if @battler.is_a?(Game_Enemy)
$game_system.se_play($data_system.enemy_collapse_se)
else
$game_system.se_play($data_system.actor_collapse_se)
end
collapse
@battler_visible = false
end
end
# Set sprite coordinates
self.x = @battler.screen_x
self.y = @battler.screen_y+25
self.z = @battler.screen_z
end
end
|
ꀎꀎꀎꀎꀎꀎꀎ |
Mack -
posté le 10/09/2022 à 19:48:22 (2310 messages postés)
- - | | Edit :
G rien dit
Essaye avec ça :
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
| #==============================================================================
# ** Sprite_Battler
#------------------------------------------------------------------------------
# This sprite is used to display the battler.It observes the Game_Character
# class and automatically changes sprite conditions.
#==============================================================================
class Sprite_Battler < RPG::Sprite
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
# If battler is nil
if @battler == nil
self.bitmap = nil
loop_animation(nil)
return
end
# If file name or hue are different than current ones
if @battler.battler_name != @battler_name or
@battler.battler_hue != @battler_hue
# Get and set bitmap
@battler_name = @battler.battler_name
@battler_hue = @battler.battler_hue
self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
@width = bitmap.width
@height = bitmap.height
self.ox = @width / 2
self.oy = @height
# Change opacity level to 0 when dead or hidden
if @battler.hidden
self.opacity = 0
end
if @battler.dead?
@battler_name = @battler.battler_name + "_dead"
@battler_hue = @battler.battler_hue
self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
@width = bitmap.width
@height = bitmap.height
self.ox = @width / 2
self.oy = @height
end
end
# If animation ID is different than current one
if @battler.damage == nil and
@battler.state_animation_id != @state_animation_id
@state_animation_id = @battler.state_animation_id
loop_animation($data_animations[@state_animation_id])
end
# If actor which should be displayed
if @battler.is_a?(Game_Actor) and @battler_visible
# Bring opacity level down a bit when not in main phase
if $game_temp.battle_main_phase
self.opacity += 3 if self.opacity < 255
else
self.opacity -= 3 if self.opacity > 207
end
end
# Blink
if @battler.blink
blink_on
else
blink_off
end
# If invisible
unless @battler_visible
# Appear
if not @battler.hidden and not @battler.dead? and
(@battler.damage == nil or @battler.damage_pop)
appear
@battler_visible = true
end
end
# If visible
if @battler_visible
# Escape
if @battler.hidden
$game_system.se_play($data_system.escape_se)
escape
@battler_visible = false
end
# White flash
if @battler.white_flash
whiten
@battler.white_flash = false
end
# Animation
if @battler.animation_id != 0
animation = $data_animations[@battler.animation_id]
animation(animation, @battler.animation_hit)
@battler.animation_id = 0
end
# Damage
if @battler.damage_pop
damage(@battler.damage, @battler.critical)
@battler.damage = nil
@battler.critical = false
@battler.damage_pop = false
end
# Collapse
if @battler.damage == nil and @battler.dead?
if @battler.is_a?(Game_Enemy)
$game_system.se_play($data_system.enemy_collapse_se)
else
$game_system.se_play($data_system.actor_collapse_se)
end
#collapse
#@battler_visible = false
@battler_name = @battler.battler_name + "_dead"
@battler_hue = @battler.battler_hue
self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
@width = bitmap.width
@height = bitmap.height
self.ox = @width / 2
self.oy = @height
end
end
self.x = @battler.screen_x
self.y = @battler.screen_y + 25
self.z = @battler.screen_z
end
end |
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
Troma -
posté le 10/09/2022 à 23:48:14 (6392 messages postés)
| Je procrastine | Error
|
ꀎꀎꀎꀎꀎꀎꀎ |
Mack -
posté le 11/09/2022 à 01:37:33 (2310 messages postés)
- - | | T'as créer un nouveau script ou remplacer l'ancien ?
Si t'as rempalcer l'ancien, pardon, c'est ma faute j'ai fait en sorte que le script du dessus soit à mettre dans un nouveau, j'ai pas pensé à le préciser désolé ><
La t'as le script qui devrait être complet :
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
| #==============================================================================
# ** Sprite_Battler
#------------------------------------------------------------------------------
# This sprite is used to display the battler.It observes the Game_Character
# class and automatically changes sprite conditions.
#==============================================================================
class Sprite_Battler < RPG::Sprite
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :battler # battler
#--------------------------------------------------------------------------
# * Object Initialization
# viewport : viewport
# battler : battler (Game_Battler)
#--------------------------------------------------------------------------
def initialize(viewport, battler = nil)
super(viewport)
@battler = battler
@battler_visible = false
end
#--------------------------------------------------------------------------
# * Dispose
#--------------------------------------------------------------------------
def dispose
if self.bitmap != nil
self.bitmap.dispose
end
super
end
def update
super
# If battler is nil
if @battler == nil
self.bitmap = nil
loop_animation(nil)
return
end
# If file name or hue are different than current ones
if @battler.battler_name != @battler_name or
@battler.battler_hue != @battler_hue
# Get and set bitmap
@battler_name = @battler.battler_name
@battler_hue = @battler.battler_hue
self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
@width = bitmap.width
@height = bitmap.height
self.ox = @width / 2
self.oy = @height
# Change opacity level to 0 when dead or hidden
if @battler.hidden
self.opacity = 0
end
if @battler.dead?
@battler_name = @battler.battler_name + "_dead"
@battler_hue = @battler.battler_hue
self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
@width = bitmap.width
@height = bitmap.height
self.ox = @width / 2
self.oy = @height
end
end
# If animation ID is different than current one
if @battler.damage == nil and
@battler.state_animation_id != @state_animation_id
@state_animation_id = @battler.state_animation_id
loop_animation($data_animations[@state_animation_id])
end
# If actor which should be displayed
if @battler.is_a?(Game_Actor) and @battler_visible
# Bring opacity level down a bit when not in main phase
if $game_temp.battle_main_phase
self.opacity += 3 if self.opacity < 255
else
self.opacity -= 3 if self.opacity > 207
end
end
# Blink
if @battler.blink
blink_on
else
blink_off
end
# If invisible
unless @battler_visible
# Appear
if not @battler.hidden and not @battler.dead? and
(@battler.damage == nil or @battler.damage_pop)
appear
@battler_visible = true
end
end
# If visible
if @battler_visible
# Escape
if @battler.hidden
$game_system.se_play($data_system.escape_se)
escape
@battler_visible = false
end
# White flash
if @battler.white_flash
whiten
@battler.white_flash = false
end
# Animation
if @battler.animation_id != 0
animation = $data_animations[@battler.animation_id]
animation(animation, @battler.animation_hit)
@battler.animation_id = 0
end
# Damage
if @battler.damage_pop
damage(@battler.damage, @battler.critical)
@battler.damage = nil
@battler.critical = false
@battler.damage_pop = false
end
# Collapse
if @battler.damage == nil and @battler.dead?
if @battler.is_a?(Game_Enemy)
$game_system.se_play($data_system.enemy_collapse_se)
else
$game_system.se_play($data_system.actor_collapse_se)
end
#collapse
#@battler_visible = false
@battler_name = @battler.battler_name + "_dead"
@battler_hue = @battler.battler_hue
self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
@width = bitmap.width
@height = bitmap.height
self.ox = @width / 2
self.oy = @height
end
end
self.x = @battler.screen_x
self.y = @battler.screen_y + 25
self.z = @battler.screen_z
end
end
|
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
Troma -
posté le 11/09/2022 à 04:50:57 (6392 messages postés)
| Je procrastine | Salut, ah oui ok, maintenant ca fonctionne mais ca joue en continu l'effet sonore de la mort des personnages comme des monstres, mais c'est pas tres grave je peux les supprimer en en mettant pas, merci.
|
ꀎꀎꀎꀎꀎꀎꀎ |
pepette -
posté le 13/09/2022 à 13:59:11 (61 messages postés)
| | RPGM : VX ace
Bonjour à tous
Je suis vraiment novice en RUBY, pour le moment, je me contente de modifier des script existants.
Des fois ça marche, des fois ça marche pas...
Comme mon jeu est jouable en plusieurs langues, j'ai essayé d’intégrer une série de "if/else" dans un module audio afin que les fonctions affichées soient traduites.
Quand la langue est choisie, ça actionne l'interrupteur correspondant à la langue, et par défaut, ça affiche la version Anglaise.
Quand je lance, ça crash direct et j'ai le message :
Citation: script 'mastervolume' line 61: NoMethodError occured
undefined method '[]' for nil:NilClass |
La ligne 61 correspond ici à la ligne 28
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
|
===============================================================================
# ● Item settings
#===============================================================================
module HZM_VXA
module AudioVol
# ● Do you want to display the volume adjustment on the title screen?
# ※To redefine the menu items on the title screen,
# If you introduce another script that tamper with the menu titles
# There's a possibility of conflict.
# true …… Display
# false …… Don't display
TITLE_FLAG = true
# ● Do you want the volume adjustment displayed on the menu screen?
# true …… Display
# false …… Don't display
MENU_FLAG = true
# ● Types of Volume arrangement
# 0 …… BGM/BGS/SE/ME Set all at once
# 1 …… BGM+BGS と SE+ME Set with 2 kinds of
# 2 …… BGM/BGS/SE/ME Set by each of 4 types
TYPE = 2
# ● Volume Control Settings Name.
if $game_switches[36]#Français <=== Ligne 61 = début du code que j'ai ajouté
TITLE_NAME = "Volume" # Item name to be displayed on title screen
MENU_NAME = "Volume" # Name of the setting in Main Menu.
CONFIG_ALL_NAME = "GENERAL" # Used when type "0" is selected
CONFIG_BGM_NAME = "Musique" # Used when type "1" "2" is selected
CONFIG_BGS_NAME = "Ambiance" # Used when type "2" is selected
CONFIG_SE_NAME = "Effet" # Used when type "1" "2" is selected
CONFIG_ME_NAME = "Autres" # Used when type "2" is selected
CONFIG_EXIT_NAME = "OK"
else
if $game_switches[597] # Allemand
TITLE_NAME = "Lautstärke" # Item name to be displayed on title screen
MENU_NAME = "Lautstärke" # Name of the setting in Main Menu.
CONFIG_ALL_NAME = "MASTER" # Used when type "0" is selected
CONFIG_BGM_NAME = "Musik" # Used when type "1" "2" is selected
CONFIG_BGS_NAME = "Ambiante" # Used when type "2" is selected
CONFIG_SE_NAME = "Effekt" # Used when type "1" "2" is selected
CONFIG_ME_NAME = "Andere" # Used when type "2" is selected
CONFIG_EXIT_NAME = "OK"
else
if $game_switches[598] # Espagnol
TITLE_NAME = "Volumen" # Item name to be displayed on title screen
MENU_NAME = "Volumen" # Name of the setting in Main Menu.
CONFIG_ALL_NAME = "MASTER" # Used when type "0" is selected
CONFIG_BGM_NAME = "Mùsica" # Used when type "1" "2" is selected
CONFIG_BGS_NAME = "Ambiante" # Used when type "2" is selected
CONFIG_SE_NAME = "Efecto" # Used when type "1" "2" is selected
CONFIG_ME_NAME = "Otros" # Used when type "2" is selected
CONFIG_EXIT_NAME = "OK"
else
if $game_switches[599] # Russe
TITLE_NAME = "Громкость" # Item name to be displayed on title screen
MENU_NAME = "Громкость" # Name of the setting in Main Menu.
CONFIG_ALL_NAME = "MASTER" # Used when type "0" is selected
CONFIG_BGM_NAME = "Музыка" # Used when type "1" "2" is selected
CONFIG_BGS_NAME = "окружающая среда" # Used when type "2" is selected
CONFIG_SE_NAME = "Эффект" # Used when type "1" "2" is selected
CONFIG_ME_NAME = "Другие" # Used when type "2" is selected
CONFIG_EXIT_NAME = "OK"
else
if $game_switches[600] # Portugais
TITLE_NAME = "Volume" # Item name to be displayed on title screen
MENU_NAME = "Volume" # Name of the setting in Main Menu.
CONFIG_ALL_NAME = "MESTRE" # Used when type "0" is selected
CONFIG_BGM_NAME = "Mùsica" # Used when type "1" "2" is selected
CONFIG_BGS_NAME = "Ambiante" # Used when type "2" is selected
CONFIG_SE_NAME = "Efeito" # Used when type "1" "2" is selected
CONFIG_ME_NAME = "Outros" # Used when type "2" is selected
CONFIG_EXIT_NAME = "OK"
else
if $game_switches[601] # Turc
TITLE_NAME = "Cilt" # Item name to be displayed on title screen
MENU_NAME = "Cilt" # Name of the setting in Main Menu.
CONFIG_ALL_NAME = "USTA" # Used when type "0" is selected
CONFIG_BGM_NAME = "Müzik" # Used when type "1" "2" is selected
CONFIG_BGS_NAME = "Ortam" # Used when type "2" is selected
CONFIG_SE_NAME = "Etki" # Used when type "1" "2" is selected
CONFIG_ME_NAME = "Diğerleri" # Used when type "2" is selected
CONFIG_EXIT_NAME = "TAMAN"
else
if $game_switches[602] # Italien
TITLE_NAME = "Volume" # Item name to be displayed on title screen
MENU_NAME = "Volume" # Name of the setting in Main Menu.
CONFIG_ALL_NAME = "MASTER" # Used when type "0" is selected
CONFIG_BGM_NAME = "Musica" # Used when type "1" "2" is selected
CONFIG_BGS_NAME = "Ambiante" # Used when type "2" is selected
CONFIG_SE_NAME = "Effetto" # Used when type "1" "2" is selected
CONFIG_ME_NAME = "Altro" # Used when type "2" is selected
CONFIG_EXIT_NAME = "OK"
else
if $game_switches[603] # Ukrainien
TITLE_NAME = "Volume" # Item name to be displayed on title screen
MENU_NAME = "Volume" # Name of the setting in Main Menu.
CONFIG_ALL_NAME = "MASTER" # Used when type "0" is selected
CONFIG_BGM_NAME = "Music" # Used when type "1" "2" is selected
CONFIG_BGS_NAME = "ambiant" # Used when type "2" is selected
CONFIG_SE_NAME = "SE" # Used when type "1" "2" is selected
CONFIG_ME_NAME = "ME" # Used when type "2" is selected
CONFIG_EXIT_NAME = "Exit"
else
if $game_switches[761] # Neerlandais
TITLE_NAME = "Обсяг" # Item name to be displayed on title screen
MENU_NAME = "Обсяг" # Name of the setting in Main Menu.
CONFIG_ALL_NAME = "MASTER" # Used when type "0" is selected
CONFIG_BGM_NAME = "Музика" # Used when type "1" "2" is selected
CONFIG_BGS_NAME = "ембієнт" # Used when type "2" is selected
CONFIG_SE_NAME = "Ефект" # Used when type "1" "2" is selected
CONFIG_ME_NAME = "Інші" # Used when type "2" is selected
CONFIG_EXIT_NAME = "ДОБРЕ"
else
if $game_switches[762] # Chinois
TITLE_NAME = "音量" # Item name to be displayed on title screen
MENU_NAME = "音量" # Name of the setting in Main Menu.
CONFIG_ALL_NAME = "主人" # Used when type "0" is selected
CONFIG_BGM_NAME = "音乐" # Used when type "1" "2" is selected
CONFIG_BGS_NAME = "环境" # Used when type "2" is selected
CONFIG_SE_NAME = "效果" # Used when type "1" "2" is selected
CONFIG_ME_NAME = "其他" # Used when type "2" is selected
CONFIG_EXIT_NAME = "確定"
else #$game_switches[37] #Anglais
TITLE_NAME = "Volume" # Item name to be displayed on title screen
MENU_NAME = "Volume" # Name of the setting in Main Menu.
CONFIG_ALL_NAME = "MASTER" # Used when type "0" is selected
CONFIG_BGM_NAME = "Music" # Used when type "1" "2" is selected
CONFIG_BGS_NAME = "Ambiant" # Used when type "2" is selected
CONFIG_SE_NAME = "Effect" # Used when type "1" "2" is selected
CONFIG_ME_NAME = "Others" # Used when type "2" is selected
CONFIG_EXIT_NAME = "OK"
end
end
end
end
end
end
end
end
end
end
# fin du code que j'ai ajouté
# ● Volume adjustment by Increments
ADD_VOL_NORMAL = 5 # Amount of increment of left and right keys
ADD_VOL_HIGH = 25 # LR Variation amount of key
# ● Window width of volume setting screen
WINDOW_WIDTH = 200
# ● Volume gauge color from the menu interface
COLOR1 = Color.new(255, 255, 255)
COLOR2 = Color.new( 64, 64, 255)
# ● Save function of volume setting
# Game.ini, By storing volume information in
# You can also adjust the volume when you start up
# true …… Save
# false …… Don't save
USE_INI = true
end
end
|
J'utilise la même série de "IF / ELSE" dans d'autres script et ça fonctionne. (mais ils sont insérés dans un "DEF"
Est ce que le IF/ELSE est interdit dans un "module" ?
|
Gari -
posté le 13/09/2022 à 15:20:16 (5901 messages postés)
- | | Il te manque un # devant ta première ligne de ==================, déjà. Mais il est sans doute présent dans ton script d'origine.
Et il te manque un true/false sur tes switches, là on sait pas trop ce qu'ils font.
1
| if $game_switches[x] = true |
| Aller à la page 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 73Index du forum > Entraide > [Scripts] Petites questions connes sur les SCRIPTS!!
|