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

[Script] Trace de pas sur le sable

 
Post new topic   Reply to topic    Pokémon Script Project Forum Index -> Game Making -> Ressources techniques -> Scripts
Previous topic :: Next topic   
Author Message
Zelda
Ex-staff


Joined: 29 Apr 2008
Posts: 2,442
Localisation: Nantes (44)

PostPosted: Mon 3 Nov - 15:24 (2008)    Post subject: [Script] Trace de pas sur le sable

Source : ici



Créez un nouveau script au-dessus de Main, appelez le : Trace

Puis mettre ceci :

Code:




#==========================================================================
====
# ? Terrain Effects
#------------------------------------------------------------------------------
# Facilitates a number of different terrain effects
# Made by: Huitzilopoctli of rmxp.net as part of Interactive World
#------------------------------------------------------------------------------
# You must have a charset to record tracks, 128*128
# Any tile with a TerrainID equal to TrackID will be marked when an event or the
#   player moves on it
# You can change the type of track laid down by an event like this:
#   Make the first event command a comment. If you include \Light in the comment
#   then the event will not make a track. If you include \Track[n], n 1->4
#   then the track used will be set to that 'direction' along on the charset
#   Using \Track[2] will use the second colomn of tracks in the track set
#==============================================================================

#==============================================================================
# ? Customisation - Footprints
#==============================================================================
TrackID   = 2          # The terrain tag of a tile which will leave a track
TrackOpac = 105        # The initial opacity of the track
TrackLast = 50         # The number of frames a track remains before fading
TrackSet = "Tracks"    # The name of the default charset for tracks

#==============================================================================
# ? Script
#==============================================================================
class Game_Terrain
 
  attr_reader :viewport
 
  def initialize
    @rows = [ ]
    @viewport = Viewport.new(0, 0, 640, 480)
    for i in 0...15
      @rows[i] = Sprite.new(@viewport)
      @rows[i].bitmap = Bitmap.new(640, 32)
      @rows[i].y = i * 32
      @rows[i].z = (i * 32 + 2) / 4 + 32
    end
   
    @tracks = Table.new(20, 15, 3)
   
    @track = RPG::Cache.character(TrackSet, 0)
  end
 
  def imprint(x, y, d, track_id)
    @tracks[x, y, 0] = TrackLast
    @tracks[x, y, 1] = d * 16 - 32
    @tracks[x, y, 2] = track_id * 32
  end
 
  def update
    @rows.each { |s| s.bitmap.clear }
   
    for x in 0...20
      for y in 0...15
       
        if @tracks[x, y, 0] != 0
          @tracks[x, y, 0] -= 1
         
          rect = Rect.new(@tracks[x, y, 2], @tracks[x, y, 1], 32, 32)
         
          @rows[y].bitmap.blt(x * 32, 0, @track, rect, TrackOpac)
        end
       
      end
    end
   
  end
 
  def clear
    @rows.each  { |s| s.bitmap.clear }
    for x in 0...20
      for y in 0...15
        @tracks[x, y, 0] = 0
      end
    end
  end
 
end

class Scene_Title
 
  def command_new_game
    $game_system.se_play($data_system.decision_se)
   
    Audio.bgm_stop
   
    Graphics.frame_count = 0
   
    $game_temp          = Game_Temp.new
    $game_system        = Game_System.new
    $game_switches      = Game_Switches.new
    $game_variables     = Game_Variables.new
    $game_self_switches = Game_SelfSwitches.new
    $game_screen        = Game_Screen.new
    $game_actors        = Game_Actors.new
    $game_party         = Game_Party.new
    $game_troop         = Game_Troop.new
    $game_terrain       = Game_Terrain.new
    $game_map           = Game_Map.new
    $game_player        = Game_Player.new
   
    $game_party.setup_starting_members
   
    $game_map.setup($data_system.start_map_id)
   
    $game_player.moveto($data_system.start_x, $data_system.start_y)
    $game_player.refresh
   
    $game_map.autoplay
    $game_map.update
   
    $scene = Scene_Map.new
  end
 
end

class Scene_Map
 
  def main
    @spriteset = Spriteset_Map.new
    @message_window = Window_Message.new
    Graphics.transition
   
    loop do
      Graphics.update
      Input.update
     
      update
     
      if $scene != self
        break
      end
    end
   
    Graphics.freeze
   
    $game_terrain.clear
    @spriteset.dispose
    @message_window.dispose
   
    if $scene.is_a?(Scene_Title)
      Graphics.transition
      Graphics.freeze
    end
  end
 
  alias update_primary update
  def update
    $game_terrain.update
   
    update_primary
  end
 
end

class Spriteset_Map
 
  def initialize
    @viewport1 = $game_terrain.viewport
    @viewport2 = Viewport.new(0, 0, 640, 480)
    @viewport3 = Viewport.new(0, 0, 640, 480)
    @viewport2.z = 200
    @viewport3.z = 5000
   
    @tilemap = Tilemap.new(@viewport1)
    @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)
    for i in 0..6
      autotile_name = $game_map.autotile_names[i]
      @tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name)
    end
    @tilemap.map_data = $game_map.data
    @tilemap.priorities = $game_map.priorities
   
    @panorama = Plane.new(@viewport1)
    @panorama.z = -1000
   
    @fog = Plane.new(@viewport1)
    @fog.z = 3000
   
    @character_sprites = []
    for i in $game_map.events.keys.sort
      sprite = Sprite_Character.new(@viewport1, $game_map.events[i])
      @character_sprites.push(sprite)
    end
    @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
   
    @weather = RPG::Weather.new(@viewport1)
   
    @picture_sprites = []
    for i in 1..50
      @picture_sprites.push(Sprite_Picture.new(@viewport2,
        $game_screen.pictures[i]))
    end
   
    @timer_sprite = Sprite_Timer.new
   
    update
  end
 
  def dispose
    @tilemap.tileset.dispose
    for i in 0..6
      @tilemap.autotiles[i].dispose
    end
    @tilemap.dispose
   
    @panorama.dispose
   
    @fog.dispose
   
    for sprite in @character_sprites
      sprite.dispose
    end
   
    @weather.dispose
   
    for sprite in @picture_sprites
      sprite.dispose
    end
   
    @timer_sprite.dispose
   
    @viewport2.dispose
    @viewport3.dispose
  end
 
end

class Game_Character
 
  alias move_down_primary move_down
  def move_down(turn_enabled = true)
    leave_track
    move_down_primary
  end
 
  alias move_left_primary move_left
  def move_left(turn_enabled = true)
    leave_track
    move_left_primary
  end
 
  alias move_right_primary move_right
  def move_right(turn_enabled = true)
    leave_track
    move_right_primary
  end
 
  alias move_up_primary move_up
  def move_up(turn_enabled = true)
    leave_track
    move_up_primary
  end
 
  alias move_lower_left_primary move_lower_left
  def move_lower_left
    leave_track
    move_lower_left_primary
  end
 
  alias move_lower_right_primary move_lower_right
  def move_lower_right
    leave_track
    move_lower_right_primary
  end
 
  alias move_upper_left_primary move_upper_left
  def move_upper_left
    leave_track
    move_upper_left_primary
  end
 
  alias move_upper_right_primary move_upper_right
  def move_upper_right
    leave_track
    move_upper_right_primary
  end
 
end

class Game_Event < Game_Character
 
  alias initialize_primary initialize
  def initialize(map_id, event)
    initialize_primary(map_id, event)
   
    @track_set = 0
    if @list[0].code == 108
      if @list[0].parameters[0] =~ "\Light"
        @no_track = true
      elsif @list[0].parameters[0] =~ /\\Track\[([1-4])\]/
        @track_set = $1.to_i - 1
      end
    end
   
  end
 
  def leave_track
    if @through || @always_on_top || @no_track
      return
    end
       
    if $game_map.terrain_tag(@x, @y) == TrackID
      $game_terrain.imprint(@x, @y, @direction, @track_set)
    end
  end
 
end

class Game_Player < Game_Character
 
  def leave_track
    if @through
      return
    end
       
    if $game_map.terrain_tag(@x, @y) == TrackID
      $game_terrain.imprint(@x, @y, @direction, 0)
    end
  end
 
end


Il vous faut en plus du script, faire un chara des pas.

En voici un qui n'est pas de l'univers pokémon



Instructions :

Alors, comme vous avez pu le voir sur le charset, il y a plusieurs sortes de traces.
Pour avoir la première colonne (humain, elfe...) : mettez un commentaire en première place dans la liste des commandes de l'événement et entrez \Track[1]
Pour avoir la deuxième colonne (sirène, poisson...) : mettez un commentaire en première place dans la liste des commandes de l'événement et entrez \Track[2]
Pour avoir la troisième colonne (animaux à pattes) : mettez un commentaire en première place dans la liste des commandes de l'événement et entrez \Track[3]
Pour avoir la quatrième colonne (animaux à sabots) : mettez un commentaire en première place dans la liste des commandes de l'événement et entrez \Track[4].




Vous pouvez également changer certaines choses dans le script. Cherchez ça (c'est vers le début) :

Code:

TrackID   = 2          # Le numéro de terrain qui montre des traces de pas
TrackOpac = 105        # L'opacité initiale des traces
TrackLast = 50         # Le nombre de frames une trace reste avant de s'effacer
TrackSet = "Tracks"    # Le nom du charset de traces


J'éspère vous avoir aidé ! Testé et fonctionnel Imbécile heureux
Back to top
Visit poster’s website
Publicité






PostPosted: Mon 3 Nov - 15:24 (2008)    Post subject: Publicité

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


Joined: 21 Jun 2008
Posts: 2,579
Localisation: Réunion

PostPosted: Mon 3 Nov - 16:34 (2008)    Post subject: [Script] Trace de pas sur le sable

CE script était imcopatible chez moi il me semble ...

Je test et je re ! Bouche extensiblek: merci du partage

EDIT: Il est fonctionnel sous quel version de psp ? -_-"
Back to top
Zelda
Ex-staff


Joined: 29 Apr 2008
Posts: 2,442
Localisation: Nantes (44)

PostPosted: Mon 3 Nov - 22:33 (2008)    Post subject: [Script] Trace de pas sur le sable

J'ai tester sur 0.5
Back to top
Visit poster’s website
Aten974
Membre


Joined: 21 Jun 2008
Posts: 2,579
Localisation: Réunion

PostPosted: Tue 4 Nov - 12:21 (2008)    Post subject: [Script] Trace de pas sur le sable

Mince -_-
Back to top
Sphinx
Scribe
Scribe


Joined: 07 Jan 2008
Posts: 9,736
Localisation: Quelque part, dans le monde... Ou peut être sur une autre planète...
ID Steam: FaQuinator

PostPosted: Mon 17 Nov - 14:02 (2008)    Post subject: [Script] Trace de pas sur le sable

Pas fonctionnel sous PSP0.7 ?
Back to top
Aten974
Membre


Joined: 21 Jun 2008
Posts: 2,579
Localisation: Réunion

PostPosted: Mon 17 Nov - 15:14 (2008)    Post subject: [Script] Trace de pas sur le sable

Pour moi, non, ça bug ...
Back to top
Sphinx
Scribe
Scribe


Joined: 07 Jan 2008
Posts: 9,736
Localisation: Quelque part, dans le monde... Ou peut être sur une autre planète...
ID Steam: FaQuinator

PostPosted: Mon 17 Nov - 15:37 (2008)    Post subject: [Script] Trace de pas sur le sable

(alors je ne l'ajoute pas au sommaire pour le moment =))
Back to top
Solfay1
Guest





PostPosted: Mon 17 Nov - 18:18 (2008)    Post subject: [Script] Trace de pas sur le sable

J'ai pas testé mais je peut t'aider pour un chose :


Pas la peine de mettre dans les crédit vue que c'est pas moi qui la fait !
Back to top
Angi-MK
Membre


Joined: 29 Oct 2008
Posts: 2,303
Localisation: Québec
Masculin

PostPosted: Mon 17 Nov - 19:05 (2008)    Post subject: [Script] Trace de pas sur le sable

Déjà les gens qui connaise un "minimum" le ruby verons que ici:
Code:
#==========================================================================
====
# ? Terrain Effects

Il y a un probleme à la 2eme ligne, il manque un # ou alors supprimez cette ligne carrément...


Ok le VRAI bug se produit dès que tu fais un pas n'importe où,
voila ce qu'il dit:


Et le rapport log.txt me donne:
---------- Erreur de script : Game_Player ----------
----- Type
NoMethodError

----- Message
- ARGS - []
undefined method `increase_steps' for nil:NilClass

----- Position dans Game_Player
Ligne 90

----- Backtrace
Script : Game_Player | Ligne : 90 | Méthode : in `increase_steps'
Script : Game_Character 3 | Ligne : 48 | Méthode : in `move_left_primary'
Script : | Ligne : 243 | Méthode : in `move_left'
Script : Game_Player | Ligne : 22 | Méthode : in `update'
Script : Scene_Map | Ligne : 49 | Méthode : in `alias_update'
Script : Scene_Map | Ligne : 46 | Méthode : in `loop'
Script : Scene_Map | Ligne : 59 | Méthode : in `alias_update'
Script : MAPPANEL | Ligne : 89 | Méthode : in `update_primary'
Script : | Ligne : 154 | Méthode : in `update'
Script : | Ligne : 131 | Méthode : in `main'
Script : | Ligne : 127 | Méthode : in `loop'
Script : | Ligne : 136 | Méthode : in `main'
Script : Main | Ligne : 53


Voila, ci ça interesse quelqu'un de se pencher là-dessus, bonne chance Clin d'œil foireux
Back to top
Visit poster’s website
Zelda
Ex-staff


Joined: 29 Apr 2008
Posts: 2,442
Localisation: Nantes (44)

PostPosted: Mon 17 Nov - 19:57 (2008)    Post subject: [Script] Trace de pas sur le sable

je vais voir ske je peut faire
Back to top
Visit poster’s website
Sphinx
Scribe
Scribe


Joined: 07 Jan 2008
Posts: 9,736
Localisation: Quelque part, dans le monde... Ou peut être sur une autre planète...
ID Steam: FaQuinator

PostPosted: Mon 17 Nov - 20:40 (2008)    Post subject: [Script] Trace de pas sur le sable

le bug est simple : la méthode increase_steps (<= compteur de pas) n'est pas paramétrée dans ce script ^_^ Faudrait voir ce qui ne lui plait pas de plus près =)
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
Page 1 of 1

 
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)