메뉴 건너뛰기

창조도시 기록보관소

extra_vars1 JmsPlDnl 
extra_vars2 RPGXP 
extra_vars3 맵관련 
extra_vars4
extra_vars5 117259 
extra_vars6 1196325364 
extra_vars7
extra_vars8  
extra_vars9  
extra_vars10  
extra_vars11  
extra_vars12  


스크립트 Main 에서 오른쪽 클릭 새로운 섹션을 만듭니다.


이름은 아무거나 정하시고.


아래 내용을 붙여넣습니다.


 


 


#==============================================================================
# ■ Sprite_Reflection
# Based on Sprite_Mirror, Modified By: JmsPlDnl, rewritten entirely by Rataime
#==============================================================================
CATERPILLAR_COMPATIBLE = true


class Game_Party
 attr_reader :characters
end


class Sprite_Reflection < RPG::Sprite


attr_accessor :character


def initialize(viewport=nil, character=nil,self_angle = 180)
  super(viewport)
  @character = character
  @self_angle=self_angle
  self.opacity=0
  @reflected=false
  @former=false
  @moving=false
  if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128+1)==7
    @reflected=true
    @former=true
  end
  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 @character.direction== 6
          sy = ( 4- 2) / 2 * @ch
    end
    if @character.direction== 4
          sy = ( 6- 2) / 2 * @ch
   end
   if @character.direction != 4 and @character.direction != 6
         sy = (@character.direction - 2) / 2 * @ch
   end
  end
 
  self.x = @character.screen_x
  self.y = @character.screen_y-5
  @moving=!(@character.real_x%128==0 and @character.real_y%128==0)
  @d=@character.direction
  @rect=[sx, sy, @cw, @ch]
  if !(@moving)
    if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128+1)==7
      @reflected=true
      @former=true
    else
      @reflected=false 
      @former=false
    end
   
  else
      case @d
     
      when 2
      if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128+2)==7
        @reflected=true
        if @former==false
          @offset = (@character.screen_y%32)*@ch/32
          @rect=[sx, sy, @cw, @offset]
         
self.y=@character.screen_y-5
        end
      else
        @reflected=false 
      end
     
      when 4
      if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128+1)!=7
        @offset = ((@character.screen_x-@cw/2)%32)*@cw/32
        @rect=[sx, sy, @offset, @ch]
       
self.x=@character.screen_x
      else
        @reflected=true
        if @former==false
          @offset = ((@character.screen_x-@cw/2)%32)*@cw/32
          @rect=[sx+@offset, sy, @cw-@offset, @ch]
         
self.x=@character.screen_x-@offset
        end
      end
     
      when 6
      if $game_map.terrain_tag(@character.real_x/128+1,@character.real_y/128+1)!=7
        @offset = ((@character.screen_x-@cw/2)%32)*@cw/32
        @rect=[sx+@offset, sy, @cw-@offset, @ch]
       
self.x=@character.screen_x-@offset
      else
        @reflected=true
        if @former==false
          @offset = ((@character.screen_x-@cw/2)%32)*@cw/32
          @rect=[sx, sy, @offset, @ch]
         
self.x=@character.screen_x
        end
      end
     
      when 8
      if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128+2)==7
        @reflected=true
        if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128+1)!=7
          @offset = (@character.screen_y%32)*@ch/32
          @rect=[sx, sy, @cw, @offset]
         
self.y=@character.screen_y-5
        end
      else
        @reflected=false 
      end
     
      end


  end
  if @reflected
    self.opacity=128
  else
   @rect=[sx, sy, @cw, @ch]
   self.opacity=0
  end
 
  if $game_map.terrain_tag((@character.real_x+64)/128,@character.real_y/128+2)!=7
    if $game_map.terrain_tag((@character.real_x+64)/128,@character.real_y/128+2)!=7
      @rect[1]= @rect[1]+@ch/2
      @rect[3]= @rect[3]/2
      self.y = self.y - @ch/2
    else
      @reflected=false
    end
  end
   
  self.src_rect.set(@rect[0],@rect[1],@rect[2],@rect[3])
 
  @character.is_a?(Game_Player) ? self.z = 9 : self.z = 5
  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
end
end


#===================================================
# ▼ CLASS Sprite_Character edit
#===================================================


class Sprite_Character < RPG::Sprite
 alias reflect_initialize initialize
 
 def initialize(viewport, character = nil)
   @character = character
   @reflection = []
   super(viewport)
   if (character.is_a?(Game_Event) and character.list!=nil and character.list[0].code == 108 and character.list[0].parameters == ["r"])
    @reflection.push(Sprite_Reflection.new(viewport,@character))
   end
   if (character.is_a?(Game_Event) and character.list!=nil and character.list[0].code == 108 and character.list[0].parameters == ["hero_r"])
    @reflection.push(Sprite_Reflection.new(viewport,$game_player))
#===================================================
# ● Compatibility with fukuyama's caterpillar script-x
#===================================================
if CATERPILLAR_COMPATIBLE and $game_party.characters!=nil


 for member in $game_party.characters
   @reflection.push(Sprite_Reflection.new(viewport,member))
 end


end
#===================================================
# ● End of the compatibility
#===================================================
   end
   reflect_initialize(viewport, @character)
 end
 
 alias reflect_update update
 
 def update
  reflect_update
  if @reflection!=nil
    for reflect in @reflection
      reflect.update
    end
  end
 end
 
end


 


 


이후 데이타베이스 > 타일 세트 > 지형 태그 > 원하는 오토타일의 번호를 7번으로 설정.


 


그리고 이벤트를 하나 만드신후..


시작조건 > 병렬처리 > 삽입 > 주석 > hero_r > 끝



번호 제목 글쓴이 날짜 조회 수
» 물가에가면 캐릭터를 반사시켜주는 스크립트 [11] file 창조도시 2007.11.05 3649
49 대화창에 이름&얼굴 띄우기 새로운방식. [2] file 창조도시 2007.11.05 2377
48 대화창에 이름&얼굴 띄우기 새로운방식. file 창조도시 2007.11.05 1536
47 새로운 게임 시작/로드 시 미묘한 연출 추가. 창조도시 2007.11.05 1332
46 vx 한글이름입력 [1] file 가가상 2008.03.03 1111
45 대화창에 얼굴 띄우기& 대화창 명령어 모음. [2] file 창조도시 2007.11.05 1110
44 맵 이름을 화면 상단에 띄우기. [1] file 창조도시 2007.11.05 1107
43 최초 시작화면에 제작자 정보를 띄워보자. [7] 창조도시 2007.11.05 1060
42 창고 시스템 [3] 창조도시 2007.11.05 1040
41 아이템창을 아이템 분류별로 나누어 지게 개조. [5] file 창조도시 2007.11.05 1026
40 액터선택지이벤트제작 간편화 스크립트 [1] Evangelista 2009.01.14 1024
39 이벤트커맨드 스크립트 관련 설명 [3] Evangelista 2009.01.27 1000
38 에너미 아이템 변화 스크립트 [1] Evangelista 2009.05.27 955
37 이벤트커맨드 스크립트 사용법 모음 [2] Evangelista 2009.01.27 937
36 이벤트커맨드 스크립트 관련 설명 Evangelista 2009.01.27 893
35 한글이름입력기 v1.76 창조도시 2007.11.05 873
34 창고 시스템 창조도시 2007.11.05 859
33 그림자문자 사용하기.. 바탕색이 무슨색이건 상관없이 글자가 잘보인다!!! 창조도시 2007.11.05 812
32 대각선 방향 이동추가로 8방향 이동 만들기. [1] 창조도시 2007.11.05 787
31 기차 파티 스크립트 [2] 창조도시 2007.11.05 781