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 영어 잘하는 사람만 보세요..저도 모르겠음(무슨 스크립트인지) 3 Man... 2008.10.27 1372
596 KID's Luck Systems(무슨 뜻?) 4 Man... 2008.10.27 1378
595 (?스크립트) 스크립트 읽어서 그래픽 넣으세요.(영어 잘하는 사람만 권장...) 2 Man... 2008.10.27 1444
594 이동 및 탈것 대쉬금지의 변경 1 rukan 2009.07.02 1449
593 무슨 스크립트인지 모름 7 Man... 2008.10.26 1453
592 타이틀/게임오버 Random Title Screen 2 Man... 2008.10.28 1454
591 오디오 사운드 자동 변환 설정 rukan 2009.07.01 1461
590 메뉴 Etude87's Menu Editor for VX 25 습작 2015.01.14 1461
589 변수/스위치 Variable Criticals Man... 2008.10.28 1480
588 Skill Delay VX 4 Man... 2008.10.28 1503
587 기타 Drop Options 1.1 by Modern Algebra 4 Alkaid 2010.09.16 1509
586 타이틀/게임오버 Title Skip System : 타이틀 스킵 file 허걱 2014.03.19 1510
585 Sprite Mover 2 Man... 2008.10.27 1529
584 Path Finding 6 Man... 2008.10.08 1530
583 아이템 Item Price Changer 7 Man... 2008.10.28 1530
582 SephirothSpawn's Slanted Bars in VX 1.1 2 Man... 2008.10.28 1572
581 메뉴 Adding Extra Menu in lafia Script 2 Man... 2008.10.29 1574
580 영상 ??(Avi play ver beta 0.8) 4 Man... 2008.10.28 1575
579 기타 OriginalWij's Script Compilation 1.2 2 Alkaid 2010.09.20 1583
578 장비 Expansion_Suite V2.1! 6 Man... 2008.10.25 1593
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