VX 스크립트

#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/ ◆ 드롭 아이템 확장 - KGC_ExtraDropItem ◆ VX ◆
#_/ ◇ Last update : 2012/02/24 ◇
#_/----------------------------------------------------------------------------
#_/ 적이 떨어뜨리는 아이템의 종류를 늘립니다.
#_/============================================================================
#_/ 【특수 시스템】≪전투 난이도≫ 보다 위에 도입해 주세요.
#_/ 【메뉴】≪몬스터 도감≫ 보다 아래에 도입해 주세요.
#_/ ※ 사용 방법
#_/ 메모 칸에 [드롭 타입:ID 확률]을 적어 주세요.
#_/ [타입]에는 아이템 = I(Item) 무기 = W(Weapon) 방어구 = A(Armor)
#_/ [ID]에는 적이 떨어뜨리는 아이템/무기/방어구의 ID를 기입해 주세요.
#_/ [확률]엔 아이템을 떨어뜨리는 확률을 지정합니다. n으로 하면 1/n확률입니다.
#_/ [확률]에 %를 붙이면, 드롭율을 백분율로 지정할 수 있습니다.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

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

module KGC
module ExtraDropItem
# 정규 표현
module Regexp
# 에너미
module Enemy
# 드롭 아이템
DROP_ITEM = /<(?:DROP|드롭)\s*([IWA]):(\d+)\s+(\d+)([%%])?>/i
end
end
end
end

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

#==============================================================================
# ■ RPG::Enemy
#==============================================================================

class RPG::Enemy
#--------------------------------------------------------------------------
# ○ 드롭 아이템 확장의 캐쉬 생성
#--------------------------------------------------------------------------
def create_extra_drop_item_cache
@__extra_drop_items = []

self.note.each_line { |line|
case line
when KGC::ExtraDropItem::Regexp::Enemy::DROP_ITEM
# 드롭 아이템
item = RPG::Enemy::DropItem.new
case $1.upcase
when "I" # 아이템
item.kind = 1
item.item_id = $2.to_i
when "W" # 무기
item.kind = 2
item.weapon_id = $2.to_i
when "A" # 방어구
item.kind = 3
item.armor_id = $2.to_i
else
next
end
# 드롭율
if $4 != nil
item.drop_prob = $3.to_i
else
item.denominator = $3.to_i
end
@__extra_drop_items << item
end
}
end
#--------------------------------------------------------------------------
# ○ 확장 드롭 아이템
#--------------------------------------------------------------------------
def extra_drop_items
create_extra_drop_item_cache if @__extra_drop_items == nil
return @__extra_drop_items
end
end

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

#==============================================================================
# ■ RPG::Enemy::DropItem
#==============================================================================

unless $@
class RPG::Enemy::DropItem
#--------------------------------------------------------------------------
# ● 공개 인스턴스 변수
#--------------------------------------------------------------------------
attr_writer :drop_prob # 드롭율
#--------------------------------------------------------------------------
# ○ 드롭율 취득
#--------------------------------------------------------------------------
def drop_prob
@drop_prob = 0 if @drop_prob == nil
return @drop_prob
end
end
end

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

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

class Game_Enemy < Game_Battler
#--------------------------------------------------------------------------
# ○ 확장 드롭 아이템의 취득
#--------------------------------------------------------------------------
def extra_drop_items
return enemy.extra_drop_items
end
end

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

#==============================================================================
# ■ Game_Troop
#==============================================================================

class Game_Troop < Game_Unit
#--------------------------------------------------------------------------
# ● 드롭 아이템의 배열 작성
#--------------------------------------------------------------------------
alias make_drop_items_KGC_ExtraDropItem make_drop_items
def make_drop_items
drop_items = make_drop_items_KGC_ExtraDropItem

dead_members.each { |enemy|
enemy.extra_drop_items.each_with_index { |di, i|
next if di.kind == 0
if di.drop_prob > 0
# 확률 지정
next if di.drop_prob < rand(100)
else
# 분모 지정
next if rand(di.denominator) != 0
end
if di.kind == 1
drop_items.push($data_items[di.item_id])
elsif di.kind == 2
drop_items.push($data_weapons[di.weapon_id])
elsif di.kind == 3
drop_items.push($data_armors[di.armor_id])
end
# 드롭이 끝난 플래그를 세트
if $imported["EnemyGuide"]
KGC::Commands.set_enemy_item_dropped(enemy.enemy.id, i + 2)
end
}
}
return drop_items
end
end

 

 

 

사용법은 주석을 참고하시길^^

Comment '6'
  • profile
    HWANG.S.G 2012.03.25 14:47

    감사합니다

  • ?
    반내림 2012.04.25 18:39

    몬스터 메모에 넣는거 맞죠? 적용이 안되는거같은데..ㅜㅜ

  • ?
    크리티컬 2012.05.31 11:40

    꼭 필요했던거!!!!!!!!! 정말 감사합니다

  • ?
    크리티컬 2012.05.31 11:46

    어떻게 사용하죠? ㅠㅠ
    [I:7 100%] 했는데 안되요..

  • ?
    아이미르 2012.05.31 16:59

    메모 칸에 [드롭 타입:ID 확률]을 적어 주세요... 라고 되어 있네요.

    <드롭 I:7 100%> 로 해보세요

  • ?
    크리티컬 2012.06.01 13:20

    아하 드롭타입을 적으라는건 줄 알았는데 그랬군요..

    정말 감사합니다 ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ 잘되네요


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 3 습작 2012.12.24 5398
66 메뉴 KGC - 커스텀 메뉴 커멘드 (번역) 1 듀란테 2015.07.27 1078
65 메뉴 Etude87's Menu Editor for VX 25 습작 2015.01.14 1461
64 메뉴 Etude87_Ace_Style_Formation_Change ver.1.01 습작 2014.10.05 758
63 HUD 아방스님이 올린 HUD를 개조했습니다. 7 file 스리아씨 2013.09.30 2684
» 아이템 드롭 아이템 확장 6 신규회원 2012.02.24 2977
61 전투 VX SRPG3d 수정본(1) 12 아이미르 2011.10.19 4617
60 전투 VX SRPG 스크립트를 살짝 손대봤습니다. 13 아이미르 2011.03.31 3428
59 메뉴 기본메인 메뉴 아이콘 추가 10 아방스 2010.12.11 4573
58 전투 사이드 뷰 시스템 [시트르산님 제공] 56 아방스 2010.11.29 7499
57 메뉴 kgc 파라미터 배분 09/07/25 13 시트르산 2010.09.24 2327
56 기타 집안의 가구를 내마음대로 데코레이션하기 15 file EuclidE 2010.09.18 4303
55 기타 みんと씨의 RMVX 샘플 프로젝트 1.11 (2009-11-05) 6 Alkaid 2010.09.13 2005
54 맵/타일 맵상 캐릭터 그래픽 확대 / 축소 이벤트 스크립트 6 시트르산 2010.09.10 3023
53 상태/속성 Full Status CMS 1.0d by Modern Algebra 1 file Alkaid 2010.09.03 2408
52 메뉴 자작 메뉴 스크립트 for VX(L's Simple Custom Menu VX ver.) 5 Alkaid 2010.09.02 4705
51 기타 개인판타지메뉴+업그래이드 배틀 23 file 콩밥 2010.08.02 4211
50 메뉴 스타일 크로노 트리거 메뉴 31 file 콩밥 2010.07.19 4536
49 아이템 아이템 믹서 21 file 미양 2010.07.02 3983
48 메뉴 매우 간단명료한 메뉴. 32 file 비극ㆍ 2010.04.23 6619
47 기타 메뉴에서 애니매이션 사용! 12 비극ㆍ 2010.04.19 3022
Board Pagination Prev 1 2 3 4 Next
/ 4