XP 스크립트

몬스터가 드롭하는 아이템을 여러 개 지정할 수 있습니다.(기본적으로는 한 개만 지정할 수 있음)  물론 각각의 아이템에 대한 드롭율 지정도 가능합니다.  아이템 드롭 지정은 스크립트에 있는

Enemy_Item_Drops = { 에너미id => { 아이템id => 드롭률(%), ... }, ... }
Enemy_Weapon_Drops = { enemy_id => { item_id => drop_percent, ... }, ... }
Enemy_Armor_Drops = { enemy_id => { item_id => drop_percent, ... }, ... }
에서 지정합니다. (몬스터 수가 많으면 귀찮아짐?)


#==============================================================================
# ** Additional Enemy Drops
#------------------------------------------------------------------------------
# SephirothSpawn
# 2006-07-09
# Version 1
#------------------------------------------------------------------------------
# * Customization
#
#  ~ Enemy Item Drops
#    Enemy_Item_Drops = { enemy_id => { item_id => drop_percent, ... }, ... }
#
#  ~ Enemy Weapon Drops
#    Enemy_Weapon_Drops = { enemy_id => { item_id => drop_percent, ... }, ... }
#
#  ~ Enemy Armor Drops
#    Enemy_Armor_Drops = { enemy_id => { item_id => drop_percent, ... }, ... }
#==============================================================================

#------------------------------------------------------------------------------
# * SDK Log Script
#------------------------------------------------------------------------------
SDK.log('Additional Enemy Drops', 'SephirothSpawn', 1, '2006-07-09')

#------------------------------------------------------------------------------
# * Begin SDK Enable Test
#------------------------------------------------------------------------------
if SDK.state('Additional Enemy Drops')
 
#==============================================================================
# ** Game_Enemy
#==============================================================================

class Game_Enemy < Game_Battler
  #--------------------------------------------------------------------------
  # * Enemy Item Drops
  #  ~ enemy_id => { item_id => drop_percent, ... }
  #--------------------------------------------------------------------------
  Enemy_Item_Drops = { 1 => {1 => 50, 2 => 30, 3 => 10}
  }
  #--------------------------------------------------------------------------
  # * Enemy Weapon Drops
  #  ~ enemy_id => { weapon_id => drop_percent, ... }
  #--------------------------------------------------------------------------
  Enemy_Weapon_Drops = { 1 => {1 => 25}
  }
  #--------------------------------------------------------------------------
  # * Enemy Item Drops
  #  ~ enemy_id => { item_id => drop_percent, ... }
  #--------------------------------------------------------------------------
  Enemy_Armor_Drops = { 1 => {1 => 25}
  }
  #--------------------------------------------------------------------------
  # * Get Drop Items
  #--------------------------------------------------------------------------
  def get_drop_items
    # Item, Weapon & Armor Collection List
    items = []
    # Item Lists
    if Enemy_Item_Drops.has_key?(@enemy_id)
      # Passes Each Item
      Enemy_Item_Drops[@enemy_id].each do |item_id, drop_percent|
        # Adds items If Randomly Dropped
        if rand(100) < drop_percent
          items << $data_items[item_id]
          $game_party.gain_item(item_id, 1)
        end
      end
      # Passes Each Weapon
      Enemy_Weapon_Drops[@enemy_id].each do |weapon_id, drop_percent|
        # Adds items If Randomly Dropped
        if rand(100) < drop_percent
          items << $data_weapons[weapon_id]
          $game_party.gain_weapon(weapon_id, 1)
        end
      end
      # Passes Each Armor
      Enemy_Armor_Drops[@enemy_id].each do |armor_id, drop_percent|
        # Adds items If Randomly Dropped
        if rand(100) < drop_percent
          items << $data_armors[armor_id]
          $game_party.gain_armor(armor_id, 1)
        end
      end
    end
    # Return List
    return items
  end
end

#==============================================================================
# ** Window_BattleResult
#==============================================================================

class Window_BattleResult < Window_Base
  #--------------------------------------------------------------------------
  # * Add Multiple Drops
  #--------------------------------------------------------------------------
  def add_multi_drops
    # Collects Extra Droppings
    for enemy in $game_troop.enemies
      # Adds Extra Treasures
      @treasures << enemy.get_drop_items
    end
    # Flatten Array
    @treasures.flatten!
    # Sort Treasures By ID
    @treasures.sort! {|a, b| a.id <=> b.id}
    # Sort Treasures By Type
    @treasures.sort! do |a, b|
      a_class = a.is_a?(RPG::Item) ? 0 : a.is_a?(RPG::Weapon) ? 1 : 2
      b_class = b.is_a?(RPG::Item) ? 0 : b.is_a?(RPG::Weapon) ? 1 : 2
      a_class<=>b_class
    end
    # Adjust Height & Window Contents
    self.height = [@treasures.size * 32 + 64, 256].min
    self.contents = Bitmap.new(width - 32, @treasures.size * 32 + 32)
    # Adjust Y
    self.y = 160 - height / 2
    # Refresh Window
    refresh
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    if Input.press?(Input::UP)
      self.oy -= 4 if self.oy > 0
    elsif Input.press?(Input::DOWN)
      self.oy += 4 if self.oy < self.contents.height - 64
    end
  end
end

#==============================================================================
# ** Scene_Battle
#==============================================================================

class Scene_Battle
  #--------------------------------------------------------------------------
  # * Alias Listings
  #--------------------------------------------------------------------------
  alias seph_enemydrops_scnbtl_sp5 start_phase5
  #--------------------------------------------------------------------------
  # * Start After Battle Phase
  #--------------------------------------------------------------------------
  def start_phase5
    # Original Start Phase 5
    seph_enemydrops_scnbtl_sp5
    # Add Extra Item Drops
    @result_window.add_multi_drops
  end
end

#--------------------------------------------------------------------------
# * End SDK Enable Test
#--------------------------------------------------------------------------
end

Who's 백호

?

이상혁입니다.

http://elab.kr


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 6203
461 키입력 전체키 입력 스크립트 v4 by Cybersam 5 file 백호 2009.02.22 1948
460 키입력 Glitchfinder's Input Modules (XP/VX 공용) 2 Alkaid 2011.03.19 1952
459 이동 및 탈것 Super Simple Vehicle System Enhanced 8.0 by DerVVulfman 1 Alkaid 2010.12.12 1956
458 기타 [신기술 체험] 오투잼 스크립트 7 file 백호 2009.02.22 1959
457 전투 KGC_BattlerEffect(버틀러 효과) 2 file 백호 2009.02.22 1959
456 저장 세이브 & 로드 화면 개조 스크립트 file 백호 2009.02.21 1962
455 기타 [All RGSS] 윈도우 커서 숨기기/보이기 1 file Cheapmunk 2014.03.02 1963
454 메뉴 개별 메뉴 호출 단축키 스크립트 5 file 백호 2009.02.21 1965
453 HUD 맵 이름 뛰우기 10 WMN 2008.03.17 1966
452 상태/속성 KGC_StateIcon(스테이터스 아이콘 표시) 2 file 12345678 2010.02.03 1967
451 그래픽 MAWS: Modified Advanced Weather Script 1.2 by Agckuu Coceg 2 file Alkaid 2010.09.13 1969
450 기타 Project RGSS3 by joe5491 6 습작 2013.05.06 1970
449 저장 심플 세이브 로드(1개의 세이브 사용하기) 3 백호 2009.02.22 1972
448 메뉴 링 메뉴 Edited by Hypershadow180@rmxp.net 1 file 백호 2009.02.22 1975
447 스킬 스킬 레벨 스크립트 # 번역 진행중 6 빗자루씨 2010.02.11 1981
446 맵/타일 World Map 스크립트 1 file 백호 2009.02.21 1983
445 저장 Improved Save by gerrtunk 2 file Alkaid 2010.10.13 1983
444 장비 전투중에 장비변경 from RGSS Wiki 1 백호 2009.02.22 1988
443 기타 동료들이 기차처럼 줄줄 따라온다!? 7 file 백호 2009.02.21 1990
442 저장 렉없는 자동세이브(중복임??) 4 캉쿤 2011.09.12 1991
Board Pagination Prev 1 ... 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 ... 52 Next
/ 52