Pokémon Script Project Forum Index

Manuel | Search
 Information des admins 
Si vous désirez parler de PSP ou obtenir du soutient là dessus, merci d'aller faire un tour sur https://pokemonworkshop.com/forum/index.php Imbécile heureux

Reflet dans l'eau
Goto page: 1, 2, 3  >
 
Post new topic   Reply to topic    Pokémon Script Project Forum Index -> Game Making -> Ressources techniques -> Scripts
Previous topic :: Next topic   
Author Message
Solfay1
Guest





PostPosted: Wed 14 May - 15:11 (2008)    Post subject: Reflet dans l'eau

bonjour bonjours je croit que tout le mode cherche ce script ???? en parcourant google je suis tomber sur sa ( c'est la que j'ai trouver ce tuto)http://www.rpg-maker.fr/
Voilaaa :

faites un évènement ayant comme commentaire :

- hero_r pour mettre le reflet du héros

- r pour mettre le reflet d'un évènement quelconque.

Pour afficher le reflet, allez dans la base de données et ensuite dans "gestion de chipset". Sélectionnez le tileset, cliquez sur "Terrain" et mettez "7" pour le carreau où vous voulez qu'il y est un reflet. Par exemple, mettez "7" sur le carreau représentant l'eau pour avoir un reflet dans l'eau (comme l'image ci-dessus)

Mettez le dans un nouveau script

Portion de code:
Code:
#==============================================================================
# ■ Sprite_Reflection
# Based on Sprite_Mirror, Modified By: JmsPlDnl, rewritten entirely by Rataime
#==============================================================================
CATERPILLAR_COMPATIBLE = true

class Game_Party
  attr_reader :characters
end

class Sprite_Reflection < RPG::Sprite

 attr_accessor :character

 def initialize(viewport=nil, character=nil,self_angle = 180)
   super(viewport)
   @character = character
   @self_angle=self_angle
   self.opacity=0
   @reflected=false
   @former=false
   @moving=false
   if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128+1)==7
     @reflected=true
     @former=true
   end
   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
     if @character.direction== 6
           sy = ( 4- 2) / 2 * @ch
     end
     if @character.direction== 4
           sy = ( 6- 2) / 2 * @ch
    end
    if @character.direction != 4 and @character.direction != 6
          sy = (@character.direction - 2) / 2 * @ch
    end
   end
   
   self.x = @character.screen_x
   self.y = @character.screen_y-5
   @moving=!(@character.real_x%128==0 and @character.real_y%128==0)
   @d=@character.direction
   @rect=[sx, sy, @cw, @ch„
   if !(@moving)
     if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128+1)==7 
       @reflected=true
       @former=true
     else
       @reflected=false  
       @former=false
     end
     
   else
       case @d
       
       when 2
       if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128+2)==7
         @reflected=true
         if @former==false
           @offset = (@character.screen_y%32)*@ch/32
           @rect=[sx, sy, @cw, @offset„
           self.y=@character.screen_y-5
         end
       else
         @reflected=false  
       end
       
       when 4
       if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128+1)!=7
         @offset = ((@character.screen_x-@cw/2)%32)*@cw/32
         @rect=[sx, sy, @offset, @ch„
         self.x=@character.screen_x
       else
         @reflected=true
         if @former==false
           @offset = ((@character.screen_x-@cw/2)%32)*@cw/32
           @rect=[sx+@offset, sy, @cw-@offset, @ch„
           self.x=@character.screen_x-@offset
         end
       end
       
       when 6
       if $game_map.terrain_tag(@character.real_x/128+1,@character.real_y/128+1)!=7
         @offset = ((@character.screen_x-@cw/2)%32)*@cw/32
         @rect=[sx+@offset, sy, @cw-@offset, @ch„
         self.x=@character.screen_x-@offset
       else
         @reflected=true
         if @former==false
           @offset = ((@character.screen_x-@cw/2)%32)*@cw/32
           @rect=[sx, sy, @offset, @ch„
           self.x=@character.screen_x
         end
       end
       
       when 8
       if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128+2)==7
         @reflected=true
         if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128+1)!=7
           @offset = (@character.screen_y%32)*@ch/32
           @rect=[sx, sy, @cw, @offset„
           self.y=@character.screen_y-5
         end
       else
         @reflected=false  
       end
       
       end

   end
   if @reflected
     self.opacity=128
   else
    @rect=[sx, sy, @cw, @ch„
    self.opacity=0
   end
   
   if $game_map.terrain_tag((@character.real_x+64)/128,@character.real_y/128+2)!=7
     if $game_map.terrain_tag((@character.real_x+64)/128,@character.real_y/128+2)!=7
       @rect[1„= @rect[1„+@ch/2
       @rect[3„= @rect[3„/2
       self.y = self.y - @ch/2
     else
       @reflected=false
     end
   end
     
   self.src_rect.set(@rect[0„,@rect[1„,@rect[2„,@rect[3„)
   
   @character.is_a?(Game_Player) ? self.z = 9 : self.z = 5
   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

   self.angle = @self_angle
 end
end

#===================================================
# ▼ CLASS Sprite_Character edit
#===================================================

class Sprite_Character < RPG::Sprite
  alias reflect_initialize initialize
  
  def initialize(viewport, character = nil)
    @character = character
    @reflection = [„
    super(viewport)
    if (character.is_a?(Game_Event) and character.list!=nil and character.list[0„.code == 108 and character.list[0„.parameters == ["r"„)
     @reflection.push(Sprite_Reflection.new(viewport,@character))
    end
    if (character.is_a?(Game_Event) and character.list!=nil and character.list[0„.code == 108 and character.list[0„.parameters == ["hero_r"„)
     @reflection.push(Sprite_Reflection.new(viewport,$game_player))
#===================================================
# ● Compatibility with fukuyama's caterpillar script
#===================================================
if CATERPILLAR_COMPATIBLE and $game_party.characters!=nil

  for member in $game_party.characters
    @reflection.push(Sprite_Reflection.new(viewport,member))
  end

end
#===================================================
# ● End of the compatibility
#===================================================
    end
    reflect_initialize(viewport, @character)
  end
  
  alias reflect_update update
  
  def update
   reflect_update
   if @reflection!=nil
     for reflect in @reflection
       reflect.update
     end
   end
  end
  
end





Back to top
Publicité






PostPosted: Wed 14 May - 15:11 (2008)    Post subject: Publicité

PublicitéSupprimer les publicités ?
Back to top
Slash
Membre


Joined: 18 Jan 2008
Posts: 2,504
Localisation: MONTSURS (53)

PostPosted: Wed 14 May - 16:22 (2008)    Post subject: Reflet dans l'eau

script intéressant mais avec beaucoup d'erreur que je me suis permis de modifier
donc voic la modification :

Code:
#============================================================================== # ■ Sprite_Reflection 
# Based on Sprite_Mirror, Modified By: JmsPlDnl, rewritten entirely by Rataime 
#============================================================================== 
CATERPILLAR_COMPATIBLE = true 
class Game_Party 
  attr_reader :characters 
end 
class Sprite_Reflection < RPG::Sprite 
 attr_accessor :character 
 def initialize(viewport=nil, character=nil,self_angle = 180) 
   super(viewport) 
   @character = character 
   @self_angle=self_angle 
   self.opacity=0 
   @reflected=false 
   @former=false 
   @moving=false 
   if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128+1)==7 
     @reflected=true 
     @former=true 
   end 
   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 
     if @character.direction== 6 
           sy = ( 4- 2) / 2 * @ch 
     end 
     if @character.direction== 4 
           sy = ( 6- 2) / 2 * @ch 
    end 
    if @character.direction != 4 and @character.direction != 6 
          sy = (@character.direction - 2) / 2 * @ch 
    end 
   end 
    
   self.x = @character.screen_x 
   self.y = @character.screen_y-5 
   @moving=!(@character.real_x%128==0 and @character.real_y%128==0) 
   @d=@character.direction 
   @rect=[sx, sy, @cw, @ch]
  if !(@moving) 
     if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128+1)==7  
       @reflected=true 
       @former=true 
     else 
       @reflected=false   
       @former=false 
     end 
      
   else 
       case @d 
        
       when 2 
       if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128+2)==7 
         @reflected=true 
         if @former==false 
           @offset = (@character.screen_y%32)*@ch/32 
           @rect=[sx, sy, @cw, @offset]
           [url=mailto:self.y=@character.screen_y-5]self.y=@character.screen_y-5[/url] 
         end 
       else 
         @reflected=false   
       end 
        
       when 4 
       if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128+1)!=7 
         @offset = ((@character.screen_x-@cw/2)%32)*@cw/32 
         @rect=[sx, sy, @offset, @ch]
         [url=mailto:self.x=@character.screen_x]self.x=@character.screen_x[/url] 
       else 
         @reflected=true 
         if @former==false 
           @offset = ((@character.screen_x-@cw/2)%32)*@cw/32 
           @rect=[sx+@offset, sy, @cw-@offset, @ch]
           [url=mailto:self.x=@character.screen_x-@offset]self.x=@character.screen_x-@offset[/url] 
         end 
       end 
        
       when 6 
       if $game_map.terrain_tag(@character.real_x/128+1,@character.real_y/128+1)!=7 
         @offset = ((@character.screen_x-@cw/2)%32)*@cw/32 
         @rect=[sx+@offset, sy, @cw-@offset, @ch]
         [url=mailto:self.x=@character.screen_x-@offset]self.x=@character.screen_x-@offset[/url] 
       else 
         @reflected=true 
         if @former==false 
           @offset = ((@character.screen_x-@cw/2)%32)*@cw/32 
           @rect=[sx, sy, @offset, @ch]
           [url=mailto:self.x=@character.screen_x]self.x=@character.screen_x[/url] 
         end 
       end 
        
       when 8 
       if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128+2)==7 
         @reflected=true 
         if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128+1)!=7 
           @offset = (@character.screen_y%32)*@ch/32 
           @rect=[sx, sy, @cw, @offset]
           [url=mailto:self.y=@character.screen_y-5]self.y=@character.screen_y-5[/url] 
         end 
       else 
         @reflected=false   
       end 
        
       end 
   end 
   if @reflected 
     self.opacity=128 
   else 
    @rect=[sx, sy, @cw, @ch]
    self.opacity=0 
   end 
    
   if $game_map.terrain_tag((@character.real_x+64)/128,@character.real_y/128+2)!=7 
     if $game_map.terrain_tag((@character.real_x+64)/128,@character.real_y/128+2)!=7 
       @rect[1]= @rect[1]+@ch/2 
       @rect[3]= @rect[3]/2 
       self.y = self.y - @ch/2 
     else 
       @reflected=false 
     end 
   end 
      
   self.src_rect.set(@rect[0],@rect[1],@rect[2],@rect[3]) 
    
   @character.is_a?(Game_Player) ? self.z = 9 : self.z = 5 
   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 
   self.angle = @self_angle 
 end 
end 
#=================================================== 
# ▼ CLASS Sprite_Character edit 
#=================================================== 
class Sprite_Character < RPG::Sprite 
  alias reflect_initialize initialize 
   
  def initialize(viewport, character = nil) 
    @character = character 
    @reflection = []
    super(viewport) 
    if (character.is_a?(Game_Event) and character.list!=nil and character.list[0].code == 108 and character.list[0].parameters == ["r"]) 
     @reflection.push(Sprite_Reflection.new(viewport,@character)) 
    end 
    if (character.is_a?(Game_Event) and character.list!=nil and character.list[0].code == 108 and character.list[0].parameters == ["hero_r"]) 
     @reflection.push(Sprite_Reflection.new(viewport,$game_player)) 
#=================================================== 
# ● Compatibility with fukuyama's caterpillar script 
#=================================================== 
if CATERPILLAR_COMPATIBLE and $game_party.characters!=nil 
  for member in $game_party.characters 
    @reflection.push(Sprite_Reflection.new(viewport,member)) 
  end 
end 
#=================================================== 
# ● End of the compatibility 
#=================================================== 
    end 
    reflect_initialize(viewport, @character) 
  end 
   
  alias reflect_update update 
   
  def update 
   reflect_update 
   if @reflection!=nil 
     for reflect in @reflection 
       reflect.update 
     end 
   end 
  end 
   
end





Last edited by Slash on Wed 14 May - 16:23 (2008); edited 1 time in total
Back to top
Brendan75
Ex-staff


Joined: 24 Mar 2008
Posts: 1,827
Localisation: Paris
Masculin

PostPosted: Wed 14 May - 16:22 (2008)    Post subject: Reflet dans l'eau

J'ai pas compris les histoires d'événement :cry:
tu peut me réespliquer (et mettre des screen) s'il te plait
Back to top
Slash
Membre


Joined: 18 Jan 2008
Posts: 2,504
Localisation: MONTSURS (53)

PostPosted: Wed 14 May - 16:48 (2008)    Post subject: Reflet dans l'eau

pour les event : tu créé sur chaque map ou tu a de l'eau 1 evt en processus parallele
et tu ecrit ds celui ci un commentaire avec



Code:
hero_r



Affiche le reflet du héros dansl'eau
et dans tes evt de perso tu met un commentaire au debut ou tu ecrit  



Code:




affiche le reflet des evt dans l'eau

et voici le résultat :
Back to top
Brendan75
Ex-staff


Joined: 24 Mar 2008
Posts: 1,827
Localisation: Paris
Masculin

PostPosted: Wed 14 May - 16:52 (2008)    Post subject: Reflet dans l'eau

Ok j'ai tous compris :D !!
merci!
Back to top
FdRstar
Guest





PostPosted: Wed 14 May - 17:55 (2008)    Post subject: Reflet dans l'eau

Bizarre ...
Avec moi il y a 1 erreur :
"Syntax error" à la ligne 86.
Back to top
Slash
Membre


Joined: 18 Jan 2008
Posts: 2,504
Localisation: MONTSURS (53)

PostPosted: Wed 14 May - 17:59 (2008)    Post subject: Reflet dans l'eau

fait voir la ligne 85, 86 et 87 stp Fdstar
c'est peut etre une loprie de crochet qui passe pas
au fait, ce script est ajouté a PSP4G 1.4 si tu ne vois pas d'inconveignant Gobou
Back to top
FdRstar
Guest





PostPosted: Wed 14 May - 18:01 (2008)    Post subject: Reflet dans l'eau

Les voici :



Code:

           @rect=[sx, sy, @cw, @offset]
           [url=mailto:self.y=@character.screen_y-5]self.y=@character.screen_y-5[/url] 
         end 
 


J'espère que tu trouveras le problème.
Back to top
Slash
Membre


Joined: 18 Jan 2008
Posts: 2,504
Localisation: MONTSURS (53)

PostPosted: Wed 14 May - 18:10 (2008)    Post subject: Reflet dans l'eau

t' a touché a quelque chose dans le script ?
car moi j'ai pas ca a ces lignes

prenle script que j'ai modifié
ou remplace par ca :




Code:
  @rect=[sx, sy, @cw, @offset]   
 self.y=@character.screen_y-5 


  end  










et dit moi si ca marche
Back to top
Solfay1
Guest





PostPosted: Thu 15 May - 12:13 (2008)    Post subject: Reflet dans l'eau

c'est pas mon script ^^' slash53 donc merci de l'avoir améliorer !
Back to top
FdRstar
Guest





PostPosted: Thu 15 May - 17:26 (2008)    Post subject: Reflet dans l'eau

Cette fois-ci ,il y a un problème à la ligne 104, voici les lignes 103, 104 et 105 :


 
 
Code:
         @rect=[sx, sy, @offset, @ch]
         [url=mailto:self.x=@character.screen_x]self.x=@character.screen_x[/url]
       else  

Je pense que ça vient de la balise "[/url]" à la fin...
Back to top
Slash
Membre


Joined: 18 Jan 2008
Posts: 2,504
Localisation: MONTSURS (53)

PostPosted: Thu 15 May - 17:32 (2008)    Post subject: Reflet dans l'eau

meme souci cest le [url= mil to.... qui deconne
c'est bizarre que ca t'est ecrit des truc comme ca dans le script.
je pense que meme en corrigeant tu va retomber plus loin sur le meme souci donc pour t'expliquer la demarche géneral, tu doit suprimer:

Code:
[url = mail to ............]
 

puis tu garde ce qu'il y'a ensuite : ligne de code

puis tu suprimme :
Code:
[/url]
 
Back to top
FdRstar
Guest





PostPosted: Thu 15 May - 17:42 (2008)    Post subject: Reflet dans l'eau

Ca marche parfaitement mais ...
Il n'y aurait pas une méthode moins couteuse en événement car là ca rame à mort...
Et aussi pour les PNJ le reflet ne s'affiche pas.
Back to top
Solfay1
Guest





PostPosted: Sat 17 May - 22:02 (2008)    Post subject: Reflet dans l'eau

bon voila j'ai trouvé un autre tuto : http://rpgmakerxpprojet.centerblog.net/
PS : les démo sont les bienvenues !
Back to top
valpokbest
Guest





PostPosted: Sun 18 May - 08:09 (2008)    Post subject: Reflet dans l'eau

slash53 wrote:
et voici le résultat :


Le seul défaut c'est que le reflet se fait aussi sur le bord :mdr:
Back to top
Display posts from previous:   
Post new topic   Reply to topic    Pokémon Script Project Forum Index -> Game Making -> Ressources techniques -> Scripts All times are GMT + 1 Hour
Goto page: 1, 2, 3  >
Page 1 of 3

 
Jump to:  

Index | Free forum | Free support forum | Free forums directory | Report a violation | Cookies | Charte | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Thème par Thomas et l'équipe de la refonte PSP 2012 (version 1.0)