Anarion

Anarion
Les scripts fil RSS
Ceci est le bouton pour répondre à un message à l'interieur d'un sujet . Vous ne le rencontrerez que dans un seul cas : à l'interieur d'un sujet de discussion . Le bouton vous emmenera vers un formulaire identique à la création d'un sujet , mais ne vous inquietez pas , c'est bien pour créer une nouvelle réponse dans un sujet . Une fois les informations adéquats remplies , la réponse sera placé à la suite des messages du sujet auquel vous aurez répondu

Ombre

Julien Posté le : 12 Déc, 2007 à 14:57:53

Julien
Messages :30
Allez dans l'éditeur de script ( F11 ) et Remplacez le script " Sprite_Character " par ceci:

Utilisation : lors, tout les places que vous voulez avoir votre lumière, vous placer un évènement qui a comme commentaire s.

Pour donner à un évènement une ombre, ajoutez un commentaire o.

Pour l'imiter la source, ajoutez s'y 2 autre commentaire avec chacun un chiffre qui définie un angle. C'est l'angle de la lumière projetée. Par exemple une lumière qui donne de la lumière seulement vers la droite et non vers la gauche.

Et un 4ème commentaire qui est écrit un chiffre entre 500 et 1000, qui son la longueur en pixel pour l'ombre.

Pour l'extérieur ne faites que placé un commentaire sun. Pour limiter le soleil, le degré c'est encore la même chose et pour le foncé ou pâle, ces entre 30 et 200, dont 200 ces très claire.

PS: Le héros a déjà son ombre.

Si vous mettez pas de degré ni de longueur, il va s'adapté à celle par défaut dans le script.


Code :



#==============================================================================
# ¦ Sprite_Character modifié (See Sprite_Shadow and Sprite_Sun)
#==============================================================================

class Sprite_Character < RPG::Sprite

attr_accessor :character

def initialize(viewport, character = nil)
super(viewport)
@character = character
#------Sun edit----------
@sunlist=[]
if (character.is_a?(Game_Event) and character.list!=nil and character.list[0].code == 108 and character.list[0].parameters == ["sun"])
if (character.list[1]!=nil and character.list[1].code == 108)
@self_angle=character.list[1].parameters[0]
else
@self_angle=45
end
if (character.list[2]!=nil and character.list[2].code == 108)
@self_opacity=character.list[2].parameters[0]
else
@self_opacity=128
end
for i in $game_map.events.keys.sort
if ($game_map.events.is_a?(Game_Event) and $game_map.events.list!=nil and $game_map.events.list[0].code == 108 and $game_map.events.list[0].parameters == ["o"])
@sunlist[i+1] = Sprite_Sun.new(viewport, $game_map.events,@self_angle,@self_opacity)
end
end
@sunlist[1] = Sprite_Sun.new(viewport, $game_player,@self_angle,@self_opacity)
end
#------/Sun edit----------
#------Shadows edit---------
@ombrelist=[]
if (character.is_a?(Game_Event) and character.list!=nil and character.list[0].code == 108 and character.list[0].parameters == ["s"])
if (character.list[1]!=nil and character.list[1].code == 108)
@anglemin=character.list[1].parameters[0]
end
if (character.list[2]!=nil and character.list[2].code == 108)
@anglemax=character.list[2].parameters[0]
end
if (character.list[3]!=nil and character.list[3].code == 108)
@distancemax=character.list[3].parameters[0]
end
for i in $game_map.events.keys.sort
if ($game_map.events.is_a?(Game_Event) and $game_map.events.list!=nil and $game_map.events.list[0].code == 108 and $game_map.events.list[0].parameters == ["o"])
@ombrelist[i+1] = Sprite_Shadow.new(viewport, $game_map.events,self,@anglemin,@anglemax,@distancemax)
end
end
@ombrelist[1] = Sprite_Shadow.new(viewport, $game_player,self,@anglemin,@anglemax,@distancemax)
end
#------/Shadows edit----------
update
end

def update
super
if @tile_id != @character.tile_id or
@character_name != @character.character_name or
@character_hue != @character.character_hue
@tile_id = @character.tile_id
@character_name = @character.character_name
@character_hue = @character.character_hue
if @tile_id >= 384
self.bitmap = RPG::Cache.tile($game_map.tileset_name,
@tile_id, @character.character_hue)
self.src_rect.set(0, 0, 32, 32)
self.ox = 16
self.oy = 32
else
self.bitmap = RPG::Cache.character(@character.character_name,
@character.character_hue)
@cw = bitmap.width / 4
@ch = bitmap.height / 4
self.ox = @cw / 2
self.oy = @ch
end
end
self.visible = (not @character.transparent)
if @tile_id == 0
sx = @character.pattern * @cw
sy = (@character.direction - 2) / 2 * @ch
self.src_rect.set(sx, sy, @cw, @ch)
end
self.x = @character.screen_x
self.y = @character.screen_y
self.z = @character.screen_z(@ch)
self.opacity = @character.opacity
self.blend_type = @character.blend_type
self.bush_depth = @character.bush_depth
if @character.animation_id != 0
animation = $data_animations[@character.animation_id]
animation(animation, true)
@character.animation_id = 0
end
#------Shadows edit----------
if @ombrelist!=[]
for i in 1..@ombrelist.size
if @ombrelist!=nil
@ombrelist.update
end
end
end
#------/Shadows edit----------
#------Shadows edit----------
if @sunlist!=[]
for i in 1..@sunlist.size
if @sunlist!=nil
@sunlist.update
end
end
end
#------/Shadows edit----------
end
end

Ensuite faites un nouveau script au dessus de Main et nommé le Sprite_Shadow et collez s'y ceci:



#==============================================================================
# ¦ Sprit_Ombre (Sprite_Ombre )
# Based on Genzai Kawakami's shadows, dynamisme by Rataime, extra features Boushy
#==============================================================================

class Sprite_Shadow < RPG::Sprite

attr_accessor :character # ??????

def initialize(viewport, character = nil,source = nil,anglemin=0,anglemax=0,distancemax=0)
super(viewport)
@anglemin=anglemin.to_f
@anglemax=anglemax.to_f
@distancemax=distancemax.to_f
@character = character
@source = source
update
end

def update
super

if @tile_id != @character.tile_id or
@character_name != @character.character_name or
@character_hue != @character.character_hue
@tile_id = @character.tile_id
@character_name = @character.character_name
@character_hue = @character.character_hue
if @tile_id >= 384
self.bitmap = RPG::Cache.tile($game_map.tileset_name,
@tile_id, @character.character_hue)
self.src_rect.set(0, 0, 32, 32)
self.ox = 16
self.oy = 32
else
self.bitmap = RPG::Cache.character(@character.character_name,
@character.character_hue)
@cw = bitmap.width / 4
@ch = bitmap.height / 4
self.ox = @cw / 2
self.oy = @ch
end
end
self.visible = (not @character.transparent)
if @tile_id == 0
sx = @character.pattern * @cw
@direct=@character.direction

if self.angle>90 or angle= 384
self.bitmap = RPG::Cache.tile($game_map.tileset_name,
@tile_id, @character.character_hue)
self.src_rect.set(0, 0, 32, 32)
self.ox = 16
self.oy = 32
else
self.bitmap = RPG::Cache.character(@character.character_name,
@character.character_hue)
@cw = bitmap.width / 4
@ch = bitmap.height / 4
self.ox = @cw / 2
self.oy = @ch
end
end

self.visible = (not @character.transparent)

if @tile_id == 0
sx = @character.pattern * @cw
@direct=@character.direction

if self.angle>90 or angle

--Message édité par le 12-12-07 à 14:58:43--
Sujets complémentaires :
Confirmation de sauvegarde Refflet dans l'eau
Ombre Plein écran
Anarion
Les scripts fil RSS
Ceci est le bouton pour répondre à un message à l'interieur d'un sujet . Vous ne le rencontrerez que dans un seul cas : à l'interieur d'un sujet de discussion . Le bouton vous emmenera vers un formulaire identique à la création d'un sujet , mais ne vous inquietez pas , c'est bien pour créer une nouvelle réponse dans un sujet . Une fois les informations adéquats remplies , la réponse sera placé à la suite des messages du sujet auquel vous aurez répondu

Créer un forum gratuit
[ Génération de la page en 0.391 secondes ]