질문과 답변
전투불능이 되어도 게임오버가 되지 않게하려면?
- ?
-
?
이벤트로 했다면 [졌을 경우도 계속] 옵션에 체크하면 가능합니다....만,
지금은 기본 턴알에서 엔카운트로 만난 적과 싸우다 전멸할 경우라고 생각하고 말하겠습니다.
스크립트의 module BattleManager 부분을 보면 self.process_defeat 라는 부분이 있습니다. (243줄)
그곳에 있는 SceneManager.goto(Scene_Gameover) 부분을 지우고 그 자리에
revive_battle_members # 전멸한 전투원을 되살림
replay_bgm_and_bgs # bgm, bgs 를 되돌림
$game_temp.reserve_common_event(n) # n번 커먼이벤트 실행
SceneManager.return # 맵으로 돌아가기
이라고 적어주면 주석으로 적힌것과 같은 실행을 하게 됩니다.
n 번 커먼이벤트에 집으로 돌아가는 내용등을 넣어주면 전투불능일 경우도 게임이 계속 진행됩니다. -
?
답변 정말 감사합니다. 그런데..
일단 되질 않습니다 ㅠㅠ 맵으로 돌아가는 건 원치 않아서 뺐고 1번 커먼 이벤트를 실행해서 그 안에서 집으로 돌아가게 하는.. 뭐 그런 걸 했는데 계속 오류만 나고 되질 않아요..
SceneManager.goto(Scene_Gameover)를 지우고 그 자리 그대로
revive_battle_members # 전멸한 전투원을 되살림
replay_bgm_and_bgs # bgm, bgs 를 되돌림
$game_temp.reserve_common_event(1) # n번 커먼이벤트 실행
이렇게 붙여넣었는데 제가 뭔가를 잘못 붙여넣은 걸까요?아 그리고 참고로 전투 이벤트가 아니고 그냥 맵에서 체력을 깎는 이벤트에요.
-
?
맵에서 그냥 체력을 깍는거라면 체력의 증감 설정시에 [전투불능을 허가] 옵션에 체크 해제하고 조건분기로 체력이 1이면 사망으로 판정하면 됩니다.
그리고 위에 말한건 기본턴알 전투시 사망일 경우를 전제로 했습니다.
또한 SceneManager.return 을 빼준다면 화면 전환이 안되기 때문에 전투화면에 그대로 멈추게 되죠.
다른곳에서 사용할 경우는 다르게 적용해야 합니다.
위에 적은것은 module BattleManager 에서만 적용되는 내용입니다.
계속 오류가 난다고 했는데 어떤 오류인지 모르면 답변할 수 없습니다. -
?
조건분기로 체력이 1이면 사망으로 판정!!! 이게 하고 싶었어요 ㅠㅠ
근데 조건 분기에 체력이 없길래요. 혹시 변수로 하는거가요?
변수를 잘 못다뤄서 ㅠㅠ굳이 사망으로 판정이 아니어도 되니까 그냥
체력이 1이면 이라는 조건분기 만들 수 있나요?
-
?
변수의 설정에서 기타선택으로 특정 액터의 HP를 얻을 수 있습니다....@_@;;;
스크립트로 만들면 편하긴 하지만... 이벤트로 만들 경우의 예를 들자면,
조건분기로 특정 액터가 파티에 있을 때 그 액터의 HP를 변수에 받아줍니다.
또 조건분기로 HP를 담은 변수의 값이 1보다 크면 살아있는거니깐 집으로 안보내도 되겠죠.
위의 내용을 모든 액터에 대해 판정을 해줘야 합니다.
(이벤트로 하면 꽤 귀찮은 작업이긴 하죠;;)
(참고로 스위치, 커먼이벤트, 라벨 을 사용하면 편리합니다.)
ps - 개인적으로는 귀찮지만 이벤트로 한번 만들어 보시길 권합니다.
만드는 방법을 안 다음에 스크립트로 만드는건 괜찮지만
이벤트로 만들수도 없는걸 그저 남이 만들어준 스크립트만 가져다 쓰는건
자신의 발전이 없어지게 됩니다.
발전이 없으면 이후에 똑같은 문제가 있을 때 또다시 막혀버리게 되겠죠...@_@; -
?
아.. 게임의 데이터라는 걸 전혀 몰랐네요 ㅠㅠ
답변 정말 감사합니다. 이벤트로 만들었어요 :) -
?
커먼이벤트와 이벤트에 만들어줄 내용의 예제입니다.
(첨부파일 확인하세요)
-
?
헉!.. 이렇게 친절하게까지... 정말 감사합니다 ㅠㅠ
근데 한가지 질문이 있는데, 라벨이 뭔가요? 이 이벤트에 꼭 있어야 되는건가요? (제꺼랑 라벨 부분이 달라서요) -
?
라벨관련 기능은 [라벨] 과 [라벨 점프] 가 있습니다.
[라벨] 로 만든 곳으로 [라벨 점프] 를 사용해서 이동할 수 있는거죠.
꼭 필요한것은 아니지만 라벨을 사용해서 불필요한 처리를 줄여준거죠. -
?
4번째줄에 SceneManager.return # 이걸 안넣어주면 화면이 멈추더라구요 4개다 넣어보세용
http://avangs.info/270440
이 게시물이 비슷한 내용이긴 한데
전 rpg vx ace를 쓰고 있어서요..