Couple things need to be done. One is to obviously setup the arrow selection to point to the user. The other is to prevent the player from moving the arrow.
So in my script, I had rewritten the two methods
update_phase3_skill_select and
update_phase3_item_select. I'm just gonna focus on the former for now.
class Scene_Battle
def update_phase3_skill_select
# ...
# If C button was pressed
if Input.trigger?(Input::C)
# ...
# If effect scope is single ally
elsif @skill.scope == 3 or @skill.scope == 5
# Start actor selection
start_actor_select
We can add the user scope in this conditional
elsif @skill.scope == 3 or @skill.scope == 5 or @skill.scope == 7
Now the arrow shows up but we're able to move it around from actor to actor. We'll need to rework the Arrow_Actor class. Add this class to the script:
class Arrow_Actor < Arrow_Base
attr_accessor :disable_selection
def initialize(viewport)
@disable_selection = false
super
end
alias update_actor_arrow_selection update
def update
return update_actor_arrow_selection unless @disable_selection
super
# Set sprite coordinates
if self.actor != nil
self.x = self.actor.screen_x
self.y = self.actor.screen_y
end
end
end
I've added a
disable_selection property to the class. If set to true, you will no longer be able to move the cursor left/right. So now let's set that property:
elsif @skill.scope == 3 or @skill.scope == 5 or @skill.scope == 7
# Start actor selection
start_actor_select
# Prevent actor selection if scope is the user
@actor_arrow.disable_selection = @skill.scope == 7
Now just make the same edits to
update_phase3_item_select (replacing @skill with @item obviously).
elsif @item.scope == 3 or @item.scope == 5 or @item.scope == 7
# Start actor selection
start_actor_select
@actor_arrow.disable_selection = @item.scope == 7
Start up your game and confirm that the arrow now appears on user scope and doesn't move.