RPGXP Script
2013.09.24 07:25

캐릭터 그림자

Views 1760 Votes 0 Comment 2
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
사용방법 :  이벤트를 만들고 ㅡ> 시작조건 결정버튼 -> 주석 -> sun -> 완료
NPC 에게 그림자를 줄 때 -> NPC 이벤트 클릭 -> 주석 -> o -> 완료
주의 : 맵처리 경량화 스크립트를 같이 병용하면 동작이 제대로 되지 않습니다.
자, 밑에 부터 복사해 가세요.
 
#==============================================================================
# ■ Sprite_Sun
# # Based on Sprite_Shadow, modified by Rataime
#==============================================================================
CATERPILLAR_COMPATIBLE = false
class Game_Party
  attr_reader :characters
end
class Sprite_Sun < RPG::Sprite
  attr_accessor :character           
 
  def initialize(viewport, character = nil, self_angle = 45,self_opacity = 128)
    super(viewport)
    @character = character
    @self_angle=self_angle
    @self_opacity=self_opacity
    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
     @direct=@character.direction
     
      if self.angle>90 or angle<-90
   
        if @direct== 6
               sy = ( 4- 2) / 2 * @ch
      end
      if @direct== 4
               sy = ( 6- 2) / 2 * @ch
        end
        if @direct != 4 and @direct !=6
        sy = (@character.direction - 2) / 2 * @ch
          end
        else
     sy = (@character.direction - 2) / 2 * @ch
     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
    self.angle = @self_angle-90
    self.color = Color.new(0, 0, 0)
    $game_map.sun==-1 ? self.opacity = 0: self.opacity = @self_opacity
  end
end
#===================================================
# ▼ CLASS Sprite_Character edit
#===================================================
class Sprite_Character < RPG::Sprite
  alias sun_initialize initialize
  
  def initialize(viewport, character = nil)
    @character = character
    super(viewport)
    @sunlist=[]
    if (character.is_a?(Game_Event) and character.list!=nil and character.list[0].code == 108 and character.list[0].parameters == ["sun"])
      if (character.list[1]!=nil and character.list[1].code == 108)
        @self_angle=character.list[1].parameters[0]
      else
        @self_angle=45
      end
      if (character.list[2]!=nil and character.list[2].code == 108)
        @self_opacity=character.list[2].parameters[0]
      else
        @self_opacity=128
      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"])
        @sunlist[i+1] = Sprite_Sun.new(viewport, $game_map.events[i],@self_angle,@self_opacity)
      end
     end
     @sunlist[1] = Sprite_Sun.new(viewport, $game_player,@self_angle,@self_opacity)
   
#===================================================
# ● Compatibility with fukuyama's caterpillar script
#===================================================
if CATERPILLAR_COMPATIBLE and $game_party.characters!=nil
  for member in $game_party.characters
    @sunlist.push(Sprite_Sun.new(viewport, member,@self_angle,@self_opacity))
  end
end
#===================================================
# ● End of the compatibility
#===================================================

    end
    sun_initialize(viewport, @character)
  end
  
  alias sun_update update
  
  def update
    sun_update
    if @sunlist!=[]
      for i in 1..@sunlist.size
        if @sunlist[i]!=nil
          @sunlist[i].update
        end
      end
    end
  end  
  
end
#===================================================
# ▼ CLASS Scene_Save edit
#===================================================
class Scene_Save < Scene_File
  
  alias sun_write_save_data write_save_data
  
  def write_save_data(file)
    $game_map.sun = nil
    sun_write_save_data(file)
  end
end
#===================================================
# ▼ CLASS Game_Map edit
#===================================================
class Game_Map
  attr_accessor :sun
end

출처: 아방스
?

List of Articles
No. Category Subject Author Date Views Votes
160 RPGXP Script 한글조합입력기(영어가능) file 조규진1 2019.11.10 1199 0
159 RPGXP Script RPG XP Xas액알 1 file 심심치 2018.10.30 1323 0
158 RPGXP Script Font Setup file 운님 2016.07.22 1777 0
157 RPGXP Script 대화에 얼굴이 나오는 스크립트 by: killarot(네이버 dust_mite)(수정버전) 1 부초 2016.02.22 2182 0
156 RPGXP Script RPGXP ATB전투 시스템 예제(스크립트는 예제 안에 포함) 3 MagNesium 2015.11.17 1018 0
155 RPGXP Script 스테이터스,보수,골드,플레임 타임 삭제 rpgmakingbot 2015.06.02 994 0
154 RPGXP Script 헤드 업 디스플레이 스크립트 3  운 2015.01.30 1098 0
153 RPGXP Script 컬러 비트맵 타이틀 스크립트 3  운 2015.01.20 1053 1
152 RPGXP Script 로고 스크립트 1  운 2014.12.10 1397 1
151 RPGXP Script 타이틀 로딩 스크립트  운 2014.12.07 1302 0
150 RPGXP Script 타이틀 스크립트 3  운 2014.12.05 1262 0
149 RPGXP Script 액알 스크립트 4 커비♥ 2014.11.23 1660 1
148 RPGXP Script 공포게임에 장비착용메뉴 3  운 2014.08.24 1675 0
147 RPGXP Script 얼굴표시/문장을 한글자씩 나타내주는 스크립트 (출처-히페리온) 4 시르카 2014.06.22 1417 0
146 RPGXP Script 횡스크롤 점프 [버튼허용스위치추가] 3  운 2014.06.01 1856 0
145 RPGXP Script 말풍선 메세지 스크립트 2 천둥번들 2014.02.24 2046 0
144 RPGXP Script 스텟찍기스크립트 12 천둥번들 2014.02.22 2065 3
143 RPGXP Script 달리기스크립트 4 천둥번들 2014.02.22 2519 2
142 RPGXP Script 8방향 이동스크립트 5 천둥번들 2014.02.22 1974 6
141 RPGXP Script AraLab_MultiStartingPoint (다중 출발점 스크립트, 캐릭터 선택 스크립트) ver.0.2beta 3  운 2014.01.21 2201 1
Board Pagination Prev 1 2 3 4 5 6 7 8 Next
/ 8


[privacy statements] | [Terms of Use] | [Contact us] | [Sponsorship] | [Indiside History]

Copyright © 1999 - 2016 INdiSide.com/CL3D Co., Ltd. All Rights Reserved.
Owner : Chunmu(Jiseon Lee) | kernys(Wonbae Kim) | Sasinji(Byungkook Kim)