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 5408
57 이동 및 탈것 VX의 기존 대쉬 기능 없애기 8 BAYONET 2008.05.18 2552
56 전투 2003식 사이드뷰 적들도 가까이와서 공격함 ㅇㅇ 51 배군 2008.05.02 6750
55 메뉴 일본에서 만든 멋있는메뉴변경 스크립트 (한글 VX에서 쓰시면 자동으로 바뀜) 45 유칸지 2008.04.09 8861
54 전투 VX]Mog Battleback XP 1.0 11 file WMN 2008.04.06 3869
53 직업 [VX] Blue Mage by Fomar0153 9 WMN 2008.04.06 2785
52 기타 [VX] Anti-Lag 1.2c by Anaryu[예제첨부] 3 file WMN 2008.04.06 2371
51 변수/스위치 VX Script Fix - Variable Operation (by Yeyinde) 8 WMN 2008.04.06 2267
50 기타 2 Players Engine 11 레이니케 2008.03.28 2294
49 이름입력 [rpg vx]한글 스크립트(저번 것보단 업그레이드 된 것입니다.^^) 17 file 레시온 2008.03.28 4736
48 그래픽 밤낮 변환 VX용 26 독도2005 2008.03.23 4314
47 메뉴 메뉴 배경화면 바꾸는 스크립트 9 독도2005 2008.03.23 4520
46 그래픽 먼가이상한데... 밤낮 변환 vx 44 작은악마 2008.03.18 3414
45 이름입력 한글 이름 입력 스크립트입니다.^^ 14 레시온 2008.03.18 4383
44 파티 최대 파티 늘리는 스크립트 59 file 아방스 2008.03.09 5431
43 메뉴 CogWheel Style Menu Bars 6 아방스 2008.03.09 2777
42 기타 rpg vx 렉 줄이는 스크립트 34 아방스 2008.03.09 4815
41 파티 파티 변경 시스템 21 file 아방스 2008.03.09 3945
40 파티 전투중 파티 변경 스크립트 21 아방스 2008.03.09 3477
39 기타 간단한 스크립트의 사용법 6 아방스 2008.03.09 4552
38 HUD 맵 이름을 띠우는 스크립트 [메시지창] 24 아방스 2008.03.09 4748
Board Pagination Prev 1 ... 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 Next
/ 32