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 5408
41 전투 VX SRPG 한글번역 (최종수정) 26 file 에틴 2010.08.25 7418
40 전투 VX SRPG3d 수정본(1) 12 아이미르 2011.10.19 4620
39 전투 VX SRPG3d(한글번역) 8 file 아이미르 2011.10.15 5036
38 전투 VX 사이드 뷰 전투 (2003 방식) 16 드로드맨 2008.02.24 4996
37 전투 VX]Mog Battleback XP 1.0 11 file WMN 2008.04.06 3869
36 전투 VX_SRPG2 by tomoaky 1 습작 2013.05.13 2053
35 전투 VX에서 전투배경을 XP스타일로 나오게 하는 스크립트 7 아방스 2008.01.25 4844
34 전투 WGB배틀 시스템. 59 file 카르와푸딩의아틀리에 2009.06.30 8777
33 전투 XAS Hero Edition VX 15 Alkaid 2011.12.28 4234
32 전투 XAS Hero Edition VX Manual 번역 1 케이언 2012.01.02 3558
31 전투 [RPG VX]기술에 쿨타임을 부여하는 스크립트 3 스리아씨 2013.12.05 2353
30 전투 [vx] ATB 시스템. 10 만들어보자꾸나 2008.07.05 4925
29 전투 [덮어씌우기]Window_ActorCommand_EX 4 맛난호빵 2011.03.12 2346
28 전투 대미지 MP전환 스테이트 : 수정 => 마나쉴드 7 Evangelista 2009.08.29 2384
27 전투 대미지%MP흡수 스크립트 4 Evangelista 2009.08.31 2279
26 전투 돌아가는 전투 메뉴 시스템 33 아방스 2008.08.29 5085
25 전투 맨손 공격시 2번공격하는 스크립트 5 아방스 2008.01.24 2358
24 전투 반사 스테이트 -KGC 4 카르와푸딩의아틀리에 2009.09.12 2661
23 전투 방어를 했을경우 hp / mp 회복 되도록 하는 스크립트 15 아방스 2008.01.22 3751
22 전투 방패가없어? 그럼 방어못하게하는 스크립트. 16 file 할렘 2009.02.07 3425
Board Pagination Prev 1 2 3 4 5 Next
/ 5