393 lines
No EOL
21 KiB
Ruby
393 lines
No EOL
21 KiB
Ruby
|
||
|
||
=begin
|
||
|
||
トリス スキルツリー仮A ver4
|
||
|
||
=end
|
||
|
||
|
||
module SkillTree
|
||
|
||
# キラキラスティック用
|
||
# スイッチがオンの時にツリー画面を開くと、スキルの習得を解除する
|
||
# メニューを介さず直接ツリー画面に行くには SceneManager.call(Scene_SkillPoint)
|
||
RESET_SWITCH = 14 # スイッチID
|
||
RESET_SKILL = 132 # 習得解除するスキルID
|
||
|
||
# 画面右下のJOBEXPウインドウの横幅
|
||
JOBEXP_WIDTH = 160
|
||
|
||
# カーソル画像のファイル名
|
||
CURSOR_FILENAME = "Graphics/Pictures/casoru"
|
||
|
||
# スクロールバー設定 色は Color.new(赤, 緑, 青, 不透明度) で指定
|
||
# ツリー画像表示部分(画面から下部ウインドウを除いた部分)の高さは312
|
||
# [ x, y, 横幅, 高さ, 色,
|
||
SCROLL_BAR = [627, 10, 6, 292, Color.new(255, 255, 255,0), # バー全体
|
||
1, 0, Color.new(255, 165, 5,0)] # 画面部分
|
||
# 横, 縦, 色] (横・縦は「バー全体」から狭める値)
|
||
|
||
|
||
# ツリー設定 設定方法はこの下
|
||
TR1 = [] # 作りたい分だけ作成
|
||
TR2 = []
|
||
TR3 = []
|
||
TR = [nil, TR1, TR2, TR3] # 1番目はnil その後にTR1以降を入れる
|
||
|
||
w = "w"; s = "s"; a = "a"; d = "d" # 変更しない
|
||
|
||
# 座標指定用の値
|
||
# 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
||
X = [-8,128,232,313,419,515,150,315,445]
|
||
Y = [32,47,61,78,90,106,123,139,152,167,184,197,212,229,244,256,274,288,304,319,334,349,364,379,394,409,424,439,454,469,484,499,514,529,544,559,574,589,604,619,634,649,664,679,694,709,724,739]
|
||
# 1 2 3 4 5 6 7 8
|
||
|
||
# ツリー1番の設定名 条件スイッチ
|
||
TR1[0] = ["Graphics/Pictures/skillture1"]
|
||
# スキル XY座標 移動先(省略するとwsad)
|
||
TR1[1] = [[132],[ 1, 1], [ 1, 1, 2, 2]]##メイン
|
||
TR1[2] = [[250, 251, 245],[ 2, 1], [ 41, 3, 1, 1]]#経験値増加
|
||
TR1[3] = [[134, 135, 136],[ 2, 3], [ 2, 5, 4, 4]]#精力鍛錬
|
||
TR1[4] = [[156, 157, 158],[ 3, 3], [ 2, 6, 3, 3]]#耐え抜き
|
||
TR1[5] = [[159, 160, 161],[ 2, 5], [ 3, 14, 7, 6]]#精神力鍛錬
|
||
TR1[6] = [[218, 219, 220],[ 3, 5], [ 4, 8, 5, 7]]#魔術の手
|
||
TR1[7] = [[327, 328, 329],[ 4, 5], [ 4, 9, 6, 5]]#プラズマローター
|
||
TR1[8] = [[141, 142, 143],[ 3, 6], [ 6, 15, 11, 9]]#ヒール
|
||
TR1[9] = [[183],[ 4, 6], [ 7, 12, 8, 10]]#ライトアップ
|
||
TR1[10] = [[184],[ 5, 6], [ 7, 13, 9, 11]]#テレポテーション
|
||
TR1[11] = [[185],[ 6, 6], [7, 25, 10, 8]]#ワープゲート
|
||
TR1[12] = [[203, 204, 205],[ 4, 7], [ 9, 16, 13, 13]]#速度増加
|
||
TR1[13] = [[206, 207, 208],[ 5, 7], [ 10, 24, 12, 12]]#速度減少
|
||
TR1[14] = [[190, 191, 192],[ 2, 9], [ 5, 18, 16, 15]]#退魔の加護
|
||
TR1[15] = [[187, 188, 189],[ 3, 9], [ 8, 17, 14, 16]]#破邪の加護
|
||
TR1[16] = [[196, 197, 198],[ 4, 9], [ 12, 20, 15, 14]]#強化の魔術
|
||
TR1[17] = [[202],[ 3, 10], [ 15, 19, 17, 17]]#聖水作成
|
||
TR1[18] = [[304, 305, 306],[ 2, 12], [ 14, 26, 20, 19]]#舌修練
|
||
TR1[19] = [[199, 200, 201],[ 3, 12], [ 17, 22, 18, 20]]#キス責め
|
||
TR1[20] = [[193, 194, 195],[ 4, 12], [ 16, 21, 19, 18]]#ニップルキッス
|
||
TR1[21] = [[253, 254],[ 4, 13], [20, 23, 21, 21]]#沈黙耐性
|
||
TR1[22] = [[146, 147, 148],[ 3, 14], [ 19, 27, 25, 23]]#言葉責め
|
||
TR1[23] = [[209, 210, 211],[ 4, 14], [ 21, 28, 22, 24]]#値切り交渉
|
||
TR1[24] = [[212, 213, 214],[ 5, 14], [ 10, 28, 23, 25]]#商売人の心得
|
||
TR1[25] = [[359],[ 6, 14], [11, 28, 24, 22]]#ポーション修練
|
||
TR1[26] = [[336, 337, 338],[ 2, 16], [18, 29, 28, 27]]##指修練
|
||
TR1[27] = [[162, 163, 164],[ 3, 16], [ 22, 30, 26, 28]]#乳を揉む
|
||
TR1[28] = [[330, 331, 332],[ 4, 16], [ 23, 37, 27, 26]]#アナルフィンガー
|
||
TR1[29] = [[137, 138, 139],[ 2, 18], [ 26, 33, 30, 30]]#ペニス修練
|
||
TR1[30] = [[171],[ 3, 18], [ 27, 31, 29, 29]]#ダブルピストン
|
||
TR1[31] = [[140, 144, 145],[ 3, 19], [ 30, 32, 31, 31]]#強撃
|
||
TR1[32] = [[176, 177, 178],[ 3, 20], [ 31, 34, 32, 32]]#イラマチオン
|
||
TR1[33] = [[179],[ 2, 22], [29, 35, 34, 34]]#解毒
|
||
TR1[34] = [[242, 243],[ 3, 22], [ 32, 36, 33, 33]]#性病耐性
|
||
TR1[35] = [[165, 166, 167],[ 2, 24], [ 33, 41, 37, 36]]#観察眼
|
||
TR1[36] = [[399, 400, 401],[ 3, 24], [ 34, 39, 35, 37]]#視姦する
|
||
TR1[37] = [[168, 169, 170],[ 4, 24], [ 28, 38, 36, 35]]#ゾーンアイ
|
||
TR1[38] = [[244, 252],[ 4, 25], [37, 40, 38, 38]]#暗闇耐性
|
||
TR1[39] = [[298],[3, 26], [36, 42, 40, 40]]#モンスター情報
|
||
TR1[40] = [[247, 248, 249],[ 4, 26], [38, 43, 39, 39]]#モンスター交流
|
||
TR1[41] = [[172, 173, 174],[ 2, 28], [ 35, 2, 43, 42]]#回避率増加
|
||
TR1[42] = [[180, 181, 182],[ 3, 28], [ 39, 2, 41, 43]]#盗む
|
||
TR1[43] = [[175],[ 4, 28], [40, 2, 42, 41]]#緊急回避
|
||
|
||
# ツリー2番の設定
|
||
# ファイル名 条件スイッチ
|
||
TR2[0] = ["Graphics/Pictures/skillture2", 333]
|
||
# スキル XY座標 移動先(省略するとwsad)
|
||
TR2[1] = [[390, 391, 392],[ 2, 1], [ 48, 2, 1, 1]]#容姿修練
|
||
TR2[2] = [[263,264,265],[2,3],[1,3,2,2]]#ビースト
|
||
TR2[3] = [[275, 276, 277],[ 2, 5], [ 2, 4, 3, 3]]#カウンター修練
|
||
TR2[4] = [[282, 283, 284],[ 2, 6], [ 3, 6, 5, 5]]#騎乗位修練
|
||
TR2[5] = [[308, 309, 310],[ 3, 6], [ 3, 8, 4, 4]]#寝技鍛錬
|
||
TR2[6] = [[315, 316, 317],[ 2, 7], [ 4, 7, 6, 6]]#マッスルピストン
|
||
TR2[7] = [[356, 357, 358],[ 2, 9], [ 6, 10, 8, 8]]#性知識向上
|
||
TR2[8] = [[372, 373, 374],[ 3, 9], [ 5, 12, 7, 7]]#リジェネーション
|
||
#TR2[9] = [[333, 334, 335],[ 4, 9], [ 5, 13, 8, 7]]#生命還元
|
||
TR2[10] = [[256],[ 2, 11], [ 7, 11, 10, 10]]#リカバリー
|
||
TR2[11] = [[364, 365, 246],[ 2, 12], [ 10, 14, 13, 12]]#性技封印
|
||
TR2[12] = [[377],[3, 12], [ 8, 15, 11, 13]]#ディスペルマ
|
||
TR2[13] = [[307],[ 5, 12], [ 8, 30, 12, 11]]#結界陣
|
||
TR2[14] = [[384, 385, 386],[ 2, 14], [ 11, 17, 15, 15]]#バイブレーション
|
||
TR2[15] = [[381, 382, 383],[ 3, 14], [ 12, 16, 14, 14]]#ブルンバスト
|
||
TR2[16] = [[311, 312, 313],[ 3, 15], [ 15, 18, 16, 16]]#テイルビーズ
|
||
TR2[17] = [[342, 343, 344],[ 2, 17], [ 14, 19, 18, 18]]#クンニリングス
|
||
TR2[18] = [[369, 370, 371],[ 3, 17], [ 16, 20, 17, 17]]#光速舌
|
||
TR2[19] = [[360, 361, 362],[ 2, 19], [ 17, 21, 20, 20]]#鷹の指
|
||
TR2[20] = [[324, 325, 326],[ 3, 19], [ 18, 22, 19, 19]]#クアドロぷるタッチ
|
||
TR2[21] = [[279, 280, 281],[ 2, 21], [ 19, 23, 22, 22]]#クイックペニス
|
||
TR2[22] = [[285, 286, 287],[ 3, 21], [ 20, 26, 21, 21]]#三段突き
|
||
TR2[23] = [[393, 394, 395],[ 2, 23], [ 21, 25, 23, 23]]#セイントバッシュ
|
||
TR2[25] = [[295, 296, 297],[ 2, 25], [ 23, 27, 26, 26]]#アナルスタッブ
|
||
TR2[26] = [[396, 397, 398],[ 3, 25], [ 22, 29, 25, 25]]#ベアリングバッシュ
|
||
TR2[27] = [[319, 320, 321],[ 2, 27], [ 25, 28, 27, 27]]#ハイイラマチオン
|
||
TR2[28] = [[322],[2,29],[27,34,30,29]]#気功
|
||
TR2[29] = [[323],[3,29],[26,31,28,30]]#気脱
|
||
TR2[30] = [[301,302,303],[5,29],[13,32,29,28]]#爆裂
|
||
TR2[31] = [[288,289,290],[3,30],[29,33,32,32]]#ハッケイ
|
||
TR2[32] = [[257,258,259],[5,30],[30,36,31,31]]#指弾
|
||
TR2[33] = [[260,261,262],[3,31],[31,35,33,33]]#金剛
|
||
TR2[34] = [[318],[2,33], [28,38,36,35]]#ファーマシー
|
||
TR2[35] = [[299],[3,33], [33,37,34,36]]#脱衣薬
|
||
TR2[36] = [[378, 379, 380],[5,33], [32,37,35,34]]#触手召喚
|
||
TR2[37] = [[352],[3,34], [35,24,37,37]]#対脱衣ローション
|
||
TR2[38] = [[366, 367, 368],[2, 36], [34,39,24,24]]#性闘気
|
||
TR2[24] = [[387, 388, 389],[ 3, 36], [ 37, 41, 38, 38]]#グランドセクルス
|
||
TR2[39] = [[314],[2,38], [38,40,39,39]]#ペットに餌
|
||
TR2[40] = [[353, 354, 355],[2,40], [39,42,41,41]]#ストリップショーツ
|
||
TR2[41] = [[363],[3, 40], [24,44,40,40]]#ずらし
|
||
TR2[42] = [[339, 340, 341],[2,42], [40,43,42,42]]#盗みの技術
|
||
TR2[43] = [[291],[2,44], [42,45, 44,44]]#ステルス
|
||
TR2[44] = [[292, 293, 294],[3,44], [41,46,43,43]]#バックアタック
|
||
TR2[45] = [[592,593,594],[2,46], [43,47,46,46]]#対人修練
|
||
TR2[46] = [[585,586,587],[3,46], [44,47,45,45]]#逃げ撃ち
|
||
TR2[47] = [[588,589,590],[3,47], [46,48,47,47]]#横殴り
|
||
TR2[48] = [[591],[3,48], [47,1,48,48]]#トレイン
|
||
|
||
# ツリー3番の設定
|
||
# ファイル名 条件スイッチ
|
||
TR3[ 0] = ["Graphics/Pictures/skillture3", 334]
|
||
# スキル XY座標 移動先(省略するとwsad)
|
||
TR3[1] = [[726,727,728],[ 1, 1], [ 60, 4, 3, 2]]#限突パッシブ
|
||
TR3[2] = [[736,737,738],[ 7, 1], [ 61, 5, 1, 3]]#限突アクティブ
|
||
TR3[3] = [[758],[ 8, 1], [ 62, 6, 2, 1]]#ブレイブアサシン
|
||
TR3[4] = [[658],[ 1, 3], [ 1, 8, 7, 5]]#チンションリラックス
|
||
TR3[5] = [[655,656,657],[ 7, 3], [ 2, 9, 4, 6]]#パリイングLV1
|
||
TR3[6] = [[266,267,268],[ 8, 3], [ 3, 12, 5, 7]]#スパイラルアヌスLV1
|
||
TR3[7] = [[760,761,762],[ 9, 3], [ 3, 19, 6, 4]]#ベアリングNo433
|
||
TR3[8] = [[660,661,662],[ 1, 5], [ 4, 10, 9, 9]]#シールドチーンLV1
|
||
TR3[9] = [[659],[ 7, 5], [ 5, 11, 8, 8]]#ゴスペルマ
|
||
TR3[10] = [[270,271,272],[ 1, 7], [ 8, 16, 12, 11]]#オーラペニスLV1
|
||
TR3[11] = [[663,664,665],[ 7, 7], [ 9, 17, 10, 12]]#チンセントレイションLV1
|
||
TR3[12] = [[666],[ 8, 7], [ 6, 18, 11, 10]]#バーサーク
|
||
TR3[16] = [[709],[ 1, 9], [ 10, 20, 19, 17]]#気功煉獄
|
||
TR3[17] = [[710],[ 7, 9], [ 11, 21, 16, 18]]#阿躯滅覇凰拳
|
||
TR3[18] = [[712],[ 8, 9], [ 12, 22, 17, 19]]#陽炎
|
||
TR3[19] = [[711],[ 9, 9], [ 7, 23, 18, 16]]#前借り
|
||
TR3[20] = [[720,721,722],[ 1, 11], [ 16, 24, 23, 21]]#ソウルドレインLV1
|
||
TR3[21] = [[723,724,725],[ 7, 11], [ 17, 25, 20, 22]]#マインドブレイパーLV1
|
||
TR3[22] = [[739],[ 8, 11], [ 18, 26, 21, 23]]#蝋プリズン
|
||
TR3[23] = [[740],[ 9, 11], [ 19, 27, 22, 20]]#サドミックセッション
|
||
TR3[24] = [[671,672,673],[ 1, 13], [ 20, 63, 27, 25]]#植物栽培LV1
|
||
TR3[25] = [[767],[ 7, 13], [ 21, 28, 24, 26]]#敵のゲージ減らす薬
|
||
TR3[26] = [[768],[ 8, 13], [ 22, 29, 25, 27]]#敵のゲージ増やす薬
|
||
TR3[27] = [[674],[ 9, 13], [ 23, 30, 26, 24]]#アヘッドデモンストレーション
|
||
TR3[63] = [[765],[ 1, 15], [ 24, 13, 30, 28]]#ファーマシー2
|
||
TR3[28] = [[766],[ 7, 15], [ 25, 14, 63, 29]]#ガードゲージ増やす薬
|
||
TR3[29] = [[769],[ 8, 15], [ 26, 15, 28, 30]]#覚醒ポーション即飲み
|
||
TR3[30] = [[670],[ 9, 15], [ 27, 15, 29, 63]]#フルチンケミカルチャージ
|
||
TR3[13] = [[667],[ 1, 17], [ 63, 31, 15, 14]]#レッドスリムPP
|
||
TR3[14] = [[668],[ 7, 17], [ 28, 32, 13, 15]]#イエロースリムPP
|
||
TR3[15] = [[669],[ 8, 17], [ 29, 33, 14, 13]]#ホワイトスリムPP
|
||
TR3[31] = [[675],[ 1, 19], [13, 34, 33, 32]]#金的精錬
|
||
TR3[32] = [[676],[ 7, 19], [14, 35, 31, 33]]#肉棒精錬
|
||
TR3[33] = [[677,678,679],[ 8, 19], [15, 44, 32, 31]]#オーバーマラストマックス
|
||
TR3[34] = [[680,681,682],[ 1, 21], [ 31, 36, 35, 35]]#ソウルブレイパーLV1
|
||
TR3[35] = [[683,684,685],[ 7, 21], [ 32, 37, 34, 34]]#メテオアナルトLV1
|
||
TR3[36] = [[686],[ 1, 23], [ 34, 38, 37, 37]]#クリエイトデッドリーポイズン
|
||
TR3[37] = [[687],[ 7, 23], [ 35, 39, 36, 36]]#エンチャントデッドリーポイズン
|
||
TR3[38] = [[741],[ 1, 25], [ 36, 40, 39, 39]]#鍵開け系
|
||
TR3[39] = [[688,689,690],[ 7, 25], [ 37, 41, 38, 38]]#フルストリップLV1
|
||
TR3[40] = [[745],[ 1, 27], [ 38, 42, 41, 41]]#羅神活殺拳
|
||
TR3[41] = [[774,775,776],[ 7, 27], [ 39, 43, 40, 40]]#無刀沈
|
||
TR3[42] = [[697],[ 1, 29], [ 40, 45, 44, 43]]#愚風ステップ
|
||
TR3[43] = [[694,695,696],[ 7, 29], [ 41, 46, 42, 44]]#トゥルーサイトLV1
|
||
TR3[44] = [[698],[ 8, 29], [ 33, 66, 43, 42]]#運命のタロットカード
|
||
TR3[45] = [[691,692,693],[ 1, 31], [ 42, 47, 46, 46]]#ファルコンアナルトLV1
|
||
TR3[46] = [[746,747,748],[ 7, 31], [ 43, 48, 45, 45]]#ニップルバルカン
|
||
TR3[47] = [[699,700,701],[ 1, 33], [ 45, 49, 66, 48]]#オナリチャージLV1
|
||
TR3[48] = [[708],[ 7, 33], [ 46, 50, 47, 66]]#バジリカ
|
||
TR3[66] = [[333, 334, 335],[ 8, 33], [ 44, 53, 48, 47]]#生命還元
|
||
TR3[49] = [[702,703,704],[ 1, 35], [ 47, 51, 50, 50]]#メディタティオLV1
|
||
TR3[50] = [[705,706,707],[ 7, 35], [ 48, 52, 49, 49]]#アスムプティオLV1
|
||
TR3[51] = [[713,714,715],[ 1, 37], [ 49, 54, 53, 52]]#オパームバルカンLV1
|
||
TR3[52] = [[716,717,718],[ 7, 37], [ 50, 55, 51, 53]]#マンマンテインLV1
|
||
TR3[53] = [[719],[ 8, 37], [ 66, 64, 52, 51]]#魔法力増幅
|
||
TR3[54] = [[742,743,744],[ 1, 39], [ 51, 56, 55, 55]]#ライフスティール
|
||
TR3[55] = [[759],[ 7, 39], [ 52, 57, 54, 54]]#スティール零式
|
||
TR3[56] = [[752,753,754],[ 1, 41], [ 54, 58, 64, 57]]#キッスオブピュアーズ
|
||
TR3[57] = [[749,750,751],[ 7, 41], [ 55, 59, 56, 64]]#ヘッドクニッシュ
|
||
TR3[64] = [[763],[ 8, 41], [ 53, 65, 57, 56]]#土ヒール
|
||
TR3[58] = [[755,756,757],[ 1, 43], [ 56, 60, 65, 59]]#触手召喚強化系
|
||
TR3[59] = [[771,772,773],[ 7, 43], [ 57, 61, 58, 65]]#モンスター捕獲率アップ
|
||
TR3[65] = [[770],[ 8, 43], [ 64, 62, 59, 58]]#刹那の見抜き
|
||
TR3[60] = [[764],[ 1, 45], [ 58, 1, 62, 61]]#ワープショット
|
||
TR3[61] = [[777,778,779],[ 7, 45], [ 59, 2, 60, 62]]#MPK
|
||
TR3[62] = [[780],[ 8, 45], [ 65, 3, 61, 60]]#アイスピラークロス
|
||
|
||
end
|
||
|
||
=begin
|
||
|
||
・ver4変更点
|
||
・スクロールバー
|
||
・Q,Wキーでツリー切り替え
|
||
・ツリー切り替えの条件スイッチ
|
||
・キラキラスティック用 スイッチオン時にツリー画面を開くとスキル習得解除
|
||
・ver3のテストプレイ機能「Wキーで確認ウインドウを出さずに習得」を廃止
|
||
|
||
|
||
・テストプレイ機能 座標設定補助
|
||
CTRLを押しながら方向キーを押すと、ノード移動はせず
|
||
カーソル座標を1ずつ調整 その座標をコンソールに表示
|
||
|
||
|
||
・全般設定
|
||
TR1[0] = ["Graphics/Pictures/skillture1次", 1]
|
||
各ツリーの 0番は、ツリー画像と条件スイッチの設定です。
|
||
[画像ファイル名, 条件スイッチ]
|
||
条件スイッチで指定したスイッチがオフの時は、そのツリーに切り替えできません。
|
||
条件スイッチを省略すると常に切り替え可能です。TR1のものは省略してください。
|
||
|
||
・ノード設定
|
||
ツリー内のスキル1つ1つをノードと呼びます。(ツリー構造の用語です)
|
||
各ツリーの 1番以降で、ノードを設定します。
|
||
ノードは [スキル配列, 座標配列, 移動先配列] で指定します。
|
||
TR1[2] = [[146, 3], [2, 1], [ 0, s, a, d]]
|
||
|
||
・ノード スキル配列
|
||
1つのノードに、スキルレベルをまとめて設定します。
|
||
A [146, 147, 148]
|
||
B ["プロボックLV1", "プロボックLV2", "プロボックLV3"]
|
||
C [146, 3]
|
||
A:スキルIDで指定
|
||
B:スキル名と部分一致で指定
|
||
複数ヒットした場合、上のほうにあるスキルを選択
|
||
ヒットした場合、そこから先の3つ分のスキル名をコンソールに表示
|
||
C:要素2番目に「10未満の数」を指定すると、その数だけIDを繋げる
|
||
[146, 3]なら[146, 147, 148]になり、[132, 1]なら[132]になる
|
||
BとCは併用可能です。
|
||
|
||
・ノード 座標配列
|
||
[2, 1]
|
||
そのノードを選択中の、カーソル画像の[X座標番号, Y座標番号]を設定します。
|
||
上の X = [ 0, 140, 280] で指定した値を、番号で指定します。
|
||
X座標番号が2なので、X座標は140になります。
|
||
|
||
・ノード 移動先配列
|
||
[13, 4, 1, 3]
|
||
そのノードを選択中に移動キーを押した時の、移動先のノード番号を設定します。
|
||
[上, 下, 左, 右]の順番です。
|
||
ここを省略すると自動で [w, s, a, d] になります。
|
||
移動先が
|
||
・ 0番 移動しない
|
||
・設定していないノード番号 移動しない
|
||
・ 900以上 「方向キーを押し始めた時」のみ900引いた番号に移動
|
||
簡易設定wsad 「自分の座標配列」から各方法で探査し、最初に見つけたノードに移動
|
||
a: ①Y座標番号はそのままで、X座標番号を1減らす(つまり左) ①を繰り返す
|
||
d: ①Y座標番号はそのままで、X座標番号を1増やす(つまり右) ①を繰り返す
|
||
w: ①X座標番号はそのままで、Y座標番号を1減らす(つまり上) ②へ
|
||
②Y座標番号はそのままで、X座標番号を1減らす(つまり左) ②を繰り返す
|
||
s: ①X座標番号はそのままで、Y座標番号を1増やす(つまり下) ②へ
|
||
②Y座標番号はそのままで、X座標番号を1減らす(つまり左) ②を繰り返す
|
||
注意:「上端でw(上)を使うと下端に移動」のようなことはできない
|
||
|
||
=end
|
||
|
||
module SkillTree
|
||
|
||
I_SKILL = 0
|
||
I_POS = 1
|
||
I_MOVE = 2
|
||
|
||
def self.node_skill_name_convert
|
||
flag = false
|
||
skills = load_data("Data/Skills.rvdata2")
|
||
hash = {}
|
||
TR.each_with_index do |tree, i|
|
||
next if tree == nil
|
||
tree.each_with_index do |node, j|
|
||
next if node == nil or node == tree[0]
|
||
node[I_SKILL].each_with_index do |node_skill, k|
|
||
next unless node_skill
|
||
name = node_skill
|
||
if name.is_a?(String)
|
||
skills.each_with_index do |skill, l|
|
||
next unless skill
|
||
if skill.name.index(name)
|
||
TR[i][j][I_SKILL][k] = skill.id
|
||
p sprintf("スキルツリー スキル名変換 TR[%d][%2d] %s→[%3d,%s]",
|
||
i, j, name, skill.id, skill.name)
|
||
puts sprintf(" %s %s %s",
|
||
skills[l].name, skills[l+1].name, skills[l+2].name)
|
||
break
|
||
end
|
||
end
|
||
end
|
||
failed = !TR[i][j][I_SKILL][k].is_a?(Integer)
|
||
flag = true if failed
|
||
p sprintf("スキルツリー スキル名変換エラー TR[%d][%2d] 「%s」は存在しません",
|
||
i, j, name) if failed
|
||
end
|
||
end
|
||
end
|
||
msgbox "スキルツリー スキル名変換エラーあり コンソールを確認" if flag
|
||
end
|
||
|
||
def self.node_skill_level_convert
|
||
TR.each_with_index do |tree, i|
|
||
next if tree == nil
|
||
tree.each_with_index do |node, j|
|
||
next if node == nil or node == tree[0]
|
||
if node[I_SKILL][1].is_a?(Integer) and node[I_SKILL][1] < 10
|
||
result = []
|
||
for k in 0...node[I_SKILL][1]
|
||
result.push(node[I_SKILL][0] + k)
|
||
end
|
||
TR[i][j][I_SKILL] = result
|
||
end
|
||
end
|
||
end
|
||
end
|
||
|
||
def self.node_move_wsad_convert
|
||
TR.each_with_index do |tree, i|
|
||
next if tree == nil
|
||
hash = {}
|
||
tree.each_with_index do |node, j|
|
||
next if node == nil or node == tree[0]
|
||
hash[node[I_POS]] = j
|
||
TR[i][j][I_MOVE] = ["w", "s", "a", "d"] unless TR[i][j][I_MOVE]
|
||
end
|
||
tree.each_with_index do |node, j|
|
||
next if node == nil or node == tree[0]
|
||
node[I_MOVE].each_with_index do |move, k|
|
||
TR[i][j][I_MOVE][k] = self.move_wsad(hash, node[1], move)
|
||
end
|
||
end
|
||
end
|
||
end
|
||
def self.move_wsad(hash, pos, move)
|
||
case move
|
||
when "w"
|
||
move = 0
|
||
y = pos[1] - 1
|
||
for x in 0..pos[0]
|
||
move = hash[[x, y]] if hash[[x, y]]
|
||
end
|
||
when "s"
|
||
move = 0
|
||
y = pos[1] + 1
|
||
for x in 0..pos[0]
|
||
move = hash[[x, y]] if hash[[x, y]]
|
||
end
|
||
when "a"
|
||
move = 0
|
||
y = pos[1]
|
||
for x in 0..(pos[0] - 1)
|
||
move = hash[[x, y]] if hash[[x, y]]
|
||
end
|
||
when "d"
|
||
y = pos[1]
|
||
for x in (pos[0] + 1)..X.size
|
||
return hash[[x, y]] if hash[[x, y]]
|
||
end
|
||
return 0
|
||
end
|
||
return move
|
||
end
|
||
|
||
self.node_skill_name_convert
|
||
self.node_skill_level_convert
|
||
self.node_move_wsad_convert
|
||
|
||
end |