赞 | 6 |
VIP | 132 |
好人卡 | 24 |
积分 | 7 |
经验 | 81718 |
最后登录 | 2024-2-23 |
在线时间 | 2064 小时 |
Lv2.观梦者
- 梦石
- 0
- 星屑
- 743
- 在线时间
- 2064 小时
- 注册时间
- 2011-10-3
- 帖子
- 1686
|
这个脚本是很多脚本一套的
脚本地址:http://www4.plala.or.jp/findias/ ... ce_rgss3/index.html- #==============================================================================
- # ■ VXAce-RGSS3-1 用語辞典-自動生成Plugin [Ver.1.0.0] by Claimh
- #------------------------------------------------------------------------------
- #?データベース上のアクターエネミーアイテム武器防具スキルクラスの情報を
- # 用語辞典として自動生成します。
- #?自動生成された辞書データはすべて初期状態では非表示になります。
- #------------------------------------------------------------------------------
- #【アクター、エネミー、アイテム、武器、防具、スキル、クラス、クエストの自動生成】
- #?自動生成した場合の用語IDは生成元のIDと同じです
- # (例) エネミーID5 --(自動生成)-- 用語ID5
- #------------------------------------------------------------------------------
- #【場所情報の自動生成】
- #?必須:ワールドマップ
- #?ワールドマップのタウン?リージョン情報を用語辞典に反映します。
- #?リージョン情報の用語IDは リージョンID 1000 です
- # 用語ID = DictAutoCreate.conv_region_id(リージョンID)
- #?タウン情報の用語IDは リージョンID 1000 + タウンID + 1 です
- # 用語ID = DictAutoCreate.conv_town_id(リージョンID, タウンID)
- # ※タウンIDは0-998しか使えません。
- #==============================================================================
- =begin
- - 使い方 -
- 用語辞典[設定] の 「用語設定」で以下のように設定してください。
- WORDS[項目番号] = ATC_ACTOR # アクターの自動生成
- WORDS[項目番号] = ATC_ENEMY # エネミーの自動生成
- WORDS[項目番号] = ATC_ENEMY_A # エネミー(アナライズ用)の自動生成
- WORDS[項目番号] = ATC_ITEM # アイテムの自動生成
- WORDS[項目番号] = ATC_WEAPON # 武器の自動生成
- WORDS[項目番号] = ATC_ARMOR_ALL # 防具(全て)の自動生成
- WORDS[項目番号] = ATC_ARMOR_S # 防具(盾のみ)の自動生成
- WORDS[項目番号] = ATC_ARMOR_H # 防具(頭防具のみ)の自動生成
- WORDS[項目番号] = ATC_ARMOR_C # 防具(身体防具のみ)の自動生成
- WORDS[項目番号] = ATC_ARMOR_A # 防具(装飾品のみ)の自動生成
- WORDS[項目番号] = ATC_SKILL # スキルの自動生成
- WORDS[項目番号] = ATC_CLASS # クラスの自動生成
- WORDS[項目番号] = ATC_TOWN # 場所の自動生成
- WORDS[項目番号] = ACT_QUEST # クエストの自動生成
- =end
- module DictAutoCreate
- # 属性表示の限界個数
- ELEMENTS_MAX = 10
- # 表示しない属性ID ELE_NOT_SHOW = [ID, …]
- ELE_NOT_SHOW = [1, 2]
- # アイコン表示する
- ELE_USE_ICON = true
- # アイコン(ELE_USE_ICON = trueのときだけ必要)
- ELE_ICON = { # 属性ID = アイコンIndex
- 3 = 96, # 炎
- 4 = 97, # 氷
- 5 = 98, # 雷
- 6 = 99, # 水
- 7 = 100, # 大地
- 8 = 101, # 風
- 9 = 102, # 神聖
- 10 = 103, # 暗黒
- }
- # ステート表示の限界個数
- STATES_MAX = 5
- # 表示しないステートID STS_NOT_SHOW = [ID, …]
- STS_NOT_SHOW = [3,4,5]
- # 特定IDの情報は自動生成しないようにする XXX_NOT_SHOW = [ID, …]
- # アクター
- ACT_NOT_SHOW = []
- # エネミー
- ENM_NOT_SHOW = []
- # アイテム
- ITM_NOT_SHOW = []
- # 武器
- WPN_NOT_SHOW = []
- # 防具
- ARM_NOT_SHOW = []
- # スキル
- SKL_NOT_SHOW = []
- # クラス
- CLS_NOT_SHOW = []
- # 場所
- TWN_NOT_SHOW = []
-
- end
- module DictAutoCreate
- include DictDef
- #--------------------------------------------------------------------------
- # ● 定数
- #--------------------------------------------------------------------------
- TARGET = [なし, 敵単体, 敵全体,
- 敵1体ランダム, 敵2体ランダム, 敵3体ランダム, 敵4体ランダム,
- 味方単体, 味方全体,
- 味方単体蘇生, 味方全体蘇生, 使用者]
- D_TYPE = [なし, %s攻撃, %s攻撃, %s回復, %s回復, %s吸収, %s吸収]
- #--------------------------------------------------------------------------
- # ● 定数(特徴)
- #--------------------------------------------------------------------------
- FEATURE_ELEMENT_RATE = 11 # 属性有効度
- FEATURE_DEBUFF_RATE = 12 # 弱体有効度
- FEATURE_STATE_RATE = 13 # ステート有効度
- FEATURE_STATE_RESIST = 14 # ステート無効化
- FEATURE_PARAM = 21 # 通常能力値
- FEATURE_XPARAM = 22 # 追加能力値
- FEATURE_SPARAM = 23 # 特殊能力値
- FEATURE_ATK_ELEMENT = 31 # 攻撃時属性
- FEATURE_ATK_STATE = 32 # 攻撃時ステート
- FEATURE_ATK_SPEED = 33 # 攻撃速度補正
- FEATURE_ATK_TIMES = 34 # 攻撃追加回数
- FEATURE_STYPE_ADD = 41 # スキルタイプ追加
- FEATURE_STYPE_SEAL = 42 # スキルタイプ封印
- FEATURE_SKILL_ADD = 43 # スキル追加
- FEATURE_SKILL_SEAL = 44 # スキル封印
- FEATURE_EQUIP_WTYPE = 51 # 武器タイプ装備
- FEATURE_EQUIP_ATYPE = 52 # 防具タイプ装備
- FEATURE_EQUIP_FIX = 53 # 装備固定
- FEATURE_EQUIP_SEAL = 54 # 装備封印
- FEATURE_SLOT_TYPE = 55 # スロットタイプ
- FEATURE_ACTION_PLUS = 61 # 行動回数追加
- FEATURE_SPECIAL_FLAG = 62 # 特殊フラグ
- FEATURE_COLLAPSE_TYPE = 63 # 消滅エフェクト
- FEATURE_PARTY_ABILITY = 64 # パーティ能力
-
- FLAG_ID_AUTO_BATTLE = 0 # 自動戦闘
- FLAG_ID_GUARD = 1 # 防御
- FLAG_ID_SUBSTITUTE = 2 # 身代わり
- FLAG_ID_PRESERVE_TP = 3 # TP持ち越し
-
- XPARAM = [命中率, 回避率, 会心率, 会心回避率,
- 魔法回避率, 魔法反射率, 反撃率, %s再生率, %s再生率, %s再生率]
- SPARAM = [狙われ率, 防御効果率, 回復効果率, 薬の知識, %s消費率, %sチャージ率,
- 物理ダメージ率, 魔法ダメージ率, 床ダメージ率, 経験値獲得率]
- SLOT_TYPE = [, 二刀流]
- SPECIAL = [自動戦闘, 防御, 身代わり, %s持ち越し]
- COLLAPSE = [ボス, 瞬間消去, 消えない]
- PT_ABILITY = [エンカウント半減, エンカウント無効, 不意打ち無効, 先制, 獲得金額2倍, アイテム入手率2倍]
- #--------------------------------------------------------------------------
- # ● 定数(使用効果)
- #--------------------------------------------------------------------------
- EFFECT_RECOVER_HP = 11 # HP 回復
- EFFECT_RECOVER_MP = 12 # MP 回復
- EFFECT_GAIN_TP = 13 # TP 増加
- EFFECT_ADD_STATE = 21 # ステート付加
- EFFECT_REMOVE_STATE = 22 # ステート解除
- EFFECT_ADD_BUFF = 31 # 能力強化
- EFFECT_ADD_DEBUFF = 32 # 能力弱体
- EFFECT_REMOVE_BUFF = 33 # 能力強化の解除
- EFFECT_REMOVE_DEBUFF = 34 # 能力弱体の解除
- EFFECT_SPECIAL = 41 # 特殊効果
- EFFECT_GROW = 42 # 成長
- EFFECT_LEARN_SKILL = 43 # スキル習得
- EFFECTS = {
- EFFECT_RECOVER_HP = %s 回復,
- EFFECT_RECOVER_MP = %s 回復,
- EFFECT_GAIN_TP = %s 増加,
- EFFECT_ADD_STATE = ステート付加,
- EFFECT_REMOVE_STATE = ステート解除,
- EFFECT_ADD_BUFF = 能力強化,
- EFFECT_ADD_DEBUFF = 能力弱体,
- EFFECT_REMOVE_BUFF = 能力強化の解除,
- EFFECT_REMOVE_DEBUFF = 能力弱体の解除,
- EFFECT_SPECIAL = 特殊効果,
- EFFECT_GROW = 成長,
- EFFECT_LEARN_SKILL = スキル習得
- }
- #----------------------------------------------------------------------------
- # カスタマイズSTART
- #----------------------------------------------------------------------------
- =begin
- 【説明文の設定】
- XXX_text(id)というメソッド内で、
- 自動生成する際の説明分を設定できます。
- アイテム、武器、防具、スキルはデータベースのものを表示するようになってますが、
- 変更することも可能です。
- また、用語辞典用の制御文字も使用可能です。
- 【自動生成時の設定値】
- create_XXXというメソッド内で自動生成する際の設定値を決め打ちしてます。
- 用語名はデータベースのもの、表示は無効(false)として自動生成します。
- =end
- #--------------------------------------------------------------------------
- # ● Plugin- アクター自動生成 説明文
- #--------------------------------------------------------------------------
- def self.actor_text(id)
- data = $data_actors[id]
- #
- return data.description
- end
- #--------------------------------------------------------------------------
- # ● Plugin- エネミー自動生成 説明文
- #--------------------------------------------------------------------------
- def self.enemy_text(id)
- data = $data_enemies[id]
- #
- items = []
- data.drop_items.each do item
- next if item.kind == 0
- case item.kind
- when 1; d = $data_items[item.data_id]
- when 2; d = $data_weapons[item.data_id]
- when 3; d = $data_armors[item.data_id]
- end
- items.push(i[#{d.icon_index}]#{d.name}(#{(100item.denominator).truncate}%))
- end
- info =
- # エネミーのパラメータ情報
- for i in 0...4
- info += c[16]#{$data_system.terms.params[i2]}c[0]x[84]u[#{id},#{i2}]+
- x[170]c[16]#{$data_system.terms.params[i2+1]}c[0]x[260]u[#{id},#{i2+1}]n
- end
- info +=
- c[16]EXPc[0]x[84]k[#{id}]n+
- c[16]Goldc[0]x[84]g[#{id}] c[16]#{$data_system.currency_unit}c[0]
- items.each_index do i
- info += nc[16]Treasure#{i+1}c[0]x[100]#{items[i]}
- end
- if defined(DefeatCounter) # ★撃破数カウンタとの併用
- info += nc[16]撃破数c[0]x[100]t[#{id}]
- end
- #
- unless $data_system.elements.empty
- rate = element_rate(Game_Enemy.new(0, id))
- info += p + rate if rate !=
- end
- #
- unless $data_states.empty
- rate = state_rate(Game_Enemy.new(0, id))
- info += p + rate if rate !=
- end
- #
- s_actions = {} # skill
- total = 0
- data.actions.each do action
- s_actions[action.skill_id] = 0 if s_actions[action.skill_id].nil
- s_actions[action.skill_id] += action.rating
- total += action.rating
- end
- if !s_actions.empty
- page = 1
- if (Dictionary.d_line_max - 1) s_actions.size
- info += pc[16]【行動パターン(#{page})】c[0]n
- else
- info += pc[16]【行動パターン】c[0]n
- end
- line = 1
- ids = s_actions.keys.sort
- ids.each do sid
- skill = $data_skills[sid]
- if (line % (Dictionary.d_line_max) == 0)
- page += 1
- info += pc[16]【行動パターン(#{page})】c[0]n
- line = 1
- end
- per = (s_actions[sid] 100.0 total).round
- info += x[10]i[#{skill.icon_index}]#{skill.name}x[200]#{per}%n
- line += 1
- end
- end
- #
- text =
- case id
- when 0; text = エネミーID○の説明文~
- end
- #
- return textinfo(text, info)
- end
- #--------------------------------------------------------------------------
- # ● Plugin- アイテム自動生成 説明文
- #--------------------------------------------------------------------------
- def self.item_text(id)
- data = $data_items[id]
- info = data.description
- info += y[4] # 4行目へ
- #
- info += # アイテム情報のテキスト化
- c[16]価格c[0]x[84]#{data.price} c[16]#{$data_system.currency_unit}c[0]n+
- c[16]効果範囲c[0]x[84]#{TARGET[data.scope]}n
- #
- info += self.damage(data.damage) unless data.damage.none
- info += self.effects(data.effects) unless data.effects.empty
- #
- return info
- end
- #--------------------------------------------------------------------------
- # ● Plugin- 武器自動生成 説明文
- #--------------------------------------------------------------------------
- def self.weapon_text(id)
- data = $data_weapons[id]
- info = data.description
- info += y[4] # 4行目へ
- #
- info += c[16]武器タイプc[0]x[120]#{$data_system.weapon_types[data.wtype_id]}n
- #
- info += c[16]価格c[0]x[84]#{data.price} c[16]#{$data_system.currency_unit}c[0]n
- for i in 0...4
- info += c[16]#{$data_system.terms.params[i2]}c[0]x[84]#{data.params[i2]}+
- x[170]c[16]#{$data_system.terms.params[i2+1]}c[0]x[260]#{data.params[i2+1]}n
- end
- #
- info += self.features(data.features)
- #
- return info
- end
- #--------------------------------------------------------------------------
- # ● Plugin- 防具自動生成 説明文
- #--------------------------------------------------------------------------
- def self.armor_text(id)
- data = $data_armors[id]
- info = data.description
- info += y[4] # 4行目へ
- #
- info += c[16]防具タイプc[0]x[120]#{$data_system.armor_types[data.atype_id]}n
- #
- info += c[16]価格c[0]x[84]#{data.price} c[16]#{$data_system.currency_unit}c[0]n
- for i in 0...4
- info += c[16]#{$data_system.terms.params[i2]}c[0]x[84]#{data.params[i2]}+
- x[170]c[16]#{$data_system.terms.params[i2+1]}c[0]x[260]#{data.params[i2+1]}n
- end
- #
- info += self.features(data.features)
- #
- return info
- end
- #--------------------------------------------------------------------------
- # ● Plugin- スキル自動生成 説明文
- #--------------------------------------------------------------------------
- def self.skill_text(id)
- data = $data_skills[id]
- info = data.description
- info += y[4] # 4行目へ
- #
- info += c[16]スキルタイプc[0]x[120]#{$data_system.skill_types[data.stype_id]}
- #
- ids = [data.required_wtype_id1, data.required_wtype_id2].select { a a != 0 }
- unless ids.empty
- info += x[160]c[16]必要武器c[0]x[250]
- ids.each do type
- info += #{$data_system.weapon_types[type]}
- end
- end
- #
- info += n
- #
- info += self.damage(data.damage) unless data.damage.none
- #
- info += c[16]消費#{$data_system.terms.basic[4]}c[0]x[84]#{data.mp_cost}
- info += x[160]c[16]消費#{$data_system.terms.basic[6]}c[0]x[250]#{data.tp_cost}n
- info += c[16]効果範囲c[0]x[84]#{TARGET[data.scope]}n
- info += c[16]成功率c[0]x[84]#{(data.success_rate).truncate}%n
- #
- info += self.effects(data.effects) unless data.effects.empty
- #
- return info
- end
- #--------------------------------------------------------------------------
- # ● Plugin- クラス自動生成 説明文
- #--------------------------------------------------------------------------
- def self.class_text(id)
- data = $data_classes[id]
- #
- info =
- #
- unless data.learnings.empty
- learns = data.learnings.sort {a,b a.level - b.level }
- page = 1
- info += page_text(習得スキル, page, learns.size, 1)
- line = 1
- learns.each do d
- if (line % (Dictionary.d_line_max) == 0)
- page += 1
- info += pc[16]【習得スキル(#{page})】c[0]n
- line = 1
- else
- info += n
- line += 1
- end
- skill = $data_skills[d.skill_id]
- info += x[0]c[16]Lv.#{d.level}c[0]x[80]i[#{skill.icon_index}]#{skill.name}
- line += 1
- end
- end
- #
- info += self.features(data.features)
- #
- text =
- case id
- when 0; text = クラスID○の説明文~
- end
- #
- return textinfo(text, info)
- end
- #----------------------------------------------------------------------------
- # カスタマイズEND
- #----------------------------------------------------------------------------
- #----------------------------------------------------------------------------
- # ■ 汎用メソッド
- #----------------------------------------------------------------------------
- #--------------------------------------------------------------------------
- # ● ページテキスト
- #--------------------------------------------------------------------------
- def self.page_text(text, page, size, divide)
- if (Dictionary.d_line_max - 1) (size divide)
- return c[16]【#{text}(#{page})】c[0]
- else
- return c[16]【#{text}】c[0]
- end
- end
- #--------------------------------------------------------------------------
- # ● 情報テキストとデータベース情報の結合
- #--------------------------------------------------------------------------
- def self.textinfo(text, info)
- return 説明文がありません if text == and info ==
- return text if info ==
- return info if text ==
- return info + p + text
- end
- #--------------------------------------------------------------------------
- # ● 属性配列生成
- #--------------------------------------------------------------------------
- def self.textpm(value)
- return -#{value.abs} if value 0
- return +#{value.abs}
- end
- #--------------------------------------------------------------------------
- # ● 属性配列生成
- #--------------------------------------------------------------------------
- def self.element_icon_text(id)
- if ELE_USE_ICON and !ELE_ICON[id].nil
- return i[#{ELE_ICON[id]}]#{$data_system.elements[id]}
- end
- return $data_system.elements[id]
- end
- def self.element_name(id)
- return i[#{ELE_ICON[id]}] if ELE_USE_ICON and !ELE_ICON[id].nil
- return $data_system.elements[id]
- end
- def self.make_elements(elements)
- text =
- cnt = 0
- for id in elements
- next if ELE_NOT_SHOW.include(id)
- if cnt == ELEMENTS_MAX
- text += など
- break
- end
- text += element_name(id) +
- cnt += 1
- end
- return text
- end
- #--------------------------------------------------------------------------
- # ● ステート配列生成
- #--------------------------------------------------------------------------
- def self.state_icon_text(id)
- return i[#{$data_states[id].icon_index}]#{$data_states[id].name}
- end
- def self.state_name(id)
- return i[#{$data_states[id].icon_index}]
- end
- def self.make_states(states)
- text =
- cnt = 0
- for id in states
- next if STS_NOT_SHOW.include(id)
- if cnt == STATES_MAX
- text += など
- break
- end
- text += state_name(id) +
- cnt += 1
- end
- return text
- end
- #--------------------------------------------------------------------------
- # ● 属性有効度
- #--------------------------------------------------------------------------
- def self.element_rate(data)
- divide = 2
- ids = []
- $data_system.elements.each_index { i
- ids.push(i) if i != 0 and !ELE_NOT_SHOW.include(i)
- }
- return if ids.size == 0
- page = line = 1
- i = 0
- info = page_text(属性有効度, page, ids.size, divide)
- ids.each do id
- if (i % divide) == 0
- if (line % (Dictionary.d_line_max) == 0)
- page += 1
- info += pc[16]【属性有効度(#{page})】c[0]n
- line = 1
- else
- info += n
- line += 1
- end
- end
- ele = element_icon_text(id)
- x = (i % divide) 160
- xx = x + 84
- info += x[#{x}]c[16]#{ele}c[0]x[#{xx}]#{(data.element_rate(id)100).truncate}%
- i += 1
- end
- return info
- end
- #--------------------------------------------------------------------------
- # ● ステート有効度
- #--------------------------------------------------------------------------
- def self.state_rate(data)
- divide = 2
- ids = []
- $data_states.each_index { i
- ids.push(i) if i != 0 and !STS_NOT_SHOW.include(i)
- }
- return if ids.size == 0
- page = line = 1
- i = 0
- info = page_text(ステート有効度, page, ids.size, divide)
- ids.each do id
- if (i % divide) == 0
- if (line % (Dictionary.d_line_max) == 0)
- page += 1
- info += pc[16]【ステート有効度(#{page})】c[0]n
- line = 1
- else
- info += n
- line += 1
- end
- end
- sts = state_icon_text(id)
- x = (i % divide) 160
- xx = x + 100
- info += x[#{x}]c[16]#{sts}c[0]x[#{xx}]#{(data.state_rate(id)100).truncate}%
- i += 1
- end
- return info
- end
- #--------------------------------------------------------------------------
- # ● 属性有効度
- #--------------------------------------------------------------------------
- def self.damage(damage)
- info =
- case damage.type
- when 1,3,5; info += c[16]効果c[0]x[84] + sprintf(D_TYPE[damage.type], $data_system.terms.basic[2])
- when 2,4,6; info += c[16]効果c[0]x[84] + sprintf(D_TYPE[damage.type], $data_system.terms.basic[4])
- end
- if damage.element_id != 0
- info += x[160]c[16]属性c[0]x[250]#{element_icon_text(damage.element_id)}
- end
- return info + n
- end
- #--------------------------------------------------------------------------
- # ● 特徴
- #--------------------------------------------------------------------------
- def self.features(array)
- return if array.size == 0
- page = line = 1
- i = 0
- info = p + page_text(特徴, page, array.size, 1)
- array.each do data
- if (line % (Dictionary.d_line_max) == 0)
- page += 1
- info += pc[16]【特徴(#{page})】c[0]n
- line = 1
- else
- info += n
- line += 1
- end
- info += feature(data, i)
- i += 1
- end
- return info
- end
- def self.feature(data, i)
- x = 10
- xx = x + 120
- case data.code
- when FEATURE_ELEMENT_RATE
- return x[#{x}] + element_icon_text(data.data_id) + x[#{xx}]#{textpm((data.value100).truncate)}%
- when FEATURE_DEBUFF_RATE
- return x[#{x}]#{$data_system.terms.params[data.data_id]}x[#{xx}]#{textpm((data.value100).truncate)}%
- when FEATURE_STATE_RATE
- return x[#{x}]#{$data_states[data.data_id].name}x[#{xx}]#{textpm((data.value100).truncate)}%
- when FEATURE_STATE_RESIST
- info += x[#{x}]#{$data_states[data.data_id].name}x[#{xx}]無効
- return info
- when FEATURE_PARAM
- info += x[#{x}]#{$data_system.terms.params[data.data_id]}x[#{xx}]#{textpm((data.value100).truncate)}%
- return info
- when FEATURE_XPARAM
- info = x[#{x}]
- case data.data_id
- when 7; info += sprintf(XPARAM[data.data_id], $data_system.terms.basic[2])
- when 8; info += sprintf(XPARAM[data.data_id], $data_system.terms.basic[4])
- when 9; info += sprintf(XPARAM[data.data_id], $data_system.terms.basic[6])
- else; info += XPARAM[data.data_id]
- end
- return info + x[#{xx}]#{textpm((data.value100).truncate)}%
- when FEATURE_SPARAM
- info = x[#{x}]
- case data.data_id
- when 4; info += sprintf(SPARAM[data.data_id], $data_system.terms.basic[4])
- when 5; info += sprintf(SPARAM[data.data_id], $data_system.terms.basic[6])
- else; info += SPARAM[data.data_id]
- end
- return info + x[#{xx}]#{textpm((data.value100).truncate)}%
- when FEATURE_ATK_ELEMENT
- return x[#{x}]攻撃属性x[#{xx}]#{$data_system.elements[data.data_id]}
- when FEATURE_ATK_STATE
- return x[#{x}]攻撃時ステートx[#{xx}]#{$data_states[data.data_id]}(#{textpm((data.value100).truncate)}%)
- when FEATURE_ATK_SPEED
- return x[#{x}]攻撃速度補正x[#{xx}]#{textpm(data.value.truncate)}
- when FEATURE_ATK_TIMES
- return x[#{x}]攻撃追加回数x[#{xx}]#{textpm((data.value100).truncate)}
- when FEATURE_STYPE_ADD
- return x[#{x}]「#{$data_system.skill_types[data.data_id]}」系スキル追加
- when FEATURE_STYPE_SEAL
- return x[#{x}]「#{$data_system.skill_types[data.data_id]}」系スキル封印
- when FEATURE_SKILL_ADD
- return x[#{x}]「#{$data_skills[data.data_id].name}」習得
- when FEATURE_SKILL_SEAL
- return x[#{x}]「#{$data_skills[data.data_id].name}」封印
- when FEATURE_EQUIP_WTYPE
- return x[#{x}]「#{$data_system.weapon_types[data.data_id]}」装備可能
- when FEATURE_EQUIP_ATYPE
- return x[#{x}]「#{$data_system.armor_types[data.data_id]}」装備可能
- when FEATURE_EQUIP_FIX
- return x[#{x}]「#{$data_system.terms.etypes[data.data_id]}」装備固定化
- when FEATURE_EQUIP_SEAL
- return x[#{x}]「#{$data_system.terms.etypes[data.data_id]}」装備不可
- when FEATURE_SLOT_TYPE
- return x[#{x}] + SLOT_TYPE[data.data_id]
- when FEATURE_ACTION_PLUS
- return x[#{x}]複数回行動率x[#{xx}]#{textpm((data.value100).truncate)}%
- when FEATURE_SPECIAL_FLAG
- if data.data_id == FLAG_ID_PRESERVE_TP
- return x[#{x}] + sprintf(SPECIAL[data.data_id], $data_system.terms.basic[6])
- else
- return x[#{x}] + SPECIAL[data.data_id]
- end
- when FEATURE_COLLAPSE_TYPE
- return ##x[#{x}] + COLLAPSE[data.data_id]
- when FEATURE_PARTY_ABILITY
- return x[#{x}] + PT_ABILITY[data.data_id]
- end
- return
- end
- #--------------------------------------------------------------------------
- # ● 使用効果
- #--------------------------------------------------------------------------
- def self.effects(array)
- info =
- x = 120
- a = array.select { effect effect.code == EFFECT_RECOVER_HP }
- unless a.empty
- info += c[16]#{sprintf(EFFECTS[a[0].code], $data_system.terms.basic[2])}c[0]
- a.each do effect
- info += x[#{x}]
- info += #{textpm(effect.value1.truncate)}% if effect.value1 != 0
- info += #{textpm(effect.value2.truncate)} if effect.value2 != 0
- info += n
- end
- end
- a = array.select { effect effect.code == EFFECT_RECOVER_MP }
- unless a.empty
- info += c[16]#{sprintf(EFFECTS[a[0].code], $data_system.terms.basic[4])}c[0]
- a.each do effect
- info += x[#{x}]
- info += #{textpm(effect.value1.truncate)}% if effect.value1 != 0
- info += #{textpm(effect.value2.truncate)} if effect.value2 != 0
- info += n
- end
- end
- a = array.select { effect effect.code == EFFECT_GAIN_TP }
- unless a.empty
- info += c[16]#{sprintf(EFFECTS[a[0].code], $data_system.terms.basic[6])}c[0]x[#{x}]
- a.each do effect
- info += #{textpm(effect.value1.truncate)}
- end
- info += n
- end
- a = array.select { effect effect.code == EFFECT_ADD_STATE and effect.data_id != 0 }
- unless a.empty
- info += c[16]#{EFFECTS[a[0].code]}c[0]x[#{x}]
- a.each do effect
- info += state_icon_text(effect.data_id)
- end
- info += n
- end
- a = array.select { effect effect.code == EFFECT_REMOVE_STATE and effect.data_id != 0 }
- unless a.empty
- info += c[16]#{EFFECTS[a[0].code]}c[0]x[#{x}]
- a.each do effect
- info += state_icon_text(effect.data_id)
- end
- info += n
- end
- a = array.select { effect effect.code == EFFECT_ADD_BUFF }
- unless a.empty
- info += c[16]#{EFFECTS[a[0].code]}c[0]
- a.each do effect
- info += x[#{x}]
- info += #{$data_system.terms.params[effect.data_id]}UP
- info += #{effect.value1.truncate}ターン
- info += n
- end
- end
- a = array.select { effect effect.code == EFFECT_ADD_DEBUFF }
- unless a.empty
- info += c[16]#{EFFECTS[a[0].code]}c[0]
- a.each do effect
- info += x[#{x}]
- info += #{$data_system.terms.params[effect.data_id]}DOWN
- info += #{effect.value1.truncate}ターン
- info += n
- end
- end
- a = array.select { effect effect.code == EFFECT_REMOVE_BUFF }
- unless a.empty
- info += c[16]#{EFFECTS[a[0].code]}c[0]
- a.each do effect
- info += x[#{x}]
- info += #{$data_system.terms.params[effect.data_id]}UP解除
- info += n
- end
- end
- a = array.select { effect effect.code == EFFECT_REMOVE_DEBUFF }
- unless a.empty
- info += c[16]#{EFFECTS[a[0].code]}c[0]
- a.each do effect
- info += x[#{x}]
- info += #{$data_system.terms.params[effect.data_id]}DOWN解除
- info += n
- end
- end
- a = array.select { effect effect.code == EFFECT_GROW }
- unless a.empty
- info += c[16]#{EFFECTS[a[0].code]}c[0]
- a.each do effect
- info += x[#{x}]
- info += #{$data_system.terms.params[effect.data_id]}
- info += #{textpm(effect.value1.truncate)}
- info += n
- end
- end
- a = array.select { effect effect.code == EFFECT_LEARN_SKILL }
- unless a.empty
- a.each do effect
- info += x[#{x}]
- info += 「#{$data_skills[effect.data_id]}」習得
- info += n
- end
- end
- return info
- end
- #----------------------------------------------------------------------------
- # ■ 自動生成メソッド
- #----------------------------------------------------------------------------
- #--------------------------------------------------------------------------
- # ● アクター情報の自動生成
- #--------------------------------------------------------------------------
- def self.create_actor(id)
- data = [n[#{id}], n[#{id}], b[#{id}], actor_text(id)]
- return DictionaryDictData.new(id, data)
- end
- #--------------------------------------------------------------------------
- # ● エネミー情報の自動生成
- #--------------------------------------------------------------------------
- def self.create_enemy(id)
- data = [e[#{id}], , e[#{id}], enemy_text(id)]
- return DictionaryDictData.new(id, data)
- end
- #--------------------------------------------------------------------------
- # ● エネミー情報の自動生成
- #--------------------------------------------------------------------------
- def self.create_enemy_analize(id)
- data = [e[#{id}], , e[#{id}], ]
- return DictionaryDictData.new(id, data)
- end
- #--------------------------------------------------------------------------
- # ● アイテム情報の自動生成
- #--------------------------------------------------------------------------
- def self.create_item(id)
- data = [t[#{id}], t[#{id}], nil, item_text(id)]
- return DictionaryDictData.new(id, data)
- end
- #--------------------------------------------------------------------------
- # ● 武器情報の自動生成
- #--------------------------------------------------------------------------
- def self.create_weapon(id)
- data = [w[#{id}], w[#{id}], nil, weapon_text(id)]
- return DictionaryDictData.new(id, data)
- end
- #--------------------------------------------------------------------------
- # ● 防具情報の自動生成
- #--------------------------------------------------------------------------
- def self.create_armor(id)
- data = [a[#{id}], a[#{id}], nil, armor_text(id)]
- return DictionaryDictData.new(id, data)
- end
- #--------------------------------------------------------------------------
- # ● スキル情報の自動生成
- #--------------------------------------------------------------------------
- def self.create_skill(id)
- data = [s[#{id}], s[#{id}], nil, skill_text(id)]
- return DictionaryDictData.new(id, data)
- end
- #--------------------------------------------------------------------------
- # ● クラス情報の自動生成
- #--------------------------------------------------------------------------
- def self.create_class(id)
- data = [J[#{id}], j[#{id}], nil, class_text(id)]
- return DictionaryDictData.new(id, data)
- end
- #--------------------------------------------------------------------------
- # ● 場所情報の自動生成
- #--------------------------------------------------------------------------
- def self.create_town(id)
- unless defined(WorldMap)
- p Error can't use ATC_TOWN [WorldMapが定義されてません];exit
- end
- region_id = id 1000
- town_id = (id % 1000) - 1
- if town_id 0 # リージョン情報
- region = $game_system.worldmap[region_id]
- data = [region.region_name, 地域, nil, region.region_info, region.visible]
- else # タウン情報
- town = $game_system.worldmap[region_id][town_id]
- data = [town.town_name, 場所, nil, town.town_info, town.visible]
- end
- return DictionaryDictData.new(id, data)
- end
- #--------------------------------------------------------------------------
- # ● クエスト情報の自動生成
- #--------------------------------------------------------------------------
- def self.create_quest(id)
- unless defined(Quest)
- p Error can't use ATC_QUEST [QuestSystemが定義されてません];exit
- end
- data = [#{$game_system.quest[id].name}, , nil, Quest.conv_text($game_system.quest[id].text)]
- return DictionaryDictData.new(id, data)
- end
- end
- module DictAutoCreate
- #--------------------------------------------------------------------------
- # ● Plugin-自動生成(用語ID)
- #--------------------------------------------------------------------------
- def self.plugin_auto_ids(type)
- ids = []
- case type
- when ATC_ACTOR # アクターの自動生成
- $data_actors.each do d
- next if d.nil or ACT_NOT_SHOW.include(d.id)
- ids.push(d.id)
- end
- when ATC_ENEMY, ATC_ENEMY_A # エネミーの自動生成
- $data_enemies.each do d
- next if d.nil or ENM_NOT_SHOW.include(d.id)
- ids.push(d.id)
- end
- when ATC_ITEM # アイテムの自動生成
- $data_items.each do d
- next if d.nil or ITM_NOT_SHOW.include(d.id)
- ids.push(d.id)
- end
- when ATC_WEAPON # 武器の自動生成
- $data_weapons.each do d
- next if d.nil or WPN_NOT_SHOW.include(d.id)
- ids.push(d.id)
- end
- when ATC_ARMOR_ALL # 防具(全て)の自動生成
- $data_armors.each do d
- next if d.nil or ARM_NOT_SHOW.include(d.id)
- ids.push(d.id)
- end
- when ATC_ARMOR_S # 防具(盾のみ)の自動生成
- $data_armors.each do d
- next if d.nil or ARM_NOT_SHOW.include(d.id)
- next if $data_armors[i].kind != 0 # 盾
- ids.push(d.id)
- end
- when ATC_ARMOR_H # 防具(頭防具のみ)の自動生成
- $data_armors.each do d
- next if d.nil or ARM_NOT_SHOW.include(d.id)
- next if $data_armors[i].kind != 1 # 頭防具
- ids.push(d.id)
- end
- when ATC_ARMOR_C # 防具(身体防具のみ)の自動生成
- $data_armors.each do d
- next if d.nil or ARM_NOT_SHOW.include(d.id)
- next if $data_armors[i].kind != 2 # 身体防具
- ids.push(d.id)
- end
- when ATC_ARMOR_A # 防具(装飾品のみ)の自動生成
- $data_armors.each do d
- next if d.nil or ARM_NOT_SHOW.include(d.id)
- next if $data_armors[i].kind != 3 # 装飾品
- ids.push(d.id)
- end
- when ATC_SKILL # スキルの自動生成
- $data_skills.each do d
- next if d.nil or SKL_NOT_SHOW.include(d.id)
- ids.push(d.id)
- end
- when ATC_CLASS # クラスの自動生成
- $data_classes.each do d
- next if d.nil or CLS_NOT_SHOW.include(d.id)
- ids.push(d.id)
- end
- when ATC_TOWN # 場所の自動生成
- if defined(WorldMap)
- WorldMapREGION.keys.sort.each do region_id
- i = self.conv_region_id(region_id)
- next if TWN_NOT_SHOW.include(i)
- ids.push(i)
- WorldMapREGION[region_id][WorldMapR_TOWN].keys.sort.each do town_id
- i = self.conv_town_id(region_id, town_id)
- next if TWN_NOT_SHOW.include(i)
- ids.push(i)
- end
- end
- else
- p WorldMapがありません。; exit
- end
- when ATC_QUEST # クエストの自動生成
- if defined(Quest)
- QuestQUEST.keys.sort.each do i
- next if QST_NOT_SHOW.include(i)
- ids.push(i)
- end
- else
- p QuestSystemがありません。; exit
- end
- else
- p [PluginAutoCreate] ATC_XXXの指定が間違ってます #{type}
- end
- return ids
- end
- #--------------------------------------------------------------------------
- # ● ATC_TOWN リージョンID - 用語ID変換
- #--------------------------------------------------------------------------
- def self.conv_region_id(region_id)
- if defined(WorldMap)
- return (region_id 1000)
- else
- p WorldMapがありません。; exit
- end
- end
- #--------------------------------------------------------------------------
- # ● ATC_TOWN タウンID - 用語ID変換
- #--------------------------------------------------------------------------
- def self.conv_town_id(region_id, town_id)
- if defined(WorldMap)
- return (self.conv_region_id(region_id) + town_id + 1)
- else
- p WorldMapがありません。; exit
- end
- end
- #--------------------------------------------------------------------------
- # ● Plugin-自動生成(用語データ)
- #--------------------------------------------------------------------------
- def self.plugin_auto_create(type, id)
- case type
- when ATC_ACTOR # アクターの自動生成
- return DictAutoCreate.create_actor(id)
- when ATC_ENEMY # エネミーの自動生成
- return DictAutoCreate.create_enemy(id)
- when ATC_ENEMY_A # エネミー(アナライズ用)の自動生成
- return DictAutoCreate.create_enemy_analize(id)
- when ATC_ITEM # アイテムの自動生成
- return DictAutoCreate.create_item(id)
- when ATC_WEAPON # 武器の自動生成
- return DictAutoCreate.create_weapon(id)
- when ATC_ARMOR_ALL # 防具(全て)の自動生成
- return DictAutoCreate.create_armor(id)
- when ATC_ARMOR_S # 防具(盾のみ)の自動生成
- return DictAutoCreate.create_armor(id)
- when ATC_ARMOR_H # 防具(頭防具のみ)の自動生成
- return DictAutoCreate.create_armor(id)
- when ATC_ARMOR_C # 防具(身体防具のみ)の自動生成
- return DictAutoCreate.create_armor(id)
- when ATC_ARMOR_A # 防具(装飾品のみ)の自動生成
- return DictAutoCreate.create_armor(id)
- when ATC_SKILL # スキルの自動生成
- return DictAutoCreate.create_skill(id)
- when ATC_CLASS # クラスの自動生成
- return DictAutoCreate.create_class(id)
- when ATC_TOWN # 場所の自動生成
- return DictAutoCreate.create_town(id)
- when ATC_QUEST # クエストの自動生成
- return DictAutoCreate.create_quest(id)
- else
- p [PluginAutoCreate] ATC_XXXの指定が間違ってます #{type}
- exit
- end
- end
- end
复制代码 显示错误的地方:
删了一个又一个后还是有很多问题
↓这只是几个而已,后面还有很多……所以想请能改的大大帮忙把错误的地方都改一下
|
|