XP 스크립트

#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/    ◆入手経験値&金増加 - KGC_ExpGoldIncrease◆
#_/----------------------------------------------------------------------------
#_/  戦闘後に獲得する経験値・金を増加する機能を追加します。
#_/  Provides the function which increases gain EXP and Gold of battle result.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

#==============================================================================
# ★ カスタマイズ項目 - Customize ★
#==============================================================================

module KGC
  # ◆増加ステートの重複を許可
  ### Permits repetition of gain states.
  EXPGLD_INC_PERMIT_DOUBLE = true
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

$imported = {} if $imported == nil
$imported["ExpGoldIncrease"] = true

if $game_special_states == nil
  $game_special_states = {}
  $data_states = load_data("Data/States.rxdata")
end
# 経験値○%ステート
### <e.g.> GainEXP150%
$game_special_states["inc_exp"] = /(?:(?:경험치)|(?:GainEXP))(d+)(%|%)/
# 入手金○%ステート                   
### <e.g.> GainGold150%           
$game_special_states["inc_gold"] = /(?:(?:입수금)|(?:GainGold))(d+)(%|%)/

#==============================================================================
# ■ Game_Actor
#==============================================================================

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ● EXP の変更
  #    exp : 新しい EXP
  #--------------------------------------------------------------------------
  def exp=(exp)
    rate = calc_exp_increase_rate(KGC::EXPGLD_INC_PERMIT_DOUBLE)
    exp = @exp + (exp - @exp) * rate / 100
    @exp = [[exp, $imported["LimitBreak"] ?
      KGC::LB_ACTOR_EXP_LIMIT : 9999999].min, 0].max
    # レベルアップ
    while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
      @level += 1
      # スキル習得
      for j in $data_classes[@class_id].learnings
        learn_skill(j.skill_id) if j.level == @level
      end
    end
    # レベルダウン
    while @exp < @exp_list[@level]
      @level -= 1
    end
    # 現在の HP と SP が最大値を超えていたら修正
    @hp = [@hp, self.maxhp].min
    @sp = [@sp, self.maxsp].min
  end
  #--------------------------------------------------------------------------
  # ● 経験値増加率計算
  #    permit_double : 重複許可
  #--------------------------------------------------------------------------
  def calc_exp_increase_rate(permit_double)
    rate = 100
    max_rate = -1
    # ステート[経験値○%]判定
    self.states.each { |state|
      if $data_states[state].name =~ $game_special_states["inc_exp"]
        if permit_double
          rate = rate * $1.to_i / 100
        else
          max_rate = [$1.to_i, max_rate].max
        end
      end
    }
    unless permit_double
      rate = [max_rate, 0].max
    end
    return rate
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Game_Enemy
#==============================================================================

class Game_Enemy < Game_Battler
  #--------------------------------------------------------------------------
  # ● ゴールドの取得
  #--------------------------------------------------------------------------
  alias gold_KGC_ExpGoldIncrease gold
  def gold
    n = gold_KGC_ExpGoldIncrease
    rate = calc_gold_increase_rate(KGC::EXPGLD_INC_PERMIT_DOUBLE)
    return n * rate / 100
  end
  #--------------------------------------------------------------------------
  # ● ゴールド増加率計算
  #    permit_double : 重複許可
  #--------------------------------------------------------------------------
  def calc_gold_increase_rate(permit_double)
    rate = 100
    max_rate = -1
    $game_party.actors.each { |actor|
      if actor.exist?
        # ステート[入手金○%]判定
        actor.states.each { |state|
          if $data_states[state].name =~ $game_special_states["inc_gold"]
            if permit_double
              rate = rate * $1.to_i / 100
            else
              max_rate = [$1.to_i, max_rate].max
            end
          end
        }
      end
    }
    unless permit_double
      rate = [max_rate, 0].max
    end
    return rate
  end
end
#-----------끝

귀찮아서 한글번역은 안했음;;;;;; (퍽)
사용법
스크립트 도입 후, 데이타베이스로 설정을 실시합니다.
우선, 스테이트에 「경험치○%」 「입수금○%」를 만듭니다.( ○은 임의의 자연수)
다음에[ 레이팅] (을)를0 ,[ 저항하지 않는다][ 배틀 종료시에 해제] (을)를 체크.
예를 들면 「경험치 2배」를 만들고 싶은 경우, 스테이트명을 「경험치200 %」로 하면OK 입니다.

출처는 KGC

Who's 백호

?

이상혁입니다.

http://elab.kr


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 6153
54 기타 대화창 글자 한글자씩뜨는 스크립트 7 백호 2009.02.22 2185
53 기타 [신기술 체험] 레이싱 스크립트 8 file 백호 2009.02.22 2185
52 기타 [신기술 체험] 솔로채팅창 17 file 백호 2009.02.22 2187
51 기타 클리어 횟수 기록하기 1 file 허걱 2009.08.22 2188
50 기타 [회복] 대기 회복 스크립트4.0 여러 오류 문제 해결 및 길이 줄임 11 file 코아 코스튬 2010.11.06 2189
49 기타 한계 돌파스크립트 8 G MAX 2009.09.03 2205
48 기타 [신기술 체험] 마우스 클릭 드래그 드롭 7 file 백호 2009.02.22 2246
47 기타 탤레포트 스크립트 3 앞잡이 2011.12.10 2260
46 기타 명령어들 6 지존!! 2010.07.24 2288
45 기타 rpgxp [체험판] 입니다. 6 file 인웅이 아부지 2010.01.12 2289
44 기타 스탯 13 file 이안 2010.01.17 2320
43 기타 거울에 캐릭 반사 20 ok하승헌 2010.02.18 2388
42 기타 레벨을 표시해주는 스크립트 5 백호 2009.02.22 2403
41 기타 쓸 용도가 없지만 마비노기 게임 만들 때 좋죠[장작스크립트] 5 백호 2009.02.22 2408
40 기타 [신기술 체험] 페스트 채팅 17 file 백호 2009.02.22 2412
39 기타 업데이트 (죽었을경우부활 )스크립트한글화 2 by향온 2011.09.27 2438
38 기타 대화 글씨가 한글자씩 나오는 스크립트 2 백호 2009.02.22 2464
37 기타 [신기술 체험] 마우스 사용 심플액션 7 file 백호 2009.02.22 2467
36 기타 맵 이동시 로딩 그림 표시 14 file 백호 2009.02.21 2479
35 기타 ABS 몬스터 HP 게이지 바 11 백호 2009.02.22 2485
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 Next
/ 13