질문과 답변

Extra Form


맵상에서 "스크립트 콜"로 이런식으로 체력만 퍼센트로 깍이게 했는데요.

게임오버가 되버리는데, 게임오버가 안되게 하려면 어떻게 해야할까요?


if문으로 멤버의 체력을 얻어서, 1을 남겨주면 되지 않을까라는 생각을하는데, 어렵네요...


 $gameParty.members().forEach(function(actor) { if (actor.isAlive()) { actor.gainHp(-(actor.mhp * 0.2)) }} );


어떻게 해야할까요...?


actor.isAlive()를 체크하면 살아있을것 같은데...

체크하고서 체력을 깍기 때문인지 게임오버 되버리네요...

 

 어떻게 해야할까요...


------------------------------------


$gameParty.members().forEach(function(actor) { actor.gainHp(-(actor.mhp * 0.2)) } );

$gameParty.members().forEach(function(actor) { if (!actor.isAlive()) { actor.setHp(1) }} );


이런식으로 두번 작동시켜서 최소 1피를 남길 수가 있더라고요.

그런데 연속으로 사용하면 죽지는 않는데, 0피가 되는 현상이 있네요...

수식을 하나로 줄이려면 어떻게 작성해야할까요..?

 

 

 

 

 

■ 질문전 필독!
  • 질문할 내용이 이 게시판이나 강좌에 이미 있는지 확인합니다.
  • 하나의 게시물에는 하나의 질문만 합니다.
  • 제목은 질문의 핵심 내용으로 작성합니다.
  • 질문 내용은 답변자가 쉽게 이해할 수 있도록 최대한 상세하게 작성합니다.
  • 스크립트의 전문이 필요할 경우 txt 파일 등으로 첨부해 주시기 바랍니다.
  • 답변받은 게시물은 삭제하지 않습니다.
  • 답변이 완료된 경우 해당 답변해주신 분들께 감사의 댓글을 달아줍니다.
    • 처음 오신 분들은 공지 게시물을 반드시 읽어주세요!

※ 미준수시 사전경고 없이 게시물을 삭제합니다.

Comment '2'
  • profile
    몽롱하다 2018.09.11 22:52
    자문자답이지만...
    $gameParty.members().forEach(function(actor) { if ( actor.hp - (actor.mhp * 0.2) <= 1 ) { actor.setHp(1) } else { actor.gainHp(-(actor.mhp * 0.2)) }} );

    의외로 간단한 것이였군요...
  • ?
    LuD 2018.09.12 12:01
    $gameParty.members().forEach(function(actor) { Math.max(1,actor.gainHp(-(actor.mhp * 0.2))) } );
    음...? 이렇게 하면 될것 같습니다...!?

    Math.max(n1, n2, ..., n) 이런식으로 하면 그중에서 큰 숫자가 선택되는데.. 1보다 적을경우는 1이 선택되도록 하면 될듯 하네요.
    문법이 정확히 맞는지는 잘 모르겠어요;;

List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 12442
Board Pagination Prev 1 ... 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 Next
/ 83