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 5453
597 기타 Fullscreen++ by Zeus81 (VX/VXA) 2 Alkaid 2012.09.01 2233
» 전투 Slip_Damage_Ex - 슬립데미지 확장기능 (상태별 슬립데미지 적용) 7 허걱 2012.07.24 2200
595 메시지 메시지를 빠르게 넘겨주는 스크립트 3 타카나시 소라 2012.07.23 5050
594 전투 Team_Ilias's_Old_Project_Demo 4 습작 2012.07.11 2102
593 맵/타일 누가 이전에 올렸을지도..... KGC_MapLightening 3 file 클로버군 2012.07.02 2747
592 파티 5인 파티 프로젝트 V1.1 4 file 지나가는떡꼬치 2012.06.30 2988
591 기타 Etude87_GAGA_Chat 4 습작 2012.06.14 1918
590 이름입력 Etude87_HG_Hangul_Name_Scene file 습작 2012.06.14 1949
589 기타 Etude87_Hangul_utf8_List 습작 2012.06.04 1668
588 전투 Etude87_Tankentai_Addon ver.1.0 7 file 습작 2012.06.03 2885
587 퀘스트 퀘스트 마크 표시용 스크립트 10 file 허걱 2012.05.22 3705
586 그래픽 Arevulopapo's Particle Engine for VX/Ace by PK8 1 Alkaid 2012.05.13 2876
585 기타 078656577er님의 스크립트를 개조한, 사격용 스크립트 1 file 타코 2012.03.16 2520
584 맵/타일 Etude87_Map_Remember_VX ver.1.2 3 습작 2012.03.06 2431
583 아이템 드롭 아이템 확장 6 신규회원 2012.02.24 2982
582 기타 멥 이름 띄우기 10 신규회원 2012.02.24 3630
581 저장 세이브 시스템 확장 스크립트 9 file 신규회원 2012.02.24 3316
580 저장 Neo Save System VI by Helladen 2 Alkaid 2012.01.15 2890
579 기타 화면 해상도(640 X 480) 스크립트 6 file 쿠쿠밥솥 2012.01.10 3977
578 전투 XAS Hero Edition VX Manual 번역 1 케이언 2012.01.02 3566
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