- kurosaki-sama-01Membre
- Nombre de messages : 12
Age : 21
Distinction : aucune
Date d'inscription : 05/12/2017
probleme "Script'Sprite_battler'line80: TypeError occured no implicit conversion from nil to integer
Sam 9 Déc 2017 - 21:14
Bonjour j'ais ce probleme alors que je n'avais aucun probleme avant s\'il vous plaît aidez moi PS je n'est pas toucher au script de base
Script 'Sprite_battler' line80: TypeError occured no implicit conversion from nil to integer
Voici le script
#==============================================================================
# ** Sprite_Battler
#------------------------------------------------------------------------------
# This sprite is used to display battlers. It observes an instance of the
# Game_Battler class and automatically changes sprite states.
#==============================================================================
class Sprite_Battler < Sprite_Base
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :battler
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(viewport, battler = nil)
super(viewport)
@battler = battler
@battler_visible = false
@effect_type = nil
@effect_duration = 0
end
#--------------------------------------------------------------------------
# * Free
#--------------------------------------------------------------------------
def dispose
bitmap.dispose if bitmap
super
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
if @battler
@use_sprite = @battler.use_sprite?
if @use_sprite
update_bitmap
update_origin
update_position
end
setup_new_effect
setup_new_animation
update_effect
else
self.bitmap = nil
@effect_type = nil
end
end
#--------------------------------------------------------------------------
# * Update Transfer Origin Bitmap
#--------------------------------------------------------------------------
def update_bitmap
new_bitmap = Cache.battler(@battler.battler_name, @battler.battler_hue)
if bitmap != new_bitmap
self.bitmap = new_bitmap
init_visibility
end
end
#--------------------------------------------------------------------------
# * Initialize Visibility
#--------------------------------------------------------------------------
def init_visibility
@battler_visible = @battler.alive?
self.opacity = 0 unless @battler_visible
end
#--------------------------------------------------------------------------
# * Update Origin
#--------------------------------------------------------------------------
def update_origin
if bitmap
self.ox = bitmap.width / 2
self.oy = bitmap.height
end
end
#--------------------------------------------------------------------------
# * Update Position
#--------------------------------------------------------------------------
def update_position
self.x = @battler.screen_x
self.y = @battler.screen_y
self.z = @battler.screen_z
end
#--------------------------------------------------------------------------
# * Set New Effect
#--------------------------------------------------------------------------
def setup_new_effect
if !@battler_visible && @battler.alive?
start_effect(:appear)
elsif @battler_visible && @battler.hidden?
start_effect(:disappear)
end
if @battler_visible && @battler.sprite_effect_type
start_effect(@battler.sprite_effect_type)
@battler.sprite_effect_type = nil
end
end
#--------------------------------------------------------------------------
# * Start Effect
#--------------------------------------------------------------------------
def start_effect(effect_type)
@effect_type = effect_type
case @effect_type
when :appear
@effect_duration = 16
@battler_visible = true
when :disappear
@effect_duration = 32
@battler_visible = false
when :whiten
@effect_duration = 16
@battler_visible = true
when :blink
@effect_duration = 20
@battler_visible = true
when :collapse
@effect_duration = 48
@battler_visible = false
when :boss_collapse
@effect_duration = bitmap.height
@battler_visible = false
when :instant_collapse
@effect_duration = 16
@battler_visible = false
end
revert_to_normal
end
#--------------------------------------------------------------------------
# * Revert to Normal Settings
#--------------------------------------------------------------------------
def revert_to_normal
self.blend_type = 0
self.color.set(0, 0, 0, 0)
self.opacity = 255
self.ox = bitmap.width / 2 if bitmap
self.src_rect.y = 0
end
#--------------------------------------------------------------------------
# * Set New Animation
#--------------------------------------------------------------------------
def setup_new_animation
if @battler.animation_id > 0
animation = $data_animations[@battler.animation_id]
mirror = @battler.animation_mirror
start_animation(animation, mirror)
@battler.animation_id = 0
end
end
#--------------------------------------------------------------------------
# * Determine if Effect Is Executing
#--------------------------------------------------------------------------
def effect?
@effect_type != nil
end
#--------------------------------------------------------------------------
# * Update Effect
#--------------------------------------------------------------------------
def update_effect
if @effect_duration > 0
@effect_duration -= 1
case @effect_type
when :whiten
update_whiten
when :blink
update_blink
when :appear
update_appear
when :disappear
update_disappear
when :collapse
update_collapse
when :boss_collapse
update_boss_collapse
when :instant_collapse
update_instant_collapse
end
@effect_type = nil if @effect_duration == 0
end
end
#--------------------------------------------------------------------------
# * Update White Flash Effect
#--------------------------------------------------------------------------
def update_whiten
self.color.set(255, 255, 255, 0)
self.color.alpha = 128 - (16 - @effect_duration) * 10
end
#--------------------------------------------------------------------------
# * Update Blink Effect
#--------------------------------------------------------------------------
def update_blink
self.opacity = (@effect_duration % 10 < 5) ? 255 : 0
end
#--------------------------------------------------------------------------
# * Update Appearance Effect
#--------------------------------------------------------------------------
def update_appear
self.opacity = (16 - @effect_duration) * 16
end
#--------------------------------------------------------------------------
# * Updated Disappear Effect
#--------------------------------------------------------------------------
def update_disappear
self.opacity = 256 - (32 - @effect_duration) * 10
end
#--------------------------------------------------------------------------
# * Update Collapse Effect
#--------------------------------------------------------------------------
def update_collapse
self.blend_type = 1
self.color.set(255, 128, 128, 128)
self.opacity = 256 - (48 - @effect_duration) * 6
end
#--------------------------------------------------------------------------
# * Update Boss Collapse Effect
#--------------------------------------------------------------------------
def update_boss_collapse
alpha = @effect_duration * 120 / bitmap.height
self.ox = bitmap.width / 2 + @effect_duration % 2 * 4 - 2
self.blend_type = 1
self.color.set(255, 255, 255, 255 - alpha)
self.opacity = alpha
self.src_rect.y -= 1
Sound.play_boss_collapse2 if @effect_duration % 20 == 19
end
#--------------------------------------------------------------------------
# * Update Instant Collapse Effect
#--------------------------------------------------------------------------
def update_instant_collapse
self.opacity = 0
end
end
Script 'Sprite_battler' line80: TypeError occured no implicit conversion from nil to integer
Voici le script
#==============================================================================
# ** Sprite_Battler
#------------------------------------------------------------------------------
# This sprite is used to display battlers. It observes an instance of the
# Game_Battler class and automatically changes sprite states.
#==============================================================================
class Sprite_Battler < Sprite_Base
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :battler
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(viewport, battler = nil)
super(viewport)
@battler = battler
@battler_visible = false
@effect_type = nil
@effect_duration = 0
end
#--------------------------------------------------------------------------
# * Free
#--------------------------------------------------------------------------
def dispose
bitmap.dispose if bitmap
super
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
if @battler
@use_sprite = @battler.use_sprite?
if @use_sprite
update_bitmap
update_origin
update_position
end
setup_new_effect
setup_new_animation
update_effect
else
self.bitmap = nil
@effect_type = nil
end
end
#--------------------------------------------------------------------------
# * Update Transfer Origin Bitmap
#--------------------------------------------------------------------------
def update_bitmap
new_bitmap = Cache.battler(@battler.battler_name, @battler.battler_hue)
if bitmap != new_bitmap
self.bitmap = new_bitmap
init_visibility
end
end
#--------------------------------------------------------------------------
# * Initialize Visibility
#--------------------------------------------------------------------------
def init_visibility
@battler_visible = @battler.alive?
self.opacity = 0 unless @battler_visible
end
#--------------------------------------------------------------------------
# * Update Origin
#--------------------------------------------------------------------------
def update_origin
if bitmap
self.ox = bitmap.width / 2
self.oy = bitmap.height
end
end
#--------------------------------------------------------------------------
# * Update Position
#--------------------------------------------------------------------------
def update_position
self.x = @battler.screen_x
self.y = @battler.screen_y
self.z = @battler.screen_z
end
#--------------------------------------------------------------------------
# * Set New Effect
#--------------------------------------------------------------------------
def setup_new_effect
if !@battler_visible && @battler.alive?
start_effect(:appear)
elsif @battler_visible && @battler.hidden?
start_effect(:disappear)
end
if @battler_visible && @battler.sprite_effect_type
start_effect(@battler.sprite_effect_type)
@battler.sprite_effect_type = nil
end
end
#--------------------------------------------------------------------------
# * Start Effect
#--------------------------------------------------------------------------
def start_effect(effect_type)
@effect_type = effect_type
case @effect_type
when :appear
@effect_duration = 16
@battler_visible = true
when :disappear
@effect_duration = 32
@battler_visible = false
when :whiten
@effect_duration = 16
@battler_visible = true
when :blink
@effect_duration = 20
@battler_visible = true
when :collapse
@effect_duration = 48
@battler_visible = false
when :boss_collapse
@effect_duration = bitmap.height
@battler_visible = false
when :instant_collapse
@effect_duration = 16
@battler_visible = false
end
revert_to_normal
end
#--------------------------------------------------------------------------
# * Revert to Normal Settings
#--------------------------------------------------------------------------
def revert_to_normal
self.blend_type = 0
self.color.set(0, 0, 0, 0)
self.opacity = 255
self.ox = bitmap.width / 2 if bitmap
self.src_rect.y = 0
end
#--------------------------------------------------------------------------
# * Set New Animation
#--------------------------------------------------------------------------
def setup_new_animation
if @battler.animation_id > 0
animation = $data_animations[@battler.animation_id]
mirror = @battler.animation_mirror
start_animation(animation, mirror)
@battler.animation_id = 0
end
end
#--------------------------------------------------------------------------
# * Determine if Effect Is Executing
#--------------------------------------------------------------------------
def effect?
@effect_type != nil
end
#--------------------------------------------------------------------------
# * Update Effect
#--------------------------------------------------------------------------
def update_effect
if @effect_duration > 0
@effect_duration -= 1
case @effect_type
when :whiten
update_whiten
when :blink
update_blink
when :appear
update_appear
when :disappear
update_disappear
when :collapse
update_collapse
when :boss_collapse
update_boss_collapse
when :instant_collapse
update_instant_collapse
end
@effect_type = nil if @effect_duration == 0
end
end
#--------------------------------------------------------------------------
# * Update White Flash Effect
#--------------------------------------------------------------------------
def update_whiten
self.color.set(255, 255, 255, 0)
self.color.alpha = 128 - (16 - @effect_duration) * 10
end
#--------------------------------------------------------------------------
# * Update Blink Effect
#--------------------------------------------------------------------------
def update_blink
self.opacity = (@effect_duration % 10 < 5) ? 255 : 0
end
#--------------------------------------------------------------------------
# * Update Appearance Effect
#--------------------------------------------------------------------------
def update_appear
self.opacity = (16 - @effect_duration) * 16
end
#--------------------------------------------------------------------------
# * Updated Disappear Effect
#--------------------------------------------------------------------------
def update_disappear
self.opacity = 256 - (32 - @effect_duration) * 10
end
#--------------------------------------------------------------------------
# * Update Collapse Effect
#--------------------------------------------------------------------------
def update_collapse
self.blend_type = 1
self.color.set(255, 128, 128, 128)
self.opacity = 256 - (48 - @effect_duration) * 6
end
#--------------------------------------------------------------------------
# * Update Boss Collapse Effect
#--------------------------------------------------------------------------
def update_boss_collapse
alpha = @effect_duration * 120 / bitmap.height
self.ox = bitmap.width / 2 + @effect_duration % 2 * 4 - 2
self.blend_type = 1
self.color.set(255, 255, 255, 255 - alpha)
self.opacity = alpha
self.src_rect.y -= 1
Sound.play_boss_collapse2 if @effect_duration % 20 == 19
end
#--------------------------------------------------------------------------
# * Update Instant Collapse Effect
#--------------------------------------------------------------------------
def update_instant_collapse
self.opacity = 0
end
end
- KingdommangasMembre
- Nombre de messages : 1401
Localisation : Ma tête
Distinction : Débrouillarde notoire é_è [Mist']
Ou celle qui partageait plus vite que son ombre [Gel']
Poisson 2017 [Amal]
Grâce à elle, tout le forum appelle Yamashi "Mamashi" [Yama]
Entraide d'Or
Règne dans l'ombre de la commu'
Youtubeuse beauté reconvertie dans le gaming [Amal']
Date d'inscription : 05/05/2015
Re: probleme "Script'Sprite_battler'line80: TypeError occured no implicit conversion from nil to integer
Sam 9 Déc 2017 - 21:36
je ne code pas donc je ne pourrai pas aider mais lorsqu'on demande de l'aide sur un script, il est coutume de mettre le script dans la demande ou au moins un lien vers le script qui pose problème.
Car même si les codeurs ont le super pouvoir de manipuler RPG Maker à leurs guise, ils ne peuvent pas encore corriger un code qu'on leurs donne pas, c'est comme corriger une copie blanche, plutot compliquer ^^.
Car même si les codeurs ont le super pouvoir de manipuler RPG Maker à leurs guise, ils ne peuvent pas encore corriger un code qu'on leurs donne pas, c'est comme corriger une copie blanche, plutot compliquer ^^.
- CantarelleMembre
- Nombre de messages : 28
Age : 36
Distinction : aucune
Date d'inscription : 11/11/2017
Re: probleme "Script'Sprite_battler'line80: TypeError occured no implicit conversion from nil to integer
Sam 9 Déc 2017 - 23:25
Bon, ça ne règle pas le soucis, mais ça permet déjà de le comprendre.
La ligne 80 est celle-ci :
Or, l'erreur dit qu'il ne peut pas convertir un nil par un entier. Nil = null = vide.
Donc, par logique, ça veut dire que @battler est vide. Il n'a aucune référence.
D'autant plus que, à l'initialisation, tu as :
Indirectement, cette ligne dit : si le paramètre battler n'est pas renseigné, alors met nil.
Dit plus haut : nil = null = vide.
Ce qui dit que, lorsqu'il rentre dans le initialize, il est nil.
Comme c'est un script de base (je viens de vérifier, même si je ne make pas avec VX.ace), il n'y a pas d'erreur d'incompatibilité avec les autres.
Si on s'en tient à ce que tu as dit, c'est-à-dire que tu n'as pas touché aux scripts (en en ajoutant ou en retirant)... on n'arrive qu'à une conclusion.
Le seul truc à demander est : qu'est-ce que tu as touché avant que ça plante ? Ça peut être un simple event ou une mauvaise configuration d'un skill ou autre.
La ligne 80 est celle-ci :
- Code:
self.x = @battler.screen_x
Or, l'erreur dit qu'il ne peut pas convertir un nil par un entier. Nil = null = vide.
Donc, par logique, ça veut dire que @battler est vide. Il n'a aucune référence.
D'autant plus que, à l'initialisation, tu as :
- Code:
def initialize(viewport, battler = nil)
Indirectement, cette ligne dit : si le paramètre battler n'est pas renseigné, alors met nil.
Dit plus haut : nil = null = vide.
Ce qui dit que, lorsqu'il rentre dans le initialize, il est nil.
Comme c'est un script de base (je viens de vérifier, même si je ne make pas avec VX.ace), il n'y a pas d'erreur d'incompatibilité avec les autres.
Si on s'en tient à ce que tu as dit, c'est-à-dire que tu n'as pas touché aux scripts (en en ajoutant ou en retirant)... on n'arrive qu'à une conclusion.
Le seul truc à demander est : qu'est-ce que tu as touché avant que ça plante ? Ça peut être un simple event ou une mauvaise configuration d'un skill ou autre.
- kurosaki-sama-01Membre
- Nombre de messages : 12
Age : 21
Distinction : aucune
Date d'inscription : 05/12/2017
Re: probleme "Script'Sprite_battler'line80: TypeError occured no implicit conversion from nil to integer
Dim 10 Déc 2017 - 2:30
Cantarelle a écrit:Bon, ça ne règle pas le soucis, mais ça permet déjà de le comprendre.
La ligne 80 est celle-ci :
- Code:
self.x = @battler.screen_x
Or, l'erreur dit qu'il ne peut pas convertir un nil par un entier. Nil = null = vide.
Donc, par logique, ça veut dire que @battler est vide. Il n'a aucune référence.
D'autant plus que, à l'initialisation, tu as :
battler = nil. C'est parfois vu en PHP où, pour éviter des erreurs, on met des données initialisées en paramètres.
- Code:
def initialize(viewport, battler = nil)
Indirectement, cette ligne dit : si le paramètre battler n'est pas renseigné, alors met nil.
Dit plus haut : nil = null = vide.
Ce qui dit que, lorsqu'il rentre dans le initialize, il est nil.
Comme c'est un script de base (je viens de vérifier, même si je ne make pas avec VX.ace), il n'y a pas d'erreur d'incompatibilité avec les autres.
Si on s'en tient à ce que tu as dit, c'est-à-dire que tu n'as pas touché aux scripts (en en ajoutant ou en retirant)... on n'arrive qu'à une conclusion.
Le seul truc à demander est : qu'est-ce que tu as touché avant que ça plante ? Ça peut être un simple event ou une mauvaise configuration d'un skill ou autre.
j'ai modifié la taille de certain boss
et j'ai mit des script qui n'ont pas fonctionné que g donc retiré
- CantarelleMembre
- Nombre de messages : 28
Age : 36
Distinction : aucune
Date d'inscription : 11/11/2017
Re: probleme "Script'Sprite_battler'line80: TypeError occured no implicit conversion from nil to integer
Dim 10 Déc 2017 - 16:08
Bon, alors déjà, ça change, parce que tu as quand même touché aux scripts, même indirectement.et j'ai mit des script qui n'ont pas fonctionné que g donc retiré
Ensuite, autre question (que je n'ai pas pensé à poser hier) : Comment ça plante (ou comment as-tu cette erreur) ? Est-ce en commençant un combat ? Est-ce sur la map ? Est-ce que c'est au chargement d'une ancienne save ? En commençant une nouvelle partie ?
Une autre question : est-ce que tu as testé en remettant la taille par défaut des boss que tu as touché ?
Dernière question : J'espère que tu n'as pas du tout changer l'ordre des scripts de base... C'est le cas ?
- kurosaki-sama-01Membre
- Nombre de messages : 12
Age : 21
Distinction : aucune
Date d'inscription : 05/12/2017
Re: probleme "Script'Sprite_battler'line80: TypeError occured no implicit conversion from nil to integer
Dim 10 Déc 2017 - 18:21
j'ai effacer les ancien boss et sa plante quand le combat commmence et quand je charge une save et en new game et nn les script de base je ny est pas toucher
- Contenu sponsorisé
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum