질문과 답변

Extra Form

 

$game_party.members.each { |actor| actor.hp -= (actor.mhp * 0.1).to_i }

이런식으로 스크립트를 작성했습니다.

 

각 액터의 체력 -= 액터의 최대체력 * 0.1

이러한 식이 되어서 액터의 최대체력이 1000이라고하면, 100씩 깍이는 것이죠.

그런데 문제는 저렇게 스크립트로 감소시키니깐 체력이 0 이하가 되면 자동으로 게임오버가 되어버리더군요...

 

체력이 0 이하가되면 자동으로 게임오버시키지 않는 방법이 있는지 여쭤봅니다...

최저체력이 1 이되는 것 입니다...

 

$game_party.members.each { |actor|next if actor.dead?actor.change_hp(-10, false)actor.perform_collapse_effect if actor_dead?}

웹상에서 이런식을 찾았는데 어떻게 조합하면 잘되지 않을까 했는데, 잘모르겠습니다만, 일단 한번 올려봅니다...

 

도와주세요!

 

 

 

 

 

 

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

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

Comment '4'
  • profile
    몽롱하다 2016.02.28 18:05
    아 해결했습니다~

    for actor in $game_party.members.each
    actor.hp -= (actor.mhp * 0.1).to_i
    if actor.dead?
    actor.hp = 1
    end
    end
  • ?
    LuD 2016.02.28 23:16
    $game_party.members.each { |actor| actor.hp = [actor.hp - (actor.mhp * 0.1).to_i, 1].max }
  • profile
    몽롱하다 2016.02.29 21:12
    헐... 와... 장난아니네요............... 짱이에요................
    [].max 해주는 이유가 뭔지 알 수 있을까요 ㅠㅠ?
  • ?
    LuD 2016.03.01 17:02
    [].max 같은 경우는 배열의 항목 값 중에서 큰 값을 선택하는 겁니다.
    위에서는 계산한 값과 1중에서 큰 값을 고르는게 되는거죠

    [3,1,4,5,9,2].max 를 했을 경우라면 9가 선택되겠죠.
    [].min 이라는 것도 있는데 이때는 최소값을 선택합니다.
    [3,1,4,5,9,2].min 이라고 하면 1이 선택되겠네요.

List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 12451
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