[XP스크립트 질문] 마법 반사에 관한 것입니다.

by 내마음블루 posted Jun 12, 2005
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
제가 이거 복사해서 실행시켜본결과 에러가 나지 않았습니다...

중간에 한글 있었던 부분을 제외하면요....


KGC 스크립트 이므로....

필수 4행 스크립트와.. 그림자문자 묘화 스크립트를 추가하셨는지 알고 싶군요...

기본적으로 KGC 스크립트는 두 스크립트가 기본적으로 있어야 대부분 실행이 됩니다.

물론 그렇지 않은것도 있지만요...




>
>#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
>#_/  ◆마법 반사 - KGC_SkillReflection◆
>#_/----------------------------------------------------------------------------
>#_/ 마법 반사 기능을 추가합니다.
>#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
>
># 도입이 끝난 플래그를 온
>$imported["SkillReflection"] = true
>
># 마법 반사용 스테이트 ID취득
>for state in $data_states
>next if state == nil
>if state.name == "리후레크"
>$game_state_reflection = state.id
>break
>end
>end
>
>#==============================================================================
># ★ 커스터마이즈 항목 ★
>#==============================================================================
>
>class Scene_Battle
># 리후레크용 애니메이션 ID
>REFLECTION_ANIM_ID = 101
>end
>
>#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
>
>#=== ===========================================================================
># ■ Game_Battler (분할 정의 2)
>#------------------------------------------------------------------------------
>#  버틀러를 취급하는 클래스입니다.이 클래스는 Game_Actor 클래스와 Game_Enemy 곳간
># 스의 슈퍼 클래스로서 사용됩니다.
>#==============================================================================
>
>class Game_Battler
>#--------------------------------------------------------------------------
># ● 스테이트 [리후레크] 판정
># skill : 처리 대상의 스킬
>#----------------------------------------------------------------- ---------
>def reflection?(skill)
># 스테이트[리후레크]가 부가, 한편 스킬이 마법의 경우
>if @states.include?($game_state_reflection) &&
>skill.atk_f == 0 && skill.int_f > 0
>return true
>end
>return false
>end
>end
>
>#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
>
>#============================ ==================================================
># ■ Game_Battler (분할 정의 3)
>#------------------------------------------------------------------------------
>#  버틀러를 취급하는 클래스입니다.이 클래스는 Game_Actor 클래스와 Game_Enemy 곳간
># 스의 슈퍼 클래스로서 사용됩니다.
>#==============================================================================
>
>class Game_Battler
>#--------------------------------------------------------------------------
># ● 스킬의 효과 적용
># user : 스킬의 사용자 (버틀러)
># skill : 스킬
>#--------------------------------------------------------------------------
>alias skill_effect_KGC_SkillReflection skill_effect
>def skill_effect(user, skill)
># 반사할 수 있는 경우는 돌아온다
>return false if user != self && self.reflection?(skill)
>
># 원래의 처리를 실행
>return skill_effect_KGC_SkillReflection(user, skill)
>end
>end
>
>#★☆★☆★☆★☆★☆★ ☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
>
>#==============================================================================
># ■ Scene_Battle (분할 정의 4)
>#------------------------------------------------------------------------------
>#  배틀 화면의 처리를 실시하는 클래스입니다.
>#==============================================================================
>
>class Scene_Battle
>#--------------------------------------------------------------------------
># ● 스킬 액션 결과 작성
>#--------------------------------------------------------------------------
>alias make_skill_action_result_KGC_SkillReflection make_skill_action_result
>def make_skill_action_result
># 원래의 처리를 실행
>make_skill_action_result_KGC_SkillReflection
>
># 리후레크 발동 플래그를 오프
>@skill_reflected = false
># 원래의 발동자 데미지를 초기화
>user_damage = 0
>for target in @target_battlers
># 리후 레크 발동 판정
>if @skill != nil && target != @active_battler && target.reflection?(@skill)
># 리후레크 발동 플래그를 온
>@skill_reflected = true
># 발동자에게 뒤집는다
>@active_battler.skill_effect(@active_battler, @skill)
># 데미지가 양쪽 모두 수치의 경우
>if user_damage.is_a?(Numeric) && @active_battler.damage.is_a?(Numeric)
># 데미지를 가산
>user_damage += @active_battler.damage
>else
># 그대로 설정
>user_damage = @active_battler.damage
>end
>end
>end
># 최종적인 데미지를 적용
>@active_battler.damage = user_damage if @skill_reflected
> end
>#--------------------------------------------------------------------------
># ● 프레임 갱신 (메인 국면 스텝 4 : 대상측 애니메이션)
>#--------------------------------------------------------------------------
>alias update_phase4_step4_KGC_SkillReflection update_phase4_step4
>def update_phase4_s tep4
># 원래의 처리를 실행
>update_phase4_step4_KGC_SkillReflection
>
># 리후레크가 발동했을 경우
>if @active_battler.current_action.kind == 1 && @skill_reflected
># 대상측 애니메이션
>for target in @target_battlers
># 대상의 리후레크가 발동했을 경우
>if target.reflection?(@skill)
># 발동자에게 아니메이시 를 돌려준다
>@active_battler.animation_id = @animation2_id
>@active_battler.animation_hit = (target.damage != "Miss")
># 타겟트후레크 발동 애니메이션을 설정
>target.animation_id = REFLECTION_ANIM_ID
>target.animation_hit = true
>end
>end
>end
>end
>#--------------------------------------------------------------------------
># ● 프레임 갱신 (메인 국면 스텝 5 : 데미지 표시)
>#--------------------------------------------------------------------------
>alias update_phase4_step5_KGC_SkillReflection update_phase4_step5
>def update_phase4_step5
># 원래의 처리를 실행
>update_phase4_step5_KGC_SkillReflection
>
># 리후레크가 발동했을 경우
>if @skill_reflected
># 발동자도 데미지 표시
>if @active_battler.damage != nil
>@active_battler.damage_pop = true
>end
>@skill_reflected = false
>end
>end
>end
>
>
>이러한 마법 반사 스크립트에서     <----- 이부분만 애러.. -_-;
>
># 도입이 끝난 플래그를 온
>$imported["SkillReflection"] = true
>
># 마법 반사용 스테이트 ID취득
>for state in $data_states
>next if state == nil
>if state.name == "리후레크"
>$game_state_reflection = state.id
>break
>end
>end
>
>#==============================================================================
># ★ 커스터마이즈 항목 ★
>#==============================================================================
>
>class Scene_Battle
># 리후레크용 애니메이션 ID
>REFLECTION_ANIM_ID = 101
>end
>
>
>
>부분이 에러가 납니다.
>이거 고치면 저게 나고 저걸 고치면 이게 나고..
>
>어떻게 해야 하나요?
>
>P.s. 혹시 연계마법 스크립트 [확실한거] 아는 거 있으신분은 올려주시면 감사하겠습니다

Articles

1 2 3 4 5 6 7 8 9 10