RPGXP スクリプト
2007.12.02 07:20

물가에가면 캐릭터를 반사시켜주는 스크립트

閲覧数 4490 推奨数 6 コメント 4
Atachment
添付 '1'
?

Shortcut

Prev前へ 書き込み

Next次へ 書き込み

Larger Font Smaller Font 上へ 下へ Go comment 印刷
?

Shortcut

Prev前へ 書き込み

Next次へ 書き込み

Larger Font Smaller Font 上へ 下へ Go comment 印刷
acoc_2_1194197981_01.jpg

스크립트 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 > 끝



?

List of Articles
番号 カテゴリ タイトル 投稿者 日付 閲覧数 推奨数
20 RPGXP スクリプト 직업명 표시 file A.M.S 2010.10.24 1787 0
19 RPGXP スクリプト 부드러운화면이동 file A.M.S 2010.10.24 2046 0
18 RPGXP スクリプト 상점에서 상세정보보여주기 file A.M.S 2010.10.24 1818 0
17 RPGXP スクリプト 파티 선두 캐릭터 id 변수에 넣기 Evangelista 2008.01.08 1380 1
» RPGXP スクリプト 물가에가면 캐릭터를 반사시켜주는 스크립트 4 file 창조도시 2007.12.02 4490 6
15 RPGXP スクリプト 창고 시스템 2 창조도시 2008.01.18 1737 3
14 RPGXP スクリプト 한글이름입력기 v1.76 1 1 창조도시 2008.07.24 2698 2
13 RPGXP スクリプト 기차 파티 스크립트 2 창조도시 2008.07.24 1466 2
12 RPGXP スクリプト 그림자문자 사용하기.. 바탕색이 무슨색이건 상관없이 글자가 잘보인다!!! 창조도시 2007.11.06 1475 1
11 RPGXP スクリプト 대화창에 이름&얼굴 띄우기 새로운방식. file 창조도시 2007.11.06 3476 3
10 RPGXP スクリプト 게임도중에 글씨체를 바꿔보자. 창조도시 2008.12.31 1266 1
9 RPGXP スクリプト 대화창에 얼굴 띄우기& 대화창 명령어 모음. 1 file 창조도시 2008.12.31 2083 1
8 RPGXP スクリプト c[n] 명령어 줄때의 색상 결정. 창조도시 2008.02.14 1015 1
7 RPGXP スクリプト 아이템창을 아이템 분류별로 나누어 지게 개조. 3 file 창조도시 2007.12.02 1641 1
6 RPGXP スクリプト 선택 메뉴를 가운데 정렬 해보자. 1 file 창조도시 2007.12.02 1449 2
5 RPGXP スクリプト 최초 시작화면에 제작자 정보를 띄워보자. 6 창조도시 2008.04.04 1961 5
4 RPGXP スクリプト 맵 이름을 화면 상단에 띄우기. 1 1 file 창조도시 2008.10.12 2083 1
3 RPGXP スクリプト 대각선 방향 이동추가로 8방향 이동 만들기. 1 창조도시 2008.08.14 2204 1
2 RPGXP スクリプト 대화 글씨 폰트를 원하는 폰트로 바꾸기 창조도시 2007.12.01 1391 2
1 RPGXP スクリプト 새로운 게임 시작/로드 시 미묘한 연출 추가. 창조도시 2007.12.01 2293 1
Board Pagination Prev 1 ... 3 4 5 6 7 8 Next
/ 8






[プライバシーに関する声明] | [利用規約] | [お問い合わせ] | [スポンサーシップ] | [ンサイド・ヒストリー]

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