자유게시판

수십번의 밸런스 조절 후에 결정된 계산식.

 

 결과는

 

 물리공격의 경우 

 공격력 * 4 +   ( 스킬 파워 *  (공격력 *3 + 정신력)/2 )의 정수 - 방어력 * 3 - 방어력*스킬파워

 로서 나타남.

 

다른 스탯이 미치는 공격의 경우에도 위와 같은 식으로 데미지가 계산되며

크리티컬 시 원래 데미지에 곱해지는 계수는 스킬마다 다르다.

(예를 들면  기습의 경우는 원 공격의 2배 데미지가 크리티컬 시 적용되지만

  급소 찌르기 스킬의 경우 원 공격의 3.5배의 데미지가 크리티컬 시 적용됨)

 

여기에 추가해야할 데미지 계산식은 방어무시판정과 방어시 2배 데미지

 플래그를 모든 스킬의 데이터베이스에 적용하고,

이를 데미지 계산식에 적용하는 것 등.

 

  조만간 전투 씬 까지 완료되면 스토리 폭풍제작하여 체험판 낼게요.

 

    # 제일 명중 판정
    hit = skill.hit
    hit *= user.hit / 100
    hit_result = (rand(100) < hit)
   
    # 불확실한 스킬의 경우는 유효 플래그를 세트
    effective |= hit < 100
    pow_rate = 1
   
    # 명중의 경우
    if hit_result == true
      # 위력을 계산
      if skill.classify == 1 || skill.classify == 2 || skill.classify == 3
        if user.isactor
          power = user.str*4+(skill.power[@actor.id] * (user.str*3+user.men)/2).to_i
        elsif user.isactor == false
          power = user.str*4+(skill.power[@actor.id+100] * (user.str*3+user.men)/2).to_i
        end
        if power > 0 # 파워가 0보다 크면
          power -= self.dex*3 + (skill.power[@actor.id] * self.dex).to_i
          power = [power, 1].max
        end
      elsif skill.classify == 4 || skill.classify == 5 || skill.classify == 6
        if user.isactor
          power = user.int*4+(skill.power[@actor.id] * (user.int*3+user.men)/2).to_i
        elsif user.isactor == false
          power = user.int*4+(skill.power[@actor.id+100] * (user.int*3+user.men)/2).to_i         
        end
        if power > 0 # 파워가 0보다 크면
          power -= self.reg*3  + (skill.power[@actor.id] * self.reg).to_i
          power = [power, 1].max
        end
      elsif skill.classify == 7 || skill.classify == 8 || skill.classify == 9
        if user.isactor
          power = user.men*4+(skill.power[@actor.id] / 2 * (user.men*3+user.int/2+user.atk/2)).to_i
        elsif user.isactor == false
          power = user.men*4+(skill.power[@actor.id+100] /2 * (user.men*3+user.int/2+user.atk/2)).to_i
        end
        if power > 0 # 파워가 0보다 크면
          power -= self.men*3  + (skill.power[@actor.id] * self.men).to_i
          power = [power, 1].max
        end
      end
     
      # 배율을 계산
      rate = 1
      # 기본 데미지를 계산
      self.damage = power.to_i
     
      # 크리티컬 수정
      if rand(100) < user.cri_rate + skill.cri_rate
        self.damage += (self.damage* 7/10 * skill.cri_power).to_i
        self.critical = true
      end
       
      # 데미지의 부호가 정의 경우
      if self.damage > 0
        # 방어 수정
        if self.guarding?
          self.damage /= 2
        end
      end
      # 분산
      if skill.variance > 0 and self.damage.abs > 0
        amp = [self.damage.abs * skill.variance / 100, 1].max
        self.damage += rand(amp+1) + rand(amp+1) - amp
      end
      # 제2 명중 판정
      eva = 8 + self.eva
      hit = self.damage < 0 ? 100 : 100 - eva * skill.eva_f / 100
      hit = self.cant_evade? ? 100 : hit
      hit_result = (rand(100) < hit)
      # 불확실한 스킬의 경우는 유효 플래그를 세트
      effective |= hit < 100
    end
   
    # 명중의 경우
    if hit_result == true
      # 위력 0 이외의 물리 공격의 경우
      if skill.power != 0 and skill.atk_f > 0
        # 스테이트 충격 해제
        remove_states_shock
        # 유효 플래그를 세트
        effective = true
      end
      # HP 로부터 데미지를 감산
      last_hp = self.hp
      self.hp -= self.damage
      effective |= self.hp != last_hp
      # 스테이트 변화
      @state_changed = false
      effective |= states_plus(skill.plus_state_set)
      effective |= states_minus(skill.minus_state_set)
      # 위력이 0 의 경우
      if skill.power == 0
        # 데미지에 공문자열을 설정
        self.damage = ""
        # 스테이트에 변화가 없는 경우
        unless @state_changed
          # 데미지에 "Miss" 를 설정
          self.damage = "Miss"
        end
      end
    # 미스의 경우
    else
      # 데미지에 "Miss" 를 설정
      self.damage = "Miss"
      # 위기 플래그를 클리어
      self.critical = false
    end
    # 전투중이 아닌 경우
    unless $game_temp.in_battle
      # 데미지에 nil 를 설정
      self.damage = nil
    end
    # 메소드 종료
    return effective
  end

Who's 시트르산

?

제작중인 게임 :

Midnight Blue  (미드나잇 블루) - RPGXP

 공동제작 : 휘파람개비님

 시스템 : 45%, 스토리 : 10%, 맵 : 3%, 제작 : 1%

 CG : 2%         총 진행도 : 3%

 

 이번 게임은 공동제작인 만큼 최선을 다하겠습니다 ^^

기다려주세요~~

Comment '3'

List of Articles
분류 제목 글쓴이 날짜 조회 수
공지 아방스 게시물 · 댓글 작성 규칙 (최근 수정일 2015.11.25) 17 file 완폐남™ 2012.07.17 40616
잡담 졸라맨 도전만화를 보고나서.. 6 완폐남™ 2011.01.17 475
추가로 할 말이 있는데... 3 질풍처럼 2011.01.17 482
웡...이거 뭔가요.. 8 질풍처럼 2011.01.17 652
심플한 스킬 하나 6 현문 2011.01.17 525
잡담 필살기 완성이요~~ 파이어 2011.01.17 367
음 제랙인건가요? 3 코토 2011.01.16 637
막장 랑그릿사 온라인 +_+ 2 현문 2011.01.16 712
잡담 이야, 파이어 폭스가 참 좋네요. 12 츠코미 2011.01.16 467
잡담 [미드나잇 블루] XP 용 사이드 뷰 스크립트 제작중 10 시트르산 2011.01.16 484
잡담 아-완전 어이없습니다 1 칼리아 2011.01.16 475
제작 영상 떡밥이 아니라 개밥 4 JACKY 2011.01.16 529
잡담 eminem - beautiful 1 인생의먹구름 2011.01.16 426
오랜만에 4 과거로의고리 2011.01.16 556
제작 영상 현재 일러스트 제작현황 6 칼리아 2011.01.16 604
잡담 도트완료! 1 칼리아 2011.01.16 335
막장 미드나잇 블루의 스킬 데미지 계산식 스크립트 3 시트르산 2011.01.16 570
잡담 새벽 3시의 정신나간 알만툴 다루기 9 케이언 2011.01.16 784
잡담 안녕하세요. 1 레드 2011.01.16 405
잡담 망할 라숀군!ㅠㅠ 6 칼리아 2011.01.16 348
잡담 오랜만에 손그림투척요 10 JACKY 2011.01.16 480
목록
Board Pagination Prev 1 ... 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 ... 755 Next
/ 755