RPGXP 스크립트
2013.09.24 07:25

캐릭터 그림자

조회 수 1546 추천 수 0 댓글 2
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
사용방법 :  이벤트를 만들고 ㅡ> 시작조건 결정버튼 -> 주석 -> 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

출처: 아방스
?

  1. 캐릭터 그림자

    Date2013.09.24 CategoryRPGXP 스크립트 By청담 Views1546 Votes0
    Read More
  2. 촬영 기술(부드러운 맵스크롤)

    Date2013.09.24 CategoryRPGXP 스크립트 By청담 Views1650 Votes0
    Read More
  3. game testplay 테스트중 게임속도 상승 스크립트

    Date2013.09.24 CategoryRPGXP 스크립트 By부초 Views785 Votes0
    Read More
  4. [아힝흥행]레벨한계 돌파 스크립트

    Date2013.09.24 CategoryRPGXP 스크립트 By아힝흥행 Views1096 Votes0
    Read More
  5. 미니맵 스크립트

    Date2013.09.20 CategoryRPGXP 스크립트 By청담 Views1873 Votes0
    Read More
  6. 맵 이름 표시 스크립트

    Date2013.09.20 CategoryRPGXP 스크립트 By청담 Views1438 Votes0
    Read More
  7. 모든 글자에 외곽선 넣는 스크립트

    Date2013.09.20 CategoryRPGXP 스크립트 By청담 Views1183 Votes0
    Read More
  8. 게임프레임 조절

    Date2013.09.20 CategoryRPGXP 스크립트 By청담 Views1802 Votes0
    Read More
  9. Wave Filter

    Date2016.01.14 CategoryRPGMV 플러그인 By러닝은빛 Views961 Votes0
    Read More
  10. 전투 도중 멤버교체가 가능해지는 플러그인

    Date2016.01.13 CategoryRPGMV 플러그인 ByWailer Views1298 Votes0
    Read More
  11. Multiple HUD

    Date2016.01.12 CategoryRPGMV 플러그인 By러닝은빛 Views2845 Votes1
    Read More
  12. Custom Icon Sheets (커스텀 아이콘 적용 스크립트)

    Date2016.01.10 CategoryRPGVX Ace 스크립트 Byplam Views470 Votes0
    Read More
  13. Damage Popup by Dargor (데미지 수치 팝업하는 스크립트)

    Date2016.01.10 CategoryRPGVX Ace 스크립트 Byplam Views612 Votes0
    Read More
  14. Crafting System (아이템 조합 시스템)

    Date2016.01.06 CategoryRPGMV 플러그인 Byplam Views1709 Votes0
    Read More
  15. Icon Inventory and Details Window (인벤토리 아이템을 아이콘으로 보이게)

    Date2016.01.06 CategoryRPGMV 플러그인 Byplam Views903 Votes0
    Read More
  16. Advanced Game Time (게임에 시간개념을 적용해주는 플러그인)

    Date2016.01.06 CategoryRPGMV 플러그인 Byplam Views1398 Votes0
    Read More
  17. MBS - Map Zoom plugin (맵을 확대,축소해주는 플러그인)

    Date2016.01.06 CategoryRPGMV 플러그인 ByHT9MAN Views896 Votes0
    Read More
  18. Action Sequence Pack 2 (전투모드 액션 플러그인)

    Date2016.01.05 CategoryRPGMV 플러그인 Byplam Views1821 Votes0
    Read More
  19. [C#] 보안 64비트 정수

    Date2016.01.04 Category유니티 스크립트 By맛난호빵 Views382 Votes0
    Read More
  20. Weather EX 날씨 확장 플러그인입니다.

    Date2016.01.03 CategoryRPGMV 플러그인 ByBeeBee Views1108 Votes0
    Read More
Board Pagination Prev 1 ... 3 4 5 6 7 8 9 10 11 12 ... 15 Next
/ 15






[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)