Pokémon Script Project Index du Forum

S’enregistrer | Rechercher | Connexion
 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

[PSP DS] Script reflet dans l'eau
Aller à la page: 1, 2, 3  >
 
Poster un nouveau sujet   Répondre au sujet    Pokémon Script Project Index du Forum -> Game Making -> Ressources techniques -> Scripts
Sujet précédent :: Sujet suivant   
Auteur Message
Junki
Ex-staff


Inscrit le: 14 Juil 2009
Messages: 1 121
Ecrivain
Localisation: La Ciotat
ID Steam: by MP

MessagePosté le: Mar 26 Oct - 10:06 (2010)    Sujet du message: [PSP DS] Script reflet dans l'eau

Bonjour cher amis,

Je me suis permis de modifié le script de reflet dans l'eau.

Coller ce script ci-dessous au dessus de Main, nommé le Sprite_Reflection :
   


 

Code:



#==============================================================================
# ■ Sprite_Reflection
# Based on Sprite_Mirror, Modified By: JmsPlDnl, rewritten entirely by Rataime
# 18/04/07 : Script modifié par MGCaladtogel pour améliorer le rendu visuel
# 23/02/09 : Script modifié par Palbolsky
# 26/10/10 : Script modifié par Junki
#==============================================================================
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= 5
    @reflected=false
    @former=false
    @moving=false
    @c_h = false
    @c_g = 0
    @c_d = 0
    if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128+1)>=7
      corr_auto(@character.real_x/128,@character.real_y/128+1)
      @reflected=true
      @former=true
    end
    update
  end
  #--------------------------------------------------------------------------
  def type_auto(x, y)
    val = $game_map.terrain_tag(x, y)
    return (val != 7 ? false : true)
  end
  #--------------------------------------------------------------------------
  def corr_auto(x, y)
    val0 = $game_map.terrain_tag(x,y)
    val1 = $game_map.terrain_tag(x-1,y)
    val2 = $game_map.terrain_tag(x+1,y)
    if val1 < 7
      @c_g = (@cw-32)/2 if val0 == 7
      @c_g += 13 if val0 == 7 # Coupe le héros sur le bord gauche
    end
    if val2 < 7     
      @c_d = (@cw-32)/2 if val0 == 7
      @c_d += 11 if val0 == 7 # Coupe le héros sur le bord droit
    end
  end
  #--------------------------------------------------------------------------
  def update
    @c_h = false
    @c_g = 0
    @c_d = 0
    @m = false
    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-1 # Ne pas toucher SVP, corrige un décalage !
    self.y = @character.screen_y # Pour régler la position du reflet, verticalement       
    @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
        corr_auto(@character.real_x/128,@character.real_y/128+1)
        @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
          corr_auto(@character.real_x/128,@character.real_y/128+2)
          @reflected=true
          if @former==false
            @offset = @ch - (32 - ((@character.real_y/4)%32))
            @rect=[sx, sy, @cw, @offset]
          end
        else
          @reflected = ($game_map.terrain_tag(@character.real_x/128,
          @character.real_y/128+1)>=7 ? true : false)
          if @reflected
            @offset = @ch - ((32+5) - (@character.real_y/4)%32)
            @rect=[sx, sy + @offset, @cw, @ch - @offset]
            self.y -= @offset
          end
        end
      when 4
        if $game_map.terrain_tag((@character.real_x+127)/128 - 1,@character.real_y/128+1)<7
          if $game_map.terrain_tag((@character.real_x+127)/128,@character.real_y/128+1)>=7
            @offset = (@character.real_x/4)%32 + (@cw-32)/2
            @offset -= 8 if type_auto((@character.real_x+127)/128,@character.real_y/128+1)
            @rect=[sx, sy, @offset, @ch]
            @reflected=true
            @c_h = true
          end
        else
          @reflected=true
          if @former==false
            @offset = (@character.real_x/4)%32 + (@cw-32)/2
            @offset += 12 if type_auto((@character.real_x)/128,@character.real_y/128+1)
            @rect=[sx+@offset, sy, @cw-@offset, @ch]
            self.x -= @offset
          end
        end
      when 6
        if $game_map.terrain_tag(@character.real_x/128+1,@character.real_y/128+1)<7
          if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128+1)>=7
            @offset = (@character.real_x/4)%32 + (@cw-32)/2
            @offset += 8 if type_auto(@character.real_x/128,@character.real_y/128+1)
            @rect=[sx+@offset, sy, @cw-@offset, @ch]
            self.x -= @offset
            @reflected=true
          end
        else
          @reflected=true
          if @former==false
            @offset = (@character.real_x / 4)%32 + (@cw-32)/2
            @offset -= 8 if type_auto((@character.real_x+127)/128,@character.real_y/128+1)
            @rect=[sx, sy, @offset, @ch]
            @c_h = true
          end
        end
      when 8
        if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128+2)>=7
          corr_auto(@character.real_x/128,@character.real_y/128+2)
          @reflected=true
          if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128+1)<7
            @offset = @ch - (32 - ((@character.real_y/4)%32))
            @rect=[sx, sy, @cw, @offset]
          end
        else
          @reflected = ($game_map.terrain_tag(@character.real_x/128,
          @character.real_y/128+1)>=7 ? true : false)
          if @reflected
            @offset = @ch - ((32+5) - (@character.real_y/4)%32)
            @rect=[sx, sy + @offset, @cw, @ch - @offset]
            self.y -= @offset
          end
        end
      end
    end
    if @reflected
      self.opacity= 5
      self.zoom_y = 0.5
      self.zoom_x = 0.5
    else
    @rect=[sx, sy, @cw, @ch]
    self.opacity= 0
    end
    if @reflected and $game_map.terrain_tag((@character.real_x+64)/128,
      (@character.real_y+127)/128+2)<7
      if $game_map.terrain_tag((@character.real_x+64)/128,
      (@character.real_y+127)/128)>=7 and
      $game_map.terrain_tag((@character.real_x+64)/128,
      (@character.real_y+127)/128+1)>=7
        @offset = [(@ch - (32+3)) - (32 - (@character.real_y/4)%32)%32, 0].max # !
        @rect[1] += @offset
        @rect[3] -= @offset
        self.y -= @offset
      else
        lim = (type_auto((@character.real_x+64)/128,
        (@character.real_y+127)/128+1) ? (32- 8)  : (32+3)) # !
        if @rect[3] > lim
          diff = @rect[3] - lim
          @rect[1] += diff
          @rect[3] = lim
          self.y -= diff
        end
      end
    else
      @reflected=false
    end
    corr_h = 0
    if @c_h or ($game_map.terrain_tag((@character.real_x)/128,
      (@character.real_y+127)/128)<7 and
      $game_map.terrain_tag((@character.real_x)/128,
      (@character.real_y+127)/128+1)>=7)
      if type_auto((@character.real_x)/128, (@character.real_y+127)/128+1) or
        type_auto((@character.real_x+127)/128, (@character.real_y+127)/128+1)
        corr_h = 26 # Coupe le héros sur le bord haut
      else
        corr_h = 4
      end
    end
    self.x -= @c_d
    self.src_rect.set(@rect[0] + @c_d, @rect[1], @rect[2] - @c_g - @c_d,
    @rect[3] - corr_h)
    @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 scrîpt
#===================================================
      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






   

Il fonctionne de la manière suivante :
    

 -Pour afficher le reflet du héros, rentrez dans un commentaire : hero_r
 -Pour afficher le reflet d'un character, rentrez dans un commentaire : r
Pour être tranquille, mieux vaut rentrer ces commandes en processus parallèle.

Il est réglé par rapport a cette ressource et doit avoir pour tag le 7.


    
 
Rendu final :



J’espère que certains s'en serviront. Imbécile heureux
    
Revenir en haut
Visiter le site web du posteur Skype Facebook Twitter Yahoo Messenger ICQ AIM
Publicité






MessagePosté le: Mar 26 Oct - 10:06 (2010)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
Ashikata
Membre


Inscrit le: 19 Juil 2009
Messages: 1 683
Télétubby
Localisation: Ah ba merde alors je suis où?
Masculin

MessagePosté le: Mar 26 Oct - 10:14 (2010)    Sujet du message: [PSP DS] Script reflet dans l'eau

C'est zoli !
Je m'en servirais merci.


Edit: petit erreur de syntaxe ligne 39.
Revenir en haut
Skype Yahoo Messenger ICQ AIM GTalk/Jabber
Suicune31
Membre


Inscrit le: 08 Aoû 2008
Messages: 1 161
Localisation: Haute-garonne (31)
Masculin

MessagePosté le: Mar 26 Oct - 12:42 (2010)    Sujet du message: [PSP DS] Script reflet dans l'eau

Merci ^^, j'ai essayer de l'adapter tout seul mais j'y suis pas arriver ><.
Crédit Clin d'œil foireux .

EDIT : à bin non, le reflet ne s'affiche pas.
Revenir en haut
Junki
Ex-staff


Inscrit le: 14 Juil 2009
Messages: 1 121
Ecrivain
Localisation: La Ciotat
ID Steam: by MP

MessagePosté le: Mar 26 Oct - 12:52 (2010)    Sujet du message: [PSP DS] Script reflet dans l'eau

sUiCuNe31 a écrit:

Merci ^^, j'ai essayer de l'adapter tout seul mais j'y suis pas arriver ><.
Crédit Clin d'œil foireux .

EDIT : à bin non, le reflet ne s'affiche pas.
Tu as modifié quelque chose dans le script pour que le reflet ne s'affiche plus ?
Revenir en haut
Visiter le site web du posteur Skype Facebook Twitter Yahoo Messenger ICQ AIM
Swani
Invité





MessagePosté le: Mar 26 Oct - 12:53 (2010)    Sujet du message: [PSP DS] Script reflet dans l'eau

Junki c'est possible de faire de même avec un autre tile d'eau ?
Revenir en haut
Suicune31
Membre


Inscrit le: 08 Aoû 2008
Messages: 1 161
Localisation: Haute-garonne (31)
Masculin

MessagePosté le: Mar 26 Oct - 13:41 (2010)    Sujet du message: [PSP DS] Script reflet dans l'eau

Junki a écrit:

sUiCuNe31 a écrit:

Merci ^^, j'ai essayer de l'adapter tout seul mais j'y suis pas arriver ><.
Crédit Clin d'œil foireux .

EDIT : à bin non, le reflet ne s'affiche pas.

Tu as modifié quelque chose dans le script pour que le reflet ne s'affiche plus ?
Non j'ai pris le script tel qu'il est.
Revenir en haut
Ashikata
Membre


Inscrit le: 19 Juil 2009
Messages: 1 683
Télétubby
Localisation: Ah ba merde alors je suis où?
Masculin

MessagePosté le: Mar 26 Oct - 17:35 (2010)    Sujet du message: [PSP DS] Script reflet dans l'eau

Swani a écrit:
Junki c'est possible de faire de même avec un autre tile d'eau ?


Oui mais les reflets pourrais déborder je crois.
Revenir en haut
Skype Yahoo Messenger ICQ AIM GTalk/Jabber
Pαlвσlѕку
Administrateur
Administrateur


Inscrit le: 17 Aoû 2008
Messages: 5 982
Masculin

MessagePosté le: Mar 26 Oct - 21:40 (2010)    Sujet du message: [PSP DS] Script reflet dans l'eau

On dirait que les commentaires que j'avais inséré dans le script servent bien. Imbécile heureux

Si on change de tile d'eau, il faut refaire les réglages pour le position du reflet, mais puisque mes lignes de commentaire sont encore présentes, ça ne devrait pas trop poser de problèmes.

Bon script et bien joué. Bouche extensiblek:
Revenir en haut
Skype
Ashikata
Membre


Inscrit le: 19 Juil 2009
Messages: 1 683
Télétubby
Localisation: Ah ba merde alors je suis où?
Masculin

MessagePosté le: Mar 26 Oct - 21:47 (2010)    Sujet du message: [PSP DS] Script reflet dans l'eau

Sinon, je suis le seul à buger ligne 39 "return (val != 7 ? false : true)" ?
Revenir en haut
Skype Yahoo Messenger ICQ AIM GTalk/Jabber
Pαlвσlѕку
Administrateur
Administrateur


Inscrit le: 17 Aoû 2008
Messages: 5 982
Masculin

MessagePosté le: Mar 26 Oct - 22:10 (2010)    Sujet du message: [PSP DS] Script reflet dans l'eau

Je ne vois aucune erreur à cette ligne.

Je me demande ce qui se passe... :?
Revenir en haut
Skype
Junki
Ex-staff


Inscrit le: 14 Juil 2009
Messages: 1 121
Ecrivain
Localisation: La Ciotat
ID Steam: by MP

MessagePosté le: Mer 27 Oct - 09:10 (2010)    Sujet du message: [PSP DS] Script reflet dans l'eau

Je n'ai aucun bug moi mais si vous utilisez ce tiles les events doivent être placé comme ça : 
Revenir en haut
Visiter le site web du posteur Skype Facebook Twitter Yahoo Messenger ICQ AIM
Suicune31
Membre


Inscrit le: 08 Aoû 2008
Messages: 1 161
Localisation: Haute-garonne (31)
Masculin

MessagePosté le: Mer 27 Oct - 10:48 (2010)    Sujet du message: [PSP DS] Script reflet dans l'eau

O_o Avant il fallait juste placer 1 évent sur la map avec l'ancien script :s
et la il faut le faire à chaque case ? <
Revenir en haut
Swani
Invité





MessagePosté le: Mer 27 Oct - 10:53 (2010)    Sujet du message: [PSP DS] Script reflet dans l'eau

dans les case faut mettre quoi ?
Revenir en haut
Junki
Ex-staff


Inscrit le: 14 Juil 2009
Messages: 1 121
Ecrivain
Localisation: La Ciotat
ID Steam: by MP

MessagePosté le: Mer 27 Oct - 10:58 (2010)    Sujet du message: [PSP DS] Script reflet dans l'eau

@sUiCuNe31: Non un suffit en faite je viens de tester Clin d'œil foireux

@Swani: T'aurais pu lire .

Citation:

 Il fonctionne de la manière suivante :
    


 -Pour afficher le reflet du héros, rentrez dans un commentaire : hero_r
 -Pour afficher le reflet d'un character, rentrez dans un commentaire : r
Pour être tranquille, mieux vaut rentrer ces commandes en processus parallèle.

Il est réglé par rapport a cette ressource et doit avoir pour tag le 7.



Revenir en haut
Visiter le site web du posteur Skype Facebook Twitter Yahoo Messenger ICQ AIM
Suicune31
Membre


Inscrit le: 08 Aoû 2008
Messages: 1 161
Localisation: Haute-garonne (31)
Masculin

MessagePosté le: Mer 27 Oct - 11:07 (2010)    Sujet du message: [PSP DS] Script reflet dans l'eau

ah je vois peut être une lumière ><.
quand je met plusieurs évent comme tu la citer plus haut, je vois bel est bien le reflet mais mal placer sur les bords.
et quand j'en met 1, je vois pas le reflet >< je comprend pas pourquoi :? .
Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 07:49 (2017)    Sujet du message: [PSP DS] Script reflet dans l'eau

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Pokémon Script Project Index du Forum -> Game Making -> Ressources techniques -> Scripts Toutes les heures sont au format GMT + 1 Heure
Aller à la page: 1, 2, 3  >
Page 1 sur 3

 
Sauter vers:  

Index | Creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | 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)
Traduction par : phpBB-fr.com