- YasanMembre
- Nombre de messages : 149
Age : 39
Distinction : aucune
Date d'inscription : 18/01/2011
Compatibilité GTBS et Parallax ?
Jeu 17 Nov 2011 - 16:49
J'ai bien envie d'utiliser le Overlay script de Himura (trouvable ici => http://www.mediafire.com/?2dlor88mfdzbnbw) qui simplifie pas mal le travail en parallaxe. Le soucis, c'est que le GTBS (en attendant que le TBS de Blockade soit avancé) ignore allègrement le parallaxe.
Quelqu'un a une idée ? :/
Quelqu'un a une idée ? :/
- driccMembre
- Nombre de messages : 2760
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009
Re: Compatibilité GTBS et Parallax ?
Jeu 17 Nov 2011 - 17:17
Euh , quand tu dis parallaxe , tu veux parler de panorama , non ?
La notion de paralaxe n'existe pas dans rpgmaker .
La notion de paralaxe n'existe pas dans rpgmaker .
- YasanMembre
- Nombre de messages : 149
Age : 39
Distinction : aucune
Date d'inscription : 18/01/2011
Re: Compatibilité GTBS et Parallax ?
Jeu 17 Nov 2011 - 17:20
J'ai tenté de bidouiller un truc mais comme c'est du bidouillage, ça fait soucis !
Voici le script de l'Overlay pour plus de commodité :
Mon bidouillage consistait à copier ce qu'il y a dans Scene_map et à le coller dans un "class Scene_Battle_TBS" que je placerais en nouveau script. Ca semblait fonctionner, quand le combat commençait avec le GTBS, tout était en place, mais dès que le personnage était placé POUM ! Erreur :
NoMethodError occured.
super : no superclass method "update"
[Edit] Dricc, je veux dire heuuu mapper avec un fond en image et une image pour le dessus.. mmh heu comme fait Celianna ici => https://www.youtube.com/watch?v=dar-lhINt18
Voici le script de l'Overlay pour plus de commodité :
- Spoiler:
- Code:
#==============================================================================
# U L T I M A T E O V E R L A Y M A P P I N G
# Script By: Hanzo Kimura
# Date Created: 08/11/10
#==============================================================================
module HK_UOM
#=================================== SET UP ===================================#
# SCREEN SETUP
Width = 544 # The Size of Resolution (Screen's Width) 544/640
Height = 416 # The Size of Resolution (Screen's Height) 416/480
# SWITCHES
LightSwitch = 1 #Switch to Activate Light Overlays
ShadowSwitch = 2 #Switch to Activate Shadow Overlays
ParSwitch = 1 #Switch to Activate Parallax Overlays
GroundSwitch = 1 #Switch to Activate Ground Overlays
# FILENAMES
LightMap = "Light" #The name of the file for Light Overlays
ShadowMap = "Shadow" #The name of the file for Shadow Overlays
ParMap = "Par" #The name of the file for Parallax Overlays
GroundMap = "Ground" #The name of the file for Ground Overlays
#================================ END OF SET UP ===============================#
end
# OVERLAY SCRIPT STARTS HERE #
module Cache
def self.overlay(filename)
load_bitmap("Overlays/", filename)
end
end
class Spriteset_Map
include HK_UOM
alias hk_uom_initialize initialize
def initialize
@GroundON = FileTest.exist?("Overlays/" + "ground" + $game_map.map_id.to_s + ".png")
hk_uom_initialize
update
end
alias hk_uom_create_parallax create_parallax
def create_parallax
if @GroundON
@ground = Sprite.new(@viewport1)
@ground.z = 1
@ground.bitmap = Cache.overlay("ground" + $game_map.map_id.to_s)
end
hk_uom_create_parallax
end
alias hk_uom_dispose_parallax dispose_parallax
def dispose_parallax
if @ground != nil
@ground.dispose
end
hk_uom_dispose_parallax
end
alias hk_uom_update_parallax update_parallax
def update_parallax
if @ground != nil
@ground.visible = $game_switches[GroundSwitch]
end
if @ground != nil
@ground.tone = $game_map.screen.tone
@viewport1.ox = $game_map.screen.shake #update shake screen
@viewport1.color = $game_map.screen.flash_color #update flash screen
if @ground.ox != -$game_map.display_x / 256 or @ground.oy != -$game_map.display_y / 256 or @ground.ox == 0 or @ground.oy == 0
@ground.ox = $game_map.display_x / 8
@ground.oy = $game_map.display_y / 8
end
end
hk_uom_update_parallax
end
end
#==============================================================================
# Scene Map
#==============================================================================
class Scene_Map < Scene_Base
alias hk_uom_start start
def start
hk_uom_start
$OverlayMap = Overlay_Map.new
end
def terminate
super
if $scene.is_a?(Scene_Battle)
@spriteset.dispose_characters
end
snapshot_for_background
@spriteset.dispose
@message_window.dispose
$OverlayMap.dispose
if $scene.is_a?(Scene_Battle)
perform_battle_transition
end
end
def update
super
$game_map.interpreter.update
$game_map.update
$game_player.update
$game_system.update
@spriteset.update
@message_window.update
$OverlayMap.update
unless $game_message.visible
update_transfer_player
update_encounter
update_call_menu
update_call_debug
update_scene_change
end
end
def update_transfer_player
return unless $game_player.transfer?
fade = (Graphics.brightness > 0)
fadeout(30) if fade
@spriteset.dispose
$game_player.perform_transfer
$game_map.autoplay
$game_map.update
Graphics.wait(15)
@spriteset = Spriteset_Map.new
$OverlayMap.dispose
$OverlayMap = Overlay_Map.new
fadein(30) if fade
Input.update
end
end
#==============================================================================
# Overlay
#==============================================================================
class Overlay_Map
include HK_UOM
def initialize
check_file
display_overlay
end
def check_file
@LightON = FileTest.exist?("Overlays/" + LightMap + $game_map.map_id.to_s + ".jpg")
@ShadowON = FileTest.exist?("Overlays/" + ShadowMap + $game_map.map_id.to_s + ".jpg")
@ParON = FileTest.exist?("Overlays/" + ParMap + $game_map.map_id.to_s + ".png")
@GroundON = FileTest.exist?("Overlays/" + GroundMap + $game_map.map_id.to_s + ".png")
end
# Displaying Overlays SET UP #
def display_overlay
if @LightON
@light_viewport = Viewport.new(0, 0, Width, Height)
@light_viewport.z = 10
@light = Sprite.new(@light_viewport)
@light.bitmap = Cache.overlay(LightMap + $game_map.map_id.to_s)
@light.z = 10
@light.opacity = 115
@light.blend_type = 1
@light.visible = $game_switches[LightSwitch]
end
if @ShadowON
@shadow_viewport = Viewport.new(0, 0, Width, Height)
@shadow_viewport.z = 9
@shadow = Sprite.new(@shadow_viewport)
@shadow.bitmap = Cache.overlay(ShadowMap + $game_map.map_id.to_s)
@shadow.z = 9
@shadow.opacity = 85
@shadow.blend_type = 2
@shadow.visible = $game_switches[ShadowSwitch]
end
if @ParON
@par_viewport = Viewport.new(0, 0, Width, Height)
@par_viewport.z = 8
@par = Sprite.new(@par_viewport)
@par.z = 8
@par.bitmap = Cache.overlay(ParMap + $game_map.map_id.to_s)
@par.tone = $game_map.screen.tone
@par.opacity = 255
@par.blend_type = 0
@par.visible = $game_switches[ParSwitch]
end
update
end
# Update Overlays SET UP #
def update
if @light != nil
@light.visible = $game_switches[LightSwitch]
end
if @shadow != nil
@shadow.visible = $game_switches[ShadowSwitch]
end
if @par != nil
@par.visible = $game_switches[ParSwitch]
end
if @light != nil
@light.tone = $game_map.screen.tone #update screentone
@light_viewport.ox = $game_map.screen.shake #update shake screen
@light_viewport.color = $game_map.screen.flash_color #update flash screen
if @light.x != $game_map.display_x / 256 or @light.y != $game_map.display_y / 256 or @light.x == 0 or @light.y == 0
@light.ox = $game_map.display_x / 8
@light.oy = $game_map.display_y / 8
end #./
end #./
if @shadow != nil
@shadow.tone = $game_map.screen.tone #update screentone
@shadow_viewport.ox = $game_map.screen.shake #update shake screen
@shadow_viewport.color = $game_map.screen.flash_color #update flash screen
if @shadow.x != $game_map.display_x / 256 or @shadow.y != $game_map.display_y / 256 or @shadow.x == 0 or @shadow.y == 0
@shadow.ox = $game_map.display_x / 8
@shadow.oy = $game_map.display_y / 8
end #./
end #./
if @par != nil
@par.tone = $game_map.screen.tone #update screentone
@par_viewport.ox = $game_map.screen.shake #update shake screen
@par_viewport.color = $game_map.screen.flash_color #update flash screen
if @par.ox != $game_map.display_x / 256 or @par.oy != $game_map.display_y / 256 or @par.ox == 0 or @par.oy == 0
@par.ox = $game_map.display_x / 8
@par.oy = $game_map.display_y / 8
end #./
end #./
end #def end
def dispose
if @light != nil
@light_viewport.dispose
@light.dispose
end
if @shadow != nil
@shadow_viewport.dispose
@shadow.dispose
end
if @par != nil
@par_viewport.dispose
@par.dispose
end
end
end
Mon bidouillage consistait à copier ce qu'il y a dans Scene_map et à le coller dans un "class Scene_Battle_TBS" que je placerais en nouveau script. Ca semblait fonctionner, quand le combat commençait avec le GTBS, tout était en place, mais dès que le personnage était placé POUM ! Erreur :
NoMethodError occured.
super : no superclass method "update"
[Edit] Dricc, je veux dire heuuu mapper avec un fond en image et une image pour le dessus.. mmh heu comme fait Celianna ici => https://www.youtube.com/watch?v=dar-lhINt18
- driccMembre
- Nombre de messages : 2760
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009
Re: Compatibilité GTBS et Parallax ?
Jeu 17 Nov 2011 - 17:26
J'ai trouvé ... oui , c'est une façon de faire totalement en dehors des clous . Pas surprenant que le GTBS soit incompatible .
Ton idée est bonne mais il faut aussi reporter aussi de spriteset_map à Spriteset_Battle_GTBS .
J'ai rendu un script de brouillard compatible avec le GTBS comme ça assez facilement .
Ton idée est bonne mais il faut aussi reporter aussi de spriteset_map à Spriteset_Battle_GTBS .
J'ai rendu un script de brouillard compatible avec le GTBS comme ça assez facilement .
- YasanMembre
- Nombre de messages : 149
Age : 39
Distinction : aucune
Date d'inscription : 18/01/2011
Re: Compatibilité GTBS et Parallax ?
Jeu 17 Nov 2011 - 17:33
Il me fait quand même la même erreur. Je suis pas fort du tout en script et en décryptage d'erreurs donc. Il me semble qu'il trouve pas ce à quoi fait appel "super" c'est ça ? Mais je sais pas comment faire.
- driccMembre
- Nombre de messages : 2760
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009
Re: Compatibilité GTBS et Parallax ?
Jeu 17 Nov 2011 - 17:40
Curieux , tu as la ligne en question ?
"super" , c'est une histoire d'héritage de classe .
Par exemple scene_map est déclaré comme ça:
class Scene_Map < Scene_Base
un peu plus bas , je vois :
def update
super
et le "super" veux dire : applique la methode du meme nom ("update", quoi) dans la classe parente (donc Scene_Base)
EDIT : oh , attends , j'ai trouvé je crois .
le scene_map du GTBS est comme ça :
class Scene_Map
alias gtbs_call_battle call_battle
def call_battle
if !GTBS::VX
$game_system.bgm_memorize
$game_system.bgs_memorize
end
gtbs_call_battle
if $game_system.tbs_enabled
$scene = Scene_Battle_TBS.new
end
end
end
il manque le "< Scene_Base" à la déclaration de la classe
"super" , c'est une histoire d'héritage de classe .
Par exemple scene_map est déclaré comme ça:
class Scene_Map < Scene_Base
un peu plus bas , je vois :
def update
super
et le "super" veux dire : applique la methode du meme nom ("update", quoi) dans la classe parente (donc Scene_Base)
EDIT : oh , attends , j'ai trouvé je crois .
le scene_map du GTBS est comme ça :
class Scene_Map
alias gtbs_call_battle call_battle
def call_battle
if !GTBS::VX
$game_system.bgm_memorize
$game_system.bgs_memorize
end
gtbs_call_battle
if $game_system.tbs_enabled
$scene = Scene_Battle_TBS.new
end
end
end
il manque le "< Scene_Base" à la déclaration de la classe
- YasanMembre
- Nombre de messages : 149
Age : 39
Distinction : aucune
Date d'inscription : 18/01/2011
Re: Compatibilité GTBS et Parallax ?
Jeu 17 Nov 2011 - 17:49
J'avais oublié de le lier via < Sprite_Base. De ce côté, il ne m'embête plus. Par coooontre...
(Pour que ça soit clair, voici le script que j'ai ajouté en bidouillant, il se trouve en dessous de l"Overlay et du GTBS = >
Maintenant il me dit :
undefined method 'update" for nil:NiCclass
Il pointe la ligne de mon bidouillage, dans la classe Scene_Battle_TBS :
def update
super
$game_map.interpreter.update
$game_map.update
$game_player.update
$game_system.update
@spriteset.update
@message_window.update
$OverlayMap.update
(Pour que ça soit clair, voici le script que j'ai ajouté en bidouillant, il se trouve en dessous de l"Overlay et du GTBS = >
- Spoiler:
- Code:
class Scene_Battle_TBS < Scene_Base
alias hk_uom_start start
def start
hk_uom_start
$OverlayMap = Overlay_Map.new
end
def terminate
super
if $scene.is_a?(Scene_Battle)
@spriteset.dispose_characters
end
snapshot_for_background
@spriteset.dispose
@message_window.dispose
$OverlayMap.dispose
if $scene.is_a?(Scene_Battle)
perform_battle_transition
end
end
def update
super
$game_map.interpreter.update
$game_map.update
$game_player.update
$game_system.update
@spriteset.update
@message_window.update
$OverlayMap.update
unless $game_message.visible
update_transfer_player
update_encounter
update_call_menu
update_call_debug
update_scene_change
end
end
def update_transfer_player
return unless $game_player.transfer?
fade = (Graphics.brightness > 0)
fadeout(30) if fade
@spriteset.dispose
$game_player.perform_transfer
$game_map.autoplay
$game_map.update
Graphics.wait(15)
@spriteset = Spriteset_Map.new
$OverlayMap.dispose
$OverlayMap = Overlay_Map.new
fadein(30) if fade
Input.update
end
end
class Spriteset_Battle_GTBS
include HK_UOM
alias hk_uom_initialize initialize
def initialize
@GroundON = FileTest.exist?("Overlays/" + "ground" + $game_map.map_id.to_s + ".png")
hk_uom_initialize
update
end
alias hk_uom_create_parallax create_parallax
def create_parallax
if @GroundON
@ground = Sprite.new(@viewport1)
@ground.z = 1
@ground.bitmap = Cache.overlay("ground" + $game_map.map_id.to_s)
end
hk_uom_create_parallax
end
alias hk_uom_dispose_parallax dispose_parallax
def dispose_parallax
if @ground != nil
@ground.dispose
end
hk_uom_dispose_parallax
end
alias hk_uom_update_parallax update_parallax
def update_parallax
if @ground != nil
@ground.visible = $game_switches[GroundSwitch]
end
if @ground != nil
@ground.tone = $game_map.screen.tone
@viewport1.ox = $game_map.screen.shake #update shake screen
@viewport1.color = $game_map.screen.flash_color #update flash screen
if @ground.ox != -$game_map.display_x / 256 or @ground.oy != -$game_map.display_y / 256 or @ground.ox == 0 or @ground.oy == 0
@ground.ox = $game_map.display_x / 8
@ground.oy = $game_map.display_y / 8
end
end
hk_uom_update_parallax
end
end
Maintenant il me dit :
undefined method 'update" for nil:NiCclass
Il pointe la ligne de mon bidouillage, dans la classe Scene_Battle_TBS :
def update
super
$game_map.interpreter.update
$game_map.update
$game_player.update
$game_system.update
@spriteset.update
@message_window.update
$OverlayMap.update
- driccMembre
- Nombre de messages : 2760
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009
Re: Compatibilité GTBS et Parallax ?
Jeu 17 Nov 2011 - 17:58
Ah , je vois .
modifie ça :
def start
hk_uom_start
$OverlayMap = Overlay_Map.new
end
comme ça :
def start
hk_uom_start
$game_map.refresh
@spriteset = Spriteset_Map.new
@message_window = Window_Message.new
$OverlayMap = Overlay_Map.new
end
(c'est repris depuis le Scene_Map standard , je suis pas sur pour le @message_window)
modifie ça :
def start
hk_uom_start
$OverlayMap = Overlay_Map.new
end
comme ça :
def start
hk_uom_start
$game_map.refresh
@spriteset = Spriteset_Map.new
@message_window = Window_Message.new
$OverlayMap = Overlay_Map.new
end
(c'est repris depuis le Scene_Map standard , je suis pas sur pour le @message_window)
- YasanMembre
- Nombre de messages : 149
Age : 39
Distinction : aucune
Date d'inscription : 18/01/2011
Re: Compatibilité GTBS et Parallax ?
Jeu 17 Nov 2011 - 18:28
Ca ne marche pas non plus :/
J'ai uploadé le projet pour que tu puisses voir, pas évident à expliquer pour un néophyte.
J'ai utilisé comme base le projet communautaire car tu avais déjà séparé chaque partie ou presque du GTBS.
http://www.mediafire.com/?545uymj4ofjs4pb
Le script bidouillé est le tout dernier.
J'ai uploadé le projet pour que tu puisses voir, pas évident à expliquer pour un néophyte.
J'ai utilisé comme base le projet communautaire car tu avais déjà séparé chaque partie ou presque du GTBS.
http://www.mediafire.com/?545uymj4ofjs4pb
Le script bidouillé est le tout dernier.
- driccMembre
- Nombre de messages : 2760
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009
Re: Compatibilité GTBS et Parallax ?
Ven 18 Nov 2011 - 10:47
Je regarde ...
Pas si terrible que ça en passant le script d'overlay : il supporte pas bien les personnages de 2 cases de hauteur , tu as remarqué ? le visage de ralph passe derriere les troncs d'arbre .
Pas si terrible que ça en passant le script d'overlay : il supporte pas bien les personnages de 2 cases de hauteur , tu as remarqué ? le visage de ralph passe derriere les troncs d'arbre .
- YasanMembre
- Nombre de messages : 149
Age : 39
Distinction : aucune
Date d'inscription : 18/01/2011
Re: Compatibilité GTBS et Parallax ?
Ven 18 Nov 2011 - 10:54
C'est parce que j'ai importé la map et le script directement et qu'à mon avis les configurations de passage ne sont pas transférées. J'ai déjà fait du mapping de ce type et ça marche bien, il faut bien paramétrer la chose.
En tout cas, sur la démo avec la même map de l'auteur, il n'y a pas ce soucis il me semble bien !
En tout cas, sur la démo avec la même map de l'auteur, il n'y a pas ce soucis il me semble bien !
- BalbereithStaffeux retraité
- Nombre de messages : 4129
Age : 32
Localisation : dans l'ombre...
Distinction : Péripatéticienne à temps perdu
Helly n°666 [Coco' ;D]
mon ptit balbounet p'tit jardinier en herbe(les râteaux ça le connait) [tonton Adurna]
Cultivateur professionnel de la commu' (il a de bons outils en de nombreux exemplaires ) [Coco' ]
Date d'inscription : 13/05/2009
Re: Compatibilité GTBS et Parallax ?
Dim 15 Juil 2012 - 20:18
Inactif, donc locké et déplacé.
Pour une réouverture, envoyer un message dans la boîte aux lettres.
Pour une réouverture, envoyer un message dans la boîte aux lettres.
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum