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
637 ((대박!)) 게임상의 모든 글자에 효과 주기.. 33 미카엘 2008.08.20 5583
636 (?스크립트) 스크립트 읽어서 그래픽 넣으세요.(영어 잘하는 사람만 권장...) 2 Man... 2008.10.27 1444
635 메뉴 (모그메뉴 풀세트팩 SEL Style.) 유니크급 자료 147 file 할렘 2009.02.07 9558
634 상점 (수정)크리쳐 샵, 'SW_CreatureShop' by Siot Warrior 15 file 시옷전사 2010.09.03 3675
633 액터 (수정)크리쳐 합체, 'SW_CreatureMix' by SiotWarrior 22 file 시옷전사 2010.09.07 2972
632 기타 (이거 정말 좋군요) 말이나 용을 탈수있게 하는 스크립트. 31 file 아방스가 짱 2010.02.28 4261
631 기타 (좀 이상한 or 쓸모없을 듯 한)화면상에 몬스터와 만나려면 몇걸음 남았는지 표시하는 스크립트! 2 루시페르 2009.06.06 2318
630 기타 078656577er님의 스크립트를 개조한, 사격용 스크립트 1 file 타코 2012.03.16 2519
629 기타 2 Players Engine 11 레이니케 2008.03.28 2294
628 2 Players Engine 2인용하기 15 file RPGbooster 2008.10.08 4001
627 전투 2003식 사이드뷰 적들도 가까이와서 공격함 ㅇㅇ 51 배군 2008.05.02 6750
626 이동 및 탈것 2D 횡스크롤 스크립트 56 file 사람이라면? 2010.08.15 7575
625 이동 및 탈것 3D 던젼 스크립트 38 아방스 2010.12.06 5775
624 그래픽 3D그래픽 파티클엔진 45 file RPGbooster 2008.10.08 10130
623 파티 5인 파티 프로젝트 V1.1 4 file 지나가는떡꼬치 2012.06.30 2988
622 이동 및 탈것 8 방향 이동스크립트 + 스프라이트 효과 12 file 레오 2009.02.06 7562
621 기타 <중수이상>RPG VX의 대표적 참조값 6 까까까 2009.05.31 3236
620 영상 ??(Avi play ver beta 0.8) 4 Man... 2008.10.28 1575
619 ??(다 영어)여기서 부터 드레그만 빼고 Man... 2008.10.27 1078
618 ??? 1 Man... 2008.10.27 1020
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 32 Next
/ 32