CaistsaRpg
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

[SCRIPT] Correr e ir en 8 direcciones.

2 participantes

Ir abajo

[SCRIPT] Correr e ir en 8 direcciones. Empty [SCRIPT] Correr e ir en 8 direcciones.

Mensaje  PepDracko Lun Mar 10, 2008 9:01 pm

Hola!! pues dejo este script para si alguien lo necesita.

Código:

#==============================================================================
# ++ グラフィック変更8方向移動 ver. 1.01 ++
#  Script by パラ犬
#  http://para.j-mx.com/
#------------------------------------------------------------------------------# 上下キーと左右キーを同時押しすることにより斜め移動を可能にし、
# 「Graphics/Characters」フォルダに
# 「(先頭キャラクター名)+_quarter」という名前のファイルがある場合
# 斜め移動時のグラフィックとして使用します。(例:001-Fighter01_quarter)
#------------------------------------------------------------------------------
#[設置上の注意]
# 「グラフィック変更ダッシュ」と併用する場合、このスクリプトを
# ダッシュスクリプトよりも下に置いてください。
# 斜め方向ダッシュの画像ファイル名は「(先頭キャラクター名)+_dash_quarter」に
# なります。
#==============================================================================

#==============================================================================
# ■ Game_Player
#==============================================================================
#==============================================================================
# ++ ???????????? ver. 1.11 ++
#  Script by ???
#  http://rpg.para.s3p.net/
#------------------------------------------------------------------------------
# ?Graphics/Characters??????
# ?(???????????????)+_dash????????????????
# ?????????????????????(?:001-Fighter01_dash)
#==============================================================================

class Game_Player < Game_Character

SPEED_DASH = 5 # ??????????
SPEED_NORMAL = 4 # ???????

# ??????????(??????Input::(???))
#(????????????????????????)
KEY_DASH = Input::A

# "_dash"??????????????????????( true:?? / false:??? )
NO_FILE_DASH = true

# ??????????????ID
# (????????????????????????????ON???????
# ??????????????)
NO_DASH_SWITCH = 999

end

#==============================================================================
# ¦ Game_Player
#==============================================================================

class Game_Player < Game_Character

#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
alias dash_update update
def update
# ?????????????????????
# ???????????????????????
unless moving? or $game_system.map_interpreter.running? or
@move_route_forcing or $game_temp.message_window_showing
if !($game_switches[NO_DASH_SWITCH])
# ????
if Input.press?(KEY_DASH)
if (dash_graphic_exist?($game_party.actors[0]) or NO_FILE_DASH)
# ??????????????
if @move_speed != SPEED_DASH
@move_speed = SPEED_DASH
@dash_on = true
$game_player.refresh
end
end
elsif @dash_on == nil or @dash_on
@move_speed = SPEED_NORMAL
@dash_on = nil
$game_player.refresh
end
end
end
dash_update
end
#--------------------------------------------------------------------------
# ? ??????????????????
#--------------------------------------------------------------------------
def dash_graphic_exist?(actor)
# ???????
begin
RPG::Cache.character(actor.character_name.to_s + "_dash", actor.character_hue)
rescue
return false
end
return true
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
alias dash_refresh refresh
def refresh
dash_refresh
# ??????? 0 ??????
if $game_party.actors.size != 0
actor = $game_party.actors[0]
# ??????????????????
if @dash_on and dash_graphic_exist?(actor)
fileplus = "_dash"
else
fileplus = ""
end
@character_name = actor.character_name + fileplus
@character_hue = actor.character_hue
end
end
end
class Game_Player < Game_Character
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  alias update_para_quarter update
  def update
    update_para_quarter
    unless moving? or $game_system.map_interpreter.running? or
          @move_route_forcing or $game_temp.message_window_showing
      # 方向ボタンが押されていれば、その方向へプレイヤーを移動
      case Input.dir8
      when 1  # 左下に移動
        move_lower_left
      when 3  # 右下に移動
        move_lower_right
      when 7  # 左上に移動
        move_upper_left
      when 9  # 右上に移動
        move_upper_right
      end
    end
  end
end

#==============================================================================
# ■ Sprite_Character
#==============================================================================

class Sprite_Character < RPG::Sprite
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  alias update_para_quarter update
  def update
    update_para_quarter
    if @tile_id == 0
      if (@character.direction - 2) % 2 == 1
        # 斜め画像の有無をチェック
        if quarter_graphic_exist?(@character)
          # 斜め画像をセット
          if character.dash_on and dash_quarter_graphic_exist?(@character)
            @character_name = @character.character_name + "_dash_quarter"
          else
            @character_name = @character.character_name + "_quarter"
          end
          self.bitmap = RPG::Cache.character(@character_name,
            @character.character_hue)
          # 向きを取得
          case @character.direction
            when 1
              n = 0
            when 3
              n = 2
            when 7
              n = 1
            when 9
              n = 3
          end
        else
          @character.direction = @character.sub_direction
          # 斜め画像が存在しないときの向き
          n = (@character.direction - 2) / 2
        end
        # 転送元の矩形を設定
        sx = @character.pattern * @cw
        sy = n * @ch
        self.src_rect.set(sx, sy, @cw, @ch)
      else
        self.bitmap = RPG::Cache.character(@character.character_name,
          @character.character_hue)
        # 転送元の矩形を設定
        sx = @character.pattern * @cw
        sy = (@character.direction - 2) / 2 * @ch
        self.src_rect.set(sx, sy, @cw, @ch)
      end
    end
  end
  #--------------------------------------------------------------------------
  # ○ 斜め画像の有無をチェック
  #--------------------------------------------------------------------------
  def quarter_graphic_exist?(character)
    # 読み込みテスト
    begin
      RPG::Cache.character(character.character_name.to_s + "_quarter", character.character_hue)
    rescue
      return false
    end
    return true
  end
  #--------------------------------------------------------------------------
  # ○ 斜めダッシュ画像の有無をチェック
  #--------------------------------------------------------------------------
  def dash_quarter_graphic_exist?(character)
    # 読み込みテスト
    begin
      RPG::Cache.character(character.character_name.to_s + "_dash_quarter", character.character_hue)
    rescue
      return false
    end
    return true
  end
end

#==============================================================================
# ■ Game_Character
#==============================================================================

class Game_Character
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_accessor  :direction        # 向き
  attr_accessor  :sub_direction    # 斜め画像が存在しないときの向き
  #--------------------------------------------------------------------------
  # ● 左下に移動
  #--------------------------------------------------------------------------
  def move_lower_left
    # 向き固定でない場合
    unless @direction_fix
      @sub_direction = @direction
      @direction = 1
      # 右向きだった場合は左を、上向きだった場合は下を向く
      @sub_direction = (@sub_direction == 6 ? 4 : @sub_direction == 8 ? 2 : @sub_direction)
    end
    # 下→左、左→下 のどちらかのコースが通行可能な場合
    if (passable?(@x, @y, 2) and passable?(@x, @y + 1, 4)) or
      (passable?(@x, @y, 4) and passable?(@x - 1, @y, 2))
      # 座標を更新
      @x -= 1
      @y += 1
      # 歩数増加
      increase_steps
    end
  end
  #--------------------------------------------------------------------------
  # ● 右下に移動
  #--------------------------------------------------------------------------
  def move_lower_right
    # 向き固定でない場合
    unless @direction_fix
      @sub_direction = @direction
      @direction = 3
      # 左向きだった場合は右を、上向きだった場合は下を向く
      @sub_direction = (@sub_direction == 4 ? 6 : @sub_direction == 8 ? 2 : @sub_direction)
    end
    # 下→右、右→下 のどちらかのコースが通行可能な場合
    if (passable?(@x, @y, 2) and passable?(@x, @y + 1, 6)) or
      (passable?(@x, @y, 6) and passable?(@x + 1, @y, 2))
      # 座標を更新
      @x += 1
      @y += 1
      # 歩数増加
      increase_steps
    end
  end
  #--------------------------------------------------------------------------
  # ● 左上に移動
  #--------------------------------------------------------------------------
  def move_upper_left
    # 向き固定でない場合
    unless @direction_fix
      @sub_direction = @direction
      @direction = 7
      # 右向きだった場合は左を、下向きだった場合は上を向く
      @sub_direction = (@sub_direction == 6 ? 4 : @sub_direction == 2 ? 8 : @sub_direction)
    end
    # 上→左、左→上 のどちらかのコースが通行可能な場合
    if (passable?(@x, @y, 8) and passable?(@x, @y - 1, 4)) or
      (passable?(@x, @y, 4) and passable?(@x - 1, @y, 8))
      # 座標を更新
      @x -= 1
      @y -= 1
      # 歩数増加
      increase_steps
    end
  end
  #--------------------------------------------------------------------------
  # ● 右上に移動
  #--------------------------------------------------------------------------
  def move_upper_right
    # 向き固定でない場合
    unless @direction_fix
      @sub_direction = @direction
      @direction = 9
      # 左向きだった場合は右を、下向きだった場合は上を向く
      @sub_direction = (@sub_direction == 4 ? 6 : @sub_direction == 2 ? 8 : @sub_direction)
    end
    # 上→右、右→上 のどちらかのコースが通行可能な場合
    if (passable?(@x, @y, 8) and passable?(@x, @y - 1, 6)) or
      (passable?(@x, @y, 6) and passable?(@x + 1, @y, 8))
      # 座標を更新
      @x += 1
      @y -= 1
      # 歩数増加
      increase_steps
    end
  end
  #--------------------------------------------------------------------------
  # ○ ダッシュスクリプト導入判定
  #--------------------------------------------------------------------------
  def dash_on
    if @dash_on != nil
      return @dash_on
    else
      return false
    end
  end
end

Instrucciones:

Pegar encima de main.

PD desaparece.
avatar
PepDracko
Hijo De Artemisa
Hijo De Artemisa

Cantidad de envíos : 66
Edad : 28
Localización : In your room, above your sister
Fecha de inscripción : 10/03/2008

Volver arriba Ir abajo

[SCRIPT] Correr e ir en 8 direcciones. Empty Re: [SCRIPT] Correr e ir en 8 direcciones.

Mensaje  Caistsa Lun Mar 10, 2008 9:09 pm

Wow pep este script esta muy bueno(sin pensar mal e?)Mr gusto mucho aunque ya lo conosia no lo tenia ahora lo cojo me gustalo de las 8 direcciones nose hace enos monotono el juego en si porque nose...Esta bien lo de usar cosas del RTP Del Rpg pero nose busca otro tile sets u otras cosas porque si no se hace pesado aunque no sean tuyas pones los creditos y ya esta queda mas original Very Happy Gracias por postear el script pep me sirvio de mucho (joé para decir eso lo que me enrrolle x.x)
Caistsa
Caistsa
Caistsa
Administrador
Administrador

Cantidad de envíos : 187
Fecha de inscripción : 21/02/2008

https://caistsarpg.superforo.net

Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.