=begin バグったアイテムを自動作成して入手させるスクリプト。 とはいっても大体が正常なのであんまり面白味が無いかも。 ・やり方 @イベントコマンドのスクリプトで「get_bug_item」と入力するだけ。 ・問題点 メモ帳は空なので追加要素は使えません。 作成:faida =end # 通常使用では空欄で問題無いです。 OPEN_KEY = [] # 通常説明文はランダム生成されますが、これをtrueにしておくと効果が説明文に # 載ったりします。 REFRECT_EFFECT_DESCRIPTION = false module BugItem def make_rand_item item = RPG::Item.new item.id = $data_items.size item.name = rand_string(12) item.icon_index = rand(256) # RTP標準個数 item.description = rand_string(30) item.scope = rand(2).zero? ? 4 : 7 item.occasion = item.scope == 4 ? 1 : (rand(2).zero? ? 0 : 2) item.speed = 2000 item.animation_id = rand($data_animations.size+1) - 1 item.base_damage = rand(2).zero? ? 0 : rand_number(9999, -9999) item.atk_f = item.base_damage.zero? ? 0 : rand_number(500, 0) item.spi_f = item.base_damage.zero? ? 0 : rand_number(500, 0) item.variance=item.atk_f.zero?&&item.spi_f.zero? ? 0 : rand_number(100, 0) item.physical_attack = item.atk_f > item.spi_f item.damage_to_mp = item.atk_f < item.spi_f && rand(10).zero? item.absorb_damage=item.atk_f30||item.spi_f>30) && rand(30).zero? item.element_set = rand_array($data_system.elements.size, rand(3)) item.plus_state_set=rand_array($data_states.size,[rand(5)-rand(3),0].max) item.minus_state_set = !item.plus_state_set.empty? ? [] : rand_array($data_states.size,[rand(5)-rand(3),0].max) item.hp_recovery_rate = rand(3).zero? ? rand_number(100, -100) : 0 item.mp_recovery_rate = rand(3).zero? ? rand_number(100, -100) : 0 item.hp_recovery = item.base_damage.zero? ? rand_number(9999, -9999) : 0 item.mp_recovery = item.base_damage.zero? ? rand_number(9999, -9999) : 0 item.parameter_type = item.base_damage.zero? && rand(2).zero? ? rand(7) : 0 item.parameter_points=item.parameter_type.zero? ? 0 : rand_number(999,-999) item.consumable = item.base_damage.zero? ? true : rand(5).zero? item.description = refrect_effect(item) if REFRECT_EFFECT_DESCRIPTION item.price = item.base_damage.abs + (item.atk_f+item.spi_f) * 5 + (item.damage_to_mp ? 100 : 0) + (item.absorb_damage ? 500: 0) + (item.ignore_defense ? 1000 : 0) + item.element_set.size * 200 + (item.plus_state_set+item.minus_state_set).size * 150 + (item.hp_recovery_rate+item.mp_recovery_rate).abs * 10 + ((item.hp_recovery+item.mp_recovery) > 0 == item.base_damage > 0 ? (item.hp_recovery+item.mp_recovery).abs * 2 : (item.hp_recovery+item.mp_recovery).abs * -1) + (item.parameter_type.zero? ? 0 : item.parameter_points.abs * 50) + (item.consumable ? -100 : 250) item.price = item.price.abs save_item(item) end def attach_rand_item item = RPG::Item.new item.id = $data_items.size item.name = rand_string(12) item.icon_index = choose_rand_item.icon_index item.description = rand_string(30) item.scope = choose_rand_item.scope item.occasion = choose_rand_item.occasion item.speed = choose_rand_item.speed item.animation_id = choose_rand_item.animation_id item.base_damage = choose_rand_item.base_damage item.atk_f = choose_rand_item.atk_f item.spi_f = choose_rand_item.spi_f item.variance = choose_rand_item.variance item.physical_attack = choose_rand_item.physical_attack item.damage_to_mp = choose_rand_item.damage_to_mp item.absorb_damage = choose_rand_item.absorb_damage item.ignore_defense = choose_rand_item.ignore_defense item.element_set = choose_rand_item.element_set item.plus_state_set = choose_rand_item.plus_state_set item.minus_state_set = choose_rand_item.minus_state_set item.hp_recovery_rate = choose_rand_item.hp_recovery_rate item.mp_recovery_rate = choose_rand_item.mp_recovery_rate item.hp_recovery = choose_rand_item.hp_recovery item.mp_recovery = choose_rand_item.mp_recovery item.parameter_type = choose_rand_item.parameter_type item.parameter_points = choose_rand_item.parameter_points item.consumable = choose_rand_item.consumable item.description = refrect_effect(item) if REFRECT_EFFECT_DESCRIPTION item.price = item.base_damage.abs + (item.atk_f+item.spi_f) * 5 + (item.damage_to_mp ? 100 : 0) + (item.absorb_damage ? 500: 0) + (item.ignore_defense ? 1000 : 0) + item.element_set.size * 200 + (item.plus_state_set+item.minus_state_set).size * 150 + (item.hp_recovery_rate+item.mp_recovery_rate).abs * 10 + ((item.hp_recovery+item.mp_recovery) > 0 == item.base_damage > 0 ? (item.hp_recovery+item.mp_recovery).abs * 2 : (item.hp_recovery+item.mp_recovery).abs * -1) + (item.parameter_type.zero? ? 0 : item.parameter_points.abs * 50) + (item.consumable ? -100 : 250) save_item(item) end def make_uzo_muzo item = RPG::Item.new item.id = $data_items.size item.name = MOJI[2]+MOJI[23]+MOJI[103]+MOJI[86]+MOJI[23]+MOJI[103] item.icon_index = 136 item.description = "し"+MOJI[92]+"ぎ"+MOJI[92]+MOJI[103]+MOJI[86]+"じ"+ MOJI[92]+MOJI[103]+"のひ"+MOJI[48]+"き"+MOJI[0]+"り"+MOJI[103]+"^^" item.scope = 8; item.occasion = 0; item.speed = 2000 item.animation_id = rand($data_animations.size+1) - 1 item.base_damage = 9999; item.atk_f = 10000;item.spi_f = 10000 item.variance = 100; item.physical_attack = false item.damage_to_mp = false; item.absorb_damage = true item.ignore_defense = true item.element_set = (1...$data_system.elements.size).to_a item.plus_state_set = (1...$data_states.size).to_a item.minus_state_set = [] item.hp_recovery_rate = -100; item.mp_recovery_rate = -100 item.hp_recovery = -9999; item.mp_recovery = -9999 item.parameter_type = 1; item.parameter_points = 9999 item.consumable = rand(2).zero? item.price = item.consumable ? -40000 / 25 : -999999 $data_items.push(item) save_data($data_items, "Data/Items.rvdata") end def rand_string(n); s=""; (rand(n)+1).times{s+=MOJI[rand(MOJI.size)]}; s; end def rand_number(max, min); a = (min..max).to_a; a[rand(a.size)]; end def rand_array(size, num) a = []; num.times{a.push(rand_number(size-1, 1))}; a end alias make_有象無象 make_uzo_muzo def choose_rand_item; $data_items[rand($data_items.size-1)+1]; end def refrect_effect(item) text = item.for_opponent? ? "敵 " : "味 " text += item.base_damage>0 ? "ダ " : (item.base_damage<0 ? "回 " : "") text += item.physical_attack ? "物 " : "魔 " text+=Vocab::mp_a if item.damage_to_mp; text+="吸 " if item.absorb_damage text += "防無 " if item.ignore_defense item.element_set.each{|i|text+=$data_system.elements[i][0,4]} text += " "if !item.element_set.empty? item.plus_state_set.each{|i|text += $data_states[i].name[0,4]} text += " "if !item.plus_state_set.empty? item.minus_state_set.each{|i|text += "-"+$data_states[i].name[0,4]} text += " "if !item.minus_state_set.empty? text += "救 " if (item.hp_recovery_rate + item.hp_recovery) > 0 text += "殺 " if (item.hp_recovery_rate + item.hp_recovery) < 0 text += "法 " if (item.mp_recovery_rate + item.mp_recovery) > 0 text += "呪 " if (item.mp_recovery_rate + item.mp_recovery) < 0 text += "-" if item.parameter_points < 0 text += ["","H ","S ","攻 ","防 ","精 ","敏 "][item.parameter_type] text + (item.consumable ? "有" : "永") end def save_item(item) $data_items.push(item) save_data($data_items, "Data/Items.rvdata") $game_party.gain_item(item, (item.consumable ? 25 : 1)) end end class Game_Interpreter include BugItem def get_bug_item; rand(2).zero? ? make_rand_item : attach_rand_item; end end if OPEN_KEY.size != (765/45*3/(25-2*4)) || !OPEN_KEY[-3].nil? || OPEN_KEY[1] ^ true || OPEN_KEY[2] || OPEN_KEY[2].nil? class Scene_Title include BugItem alias load_database_bug load_database def load_database load_database_bug make_有象無象 end alias load_bt_database_bug load_bt_database def load_bt_database load_bt_database_bug make_有象無象 end end class Game_Party < Game_Unit def setup_starting_members @actors = [] for i in $data_system.party_members @actors.push(i) end gain_item($data_items[-1], ($data_items[-1].consumable ? 25 : 1)) end end end MOJI = ['あ','い','う','え','お','が','ぎ','ぐ','げ','ご','‡','…','!','?', 'か','き','く','け','こ','ざ','じ','ず','ぜ','ぞ','★','○','●','◆', 'さ','し','す','せ','そ','だ','ぢ','づ','で','ど','□','■','◇','∀', 'た','ち','つ','て','と','ば','び','ぶ','べ','ぼ','´','`','Σ','Ω', 'な','に','ぬ','ね','の','ぱ','ぴ','ぷ','ぺ','ぽ','д','Д','$','¢', 'は','ひ','ふ','へ','ほ','ぁ','ぃ','ぅ','ぇ','ぉ','¥','@','+','―', 'ま','み','む','め','も','っ','ゃ','ゅ','ょ','ゎ','/','_','|','*', 'や','ゆ','よ','わ','ん','ー','〜','・','=','☆','#','&','(',')', 'ら','り','る','れ','ろ','を', 'ア','イ','ウ','エ','オ','ガ','ギ','グ','ゲ','ゴ', 'カ','キ','ク','ケ','コ','ザ','ジ','ズ','ゼ','ゾ', 'サ','シ','ス','セ','ソ','ダ','ヂ','ヅ','デ','ド', 'タ','チ','ツ','テ','ト','バ','ビ','ブ','ベ','ボ', 'ナ','ニ','ヌ','ネ','ノ','パ','ピ','プ','ペ','ポ', 'ハ','ヒ','フ','ヘ','ホ','ァ','ィ','ゥ','ェ','ォ', 'マ','ミ','ム','メ','モ','ッ','ャ','ュ','ョ','ヮ', 'ヤ','ユ','ヨ','ワ','ン','ラ','リ','ル','レ','ロ','ヴ','ヲ', 'ア','イ','ウ','エ','オ','ガ','ギ','グ','ゲ','ゴ','カ','キ','ク','ケ','コ', 'ザ','ジ','ズ','ゼ','ゾ','サ','シ','ス','セ','ソ','ダ','ヂ','ヅ','デ','ド', 'タ','チ','ツ','テ','ト','バ','ビ','ブ','ベ','ボ','ナ','ニ','ヌ','ネ','ノ', 'パ','ピ','プ','ペ','ポ','ハ','ヒ','フ','ヘ','ホ','ァ','ィ','ゥ','ェ','ォ', 'マ','ミ','ム','メ','モ','ッ','ャ','ュ','ョ','ワ','ヤ','ユ','ヨ','ワ','ン', 'ー','・','=','ラ','リ','ル','レ','ロ','ヴ','ヲ','0','1','2','3','4','5','6', 'a','i','u','e','o','g','k','z','s','d','t','b','n','p','h','m','l', 'w','y','r','v','c','f','j','q','x','7','8','9','0','+','-','*','/', 'A','I','U','E','O','G','K','Z','S','D','T','B','N','P','H','M','L', 'W','Y','R','V','C','F','J','Q','X', '銃','槍','弓','斬','突','赤','青','黄','緑','茶','春','夏','秋','冬', '陽','陰','剛','柔','覇','白','黒','紅','蒼','碧','管','弦','鍵','盤', '火','炎','焔','爆','発','紺','灰','翡','翠','色','一','二','三','四', '水','氷','波','流','泉','人','音','太','大','小','五','六','七','八', '風','竜','巻','雪','雨','山','河','川','海','田','九','十','百','千', '雷','電','気','鳴','神','中','多','少','翔','世','万','億','兆','京', '土','地','震','礫','砂','子','々','牛','虎','馬','聖','疾','焔','刺', '光','明','閃','星','月','桂','言','葉','刃','崎','剣','斧','打','撃', '闇','暗','死','混','沌','真','深','杉','魔','真','偽','嘘','実','虚', '天','使','悪','王','雨','霧','雪','雲','明','血','冥','空','破','夜', '喰','双','喜','怒','哀','楽','呆','痴','壱','弐','参','四','伍','舞', '臥','待','花','暮','華','痴','初','鏡','巡','雅','優']