Ogłoszenie 

Uwaga! To forum jest w trybie offline.
Wszelką pomoc uzyskasz pod adresem
forum.ultimateam.pl


Administracja Forum


Poprzedni temat «» Następny temat
Cienie
Autor Wiadomość
HESEE 




Preferowany:
RPG Maker VX

Pomógł: 1 raz
Dołączył: 31 Mar 2010
Posty: 145
Wysłany: Nie 02 Maj, 2010 11:35
Cienie
Mam tu dla was nowy i dobry skrypt a mianowicie cienie w grze
myślę że napewno komuś się przyda.
Spoiler:


Kod:
#==============================================================================
# ** Sprite Shadow (Sprite_Ombre )
#------------------------------------------------------------------------------
#    Based on Genzai Kawakami's shadows
#    dynamisme & features by Rataime
#    extra features Boushy
#    New Edits by DerVVulfman
#    February 24, 2008
#
#------------------------------------------------------------------------------
#
# Introduction:
#
#  This system allows you and all 'prepared' events to generate shadows while
#  on the field map.   The player can move around  a 'light source' event and
#  display a shadow.   Likewise,  events with a special comment  within their
#  event list can also generate shadows.
#
#------------------------------------------------------------------------------
#
# Instructions:
#
#  -- The Light Source
#     To create a light source, you need to create a map event that is to be
#     used 'as' the light source.   Most of the time,  these could be events
#     that sport 'torch' or 'lantern' charactersets.  Just examples :)
#
#     To make one of these events a light source,  you need  to insert a few
#     things into that event's  "List of Event Commands".   These things are
#     nothing more than comments. 
#
#     The first comment to add is "begin Shadow Source" (without quotes). It
#     informs the system  that this event is a light source.   The remaining
#     three values are optional and have default values in the configuration
#     section  (only just added  into the script).   They too  are added  as
#     comments.
#
#     anglemin 'number'     --- Starting position of a lightsource's arc.
#     anglemax 'number'     --- Ending position of a lightsource's arc.
#     distancemax 'number'  --- How far away from the 'source' you can go
#     self_opacity 'number' --- How dark the shadow will grow.
#
#     After that, your characters can now move about and generate shadows.
#
#  -- Other Events
#     Events do not know that they can generate shadows.   To let them gene-
#     rate a shadow,  all you need to do is add a special comment into their
#     "List of Event Commands".   This comment needed  is merely  the phrase
#     'begin Shadow' (again, without quotes).
#
#
#  -- Blocking Shadows
#     To prevent shadows  from passing through  solid objects such as doors,
#     walls, cabinets or other forms of furniture,  you will want to apply a
#     priority flag of '1' or higher on these items.  Normally, walls in the
#     default database do not have a priority flag as they merely block  the
#     player from passing through.
#     
#
#------------------------------------------------------------------------------
#
# Revisions to note:
#
#  1) Added formatted headers and comments throughout the script.
#  2) Encapsulated a comment/parameter code in an XPML module.
#  3) Set the shadow array into an instance value to lower resource costs.
#  4) Compatability with Near Fantastica's Squad Movement systems.
#  5) Compatability with Ccoa's Caterpillar system.
#  6) Compatability with Trickster's Caterpillar system.
#  7) Added default shadow settings into the configuration section.
#
#==============================================================================



   #========================================================================
   #  **  C  O  N  F  I  G  U  R  A  T  I  O  N      S  Y  S  T  E  M  **  #
   #========================================================================
    # Caterpillar Systems
    CATERPILLAR_COMPATIBLE      = true    # Toggle for Fukuyama's original 
    SQUAD_MOVE_COMPATIBLE       = false   # Toggle for Near Fantastica's SBABS
    CCOA_CATER_COMPATIBLE       = false   # Toggle for Ccoa's Caterpillar
    TRICKSTER_CATER_COMPATIBLE  = false   # Toggle for Trickster's Caterpillar
   
    # Shadow Specific Systems
    SHADOW_WARN                 = true    # Checks for older shadow system
    SHADOW_MIN                  = 0       # Start setting of shadow arc *
    SHADOW_MAX                  = 0       # Ending setting of shadow arc *
    SHADOW_OPACITY              = 150     # Darkness level of shadow
    SHADOW_DISTANCE             = 350     # Maximum range in pixels

    # * SHADOW ARC:  Set in degrees,  this controls whether a light source
    #                can 'force' shadows in certain directions.  Useful if
    #                a light source is hanging on a wall so it cannot make
    #                a shadow THROUGH a wall.
    #
    #                It may take some practice  to set  the desired angles
    #                as it recognizes 90°  being the  top most part  of an
    #                arc,  180° being the leftmost side and so on...  pro-
    #                ceeding in a counter-clockwise motion.
   
   #========================================================================
   #  ****   E N D   O F   C O N F I G U R A T I O N   S Y S T E M   ****  #
   #========================================================================
   
   

#==============================================================================
# ** Game_Temp
#------------------------------------------------------------------------------
#  This class handles temporary data that is not included with save data.
#  Refer to "$game_temp" for the instance of this class.
#==============================================================================

class Game_Temp
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :shadow_spriteset         # holds shadow spritesets
end



#==============================================================================
# ** Game_Party
#------------------------------------------------------------------------------
#  This class handles the party. It includes information on amount of gold
#  and items. Refer to "$game_party" for the instance of this class.
#==============================================================================

class Game_Party
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_reader :characters
end



#==============================================================================
# ** Sprite_Shadow
#------------------------------------------------------------------------------
#  This sprite is used to display the character's shadow.  It observes the
#  Game_Character class and automatically changes sprite conditions.
#==============================================================================
class Sprite_Shadow < RPG::Sprite
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :character
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     viewport  : viewport
  #     character : character (Game_Character)
  #     id        : id
  #--------------------------------------------------------------------------
  def initialize(viewport, character = nil, id = 0)
    super(viewport)
    params  = $game_temp.shadow_spriteset.shadows[id]
    @source = params[0]
    # Default settings
    @anglemin     = SHADOW_MIN
    @anglemax     = SHADOW_MAX
    @self_opacity = SHADOW_OPACITY
    @distancemax  = SHADOW_DISTANCE
    # Settings changed by parameters
    @anglemin     = params[1]   if params.size > 1
    @anglemax     = params[2]   if params.size > 2
    @distancemax  = params[3]   if params.size > 3
    @self_opacity = params[4]   if params.size > 4
    @character = character
    update
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # If shadow not in range of light source
    if !in_range?(@character, @source, @distancemax)
      self.opacity = 0
      return
    end
    super
    # If tile ID, file name, or hue are different from current ones
    if @tile_id != @character.tile_id or
       @character_name != @character.character_name or
       @character_hue != @character.character_hue
      # Remember tile ID, file name, and hue
      @tile_id = @character.tile_id
      @character_name = @character.character_name
      @character_hue = @character.character_hue
      # If tile ID value is valid
      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
      # If tile ID value is invalid       
      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
    # Set visible situation
    self.visible = (not @character.transparent)
    # If graphic is character
    if @tile_id == 0
      # Set rectangular transfer
      sx = @character.pattern * @cw
      sy = (@character.direction - 2) / 2 * @ch
      if self.angle > 90 or angle < -90
        sy = ( 4 - 2) / 2 * @ch   if @character.direction == 6
        sy = ( 6 - 2) / 2 * @ch   if @character.direction == 4
        sy = ( 8 - 2) / 2 * @ch   if @character.direction == 2
        sy = ( 2 - 2) / 2 * @ch   if @character.direction == 8
      end
      self.src_rect.set(sx, sy, @cw, @ch)
    end
    # Set sprite coordinates   
    self.x = @character.screen_x
    self.y = @character.screen_y-5
    self.z = @character.screen_z(@ch)-1
    # Set blend method and bush depth
    self.blend_type = @character.blend_type
    self.bush_depth = @character.bush_depth
    # Animation
    if @character.animation_id != 0
      animation = $data_animations[@character.animation_id]
      animation(animation, true)
      @character.animation_id = 0
    end
    @deltax       = @source.screen_x - self.x
    @deltay       = @source.screen_y - self.y
    self.color    = Color.new(0, 0, 0)
    @distance     = ((@deltax ** 2) + (@deltay ** 2))
    # Set opacity level based on light source distance
    self.opacity  = @self_opacity * 13000 /
                      ((@distance * 370 / @distancemax) + 6000)
    self.angle    = 57.3 * Math.atan2(@deltax, @deltay )
    @angle_trigo  = self.angle+90
    if @angle_trigo < 0
        @angle_trigo = 360 + @angle_trigo
     end
    if @anglemin != 0 or @anglemax != 0
       if (@angle_trigo < @anglemin or @angle_trigo > @anglemax) and
          @anglemin < @anglemax
         self.opacity = 0
         return
       end
       if (@angle_trigo < @anglemin and @angle_trigo > @anglemax) and
          @anglemin > @anglemax
         self.opacity=0
         return
       end     
     end
  end
  #--------------------------------------------------------------------------
  # * In Range?  (From Near's Anti Lag Script, edited)
  #     element     : element
  #     object      : object
  #     range       : range in tiles
  #--------------------------------------------------------------------------   
  def in_range?(element, object, range)
    x = (element.screen_x - object.screen_x) * (element.screen_x - object.screen_x)
    y = (element.screen_y - object.screen_y) * (element.screen_y - object.screen_y)
    r = x + y
    if r <= (range * range)
       return true
    else
      return false
    end
  end
end



#==============================================================================
# ** Sprite_Character
#------------------------------------------------------------------------------
#  This sprite is used to display the character.It observes the Game_Character
#  class and automatically changes sprite conditions.
#==============================================================================

class Sprite_Character < RPG::Sprite
  #--------------------------------------------------------------------------
  # * Alias Listings
  #--------------------------------------------------------------------------
  alias shadow_initialize initialize
  alias shadow_update update 
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     viewport  : viewport
  #     character : character (Game_Character)
  #--------------------------------------------------------------------------
  def initialize(viewport, character = nil)
    @character = character
    super(viewport)
    @ombrelist = []
    if character.is_a?(Game_Event) and $game_temp.shadow_spriteset.shadows != []
      params = XPML.XPML_read("Shadow", @character.id, 5)
      if params != nil
        for i in 0...$game_temp.shadow_spriteset.shadows.size
          @ombrelist.push(Sprite_Shadow.new(viewport, @character,i))
        end
      end
    end
    if character.is_a?(Game_Player) and $game_temp.shadow_spriteset.shadows != []
      for i in 0...$game_temp.shadow_spriteset.shadows.size
        @ombrelist.push(Sprite_Shadow.new(viewport, $game_player,i))
      end
      #===================================================
      # * Compatibility with Caterpillar Functions
      #===================================================
      if CATERPILLAR_COMPATIBLE and $game_party.characters != nil
        for member in $game_party.characters
          for i in 0...$game_temp.shadow_spriteset.shadows.size
            @ombrelist.push(Sprite_Shadow.new(viewport, member, i))
          end
        end
      end
      if SQUAD_MOVE_COMPATIBLE and $game_allies.values != nil
        for member in $game_allies.values
          for i in 0...$game_temp.shadow_spriteset.shadows.size
            @ombrelist.push(Sprite_Shadow.new(viewport, member, i))
          end
        end
      end
      if CCOA_CATER_COMPATIBLE and $game_train.actors != nil
        for member in $game_train.actors
          for i in 0...$game_temp.shadow_spriteset.shadows.size
            @ombrelist.push(Sprite_Shadow.new(viewport, member, i))
          end
        end
      end
      if TRICKSTER_CATER_COMPATIBLE and $game_party.followers != nil
        for member in $game_party.followers
          for i in 0...$game_temp.shadow_spriteset.shadows.size
            @ombrelist.push(Sprite_Shadow.new(viewport, member, i))
          end
        end
      end
      #===================================================
      # ** End of the compatibility
      #===================================================       
    end
    # Perform the original call
    shadow_initialize(viewport, @character)
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    shadow_update
    if @ombrelist != []
      for i in 0...@ombrelist.size
        @ombrelist[i].update
      end
    end
  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
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :id
end



#==============================================================================
# ** Spriteset_Map
#------------------------------------------------------------------------------
#  This class brings together map screen sprites, tilemaps, etc.
#  It's used within the Scene_Map class.
#==============================================================================

class Spriteset_Map
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #-------------------------------------------------------------------------- 
  attr_accessor :shadows
  #--------------------------------------------------------------------------
  # * Alias Listings
  #-------------------------------------------------------------------------- 
  alias shadow_initialize initialize
  #--------------------------------------------------------------------------
  # * Object Initialization
  #-------------------------------------------------------------------------- 
  def initialize
    $game_temp.shadow_spriteset = self
    @shadows = []
    warn = false
    for k in $game_map.events.keys.sort
      if ($game_map.events[k].list != nil and
            $game_map.events[k].list[0].code == 108 and
            ($game_map.events[k].list[0].parameters == ["s"] or
            $game_map.events[k].list[0].parameters == ["o"]))
        warn = true         
      end
      params = XPML.XPML_read("Shadow Source", k, 5)
      if params != nil
        $game_temp.shadow_spriteset.shadows.push([$game_map.events[k]] + params)
      end
    end
    if warn == true and SHADOW_WARN
      p "Warning : At least one event on this map uses an obsolete way to add shadows"
    end
    # Perform the original call
    shadow_initialize
  end 
end



#==============================================================================
# ** module XPML
#------------------------------------------------------------------------------
#  This module handles the reading and passing of 'comment' parameters
#
#  The main XPML method is used to check and read event comments.
#  * It returns 'nil' if the markup 'check' text isn't even present.
#  * It returns [] if no parameters are passed
#  * It returns a parameter list with "int" converted as int.
#       eg :
#       begin first
#       begin second
#       param1 1
#       param2 two
#       begin third
#       anything 3
#
#   p XPML_read("first", event_id) -> []
#   p XPML_read("second", event_id) -> [1,"two"]
#   p XPML_read("third", event_id) -> [3]
#   p XPML_read("forth", event_id) -> nil
#===================================================

module XPML
  module_function
  #--------------------------------------------------------------------------
  # * XPML_read
  #     markup           : text in event comment to check
  #     event_id         : event ID
  #     max_param_number : maximum number of parameter/comments to load
  #-------------------------------------------------------------------------- 
  def XPML_read(markup, event_id, max_param_number = 0)
    parameter_list = nil
    event = $game_map.events[event_id]
    return if event.list == nil
      for i in 0...event.list.size
        if event.list[i].code == 108 and
          event.list[i].parameters[0].downcase == "begin " + markup.downcase
          parameter_list = [] if parameter_list == nil
          for j in i + 1...event.list.size
            if event.list[j].code == 108
              parts = event.list[j].parameters[0].split
              if parts.size != 1 and parts[0].downcase != "begin"
                if parts[1].to_i != 0 or parts[1] == "0"
                  parameter_list.push(parts[1].to_i)
                else
                  parameter_list.push(parts[1])
                end
              else
                return parameter_list
              end
            else
              return parameter_list
            end
            if max_param_number != 0 and j == i + max_param_number
              return parameter_list
            end
          end
        end
      end
    return parameter_list
  end
end


Reszta instrukcji w demie.
:arrow: DEMO
________________________
http://www.poomoc.pl/
Kilka kliknięć a pomożesz innym!
Czy naprawdę to jest duża strata czasu?
W ten sposób pomożesz innym!

Pomagam bezinteresownie!
 
 
 
Sabikku 




Nagrody:
UF i UFT2 Winner

Ranga RM:
4 gry

Pomógł: 73 razy
Dołączył: 04 Kwi 2010
Posty: 428
Wysłany: Nie 02 Maj, 2010 11:39
Jak wrzucasz skrypt, staraj się umieszczać go między znacznikami [ code ]. Inaczej traci wszystkie tabulatory i (bardzo) traci na przejrzystości.

Fajny skrypt, ale przy większej liczbie zdarzeń niemiłosiernie tnie.
 
 
 
MomoMarcin3 




Preferowany:
RPG Maker XP

Pomógł: 2 razy
Dołączył: 20 Sty 2010
Posty: 109
Skąd: 11111
Wysłany: Czw 06 Maj, 2010 13:08
fajny skrypcik :mrgreen:
ale dawaj sreeny, bo nie każdy lubi dawać do gry na ciemno skryptów ;-)
________________________
Gra na ktrórej mi naprawde zależy:
http://www.ultimateam.pl/viewtopic.php?t=2723
 
 
Izaya 




Pomógł: 2 razy
Dołączył: 20 Mar 2010
Posty: 127
Skąd: z Netaa !
Wysłany: Pon 07 Cze, 2010 10:54
Nie działa.
________________________
Padł mi laptop ... wszystko, RPG Maker i projekty, wszystko się skończyło. Nie bawię się już w RPGM'a, Zmieniam wizerunek.

Nowa strona, szukam tłumaczy, edytorów, korektorów i HTMLowców ! :D

P.S.: Aga Organization rlz ! =>
 
 
 
Madara 




Preferowany:
RPG Maker XP

Dołączył: 19 Lut 2010
Posty: 4
Wysłany: Czw 22 Lip, 2010 07:23
Pomocy ! Chciałbym użyć tego skryptu lecz nie współgra on z Blizz ABS'em którego używam :(
Mam najnowszego Blizza stąd http://forum.chaos-projec...php?topic=106.0
Pomoże ktoś ? ;( Błąd wyskakuje:

Script Cień line 165: ArgumentError ocurred.
wrong number of arguments(2 for 1)

Lekko podrobiłem skrypt cieni ( usunąłem zielone linie, nawet z nimi nie działał, wiem że to instrukcja..)
Spoiler:


Kod:

    CATERPILLAR_COMPATIBLE      = false
    SQUAD_MOVE_COMPATIBLE       = false
    CCOA_CATER_COMPATIBLE       = false
    TRICKSTER_CATER_COMPATIBLE  = false
    SHADOW_WARN                 = true
    SHADOW_MIN                  = 0
    SHADOW_MAX                  = 0
    SHADOW_OPACITY              = 50
    SHADOW_DISTANCE             = 300
class Game_Temp
  attr_accessor :shadow_spriteset
end
class Game_Party
  attr_reader :characters
end
class Sprite_Shadow < RPG::Sprite
  attr_accessor :character
  def initialize(viewport, character = nil, id = 0)
    super(viewport)
    params  = $game_temp.shadow_spriteset.shadows[id]
    @source = params[0]
    @anglemin     = SHADOW_MIN
    @anglemax     = SHADOW_MAX
    @self_opacity = SHADOW_OPACITY
    @distancemax  = SHADOW_DISTANCE
    @anglemin     = params[1]   if params.size > 1
    @anglemax     = params[2]   if params.size > 2
    @distancemax  = params[3]   if params.size > 3
    @self_opacity = params[4]   if params.size > 4
    @character = character
    update
  end
  def update
    if !in_range?(@character, @source, @distancemax)
      self.opacity = 0
      return
    end
    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 self.angle > 90 or angle < -90
        sy = ( 4 - 2) / 2 * @ch   if @character.direction == 6
        sy = ( 6 - 2) / 2 * @ch   if @character.direction == 4
        sy = ( 8 - 2) / 2 * @ch   if @character.direction == 2
        sy = ( 2 - 2) / 2 * @ch   if @character.direction == 8
      end
      self.src_rect.set(sx, sy, @cw, @ch)
    end
    self.x = @character.screen_x
    self.y = @character.screen_y-5
    self.z = @character.screen_z(@ch)-1
    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
    @deltax       = @source.screen_x - self.x
    @deltay       = @source.screen_y - self.y
    self.color    = Color.new(0, 0, 0)
    @distance     = ((@deltax ** 2) + (@deltay ** 2))
    self.opacity  = @self_opacity * 13000 /
                      ((@distance * 370 / @distancemax) + 6000)
    self.angle    = 57.3 * Math.atan2(@deltax, @deltay )
    @angle_trigo  = self.angle+90
    if @angle_trigo < 0
        @angle_trigo = 360 + @angle_trigo
     end
    if @anglemin != 0 or @anglemax != 0
       if (@angle_trigo < @anglemin or @angle_trigo > @anglemax) and
          @anglemin < @anglemax
         self.opacity = 0
         return
       end
       if (@angle_trigo < @anglemin and @angle_trigo > @anglemax) and
          @anglemin > @anglemax
         self.opacity=0
         return
       end     
     end
  end
  def in_range?(element, object, range)
    x = (element.screen_x - object.screen_x) * (element.screen_x - object.screen_x)
    y = (element.screen_y - object.screen_y) * (element.screen_y - object.screen_y)
    r = x + y
    if r <= (range * range)
       return true
    else
      return false
    end
  end
end
class Sprite_Character < RPG::Sprite
  alias shadow_initialize initialize
  alias shadow_update update 
  def initialize(viewport, character = nil)
    @character = character
    super(viewport)
    @ombrelist = []
    if character.is_a?(Game_Event) and $game_temp.shadow_spriteset.shadows != []
      params = XPML.XPML_read("Shadow", @character.id, 5)
      if params != nil
        for i in 0...$game_temp.shadow_spriteset.shadows.size
          @ombrelist.push(Sprite_Shadow.new(viewport, @character,i))
        end
      end
    end
    if character.is_a?(Game_Player) and $game_temp.shadow_spriteset.shadows != []
      for i in 0...$game_temp.shadow_spriteset.shadows.size
        @ombrelist.push(Sprite_Shadow.new(viewport, $game_player,i))
      end
      if CATERPILLAR_COMPATIBLE and $game_party.characters != nil
        for member in $game_party.characters
          for i in 0...$game_temp.shadow_spriteset.shadows.size
            @ombrelist.push(Sprite_Shadow.new(viewport, member, i))
          end
        end
      end
      if SQUAD_MOVE_COMPATIBLE and $game_allies.values != nil
        for member in $game_allies.values
          for i in 0...$game_temp.shadow_spriteset.shadows.size
            @ombrelist.push(Sprite_Shadow.new(viewport, member, i))
          end
        end
      end
      if CCOA_CATER_COMPATIBLE and $game_train.actors != nil
        for member in $game_train.actors
          for i in 0...$game_temp.shadow_spriteset.shadows.size
            @ombrelist.push(Sprite_Shadow.new(viewport, member, i))
          end
        end
      end
      if TRICKSTER_CATER_COMPATIBLE and $game_party.followers != nil
        for member in $game_party.followers
          for i in 0...$game_temp.shadow_spriteset.shadows.size
            @ombrelist.push(Sprite_Shadow.new(viewport, member, i))
          end
        end
      end
    end
    shadow_initialize(viewport, @character)
  end
  def update
    shadow_update
    if @ombrelist != []
      for i in 0...@ombrelist.size
        @ombrelist[i].update
      end
    end
  end 
end
class Game_Event < Game_Character
  attr_accessor :id
end
class Spriteset_Map
  attr_accessor :shadows
  alias shadow_initialize initialize
  def initialize
    $game_temp.shadow_spriteset = self
    @shadows = []
    warn = false
    for k in $game_map.events.keys.sort
      if ($game_map.events[k].list != nil and
            $game_map.events[k].list[0].code == 108 and
            ($game_map.events[k].list[0].parameters == ["s"] or
            $game_map.events[k].list[0].parameters == ["o"]))
        warn = true         
      end
      params = XPML.XPML_read("Shadow Source", k, 5)
      if params != nil
        $game_temp.shadow_spriteset.shadows.push([$game_map.events[k]] + params)
      end
    end
    if warn == true and SHADOW_WARN
      p "Warning : At least one event on this map uses an obsolete way to add shadows"
    end
    shadow_initialize
  end 
end
module XPML
  module_function
 def XPML_read(markup, event_id, max_param_number = 0)
    parameter_list = nil
    event = $game_map.events[event_id]
    return if event.list == nil
      for i in 0...event.list.size
        if event.list[i].code == 108 and
          event.list[i].parameters[0].downcase == "begin " + markup.downcase
          parameter_list = [] if parameter_list == nil
          for j in i + 1...event.list.size
            if event.list[j].code == 108
              parts = event.list[j].parameters[0].split
              if parts.size != 1 and parts[0].downcase != "begin"
                if parts[1].to_i != 0 or parts[1] == "0"
                  parameter_list.push(parts[1].to_i)
                else
                  parameter_list.push(parts[1])
                end
              else
                return parameter_list
              end
            else
              return parameter_list
            end
            if max_param_number != 0 and j == i + max_param_number
              return parameter_list
            end
          end
        end
      end
    return parameter_list
  end
end

________________________
Co tam Gość ?
Ostatnio zmieniony przez Nhadala Czw 19 Sie, 2010 14:55, w całości zmieniany 1 raz  
 
 
januszgibas2 




Preferowany:
RPG Maker XP

Dołączył: 11 Gru 2010
Posty: 1
Skąd: Bielsko
Wysłany: Sro 22 Gru, 2010 09:57
Należy zrobić jeszcze zdjęcie gry jak wygląda gdy skorzysta się z tego skrypta, bo sam teraz muszę to sprawdzić samemu..
Myślę, że jednak dobry jest ten skrypt i nada się ludziom którzy z tego korzystają. :-)
 
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group | Template Klam by Ayene