// "Cucuruz" // // ※モデルを呼び出したらF8キーを1回押してください。 // // 〜マウス操作〜 // カーソル移動=砲身操作 // 左クリック=ジャイアントスター発射(押しっぱなしで連続発射) // 右クリック=機関砲発射 // // 〜キーボード操作〜 // W=前進 // W二度押し=ジェットブースト // S=ブレーキ // S二度押し=後退 // AD=左右旋回 // C=ロックブレーキ // E=砲塔方位固定モード ON/OFF // Q=砲塔角度固定モード AUTO/OFF/ON // X=ステアリングアシスト ON/OFF // Z=前後移動時の旋回方法切り替え // FV=機体カラーの変更 // G=ガイドラインの色を反転させる // B=ガイドライン表示/非表示 // Val { //主砲 //可動部 C_DIR(default=0,min=-1000000,disp=0) C_ANG(default=90,min=-360,max=360,disp=0) C_ANG2(default=0,min=-360,max=360,disp=0) //角度 NSA101(default=90,min=-360,max=360,disp=0) NSA102(default=90,min=-360,max=360,disp=0) NSA103(default=90,min=-360,max=360,disp=0) NSA104(default=90,min=-360,max=360,disp=0) NSA105(default=90,min=-360,max=360,disp=0) NSA106(default=90,min=-360,max=360,disp=0) NSA107(default=90,min=-360,max=360,disp=0) NSA108(default=90,min=-360,max=360,disp=0) NSA109(default=90,min=-360,max=360,disp=0) NSA110(default=90,min=-360,max=360,disp=0) NSA111(default=90,min=-360,max=360,disp=0) NSA112(default=90,min=-360,max=360,disp=0) NSA113(default=90,min=-360,max=360,disp=0) NSA114(default=90,min=-360,max=360,disp=0) NSA115(default=90,min=-360,max=360,disp=0) NSA116(default=90,min=-360,max=360,disp=0) NSA117(default=90,min=-360,max=360,disp=0) NSA118(default=90,min=-360,max=360,disp=0) NSA119(default=90,min=-360,max=360,disp=0) NSA120(default=90,min=-360,max=360,disp=0) //トリガー NSP101(default=0,max=2000000,step=2000000,disp=0) NSP102(default=0,max=2000000,step=2000000,disp=0) NSP103(default=0,max=2000000,step=2000000,disp=0) NSP104(default=0,max=2000000,step=2000000,disp=0) NSP105(default=0,max=2000000,step=2000000,disp=0) NSP106(default=0,max=2000000,step=2000000,disp=0) NSP107(default=0,max=2000000,step=2000000,disp=0) NSP108(default=0,max=2000000,step=2000000,disp=0) NSP109(default=0,max=2000000,step=2000000,disp=0) NSP110(default=0,max=2000000,step=2000000,disp=0) NSP111(default=0,max=2000000,step=2000000,disp=0) NSP112(default=0,max=2000000,step=2000000,disp=0) NSP113(default=0,max=2000000,step=2000000,disp=0) NSP114(default=0,max=2000000,step=2000000,disp=0) NSP115(default=0,max=2000000,step=2000000,disp=0) NSP116(default=0,max=2000000,step=2000000,disp=0) NSP117(default=0,max=2000000,step=2000000,disp=0) NSP118(default=0,max=2000000,step=2000000,disp=0) NSP119(default=0,max=2000000,step=2000000,disp=0) NSP120(default=0,max=2000000,step=2000000,disp=0) //対反動 AR_J(default=0000,min=-1000000,max=1000000,disp=0) //機関砲 ARM_ANG(default=70,min=-360,max=360,disp=0) //W CG_RLW_W(default=0000,min=-10000,max=10000,disp=0) CG_BRE_W(default=-0,min=-1000,max=1000,disp=0) C_GUN1_W(default=0,max=100000,step=100000,disp=0) C_GUN2_W(default=0,max=100000,step=100000,disp=0) C_GUN3_W(default=0,max=100000,step=100000,disp=0) C_GUN4_W(default=0,max=100000,step=100000,disp=0) //E CG_RLW_E(default=0000,min=-10000,max=10000,disp=0) CG_BRE_E(default=-0,min=-1000,max=1000,disp=0) C_GUN1_E(default=0,max=100000,step=100000,disp=0) C_GUN2_E(default=0,max=100000,step=100000,disp=0) C_GUN3_E(default=0,max=100000,step=100000,disp=0) C_GUN4_E(default=0,max=100000,step=100000,disp=0) //車輪 RLW_W(default=0000,min=-300000,max=300000,disp=0) RLW_E(default=0000,min=-300000,max=300000,disp=0) RLW_W_B(default=0000,min=-300000,max=300000,disp=0) RLW_E_B(default=0000,min=-300000,max=300000,disp=0) RLW_W_C(default=0000,min=-300000,max=300000,disp=0) RLW_E_C(default=0000,min=-300000,max=300000,disp=0) BRE(default=0000,min=00000,max=5000,disp=0) //中央ジェット R_JET(default=0000,min=-500000,max=500000,disp=0) //ジェット //サスペンション //前 SPR_F(default=0.095,disp=0) DAM_F(default=0.080,disp=0) //後 SPR_R(default=0.095,disp=0) DAM_R(default=0.080,disp=0) //機体カラー COLOR1(default=#64796d,disp=0) COLOR2(default=#485c4d,disp=0) COLOR3(default=#889c8d,disp=0) //a8bcad COLOR4(default=#3d5041,disp=0) } Key{} Body { //ボディ制作開始 Core(){ //コア----------------WEIGHT CHIP FRAME COWL TRIM RUDDER JET ARM RLW //上半身 N:WEIGHT(name=CORE2,angle=0,option=3,color=COLOR1){ //ガイドライン N:COWL(name=GL_S,angle=0.7,Option=0,color=COLOR2,Effect=#ffff){} //主砲 N:JET(angle=90,option=0,power=AR_J,effect=1,color=COLOR1){ S:ARM(name=NSNW101,angle=NSA101,option=1600000,power=NSP101,color=#444444){} S:ARM(name=NSNW102,angle=NSA102,option=1600000,power=NSP102,color=#444444){} S:ARM(name=NSNW103,angle=NSA103,option=1600000,power=NSP103,color=#444444){} S:ARM(name=NSNW104,angle=NSA104,option=1600000,power=NSP104,color=#444444){} S:ARM(name=NSNW105,angle=NSA105,option=1600000,power=NSP105,color=#444444){} } N:JET(angle=90,option=0,power=AR_J,effect=0,color=COLOR1){ S:ARM(name=NSNW106,angle=NSA106,option=1600000,power=NSP106,color=#444444){} S:ARM(name=NSNW107,angle=NSA107,option=1600000,power=NSP107,color=#444444){} S:ARM(name=NSNW108,angle=NSA108,option=1600000,power=NSP108,color=#444444){} S:ARM(name=NSNW109,angle=NSA109,option=1600000,power=NSP109,color=#444444){} S:ARM(name=NSNW110,angle=NSA110,option=1600000,power=NSP110,color=#444444){} } N:JET(angle=90,option=0,power=AR_J,effect=0,color=COLOR1){ S:ARM(name=NSNW111,angle=NSA111,option=1600000,power=NSP111,color=#444444){} S:ARM(name=NSNW112,angle=NSA112,option=1600000,power=NSP112,color=#444444){} S:ARM(name=NSNW113,angle=NSA113,option=1600000,power=NSP113,color=#444444){} S:ARM(name=NSNW114,angle=NSA114,option=1600000,power=NSP114,color=#444444){} S:ARM(name=NSNW115,angle=NSA115,option=1600000,power=NSP115,color=#444444){} } N:JET(angle=90,option=0,power=AR_J,effect=0,color=COLOR1){ S:ARM(name=NSNW116,angle=NSA116,option=1600000,power=NSP116,color=#444444){} S:ARM(name=NSNW117,angle=NSA117,option=1600000,power=NSP117,color=#444444){} S:ARM(name=NSNW118,angle=NSA118,option=1600000,power=NSP118,color=#444444){} S:ARM(name=NSNW119,angle=NSA119,option=1600000,power=NSP119,color=#444444){} S:ARM(name=NSNW120,angle=NSA120,option=1600000,power=NSP120,color=#444444){} } W:COWL(angle=-0,Option=0,color=COLOR2,Effect=#0000){ N:COWL(angle=0.9,Option=0,color=COLOR2,Effect=#ffff){} S:COWL(angle=135,Option=5,color=COLOR2,Effect=#0000){} W:COWL(angle=90,Option=3,color=COLOR2,Effect=#0000){} //カバー W:COWL(angle=-179,Option=1,color=COLOR2,Effect=#ffff){ W:COWL(angle=179,Option=2,color=COLOR2,Effect=#0000){ }} } E:COWL(angle=-0,Option=0,color=COLOR2,Effect=#0000){ N:COWL(angle=0.9,Option=0,color=COLOR2,Effect=#ffff){} S:COWL(angle=135,Option=5,color=COLOR2,Effect=#0000){} E:COWL(angle=90,Option=4,color=COLOR2,Effect=#0000){ //アンテナ E:COWL(angle=135,Option=1,color=COLOR2,Effect=#ffff){ E:COWL(angle=45,Option=3,color=COLOR1,Effect=#0000){ }} } } //砲身(カウル) //カウル上 S:COWL(angle=-160,Option=0,color=COLOR1,Effect=#ffff){ //前 S:COWL(angle=-20,Option=0,color=COLOR2,Effect=#0000){ W:COWL(angle=-90,Option=0,color=COLOR2,Effect=#0000){} E:COWL(angle=-90,Option=0,color=COLOR2,Effect=#0000){} N:COWL(angle=-90,Option=0,color=#000000,Effect=#0000){} } //後 S:COWL(angle=175,Option=0,color=COLOR2,Effect=#0000){ W:COWL(angle=90,Option=3,color=COLOR2,Effect=#0000){} E:COWL(angle=90,Option=4,color=COLOR2,Effect=#0000){} } } //砲身上 S:COWL(angle=-167.5,Option=0,color=COLOR1,Effect=#ffff){ S:COWL(angle=-14,Option=0,color=COLOR4,Effect=#0000){ S:COWL(angle=-69,Option=1,color=COLOR4,Effect=#ffff){ S:COWL(angle=145,Option=1,color=COLOR4,Effect=#ffff){ S:COWL(angle=101,Option=0,color=COLOR1,Effect=#0000){ W:COWL(angle=91,Option=4,color=COLOR1,Effect=#0000){} E:COWL(angle=91,Option=3,color=COLOR1,Effect=#0000){} } }} S:COWL(angle=-0,Option=0,color=COLOR2,Effect=#0000){ S:COWL(angle=-158,Option=1,color=COLOR2,Effect=#0000){} S:COWL(angle=0,Option=0,color=COLOR2,Effect=#0000){ S:COWL(angle=-161,Option=1,color=COLOR2,Effect=#0000){} }}} } //砲身下 S:COWL(angle=167.5,Option=0,color=COLOR1,Effect=#ffff){ S:COWL(angle=14,Option=0,color=COLOR4,Effect=#0000){ S:COWL(angle=-0,Option=0,color=COLOR4,Effect=#0000){ S:COWL(angle=158,Option=1,color=COLOR2,Effect=#0000){} S:COWL(angle=-0,Option=0,color=COLOR4,Effect=#0000){ S:COWL(angle=161,Option=1,color=COLOR2,Effect=#0000){} }}} } N:WEIGHT(angle=90,option=3,color=#333333){ //上部後装甲・内----------------WEIGHT CHIP FRAME COWL TRIM RUDDER JET ARM RLW E:WEIGHT(angle=110,option=2,color=COLOR3){ W:RLW(name=F_GUN_E,angle=-ARM_ANG,effect=6,power=CG_RLW_E,brake=CG_BRE_E,color=#444444){ N:ARM(NAME=CG1_E,angle=90,Option=25000,POWER=C_GUN1_E,color=COLOR1){} W:ARM(NAME=CG2_E,angle=90,Option=25000,POWER=C_GUN2_E,color=COLOR1){} S:ARM(NAME=CG3_E,angle=90,Option=25000,POWER=C_GUN3_E,color=COLOR1){} E:ARM(NAME=CG4_E,angle=90,Option=25000,POWER=C_GUN4_E,color=COLOR1){} } } W:WEIGHT(angle=110,option=2,color=COLOR3){ E:RLW(name=F_GUN_W,angle=-ARM_ANG,effect=6,power=CG_RLW_W,brake=CG_BRE_W,color=#444444){ N:ARM(NAME=CG1_W,angle=90,Option=25000,POWER=C_GUN1_W,color=COLOR1){} W:ARM(NAME=CG2_W,angle=90,Option=25000,POWER=C_GUN2_W,color=COLOR1){} S:ARM(NAME=CG3_W,angle=90,Option=25000,POWER=C_GUN3_W,color=COLOR1){} E:ARM(NAME=CG4_W,angle=90,Option=25000,POWER=C_GUN4_W,color=COLOR1){} } } N:WEIGHT(name=CORE4,angle=C_ANG,option=3,color=COLOR1){ //上部前装甲・内 S:WEIGHT(angle=C_ANG2,option=2,color=COLOR1){ W:WEIGHT(angle=90,option=2,color=COLOR1){} E:WEIGHT(angle=90,option=2,color=COLOR1){} S:WEIGHT(angle=150,option=2,color=COLOR1){} } //下半身 W:WEIGHT(angle=-120,option=2,color=COLOR1){ W:WEIGHT(angle=-150,option=2,color=COLOR1){ S:WEIGHT(angle=-0,option=2,color=COLOR1){ N:WEIGHT(angle=C_DIR,option=3,color=COLOR1){ //上下結合部 //結合部ガード N:WEIGHT(angle=-155,option=3,color=COLOR1){} N:WEIGHT(angle=155,option=3,color=COLOR1){} //中央ジェット S:JET(angle=-90,power=-R_JET,option=0,Effect=SMOKE,color=#333333){} S:JET(angle=90,power=R_JET,option=0,Effect=SMOKE,color=#333333){} //後----------------WEIGHT CHIP FRAME COWL TRIM RUDDER JET ARM RLW //W E:WEIGHT(angle=-85,spring=SPR_R,damper=DAM_R,option=5,color=COLOR1){ //付け根 E:WEIGHT(angle=-45,option=2,color=COLOR1){ E:RLW(angle=133,power=-RLW_W,brake=BRE,option=0,effect=2.7,color=COLOR1){ }}} E:WEIGHT(angle=-85,spring=SPR_R,damper=DAM_R,option=5,color=COLOR1){ //付け根 E:WEIGHT(angle=-45,option=2,color=COLOR1){ E:WEIGHT(angle=-136,option=2,color=COLOR1){ N:WEIGHT(angle=00,option=3,color=COLOR1){ W:RLW(angle=-88,power=RLW_W_B,brake=BRE,option=0,effect=2.7,color=COLOR1){} }}}} //E E:WEIGHT(angle=85,spring=SPR_R,damper=DAM_R,option=5,color=COLOR1){ //付け根 E:WEIGHT(angle=45,option=2,color=COLOR1){ E:RLW(angle=-133,power=-RLW_E,brake=BRE,option=0,effect=2.7,color=COLOR1){ }}} E:WEIGHT(angle=85,spring=SPR_R,damper=DAM_R,option=5,color=COLOR1){ //付け根 E:WEIGHT(angle=45,option=2,color=COLOR1){ E:WEIGHT(angle=136,option=2,color=COLOR1){ N:WEIGHT(angle=00,option=3,color=COLOR1){ W:RLW(angle=88,power=RLW_W_C,brake=BRE,option=0,effect=2.7,color=COLOR1){} }}}} //前----------------WEIGHT CHIP FRAME COWL TRIM RUDDER JET ARM RLW S:WEIGHT(name=CORE3,angle=-0,option=2,color=COLOR1){ //W E:WEIGHT(angle=-85,spring=SPR_F,damper=DAM_F,option=5,color=COLOR1){ //付け根 E:WEIGHT(angle=-45,option=2,color=COLOR1){ E:RLW(angle=133,power=-RLW_W,brake=BRE,option=0,effect=2.7,color=COLOR1){ }}} E:WEIGHT(angle=-85,spring=SPR_F,damper=DAM_F,option=5,color=COLOR1){ //付け根 E:WEIGHT(angle=-45,option=2,color=COLOR1){ E:WEIGHT(angle=-136,option=2,color=COLOR1){ S:WEIGHT(angle=00,option=3,color=COLOR3){ W:RLW(angle=-88,power=RLW_W_B,brake=BRE,option=0,effect=2.7,color=COLOR1){} }}}} //E----------------WEIGHT CHIP FRAME COWL TRIM RUDDER JET ARM RLW E:WEIGHT(angle=85,spring=SPR_F,damper=DAM_F,option=5,color=COLOR1){ //付け根 E:WEIGHT(angle=45,option=2,color=COLOR1){ E:RLW(angle=-133,power=-RLW_E,brake=BRE,option=0,effect=2.7,color=COLOR1){ }}} E:WEIGHT(angle=85,spring=SPR_F,damper=DAM_F,option=5,color=COLOR1){ //付け根 E:WEIGHT(angle=45,option=2,color=COLOR1){ E:WEIGHT(angle=136,option=2,color=COLOR1){ S:WEIGHT(angle=00,option=3,color=COLOR3){ W:RLW(angle=88,power=RLW_W_C,brake=BRE,option=0,effect=2.7,color=COLOR1){} }}}} //車体中心部装甲 N:WEIGHT(angle=90,option=2,color=#333333){ N:WEIGHT(angle=90,option=2,color=COLOR1){ //側面装甲 E:WEIGHT(angle=-90,option=2,color=COLOR1){ E:WEIGHT(angle=-91,option=3,color=COLOR1){} N:WEIGHT(angle=-15,option=2,color=COLOR1){ E:WEIGHT(angle=-90,option=3,color=COLOR3){ }}} N:WEIGHT(angle=90,option=3,color=COLOR3){ //前部 }} N:WEIGHT(angle=-90,option=2,color=COLOR1){ //側面装甲 E:WEIGHT(angle=90,option=2,color=COLOR1){ E:WEIGHT(angle=91,option=3,color=COLOR1){} N:WEIGHT(angle=15,option=2,color=COLOR1){ E:WEIGHT(angle=90,option=3,color=COLOR3){ }}} } } N:WEIGHT(angle=-90,option=2,color=#333333){ N:WEIGHT(angle=-90,option=2,color=COLOR1){ //側面装甲 E:WEIGHT(angle=90,option=2,color=COLOR1){ E:WEIGHT(angle=91,option=3,color=COLOR1){} N:WEIGHT(angle=15,option=2,color=COLOR1){ E:WEIGHT(angle=90,option=3,color=COLOR3){ }}} N:WEIGHT(angle=-90,option=3,color=COLOR3){ //前部 }} N:WEIGHT(angle=90,option=2,color=COLOR1){ //側面装甲 E:WEIGHT(angle=-90,option=2,color=COLOR1){ E:WEIGHT(angle=-91,option=3,color=COLOR1){} N:WEIGHT(angle=-15,option=2,color=COLOR1){ E:WEIGHT(angle=-90,option=3,color=COLOR3){ }}} } } } S:WEIGHT(name=CORE3,angle=-0,option=3,color=COLOR1){} }}}} E:WEIGHT(angle=-120,option=2,color=COLOR1){} }}} } //コアここまで } //ボディ制作終了----------------WEIGHT CHIP FRAME COWL TRIM RUDDER JET ARM RLW LUA { --初期設定---------------- --マウスの上下反転(通常=1 反転=-1) UDR=1 --前後移動時の旋回方法(直接=0 追従=1) MT_S=0 --機体の初期カラー(1-7) BODY_COLOR=1 --ガイドラインの色 --カラー1 --明 COL_R1L=255 --赤 COL_G1L=30 --緑 COL_B1L=30 --青 --暗 COL_R1D=140 --赤 COL_G1D=15 --緑 COL_B1D=15 --青 --カラー2 --明 COL_R2L=0 --赤 COL_G2L=255 --緑 COL_B2L=196 --青 --暗 COL_R2D=0 --赤 COL_G2D=170 --緑 COL_B2D=128 --青 --モーション変数設定---------------- --{現在値,指定値,モードスイッチ,指定値との距離,指定移動量} --砲台 C_dir={C_DIR,C_DIR,0,0,15} C_ang={C_ANG,C_ANG,0,0,6} base_dir={0,0,0,0,5} --主砲 for LOOP=01,20 do _G["nsa"..100+LOOP]={_G["NSA"..100+LOOP],_G["NSA"..100+LOOP],0,0,15} end --変数設定------------------------ POW_LV={32} POW_LV[0]=0 level=0 ENG_RATE=0 AXEL=0 T_AXEL=0 B_AXEL=0 BRE_a=0 BRE_b=0 BRE_c=0 count=0 WY_AVE={0,0,0,0} AX_AVE={0,0,0,0,0,0} COMMAND_MEMORY={0,0,0,0,0,0} COMMAND_MEMORY[0],boost=0,0 COMMAND_MEMORY2={0,0,0,0,0,0} COMMAND_MEMORY2[0],back=0,0 pX,pY,pZ={0,0},{0,0},{0,0} --[[ --バグチェッカー bug_memo ={0,0,0,0,0,0,0,0,0,0} bug_memo2={0,0,0,0,0,0,0,0,0,0} ]] --グラデーションデータ --カラー1 COL_RG1=math.max(COL_R1L,COL_R1D)-math.min(COL_R1L,COL_R1D) COL_GG1=math.max(COL_G1L,COL_G1D)-math.min(COL_G1L,COL_G1D) COL_BG1=math.max(COL_B1L,COL_B1D)-math.min(COL_B1L,COL_B1D) --カラー2 COL_RG2=math.max(COL_R2L,COL_R2D)-math.min(COL_R2L,COL_R2D) COL_GG2=math.max(COL_G2L,COL_G2D)-math.min(COL_G2L,COL_G2D) COL_BG2=math.max(COL_B2L,COL_B2D)-math.min(COL_B2L,COL_B2D) --メイン--------------------------- function main() --コア分離 dummy=_SPLIT(CORE2) --キャノンステータス Ammo_number,POW_ALL,top_charge=0,0,0 for LOOP=101,120 do if _PARENT(_G["NSNW"..LOOP])~=-1 or _PARENT(_G["NSNE"..LOOP])~=-1 then --残弾数 if _OPTION(_G["NSNW"..LOOP])==_E(_G["NSNW"..LOOP]) then Ammo_number=Ammo_number+1 end --トップチャージ if _E(_G["NSNW"..LOOP])~=1600000 then top_charge=math.max(top_charge,_E(_G["NSNW"..LOOP])) end end end top_charge=top_charge/1600000 if top_charge==0 then top_charge=1 end --情報 out(0,"Cucuruz") if _TICKS()<320 then out(1,"Giant star : Wait...",320-_TICKS()) else out(1,"Giant star : Ready") end out(2," | Shell : ",Ammo_number) out(3," | Top charge : ",top_charge*100) if kds==0 then out(4," | Keep direction : ON") else out(4," | Keep direction : OFF") end if kas==0 then if Ak_sw==0 then out(5," | keep angle : AUTO-ON") else out(5," | keep angle : AUTO-OFF") end elseif kas==1 then out(5," | keep angle : OFF") else out(5," | keep angle : ON") end out(6,"Color : "..BODY_COLOR,".",COL_name) --速度算出 pX,pY,pZ={pX[2],_X(CORE3)},{pY[2],_Y(CORE3)},{pZ[2],_Z(CORE3)} pX[0],pY[0],pZ[0]=pX[1]-pX[2],pY[1]-pY[2],pZ[1]-pZ[2] new_Speed=math.sqrt(pX[0]*pX[0]+pY[0]*pY[0]+pZ[0]*pZ[0])*100 if MT_S==0 then out(7,"Moving turn : Direct") else out(7,"Moving turn : Trace") end out(8,"Speed : ",new_Speed) if boost==1 then out(9,"<>") end if _KEY(8)==1 then out(9,"<>") end if back==1 then out(9,"<>") end if R_BRE==1 then out(9,"<>") end if SA==1 then out(10,"<>") end if _TICKS()<150 then out(11,"<>") end --ガイドライン if _KEYDOWN(11)==1 then if GLW==1 then GLW=0 else GLW=1 end end if GLW==0 then G_line() end --各種制御 Direction_ABS() Direction_keep() MOUSE_CONTROL() Angle_keep() FIRE_CONTROL1() --主砲 FIRE_CONTROL2() --機関砲 CHANGE_COLOR() --砲台制御 --角度 --角度限界 C_ang_X=-M_ang+Ang_keep if C_ang_X<-M_ang_MINI then C_ang_X=-M_ang_MINI end --上 if C_ang_X>M_ang_MAX then C_ang_X=M_ang_MAX end --下 C_ang[2]=90+C_ang_X C_ang[3]=2 --方位 --方位維持モードスイッチ if _KEYDOWN(16)==1 then if kds==1 then --ON kds=0 Def_Dir=Spiral2+M_dir-base_dir[1] else --OFF kds=1 end end if kds==0 then Spiral3=Spiral end C_dir[2]=-M_dir-Spiral3+Def_Dir+base_dir[1] C_dir[3]=2 --基本方位 if M_dir2>B_line then base_dir[1]=base_dir[1]-(M_dir2-B_line)*15 elseif M_dir2<-B_line then base_dir[1]=base_dir[1]-(M_dir2-(-B_line))*15 end --モーションコントロール MOTION_CONTROL() --駆動制御 RLW_W,RLW_E,RLW_W_B,RLW_E_B,RLW_W_C,RLW_E_C=0,0,0,0,0,0 count=count+1 --方位基準変更 if (MT_S==1 and _KEY(15)==0 and back==0 and (_KEYUP(7)==1 or _KEYUP(9)==1)) or (MT_S==0 and (_KEYUP(7)==1 or _KEYUP(9)==1)) or _KEYDOWN(15)==1 then Direction_Y=_AY(CORE3) end --ステアリングアシスト if _KEYDOWN(5)==1 then if SA==1 then SA=0 Direction_Y=_AY(CORE3) else SA=1 charge_pow=0 end end if SA==0 then STEERING_ASSIST() end --前進判定 AXEL=0 if _KEY(15)==1 then AXEL=1 end --後退判定 ALL_MEMORYS=0 COMMAND_MEMORY2[0]=_KEYDOWN(8) for LOOP=1,5 do ALL_MEMORYS=ALL_MEMORYS+COMMAND_MEMORY2[LOOP] end if ALL_MEMORYS>=2 or (_KEY(8)==1 and back==1) then COMMAND_MEMORY2={0,0,0,0,0} back=1 AXEL=-1 else COMMAND_MEMORY2={COMMAND_MEMORY2[0],COMMAND_MEMORY2[1],COMMAND_MEMORY2[2],COMMAND_MEMORY2[3],COMMAND_MEMORY2[4]} back=0 end --前後移動 --進行時の旋回方式切り替え if _KEYDOWN(4)==1 then if MT_S==1 then MT_S=0 else MT_S=1 end end --方位修正による出力制限 Dir_ABS_Y3=math.abs(Dir_ABS_Y)*8 if Dir_ABS_Y3>1 then Dir_ABS_Y3=1 end Dir_ABS_Y3=1-Dir_ABS_Y3 if SA==1 then Dir_ABS_Y3=1 end base_pow=100000 speed_x=math.abs(_VZ(CORE3)/POW_LV[1]) if speed_x>1 then speed_x=1 end Power=base_pow*math.cos(_VZ(CORE3)/POW_LV[1])*math.cos(speed_x*1.57) if Power<000 then Power=000 end Power=Power*Dir_ABS_Y3*AXEL if math.abs(_VZ(CORE3))>=POW_LV[1] then Power=0 end --出力加算 RLW_W=RLW_W+Power RLW_E=RLW_E+Power RLW_W_B=RLW_W_B+Power RLW_E_B=RLW_E_B+-Power RLW_W_C=RLW_W_C+Power RLW_E_C=RLW_E_C+-Power --旋回 turn_pow=50000 --速度制限 if Spi_WY>5 and _KEY(9)==0 then turn_pow=-40000*(Spi_WY-4) end if Spi_WY<-5 and _KEY(7)==0 then turn_pow=40000*(Spi_WY+4) end if _KEY(7)+_KEY(9)==1 then T_AXEL=T_AXEL+0.1 else T_AXEL=0 end if T_AXEL>1 then T_AXEL=1 elseif T_AXEL<0 then T_AXEL=0 end if _KEY(15)==1 or back==1 then --前後移動時 if MT_S==0 then --直接式 if _KEY(7)==1 then RLW_E=RLW_E+turn_pow*T_AXEL RLW_W_C=RLW_W_C+turn_pow*T_AXEL RLW_E_C=RLW_E_C+-turn_pow*T_AXEL end if _KEY(9)==1 then RLW_W=RLW_W+turn_pow*T_AXEL RLW_W_B=RLW_W_B+turn_pow*T_AXEL RLW_E_B=RLW_E_B+-turn_pow*T_AXEL end else --追従式 if _KEY(7)==1 then Direction_Y=Direction_Y-0.0628 end if _KEY(9)==1 then Direction_Y=Direction_Y+0.0628 end --ループ処理 if Direction_Y>3.14 then Direction_Y=Direction_Y-6.28 end if Direction_Y<-3.14 then Direction_Y=Direction_Y+6.28 end end else --停止時 if _KEY(7)==1 then RLW_W=RLW_W-turn_pow*T_AXEL RLW_E=RLW_E+turn_pow*T_AXEL RLW_W_B=RLW_W_B+-turn_pow*T_AXEL RLW_E_B=RLW_E_B+turn_pow*T_AXEL RLW_W_C=RLW_W_C+turn_pow*T_AXEL RLW_E_C=RLW_E_C+-turn_pow*T_AXEL end if _KEY(9)==1 then RLW_W=RLW_W+turn_pow*T_AXEL RLW_E=RLW_E-turn_pow*T_AXEL RLW_W_B=RLW_W_B+turn_pow*T_AXEL RLW_E_B=RLW_E_B+-turn_pow*T_AXEL RLW_W_C=RLW_W_C+-turn_pow*T_AXEL RLW_E_C=RLW_E_C+turn_pow*T_AXEL end end --ブレーキ --ブレーキ if _KEY(8)==1 and back==0 then BRE=BRE+50 end if _KEYUP(8)==1 or back==1 then BRE=0 end --ロックブレーキ if _KEYDOWN(6)==1 then if R_BRE==1 then --OFF R_BRE=0 BRE=0 else --ON R_BRE=1 Direction_Y=_AY(CORE3) end end if R_BRE==1 and back+_KEY(7)+_KEY(9)+_KEY(15)>=1 then R_BRE=0 BRE=0 end if R_BRE==1 then BRE=5000 end --ジェットブースト R_JET=0 ALL_MEMORYS=0 COMMAND_MEMORY[0]=_KEYDOWN(15) for LOOP=1,5 do ALL_MEMORYS=ALL_MEMORYS+COMMAND_MEMORY[LOOP] end if ALL_MEMORYS>=2 or (_KEY(15)==1 and boost==1) then R_JET=250000 COMMAND_MEMORY={0,0,0,0,0} boost,B_fix=1,0 else COMMAND_MEMORY={COMMAND_MEMORY[0],COMMAND_MEMORY[1],COMMAND_MEMORY[2],COMMAND_MEMORY[3],COMMAND_MEMORY[4]} boost=0 end end --マウス操作------------------------------------------ B_line=0 B_line_BASE=0.6 M_dir,M_ang,M_dir2,M_ang2=0,0,0,0 M_dir_MAX=20 M_ang_MAX=35 M_ang_MINI=12 function MOUSE_CONTROL() --移動境界線 B_line=B_line_BASE*(_WIDTH()/_HEIGHT()) --アナログ出力 M_ang=(_MY()-(_HEIGHT()/2))/(_HEIGHT()/2)*M_ang_MAX*UDR M_dir=-(_MX()-(_WIDTH()/2))/(_WIDTH()/2)*(M_dir_MAX/B_line_BASE) --角度限界 if M_ang<-M_ang_MAX then M_ang=-M_ang_MAX end --上 if M_ang>M_ang_MINI then M_ang=M_ang_MINI end --下 --方位絶対領域 if M_dir>M_dir_MAX then M_dir=M_dir_MAX elseif M_dir<-M_dir_MAX then M_dir=-M_dir_MAX end --カーソル位置 M_ang2=(_MY()-(_HEIGHT()/2))/(_HEIGHT()/2) M_dir2=-(_MX()-(_WIDTH()/2))/(_WIDTH()/2)*(_WIDTH()/_HEIGHT()) end --ステアリングアシスト--------------------------------- Dir_memo={0,0} SA=0 Lim=0 charge_pow=0 CP_S=0 CP_S2=0 CP_AVE={0,0,0,0,0} function STEERING_ASSIST() if (_KEY(7)==0 and _KEY(9)==0) or (MT_S==1 and (_KEY(15)==1 or back==1) and (_KEY(7)==1 or _KEY(9)==1)) then --蓄積型出力 --Spi_WY平均化 CP_AVE={CP_AVE[2],CP_AVE[3],CP_AVE[4],CP_AVE[5],Spi_WY} CP_AVE[0]=(CP_AVE[1]+CP_AVE[2]+CP_AVE[3]+CP_AVE[4]+CP_AVE[5])/5 --ON判定 if Dir_ABS_Y>0.0025 and CP_AVE[0]>=0.15 and CP_S==0 then CP_S=1 charge_pow=-1000 end if Dir_ABS_Y<-0.0025 and CP_AVE[0]<=0.15 and CP_S==0 then CP_S=2 charge_pow=1000 end --OFF判定 if CP_S==1 and Dir_ABS_Y<=0 then CP_S=0 charge_pow=0 end if CP_S==2 and Dir_ABS_Y>=0 then CP_S=0 charge_pow=0 end --蓄積 CPX=10000 CPY=30000 if CP_S>0 and CPY>charge_pow and math.abs(CP_AVE[0])<=0.15 then charge_pow=charge_pow-Dir_ABS_Y*CPX end --基本出力 turn_pow=50000 CP_S2=0 Dir_ABS_Y2=-Dir_ABS_Y*turn_pow Lim=math.abs(Dir_ABS_Y)*15.25 --可変リミッター if (Dir_ABS_Y>0 and Spi_WY<0) or (Dir_ABS_Y<0 and Spi_WY>0) --カウンター then Dir_ABS_Y2=Dir_ABS_Y2*(1+math.abs(Spi_WY)*6) CP_S2=1 end if (Dir_ABS_Y>0 and Spi_WY>Lim) or (Dir_ABS_Y<0 and Spi_WY<-Lim) --速度制限 then Dir_ABS_Y2=-Dir_ABS_Y2 CP_S2=1 end if CP_S2==0 then Dir_ABS_Y2=Dir_ABS_Y2+charge_pow end --charge_pow加算判定 RLW_W=RLW_W+Dir_ABS_Y2 RLW_E=RLW_E-Dir_ABS_Y2 RLW_W_B=RLW_W_B+Dir_ABS_Y2 RLW_E_B=RLW_E_B+-Dir_ABS_Y2 RLW_W_C=RLW_W_C+-Dir_ABS_Y2 RLW_E_C=RLW_E_C+Dir_ABS_Y2 else charge_pow=0 end end --方位絶対値-------------------------------------- Direction_Y=_AY(CORE3) Dir_ABS_Y=0 function Direction_ABS() --Y Loop=3 if Direction_Y>0 and _AY(_G["CORE"..Loop])<0 then if Direction_Y+-_AY(_G["CORE"..Loop])>math.pi then Dir_ABS_Y=math.pi*2-Direction_Y+_AY(_G["CORE"..Loop]) else Dir_ABS_Y=_AY(_G["CORE"..Loop])-Direction_Y end elseif Direction_Y<0 and _AY(_G["CORE"..Loop])>0 then if Direction_Y+-_AY(_G["CORE"..Loop])<-math.pi then Dir_ABS_Y=math.pi*2+Direction_Y-_AY(_G["CORE"..Loop]) if Direction_Y+-Dir_ABS_Y<-math.pi then Dir_ABS_Y=-Dir_ABS_Y end else Dir_ABS_Y=_AY(_G["CORE"..Loop])-Direction_Y end else Dir_ABS_Y=_AY(_G["CORE"..Loop])-Direction_Y end -- 3.14->1 Dir_ABS_Y=Dir_ABS_Y/3.14 end --角度維持モード------------------------------------ Ang_keep=0 Ak_sw=0 kas=0 function Angle_keep() if _KEYDOWN(14)==1 then kas=kas+1 end if kas>2 then kas=0 end --オートモード if math.deg(_AX(CORE4))<-M_ang_MINI-5 or math.deg(_AX(CORE4))>M_ang_MAX+5 or kas==1 then --OFF Ak_sw=1 elseif math.deg(_AX(CORE4))>-M_ang_MINI and math.deg(_AX(CORE4))=0 then Spiral=math.deg(_AY(CORE3))-180 -- + elseif math.deg(_AY(CORE3))<0 then Spiral=math.deg(_AY(CORE3))+180 end -- - --2.足跡 if Spiral>=0 and math.abs(Spiral)>=90 then Sw_memo={Sw_memo[2],1} end if Spiral<0 and math.abs(Spiral)<90 then Sw_memo={Sw_memo[2],4} end if Spiral>=0 and math.abs(Spiral)<90 then Sw_memo={Sw_memo[2],2} end if Spiral<0 and math.abs(Spiral)>=90 then Sw_memo={Sw_memo[2],3} end --3.足跡経路判定 if Sw_memo[1]==1 and Sw_memo[2]==3 then DKsw[1]=DKsw[1]+1 end if Sw_memo[1]==3 and Sw_memo[2]==1 then DKsw[1]=DKsw[1]-1 end if DKsw[1]~=0 and Sw_memo[1]==2 and Sw_memo[2]==4 then DKsw[2]=DKsw[2]-1 end if DKsw[1]~=0 and Sw_memo[1]==4 and Sw_memo[2]==2 then DKsw[2]=DKsw[2]+1 end --4.0/1判定&螺旋距離計算 if math.abs(math.mod(DKsw[1]+DKsw[2],2))==0 then Spiral=(DKsw[1]+DKsw[2])*180+Spiral elseif math.abs(math.mod(DKsw[1]+DKsw[2],2))==1 then --不具合補正 if DKsw[1]+DKsw[2]<0 and math.deg(_AY(CORE3))>0 then rev=-math.deg(_AY(CORE3)) else rev=math.deg(_AY(CORE3)) end Spiral=(DKsw[1]+DKsw[2])*180+rev end --旋回移動量算出 Spi_memo={Spi_memo[2],Spiral} Spi_WY=Spi_memo[1]-Spi_memo[2] --CORE2 --1.math.deg(_AY(CORE2)方位修正版作成 if math.deg(_AY(CORE2))>=0 then Spiral2=math.deg(_AY(CORE2))-180 -- + elseif math.deg(_AY(CORE2))<0 then Spiral2=math.deg(_AY(CORE2))+180 end -- - --2.足跡 if Spiral2>=0 and math.abs(Spiral2)>=90 then Sw_memo2={Sw_memo2[2],1} end if Spiral2<0 and math.abs(Spiral2)<90 then Sw_memo2={Sw_memo2[2],4} end if Spiral2>=0 and math.abs(Spiral2)<90 then Sw_memo2={Sw_memo2[2],2} end if Spiral2<0 and math.abs(Spiral2)>=90 then Sw_memo2={Sw_memo2[2],3} end --3.足跡経路判定 if Sw_memo2[1]==2 and Sw_memo2[2]==4 then DKsw2[1]=DKsw2[1]-1 end if Sw_memo2[1]==4 and Sw_memo2[2]==2 then DKsw2[1]=DKsw2[1]+1 end if DKsw2[1]~=0 and Sw_memo2[1]==1 and Sw_memo2[2]==3 then DKsw2[2]=DKsw2[2]+1 end if DKsw2[1]~=0 and Sw_memo2[1]==3 and Sw_memo2[2]==1 then DKsw2[2]=DKsw2[2]-1 end --4.0/1判定&螺旋距離計算 if math.mod(DKsw2[1]+DKsw2[2],2)==0 then Spiral2=(DKsw2[1]+DKsw2[2])*180+math.deg(_AY(CORE2)) else Spiral2=(DKsw2[1]+DKsw2[2])*180+Spiral2 end end --火器制御1-[主砲]---------------------------------------------- FIRE_ORDER=1 Fire_rock=0 J_count=999 FIRE_ORDER_R={2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,1} function FIRE_CONTROL1() AR_J=0 --角度初期化 for LOOP=01,20 do _G["nsa"..100+LOOP][2]=90 _G["nsa"..100+LOOP][3]=2 end --角度移動 _G["nsa"..100+FIRE_ORDER][2]=270 _G["nsa"..100+FIRE_ORDER][3]=2 _G["nsa"..100+FIRE_ORDER_R[FIRE_ORDER]][2]=180 _G["nsa"..100+FIRE_ORDER_R[FIRE_ORDER]][3]=2 --トリガー if _ML()==0 then Fire_rock=0 end if _ML()==1 and Fire_rock==0 and _G["nsa"..100+FIRE_ORDER][1]==270 and _OPTION(_G["NSNW"..100+FIRE_ORDER])==_E(_G["NSNW"..100+FIRE_ORDER]) and _TICKS()>320 and Ammo_number>0 then _G["NSP"..100+FIRE_ORDER]=2000000 --Fire_rock=1 FIRE_ORDER=FIRE_ORDER+1 J_count=0 elseif _PARENT(_G["NSNW"..100+FIRE_ORDER])==-1 then FIRE_ORDER=FIRE_ORDER+1 end if J_count<2 then AR_J=235000 J_count=J_count+1 end --対反動 if FIRE_ORDER>20 then FIRE_ORDER=1 end end --火器制御2-[機関砲]-------------------------------- function FIRE_CONTROL2() --散弾設定 ARM_ANG=70 if _MR()==1 then ARM_ANG=ARM_ANG-math.abs(math.sin(_TICKS()*0.1))*1 end --W --被弾対処 CG_con1_W,CG_con2_W,CG_con3_W,CG_con4_W,CG_con5_W,CG_BRE_W=0,0,0,0,0,0 for LOOP=1,4 do if _PARENT(_G["CG"..LOOP.."_W"])~=-1 then _G["CG_con"..LOOP.."_W"]=1 end end CG_con5_W=CG_con1_W+CG_con2_W+CG_con3_W+CG_con4_W CG_RLW_W=-2000*CG_con5_W--*_MR() --射撃判定 if _MR()==1 then if (_RZ(CORE2,CG1_W)<1.57 and _RZ(CORE2,CG1_W)>0) and CG_con1_W==1 then C_GUN1_W=1000000 elseif (_RZ(CORE2,CG2_W)<1.57 and _RZ(CORE2,CG2_W)>0) and CG_con2_W==1 then C_GUN2_W=1000000 elseif (_RZ(CORE2,CG3_W)<1.57 and _RZ(CORE2,CG3_W)>0) and CG_con3_W==1 then C_GUN3_W=1000000 elseif (_RZ(CORE2,CG4_W)<1.57 and _RZ(CORE2,CG4_W)>0) and CG_con4_W==1 then C_GUN4_W=1000000 end end --E --被弾対処 CG_con1_E,CG_con2_E,CG_con3_E,CG_con4_E,CG_con5_E,CG_BRE_E=0,0,0,0,0,0 for LOOP=1,4 do if _PARENT(_G["CG"..LOOP.."_E"])~=-1 then _G["CG_con"..LOOP.."_E"]=1 end end CG_con5_E=CG_con1_E+CG_con2_E+CG_con3_E+CG_con4_E CG_RLW_E=2000*CG_con5_E--*_MR() if CG_con5_E==0 then CG_BRE_E=100 end --射撃判定 if _MR()==1 then if (_RZ(CORE2,CG1_E)<-0 and _RZ(CORE2,CG1_E)>-1.57) and CG_con1_E==1 then C_GUN1_E=1000000 elseif (_RZ(CORE2,CG2_E)<-0 and _RZ(CORE2,CG2_E)>-1.57) and CG_con2_E==1 then C_GUN2_E=1000000 elseif (_RZ(CORE2,CG3_E)<-0 and _RZ(CORE2,CG3_E)>-1.57) and CG_con3_E==1 then C_GUN3_E=1000000 elseif (_RZ(CORE2,CG4_E)<-0 and _RZ(CORE2,CG4_E)>-1.57) and CG_con4_E==1 then C_GUN4_E=1000000 end end end --モーション制御 1.01-------------------------------- function MOTION_CONTROL() --砲台 --角度 if C_ang[3]>0 and C_ang[3]<=2 then broker=C_ang MCF() C_ang=broker C_ANG=C_ang[1] end --方位 if C_dir[3]>0 and C_dir[3]<=2 then broker=C_dir MCF() C_dir=broker C_DIR=C_dir[1] end if base_dir[3]>0 and base_dir[3]<=2 then broker=base_dir MCF() base_dir=broker end --主砲 for LOOP=01,20 do if _G["nsa"..100+LOOP][3]>0 and _G["nsa"..100+LOOP][3]<=2 then broker=_G["nsa"..100+LOOP] MCF() _G["nsa"..100+LOOP]=broker _G["NSA"..100+LOOP]=_G["nsa"..100+LOOP][1] end end end function MCF() --総移動角 if broker[3]==2 and broker[1]~=0 and broker[2]==0 then broker[2]=-broker[1] --現在値から指定値(0) elseif broker[3]==2 then broker[2]=broker[2]-broker[1] end --現在値から指定値 --1フレームごとの移動角 if broker[3]==2 then broker[4]=broker[5] end --指定移動角入力 --符号切り替え判定 if broker[3]==2 and broker[2]<0 then broker[4]=-broker[4] end broker[3]=1 --最終移動 if (broker[2]<=broker[4] and broker[2]>=0) -- + or (broker[2]>=broker[4] and broker[2]<=0) then -- - pomp,broker[2],broker[3],broker[4]=broker[2],0,0,0 --移動 else pomp=broker[4] broker[2]=broker[2]-broker[4] end broker[1]=broker[1]+pomp end --ガイドライン---------------- GLW=0 G_col_Switch=0 G_col_MODE=1 G_speed=8 VEC_X,VEC_Y,VEC_Z=0,0,0 function G_line() --ラインカラー if _KEYDOWN(13)==1 then if G_col_MODE==1 then G_col_MODE=0 elseif G_col_MODE==0 then G_col_MODE=1 end end LINE_COLOR() --3D --主砲 Length=-2000 L_adjust=3.14 --色 if _G["NSA"..100+FIRE_ORDER]==270 and _TICKS()>320 and Ammo_number>0 then dummy=_SETCOLOR(Line_col_G) else REV_COLOR() dummy=_SETCOLOR(Line_col_G) REV_COLOR() end --ベクトル合成(射線+車体進行方向) VEC_X=(_ZX(GL_S)*Length+_ZX(CORE3)*_VZ(CORE3)*L_adjust) VEC_Y=(_ZY(GL_S)*Length) VEC_Z=(_ZZ(GL_S)*Length+_ZZ(CORE3)*_VZ(CORE3)*L_adjust) dummy=_MOVE3D(_X(GL_S),_Y(GL_S),_Z(GL_S)) dummy=_LINE3D(_X(GL_S)+VEC_X,_Y(GL_S)+VEC_Y,_Z(GL_S)+VEC_Z) --2D --ブースト if boost==1 then REV_COLOR() dummy=_SETCOLOR(Line_col_G) REV_COLOR() dummy=_MOVE2D(-0.080,0) dummy=_LINE2D(0,0.080) dummy=_LINE2D(0.080,0) dummy=_MOVE2D(-0.1125,0) dummy=_LINE2D(0,0.1125) dummy=_LINE2D(0.1125,0) end --後退 if back==1 then REV_COLOR() dummy=_SETCOLOR(Line_col_G) REV_COLOR() dummy=_MOVE2D(-0.080,0) dummy=_LINE2D(0,-0.080) dummy=_LINE2D(0.080,0) dummy=_MOVE2D(-0.1125,0) dummy=_LINE2D(0,-0.1125) dummy=_LINE2D(0.1125,0) end --コンパス --基準位置 KBX=-0.0*(_WIDTH()/_HEIGHT()) KBY=-0.67 --大きさ Scale=0.23 --中心点 dummy=_SETCOLOR(Line_col_G) --北 Dir_X=math.cos(_AY(CORE2)-(math.pi/4*90)) Dir_Y=math.sin(_AY(CORE2)-(math.pi/4*90)) dummy=_MOVE2D(KBX,KBY) dummy=_LINE2D(-Dir_X*Scale+KBX,-Dir_Y*Scale+KBY) --方位盤 for Dir_Loop=0,337.5,22.5 do Dir_X=math.cos(_AY(CORE2)-(math.pi/4*(90+Dir_Loop)))*Scale Dir_Y=math.sin(_AY(CORE2)-(math.pi/4*(90+Dir_Loop)))*Scale --色 dummy=_SETCOLOR(Line_col_G) --北 if Dir_Loop==180 then REV_COLOR() dummy=_SETCOLOR(Line_col_G) REV_COLOR() end --凸凹 Dir_len=0.9 if math.mod(Dir_Loop/22.5,2)==0 then Dir_len=0.8 end --描画 dummy=_MOVE2D((Dir_X*Dir_len)+KBX,(Dir_Y*Dir_len)+KBY) dummy=_LINE2D(Dir_X+KBX,Dir_Y+KBY) end --砲身方位 REV_COLOR() dummy=_SETCOLOR(Line_col_G) REV_COLOR() dummy=_MOVE2D(KBX,KBY+0.195) dummy=_LINE2D(KBX-0.024,KBY+0.1) dummy=_LINE2D(KBX+0.024,KBY+0.1) dummy=_LINE2D(KBX,KBY+0.195) --車体方位 Dir_X=math.sin(_RY(CORE3,CORE2)-(math.pi))*Scale Dir_Y=math.cos(_RY(CORE3,CORE2)-(math.pi))*Scale dummy=_MOVE2D(KBX,KBY) dummy=_LINE2D((Dir_X*0.8)+KBX,(Dir_Y*0.8)+KBY) --方位維持アンカー if SA==0 then Scale_C=Scale*1.03 DKxy=Direction_Y-_AY(CORE2)-(math.pi) REV_COLOR() dummy=_SETCOLOR(Line_col_G) REV_COLOR() dummy=_MOVE2D(math.sin(DKxy)*Scale_C+KBX,math.cos(DKxy)*Scale_C+KBY) dummy=_LINE2D(math.sin(DKxy+0.1)*Scale_C*1.26+KBX,math.cos(DKxy+0.1)*Scale_C*1.26+KBY) dummy=_LINE2D(math.sin(DKxy-0.1)*Scale_C*1.26+KBX,math.cos(DKxy-0.1)*Scale_C*1.26+KBY) dummy=_LINE2D(math.sin(DKxy)*Scale_C+KBX,math.cos(DKxy)*Scale_C+KBY) end --砲塔基準方位移動 --境界線 dummy=_SETCOLOR(Line_col_G) if M_dir2>0 then --左 dummy=_MOVE2D(-B_line,-0.08-M_ang2) dummy=_LINE2D(-B_line,0.08-M_ang2) elseif M_dir2<0 then --右 dummy=_MOVE2D(B_line,-0.08-M_ang2) dummy=_LINE2D(B_line,0.08-M_ang2) end --移動マーク --左 if M_dir2>B_line then REV_COLOR() dummy=_SETCOLOR(Line_col_G)REV_COLOR() dummy=_MOVE2D(-0.55*(_WIDTH()/_HEIGHT()),0) dummy=_LINE2D(-0.40*(_WIDTH()/_HEIGHT()),0.15) dummy=_MOVE2D(-0.55*(_WIDTH()/_HEIGHT()),0) dummy=_LINE2D(-0.40*(_WIDTH()/_HEIGHT()),-0.15) dummy=_LINE2D(-0.40*(_WIDTH()/_HEIGHT()),0.15) --右 elseif M_dir2<-B_line then REV_COLOR() dummy=_SETCOLOR(Line_col_G)REV_COLOR() dummy=_MOVE2D(0.55*(_WIDTH()/_HEIGHT()),0) dummy=_LINE2D(0.40*(_WIDTH()/_HEIGHT()),0.15) dummy=_MOVE2D(0.55*(_WIDTH()/_HEIGHT()),0) dummy=_LINE2D(0.40*(_WIDTH()/_HEIGHT()),-0.15) dummy=_LINE2D(0.40*(_WIDTH()/_HEIGHT()),0.15) end --リロードゲージ ajy=-0.05 --残弾量 REV_COLOR() for loop=1,20 do if Ammo_number>=loop then REV_COLOR() end dummy=_SETCOLOR(Line_col_G) dummy=_MOVE2D(loop*0.02-0.21,-0.3025-ajy) dummy=_LINE2D(loop*0.02-0.21,-0.38-ajy) if Ammo_number>=loop then REV_COLOR() end end REV_COLOR() --次弾装填状況 nemo=((_G["NSA"..100+FIRE_ORDER])-180)/90 if nemo<0 then nemo=0 end dummy=_MOVE2D(-0.20,-0.27-ajy) dummy=_LINE2D(-0.20+0.4,-0.27-ajy) dummy=_SETCOLOR(Line_col_G) dummy=_MOVE2D(-0.20,-0.27-ajy) dummy=_LINE2D(-0.20+0.4*nemo,-0.27-ajy) --トップチャージ REV_COLOR() dummy=_SETCOLOR(Line_col_G)REV_COLOR() dummy=_MOVE2D(-0.20,-0.29-ajy) dummy=_LINE2D(-0.20+0.4,-0.29-ajy) dummy=_SETCOLOR(Line_col_G) dummy=_MOVE2D(-0.20,-0.29-ajy) dummy=_LINE2D(-0.20+0.4*top_charge,-0.29-ajy) --ウェイトマーク REV_COLOR() dummy=_SETCOLOR(Line_col_G)REV_COLOR() ticks=_TICKS() if ticks>150 then ticks=150 end if _TICKS()<=150 then dummy=_MOVE2D(-0.20,-0.39-ajy) dummy=_LINE2D(-0.20+0.4,-0.39-ajy) end dummy=_SETCOLOR(Line_col_G) dummy=_MOVE2D(-0.20,-0.39-ajy) dummy=_LINE2D(-0.20+0.4*ticks/150,-0.39-ajy) end function REV_COLOR() --カラー逆転 if G_col_MODE==1 then G_col_MODE=0 elseif G_col_MODE==0 then G_col_MODE=1 end LINE_COLOR() end function LINE_COLOR() --ラインカラー if G_col_MODE==0 then --カラー1 Line_col_G=math.floor(COL_RG1*math.abs(math.sin(_TICKS()/G_speed))+COL_R1D)*65536 +math.floor(COL_GG1*math.abs(math.sin(_TICKS()/G_speed))+COL_G1D)*256 +math.floor(COL_BG1*math.abs(math.sin(_TICKS()/G_speed))+COL_B1D) else --カラー2 Line_col_G=math.floor(COL_RG2*math.abs(math.cos(_TICKS()/G_speed))+COL_R2D)*65536 +math.floor(COL_GG2*math.abs(math.cos(_TICKS()/G_speed))+COL_G2D)*256 +math.floor(COL_BG2*math.abs(math.cos(_TICKS()/G_speed))+COL_B2D) end end --機体カラー------------------ COL_name="" COLOR1,COLOR2=0,0 BODY_COLOR=1 function CHANGE_COLOR() --カラー変更 if _KEYDOWN(12)==1 then BODY_COLOR=BODY_COLOR+1 elseif _KEYDOWN(10)==1 then BODY_COLOR=BODY_COLOR-1 end if BODY_COLOR>7 then BODY_COLOR=1 elseif BODY_COLOR<1 then BODY_COLOR=7 end --初期カラー if BODY_COLOR==1 then COL_name="Default" COLOR1=tonumber("687c6d",16) --チップ、ウエイト COLOR2=tonumber("485c4d",16) --カウル COLOR3=tonumber("a8bcad",16) --チップ、ウエイト2 COLOR4=tonumber("3d5041",16) --カウル2 end --アスファルト if BODY_COLOR==2 then COL_name="Asphalt" COLOR1=tonumber("555555",16) --チップ、ウエイト COLOR2=tonumber("444444",16) --カウル COLOR3=tonumber("666666",16) COLOR4=tonumber("444444",16) end --泥 if BODY_COLOR==3 then COL_name="Mud" COLOR1=tonumber("645847",16) --チップ、ウエイト COLOR2=tonumber("534736",16) --カウル COLOR3=tonumber("756958",16) COLOR4=tonumber("534736",16) end --緑 if BODY_COLOR==4 then COL_name="Green" COLOR1=tonumber("447733",16) --チップ、ウエイト COLOR2=tonumber("336622",16) --カウル COLOR3=tonumber("558844",16) COLOR4=tonumber("447733",16) end --砂漠 if BODY_COLOR==5 then COL_name="Desert" COLOR1=tonumber("BBAA88",16) --チップ、ウエイト COLOR2=tonumber("aa9977",16) --カウル COLOR3=tonumber("CCbb99",16) COLOR4=tonumber("aa9977",16) end --コンクリート if BODY_COLOR==6 then COL_name="Concrete" COLOR1=tonumber("bbbbbb",16) --チップ、ウエイト COLOR2=tonumber("999999",16) --カウル COLOR3=tonumber("bbbbbb",16) COLOR4=tonumber("999999",16) end --雪 if BODY_COLOR==7 then COL_name="Snow" COLOR1=tonumber("FFFFFF",16) --チップ、ウエイト COLOR2=tonumber("dddddd",16) --カウル COLOR3=tonumber("FFFFFF",16) COLOR4=tonumber("dddddd",16) end end --[[ --◆バグチェッカー◆ bug_memo[0]=Sw_memo[1] if math.deg(_AY(CORE3))==180 then bug_memo[0]=bug_memo[0].."<<<<<<<<<<<<<<<" end bug_memo={bug_memo[2],bug_memo[3],bug_memo[4],bug_memo[5],bug_memo[6],bug_memo[7],bug_memo[8],bug_memo[9],bug_memo[10],bug_memo[0]} for loop=0,9 do out(0+loop,bug_memo[1+loop]) end --◆バグチェッカー2◆ bug_memo2[0]=math.deg(_AY(CORE3)) if math.deg(_AY(CORE3))==180 then bug_memo2[0]=bug_memo2[0].."<<<<<<<<<<<<<<<" end bug_memo2={bug_memo2[2],bug_memo2[3],bug_memo2[4],bug_memo2[5],bug_memo2[6],bug_memo2[7],bug_memo2[8],bug_memo2[9],bug_memo2[10],bug_memo2[0]} for loop=0,9 do out(11+loop,bug_memo2[1+loop]) end ]] }