?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

스크립트 쪽은 도저히 제가 다룰 부분이 아니네요.. (제 전공은 프로그래밍이 아니라 기ㅎ...)

 

 

저번에 올린 질문 글로 원하던 상황을 구현하려고 했고

 

친절하신 분들(?)의 많은 도움을 받았는데요.

 

우연히 아X스에서 lud라는 분의 스크립트를 발견하게 되었습니다.

 

class Game_Party < Game_Unit
 alias gameover_when_alive_only_hero_all_dead? all_dead?
 def all_dead?
 if $game_party.in_battle
 if $game_party.members[1..$game_party.members.size].all? {|m| m.dead?}
 return true
 end
 end
 gameover_when_alive_only_hero_all_dead?
 end
end

 

 

저와 비슷한 방식을 원한 분이 계셔서 그 질문에 대한 답을 스크립트로 만드셨더라고요...

 

저 스크립트를 쓰게 되면 파티원 1명만 남으면 게임오버됩니다. 그것도 바로...

 

 

 

그런데 문제가 있더군요.

 

안 그래도 전투시스템을 어떤 것으로 할지 고민이 많아서 얼굴이 나오는 프론트뷰 시스템을 쓰고 있는데

 

어찌어찌해서 다른 파티편성스크립트를 이용해 주인공(?)말고 다른 파티원들만 교체가 가능하게 만들었습니다.

 

(그래도 마음에 안 들어서 전투시스템을 기본으로 바꾸는게 어떨지 생각중이지만 이건 다음에 해결하기로 하고...)

 

 

그런데 그것이 의미가 없네요..

 

위 스크립트는 현재 전투에 나가 있는 파티원이 1명일때 게임오버가 되는 식이라서

 

교체할 수 있는 대기 멤버들이 아무리 많아도 전투에서 1명빼고 다 죽으면 바로 게임오버됩니다..

 

 

스크립트는 잘 모르지만 위 스크립트의 내용이

 

"언제 게임오버가 되는가? 영웅 1명만 살거나 혹은 다 죽거나할 떄"

 

그럼 이걸 다 죽는 범위를 대기멤버(전투원이 아닌 파티전원)까지 확장시키면 제대로 작동할 것 같은데

 

그걸 모르겠습니다. 

 

 

이걸 해결 못한다면 아예 파티교체를 못하는 게임으로 만들어야겠죠.

 

혹시모르니 추가로 말씀드리면 파티교체시스템으로는 Yanfly Engine Ace - Party System 이걸 쓰고 있습니다.

 

(전투에서도 쓰게 하고 싶은데 쓰고 있는 전투시스템과 호환이 안 되는지 이상하게 작동해버리는...)

 

 

저번에 도움주신 최저님께는 죄송하다는 말씀을...전합니다.

 

 

?
  • ?
    최저 2016.05.26 14:11
    한 번 전투 도중에 이벤트로 '조건 분기 -> if D(대기멤버)의 상태가 전투 불능이면, 대화창 "D 전투불능"을 띄운다.'를 테스트해보세요. 전투 중에 대기 멤버의 상태까지 인식될 지 어떨 지는 잘 모르겠지만, 만약 "D 전투불능"이 떠서 정말로 인식되는 것이 가능하다면, lud님이 만드신 스크립트 대신에 아래와 같이 하는 것도 괜찮을 것 같습니다.


    트레이너, 그리고 현재 전투 멤버인 A, B, C, 그리고 교체 가능한 멤버가 D, E이고, 지금 갖고 있지 않은 멤버들이 F, G, H, I라면,

    (0+1*X 턴 마다,)
    if A의 상태가 전투 불능이면 변수 Xa에 1을 대입한다. (그 밖의 경우라면 0을 대입)
    if B의 상태가 전투 불능이면 변수 Xb에 1을 대입한다. (그 밖의 경우라면 0을 대입)
    if C의 상태가 전투 불능이면 변수 Xc에 1을 대입한다. (그 밖의 경우라면 0을 대입)
    if D의 상태가 전투 불능이면 변수 Xd에 1을 대입한다. (그 밖의 경우라면 0을 대입)
    if E의 상태가 전투 불능이면 변수 Xe에 1을 대입한다. (그 밖의 경우라면 0을 대입)

    if F의 상태가 전투 불능이면 변수 Xf에 1을 대입한다. (그 밖의 경우라면 0을 대입)
    if G의 상태가 전투 불능이면 변수 Xg에 1을 대입한다. (그 밖의 경우라면 0을 대입)
    if H의 상태가 전투 불능이면 변수 Xh에 1을 대입한다. (그 밖의 경우라면 0을 대입)
    if I의 상태가 전투 불능이면 변수 Xi에 1을 대입한다. (그 밖의 경우라면 0을 대입)

    X = Xa + Xb + Xc + Xd + Xe + Xf + Xg + Xh + Xi


    if X가 [트레이너를 제외한 총 파티원들의 수(이 경우에 이 변수값은 5)]과 값이 같을 때 Game Over를 띄운다.



    (F, G, H, I를 이벤트에 넣은 이유는 모든 전투 이벤트에 적용시키기 위해서입니다. 이러면 현재 자신이 갖고 있는 멤버들이 어떻게 달라지더라도 적용되겠죠. 그런데 이게 전투 중에 대기멤버들의 상태를 읽어들일 수 있는 지 없는 지는 저도 아직 확인해보질 않아서 한 번 케이오피님이 테스트해보셔야 할 것 같습니다. 만약 읽혀지지 않는다면 이 코드는 의미 없어지는 거겠지만요ㅠ)
  • ?
    케이오피 2016.05.26 14:22
    한번 확인해보야겠네요.
    사실 lud님의 스크립트를 이용하려고 했던건 전투이벤트에 모든 액터를 넣어주는 것이 귀찮아서 손쉽게 하려던 것인데
    역시 쉽게 가려는 했던 것이 문제일까요...? 이 시스템이 구현되는 게임이 워낙 캐릭터가 많은 컨셉이라 사실 전투말고도 그런 식으로 모든 경우의 수를 집어넣어야 되는 상황이 많아서 일일히 하기 너무 귀찮아지는 부분이라...전투만이라도 쉽게 하고 싶었는데 어렵네요..
    한번 만들어놓으면 커먼이벤트로 불러오면 되니까 사실 시간만 있다면 어려운 건 없지만, 최근 이거 때문에 게임자체를 포기할까도 생각중이네요. 아무래도 알만툴 내에서 쉽게 만들 수 있는 시스템이 아니다보니(그렇다고 다른 툴을 사용하기에는 배울 시간이 없고..) 시간을 쏟아붓던가 아니면 빨리 포기하고 기획하고 있는 다른 게임으로 빨리 넘어가야겠습니다.
    여기다 푸념까지 적어서 죄송하네요...
  • ?
    최저 2016.05.26 14:29
    음...확실히 파티 멤버들이 수십명 단위 이상이면 이렇게 일일히 변수들을 적는 것도 힘들 것 같긴 하네요...
    그래도 제 생각엔 한 번 만들어 보시는 게 좋을 것 같아요. 일일히 적는데 시간이 좀 걸리긴 하겠지만 사실 그래봤자 대략 한두시간이나 두세시간 정도면 만들 수 있을테니까요. 그 정도 시간이면 그렇게 큰 문제는 아니지 않을까 조심스럽게 제 개인적인 생각을 적어봅니다.
  • ?
    케이오피 2016.05.26 14:41
    수십명이라면 저도 그냥 조금 귀찮구나 하면서 할텐데요...
    문제는 (적어도 현 단계에서 최종적으로 기획되어 있는) 나올 캐릭터가 수 백명 단위입니다. 캐릭터가 999명이 한계라서 그 이상 만들 수는 없지만 최대한 집어넣을 수 있는 만큼 집어넣는 것이 계획이라서요.
    아직 실험은 해보지 못 했는데, 위와 같은 이벤트를 활용하게 되면 수백의 변수를 버리게(?) 되어서, 다른 부분에 쓸 수 있는 변수가 또 적어지죠..
    그 일단 위에서도 '트레이너'라고 표현하셨고ㅡ 저도 전에 포켓몬을 예시로 들었기 때문에 더 설명하자면 '포켓몬'게임을 만드는 것은 아니지만 비슷한 부류의 게임인 건 맞습니다. 그런데 지금 포켓몬게임에서 나오는 포켓몬 종류만 해도 700이 넘고, 앞으로 더 나올 계획이지만, 제가 만드는 게임의 원작도 등장캐릭터(..라고 해야할지 뭐라 해야할지)가 1000종류 이상이다보니...
    물론 다 등장은 못 시키고, 유명한 것만 추려서 등장시켜도 500명 내외는 될 것 같습니다. (정작 그 원작을 바탕으로 한 정식게임 중 모바일을 제외한 게임 중에 캐릭터가 500종류 이상 등장한 적이 없다는 게..)
    만약 제가 말한 모든 문제를 다 해결하고 귀차니즘을 다 이겨낸다치더라도, 캐릭터들간의 밸런스문제가 심각하겠죠.??!!
    일단은 어렵게 계획했으니 당장은 진행을 못해도 언젠가 조금씩 만들 생각으로 알아보고 있는데, 진짜 전투만이라도 어떻게 해보고 싶네요. 그래도 좋은 의견주셔서 감사합니다. 질문글에 쓸데없이 올린 제 생각에 댓글도 주시고, 도움도 주시고..
  • ?
    최저 2016.05.26 14:46
    헉... 수백명 단위였구나... 그러면 확실히 이렇게 일일히 적는 건 무리가 있겠군요. 역시 그러면 lud님 같은 분들이 본문의 문제를 수정한 스크립트를 만드는 것 말고는 방법을 찾기 힘들 것 같네요ㅠ
  • ?
    케이오피 2016.05.26 14:55
    스..스크립트를 내놔!!!! (←정신이상증)
    스크립트 못 찾으면 이 게임은 잠시 보류하기로...
  • ?
    케이오피 2016.05.26 19:31
    아, 해결했습니다.

    class Game_Party < Game_Unit
    alias gameover_when_alive_only_hero_all_dead? all_dead?
    def all_dead?
    if $game_party.in_battle
    if $game_party.all_members[1..$game_party.all_members.size].all? {|m| m.dead?}
    return true
    end
    end
    gameover_when_alive_only_hero_all_dead?
    end
    end

    이렇게 하니까 '모든all'파티 멤버를 대상으로 인식하네요. 대기멤버가 살아있으면 절대 게임오버되지 않습니다.
    다만 무적 1명만 남겨두고, 계속 배틀을 진행할 수 있는데, 상대가 자해기술을 쓸 경우, 싸우지도 않고 이겨버릴 수도 있네요...
    이건 자해스킬을 없애면 되니까 문제 없습니다. 아니면 바꾸지 않으면 안 되는 암묵의 룰을 적용해서?!

    어쨌든 이것으로 해결했고, 이제 파티편성 가능한 전투시스템만 찾으면 스크립트를 활용하는 시스템은 거의 완성이네요.
  • ?
    최저 2016.05.26 20:10
    오 다행이군요!

List of Articles
번호 제목 글쓴이 날짜 조회 수
8428 선택지 타이머 관련 질문입니다. 2 글그림2 2016.06.02 653
8427 MV에서, 몹에게 가까이 가면 쫒아오고, 멀어지면 안 쫒아오는 이벤트 만드는 방법좀 가르쳐주세요. 8 천가이 2016.06.02 1253
8426 알만툴 vx 테스트 실행시키면 검은색 화면이되요... 4 file fate세이버 2016.06.01 2007
8425 플레이어가 파티원을 통과하지 못하게 할 수 있나요? 2 듀얼쇼크 2016.05.31 546
8424 초보자.. MV 플러그인 질문입니다. (fade in/ out) 5 huguduk 2016.05.29 637
8423 왕초보잔데 도저히 모르겠습니다... 도와주세요... 5 소심한소시민 2016.05.28 724
» 주인공(파티원1명)만 남았을 때 게임오버되는 스크립트를 수정하고 싶습니다..(해결?!) 8 케이오피 2016.05.26 1346
8421 윈도우로 네코 플레이어 테스트 어떻게 하나요? 2 이오리 2016.05.24 623
8420 비전투 파티원을 만들고 싶습니다. 25 케이오피 2016.05.23 2566
8419 캐릭터 관련 스크립트 질문 4 file 로우킥 2016.05.19 617
8418 고요한 허무의서 질문드립니당! 레드드래곤 동굴있잔항요 캐망 2016.05.17 174
8417 네코쯔꾸르 1 은비달빛 2016.05.16 681
8416 Rpg xp ,Rpg vx ,Rpg vx Ace 뭐가 다른거죠?? 7 코와이네~ 2016.05.15 1754
8415 아오오니다운링크 1 박사다 2016.05.14 2595
8414 링크주세요댄싱오니 2 박사다 2016.05.14 2152
8413 광고수익비 , 조회 1 루시드림 2016.05.14 240
8412 전투 중 위치에 대해 질문드립니다! (사진첨부) 4 file DD434 2016.05.14 893
8411 MV에서, 전투중에 공격이나 피격시 스탠딩CG가 바뀌게 할 수 있을까요? 1 DD434 2016.05.13 699
8410 MV에 메시지창 스킵 기능이 있는지 궁금합니다 1 DD434 2016.05.10 1856
8409 쯔꾸르겜 실행 난도티 2016.05.09 456
Board Pagination Prev 1 ... 16 17 18 19 20 21 22 23 24 25 ... 442 Next
/ 442






[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)