Project1
标题:
是否能将va的EXP曲线计算公式改成xp那种的
[打印本页]
作者:
akachin
时间:
2014-4-12 11:06
标题:
是否能将va的EXP曲线计算公式改成xp那种的
本帖最后由 akachin 于 2014-4-12 16:02 编辑
如题,对脚本一窍不通,搜索似乎也搜不到相关的……
作者:
taroxd
时间:
2014-4-12 11:39
这个已经不是脚本的范畴了……不直接改软件的话应该不行吧。
当然用脚本是可以重做每级所需的经验值的,但那样的话就浪费了这么好的一个数据库了
作者:
tseyik
时间:
2014-4-12 12:09
==============================================================================
# □ No.001
# 経験値詳細設定(RPGツクールVX Ace)
#------------------------------------------------------------------------------
# by initialization
#==============================================================================
#==============================================================================
# □ 設定
#==============================================================================
module RGSSinit end
module RGSSinit::Experience_Value_Details_Setting
#--------------------------------------------------------------------------
# ○ 素材スイッチ(true/false)
#--------------------------------------------------------------------------
MATERIAL_SWITCH = true
#--------------------------------------------------------------------------
# ○ プリセット(ハッシュ設定)
#--------------------------------------------------------------------------
PRESET = {
# "set01" / 100ずつで次のレベルの例
"set01" => [
0, 100, 200, 300, 400, 500, 600, 700, 800, 900,
1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900,
2000, 2100, 2200, 2300, 2400, 2500, 2600, 2700, 2800, 2900,
3000, 3100, 3200, 3300, 3400, 3500, 3600, 3700, 3800, 3900,
4000, 4100, 4200, 4300, 4400, 4500, 4600, 4700, 4800, 4900,
5000, 5100, 5200, 5300, 5400, 5500, 5600, 5700, 5800, 5900,
6000, 6100, 6200, 6300, 6400, 6500, 6600, 6700, 6800, 6900,
7000, 7100, 7200, 7300, 7400, 7500, 7600, 7700, 7800, 7900,
8000, 8100, 8200, 8300, 8400, 8500, 8600, 8700, 8800, 8900,
9000, 9100, 9200, 9300, 9400, 9500, 9600, 9700, 9800, ],
# "set02" / 10 → 15 → 22と1.5倍ずつ加算(レベル22以降は32768で固定)
"set02" => [
0, 10, 25, 47, 80, 129, 202, 311,
474, 718, 1084, 1633, 2456, 3690, 5541, 8317,
12481, 18727, 28096, 42149, 63228, 94846, 127614, 160382,
193150, 225918, 258686, 291454, 324222, 356990, 389758, 422526,
455294, 488062, 520830, 553598, 586366, 619134, 651902, 684670,
717438, 750206, 782974, 815742, 848510, 881278, 914046, 946814,
979582, 1012350, 1045118, 1077886, 1110654, 1143422, 1176190, 1208958,
1241726, 1274494, 1307262, 1340030, 1372798, 1405566, 1438334, 1471102,
1503870, 1536638, 1569406, 1602174, 1634942, 1667710, 1700478, 1733246,
1766014, 1798782, 1831550, 1864318, 1897086, 1929854, 1962622, 1995390,
2028158, 2060926, 2093694, 2290302, 2323070, 2192988, 2224766, 2257534,
2290302, 2323070, 2355838, 2388606, 2421374, 2454142, 2486910, 2519678,
2552446, 2585214, 2617982],
}
#--------------------------------------------------------------------------
# ○ 経験値リストの作成(ハッシュ設定)
#--------------------------------------------------------------------------
LIST = {
1 => PRESET["set01"],
2 => PRESET["set01"],
3 => PRESET["set01"],
4 => PRESET["set01"],
5 => PRESET["set01"],
6 => PRESET["set01"],
7 => PRESET["set01"],
8 => PRESET["set01"],
9 => PRESET["set01"],
10 => PRESET["set01"],
}
#--------------------------------------------------------------------------
# ○ 自動加算(ハッシュ設定)
#--------------------------------------------------------------------------
ADD = {
1 => 100,
2 => 100,
3 => 100,
4 => 100,
5 => 100,
6 => 100,
7 => 100,
8 => 100,
9 => 100,
10 => 100,
}
#--------------------------------------------------------------------------
# ○ 自動加算に存在しない職業IDの設定
#--------------------------------------------------------------------------
DEFAULT = 100
end
#==============================================================================
# ■ Object
#==============================================================================
class Object
#--------------------------------------------------------------------------
# ○ アクセス省略化
#--------------------------------------------------------------------------
RGSSinit001 = RGSSinit::Experience_Value_Details_Setting
end
#==============================================================================
# □ 経験値詳細設定
#==============================================================================
$rgssinit ||= {} ; $rgssinit["経験値詳細設定"] = RGSSinit001::MATERIAL_SWITCH
if $rgssinit["経験値詳細設定"]
#==============================================================================
# □ CombinedUse
#==============================================================================
module CombinedUse
#============================================================================
# □ RGSSスクリプト倉庫(kureさん)
#============================================================================
module RGSS_Script_Warehouse
#--------------------------------------------------------------------------
# ○ 職業レベルシステム
#--------------------------------------------------------------------------
def self.job_level_system
return true if defined?(KURE::JobLvSystem) if defined?(KURE)
return false
end
end
end
#==============================================================================
# ■ Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● 指定レベルに上がるのに必要な累計経験値の取得 [再定義]
# level : レベル
#--------------------------------------------------------------------------
def exp_for_level(level)
if CombinedUse::RGSS_Script_Warehouse.job_level_system
return $data_classes[$data_actors[@actor_id].use_exp_curve].exp_for_level(level) if $data_actors[@actor_id].use_exp_curve != 0 if @actor_id > 0
end
return exp_for_level_rgssinit001(level) if $rgssinit["経験値詳細設定"]
return exp_for_level_rgssinit003(level) if $rgssinit["レベル拡張"]
return self.class.exp_for_level(level)
end
#--------------------------------------------------------------------------
# ○ 指定レベルに上がるのに必要な累計経験値の取得:経験値詳細設定
# level : レベル
#--------------------------------------------------------------------------
def exp_for_level_rgssinit001(level)
if RGSSinit001::LIST[@class_id]
if RGSSinit001::LIST[@class_id][level - 1]
return RGSSinit001::LIST[@class_id][level - 1]
else
max = RGSSinit001::LIST[@class_id].size
last_exp = RGSSinit001::LIST[@class_id][max - 1]
rate = RGSSinit001::ADD[@class_id] ? RGSSinit001::ADD[@class_id] : RGSSinit001::DEFAULT
return last_exp + (rate * ( level - max))
end
end
return $rgssinit["レベル拡張"] ? exp_for_level_rgssinit003(level) : self.class.exp_for_level(level)
end
end
end
作者:
tseyik
时间:
2014-4-12 12:10
素材スイッチ
この素材に対して、有効(true)又は無効(false)を指定します。
プリセット
「経験値リストの作成」で扱う経験値配列のプリセットを作成します。
設定方法
PRESET = {
"プリセット名" => [0, レベル2の累計経験値, …, レベル99の累計経験値],
…,
}
"プリセット名"の名前は、半角でも全角でも可能("で囲む事を忘れないで下さい)ですが
プリセット名は複数存在させないよう、ご注意下さい。
設定できるレベルの範囲は、通常99までとなりますが
それよりも設定できる環境であれば、それ以降の累計経験値の設定もできます。
(この素材単体で行う事はできません、専用のRGSS3素材が必要です)
経験値リストの作成
職業毎に経験値設定を行います。
設定方法
LIST = {
職業ID => PRESET["プリセット名"],(又は[0, レベル2の累計経験値, …, レベル99の累計経験値],)
…,
}
設定されていない職業IDは、自動加算による経験値の作成となります。
尚、PRESET(プリセット)を指定せず
直接経験値配列に指定する事も可能です。
自動加算
経験値設定の際に、nil(何もない)が検出された場合
ここで設定された値を代用し、最終レベルまで適用させます。
設定方法
ADD = {
職業ID => 自動加算の値,
…,
}
ここに記述されていない職業IDは
自動加算に存在しない職業IDの設定の値が扱われます。
自動加算に存在しない職業IDの設定
自動加算に存在しなかった職業IDの為の設定です。
作者:
taroxd
时间:
2014-4-12 14:38
楼上就是“用脚本重做每一级的经验值”
PRESET这一段设为 "设定名称" => 每一等级所对应的经验值
在LIST那一段改成 职业ID => PRESET["设定名称"]
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1