Ich hab für mein Spiel ein Script geschrieben das ich die Richtung in die der Held sieht per knopfdruck fixieren kann. (solange sie gedrückt ist, ist die Richtung gefixt) es ist für ein Schusswaffen AKS
das alleine wäre etwas spärlich ^^ desshalb hab ich es so umgeschrieben das man die Taste selbst bestimmen kann, genauso wie die Taste fürs laufen (dash) und im Testspiel durch die Wände zu laufen (debug_through)
da dieses script mit keinem 8-Wege- oder WASD-Steuerungs-script kompatibel ist, ist auch ein 8 Wege und ein WASD-Steuerungs-script enthalten (die man allerdings beide an- und ausschalten kann)
einfach über main einfügen:
#==============================================================================
# Setup
ACHTWEG = true # true = Acht-wege
# false = Vier-wege
WASD = true # true = WASD steuerung ein
# false = WASD steuerung aus
PFEIL = true # true = Pfeilsteuerung ein
# false = Pfeilsteuerung aus
# ihr seid selber schuld wenn ihr beides ausmacht ^^
DIRFIX = true # true = Directionfix auf knopfdruck an
# false = Directionfix auf knopfdruck aus
DIRSWITCH = 0 # Switchnummer ob Directionfix an oder aus ist
#------------------------------------------------------------------------------
# Tastensetup
# Mögliche Tasten sind: SHIFT, CTRL, ALT , F5, F6, F7, F8, F9, A, B, C, L, R, X, Y, Z
# immer ein "Input::" davorsetzen, natürlich ohne Anführungszeichen
FIX = Input::ALT # Fix Welche Taste zum fixen der Richtung
LAUF = Input::SHIFT # Taste Zum Laufen (Standart = Shift)
CHEAT = Input::CTRL # Taste zum im Testspiel durch Wände gehen (Standart = Strg)
#==============================================================================
class Game_Player < Game_Character
def move_by_input
return unless movable?
return if $game_map.interpreter.running?
if WASD == true
if Input.press?(Input::X) and Input.press?(Input::R)
move_upper_left if ACHTWEG == true
elsif Input.press?(Input::X) and Input.press?(Input::Y)
move_lower_left if ACHTWEG == true
elsif Input.press?(Input::Z) and Input.press?(Input::R)
move_upper_right if ACHTWEG == true
elsif Input.press?(Input::Z) and Input.press?(Input::Y)
move_lower_right if ACHTWEG == true
elsif Input.press?(Input::Y)
move_down
elsif Input.press?(Input::R)
move_up
elsif Input.press?(Input::Z)
move_right
elsif Input.press?(Input::X)
move_left
end
end
if PFEIL == true
case Input.dir8
when 1
move_lower_left if ACHTWEG == true
when 2
move_down
when 3
move_lower_right if ACHTWEG == true
when 4
move_left
when 6
move_right
when 7
move_upper_left if ACHTWEG == true
when 8
move_up
when 9
move_upper_right if ACHTWEG == true
end
end
if DIRFIX == true
if games_variable[DIRSWITCH] == true
if Input.press?(FIX)
@direction_fix = true
else
@direction_fix = false
end
end
end
end
def dash?
return false if @move_route_forcing
return false if $game_map.disable_dash?
return false if in_vehicle?
return Input.press?(LAUF)
end
def debug_through?
return false unless $TEST
return Input.press?(CHEAT)
end
def update_encounter
return if $TEST and Input.press?(CHEAT)
return if in_vehicle?
if $game_map.bush?(@x, @y)
@encounter_count -= 2
else
@encounter_count -= 1
end
end
end
class Window_Selectable < Window_Base
def update
super
if cursor_movable?
last_index = @index
if Input.repeat?(Input::DOWN) or Input.repeat?(Input::Y)
if PFEIL == true
cursor_down(Input.trigger?(Input::DOWN))
elsif WASD == true
cursor_down(Input.trigger?(Input::Y))
end
end
if Input.repeat?(Input::UP) or Input.repeat?(Input::R)
if PFEIL == true
cursor_up(Input.trigger?(Input::UP))
elsif WASD == true
cursor_up(Input.trigger?(Input::R))
end
end
if Input.repeat?(Input::RIGHT) or Input.repeat?(Input::Z)
if PFEIL == true
cursor_right(Input.trigger?(Input::RIGHT))
elsif WASD == true
cursor_right(Input.trigger?(Input::Z))
end
end
if Input.repeat?(Input::LEFT) or Input.repeat?(Input::X)
if PFEIL == true
cursor_left(Input.trigger?(Input::LEFT))
elsif WASD == true
cursor_left(Input.trigger?(Input::X))
end
end
if Input.repeat?(Input::R)
cursor_pagedown
end
if Input.repeat?(Input::L)
cursor_pageup
end
if @index != last_index
Sound.play_cursor
end
end
update_cursor
call_update_help
end
end
Edit: Da ich gefragt wurde ob ich den directionfix (für das das Script gemacht wurde! oO) auch ausgeschalten werden kann. (das man nen 8 Wege WASD hat) hab ichs noch etwas umgeändert