| [VX] Réflection du héros et des évènements | |
|
Auteur | Message |
---|
Invité
| Sujet: [VX] Réflection du héros et des évènements Sam 19 Avr 2008 - 11:12 | |
| Auteur : Sephirothtds Fonction : Permet de réfléchir l'image du héros ou d'un évènement sur la carte. Il est possible de mettre un effet d'ondulation pour l'eau par exemple. Image(s) : Image n°1 Ressource(s) : Aucune Démo : Télécharger le fichier ( 232.4 Ko ; Fichier RAR) Remarque : Testé et fonctionnel Nombre de scripts : 1 Installation : Ouvrez l'éditeur de script (F11). Créez en un nouveau au dessus de "Main" et collez le code ci-dessous. Utilisation : Créez des zones de monstres dans les endroits où lorsque le héros ou évènement marchera, son image sera réfléchi. La zone doit se nommer "Reflect". Pour réfléchir l'image d'un évènement, nommez ce dernier : "Reflect" aussi. Regardez la démonstration ci-dessus si vous ne comprenez pas trop son utilisation. - Code:
-
#============================================================================== # ** TDS Sprite Reflect # Version: 1.0 #------------------------------------------------------------------------------ # This script makes specially desigated areas reflect the character sprite and # events. #============================================================================== # Instructions: # # Create areas using the area creator of the map editor and call them "Reflect". # # For events you can use these two commands in part of their name. # # Reflect # # Any event with "Reflect" as part of it's name will have the reflect effect on # the special areas of the map. # # # /OFFSET[#] # # [#] = Numerical value of the offset. # # Example: # /OFFSET[10] # # Offset changes the Y offset of the sprite in the water.(How far is the # Reflection from the characters original standing point) # # # $game_player.reflect_offset = # # # # = Value of the character offset. # # Just the same as the event offset except this one handles the characters # offset reflection. #==============================================================================
#-------------------------------------------------------------------------- # * Constants for activating the wave effect on the water #-------------------------------------------------------------------------- WATER_WAVE_EFFECT = true
#============================================================================== # ** Sprite_Character #------------------------------------------------------------------------------ # This sprite is used to display characters. It observes a instance of the # Game_Character class and automatically changes sprite conditions. #==============================================================================
class Sprite_Reflect < Sprite_Base #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :character #-------------------------------------------------------------------------- # * Object Initialization # viewport : viewport # character : character (Game_Character) #-------------------------------------------------------------------------- def initialize(viewport = nil, character = nil, offset = nil) super(viewport) @character = character @player_offset = $game_player.reflect_offset @offset = (@character.is_a?(Game_Player) ? @player_offset : offset) sprite_setup update end #-------------------------------------------------------------------------- # * Sprite Setup #-------------------------------------------------------------------------- def sprite_setup self.bitmap = Cache.character(@character.character_name) self.angle = 180 self.mirror = true self.opacity = 120 sign = @character.character_name[/^[\!\$]./] if sign != nil and sign.include?('$') @cw = bitmap.width / 3 @ch = bitmap.height / 4 else @cw = bitmap.width / 12 @ch = bitmap.height / 8 end @cw = bitmap.width / 12 @ch = bitmap.height / 8 end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super index = @character.character_index pattern = @character.pattern < 3 ? @character.pattern : 1 sx = (index % 4 * 3 + pattern) * @cw sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch self.src_rect.set(sx, sy, @cw, @ch) self.ox = 16 if @character.is_a?(Game_Player) self.oy = 38 + $game_player.reflect_offset else self.oy = 38 + @offset end self.x = @character.screen_x self.y = @character.screen_y self.z = @character.screen_z
if WATER_WAVE_EFFECT == true self.wave_amp = 1 self.wave_length = 1 self.wave_speed = 3 end end end
#============================================================================== # ** Spriteset_Map #------------------------------------------------------------------------------ # This class brings together map screen sprites, tilemaps, etc. It's used # within the Scene_Map class. #==============================================================================
class Spriteset_Map #-------------------------------------------------------------------------- # * Create Character Sprite #-------------------------------------------------------------------------- alias tds_sprite_reflection_create_characters create_characters def create_characters tds_sprite_reflection_create_characters @character_sprites = [] @event_reflection_sprite = [] @reflecting_events = [] for i in $game_map.events.keys.sort sprite = Sprite_Character.new(@viewport1, $game_map.events[i]) @character_sprites.push(sprite) end for vehicle in $game_map.vehicles sprite = Sprite_Character.new(@viewport1, vehicle) @character_sprites.push(sprite) end @character_sprites.push(Sprite_Character.new(@viewport1, $game_player)) for i in $game_map.events.keys.sort @event_name_offset = $game_map.events[i].name @event_name_offset[ /\/OFFSET\[(.*?)\]/ ] sprite = Sprite_Reflect.new(@viewport1, $game_map.events[i], $1 != nil ? $1.to_i : 0) if $game_map.events[i].name.include?("Reflect") @event_reflection_sprite.push(sprite) @reflecting_events.push($game_map.events[i]) end end @reflection_sprite = Sprite_Reflect.new(@viewport1, $game_player, 0) end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- alias tds_sprite_reflection_update update def update tds_sprite_reflection_update if $game_player.current_area_name == "Reflect" if $game_player.moving? == false @reflection_sprite.visible = true end else @reflection_sprite.visible = false end for i in 0...@reflecting_events.size if @reflecting_events[i].current_area_name == "Reflect" if @reflecting_events[i].moving? == false @event_reflection_sprite[i].visible = true end else @event_reflection_sprite[i].visible = false end end if @reflection_sprite.visible == true @reflection_sprite.update end for i in 0...@event_reflection_sprite.size if @event_reflection_sprite[i].visible == true @event_reflection_sprite[i].update end end update_tilemap update_parallax update_characters update_shadow update_weather update_pictures update_timer update_viewports end end
#============================================================================== # ** Game_Character #------------------------------------------------------------------------------ # This class deals with characters. It's used as a superclass of the # Game_Player and Game_Event classes. #==============================================================================
class Game_Character
#-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :reflect_offset # Character Reflection Offset #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- alias tds_sprite_reflection_initialize initialize def initialize tds_sprite_reflection_initialize @reflect_offset = 0 end #-------------------------------------------------------------------------- # * Current Area Name #-------------------------------------------------------------------------- def current_area_name # Checks the areas in the maps for area in $data_areas.values # If the character is currently on an area if in_area?(area) == true # Give the value of the name of the area to the return variable return_area_name = area.name # Break loop break end end return return_area_name end end
#============================================================================== # ** Game_Event #------------------------------------------------------------------------------ # This class deals with events. It handles functions including event page # switching via condition determinants, and running parallel process events. # It's used within the Game_Map class. #==============================================================================
class Game_Event < Game_Character #-------------------------------------------------------------------------- # * Clear Starting Flag #-------------------------------------------------------------------------- def name return @event.name end #-------------------------------------------------------------------------- # * Determine if in Area # area : Area data (RPG::Area) #-------------------------------------------------------------------------- def in_area?(area) return false if area == nil return false if $game_map.map_id != area.map_id return false if @x < area.rect.x return false if @y < area.rect.y return false if @x >= area.rect.x + area.rect.width return false if @y >= area.rect.y + area.rect.height return true end end
|
|
| |
dYeu retraité prématurément
Age : 29 Inscrit le : 09/02/2008 Messages : 5357
| Sujet: Re: [VX] Réflection du héros et des évènements Sam 19 Avr 2008 - 11:33 | |
| Merci beaucoup ^^. Sur l'eau, l'effet est très sympa ! |
|
| |
Illusionniste Lv.12
Age : 30 Inscrit le : 16/03/2008 Messages : 666
| Sujet: Re: [VX] Réflection du héros et des évènements Sam 19 Avr 2008 - 12:32 | |
| |
|
| |
dYeu retraité prématurément
Age : 29 Inscrit le : 09/02/2008 Messages : 5357
| Sujet: Re: [VX] Réflection du héros et des évènements Sam 19 Avr 2008 - 12:38 | |
| Je viens de l'utilise, il marche mais attention ! La zone doit déborder de la zone (xD), c'est à dire que la zone de combat doit déborder du lac par ex ^^. |
|
| |
Poulet carnivore Lv.2
Inscrit le : 13/05/2008 Messages : 10
| Sujet: Re: [VX] Réflection du héros et des évènements Ven 16 Mai 2008 - 10:14 | |
| Je l'ai essayé et il fonctionne sauf qu'il y a un petit inconvénient. A chaque changement de carte, le jeu bug et j'ai droit à mon héros et à certains élements qui se dédoublent. Je l'ai supprimé pour voir s'il était à l'origine du bug et il semblerait que oui. Donc à vérifier, je dirais... |
|
| |
dYeu retraité prématurément
Age : 29 Inscrit le : 09/02/2008 Messages : 5357
| Sujet: Re: [VX] Réflection du héros et des évènements Ven 16 Mai 2008 - 14:29 | |
| Mmh ... Je vais tester. Si ça me le fait aussi je regarderai le script. Mais attention hein, je suis pas un scripteur donc c'est pas sur que je trouve Par contre je trouve un truc pas normal... MIKO N'A PAS FAIT DE FAUTES ! C'est pas possible ! Il a du copier coller le texte de quelque part >< ... |
|
| |
Invité
| Sujet: Re: [VX] Réflection du héros et des évènements Ven 16 Mai 2008 - 14:57 | |
| Bin oui c'est pas lui qui l'a fait puisqu'il met le nom de l'auteur nan ? |
|
| |
Illusionniste Lv.12
Age : 30 Inscrit le : 16/03/2008 Messages : 666
| Sujet: Re: [VX] Réflection du héros et des évènements Ven 16 Mai 2008 - 15:21 | |
| Tu parle dus script toi , nous du l'orthographe de son post.
Sinon t'es aussi un fan d'allienware ? |
|
| |
Invité
| Sujet: Re: [VX] Réflection du héros et des évènements Ven 16 Mai 2008 - 15:24 | |
| Ah ok... j'sais pas il dit : "il n'a pas fait de faute" mais il ne dit pas d'orthographe ou pas alors bin moi je sais pas xD Et sinon ouais j'adore le type de graphisme genre futur/abstrait ^^ j'ai 3 fond d'écrans et plein d'image Alienware |
|
| |
Invité
| Sujet: Re: [VX] Réflection du héros et des évènements Ven 16 Mai 2008 - 19:56 | |
| xD non je n'ai pas fait de copier/coller |
|
| |
† Fondateur du forum †
Age : 31 Inscrit le : 09/02/2008 Messages : 1974
| Sujet: Re: [VX] Réflection du héros et des évènements Sam 17 Mai 2008 - 7:24 | |
| Merci pour ce tuto! pourrait tu le mettre sur le site s' il te plait? Merci |
|
| |
Chevalier Lv.17
Age : 31 Inscrit le : 27/04/2008 Messages : 1835
| Sujet: Re: [VX] Réflection du héros et des évènements Sam 17 Mai 2008 - 9:40 | |
| J'ai toujours adoré ce script (il existait déjà sur XP) merci beaucoup ^^ |
|
| |
Vagabond Lv.5
Age : 29 Inscrit le : 23/01/2010 Messages : 88
| Sujet: Re: [VX] Réflection du héros et des évènements Ven 18 Juin 2010 - 16:58 | |
| Désoler pour de soulver un vieux sujet mais apprement on a pas répondu à cette question parce j'ai le même bug à chaque teleportation .... - Citation :
- A chaque changement de carte, le jeu bug et j'ai droit à mon héros et à certains élements qui se dédoublent.
Je l'ai supprimé pour voir s'il était à l'origine du bug et il semblerait que oui. Suspect Donc à vérifier, je dirais... |
|
| |
| Sujet: Re: [VX] Réflection du héros et des évènements | |
| |
|
| |
| [VX] Réflection du héros et des évènements | |
|