일반적인 턴제 RPG의 4가지 배틀 커맨드, 공격, 방어, 스킬, 아이템이 아닌,
특정 커맨드를 없애거나 새로운 커맨드를 추가하는 방법을 말하는겁니다.
해외 사이트를 찾아본 결과 액터나 클래스에 따른 고유의 배틀 커맨드를 짤 수 있는 스크립트는 있는데,
"특정 상태이상에 걸린 중"에 배틀 커맨드를 편집하는건 못찾겠더래요.
일반적인 턴제 RPG의 4가지 배틀 커맨드, 공격, 방어, 스킬, 아이템이 아닌,
특정 커맨드를 없애거나 새로운 커맨드를 추가하는 방법을 말하는겁니다.
해외 사이트를 찾아본 결과 액터나 클래스에 따른 고유의 배틀 커맨드를 짤 수 있는 스크립트는 있는데,
"특정 상태이상에 걸린 중"에 배틀 커맨드를 편집하는건 못찾겠더래요.
Remity the Elemental Holic
http://www.musicshake.com 에서 활동하고 있습니다.
한때 마비노기를 했었습니다.
이상.
커맨드를 없애는 건 쉬운데 추가하는 게 쉽지 않네요...
상태이상으로 커맨드 없애는 건 간단합니다.
#==============================================================================
# ■ Window_ActorCommand
#------------------------------------------------------------------------------
# 배틀 화면에서, 액터의 행동을 선택하는 윈도우입니다.
#==============================================================================
class Window_ActorCommand < Window_Command
#--------------------------------------------------------------------------
# ● 커멘드 리스트의 작성
#--------------------------------------------------------------------------
def make_command_list
return unless @actor
add_attack_command unless @actor.state?(2)
add_skill_commands
add_guard_command
add_item_command
end
end
이런 식으로 하면 됩니다. 이 스크립트를 붙여 넣으면 2번 상태, 기본 예제에서는 중독상태에 걸리면
공격 커맨드가 없어집니다 !!
커맨드 추가에 대해서는 제가 발상이 부족해서인지는 몰라도;;
어떤 커맨드가 추가될지도 짐작 못하겠네요 (웃음);;
만약 Window_ActorCommand에서 커맨드를 추가하면
Scene_Battle에서 그에 맞는 함수를 작성해야할 겁니다.
#==============================================================================
# ■ Scene_Battle
#------------------------------------------------------------------------------
# 배틀 화면의 처리를 실시하는 클래스입니다.
#==============================================================================
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# ● 액터 커멘드 윈도우의 작성
#--------------------------------------------------------------------------
def create_actor_command_window
@actor_command_window = Window_ActorCommand.new
@actor_command_window.viewport = @info_viewport
@actor_command_window.set_handler(:attack, method(:command_attack))
@actor_command_window.set_handler(:skill, method(:command_skill))
@actor_command_window.set_handler(:guard, method(:command_guard))
@actor_command_window.set_handler(:item, method(:command_item))
@actor_command_window.set_handler(:cancel, method(:prior_command))
@actor_command_window.x = Graphics.width
end
end
여기에 핸들러 추가하고 그에 따라 뒤에 써있는 이름과 같은 메소드 함수를 정의해주면 됩니다.
제가 아는 건 이정도네요. 도움이 되었으면 좋겠습니다;;