?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

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

RPG VX ace에서 동료추가후 동료가 쫄쫄 따라다니게 하는방법좀 가르쳐주세욤

 

2000이나 2003?까지는 설정으로? 아니면 원래.. 동료가 뒤에 쫄쫄 따라다니지 않았나요?

 

VX에서도 그런설정이 가능한지 궁금합니다

 

기본적으로 설정이 가능할 것 같은데 어디있는거죠~?

 

아니면 스크립트를 따로 짜야하는건가요~?

 

가르쳐주세요

?
  • ?
    보로마루 2015.11.12 00:17

    #==============================================================================
    # ■ Member_Train
    #------------------------------------------------------------------------------
    #  동료를 기차처럼 나란히 따라오게 만드는 클레스입니다.
    #==============================================================================

    module Train_Actor

    # ●투명상태용 스윗치 설정
    # true 라면 스윗치 제어를 실시한다
    # TRANSPARENT_SWITCH = true
    TRANSPARENT_SWITCH = true

    # ●투명상태용 스윗치 번호
    # TRANSPARENT_SWITCH 가 true 로 , 이 번호의 스윗치가 ON라면 투명하게 된다
    TRANSPARENT_SWITCHES_INDEX = 100

    # ●엑터의 최대수
    # 장래적으로 많은 사람 파티를 생기게 되면…
    TRAIN_ACTOR_SIZE_MAX = 7

    # 정수
    #Input::DOWN = 2
    #Input::LEFT = 4
    #Input::RIGHT = 6
    #Input::UP = 8
    DOWN_LEFT = 1
    DOWN_RIGHT = 3
    UP_LEFT = 7
    UP_RIGHT = 9
    JUMP = 5

    class Game_Party_Actor < Game_Character
    def initialize
    super()
    @through = true
    end
    def setup(actor)
    # 캐릭터의 파일명과 색상을 설정
    if actor != nil
    @character_name = actor.character_name
    @character_hue = actor.character_hue
    else
    @character_name = ""
    @character_hue = 0
    end
    # 불투명도와 합성 방법을 초기화
    @opacity = 255
    @blend_type = 0
    end
    def screen_z(height = 0)
    if $game_player.x == @x and $game_player.y == @y
    return $game_player.screen_z(height) - 1
    end
    super(height)
    end
    #--------------------------------------------------------------------------
    # ● 아래에 이동
    # turn_enabled : 그 자리에서의 향해 변경을 허가하는 플래그
    #--------------------------------------------------------------------------
    def move_down(turn_enabled = true)
    # 아래를 향한다
    if turn_enabled
    turn_down
    end
    # 통행 가능한 경우
    if passable?(@x, @y, Input::DOWN)
    # 아래를 향한다
    turn_down
    # 좌표를 갱신
    @y += 1
    end
    end
    #--------------------------------------------------------------------------
    # ● 왼쪽으로 이동
    # turn_enabled : 그 자리에서의 향해 변경을 허가하는 플래그
    #--------------------------------------------------------------------------
    def move_left(turn_enabled = true)
    # 왼쪽을 향한다
    if turn_enabled
    turn_left
    end
    # 통행 가능한 경우
    if passable?(@x, @y, Input::LEFT)
    # 왼쪽을 향한다
    turn_left
    # 좌표를 갱신
    @x -= 1
    end
    end
    #--------------------------------------------------------------------------
    # ● 오른쪽으로 이동
    # turn_enabled : 그 자리에서의 향해 변경을 허가하는 플래그
    #--------------------------------------------------------------------------
    def move_right(turn_enabled = true)
    # 오른쪽을 향한다
    if turn_enabled
    turn_right
    end
    # 통행 가능한 경우
    if passable?(@x, @y, Input::RIGHT)
    # 오른쪽을 향한다
    turn_right
    # 좌표를 갱신
    @x += 1
    end
    end
    #--------------------------------------------------------------------------
    # ● 위에 이동
    # turn_enabled : 그 자리에서의 향해 변경을 허가하는 플래그
    #--------------------------------------------------------------------------
    def move_up(turn_enabled = true)
    # 위를 향한다
    if turn_enabled
    turn_up
    end
    # 통행 가능한 경우
    if passable?(@x, @y, Input::UP)
    # 위를 향한다
    turn_up
    # 좌표를 갱신
    @y -= 1
    end
    end
    #--------------------------------------------------------------------------
    # ● 좌하에 이동
    #--------------------------------------------------------------------------
    def move_lower_left
    # 방향 고정이 아닌 경우
    unless @direction_fix
    # 오른쪽 방향이었던 경우는 왼쪽을 , 오름새였던 경우는 아래를 향한다
    @direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::UP ? Input::DOWN : @direction)
    end
    # 하→왼쪽 , 좌→하의 어느 쪽인가의 코스가 통행 가능한 경우
    if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or
    (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN))
    # 좌표를 갱신
    @x -= 1
    @y += 1
    end
    end
    #--------------------------------------------------------------------------
    # ● 우하에 이동
    #--------------------------------------------------------------------------
    def move_lower_right
    # 방향 고정이 아닌 경우
    unless @direction_fix
    # 좌향이었던 경우는 오른쪽을 , 오름새였던 경우는 아래를 향한다
    @direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::UP ? Input::DOWN : @direction)
    end
    # 하→오른쪽 , 우→하의 어느 쪽인가의 코스가 통행 가능한 경우
    if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) or
    (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN))
    # 좌표를 갱신
    @x += 1
    @y += 1
    end
    end
    #--------------------------------------------------------------------------
    # ● 좌상에 이동
    #--------------------------------------------------------------------------
    def move_upper_left
    # 방향 고정이 아닌 경우
    unless @direction_fix
    # 오른쪽 방향이었던 경우는 왼쪽을 , 하향이었던 경우는 위를 향한다
    @direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::DOWN ? Input::UP : @direction)
    end
    # 상→왼쪽 , 좌→상의 어느 쪽인가의 코스가 통행 가능한 경우
    if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or
    (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP))
    # 좌표를 갱신
    @x -= 1
    @y -= 1
    end
    end
    #--------------------------------------------------------------------------
    # ● 우상에 이동
    #--------------------------------------------------------------------------
    def move_upper_right
    # 방향 고정이 아닌 경우
    unless @direction_fix
    # 좌향이었던 경우는 오른쪽을 , 하향이었던 경우는 위를 향한다
    @direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::DOWN ? Input::UP : @direction)
    end
    # 상→오른쪽 , 우→상의 어느 쪽인가의 코스가 통행 가능한 경우
    if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or
    (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP))
    # 좌표를 갱신
    @x += 1
    @y -= 1
    end
    end

    attr_writer :move_speed
    attr_writer :step_anime
    end

    module Spriteset_Map_Module
    def setup_actor_character_sprites?
    return @setup_actor_character_sprites_flag != nil
    end
    def setup_actor_character_sprites(characters)
    if !setup_actor_character_sprites?
    index_game_player = 0
    @character_sprites.each_index do |i|
    if @character_sprites[i].character.instance_of?(Game_Player)
    index_game_player = i
    break
    end
    end
    for character in characters.reverse
    @character_sprites.unshift(
    Sprite_Character.new(@viewport1, character)
    )
    end
    @setup_actor_character_sprites_flag = true
    end
    end
    end

    module Scene_Map_Module
    def setup_actor_character_sprites(characters)
    @spriteset.setup_actor_character_sprites(characters)
    end
    end

    module Game_Party_Module
    def set_transparent_actors(transparent)
    @transparent = transparent
    end
    def setup_actor_character_sprites
    if @characters == nil
    @characters = []
    for i in 1 ... TRAIN_ACTOR_SIZE_MAX
    @characters.push(Game_Party_Actor.new)
    end
    end
    for i in 1 ... TRAIN_ACTOR_SIZE_MAX
    @characters[i - 1].setup(actors[i])
    end
    if $scene.class.method_defined?('setup_actor_character_sprites')
    $scene.setup_actor_character_sprites(@characters)
    end
    end
    def update_party_actors
    setup_actor_character_sprites
    transparent = $game_player.transparent
    if transparent == false
    if TRANSPARENT_SWITCH
    transparent = $game_switches[TRANSPARENT_SWITCHES_INDEX]
    end
    end
    for character in @characters
    character.transparent = transparent
    character.move_speed = $game_player.move_speed
    character.step_anime = $game_player.step_anime
    character.update
    end
    end
    def moveto_party_actors( x, y )
    setup_actor_character_sprites
    for character in @characters
    character.moveto( x, y )
    end
    if @move_list == nil
    @move_list = []
    end
    move_list_setup
    end
    def move_party_actors
    if @move_list == nil
    @move_list = []
    move_list_setup
    end
    @move_list.each_index do |i|
    if @characters[i] != nil
    case @move_list[i].type
    when Input::DOWN
    @characters[i].move_down(@move_list[i].args[0])
    when Input::LEFT
    @characters[i].move_left(@move_list[i].args[0])
    when Input::RIGHT
    @characters[i].move_right(@move_list[i].args[0])
    when Input::UP
    @characters[i].move_up(@move_list[i].args[0])
    when DOWN_LEFT
    @characters[i].move_lower_left
    when DOWN_RIGHT
    @characters[i].move_lower_right
    when UP_LEFT
    @characters[i].move_upper_left
    when UP_RIGHT
    @characters[i].move_upper_right
    when JUMP
    @characters[i].jump(@move_list[i].args[0],@move_list[i].args[1])
    end
    end
    end
    end
    class Move_List_Element
    def initialize(type,args)
    @type = type
    @args = args
    end
    def type() return @type end
    def args() return @args end
    end
    def move_list_setup
    for i in 0 .. TRAIN_ACTOR_SIZE_MAX
    @move_list[i] = nil
    end
    end
    def add_move_list(type,*args)
    @move_list.unshift(Move_List_Element.new(type,args)).pop
    end
    def move_down_party_actors(turn_enabled = true)
    move_party_actors
    add_move_list(Input::DOWN,turn_enabled)
    end
    def move_left_party_actors(turn_enabled = true)
    move_party_actors
    add_move_list(Input::LEFT,turn_enabled)
    end
    def move_right_party_actors(turn_enabled = true)
    move_party_actors
    add_move_list(Input::RIGHT,turn_enabled)
    end
    def move_up_party_actors(turn_enabled = true)
    move_party_actors
    add_move_list(Input::UP,turn_enabled)
    end
    def move_lower_left_party_actors
    move_party_actors
    add_move_list(DOWN_LEFT)
    end
    def move_lower_right_party_actors
    move_party_actors
    add_move_list(DOWN_RIGHT)
    end
    def move_upper_left_party_actors
    move_party_actors
    add_move_list(UP_LEFT)
    end
    def move_upper_right_party_actors
    move_party_actors
    add_move_list(UP_RIGHT)
    end
    def jump_party_actors(x_plus, y_plus)
    move_party_actors
    add_move_list(JUMP,x_plus, y_plus)
    end
    end

    module Game_Player_Module
    def update
    $game_party.update_party_actors
    super
    end
    def moveto( x, y )
    $game_party.moveto_party_actors( x, y )
    super( x, y )
    end
    def move_down(turn_enabled = true)
    if passable?(@x, @y, Input::DOWN)
    $game_party.move_down_party_actors(turn_enabled)
    end
    super(turn_enabled)
    end
    def move_left(turn_enabled = true)
    if passable?(@x, @y, Input::LEFT)
    $game_party.move_left_party_actors(turn_enabled)
    end
    super(turn_enabled)
    end
    def move_right(turn_enabled = true)
    if passable?(@x, @y, Input::RIGHT)
    $game_party.move_right_party_actors(turn_enabled)
    end
    super(turn_enabled)
    end
    def move_up(turn_enabled = true)
    if passable?(@x, @y, Input::UP)
    $game_party.move_up_party_actors(turn_enabled)
    end
    super(turn_enabled)
    end
    def move_lower_left
    # 하→왼쪽 , 좌→하의 어느 쪽인가의 코스가 통행 가능한 경우
    if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or
    (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN))
    $game_party.move_lower_left_party_actors
    end
    super
    end
    def move_lower_right
    # 하→오른쪽 , 우→하의 어느 쪽인가의 코스가 통행 가능한 경우
    if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) or
    (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN))
    $game_party.move_lower_right_party_actors
    end
    super
    end
    def move_upper_left
    # 상→왼쪽 , 좌→상의 어느 쪽인가의 코스가 통행 가능한 경우
    if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or
    (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP))
    $game_party.move_upper_left_party_actors
    end
    super
    end
    def move_upper_right
    # 상→오른쪽 , 우→상의 어느 쪽인가의 코스가 통행 가능한 경우
    if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or
    (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP))
    $game_party.move_upper_right_party_actors
    end
    super
    end
    def jump(x_plus, y_plus)
    # 새로운 좌표를 계산
    new_x = @x + x_plus
    new_y = @y + y_plus
    # 가산치가 (0,0) 의 경우인가 , 점프처가 통행 가능한 경우
    if (x_plus == 0 and y_plus == 0) or passable?(new_x, new_y, 0)
    $game_party.jump_party_actors(x_plus, y_plus)
    end
    super(x_plus, y_plus)
    end

    attr_reader :move_speed
    attr_reader :step_anime
    end

    end # module Train_Actor

    class Game_Party
    include Train_Actor::Game_Party_Module
    end

    class Game_Player
    include Train_Actor::Game_Player_Module
    end

    class Spriteset_Map
    include Train_Actor::Spriteset_Map_Module
    end

    class Scene_Map
    include Train_Actor::Scene_Map_Module
    end

  • ?
    보로마루 2015.11.12 00:17

    스크립트입니다 xp버전이에요

  • ?
    koban 2015.11.12 02:05
    우와와아!!! 감사합니다 그런데 어디에 붙여넣어야하죠? 스크립트는 함부러 수정하기 영 무셔워서리
  • profile
    천무 2015.11.12 02:10

    #==============================================================================
    # ■ 人物跟随
    #------------------------------------------------------------------------------
    #
    #   本脚本来自www.66RPG.com,使用和转载请保留此信息
    #
    #   作者:fukuyama   
    #
    #   移植:ONEWateR
    #
    #==============================================================================
    module Train_Actor

    #是否使用停止跟随的方法,也就是说,这里false改为true的时候,如果TRANSPARENT_SWITCHES_INDEX
    #开关打开,跟随的人物就消失了(其实只是变成透明而已)

    TRANSPARENT_SWITCH = true
    TRANSPARENT_SWITCHES_INDEX = 1
    #举例:第一个为true,第二个为20,则打开20号开关,后面的人都没了。

    #跟随人数的最大数目,可以更改为2、3什么的。
    TRAIN_ACTOR_SIZE_MAX = 4

    # 定数
    DOWN_LEFT = 1
    DOWN_RIGHT = 3
    UP_LEFT = 7
    UP_RIGHT = 9
    JUMP = 5

    class Game_Party_Actor < Game_Character
    def initialize
    super()
    @through = true
    end
    def setup(actor)
    if actor != nil
    @character_index = actor.character_index
    @character_name = actor.character_name
    @priority_type = 1
    else
    @character_name = ""
    @character_index = 0
    @priority_type = 1
    end
    # 不透明度と合成方法を初期化
    @opacity = 255
    @blend_type = 0
    end
    #--------------------------------------------------------------------------
    # ● 下に移動
    # turn_enabled : その場での向き変更を許可するフラグ
    #--------------------------------------------------------------------------
    def move_down(turn_enabled = true)
    # 下を向く
    if turn_enabled
    turn_down
    end
    # 通行可能な場合
    if new_passable?(@x, @y, Input::DOWN)
    # 下を向く
    turn_down
    # 座標を更新
    @y += 1
    end
    end
    #--------------------------------------------------------------------------
    # ● 左に移動
    # turn_enabled : その場での向き変更を許可するフラグ
    #--------------------------------------------------------------------------
    def move_left(turn_enabled = true)
    # 左を向く
    if turn_enabled
    turn_left
    end
    # 通行可能な場合
    if new_passable?(@x, @y, Input::LEFT)
    # 左を向く
    turn_left
    # 座標を更新
    @x -= 1
    end
    end
    #--------------------------------------------------------------------------
    # ● 右に移動
    # turn_enabled : その場での向き変更を許可するフラグ
    #--------------------------------------------------------------------------
    def move_right(turn_enabled = true)
    # 右を向く
    if turn_enabled
    turn_right
    end
    # 通行可能な場合
    if new_passable?(@x, @y, Input::RIGHT)
    # 右を向く
    turn_right
    # 座標を更新
    @x += 1
    end
    end
    #--------------------------------------------------------------------------
    # ● 上に移動
    # turn_enabled : その場での向き変更を許可するフラグ
    #--------------------------------------------------------------------------
    def move_up(turn_enabled = true)
    # 上を向く
    if turn_enabled
    turn_up
    end
    # 通行可能な場合
    if new_passable?(@x, @y, Input::UP)
    # 上を向く
    turn_up
    # 座標を更新
    @y -= 1
    end
    end
    #--------------------------------------------------------------------------
    # ● 左下に移動
    #--------------------------------------------------------------------------
    def move_lower_left
    # 向き固定でない場合
    unless @direction_fix
    # 右向きだった場合は左を、上向きだった場合は下を向く
    @direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::UP ? Input::DOWN : @direction)
    end
    # 下→左、左→下 のどちらかのコースが通行可能な場合
    if (new_passable?(@x, @y, Input::DOWN) and new_passable?(@x, @y + 1, Input::LEFT)) or
    (new_passable?(@x, @y, Input::LEFT) and new_passable?(@x - 1, @y, Input::DOWN))
    # 座標を更新
    @x -= 1
    @y += 1
    end
    end
    #--------------------------------------------------------------------------
    # ● 右下に移動
    #--------------------------------------------------------------------------
    def move_lower_right
    # 向き固定でない場合
    unless @direction_fix
    # 左向きだった場合は右を、上向きだった場合は下を向く
    @direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::UP ? Input::DOWN : @direction)
    end
    # 下→右、右→下 のどちらかのコースが通行可能な場合
    if (new_passable?(@x, @y, Input::DOWN) and new_passable?(@x, @y + 1, Input::RIGHT)) or
    (new_passable?(@x, @y, Input::RIGHT) and new_passable?(@x + 1, @y, Input::DOWN))
    # 座標を更新
    @x += 1
    @y += 1
    end
    end
    #--------------------------------------------------------------------------
    # ● 左上に移動
    #--------------------------------------------------------------------------
    def move_upper_left
    # 向き固定でない場合
    unless @direction_fix
    # 右向きだった場合は左を、下向きだった場合は上を向く
    @direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::DOWN ? Input::UP : @direction)
    end
    # 上→左、左→上 のどちらかのコースが通行可能な場合
    if (new_passable?(@x, @y, Input::UP) and new_passable?(@x, @y - 1, Input::LEFT)) or
    (new_passable?(@x, @y, Input::LEFT) and new_passable?(@x - 1, @y, Input::UP))
    # 座標を更新
    @x -= 1
    @y -= 1
    end
    end
    #--------------------------------------------------------------------------
    # ● 右上に移動
    #--------------------------------------------------------------------------
    def move_upper_right
    # 向き固定でない場合
    unless @direction_fix
    # 左向きだった場合は右を、下向きだった場合は上を向く
    @direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::DOWN ? Input::UP : @direction)
    end
    # 上→右、右→上 のどちらかのコースが通行可能な場合
    if (new_passable?(@x, @y, Input::UP) and new_passable?(@x, @y - 1, Input::RIGHT)) or
    (new_passable?(@x, @y, Input::RIGHT) and new_passable?(@x + 1, @y, Input::UP))
    # 座標を更新
    @x += 1
    @y -= 1
    end
    end
    attr_writer :move_speed
    attr_writer :step_anime
    end
    module Spriteset_Map_Module
    def setup_actor_character_sprites?
    return @setup_actor_character_sprites_flag != nil
    end
    def setup_actor_character_sprites(characters)
    if !setup_actor_character_sprites?
    index_game_player = 0
    @character_sprites.each_index do |i|
    if @character_sprites[i].character.instance_of?(Game_Player)
    index_game_player = i
    break
    end
    end
    for character in characters.reverse
    @character_sprites.unshift(
    Sprite_Character.new(@viewport1, character)
    )
    end
    @setup_actor_character_sprites_flag = true
    end
    end
    end
    module Scene_Map_Module
    def setup_actor_character_sprites(characters)
    @spriteset.setup_actor_character_sprites(characters)
    end
    end
    module Game_Party_Module
    def set_transparent_actors(transparent)
    @transparent = transparent
    end
    def setup_actor_character_sprites
    if @characters == nil
    @characters = []

    for i in 1 ... TRAIN_ACTOR_SIZE_MAX
    @characters.push(Game_Party_Actor.new)
    end
    end
    for i in 1 ... TRAIN_ACTOR_SIZE_MAX
    @characters[i - 1].setup($game_party.members[i])
    end

    if $scene.class.method_defined?('setup_actor_character_sprites')
    $scene.setup_actor_character_sprites(@characters)
    end
    end
    def update_party_actors
    setup_actor_character_sprites
    transparent = $game_player.transparent
    if transparent == false
    if TRANSPARENT_SWITCH
    transparent = $game_switches[TRANSPARENT_SWITCHES_INDEX]
    end
    end
    for character in @characters
    character.transparent = transparent
    if $game_player.dash?
    character.move_speed = $game_player.move_speed*1.25
    else
    character.move_speed = $game_player.move_speed
    end
    character.step_anime = $game_player.step_anime
    character.update
    end
    end
    def moveto_party_actors( x, y )
    setup_actor_character_sprites
    for character in @characters
    character.moveto( x, y )
    end
    if @move_list == nil
    @move_list = []
    end
    move_list_setup
    end
    def move_party_actors
    if @move_list == nil
    @move_list = []
    move_list_setup
    end
    @move_list.each_index do |i|
    if @characters[i] != nil
    case @move_list[i].type
    when Input::DOWN
    @characters[i].move_down(@move_list[i].args[0])
    when Input::LEFT
    @characters[i].move_left(@move_list[i].args[0])
    when Input::RIGHT
    @characters[i].move_right(@move_list[i].args[0])
    when Input::UP
    @characters[i].move_up(@move_list[i].args[0])
    when DOWN_LEFT
    @characters[i].move_lower_left
    when DOWN_RIGHT
    @characters[i].move_lower_right
    when UP_LEFT
    @characters[i].move_upper_left
    when UP_RIGHT
    @characters[i].move_upper_right
    when JUMP
    @characters[i].jump(@move_list[i].args[0],@move_list[i].args[1])
    end
    end
    end
    end
    class Move_List_Element
    def initialize(type,args)
    @type = type
    @args = args
    end
    def type() return @type end
    def args() return @args end
    end
    def move_list_setup
    for i in 0 .. TRAIN_ACTOR_SIZE_MAX
    @move_list[i] = nil
    end
    end
    def add_move_list(type,*args)
    @move_list.unshift(Move_List_Element.new(type,args)).pop
    end
    def move_down_party_actors(turn_enabled = true)
    move_party_actors
    add_move_list(Input::DOWN,turn_enabled)
    end
    def move_left_party_actors(turn_enabled = true)
    move_party_actors
    add_move_list(Input::LEFT,turn_enabled)
    end
    def move_right_party_actors(turn_enabled = true)
    move_party_actors
    add_move_list(Input::RIGHT,turn_enabled)
    end
    def move_up_party_actors(turn_enabled = true)
    move_party_actors
    add_move_list(Input::UP,turn_enabled)
    end
    def move_lower_left_party_actors
    move_party_actors
    add_move_list(DOWN_LEFT)
    end
    def move_lower_right_party_actors
    move_party_actors
    add_move_list(DOWN_RIGHT)
    end
    def move_upper_left_party_actors
    move_party_actors
    add_move_list(UP_LEFT)
    end
    def move_upper_right_party_actors
    move_party_actors
    add_move_list(UP_RIGHT)
    end
    def jump_party_actors(x_plus, y_plus)
    move_party_actors
    add_move_list(JUMP,x_plus, y_plus)
    end
    end
    module Game_Player_Module
    def update
    $game_party.update_party_actors
    super
    end
    def moveto( x, y )
    $game_party.moveto_party_actors( x, y )
    super( x, y )
    end
    def move_down(turn_enabled = true)
    if new_passable?(@x, @y, Input::DOWN)
    $game_party.move_down_party_actors(turn_enabled)
    end
    super(turn_enabled)
    end
    def move_left(turn_enabled = true)
    if new_passable?(@x, @y, Input::LEFT)
    $game_party.move_left_party_actors(turn_enabled)
    end
    super(turn_enabled)
    end
    def move_right(turn_enabled = true)
    if new_passable?(@x, @y, Input::RIGHT)
    $game_party.move_right_party_actors(turn_enabled)
    end
    super(turn_enabled)
    end
    def move_up(turn_enabled = true)
    if new_passable?(@x, @y, Input::UP)
    $game_party.move_up_party_actors(turn_enabled)
    end
    super(turn_enabled)
    end
    def move_lower_left
    # 下→左、左→下 のどちらかのコースが通行可能な場合
    if (new_passable?(@x, @y, Input::DOWN) and new_passable?(@x, @y + 1, Input::LEFT)) or
    (new_passable?(@x, @y, Input::LEFT) and new_passable?(@x - 1, @y, Input::DOWN))
    $game_party.move_lower_left_party_actors
    end
    super
    end
    def move_lower_right
    # 下→右、右→下 のどちらかのコースが通行可能な場合
    if (new_passable?(@x, @y, Input::DOWN) and new_passable?(@x, @y + 1, Input::RIGHT)) or
    (new_passable?(@x, @y, Input::RIGHT) and new_passable?(@x + 1, @y, Input::DOWN))
    $game_party.move_lower_right_party_actors
    end
    super
    end
    def move_upper_left
    # 上→左、左→上 のどちらかのコースが通行可能な場合
    if (new_passable?(@x, @y, Input::UP) and new_passable?(@x, @y - 1, Input::LEFT)) or
    (new_passable?(@x, @y, Input::LEFT) and new_passable?(@x - 1, @y, Input::UP))
    $game_party.move_upper_left_party_actors
    end
    super
    end
    def move_upper_right
    # 上→右、右→上 のどちらかのコースが通行可能な場合
    if (new_passable?(@x, @y, Input::UP) and new_passable?(@x, @y - 1, Input::RIGHT)) or
    (new_passable?(@x, @y, Input::RIGHT) and new_passable?(@x + 1, @y, Input::UP))
    $game_party.move_upper_right_party_actors
    end
    super
    end
    def jump(x_plus, y_plus)
    # 新しい座標を計算
    new_x = @x + x_plus
    new_y = @y + y_plus
    # 加算値が (0,0) の場合か、ジャンプ先が通行可能な場合
    if (x_plus == 0 and y_plus == 0) or new_passable?(new_x, new_y, 0)
    $game_party.jump_party_actors(x_plus, y_plus)
    end
    super(x_plus, y_plus)
    end
    attr_accessor :move_speed
    attr_accessor :step_anime
    end
    end # module Train_Actor
    class Game_Party
    include Train_Actor::Game_Party_Module
    end
    class Game_Player
    include Train_Actor::Game_Player_Module
    end
    class Spriteset_Map
    include Train_Actor::Spriteset_Map_Module
    end
    class Scene_Map
    include Train_Actor::Scene_Map_Module
    end
    class Game_Character
    def new_passable?(x, y, d)
    new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)
    new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0)
    unless $game_map.valid?(new_x, new_y)
    return false
    end
    x = $game_map.round_x(x)                        # 横方向循环修正
    y = $game_map.round_y(y)                        # 纵方向循环修正
    return false unless $game_map.valid?(x, y)      # 地图外?
    return true if @through or debug_through?       # 穿越 ON?
    return false unless map_passable?(new_x, new_y)         # 地图不能通行?
    return false if collide_with_characters?(new_x, new_y)  # 与角色冲突?
    return true                                     # 可以通行
    end
    end

  • profile
    천무 2015.11.12 02:11

    이 스크립을 스크립트 에디터 Main 위에 소재넣는 부분 에 하나 기차라고 만들어서 넣으면 됩니다.

    잘 모르면 http://acoc.kr/acoc/949509 를 참조.

  • ?
    심형석 2019.01.31 00:47
    동료가 점프
    하는 것도
    알려주세요.

  1. 쯔꾸르 mv 게임을 apk 파일로 변환했는데...

  2. 쯔꾸르 젖소이야기 결혼 방법좀 알려주세요...

  3. No Image 29Nov
    by game메이커xp
    2021/11/29 by game메이커xp
    Views 1257 

    apk포팅 승인 어케 하나요?

  4. No Image 15Jul
    by Neuromancer
    2021/07/15 by Neuromancer
    Views 1541 

    Yanfly님의 Action Sequence Pack 질문드립니다

  5. 싸게 MV 를 먼저? 아니면 돈을 더 들어서라도 MZ?

  6. RMMV - 스탯창과 대화창 변견 관련 질문입니다. (초보입니다 도움좀 주세요 ㅜㅜ)

  7. 아오오니를 하는 사람인데요 질문 두가지가 있어요

  8. No Image 07Dec
    by land_tnt
    2020/12/07 by land_tnt
    Views 1455 

    재밌는게임

  9. No Image 10Nov
    by 세종기항19
    2020/11/10 by 세종기항19
    Views 1684 

    c언어 질문

  10. 코딩 질문

  11. No Image 07Nov
    by 드래곤규
    2020/11/07 by 드래곤규
    Views 1402 

    혹시나 물어보는데

  12. No Image 09Sep
    by 이부닝
    2020/09/09 by 이부닝
    Views 1224 

    오픈보 게임 더블드래곤 리로디드 얼티네이트에 대해 궁금

  13. No Image 02Sep
    by 스트레이보우
    2020/09/02 by 스트레이보우
    Views 1006 

    상태이상 확률 결정

  14. No Image 23May
    by WOONAALAA
    2020/05/23 by WOONAALAA
    Views 963 

    다음 인디사이드 제작대회는 언제쯤 열릴까요?

  15. xp로 제작된 어플 실행자체가 안된다는 분이 있습니다.(제생각엔 apk로 변환하는 과정에서 버전자체가 낮은 것 같습니다)

  16. apk 포팅하는데 게임 이름이 필요합니다 뜨는데

  17. No Image 22Mar
    by 랖랖
    2020/03/22 by 랖랖
    Views 1780 

    쯔꾸르VX Ace렉먹음 도와주세요...

  18. 안녕하세요

  19. 포팅 중 '게임 이름이 필요합니다' 오류

  20. RPGMV 거리 추적

Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 442 Next
/ 442


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

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