XP 스크립트

퍼왔음(어딘지모름)..첨올린다는 -_-
사용법은 일단 복사 붙이기..
아이템 도감 만드는법은
아이템들어가서 아이템도감이라는걸 하나만들어요
그리고 커먼이벤트를 하나 만드는데..
아이템도감에서 커먼이벤트를 불러오기하면됨
아 커먼이벤트를 병렬처리한다음에 스크립트 $scene = Scene_ItemBook.new 적으세요~(그 커먼이벤트를 아이템도감이라는 아이템에서 불러오기하삼~)
무슨말인지 모르시는분은없겟지..그리고
중복이면..검색해봣는데..





#アイテム図鑑
#
#アイテム図鑑ですが、汎用性を持たせようと色々やってしまった結果
#ちょっと、複雑になってしまったかも知れません…
#
#●設定方法
#・基本的な使い方
# 普通に使うだけなら、このままコピペで大丈夫です(多分)
# アイテムに「図鑑登録無効」属性をつけていると
# 図鑑に登録されなくなります。
#
#・武器、防具、道具を細かく分類する方法
# まず、 Data_ItemBook の initialize で設定している
# @item_kind_name :道具の表示名
# @weapon_kind_name :武器の表示名
# @armor_kind_name :防具の表示名
# を、書き換えてください。
# 具体的には、@item_kind_name = ["貴重品", "回復薬", "戦闘用", "その他"]
# みたいな感じで書き換えればOKです。(武器、防具も同様です。)
# これは、実際に画面に表示される分類名です。
# 最低1つは設定しておかなければいけません。
#
# 次に、そのすぐ下にある @kind_row を設定します。
# これは、分類名が表示されるリストの並び順です。
# 先程設定した分類名を自分が並べたい順番に書いていってください。
# @kind_row = ["武器",
# "防具",
# "回復薬",
# "戦闘用",
# "その他",
# "貴重品"]
# こんな感じです。
# このとき、名前を間違えないように気をつけてください
# 名前で色々判別してたりするので、間違ってしまうと正常に動きません(多分)
#
# 最後に、更に下にある
# @item_kind_element_name :道具の分類判定用属性名
# @weapon_kind_element_name :武器の分類判定用属性名
# @armor_kind_element_name :防具の分類判定用属性名
# を書き換えます。
# これは、分類を判別するため使う属性の名前です。
# これを、最初に設定した分類名に対応するように設定してください。
# 最初に
# @item_kind_name = ["貴重品", "回復薬", "戦闘用", "その他"]
# こう、設定したとしたら
# @item_kind_element_name = ["貴重", "回復", "戦闘", "その他"]
# こんな感じです。
# そして、実際にデータベースで設定した名前で属性を作り
# アイテムに付与してください。
# ちなみに、ここに何も設定しないと属性とか関係なく
# 全てのアイテムが判定されるようになります。(初期設定)
#
# 下に、適当な設定例を載せておきます(テストプレイ時に使用したものです)
#
# @item_kind_name = ["だいじなもの", "ふつうなもの"]
# @weapon_kind_name = ["武器"]
# @armor_kind_name = ["盾", "鎧", "その他"]
# @kind_row = ["だいじなもの",
# "武器",
# "盾",
# "鎧",
# "その他",
# "ふつうなもの"]
# @item_kind_element_name = ["貴重品", "普通道具"]
# @weapon_kind_element_name = []
# @armor_kind_element_name = ["盾", "鎧", "その他"]
#
#ちなみに、アイテムの詳細画面は
#要・自力でカスタマイズです。
#別にそのままでも使えなくはないと思いますが
#いろいろ不便な事があるかもしれません。
#
#説明長いですね…

class Data_ItemBook
attr_reader :item_kind_name
attr_reader :weapon_kind_name
attr_reader :armor_kind_name
attr_reader :kind_row
attr_reader :item_id_data
attr_reader :weapon_id_data
attr_reader :armor_id_data
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize

# ↓以下、設定用のいろいろ
@item_kind_name = ["도구"]
@weapon_kind_name = ["무기"]
@armor_kind_name = ["방어구"]
@kind_row = ["도구",
"무기",
"방어구"]
@item_kind_element_name = []
@weapon_kind_element_name = []
@armor_kind_element_name = []
# ↑ココまで

@item_id_data = item_book_id_set
@weapon_id_data = weapon_book_id_set
@armor_id_data = armor_book_id_set
end
#--------------------------------------------------------------------------
# ● 指定された種類表示名の情報を返す
#--------------------------------------------------------------------------
def kind_search(name)
if @item_kind_name.include?(name)
return [0, @item_kind_name.index(name)]
elsif @weapon_kind_name.include?(name)
return [1, @weapon_kind_name.index(name)]
elsif @armor_kind_name.include?(name)
return [2, @armor_kind_name.index(name)]
end
end
#--------------------------------------------------------------------------
# ● 図鑑用登録無視属性取得
#--------------------------------------------------------------------------
def no_add_element
no_add = 0
# 登録無視の属性IDを取得
for i in 1...$data_system.elements.size
if $data_system.elements[i] =~ /図鑑登録無効/
no_add = i
break
end
end
return no_add
end

#--------------------------------------------------------------------------
# ● 指定された属性名のIDを返す
#--------------------------------------------------------------------------
def element_search(element_name)
for i in 1...$data_items.size
if $data_system.elements[i] =~ /^#{element_name}/
return i
end
end
end

#--------------------------------------------------------------------------
# ● 図鑑用アイテムID設定
#--------------------------------------------------------------------------
def item_book_id_set
data = []
no_add = no_add_element
if @item_kind_element_name.size == 0
data[0] = [0]
for i in 1...$data_items.size
item = $data_items[i]
next if item.name == ""
next if item.element_set.include?(no_add)
data[0].push(item.id)
end
else
for i in 0...@item_kind_element_name.size
data[i] = [0]
element_id = element_search(@item_kind_element_name[i])
for j in 1...$data_items.size
item = $data_items[j]
next if item.name == ""
next if item.element_set.include?(no_add)
if item.element_set.include?(element_id)
data[i].push(item.id)
end
end
end
end
return data
end
#--------------------------------------------------------------------------
# ● 図鑑用武器ID設定
#--------------------------------------------------------------------------
def weapon_book_id_set
data = []
no_add = no_add_element
if @weapon_kind_element_name.size == 0
data[0] = [0]
for i in 1...$data_weapons.size
item = $data_weapons[i]
next if item.name == ""
next if item.element_set.include?(no_add)
data[0].push(item.id)
end
else
for i in 0...@weapon_kind_element_name.size
data[i] = [0]
element_id = element_search(@weapon_kind_element_name[i])
for j in 1...$data_weapons.size
item = $data_weapons[j]
next if item.name == ""
next if item.element_set.include?(no_add)
if item.element_set.include?(element_id)
data[i].push(item.id)
end
end
end
end
return data
end
#--------------------------------------------------------------------------
# ● 図鑑用防具ID設定
#--------------------------------------------------------------------------
def armor_book_id_set
data = []
no_add = no_add_element
if @armor_kind_element_name.size == 0
data[0] = [0]
for i in 1...$data_armors.size
item = $data_armors[i]
next if item.name == ""
next if item.guard_element_set.include?(no_add)
data[0].push(item.id)
end
else
for i in 0...@armor_kind_element_name.size
data[i] = [0]
element_id = element_search(@armor_kind_element_name[i])
for j in 1...$data_armors.size
item = $data_armors[j]
next if item.name == ""
next if item.guard_element_set.include?(no_add)
if item.guard_element_set.include?(element_id)
data[i].push(item.id)
end
end
end
end
return data
end
end

class Window_Base < Window
#--------------------------------------------------------------------------
# ● 基本属性表示
#--------------------------------------------------------------------------
def draw_attack_element(x, y, element_set)
elem_temp = []
for i in element_set
elem = $data_system.elements[i]
elem_temp.push("화") if elem == "화"
elem_temp.push("빙") if elem == "빙"
elem_temp.push("뇌") if elem == "뇌"
elem_temp.push("수") if elem == "수"
elem_temp.push("지") if elem == "지"
elem_temp.push("풍") if elem == "풍"
elem_temp.push("성") if elem == "성"
elem_temp.push("암") if elem == "암"
elem_temp.push("악") if elem == "악"
elem_temp.push("염") if elem == "염"
elem_temp.push("독") if elem == "독"
elem_temp.push("무") if elem == "무"
elem_temp.push("평도") if elem == "평도"
elem_temp.push("대검") if elem == "대검"
elem_temp.push("세검") if elem == "세검"
elem_temp.push("단검") if elem == "단검"
elem_temp.push("단도") if elem == "단도"
elem_temp.push("지팡이") if elem == "지팡이"
elem_temp.push("둔기") if elem == "둔기"
end
if elem_temp.size == 0
self.contents.draw_text(x, y, 64, 32, "없음")
return
end
ox = 0
for name in elem_temp
cx = self.contents.text_size(name).width
self.contents.draw_text(x+ox, y, cx, 32, name)
ox += cx+8
end
end
#--------------------------------------------------------------------------
# ● 武器属性表示
#--------------------------------------------------------------------------
def draw_attack_wp_element(x, y, element_set)
elem_temp = []
for i in element_set
elem = $data_system.elements[i]
elem_temp.push("베기") if elem == "베기"
elem_temp.push("타격") if elem == "타격"
elem_temp.push("찌르기") if elem == "찌르기"
elem_temp.push("평도") if elem == "평도"
elem_temp.push("대검") if elem == "대검"
elem_temp.push("세검") if elem == "세검"
elem_temp.push("단검") if elem == "단검"
elem_temp.push("단도") if elem == "단도"
elem_temp.push("지팡이") if elem == "지팡이"
elem_temp.push("둔기") if elem == "둔기"
end
if elem_temp.size == 0
self.contents.draw_text(x, y, 64, 32, "없음")
return
end
ox = 0
for name in elem_temp
cx = self.contents.text_size(name).width
self.contents.draw_text(x+ox, y, cx, 32, name)
ox += cx+8
end
end
#--------------------------------------------------------------------------
# ● 特攻属性表示
#--------------------------------------------------------------------------
def draw_attack_weak_element(x, y, element_set)
elem_temp = []
for i in element_set
elem = $data_system.elements[i]
elem_temp.push("不死") if elem == "対 不死"
elem_temp.push("蛇") if elem == "対 蛇"
elem_temp.push("水棲") if elem == "対 水棲"
elem_temp.push("獣") if elem == "対 獣"
elem_temp.push("鬼") if elem == "対 鬼"
elem_temp.push("鳥") if elem == "対 鳥"
elem_temp.push("悪魔") if elem == "対 悪魔"
elem_temp.push("天使") if elem == "対 天使"
end
if elem_temp.size == 0
self.contents.draw_text(x, y, 64, 32, "없음")
return
end
ox = 0
for name in elem_temp
cx = self.contents.text_size(name).width
self.contents.draw_text(x+ox, y, cx, 32, name)
ox += cx+8
end
end
#--------------------------------------------------------------------------
# ● ステート付与表示
#--------------------------------------------------------------------------
def draw_attack_add_state(x, y, plus_state_set)
state_temp = []
for i in plus_state_set
state = $data_states[i]
state_temp.push(state.name) if state.name != ""
end
if state_temp.size == 0
self.contents.draw_text(x, y, 64, 32, "없음")
return
end
ox = 0
oy = 0
for name in state_temp
cx = self.contents.text_size(name).width
if ox + cx + 4 >= self.contents.width - 128
ox = 0
oy += 1
end
self.contents.draw_text(x+ox, y+oy*32, cx, 32, name)
ox += cx+8
end
end
#--------------------------------------------------------------------------
# ● 効果範囲を返す
#--------------------------------------------------------------------------
def draw_scope(scope)
case scope
when 0
return "없음"
when 1
return "敵単体"
when 2
return "敵全体"
when 3
return "味方単体"
when 4
return "味方全体"
when 5
return "味方単体"
when 6
return "味方全体"
when 7
return "使用者"
end
end
end

class Game_Temp
attr_accessor :item_book_data
alias temp_item_book_data_initialize initialize
def initialize
temp_item_book_data_initialize
@item_book_data = Data_ItemBook.new
end
end

class Game_Party
attr_accessor :item_count # 入手アイテム情報(図鑑用)
attr_accessor :weapon_count # 入手武器情報(図鑑用)
attr_accessor :armor_count # 入手防具情報(図鑑用)
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias item_book_info_initialize initialize
def initialize
item_book_info_initialize
@item_count = {}
@weapon_count = {}
@armor_count = {}
end
alias item_book_gain_item gain_item
def gain_item(item_id, n)
add_item_count(item_id, 0) if n > 0
item_book_gain_item(item_id, n)
end
alias item_book_gain_weapon gain_weapon
def gain_weapon(item_id, n)
add_weapon_count(item_id, 0) if n > 0
item_book_gain_weapon(item_id, n)
end
alias item_book_gain_armor gain_armor
def gain_armor(item_id, n)
add_armor_count(item_id, 0) if n > 0
item_book_gain_armor(item_id, n)
end

#--------------------------------------------------------------------------
# ● アイテムの獲得情報の追加(図鑑用)
# 0:無獲得 1:獲得済
#--------------------------------------------------------------------------
def add_item_count(item_id, type = 0)
if type == -1
@item_count[item_id] = 0
else
@item_count[item_id] = 1
end
end
#--------------------------------------------------------------------------
# ● 武器の獲得情報の追加(図鑑用)
# 0:無獲得 1:獲得済
#--------------------------------------------------------------------------
def add_weapon_count(weapon_id, type = 0)
if type == -1
@weapon_count[weapon_id] = 0
else
@weapon_count[weapon_id] = 1
end
end
#--------------------------------------------------------------------------
# ● 防具の獲得情報の追加(図鑑用)
# 0:無獲得 1:獲得済
#--------------------------------------------------------------------------
def add_armor_count(armor_id, type = 0)
if type == -1
@armor_count[armor_id] = 0
else
@armor_count[armor_id] = 1
end
end
end


class Window_ItemBook < Window_Selectable
attr_reader :data
attr_reader :item_kind
attr_reader :item_index
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize(index=0)
super(0, 64, 640, 416)
@column_max = 2
@book_data = $game_temp.item_book_data
@data = data_set(index)
@data.shift
#@data.sort!
@item_max = @data.size
@item_kind = index
self.index = 0
#refresh
end
def new_data_set(index)
@data = data_set(index)
@data.shift
#@data.sort!
@item_max = @data.size
end
#--------------------------------------------------------------------------
# ● 入手データを取得
#--------------------------------------------------------------------------
def data_set(index)
kind_row_data = @book_data.kind_search(@book_data.kind_row[index])
@item_kind = kind_row_data[0]
@item_index = kind_row_data[1]
data = []
case @item_kind
when 0
data = @book_data.item_id_data[@item_index].dup
when 1
data = @book_data.weapon_id_data[@item_index].dup
when 2
data = @book_data.armor_id_data[@item_index].dup
end
return data
end
#--------------------------------------------------------------------------
# ● 表示許可取得
#--------------------------------------------------------------------------
def show?(kind, id)
case kind
when 0
if $game_party.item_count[id] == 0 or $game_party.item_count[id] == nil
return false
else
return true
end
when 1
if $game_party.weapon_count[id] == 0 or $game_party.weapon_count[id] == nil
return false
else
return true
end
when 2
if $game_party.armor_count[id] == 0 or $game_party.armor_count[id] == nil
return false
else
return true
end
end
end
#--------------------------------------------------------------------------
# ● アイテム取得
#--------------------------------------------------------------------------
def item
return @data[self.index]
end
#--------------------------------------------------------------------------
# ● リフレッシュ
#--------------------------------------------------------------------------
def refresh
if self.contents != nil
self.contents.dispose
self.contents = nil
end
#項目数が 0 でなければビットマップを作成し、全項目を描画
return if @item_max == 0
self.contents = Bitmap.new(width - 32, row_max * 32)
for i in 0...@item_max
draw_item(i)
end
end
#--------------------------------------------------------------------------
# ● 項目の描画
# index : 項目番号
#--------------------------------------------------------------------------
def draw_item(index)
case @item_kind
when 0
item = $data_items[@data[index]]
id = @book_data.item_id_data[@item_index].index(item.id)
when 1
item = $data_weapons[@data[index]]
id = @book_data.weapon_id_data[@item_index].index(item.id)
when 2
item = $data_armors[@data[index]]
id = @book_data.armor_id_data[@item_index].index(item.id)
end
return if item == nil
x = 4 + index % 2 * (288 + 32)
y = index / 2 * 32
rect = Rect.new(x, y, self.width / @column_max - 32, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 32, 32, id.to_s)
if show?(@item_kind, item.id)
bitmap = RPG::Cache.icon(item.icon_name)
opacity = 255
self.contents.blt(x+48, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(x+48 + 28, y, 212, 32, item.name, 0)
else
self.contents.draw_text(x+48 + 28, y, 212, 32, "-----", 0)
return
end
end
end


class Window_ItemBook_Info < Window_Selectable
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
super(0, 0+64+64, 640, 480-64-64)
@book_data = $game_temp.item_book_data
self.contents = Bitmap.new(width - 32, height - 32)
self.index = -1
end
#--------------------------------------------------------------------------
# ● リフレッシュ
#--------------------------------------------------------------------------
def refresh(item_id, item_kind, item_index)
self.contents.clear
self.contents.font.size = 22
case item_kind
when 0
draw_item_info(item_id, item_index)
when 1
draw_weapon_info(item_id, item_index)
when 2
draw_armor_info(item_id, item_index)
end
end
#--------------------------------------------------------------------------
# ● アイテム描画
#--------------------------------------------------------------------------
def draw_item_info(item_id, item_index)
item = $data_items[item_id]
rect = Rect.new(4, 0, 160, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
bitmap = RPG::Cache.icon(item.icon_name)
opacity = 255
self.contents.blt(4+48, 0 + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.font.color = normal_color
id = @book_data.item_id_data[item_index].index(item.id)
self.contents.draw_text(4, 0, 32, 32, id.to_s)
self.contents.draw_text(4+48 + 28, 0, 212, 32, item.name, 0)
self.contents.draw_text(640-128-88-4, 0, 88, 32, item.price.to_s, 2)
self.contents.font.color = system_color
self.contents.draw_text(640-128, 0, 128, 32, $data_system.words.gold, 0)
self.contents.font.color = normal_color
@help_window.set_text(item.description)
end
#--------------------------------------------------------------------------
# ● 武器描画
#--------------------------------------------------------------------------
def draw_weapon_info(item_id, item_index)
item = $data_weapons[item_id]
rect = Rect.new(4, 0, 160, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
bitmap = RPG::Cache.icon(item.icon_name)
opacity = 255
self.contents.blt(4+48, 0 + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.font.color = normal_color
id = @book_data.weapon_id_data[item_index].index(item.id)
self.contents.draw_text(4, 0, 32, 32, id.to_s)
self.contents.draw_text(4+48 + 28, 0, 212, 32, item.name, 0)
self.contents.draw_text(640-128-88-4, 0, 88, 32, item.price.to_s, 2)
self.contents.font.color = system_color
self.contents.draw_text(640-128, 0, 128, 32, $data_system.words.gold, 0)
self.contents.font.color = text_color(2)
self.contents.draw_text(4, 32, 48, 32, "ATK", 0)
self.contents.font.color = text_color(4)
self.contents.draw_text(4+128, 32, 48, 32, "DEF", 0)
self.contents.font.color = text_color(6)
self.contents.draw_text(4+256, 32, 48, 32, "MDF", 0)
self.contents.font.color = normal_color
self.contents.draw_text(4+48, 32, 48, 32, item.atk.to_s, 2)
self.contents.draw_text(4+48+128, 32, 48, 32, item.pdef.to_s, 2)
self.contents.draw_text(4+48+256, 32, 48, 32, item.mdef.to_s, 2)

self.contents.font.color = system_color
self.contents.draw_text(4, 64, 48, 32, "STR", 0)
self.contents.draw_text(4+128, 64, 48, 32, "DEX", 0)
self.contents.draw_text(4+256, 64, 48, 32, "SPD", 0)
self.contents.draw_text(4+384, 64, 48, 32, "MAT", 0)
self.contents.font.color = normal_color
self.contents.draw_text(4+48, 64, 48, 32, item.str_plus.to_s, 2)
self.contents.draw_text(4+48+128, 64, 48, 32, item.dex_plus.to_s, 2)
self.contents.draw_text(4+48+256, 64, 48, 32, item.agi_plus.to_s, 2)
self.contents.draw_text(4+48+384, 64, 48, 32, item.int_plus.to_s, 2)

self.contents.font.color = system_color
self.contents.draw_text(4, 96, 96, 32, "基本属性")
self.contents.draw_text(4, 128, 96, 32, "特攻属性")
self.contents.draw_text(4, 160, 96, 32, "付与ステート")
#self.contents.draw_text(4, 128, 96, 32, "武器属性")
self.contents.font.color = normal_color
draw_attack_element(4+96+16, 96, item.element_set)
draw_attack_weak_element(4+96+16, 128, item.element_set)
draw_attack_add_state(4+96+16, 160, item.plus_state_set)
#draw_attack_wp_element(4+96+16, 128, item.element_set)

@help_window.set_text(item.description)
end
#--------------------------------------------------------------------------
# ● 防具描画
#--------------------------------------------------------------------------
def draw_armor_info(item_id, item_index)
item = $data_armors[item_id]
rect = Rect.new(4, 0, 160, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
bitmap = RPG::Cache.icon(item.icon_name)
opacity = 255
self.contents.blt(4+48, 0 + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.font.color = normal_color
id = @book_data.armor_id_data[item_index].index(item.id)
self.contents.draw_text(4, 0, 32, 32, id.to_s)
self.contents.draw_text(4+48 + 28, 0, 212, 32, item.name, 0)
self.contents.draw_text(640-128-88-4, 0, 88, 32, item.price.to_s, 2)
self.contents.font.color = system_color
self.contents.draw_text(640-128, 0, 128, 32, $data_system.words.gold, 0)
self.contents.font.color = text_color(4)
self.contents.draw_text(4, 32, 48, 32, "DEF", 0)
self.contents.font.color = text_color(6)
self.contents.draw_text(4+128, 32, 48, 32, "MDF", 0)
self.contents.font.color = system_color
self.contents.draw_text(4+256, 32, 48, 32, "回避", 0)
self.contents.font.color = normal_color
self.contents.draw_text(4+48, 32, 48, 32, item.pdef.to_s, 2)
self.contents.draw_text(4+48+128, 32, 48, 32, item.mdef.to_s, 2)
self.contents.draw_text(4+48+256, 32, 48, 32, item.eva.to_s, 2)

self.contents.font.color = system_color
self.contents.draw_text(4, 64, 48, 32, "STR", 0)
self.contents.draw_text(4+128, 64, 48, 32, "DEX", 0)
self.contents.draw_text(4+256, 64, 48, 32, "SPD", 0)
self.contents.draw_text(4+384, 64, 48, 32, "MAT", 0)
self.contents.font.color = normal_color
self.contents.draw_text(4+48, 64, 48, 32, item.str_plus.to_s, 2)
self.contents.draw_text(4+48+128, 64, 48, 32, item.dex_plus.to_s, 2)
self.contents.draw_text(4+48+256, 64, 48, 32, item.agi_plus.to_s, 2)
self.contents.draw_text(4+48+384, 64, 48, 32, item.int_plus.to_s, 2)

self.contents.font.color = system_color
self.contents.draw_text(4, 96, 96, 32, "基本耐性")
self.contents.draw_text(4, 128, 96, 32, "特攻耐性")
self.contents.draw_text(4, 160, 96, 32, "防御ステート")
#self.contents.draw_text(4, 128, 96, 32, "武器耐性")
self.contents.font.color = normal_color
draw_attack_element(4+96+16, 96, item.guard_element_set)
draw_attack_weak_element(4+96+16, 128, item.guard_element_set)
draw_attack_add_state(4+96+16, 160, item.guard_state_set)
#draw_attack_wp_element(4+96+16, 128, item.guard_element_set)

@help_window.set_text(item.description)
end
#--------------------------------------------------------------------------
# ● ヘルプテキスト更新
#--------------------------------------------------------------------------
def update_help
#ダミー
end
end


class Scene_ItemBook
#--------------------------------------------------------------------------
# ● メイン処理
#--------------------------------------------------------------------------
def main
# ウィンドウを作成
@title_window = Window_Base.new(0, 0, 640, 64)
@title_window.contents = Bitmap.new(640 - 32, 64 - 32)
@title_window.contents.draw_text(4, 0, 320, 32, "아이템 도감", 0)
@main_window = Window_ItemBook.new
@main_window.active = false
@help_window = Window_Help.new
@help_window.z = 110
@help_window.y = 64
@help_window.visible = false
command = $game_temp.item_book_data.kind_row
@kind_window = Window_Command.new(160, command)
@kind_window.z = 110
@kind_window.x = 320 - @kind_window.width / 2
@kind_window.y = 240 - @kind_window.height / 2
@kind_window.active = true
# インフォウィンドウを作成 (不可視・非アクティブに設定)
@info_window = Window_ItemBook_Info.new
@info_window.z = 110
@info_window.visible = false
@info_window.active = false
# ヘルプウィンドウを関連付け
@info_window.help_window = @help_window
@visible_index = 0
@now_kind = nil
# トランジション実行
Graphics.transition
# メインループ
loop do
# ゲーム画面を更新
Graphics.update
# 入力情報を更新
Input.update
# フレーム更新
update
# 画面が切り替わったらループを中断
if $scene != self
break
end
end
# トランジション準備
Graphics.freeze
# ウィンドウを解放
@title_window.dispose
@help_window.dispose
@main_window.dispose
@kind_window.dispose
@info_window.dispose
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
def update
# ウィンドウを更新
#@help_window.update
@main_window.update
@kind_window.update
@info_window.update
if @info_window.active
update_info
return
end
# メインウィンドウがアクティブの場合: update_target を呼ぶ
if @main_window.active
update_main
return
end
# 種類ウィンドウがアクティブの場合: update_kind を呼ぶ
if @kind_window.active
update_kind
return
end
end
#--------------------------------------------------------------------------
# ● フレーム更新 (種類ウィンドウがアクティブの場合)
#--------------------------------------------------------------------------
def update_kind
# C ボタンが押された場合
if Input.trigger?(Input::C)
# 決定 SE を演奏
$game_system.se_play($data_system.decision_se)
if @now_kind != @kind_window.index
@main_window.new_data_set(@kind_window.index)
@main_window.refresh
subtitle = $game_temp.item_book_data.kind_row[@kind_window.index]
title = "아이템 도감:"+subtitle
@now_kind = @kind_window.index
@title_window.contents.clear
@title_window.contents = Bitmap.new(640 - 32, 64 - 32)
@title_window.contents.draw_text(4, 0, 320, 32, title, 0)
end
@kind_window.active = false
@kind_window.visible = false
@main_window.active = true
return
end
# B ボタンが押された場合
if Input.trigger?(Input::B)
# キャンセル SE を演奏
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
return
end
end
#--------------------------------------------------------------------------
# ● フレーム更新 (メインウィンドウがアクティブの場合)
#--------------------------------------------------------------------------
def update_main
# B ボタンが押された場合
if Input.trigger?(Input::B)
# キャンセル SE を演奏
$game_system.se_play($data_system.cancel_se)
@main_window.active = false
@kind_window.active = true
@kind_window.visible = true
@main_window.index = 0
return
end
# C ボタンが押された場合
if Input.trigger?(Input::C)
if @main_window.item == nil or
@main_window.show?(@main_window.item_kind, @main_window.item) == false
# ブザー SE を演奏
$game_system.se_play($data_system.buzzer_se)
return
end
# 決定 SE を演奏
$game_system.se_play($data_system.decision_se)
@main_window.active = false
@info_window.active = true
@info_window.visible = true
@visible_index = @main_window.index
@info_window.refresh(@main_window.item, @main_window.item_kind, @main_window.item_index)
return
end
end
#--------------------------------------------------------------------------
# ● フレーム更新 (インフォウィンドウがアクティブの場合)
#--------------------------------------------------------------------------
def update_info
# B ボタンが押された場合
if Input.trigger?(Input::B)
# キャンセル SE を演奏
$game_system.se_play($data_system.cancel_se)
@main_window.active = true
@info_window.active = false
@info_window.visible = false
@help_window.visible = false
return
end
# C ボタンが押された場合
if Input.trigger?(Input::C)
# 決定 SE を演奏
$game_system.se_play($data_system.decision_se)
return
end
if Input.trigger?(Input::L)
# 決定 SE を演奏
$game_system.se_play($data_system.decision_se)
loop_end = false
while loop_end == false
if @visible_index != 0
@visible_index -= 1
else
@visible_index = @main_window.data.size - 1
end
loop_end = true if @main_window.show?(@main_window.item_kind,@main_window.data[@visible_index])
end
id = @main_window.data[@visible_index]
@info_window.refresh(id, @main_window.item_kind, @main_window.item_index)
return
end
if Input.trigger?(Input::R)
# 決定 SE を演奏
$game_system.se_play($data_system.decision_se)
loop_end = false
while loop_end == false
if @visible_index != @main_window.data.size - 1
@visible_index += 1
else
@visible_index = 0
end
loop_end = true if @main_window.show?(@main_window.item_kind,@main_window.data[@visible_index])
end
id = @main_window.data[@visible_index]
@info_window.refresh(id, @main_window.item_kind, @main_window.item_index)
return
end
end
end

Who's 백호

?

이상혁입니다.

http://elab.kr

Comment '9'
  • ?
    소울푸른★ 2009.10.24 10:45

    ...

    댓글없어서;;달아드림

  • ?
    소울푸른★ 2009.10.24 10:52
    써보니까별루쓸모없다고생각한1人
  • ?
    허인 2009.10.24 13:44

    솔직히 아이템 도감은 몬스터 도감 보다 쓸대가없을듯

    .....
  • ?
    겔럭시 안드로메다 2011.02.05 13:16

    마자마자.

  • ?
    용호작무 2009.10.27 08:25

    .....영어면 어떻게 해보겠는데 이건 뭐 외계어........ 일본어는 멀군요

  • ?
    블루피쉬 2010.03.01 16:29

    아이템도감 써봤자머함(ㅈㅅ) 그냥아이템만보지 몬스터도감은 몬스터 정보까지알수있고 사냥에 유용하지만

    아이템은 능력치를 알아가는게 더잼씀(도감말고 직접얻어서)

  • ?
    flash를 사용하는 사람 2011.03.19 18:53

    감사

  • ?
    타락한성기사 2011.09.19 03:07

    좋은 스크립트 올려주셨는데 부정적인 댓글이 많네요. 


    이거 의외로 응용해서 쓸데가 있습니다.

  • ?
    Amaster 2011.12.19 21:57

    좋은데 쓰일듯! 감사 ㅎ


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 6202
1021 키입력 한글입력스크립트 16 file 아방스 2007.11.09 11828
1020 온라인 채팅 가능 온라인 스크립트 배포 107 file 아방스 2009.01.03 10685
1019 온라인 RPG 만들기 xp 온라인 스크립트 33 아방스 2007.11.09 9601
1018 맵/타일 [유니크급] RPG XP 게임을 3D화로 보자! Neo Mode7 script / 52 file 쉴더 2009.02.28 9447
1017 온라인 온라인 스크립트 Unis Net RMXP 공식 배포! 25 file 뮤바보 2011.12.25 9403
1016 온라인 광넷[ 광땡 온라인 + 넷플레이 ] 62 - 하늘 - 2009.08.02 9003
1015 전투 [액알]neo_a-rpg_module_1[1][1].2 스크립트 83 file 은빛바람 2009.10.03 8307
1014 이름입력 대화창에 얼굴, 이름 띄우기 37 킬라롯 2008.11.09 7497
1013 온라인 넷플레이1.7.0+abs5.5+한챗 49 쀍뛝쒧 2009.01.24 7289
1012 메뉴 메이플스토리처럼 메뉴를^^ 57 file 딸기님 2010.07.13 7145
1011 메시지 대화창에 얼굴 그래픽 띠우기 73 아방스 2007.11.09 7119
1010 스킬 ABP액알 v1.2 스킬추가, 버그수정판 36 file 백호 2009.02.22 6920
1009 전투 [신기술 체험] 강회된 횡스크롤 액알 13 file 백호 2009.02.22 6841
1008 메뉴 온라인메뉴처럼!! 메이플 메뉴처럼!! 변신~스크립트 33 WMN 2008.03.17 6824
1007 그래픽 화면을 부드럽게 해주는스크립트[ 아주 유용] 56 file - 하늘 - 2009.08.05 6566
1006 온라인 Mr.Metring NPE 1.0 [RPG XP 온라인 스크립트] 35 아방스 2009.01.07 6535
1005 이름입력 케릭터 위에 또는 NPC 위에 이름 뛰우기 [헬악이님 제공] 49 file 아방스 2007.11.09 6414
1004 액터 시트르산의 XP용 감정 말풍선 표시 스크립트 37 file 시트르산 2011.01.25 6114
1003 HUD 주인공,NPC이름 머리 나타내기 49 file 송긔 2010.11.28 6067
1002 전투 액알 스크립트 24 백호 2009.02.22 6017
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 52 Next
/ 52