VX 스크립트

# Slip Damage Ex - by 허걱
#
# - 한 턴이 지날 때 입는 슬립 데미지의 계산식을 상태별로 적용합니다.
#     (슬립데미지 속성이 있는 상태에만 적용됩니다.)
#
# 상태의 메모부분에 <s_value X> 를 적어주면 됩니다.
# X : 값 (또는 계산 식)
#
# 예>  
# <s_value 10>
# <s_value maxhp*0.1>
#
# 새로운 스크립트 섹션을 추가 후 본문의 모든 내용을 추가합니다.


class Game_Battler
  OVERLAP_DAMAGE = false      # 데미지 중복 설정  true / false
  # true 일 경우 모든 슬립데미지 적용
  # false 일 경우 가장 높은 데미지 적용
 
  DEFAULT_SLIP_DAMAGE = "maxhp * 0.05"    # 기본 데미지 값
 
  SLIP_DAMAGE_STRING = "<s_value (.*)>"     # 메모장에 적을 문자열 - (.*) 부분 수정금지
  #--------------------------------------------------------------------------
  # ● 슬립 데미지의 효과 적용 - 재정의
  #--------------------------------------------------------------------------
  def slip_damage_effect
    if slip_damage? and @hp > 0
      @hp_damage = apply_variance(get_slip_damage_value, 10)
      @hp_damage = @hp - 1 if @hp_damage >= @hp
      self.hp -= @hp_damage
    end
  end
  #--------------------------------------------------------------------------
  # ● 슬립 데미지의 적용값 취득
  #--------------------------------------------------------------------------
  def get_slip_damage_value
    val_list = []
    for state in states
      next unless state.slip_damage
      if state.note =~ /#{SLIP_DAMAGE_STRING}/
        val_list.push($1)
      end
    end
    if val_list.empty?
      value = eval(DEFAULT_SLIP_DAMAGE)
    else
      value = 0
      val_list.each {|val|
      new_value = eval(val)
      if OVERLAP_DAMAGE
        value += new_value
      else
        value = new_value if value < new_value
      end
      }
    end
    return value.to_i
  end
end

 

Who's 허걱

?

공개된 사이트에서 퍼온 자료를 제외한(이 경우는 글에 출처를 남깁니다.)

제가 올린 모든 글과 자작 자료에대해 무단으로 퍼가는것을 금지합니다.

Comment '7'
  • profile
    Lighna 2012.07.24 09:16
    DEFAULT_SLIP_DAMAGE = "maxhp * 0.05" # 기본 데미지 값
    여기서 maxhp는 단순한 문자열 아닌가욤?
  • ?
    허걱 2012.07.24 10:24
    maxhp 는 단순한 문자열이긴 하지만 Game_Battler 에서 사용할 수 있는 메소드이기도 합니다.
    위의 스크립트 상에서는 Game_Battler 에서 사용될 최대 HP 값을 나타내는 maxhp 로 쓰였죠.^^
    참고로 eval(문자열) 이라고 해줄 경우 문자열의 내용을 계산해 줍니다.
  • profile
    Lighna 2012.07.24 23:12
    ..........!
  • ?
    Rico 2012.12.30 22:30
    0.1 0.2가 무슨뜻인가요?
    maxhp 0.1 이면 최대hp의 0.1% 가 닳는다는 말인가요? 그렇게되면 0.1은 너무 적은 양인데..
    알려주세요 ㅜㅜ~
  • ?
    허걱 2012.12.30 22:43
    예로 들었던 <s_value maxhp*0.1> 부분을 보고 한 말 같습니다.
    maxhp 의 경우는 위쪽에서도 말했듯이 최대 HP의 값을 나타냅니다.
    그리고 maxhp*0.1 이라는 말은 0.1% 가 아니라 [maxhp 곱하기 0.1] 을 한 값을 나타내죠.
    예를들어 maxhp 의 값이 100 일경우 maxhp * 0.1 이라면 계산결과 10이라는 값을 얻습니다.

    단순한 계산이죠.
  • ?
    Rico 2012.12.30 22:52

    감사합니다! ^_^

  • ?
    허걱 2012.12.30 23:11

    맞습니다.
    뭐... 수학은 저도 머리아프기 때문에;;;
    소숫점 계산이나 분수계산등의 자세한 답변은 네이버에서 검색해 보시면 알거라 생각하네요.
    그럼 좋은게임 만드세요..^^


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 3 습작 2012.12.24 5398
597 상점 스킬 샾 스크립트 2.0 48 아방스 2008.03.05 6628
596 메뉴 매우 간단명료한 메뉴. 32 file 비극ㆍ 2010.04.23 6618
595 미니맵 KGC 미니맵 스크립트 (한글번역) 45 file 레오 2009.02.01 6555
594 이동 및 탈것 동료가 따라다니게 하는 스크립트 59 file 아방스 2008.01.23 6512
593 맵/타일 추가 맵칩 사용 - 공개 34 file 허걱 2009.08.19 6491
592 메시지 캐릭터 대화상자 - Character's Textbox ver 1.0 6 아방스 2010.12.17 6455
591 전투 RPG Tankentai SBS 3.4d + ATB 1.2c Kaduki 18 시트르산 2010.09.10 6449
590 HUD KH HUD (HP MP 게이지바 스크립트) 41 아방스 2010.12.17 6421
589 온라인 net VX[ RPGVX 온라인 스크립트 ] 19 file 제로스S2 2009.08.03 6389
588 메뉴 김태히님이 개조한 모그메뉴 스텟화면 43 file RPGbooster 2008.10.08 6360
587 온라인 온라인입니다 4 file 알피지GM 2010.03.07 6358
586 상점 상점을 색다르게 바꿔주는 스크립트 34 file 할렘 2009.02.02 6301
585 메뉴 파이날 판타지 IX 메뉴. 12 file 할렘 2009.02.06 6286
584 메시지 메시지 표시 시스템 [NMS3] 31 아방스 2009.01.24 6248
583 메뉴 스테이터스 창을 멋있게 쿨하게~!전신을 보여주자. 24 file 할렘 2009.02.06 6236
582 맵/타일 새로운 월드맵 만들기 (로맨싱사가풍) 37 file 078656577er 2009.10.09 6151
581 미니맵 미니맵 스크립트(아랫거랑 다른거) 75 file 츠키아 2008.08.08 6145
580 타이틀/게임오버 타이틀화면 커스터마이즈 29 file 可わいい 2009.03.16 6141
579 전투 GTBS 1.0 [스크립트] 24 아방스 2009.02.05 6141
578 퀘스트 퀘스트 스크립트 39 file RPGbooster 2008.10.11 6139
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 32 Next
/ 32