LOGIN
SEARCH
PROFILE
keys: ↑ ↓
LOGOUT
INDEX
MEMBERS
keys: ↑ ↓
HOME
PORTAL
PLAY ALONG
PLAY with WORDS
PLAY with GRAPHICS
PLAY with SOUNDS
PLAY with CODES
PLAY with PROJECTS
keys: ← →
Guest Access
Register:
Members:



View previous topic View next topic Go down Message [Page 1 of 1]

Active Member
Active Member
#1 default Shadow Script
Loading

Mw360

Mw360
Active Member
Active Member
Active Member
profile
Just found this one on youtube, and it looks pretty sweet. Adds character shadows when your by a light source. Just wanted to share if anyone didn't know about this.
[You must be registered and logged in to see this link.]

Spoiler:
Code:
#==============================================================================
# ¡ Sprite_Shadow (Sprite_Ombre )
# Based on Genzai Kawakami's shadows, dynamisme&features by Rataime, extra features Boushy
#==============================================================================
# just type "S" in a comment on the event's page to be the light source
CATERPILLAR_COMPATIBLE = true

class Game_Party
 attr_reader :characters
end

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
    sy = (@character.direction - 2) / 2 * @ch
    if self.angle>90 or angle<-90
      if @character.direction== 6
              sy = ( 4- 2) / 2 * @ch
      end
      if @character.direction== 4
              sy = ( 6- 2) / 2 * @ch
      end
      if @character.direction== 2
              sy = ( 8- 2) / 2 * @ch
      end
      if @character.direction== 8
              sy = ( 2- 2) / 2 * @ch
      end
    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.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
  @deltax=@source.x-self.x
  @deltay= @source.y-self.y
  self.angle = 57.3*Math.atan2(@deltax, @deltay )
  @angle_trigo=self.angle+90
  if @angle_trigo<0
    @angle_trigo=360+@angle_trigo
  end
  self.color = Color.new(0, 0, 0)
  @distance = ((@deltax ** 2) + (@deltay ** 2))
  if$game_map.shadows==-1
    self.opacity = 0
  else
    self.opacity = 1200000/(@distance+6000) 
  end
  @distance = @distance ** 0.5
  if @distancemax !=0 and @distance>=@distancemax
    self.opacity=0
  end
  if @anglemin !=0 or @anglemax !=0
      if (@angle_trigo<@anglemin or @angle_trigo>@anglemax) and @anglemin<@anglemax
        self.opacity=0
      end
      if (@angle_trigo<@anglemin and @angle_trigo>@anglemax) and @anglemin>@anglemax
        self.opacity=0
      end   
  end
 end
end

#===================================================
# ¥ CLASS Sprite_Character edit
#===================================================

class Sprite_Character < RPG::Sprite
 alias shadow_initialize initialize
 
 def initialize(viewport, character = nil)
  @character = character
  super(viewport)
  @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[i].is_a?(Game_Event) and $game_map.events[i].list!=nil and $game_map.events[i].list[0].code == 108 and $game_map.events[i].list[0].parameters == ["o"])
      @ombrelist[i+1] = Sprite_Shadow.new(viewport, $game_map.events[i],self,@anglemin,@anglemax,@distancemax)
    end
    end
    @ombrelist[1] = Sprite_Shadow.new(viewport, $game_player,self,@anglemin,@anglemax,@distancemax)
#===================================================
# œ Compatibility with fukuyama's caterpillar script
#===================================================
if CATERPILLAR_COMPATIBLE and $game_party.characters!=nil

 for member in $game_party.characters
  @ombrelist.push(Sprite_Shadow.new(viewport, member,self,@anglemin,@anglemax,@distancemax))
 end

end
#===================================================
# œ End of the compatibility
#===================================================
  end
  shadow_initialize(viewport, @character)
 end
 
 alias shadow_update update
 
 def update
  shadow_update
  if @ombrelist!=[]
    for i in [You must be registered and logged in to see this link.]
      if @ombrelist[i]!=nil
        @ombrelist[i].update
      end
    end
  end
 end
 
end

#===================================================
# ¥ CLASS Scene_Save edit
#===================================================
class Scene_Save < Scene_File
 
 alias shadows_write_save_data write_save_data
 
 def write_save_data(file)
  $game_map.shadows = nil
  shadows_write_save_data(file)
 end
end

#===================================================
# ¥ CLASS Game_Map edit
#===================================================
class Game_Map
 attr_accessor :shadows
end
Active Member
Show Signature
Active Member
http://www.mw360design.host56.com
WERDZ
WERDZ
#2 default Re: Shadow Script
Loading

KenizzyNY

avatar
WERDZ
WERDZ
WERDZ
profile
I like it Very Happy

Great find
WERDZ
https://facebook.com/kilduzza
Administrator
Administrator
#3 default Re: Shadow Script
Loading

G@MeF@Ce

G@MeF@Ce
Administrator
Administrator
Administrator
profile
@Mw360 - thanks for sharing!

Rataime made some cool scripts that are simple to use and adds to the look.
I think I have the ones he made for reflection on water and the other for mirrors ^,^

(added the script in a spoiler)
Administrator
Show Signature
Administrator
https://www.dropbox.com/sh/i47rig99qhrvn8s/4m5HvsM2fD http://g4m3f4c3.deviantart.com https://www.facebook.com//pages/Gameface101/332331300127008 https://twitter.com//mr_gameface101 https://soundcloud.com/schurr https://www.youtube.com/user/MrGameface101?feature=watch
C.O.R.N.
C.O.R.N.
#4 default Re: Shadow Script
Loading

BluE

BluE
C.O.R.N.
C.O.R.N.
C.O.R.N.
profile
c-c-c-c-cooool
C:
C.O.R.N.
Show Signature


Want a real challenge? Try [You must be registered and logged in to see this link.]

If you read this message, please PM me. this is a test. And I'm serious, this isnt just some lousy time wasting paragraph that I wrote just to fill in my signature. It's here for a reason. PM ME.
C.O.R.N.
http://51s-seedy-masteroogway.blogspot.com

Sponsored content

profile

View previous topic View next topic Back to top Message [Page 1 of 1]

 

Chatbox system disabled
Personal messaging disabled