Page 2 sur 3 • 1, 2, 3
- MrPsitMembre
- Nombre de messages : 29
Date d'inscription : 26/02/2014
Re: [VXAce]Script d'étage
Mer 5 Mar 2014 - 18:29
Juste par curiosité, histoire de mieux comprendre ce que j'utilise (et puis j'essaye de me former aux scripts depuis peu), qu'est-ce qui provoquait une erreur ?
Merci beaucoup en tout cas pour cette réponse rapide !
Merci beaucoup en tout cas pour cette réponse rapide !
- vincent26Membre
- Nombre de messages : 766
Age : 29
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010
Re: [VXAce]Script d'étage
Ven 7 Mar 2014 - 13:02
Et bien j'ai fait en sorte que lorsque l'on ouvre le menu l'image de l'étage s'ajoute a l'image faite de la carte en fond et j'avais fait un cas particulier que si on ce trouve a un emplacement sur la carte ou l'image de l'étage et vide cela ne ce fasse pas mais j'avais oublier de faire ce cas particulier pour ce qui est de supprimer l'image fait de la carte quand on quitte le menu. Il essayer donc de supprimer une image qui n'exister pas ^^ (d’où le nil)
- MrPsitMembre
- Nombre de messages : 29
Age : 28
Localisation : Auvergne
Distinction : aucune
Date d'inscription : 26/02/2014
Re: [VXAce]Script d'étage
Ven 7 Mar 2014 - 13:40
D'accord ! Je comprends le principe.
Merci pour cette réponse !
Merci pour cette réponse !
- vincent26Membre
- Nombre de messages : 766
Age : 29
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010
Re: [VXAce]Script d'étage
Mar 24 Juin 2014 - 1:36
Salut petit up pour une annonce de mise a jour pour bientôt avec changement de système de création d'étage :
- Correction de certain bug lors de la modification du ton de l'écran par exemple
- Réduction de la latence
- Script remanier
Et je tente d'ajouter certain truc au niveaux de l'overlay mapping de yami
Edit :
Voici donc la bête :
La partit overlay n'est pas encore prête par contre
Il y a de plus une nouvelle configuration en début de script a changer
- Correction de certain bug lors de la modification du ton de l'écran par exemple
- Réduction de la latence
- Script remanier
Et je tente d'ajouter certain truc au niveaux de l'overlay mapping de yami
Edit :
Voici donc la bête :
La partit overlay n'est pas encore prête par contre
Il y a de plus une nouvelle configuration en début de script a changer
- Code:
################################################################################
# ETAGE BY VINCENT_26 #
################################################################################
=begin
Crédit : Vincent_26 (vous n’êtes pas obliger ^^)
Ce script permet de créer des étages facilement
Pour le mettre n’en place rien de plus simple :
-Ajouter l'id de la map sur laquelle vous voulez activer le script dans le tableau
prévu à cet effet.
-Créer les étages grâce aux régions id (ici ex avec RDC = 0 )
0 : RDC (Rez de chaussé)
1 : escalier
2 : étage (impassable)
3 : étage (au-dessus du héros)
4 : escalier (etage par rapport au RDC)
5 : étage (impassable depuis l'étage 3 mais etage pour le RDC)
6 : étage pour le RDC et l'étage 3
...
C’est tout ^^
############################# BUG ET MAJ #######################################
-Ombre non pris en compte
-Bug avec l'autotile 1 si mis en étage
Ces différents bugs vont-être mis à jour dès que possible
=end
#Si vous utiliser le systeme d'overlay de Yami mettre true :
YAMI_OVERLAY = true
#il faut de plus que ce script soit sous le script d'overlay
#ID Variable d'enregistrement de l'étage actuel (variable in game)
VAR = 1
#Map d'activation du script
MAP = [1,2]
#Nombre d'étage max associé au map
ETAGE_MAX = [6,6]
#Définir région RDC (Toute les région de 0 a la valeur définit ferons office de RDC)
RDC = 0
#Nom des event :
#ETAGE <id>
###### NE RIEN TOUCHER SOUS CETTE LIGNE SANS SAVOIR CE QUE VOUS FAITES #########
#╔═════════════════════════════════════════════════════════════════════════════╗
#║ Modification du test de collision du perso ║
#║ Update de l'étage depuis l'update du héros ║
#╚═════════════════════════════════════════════════════════════════════════════╝
class Game_CharacterBase
#Modification de la détection de contact décor
alias map_passable2? map_passable?
def map_passable?(x, y, d)
if (MAP.include?($game_map.map_id) == true)
@boucle4 = 0 if @boucle4 == nil
@boucle4 = 0 if @boucle4 == 4
if (@boucle4 == 0)
$game_etage.save_coordonnée_arrivée(d)
$game_etage.region_info($myx,$myy)
$game_etage.determine_position_perso
end
$game_etage.create_sprite
@boucle4 += 1
return true if Input.press?(:CTRL)
return determine_passability(x,y,d)
else
return true if Input.press?(:CTRL)
return map_passable2?(x, y, d)
end
end
#Test de position du perso vis a vis de la case suivante
def determine_passability(x,y,d)
return true if Input.press?(:CTRL)
if $game_etage.dessous_heros
return true
elsif $game_etage.test == true
a = map_passable2?(x, y, d)
if (($game_variables[VAR] < $a[7]-2)&&(d == 8))||(($game_variables[VAR] < $a[3]-2)&&(d == 6))||(($game_variables[VAR] < $a[5]-2)&&(d == 4))||(($game_variables[VAR] < $a[1]-2)&&(d == 2))
return true
else
return a
end
elsif $game_etage.test == false
return false
end
end
#Modifie la détection de collision avec un event
def collide_with_events?(x, y)
$game_map.events_xy_nt(x, y).any? do |event|
if (MAP.include?($game_map.map_id) == true)
if ($game_map.map_event[event.id].name.include? "ETAGE")
a = $game_map.map_event[event.id].name[7..$game_map.map_event[event.id].name.length-2].to_i
if ($game_variables[VAR] == a-1)||($game_variables[VAR] == a)||($game_variables[VAR] == a+1)
return event.normal_priority? || self.is_a?(Game_Event)
else
return false
end
else
if ($game_variables[VAR] == RDC)||($game_variables[VAR] == RDC+1)
return event.normal_priority? || self.is_a?(Game_Event)
else
return false
end
end
else
return event.normal_priority? || self.is_a?(Game_Event)
end
end
end
end
#╔═════════════════════════════════════════════════════════════════════════════╗
#║ Modification des contact avec les event si au-dessus du héros ║
#╚═════════════════════════════════════════════════════════════════════════════╝
class Game_Player < Game_Character
#Modifie la possibiliter de démarrage d'un event
def start_map_event(x, y, triggers, normal)
return if $game_map.interpreter.running?
$game_map.events_xy(x, y).each do |event|
if (MAP.include?($game_map.map_id) == true)
if ($game_map.map_event[event.id].name.include? "ETAGE")
a = $game_map.map_event[event.id].name[7..$game_map.map_event[event.id].name.length-2].to_i
if ($game_variables[VAR] == a-1)||($game_variables[VAR] == a)||($game_variables[VAR] == a+1)
if event.trigger_in?(triggers) && event.normal_priority? == normal
event.start
end
end
else
if ($game_variables[VAR] == RDC)||($game_variables[VAR] == RDC+1)
if event.trigger_in?(triggers) && event.normal_priority? == normal
event.start
end
end
end
else
if event.trigger_in?(triggers) && event.normal_priority? == normal
event.start
end
end
end
end
#Modifie la détection d'activation d' un event
alias check_event_trigger_touch_etage check_event_trigger_touch
def check_event_trigger_touch(x, y)
$game_map.events_xy_nt(x, y).any? do |event|
if (MAP.include?($game_map.map_id) == true)
if ($game_map.map_event[event.id].name.include? "ETAGE")
a = $game_map.map_event[event.id].name[7..$game_map.map_event[event.id].name.length-2].to_i
if ($game_variables[VAR] == a-1)||($game_variables[VAR] == a)||($game_variables[VAR] == a+1)
check_event_trigger_touch_etage(x,y)
end
else
if ($game_variables[VAR] == RDC)||($game_variables[VAR] == RDC+1)
check_event_trigger_touch_etage(x,y)
end
end
else
check_event_trigger_touch_etage(x,y)
end
end
end
#Réinitialize l'étage en cas de changement de carte
alias perform_transfer_etage perform_transfer
def perform_transfer
perform_transfer_etage
$game_etage.initialize_map
end
end
#╔═════════════════════════════════════════════════════════════════════════════╗
#║ Ajoute une fonction de récuperation des event de la map ║
#╚═════════════════════════════════════════════════════════════════════════════╝
class Game_Map
#Permet de récuperer la table des event de la map
def map_event
@map.events
end
end
#╔═════════════════════════════════════════════════════════════════════════════╗
#║ Met en place l'update ║
#╚═════════════════════════════════════════════════════════════════════════════╝
class Spriteset_Map
#Ajout de l'updzte pour l'image des etage
alias update_etage update
def update
update_etage
$spriteset_map_bloc.update rescue true
end
end
#╔═════════════════════════════════════════════════════════════════════════════╗
#║ Ajoute le masquage des image lors de l'ouverture du menu ║
#╚═════════════════════════════════════════════════════════════════════════════╝
class Scene_MenuBase < Scene_Base
#Creation du background des menu
alias create_background_etage create_background
def create_background
create_background_etage
if $spriteset_map_bloc != nil
@background_sprite_etage = Sprite.new
@background_sprite_etage.bitmap = $spriteset_map_bloc.take_sprite_etage
@background_sprite_etage.color.set(16, 16, 16, 128)
$spriteset_map_bloc.hide_sprite
end
end
#Suppression du background des menu
alias dispose_background_etage dispose_background
def dispose_background
dispose_background_etage
@background_sprite_etage.dispose if $spriteset_map_bloc != nil
end
end
#╔═════════════════════════════════════════════════════════════════════════════╗
#║ Modifie le script d'overlay si présent pour adaptation au sprite (hauteur) ║
#╚═════════════════════════════════════════════════════════════════════════════╝
if YAMI_OVERLAY
class Spriteset_Map
def create_overlay_map
@current_light = 0
@current_shadow = 0
@current_par = 0
@current_ground = 0
# Ground Layer
@ground = Sprite.new(@viewport1)
@ground.z = 1
@ground.opacity = YSA::OVERLAY::GROUND_OPACITY
# Light Layer
@light = Sprite.new(@viewport2)
@light.opacity = YSA::OVERLAY::LIGHT_OPACITY
@light.blend_type = 1
@light.z = 0#299
# Shadow Layer
@shadow = Sprite.new(@viewport2)
@shadow.opacity = YSA::OVERLAY::SHADOW_OPACITY
@shadow.blend_type = 2
@shadow.z = -1#298
# Parallax Layer
@par = Sprite.new(@viewport2)
@par.opacity = YSA::OVERLAY::PARALLAX_OPACITY
@par.z = -1#297
end
end
end
#╔═════════════════════════════════════════════════════════════════════════════╗
#║ Ajustement du ton des image ║
#╚═════════════════════════════════════════════════════════════════════════════╝
class Game_Screen
#Démarrage modification du ton etage en cas de modification ton écran
alias start_tone_change_old start_tone_change
def start_tone_change(tone, duration)
start_tone_change_old(tone, duration)
$spriteset_map_bloc.start_tone_change(tone, duration)
end
#Updtate du ton etage en cas de modification ton écran
def update_tone
if @tone_duration > 0
d = @tone_duration
@tone.red = (@tone.red * (d - 1) + @tone_target.red) / d
@tone.green = (@tone.green * (d - 1) + @tone_target.green) / d
@tone.blue = (@tone.blue * (d - 1) + @tone_target.blue) / d
@tone.gray = (@tone.gray * (d - 1) + @tone_target.gray) / d
@tone_duration -= 1
end
$spriteset_map_bloc.update_tone if $spriteset_map_bloc
end
end
#╔═════════════════════════════════════════════════════════════════════════════╗
#║ Réinitialization de l'image de l'étage au changement de map ║
#╚═════════════════════════════════════════════════════════════════════════════╝
class Scene_Map < Scene_Base
#Initialisation de l'étage au démarrage d'une map
alias start_etage start
def start
start_etage
$game_etage.initialize_map
end
end
#╔═════════════════════════════════════════════════════════════════════════════╗
#║ Ajout de la class principale au démarrage ║
#╚═════════════════════════════════════════════════════════════════════════════╝
module DataManager
#Ajout du démarrage du script a la BDD
class << self
alias :create_game_objects_etage :create_game_objects
def create_game_objects
create_game_objects_etage
$game_etage = Game_Etage.new
end
end
end
#╔═════════════════════════════════════════════════════════════════════════════╗
#║ Class principale (calcul et détermine les variables nécessaires au sprite) ║
#╚═════════════════════════════════════════════════════════════════════════════╝
class Game_Etage
attr_reader :dessous_heros
attr_reader :test
#Initialisation de la map
def initialize_map
if (MAP.include?($game_map.map_id) == true)
$myy = 0
$myx = 0
region_info($myx,$myy)
determine_position_perso
$spriteset_map_bloc = Spriteset_Map_Bloc.new if $spriteset_map_bloc == nil
$spriteset_map_bloc.show_sprite
$spriteset_map_bloc.update
$game_variables[VAR] = RDC if $game_variables[VAR] < RDC
create_sprite
end
end
#Récupération des dnnée d'arriver
def save_coordonnée_arrivée(d)
$myx = (2-(d % 6))/2
$myy = (d % 4) - 1 - ((2-(d % 6))/2)
end
#Détermination de la position du perso
def determine_position_perso
@test = false
if (($a[4]-$game_variables[VAR] > 2)&&($a[4] >= RDC))||((RDC-$game_variables[VAR] > 2)&&($a[4] < RDC))
@dessous_heros = true
elsif (($a[4]-$game_variables[VAR] == 2)&&($a[4] >= RDC))||((RDC-$game_variables[VAR] == 2)&&($a[4] < RDC))
@dessous_heros = false
elsif (($a[4]-$game_variables[VAR] > (-2))&&($a[4]-$game_variables[VAR] < 2)&&($a[4] >= RDC))||((RDC-$game_variables[VAR] > (-2))&&(RDC-$game_variables[VAR] < 2)&&($a[4] < RDC))
@dessous_heros = false
@test = true
elsif (($a[4]-$game_variables[VAR] <= (-2))&&($a[4] >= RDC))||((RDC-$game_variables[VAR] <= (-2))&&($a[4] < RDC))
@dessous_heros = false
end
end
#Gestion des sprite
def create_sprite
if (MAP.include?($game_map.map_id) == true)
$spriteset_map_bloc.show_sprite
for i in 0..(($game_variables[VAR]-1)/3-RDC)
$spriteset_map_bloc.hide_sprite(i)
end
end
end
#Récupération des info de la map
####################
#0 1 2
#3 4 5
#6 7 8
def region_info(x,y)
$b = []
for i in 0..8
$b[i] = [$game_player.x+x+(i%3)-1,$game_player.y+y+(i/3)-1]
end
$a = []
for i in 0..8
$a[i] = $game_map.region_id(($game_player.x+(i%3)-1+x),($game_player.y+(i/3)-1+y))
end
end
#Ajustement des donnée des tiles
def tile_test(id)
if id < 1024
if (id/256).floor == 0
return [5,[id%256,0]]#B
elsif (id/256).to_i == 1
return [6,[id%256,0]]#C
elsif (id/256).to_i == 2
return [7,[id%256,0]]#D
else
return [8,[id%256,0]] #E
end
elsif id < 1664
#[4,[id%128,0]].to_s
return [4,[(id-1024)%128,0]]#A5
elsif id < 2816
return [0,[(id-1664)/48,(id-1664)%48]]#A1#[0,[((id-512)%768)/48,((id-512)%768)-((((id-512)%768)/48).to_i*48)]]#A1
elsif id < 4352
return [1,[(id-2816)/48,(id-2816)%48]]#A2#[1,[((id-1280)%1536)/48,((id-1280)%1536)-((((id-1280)%1536)/48).to_i*48)]]#A2
elsif id < 5888
return [2,[(id-4352)/48,(id-4352)%48]]#A3#[2,[(((id-512)%1536)/48+16)%32,((id-512)%1536)-((((id-512)%1536)/48).to_i*48)]]#A3
else
return [3,[(id-5888)/48,((id-5888)%48)]]#A4
end
end
#Test du changement de map
def map_change(id)
return ($game_map.map_id == id)
end
end
- vincent26Membre
- Nombre de messages : 766
Age : 29
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010
Re: [VXAce]Script d'étage
Mar 24 Juin 2014 - 4:15
Et voici la suite ^^ :
Cependant la démo n'est pas encore a jour
Voici la liste des correction :
-Ton de l'écran changeant
-Events de plus de 32*32 pixel sur étage bien pris en compte
-Correction de l'affichage des events
-Réduction de la latence engendrée
-Pour l'utilisation de l'overlay l'image recouvre désormais intégrité de l'écran
-Programmation revue et simplifier (script plus court de presque 300 ligne)
A venir :
Mise en place de l'overlay sur les étage a partir du script de Yami
- Code:
#╔═════════════════════════════════════════════════════════════════════════════╗
#║ Création de l'image de l'étage ║
#╚═════════════════════════════════════════════════════════════════════════════╝
class Spriteset_Map_Bloc
attr_reader :tone
#Initialisation
def initialize
@tone = $game_map.screen.tone
@tone_target = Tone.new
@tone_duration = 0
@sprite_etage = []
@sprite_event_etage = []
create_viewports
create_etage
end
#Creation des plan de travail
def create_viewports
$viewport4 = Viewport.new
$viewport4.z = 25
end
#Update
def update
update_tone
if $game_player.moving?
if (@boucle_update == 0)&&($game_etage.test == true)
recreate_event_sprite($game_variables[VAR]) if $game_variables[VAR] != [$a[4],RDC].max
$game_variables[VAR] = [$a[4],RDC].max
end
@boucle_update = @boucle_update + 1
else
@boucle_update = 0
end
for sprite in @sprite_etage
sprite.ox = $game_map.display_x * 32
sprite.oy = $game_map.display_y * 32
end
for sprite in @sprite_event_etage
sprite.ox = $game_map.display_x * 32
sprite.oy = $game_map.display_y * 32
end
end
#Gestion de changement de ton écran
def start_tone_change(tone, duration)
@tone_target = tone.clone
@tone_duration = duration
if @tone_duration == 0
for sprite in @sprite_etage
sprite.tone = @tone_target.clone
end
for sprite in @sprite_event_etage
sprite.tone = @tone_target.clone
end
end
end
#Update ton des sprite
def update_tone
if @tone_duration > 0
d = @tone_duration
@tone.red = (@tone.red * (d - 1) + @tone_target.red) / d
@tone.green = (@tone.green * (d - 1) + @tone_target.green) / d
@tone.blue = (@tone.blue * (d - 1) + @tone_target.blue) / d
@tone.gray = (@tone.gray * (d - 1) + @tone_target.gray) / d
@tone_duration -= 1
end
for sprite in @sprite_etage
sprite.tone = @tone
end
for sprite in @sprite_event_etage
sprite.tone = @tone
end
end
#Gestion du masquage des sprite
def hide_sprite(couche = -1)
if couche == -1
for sprite in @sprite_etage
sprite.visible = false
end
for sprite in @sprite_event_etage
sprite.visible = false
end
else
@sprite_etage[couche].visible = false
@sprite_event_etage[couche].visible = false
end
end
#Gestion de l'affichage des sprite
def show_sprite(couche = -1)
if couche == -1
for sprite in @sprite_etage
sprite.visible = true
end
for sprite in @sprite_event_etage
sprite.visible = true
end
else
@sprite_etage[couche].visible = true
@sprite_event_etage[couche].visible = true
end
end
#Récuperation des image pour fond menu
def take_sprite_etage
fond = Bitmap.new(Graphics.width,Graphics.height)
rect = Rect.new(0,0,Graphics.width,Graphics.height)
for i in 0..@sprite_etage.length-1
if @sprite_etage[i].visible == true
bitmap = @sprite_etage.bitmap.clone rescue Bitmap.new(Graphics.width,Graphics.height)
fond.blt(0,0, bitmap, rect)
bitmap = @sprite_event_etage.bitmap.clone rescue Bitmap.new(Graphics.width,Graphics.height)
fond.blt(0,0, bitmap, rect)
end
end
return fond.blur
end
#Creation des sprite d'étage ( Gestionnaire )
def create_etage_bitmap(couche = -1)
@rect2 = Rect.new(0,0,32,32)
if couche == -1
for bloc in 1..(ETAGE_MAX[MAP.index($game_map.map_id)]-RDC)/3
create_etage_bitmap2(bloc)
end
else
create_etage_bitmap2(couche/3)
end
end
#Creation des sprite d'étage ( Executeur )
def create_etage_bitmap2(bloc)
bitmap_etage = Bitmap.new($game_map.width*32,$game_map.height*32)
bitmap_event = Bitmap.new($game_map.width*32,$game_map.height*32)
for x in 0..$game_map.width-1
for y in 0..$game_map.height-1
if ($game_map.region_id(x,y) == bloc*3)||($game_map.region_id(x,y) == bloc*3-1)||($game_map.region_id(x,y) == bloc*3+1)
for couche in 0..2
@blocb = Bitmap.new(32,32)
for angle in 0..3
take_texture([x,y],2-couche,angle)
@blocb.blt((angle%2)*16,(angle/2)*16, @secondary_bitmap, @rect2)
end
bitmap_etage.blt(x*32,y*32,@blocb,@rect2)
end
end
$game_map.events_xy_nt(x,y).any? do |event|
@cw = 32
@ch = 32
@rectevent = Rect.new(0,0,32,32)
take_graphic_event(event,bloc)
if take_graphic_event(event,bloc)
bitmap_event.blt(x*32-(@cw-32)/2,y*32-(@ch-32),@blocb,@rectevent)
end
end
end
end
@sprite_etage[bloc-1] = Sprite.new($viewport4)
@sprite_etage[bloc-1].ox = $game_map.display_x * 32
@sprite_etage[bloc-1].oy = $game_map.display_y * 32
@sprite_etage[bloc-1].z = bloc*3
@sprite_etage[bloc-1].bitmap = bitmap_etage
@sprite_event_etage[bloc-1] = Sprite.new($viewport4)
@sprite_event_etage[bloc-1].ox = $game_map.display_x * 32
@sprite_event_etage[bloc-1].oy = $game_map.display_y * 32
@sprite_event_etage[bloc-1].z = bloc*3+2
@sprite_event_etage[bloc-1].bitmap = bitmap_event
end
#Gestion de la modification des sprite event en cas de modification de l'un d'entre eux
def recreate_event_sprite(bloc)
bitmap_etage = Bitmap.new($game_map.width*32,$game_map.height*32)
bitmap_event = Bitmap.new($game_map.width*32,$game_map.height*32)
for x in 0..$game_map.width-1
for y in 0..$game_map.height-1
$game_map.events_xy_nt(x,y).any? do |event|
@cw = 32
@ch = 32
@rectevent = Rect.new(0,0,32,32)
if take_graphic_event(event,bloc)
bitmap_event.blt(x*32-(@cw-32)/2,y*32-(@ch-32),@blocb,@rectevent)
end
end
end
end
@sprite_event_etage[bloc-1].bitmap.dispose rescue true
@sprite_event_etage[bloc-1].dispose rescue true
@sprite_event_etage[bloc-1] = Sprite.new($viewport4)
@sprite_event_etage[bloc-1].ox = $game_map.display_x * 32
@sprite_event_etage[bloc-1].oy = $game_map.display_y * 32
@sprite_event_etage[bloc-1].z = bloc*3+2
@sprite_event_etage[bloc-1].bitmap = bitmap_event
end
#Récuperation des graphics d'un event
def take_graphic_event(event,bloc)
test = $game_map.map_event[event.id].name[7..$game_map.map_event[event.id].name.length-2].to_i
if ($game_map.map_event[event.id].name.include? "ETAGE")&&((test == bloc*3)||(test == bloc*3-1)||(test == bloc*3+1))
a = $game_map.map_event[event.id].pages
for i in 0..a.length-1
b = a[a.length-1-i].condition
if conditions_met?(b,event)
c = a[a.length-1-i].graphic
name = c.character_name
id = c.character_index
direction = c.direction
pattern = c.pattern
picture = Cache.character(name)
sign = name[/^[\!\$]./]
if sign && sign.include?('$')
@cw = picture.width / 3
@ch = picture.height / 4
else
@cw = picture.width / 12
@ch = picture.height / 8
end
x = (id % 4)*@cw*3 +pattern*@cw
y = (id/4).floor*@ch*4 + (direction/2-1)*@ch
y += 2 if (sign && !sign.include?('!'))||(!sign)
rect = Rect.new(x,y,@cw,@ch)
@rectevent = Rect.new(0,0,@cw,@ch)
@blocb = Bitmap.new(@cw,@ch)
@blocb.blt(0,0,picture,rect)
i = a.length
return true
end
end
end
return false
end
#Test des condition des events
def conditions_met?(c,event)
if c.switch1_valid
return false unless $game_switches[c.switch1_id]
end
if c.switch2_valid
return false unless $game_switches[c.switch2_id]
end
if c.variable_valid
return false if $game_variables[c.variable_id] < c.variable_value
end
if c.self_switch_valid
key = [$game_map.map_id, event.id, c.self_switch_ch]
return false if $game_self_switches[key] != true
end
if c.item_valid
item = $data_items[c.item_id]
return false unless $game_party.has_item?(item)
end
if c.actor_valid
actor = $game_actors[c.actor_id]
return false unless $game_party.members.include?(actor)
end
return true
end
#Creation des etage
def create_etage
@tiles_list = $game_map.tileset.tileset_names
@sprite_etage = []
@sprite_event_etage = []
@rect = Rect.new(0,0,16,16)
create_etage_bitmap
end
#récuperation des texture
def take_texture(coord_map,couche,angle_square)
create_auto_tile_table(coord_map[0],coord_map[1])
@value_table = nil
@secondary_bitmap = Bitmap.new(16,16)
@value_table = $game_etage.tile_test(@table_tile[couche]) if (@table_tile[couche] != 0)#&&(couche != 0)
take_angle(@value_table[0],@value_table[1][0],@value_table[1][1],angle_square) if @value_table != nil
end
#Creation du sprite d'un angle de carreaux (16*16 pixel)
def take_angle(tile,id,type,angle)
x = nil
y = nil
if tile >= 4 #Tile basic B,C,D,E,A5 MARCHE !!!
x = (id % 8)*32 + (angle % 2)*16 +(8*32)*((id/128).floor)
y = ((id - (id % 8))/8)*32 + ((angle-(angle % 2))/2)*16 -(16*32)*((id/128).floor)
elsif tile == 0 #auto tile A1 ne marche pas
auto_tile_A1(tile,id,type,angle)
x = @xy[0]
y = @xy[1]
elsif tile == 1 #auto tile A2 MARCHE !!!
auto_tile_A2(tile,id,type,angle)
x = @xy[0]
y = @xy[1]
elsif tile == 2 #mur toit A3 MARCHE !!!
auto_tile_A3(tile,id,type,angle)
x = @xy[0]
y = @xy[1]
elsif tile == 3 #mur toit A4 avec auto tile MARCHE !!!
auto_tile_A4(tile,id,type,angle)
x = @xy[0]
y = @xy[1]
end
@bitmap_stockage = Cache.tileset(@tiles_list[tile])
x = 0 if x == nil
y = 0 if y == nil
@rect = Rect.new(x,y,16,16)
@secondary_bitmap = Bitmap.new(16,16)
@secondary_bitmap.blt(0,0, @bitmap_stockage, @rect)
end
#Creation de la table d'auto tile
def create_auto_tile_table(x,y)
@table_tile = $game_map.all_tiles(x,y)
end
#Récuperation des coordonnée de découpage des tiles
##############################################################################
def auto_tile_A1(tile,id,type,angle)
x_sous_tile = (id % * 64
y_sous_tile = ((id-(id%8))/8)*96
if angle == 0
if [1,3,5,7,9,11,13,15,26,27,29,31,39].include?(type)#angle haut gauche vers l'exterieur
x = x_sous_tile+32
y = y_sous_tile
elsif [0,2,4,6,8,10,12,14,24,25,28,30,38].include?(type)#rien
x = x_sous_tile+32
y = y_sous_tile+64
elsif [16,17,18,19,32,40,41,44].include?(type)#barre verticale haut gauche
x = x_sous_tile
y = y_sous_tile+64
elsif [20,21,22,23,33,36,37,45].include?(type)#barre horizontal haut gauche
x = x_sous_tile+32
y = y_sous_tile+32
elsif [34,35,42,43,46].include?(type)#angle haut gauche vers l'interieur
x = x_sous_tile
y = y_sous_tile
end
elsif angle == 1
if [2,3,6,7,10,11,14,15,17,19,30,31,41].include?(type)#angle haut droit vers l'exterieur
x = x_sous_tile+48
y = y_sous_tile
elsif [0,1,4,5,8,9,12,13,16,18,28,29,40].include?(type)#rien
x = x_sous_tile+16
y = y_sous_tile+64
elsif [24,25,26,27,32,38,39,44].include?(type)#barre verticale haut droit
x = x_sous_tile+48
y = y_sous_tile+64
elsif [20,21,22,23,33,34,35,43].include?(type)#barre horizontal haut droit
x = x_sous_tile+16
y = y_sous_tile+32
elsif [36,37,42,45,46].include?(type)#angle haut droit vers l'interieur
x = x_sous_tile+16
y = y_sous_tile
end
elsif angle == 2
if [8,9,10,11,12,13,14,15,22,23,25,27,37].include?(type)#angle bas gauche vers l'exterieur
x = x_sous_tile+32
y = y_sous_tile+16
elsif [0,1,2,3,4,5,6,7,20,21,24,26,36].include?(type)#rien
x = x_sous_tile+32
y = y_sous_tile+48
elsif [16,17,18,19,32,34,35,42].include?(type)#barre verticale bas gauche
x = x_sous_tile
y = y_sous_tile+48
elsif [28,29,30,31,33,38,39,45].include?(type)#barre horizontal bas gauche
x = x_sous_tile+32
y = y_sous_tile+64+16
elsif [40,41,43,44,46].include?(type)#angle bas gauche vers l'interieur
x = x_sous_tile
y = y_sous_tile+16
end
elsif angle == 3
if [4,5,6,7,12,13,14,15,18,19,21,23,35].include?(type)#angle bas droit vers l'exterieur
x = x_sous_tile+48
y = y_sous_tile+16
elsif [0,1,2,3,8,9,10,11,16,17,20,22,34].include?(type)#rien
x = x_sous_tile+16
y = y_sous_tile+48
elsif [24,25,26,27,32,36,37,42].include?(type)#barre verticale bas droit
x = x_sous_tile+48
y = y_sous_tile+48
elsif [28,29,30,31,33,40,41,43].include?(type)#barre horizontal bas droit
x = x_sous_tile+16
y = y_sous_tile+64+16
elsif [38,39,44,45,46].include?(type)#angle bas droit vers l'interieur
x = x_sous_tile+16
y = y_sous_tile+16
end
end
@xy = [x,y]
end
##############################################################################
def auto_tile_A2(tile,id,type,angle)
x_sous_tile = (id % * 64
y_sous_tile = ((id-(id%8))/8)*96
if angle == 0
if [1,3,5,7,9,11,13,15,26,27,29,31,39].include?(type)#angle haut gauche vers l'exterieur
x = x_sous_tile+32
y = y_sous_tile
elsif [0,2,4,6,8,10,12,14,24,25,28,30,38].include?(type)#rien
x = x_sous_tile+32
y = y_sous_tile+64
elsif [16,17,18,19,32,40,41,44].include?(type)#barre verticale haut gauche
x = x_sous_tile
y = y_sous_tile+64
elsif [20,21,22,23,33,36,37,45].include?(type)#barre horizontal haut gauche
x = x_sous_tile+32
y = y_sous_tile+32
elsif [34,35,42,43,46].include?(type)#angle haut gauche vers l'interieur
x = x_sous_tile
y = y_sous_tile
end
elsif angle == 1
if [2,3,6,7,10,11,14,15,17,19,30,31,41].include?(type)#angle haut droit vers l'exterieur
x = x_sous_tile+48
y = y_sous_tile
elsif [0,1,4,5,8,9,12,13,16,18,28,29,40].include?(type)#rien
x = x_sous_tile+16
y = y_sous_tile+64
elsif [24,25,26,27,32,38,39,44].include?(type)#barre verticale haut droit
x = x_sous_tile+48
y = y_sous_tile+64
elsif [20,21,22,23,33,34,35,43].include?(type)#barre horizontal haut droit
x = x_sous_tile+16
y = y_sous_tile+32
elsif [36,37,42,45,46].include?(type)#angle haut droit vers l'interieur
x = x_sous_tile+16
y = y_sous_tile
end
elsif angle == 2
if [8,9,10,11,12,13,14,15,22,23,25,27,37].include?(type)#angle bas gauche vers l'exterieur
x = x_sous_tile+32
y = y_sous_tile+16
elsif [0,1,2,3,4,5,6,7,20,21,24,26,36].include?(type)#rien
x = x_sous_tile+32
y = y_sous_tile+48
elsif [16,17,18,19,32,34,35,42].include?(type)#barre verticale bas gauche
x = x_sous_tile
y = y_sous_tile+48
elsif [28,29,30,31,33,38,39,45].include?(type)#barre horizontal bas gauche
x = x_sous_tile+32
y = y_sous_tile+64+16
elsif [40,41,43,44,46].include?(type)#angle bas gauche vers l'interieur
x = x_sous_tile
y = y_sous_tile+16
end
elsif angle == 3
if [4,5,6,7,12,13,14,15,18,19,21,23,35].include?(type)#angle bas droit vers l'exterieur
x = x_sous_tile+48
y = y_sous_tile+16
elsif [0,1,2,3,8,9,10,11,16,17,20,22,34].include?(type)#rien
x = x_sous_tile+16
y = y_sous_tile+48
elsif [24,25,26,27,32,36,37,42].include?(type)#barre verticale bas droit
x = x_sous_tile+48
y = y_sous_tile+48
elsif [28,29,30,31,33,40,41,43].include?(type)#barre horizontal bas droit
x = x_sous_tile+16
y = y_sous_tile+64+16
elsif [38,39,44,45,46].include?(type)#angle bas droit vers l'interieur
x = x_sous_tile+16
y = y_sous_tile+16
end
end
@xy = [x,y]
end
##############################################################################
def auto_tile_A3(tile,id,type,angle)
x_sous_tile = (id % * 64
y_sous_tile = ((id-(id % 8))/8) * 64
if angle == 0
if [0,4,8,12].include?(type)#rien
x = x_sous_tile+32
y = y_sous_tile+32
elsif [1,9,5,13].include?(type)#barre verticale haut gauche
x = x_sous_tile
y = y_sous_tile+32
elsif [2,6,10,14].include?(type)#barre horizontal haut gauche
x = x_sous_tile+32
y = y_sous_tile
elsif [3,7,11,15].include?(type)#angle haut gauche vers l'interieur
x = x_sous_tile
y = y_sous_tile
end
elsif angle == 1
if [0,1,8,9].include?(type)#rien
x = x_sous_tile+16
y = y_sous_tile+32
elsif [4,12,5,13].include?(type)#barre verticale haut droit
x = x_sous_tile+48
y = y_sous_tile+32
elsif [2,3,11,10].include?(type)#barre horizontal haut droit
x = x_sous_tile+16
y = y_sous_tile
elsif [6,14,7,15].include?(type)#angle haut droit vers l'interieur
x = x_sous_tile+48
y = y_sous_tile
end
elsif angle == 2
if [0,2,4,6].include?(type)#rien
x = x_sous_tile+32
y = y_sous_tile+16
elsif [1,3,5,7].include?(type)#barre verticale bas gauche
x = x_sous_tile
y = y_sous_tile+16
elsif [8,12,14,10].include?(type)#barre horizontal bas gauche
x = x_sous_tile+32
y = y_sous_tile+48
elsif [9,11,13,15].include?(type)#angle bas gauche vers l'interieur
x = x_sous_tile
y = y_sous_tile+48
end
elsif angle == 3
if [3,2,1,0].include?(type)#rien
x = x_sous_tile+16
y = y_sous_tile+16
elsif [6,4,7,5].include?(type)#barre verticale bas droit
x = x_sous_tile+48
y = y_sous_tile+16
elsif [9,8,11,10].include?(type)#barre horizontal bas droit
x = x_sous_tile+16
y = y_sous_tile+48
elsif [12,14,13,15].include?(type)#angle bas droit vers l'interieur
x = x_sous_tile+48
y = y_sous_tile+48
end
end
@xy = [x,y]
end
##############################################################################
def auto_tile_A4(tile,id,type,angle)
x_sous_tile = (id % * 64
y2 = ((id-(id % 8))/8)
y_sous_tile = ((y2-(y2%2))/2)*64 + ((y2+(y2%2))/2)*96
if ( y2 % 2 ) == 1
if angle == 0
if [0,4,8,12].include?(type)#rien
x = x_sous_tile+32
y = y_sous_tile+32
elsif [1,9,5,13].include?(type)#barre verticale haut gauche
x = x_sous_tile
y = y_sous_tile+32
elsif [2,6,10,14].include?(type)#barre horizontal haut gauche
x = x_sous_tile+32
y = y_sous_tile
elsif [3,7,11,15].include?(type)#angle haut gauche vers l'interieur
x = x_sous_tile
y = y_sous_tile
end
elsif angle == 1
if [0,1,8,9].include?(type)#rien
x = x_sous_tile+16
y = y_sous_tile+32
elsif [4,12,5,13].include?(type)#barre verticale haut droit
x = x_sous_tile+48
y = y_sous_tile+32
elsif [2,3,11,10].include?(type)#barre horizontal haut droit
x = x_sous_tile+16
y = y_sous_tile
elsif [6,14,7,15].include?(type)#angle haut droit vers l'interieur
x = x_sous_tile+48
y = y_sous_tile
end
elsif angle == 2
if [0,2,4,6].include?(type)#rien
x = x_sous_tile+32
y = y_sous_tile+16
elsif [1,3,5,7].include?(type)#barre verticale bas gauche
x = x_sous_tile
y = y_sous_tile+16
elsif [8,12,14,10].include?(type)#barre horizontal bas gauche
x = x_sous_tile+32
y = y_sous_tile+48
elsif [9,11,13,15].include?(type)#angle bas gauche vers l'interieur
x = x_sous_tile
y = y_sous_tile+48
end
elsif angle == 3
if [3,2,1,0].include?(type)#rien
x = x_sous_tile+16
y = y_sous_tile+16
elsif [6,4,7,5].include?(type)#barre verticale bas droit
x = x_sous_tile+48
y = y_sous_tile+16
elsif [9,8,11,10].include?(type)#barre horizontal bas droit
x = x_sous_tile+16
y = y_sous_tile+48
elsif [12,14,13,15].include?(type)#angle bas droit vers l'interieur
x = x_sous_tile+48
y = y_sous_tile+48
end
end
else
if angle == 0
if [1,3,5,7,9,11,13,15,26,27,29,31,39].include?(type)#angle haut gauche vers l'exterieur
x = x_sous_tile+32
y = y_sous_tile
elsif [0,2,4,6,8,10,12,14,24,25,28,30,38].include?(type)#rien
x = x_sous_tile+32
y = y_sous_tile+64
elsif [16,17,18,19,32,40,41,44].include?(type)#barre verticale haut gauche
x = x_sous_tile
y = y_sous_tile+64
elsif [20,21,22,23,33,36,37,45].include?(type)#barre horizontal haut gauche
x = x_sous_tile+32
y = y_sous_tile+32
elsif [34,35,42,43,46].include?(type)#angle haut gauche vers l'interieur
x = x_sous_tile
y = y_sous_tile
end
elsif angle == 1
if [2,3,6,7,10,11,14,15,17,19,30,31,41].include?(type)#angle haut droit vers l'exterieur
x = x_sous_tile+48
y = y_sous_tile
elsif [0,1,4,5,8,9,12,13,16,18,28,29,40].include?(type)#rien
x = x_sous_tile+16
y = y_sous_tile+64
elsif [24,25,26,27,32,38,39,44].include?(type)#barre verticale haut droit
x = x_sous_tile+48
y = y_sous_tile+64
elsif [20,21,22,23,33,34,35,43].include?(type)#barre horizontal haut droit
x = x_sous_tile+16
y = y_sous_tile+32
elsif [36,37,42,45,46].include?(type)#angle haut droit vers l'interieur
x = x_sous_tile+16
y = y_sous_tile
end
elsif angle == 2
if [8,9,10,11,12,13,14,15,22,23,25,27,37].include?(type)#angle bas gauche vers l'exterieur
x = x_sous_tile+32
y = y_sous_tile+16
elsif [0,1,2,3,4,5,6,7,20,21,24,26,36].include?(type)#rien
x = x_sous_tile+32
y = y_sous_tile+48
elsif [16,17,18,19,32,34,35,42].include?(type)#barre verticale bas gauche
x = x_sous_tile
y = y_sous_tile+48
elsif [28,29,30,31,33,38,39,45].include?(type)#barre horizontal bas gauche
x = x_sous_tile+32
y = y_sous_tile+64+16
elsif [40,41,43,44,46].include?(type)#angle bas gauche vers l'interieur
x = x_sous_tile
y = y_sous_tile+16
end
elsif angle == 3
if [4,5,6,7,12,13,14,15,18,19,21,23,35].include?(type)#angle bas droit vers l'exterieur
x = x_sous_tile+48
y = y_sous_tile+16
elsif [0,1,2,3,8,9,10,11,16,17,20,22,34].include?(type)#rien
x = x_sous_tile+16
y = y_sous_tile+48
elsif [24,25,26,27,32,36,37,42].include?(type)#barre verticale bas droit
x = x_sous_tile+48
y = y_sous_tile+48
elsif [28,29,30,31,33,40,41,43].include?(type)#barre horizontal bas droit
x = x_sous_tile+16
y = y_sous_tile+64+16
elsif [38,39,44,45,46].include?(type)#angle bas droit vers l'interieur
x = x_sous_tile+16
y = y_sous_tile+16
end
end
end
@xy = [x,y]
end
end
Cependant la démo n'est pas encore a jour
Voici la liste des correction :
-Ton de l'écran changeant
-Events de plus de 32*32 pixel sur étage bien pris en compte
-Correction de l'affichage des events
-Réduction de la latence engendrée
-Pour l'utilisation de l'overlay l'image recouvre désormais intégrité de l'écran
-Programmation revue et simplifier (script plus court de presque 300 ligne)
A venir :
Mise en place de l'overlay sur les étage a partir du script de Yami
Re: [VXAce]Script d'étage
Ven 27 Juin 2014 - 19:55
Trop bien!
C'est parfait pour l'overlay!
Merci encore pour ce script Vincent_26!
C'est parfait pour l'overlay!
Merci encore pour ce script Vincent_26!
- Enferno9Membre
- Nombre de messages : 26
Age : 23
Localisation : Quelque part.
Distinction : aucune
Date d'inscription : 09/06/2014
Re: [VXAce]Script d'étage
Lun 7 Juil 2014 - 17:24
Ça à l'air d'être un super script mais j'ai juste un problème,quand je veux tester mon jeu,il est écrit:
Script 'Étages' line 5: SyntaxError occured
unexpected '='
=begin
Script 'Étages' line 5: SyntaxError occured
unexpected '='
=begin
- vincent26Membre
- Nombre de messages : 766
Age : 29
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010
Re: [VXAce]Script d'étage
Mer 9 Juil 2014 - 0:41
C'est parce que en copiant le script tu as tu avoir des espace qui ce sont creer entre le texte et le bord de page et qu'il faut que le =begin soit totalement a gauche de même le =end ligne 27 il me semble
- Enferno9Membre
- Nombre de messages : 26
Age : 23
Localisation : Quelque part.
Distinction : aucune
Date d'inscription : 09/06/2014
Re: [VXAce]Script d'étage
Mer 9 Juil 2014 - 10:17
Ah ok merci ^^
Re: [VXAce]Script d'étage
Jeu 4 Déc 2014 - 18:50
Salut, j'ai mis le dernier script que tu a fait, mais j'ai une erreur a ça:
Edit: Sur la démo, j'ai trouvé un bug, j’étais au-dessous du pont de la 1er map, je sauvegarde, puis je retourne a l'écran titre, là je vois une partie du pont un peu zoomer, sur l’écran titre.
line 712: SyntaxError occured
unexpected tSTAR
x_sous_tile = (id % *64)
Edit: Sur la démo, j'ai trouvé un bug, j’étais au-dessous du pont de la 1er map, je sauvegarde, puis je retourne a l'écran titre, là je vois une partie du pont un peu zoomer, sur l’écran titre.
- vincent26Membre
- Nombre de messages : 766
Age : 29
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010
Re: [VXAce]Script d'étage
Jeu 4 Déc 2014 - 19:26
Il va falloir que je fasse pas mal de modification car la modification de la résolution de l'écran n'est pas pris en compte et ya pas mal de truc que je doit modifier ^^
merci pour les rapport de bug je regarderais ça a l'occasion (je ne pense pas le mettre a jour de suite mais j'y compte bien quand même ^^)
merci pour les rapport de bug je regarderais ça a l'occasion (je ne pense pas le mettre a jour de suite mais j'y compte bien quand même ^^)
- vincent26Membre
- Nombre de messages : 766
Age : 29
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010
Re: [VXAce]Script d'étage
Lun 15 Déc 2014 - 20:01
Voila après un peu de boulot la version 2.0 du script est disponible
plein de nouvelle chose :
-System totalement revue et modifier
-Ombre pris en compte
-Tile animée pris en compte
-Event animée pris en compte
-Résolution pris en compte
Si vous voulez ajouter des chose hésiter a pas a me dire
(Le script et dans le 1 er message)
plein de nouvelle chose :
-System totalement revue et modifier
-Ombre pris en compte
-Tile animée pris en compte
-Event animée pris en compte
-Résolution pris en compte
Si vous voulez ajouter des chose hésiter a pas a me dire
(Le script et dans le 1 er message)
Re: [VXAce]Script d'étage
Ven 16 Jan 2015 - 12:41
Salut, j'ai changer de script de combat, j'ai pris celui de falco, et j'ai des erreurs sur son script depuis que j'ai mis ton script.
Re: [VXAce]Script d'étage
Dim 18 Jan 2015 - 10:06
Trop, cool!
Je testerai ça prochainement avec le script d'overlay de Yami et mes parallax.
Merci beaucoup
Je testerai ça prochainement avec le script d'overlay de Yami et mes parallax.
Merci beaucoup
- vincent26Membre
- Nombre de messages : 766
Age : 29
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010
Re: [VXAce]Script d'étage
Dim 18 Jan 2015 - 18:43
Peut -tu me faire une démo pour voir Dany ?
Merci Chaos
Merci Chaos
- leparadoxvirtuel85Membre
- Nombre de messages : 11
Distinction : aucune
Date d'inscription : 04/02/2015
Re: [VXAce]Script d'étage
Mer 4 Fév 2015 - 16:38
Merci Pour ce script ^^
Il a l'air vraiment très utile j'aimerai apprendre a scripté mais pour le moment je suis vraiment qu'un débutant en tout cas Merci cela va servir grandement
Il a l'air vraiment très utile j'aimerai apprendre a scripté mais pour le moment je suis vraiment qu'un débutant en tout cas Merci cela va servir grandement
Re: [VXAce]Script d'étage
Mar 17 Fév 2015 - 9:31
Bon un peu en retard, mais voilà là démo, si tu peux regarder l'erreur.
Il y a que les scripts de falco et le tient:
https://onedrive.live.com/redir?resid=4E688318658A9688!1397&authkey=!AJHn22F16Ee7KuY&ithint=file%2cexe
Il y a que les scripts de falco et le tient:
https://onedrive.live.com/redir?resid=4E688318658A9688!1397&authkey=!AJHn22F16Ee7KuY&ithint=file%2cexe
- vincent26Membre
- Nombre de messages : 766
Age : 29
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010
Re: [VXAce]Script d'étage
Dim 1 Mar 2015 - 15:13
Dany => Pour avec le script de falco essaye de mettre le script d'étage au dessus de ceux de falco et de remplacer la ligne qui va planter par ça , tu me dira si tout marche:
if @viewport4 == nil
@viewport4 = Viewport.new
@viewport4.z = 20
end
@viewport4.tone.set($game_map.screen.tone)
if @viewport4 == nil
@viewport4 = Viewport.new
@viewport4.z = 20
end
@viewport4.tone.set($game_map.screen.tone)
Re: [VXAce]Script d'étage
Mar 3 Mar 2015 - 19:39
Merci Vincent26, mais j'ai trouver la solution, j'ai réussi a corriger mon problème du script XAS et Unlimited Resolution, enfin, j'ai trouver autre que ce script Unlimited Resolution.
Mais je vais essayer si sa fonctionne ton code!
Mais je vais essayer si sa fonctionne ton code!
- vincent26Membre
- Nombre de messages : 766
Age : 29
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010
Re: [VXAce]Script d'étage
Dim 15 Mar 2015 - 18:04
Petit up pour la correction d'un bug (merci a Origins) du menu sauvegarde (ou les sauvegarde n’était plus visible)
V2.1 Dans le premier post
V2.1 Dans le premier post
- NérylisMembre
- Nombre de messages : 615
Age : 36
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014
Re: [VXAce]Script d'étage
Mar 17 Mar 2015 - 20:58
- vincent26Membre
- Nombre de messages : 766
Age : 29
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010
Re: [VXAce]Script d'étage
Mar 17 Mar 2015 - 23:14
J'ai refait la même map et je n'ai pas le bug peut-tu me faire une petite démo ?
- NérylisMembre
- Nombre de messages : 615
Age : 36
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014
Re: [VXAce]Script d'étage
Mer 18 Mar 2015 - 10:05
Je viens de chercher pendant une heure, je n'ai pas trouvé ce qui provoquait ce bug. J'ai testé sur un Nouveau projet avec tous les scripts que j'utilise mais le bug ne se produit pas. Donc, on peut probablement en déduire que le souci se trouve au niveau de mes évênements ou de la BDD mais je n'ai pas trouvé quoi.
Donc, j'ai pris un extrait de mon vrai jeu test que j'ai condensé pour éviter les choses inutiles : http://www.mediafire.com/download/yea85vtansie6u3/Test+Etage.exe
Quand tu lanceras le jeu, va dans la grotte à droite, j'ai reproduit le passage dans le mur. Le bug est présent.
Edit : Visiblement, le problème vient de mes maps. Sur un Nouveau projet, lorsque j'importe les maps de mon jeu test, le bug fait son retour.
Edit2 : Par ailleurs, j'ai testé le script sur les maps 1 et 2, comme par défaut, ce qui correspond à ma WorldMap et mon Camp. J'ai constaté d'autres bugs. Sur ma WorldMap où j'ai assigné des zones de combat, la zone 3 où je suis censé passer dessous, je rencontre un mur invisible. Dans mon camp, la zone 4 de ma WorldMap apparaît sur la map de mon camp. Et j'ai aussi de gros lags lorsque je rentre dans ces maps et lors du lancement du jeu.
Donc, j'ai pris un extrait de mon vrai jeu test que j'ai condensé pour éviter les choses inutiles : http://www.mediafire.com/download/yea85vtansie6u3/Test+Etage.exe
Quand tu lanceras le jeu, va dans la grotte à droite, j'ai reproduit le passage dans le mur. Le bug est présent.
Edit : Visiblement, le problème vient de mes maps. Sur un Nouveau projet, lorsque j'importe les maps de mon jeu test, le bug fait son retour.
Edit2 : Par ailleurs, j'ai testé le script sur les maps 1 et 2, comme par défaut, ce qui correspond à ma WorldMap et mon Camp. J'ai constaté d'autres bugs. Sur ma WorldMap où j'ai assigné des zones de combat, la zone 3 où je suis censé passer dessous, je rencontre un mur invisible. Dans mon camp, la zone 4 de ma WorldMap apparaît sur la map de mon camp. Et j'ai aussi de gros lags lorsque je rentre dans ces maps et lors du lancement du jeu.
- vincent26Membre
- Nombre de messages : 766
Age : 29
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010
Re: [VXAce]Script d'étage
Mer 18 Mar 2015 - 12:54
C'est bon j'ai trouver j'ai mis a jour le script dans le 1er post (dit moi si tu rencontre encore des bug)
- NérylisMembre
- Nombre de messages : 615
Age : 36
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014
Re: [VXAce]Script d'étage
Mer 18 Mar 2015 - 17:14
Effectivement, ça marche mieux. De même dans mon camp, le bug d'affichage n'apparaît plus. Par contre, il y a un lag de 5 bonnes secondes lorsque je mets une map sous un tel système, même pour 2-3 cases concernées. S'il faut en mettre régulièrement, ce n'est pas jouable.
Autres bugs rencontrés (sur ma WorldMap, c'est moins pertinent mais je te le dis quand même) :
- Comme je te le disais, là où j'ai assigné des zones de combat, la zone 3 où je suis censé passer dessous, je rencontre un mur invisible.
- Dans le cas où je monte en aéronef (pas testé avec les réglages de base de RPG Maker, j'utilise le Mode 7), gros problème d'affichage et de lag.
Sinon, c'est un super script qui, mine de rien, permet de faire des choses qu'on voit généralement dans les RPGs. Mais le problème du lag est pour le moment trop problématique.
Autres bugs rencontrés (sur ma WorldMap, c'est moins pertinent mais je te le dis quand même) :
- Comme je te le disais, là où j'ai assigné des zones de combat, la zone 3 où je suis censé passer dessous, je rencontre un mur invisible.
- Dans le cas où je monte en aéronef (pas testé avec les réglages de base de RPG Maker, j'utilise le Mode 7), gros problème d'affichage et de lag.
Sinon, c'est un super script qui, mine de rien, permet de faire des choses qu'on voit généralement dans les RPGs. Mais le problème du lag est pour le moment trop problématique.
- vincent26Membre
- Nombre de messages : 766
Age : 29
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010
Re: [VXAce]Script d'étage
Mer 18 Mar 2015 - 19:04
Le script a été mis a jour en 1er page
J'ai ajouter la prise en compte de l'aeronef et modifier un truc pour baisser un peu la latence dis moi si ça va
Pour le mur invisible comment fait-tu pour avoir ce bug ?
J'ai ajouter la prise en compte de l'aeronef et modifier un truc pour baisser un peu la latence dis moi si ça va
Pour le mur invisible comment fait-tu pour avoir ce bug ?
Page 2 sur 3 • 1, 2, 3
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum