Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #-------------------------------------------------------------------------------
- # NPC Region Move
- #-------------------------------------------------------------------------------
- # Este script faz com que determinados eventos somente andem sobre tiles com
- # determinadas regiões.
- #-------------------------------------------------------------------------------
- # Instruções:
- # Comente o evento com "<region id>"
- # No id colocar o id da region que o npc se moverá :)
- #===============================================================================
- #===============================================================================
- # ** Game_CharacterBase
- #-------------------------------------------------------------------------------
- # Esta classe gerencia os personagens. Comum a todos os persongens, armazena
- # informações básicas como coordenadas e gráficos
- # Esta classe é usada como superclasse da classe Game_Character.
- #===============================================================================
- class Game_Event < Game_Character
- #-----------------------------------------------------------------------------
- # * Movimento em linha reta em
- # d : direção (2,4,6,8)
- # turn_ok : permissão para mudar de direção
- #-----------------------------------------------------------------------------
- def move_straight(d, turn_ok = true)
- if @list[0].parameters[0][0..6] == '<region'
- @list[0].parameters[0][9] != '>' ? @region_id = @list[0].parameters[0][8..9] : @region_id = list[0].parameters[0][8]
- end
- @move_succeed = passable?(@x, @y, d)
- @move_succeed = false unless $game_map.region_to_pass(@x, @y, d) == @region_id.to_i
- if @move_succeed
- set_direction(d)
- @x = $game_map.round_x_with_direction(@x, d)
- @y = $game_map.round_y_with_direction(@y, d)
- @real_x = $game_map.x_with_direction(@x, reverse_dir(d))
- @real_y = $game_map.y_with_direction(@y, reverse_dir(d))
- increase_steps
- elsif turn_ok
- set_direction(d)
- check_event_trigger_touch_front
- end
- end
- end
- #===============================================================================
- # ** Game_Map
- #-------------------------------------------------------------------------------
- # Esta classe gerencia o mapa. Inclui funções de rolagem e definição de
- # passagens. A instância desta classe é referenciada por $game_map.
- #===============================================================================
- class Game_Map
- #-----------------------------------------------------------------------------
- # * Definição de ID da região
- # x : coordenada X
- # y : coordenada Y
- #-----------------------------------------------------------------------------
- def region_to_pass(x, y, d)
- case d
- when 2
- y += 1
- when 4
- x -= 1
- when 6
- x += 1
- when 8
- y -= 1
- end
- valid?(x, y) ? @map.data[x, y, 3] >> 8 : 0
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement