#==============================================================================
# ■ ツクールMV/MZパラメータジェネレーター By 貪藻矢射妥←
#
# ツクールMV/MZの限界突破で使用するパラメータ生成スクリプトです
# ツクールMV/MZは持っているけどツクールXPは持っていないという場合は・・・
#
# ちなみに、スクリプトで
# mv_param_genetate()
# を行うとパラメータの生成が可能です。
#
#
#==============================================================================
# 更新っぽいもの
#
# 2024:08:18
# ・関数修正
# ・スクリプトを連続実施しても生成パラメータが正しくなるよう修正
#
# 2024:09:15
# ・無駄処理排除
# ・能力算出方式の追加
module MV_Param_Generate
BASE_PARAM = [
[1,450,500,550,600,650,700,750,800,850,900,950,1000,1050,1100,1150,1200,1250,
1300,1350,1400,1450,1500,1550,1600,1650,1700,1750,1800,1850,1900,1950,2000,
2050,2100,2150,2200,2250,2300,2350,2400,2450,2500,2550,2600,2650,2700,2750,
2800,2850,2900,2950,3000,3050,3100,3150,3200,3250,3300,3350,3400,3450,3500,
3550,3600,3650,3700,3750,3800,3850,3900,3950,4000,4050,4100,4150,4200,4250,
4300,4350,4400,4450,4500,4550,4600,4650,4700,4750,4800,4850,4900,4950,5000,
5050,5100,5150,5200,5250,5300,5350],
[0,90,100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,250,260,
270,280,290,300,310,320,330,340,350,360,370,380,390,400,410,420,430,440,450,
460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,
650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,
840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,
1020,1030,1040,1050,1060,1070],
[1,16,18,19,20,21,23,24,25,26,28,29,30,31,33,34,35,36,38,39,40,41,43,44,45,
46,48,49,50,51,53,54,55,56,58,59,60,61,63,64,65,66,68,69,70,71,73,74,75,76,
77,79,80,81,82,84,85,86,87,89,90,91,92,94,95,96,97,99,100,101,102,104,105,
106,107,109,110,111,112,114,115,116,117,119,120,121,122,124,125,126,127,
129,130,131,132,134,135,136,137,138],
[0,16,18,19,20,21,23,24,25,26,28,29,30,31,33,34,35,36,38,39,40,41,43,44,45,
46,48,49,50,51,53,54,55,56,58,59,60,61,63,64,65,66,68,69,70,71,73,74,75,76,
77,79,80,81,82,84,85,86,87,89,90,91,92,94,95,96,97,99,100,101,102,104,105,
106,107,109,110,111,112,114,115,116,117,119,120,121,122,124,125,126,127,
129,130,131,132,134,135,136,137,138],
[0,16,18,19,20,21,23,24,25,26,28,29,30,31,33,34,35,36,38,39,40,41,43,44,45,
46,48,49,50,51,53,54,55,56,58,59,60,61,63,64,65,66,68,69,70,71,73,74,75,76,
77,79,80,81,82,84,85,86,87,89,90,91,92,94,95,96,97,99,100,101,102,104,105,
106,107,109,110,111,112,114,115,116,117,119,120,121,122,124,125,126,127,
129,130,131,132,134,135,136,137,138],
[0,16,18,19,20,21,23,24,25,26,28,29,30,31,33,34,35,36,38,39,40,41,43,44,45,
46,48,49,50,51,53,54,55,56,58,59,60,61,63,64,65,66,68,69,70,71,73,74,75,76,
77,79,80,81,82,84,85,86,87,89,90,91,92,94,95,96,97,99,100,101,102,104,105,
106,107,109,110,111,112,114,115,116,117,119,120,121,122,124,125,126,127,
129,130,131,132,134,135,136,137,138],
[0,32,35,37,40,42,45,47,50,52,55,57,60,62,65,67,70,72,75,77,80,82,85,87,90,
92,95,97,100,102,105,107,110,112,115,117,120,122,125,127,130,132,135,137,
140,142,145,147,150,152,155,157,160,162,165,167,170,172,175,177,180,182,
185,187,190,192,195,197,200,202,205,207,210,212,215,217,220,222,225,227,
230,232,235,237,240,242,245,247,250,252,255,257,260,262,265,267,270,272,
275,277],
[0,32,35,37,40,42,45,47,50,52,55,57,60,62,65,67,70,72,75,77,80,82,85,87,90,
92,95,97,100,102,105,107,110,112,115,117,120,122,125,127,130,132,135,137,
140,142,145,147,150,152,155,157,160,162,165,167,170,172,175,177,180,182,
185,187,190,192,195,197,200,202,205,207,210,212,215,217,220,222,225,227,
230,232,235,237,240,242,245,247,250,252,255,257,260,262,265,267,270,272,
275,277]
]
# 最大レベル
MAX_LEVEL = 999
# 書き込み先ファイル名
FILE_NAME = "output.txt"
# ◆能力値算出方式
# 0..データベース通り。
# lv:現レベル p[x]:レベル x の能力値
# として、
# (p[99] - p[98]) * (lv - 99)
# をレベル 99 の能力値に加算。
LB_CALC_TYPE_DATABASE = 0
# 1..データベースを用いた二次関数。
# a:レベル1の値 b:レベル2の値 c:レベル3の値 x:現レベル
# として、
# ax^2 + bx + c
# を用いて能力値を算出。
LB_CALC_TYPE_DB_2ND_FUNC = 1
# 2..データベースを用いた一次関数。
# b:レベル2の値 c:レベル3の値 x:現レベル
# として、
# bx + c
# を用いて能力値を算出。
# (レベル2,3の値を使うのは、二次関数方式との使い分けを楽にするため)
LB_CALC_TYPE_DB_1ST_FUNC = 2
# 3..乱数方式。
# レベル1の値をベースに
# レベルアップする度に乱数で数値を加算し続ける方式
LB_CALC_TYPE_RANDOM = 3
# 4..乱高下方式。
# レベルが上がる毎に能力が乱高下する方式。
# バカゲーとかの使用にどうぞ
LB_CALC_TYPE_BAKA = 4
#--------------------------------------------------------------------------
# ● パラメータ生成
#--------------------------------------------------------------------------
def make_param
hp_list = BASE_PARAM[0].dup
mp_list = BASE_PARAM[1].dup
atk_list = BASE_PARAM[2].dup
pdef_list = BASE_PARAM[3].dup
mat_list = BASE_PARAM[4].dup
mdef_list = BASE_PARAM[5].dup
agi_list = BASE_PARAM[6].dup
luk_list = BASE_PARAM[7].dup
hp_list2 = hp_list.dup
mp_list2 = mp_list.dup
atk_list2 = atk_list.dup
pdef_list2 = pdef_list.dup
mat_list2 = mat_list.dup
mdef_list2 = mdef_list.dup
agi_list2 = agi_list.dup
luk_list2 = luk_list.dup
hp_list2 = calc_on_database(hp_list, LB_CALC_TYPE_DATABASE)
mp_list2 = calc_on_database(mp_list, LB_CALC_TYPE_DATABASE)
atk_list2 = calc_on_database(atk_list, LB_CALC_TYPE_DATABASE)
pdef_list2 = calc_on_database(pdef_list, LB_CALC_TYPE_DATABASE)
mat_list2 = calc_on_database(mat_list, LB_CALC_TYPE_DATABASE)
mdef_list2 = calc_on_database(mdef_list, LB_CALC_TYPE_DATABASE)
agi_list2 = calc_on_database(agi_list, LB_CALC_TYPE_DATABASE)
luk_list2 = calc_on_database(luk_list, LB_CALC_TYPE_DATABASE)
file = File.open(FILE_NAME, "w")
file.write("[[")
file.write(hp_list2.join(','))
file.write("],[")
file.write(mp_list2.join(','))
file.write("],[")
file.write(atk_list2.join(','))
file.write("],[")
file.write(pdef_list2.join(','))
file.write("],[")
file.write(mat_list2.join(','))
file.write("],[")
file.write(mdef_list2.join(','))
file.write("],[")
file.write(agi_list2.join(','))
file.write("],[")
file.write(luk_list2.join(','))
file.write("]]")
file.close
end
#--------------------------------------------------------------------------
# ● パラメータ生成
# list : パラメータのリスト
# type : パラメータ生成タイプ
#--------------------------------------------------------------------------
def calc_on_database(list, type)
case type
when LB_CALC_TYPE_DATABASE
for lv in 100..MAX_LEVEL
tmp = (list[99] - list[98]) * (lv - 99) + list[99]
list.push(tmp)
end
return list
when LB_CALC_TYPE_DB_2ND_FUNC
for lv in 100..MAX_LEVEL
tmp = (list[1] * lv)^2 + list[2] * lv + list[3]
list.push(tmp)
end
return list
when LB_CALC_TYPE_DB_1ST_FUNC
for lv in 100..MAX_LEVEL
tmp = list[2] * lv + list[3]
list.push(tmp)
end
return list
when LB_CALC_TYPE_RANDOM
tmp_list = [list[0], list[1]]
for lv in 2..MAX_LEVEL
case flg
when LB_CALC_FLG_HP
tmp = tmp_list[lv - 1] + rand(LB_CALC_BASE_HP)
when LB_CALC_FLG_MP
tmp = tmp_list[lv - 1] + rand(LB_CALC_BASE_MP)
when LB_CALC_FLG_STS
tmp = tmp_list[lv - 1] + rand(LB_CALC_BASE_STS)
else
p "異常なパラメータ種別フラグ"
tmp = 0
end
tmp_list.push(tmp)
end
return tmp_list
when LB_CALC_TYPE_BAKA
tmp_list = [list[0], list[1]]
for lv in 2..MAX_LEVEL
case flg
when LB_CALC_FLG_HP
tmp = tmp_list[lv - 1] + rand(LB_CALC_BASE_HP * 2) - LB_CALC_BASE_HP
tmp = [tmp, list[0]].max
when LB_CALC_FLG_MP
tmp = tmp_list[lv - 1] + rand(LB_CALC_BASE_MP * 2) - LB_CALC_BASE_MP
tmp = [tmp, list[0]].max
when LB_CALC_FLG_STS
tmp = tmp_list[lv - 1] + rand(LB_CALC_BASE_STS * 2) - LB_CALC_BASE_STS
tmp = [tmp, list[0]].max
else
p "異常なパラメータ種別フラグ"
tmp = 0
end
tmp_list.push(tmp)
end
return tmp_list
else
p "異常なタイプ"
return []
end
end
end
class Interpreter
include MV_Param_Generate
#--------------------------------------------------------------------------
# ● パラメータ生成
#--------------------------------------------------------------------------
def mv_param_genetate
make_param
end
end
|