Não entendi como seria a nova formação, então só vou corrigir os erros xP
Primeiro, você não deveria modificar a Game_Follower, e sim a Game_Followers (no plural), já que você quer mover cada seguidor de maneira diferente.
Depois, não tem método follow, e criar ele não faz nada a menos que você o chame de um método já existente. Como não usaremos a Game_Follower eu prefiro deixar o follow de lado (até porque não faz sentido o nome pra situação >_<).
Dentro da Game_Followers, precisamos modificar um método que seja chamado toda vez que o mapa atualiza, pra que a qualquer momento em que a tecla for pressionada a formação seja feita. Geralmente esse método é o update. Também precisamos guardar o método antigo em algum lugar, pra isso serve o alias. Então:
#==============================================================================
# ** Game_Followers
#==============================================================================
class Game_Followers
#--------------------------------------------------------------------------
# * Atualização dos seguidores
#--------------------------------------------------------------------------
alias _old_update update
def update
_old_update
# Verificar se a tecla foi pressionada
end
end
Agora, pra verificar se a tecla foi pressionada, usamos o Input.trigger?, não o press, porque o press retorna verdadeiro sempre que a tecla estiver pressionada (ou seja, se você segurar a tecla, ele dispara a condição todo frame), e o trigger retorna verdadeiro uma vez apenas, até que a tecla seja solta e pressionada de novo.
Se a tecla for pressionada, devemos posicionar os seguidores como você quer, e pra isso é melhor usar um método que codificar tudo direto no update, porque assim a formação pode ser chamada por qualquer outro meio que você queira. Fica assim:
#==============================================================================
# ** Game_Followers
#==============================================================================
class Game_Followers
#--------------------------------------------------------------------------
# * Atualização dos seguidores
#--------------------------------------------------------------------------
alias _old_update update
def update
_old_update
nice_formation if Input.trigger?(:X)
end
#--------------------------------------------------------------------------
# * Posiciona os seguidores de um jeito legal
#--------------------------------------------------------------------------
def nice_formation
# Posicionar os seguidores
end
end
Na hora de posicionar os seguidores tem dois erros no seu código, o primeiro é esse ponto e vírgula aí. Ponto e vírgula serve para separar linhas, funciona do mesmo jeito que se você tivesse escrito assim:
$game_party.battle_members[1]
move_diagonal(4, 2)
$game_party.battle_members[2]
move_diagonal(4, 8)
$game_party.battle_members[3]
move_diagonal(6, 8)
Ou seja, você chama variáveis aleatórias, que não fazem efeito nenhum, e depois move o seguidor atual (porque você está na Game_Follower, isso irá acontecer com todos os seguidores da fila) nas diagonais que você especificou aí. Imagino que não seja isso que você queira...
O segundo erro é que $game_party.battle_members[x] retorna um Game_Battler (Game_Actor), não um Game_Character, e Game_Battler não tem método move_diagonal xP
Para mover um membro da fila, você pega o Game_Character (Game_Follower) correspondente a ele e chama o método move_diagonal desse objeto, para chamar um método de um objeto você usa o ponto, não ponto e vírgula. Por exemplo, para mover o primeiro seguidor na diagonal superior esquerda:
$game_player.followers[0].move_diagonal(4, 8)
De dentro da Game_Followers não é necessário o $game_player.followers[x], usamos self[x] no lugar:
#==============================================================================
# ** Game_Followers
#==============================================================================
class Game_Followers
#--------------------------------------------------------------------------
# * Atualização dos seguidores
#--------------------------------------------------------------------------
alias _old_update update
def update
_old_update
nice_formation if Input.trigger?(:X)
end
#--------------------------------------------------------------------------
# * Posiciona os seguidores de um jeito legal
#--------------------------------------------------------------------------
def nice_formation
self[0].move_diagonal(4, 2)
self[1].move_diagonal(4, 8)
self[2].move_diagonal(6, 8)
end
end
Essa seria uma versão funcional do código que você escreveu, se funcionar do jeito que queria, ótimo, se não vou precisar que você me diga como que exatamente a formação.