-- PSXjin用スクリプト -- 初代アーマード・コアシリーズ用(初代・PP・MA) -- 戦闘補助GUI表示スクリプト(アリーナ用 作り直し版) -- 通常版限定(ベスト版、PSone版、海外版ではメモリのアドレスが異なるため恐らく使えない) -- Last Update 2021/01/27 -- ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ -- 変数の初期設定 AC = 0 -- 何作目のACか判断し、以後は配列の何個目の要素かを表す mode = 0 -- 不明値確認用。メニュー(ガレージ)では24(0x0018)になっている。 ingame_timer = 0 -- 内部タイマー。フレーム更新時のみ変化。ポーズ中は停止 tr = 1 -- GUIの透過度の設定。Win10になってから半透明を使うとクソ重くなるので半透明は使わない -- 実速度表示用(実速度差分用) X_1P = 0 Y_1P = 0 Z_1P = 0 X_1P_diff = 0 Y_1P_diff = 0 Z_1P_diff = 0 -- 座標表示用(旋回速度差分用) turn_LR_1P = 0 -- 1Pの左右角度(前フレームとの差分確認用) turn_UD_1P = 0 -- 1Pの左右角度(前フレームとの差分確認用) turn_LR_diff_1P = 0 -- 1Pの左右角度の差分(前フレームとの差分確認用) turn_UD_diff_1P = 0 -- 1Pの左右角度の差分(前フレームとの差分確認用) dig_1P_count = 0 -- 1Pの左右角度の差分確認用カウンタ -- 上下角度計描画用座標 gonime_base_X = 25 -- 基準点X。角度計の縦線中央部分の横座標。ここから長さの分だけ右に伸ばす gonime_base_Y = 180 -- 基準点Y。角度計の縦線中央部分の縦座標。ここから長さの分だけ上下に伸ばす。A:178、M:188 -> 180 gonime_line_LG = 23 -- 線の長さ。中心点から上下、右、現在の向きの線で使用。 25 -> 23 -- 以下の座標は↑3つの値を基に自動算出 gonime_top_Y = gonime_base_Y - gonime_line_LG -- 縦線上Y:153 Xはgonime_base_X gonime_btm_Y = gonime_base_Y + gonime_line_LG -- 縦線下Y:203 Xはgonime_base_X gonime_mdl_X = gonime_base_X + gonime_line_LG -- 横線右端X:50 Yはgonime_base_Y gonime_u_675_X = gonime_base_X + gonime_line_LG * math.cos(-67.5 * math.pi / 180) -- 上67.50度X gonime_u_675_Y = gonime_base_Y + gonime_line_LG * math.sin(-67.5 * math.pi / 180) -- 上67.50度Y gonime_u_45_X = gonime_base_X + gonime_line_LG * math.cos( -45 * math.pi / 180) -- 上45度X gonime_u_45_Y = gonime_base_Y + gonime_line_LG * math.sin( -45 * math.pi / 180) -- 上45度Y gonime_u_225_X = gonime_base_X + gonime_line_LG * math.cos(-22.5 * math.pi / 180) -- 上22.5度X gonime_u_225_Y = gonime_base_Y + gonime_line_LG * math.sin(-22.5 * math.pi / 180) -- 上22.5度Y gonime_d_225_X = gonime_base_X + gonime_line_LG * math.cos( 22.5 * math.pi / 180) -- 下22.5度X gonime_d_225_Y = gonime_base_Y + gonime_line_LG * math.sin( 22.5 * math.pi / 180) -- 下22.5度Y gonime_d_45_X = gonime_base_X + gonime_line_LG * math.cos( 45 * math.pi / 180) -- 下45度X gonime_d_45_Y = gonime_base_Y + gonime_line_LG * math.sin( 45 * math.pi / 180) -- 下45度Y gonime_d_675_X = gonime_base_X + gonime_line_LG * math.cos( 67.5 * math.pi / 180) -- 下67.50度X gonime_d_675_Y = gonime_base_Y + gonime_line_LG * math.sin( 67.5 * math.pi / 180) -- 下67.50度Y gonime_line_X = 0 -- 上下に動く線のX座標。エイム・ロック範囲の先と兼用 gonime_line_Y = 0 -- 上下に動く線のY座標。エイム・ロック範囲の先と兼用 aim_line_u_X = 0 -- エイム範囲の上側X座標 aim_line_u_Y = 0 -- エイム範囲の上側Y座標 aim_line_d_X = 0 -- エイム範囲の下側X座標 aim_line_d_Y = 0 -- エイム範囲の下側Y座標 lock_line_u_X = 0 -- ロック範囲の上側X座標 lock_line_u_Y = 0 -- ロック範囲の上側Y座標 lock_line_d_X = 0 -- ロック範囲の下側X座標 lock_line_d_Y = 0 -- ロック範囲の下側Y座標 -- ジェネ残量 EN_1P = 0 -- 1PのEN残量(前フレームとの差分確認用) EN_diff_1P = 0 -- 1PのEN残量の差分(前フレームとの差分確認用) EN_count_1P = 0 -- 1PのEN残量の差分確認用カウンタ -- 累計ダメージ表示用 AP_1P = 0 -- 1PのAP(前フレームとの差分確認用) AP_2P = 0 -- 2PのAP(前フレームとの差分確認用) count_TD_1P = 0 -- 累計被ダメージ用カウンタ count_TD_2P = 0 -- 累計与ダメージ用カウンタ total_damege_1P = 0 -- 1Pの類型ダメージ total_damege_2P = 0 -- 1Pの類型ダメージ tr_D_1P = 4 -- 累計被ダメージの透明度 tr_D_2P = 4 -- 累計被ダメージの透明度 -- 被ロック警告灯表示用 locked_tr = 0 -- 被ロック警告灯の透過度 locked_count = 0 -- 被ロック警告灯点滅用カウンタ -- レーダー周囲の方位計用 compass_cen_X = 282 -- 方位計の中心の横座標(レーダーの中心点の横座標) compass_cen_Y = 80 -- 方位計の中心の縦座標(レーダーの中心点の縦座標) compass_LG = 27 -- 方位計の中心から文字への距離 -- エリアオーバーライン描画用(エミュ側の解像度がどうであれ、縦320×横240の範囲に準拠するみたい) arealine_z_p1 = 36 -- 一番上の点の縦の位置:一番上と一番下の値を変えると線の高さ(幅)を変えられます arealine_z_p2 = 0 -- 上限界の点の縦の位置 arealine_z_p3 = 0 -- 上警告の点の縦の位置 arealine_z_p4 = 0 -- 下警告の点の縦の位置 arealine_z_p5 = 0 -- 下限界の点の縦の位置 arealine_z_p6 = 196 -- 一番下の点の縦の位置:一番上と一番下の値を変えると線の高さ(幅)を変えられます arealine_x = 5 -- 描画する横座標(横線の基準値も兼ねる):値を変えると線の横の位置を変えられます arealine_per = arealine_z_p6 - arealine_z_p1 -- エリアオーバーライン全体の高さ(最大:縦240) arealine_half = (arealine_z_p1 + arealine_z_p6) / 2 -- 1Pの高度表示用 --[[ ■エリアオーバーラインは丁度良い位置やサイズがわからないので、  デフォルトの設定が気に入らない人は適当にいじってみてください。 例)画面左端でENゲージの外枠っぽくなるような位置に表示(デフォルト) arealine_z_p1 = 36 arealine_z_p6 = 196 arealine_x = 5 例)画面左端(レーダーの左) arealine_z_p1 = 48 arealine_z_p6 = 108 arealine_x = 255 -- 310でレーダーの右 ]] -- リロードバー表示 reload_max = 0 -- リロードの最大値 reload_curt = 0 -- 前フレームのリロード reload_zero = 0 -- 残りリロード0表示用 -- 水平ロック範囲表示 lock_area_A_X = 282 -- 水平ロック・エイム範囲の範囲頂角のX座標 lock_area_A_Y = 80 -- 水平ロック・エイム範囲の範囲頂角のY座標 ※レーダーの中心と同じなので不要な変数だったかも… height_ALR = 0 -- 二等辺三角形ALRの高さ。基準地点からレーダー範囲に対するロック距離の割合を23(?)ピクセルに当てはめた長さ lock_area_L_X = 0 -- ロック範囲の左の頂点のX座標 lock_area_L_Y = 0 -- ロック範囲の左の頂点のY座標 lock_area_R_X = 0 -- ロック範囲の右の頂点のX座標 lock_area_R_Y = 0 -- ロック範囲の右の頂点のY座標 aim_area_A_X = 0 -- エイム範囲の左の頂点のX座標 aim_area_A_Y = 0 -- エイム範囲の左の頂点のY座標 aim_area_B_X = 0 -- エイム範囲の右の頂点のX座標 aim_area_B_Y = 0 -- エイム範囲の右の頂点のY座標 dist_H_1P2P = 0 -- 1Pと2Pの水平の直線距離 diff_V_1P2P = 0 -- 1Pと2Pの高度差 lock_gap = 0 -- ロック基準位置のズレの調整用。正確な値が不明なので値はテキトー -- ★★★★★テスト用変数★★★★★ timer_new = 0 -- タイマー更新後の次のフレーム確認用の変数 missile_time = 0 -- ミサイル寿命 --[[ ■GUIの色設定(キャプからカラーピッカーで調べた色) 明緑:#10F810 R: 16,G:248,B: 16 -- ポーズ表示 黄緑:#38D038 R: 56,G:208,G: 56 -- AP、エネルギーゲージの枠、ヒットマーク、サイト(ロック前)  緑:#409038 R: 64,G:144,G: 56 -- エネルギーゲージ。計器の緑とは別の色 深緑:#28C028 R: 40,G:192,B: 40 -- 方位計。黄緑だったのが暗く半透明にされただけ?  黄:#F8F800 R:248,G:248,G: 0 -- 弾数  赤:#E84820 R:132,G:130,B: 32 -- サイト(ロック中) 暗赤:#A05030 R:160,G: 80,B: 48 -- レッドゾーン 水色:#38F8F8 R: 56,G:248,B:248 -- 僚機 ]] -- 関数用 base_X = 0 -- 文字の横表示位置 base_Y = 0 -- 文字の縦表示位置 gui_text = 0 -- 文字の色 -- ■■■■■■■■■■ -- 何作目のACであるかを確認 -- ゲームの型番を確認。初代:SLPS-00900、PP:SLPS-01130、MA:SLPS-01855〜6 -- 3作共通のアドレスからSLPS_0の後の2桁の数字の確認する。初代:09(0x3930)、PP:11(0x3131)、MA:18(0x3831) AC = memory.readword(0x9292) -- SLPS_0の後の2桁の数字を取得 -- 型番から何作目かを確認。この番号を配列で使用する。初代:1、PP:2、MA:3 if AC == 0x3930 -- 初代か確認 then AC = 1 -- 1作目とする print("ARMORED CORE") -- コンソールにARMORED COREと表示 print("not available") -- 非対応なのでコンソールに警告を表示 elseif AC == 0x3131 -- PPか確認 then AC = 2 -- 2作目とする print("PROJECT PHANTASMA") -- コンソールにPROJECT PHANTASMAと表示 elseif AC == 0x3831 -- MAか確認 then AC = 3 -- 3作目とする print("MASTER OF ARENA") -- コンソールにMASTER OF ARENAと表示 else AC = 4 print("not available!!") -- ACではないのでコンソールに警告を表示 gui.clearuncommitted() end print("(GUI for Arena)") -- ■■■■■■■■■■ -- 各メモリアドレスを配列化 -- 配列の初期化と各アドレスの入力 -- 配列は最初に初期化してそれから値を代入する必要があるらしい。あと、入れてない要素を指定するとエラー -- アドレス用変数名 = {初代用 , PP用 , MA用 , AC以外のダミー用} -- モード add_mode = {} add_mode = {0x5AAB0 , 0x73194 , 0x76C2C , 0} -- メニューか戦闘中の確認用アドレス -- ポーズ状態 add_pause = {} add_pause = {0x0 , 0x3A464 , 0x3E744 , 0} -- ポーズ状態のアドレス -- タイマー add_ingame_timer = {} add_event_timer = {} add_ingame_timer = {0x0 , 0x19C94C , 0x1AC4C4 , 0} -- アリーナのゲーム内タイマーのアドレス add_event_timer = {0x0 , 0x1A367A , 0x9EFFA , 0} -- アリーナのイベントタイマーのアドレス -- 座標(アドレスの順番に注意すること!) add_x_1P = {} add_y_1P = {} add_z_1P = {} add_x_1P = {0x0 , 0x1A3744 , 0x1D8434 , 0} -- 1Pのx座標のアドレス add_y_1P = {0x0 , 0x1A3740 , 0x1D8430 , 0} -- 1Pのy座標のアドレス add_z_1P = {0x0 , 0x1A3742 , 0x1D8432 , 0} -- 1Pのz座標のアドレス add_x_2P = {} add_y_2P = {} add_z_2P = {} add_x_2P = {0x0 , 0x1A38B4 , 0x1D85AC , 0} -- 2Pのx座標のアドレス add_y_2P = {0x0 , 0x1A38B0 , 0x1D85A8 , 0} -- 2Pのy座標のアドレス add_z_2P = {0x0 , 0x1A38B2 , 0x1D85AA , 0} -- 2Pのz座標のアドレス -- 前フレームの座標 add_x_pre_1P = {} add_y_pre_1P = {} add_z_pre_1P = {} add_x_pre_1P = {0x0 , 0x1A375C , 0x1D844C , 0} -- 1Pの前フレームのx座標のアドレス add_y_pre_1P = {0x0 , 0x1A3758 , 0x1D8448 , 0} -- 1Pの前フレームのy座標のアドレス add_z_pre_1P = {0x0 , 0x1A375A , 0x1D844A , 0} -- 1Pの前フレームのz座標のアドレス add_x_pre_2P = {} add_y_pre_2P = {} add_z_pre_2P = {} add_x_pre_2P = {0x0 , 0x1A38CC , 0x1D85C4 , 0} -- 2Pの前フレームのx座標のアドレス add_y_pre_2P = {0x0 , 0x1A38C8 , 0x1D85C0 , 0} -- 2Pの前フレームのy座標のアドレス add_z_pre_2P = {0x0 , 0x1A38CA , 0x1D85C2 , 0} -- 2Pの前フレームのz座標のアドレス -- 速度 add_x_spd_1P = {} add_y_spd_1P = {} add_z_spd_1P = {} add_x_spd_1P = {0x0 , 0x1A3808 , 0x1D8500 , 0} -- 1Pのx軸速度のアドレス add_y_spd_1P = {0x0 , 0x1A3804 , 0x1D84FC , 0} -- 1Pのy軸速度のアドレス add_z_spd_1P = {0x0 , 0x1A3806 , 0x1D84FE , 0} -- 1Pのz軸速度のアドレス -- 旋回 add_turn_LR_1P = {} add_turn_UD_1P = {} add_turn_LR_1P = {0x0 , 0x1A374A ,0x1D843A , 0} -- 1Pの左右角度のアドレス add_turn_UD_1P = {0x0 , 0x41C28 , 0x453D0 , 0} -- 1Pの上下角度のアドレス add_turn_LR_2P = {} add_turn_UD_2P = {} add_turn_LR_2P = {0x0 , 0x1A38BA , 0x1D85B2 , 0} -- 2Pの左右角度のアドレス -- add_turn_UD_2P = {0x0 , 0x , 0x , 0} -- 2Pの上下角度のアドレス -- ジェネ add_EN_curt_1P = {} add_EN_MAX_1P = {} add_EN_curt_1P = {0x41016 , 0x41A26 , 0x451CE , 0} -- 1Pのエネルギー現在残量のアドレス add_EN_MAX_1P = {0x4125C , 0x41C72 , 0x4541A , 0} -- 1Pのエネルギー最大値のアドレス -- 距離計 add_range_meter = {} add_range_meter = {0x0 , 0x41A90 , 0x45238 , 0} -- 1Pの距離計の値のアドレス -- ロック状態 add_lockon_1P = {} add_lockon_2P = {} add_lockon_1P = {0x0 , 0x41A8E , 0x45236 , 0} -- 1Pのロック状態のアドレス add_lockon_2P = {0x0 , 0x41E34 , 0x455D6 , 0} -- 2Pのロック状態のアドレス -- エリアオーバーライン add_z_U_over = {} add_z_U_warn = {} add_z_D_warn = {} add_z_D_over = {} add_z_U_over = {0x0 , 0x41C40 , 0x453E8 , 0} -- 上限界の点 add_z_U_warn = {0x0 , 0x41C30 , 0x453D8 , 0} -- 上警告の点 add_z_D_warn = {0x0 , 0x41C38 , 0x453E0 , 0} -- 下警告の点 add_z_D_over = {0x0 , 0x41C48 , 0x453F0 , 0} -- 下限界の点 -- AP -- 最大APは現状必要無し? add_AP_curt_1P = {} add_AP_curt_2P = {} add_AP_curt_1P = {0x0 , 0x1A3898 , 0x1D8590 , 0} -- 1Pの現在のAPのアドレス add_AP_curt_2P = {0x0 , 0x1A3A08 , 0x1D8708 , 0} -- 2Pの現在のAPのアドレス -- 残りリロード add_reload_left = {} add_reload_left = {0x0 , 0x1A3777 , 0x1D8470 , 0} -- 1Pの残りリロード時間のアドレス -- 敵ジャミング機能 add_jam = {} add_jam = {0x0 , 0x1A38E0 , 0x1D85D8 , 0} -- 現在の武器 add_wep_curt_1P = {} add_wep_curt_1P = {0x0 , 0x41A21 , 0x451C9 , 0} -- ロック範囲 add_1stLockH_1P = {} add_1stLockH_1P = {0x0 , 0x41D02 , 0x454AA , 0} -- 1P1次ロック横範囲(エイム範囲) add_1stLockV_1P = {} add_1stLockV_1P = {0x0 , 0x41D00 , 0x454A8 , 0} -- 1P1次ロック縦範囲(エイム範囲) add_2ndLockH_1P = {} add_2ndLockH_1P = {0x0 , 0x41D06 , 0x454AE , 0} -- 1P2次ロック横範囲(ロック範囲) add_2ndLockV_1P = {} add_2ndLockV_1P = {0x0 , 0x41D04 , 0x454AC , 0} -- 1P2次ロック縦範囲(ロック範囲) add_lock_range_1P = {} add_lock_range_1P = {0x0 , 0x41CFC , 0x454A4 , 0} -- 1Pロック距離 add_FCS_diff = {} add_FCS_diff = {0x0 , 0x3E , 0x3E , 0} -- 次の武器のロック範囲への差分 add_radar_range_1P = {} add_radar_range_1P = {0x0 , 0x41C7E , 0x45426 , 0} -- 1Pレーダー範囲 -- ロックオン表示の位置 add_lockon_disp_X_1P = {} add_lockon_disp_X_1P = {0x0 , 0x41A98 , 0x45240 , 0} add_lockon_disp_Y_1P = {} add_lockon_disp_Y_1P = {0x0 , 0x41A9A , 0x45242 , 0} -- アリーナ敵無力化用 add_2P_motion_ID = {} add_2P_motion_ID = {0x0 , 0x1A38E4 , 0x1D85E5 , 0} add_2P_motion_unknown = {} add_2P_motion_unknown = {0x0 , 0x1A38E5 , 0x1D85E6 , 0} add_2P_reload_remain = {} add_2P_reload_remain = {0x0 , 0x1A38E7 , 0x1D85E8 , 0} add_2P_blade_ATKpower = {} add_2P_blade_ATKpower = {0x0 , 0x42070 , 0x45810 , 0} -- ■名前 -- add_ = {} -- add_ = {0x0 , 0x , 0x , 0} -- ■■■■■■■■■■■■■■■■■■■■ -- ↑ここまで初期設定で、最初に一度だけ実行される -- ■■■■■■■■■■■■■■■■■■■■ -- 関数の定義 -- ■■■■ここから大きい文字の描画■■■■ num_disp_L = {} -- 0(大)の手動描画 num_disp_L["0"]=function() gui.drawline(base_X , base_Y , base_X , base_Y + 5 , color) gui.drawline(base_X + 1 , base_Y , base_X + 3 , base_Y , color) gui.drawline(base_X + 4 , base_Y + 1 , base_X + 4 , base_Y + 6 , color) gui.drawline(base_X + 1 , base_Y + 6 , base_X + 4 , base_Y + 6 , color) end -- 1(大)の手動描画 num_disp_L["1"]=function() gui.drawline(base_X + 1 , base_Y , base_X + 1 , base_Y , color) gui.drawline(base_X + 2 , base_Y + 1 , base_X + 2 , base_Y + 6 , color) end -- 2(大)の手動描画 num_disp_L["2"]=function() gui.drawline(base_X , base_Y , base_X + 3 , base_Y , color) gui.drawline(base_X + 4 , base_Y + 1 , base_X + 4 , base_Y + 2 , color) gui.drawline(base_X + 1 , base_Y + 3 , base_X + 3 , base_Y + 3 , color) gui.drawline(base_X , base_Y + 4 , base_X , base_Y + 5 , color) gui.drawline(base_X , base_Y + 6, base_X + 4 , base_Y + 6 , color) end -- 3(大)の手動描画 num_disp_L["3"]=function() gui.drawline(base_X , base_Y , base_X + 3 , base_Y , color) gui.drawline(base_X + 4 , base_Y + 1 , base_X + 4 , base_Y + 2 , color) gui.drawline(base_X + 1 , base_Y + 3 , base_X + 3 , base_Y + 3 , color) gui.drawline(base_X + 4 , base_Y + 4 , base_X + 4 , base_Y + 5 , color) gui.drawline(base_X , base_Y + 6, base_X + 3 , base_Y + 6 , color) end -- 4(大)の手動描画 num_disp_L["4"]=function() gui.drawline(base_X , base_Y , base_X , base_Y + 2 , color) gui.drawline(base_X + 1 , base_Y + 3 , base_X + 3 , base_Y + 3 , color) gui.drawline(base_X + 4 , base_Y , base_X + 4 , base_Y + 6 , color) end -- 5(大)の手動描画 num_disp_L["5"]=function() gui.drawline(base_X , base_Y , base_X + 4 , base_Y , color) gui.drawline(base_X , base_Y + 1 , base_X , base_Y + 2 , color) gui.drawline(base_X , base_Y + 3 , base_X + 3 , base_Y + 3 , color) gui.drawline(base_X + 4 , base_Y + 4 , base_X + 4 , base_Y + 5 , color) gui.drawline(base_X , base_Y + 6 , base_X + 3 , base_Y + 6 , color) end -- 6(大)の手動描画 num_disp_L["6"]=function() gui.drawline(base_X + 1 , base_Y , base_X + 4 , base_Y , color) gui.drawline(base_X , base_Y + 1 , base_X , base_Y + 5 , color) gui.drawline(base_X + 1 , base_Y + 3 , base_X + 3 , base_Y + 3 , color) gui.drawline(base_X + 4 , base_Y + 3 , base_X + 4 , base_Y + 5 , color) gui.drawline(base_X + 1 , base_Y + 6 , base_X + 3 , base_Y + 6 , color) end -- 7(大)の手動描画 num_disp_L["7"]=function() gui.drawline(base_X , base_Y , base_X , base_Y + 1 , color) gui.drawline(base_X + 1 , base_Y , base_X + 3 , base_Y , color) gui.drawline(base_X + 4 , base_Y , base_X + 4 , base_Y + 1 , color) gui.drawline(base_X + 4 , base_Y + 2 , base_X + 2 , base_Y + 4 , color) gui.drawline(base_X + 2 , base_Y + 5 , base_X + 2 , base_Y + 6 , color) end -- 8(大)の手動描画 num_disp_L["8"]=function() gui.drawline(base_X , base_Y , base_X , base_Y + 2 , color) gui.drawline(base_X + 1 , base_Y , base_X + 3 , base_Y , color) gui.drawline(base_X + 4 , base_Y + 1 , base_X + 4 , base_Y + 2 , color) gui.drawline(base_X + 1 , base_Y + 3 , base_X + 3 , base_Y + 3 , color) gui.drawline(base_X , base_Y + 4 , base_X , base_Y + 5 , color) gui.drawline(base_X + 4 , base_Y + 4 , base_X + 4 , base_Y + 5 , color) gui.drawline(base_X + 1 , base_Y + 6 , base_X + 4 , base_Y + 6 , color) end -- 9(大)の手動描画 num_disp_L["9"]=function() gui.drawline(base_X , base_Y , base_X , base_Y + 2 , color) gui.drawline(base_X + 1 , base_Y , base_X + 3 , base_Y , color) gui.drawline(base_X + 4 , base_Y + 1 , base_X + 4 , base_Y + 5 , color) gui.drawline(base_X + 1 , base_Y + 3 , base_X + 3 , base_Y + 3 , color) gui.drawline(base_X , base_Y + 6 , base_X + 3 , base_Y + 6 , color) end -- +の手動描画 num_disp_L["+"]=function() gui.drawline(base_X , base_Y + 3 , base_X + 4 , base_Y + 3 , color) gui.drawline(base_X + 2, base_Y + 1 , base_X + 2 , base_Y + 5 , color) end -- -(マイナス)の手動描画 num_disp_L["-"]=function() gui.drawline(base_X , base_Y + 3 , base_X + 4 , base_Y + 3 , color) end -- *の手動描画 num_disp_L["*"]=function() gui.drawline(base_X , base_Y + 1 , base_X + 4 , base_Y + 5 , color) gui.drawline(base_X + 2 , base_Y + 1 , base_X + 2 , base_Y + 5 , color) gui.drawline(base_X , base_Y + 5 , base_X + 4 , base_Y + 1 , color) end -- /の手動描画 num_disp_L["/"]=function() gui.drawline(base_X + 3 , base_Y , base_X + 3 , base_Y + 2 , color) gui.drawline(base_X + 2 , base_Y + 3 , base_X + 2 , base_Y + 4 , color) gui.drawline(base_X + 1 , base_Y + 5 , base_X + 1 , base_Y + 6 , color) end -- .の手動描画 num_disp_L["."]=function() gui.drawline(base_X + 1 , base_Y + 5 , base_X + 2 , base_Y + 5 , color) gui.drawline(base_X + 1 , base_Y + 6 , base_X + 2 , base_Y + 6 , color) end -- ,の手動描画 num_disp_L[","]=function() gui.drawline(base_X + 1 , base_Y + 5 , base_X + 1 , base_Y + 6 , color) gui.drawline(base_X + 2 , base_Y + 5 , base_X + 2 , base_Y + 7 , color) end -- ?の手動描画 num_disp_L["?"]=function() gui.drawline(base_X , base_Y + 1 , base_X , base_Y + 2 , color) gui.drawline(base_X + 1 , base_Y , base_X + 3 , base_Y , color) gui.drawline(base_X + 4 , base_Y + 1 , base_X + 4 , base_Y + 2 , color) gui.drawline(base_X + 3 , base_Y + 3 , base_X + 2 , base_Y + 4 , color) gui.drawline(base_X + 2 , base_Y + 6 , base_X + 2 , base_Y + 6 , color) end -- !の手動描画 num_disp_L["!"]=function() gui.drawline(base_X + 1 , base_Y + 1 , base_X + 1 , base_Y + 3 , color) gui.drawline(base_X + 2 , base_Y , base_X + 2 , base_Y + 4 , color) gui.drawline(base_X + 3 , base_Y + 1 , base_X + 3 , base_Y + 3 , color) gui.drawline(base_X + 2 , base_Y + 6 , base_X + 2 , base_Y + 6 , color) end -- #の手動描画 num_disp_L["#"]=function() gui.drawline(base_X + 2 , base_Y , base_X , base_Y + 6 , color) gui.drawline(base_X + 4 , base_Y , base_X + 2 , base_Y + 6 , color) gui.drawline(base_X , base_Y + 2 , base_X + 4 , base_Y + 2 , color) gui.drawline(base_X , base_Y + 4 , base_X + 4 , base_Y + 4 , color) end -- %の手動描画 num_disp_L["%"]=function() gui.drawline(base_X , base_Y + 1 , base_X , base_Y + 2 , color) gui.drawline(base_X + 1 , base_Y + 2 , base_X + 2 , base_Y + 1 , color) gui.drawline(base_X + 1 , base_Y , base_X + 2 , base_Y , color) gui.drawline(base_X + 4 , base_Y + 1 , base_X , base_Y + 5 , color) gui.drawline(base_X + 4 , base_Y + 4 , base_X + 4 , base_Y + 5 , color) gui.drawline(base_X + 3 , base_Y + 4 , base_X + 2 , base_Y + 5 , color) gui.drawline(base_X + 2 , base_Y + 6 , base_X + 3 , base_Y + 6 , color) end -- (の手動描画 num_disp_L["("]=function() gui.drawline(base_X + 2 , base_Y , base_X , base_Y + 2 , color) gui.drawline(base_X , base_Y + 3 , base_X , base_Y + 3 , color) gui.drawline(base_X + 2 , base_Y + 6 , base_X , base_Y + 4 , color) end -- )の手動描画 num_disp_L[")"]=function() gui.drawline(base_X + 2 , base_Y , base_X + 4 , base_Y + 2 , color) gui.drawline(base_X + 4 , base_Y + 3 , base_X + 4 , base_Y + 3 , color) gui.drawline(base_X + 2 , base_Y + 6 , base_X + 4 , base_Y + 4 , color) end -- _の手動描画 num_disp_L["_"]=function() gui.drawline(base_X , base_Y + 6 , base_X + 4 , base_Y + 6 , color) end -- :の手動描画 num_disp_L[":"]=function() gui.drawline(base_X + 1 , base_Y + 1 , base_X + 1 , base_Y + 1 , color) gui.drawline(base_X + 1 , base_Y + 5 , base_X + 1 , base_Y + 5 , color) end -- ;の手動描画 num_disp_L[";"]=function() gui.drawline(base_X + 2 , base_Y + 1 , base_X + 2 , base_Y + 1 , color) gui.drawline(base_X + 2 , base_Y + 4 , base_X + 2 , base_Y + 5 , color) gui.drawline(base_X + 1 , base_Y + 6 , base_X + 1 , base_Y + 6 , color) end -- <の手動描画 num_disp_L["<"]=function() gui.drawline(base_X + 3 , base_Y , base_X , base_Y + 3 , color) gui.drawline(base_X + 1 , base_Y + 4 , base_X + 3 , base_Y + 6 , color) end -- >の手動描画 num_disp_L[">"]=function() gui.drawline(base_X + 1 , base_Y , base_X + 4 , base_Y + 3 , color) gui.drawline(base_X + 3 , base_Y + 4 , base_X + 1 , base_Y + 6 , color) end -- Aの手動描画 num_disp_L["A"]=function() gui.drawline(base_X + 2 , base_Y , base_X + 4 , base_Y , color) gui.drawline(base_X + 1 , base_Y + 1 , base_X , base_Y + 2 , color) gui.drawline(base_X , base_Y + 3 , base_X + 3 , base_Y + 3 , color) gui.drawline(base_X , base_Y + 4 , base_X , base_Y + 6 , color) gui.drawline(base_X + 4 , base_Y + 1 , base_X + 4 , base_Y + 6 , color) end -- Bの手動描画 num_disp_L["B"]=function() gui.drawline(base_X , base_Y , base_X , base_Y + 6 , color) gui.drawline(base_X + 1, base_Y , base_X + 3 , base_Y , color) gui.drawline(base_X + 1, base_Y + 3 , base_X + 3 , base_Y + 3 , color) gui.drawline(base_X + 1, base_Y + 6 , base_X + 3 , base_Y + 6 , color) gui.drawline(base_X + 4, base_Y + 1 , base_X + 4 , base_Y + 2 , color) gui.drawline(base_X + 4, base_Y + 4 , base_X + 4 , base_Y + 5 , color) end -- Cの手動描画 num_disp_L["C"]=function() gui.drawline(base_X + 1 , base_Y , base_X + 4 , base_Y , color) gui.drawline(base_X , base_Y + 1 , base_X , base_Y + 5 , color) gui.drawline(base_X , base_Y + 6 , base_X + 4 , base_Y + 6 , color) end -- Dの手動描画 num_disp_L["D"]=function() gui.drawline(base_X , base_Y , base_X + 3 , base_Y , color) gui.drawline(base_X , base_Y , base_X , base_Y + 5 , color) gui.drawline(base_X , base_Y + 6 , base_X + 3 , base_Y + 6 , color) gui.drawline(base_X + 4 , base_Y + 1 , base_X + 4 , base_Y + 5 , color) end -- Eの手動描画 num_disp_L["E"]=function() gui.drawline(base_X , base_Y , base_X + 4 , base_Y , color) gui.drawline(base_X , base_Y + 1 , base_X , base_Y + 5 , color) gui.drawline(base_X + 1 , base_Y + 3 , base_X + 3 , base_Y + 3 , color) gui.drawline(base_X , base_Y + 6 , base_X + 4 , base_Y + 6 , color) end -- Fの手動描画 num_disp_L["F"]=function() gui.drawline(base_X , base_Y , base_X + 4 , base_Y , color) gui.drawline(base_X , base_Y + 1 , base_X , base_Y + 6 , color) gui.drawline(base_X + 1 , base_Y + 3 , base_X + 3 , base_Y + 3 , color) end -- Gの手動描画 num_disp_L["G"]=function() gui.drawline(base_X + 1 , base_Y , base_X + 4 , base_Y , color) gui.drawline(base_X , base_Y , base_X , base_Y + 5 , color) gui.drawline(base_X , base_Y + 6 , base_X + 3 , base_Y + 6 , color) gui.drawline(base_X + 4 , base_Y + 6 , base_X + 4 , base_Y + 3 , color) end -- Hの手動描画 num_disp_L["H"]=function() gui.drawline(base_X , base_Y , base_X , base_Y + 6 , color) gui.drawline(base_X + 1, base_Y + 3 , base_X + 3 , base_Y + 3 , color) gui.drawline(base_X + 4, base_Y , base_X + 4 , base_Y + 6 , color) end -- Iの手動描画 num_disp_L["I"]=function() gui.drawline(base_X + 1, base_Y , base_X + 3, base_Y , color) gui.drawline(base_X + 2, base_Y + 1 , base_X + 2 , base_Y + 5 , color) gui.drawline(base_X + 1, base_Y + 6 , base_X + 3, base_Y + 6 , color) end -- Jの手動描画 num_disp_L["J"]=function() gui.drawline(base_X , base_Y + 4 , base_X, base_Y + 5 , color) gui.drawline(base_X + 1, base_Y + 6 , base_X + 3 , base_Y + 6 , color) gui.drawline(base_X + 4, base_Y + 5 , base_X + 4 , base_Y , color) end -- Kの手動描画 num_disp_L["K"]=function() gui.drawline(base_X , base_Y , base_X, base_Y + 6 , color) gui.drawline(base_X + 1 , base_Y + 3 , base_X + 4 , base_Y , color) gui.drawline(base_X + 2 , base_Y + 4 , base_X + 4 , base_Y + 6 , color) end -- Lの手動描画 num_disp_L["L"]=function() gui.drawline(base_X , base_Y , base_X, base_Y + 6 , color) gui.drawline(base_X + 1 , base_Y + 6 , base_X + 4, base_Y + 6 , color) end -- Mの手動描画 num_disp_L["M"]=function() gui.drawline(base_X , base_Y , base_X, base_Y + 6 , color) gui.drawline(base_X + 4 , base_Y + 1 , base_X + 4 , base_Y + 6 , color) gui.drawline(base_X + 1 , base_Y + 1 , base_X + 2 , base_Y + 2 , color) gui.drawline(base_X + 3 , base_Y + 1 , base_X + 4 , base_Y , color) end -- Nの手動描画 num_disp_L["N"]=function() gui.drawline(base_X , base_Y , base_X, base_Y + 6 , color) gui.drawline(base_X + 4 , base_Y , base_X + 4 , base_Y + 6 , color) gui.drawline(base_X + 1 , base_Y + 1 , base_X + 3 , base_Y + 3 , color) end -- Oの手動描画 num_disp_L["O"]=function() gui.drawline(base_X , base_Y + 1 , base_X, base_Y + 6 , color) gui.drawline(base_X + 4 , base_Y , base_X + 4 , base_Y + 5 , color) gui.drawline(base_X + 1 , base_Y , base_X + 3 , base_Y , color) gui.drawline(base_X + 1 , base_Y + 6 , base_X + 3 , base_Y + 6 , color) end -- Pの手動描画 num_disp_L["P"]=function() gui.drawline(base_X , base_Y , base_X, base_Y + 6 , color) gui.drawline(base_X + 1 , base_Y , base_X + 4 , base_Y , color) gui.drawline(base_X + 4 , base_Y + 1 , base_X + 4 , base_Y + 2 , color) gui.drawline(base_X + 1 , base_Y + 3 , base_X + 3 , base_Y + 3 , color) end -- Qの手動描画 num_disp_L["Q"]=function() gui.drawline(base_X , base_Y + 1 , base_X, base_Y + 5 , color) gui.drawline(base_X + 1 , base_Y , base_X + 3 , base_Y , color) gui.drawline(base_X + 4 , base_Y + 1 , base_X + 4 , base_Y + 4 , color) gui.drawline(base_X + 1 , base_Y + 6 , base_X + 2 , base_Y + 6 , color) gui.drawline(base_X + 2 , base_Y + 4 , base_X + 4 , base_Y + 6 , color) end -- Rの手動描画 num_disp_L["R"]=function() gui.drawline(base_X , base_Y , base_X , base_Y + 6 , color) gui.drawline(base_X + 1 , base_Y , base_X + 3, base_Y , color) gui.drawline(base_X + 1 , base_Y + 3 , base_X + 3 , base_Y + 3 , color) gui.drawline(base_X + 4 , base_Y + 1 , base_X + 4 , base_Y + 2 , color) gui.drawline(base_X + 4 , base_Y + 4 , base_X + 4 , base_Y + 6 , color) end -- Sの手動描画 num_disp_L["S"]=function() gui.drawline(base_X , base_Y + 1 , base_X , base_Y + 3 , color) gui.drawline(base_X + 1 , base_Y , base_X + 4 , base_Y , color) gui.drawline(base_X + 1 , base_Y + 3 , base_X + 4 , base_Y + 3 , color) gui.drawline(base_X + 4 , base_Y + 4 , base_X + 4 , base_Y + 5 , color) gui.drawline(base_X , base_Y + 6 , base_X + 3 , base_Y + 6 , color) end -- Tの手動描画 num_disp_L["T"]=function() gui.drawline(base_X , base_Y , base_X + 4 , base_Y , color) gui.drawline(base_X + 2 , base_Y + 1 , base_X + 2 , base_Y + 6 , color) end -- Uの手動描画 num_disp_L["U"]=function() gui.drawline(base_X , base_Y , base_X , base_Y + 5 , color) gui.drawline(base_X + 1 , base_Y + 6 , base_X + 3 , base_Y + 6 , color) gui.drawline(base_X + 4 , base_Y , base_X + 4 , base_Y + 5 , color) end -- Vの手動描画 num_disp_L["V"]=function() gui.drawline(base_X , base_Y , base_X , base_Y + 4 , color) gui.drawline(base_X + 1 , base_Y + 5 , base_X + 2 , base_Y + 6 , color) gui.drawline(base_X + 3 , base_Y + 5 , base_X + 4 , base_Y + 4 , color) gui.drawline(base_X + 4 , base_Y , base_X + 4 , base_Y + 3 , color) end -- Wの手動描画 num_disp_L["W"]=function() gui.drawline(base_X , base_Y , base_X , base_Y + 4 , color) gui.drawline(base_X , base_Y + 5 , base_X + 1 , base_Y + 6 , color) gui.drawline(base_X + 2 , base_Y + 1 , base_X + 2 , base_Y + 5 , color) gui.drawline(base_X + 4 , base_Y + 5 , base_X + 3 , base_Y + 6 , color) gui.drawline(base_X + 4 , base_Y , base_X + 4 , base_Y + 4 , color) end -- Xの手動描画 num_disp_L["X"]=function() gui.drawline(base_X , base_Y , base_X , base_Y , color) gui.drawline(base_X , base_Y + 1 , base_X + 4 , base_Y + 5 , color) gui.drawline(base_X + 4 , base_Y + 6 , base_X + 4 , base_Y + 6 , color) gui.drawline(base_X + 4 , base_Y , base_X + 4 , base_Y , color) gui.drawline(base_X + 4 , base_Y + 1 , base_X , base_Y + 5 , color) gui.drawline(base_X , base_Y + 6 , base_X , base_Y + 6 , color) end -- Yの手動描画 num_disp_L["Y"]=function() gui.drawline(base_X , base_Y , base_X , base_Y , color) gui.drawline(base_X , base_Y + 1 , base_X + 2 , base_Y + 3 , color) gui.drawline(base_X + 3 , base_Y + 2 , base_X + 4 , base_Y + 1 , color) gui.drawline(base_X + 4 , base_Y , base_X + 4 , base_Y , color) gui.drawline(base_X + 2 , base_Y + 4 , base_X + 2 , base_Y + 6 , color) end -- Zの手動描画 num_disp_L["Z"]=function() gui.drawline(base_X , base_Y , base_X + 4 , base_Y , color) gui.drawline(base_X + 4 , base_Y + 1 , base_X , base_Y + 5 , color) gui.drawline(base_X , base_Y + 6 , base_X + 4 , base_Y + 6 , color) end -- aの手動描画 num_disp_L["a"]=function() gui.drawline(base_X , base_Y + 2 , base_X + 4 , base_Y + 2 , color) gui.drawline(base_X + 4 , base_Y + 3 , base_X + 4 , base_Y + 6 , color) gui.drawline(base_X + 1 , base_Y + 4 , base_X + 3 , base_Y + 4 , color) gui.drawline(base_X , base_Y + 5 , base_X , base_Y + 6 , color) gui.drawline(base_X + 1 , base_Y + 6 , base_X + 3 , base_Y + 6 , color) end -- bの手動描画 num_disp_L["b"]=function() gui.drawline(base_X , base_Y , base_X , base_Y + 6 , color) gui.drawline(base_X + 1 , base_Y + 2 , base_X + 3 , base_Y + 2 , color) gui.drawline(base_X + 4 , base_Y + 3 , base_X + 4 , base_Y + 6 , color) gui.drawline(base_X + 1 , base_Y + 6 , base_X + 3 , base_Y + 6 , color) end -- cの手動描画 num_disp_L["c"]=function() gui.drawline(base_X , base_Y + 3 , base_X , base_Y + 6 , color) gui.drawline(base_X + 1 , base_Y + 2 , base_X + 4 , base_Y + 2 , color) gui.drawline(base_X + 1 , base_Y + 6 , base_X + 4 , base_Y + 6 , color) end -- dの手動描画 num_disp_L["d"]=function() gui.drawline(base_X + 4 , base_Y , base_X + 4 , base_Y + 6 , color) gui.drawline(base_X , base_Y + 3 , base_X , base_Y + 6 , color) gui.drawline(base_X + 1 , base_Y + 2 , base_X + 3 , base_Y + 2 , color) gui.drawline(base_X + 1 , base_Y + 6 , base_X + 3 , base_Y + 6 , color) end -- eの手動描画 num_disp_L["e"]=function() gui.drawline(base_X + 1 , base_Y + 2 , base_X + 3 , base_Y + 2 , color) gui.drawline(base_X + 4 , base_Y + 2 , base_X + 4 , base_Y + 3 , color) gui.drawline(base_X , base_Y + 3 , base_X , base_Y + 5 , color) gui.drawline(base_X + 1 , base_Y + 4 , base_X + 3 , base_Y + 4 , color) gui.drawline(base_X + 1 , base_Y + 6 , base_X + 4 , base_Y + 6 , color) end -- fの手動描画 num_disp_L["f"]=function() gui.drawline(base_X + 3 , base_Y , base_X + 4 , base_Y , color) gui.drawline(base_X + 2 , base_Y + 1 , base_X + 2 , base_Y + 6 , color) gui.drawline(base_X , base_Y + 2 , base_X + 4 , base_Y + 2 , color) end -- gの手動描画 num_disp_L["g"]=function() gui.drawline(base_X + 1 , base_Y + 2 , base_X + 4 , base_Y + 2 , color) gui.drawline(base_X , base_Y + 3 , base_X , base_Y + 4 , color) gui.drawline(base_X + 1, base_Y + 4 , base_X + 3 , base_Y + 4 , color) gui.drawline(base_X + 4, base_Y + 3 , base_X + 4 , base_Y + 5 , color) gui.drawline(base_X , base_Y + 6 , base_X + 3 , base_Y + 6 , color) end -- hの手動描画 num_disp_L["h"]=function() gui.drawline(base_X , base_Y , base_X , base_Y + 6 , color) gui.drawline(base_X + 1 , base_Y + 2 , base_X + 3 , base_Y + 2 , color) gui.drawline(base_X + 4 , base_Y + 3 , base_X + 4 , base_Y + 6 , color) end -- iの手動描画 num_disp_L["i"]=function() gui.drawline(base_X + 2 , base_Y , base_X + 2 , base_Y , color) gui.drawline(base_X + 2 , base_Y + 2 , base_X + 2 , base_Y + 6, color) end -- jの手動描画 num_disp_L["j"]=function() gui.drawline(base_X + 4 , base_Y , base_X + 4 , base_Y , color) gui.drawline(base_X + 4 , base_Y + 2 , base_X + 4 , base_Y + 5 , color) gui.drawline(base_X + 1 , base_Y + 6 , base_X + 3 , base_Y + 6 , color) gui.drawline(base_X , base_Y + 4 , base_X , base_Y + 5 , color) end -- kの手動描画 num_disp_L["k"]=function() gui.drawline(base_X , base_Y , base_X , base_Y + 6 , color) gui.drawline(base_X + 1 , base_Y + 5 , base_X + 4 , base_Y + 2 , color) gui.drawline(base_X + 3 , base_Y + 5 , base_X + 4 , base_Y + 6 , color) end -- lの手動描画(小文字のエル) num_disp_L["l"]=function() gui.drawline(base_X + 1 , base_Y , base_X + 2 , base_Y , color) gui.drawline(base_X + 2 , base_Y + 1 , base_X + 2 , base_Y + 5 , color) gui.drawline(base_X + 1 , base_Y + 6 , base_X + 3 , base_Y + 6 , color) end -- mの手動描画 num_disp_L["m"]=function() gui.drawline(base_X , base_Y + 2 , base_X + 3 , base_Y + 2 , color) gui.drawline(base_X , base_Y + 3 , base_X , base_Y + 6 , color) gui.drawline(base_X + 2 , base_Y + 3 , base_X + 2 , base_Y + 6 , color) gui.drawline(base_X + 4 , base_Y + 3 , base_X + 4 , base_Y + 6 , color) end -- nの手動描画 num_disp_L["n"]=function() gui.drawline(base_X , base_Y + 2 , base_X + 3 , base_Y + 2 , color) gui.drawline(base_X , base_Y + 3 , base_X , base_Y + 6 , color) gui.drawline(base_X + 4 , base_Y + 3 , base_X + 4 , base_Y + 6 , color) end -- oの手動描画 num_disp_L["o"]=function() gui.drawline(base_X + 1 , base_Y + 2 , base_X + 3 , base_Y + 2 , color) gui.drawline(base_X , base_Y + 3 , base_X , base_Y + 6 , color) gui.drawline(base_X + 1 , base_Y + 6 , base_X + 3 , base_Y + 6 , color) gui.drawline(base_X + 4 , base_Y + 2 , base_X + 4 , base_Y + 5 , color) end -- pの手動描画 num_disp_L["p"]=function() gui.drawline(base_X + 1 , base_Y + 2 , base_X + 3 , base_Y + 2 , color) gui.drawline(base_X , base_Y + 3 , base_X , base_Y + 6 , color) gui.drawline(base_X + 1 , base_Y + 5 , base_X + 3 , base_Y + 5 , color) gui.drawline(base_X + 4 , base_Y + 4 , base_X + 4 , base_Y + 2 , color) end -- qの手動描画 num_disp_L["q"]=function() gui.drawline(base_X , base_Y + 2 , base_X , base_Y + 4 , color) gui.drawline(base_X + 1 , base_Y + 2 , base_X + 3 , base_Y + 2 , color) gui.drawline(base_X + 1 , base_Y + 5 , base_X + 3 , base_Y + 5 , color) gui.drawline(base_X + 4 , base_Y + 3 , base_X + 4 , base_Y + 6 , color) end -- rの手動描画 num_disp_L["r"]=function() gui.drawline(base_X , base_Y + 2 , base_X , base_Y + 6 , color) gui.drawline(base_X + 1 , base_Y + 3 , base_X + 2 , base_Y + 2 , color) gui.drawline(base_X + 3 , base_Y + 2 , base_X + 4 , base_Y + 2 , color) end -- sの手動描画 num_disp_L["s"]=function() gui.drawline(base_X + 1 , base_Y + 2 , base_X + 4 , base_Y + 2 , color) gui.drawline(base_X , base_Y + 3 , base_X , base_Y + 4 , color) gui.drawline(base_X + 1 , base_Y + 4 , base_X + 4 , base_Y + 4 , color) gui.drawline(base_X + 4 , base_Y + 5 , base_X + 3 , base_Y + 6 , color) gui.drawline(base_X , base_Y + 6 , base_X + 2 , base_Y + 6 , color) end -- tの手動描画 num_disp_L["t"]=function() gui.drawline(base_X , base_Y + 2 , base_X + 1 , base_Y + 1 , color) gui.drawline(base_X + 1 , base_Y + 2 , base_X + 4 , base_Y + 2 , color) gui.drawline(base_X + 1 , base_Y + 3 , base_X + 1 , base_Y + 5 , color) gui.drawline(base_X + 2 , base_Y + 6 , base_X + 4 , base_Y + 6 , color) end -- uの手動描画 num_disp_L["u"]=function() gui.drawline(base_X , base_Y + 2 , base_X , base_Y + 5 , color) gui.drawline(base_X + 1 , base_Y + 6 , base_X + 2 , base_Y + 6 , color) gui.drawline(base_X + 3 , base_Y + 5 , base_X + 4 , base_Y + 6 , color) gui.drawline(base_X + 4 , base_Y + 5 , base_X + 4 , base_Y + 2 , color) end -- vの手動描画 num_disp_L["v"]=function() gui.drawline(base_X , base_Y + 2 , base_X , base_Y + 4 , color) gui.drawline(base_X + 1 , base_Y + 5 , base_X + 2 , base_Y + 6 , color) gui.drawline(base_X + 3 , base_Y + 5 , base_X + 4 , base_Y + 4 , color) gui.drawline(base_X + 4 , base_Y + 3 , base_X + 4 , base_Y + 2 , color) end -- wの手動描画 num_disp_L["w"]=function() gui.drawline(base_X , base_Y + 2 , base_X , base_Y + 5 , color) gui.drawline(base_X + 1 , base_Y + 6 , base_X + 2 , base_Y + 5 , color) gui.drawline(base_X + 2 , base_Y + 4 , base_X + 2 , base_Y + 2 , color) gui.drawline(base_X + 3 , base_Y + 6 , base_X + 4 , base_Y + 6 , color) gui.drawline(base_X + 4 , base_Y + 5 , base_X + 4 , base_Y + 2 , color) end -- xの手動描画 num_disp_L["x"]=function() gui.drawline(base_X , base_Y + 2 , base_X + 1 , base_Y + 3 , color) gui.drawline(base_X , base_Y + 6 , base_X + 4 , base_Y + 2 , color) gui.drawline(base_X + 3 , base_Y + 5 , base_X + 4 , base_Y + 6 , color) end -- yの手動描画 num_disp_L["y"]=function() gui.drawline(base_X , base_Y + 2 , base_X , base_Y + 3 , color) gui.drawline(base_X + 1 , base_Y + 4 , base_X + 3 , base_Y + 4 , color) gui.drawline(base_X + 4 , base_Y + 2 , base_X + 4 , base_Y + 5 , color) gui.drawline(base_X , base_Y + 6 , base_X + 3 , base_Y + 6 , color) end -- zの手動描画 num_disp_L["z"]=function() gui.drawline(base_X , base_Y + 2 , base_X + 4 , base_Y + 2 , color) gui.drawline(base_X + 3 , base_Y + 3 , base_X + 1 , base_Y + 5 , color) gui.drawline(base_X , base_Y + 6 , base_X + 4 , base_Y + 6 , color) end -- (大)の手動描画(半角スペース) num_disp_L[" "]=function() end -- ■■■■ここまで大きい文字の描画■■■■ -- ■■■■ここから小さい文字の描画■■■■ num_disp_S = {} -- 0(小)の手動描画 num_disp_S["0"]=function() gui.drawline(base_X , base_Y , base_X , base_Y + 3 , color) gui.drawline(base_X + 1 , base_Y , base_X + 2 , base_Y + 1 , color) gui.drawline(base_X + 2 , base_Y + 2 , base_X + 2 , base_Y + 3 , color) gui.drawline(base_X + 1 , base_Y + 4 , base_X + 2 , base_Y + 4 , color) end -- 1(小)の手動描画 num_disp_S["1"]=function() gui.drawline(base_X , base_Y , base_X + 1 , base_Y , color) gui.drawline(base_X + 1 , base_Y + 1 , base_X + 1 , base_Y + 4 , color) end -- 2(小)の手動描画 num_disp_S["2"]=function() gui.drawline(base_X , base_Y , base_X + 2 , base_Y , color) gui.drawline(base_X , base_Y + 3 , base_X + 2 , base_Y + 1 , color) gui.drawline(base_X , base_Y + 4 , base_X + 2 , base_Y + 4 , color) end -- 3(小)の手動描画 num_disp_S["3"]=function() gui.drawline(base_X , base_Y , base_X + 2 , base_Y , color) gui.drawline(base_X + 1 , base_Y + 2 , base_X + 2 , base_Y + 1 , color) gui.drawline(base_X + 2 , base_Y + 3 , base_X + 2 , base_Y + 4 , color) gui.drawline(base_X , base_Y + 4 , base_X + 1 , base_Y + 4 , color) end -- 4(小)の手動描画 num_disp_S["4"]=function() gui.drawline(base_X , base_Y , base_X , base_Y + 1 , color) gui.drawline(base_X , base_Y + 2 , base_X + 1 , base_Y + 2 , color) gui.drawline(base_X + 2 , base_Y , base_X + 2 , base_Y + 4 , color) end -- 5(小)の手動描画 num_disp_S["5"]=function() gui.drawline(base_X + 1 , base_Y , base_X + 2 , base_Y , color) gui.drawline(base_X , base_Y , base_X , base_Y + 1 , color) gui.drawline(base_X , base_Y + 2 , base_X + 1 , base_Y + 2 , color) gui.drawline(base_X + 2 , base_Y + 2 , base_X + 2 , base_Y + 3 , color) gui.drawline(base_X , base_Y + 4 , base_X + 1 , base_Y + 4 , color) end -- 6(小)の手動描画 num_disp_S["6"]=function() gui.drawline(base_X + 1 , base_Y , base_X + 2 , base_Y , color) gui.drawline(base_X , base_Y + 1 , base_X , base_Y + 4 , color) gui.drawline(base_X + 1 , base_Y + 2 , base_X + 2 , base_Y + 2 , color) gui.drawline(base_X + 1 , base_Y + 4 , base_X + 2 , base_Y + 3 , color) end -- 7(小)の手動描画 num_disp_S["7"]=function() gui.drawline(base_X , base_Y , base_X + 2 , base_Y , color) gui.drawline(base_X + 2 , base_Y + 1 , base_X + 1 , base_Y + 2 , color) gui.drawline(base_X + 1 , base_Y + 3 , base_X + 1 , base_Y + 4 , color) end -- 8(小)の手動描画 num_disp_S["8"]=function() gui.drawline(base_X , base_Y , base_X , base_Y + 1 , color) gui.drawline(base_X + 1 , base_Y , base_X + 2 , base_Y , color) gui.drawline(base_X + 2 , base_Y + 1 , base_X , base_Y + 3 , color) gui.drawline(base_X , base_Y + 4 , base_X + 1 , base_Y + 4 , color) gui.drawline(base_X + 2 , base_Y + 4 , base_X + 2 , base_Y + 3 , color) end -- 9(小)の手動描画 num_disp_S["9"]=function() gui.drawline(base_X + 1 , base_Y , base_X , base_Y + 1 , color) gui.drawline(base_X , base_Y + 2 , base_X + 1 , base_Y + 2 , color) gui.drawline(base_X + 2 , base_Y , base_X + 2 , base_Y + 3 , color) gui.drawline(base_X , base_Y + 4 , base_X + 1 , base_Y + 4 , color) end -- +(小)の手動描画 num_disp_S["+"]=function() gui.drawline(base_X + 1 , base_Y , base_X + 1 , base_Y + 4 , color) gui.drawline(base_X , base_Y + 2 , base_X + 2 , base_Y + 2 , color) end -- -(小)の手動描画(マイナス) num_disp_S["-"]=function() gui.drawline(base_X , base_Y + 2 , base_X + 2 , base_Y + 2 , color) end -- *(小)の手動描画 num_disp_S["*"]=function() gui.drawline(base_X + 1 , base_Y , base_X + 1 , base_Y + 4 , color) gui.drawline(base_X , base_Y + 1 , base_X + 2 , base_Y + 1 , color) gui.drawline(base_X , base_Y + 3 , base_X + 2 , base_Y + 3 , color) end -- /(小)の手動描画 num_disp_S["/"]=function() gui.drawline(base_X + 2 , base_Y , base_X + 2 , base_Y , color) gui.drawline(base_X + 2 , base_Y + 1 , base_X , base_Y + 3 , color) gui.drawline(base_X , base_Y + 4 , base_X , base_Y + 4 , color) end -- .(小)の手動描画 num_disp_S["."]=function() gui.drawline(base_X + 1 , base_Y + 4 , base_X + 1 , base_Y + 4 , color) end -- ,(小)の手動描画 num_disp_S[","]=function() gui.drawline(base_X + 1 , base_Y + 4 , base_X + 1 , base_Y + 4 , color) gui.drawline(base_X , base_Y + 5 , base_X , base_Y + 5 , color) end -- ?(小)の手動描画 num_disp_S["?"]=function() gui.drawline(base_X , base_Y , base_X + 1 , base_Y , color) gui.drawline(base_X + 2 , base_Y + 1 , base_X + 1 , base_Y + 2 , color) gui.drawline(base_X + 1 , base_Y + 4 , base_X + 1 , base_Y + 4 , color) end -- !(小)の手動描画 num_disp_S["!"]=function() gui.drawline(base_X + 1 , base_Y , base_X + 1 , base_Y + 2 , color) gui.drawline(base_X + 1 , base_Y + 4 , base_X + 1 , base_Y + 4 , color) end -- #(小)の手動描画 num_disp_S["#"]=function() gui.drawline(base_X , base_Y , base_X , base_Y + 4 , color) gui.drawline(base_X + 1 , base_Y + 1 , base_X + 1 , base_Y + 1 , color) gui.drawline(base_X + 1 , base_Y + 3 , base_X + 1 , base_Y + 3 , color) gui.drawline(base_X + 2 , base_Y , base_X + 2 , base_Y + 4 , color) end -- %(小)の手動描画 num_disp_S["%"]=function() gui.drawline(base_X , base_Y , base_X , base_Y , color) gui.drawline(base_X + 2 , base_Y , base_X + 2 , base_Y , color) gui.drawline(base_X + 2 , base_Y + 1 , base_X , base_Y + 3 , color) gui.drawline(base_X , base_Y + 4 , base_X , base_Y + 4 , color) gui.drawline(base_X + 2 , base_Y + 4 , base_X + 2 , base_Y + 4 , color) end -- ((小)の手動描画 num_disp_S["("]=function() gui.drawline(base_X + 1 , base_Y , base_X , base_Y + 1 , color) gui.drawline(base_X , base_Y + 2 , base_X , base_Y + 2 , color) gui.drawline(base_X , base_Y + 3 , base_X + 1 , base_Y + 4 , color) end -- )(小)の手動描画 num_disp_S[")"]=function() gui.drawline(base_X + 1 , base_Y , base_X + 2 , base_Y + 1 , color) gui.drawline(base_X + 2 , base_Y + 2 , base_X + 2 , base_Y + 2 , color) gui.drawline(base_X + 2 , base_Y + 3 , base_X + 1 , base_Y + 4 , color) end -- _(小)の手動描画 num_disp_S["_"]=function() gui.drawline(base_X , base_Y + 4 , base_X + 2 , base_Y + 4 , color) end -- :(小)の手動描画 num_disp_S[":"]=function() gui.drawline(base_X + 1 , base_Y + 1 , base_X + 1 , base_Y + 1 , color) gui.drawline(base_X + 1 , base_Y + 3 , base_X + 1 , base_Y + 3 , color) end -- ;(小)の手動描画 num_disp_S[";"]=function() gui.drawline(base_X + 1 , base_Y + 1 , base_X + 1 , base_Y + 1 , color) gui.drawline(base_X + 1 , base_Y + 3 , base_X , base_Y + 4 , color) end -- <(小)の手動描画 num_disp_S["<"]=function() gui.drawline(base_X + 2 , base_Y , base_X , base_Y + 2 , color) gui.drawline(base_X + 1 , base_Y + 3 , base_X + 2 , base_Y + 4 , color) end -- >(小)の手動描画 num_disp_S[">"]=function() gui.drawline(base_X , base_Y , base_X + 2 , base_Y + 2 , color) gui.drawline(base_X + 1 , base_Y + 3 , base_X , base_Y + 4 , color) end -- A(小)の手動描画 num_disp_S["A"]=function() gui.drawline(base_X + 1 , base_Y , base_X + 2 , base_Y , color) gui.drawline(base_X , base_Y + 1 , base_X , base_Y + 4 , color) gui.drawline(base_X + 1 , base_Y + 3 , base_X + 2 , base_Y + 4 , color) gui.drawline(base_X + 2 , base_Y + 3 , base_X + 2 , base_Y + 1 , color) end -- B(小)の手動描画 num_disp_S["B"]=function() gui.drawline(base_X , base_Y , base_X + 1 , base_Y , color) gui.drawline(base_X + 2 , base_Y , base_X + 2 , base_Y + 1 , color) gui.drawline(base_X , base_Y + 1 , base_X + 1 , base_Y + 2 , color) gui.drawline(base_X , base_Y + 2 , base_X , base_Y + 3 , color) gui.drawline(base_X , base_Y + 4 , base_X + 1 , base_Y + 4 , color) gui.drawline(base_X + 2 , base_Y + 4 , base_X + 2 , base_Y + 3 , color) end -- C(小)の手動描画 num_disp_S["C"]=function() gui.drawline(base_X + 1 , base_Y , base_X + 2 , base_Y , color) gui.drawline(base_X , base_Y + 1 , base_X , base_Y + 4 , color) gui.drawline(base_X + 1 , base_Y + 4 , base_X + 2 , base_Y + 4 , color) end -- D(小)の手動描画 num_disp_S["D"]=function() gui.drawline(base_X + 1 , base_Y , base_X + 2 , base_Y + 1 , color) gui.drawline(base_X , base_Y , base_X , base_Y + 4 , color) gui.drawline(base_X + 1 , base_Y + 4 , base_X + 2 , base_Y + 3 , color) gui.drawline(base_X + 2 , base_Y + 2 , base_X + 2 , base_Y + 2 , color) end -- E(小)の手動描画 num_disp_S["E"]=function() gui.drawline(base_X + 1 , base_Y , base_X + 2 , base_Y , color) gui.drawline(base_X , base_Y + 1 , base_X + 1 , base_Y + 2 , color) gui.drawline(base_X , base_Y + 2 , base_X , base_Y + 4 , color) gui.drawline(base_X + 1 , base_Y + 4 , base_X + 2 , base_Y + 4 , color) end -- F(小)の手動描画 num_disp_S["F"]=function() gui.drawline(base_X + 1 , base_Y , base_X + 2 , base_Y , color) gui.drawline(base_X , base_Y + 1 , base_X + 1 , base_Y + 2 , color) gui.drawline(base_X , base_Y + 2 , base_X , base_Y + 4 , color) end -- G(小)の手動描画 num_disp_S["G"]=function() gui.drawline(base_X + 1 , base_Y , base_X + 2 , base_Y , color) gui.drawline(base_X , base_Y + 1 , base_X , base_Y + 4 , color) gui.drawline(base_X + 1 , base_Y + 4 , base_X + 2 , base_Y + 4 , color) gui.drawline(base_X + 2 , base_Y + 3 , base_X + 2 , base_Y + 2 , color) end -- H(小)の手動描画 num_disp_S["H"]=function() gui.drawline(base_X , base_Y , base_X , base_Y + 4 , color) gui.drawline(base_X + 1 , base_Y + 2 , base_X + 1 , base_Y + 2 , color) gui.drawline(base_X + 2 , base_Y , base_X + 2 , base_Y + 4 , color) end -- I(小)の手動描画 num_disp_S["I"]=function() gui.drawline(base_X + 1, base_Y , base_X + 1 , base_Y + 4 , color) end -- J(小)の手動描画 num_disp_S["J"]=function() gui.drawline(base_X + 2 , base_Y , base_X + 2 , base_Y + 3 , color) gui.drawline(base_X + 1 , base_Y + 4 , base_X , base_Y + 4 , color) gui.drawline(base_X , base_Y + 4 , base_X , base_Y + 3 , color) end -- K(小)の手動描画 num_disp_S["K"]=function() gui.drawline(base_X , base_Y , base_X , base_Y + 4 , color) gui.drawline(base_X + 1 , base_Y + 2 , base_X , base_Y + 2 , color) gui.drawline(base_X + 2 , base_Y + 1 , base_X + 2 , base_Y , color) gui.drawline(base_X + 2 , base_Y + 3 , base_X + 2 , base_Y + 4 , color) end -- L(小)の手動描画 num_disp_S["L"]=function() gui.drawline(base_X , base_Y , base_X , base_Y + 4 , color) gui.drawline(base_X , base_Y + 4 , base_X + 2 , base_Y + 4 , color) end -- M(小)の手動描画 num_disp_S["M"]=function() gui.drawline(base_X , base_Y , base_X , base_Y + 4 , color) gui.drawline(base_X + 1 , base_Y + 1 , base_X + 1 , base_Y + 2 , color) gui.drawline(base_X + 2 , base_Y , base_X + 2 , base_Y + 4 , color) end -- N(小)の手動描画 num_disp_S["N"]=function() gui.drawline(base_X , base_Y , base_X , base_Y + 4 , color) gui.drawline(base_X + 1 , base_Y , base_X + 2 , base_Y + 1 , color) gui.drawline(base_X + 2 , base_Y + 2 , base_X + 2 , base_Y + 4 , color) end -- O(小)の手動描画 num_disp_S["O"]=function() gui.drawline(base_X + 1 , base_Y , base_X + 2 , base_Y , color) gui.drawline(base_X + 2 , base_Y + 1 , base_X + 2 , base_Y + 3 , color) gui.drawline(base_X + 1 , base_Y + 4 , base_X , base_Y + 4 , color) gui.drawline(base_X , base_Y + 3 , base_X , base_Y + 1 , color) end -- P(小)の手動描画 num_disp_S["P"]=function() gui.drawline(base_X , base_Y , base_X , base_Y + 4 , color) gui.drawline(base_X + 1 , base_Y , base_X + 2 , base_Y , color) gui.drawline(base_X + 2 , base_Y + 1 , base_X + 1 , base_Y + 2 , color) end -- Q(小)の手動描画 num_disp_S["Q"]=function() gui.drawline(base_X , base_Y , base_X , base_Y + 3 , color) gui.drawline(base_X + 1 , base_Y , base_X + 2 , base_Y , color) gui.drawline(base_X + 2 , base_Y + 1 , base_X + 2 , base_Y + 2 , color) gui.drawline(base_X , base_Y + 3 , base_X + 1 , base_Y + 3 , color) gui.drawline(base_X + 1 , base_Y + 4 , base_X + 2 , base_Y + 4 , color) end -- R(小)の手動描画 num_disp_S["R"]=function() gui.drawline(base_X , base_Y , base_X + 2 , base_Y , color) gui.drawline(base_X , base_Y + 1 , base_X , base_Y + 4 , color) gui.drawline(base_X + 2 , base_Y + 1 , base_X + 1 , base_Y + 2 , color) gui.drawline(base_X + 2 , base_Y + 3 , base_X + 2 , base_Y + 4 , color) end -- S(小)の手動描画 num_disp_S["S"]=function() gui.drawline(base_X + 1 , base_Y , base_X + 2 , base_Y , color) gui.drawline(base_X , base_Y + 1 , base_X , base_Y + 2 , color) gui.drawline(base_X + 1 , base_Y + 2 , base_X + 2 , base_Y + 2 , color) gui.drawline(base_X + 2 , base_Y + 3 , base_X + 2 , base_Y + 3 , color) gui.drawline(base_X + 1 , base_Y + 4 , base_X , base_Y + 4 , color) end -- T(小)の手動描画 num_disp_S["T"]=function() gui.drawline(base_X , base_Y , base_X + 2 , base_Y , color) gui.drawline(base_X + 1 , base_Y + 1 , base_X + 1 , base_Y + 4 , color) end -- U(小)の手動描画 num_disp_S["U"]=function() gui.drawline(base_X , base_Y , base_X , base_Y + 3 , color) gui.drawline(base_X , base_Y + 4 , base_X + 2 , base_Y + 4 , color) gui.drawline(base_X + 2 , base_Y + 3 , base_X + 2 , base_Y , color) end -- V(小)の手動描画 num_disp_S["V"]=function() gui.drawline(base_X , base_Y , base_X , base_Y + 3 , color) gui.drawline(base_X + 1 , base_Y + 4 , base_X + 2 , base_Y + 3 , color) gui.drawline(base_X + 2 , base_Y + 2 , base_X + 2 , base_Y , color) end -- W(小)の手動描画 num_disp_S["W"]=function() gui.drawline(base_X , base_Y , base_X , base_Y + 4 , color) gui.drawline(base_X + 1 , base_Y + 2 , base_X + 1 , base_Y + 3 , color) gui.drawline(base_X + 2 , base_Y , base_X + 2 , base_Y + 4 , color) end -- X(小)の手動描画 num_disp_S["X"]=function() gui.drawline(base_X , base_Y , base_X , base_Y , color) gui.drawline(base_X , base_Y + 1 , base_X + 2 , base_Y + 3 , color) gui.drawline(base_X + 2 , base_Y + 1 , base_X + 2 , base_Y , color) gui.drawline(base_X , base_Y + 3 , base_X , base_Y + 4 , color) gui.drawline(base_X + 2 , base_Y + 4 , base_X + 2 , base_Y + 4 , color) end -- Y(小)の手動描画 num_disp_S["Y"]=function() gui.drawline(base_X , base_Y , base_X , base_Y + 2 , color) gui.drawline(base_X + 2 , base_Y , base_X + 2 , base_Y + 2 , color) gui.drawline(base_X + 1 , base_Y + 3 , base_X + 1 , base_Y + 4 , color) end -- Z(小)の手動描画 num_disp_S["Z"]=function() gui.drawline(base_X , base_Y , base_X + 2 , base_Y , color) gui.drawline(base_X + 2 , base_Y + 1 , base_X , base_Y + 3 , color) gui.drawline(base_X , base_Y + 4 , base_X + 2 , base_Y + 4 , color) end -- (小)の手動描画(半角スペース) num_disp_S[" "]=function() end -- ■■■■ここまで小さい文字の描画■■■■ -- ■■■■ここから大きい文字(反転)■■■■ num_disp_L_inv = {} --★0(大)の手動描画(反転) num_disp_L_inv["0"]=function() gui.drawbox(base_X + 1 , base_Y + 1 , base_X + 3 , base_Y + 5 , color) gui.drawline(base_X + 4 , base_Y , base_X + 5 , base_Y , color) gui.drawline(base_X + 5 , base_Y + 1 , base_X + 5 , base_Y + 7 , color) gui.drawline(base_X + 1 , base_Y + 7 , base_X + 4 , base_Y + 7 , color) gui.drawline(base_X , base_Y + 7 , base_X , base_Y + 6 , color) end --★1(大)の手動描画(反転) num_disp_L_inv["1"]=function() gui.drawpixel(base_X , base_Y , color) gui.drawbox(base_X , base_Y + 1 , base_X + 1 , base_Y + 7 , color) gui.drawpixel(base_X + 2 , base_Y + 7 , color) gui.drawbox(base_X + 3 , base_Y , base_X + 5 , base_Y + 7 , color) gui.drawpixel(base_X + 2 , base_Y , color) end --★2(大)の手動描画(反転) num_disp_L_inv["2"]=function() gui.drawbox(base_X , base_Y + 1 , base_X + 3 , base_Y + 2 , color) gui.drawpixel(base_X , base_Y + 3 , color) gui.drawbox(base_X + 1 , base_Y + 4 , base_X + 4 , base_Y + 5 , color) gui.drawpixel(base_X + 4 , base_Y + 3 , color) gui.drawline(base_X + 4 , base_Y , base_X + 5 , base_Y , color) gui.drawline(base_X + 5 , base_Y + 1 , base_X + 5 , base_Y + 7 , color) gui.drawline(base_X , base_Y + 7 , base_X + 4 , base_Y + 7 , color) end --★3(大)の手動描画(反転) num_disp_L_inv["3"]=function() gui.drawbox(base_X , base_Y + 1 , base_X + 3 , base_Y + 2 , color) gui.drawpixel(base_X , base_Y + 3 , color) gui.drawbox(base_X , base_Y + 4 , base_X + 3 , base_Y + 5 , color) gui.drawline(base_X + 4 , base_Y , base_X + 5 , base_Y , color) gui.drawline(base_X + 5 , base_Y + 1 , base_X + 5 , base_Y + 7 , color) gui.drawline(base_X , base_Y + 7 , base_X + 4 , base_Y + 7 , color) gui.drawpixel(base_X + 4 , base_Y + 3 , color) gui.drawpixel(base_X + 4 , base_Y + 6 , color) end --★4(大)の手動描画(反転) num_disp_L_inv["4"]=function() gui.drawbox(base_X + 1 , base_Y , base_X + 3 , base_Y + 2 , color) gui.drawline(base_X , base_Y + 3 , base_X , base_Y + 7 , color) gui.drawbox(base_X + 1 , base_Y + 4 , base_X + 3 , base_Y + 7 , color) gui.drawline(base_X + 5, base_Y , base_X + 5 , base_Y + 7 , color) gui.drawpixel(base_X + 4 , base_Y + 7 , color) end --★5(大)の手動描画(反転) num_disp_L_inv["5"]=function() gui.drawline(base_X + 5, base_Y , base_X + 5 , base_Y + 7 , color) gui.drawline(base_X , base_Y + 7 , base_X + 4 , base_Y + 7 , color) gui.drawpixel(base_X + 4 , base_Y + 6 , color) gui.drawbox(base_X + 1 , base_Y + 1 , base_X + 4 , base_Y + 2 , color) gui.drawpixel(base_X + 4 , base_Y + 3 , color) gui.drawbox(base_X , base_Y + 4 , base_X + 3 , base_Y + 5 , color) end --★6(大)の手動描画(反転) num_disp_L_inv["6"]=function() gui.drawpixel(base_X , base_Y , color) gui.drawbox(base_X + 1 , base_Y + 1 , base_X + 4 , base_Y + 2 , color) gui.drawline(base_X + 5 , base_Y , base_X + 5 , base_Y + 7 , color) gui.drawbox(base_X + 1 , base_Y + 4 , base_X + 3 , base_Y + 5 , color) gui.drawline(base_X , base_Y + 6 , base_X , base_Y + 7 , color) gui.drawline(base_X + 1 , base_Y + 7 , base_X + 4 , base_Y + 7 , color) gui.drawpixel(base_X + 4 , base_Y + 6 , color) end --★7(大)の手動描画(反転) num_disp_L_inv["7"]=function() gui.drawbox(base_X , base_Y + 2 , base_X + 1 , base_Y + 7 , color) gui.drawline(base_X + 1 , base_Y + 1 , base_X + 3 , base_Y + 1 , color) gui.drawline(base_X + 2 , base_Y + 2 , base_X + 3 , base_Y + 2 , color) gui.drawpixel(base_X + 2 , base_Y + 3 , color) gui.drawpixel(base_X + 2 , base_Y + 7 , color) gui.drawbox(base_X + 3 , base_Y + 4 , base_X + 5 , base_Y + 7 , color) gui.drawline(base_X + 4 , base_Y + 3 , base_X + 5 , base_Y + 3 , color) gui.drawline(base_X + 5 , base_Y , base_X + 5 , base_Y + 2 , color) end --★8(大)の手動描画(反転) num_disp_L_inv["8"]=function() gui.drawpixel(base_X + 4 , base_Y , color) gui.drawbox(base_X + 1 , base_Y + 1 , base_X + 3 , base_Y + 2 , color) gui.drawpixel(base_X , base_Y + 3 , color) gui.drawpixel(base_X + 4 , base_Y + 3 , color) gui.drawbox(base_X + 1 , base_Y + 4 , base_X + 3 , base_Y + 5 , color) gui.drawpixel(base_X , base_Y + 6 , color) gui.drawline(base_X + 5 , base_Y , base_X + 5 , base_Y + 6 , color) gui.drawline(base_X , base_Y + 7 , base_X + 5 , base_Y + 7 , color) end --★9(大)の手動描画(反転) num_disp_L_inv["9"]=function() gui.drawpixel(base_X + 4 , base_Y , color) gui.drawbox(base_X + 1 , base_Y + 1 , base_X + 3 , base_Y + 2 , color) gui.drawpixel(base_X , base_Y + 3 , color) gui.drawbox(base_X , base_Y + 4 , base_X + 3 , base_Y + 5 , color) gui.drawline(base_X + 5 , base_Y , base_X + 5 , base_Y + 6 , color) gui.drawpixel(base_X + 4 , base_Y + 6 , color) gui.drawline(base_X , base_Y + 7 , base_X + 5 , base_Y + 7 , color) end --★ (大)の手動描画(半角スペース)(反転) num_disp_L_inv[" "]=function() gui.drawbox(base_X , base_Y , base_X + 5 , base_Y + 6 , "#E84820") end -- ■■■■ここまで大きい文字(反転)■■■■ -- ■■■■ここから小さい文字(反転)■■■■ num_disp_S_inv = {} -- 0(小)の手動描画(反転) num_disp_S_inv["0"]=function() gui.drawline(base_X + 1 , base_Y + 1 , base_X + 1 , base_Y + 3 , color) gui.drawline(base_X + 2 , base_Y , base_X + 3 , base_Y , color) gui.drawline(base_X + 3 , base_Y + 1 , base_X + 3 , base_Y + 4 , color) gui.drawline(base_X + 3 , base_Y + 5 , base_X + 1 , base_Y + 5 , color) gui.drawline(base_X , base_Y + 5 , base_X , base_Y + 4 , color) end -- 1(小)の手動描画(反転) num_disp_S_inv["1"]=function() gui.drawbox(base_X + 2 , base_Y , base_X + 3 , base_Y + 5 , color) gui.drawline(base_X + 1 , base_Y + 5 , base_X , base_Y + 5 , color) gui.drawline(base_X , base_Y + 4 , base_X , base_Y + 1 , color) end -- 2(小)の手動描画(反転) num_disp_S_inv["2"]=function() gui.drawline(base_X , base_Y + 1 , base_X , base_Y + 2 , color) gui.drawpixel(base_X + 1 , base_Y + 1 , color) gui.drawline(base_X + 2 , base_Y + 2 , base_X + 2 , base_Y + 3 , color) gui.drawpixel(base_X + 1 , base_Y + 3 , color) gui.drawline(base_X + 3 , base_Y , base_X + 3 , base_Y + 4 , color) gui.drawline(base_X + 3 , base_Y + 5 , base_X , base_Y + 5 , color) end -- 3(小)の手動描画(反転) num_disp_S_inv["3"]=function() gui.drawline(base_X , base_Y + 1 , base_X , base_Y + 3 , color) gui.drawpixel(base_X + 1 , base_Y + 1 , color) gui.drawpixel(base_X + 2 , base_Y + 2 , color) gui.drawpixel(base_X + 1 , base_Y + 3 , color) gui.drawline(base_X + 3 , base_Y , base_X + 3 , base_Y + 4 , color) gui.drawline(base_X + 3 , base_Y + 5 , base_X , base_Y + 5 , color) end -- 4(小)の手動描画(反転) num_disp_S_inv["4"]=function() gui.drawline(base_X + 1 , base_Y , base_X + 1 , base_Y + 1 , color) gui.drawbox(base_X , base_Y + 3 , base_X + 1 , base_Y + 4 , color) gui.drawline(base_X + 3 , base_Y , base_X + 3 , base_Y + 4 , color) gui.drawline(base_X + 3 , base_Y + 5 , base_X , base_Y + 5 , color) end -- 5(小)の手動描画(反転) num_disp_S_inv["5"]=function() gui.drawline(base_X + 1 , base_Y + 1 , base_X + 2 , base_Y + 1 , color) gui.drawline(base_X , base_Y + 3 , base_X + 1 , base_Y + 3 , color) gui.drawpixel(base_X + 2 , base_Y + 4 , color) gui.drawline(base_X + 3 , base_Y , base_X + 3 , base_Y + 4 , color) gui.drawline(base_X + 3 , base_Y + 5 , base_X , base_Y + 5 , color) end -- 6(小)の手動描画(反転) num_disp_S_inv["6"]=function() gui.drawpixel(base_X , base_Y , color) gui.drawline(base_X + 1 , base_Y + 1 , base_X + 2 , base_Y + 1 , color) gui.drawline(base_X + 1 , base_Y + 3 , base_X + 2 , base_Y + 4 , color) gui.drawline(base_X + 3 , base_Y , base_X + 3 , base_Y + 4 , color) gui.drawline(base_X + 3 , base_Y + 5 , base_X , base_Y + 5 , color) end -- 7(小)の手動描画(反転) num_disp_S_inv["7"]=function() gui.drawline(base_X , base_Y + 1 , base_X + 1 , base_Y + 1 , color) gui.drawline(base_X , base_Y + 2 , base_X , base_Y + 4 , color) gui.drawline(base_X + 2 , base_Y + 2 , base_X + 2 , base_Y + 4 , color) gui.drawline(base_X + 3 , base_Y , base_X + 3 , base_Y + 4 , color) gui.drawline(base_X + 3 , base_Y + 5 , base_X , base_Y + 5 , color) end -- 8(小)の手動描画(反転) num_disp_S_inv["8"]=function() gui.drawline(base_X , base_Y + 2 , base_X + 1 , base_Y + 1 , color) gui.drawline(base_X + 1 , base_Y + 3 , base_X + 2 , base_Y + 2 , color) gui.drawline(base_X + 3 , base_Y , base_X + 3 , base_Y + 4 , color) gui.drawline(base_X + 3 , base_Y + 5 , base_X , base_Y + 5 , color) end -- 9(小)の手動描画(反転) num_disp_S_inv["9"]=function() gui.drawline(base_X , base_Y , base_X + 1 , base_Y + 1 , color) gui.drawline(base_X , base_Y + 3 , base_X + 1 , base_Y + 3 , color) gui.drawpixel(base_X + 2 , base_Y + 4 , color) gui.drawline(base_X + 3 , base_Y , base_X + 3 , base_Y + 4 , color) gui.drawline(base_X + 3 , base_Y + 5 , base_X , base_Y + 5 , color) end -- (小)の手動描画(半角スペース)(反転) num_disp_S_inv[" "]=function() gui.drawbox(base_X , base_Y , base_X + 5 , base_Y + 6 , "#E84820") end -- ■■■■ここまで小さい文字(反転)■■■■ -- ここまでが文字を実際に描画する処理 -- ■■■■■■■■■■■■■■■■■■■■ -- ■■■■■■■■■■■■■■■■■■■■ -- 数字(大)を表示する関数の定義 -- 使い方:print_num(横座標 , 縦座標 , 表示させる数字 , 最大表示桁数 , 文字色) -- 指定した座標に残弾表示で使われているゲーム内フォントっぽい文字で値を指定した文字色で表示する。 -- 表示は右寄せにして桁数の変化で表示が左右に動かないようにするために -- 最大表示桁数を指定する。数字の左側の0は非表示(0の場合は0だけ表示)。 print_num = function(X , Y , gui_text , MAX , gui_color) base_X = X -- 横座標の変数Xをbase_Xに格納。文字描画の各処理でreturnを書くのを省くため base_Y = Y -- 縦座標の変数Yをbase_Yに格納。同上 color = gui_color -- 文字色の変数colorをgui_colorに格納 len_A = string.len(string.format("%d" , gui_text)) -- 表示させる数値の文字数をlen_Aに格納 hen_A = string.format("%d" , gui_text) -- 表示させる数値をhen_Aに格納 DSP_N = 0 -- 表示用変数DSPの初期化 MAX = MAX - string.len(string.format("%d" , gui_text)) -- 最大桁数から指定アドレスの値の桁数を引く base_X = base_X + 6 * MAX -- 桁数が足りない分だけ表示位置を右にズラす for i = 1 , len_A do -- 表示するの数字の桁数回だけ繰り返す DSP_N = string.sub(hen_A , i , i) -- hen_Aのi番目の文字をDSPに格納 num_disp_L[DSP_N]() -- 疑似switch関数のnum_disp_LでDSPの値に対応した文字を手動描画 base_X = base_X + 6 -- 表示位置を一文字分右に移動 end end -- ■■■■■■■■■■■■■■■■■■■■ -- 文字(大)を表示する関数の定義 -- 使い方:print_txt(横座標 , 縦座標 , 表示させる文字列 , 文字色) -- 指定した座標に指定した文字列を指定した文字色の大きい文字で表示させる print_txt = function(X , Y , gui_text , gui_color) base_X = X -- 横座標の変数Xをbase_Xに格納 base_Y = Y -- 縦座標の変数Yをbase_Yに格納 color = gui_color -- 文字色の変数colorをgui_colorに格納 len_A = string.len(gui_text) -- 表示させる文字列の文字数を取得 hen_A = gui_text -- 表示させる文字列をhen_Aに格納 DSP_N = 0 -- 表示用変数DSPの初期化 for i = 1 , len_A do -- 表示アドレスの値の桁数回だけ繰り返す DSP_N = string.sub(hen_A , i , i) -- hen_Aのi番目の文字をDSPに格納 num_disp_L[DSP_N]() -- 疑似switch関数のnum_disp_LでDSPの値に対応した文字を手動描画 base_X = base_X + 6 -- 表示位置を一文字分右に移動 end end -- ■■■■■■■■■■■■■■■■■■■■ -- 数字(小)を表示する関数の定義 -- 使い方:print_num_s(横座標 , 縦座標 , 表示させる数字 , 最大表示桁数 , 文字色) -- 指定した座標に敵の残りAPなどの表示で使われているゲーム内フォントっぽい文字で値を指定した文字色で表示する。 -- 表示は右寄せにして桁数の変化で表示が左右に動かないようにするために -- 最大表示桁数を指定する。数字の左側の0は非表示(0の場合は0だけ表示)。 print_num_s = function(X , Y , gui_text , MAX , gui_color) base_X = X -- 横座標の変数Xをbase_Xに格納 base_Y = Y -- 縦座標の変数Yをbase_Yに格納 color = gui_color -- 文字色の変数colorをgui_colorに格納 len_A = string.len(string.format("%d" , gui_text)) -- 表示させる数値の文字数を取得 hen_A = string.format("%d" , gui_text) -- 表示させる数値をhen_Aに格納 DSP_N = 0 -- 表示用変数DSPの初期化 MAX = MAX - string.len(string.format("%d" , gui_text)) -- 最大桁数から指定アドレスの値の桁数を引く base_X = base_X + 4 * MAX -- 桁数が足りない分だけ表示位置を右にズラす for i = 1 , len_A do -- 表示アドレスの値の桁数回だけ繰り返す DSP_N = string.sub(hen_A , i , i) -- hen_Aのi番目の文字をDSPに格納 num_disp_S[DSP_N]() -- 疑似switch関数のnum_disp_LでDSPの値に対応した文字を描画 base_X = base_X + 4 -- 表示位置を一文字分右に移動 end end -- ■■■■■■■■■■■■■■■■■■■■ -- 文字(小)を表示する関数の定義 -- 使い方:print_txt_s(横座標 , 縦座標 , 表示させる文字列 , 文字色) -- 指定した座標に指定した文字列を指定した文字色の小さい文字で表示させる print_txt_s = function(X , Y , gui_text , gui_color) base_X = X -- 横座標の変数Xをbase_Xに格納 base_Y = Y -- 縦座標の変数Yをbase_Yに格納 color = gui_color -- 文字色の変数colorをgui_colorに格納 len_A = string.len(gui_text) -- 表示させる文字列の文字数を取得 hen_A = gui_text -- 表示させる文字列をhen_Aに格納 DSP_N = 0 -- 表示用変数DSPの初期化 for i = 1 , len_A do -- 表示アドレスの値の桁数回だけ繰り返す DSP_N = string.sub(hen_A , i , i) -- hen_Aのi番目の文字をDSPに格納 num_disp_S[DSP_N]() -- 疑似switch関数のnum_disp_LでDSPの値に対応した文字を描画 base_X = base_X + 4 -- 表示位置を一文字分右に移動 end end -- ■■■■■■■■■■■■■■■■■■■■ -- 反転した数字(大)を表示する関数の定義 -- 使い方:print_num(横座標 , 縦座標 , 表示させる数値 , 文字以外の色) -- 指定した座標に通常の文字と表示・非表示部分を反転させた大きい文字を描画。指定した色で文字以外の部分が描画される print_num_inv = function(X , Y , gui_text , gui_color) base_X = X -- 横座標の変数Xをbase_Xに格納 base_Y = Y -- 縦座標の変数Yをbase_Yに格納 color = gui_color -- 文字色の変数colorをgui_colorに格納 len_A = string.len(gui_text) -- 表示させる数値の文字数を取得 hen_A = gui_text -- 表示させる数値をhen_Aに格納 gui.drawline(base_X -1 , base_Y - 1 , base_X - 1 , base_Y + 7 , gui_color) -- 表示領域の左端部分の描画 gui.drawline(base_X -1 , base_Y - 1 , base_X + len_A * 6 - 1 , base_Y - 1 , gui_color) -- 表示領域の上端部分の描画 DSP_N = 0 -- 表示用変数DSPの初期化 for i = 1 , len_A do -- 表示アドレスの値の桁数回だけ繰り返す DSP_N = string.sub(hen_A , i , i) -- hen_Aのi番目の文字をDSPに格納 num_disp_L_inv[DSP_N]() -- 疑似switch関数のnum_disp_LでDSPの値に対応した文字を描画 base_X = base_X + 6 -- 表示位置を一文字分右に移動 end end -- ■■■■■■■■■■■■■■■■■■■■ -- 反転した数字(大)を表示する関数の定義 -- 使い方:print_num(横座標 , 縦座標 , 表示させる数値 , 文字以外の色) -- 指定した座標に通常の文字と表示・非表示部分を反転させた小さい文字を描画。指定した色で文字以外の部分が描画される print_num_s_inv = function(X , Y , gui_text , gui_color) base_X = X -- 横座標の変数Xをbase_Xに格納 base_Y = Y -- 縦座標の変数Yをbase_Yに格納 color = gui_color -- 文字色の変数colorをgui_colorに格納 len_A = string.len(gui_text) -- 表示させる数値の文字数を取得 hen_A = gui_text -- 表示させる数値をhen_Aに格納 gui.drawline(base_X -1 , base_Y - 1 , base_X - 1 , base_Y + 5 , gui_color) -- 表示領域の左端部分の描画 gui.drawline(base_X -1 , base_Y - 1 , base_X + len_A * 4 - 1 , base_Y - 1 , gui_color) -- 表示領域の上端部分の描画 DSP_N = 0 -- 表示用変数DSPの初期化 for i = 1 , len_A do -- 表示アドレスの値の桁数回だけ繰り返す DSP_N = string.sub(hen_A , i , i) -- hen_Aのi番目の文字をDSPに格納 num_disp_S_inv[DSP_N]() -- 疑似switch関数のnum_disp_LでDSPの値に対応した文字を描画 base_X = base_X + 4 -- 表示位置を一文字分右に移動 end end -- ここまで関数の定義 -- ■■■■■■■■■■■■■■■■■■■■ -- ■■■■■■■■■■ -- メイン処理部分 -- 以降は↓の部分を毎フレーム描画後に繰り返す。 -- emu.registerbefore(function() -- 毎フレーム処理前に実行 emu.registerafter(function() -- 毎フレーム処理完了後に実行 -- ■■■■■■■■■■ -- MAのメニュー中のみ実行 if mode == 24 and AC == 3 then if memory.readbyte(0x1B0AE2) == 0x1 then memory.writebyte(0x1B0AE2 , 0x0) end if memory.readword(0x1AD608) == 0x10E then memory.writeword(0x44141 , 0x0) end if memory.readword(0x1AD608) == 0x3FF then memory.writeword(0x44141 , 0x1) end if memory.readword(0x1AD608) == 0xFC00 then memory.writeword(0x44141 , 0x1) end if memory.readword(0x1AD608) == 0xFF9B then memory.writeword(0x44141 , 0x0) end if memory.readword(0x1AD608) == 0x22 then memory.writeword(0x44141 , 0x0) end end -- ■■■■■■■■■■■■■■■■■■■■ -- ここから戦闘中の処理 -- GUIを戦闘中のみ表示させる -- ★勝ち負けの表示やコンテニュー表示の時は非表示にした方が良いかなぁ? mode = memory.readword(add_mode[AC]) -- 不明値の読み込み if mode > 24 and memory.readword(add_event_timer[AC]) > 0 then -- 不明値とタイマーから戦闘中と判断したら処理開始 -- 以降、不明値がガレージ以外の値、イベントタイマーが0より大きいなら戦闘中と判断して処理開始 -- ■■■■■■■■■■ -- 内部タイマー表示 -- gui.text(3,2,string.format("%08d",memory.readdword(add_ingame_timer[AC]))) -- 内部タイマー表示 -- ■■■■■■■■■■■■■■■■■■■■ -- ★練習用、もしくは調査用の改造コード代わり -- 敵ジャミング強制装備 -- memory.writeword(add_jam[AC] , 0x8) -- アリーナ敵無力化 --[[ memory.writebyte(add_2P_motion_ID[AC] , 0x38) -- 動作ID:地上ブレーキング memory.writebyte(add_2P_motion_unknown[AC] , 0xC0) -- 動作関連不明値:空中 memory.writebyte(add_2P_reload_remain[AC] , 0xFF) -- 残りリロード:255 memory.writeword(add_2P_blade_ATKpower[AC] , 0x0000) -- ブレ攻撃力:0 ]] --[[ -- MA敵無力化 memory.writebyte(0x1D85E5 , 0x38) -- 動作ID:地上ブレーキング memory.writebyte(0x1D85E6 , 0xC0) -- 動作関連不明値:空中 memory.writebyte(0x1D85E8 , 0xFF) -- 残りリロード:255 -- PP敵無力化:MAで有効化しているとバグる memory.writebyte(0x1A38E4 , 0x38) memory.writebyte(0x1A38E5 , 0xC0) memory.writebyte(0x1A38E7 , 0xFF) ]] -- ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ -- フレーム更新時にのみ実行する処理 --[[]] -- フレーム更新確認用 if ingame_timer < memory.readdword(add_ingame_timer[AC]) -- 内部カウンタが変化したか確認 then -- タイマー更新時の処理 else -- タイマーが更新されなかった場合の処理 end -- ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ -- 座標・実速度・速度値表示(小さい文字) --[[ print_txt_s(237 , 222 , "X: , , " , "#FFFF00") --X print_txt_s(237 , 228 , "Y: , , " , "#FFFF00") --Y print_txt_s(237 , 234 , "Z: , , " , "#FFFF00") --Z print_num_s(245 , 222 , memory.readwordsigned(add_x_1P[AC]) , 6 , "#FFFF00") --X座標 print_num_s(245 , 228 , memory.readwordsigned(add_y_1P[AC]) , 6 , "#FFFF00") --Y座標 print_num_s(245 , 234 , memory.readwordsigned(add_z_1P[AC]) , 6 , "#FFFF00") --Z座標 print_num_s(273 , 222 , math.abs(memory.readwordsigned(add_x_1P[AC]) - --X実速度(差分) memory.readwordsigned(add_x_pre_1P[AC])) , 4 , "#FFFF00") print_num_s(273 , 228 , math.abs(memory.readwordsigned(add_y_1P[AC]) - --Y実速度(差分) memory.readwordsigned(add_y_pre_1P[AC])) , 4 , "#FFFF00") print_num_s(273 , 234 , math.abs(memory.readwordsigned(add_z_1P[AC]) - --Z実速度(差分) memory.readwordsigned(add_z_pre_1P[AC])) , 4 , "#FFFF00") -- print_num_s(273 , 222 , memory.readwordsigned(0x1A37CC) , 4 , "#FFFF00") --X実速度(差分) -- print_num_s(273 , 228 , memory.readwordsigned(0x1A37BC) , 4 , "#FFFF00") --Y実速度(差分) -- print_num_s(273 , 234 , memory.readwordsigned(0x1A37C4) , 4 , "#FFFF00") --Z実速度(差分) print_num_s(293 , 222 , memory.readwordsigned(0x1A3808) , 6 , "#FFFF00") --X速度値 print_num_s(293 , 228 , memory.readwordsigned(0x1A3804) , 6 , "#FFFF00") --Y速度値 print_num_s(293 , 234 , memory.readwordsigned(0x1A3806) , 6 , "#FFFF00") --Z速度値 print_txt_s(245 , 216 , "XY_SPD: ,SPD:" , "#FFFF00") --水平速度と速度 print_num_s(261 , 216 , math.sqrt((memory.readwordsigned(add_y_pre_1P[AC]) - memory.readwordsigned(add_y_1P[AC])) ^2 + (memory.readwordsigned(add_x_pre_1P[AC]) - memory.readwordsigned(add_x_1P[AC])) ^2 ) , 6 , "#FFFF00") print_num_s(293 , 216 , math.sqrt( (memory.readwordsigned(add_y_pre_1P[AC]) - memory.readwordsigned(add_y_1P[AC])) ^2 + (memory.readwordsigned(add_x_pre_1P[AC]) - memory.readwordsigned(add_x_1P[AC])) ^2 + (memory.readwordsigned(add_z_pre_1P[AC]) - memory.readwordsigned(add_z_1P[AC])) ^2 ) , 6 , "#FFFF00") ]] -- 座標・実速度・速度値表示(大きい文字) --[[]] print_txt(197 , 216 , "X: , , " , "#FFFF00") --X print_txt(197 , 224 , "Y: , , " , "#FFFF00") --Y print_txt(197 , 232 , "Z: , , " , "#FFFF00") --Z print_num(209 , 216 , memory.readwordsigned(add_x_1P[AC]) , 6 , "#FFFF00") --X座標 print_num(209 , 224 , memory.readwordsigned(add_y_1P[AC]) , 6 , "#FFFF00") --Y座標 print_num(209 , 232 , memory.readwordsigned(add_z_1P[AC]) , 6 , "#FFFF00") --Z座標 print_num(251 , 216 , math.abs(memory.readwordsigned(add_x_1P[AC]) - --X実速度(差分) memory.readwordsigned(add_x_pre_1P[AC])) , 4 , "#FFFF00") print_num(251 , 224 , math.abs(memory.readwordsigned(add_y_1P[AC]) - --Y実速度(差分) memory.readwordsigned(add_y_pre_1P[AC])) , 4 , "#FFFF00") print_num(251 , 232 , math.abs(memory.readwordsigned(add_z_1P[AC]) - --Z実速度(差分) memory.readwordsigned(add_z_pre_1P[AC])) , 4 , "#FFFF00") print_num(281 , 216 , memory.readwordsigned(add_x_spd_1P[AC]) , 6 , "#FFFF00") --X速度値 print_num(281 , 224 , memory.readwordsigned(add_y_spd_1P[AC]) , 6 , "#FFFF00") --Y速度値 print_num(281 , 232 , memory.readwordsigned(add_z_spd_1P[AC]) , 6 , "#FFFF00") --Z速度値 print_txt(209 , 208 , "XY_SPD: ,SPD:" , "#FFFF00") --水平速度と速度 print_num(233 , 208 , math.sqrt((memory.readwordsigned(add_y_pre_1P[AC]) - memory.readwordsigned(add_y_1P[AC])) ^2 + (memory.readwordsigned(add_x_pre_1P[AC]) - memory.readwordsigned(add_x_1P[AC])) ^2 ) , 6 , "#FFFF00") print_num(281 , 208 , math.sqrt( (memory.readwordsigned(add_y_pre_1P[AC]) - memory.readwordsigned(add_y_1P[AC])) ^2 + (memory.readwordsigned(add_x_pre_1P[AC]) - memory.readwordsigned(add_x_1P[AC])) ^2 + (memory.readwordsigned(add_z_pre_1P[AC]) - memory.readwordsigned(add_z_1P[AC])) ^2 ) , 6 , "#FFFF00") -- ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ -- レーダー上に水平ロック範囲表示:緑=エイム範囲(1次ロック)、赤=ロック範囲(2次ロック) -- ★気が向いたら作り直す? -- 直角三角形×2で描画しちゃったので範囲が広がると正常な範囲が描けないね -- とりあえず普段使う分には問題無いのでひとまず放置! -- レーダー無しでレンジが0の場合、ロック範囲表示を無効化させる(0除算してフリーズしてしまう) if memory.readword(add_radar_range_1P[AC]) ~= 0 then -- ★ロック基準位置のズレを調整。詳細な値が不明なのでテキトーに lock_gap = 521 / memory.readword(add_radar_range_1P[AC]) * 23 -- この521って値は辻褄合わせのためのテキトーな値 height_ALR = memory.readword(add_lock_range_1P[AC] + memory.readbyte(add_wep_curt_1P[AC]) * 0x3E) / -- ロック距離とレーダー範囲の比率を memory.readword(add_radar_range_1P[AC]) * 23 -- 表示枠に換算した値を作る aim_area_L_X = lock_area_A_X - 2 * (2 * height_ALR) * math.tan(math.rad(memory.readword(add_1stLockH_1P[AC] + -- エイム範囲 memory.readbyte(add_wep_curt_1P[AC]) * 0x3E) * 0.087890625 / 2) / 2) -- エイム範囲の左の頂点のX座標計算 aim_area_L_Y = lock_area_A_Y - height_ALR -- エイム範囲の左の頂点のY座標計算 aim_area_R_X = lock_area_A_X + 2 * (2 * height_ALR) * math.tan(math.rad(memory.readword(add_1stLockH_1P[AC] + -- エイム範囲 memory.readbyte(add_wep_curt_1P[AC]) * 0x3E) * 0.087890625 / 2) / 2) -- エイム範囲の右の頂点のX座標計算 aim_area_R_Y = lock_area_A_Y - height_ALR -- エイム範囲の右の頂点のY座標計算 lock_area_L_X = lock_area_A_X - 2 * (2 * height_ALR) * math.tan(math.rad(memory.readword(add_2ndLockH_1P[AC] + -- ロック範囲 memory.readbyte(add_wep_curt_1P[AC]) * 0x3E) * 0.087890625 / 2) / 2) -- ロック範囲の左の頂点のX座標計算 lock_area_L_Y = lock_area_A_Y - height_ALR -- ロック範囲の左の頂点のY座標計算 lock_area_R_X = lock_area_A_X + 2 * (2 * height_ALR) * math.tan(math.rad(memory.readword(add_2ndLockH_1P[AC] + -- ロック範囲 memory.readbyte(add_wep_curt_1P[AC]) * 0x3E) * 0.087890625 / 2) / 2) -- ロック範囲の右の頂点のX座標計算 lock_area_R_Y = lock_area_A_Y - height_ALR -- ロック範囲の右の頂点のY座標計算 -- エイム・ロック範囲を描画。ロック範囲を優先して表示するので先にエイム範囲から描画する gui.drawline(lock_area_A_X , lock_area_A_Y , aim_area_L_X , aim_area_L_Y , "#20E848") -- エイム範囲:頂角から左の頂点へ gui.drawline(lock_area_A_X , lock_area_A_Y , aim_area_R_X , aim_area_R_Y , "#20E848") -- エイム範囲:頂角から右の頂点へ gui.drawline(aim_area_L_X , aim_area_L_Y , aim_area_R_X , aim_area_R_Y , "#20E848") -- エイム範囲:左の頂点から右の頂点へ gui.drawline(lock_area_A_X , lock_area_A_Y , lock_area_L_X , lock_area_L_Y , "#E84820") -- ロック範囲:頂角から左の頂点へ gui.drawline(lock_area_A_X , lock_area_A_Y , lock_area_R_X , lock_area_R_Y , "#E84820") -- ロック範囲:頂角から右の頂点へ gui.drawline(lock_area_L_X , lock_area_L_Y , lock_area_R_X , lock_area_R_Y , "#E84820") -- ロック範囲:左の頂点から右の頂点へ -- ■■■■■■■■■■ -- 上下角度計描画 -- 何色で表示したものか -- gui.drawcircle(25, 178 , 25 , "#FFFFFF") -- 未実装なのか何か間違えているのかわからんけど、円描画はエラーが出て使えんね… gui.drawline(gonime_base_X , gonime_top_Y , gonime_base_X , gonime_btm_Y , "#E0E000") -- 縦線 E84820→4040F0 gui.drawline(gonime_base_X , gonime_base_Y , gonime_u_675_X , gonime_u_675_Y , "#E0E000") -- 上限界 F8F800 gui.drawline(gonime_base_X , gonime_base_Y , gonime_d_675_X , gonime_d_675_Y , "#E0E000") -- 下限界 gui.drawline(gonime_base_X , gonime_top_Y , gonime_u_675_X , gonime_u_675_Y , "#E0E000") -- 上90度〜67.50度 gui.drawline(gonime_base_X , gonime_btm_Y , gonime_d_675_X , gonime_d_675_Y , "#E0E000") -- 下90度〜67.50度 gui.drawline(gonime_u_675_X , gonime_u_675_Y , gonime_u_45_X , gonime_u_45_Y , "#20A820") -- 上67.50度〜45度 gui.drawline(gonime_d_675_X , gonime_d_675_Y , gonime_d_45_X , gonime_d_45_Y , "#20A820") -- 下67.50度〜45度 gui.drawline(gonime_u_45_X , gonime_u_45_Y , gonime_u_225_X , gonime_u_225_Y , "#20A820") -- 上45度〜22.5度 gui.drawline(gonime_d_45_X , gonime_d_45_Y , gonime_d_225_X , gonime_d_225_Y , "#20A820") -- 下45度〜22.5度 gui.drawline(gonime_u_225_X , gonime_u_225_Y , gonime_mdl_X , gonime_base_Y , "#20A820") -- 上22.5度〜0度 gui.drawline(gonime_d_225_X , gonime_d_225_Y , gonime_mdl_X , gonime_base_Y , "#20A820") -- 下22.5度〜0度 -- 半円に隠れるような四角い枠を表示。正方形の半分ではない(少しだけ縦に潰す) gui.drawline(gonime_base_X + 12 , gonime_top_Y + 2 , gonime_mdl_X - 1 , gonime_top_Y + 2 , "#20A820") -- 枠線(上〜右上) gui.drawline(gonime_mdl_X - 1 , gonime_top_Y + 2 , gonime_mdl_X - 1 , gonime_base_Y - 10 , "#20A820") -- 枠線(右上〜中央) gui.drawline(gonime_mdl_X - 1 , gonime_base_Y + 10 , gonime_mdl_X - 1 , gonime_btm_Y - 2 , "#20A820") -- 枠線(中央〜右下) gui.drawline(gonime_mdl_X - 1 , gonime_btm_Y - 2 , gonime_base_X + 12 , gonime_btm_Y - 2 , "#20A820") -- 枠線(右下〜下) -- 上下角度によって回転する線を描画。エイム・ロック範囲の先と兼用なので座標計算は無効化しちゃダメ! -- ロック範囲を表示する際は邪魔。長さは武器の射程に変えた方が良いかも? gonime_line_X = gonime_base_X + (height_ALR) * math.cos((memory.readwordsigned(add_turn_UD_1P[AC]) * 0.087890625) * math.pi / 180) -- 線の先のX座標を計算 gonime_line_Y = gonime_base_Y + (height_ALR) * math.sin((memory.readwordsigned(add_turn_UD_1P[AC]) * 0.087890625) * math.pi / 180) -- 線の先のY座標を計算 -- 上下エイム範囲を表示。ロック範囲を優先して表示するので先にエイム範囲から描画する aim_line_u_X = gonime_base_X + (height_ALR ) * -- エイム範囲の上側X座標計算 math.cos(((memory.readwordsigned(add_turn_UD_1P[AC]) - memory.readwordsigned(add_1stLockV_1P[AC] + memory.readbyte(add_wep_curt_1P[AC]) * 0x3E) / 1) * 0.087890625) * math.pi / 180) aim_line_u_Y = gonime_base_Y + (height_ALR ) * -- エイム範囲の上側Y座標計算 math.sin(((memory.readwordsigned(add_turn_UD_1P[AC]) - memory.readwordsigned(add_1stLockV_1P[AC] + memory.readbyte(add_wep_curt_1P[AC]) * 0x3E) / 1) * 0.087890625) * math.pi / 180) aim_line_d_X = gonime_base_X + (height_ALR ) * -- エイム範囲の下側X座標計算 math.cos(((memory.readwordsigned(add_turn_UD_1P[AC]) + memory.readwordsigned(add_1stLockV_1P[AC] + memory.readbyte(add_wep_curt_1P[AC]) * 0x3E) / 1) * 0.087890625) * math.pi / 180) aim_line_d_Y = gonime_base_Y + (height_ALR ) * -- エイム範囲の下側X座標計算 math.sin(((memory.readwordsigned(add_turn_UD_1P[AC]) + memory.readwordsigned(add_1stLockV_1P[AC] + memory.readbyte(add_wep_curt_1P[AC]) * 0x3E) / 1) * 0.087890625) * math.pi / 180) gui.drawline(gonime_base_X + lock_gap , gonime_base_Y , aim_line_u_X + lock_gap , aim_line_u_Y , "#20E848") -- エイム範囲の上側描画 gui.drawline(gonime_base_X + lock_gap , gonime_base_Y , aim_line_d_X + lock_gap , aim_line_d_Y , "#20E848") -- エイム範囲の下側描画 gui.drawline(aim_line_u_X + lock_gap , aim_line_u_Y , aim_line_d_X + lock_gap , aim_line_d_Y , "#20E848") -- エイム範囲上下を結ぶ線を描画 -- ★上下は直接結ぶ?それとも向いた方向にロック距離の分だけ伸ばした線とそれぞれ繋げる? --  水平と違って垂直方向は特殊で面倒だからとりあえず放置! -- 上下ロック範囲を表示 lock_line_u_X = gonime_base_X + (height_ALR ) * -- ロック範囲の上側X座標計算 math.cos(((memory.readwordsigned(add_turn_UD_1P[AC]) - memory.readwordsigned(add_2ndLockV_1P[AC] + memory.readbyte(add_wep_curt_1P[AC]) * 0x3E) / 1) * 0.087890625) * math.pi / 180) lock_line_u_Y = gonime_base_Y + (height_ALR ) * -- ロック範囲の上側Y座標計算 math.sin(((memory.readwordsigned(add_turn_UD_1P[AC]) - memory.readwordsigned(add_2ndLockV_1P[AC] + memory.readbyte(add_wep_curt_1P[AC]) * 0x3E) / 1) * 0.087890625) * math.pi / 180) lock_line_d_X = gonime_base_X + (height_ALR ) * -- ロック範囲の下側X座標計算 math.cos(((memory.readwordsigned(add_turn_UD_1P[AC]) + memory.readwordsigned(add_2ndLockV_1P[AC] + memory.readbyte(add_wep_curt_1P[AC]) * 0x3E) / 1) * 0.087890625) * math.pi / 180) lock_line_d_Y = gonime_base_Y + (height_ALR ) * -- ロック範囲の下側Y座標計算 math.sin(((memory.readwordsigned(add_turn_UD_1P[AC]) + memory.readwordsigned(add_2ndLockV_1P[AC] + memory.readbyte(add_wep_curt_1P[AC]) * 0x3E) / 1) * 0.087890625) * math.pi / 180) gui.drawline(gonime_base_X + lock_gap , gonime_base_Y , lock_line_u_X + lock_gap , lock_line_u_Y , "#E84820") -- ロック範囲上側描画 gui.drawline(gonime_base_X + lock_gap , gonime_base_Y , lock_line_d_X + lock_gap , lock_line_d_Y , "#E84820") -- ロック範囲下側描画 gui.drawline(lock_line_u_X + lock_gap , lock_line_u_Y , lock_line_d_X + lock_gap , lock_line_d_Y , "#E84820") -- ロック範囲上下を結ぶ線を描画 -- ■■■★★★作成中★★★■■■上下ロック範囲に敵影表示 -- atan(高さ/底辺) * math.pi / 180 dist_H_1P2P = math.sqrt( -- 1Pと2Pの水平の直線距離を求める。これが底辺。高度差が高さとなる ( memory.readwordsigned(add_x_1P[AC]) - memory.readwordsigned(add_x_2P[AC]) )^2 + ( memory.readwordsigned(add_y_1P[AC]) - memory.readwordsigned(add_y_2P[AC]) )^2 ) diff_V_1P2P = memory.readwordsigned(add_z_1P[AC]) - memory.readwordsigned(add_z_2P[AC]) -- 1Pと2Pの高度差を求める ene_V_XY = 0 -- 垂直レーダーの敵影横座標(XY軸の直線距離) ene_V_Z = 0 -- 垂直レーダーの敵影縦座標 ene_V_XY = dist_H_1P2P / memory.readwordsigned(add_radar_range_1P[AC]) * 23 -- 垂直レーダーの敵影横座標(XY軸の直線距離) ene_V_Z = diff_V_1P2P / memory.readwordsigned(add_radar_range_1P[AC]) * 23 -- 高度差/レーダー範囲を垂直レーダーの敵影縦座標に -- ■■■■■■■■■■ -- 垂直レーダーに敵影描画。 -- ★現状、向きは考慮せず後ろにいる場合も前にいるものとして表示しちゃってる -- ★レーダーみたいに高度差に応じて色や三角形の向きを変えるのは大変そうなのでやめとこう -- ★将来的には敵にもロック範囲を表示出来たらなぁ… if dist_H_1P2P <= memory.readword(add_radar_range_1P[AC]) -- 水平直線距離がレーダ範囲以内の場合 then -- 以下の描画を行う gui.drawline(gonime_base_X + ene_V_XY , gonime_base_Y - ene_V_Z , -- 三角形の右側 gonime_base_X + ene_V_XY , gonime_base_Y - ene_V_Z , "#00FFFF") gui.drawline(gonime_base_X + ene_V_XY - 1 , gonime_base_Y - ene_V_Z - 1 , -- 三角形の中心 gonime_base_X + ene_V_XY - 1 , gonime_base_Y - ene_V_Z + 1 , "#00FFFF") gui.drawline(gonime_base_X + ene_V_XY - 2 , gonime_base_Y - ene_V_Z - 2 , -- 三角形の左側 gonime_base_X + ene_V_XY - 2 , gonime_base_Y - ene_V_Z + 2 , "#00FFFF") else end -- ↑■■■ここまでレーダーありだった場合の処理 else -- レーダー無しだった場合の処理 end -- ここまで -- ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ -- 機体角度表示 -- 左右角度 -- フレーム更新確認用 key_input_1P = joypad.get(1) -- 1Pのキー入力をテーブル型の変数に読み込む if ingame_timer ~= memory.readdword(add_ingame_timer[AC]) -- 内部カウンタが変化したか確認 then -- タイマー更新時の処理 if turn_LR_1P ~= memory.readwordsigned(add_turn_LR_1P[AC]) -- 左右角度が変化したか確認 then -- 差分を求める turn_LR_diff_1P = math.abs(turn_LR_1P - memory.readwordsigned(add_turn_LR_1P[AC])) dig_1P_count = 0 elseif key_input_1P["left"] == true or key_input_1P["right"] == true or memory.readbyte(add_pause[AC]) == 0 then else dig_1P_count = dig_1P_count + 1 -- count +1 end turn_LR_1P = memory.readwordsigned(add_turn_LR_1P[AC]) -- 処理後に現在の値を読み込む(タイマー更新時のみ更新) else -- タイマーが更新されなかった場合の処理(何もしない場合は削除) end if dig_1P_count > 2 then turn_LR_diff_1P = 0 dig_1P_count = 0 else end --[[ -- 機体角度表示(小さい文字) print_txt_s(2 , 228 , "ANG_LR: , " , "#FFFF00") --左右角度と差分 print_num_s(30 , 228 , memory.readwordsigned(add_turn_LR_1P[AC]) , 6 , "#FFFF00") --左右角度 print_num_s(58 , 228 , turn_LR_diff_1P , 4 , "#FFFF00") --左右角度差分 print_txt_s(2 , 234 , "ANG_UD: , " , "#FFFF00") --上下角度と実角度 print_num_s(30 , 234 , memory.readwordsigned(add_turn_UD_1P[AC]) , 6 , "#FFFF00") --上下角度 print_num_s(58 , 234 , memory.readwordsigned(add_turn_UD_1P[AC]) * 0.087890625 , 4 , "#FFFF00") --実角度 ]] --[[]] -- 機体角度表示(大きい文字) print_txt(2 , 224 , "ANG_LR: ," , "#FFFF00") --左右角度と差分 print_num(44 , 224 , memory.readwordsigned(add_turn_LR_1P[AC]) % 4096 , 4 , "#FFFF00") --左右角度 print_num(74 , 224 , turn_LR_diff_1P , 4 , "#FFFF00") --左右角度差分 print_txt(2 , 232 , "ANG_UD: ," , "#FFFF00") --上下角度と実角度 print_num(44 , 232 , memory.readwordsigned(add_turn_UD_1P[AC]) , 4 , "#FFFF00") --上下角度 print_num(74 , 232 , memory.readwordsigned(add_turn_UD_1P[AC]) * 0.087890625 , 4 , "#FFFF00") --実角度 -- ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ -- レーダーの周囲に方位計を表示(小さい文字) --[[ print_txt_s((compass_cen_X + compass_LG * math.cos((memory.readword(add_turn_LR_1P[AC]) % 4096 * 0.087890625 - 90) * math.pi / 180) - 1) , (compass_cen_Y + compass_LG * math.sin((memory.readword(add_turn_LR_1P[AC]) % 4096 * 0.087890625 - 90) * math.pi / 180) - 3) , "N" , "#E84820") print_txt_s((compass_cen_X + compass_LG * math.cos((memory.readword(add_turn_LR_1P[AC]) % 4096 * 0.087890625 - 0) * math.pi / 180) - 1) , (compass_cen_Y + compass_LG * math.sin((memory.readword(add_turn_LR_1P[AC]) % 4096 * 0.087890625 - 0) * math.pi / 180) - 3) , "E" , "#FFFFFF") print_txt_s((compass_cen_X + compass_LG * math.cos((memory.readword(add_turn_LR_1P[AC]) % 4096 * 0.087890625 + 90) * math.pi / 180) - 1) , (compass_cen_Y + compass_LG * math.sin((memory.readword(add_turn_LR_1P[AC]) % 4096 * 0.087890625 + 90) * math.pi / 180) - 3) , "S" , "#38F8F8") print_txt_s((compass_cen_X + compass_LG * math.cos((memory.readword(add_turn_LR_1P[AC]) % 4096 * 0.087890625 + 180) * math.pi / 180) - 1) , (compass_cen_Y + compass_LG * math.sin((memory.readword(add_turn_LR_1P[AC]) % 4096 * 0.087890625 + 180) * math.pi / 180) - 3) , "W" , "#FFFFFF") ]] -- レーダーの周囲に方位計を表示(大きい文字) --[[]] print_txt((compass_cen_X + compass_LG * math.cos((memory.readword(add_turn_LR_1P[AC]) % 4096 * 0.087890625 - 90) * math.pi / 180) - 1) , (compass_cen_Y + compass_LG * math.sin((memory.readword(add_turn_LR_1P[AC]) % 4096 * 0.087890625 - 90) * math.pi / 180) - 3) , "N" , "#E84820") print_txt((compass_cen_X + compass_LG * math.cos((memory.readword(add_turn_LR_1P[AC]) % 4096 * 0.087890625 - 0) * math.pi / 180) - 1) , (compass_cen_Y + compass_LG * math.sin((memory.readword(add_turn_LR_1P[AC]) % 4096 * 0.087890625 - 0) * math.pi / 180) - 3) , "E" , "#FFFFFF") print_txt((compass_cen_X + compass_LG * math.cos((memory.readword(add_turn_LR_1P[AC]) % 4096 * 0.087890625 + 90) * math.pi / 180) - 1) , (compass_cen_Y + compass_LG * math.sin((memory.readword(add_turn_LR_1P[AC]) % 4096 * 0.087890625 + 90) * math.pi / 180) - 3) , "S" , "#38F8F8") print_txt((compass_cen_X + compass_LG * math.cos((memory.readword(add_turn_LR_1P[AC]) % 4096 * 0.087890625 + 180) * math.pi / 180) - 1) , (compass_cen_Y + compass_LG * math.sin((memory.readword(add_turn_LR_1P[AC]) % 4096 * 0.087890625 + 180) * math.pi / 180) - 3) , "W" , "#FFFFFF") -- ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ -- ジェネ残量を表示 -- ジェネ残量(小さい文字) -- print_num_s(3 , 205 , memory.readword(add_EN_curt_1P[AC]) , 5 , "#FFFF00") -- ジェネ残量(大きい文字) print_num(1 , 205 , memory.readword(add_EN_curt_1P[AC]) , 5 , "#FFFF00") -- ジェネ残量差分 -- EN_diff_1P = memory.readword(add_EN_curt_1P[AC]) -- 差分を求めるために現在のジェネ残量を変数に格納 if ingame_timer ~= memory.readdword(add_ingame_timer[AC]) -- 内部カウンタが変化したか確認 then -- タイマー更新時の処理 if EN_1P ~= memory.readword(add_EN_curt_1P[AC]) -- ジェネ残量が変化したか確認 then EN_diff_1P = EN_1P - memory.readword(add_EN_curt_1P[AC]) -- 差分を求める EN_count_1P = 0 else -- ポーズ中、または変化無しなので何もしない EN_count_1P = EN_count_1P + 1 if EN_count_1P > 2 then EN_diff_1P = 0 EN_count_1P = 0 else end end EN_1P = memory.readword(add_EN_curt_1P[AC]) -- 処理後に現在の値を読み込む(タイマー更新時のみ更新) else -- タイマーが更新されなかった場合の処理(何もしない場合は削除) end -- print_txt_s(3 , 211 , "( )" , "#FFFF00") -- ジェネ残量差分(小さい表示) -- print_num_s(7 , 211 , (EN_diff_1P * -1) , 6 , "#FFFF00") -- ジェネ残量差分(小さい表示) print_txt(1 , 213 , "( )" , "#FFFF00") -- ジェネ残量差分(大きい表示) print_num(7 , 213 , (EN_diff_1P * -1) , 6 , "#FFFF00") -- ジェネ残量差分(大きい表示) -- ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ -- ロックオン中のみ距離計の値を表示 lockon_1P = memory.readword(add_lockon_1P[AC]) -- 不明値の値を読み込む if lockon_1P > 0 -- 不明値が0以上ならロックオンしたと判断 then -- print_num_s(152 , 221 , memory.readword(add_range_meter[AC]) , 5 , "#38D038") -- 小さい文字で表示(画面中央下) -- print_num(144 , 221 , memory.readword(add_range_meter[AC]) , 5 , "#38D038") -- 大きい文字で表示(画面中央下) --[[ print_num_s(151 + memory.readwordsigned(add_lockon_disp_X_1P[AC]) , 124 + memory.readwordsigned(add_lockon_disp_Y_1P[AC]) , memory.readword(add_range_meter[AC]) , 5 , "#38D038") -- 小さい文字で表示(ロック表示近くに追従) ]] --[[]] print_num(146 + memory.readwordsigned(add_lockon_disp_X_1P[AC]) , 134 + memory.readwordsigned(add_lockon_disp_Y_1P[AC]) , memory.readword(add_range_meter[AC]) , 5 , "#38D038") -- 大きい文字で表示(ロック表示近くに追従) end -- ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ -- 被ロックオン警告表示 base_X = 122 -- 表示基本横座標 base_Y = 232 -- 表示基本縦座標 locked_1P = memory.readword(add_lockon_2P[AC]) -- 不明値を読み込む if locked_1P > 0 then -- 不明値が0以上ならロックオンされたと判断 gui.drawline(base_X , base_Y , base_X + 72 , base_Y , "#E84820") gui.drawline(base_X , base_Y + 1 , base_X , base_Y + 5 , "#E84820") gui.drawline(base_X , base_Y + 6 , base_X + 72 , base_Y + 6 , "#E84820") gui.drawline(base_X + 72 , base_Y + 6 , base_X + 72 , base_Y , "#E84820") gui.drawbox(base_X + 1 , base_Y + 1 , base_X + 12 , base_Y + 5 , "#E84820") gui.drawpixel(base_X + 13 , base_Y + 4 , "#E84820") gui.drawbox(base_X + 14 , base_Y + 1 , base_X + 17 , base_Y + 5 , "#E84820") gui.drawbox(base_X + 19 , base_Y + 1 , base_X + 23 , base_Y + 4 , "#E84820") gui.drawpixel(base_X + 24 , base_Y + 1 , "#E84820") gui.drawline(base_X + 23 , base_Y + 5 , base_X + 24 , base_Y + 5 , "#E84820") gui.drawpixel(base_X + 25 , base_Y + 3 , "#E84820") gui.drawline(base_X + 26 , base_Y + 2 , base_X + 26 , base_Y + 4 , "#E84820") gui.drawpixel(base_X + 27 , base_Y + 3 , "#E84820") gui.drawline(base_X + 28 , base_Y + 1 , base_X + 30 , base_Y + 1 , "#E84820") gui.drawline(base_X + 29 , base_Y + 2 , base_X + 29 , base_Y + 4 , "#E84820") gui.drawline(base_X + 28 , base_Y + 5 , base_X + 30 , base_Y + 5 , "#E84820") gui.drawpixel(base_X + 31 , base_Y + 3 , "#E84820") gui.drawbox(base_X + 32 , base_Y + 2 , base_X + 34 , base_Y + 4 , "#E84820") gui.drawline(base_X + 35 , base_Y + 1 , base_X + 35 , base_Y + 5 , "#E84820") gui.drawline(base_X + 37 , base_Y + 1 , base_X + 37 , base_Y + 2 , "#E84820") gui.drawline(base_X + 37 , base_Y + 4 , base_X + 37 , base_Y + 5 , "#E84820") gui.drawpixel(base_X + 38 , base_Y + 1 , "#E84820") gui.drawpixel(base_X + 38 , base_Y + 5 , "#E84820") gui.drawpixel(base_X + 39 , base_Y + 3 , "#E84820") gui.drawline(base_X + 40 , base_Y + 2 , base_X + 40 , base_Y + 4 , "#E84820") gui.drawline(base_X + 41 , base_Y + 1 , base_X + 41 , base_Y + 5 , "#E84820") gui.drawline(base_X + 43 , base_Y + 2 , base_X + 45 , base_Y + 2 , "#E84820") gui.drawline(base_X + 43 , base_Y + 4 , base_X + 45 , base_Y + 4 , "#E84820") gui.drawline(base_X + 46 , base_Y + 2 , base_X + 46 , base_Y + 4 , "#E84820") gui.drawline(base_X + 47 , base_Y + 1 , base_X + 47 , base_Y + 5 , "#E84820") gui.drawbox(base_X + 49 , base_Y + 2 , base_X + 50 , base_Y + 4 , "#E84820") gui.drawpixel(base_X + 51 , base_Y + 3 , "#E84820") gui.drawpixel(base_X + 52 , base_Y + 1 , "#E84820") gui.drawpixel(base_X + 52 , base_Y + 5 , "#E84820") gui.drawbox(base_X + 53 , base_Y + 1 , base_X + 56 , base_Y + 5 , "#E84820") gui.drawpixel(base_X + 57 , base_Y + 4 , "#E84820") gui.drawbox(base_X + 58 , base_Y + 1 , base_X + 71 , base_Y + 5 , "#E84820") end -- ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ -- リロードバー表示 -- フレーム更新確認用 if ingame_timer < memory.readdword(add_ingame_timer[AC]) -- 内部カウンタが変化したか確認 then -- タイマー更新時の処理 if reload_curt < memory.readbyte(add_reload_left[AC]) -- 残りリロードが前フレームより大きいか確認 then reload_max = memory.readbyte(add_reload_left[AC]) -- 現在の残りリロードをリロード最大値とする end reload_curt = memory.readbyte(add_reload_left[AC]) -- 現在の残りリロードの値を取得 end -- 表示 if memory.readbyte(add_reload_left[AC]) > 0 -- 残りリロードが0より大きいか確認(常時実行) then -- 残りリロードが0より大きい場合の処理 reload_zero = 0 -- 残りリロード0用の変数を初期化 -- print_num_s(241 , 147 , memory.readbyte(add_reload_left[AC]) , 2 , "#FFFF00") -- 小さい文字で表示 print_num(238 , 146 , memory.readbyte(add_reload_left[AC]) , 2 , "#FFFF00") -- 大きい文字で表示 gui.drawbox(250 , 147 , -- 残りリロード時間に応じたバーを表示 250 + 60 * memory.readbyte(add_reload_left[AC]) / reload_max , 152 , "#E84820" , "#E84C24") end -- 残りリロードが0なので表示しない -- リロードが0まで減った時の処理(少しだけ表示させる) if memory.readbyte(add_reload_left[AC]) == 0 -- 残りリロードが0か確認 then -- 残りリロードが0の場合の処理 if memory.readbyte(add_pause[AC]) ~= 00 then -- ポーズ中でないか確認 reload_zero = reload_zero + 1 -- リロード0用の変数に+1 else end if reload_zero < 11 -- リロード0用変数が11未満か確認 then -- リロード0用変数が11未満の場合の処理 -- print_num_s(241 , 147 , memory.readbyte(add_reload_left[AC]) , 2 , "#FFFF00") -- 小さい文字で表示 print_num(238 , 146 , memory.readbyte(add_reload_left[AC]) , 2 , "#FFFF00") -- 大きい文字で表示 gui.drawbox(250 , 147 , 250.5 , 152 , -- 残りリロード時間に応じたバーを表示 "#E84820" , "#E84C24") else -- リロード0用変数が11以上 reload_zero = 11 -- リロード0用変数を11で固定 end end -- ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ -- 上下エリアオーバーライン描画 --[[]] -- 描画用座標計算 -- arealine_z_p1 = 46 -- 一番上の点 p1〜p2が上空オーバー arealine_z_p2 = memory.readwordsigned(add_z_U_over[AC]) + 32767 -- 上限界の点 p2〜p3が上警告ライン arealine_z_p3 = memory.readwordsigned(add_z_U_warn[AC]) + 32767 -- 上警告の点 p3〜p4が通常ライン arealine_z_p4 = memory.readwordsigned(add_z_D_warn[AC]) - 32767 -- 下警告の点 p4〜p5が下警告ライン arealine_z_p5 = memory.readwordsigned(add_z_D_over[AC]) - 32767 -- 下限界の点 p5〜p6が下方オーバー -- arealine_z_p6 = 206 -- 一番下の点 p1:p6/p2:p3/p4:p5/p3:p4 4本描画する -- 全体に対する割合を求め、描画用の高さに当てはめる arealine_z_p2 = arealine_z_p2 / 65536 * arealine_per arealine_z_p3 = arealine_z_p3 / 65536 * arealine_per arealine_z_p4 = arealine_z_p4 / 65536 * arealine_per arealine_z_p5 = arealine_z_p5 / 65536 * arealine_per -- 上下の端からの高さを求める -- arealine_z_p1 = 46 -- 上端 arealine_z_p2 = arealine_z_p2 + arealine_z_p1 arealine_z_p3 = arealine_z_p3 + arealine_z_p1 arealine_z_p4 = arealine_z_p6 + arealine_z_p4 arealine_z_p5 = arealine_z_p6 + arealine_z_p5 -- arealine_z_p6 = 206 -- 下端 -- 1Pの現在高度から描画用の高さを求める arealine_z_1P = memory.readwordsigned(add_z_1P[AC]) / 65536 * arealine_per -- 描画 -- 描画は後に描画したもので上書きされるので上書きされても良いものから順番に描画する if memory.readwordsigned(add_z_U_warn[AC]) == 0 -- 上空警告ラインが0の場合 then gui.drawline(arealine_x , arealine_z_p1 , -- 全域を通常エリアとして描画 arealine_x , arealine_z_p6 , "#38D038") gui.drawline(arealine_x - 1 , arealine_z_p1 , arealine_x + 1 , arealine_z_p1 , "#38D038") gui.drawline(arealine_x - 1 , arealine_z_p6 , arealine_x + 1 , arealine_z_p6 , "#38D038") else gui.drawline(arealine_x , arealine_z_p1 -- 上下エリアオーバーライン全体描画(赤) , arealine_x , arealine_z_p6 , "#E84820") gui.drawline(arealine_x - 1 , arealine_z_p1 , arealine_x + 1 , arealine_z_p1 , "#E84820") gui.drawline(arealine_x - 1 , arealine_z_p6 , arealine_x + 1 , arealine_z_p6 , "#E84820") gui.drawline(arealine_x , arealine_z_p3 , -- 通常エリア描画(緑) arealine_x , arealine_z_p4 , "#38D038") gui.drawline(arealine_x - 1 , arealine_z_p3 , arealine_x + 1 , arealine_z_p3 , "#38D038") gui.drawline(arealine_x - 1 , arealine_z_p4 , arealine_x + 1 , arealine_z_p4 , "#38D038") gui.drawline(arealine_x , arealine_z_p2 , -- 上警告ライン描画(黄) arealine_x , arealine_z_p3 , "#F8F800") gui.drawline(arealine_x - 1 , arealine_z_p2 , arealine_x + 1 , arealine_z_p2 , "#F8F800") gui.drawline(arealine_x - 1 , arealine_z_p3 , arealine_x + 1 , arealine_z_p3 , "#F8F800") if memory.readwordsigned(add_z_D_warn[AC]) == 0 -- 下側警告ラインが0の場合 then gui.drawline(arealine_x , arealine_z_p5 , -- 下側を通常ラインとして描画(緑) arealine_x , arealine_z_p6 , "#38D038") gui.drawline(arealine_x - 1 , arealine_z_p6 , arealine_x + 1 , arealine_z_p6 , "#38D038") else gui.drawline(arealine_x , arealine_z_p5 , -- 下警告ライン描画(黄) arealine_x , arealine_z_p4 , "#F8F800") gui.drawline(arealine_x - 1 , arealine_z_p5 , arealine_x + 1 , arealine_z_p5 , "#F8F800") gui.drawline(arealine_x - 1 , arealine_z_p4 , arealine_x + 1 , arealine_z_p4 , "#F8F800") end end gui.drawline(arealine_x - 1 , (arealine_z_p1 + arealine_z_p6) / 2 , -- 高度0に横線を描画 arealine_x + 1 , (arealine_z_p1 + arealine_z_p6) / 2 , "#FFFFFF") gui.drawline(arealine_x - 1, arealine_z_1P + arealine_half , -- 1Pの現在高度描画(横線) arealine_x , arealine_z_1P + arealine_half , "#FFFFFF") gui.drawline(arealine_x - 2, arealine_z_1P + arealine_half - 1, -- 矢印っぽく表示 arealine_x - 2, arealine_z_1P + arealine_half + 1 , "#FFFFFF") gui.drawline(arealine_x - 3, arealine_z_1P + arealine_half - 2, -- 矢印っぽく表示 arealine_x - 3, arealine_z_1P + arealine_half + 2 , "#FFFFFF") -- ↑ここまで上下エリアオーバーライン描画 -- ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ -- 累計ダメージ表示処理 -- ★1秒間(22フレーム)の間の累計ダメージを表示しているけど、もうちょっと時間長くした方が良いかなぁ? -- 累計被ダメージ表示処理 -- ↓ここからタイマー更新時のみ処理を行う if ingame_timer ~= memory.readdword(add_ingame_timer[AC]) -- 内部タイマーの更新を確認 then -- タイマー更新時の処理 -- ↓累計被ダメージ計算処理 if AP_1P ~= memory.readword(add_AP_curt_1P[AC]) -- 1PのAPが減ったか確認 then count_TD_1P = 22 -- APが減ったのでカウンタを最大化 total_damege_1P = math.abs(total_damege_1P + AP_1P - memory.readword(add_AP_curt_1P[AC])) -- 累計ダメージに現在のダメージを足す else -- APが減らなかった場合 count_TD_1P = count_TD_1P - 1 -- カウンタを1減らす end -- ↑累計被ダメージ計算処理完了 -- 累計与ダメージ計算処理 if AP_2P ~= memory.readword(add_AP_curt_2P[AC]) -- 2PのAPが減ったか確認 then count_TD_2P = 22 -- APが減ったのでカウンタを最大化 total_damege_2P = math.abs(total_damege_2P + AP_2P - memory.readword(add_AP_curt_2P[AC])) -- 累計ダメージに現在のダメージを足す else -- APが減らなかった場合 count_TD_2P = count_TD_2P - 1 -- カウンタを1減らす end -- ↑累計与ダメージ計算処理完了 -- AP確認用の変数を現在のAPに更新。タイマー更新時のみ更新しないとダメージ抜けが出る。APチェック後に更新すること AP_1P = memory.readword(add_AP_curt_1P[AC]) -- 1PのAPを現在のAPに更新 AP_2P = memory.readword(add_AP_curt_2P[AC]) -- 2PのAPを現在のAPに更新 -- タイマーが更新されなかった場合の処理(基本的に何もしない) -- else -- ■■何もエラーが出なかったら消してもOK end -- ↑ここまで内部タイマー更新時のみ処理 -- 開幕時の処理(戦闘中以外のAPの変化で累計ダメージを表示させないため) if memory.readword(add_event_timer[AC]) < 10 -- イベントタイマーを確認 then count_TD_1P = 0 -- 累計被ダメージを0にする count_TD_2P = 0 -- 累計与えるダメージを0にする end -- カウンタ確認&透明度変更&累計ダメージを表示 -- 累計被ダメージ表示 if count_TD_1P > 0 -- カウンタが残っているか確認 then print_num_inv(24 , 77 , string.format("%04d", total_damege_1P/4) , "#E84C24") -- 大きい表示 -- print_num_s_inv(24 , 76 , string.format("%04d", total_damege_1P/4) , "#E84C24") -- 小さい表示 else -- カウンタが無い場合 total_damege_1P = 0 -- 累計ダメージを0にする end -- 累計与ダメージ表示 if count_TD_2P > 0 -- カウンタが残っているか確認 then print_num_inv(24 , 68 , string.format("%04d", total_damege_2P/4) , "#38D43C") -- 大きい表示 -- print_num_s_inv(24 , 68 , string.format("%04d", total_damege_2P/4) , "#38D43C") -- 小さい表示 else -- カウンタが無い場合 total_damege_2P = 0 -- 累計ダメージを0にする end -- ↑ここまでが累計ダメージ表示処理 -- ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ -- ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ -- ■■■■■■■■■■ -- ↑ここまで戦闘中の処理 -- ■■■■■■■■■■ -- 戦闘中でなければGUIを削除 else gui.clearuncommitted() -- 全GUIを削除 end end)