=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