#============================================================================== # ■ UKRA Scripted Region⇒ コア機能スクリプト #------------------------------------------------------------------------------ # 本サイトで配布しているスクリプトの内、多種のスクリプトに内蔵されるような # (地味な)機能をまとめた物です。 # 本サイトのスクリプトを導入する場合、それよりも上にこのスクリプトを # 導入してください。 #============================================================================== # # \passive (スキルのメモに記入して使用) # パッシブスキルを表すタグです。パッシブオブジェクト、アクションオブジェクトの # 読み込みの際、パッシブスキルを修得していればそれも読み込まれます。 # # \good_state (ステートのメモに記入して使用) # 良性ステートを表すタグです。その他のスクリプトと連動する機能です。 # # \bad_state (ステートのメモに記入して使用) # 悪性ステートを表すタグです。その他のスクリプトと連動する機能です。 # #============================================================================== #============================================================================== # ○ カスタマイズポイント #============================================================================== module UKRA_CORESYS #------------------------------------------------------------------------- # ◆瀕死状態の境目 #------------------------------------------------------------------------- # HPゲージに反映される、「瀕死状態」「危機状態」のHPを%指定。 # 瀕死状態だと、HPゲージが赤くなります。 # 危機状態だと、HPゲージが黄色くなります。 # ※HPの文字色は、瀕死状態の時のみ変わります。 HP_NEARDEATH = 30 # 危機状態 / デフォルトではHP 30%以下から HP_DANGEROUS = 70 # 消耗状態 / デフォルトではHP 70%以下から MP_NEAREMPTY = 30 # MP枯渇寸前 / MP残量目安 MP_SPENT = 70 # MP消費状態 / MP残量目安 #------------------------------------------------------------------------- # ◆最大HP・最大MPの上限 #------------------------------------------------------------------------- # アクター&エネミーの最大HP・最大MPの上限を設定します。 # アクター、エネミー共に共通の数値です。 MAXHP_LIMIT = 999999 # 最大HPの上限 MAXMP_LIMIT = 9999 # 最大MPの上限 #------------------------------------------------------------------------- # ○ 配列の平均値を計算 #------------------------------------------------------------------------- def calc_array_average(array) return 0 if array.size == 0 a, b = 0, array.size for i in array do a += i end return a / b end end #------------------------------------------------------------------------------# if $ukra_core == nil $ukra_core = {} end $ukra_core[1] = true #------------------------------------------------------------------------------# #============================================================================== # ◆ RPG::Skill #============================================================================== class RPG::Skill < RPG::UsableItem #------------------------------------------------------------------------- # ○ パッシブスキル #------------------------------------------------------------------------- def passive_skill @note.gsub(/\\passive/i) do return true end return false end end #============================================================================== # ◆ RPG::State #============================================================================== class RPG::State #------------------------------------------------------------------------- # ○ 良性ステート #------------------------------------------------------------------------- def good_state @note.gsub(/\\good_state/i) do return true end return false end #------------------------------------------------------------------------- # ○ 悪性ステート #------------------------------------------------------------------------- def bad_state @note.gsub(/\\bad_state/i) do return true end return false end end #============================================================================== # ◆ RPG::Enemy #============================================================================== class RPG::Enemy #------------------------------------------------------------------------- # ○ 擬似装備 #------------------------------------------------------------------------- def equip_ids if @equip_wids == nil or @equip_aids == nil @equip_wids, @equip_aids = [], [] @note.gsub(/\\equip\[([WA]:[\d]+(?:\s*,\s*[WA]:[\d]+)?)\]/i) do $1.scan(/W:[\d]+/i).each { |num| @equip_wids << num.split(/:/)[1].to_i } end @note.gsub(/\\equip\[([WA]:[\d]+(?:\s*,\s*[WA]:[\d]+)?)\]/i) do $1.scan(/A:[\d]+/i).each { |num| @equip_aids << num.split(/:/)[1].to_i } end end return [@equip_wids, @equip_aids] end end module UKRA_CoreScript_BattlerBase def maxhp return super end def maxmp return super end def atk return super end def def return super end def spi return super end def agi return super end end class Game_Battler #------------------------------------------------------------------------- # ○ パッシブスキル一覧 #------------------------------------------------------------------------- def list_passive_skill return [] end #------------------------------------------------------------------------- # ○ 装備・ステート・パッシブ・行動スキルの全てを取得する #------------------------------------------------------------------------- def call_action_obj return (equips+states+list_passive_skill+[@action.skill,@action.item]).compact end #-------------------------------------------------------------------------- # ○ 装備・ステート・パッシブスキルの取得 #-------------------------------------------------------------------------- def call_passive_obj return (equips + states + list_passive_skill).compact end #-------------------------------------------------------------------------- # ○ 残りHP割合 #-------------------------------------------------------------------------- def resthp return @hp * 100 / maxhp end #-------------------------------------------------------------------------- # ○ 残りMP割合 #-------------------------------------------------------------------------- def restmp return @mp * 100 / maxmp end #-------------------------------------------------------------------------- # ○ 残りHPのピンチ具合 #-------------------------------------------------------------------------- def hp_danger? n, a, b = 0, UKRA_CORESYS::HP_NEARDEATH, UKRA_CORESYS::HP_DANGEROUS case resthp when 0; n = 0 when 1...a; n = 1 when a...b; n = 2 when b..100; n = 3 else; n = 4 end return n end #-------------------------------------------------------------------------- # ○ 残りMPのピンチ具合 #-------------------------------------------------------------------------- def mp_danger? n, a, b = 0, UKRA_CORESYS::MP_NEAREMPTY, UKRA_CORESYS::MP_SPENT case restmp when 0; n = 0 when 1...a; n = 1 when a...b; n = 2 when b..100; n = 3 else; n = 4 end return n end #-------------------------------------------------------------------------- # ● MaxHP の制限値取得(再定義) #-------------------------------------------------------------------------- def maxhp_limit return UKRA_CORESYS::MAXHP_LIMIT end #-------------------------------------------------------------------------- # ● MaxMP の制限値取得(再定義) #-------------------------------------------------------------------------- def maxmp_limit return UKRA_CORESYS::MAXMP_LIMIT end end class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ○ パッシブスキル一覧 #-------------------------------------------------------------------------- def list_passive_skill result = [] for i in skills do result.push(i) if i.passive_skill end return result.compact end end class Game_Enemy < Game_Battler #-------------------------------------------------------------------------- # ○ パッシブスキル一覧 #-------------------------------------------------------------------------- def list_passive_skill return [enemy] end #-------------------------------------------------------------------------- # ○ 擬似装備(メモ欄のみ参照) #-------------------------------------------------------------------------- def equips return weapons + armors end #-------------------------------------------------------------------------- # ○ 疑似装備・武器 #-------------------------------------------------------------------------- def weapons result = [] wep = enemy.equip_ids[0] for i in wep.compact do result.push($data_weapons[i]) end return result end #-------------------------------------------------------------------------- # ○ 疑似装備・防具 #-------------------------------------------------------------------------- def armors result = [] amr = enemy.equip_ids[1] for i in amr.compact do result.push($data_armors[i]) end return result end end class Window_Base < Window #-------------------------------------------------------------------------- # ● HP ゲージの色 1 の取得 #-------------------------------------------------------------------------- def hp_gauge_color1(actor = nil) if actor if actor.resthp < UKRA_CORESYS::HP_NEARDEATH return text_color(18) elsif actor.resthp < UKRA_CORESYS::HP_DANGEROUS return text_color(20) else return text_color(28) end end return text_color(20) end #-------------------------------------------------------------------------- # ● HP ゲージの色 2 の取得 #-------------------------------------------------------------------------- def hp_gauge_color2(actor = nil) if actor if actor.resthp < UKRA_CORESYS::HP_NEARDEATH return text_color(2) elsif actor.resthp < UKRA_CORESYS::HP_DANGEROUS return text_color(21) else return text_color(29) end end return text_color(21) end #-------------------------------------------------------------------------- # ● HP の文字色を取得 # actor : アクター #-------------------------------------------------------------------------- def hp_color(actor) return knockout_color if actor.hp == 0 return crisis_color if actor.resthp < UKRA_CORESYS::HP_NEARDEATH return normal_color end end class Scene_Battle < Scene_Base attr_reader :active_battler end